From c0fd00df6e4b0a9dcc0f75b0539e0eb7a34dd63d Mon Sep 17 00:00:00 2001 From: Benjamin Cabanes <3447705+bcabanes@users.noreply.github.com> Date: Fri, 7 Feb 2025 17:22:33 -0500 Subject: [PATCH] docs(nx-dev): add monorepo ai support section to homepage (#29934) Introduced the Monorepo AI Support component and its corresponding illustration to the homepage layout. Also updated the necessary exports for proper integration. --- nx-dev/nx-dev/pages/index.tsx | 4 + .../images/home/nx-ai-dark-lighting.avif | Bin 0 -> 21746 bytes .../images/home/nx-ai-light-lighting.avif | Bin 0 -> 15936 bytes nx-dev/nx-dev/public/images/home/nx-ai.avif | Bin 0 -> 108102 bytes nx-dev/ui-home/src/index.ts | 1 + .../src/lib/illustrations/nx-ai-light.tsx | 6585 +++++++++++++++++ .../ui-home/src/lib/monorepo-ai-support.tsx | 251 + nx-dev/ui-icons/src/index.ts | 5 + nx-dev/ui-icons/src/lib/ai/cursor.tsx | 21 + nx-dev/ui-icons/src/lib/ai/github-copilot.tsx | 17 + nx-dev/ui-icons/src/lib/ai/intellij-ai.tsx | 17 + 11 files changed, 6901 insertions(+) create mode 100644 nx-dev/nx-dev/public/images/home/nx-ai-dark-lighting.avif create mode 100644 nx-dev/nx-dev/public/images/home/nx-ai-light-lighting.avif create mode 100644 nx-dev/nx-dev/public/images/home/nx-ai.avif create mode 100644 nx-dev/ui-home/src/lib/illustrations/nx-ai-light.tsx create mode 100644 nx-dev/ui-home/src/lib/monorepo-ai-support.tsx create mode 100644 nx-dev/ui-icons/src/lib/ai/cursor.tsx create mode 100644 nx-dev/ui-icons/src/lib/ai/github-copilot.tsx create mode 100644 nx-dev/ui-icons/src/lib/ai/intellij-ai.tsx diff --git a/nx-dev/nx-dev/pages/index.tsx b/nx-dev/nx-dev/pages/index.tsx index 7d5e379f0c..e64a77e7ba 100644 --- a/nx-dev/nx-dev/pages/index.tsx +++ b/nx-dev/nx-dev/pages/index.tsx @@ -4,6 +4,7 @@ import { CiForMonorepos, Hero, HetznerCloudTestimonial, + MonorepoAiSupport, SmarterToolsForMonorepos, Statistics, TeamAndCommunity, @@ -46,6 +47,9 @@ export default function Index(): JSX.Element {
+
+ +
diff --git a/nx-dev/nx-dev/public/images/home/nx-ai-dark-lighting.avif b/nx-dev/nx-dev/public/images/home/nx-ai-dark-lighting.avif new file mode 100644 index 0000000000000000000000000000000000000000..61123abf19b179a63ffff5b17938a03acc13ebd3 GIT binary patch literal 21746 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