From 26e710180b2ee9be9f47516ae4736eff719cdea6 Mon Sep 17 00:00:00 2001
From: Benjamin Cabanes <3447705+bcabanes@users.noreply.github.com>
Date: Mon, 3 Oct 2022 12:11:01 -0400
Subject: [PATCH] docs(nxdev): refresh ui (#12370)
---
graph/client/src/app/shell.tsx | 9 +-
.../src/app/sidebar/focused-project-panel.tsx | 4 +-
graph/client/src/app/sidebar/project-list.tsx | 10 +-
graph/client/src/app/sidebar/sidebar.tsx | 2 +-
graph/client/src/app/sidebar/theme-panel.tsx | 10 +-
.../client/src/app/sidebar/tracing-panel.tsx | 10 +-
.../src/lib/documents.api.ts | 29 +-
nx-dev/data-access-menu/src/lib/menu.utils.ts | 48 +-
nx-dev/data-access-packages/src/index.ts | 1 +
.../src/lib/sort-packages.ts | 9 +
nx-dev/feature-doc-viewer/src/lib/content.tsx | 6 +-
.../feature-doc-viewer/src/lib/doc-viewer.tsx | 54 +-
.../src/lib/content.tsx | 237 +-
.../src/lib/package-schema-list.tsx | 132 +-
.../src/lib/package-schema-viewer.tsx | 46 +-
.../src/lib/parameter-view.tsx | 12 +-
.../src/lib/schema-editor.tsx | 4 +-
.../src/lib/types/type.tsx | 4 +-
.../src/lib/ui/headings.tsx | 8 +-
.../src/lib/ui/package-reference.tsx | 99 +-
.../src/lib/algolia-search.global.css | 85 +-
.../feature-search/src/lib/algolia-search.tsx | 81 +-
nx-dev/nx-dev-e2e/src/integration/app.spec.ts | 2 +-
.../src/integration/packages.spec.ts | 25 -
nx-dev/nx-dev/lib/navigation-toggle.effect.ts | 35 +
nx-dev/nx-dev/next.config.js | 1 -
nx-dev/nx-dev/pages/404.tsx | 2 +-
nx-dev/nx-dev/pages/[...segments].tsx | 123 +-
nx-dev/nx-dev/pages/_app.tsx | 142 +-
nx-dev/nx-dev/pages/_document.tsx | 24 +-
nx-dev/nx-dev/pages/community.tsx | 50 +-
nx-dev/nx-dev/pages/conf.tsx | 175 +-
nx-dev/nx-dev/pages/index.tsx | 340 +--
nx-dev/nx-dev/pages/packages.tsx | 166 +-
nx-dev/nx-dev/postcss.config.js | 1 +
.../public/images/background/background.svg | 2242 +++++++++++++++++
.../background/waves-background-final.svg | 951 +++++++
.../images/background/waves-background.svg | 109 +
.../images/background/waves-background2.svg | 109 +
.../public/images/conf/altan-stalker.webp | Bin 12092 -> 8296 bytes
.../public/images/conf/benjamin-cabanes.webp | Bin 20982 -> 6992 bytes
.../public/images/conf/colum-ferry.webp | Bin 16574 -> 6016 bytes
.../public/images/conf/craigory-coppola.webp | Bin 6782 -> 5336 bytes
.../public/images/conf/devin-shoemaker.webp | Bin 5622 -> 5916 bytes
.../nx-dev/public/images/conf/isaac-mann.webp | Bin 59546 -> 6822 bytes
.../nx-dev/public/images/conf/jack-hsu.webp | Bin 9054 -> 9346 bytes
.../public/images/conf/james-henry.webp | Bin 44936 -> 4542 bytes
.../public/images/conf/jason-jeans.webp | Bin 6988 -> 7104 bytes
.../nx-dev/public/images/conf/jeff-cross.webp | Bin 56986 -> 5802 bytes
.../public/images/conf/jo-hanna-pearce.webp | Bin 22416 -> 9114 bytes
.../images/conf/jonathan-cammisuli.webp | Bin 5518 -> 5790 bytes
.../public/images/conf/jordan-powell.webp | Bin 6478 -> 6812 bytes
.../images/conf/juri-strumpflohner.webp | Bin 8180 -> 6140 bytes
.../images/conf/katerina-skroumpelou.webp | Bin 11284 -> 7760 bytes
.../public/images/conf/kennie-davis.webp | Bin 4332 -> 4856 bytes
.../public/images/conf/lara-newsom.webp | Bin 6068 -> 6230 bytes
.../public/images/conf/manfred-steyer.webp | Bin 54494 -> 5016 bytes
.../nx-dev/public/images/conf/mike-ryan.webp | Bin 5268 -> 5514 bytes
nx-dev/nx-dev/public/images/conf/miro.webp | Bin 5954 -> 0 bytes
.../public/images/conf/miroslav-jonas.webp | Bin 11196 -> 9090 bytes
.../public/images/conf/nathan-walker.webp | Bin 54880 -> 5178 bytes
.../public/images/conf/philip-fulcher.webp | Bin 6634 -> 5002 bytes
.../public/images/conf/rares-matei.webp | Bin 5416 -> 5718 bytes
.../nx-dev/public/images/conf/ryan-diehl.webp | Bin 4904 -> 5096 bytes
.../public/images/conf/santosh-yadav.webp | Bin 6084 -> 6368 bytes
.../public/images/conf/victor-savkin.webp | Bin 58532 -> 7140 bytes
.../public/images/conf/zack-derose.webp | Bin 5542 -> 4290 bytes
.../nx-dev/public/images/github-nxcloud.webp | Bin 0 -> 114168 bytes
.../nx-dev/public/images/nx-console-dark.webp | Bin 0 -> 133266 bytes
.../public/images/nx-console-light.webp | Bin 0 -> 123692 bytes
nx-dev/nx-dev/public/images/nx-console.webp | Bin 67082 -> 0 bytes
.../public/images/nx-console/vscode-dark.webp | Bin 0 -> 89960 bytes
.../images/nx-console/vscode-light.webp | Bin 0 -> 85202 bytes
nx-dev/nx-dev/public/videos/dark.mp4 | Bin 0 -> 727740 bytes
nx-dev/nx-dev/public/videos/dark.webm | Bin 0 -> 1096302 bytes
nx-dev/nx-dev/public/videos/light.mp4 | Bin 0 -> 689022 bytes
nx-dev/nx-dev/public/videos/light.webm | Bin 0 -> 980396 bytes
nx-dev/nx-dev/styles/main.css | 24 +-
nx-dev/nx-dev/styles/syntax-highlight.css | 71 +
nx-dev/nx-dev/tailwind.config.js | 4 +
nx-dev/ui-common/src/index.ts | 2 +
.../ui-common/src/lib/announcement-banner.tsx | 12 +-
nx-dev/ui-common/src/lib/breadcrumbs.tsx | 2 +-
.../src/lib/documentation-header.tsx | 226 ++
nx-dev/ui-common/src/lib/footer.tsx | 105 +-
nx-dev/ui-common/src/lib/header.tsx | 378 ++-
nx-dev/ui-common/src/lib/plugin-card.tsx | 13 +-
nx-dev/ui-common/src/lib/selector.tsx | 4 +-
.../ui-common/src/lib/sidebar-container.tsx | 17 +
nx-dev/ui-common/src/lib/sidebar.tsx | 168 +-
nx-dev/ui-common/src/lib/testimonial-card.tsx | 12 +-
.../ui-community/src/lib/connect-with-us.tsx | 44 +-
.../ui-community/src/lib/create-nx-plugin.tsx | 63 +-
.../ui-community/src/lib/plugin-directory.tsx | 6 +-
nx-dev/ui-community/tsconfig.lib.json | 3 +-
.../src/lib/conf-health-and-safety.tsx | 20 +-
.../ui-conference/src/lib/conf-location.tsx | 12 +-
.../src/lib/conf-schedule-short.tsx | 28 +-
.../ui-conference/src/lib/conf-speakers.tsx | 10 +-
.../ui-conference/src/lib/conf-workshop.tsx | 32 +-
nx-dev/ui-home/src/index.ts | 24 +-
.../ui-home/src/lib/affected-command.spec.tsx | 11 -
nx-dev/ui-home/src/lib/affected-command.tsx | 163 --
nx-dev/ui-home/src/lib/cloud-support.tsx | 122 -
.../ui-home/src/lib/dependency-graph.spec.tsx | 11 -
nx-dev/ui-home/src/lib/dependency-graph.tsx | 109 -
.../src/lib/ecosystem-features.spec.tsx | 11 -
nx-dev/ui-home/src/lib/ecosystem-features.tsx | 259 --
.../ui-home/src/lib/egghead-courses.spec.tsx | 11 -
nx-dev/ui-home/src/lib/egghead-courses.tsx | 72 -
nx-dev/ui-home/src/lib/event-banner.tsx | 30 -
.../src/lib/experience-features.spec.tsx | 11 -
.../ui-home/src/lib/experience-features.tsx | 254 --
.../src/lib/extensible-and-integrated.tsx | 107 +
.../github-intergration-tab.tsx | 168 ++
.../extensible-and-integrated/graph-tab.tsx | 73 +
.../motion.helpers.ts | 20 +
.../extensible-and-integrated/plugins-tab.tsx | 346 +++
.../lib/extensible-and-integrated/tabs.tsx | 11 +
.../vscode-integration-tab.tsx | 111 +
.../ui-home/src/lib/getting-started.spec.tsx | 11 -
nx-dev/ui-home/src/lib/getting-started.tsx | 1016 +-------
nx-dev/ui-home/src/lib/hero.tsx | 94 +
nx-dev/ui-home/src/lib/logo-cloud.tsx | 126 +
nx-dev/ui-home/src/lib/migrate.tsx | 34 +
.../lib/migrations-and-code-generation.tsx | 168 ++
.../src/lib/monorepo-features.spec.tsx | 11 -
nx-dev/ui-home/src/lib/monorepo-features.tsx | 266 --
nx-dev/ui-home/src/lib/monorepo-styles.tsx | 159 ++
nx-dev/ui-home/src/lib/newsletter.tsx | 151 ++
nx-dev/ui-home/src/lib/nx-is-fast.tsx | 252 ++
nx-dev/ui-home/src/lib/nx-playbook.tsx | 74 -
nx-dev/ui-home/src/lib/nx-statistics.tsx | 55 +
nx-dev/ui-home/src/lib/open-platform.spec.tsx | 11 -
nx-dev/ui-home/src/lib/open-platform.tsx | 147 --
.../src/lib/open-source-projects.spec.tsx | 11 -
.../ui-home/src/lib/open-source-projects.tsx | 417 ---
nx-dev/ui-home/src/lib/performance.spec.tsx | 11 -
nx-dev/ui-home/src/lib/performance.tsx | 171 --
nx-dev/ui-home/src/lib/testimonials.tsx | 99 +-
nx-dev/ui-home/src/lib/vscode-plugin.spec.tsx | 11 -
nx-dev/ui-home/src/lib/vscode-plugin.tsx | 109 -
nx-dev/ui-home/src/lib/why-is-nx-fast.tsx | 29 +
nx-dev/ui-home/src/lib/youtube-channel.tsx | 73 -
nx-dev/ui-markdoc/src/index.ts | 6 +
.../src/lib/nodes/fence.component.tsx | 38 +-
.../src/lib/nodes/heading.component.tsx | 2 +-
.../src/lib/tags/callout.component.tsx | 54 +-
.../src/lib/tags/card-list.component.tsx | 2 +-
.../src/lib/tags/cards.component.tsx | 51 +
.../ui-markdoc/src/lib/tags/cards.schema.ts | 28 +
.../lib/tags/github-repository.component.tsx | 8 +-
.../src/lib/tags/iframe.component.tsx | 10 +-
.../lib/tags/nx-cloud-section.component.tsx | 4 +-
.../src/lib/tags/tabs.component.tsx | 8 +-
.../src/lib/tags/youtube.components.tsx | 2 +-
nx-dev/ui-member-card/src/lib/member-card.tsx | 2 +-
.../src/lib/references-nav-list.tsx | 6 +-
.../src/lib/references-section.tsx | 37 +-
nx-dev/ui-theme/.babelrc | 12 +
nx-dev/ui-theme/.eslintrc.json | 18 +
nx-dev/ui-theme/README.md | 7 +
nx-dev/ui-theme/jest.config.ts | 10 +
nx-dev/ui-theme/project.json | 23 +
nx-dev/ui-theme/src/index.ts | 2 +
.../src/lib/theme-switcher.component.tsx | 96 +
nx-dev/ui-theme/src/lib/theme.provider.tsx | 95 +
nx-dev/ui-theme/tsconfig.json | 25 +
nx-dev/ui-theme/tsconfig.lib.json | 24 +
nx-dev/ui-theme/tsconfig.spec.json | 20 +
package.json | 4 +-
.../src/add-nx-to-monorepo.ts | 2 +-
.../open-graph/generate-images.ts | 8 +-
scripts/documentation/open-graph/media.jpg | Bin 105135 -> 439872 bytes
tsconfig.base.json | 1 +
workspace.json | 1 +
yarn.lock | 16 +-
177 files changed, 7685 insertions(+), 5020 deletions(-)
create mode 100644 nx-dev/data-access-packages/src/lib/sort-packages.ts
create mode 100644 nx-dev/nx-dev/lib/navigation-toggle.effect.ts
create mode 100644 nx-dev/nx-dev/public/images/background/background.svg
create mode 100644 nx-dev/nx-dev/public/images/background/waves-background-final.svg
create mode 100644 nx-dev/nx-dev/public/images/background/waves-background.svg
create mode 100644 nx-dev/nx-dev/public/images/background/waves-background2.svg
delete mode 100644 nx-dev/nx-dev/public/images/conf/miro.webp
create mode 100644 nx-dev/nx-dev/public/images/github-nxcloud.webp
create mode 100644 nx-dev/nx-dev/public/images/nx-console-dark.webp
create mode 100644 nx-dev/nx-dev/public/images/nx-console-light.webp
delete mode 100644 nx-dev/nx-dev/public/images/nx-console.webp
create mode 100644 nx-dev/nx-dev/public/images/nx-console/vscode-dark.webp
create mode 100644 nx-dev/nx-dev/public/images/nx-console/vscode-light.webp
create mode 100644 nx-dev/nx-dev/public/videos/dark.mp4
create mode 100644 nx-dev/nx-dev/public/videos/dark.webm
create mode 100644 nx-dev/nx-dev/public/videos/light.mp4
create mode 100644 nx-dev/nx-dev/public/videos/light.webm
create mode 100644 nx-dev/nx-dev/styles/syntax-highlight.css
create mode 100644 nx-dev/ui-common/src/lib/documentation-header.tsx
create mode 100644 nx-dev/ui-common/src/lib/sidebar-container.tsx
delete mode 100644 nx-dev/ui-home/src/lib/affected-command.spec.tsx
delete mode 100644 nx-dev/ui-home/src/lib/affected-command.tsx
delete mode 100644 nx-dev/ui-home/src/lib/cloud-support.tsx
delete mode 100644 nx-dev/ui-home/src/lib/dependency-graph.spec.tsx
delete mode 100644 nx-dev/ui-home/src/lib/dependency-graph.tsx
delete mode 100644 nx-dev/ui-home/src/lib/ecosystem-features.spec.tsx
delete mode 100644 nx-dev/ui-home/src/lib/ecosystem-features.tsx
delete mode 100644 nx-dev/ui-home/src/lib/egghead-courses.spec.tsx
delete mode 100644 nx-dev/ui-home/src/lib/egghead-courses.tsx
delete mode 100644 nx-dev/ui-home/src/lib/event-banner.tsx
delete mode 100644 nx-dev/ui-home/src/lib/experience-features.spec.tsx
delete mode 100644 nx-dev/ui-home/src/lib/experience-features.tsx
create mode 100644 nx-dev/ui-home/src/lib/extensible-and-integrated.tsx
create mode 100644 nx-dev/ui-home/src/lib/extensible-and-integrated/github-intergration-tab.tsx
create mode 100644 nx-dev/ui-home/src/lib/extensible-and-integrated/graph-tab.tsx
create mode 100644 nx-dev/ui-home/src/lib/extensible-and-integrated/motion.helpers.ts
create mode 100644 nx-dev/ui-home/src/lib/extensible-and-integrated/plugins-tab.tsx
create mode 100644 nx-dev/ui-home/src/lib/extensible-and-integrated/tabs.tsx
create mode 100644 nx-dev/ui-home/src/lib/extensible-and-integrated/vscode-integration-tab.tsx
delete mode 100644 nx-dev/ui-home/src/lib/getting-started.spec.tsx
create mode 100644 nx-dev/ui-home/src/lib/hero.tsx
create mode 100644 nx-dev/ui-home/src/lib/logo-cloud.tsx
create mode 100644 nx-dev/ui-home/src/lib/migrate.tsx
create mode 100644 nx-dev/ui-home/src/lib/migrations-and-code-generation.tsx
delete mode 100644 nx-dev/ui-home/src/lib/monorepo-features.spec.tsx
delete mode 100644 nx-dev/ui-home/src/lib/monorepo-features.tsx
create mode 100644 nx-dev/ui-home/src/lib/monorepo-styles.tsx
create mode 100644 nx-dev/ui-home/src/lib/newsletter.tsx
create mode 100644 nx-dev/ui-home/src/lib/nx-is-fast.tsx
delete mode 100644 nx-dev/ui-home/src/lib/nx-playbook.tsx
create mode 100644 nx-dev/ui-home/src/lib/nx-statistics.tsx
delete mode 100644 nx-dev/ui-home/src/lib/open-platform.spec.tsx
delete mode 100644 nx-dev/ui-home/src/lib/open-platform.tsx
delete mode 100644 nx-dev/ui-home/src/lib/open-source-projects.spec.tsx
delete mode 100644 nx-dev/ui-home/src/lib/open-source-projects.tsx
delete mode 100644 nx-dev/ui-home/src/lib/performance.spec.tsx
delete mode 100644 nx-dev/ui-home/src/lib/performance.tsx
delete mode 100644 nx-dev/ui-home/src/lib/vscode-plugin.spec.tsx
delete mode 100644 nx-dev/ui-home/src/lib/vscode-plugin.tsx
create mode 100644 nx-dev/ui-home/src/lib/why-is-nx-fast.tsx
delete mode 100644 nx-dev/ui-home/src/lib/youtube-channel.tsx
create mode 100644 nx-dev/ui-markdoc/src/lib/tags/cards.component.tsx
create mode 100644 nx-dev/ui-markdoc/src/lib/tags/cards.schema.ts
create mode 100644 nx-dev/ui-theme/.babelrc
create mode 100644 nx-dev/ui-theme/.eslintrc.json
create mode 100644 nx-dev/ui-theme/README.md
create mode 100644 nx-dev/ui-theme/jest.config.ts
create mode 100644 nx-dev/ui-theme/project.json
create mode 100644 nx-dev/ui-theme/src/index.ts
create mode 100644 nx-dev/ui-theme/src/lib/theme-switcher.component.tsx
create mode 100644 nx-dev/ui-theme/src/lib/theme.provider.tsx
create mode 100644 nx-dev/ui-theme/tsconfig.json
create mode 100644 nx-dev/ui-theme/tsconfig.lib.json
create mode 100644 nx-dev/ui-theme/tsconfig.spec.json
diff --git a/graph/client/src/app/shell.tsx b/graph/client/src/app/shell.tsx
index d7741410e5d82..cd95a504b0a37 100644
--- a/graph/client/src/app/shell.tsx
+++ b/graph/client/src/app/shell.tsx
@@ -1,4 +1,7 @@
-import { ArrowCircleLeftIcon, DownloadIcon } from '@heroicons/react/solid';
+import {
+ ArrowLeftCircleIcon,
+ ArrowDownTrayIcon,
+} from '@heroicons/react/24/solid';
import Tippy from '@tippyjs/react';
import classNames from 'classnames';
// nx-ignore-next-line
@@ -130,7 +133,7 @@ export function Shell() {
id="no-projects-chosen"
className="flex text-slate-700 dark:text-slate-400"
>
-
+
Please select projects in the sidebar.
) : null}
@@ -170,7 +173,7 @@ export function Shell() {
data-cy="downloadImageButton"
onClick={downloadImage}
>
-
+
diff --git a/graph/client/src/app/sidebar/focused-project-panel.tsx b/graph/client/src/app/sidebar/focused-project-panel.tsx
index 323516f67d13c..63d85505a054f 100644
--- a/graph/client/src/app/sidebar/focused-project-panel.tsx
+++ b/graph/client/src/app/sidebar/focused-project-panel.tsx
@@ -1,4 +1,4 @@
-import { ArrowCircleRightIcon, XCircleIcon } from '@heroicons/react/solid';
+import { ArrowRightCircleIcon, XCircleIcon } from '@heroicons/react/24/solid';
import { memo } from 'react';
export interface FocusedProjectPanelProps {
@@ -16,7 +16,7 @@ export const FocusedProjectPanel = memo(
onClick={() => resetFocus()}
>
-
+
Focused on {focusedProject}
diff --git a/graph/client/src/app/sidebar/project-list.tsx b/graph/client/src/app/sidebar/project-list.tsx
index 912cf4d42aa23..e0f9334c6911a 100644
--- a/graph/client/src/app/sidebar/project-list.tsx
+++ b/graph/client/src/app/sidebar/project-list.tsx
@@ -1,8 +1,8 @@
import {
- DocumentSearchIcon,
+ DocumentMagnifyingGlassIcon,
FlagIcon,
- LocationMarkerIcon,
-} from '@heroicons/react/solid';
+ MapPinIcon,
+} from '@heroicons/react/24/solid';
// nx-ignore-next-line
import type { ProjectGraphNode } from '@nrwl/devkit';
import { useDepGraphService } from '../hooks/use-dep-graph';
@@ -92,7 +92,7 @@ function ProjectListItem({
title="Focus on this library"
onClick={() => focusProject(project.projectGraphNode.name)}
>
-
+
@@ -108,7 +108,7 @@ function ProjectListItem({
: 'ring-slate-200 dark:ring-slate-600'
} flex items-center rounded-l-md border-slate-300 bg-white p-1 font-medium text-slate-500 shadow-sm ring-1 transition hover:bg-slate-50 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-400 dark:ring-slate-600 hover:dark:bg-slate-700`}
>
-
+
Theme switcher
{theme === 'system' && (
-
+
)}
{theme === 'light' && (
@@ -54,7 +58,7 @@ export default function ThemePanel() {
)}
onClick={() => setTheme('system')}
>
-
diff --git a/graph/client/src/app/sidebar/tracing-panel.tsx b/graph/client/src/app/sidebar/tracing-panel.tsx
index aed9dd358cb50..4f28172b44c86 100644
--- a/graph/client/src/app/sidebar/tracing-panel.tsx
+++ b/graph/client/src/app/sidebar/tracing-panel.tsx
@@ -1,9 +1,9 @@
import {
- DotsVerticalIcon,
+ EllipsisVerticalIcon,
FlagIcon,
- LocationMarkerIcon,
+ MapPinIcon,
XCircleIcon,
-} from '@heroicons/react/solid';
+} from '@heroicons/react/24/solid';
import { memo } from 'react';
import { TracingAlgorithmType } from '../machines/interfaces';
@@ -55,7 +55,7 @@ export const TracingPanel = memo(
-
+
{start ? (
-
+
diff --git a/nx-dev/data-access-documents/src/lib/documents.api.ts b/nx-dev/data-access-documents/src/lib/documents.api.ts
index 9e47181d1ddbd..788b75a0fe840 100644
--- a/nx-dev/data-access-documents/src/lib/documents.api.ts
+++ b/nx-dev/data-access-documents/src/lib/documents.api.ts
@@ -70,21 +70,29 @@ export class DocumentsApi {
if (!found) return null;
- const cardListItems = items?.map((i) => ({
- name: i.name,
- path: i.path ?? '/' + path.concat(i.id).join('/'),
- }));
+ const cardsTemplate = items
+ ?.map((i) => ({
+ title: i.name,
+ description: i.description ?? '',
+ url: i.path ?? '/' + path.concat(i.id).join('/'),
+ }))
+ .map(
+ (card) =>
+ `{% card title="${card.title}" description="${card.description}" url="${card.url}" /%}\n`
+ )
+ .join('');
return {
filePath: '',
data: {
title: found?.name,
},
- content: `# ${found?.name}\n\n ${
- found?.description ?? ''
- }\n\n {% card-list items="${encodeURI(
- JSON.stringify(cardListItems)
- )}" /%}`,
+ content: [
+ `# ${found?.name}\n\n ${found?.description ?? ''}\n\n`,
+ '{% cards %}\n',
+ cardsTemplate,
+ '{% /cards %}\n\n',
+ ].join(''),
};
}
@@ -214,8 +222,9 @@ export class DocumentsApi {
/**
* Displays a list of all concepts, recipes or reference documents that are tagged with the specified tag
* Tags are defined in map.json
- * @param tag
* @returns
+ * @param tags
+ * @param path
*/
private getRelatedDocumentsSection(tags: string[], path: string[]): string {
let relatedConcepts: MenuItem[] = [];
diff --git a/nx-dev/data-access-menu/src/lib/menu.utils.ts b/nx-dev/data-access-menu/src/lib/menu.utils.ts
index 7ea98c3138fc5..8569fe9df3008 100644
--- a/nx-dev/data-access-menu/src/lib/menu.utils.ts
+++ b/nx-dev/data-access-menu/src/lib/menu.utils.ts
@@ -84,18 +84,48 @@ export function getDeepDiveSection(items: MenuItem[]): MenuSection {
}
export function getPackageApiSection(items: MenuItem[]): MenuSection {
+ const getGuides = (menu: MenuItem) =>
+ menu.itemList?.filter(
+ (x) => !x.path?.includes('executors') && !x.path?.includes('generators')
+ ) || [];
+ const getExecutors = (menu: MenuItem) =>
+ menu.itemList?.filter((x) => x.path?.includes('executors')) || [];
+ const getGenerators = (menu: MenuItem) =>
+ menu.itemList?.filter((x) => x.path?.includes('generators')) || [];
+
return {
id: 'official-packages',
name: 'Reference',
- itemList: items.filter(
- (m) =>
- m.id !== 'add-nx-to-monorepo' &&
- m.id !== 'cra-to-nx' &&
- m.id !== 'create-nx-plugin' &&
- m.id !== 'create-nx-workspace' &&
- m.id !== 'make-angular-cli-faster' &&
- m.id !== 'tao'
- ),
+ itemList: items
+ .filter(
+ (m) =>
+ m.id !== 'add-nx-to-monorepo' &&
+ m.id !== 'cra-to-nx' &&
+ m.id !== 'create-nx-plugin' &&
+ m.id !== 'create-nx-workspace' &&
+ m.id !== 'make-angular-cli-faster' &&
+ m.id !== 'tao'
+ )
+ .map((m) => ({
+ ...m,
+ itemList: [
+ {
+ id: m.id + '-guides',
+ name: 'Guides',
+ itemList: getGuides(m),
+ },
+ {
+ id: m.id + '-executors',
+ name: 'Executors',
+ itemList: getExecutors(m),
+ },
+ {
+ id: m.id + '-generators',
+ name: 'Generators',
+ itemList: getGenerators(m),
+ },
+ ],
+ })),
};
}
diff --git a/nx-dev/data-access-packages/src/index.ts b/nx-dev/data-access-packages/src/index.ts
index fb61249db0c17..d420a407c30c6 100644
--- a/nx-dev/data-access-packages/src/index.ts
+++ b/nx-dev/data-access-packages/src/index.ts
@@ -1,3 +1,4 @@
export * from './lib/get-title-for-schema';
export * from './lib/get-description-for-schema';
export * from './lib/lookup';
+export * from './lib/sort-packages';
diff --git a/nx-dev/data-access-packages/src/lib/sort-packages.ts b/nx-dev/data-access-packages/src/lib/sort-packages.ts
new file mode 100644
index 0000000000000..2b1c8a4ceeabb
--- /dev/null
+++ b/nx-dev/data-access-packages/src/lib/sort-packages.ts
@@ -0,0 +1,9 @@
+export function sortCorePackagesFirst
(
+ itemList: ItemType[]
+): ItemType[] {
+ const nxPackageIds = ['nx', 'workspace', 'devkit', 'nx-plugin'];
+ return [
+ ...nxPackageIds.map((id) => itemList.find((item) => item.id === id)),
+ ...itemList.filter((item) => !nxPackageIds.includes(item.id)),
+ ].filter((item): item is ItemType => !!item);
+}
diff --git a/nx-dev/feature-doc-viewer/src/lib/content.tsx b/nx-dev/feature-doc-viewer/src/lib/content.tsx
index 19a3ed4961738..9cabf1417ee92 100644
--- a/nx-dev/feature-doc-viewer/src/lib/content.tsx
+++ b/nx-dev/feature-doc-viewer/src/lib/content.tsx
@@ -7,8 +7,10 @@ export interface ContentProps {
export function Content(props: ContentProps): JSX.Element {
return (
-
-
{renderMarkdown(props.document)}
+
+
+ {renderMarkdown(props.document)}
+
);
}
diff --git a/nx-dev/feature-doc-viewer/src/lib/doc-viewer.tsx b/nx-dev/feature-doc-viewer/src/lib/doc-viewer.tsx
index f1310ac3a1e4d..83a65efe7a377 100644
--- a/nx-dev/feature-doc-viewer/src/lib/doc-viewer.tsx
+++ b/nx-dev/feature-doc-viewer/src/lib/doc-viewer.tsx
@@ -1,16 +1,16 @@
import { DocumentData } from '@nrwl/nx-dev/models-document';
import { Menu } from '@nrwl/nx-dev/models-menu';
-import { Sidebar } from '@nrwl/nx-dev/ui-common';
-import cx from 'classnames';
+import { Breadcrumbs, Footer, SidebarContainer } from '@nrwl/nx-dev/ui-common';
import { NextSeo } from 'next-seo';
import { useRouter } from 'next/router';
+import { useEffect, useRef } from 'react';
import { Content } from './content';
export interface DocumentationFeatureDocViewerProps {
menu: Menu;
document: DocumentData;
toc: any;
- navIsOpen?: boolean;
+ navIsOpen: boolean;
}
export function DocViewer({
@@ -18,8 +18,25 @@ export function DocViewer({
menu,
navIsOpen,
}: DocumentationFeatureDocViewerProps): JSX.Element {
+ const wrapperElement = useRef(null);
const router = useRouter();
+ useEffect(() => {
+ const handleRouteChange = (url: string) => {
+ if (url.includes('#')) return;
+ if (!wrapperElement) return;
+
+ (wrapperElement as any).current.scrollTo({
+ top: 0,
+ left: 0,
+ behavior: 'smooth',
+ });
+ };
+
+ router.events.on('routeChangeComplete', handleRouteChange);
+ return () => router.events.off('routeChangeComplete', handleRouteChange);
+ }, [router, wrapperElement]);
+
return (
<>
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
Report an issue
@@ -87,7 +106,7 @@ export function DocViewer({
target="_blank"
rel="noreferrer"
title="Edit this page on Github"
- className="focus:ring-blue-nx-base focus:border-blue-nx-base relative -ml-px inline-flex items-center rounded-r-md border border-gray-200 bg-white px-4 py-2 text-xs font-medium text-gray-600 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1"
+ className="focus:ring-blue-nx-base focus:border-blue-nx-base relative -ml-px inline-flex items-center rounded-r-md border border-slate-200 bg-white px-4 py-2 text-xs font-medium text-slate-600 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 dark:border-slate-700 dark:bg-slate-800/60 dark:text-slate-400 dark:hover:bg-slate-800"
>
Edit this page
@@ -95,6 +114,7 @@ export function DocViewer({
+
>
);
diff --git a/nx-dev/feature-package-schema-viewer/src/lib/content.tsx b/nx-dev/feature-package-schema-viewer/src/lib/content.tsx
index db0e256a0c3ed..97c1ec8616141 100644
--- a/nx-dev/feature-package-schema-viewer/src/lib/content.tsx
+++ b/nx-dev/feature-package-schema-viewer/src/lib/content.tsx
@@ -1,4 +1,4 @@
-import { XCircleIcon } from '@heroicons/react/solid';
+import { XCircleIcon } from '@heroicons/react/24/solid';
import { getSchemaFromReference } from '@nrwl/nx-dev/data-access-packages';
import { JsonSchema1, NxSchema } from '@nrwl/nx-dev/models-package';
import { renderMarkdown } from '@nrwl/nx-dev/ui-markdoc';
@@ -92,136 +92,135 @@ export function Content({
};
return (
- <>
-
-
-
-
- {schemaViewModel.type}
-
+
+
- {/* We remove the top description on sub property lookup */}
- {!schemaViewModel.subReference && (
- <>
-
{vm.markdown}
-
{/* SPACER */}
- >
- )}
-
- {/*TODO@ben: create new component*/}
- {schemaViewModel.type === 'executors' && !schemaViewModel.subReference && (
-
-
-
- Try out this interactive editor of the configuration object.
- Values are validated as you type and hovering over labels will
- give you more information.
-
- {!!schemaViewModel.currentSchema.presets.length && (
- <>
-
-
- These buttons show the config object for specific common
- tasks.
-
-
- {schemaViewModel.currentSchema.presets.map((p) => (
- {
- setPresets(p.keys);
- }}
- type="button"
- className="focus:border-blue-nx-base focus:ring-blue-nx-base relative inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1"
- >
- {p.name}
-
- ))}
- {!!presets.length && (
- setPresets([])}
- type="button"
- className="focus:border-blue-nx-base focus:ring-blue-nx-base relative inline-flex items-center rounded-md border border-gray-200 bg-gray-50 px-2 py-1 text-xs font-medium text-gray-500 hover:bg-gray-100 focus:z-10 focus:outline-none focus:ring-1"
- >
- Reset
-
- )}
-
- >
- )}
-
-
-
+ {/* We remove the top description on sub property lookup */}
+ {!schemaViewModel.subReference && (
+ <>
+
+ {vm.markdown}
- )}
+
{/* SPACER */}
+ >
+ )}
-
-
- {!schemaViewModel.subReference && (
-
+ {/*TODO@ben: create new component*/}
+ {schemaViewModel.type === 'executors' && !schemaViewModel.subReference && (
+
+
+
+ Try out this interactive editor of the configuration object. Values
+ are validated as you type and hovering over labels will give you
+ more information.
+
+ {!!schemaViewModel.currentSchema.presets.length && (
+ <>
+
+
+ These buttons show the config object for specific common tasks.
+
+
+ {schemaViewModel.currentSchema.presets.map((p) => (
+ {
+ setPresets(p.keys);
+ }}
+ type="button"
+ className="relative inline-flex items-center rounded-md border border-slate-200 bg-white px-4 py-2 px-4 py-2 text-xs font-medium text-slate-600 hover:bg-slate-50 dark:border-slate-700 dark:bg-slate-800/60 dark:text-slate-400 dark:hover:bg-slate-800"
+ >
+ {p.name}
+
+ ))}
+ {!!presets.length && (
+ setPresets([])}
+ type="button"
+ className="relative inline-flex items-center rounded-md border border-slate-200 bg-white px-4 py-2 px-4 py-2 text-xs font-medium text-slate-600 hover:bg-slate-50 dark:border-slate-700 dark:bg-slate-800/60 dark:text-slate-400 dark:hover:bg-slate-800"
+ >
+ Reset
+
+ )}
+
+ >
)}
- {schemaViewModel.subReference && (
-
+
- )}
+
+ )}
+
+
+
+ {!schemaViewModel.subReference && (
+
+ )}
+ {schemaViewModel.subReference && (
+
+ )}
- >
+
);
}
diff --git a/nx-dev/feature-package-schema-viewer/src/lib/package-schema-list.tsx b/nx-dev/feature-package-schema-viewer/src/lib/package-schema-list.tsx
index f1882c4f07ac4..f73ab313a82e6 100644
--- a/nx-dev/feature-package-schema-viewer/src/lib/package-schema-list.tsx
+++ b/nx-dev/feature-package-schema-viewer/src/lib/package-schema-list.tsx
@@ -1,19 +1,40 @@
+import { Menu } from '@nrwl/nx-dev/models-menu';
import { PackageMetadata } from '@nrwl/nx-dev/models-package';
-import { Breadcrumbs } from '@nrwl/nx-dev/ui-common';
+import { Breadcrumbs, Footer, SidebarContainer } from '@nrwl/nx-dev/ui-common';
import { renderMarkdown } from '@nrwl/nx-dev/ui-markdoc';
-import cx from 'classnames';
import { NextSeo } from 'next-seo';
import { useRouter } from 'next/router';
-import { ReactNode } from 'react';
+import { ReactNode, useEffect, useRef } from 'react';
import { Heading1 } from './ui/headings';
import { PackageReference } from './ui/package-reference';
export function PackageSchemaList({
+ menu,
+ navIsOpen,
pkg,
}: {
+ menu: Menu;
+ navIsOpen: boolean;
pkg: PackageMetadata;
}): JSX.Element {
const router = useRouter();
+ const wrapperElement = useRef(null);
+
+ useEffect(() => {
+ const handleRouteChange = (url: string) => {
+ if (url.includes('#')) return;
+ if (!wrapperElement) return;
+
+ (wrapperElement as any).current.scrollTo({
+ top: 0,
+ left: 0,
+ behavior: 'smooth',
+ });
+ };
+
+ router.events.on('routeChangeComplete', handleRouteChange);
+ return () => router.events.off('routeChangeComplete', handleRouteChange);
+ }, [router, wrapperElement]);
const vm: {
pkg: {
@@ -79,64 +100,69 @@ export function PackageSchemaList({
type: 'website',
}}
/>
-
-
-
-
-
-
-
-
-
-
- Package
-
+
+
+
+
+
+
+
+
+
-
-
-
{vm.markdown}
+
-
+
+ {vm.markdown}
+
+
x.id === vm.pkg.id)
+ ?.itemList.find((y) => y.id === vm.pkg.id + '-guides')}
+ executors={pkg.executors}
+ generators={pkg.generators}
+ />
+
>
);
diff --git a/nx-dev/feature-package-schema-viewer/src/lib/package-schema-viewer.tsx b/nx-dev/feature-package-schema-viewer/src/lib/package-schema-viewer.tsx
index d8c6f97f0e923..c0d33803c4912 100644
--- a/nx-dev/feature-package-schema-viewer/src/lib/package-schema-viewer.tsx
+++ b/nx-dev/feature-package-schema-viewer/src/lib/package-schema-viewer.tsx
@@ -1,17 +1,39 @@
-import { Breadcrumbs } from '@nrwl/nx-dev/ui-common';
-import cx from 'classnames';
+import { Menu } from '@nrwl/nx-dev/models-menu';
+import { Breadcrumbs, Footer, SidebarContainer } from '@nrwl/nx-dev/ui-common';
import { NextSeo } from 'next-seo';
import { useRouter } from 'next/router';
+import { useEffect, useRef } from 'react';
import Content from './content';
import { getSchemaViewModel, SchemaViewModel } from './get-schema-view-model';
import { SchemaRequest } from './schema-request.models';
export function PackageSchemaViewer({
+ menu,
+ navIsOpen,
schemaRequest,
}: {
+ menu: Menu;
+ navIsOpen: boolean;
schemaRequest: SchemaRequest;
}): JSX.Element {
const router = useRouter();
+ const wrapperElement = useRef(null);
+
+ useEffect(() => {
+ const handleRouteChange = (url: string) => {
+ if (url.includes('#')) return;
+ if (!wrapperElement) return;
+
+ (wrapperElement as any).current.scrollTo({
+ top: 0,
+ left: 0,
+ behavior: 'smooth',
+ });
+ };
+
+ router.events.on('routeChangeComplete', handleRouteChange);
+ return () => router.events.off('routeChangeComplete', handleRouteChange);
+ }, [router, wrapperElement]);
const vm: {
schema: SchemaViewModel | null;
@@ -63,20 +85,22 @@ export function PackageSchemaViewer({
type: 'website',
}}
/>
-
-
-
-
+
+
>
);
diff --git a/nx-dev/feature-package-schema-viewer/src/lib/parameter-view.tsx b/nx-dev/feature-package-schema-viewer/src/lib/parameter-view.tsx
index ad8722e793b20..e6225d20ca480 100644
--- a/nx-dev/feature-package-schema-viewer/src/lib/parameter-view.tsx
+++ b/nx-dev/feature-package-schema-viewer/src/lib/parameter-view.tsx
@@ -24,23 +24,23 @@ export const ParameterView = (props: {
{props.alias && (
{props.alias}
)}
{props.required && (
-
+
Required
)}
{props.deprecated && (
-
+
Deprecated
)}
{((props.schema as any)['hidden'] as boolean) && (
-
+
Hidden
)}
@@ -60,7 +60,7 @@ export const ParameterView = (props: {
)}
-