@astryxdesign/cli 0.7.2-canary.fe2c655 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +119 -0
- package/README.md +175 -154
- package/api/build/_adapter.d.mts +8 -0
- package/api/build/_adapter.mjs +12 -1
- package/api/build/build.doc.mjs +4 -0
- package/api/build/help/help.mjs +1 -1
- package/api/build/kit/kit.mjs +3 -11
- package/api/component/_adapter.d.mts +72 -1
- package/api/component/_adapter.mjs +212 -18
- package/api/component/component.doc.mjs +6 -1
- package/api/component/component.mjs +82 -15
- package/api/component/component.test.mjs +80 -0
- package/api/component/doc-links.test.mjs +386 -0
- package/api/component/integration-export-name.test.mjs +644 -0
- package/api/component/list/list.mjs +42 -4
- package/api/discover/_adapter.d.mts +132 -12
- package/api/discover/_adapter.mjs +488 -27
- package/api/discover/_adapter.test.mjs +599 -17
- package/api/discover/_catalog-view.d.mts +16 -5
- package/api/discover/_catalog-view.mjs +32 -8
- package/api/discover/detail/doc/doc.mjs +9 -1
- package/api/discover/discover.d.mts +11 -0
- package/api/discover/discover.doc.mjs +9 -7
- package/api/discover/discover.mjs +121 -19
- package/api/discover/discover.type.d.mts +20 -7
- package/api/discover/discover.type.mjs +17 -7
- package/api/discover/list/list.d.mts +4 -3
- package/api/discover/list/list.mjs +17 -10
- package/api/docs/_adapter.d.mts +74 -0
- package/api/docs/_adapter.mjs +553 -16
- package/api/docs/docs.doc.mjs +2 -1
- package/api/docs/docs.mjs +2 -1
- package/api/docs/docs.test.mjs +5 -2
- package/api/docs/integration-tree.test.mjs +22 -0
- package/api/docs/integrationDocs.test.mjs +124 -0
- package/api/docs/list/list.mjs +12 -2
- package/api/docs/reference-blocks.test.mjs +1 -3
- package/api/doctor/_adapter.d.mts +108 -0
- package/api/doctor/_adapter.mjs +223 -4
- package/api/doctor/doctor.d.mts +199 -0
- package/api/doctor/doctor.doc.mjs +3 -2
- package/api/doctor/doctor.mjs +530 -34
- package/api/doctor/doctor.test.mjs +180 -14
- package/api/doctor/release-checks.test.mjs +156 -0
- package/api/doctor/theme-checks.mjs +17 -4
- package/api/doctor/theme-checks.test.mjs +223 -7
- package/api/error.d.mts +10 -0
- package/api/error.mjs +25 -0
- package/api/gap-report/gap-report.d.mts +3 -0
- package/api/gap-report/gap-report.doc.mjs +11 -3
- package/api/gap-report/gap-report.mjs +219 -52
- package/api/gap-report/gap-report.test.mjs +233 -0
- package/api/gap-report/gap-report.type.d.mts +41 -0
- package/api/gap-report/gap-report.type.mjs +18 -0
- package/api/hook/_adapter.mjs +3 -11
- package/api/hook/hook.doc.mjs +4 -0
- package/api/hook/list/list.d.mts +1 -1
- package/api/index.d.mts +2 -0
- package/api/index.mjs +2 -0
- package/api/init/_adapter.d.mts +22 -0
- package/api/init/_adapter.mjs +59 -0
- package/api/init/init.d.mts +7 -5
- package/api/init/init.doc.mjs +28 -7
- package/api/init/init.mjs +28 -4
- package/api/init/init.type.d.mts +48 -3
- package/api/init/init.type.mjs +37 -3
- package/api/init/run/run.d.mts +1 -1
- package/api/init/run/run.mjs +17 -6
- package/api/init/user/user.d.mts +14 -0
- package/api/init/user/user.mjs +87 -0
- package/api/init/user/user.test.mjs +232 -0
- package/api/integration/_adapter.d.mts +45 -0
- package/api/integration/_adapter.mjs +112 -0
- package/api/integration/add-contribution.component-names.test.mjs +66 -0
- package/api/integration/add-contribution.mjs +8 -4
- package/api/integration/add-contribution.test.mjs +4 -2
- package/api/integration/authoring-checks.mjs +110 -6
- package/api/integration/authoring-checks.test.mjs +808 -0
- package/api/integration/authoring-checks.type.d.mts +143 -0
- package/api/integration/authoring-checks.type.mjs +74 -2
- package/api/integration/check/check.d.mts +96 -0
- package/api/integration/check/check.mjs +357 -0
- package/api/integration/check/check.test.mjs +489 -0
- package/api/integration/integration-check.type.d.mts +118 -0
- package/api/integration/integration-check.type.mjs +84 -0
- package/api/integration/integrationCheck.doc.d.mts +10 -0
- package/api/integration/integrationCheck.doc.mjs +73 -0
- package/api/integration/integrationComponentConflicts.doc.mjs +45 -6
- package/api/integration/integrationDocConflicts.doc.mjs +22 -5
- package/api/integration/pack-check.mjs +364 -120
- package/api/integration/pack-check.test.mjs +730 -10
- package/api/integration/validate-integration-fixes.test.mjs +67 -0
- package/api/integration/validate-integration.d.mts +8 -0
- package/api/integration/validate-integration.mjs +63 -9
- package/api/integration/validate-integration.test.mjs +88 -8
- package/api/integration/validate-integration.type.d.mts +16 -0
- package/api/integration/validate-integration.type.mjs +14 -1
- package/api/integration/validate-unread-theme-folders.test.mjs +3 -2
- package/api/integration/validateIntegration.doc.mjs +19 -3
- package/api/search/_adapter.d.mts +11 -0
- package/api/search/_adapter.mjs +25 -0
- package/api/search/search.d.mts +82 -13
- package/api/search/search.doc.mjs +8 -3
- package/api/search/search.domain-priority.test.mjs +108 -18
- package/api/search/search.integration-check.test.mjs +24 -0
- package/api/search/search.mjs +645 -64
- package/api/search/search.test.mjs +179 -1
- package/api/search/search.type.d.mts +14 -1
- package/api/search/search.type.mjs +6 -1
- package/api/swizzle/_adapter.mjs +2 -2
- package/api/swizzle/copy/copy.mjs +29 -15
- package/api/template/template-integration.test.mjs +1 -1
- package/api/template/template.test.mjs +120 -3
- package/api/theme/_adapter.d.mts +16 -0
- package/api/theme/_adapter.mjs +32 -5
- package/api/theme/build/build.d.mts +2 -1
- package/api/theme/build/build.family.test.mjs +64 -0
- package/api/theme/build/build.mjs +250 -38
- package/api/theme/build/build.packed-old-core.test.mjs +20 -3
- package/api/theme/build/font-warning.mjs +5 -3
- package/api/theme/build/font-warning.test.mjs +2 -1
- package/api/theme/remove/remove.test.mjs +2 -2
- package/api/theme/targets/targets.mjs +3 -10
- package/api/theme/themeBuild.doc.mjs +4 -4
- package/api/theme/themeTargets.doc.mjs +4 -0
- package/api/theme/use/use.test.mjs +1 -1
- package/api/upgrade/_adapter.d.mts +40 -2
- package/api/upgrade/_adapter.mjs +118 -5
- package/api/upgrade/run/cli-behind-core.test.mjs +438 -0
- package/api/upgrade/run/run.mjs +35 -2
- package/api/upgrade/status/status.d.mts +21 -5
- package/api/upgrade/status/status.mjs +45 -8
- package/api/upgrade/upgrade.doc.mjs +6 -3
- package/api/upgrade/upgrade.mjs +5 -1
- package/api/upgrade/upgrade.type.d.mts +23 -0
- package/api/upgrade/upgrade.type.mjs +16 -1
- package/assets/codemods/__tests__/registry.test.mjs +1 -0
- package/assets/codemods/registry.mjs +1 -0
- package/assets/codemods/runner.mjs +7 -1
- package/assets/codemods/transforms/v0.7.2/__tests__/migrate-list-edge-compensation-to-edge.test.mjs +120 -0
- package/assets/codemods/transforms/v0.7.2/index.mjs +20 -0
- package/assets/codemods/transforms/v0.7.2/migrate-list-edge-compensation-to-edge.mjs +198 -0
- package/assets/discover/official-packages.json +367 -0
- package/assets/docs/README.md +10 -0
- package/assets/docs/author-a-theme.doc.mjs +3 -3
- package/assets/docs/browser-support.doc.mjs +1 -1
- package/assets/docs/getting-started.doc.mjs +26 -6
- package/assets/docs/styling-overview.doc.mjs +1 -1
- package/assets/docs/theme.doc.dense.mjs +1 -1
- package/assets/docs/theme.doc.mjs +2 -2
- package/assets/docs/theme.doc.zh.mjs +1 -1
- package/assets/docs/tree/add-a-component.doc.mjs +22 -2
- package/assets/docs/tree/add-a-theme.doc.mjs +13 -3
- package/assets/docs/tree/add-a-topic.doc.mjs +54 -9
- package/assets/docs/tree/agent-guidance.doc.mjs +19 -5
- package/assets/docs/tree/block-template.doc.mjs +8 -20
- package/assets/docs/tree/build-the-template.doc.mjs +1 -1
- package/assets/docs/tree/building-blocks.doc.mjs +4 -0
- package/assets/docs/tree/check-the-props.doc.mjs +201 -0
- package/assets/docs/tree/check-your-docs.doc.mjs +69 -11
- package/assets/docs/tree/checks.doc.mjs +32 -24
- package/assets/docs/tree/ci-and-containers.doc.mjs +88 -0
- package/assets/docs/tree/cli-command.doc.mjs +142 -0
- package/assets/docs/tree/cli.doc.mjs +6 -0
- package/assets/docs/tree/codemods.doc.mjs +17 -7
- package/assets/docs/tree/commands.doc.mjs +7 -1
- package/assets/docs/tree/component-family.doc.mjs +8 -6
- package/assets/docs/tree/component-imports.doc.mjs +21 -3
- package/assets/docs/tree/components.doc.mjs +7 -1
- package/assets/docs/tree/computer-agent-guide.doc.mjs +160 -0
- package/assets/docs/tree/computer-integrations.doc.mjs +93 -0
- package/assets/docs/tree/configuration.doc.mjs +7 -3
- package/assets/docs/tree/debug-and-gap-reports.doc.mjs +41 -22
- package/assets/docs/tree/define-the-theme.doc.mjs +6 -5
- package/assets/docs/tree/describe-the-component.doc.mjs +3 -3
- package/assets/docs/tree/docs.doc.mjs +9 -3
- package/assets/docs/tree/document-the-template.doc.mjs +1 -1
- package/assets/docs/tree/document-the-theme.doc.mjs +3 -3
- package/assets/docs/tree/export-template-assets.doc.mjs +1 -1
- package/assets/docs/tree/extend-or-replace.doc.mjs +19 -9
- package/assets/docs/tree/fonts-and-assets.doc.mjs +2 -2
- package/assets/docs/tree/generate-a-palette.doc.mjs +7 -5
- package/assets/docs/tree/global-integrations.doc.mjs +124 -0
- package/assets/docs/tree/global.doc.mjs +131 -0
- package/assets/docs/tree/grade-template-with-agent.doc.mjs +5 -5
- package/assets/docs/tree/install-once.doc.mjs +105 -0
- package/assets/docs/tree/integrations.doc.mjs +13 -1
- package/assets/docs/tree/layout-spacing.doc.mjs +2 -3
- package/assets/docs/tree/layout.doc.mjs +6 -6
- package/assets/docs/tree/links.doc.mjs +7 -6
- package/assets/docs/tree/migration-setup.doc.mjs +3 -2
- package/assets/docs/tree/migration-verification.doc.mjs +0 -1
- package/assets/docs/tree/migration.doc.mjs +0 -1
- package/assets/docs/tree/monorepos.doc.mjs +84 -0
- package/assets/docs/tree/package-and-test.doc.mjs +1 -1
- package/assets/docs/tree/page-template.doc.mjs +4 -8
- package/assets/docs/tree/problems.doc.mjs +205 -0
- package/assets/docs/tree/project-global-or-both.doc.mjs +131 -0
- package/assets/docs/tree/publishing.doc.mjs +6 -6
- package/assets/docs/tree/quick-start.doc.mjs +53 -27
- package/assets/docs/tree/reference.doc.mjs +192 -0
- package/assets/docs/tree/replace-a-core-component.doc.mjs +15 -7
- package/assets/docs/tree/replace-a-core-template.doc.mjs +10 -12
- package/assets/docs/tree/scaffold.doc.mjs +1 -1
- package/assets/docs/tree/sections-and-placement.doc.mjs +9 -11
- package/assets/docs/tree/see-it-in-an-app.doc.mjs +17 -5
- package/assets/docs/tree/short-and-findable.doc.mjs +9 -8
- package/assets/docs/tree/single-component.doc.mjs +15 -6
- package/assets/docs/tree/start-a-template.doc.mjs +18 -8
- package/assets/docs/tree/subcomponent.doc.mjs +6 -6
- package/assets/docs/tree/template-assets.doc.mjs +2 -2
- package/assets/docs/tree/template-doc-overview.doc.mjs +6 -17
- package/assets/docs/tree/template-fonts.doc.mjs +1 -1
- package/assets/docs/tree/template-icons.doc.mjs +1 -1
- package/assets/docs/tree/template-images-media.doc.mjs +1 -1
- package/assets/docs/tree/template-styles.doc.mjs +2 -2
- package/assets/docs/tree/templates.doc.mjs +7 -1
- package/assets/docs/tree/test-in-an-app.doc.mjs +7 -7
- package/assets/docs/tree/test-template-in-app.doc.mjs +5 -5
- package/assets/docs/tree/themes.doc.mjs +4 -0
- package/assets/docs/tree/tokens-and-setup.doc.mjs +19 -15
- package/assets/docs/tree/troubleshooting.doc.mjs +29 -13
- package/assets/docs/tree/type-scale.doc.mjs +3 -3
- package/assets/docs/tree/uninstall.doc.mjs +109 -0
- package/assets/docs/tree/updates.doc.mjs +92 -0
- package/assets/docs/tree/upgrading.doc.mjs +6 -6
- package/assets/docs/tree/use-a-theme-in-an-app.doc.mjs +14 -2
- package/assets/docs/tree/verify-packed-template.doc.mjs +3 -3
- package/assets/docs/tree/versioning.doc.mjs +10 -9
- package/assets/docs/tree/who-answers.doc.mjs +119 -0
- package/assets/docs/tree/write-the-template-file.doc.mjs +7 -6
- package/assets/docs/use-a-theme.doc.mjs +2 -2
- package/assets/docs/working-with-ai.doc.mjs +66 -13
- package/assets/theme.template.ts +1 -1
- package/authoring/codemod/codemod.doc.mjs +7 -3
- package/authoring/config/config.doc.mjs +9 -6
- package/authoring/config/type.ts +4 -2
- package/authoring/debug/parse.d.mts +5 -5
- package/authoring/discover/discover.doc.mjs +7 -1
- package/authoring/doctypes/_schema.d.mts +8 -3
- package/authoring/doctypes/_schema.mjs +1 -0
- package/authoring/doctypes/base/graph-fields.doc.mjs +6 -4
- package/authoring/doctypes/command/command.doc.mjs +20 -12
- package/authoring/doctypes/command/type.ts +14 -0
- package/authoring/doctypes/component/component.doc.mjs +30 -27
- package/authoring/doctypes/component/type.ts +21 -8
- package/authoring/doctypes/enum/enum.doc.mjs +7 -4
- package/authoring/doctypes/function/function.doc.mjs +9 -8
- package/authoring/doctypes/hook/hook.doc.mjs +5 -4
- package/authoring/doctypes/hook/type.ts +4 -0
- package/authoring/doctypes/namespace/namespace.doc.mjs +7 -6
- package/authoring/doctypes/reference/reference.doc.mjs +12 -11
- package/authoring/doctypes/schema/schema.doc.mjs +9 -9
- package/authoring/doctypes/template/integration-template.doc.d.mts +11 -0
- package/authoring/doctypes/template/integration-template.doc.mjs +49 -0
- package/authoring/doctypes/template/parse.d.mts +6 -2
- package/authoring/doctypes/template/parse.mjs +3 -1
- package/authoring/doctypes/template/template.doc.mjs +3 -3
- package/authoring/doctypes/template/type.ts +22 -0
- package/authoring/doctypes/theme/theme.doc.mjs +2 -2
- package/authoring/gap-report/gap-report.doc.mjs +2 -2
- package/authoring/identity/identity.doc.mjs +3 -3
- package/authoring/index.d.ts +2 -0
- package/authoring/integration/integration.doc.mjs +30 -6
- package/authoring/integration/parse.test.mjs +21 -0
- package/authoring/integration/schema.d.mts +16 -3
- package/authoring/integration/schema.mjs +34 -2
- package/authoring/integration/type.ts +12 -0
- package/clients/cli/bin/astryx.mjs +20 -3
- package/clients/cli/cli-command.test.mjs +166 -0
- package/clients/cli/commands/blog.doc.mjs +1 -0
- package/clients/cli/commands/build-theme.batch-report.test.mjs +17 -3
- package/clients/cli/commands/build-theme.font-warning.test.mjs +3 -3
- package/clients/cli/commands/build-theme.mjs +26 -13
- package/clients/cli/commands/build-theme.path-safety.test.mjs +224 -6
- package/clients/cli/commands/build-theme.registry.test.mjs +5 -2
- package/clients/cli/commands/build.doc.mjs +1 -0
- package/clients/cli/commands/build.exit-codes-doc.test.mjs +4 -0
- package/clients/cli/commands/cli-postinstall.test.mjs +49 -1
- package/clients/cli/commands/component.doc.mjs +1 -0
- package/clients/cli/commands/discover.broken-integration.test.mjs +11 -7
- package/clients/cli/commands/discover.doc.mjs +9 -1
- package/clients/cli/commands/discover.mjs +144 -93
- package/clients/cli/commands/discover.no-source.test.mjs +448 -33
- package/clients/cli/commands/discover.sources.test.mjs +20 -1
- package/clients/cli/commands/docs.doc.mjs +1 -0
- package/clients/cli/commands/docs.mjs +49 -19
- package/clients/cli/commands/docs.test.mjs +2 -2
- package/clients/cli/commands/doctor-integration-components.doc.mjs +19 -4
- package/clients/cli/commands/doctor-integration-docs.doc.mjs +20 -5
- package/clients/cli/commands/doctor-integration-templates.doc.mjs +1 -0
- package/clients/cli/commands/doctor-integration-validate.doc.mjs +22 -2
- package/clients/cli/commands/doctor-integration.test.mjs +888 -3
- package/clients/cli/commands/doctor.doc.mjs +12 -2
- package/clients/cli/commands/doctor.mjs +292 -7
- package/clients/cli/commands/doctor.test.mjs +10 -4
- package/clients/cli/commands/gap-report.doc.mjs +15 -2
- package/clients/cli/commands/gap-report.mjs +24 -2
- package/clients/cli/commands/gap-report.test.mjs +79 -0
- package/clients/cli/commands/hook.doc.mjs +1 -0
- package/clients/cli/commands/init.behavior.test.mjs +5 -0
- package/clients/cli/commands/init.doc.mjs +29 -3
- package/clients/cli/commands/integration-add.doc.mjs +7 -0
- package/clients/cli/commands/integration-authoring.test.mjs +49 -3
- package/clients/cli/commands/integration-check.doc.mjs +93 -0
- package/clients/cli/commands/integration-check.test.mjs +441 -0
- package/clients/cli/commands/integration-pack.doc.mjs +8 -1
- package/clients/cli/commands/integration-verify.doc.mjs +8 -1
- package/clients/cli/commands/integration.doc.mjs +6 -2
- package/clients/cli/commands/integration.mjs +119 -7
- package/clients/cli/commands/json-contract.test.mjs +11 -2
- package/clients/cli/commands/manifest.doc.mjs +1 -0
- package/clients/cli/commands/outside-project.test.mjs +774 -0
- package/clients/cli/commands/search.doc.mjs +1 -0
- package/clients/cli/commands/search.mjs +16 -11
- package/clients/cli/commands/search.test.mjs +429 -296
- package/clients/cli/commands/setup-nudge.test.mjs +102 -2
- package/clients/cli/commands/swizzle.doc.mjs +7 -0
- package/clients/cli/commands/swizzle.mjs +5 -3
- package/clients/cli/commands/swizzle.routing.test.mjs +19 -2
- package/clients/cli/commands/template.doc.mjs +1 -0
- package/clients/cli/commands/text-json-parity.test.mjs +5 -0
- package/clients/cli/commands/theme-add-lifecycle.test.mjs +3 -3
- package/clients/cli/commands/theme-add.doc.mjs +8 -1
- package/clients/cli/commands/theme-build.doc.mjs +3 -2
- package/clients/cli/commands/theme-eject.doc.mjs +1 -0
- package/clients/cli/commands/theme-list.behavior.test.mjs +6 -0
- package/clients/cli/commands/theme-list.doc.mjs +1 -0
- package/clients/cli/commands/theme-palette-generate.doc.mjs +1 -0
- package/clients/cli/commands/theme-remove.doc.mjs +7 -0
- package/clients/cli/commands/theme-targets.doc.mjs +1 -0
- package/clients/cli/commands/theme-template.doc.mjs +1 -0
- package/clients/cli/commands/theme-use.doc.mjs +7 -0
- package/clients/cli/commands/upgrade.config-ordering.test.mjs +2 -1
- package/clients/cli/commands/upgrade.doc.mjs +22 -1
- package/clients/cli/commands/upgrade.file-protection.test.mjs +3 -2
- package/clients/cli/commands/upgrade.hook-output.test.mjs +2 -1
- package/clients/cli/commands/upgrade.older-cli.test.mjs +160 -0
- package/clients/cli/index.mjs +112 -16
- package/clients/cli/lib/cli-error.mjs +4 -1
- package/clients/cli/lib/component-format.test.mjs +1 -1
- package/clients/cli/lib/define-command.mjs +2 -2
- package/clients/cli/lib/json-shim.mjs +3 -1
- package/clients/cli/lib/manifest.d.ts +9 -0
- package/clients/cli/lib/manifest.mjs +17 -1
- package/clients/cli/lib/manifest.test.mjs +25 -0
- package/foundation/agent-docs/agent-doc-state.d.mts +35 -6
- package/foundation/agent-docs/agent-doc-state.mjs +66 -6
- package/foundation/agent-docs/agent-docs.d.mts +4 -3
- package/foundation/agent-docs/agent-docs.mjs +11 -9
- package/foundation/agent-docs/computer-agent-text.d.mts +133 -0
- package/foundation/agent-docs/computer-agent-text.mjs +623 -0
- package/foundation/agent-docs/computer-agent-text.test.mjs +602 -0
- package/foundation/config/project.d.mts +35 -3
- package/foundation/config/project.mjs +226 -7
- package/foundation/config/project.test.mjs +66 -0
- package/foundation/config/theme-state.mjs +5 -4
- package/foundation/discovery/authoring-self-docs.mjs +2 -1
- package/foundation/discovery/cli-self-docs.mjs +20 -3
- package/foundation/discovery/cli-self-docs.test.mjs +3 -2
- package/foundation/discovery/component-discovery.d.mts +190 -10
- package/foundation/discovery/component-discovery.export-names.test.mjs +760 -0
- package/foundation/discovery/component-discovery.mjs +864 -56
- package/foundation/discovery/component-discovery.test.mjs +96 -0
- package/foundation/discovery/component-replacement.mjs +20 -1
- package/foundation/discovery/component-replacement.test.mjs +40 -0
- package/foundation/discovery/copied-passages.d.mts +216 -0
- package/foundation/discovery/copied-passages.mjs +720 -0
- package/foundation/discovery/copied-passages.test.mjs +124 -0
- package/foundation/discovery/doc-consistency.d.mts +34 -0
- package/foundation/discovery/doc-consistency.mjs +513 -0
- package/foundation/discovery/doc-consistency.test.mjs +347 -0
- package/foundation/discovery/doc-fluff.d.mts +112 -0
- package/foundation/discovery/doc-fluff.mjs +328 -0
- package/foundation/discovery/doc-fluff.test.mjs +142 -0
- package/foundation/discovery/doc-types.d.mts +157 -0
- package/foundation/discovery/doc-types.mjs +1231 -0
- package/foundation/discovery/doc-types.test.mjs +744 -0
- package/foundation/discovery/docs-discovery.d.mts +88 -0
- package/foundation/discovery/docs-discovery.mjs +83 -2
- package/foundation/discovery/integration-doc-files.d.mts +22 -0
- package/foundation/discovery/integration-doc-files.mjs +231 -0
- package/foundation/discovery/integration-doc-files.test.mjs +246 -0
- package/foundation/discovery/module-exports.d.mts +27 -0
- package/foundation/discovery/module-exports.mjs +356 -31
- package/foundation/discovery/module-exports.test.mjs +172 -0
- package/foundation/discovery/package-tsconfig.d.mts +14 -0
- package/foundation/discovery/package-tsconfig.mjs +228 -0
- package/foundation/discovery/package-tsconfig.test.mjs +210 -0
- package/foundation/discovery/project-typescript.d.mts +32 -0
- package/foundation/discovery/project-typescript.mjs +89 -0
- package/foundation/discovery/prop-drift.d.mts +297 -0
- package/foundation/discovery/prop-drift.mjs +2428 -0
- package/foundation/discovery/prop-drift.test.mjs +2337 -0
- package/foundation/discovery/runner-allowlist.d.mts +40 -0
- package/foundation/discovery/runner-allowlist.mjs +53 -0
- package/foundation/discovery/stray-pointers.d.mts +52 -0
- package/foundation/discovery/stray-pointers.mjs +293 -0
- package/foundation/discovery/stray-pointers.test.mjs +86 -0
- package/foundation/discovery/template-adapter.mjs +74 -5
- package/foundation/discovery/template-needs.mjs +5 -2
- package/foundation/discovery/theme-imports.mjs +8 -4
- package/foundation/discovery/theme-imports.test.mjs +1 -1
- package/foundation/discovery/type-match.d.mts +53 -0
- package/foundation/discovery/type-match.mjs +660 -0
- package/foundation/discovery/type-match.test.mjs +169 -0
- package/foundation/discovery/type-text.d.mts +68 -0
- package/foundation/discovery/type-text.mjs +658 -0
- package/foundation/discovery/type-text.test.mjs +196 -0
- package/foundation/discovery/unresolved-references.d.mts +62 -0
- package/foundation/discovery/unresolved-references.mjs +790 -0
- package/foundation/discovery/unresolved-references.test.mjs +567 -0
- package/foundation/doc-compiler/doc-loads.test.mjs +51 -1
- package/foundation/doc-compiler/inputs.mjs +27 -1
- package/foundation/doc-compiler/inputs.test.mjs +0 -1
- package/foundation/doc-compiler/links.d.mts +41 -5
- package/foundation/doc-compiler/links.mjs +167 -28
- package/foundation/doc-compiler/links.test.mjs +97 -4
- package/foundation/doc-compiler/read.d.mts +1 -1
- package/foundation/doc-compiler/tree.mjs +30 -1
- package/foundation/doc-compiler/tree.test.mjs +8 -1
- package/foundation/env/cli-command.d.mts +83 -0
- package/foundation/env/cli-command.mjs +152 -0
- package/foundation/env/cli-command.test.mjs +129 -0
- package/foundation/env/node-version.test.mjs +15 -3
- package/foundation/env/package-manager.d.mts +93 -9
- package/foundation/env/package-manager.global.test.mjs +66 -0
- package/foundation/env/package-manager.mjs +184 -13
- package/foundation/env/package-manager.test.mjs +341 -15
- package/foundation/env/project-scope.d.mts +9 -0
- package/foundation/env/project-scope.mjs +33 -0
- package/foundation/env/search-path.d.mts +42 -0
- package/foundation/env/search-path.mjs +205 -0
- package/foundation/env/search-path.test.mjs +122 -0
- package/foundation/env/user-dirs.d.mts +39 -0
- package/foundation/env/user-dirs.mjs +93 -0
- package/foundation/env/user-dirs.test.mjs +72 -0
- package/foundation/env/user-settings.d.mts +46 -0
- package/foundation/env/user-settings.mjs +106 -0
- package/foundation/env/user-settings.test.mjs +64 -0
- package/foundation/fs/file-protection.mjs +15 -1
- package/foundation/fs/module-loader.d.mts +2 -1
- package/foundation/fs/module-loader.mjs +60 -4
- package/foundation/fs/module-loader.stdout.test.mjs +3 -2
- package/foundation/fs/module-loader.test.mjs +194 -0
- package/foundation/fs/path-compare.d.mts +33 -0
- package/foundation/fs/path-compare.mjs +73 -0
- package/foundation/fs/paths.d.mts +57 -1
- package/foundation/fs/paths.mjs +131 -3
- package/foundation/fs/paths.test.mjs +10 -1
- package/foundation/integrations/computer-integrations.d.mts +78 -0
- package/foundation/integrations/computer-integrations.mjs +316 -0
- package/foundation/integrations/computer-integrations.test.mjs +292 -0
- package/foundation/integrations/contribution-inventory.d.mts +11 -0
- package/foundation/integrations/contribution-inventory.mjs +56 -3
- package/foundation/integrations/integration-warnings.mjs +3 -2
- package/foundation/integrations/integration-warnings.test.mjs +8 -9
- package/foundation/integrations/integrations.d.mts +25 -1
- package/foundation/integrations/integrations.mjs +46 -3
- package/foundation/integrations/issue.ts +6 -0
- package/foundation/integrations/validate-contributions.d.mts +2 -0
- package/foundation/integrations/validate-contributions.mjs +41 -1
- package/foundation/release/agent-text-worker.d.mts +4 -0
- package/foundation/release/agent-text-worker.mjs +52 -0
- package/foundation/release/cache.d.mts +310 -0
- package/foundation/release/cache.mjs +1216 -0
- package/foundation/release/cache.test.mjs +920 -0
- package/foundation/release/choose.d.mts +207 -0
- package/foundation/release/choose.mjs +677 -0
- package/foundation/release/choose.test.mjs +427 -0
- package/foundation/release/core-worker.d.mts +4 -0
- package/foundation/release/core-worker.mjs +38 -0
- package/foundation/release/global-state.d.mts +259 -0
- package/foundation/release/global-state.mjs +472 -0
- package/foundation/release/global-state.test.mjs +381 -0
- package/foundation/release/handoff.d.mts +60 -0
- package/foundation/release/handoff.e2e.test.mjs +278 -0
- package/foundation/release/handoff.mjs +357 -0
- package/foundation/release/lock-lease.d.mts +23 -0
- package/foundation/release/lock-lease.mjs +80 -0
- package/foundation/release/notices.d.mts +253 -0
- package/foundation/release/notices.mjs +596 -0
- package/foundation/release/notices.test.mjs +565 -0
- package/foundation/release/npm-guard.d.mts +4 -0
- package/foundation/release/npm-guard.mjs +126 -0
- package/foundation/release/project.d.mts +141 -0
- package/foundation/release/project.mjs +466 -0
- package/foundation/release/project.test.mjs +288 -0
- package/foundation/release/refresh-worker.d.mts +4 -0
- package/foundation/release/refresh-worker.mjs +27 -0
- package/foundation/release/run-context.d.mts +47 -0
- package/foundation/release/run-context.mjs +149 -0
- package/foundation/release/update-notice-env.d.mts +28 -0
- package/foundation/release/update-notice-env.mjs +39 -0
- package/foundation/response/base.d.ts +26 -3
- package/foundation/response/error-codes.d.mts +3 -1
- package/foundation/response/error-codes.doc.mjs +12 -0
- package/foundation/response/error-codes.mjs +17 -0
- package/foundation/response/error-codes.test.mjs +2 -0
- package/foundation/response/json-contract.test.mjs +7 -2
- package/foundation/response/json.mjs +4 -1
- package/foundation/response/response-types.doc.mjs +22 -11
- package/foundation/response/response-types.doc.test.mjs +46 -0
- package/foundation/response/response.doc.mjs +3 -3
- package/foundation/xle/browser-imports.test.mjs +74 -0
- package/foundation/xle/registry.mjs +4 -0
- package/foundation/xle/registry.test.mjs +28 -0
- package/package.json +11 -11
- package/scripts/postinstall.mjs +24 -5
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/components/describe-the-component/single-component`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/components/describe-the-component/single-component`:
|
|
5
5
|
* write and maintain the default ComponentDoc for one public component.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -56,14 +56,13 @@ export default {
|
|
|
56
56
|
style: 'unordered',
|
|
57
57
|
items: [
|
|
58
58
|
'Keep `props` on the top-level doc. Private implementation helpers do not need entries.',
|
|
59
|
-
'
|
|
59
|
+
'Name the doc after the source file beside it, such as `AcmeCarousel.doc.mjs` beside `AcmeCarousel.tsx`, and change both in the same pull request.',
|
|
60
60
|
'If the module later exposes several related public exports, adapt this doc with {@link generic:component-family}.',
|
|
61
61
|
],
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
|
-
type: '
|
|
65
|
-
|
|
66
|
-
presentation: 'summary',
|
|
64
|
+
type: 'prose',
|
|
65
|
+
text: 'Every field is in {@link schema:component-doc}.',
|
|
67
66
|
},
|
|
68
67
|
],
|
|
69
68
|
},
|
|
@@ -87,6 +86,15 @@ export default {
|
|
|
87
86
|
],
|
|
88
87
|
},`,
|
|
89
88
|
},
|
|
89
|
+
{
|
|
90
|
+
type: 'prose',
|
|
91
|
+
text: "Set `keywords` to the words people search for: synonyms and the task the component does, such as `keywords: ['slider', 'slideshow', 'rotating cards']`. `astryx search` ranks a match on a component's name or keywords above one in its description, so without keywords a search for the component's task can list Core components first. Check with the words a person would type:",
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'code',
|
|
95
|
+
lang: 'bash',
|
|
96
|
+
code: 'astryx search "rotating cards" --type component',
|
|
97
|
+
},
|
|
90
98
|
],
|
|
91
99
|
},
|
|
92
100
|
{
|
|
@@ -122,6 +130,7 @@ export default {
|
|
|
122
130
|
'Set `required: true` only when every caller must pass the prop.',
|
|
123
131
|
'Write `default` exactly as the value should appear in documentation.',
|
|
124
132
|
'Skip styling escape hatches such as `xstyle`, `className`, and `style`.',
|
|
133
|
+
'`astryx doctor integration components` lists a documented prop the code lacks, a public prop the doc misses, and a wrong `required`. See {@link generic:check-the-props}.',
|
|
125
134
|
],
|
|
126
135
|
},
|
|
127
136
|
],
|
|
@@ -157,7 +166,7 @@ export default {
|
|
|
157
166
|
{
|
|
158
167
|
type: 'code',
|
|
159
168
|
lang: 'bash',
|
|
160
|
-
code: '
|
|
169
|
+
code: 'astryx component AcmeCarousel\nastryx doctor integration components\nastryx integration verify',
|
|
161
170
|
},
|
|
162
171
|
],
|
|
163
172
|
},
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/templates/start-a-template`:
|
|
5
|
-
* template is, why an integration shares one, whether it is a page or
|
|
6
|
-
* block, and how to add one.
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates/start-a-template`:
|
|
5
|
+
* what a template is, why an integration shares one, whether it is a page or
|
|
6
|
+
* a block, and how to add one.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
/** @type {import('@astryxdesign/cli/authoring').ReferenceDoc} */
|
|
@@ -38,8 +38,8 @@ export const docs = {
|
|
|
38
38
|
type: 'code',
|
|
39
39
|
lang: 'bash',
|
|
40
40
|
code: `# How an app finds a template and copies it
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
astryx template --list
|
|
42
|
+
astryx template acme-dashboard src/app/dashboard`,
|
|
43
43
|
},
|
|
44
44
|
],
|
|
45
45
|
},
|
|
@@ -97,7 +97,7 @@ npx astryx template acme-dashboard src/app/dashboard`,
|
|
|
97
97
|
{
|
|
98
98
|
type: 'code',
|
|
99
99
|
lang: 'bash',
|
|
100
|
-
code: '# See the Core ids\
|
|
100
|
+
code: '# See the Core ids\nastryx --json template --list --package @astryxdesign/core',
|
|
101
101
|
},
|
|
102
102
|
],
|
|
103
103
|
},
|
|
@@ -112,8 +112,8 @@ npx astryx template acme-dashboard src/app/dashboard`,
|
|
|
112
112
|
{
|
|
113
113
|
type: 'code',
|
|
114
114
|
lang: 'bash',
|
|
115
|
-
code: `
|
|
116
|
-
|
|
115
|
+
code: `astryx integration add template acme-dashboard
|
|
116
|
+
astryx integration add template acme-stat-card --type block`,
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
type: 'code',
|
|
@@ -139,5 +139,15 @@ Declare template root ./templates in astryx.integration.mjs.
|
|
|
139
139
|
},
|
|
140
140
|
],
|
|
141
141
|
},
|
|
142
|
+
{
|
|
143
|
+
id: 'global-mode',
|
|
144
|
+
title: 'In global mode',
|
|
145
|
+
content: [
|
|
146
|
+
{
|
|
147
|
+
type: 'prose',
|
|
148
|
+
text: 'In global mode: when users install your package for their computer, beside the global CLI, your templates show up in folders outside any project; inside a project, only if the project installs your package. See {@link namespace:global} and {@link generic:global-integrations}.',
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
},
|
|
142
152
|
],
|
|
143
153
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/components/describe-the-component/subcomponent`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/components/describe-the-component/subcomponent`:
|
|
5
5
|
* give one member of a component family its own ComponentDoc.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -51,6 +51,7 @@ export default {
|
|
|
51
51
|
type: 'component',
|
|
52
52
|
name: 'AcmeDialog',
|
|
53
53
|
displayName: 'Acme Dialog',
|
|
54
|
+
import: '@acme/astryx-widgets/components/AcmeDialog',
|
|
54
55
|
usage: {description: 'Presents a focused task above the current page.'},
|
|
55
56
|
components: [
|
|
56
57
|
{
|
|
@@ -82,6 +83,7 @@ export default {
|
|
|
82
83
|
type: 'component',
|
|
83
84
|
name: 'AcmeDialogHeader',
|
|
84
85
|
displayName: 'Acme Dialog Header',
|
|
86
|
+
import: '@acme/astryx-widgets/components/AcmeDialogHeader',
|
|
85
87
|
subComponentOf: 'AcmeDialog',
|
|
86
88
|
description: 'Labels an Acme Dialog and holds its close action.',
|
|
87
89
|
props: [
|
|
@@ -95,10 +97,8 @@ export default {
|
|
|
95
97
|
};`,
|
|
96
98
|
},
|
|
97
99
|
{
|
|
98
|
-
type: '
|
|
99
|
-
|
|
100
|
-
projection: {fields: ['subComponentOf', 'description', 'props']},
|
|
101
|
-
presentation: 'full',
|
|
100
|
+
type: 'prose',
|
|
101
|
+
text: 'Every field is in {@link schema:component-doc}.',
|
|
102
102
|
},
|
|
103
103
|
{
|
|
104
104
|
type: 'list',
|
|
@@ -106,7 +106,7 @@ export default {
|
|
|
106
106
|
items: [
|
|
107
107
|
'`subComponentOf` must exactly match the parent doc\'s `name`.',
|
|
108
108
|
'`description` explains this member\'s role in the family. `usage` is optional; add it when the member needs guidance beyond that sentence.',
|
|
109
|
-
'The
|
|
109
|
+
'The CLI does not copy family fields such as `group`, `category`, or `keywords` from the parent to the child. Set any the child needs in its own doc.',
|
|
110
110
|
],
|
|
111
111
|
},
|
|
112
112
|
],
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/templates/template-assets`:
|
|
5
|
-
* style, font, icon, and media dependency survive a template copy.
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates/build-the-template/template-assets`:
|
|
5
|
+
* make every style, font, icon, and media dependency survive a template copy.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
/** @type {import('@astryxdesign/cli/authoring').NamespaceDoc} */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/templates/document-the-template/template-doc-overview`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates/document-the-template/template-doc-overview`:
|
|
5
5
|
* the source and doc file pair, the fields every template doc shares, and how
|
|
6
6
|
* to check what Astryx lists.
|
|
7
7
|
*/
|
|
@@ -54,22 +54,11 @@ export const docs = {
|
|
|
54
54
|
content: [
|
|
55
55
|
{
|
|
56
56
|
type: 'prose',
|
|
57
|
-
text: '
|
|
57
|
+
text: 'The fields below apply to every page and block. The page, block, and replacement guides add the fields unique to each.',
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
|
-
type: '
|
|
61
|
-
|
|
62
|
-
projection: {
|
|
63
|
-
fields: [
|
|
64
|
-
'type',
|
|
65
|
-
'name',
|
|
66
|
-
'displayName',
|
|
67
|
-
'description',
|
|
68
|
-
'keywords',
|
|
69
|
-
'isReady',
|
|
70
|
-
],
|
|
71
|
-
},
|
|
72
|
-
presentation: 'full',
|
|
60
|
+
type: 'prose',
|
|
61
|
+
text: 'Every field is in {@link schema:template-doc}.',
|
|
73
62
|
},
|
|
74
63
|
{
|
|
75
64
|
type: 'list',
|
|
@@ -78,7 +67,7 @@ export const docs = {
|
|
|
78
67
|
'Set `type` to the kind you chose in {@link generic:start-a-template}. It decides which other fields the doc accepts.',
|
|
79
68
|
'The file name sets the template id ({@link generic:start-a-template}). Labels live in the doc: the terminal list prints `name`, and JSON listings print `displayName`. Changing either never changes the id.',
|
|
80
69
|
'Write the description for someone choosing between templates. The Doc metadata category in {@link generic:template-grading-rubric} defines what a complete description covers.',
|
|
81
|
-
"Name the ideas the template serves in `keywords`: the domains, tasks, and other names a builder might use for it, in lowercase, such as `['monitoring', 'uptime', 'on-call']` for a service-health dashboard.
|
|
70
|
+
"Name the ideas the template serves in `keywords`: the domains, tasks, and other names a builder might use for it, in lowercase, such as `['monitoring', 'uptime', 'on-call']` for a service-health dashboard. How search and build use them is in {@link generic:authoring}, so the description can stay about the layout.",
|
|
82
71
|
'Add `isReady: false` as soon as you generate the doc, because a doc without `isReady` is listed as ready. Keep it until the template passes {@link generic:test-template-in-app} and the quality review.',
|
|
83
72
|
],
|
|
84
73
|
},
|
|
@@ -99,7 +88,7 @@ export const docs = {
|
|
|
99
88
|
{
|
|
100
89
|
type: 'code',
|
|
101
90
|
lang: 'bash',
|
|
102
|
-
code: '
|
|
91
|
+
code: 'astryx --json template --list --package @acme/astryx-templates',
|
|
103
92
|
},
|
|
104
93
|
{
|
|
105
94
|
type: 'code',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/templates/build-the-template/template-assets/template-fonts`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates/build-the-template/template-assets/template-fonts`:
|
|
5
5
|
* use the app typeface by default, and ship every font file a template needs
|
|
6
6
|
* when it must bring its own.
|
|
7
7
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/templates/build-the-template/template-assets/template-icons`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates/build-the-template/template-assets/template-icons`:
|
|
5
5
|
* render template icons through Astryx and ship custom product icons from the
|
|
6
6
|
* package.
|
|
7
7
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/templates/build-the-template/template-assets/template-images-media`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates/build-the-template/template-assets/template-images-media`:
|
|
5
5
|
* keep template images and video working after the copy, or make them clear
|
|
6
6
|
* placeholders.
|
|
7
7
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/templates/build-the-template/template-assets/template-styles`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates/build-the-template/template-assets/template-styles`:
|
|
5
5
|
* style a template with Astryx first, keep editable styles in the file, and
|
|
6
6
|
* ship shared CSS from the package.
|
|
7
7
|
*/
|
|
@@ -85,7 +85,7 @@ const styles = stylex.create({
|
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
type: 'prose',
|
|
88
|
-
text: 'Then export that path and include the file in the package ({@link generic:export-template-assets}).
|
|
88
|
+
text: 'Then export that path and include the file in the package ({@link generic:export-template-assets}). TypeScript 6 and later check side-effect imports by default, so this import type-checks only when the app or its framework declares `*.css` modules.',
|
|
89
89
|
},
|
|
90
90
|
],
|
|
91
91
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/templates`: guides for adding,
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates`: guides for adding,
|
|
5
5
|
* documenting, packaging, and testing templates in an integration package.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -31,4 +31,10 @@ export const docs = {
|
|
|
31
31
|
accepts: {kinds: ['namespace']},
|
|
32
32
|
},
|
|
33
33
|
},
|
|
34
|
+
blocks: [
|
|
35
|
+
{
|
|
36
|
+
type: 'prose',
|
|
37
|
+
text: 'In global mode: templates from an integration installed for the computer show up outside projects; inside a project, only templates from integrations the project installs. See {@link namespace:global} and {@link generic:global-integrations}.',
|
|
38
|
+
},
|
|
39
|
+
],
|
|
34
40
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/test-in-an-app`: install the packed
|
|
4
|
+
* @file `astryx docs cli/integrations/ship/test-in-an-app`: install the packed
|
|
5
5
|
* package in an app and run the commands its users run.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -33,7 +33,7 @@ export const docs = {
|
|
|
33
33
|
type: 'list',
|
|
34
34
|
style: 'unordered',
|
|
35
35
|
items: [
|
|
36
|
-
"Install the CLI in the app too: `
|
|
36
|
+
"Install the CLI in the app too: `astryx` runs the CLI from the app's `node_modules`.",
|
|
37
37
|
'The app holds a copy, not a link. After each change, pack again and run the same `npm install`.',
|
|
38
38
|
'Reading your work inside the package shows your source. The app shows what npm would publish.',
|
|
39
39
|
],
|
|
@@ -51,7 +51,7 @@ export const docs = {
|
|
|
51
51
|
{
|
|
52
52
|
type: 'code',
|
|
53
53
|
lang: 'bash',
|
|
54
|
-
code: '
|
|
54
|
+
code: 'astryx component AcmeCarousel\nastryx template --list --package @acme/astryx-widgets\nastryx theme list --package @acme/astryx-widgets\nastryx docs acme\nastryx search deploying --type doc',
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
type: 'table',
|
|
@@ -63,11 +63,11 @@ export const docs = {
|
|
|
63
63
|
],
|
|
64
64
|
[
|
|
65
65
|
'`template --list --package`',
|
|
66
|
-
'An `acme-dashboard` entry
|
|
66
|
+
'An `acme-dashboard` entry whose `package` is `@acme/astryx-widgets`',
|
|
67
67
|
],
|
|
68
68
|
[
|
|
69
69
|
'`theme list --package`',
|
|
70
|
-
'
|
|
70
|
+
'An `ocean` entry whose `package` is `@acme/astryx-widgets`',
|
|
71
71
|
],
|
|
72
72
|
['`docs acme`', 'Your section, with guides such as `deploying`'],
|
|
73
73
|
[
|
|
@@ -88,12 +88,12 @@ export const docs = {
|
|
|
88
88
|
content: [
|
|
89
89
|
{
|
|
90
90
|
type: 'prose',
|
|
91
|
-
text: '`
|
|
91
|
+
text: '`astryx doctor` checks the whole app, including every package it loaded. `doctor integration validate` checks your package as the app installed it.',
|
|
92
92
|
},
|
|
93
93
|
{
|
|
94
94
|
type: 'code',
|
|
95
95
|
lang: 'bash',
|
|
96
|
-
code: '
|
|
96
|
+
code: 'astryx doctor\nastryx doctor integration validate @acme/astryx-widgets',
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
type: 'code',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/templates/build-the-template/package-and-test/test-template-in-app`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates/build-the-template/package-and-test/test-template-in-app`:
|
|
5
5
|
* copy the packed template into a clean app, build it, and render it the way
|
|
6
6
|
* apps will.
|
|
7
7
|
*/
|
|
@@ -38,14 +38,14 @@ export const docs = {
|
|
|
38
38
|
type: 'code',
|
|
39
39
|
lang: 'bash',
|
|
40
40
|
code: `# Confirm discovery and metadata
|
|
41
|
-
|
|
41
|
+
astryx --json template --list --package @acme/astryx-widgets
|
|
42
42
|
|
|
43
43
|
# Inspect source without writing
|
|
44
|
-
|
|
44
|
+
astryx template acme-dashboard --package @acme/astryx-widgets
|
|
45
45
|
|
|
46
46
|
# Copy a page and a block to their real app locations
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
astryx template acme-dashboard --package @acme/astryx-widgets src/app/acme-dashboard
|
|
48
|
+
astryx template acme-stat-card --package @acme/astryx-widgets src/components`,
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
type: 'list',
|
|
@@ -21,6 +21,10 @@ export const docs = {
|
|
|
21
21
|
'extend a theme',
|
|
22
22
|
],
|
|
23
23
|
blocks: [
|
|
24
|
+
{
|
|
25
|
+
type: 'prose',
|
|
26
|
+
text: 'In global mode: outside projects, the theme list includes themes from integrations installed for the computer, and `theme add` there only shows them; inside a project, it lists only themes from integrations the project installs. See {@link namespace:global} and {@link generic:global-integrations}.',
|
|
27
|
+
},
|
|
24
28
|
{
|
|
25
29
|
type: 'prose',
|
|
26
30
|
text: 'A theme contribution has editable `defineTheme` source plus a built module and production CSS. `integration add theme` scaffolds the source and declares the package exports; `theme build` writes the built outputs. An app installs the package, runs `theme add`, applies the theme from its generated app module, and customizes it with `extends` instead of copying source.',
|
|
@@ -15,13 +15,7 @@ export const docs = {
|
|
|
15
15
|
category: 'guide',
|
|
16
16
|
description:
|
|
17
17
|
'Using design tokens in custom styles and configuring a StyleX compiler for swizzled components.',
|
|
18
|
-
keywords: [
|
|
19
|
-
'StyleX setup',
|
|
20
|
-
'swizzle',
|
|
21
|
-
'webpack',
|
|
22
|
-
'Vite',
|
|
23
|
-
'Next.js',
|
|
24
|
-
],
|
|
18
|
+
keywords: ['StyleX setup', 'swizzle', 'webpack', 'Vite', 'Next.js'],
|
|
25
19
|
|
|
26
20
|
sections: [
|
|
27
21
|
{
|
|
@@ -77,30 +71,40 @@ const styles = stylex.create({
|
|
|
77
71
|
content: [
|
|
78
72
|
{
|
|
79
73
|
type: 'prose',
|
|
80
|
-
text:
|
|
74
|
+
text: "Astryx components ship pre-compiled: `astryx.css` and each package's own stylesheet hold all of their styles, so consuming the published packages needs no StyleX setup. But `astryx swizzle <Component>` copies the raw StyleX *source* into your app, and StyleX source requires a build-time StyleX compiler to produce atomic CSS. Without one, importing the component throws an error that starts `Unexpected 'stylex.create' call at runtime`, and the page does not render. If a swizzled component throws that error, the app is missing a StyleX compiler. The same applies if you author your own StyleX with `stylex.create()`.",
|
|
81
75
|
},
|
|
82
76
|
{
|
|
83
77
|
type: 'table',
|
|
84
78
|
headers: ['Bundler', 'StyleX plugin'],
|
|
85
79
|
rows: [
|
|
86
80
|
['Webpack', '@stylexjs/webpack-plugin'],
|
|
87
|
-
[
|
|
88
|
-
|
|
89
|
-
|
|
81
|
+
[
|
|
82
|
+
'Vite / Rollup',
|
|
83
|
+
'@stylexjs/rollup-plugin (or a community Vite plugin)',
|
|
84
|
+
],
|
|
85
|
+
[
|
|
86
|
+
'Babel (any bundler)',
|
|
87
|
+
'@stylexjs/babel-plugin + @stylexjs/postcss-plugin',
|
|
88
|
+
],
|
|
89
|
+
[
|
|
90
|
+
'Next.js (App Router, SWC)',
|
|
91
|
+
'An SWC-based transform; see the Next.js note below',
|
|
92
|
+
],
|
|
90
93
|
],
|
|
91
94
|
},
|
|
92
95
|
{
|
|
93
96
|
type: 'prose',
|
|
94
|
-
text:
|
|
97
|
+
text: "Next.js (App Router) is the sharp edge. StyleX's canonical compiler is a Babel plugin, but introducing a Babel config in Next.js disables the SWC compiler, and with it SWC-dependent features like `next/font`.",
|
|
95
98
|
},
|
|
96
99
|
{
|
|
97
100
|
type: 'prose',
|
|
98
|
-
text:
|
|
101
|
+
text: "The repo's `apps/example-nextjs-stylex` takes the Babel path (`next/babel`, `@stylexjs/babel-plugin`, `@stylexjs/postcss-plugin`). Babel turns off SWC, so that app does not use `next/font`. To keep `next/font`, use an SWC transform such as `@stylexswc/nextjs-plugin`.",
|
|
99
102
|
},
|
|
100
103
|
{
|
|
101
104
|
type: 'code',
|
|
102
105
|
lang: 'js',
|
|
103
|
-
label:
|
|
106
|
+
label:
|
|
107
|
+
'next.config.mjs: SWC-based StyleX transform (keeps next/font working)',
|
|
104
108
|
code: `import stylexPlugin from '@stylexswc/nextjs-plugin';
|
|
105
109
|
|
|
106
110
|
export default stylexPlugin({
|
|
@@ -117,7 +121,7 @@ export default stylexPlugin({
|
|
|
117
121
|
type: 'list',
|
|
118
122
|
style: 'unordered',
|
|
119
123
|
items: [
|
|
120
|
-
|
|
124
|
+
"Symptom of a missing compiler: importing a swizzled component throws an error that starts `Unexpected 'stylex.create' call at runtime`, and the page does not render.",
|
|
121
125
|
'A Babel config turns off SWC in Next.js; skip it if you need `next/font`.',
|
|
122
126
|
'Pure theming (defineTheme + astryx theme build) needs NO StyleX compiler; only swizzled/authored StyleX source does.',
|
|
123
127
|
'Keep loading `astryx.css` with a StyleX compiler in place. The compiler builds your own and swizzled source only; never add `node_modules/@astryxdesign` to its inputs.',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/troubleshooting`: the messages the CLI
|
|
4
|
+
* @file `astryx docs cli/integrations/help/troubleshooting`: the messages the CLI
|
|
5
5
|
* prints while you build, verify, and install an integration, and the fix
|
|
6
6
|
* for each.
|
|
7
7
|
*/
|
|
@@ -47,7 +47,7 @@ export const docs = {
|
|
|
47
47
|
],
|
|
48
48
|
[
|
|
49
49
|
'Note: `integration pack --check` is deprecated.',
|
|
50
|
-
'The old name still runs the same check. Switch to `
|
|
50
|
+
'The old name still runs the same check. Switch to `astryx integration verify`; the old name will be removed in a later release.',
|
|
51
51
|
],
|
|
52
52
|
],
|
|
53
53
|
},
|
|
@@ -59,7 +59,7 @@ export const docs = {
|
|
|
59
59
|
content: [
|
|
60
60
|
{
|
|
61
61
|
type: 'prose',
|
|
62
|
-
text: '`
|
|
62
|
+
text: '`astryx integration verify` prints each failure as a `[fail]` line. Add `--json` to see its issue code, such as `component_export_missing`.',
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
type: 'table',
|
|
@@ -67,7 +67,7 @@ export const docs = {
|
|
|
67
67
|
rows: [
|
|
68
68
|
[
|
|
69
69
|
'`component_export_missing`: `Component "AcmeCarousel" advertises import "@acme/astryx-widgets/components/AcmeCarousel", but that packed module does not export "AcmeCarousel".`',
|
|
70
|
-
"package.json has no `exports` map, or the module does not export the name. Keep `export function AcmeCarousel`, and add the entry: `npm pkg set 'exports[./components/AcmeCarousel]=./components/AcmeCarousel.tsx'`.",
|
|
70
|
+
"package.json has no `exports` map, or the module does not export the name. Keep `export function AcmeCarousel`, and add the entry: `npm pkg set 'exports[./components/AcmeCarousel]=./components/AcmeCarousel.tsx'`. When the quoted name is a file name, such as `acme-carousel`, set the doc's `name` to the component the file exports. A type-only export does not count.",
|
|
71
71
|
],
|
|
72
72
|
[
|
|
73
73
|
'`template_export_missing`: `Template "acme-dashboard" public import "@acme/astryx-widgets/templates/acme-dashboard" does not have a default export.`',
|
|
@@ -78,7 +78,7 @@ export const docs = {
|
|
|
78
78
|
"The `exports` map has no entry for it. Run `npm pkg set 'exports[./components/AcmeCarousel]=./components/AcmeCarousel.tsx'`, or `'exports[./templates/acme-dashboard]=./templates/acme-dashboard.tsx'` for a template.",
|
|
79
79
|
],
|
|
80
80
|
[
|
|
81
|
-
|
|
81
|
+
"`component_import_unresolvable`: `…but a consumer cannot resolve it: Cannot find package '@acme/old-name'`",
|
|
82
82
|
"You renamed the package after the add wrote each doc's `import`. Change `import` in every component doc to the new name.",
|
|
83
83
|
],
|
|
84
84
|
[
|
|
@@ -95,19 +95,19 @@ export const docs = {
|
|
|
95
95
|
],
|
|
96
96
|
[
|
|
97
97
|
'`component_replaces_needs_cli` (a warning): The package has a component that sets `replaces` but declares no @astryxdesign/cli peer, or a peer range that admits an earlier CLI.',
|
|
98
|
-
"Run `npm pkg set 'peerDependencies.@astryxdesign/cli=>=0.6.7'` and `npm pkg set 'peerDependenciesMeta.@astryxdesign/cli.optional=true' --json` to turn the replacement on. Until then
|
|
98
|
+
"Run `npm pkg set 'peerDependencies.@astryxdesign/cli=>=0.6.7'` and `npm pkg set 'peerDependenciesMeta.@astryxdesign/cli.optional=true' --json` to turn the replacement on. Until then apps see no change ({@link generic:replace-a-core-component}).",
|
|
99
99
|
],
|
|
100
100
|
[
|
|
101
101
|
'`keywords_needs_cli`: The package has a template that sets `keywords` but declares no @astryxdesign/cli peer.',
|
|
102
|
-
"Run `npm pkg set 'peerDependencies.@astryxdesign/cli=>=0.6.6'` and `npm pkg set 'peerDependenciesMeta.@astryxdesign/cli.optional=true' --json`.
|
|
102
|
+
"Run `npm pkg set 'peerDependencies.@astryxdesign/cli=>=0.6.6'` and `npm pkg set 'peerDependenciesMeta.@astryxdesign/cli.optional=true' --json`. What an older CLI does with the field is in {@link generic:template-doc-overview}.",
|
|
103
103
|
],
|
|
104
104
|
[
|
|
105
105
|
'`themes_need_cli`: The package ships a theme but declares no @astryxdesign/cli peer.',
|
|
106
|
-
"Run `npm pkg set 'peerDependencies.@astryxdesign/cli=>=0.6.4'` and `npm pkg set 'peerDependenciesMeta.@astryxdesign/cli.optional=true' --json`. A
|
|
106
|
+
"Run `npm pkg set 'peerDependencies.@astryxdesign/cli=>=0.6.4'` and `npm pkg set 'peerDependenciesMeta.@astryxdesign/cli.optional=true' --json`. A CLI older than published 0.6.4 cannot read typed theme descriptors, so it drops your themes and can hide your doc topics.",
|
|
107
107
|
],
|
|
108
108
|
[
|
|
109
109
|
'`section_ids_need_cli`: The package has a doc section that sets `id` but declares no @astryxdesign/cli peer.',
|
|
110
|
-
'The same fix as `themes_need_cli`, or drop the section `id`s: a
|
|
110
|
+
'The same fix as `themes_need_cli`, or drop the section `id`s: a CLI older than published 0.6.4 rejects them and hides your doc topics.',
|
|
111
111
|
],
|
|
112
112
|
],
|
|
113
113
|
},
|
|
@@ -125,9 +125,17 @@ export const docs = {
|
|
|
125
125
|
type: 'table',
|
|
126
126
|
headers: ['Symptom', 'Fix'],
|
|
127
127
|
rows: [
|
|
128
|
+
[
|
|
129
|
+
'`Error: No component named "AcmeCarousel"` for a component your package documents.',
|
|
130
|
+
"Its doc still names its file. Set `name` to the export, such as `name: 'AcmeCarousel'` in `acme-carousel.doc.mjs`. A family member is listed only when the module its family doc imports exports it ({@link generic:component-family}).",
|
|
131
|
+
],
|
|
132
|
+
[
|
|
133
|
+
"`astryx component Dialog` opens Core's `Dialog`, not yours.",
|
|
134
|
+
"A name that Core, a legacy docs package, or another package's file already has stays theirs. Run `astryx component Dialog --package @acme/astryx-widgets`, or give your component a name of its own.",
|
|
135
|
+
],
|
|
128
136
|
[
|
|
129
137
|
'`Error: Template "dashboard" is ambiguous — narrow it with --type and/or --package.`',
|
|
130
|
-
"Your template id matches a Core id. Rename it, such as `acme-dashboard`, or set `replaces: 'dashboard'` to take its place. `
|
|
138
|
+
"Your template id matches a Core id. Rename it, such as `acme-dashboard`, or set `replaces: 'dashboard'` to take its place. `astryx doctor integration templates` warns about this before you publish.",
|
|
131
139
|
],
|
|
132
140
|
[
|
|
133
141
|
'`invalid_doc_graph`: `placement.parent "namespace:nope" names no namespace; @acme/astryx-widgets declares "acme".`',
|
|
@@ -135,15 +143,23 @@ export const docs = {
|
|
|
135
143
|
],
|
|
136
144
|
[
|
|
137
145
|
'Error: Unknown topic "acme". The docs of @acme/astryx-widgets did not load; run `astryx doctor integration docs` in that package to see why.',
|
|
138
|
-
'One invalid doc hides all of your docs. Run `
|
|
146
|
+
'One invalid doc hides all of your docs. Run `astryx doctor integration docs` in the package and fix the `invalid_doc` it names.',
|
|
147
|
+
],
|
|
148
|
+
[
|
|
149
|
+
'`cli-command` warns: `Loaded integrations declare different CLI commands`',
|
|
150
|
+
"Two packages the app loads set different `cliCommand` values, so the CLI prints the package manager's command. Agree on one command, or remove the package that does not belong. See {@link generic:cli-command}.",
|
|
151
|
+
],
|
|
152
|
+
[
|
|
153
|
+
'`invalid_cli_command`',
|
|
154
|
+
'Your `cliCommand` is not one line of plain text of at most 120 characters, so it is ignored. Fix the value; the rest of the manifest still loads.',
|
|
139
155
|
],
|
|
140
156
|
[
|
|
141
|
-
'`
|
|
157
|
+
'`astryx upgrade` runs none of your codemods',
|
|
142
158
|
'The app must list your package in `integrations` in `astryx.config`, or pass `--integration @acme/astryx-widgets`. It runs a codemod folder only when its version is after `--from` and at most the installed `@astryxdesign/core`.',
|
|
143
159
|
],
|
|
144
160
|
[
|
|
145
161
|
'Your docs section, templates, or themes are missing only in some apps',
|
|
146
|
-
|
|
162
|
+
"Those apps run a CLI too old to read them ({@link generic:checks} lists which field needs which CLI). Update `@astryxdesign/cli` there, and keep your optional `@astryxdesign/cli` peer so npm checks the app's CLI against it when the app installs your package.",
|
|
147
163
|
],
|
|
148
164
|
],
|
|
149
165
|
},
|
|
@@ -76,7 +76,7 @@ export const docs = {
|
|
|
76
76
|
type: 'code',
|
|
77
77
|
lang: 'tsx',
|
|
78
78
|
label: 'Heading for document structure',
|
|
79
|
-
code: `import {Heading} from '@astryxdesign/core';
|
|
79
|
+
code: `import {Heading} from '@astryxdesign/core/Heading';
|
|
80
80
|
|
|
81
81
|
// Heading levels map to semantic tokens: level 1 → --text-heading-1-*
|
|
82
82
|
<Heading level={1}>Page Title</Heading>
|
|
@@ -96,7 +96,7 @@ export const docs = {
|
|
|
96
96
|
type: 'code',
|
|
97
97
|
lang: 'tsx',
|
|
98
98
|
label: 'Text for body, label, and display text',
|
|
99
|
-
code: `import {Text} from '@astryxdesign/core';
|
|
99
|
+
code: `import {Text} from '@astryxdesign/core/Text';
|
|
100
100
|
|
|
101
101
|
<Text type="body">Body text at the base scale.</Text>
|
|
102
102
|
<Text type="large">Emphasized body text.</Text>
|
|
@@ -121,7 +121,7 @@ export const docs = {
|
|
|
121
121
|
type: 'code',
|
|
122
122
|
lang: 'tsx',
|
|
123
123
|
label: 'Customizing the type scale via defineTheme',
|
|
124
|
-
code: `import {defineTheme} from '@astryxdesign/core';
|
|
124
|
+
code: `import {defineTheme} from '@astryxdesign/core/theme';
|
|
125
125
|
|
|
126
126
|
// Adjust the entire ramp holistically with base and ratio
|
|
127
127
|
const editorialTheme = defineTheme({
|