@astryxdesign/cli 0.6.3 → 0.6.4-canary.06c8fa3
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 +194 -0
- package/README.md +121 -85
- package/api/blog/blog.doc.mjs +1 -0
- package/api/build/_adapter.d.mts +50 -0
- package/api/build/_adapter.mjs +60 -0
- package/api/build/build.doc.mjs +16 -9
- package/api/build/build.test.mjs +197 -8
- package/api/build/build.type.d.mts +91 -2
- package/api/build/build.type.mjs +52 -8
- package/api/build/help/help.d.mts +12 -5
- package/api/build/help/help.mjs +69 -6
- package/api/build/kit/kit.d.mts +4 -1
- package/api/build/kit/kit.mjs +165 -49
- package/api/build/kit/rank.d.mts +44 -0
- package/api/build/kit/rank.mjs +432 -0
- package/api/build/kit/rank.test.mjs +196 -0
- package/api/component/_adapter.d.mts +31 -12
- package/api/component/_adapter.mjs +79 -15
- package/api/component/component.d.mts +6 -3
- package/api/component/component.doc.mjs +36 -13
- package/api/component/component.mjs +339 -22
- package/api/component/component.test.mjs +38 -0
- package/api/component/component.type.d.mts +47 -11
- package/api/component/component.type.mjs +76 -24
- package/api/component/detail/blocks/blocks.d.mts +2 -1
- package/api/component/detail/blocks/blocks.mjs +4 -3
- package/api/component/list/list.d.mts +0 -5
- package/api/component/list/list.mjs +40 -11
- package/api/discover/_adapter.d.mts +114 -6
- package/api/discover/_adapter.mjs +372 -17
- package/api/discover/_adapter.test.mjs +215 -0
- package/api/discover/_catalog-view.d.mts +115 -0
- package/api/discover/_catalog-view.mjs +203 -0
- package/api/discover/_catalog-view.test.mjs +128 -0
- package/api/discover/detail/detail.d.mts +18 -6
- package/api/discover/detail/detail.mjs +67 -13
- package/api/discover/detail/detail.test.mjs +85 -0
- package/api/discover/detail/item/item.d.mts +26 -0
- package/api/discover/detail/item/item.mjs +78 -0
- package/api/discover/detail/item/item.test.mjs +73 -0
- package/api/discover/discover.d.mts +3 -9
- package/api/discover/discover.doc.mjs +62 -18
- package/api/discover/discover.mjs +220 -36
- package/api/discover/discover.test.mjs +11 -2
- package/api/discover/discover.type.d.mts +150 -11
- package/api/discover/discover.type.mjs +107 -17
- package/api/discover/list/list.d.mts +20 -6
- package/api/discover/list/list.mjs +45 -12
- package/api/discover/list/list.test.mjs +46 -0
- package/api/discover/search/search.d.mts +18 -16
- package/api/discover/search/search.mjs +102 -56
- package/api/discover/search/search.test.mjs +144 -10
- package/api/docs/_adapter.d.mts +272 -41
- package/api/docs/_adapter.mjs +985 -108
- package/api/docs/compiled-topics.test.mjs +78 -0
- package/api/docs/detail/detail.mjs +22 -63
- package/api/docs/detail/section/section.d.mts +1 -1
- package/api/docs/detail/section/section.mjs +54 -19
- package/api/docs/detail/section/section.test.mjs +50 -0
- package/api/docs/docs.d.mts +10 -3
- package/api/docs/docs.doc.mjs +55 -16
- package/api/docs/docs.mjs +53 -10
- package/api/docs/docs.test.mjs +166 -4
- package/api/docs/docs.type.d.mts +221 -5
- package/api/docs/docs.type.mjs +153 -11
- package/api/docs/index/index.d.mts +18 -0
- package/api/docs/index/index.mjs +40 -0
- package/api/docs/index/index.test.mjs +62 -0
- package/api/docs/integration-tree.test.mjs +555 -0
- package/api/docs/integrationDocs.test.mjs +114 -8
- package/api/docs/list/list.mjs +28 -12
- package/api/docs/node/node.d.mts +43 -0
- package/api/docs/node/node.mjs +192 -0
- package/api/docs/reference-blocks.test.mjs +406 -0
- package/api/doctor/doctor.d.mts +104 -1
- package/api/doctor/doctor.doc.mjs +1 -0
- package/api/doctor/doctor.mjs +635 -7
- package/api/doctor/doctor.test.mjs +732 -11
- package/api/gap-report/gap-report.doc.mjs +8 -4
- package/api/hook/_adapter.mjs +19 -5
- package/api/hook/hook.doc.mjs +1 -0
- package/api/hook/hook.type.d.mts +3 -3
- package/api/hook/hook.type.mjs +11 -11
- package/api/hook/list/list.d.mts +2 -2
- package/api/hook/list/list.mjs +69 -17
- package/api/index.d.mts +2 -3
- package/api/index.mjs +5 -4
- package/api/init/init.doc.mjs +6 -1
- package/api/init/init.test.mjs +41 -1
- package/api/init/remove/remove.mjs +1 -1
- package/api/init/run/run.mjs +20 -10
- package/api/integration/add-contribution.component-names.test.mjs +120 -0
- package/api/integration/add-contribution.d.mts +2 -1
- package/api/integration/add-contribution.mjs +130 -15
- package/api/integration/add-contribution.test.mjs +258 -7
- package/api/integration/add-helpers.d.mts +5 -2
- package/api/integration/add-helpers.mjs +36 -9
- package/api/integration/add-theme.mjs +34 -64
- package/api/integration/add-theme.test.mjs +105 -21
- package/api/integration/authoring-checks.mjs +138 -28
- package/api/integration/authoring-checks.test.mjs +179 -7
- package/api/integration/authoring-checks.type.mjs +6 -1
- package/api/integration/integration-authoring.type.d.mts +3 -1
- package/api/integration/integration-authoring.type.mjs +2 -0
- package/api/integration/integration-block-exports.test.mjs +10 -6
- package/api/integration/integrationAdd.doc.mjs +14 -4
- package/api/integration/integrationAddAgentDoc.doc.mjs +1 -0
- package/api/integration/integrationAddCodemod.doc.mjs +1 -0
- package/api/integration/integrationAddComponent.doc.mjs +2 -1
- package/api/integration/integrationAddDoc.doc.mjs +8 -1
- package/api/integration/integrationAddTemplate.doc.mjs +1 -0
- package/api/integration/integrationAddTheme.doc.mjs +6 -5
- package/api/integration/integrationComponentConflicts.doc.mjs +1 -0
- package/api/integration/integrationDocConflicts.doc.mjs +2 -1
- package/api/integration/integrationPackCheck.doc.mjs +2 -1
- package/api/integration/integrationTemplateConflicts.doc.d.mts +3 -0
- package/api/integration/integrationTemplateConflicts.doc.mjs +4 -0
- package/api/integration/pack-check.lifecycle-output.test.mjs +105 -0
- package/api/integration/pack-check.mjs +111 -10
- package/api/integration/pack-check.test.mjs +387 -47
- package/api/integration/pack-check.type.d.mts +26 -2
- package/api/integration/pack-check.type.mjs +14 -1
- package/api/integration/summarizeIssues.doc.mjs +1 -0
- package/api/integration/template-conflict-compatibility.test.mjs +73 -0
- package/api/integration/validate-integration-fixes.test.mjs +1389 -0
- package/api/integration/validate-integration.mjs +52 -102
- package/api/integration/validate-integration.test.mjs +179 -26
- package/api/integration/validate-unread-theme-folders.test.mjs +110 -0
- package/api/integration/validateIntegration.doc.mjs +3 -2
- package/api/json/assertResponse.doc.mjs +1 -0
- package/api/json/envelope-types.test.mjs +76 -0
- package/api/json/index.ts +2 -1
- package/api/json/isError.doc.mjs +1 -0
- package/api/json/parseResponse.doc.mjs +3 -2
- package/api/search/search-return-type.test.mjs +54 -0
- package/api/search/search.d.mts +62 -11
- package/api/search/search.doc.mjs +8 -2
- package/api/search/search.mjs +471 -83
- package/api/search/search.test.mjs +142 -1
- package/api/search/search.type.d.mts +15 -3
- package/api/search/search.type.mjs +5 -2
- package/api/swizzle/copy/copy.mjs +28 -11
- package/api/swizzle/swizzle.doc.mjs +2 -1
- package/api/swizzle/swizzle.type.d.mts +2 -2
- package/api/swizzle/swizzle.type.mjs +2 -2
- package/api/template/copy/copy.mjs +17 -23
- package/api/template/copy/copy.test.mjs +17 -0
- package/api/template/list/list.mjs +1 -0
- package/api/template/table-floating-bulk-actions.test.mjs +66 -0
- package/api/template/template-integration.test.mjs +1008 -3
- package/api/template/template-suffix.test.mjs +41 -21
- package/api/template/template.d.mts +1 -1
- package/api/template/template.doc.mjs +30 -8
- package/api/template/template.mjs +46 -9
- package/api/template/template.type.d.mts +12 -14
- package/api/template/template.type.mjs +15 -14
- package/api/theme/_adapter.d.mts +2 -3
- package/api/theme/_adapter.mjs +4 -5
- package/api/theme/add/add.binary.test.mjs +84 -0
- package/api/theme/add/add.mjs +31 -22
- package/api/theme/add/add.rollback.test.mjs +158 -0
- package/api/theme/add/add.staging.test.mjs +83 -0
- package/api/theme/add/add.test.mjs +14 -1
- package/api/theme/build/build.family.test.mjs +7 -12
- package/api/theme/build/build.mjs +140 -59
- package/api/theme/build/build.public-component-vars.test.mjs +1 -1
- package/api/theme/build/build.receipt-doc.test.mjs +111 -0
- package/api/theme/build/build.rollback.test.mjs +148 -0
- package/api/theme/build/build.test.mjs +127 -0
- package/api/theme/build/font-warning.mjs +3 -3
- package/api/theme/build/font-warning.test.mjs +5 -2
- package/api/theme/generateTonalPalette.doc.mjs +1 -0
- package/api/theme/integration-themes.test.mjs +39 -28
- package/api/theme/list/list.test.mjs +19 -20
- package/api/theme/listThemes.doc.mjs +6 -5
- package/api/theme/palette/generate/generate.mjs +8 -3
- package/api/theme/palette/generate/generate.test.mjs +96 -0
- package/api/theme/palette/generate/generator.d.mts +10 -13
- package/api/theme/palette/generate/generator.mjs +15 -4
- package/api/theme/palette/generate/generator.test.mjs +10 -0
- package/api/theme/template/template.mjs +11 -2
- package/api/theme/template/template.test.mjs +20 -0
- package/api/theme/theme.type.d.mts +170 -11
- package/api/theme/theme.type.mjs +94 -27
- package/api/theme/themeAdd.doc.mjs +4 -3
- package/api/theme/themeBuild.doc.mjs +8 -4
- package/api/theme/themeList.doc.mjs +6 -3
- package/api/theme/themeListAvailable.doc.mjs +5 -3
- package/api/theme/themePaletteGenerate.doc.mjs +1 -0
- package/api/theme/themeTargets.doc.mjs +1 -0
- package/api/theme/themeTemplate.doc.mjs +6 -2
- package/api/upgrade/_adapter.d.mts +32 -5
- package/api/upgrade/_adapter.mjs +139 -22
- package/api/upgrade/list/list.mjs +2 -1
- package/api/upgrade/list/list.test.mjs +73 -0
- package/api/upgrade/project-context.test.mjs +272 -0
- package/api/upgrade/provider-agreement.test.mjs +152 -0
- package/api/upgrade/run/files-changed.test.mjs +111 -0
- package/api/upgrade/run/run.mjs +359 -60
- package/api/upgrade/status/status.mjs +2 -2
- package/api/upgrade/upgrade.doc.mjs +12 -5
- package/api/upgrade/upgrade.type.d.mts +43 -5
- package/api/upgrade/upgrade.type.mjs +29 -13
- package/assets/codemods/__tests__/registry.test.mjs +1 -0
- package/assets/codemods/__tests__/runner.test.mjs +332 -8
- package/assets/codemods/file-count.test.mjs +163 -0
- package/assets/codemods/integration-discovery.mjs +48 -4
- package/assets/codemods/integration-discovery.test.mjs +73 -0
- package/assets/codemods/integration-runner.mjs +59 -7
- package/assets/codemods/integration-runner.protection.test.mjs +153 -0
- package/assets/codemods/registry.mjs +1 -0
- package/assets/codemods/run-codemod.mjs +177 -34
- package/assets/codemods/runner.mjs +353 -104
- package/assets/codemods/term-log.mjs +32 -8
- package/assets/codemods/term-log.test.mjs +19 -1
- package/assets/codemods/transform-prop.mjs +109 -0
- package/assets/codemods/transform-prop.test.mjs +95 -0
- package/assets/codemods/transforms/v0.0.14/__tests__/rename-status-variants.test.mjs +86 -165
- package/assets/codemods/transforms/v0.0.14/rename-status-variants.mjs +72 -210
- package/assets/codemods/transforms/v0.1.8/__tests__/rename-avatar-size-scale.test.mjs +83 -115
- package/assets/codemods/transforms/v0.1.8/rename-avatar-size-scale.mjs +57 -186
- package/assets/codemods/transforms/v0.3.0/__tests__/unwrap-authoring-factories.test.mjs +27 -5
- package/assets/codemods/transforms/v0.3.0/unwrap-authoring-factories.mjs +20 -5
- package/assets/codemods/transforms/v0.6.0/__tests__/next-codemods.test.mjs +47 -0
- package/assets/codemods/transforms/v0.6.0/rename-resizable-pixel-bounds.mjs +57 -10
- package/assets/codemods/transforms/v0.6.4/__tests__/migrate-native-picker-to-presentation.test.mjs +63 -0
- package/assets/codemods/transforms/v0.6.4/__tests__/migrate-theme-catalog-to-descriptors.test.mjs +220 -0
- package/assets/codemods/transforms/v0.6.4/index.mjs +31 -0
- package/assets/codemods/transforms/v0.6.4/migrate-native-picker-to-presentation.mjs +148 -0
- package/assets/codemods/transforms/v0.6.4/migrate-theme-catalog-to-descriptors.mjs +141 -0
- package/assets/docs/README.md +9 -0
- package/assets/docs/authoring.doc.mjs +14 -0
- package/assets/docs/getting-started.doc.mjs +2 -2
- package/assets/docs/internationalization.doc.mjs +7 -5
- package/assets/docs/layout.doc.dense.mjs +2 -2
- package/assets/docs/layout.doc.mjs +1 -1
- package/assets/docs/principles.doc.mjs +6 -6
- package/assets/docs/styling-libraries.doc.mjs +4 -4
- package/assets/docs/styling.doc.mjs +4 -4
- package/assets/docs/theme.doc.mjs +5 -5
- package/assets/docs/tokens.doc.mjs +1 -1
- package/assets/docs/tree/api.doc.mjs +30 -0
- package/assets/docs/tree/cli.doc.mjs +23 -0
- package/assets/docs/tree/commands.doc.mjs +25 -0
- package/assets/docs/tree/component-lookups.doc.mjs +149 -0
- package/assets/docs/{cli-integrations.doc.mjs → tree/integrations.doc.mjs} +144 -26
- package/assets/docs/tree/integrations.test.mjs +62 -0
- package/assets/docs/tree/writing-docs.doc.mjs +286 -0
- package/assets/docs/working-with-ai.doc.mjs +4 -4
- package/assets/templates/blocks/components/CheckboxList/CheckboxListSelectAllPattern.doc.mjs +1 -1
- package/assets/templates/blocks/components/CheckboxList/CheckboxListSelectAllPattern.tsx +1 -3
- package/assets/templates/blocks/components/DateInput/DateInputDateRange.tsx +1 -1
- package/assets/templates/blocks/components/InternationalizationProvider/InternationalizationProvider01ShippedLocale.tsx +1 -1
- package/assets/templates/blocks/components/Item/ItemDocumentTabs.doc.mjs +14 -0
- package/assets/templates/blocks/components/Item/ItemDocumentTabs.tsx +100 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaInlineRail.doc.mjs +14 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaInlineRail.tsx +61 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaOverscrollChaining.doc.mjs +14 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaOverscrollChaining.tsx +126 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaShowcase.doc.mjs +15 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaShowcase.tsx +86 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaStickyGroupHeaders.doc.mjs +14 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaStickyGroupHeaders.tsx +99 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaStickyPassthrough.doc.mjs +14 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaStickyPassthrough.tsx +122 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaTwoAxisBoard.doc.mjs +14 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaTwoAxisBoard.tsx +95 -0
- package/assets/templates/blocks/components/Table/TableBulkActionsTable.doc.mjs +14 -0
- package/assets/templates/blocks/components/Table/TableBulkActionsTable.tsx +71 -0
- package/assets/templates/blocks/components/Table/TableFloatingBulkActionsTable.doc.mjs +19 -0
- package/assets/templates/blocks/components/Table/TableFloatingBulkActionsTable.tsx +139 -0
- package/assets/templates/blocks/components/TimeInput/TimeInputConstrained.tsx +1 -0
- package/assets/templates/blocks/components/Timer/TimerFormats.doc.mjs +14 -0
- package/assets/templates/blocks/components/Timer/TimerFormats.tsx +34 -0
- package/assets/templates/blocks/components/Timer/TimerInline.doc.mjs +14 -0
- package/assets/templates/blocks/components/Timer/TimerInline.tsx +14 -0
- package/assets/templates/blocks/components/Timer/TimerShowcase.doc.mjs +13 -0
- package/assets/templates/blocks/components/Timer/TimerShowcase.tsx +47 -0
- package/assets/templates/blocks/components/Timer/TimerTypography.doc.mjs +14 -0
- package/assets/templates/blocks/components/Timer/TimerTypography.tsx +31 -0
- package/assets/templates/blocks/components/Toolbar/ToolbarTableFilter.doc.mjs +19 -3
- package/assets/templates/blocks/components/Toolbar/ToolbarTableFilter.tsx +383 -65
- package/assets/templates/pages/table-tree/page.tsx +1704 -0
- package/assets/templates/pages/table-tree/template.doc.mjs +12 -0
- package/assets/templates/themes/butter/butterTheme.doc.mjs +11 -0
- package/assets/templates/themes/chocolate/chocolateTheme.doc.mjs +11 -0
- package/assets/templates/themes/gothic/gothicTheme.doc.mjs +11 -0
- package/assets/templates/themes/matcha/matchaTheme.doc.mjs +11 -0
- package/assets/templates/themes/neutral/neutralTheme.doc.mjs +11 -0
- package/assets/templates/themes/stone/stoneTheme.doc.mjs +11 -0
- package/assets/templates/themes/y2k/y2kTheme.doc.mjs +11 -0
- package/authoring/_shared/contract.ts +22 -0
- package/authoring/codemod/codemod.doc.mjs +7 -2
- package/authoring/codemod/parse.d.mts +8 -8
- package/authoring/codemod/parse.mjs +8 -6
- package/authoring/codemod/type.ts +12 -0
- package/authoring/config/config.doc.mjs +11 -3
- package/authoring/config/debug-composition.test.mjs +92 -0
- package/authoring/config/parse.d.mts +15 -13
- package/authoring/config/parse.mjs +27 -8
- package/authoring/config/parse.test.mjs +8 -0
- package/authoring/config/type.ts +31 -8
- package/authoring/debug/debug.doc.d.mts +11 -0
- package/authoring/debug/debug.doc.mjs +182 -0
- package/authoring/debug/parse.d.mts +8 -8
- package/authoring/debug/parse.mjs +3 -3
- package/authoring/discover/discover.doc.d.mts +13 -0
- package/authoring/discover/discover.doc.mjs +138 -0
- package/authoring/discover/parse.d.mts +24 -0
- package/authoring/discover/parse.mjs +128 -0
- package/authoring/discover/parse.test.mjs +124 -0
- package/authoring/discover/type.ts +87 -0
- package/authoring/doctypes/_schema.d.mts +790 -23
- package/authoring/doctypes/_schema.mjs +543 -39
- package/authoring/doctypes/base/graph-fields.doc.d.mts +9 -0
- package/authoring/doctypes/base/graph-fields.doc.mjs +64 -0
- package/authoring/doctypes/base/type.ts +41 -0
- package/authoring/doctypes/command/command.doc.mjs +5 -4
- package/authoring/doctypes/command/parse.d.mts +2 -2
- package/authoring/doctypes/command/parse.mjs +1 -1
- package/authoring/doctypes/command/type.ts +6 -5
- package/authoring/doctypes/component/component.doc.mjs +6 -3
- package/authoring/doctypes/component/parse.d.mts +2 -2
- package/authoring/doctypes/component/parse.mjs +1 -1
- package/authoring/doctypes/component/type.ts +6 -5
- package/authoring/doctypes/doctypes-new.test.mjs +48 -6
- package/authoring/doctypes/enum/enum.doc.mjs +1 -1
- package/authoring/doctypes/enum/parse.d.mts +2 -2
- package/authoring/doctypes/enum/parse.mjs +1 -1
- package/authoring/doctypes/enum/type.ts +4 -2
- package/authoring/doctypes/function/function.doc.mjs +7 -2
- package/authoring/doctypes/function/parse.d.mts +2 -2
- package/authoring/doctypes/function/parse.mjs +1 -1
- package/authoring/doctypes/function/type.ts +9 -4
- package/authoring/doctypes/hook/hook.doc.mjs +4 -0
- package/authoring/doctypes/hook/parse.d.mts +2 -2
- package/authoring/doctypes/hook/parse.mjs +1 -1
- package/authoring/doctypes/hook/type.ts +5 -4
- package/authoring/doctypes/legacy.d.mts +8 -6
- package/authoring/doctypes/legacy.mjs +5 -4
- package/authoring/doctypes/load-contract.test.mjs +233 -0
- package/authoring/doctypes/namespace/namespace.doc.d.mts +9 -0
- package/authoring/doctypes/namespace/namespace.doc.mjs +128 -0
- package/authoring/doctypes/namespace/parse.d.mts +12 -0
- package/authoring/doctypes/namespace/parse.mjs +25 -0
- package/authoring/doctypes/namespace/parse.test.mjs +163 -0
- package/authoring/doctypes/namespace/type.ts +74 -0
- package/authoring/doctypes/parse.d.mts +22 -18
- package/authoring/doctypes/parse.mjs +22 -11
- package/authoring/doctypes/parse.test.mjs +77 -3
- package/authoring/doctypes/reference/parse.d.mts +2 -2
- package/authoring/doctypes/reference/parse.mjs +8 -5
- package/authoring/doctypes/reference/reference.doc.mjs +48 -6
- package/authoring/doctypes/reference/type.ts +70 -7
- package/authoring/doctypes/schema/parse.d.mts +2 -2
- package/authoring/doctypes/schema/parse.mjs +1 -1
- package/authoring/doctypes/schema/schema.doc.mjs +1 -1
- package/authoring/doctypes/schema/type.ts +4 -4
- package/authoring/doctypes/template/parse.d.mts +94 -1
- package/authoring/doctypes/template/parse.mjs +40 -2
- package/authoring/doctypes/template/parse.test.mjs +26 -2
- package/authoring/doctypes/template/template.doc.mjs +13 -3
- package/authoring/doctypes/template/type.ts +13 -2
- package/authoring/doctypes/theme/parse.d.mts +35 -0
- package/authoring/doctypes/theme/parse.mjs +76 -0
- package/authoring/doctypes/theme/theme.doc.d.mts +9 -0
- package/authoring/doctypes/theme/theme.doc.mjs +79 -0
- package/authoring/doctypes/theme/type.ts +42 -0
- package/authoring/doctypes/types.ts +12 -10
- package/authoring/gap-report/gap-report.doc.d.mts +12 -0
- package/authoring/gap-report/gap-report.doc.mjs +183 -0
- package/authoring/gap-report/parse.d.mts +10 -10
- package/authoring/gap-report/parse.mjs +6 -6
- package/authoring/gap-report/type.ts +1 -1
- package/authoring/identity/identity.doc.d.mts +9 -0
- package/authoring/identity/identity.doc.mjs +61 -0
- package/authoring/identity/type.ts +132 -0
- package/authoring/index.d.mts +3 -0
- package/authoring/index.d.ts +62 -17
- package/authoring/index.mjs +4 -1
- package/authoring/integration/integration.doc.mjs +15 -8
- package/authoring/integration/parse.d.mts +2 -2
- package/authoring/integration/parse.mjs +1 -1
- package/authoring/integration/parse.test.mjs +10 -1
- package/authoring/integration/schema.d.mts +6 -4
- package/authoring/integration/schema.mjs +9 -3
- package/authoring/integration/type.ts +19 -8
- package/authoring/shadcn/receipt.d.mts +6 -6
- package/clients/cli/__tests__/cliManifest.test.ts +27 -29
- package/clients/cli/command-load-failure.test.mjs +83 -0
- package/clients/cli/command-result-coverage.test.mjs +7 -7
- package/clients/cli/commands/blog.doc.mjs +1 -1
- package/clients/cli/commands/blog.mjs +23 -8
- package/clients/cli/commands/blog.test.mjs +42 -1
- package/clients/cli/commands/build-theme.adaptations.test.mjs +100 -1
- package/clients/cli/commands/build-theme.ascii-output.test.mjs +161 -0
- package/clients/cli/commands/build-theme.flag-docs.test.mjs +110 -0
- package/clients/cli/commands/build-theme.mjs +16 -50
- package/clients/cli/commands/build-theme.path-safety.test.mjs +86 -1
- package/clients/cli/commands/build-theme.variants.test.mjs +76 -0
- package/clients/cli/commands/build.doc.mjs +16 -8
- package/clients/cli/commands/build.exit-codes-doc.test.mjs +50 -0
- package/clients/cli/commands/build.mjs +137 -114
- package/clients/cli/commands/build.playbook.test.mjs +75 -0
- package/clients/cli/commands/build.text-fields.test.mjs +81 -0
- package/clients/cli/commands/component/index.mjs +153 -61
- package/clients/cli/commands/component-batch.test.mjs +341 -0
- package/clients/cli/commands/component-ownership.test.mjs +92 -3
- package/clients/cli/commands/component-package.test.mjs +46 -0
- package/clients/cli/commands/component-resolution.test.mjs +21 -0
- package/clients/cli/commands/component.doc.mjs +24 -7
- package/clients/cli/commands/component.test.mjs +19 -0
- package/clients/cli/commands/debug-result-summary.test.mjs +2 -2
- package/clients/cli/commands/detail-levels.test.mjs +2 -2
- package/clients/cli/commands/discover.broken-integration.test.mjs +52 -5
- package/clients/cli/commands/discover.components-flag.test.mjs +97 -0
- package/clients/cli/commands/discover.doc.mjs +55 -9
- package/clients/cli/commands/discover.mjs +393 -118
- package/clients/cli/commands/discover.sources.test.mjs +267 -0
- package/clients/cli/commands/discover.text-projection.test.mjs +103 -0
- package/clients/cli/commands/docs.doc.mjs +28 -6
- package/clients/cli/commands/docs.mjs +240 -26
- package/clients/cli/commands/docs.test.mjs +222 -1
- package/clients/cli/commands/doctor-integration-components.doc.mjs +1 -1
- package/clients/cli/commands/doctor-integration-docs.doc.mjs +3 -3
- package/clients/cli/commands/doctor-integration-templates.doc.mjs +15 -8
- package/clients/cli/commands/doctor-integration-validate.doc.mjs +1 -1
- package/clients/cli/commands/doctor-integration.doc.mjs +1 -1
- package/clients/cli/commands/doctor-integration.package-json.test.mjs +53 -0
- package/clients/cli/commands/doctor-integration.test.mjs +90 -8
- package/clients/cli/commands/doctor.doc.mjs +1 -1
- package/clients/cli/commands/doctor.mjs +59 -32
- package/clients/cli/commands/doctor.test.mjs +42 -0
- package/clients/cli/commands/gap-report.doc.mjs +17 -6
- package/clients/cli/commands/gap-report.test.mjs +72 -0
- package/clients/cli/commands/hook/index.mjs +7 -17
- package/clients/cli/commands/hook.doc.mjs +1 -1
- package/clients/cli/commands/hook.text-projection.test.mjs +45 -0
- package/clients/cli/commands/init.doc.mjs +20 -9
- package/clients/cli/commands/init.flag-help.test.mjs +153 -0
- package/clients/cli/commands/integration-add.controls.test.mjs +132 -0
- package/clients/cli/commands/integration-add.doc.mjs +32 -6
- package/clients/cli/commands/integration-authoring.test.mjs +13 -9
- package/clients/cli/commands/integration-pack.doc.mjs +1 -1
- package/clients/cli/commands/integration-real-world.test.mjs +3 -9
- package/clients/cli/commands/integration.doc.mjs +1 -1
- package/clients/cli/commands/integration.mjs +1 -0
- package/clients/cli/commands/interactive-guard.test.mjs +101 -24
- package/clients/cli/commands/json-contract.test.mjs +33 -0
- package/clients/cli/commands/manifest.doc.mjs +1 -1
- package/clients/cli/commands/no-prompt-wording.test.mjs +94 -0
- package/clients/cli/commands/search.doc.mjs +7 -4
- package/clients/cli/commands/search.mjs +28 -9
- package/clients/cli/commands/search.test.mjs +75 -0
- package/clients/cli/commands/setup-nudge.test.mjs +6 -0
- package/clients/cli/commands/swizzle.doc.mjs +3 -2
- package/clients/cli/commands/swizzle.path-safety.test.mjs +42 -0
- package/clients/cli/commands/template.doc.mjs +52 -13
- package/clients/cli/commands/template.flag-help.test.mjs +117 -0
- package/clients/cli/commands/template.mjs +4 -91
- package/clients/cli/commands/template.path-help.test.mjs +40 -0
- package/clients/cli/commands/text-json-parity.test.mjs +702 -0
- package/clients/cli/commands/theme-add.doc.mjs +4 -3
- package/clients/cli/commands/theme-build.doc.mjs +8 -7
- package/clients/cli/commands/theme-list.doc.mjs +2 -2
- package/clients/cli/commands/theme-palette-generate.doc.mjs +9 -5
- package/clients/cli/commands/theme-palette-generate.test.mjs +19 -0
- package/clients/cli/commands/theme-palette.doc.mjs +1 -1
- package/clients/cli/commands/theme-targets.behavior.test.mjs +4 -3
- package/clients/cli/commands/theme-targets.doc.mjs +1 -1
- package/clients/cli/commands/theme-template.behavior.test.mjs +12 -0
- package/clients/cli/commands/theme-template.doc.mjs +2 -2
- package/clients/cli/commands/theme.doc.mjs +1 -1
- package/clients/cli/commands/upgrade.ascii-output.test.mjs +87 -0
- package/clients/cli/commands/upgrade.doc.mjs +22 -10
- package/clients/cli/commands/upgrade.file-protection.test.mjs +228 -0
- package/clients/cli/commands/upgrade.flag-help.test.mjs +188 -0
- package/clients/cli/commands/upgrade.hook-output.test.mjs +88 -0
- package/clients/cli/commands/upgrade.mjs +29 -7
- package/clients/cli/formatters/index.mjs +164 -1
- package/clients/cli/formatters/index.test.mjs +97 -0
- package/clients/cli/index.mjs +21 -34
- package/clients/cli/latest-version-env.test.mjs +50 -0
- package/clients/cli/lib/cli-error.test.mjs +7 -0
- package/clients/cli/lib/component-format.mjs +9 -9
- package/clients/cli/lib/component-format.test.mjs +1 -1
- package/clients/cli/lib/define-command.mjs +32 -6
- package/clients/cli/lib/doc-text-ascii.test.mjs +82 -0
- package/clients/cli/lib/exit-codes.test.mjs +90 -0
- package/clients/cli/lib/hook-format.mjs +19 -10
- package/clients/cli/lib/json-shim.mjs +62 -16
- package/clients/cli/lib/json-shim.test.mjs +69 -0
- package/clients/cli/lib/manifest.d.ts +2 -0
- package/clients/cli/lib/manifest.mjs +39 -10
- package/clients/cli/lib/manifest.test.mjs +22 -2
- package/clients/cli/lib/parse-error-format.test.mjs +81 -0
- package/foundation/agent-docs/agent-docs.d.mts +7 -2
- package/foundation/agent-docs/agent-docs.mjs +82 -12
- package/foundation/agent-docs/agent-docs.path-safety.test.mjs +266 -4
- package/foundation/agent-docs/agent-docs.test.mjs +19 -1
- package/foundation/config/integration-debug.test.mjs +28 -3
- package/foundation/config/project-themes.test.mjs +11 -19
- package/foundation/config/project.d.mts +20 -11
- package/foundation/config/project.mjs +263 -91
- package/foundation/config/project.test.mjs +270 -21
- package/foundation/discovery/authoring-self-docs.d.mts +87 -0
- package/foundation/discovery/authoring-self-docs.mjs +237 -0
- package/foundation/discovery/authoring-self-docs.test.mjs +170 -0
- package/foundation/discovery/authoring-surface.d.mts +74 -0
- package/foundation/discovery/authoring-surface.mjs +525 -0
- package/foundation/discovery/authoring-surface.test.mjs +392 -0
- package/foundation/discovery/cli-self-docs.d.mts +119 -0
- package/foundation/discovery/cli-self-docs.mjs +490 -0
- package/foundation/discovery/cli-self-docs.test.mjs +375 -0
- package/foundation/discovery/component-discovery.d.mts +39 -1
- package/foundation/discovery/component-discovery.mjs +50 -1
- package/foundation/discovery/component-loader.d.mts +35 -38
- package/foundation/discovery/component-loader.mjs +53 -222
- package/foundation/discovery/docs-discovery.d.mts +119 -11
- package/foundation/discovery/docs-discovery.mjs +423 -108
- package/foundation/discovery/docs-discovery.test.mjs +365 -20
- package/foundation/discovery/docs-output-budget.d.mts +28 -0
- package/foundation/discovery/docs-output-budget.mjs +50 -0
- package/foundation/discovery/docs-section-key.d.mts +116 -0
- package/foundation/discovery/docs-section-key.mjs +322 -0
- package/foundation/discovery/docs-section-key.test.mjs +246 -0
- package/foundation/discovery/template-adapter.d.mts +113 -11
- package/foundation/discovery/template-adapter.fixture-refs.test.mjs +248 -0
- package/foundation/discovery/template-adapter.integration-isolation.test.mjs +94 -0
- package/foundation/discovery/template-adapter.mjs +775 -84
- package/foundation/discovery/template-adapter.test.mjs +57 -0
- package/foundation/discovery/template-conflict-release.d.mts +13 -0
- package/foundation/discovery/template-conflict-release.mjs +40 -0
- package/foundation/discovery/template-conflict-release.test.mjs +40 -0
- package/foundation/discovery/theme-discovery.d.mts +67 -7
- package/foundation/discovery/theme-discovery.mjs +916 -186
- package/foundation/discovery/theme-discovery.test.mjs +613 -219
- package/foundation/discovery/theming-targets.test.mjs +4 -0
- package/foundation/doc-compiler/bundle.d.mts +47 -0
- package/foundation/doc-compiler/bundle.mjs +278 -0
- package/foundation/doc-compiler/bundle.test.mjs +266 -0
- package/foundation/doc-compiler/compile.d.mts +343 -0
- package/foundation/doc-compiler/compile.mjs +558 -0
- package/foundation/doc-compiler/diagnostics.d.mts +126 -0
- package/foundation/doc-compiler/diagnostics.mjs +305 -0
- package/foundation/doc-compiler/doc-compiler.test.mjs +714 -0
- package/foundation/doc-compiler/doc-loads.test.mjs +1630 -0
- package/foundation/doc-compiler/import.d.mts +24 -0
- package/foundation/doc-compiler/import.mjs +59 -0
- package/foundation/doc-compiler/inputs.d.mts +102 -0
- package/foundation/doc-compiler/inputs.mjs +291 -0
- package/foundation/doc-compiler/inputs.test.mjs +299 -0
- package/foundation/doc-compiler/ir.d.mts +22 -0
- package/foundation/doc-compiler/ir.mjs +471 -0
- package/foundation/doc-compiler/lenses.d.mts +36 -0
- package/foundation/doc-compiler/lenses.mjs +173 -0
- package/foundation/doc-compiler/links.d.mts +162 -0
- package/foundation/doc-compiler/links.mjs +294 -0
- package/foundation/doc-compiler/links.test.mjs +192 -0
- package/foundation/doc-compiler/lower-doc.test.mjs +495 -0
- package/foundation/doc-compiler/overlays.d.mts +37 -0
- package/foundation/doc-compiler/overlays.mjs +206 -0
- package/foundation/doc-compiler/parse-readable.d.mts +9 -0
- package/foundation/doc-compiler/parse-readable.mjs +29 -0
- package/foundation/doc-compiler/read.d.mts +127 -0
- package/foundation/doc-compiler/read.mjs +325 -0
- package/foundation/doc-compiler/read.test.mjs +313 -0
- package/foundation/doc-compiler/source.d.mts +33 -0
- package/foundation/doc-compiler/source.mjs +128 -0
- package/foundation/doc-compiler/tree.d.mts +288 -0
- package/foundation/doc-compiler/tree.mjs +876 -0
- package/foundation/doc-compiler/tree.test.mjs +606 -0
- package/foundation/fs/file-protection.d.mts +33 -0
- package/foundation/fs/file-protection.mjs +825 -0
- package/foundation/fs/file-protection.test.mjs +250 -0
- package/foundation/fs/module-loader.d.mts +1 -0
- package/foundation/fs/module-loader.mjs +50 -1
- package/foundation/fs/module-loader.stdout.test.mjs +332 -0
- package/foundation/fs/path-safety.d.mts +3 -2
- package/foundation/fs/path-safety.mjs +49 -19
- package/foundation/fs/path-safety.test.mjs +50 -0
- package/foundation/fs/publish-file-hardlink-unavailable.test.mjs +129 -94
- package/foundation/identity/provider-identity.d.mts +90 -0
- package/foundation/identity/provider-identity.mjs +320 -0
- package/foundation/identity/provider-identity.test.mjs +254 -0
- package/foundation/identity/providers.d.mts +7 -0
- package/foundation/identity/providers.mjs +16 -0
- package/foundation/integrations/autolink.d.mts +58 -1
- package/foundation/integrations/autolink.mjs +143 -45
- package/foundation/integrations/autolink.test.mjs +1 -1
- package/foundation/integrations/cli-requirement.d.mts +45 -0
- package/foundation/integrations/cli-requirement.mjs +154 -0
- package/foundation/integrations/cli-requirement.test.mjs +84 -0
- package/foundation/integrations/contribution-fixes.d.mts +145 -0
- package/foundation/integrations/contribution-fixes.mjs +1284 -0
- package/foundation/integrations/contribution-inventory.d.mts +3 -2
- package/foundation/integrations/contribution-inventory.mjs +27 -24
- package/foundation/integrations/contribution-inventory.test.mjs +86 -27
- package/foundation/integrations/integration-warnings.d.mts +9 -2
- package/foundation/integrations/integration-warnings.mjs +52 -21
- package/foundation/integrations/integration-warnings.test.mjs +74 -1
- package/foundation/integrations/integrations.d.mts +63 -3
- package/foundation/integrations/integrations.mjs +122 -9
- package/foundation/integrations/integrations.test.mjs +415 -1
- package/foundation/integrations/provider-conflicts.test.mjs +125 -0
- package/foundation/integrations/provider-ledger.test.mjs +275 -0
- package/foundation/integrations/provider-resolution.d.mts +152 -0
- package/foundation/integrations/provider-resolution.mjs +576 -0
- package/foundation/integrations/provider-resolution.test.mjs +369 -0
- package/foundation/integrations/theme-descriptor.d.mts +8 -0
- package/foundation/integrations/theme-descriptor.mjs +44 -0
- package/foundation/integrations/validate-contributions.d.mts +2 -0
- package/foundation/integrations/validate-contributions.mjs +131 -29
- package/foundation/response/base.d.ts +8 -4
- package/foundation/response/batch.type.d.mts +33 -0
- package/foundation/response/batch.type.mjs +34 -0
- package/foundation/response/error-codes.d.mts +3 -1
- package/foundation/response/error-codes.d.ts +2 -0
- package/foundation/response/error-codes.doc.mjs +13 -4
- package/foundation/response/error-codes.mjs +8 -2
- package/foundation/response/error-codes.test.mjs +137 -10
- package/foundation/response/json-contract.test.mjs +57 -17
- package/foundation/response/json.d.mts +4 -2
- package/foundation/response/json.mjs +8 -10
- package/foundation/response/response-types.doc.d.mts +5 -1
- package/foundation/response/response-types.doc.mjs +46 -38
- package/foundation/response/response-types.doc.test.mjs +181 -0
- package/foundation/response/response.doc.mjs +1 -1
- package/foundation/text/string-utils.d.mts +8 -0
- package/foundation/text/string-utils.mjs +40 -10
- package/foundation/xle/browser.d.mts +3 -3
- package/foundation/xle/browser.mjs +3 -3
- package/foundation/xle/expand.d.mts +2 -0
- package/foundation/xle/expand.mjs +6 -5
- package/foundation/xle/expand.test.mjs +54 -0
- package/foundation/xle/parse.mjs +1 -1
- package/foundation/xle/print.mjs +2 -2
- package/foundation/xle/splice.mjs +1 -1
- package/foundation/xle/xle.test.mjs +13 -0
- package/package.json +10 -11
- package/api/layout/_adapter.d.mts +0 -34
- package/api/layout/_adapter.mjs +0 -133
- package/api/layout/check/check.d.mts +0 -16
- package/api/layout/check/check.mjs +0 -40
- package/api/layout/expand/expand.d.mts +0 -22
- package/api/layout/expand/expand.mjs +0 -153
- package/api/layout/grammar/grammar.d.mts +0 -13
- package/api/layout/grammar/grammar.mjs +0 -86
- package/api/layout/layout.d.mts +0 -6
- package/api/layout/layout.mjs +0 -17
- package/api/layout/layout.test.mjs +0 -297
- package/api/layout/layout.type.d.mts +0 -89
- package/api/layout/layout.type.mjs +0 -103
- package/api/layout/layoutCheck.doc.d.mts +0 -11
- package/api/layout/layoutCheck.doc.mjs +0 -84
- package/api/layout/layoutExpand.doc.d.mts +0 -11
- package/api/layout/layoutExpand.doc.mjs +0 -106
- package/api/layout/layoutGrammar.doc.d.mts +0 -11
- package/api/layout/layoutGrammar.doc.mjs +0 -56
- package/assets/templates/themes/manifest.json +0 -95
- package/clients/cli/commands/layout-check.doc.mjs +0 -54
- package/clients/cli/commands/layout-expand.doc.mjs +0 -66
- package/clients/cli/commands/layout-grammar.doc.mjs +0 -30
- package/clients/cli/commands/layout.doc.mjs +0 -34
- package/clients/cli/commands/layout.error-codes.test.mjs +0 -66
- package/clients/cli/commands/layout.exit-parity.test.mjs +0 -41
- package/clients/cli/commands/layout.mjs +0 -263
- package/clients/cli/lib/update-check.mjs +0 -83
- package/clients/cli/lib/update-check.test.mjs +0 -137
- package/clients/cli/update-hint-commands.test.mjs +0 -54
|
@@ -11,4 +11,97 @@
|
|
|
11
11
|
* @returns {TemplateDoc}
|
|
12
12
|
*/
|
|
13
13
|
export function parseTemplate(input: unknown, label?: string): TemplateDoc;
|
|
14
|
-
export type TemplateDoc = import("../types").TemplateDoc;
|
|
14
|
+
export type TemplateDoc = import("../types.js").TemplateDoc;
|
|
15
|
+
export type PageTemplateDoc = import("./type.js").PageTemplateDoc;
|
|
16
|
+
export type BlockTemplateDoc = import("./type.js").BlockTemplateDoc;
|
|
17
|
+
/**
|
|
18
|
+
* Templates as they load. Integration templates already published omit
|
|
19
|
+
* `displayName` and `aspectRatio` and group themselves under their own
|
|
20
|
+
* `category`, so the loader accepts those (template discovery falls back to an
|
|
21
|
+
* aspect ratio of 1). The published types keep asking authors for all three.
|
|
22
|
+
*/
|
|
23
|
+
export type LoadedPageTemplateDoc = Omit<PageTemplateDoc, "displayName" | "category"> & {
|
|
24
|
+
displayName?: string;
|
|
25
|
+
category?: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Templates as they load. Integration templates already published omit
|
|
29
|
+
* `displayName` and `aspectRatio` and group themselves under their own
|
|
30
|
+
* `category`, so the loader accepts those (template discovery falls back to an
|
|
31
|
+
* aspect ratio of 1). The published types keep asking authors for all three.
|
|
32
|
+
*/
|
|
33
|
+
export type LoadedBlockTemplateDoc = Omit<BlockTemplateDoc, "displayName" | "aspectRatio" | "category"> & {
|
|
34
|
+
displayName?: string;
|
|
35
|
+
aspectRatio?: number;
|
|
36
|
+
category?: string;
|
|
37
|
+
};
|
|
38
|
+
export type _PageTemplateDocDriftLock = import("../../_shared/contract.js").Expect<import("../../_shared/contract.js").MutuallyAssignable<import("../../_shared/contract.js").NamedFields<z.infer<typeof pageTemplateSchema>>, import("../../_shared/contract.js").NamedFields<LoadedPageTemplateDoc>>>;
|
|
39
|
+
export type _BlockTemplateDocDriftLock = import("../../_shared/contract.js").Expect<import("../../_shared/contract.js").MutuallyAssignable<import("../../_shared/contract.js").NamedFields<z.infer<typeof blockTemplateSchema>>, import("../../_shared/contract.js").NamedFields<LoadedBlockTemplateDoc>>>;
|
|
40
|
+
import { z } from 'zod';
|
|
41
|
+
declare const pageTemplateSchema: z.ZodObject<{
|
|
42
|
+
type: z.ZodLiteral<"page">;
|
|
43
|
+
name: z.ZodString;
|
|
44
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
45
|
+
description: z.ZodOptional<z.ZodString>;
|
|
46
|
+
category: z.ZodOptional<z.ZodString>;
|
|
47
|
+
componentsUsed: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
48
|
+
preview: z.ZodOptional<z.ZodObject<{
|
|
49
|
+
image: z.ZodOptional<z.ZodString>;
|
|
50
|
+
aspectRatio: z.ZodOptional<z.ZodString>;
|
|
51
|
+
}, z.core.$strict>>;
|
|
52
|
+
isReady: z.ZodOptional<z.ZodBoolean>;
|
|
53
|
+
scaffold: z.ZodOptional<z.ZodBoolean>;
|
|
54
|
+
isHiddenFromOverview: z.ZodOptional<z.ZodBoolean>;
|
|
55
|
+
registry: z.ZodOptional<z.ZodObject<{
|
|
56
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
57
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
58
|
+
}, z.core.$strict>>;
|
|
59
|
+
replaces: z.ZodOptional<z.ZodString>;
|
|
60
|
+
placement: z.ZodOptional<z.ZodObject<{
|
|
61
|
+
parent: z.ZodString;
|
|
62
|
+
slot: z.ZodOptional<z.ZodString>;
|
|
63
|
+
order: z.ZodOptional<z.ZodNumber>;
|
|
64
|
+
}, z.core.$strict>>;
|
|
65
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
66
|
+
audience: z.ZodOptional<z.ZodEnum<{
|
|
67
|
+
public: "public";
|
|
68
|
+
internal: "internal";
|
|
69
|
+
}>>;
|
|
70
|
+
}, z.core.$strict>;
|
|
71
|
+
declare const blockTemplateSchema: z.ZodObject<{
|
|
72
|
+
type: z.ZodLiteral<"block">;
|
|
73
|
+
exampleFor: z.ZodOptional<z.ZodString>;
|
|
74
|
+
alsoExampleFor: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
75
|
+
alsoShowcaseFor: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
76
|
+
aspectRatio: z.ZodOptional<z.ZodNumber>;
|
|
77
|
+
scale: z.ZodOptional<z.ZodNumber>;
|
|
78
|
+
isShowcase: z.ZodOptional<z.ZodBoolean>;
|
|
79
|
+
name: z.ZodString;
|
|
80
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
81
|
+
description: z.ZodOptional<z.ZodString>;
|
|
82
|
+
category: z.ZodOptional<z.ZodString>;
|
|
83
|
+
componentsUsed: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
84
|
+
preview: z.ZodOptional<z.ZodObject<{
|
|
85
|
+
image: z.ZodOptional<z.ZodString>;
|
|
86
|
+
aspectRatio: z.ZodOptional<z.ZodString>;
|
|
87
|
+
}, z.core.$strict>>;
|
|
88
|
+
isReady: z.ZodOptional<z.ZodBoolean>;
|
|
89
|
+
scaffold: z.ZodOptional<z.ZodBoolean>;
|
|
90
|
+
isHiddenFromOverview: z.ZodOptional<z.ZodBoolean>;
|
|
91
|
+
registry: z.ZodOptional<z.ZodObject<{
|
|
92
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
93
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
94
|
+
}, z.core.$strict>>;
|
|
95
|
+
replaces: z.ZodOptional<z.ZodString>;
|
|
96
|
+
placement: z.ZodOptional<z.ZodObject<{
|
|
97
|
+
parent: z.ZodString;
|
|
98
|
+
slot: z.ZodOptional<z.ZodString>;
|
|
99
|
+
order: z.ZodOptional<z.ZodNumber>;
|
|
100
|
+
}, z.core.$strict>>;
|
|
101
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
102
|
+
audience: z.ZodOptional<z.ZodEnum<{
|
|
103
|
+
public: "public";
|
|
104
|
+
internal: "internal";
|
|
105
|
+
}>>;
|
|
106
|
+
}, z.core.$strict>;
|
|
107
|
+
export {};
|
|
@@ -9,9 +9,12 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import {z} from 'zod';
|
|
12
|
+
import {AuthoredDocGraphFields} from '../_schema.mjs';
|
|
12
13
|
import {formatZodError} from '../../_shared/errors.mjs';
|
|
13
14
|
|
|
14
|
-
/** @typedef {import('../types').TemplateDoc} TemplateDoc */
|
|
15
|
+
/** @typedef {import('../types.js').TemplateDoc} TemplateDoc */
|
|
16
|
+
/** @typedef {import('./type.js').PageTemplateDoc} PageTemplateDoc */
|
|
17
|
+
/** @typedef {import('./type.js').BlockTemplateDoc} BlockTemplateDoc */
|
|
15
18
|
|
|
16
19
|
const previewSchema = z
|
|
17
20
|
.object({
|
|
@@ -37,9 +40,10 @@ const registryIdentitySchema = z
|
|
|
37
40
|
.strict();
|
|
38
41
|
|
|
39
42
|
const baseTemplateFields = {
|
|
43
|
+
...AuthoredDocGraphFields,
|
|
40
44
|
name: z.string().min(1, 'name is required'),
|
|
41
45
|
displayName: z.string().min(1).optional(),
|
|
42
|
-
description: z.string().min(1, 'description is required'),
|
|
46
|
+
description: z.string().min(1, 'description is required').optional(),
|
|
43
47
|
category: z.string().optional(),
|
|
44
48
|
componentsUsed: z.array(z.string()).optional(),
|
|
45
49
|
preview: previewSchema.optional(),
|
|
@@ -47,6 +51,10 @@ const baseTemplateFields = {
|
|
|
47
51
|
scaffold: z.boolean().optional(),
|
|
48
52
|
isHiddenFromOverview: z.boolean().optional(),
|
|
49
53
|
registry: registryIdentitySchema.optional(),
|
|
54
|
+
replaces: z
|
|
55
|
+
.string()
|
|
56
|
+
.min(1, 'replaces must name a Core template id')
|
|
57
|
+
.optional(),
|
|
50
58
|
};
|
|
51
59
|
|
|
52
60
|
const pageTemplateSchema = z
|
|
@@ -65,6 +73,36 @@ const blockTemplateSchema = z
|
|
|
65
73
|
})
|
|
66
74
|
.strict();
|
|
67
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Templates as they load. Integration templates already published omit
|
|
78
|
+
* `displayName` and `aspectRatio` and group themselves under their own
|
|
79
|
+
* `category`, so the loader accepts those (template discovery falls back to an
|
|
80
|
+
* aspect ratio of 1). The published types keep asking authors for all three.
|
|
81
|
+
*
|
|
82
|
+
* @typedef {Omit<PageTemplateDoc, 'displayName' | 'category'>
|
|
83
|
+
* & {displayName?: string, category?: string}} LoadedPageTemplateDoc
|
|
84
|
+
* @typedef {Omit<BlockTemplateDoc, 'displayName' | 'aspectRatio' | 'category'>
|
|
85
|
+
* & {displayName?: string, aspectRatio?: number, category?: string}} LoadedBlockTemplateDoc
|
|
86
|
+
*/
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* @typedef {import('../../_shared/contract.js').Expect<
|
|
90
|
+
* import('../../_shared/contract.js').MutuallyAssignable<
|
|
91
|
+
* import('../../_shared/contract.js').NamedFields<z.infer<typeof pageTemplateSchema>>,
|
|
92
|
+
* import('../../_shared/contract.js').NamedFields<LoadedPageTemplateDoc>
|
|
93
|
+
* >
|
|
94
|
+
* >} _PageTemplateDocDriftLock
|
|
95
|
+
*/
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* @typedef {import('../../_shared/contract.js').Expect<
|
|
99
|
+
* import('../../_shared/contract.js').MutuallyAssignable<
|
|
100
|
+
* import('../../_shared/contract.js').NamedFields<z.infer<typeof blockTemplateSchema>>,
|
|
101
|
+
* import('../../_shared/contract.js').NamedFields<LoadedBlockTemplateDoc>
|
|
102
|
+
* >
|
|
103
|
+
* >} _BlockTemplateDocDriftLock
|
|
104
|
+
*/
|
|
105
|
+
|
|
68
106
|
const templateEnvelopeSchema = z
|
|
69
107
|
.discriminatedUnion('type', [pageTemplateSchema, blockTemplateSchema])
|
|
70
108
|
.superRefine((template, context) => {
|
|
@@ -22,6 +22,24 @@ function reason(value, label = 'template') {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
describe('parseTemplate (load boundary)', () => {
|
|
25
|
+
it('accepts replaces on page and block templates', () => {
|
|
26
|
+
for (const type of ['page', 'block']) {
|
|
27
|
+
const parsed = parseTemplate({
|
|
28
|
+
type,
|
|
29
|
+
name: 'Acme shell',
|
|
30
|
+
description: 'Replaces a Core template.',
|
|
31
|
+
replaces: 'shell-side-nav',
|
|
32
|
+
});
|
|
33
|
+
expect(parsed.replaces).toBe('shell-side-nav');
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('rejects an empty replaces', () => {
|
|
38
|
+
expect(reason({type: 'page', name: 'Acme shell', replaces: ''})).toMatch(
|
|
39
|
+
/replaces must name a Core template id/,
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
|
|
25
43
|
it('accepts a stamped page template', () => {
|
|
26
44
|
const parsed = parseTemplate({
|
|
27
45
|
type: 'page',
|
|
@@ -112,8 +130,14 @@ describe('parseTemplate (load boundary)', () => {
|
|
|
112
130
|
expect(reason({type: 'page', description: 'x'})).toContain('name');
|
|
113
131
|
});
|
|
114
132
|
|
|
115
|
-
it('rejects
|
|
116
|
-
expect(
|
|
133
|
+
it('accepts an omitted description and rejects an empty one when present', () => {
|
|
134
|
+
expect(parseTemplate({type: 'page', name: 'x'})).toEqual({
|
|
135
|
+
type: 'page',
|
|
136
|
+
name: 'x',
|
|
137
|
+
});
|
|
138
|
+
expect(reason({type: 'page', name: 'x', description: ''})).toContain(
|
|
139
|
+
'description',
|
|
140
|
+
);
|
|
117
141
|
});
|
|
118
142
|
|
|
119
143
|
it('rejects an empty-string name', () => {
|
|
@@ -18,7 +18,7 @@ export const doc = {
|
|
|
18
18
|
"(type: 'page') for full page templates and BlockTemplateDoc (type: 'block') for " +
|
|
19
19
|
'editable compositions. A block can stand alone or use `exampleFor` to attach ' +
|
|
20
20
|
'to one component; `isShowcase` requires that component ownership.',
|
|
21
|
-
appliesTo: '<Name>.
|
|
21
|
+
appliesTo: '<Name>.doc.mjs',
|
|
22
22
|
fields: [
|
|
23
23
|
{
|
|
24
24
|
name: 'type',
|
|
@@ -52,6 +52,12 @@ export const doc = {
|
|
|
52
52
|
type: 'string',
|
|
53
53
|
description: 'One-sentence description of what the template provides.',
|
|
54
54
|
},
|
|
55
|
+
{
|
|
56
|
+
name: 'replaces',
|
|
57
|
+
type: 'string',
|
|
58
|
+
description:
|
|
59
|
+
"Integration templates only: the exact id of the Core template this one replaces for unqualified lookup. Find it with `astryx --json template --list --package @astryxdesign/core`; the Core original stays selectable with `--package @astryxdesign/core`. A page replaces only a Core page and a block only a Core block. Needs @astryxdesign/cli 0.7.0 or later: earlier CLIs reject the field and withhold the package's templates and doc topics.",
|
|
60
|
+
},
|
|
55
61
|
{
|
|
56
62
|
name: 'isReady',
|
|
57
63
|
type: 'boolean',
|
|
@@ -123,7 +129,7 @@ export const doc = {
|
|
|
123
129
|
{
|
|
124
130
|
label: 'Page template',
|
|
125
131
|
code: `/** @type {import('@astryxdesign/cli/authoring').TemplateDoc} */
|
|
126
|
-
export
|
|
132
|
+
export default {
|
|
127
133
|
type: 'page',
|
|
128
134
|
name: 'Dashboard',
|
|
129
135
|
displayName: 'Dashboard',
|
|
@@ -135,7 +141,7 @@ export const doc = {
|
|
|
135
141
|
{
|
|
136
142
|
label: 'Block template (component example)',
|
|
137
143
|
code: `/** @type {import('@astryxdesign/cli/authoring').TemplateDoc} */
|
|
138
|
-
export
|
|
144
|
+
export default {
|
|
139
145
|
type: 'block',
|
|
140
146
|
name: 'ButtonGroupExample',
|
|
141
147
|
displayName: 'Button Group Example',
|
|
@@ -148,6 +154,10 @@ export const doc = {
|
|
|
148
154
|
},
|
|
149
155
|
],
|
|
150
156
|
notes: [
|
|
157
|
+
{
|
|
158
|
+
type: 'prose',
|
|
159
|
+
text: 'When it loads, a template may leave out `displayName` and `aspectRatio` and use its own `category`, as integration templates already published do; a block with no `aspectRatio` previews at 1. Write to the type anyway; it is the contract.',
|
|
160
|
+
},
|
|
151
161
|
{
|
|
152
162
|
type: 'prose',
|
|
153
163
|
text: "TemplateDoc is a discriminated union keyed by `type`. Set `type: 'page'` for a full page template. Set `type: 'block'` for an editable composition; add `exampleFor` only when one component owns the example.",
|
|
@@ -4,9 +4,12 @@
|
|
|
4
4
|
* @file Template doc types.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type {
|
|
7
|
+
import type {
|
|
8
|
+
AuthoredDocGraphFields,
|
|
9
|
+
RegistryDocIdentity,
|
|
10
|
+
} from '../base/type.js';
|
|
8
11
|
|
|
9
|
-
export interface BaseTemplateDoc {
|
|
12
|
+
export interface BaseTemplateDoc extends AuthoredDocGraphFields {
|
|
10
13
|
/** Identifier name for the template. For block templates this matches
|
|
11
14
|
* the React component import name (e.g. `"ChatMessageMetadata"`); for
|
|
12
15
|
* page templates it's a human-readable label that doubles as the
|
|
@@ -25,6 +28,14 @@ export interface BaseTemplateDoc {
|
|
|
25
28
|
|
|
26
29
|
/** Optional stable slug override and prior aliases for registry output. */
|
|
27
30
|
registry?: RegistryDocIdentity;
|
|
31
|
+
|
|
32
|
+
/** Integration templates only: the exact id of the Core template this one
|
|
33
|
+
* replaces for unqualified lookup (find it with
|
|
34
|
+
* `astryx --json template --list --package @astryxdesign/core`). The Core
|
|
35
|
+
* original stays selectable with `--package @astryxdesign/core`. Needs
|
|
36
|
+
* `@astryxdesign/cli` 0.7.0 or later: earlier CLIs reject the field and
|
|
37
|
+
* withhold the package's templates and doc topics. */
|
|
38
|
+
replaces?: string;
|
|
28
39
|
/** Whether this template is ready for use. Templates with
|
|
29
40
|
* isReady: false show as "(WIP)" in the gallery and CLI. */
|
|
30
41
|
isReady?: boolean;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// @generated by scripts/sync-api-types.mjs from the JSDoc in authoring/**/*.mjs.
|
|
2
|
+
// DO NOT EDIT — run `pnpm sync:api-types` to regenerate.
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Compile-time drift lock: the sealed schema must infer exactly ThemeDoc.
|
|
6
|
+
*
|
|
7
|
+
* @typedef {import('../../_shared/contract.js').Expect<
|
|
8
|
+
* import('../../_shared/contract.js').Equal<
|
|
9
|
+
* z.infer<typeof themeDocSchema>,
|
|
10
|
+
* ThemeDoc
|
|
11
|
+
* >
|
|
12
|
+
* >} _ThemeDocDriftLock
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Validate an unknown value as a theme descriptor, or throw.
|
|
16
|
+
*
|
|
17
|
+
* @param {unknown} input
|
|
18
|
+
* @param {string} [label]
|
|
19
|
+
* @returns {ThemeDoc}
|
|
20
|
+
*/
|
|
21
|
+
export function parseTheme(input: unknown, label?: string): ThemeDoc;
|
|
22
|
+
/**
|
|
23
|
+
* Compile-time drift lock: the sealed schema must infer exactly ThemeDoc.
|
|
24
|
+
*/
|
|
25
|
+
export type _ThemeDocDriftLock = import("../../_shared/contract.js").Expect<import("../../_shared/contract.js").Equal<z.infer<typeof themeDocSchema>, ThemeDoc>>;
|
|
26
|
+
export type ThemeDoc = import("./type.js").ThemeDoc;
|
|
27
|
+
import { z } from 'zod';
|
|
28
|
+
declare const themeDocSchema: z.ZodObject<{
|
|
29
|
+
type: z.ZodLiteral<"theme">;
|
|
30
|
+
name: z.ZodString;
|
|
31
|
+
displayName: z.ZodString;
|
|
32
|
+
description: z.ZodString;
|
|
33
|
+
maintained: z.ZodBoolean;
|
|
34
|
+
}, z.core.$strict>;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file Theme doc parser (stamped `type: 'theme'`). Zod is sealed here;
|
|
5
|
+
* theme discovery calls `parseTheme` at the descriptor load boundary.
|
|
6
|
+
*
|
|
7
|
+
* @input an unknown loaded or statically extracted theme descriptor
|
|
8
|
+
* @output a validated ThemeDoc or a readable schema error
|
|
9
|
+
* @position packages/cli/authoring/doctypes/theme — descriptor load boundary
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import {z} from 'zod';
|
|
13
|
+
import {formatZodError} from '../../_shared/errors.mjs';
|
|
14
|
+
|
|
15
|
+
/** @typedef {import('./type.js').ThemeDoc} ThemeDoc */
|
|
16
|
+
|
|
17
|
+
/** @param {string} field */
|
|
18
|
+
const nonBlank = field =>
|
|
19
|
+
z.string().refine(value => value.trim() !== '', {
|
|
20
|
+
message: `${field} must not be blank`,
|
|
21
|
+
abort: true,
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const themeDocSchema = z
|
|
25
|
+
.object({
|
|
26
|
+
type: z.literal('theme'),
|
|
27
|
+
name: nonBlank('name').regex(
|
|
28
|
+
/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/u,
|
|
29
|
+
'name must be lowercase kebab-case starting with a letter',
|
|
30
|
+
),
|
|
31
|
+
displayName: nonBlank('displayName'),
|
|
32
|
+
// Blank is allowed, as the released catalog allowed it.
|
|
33
|
+
description: z.string(),
|
|
34
|
+
maintained: z.boolean(),
|
|
35
|
+
})
|
|
36
|
+
.strict();
|
|
37
|
+
|
|
38
|
+
/** Zod skips `__proto__` when it looks for unknown keys. */
|
|
39
|
+
const PROTO_KEY_ISSUE = {
|
|
40
|
+
code: /** @type {const} */ ('unrecognized_keys'),
|
|
41
|
+
keys: ['__proto__'],
|
|
42
|
+
path: [],
|
|
43
|
+
message: 'Unrecognized key: "__proto__"',
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Compile-time drift lock: the sealed schema must infer exactly ThemeDoc.
|
|
48
|
+
*
|
|
49
|
+
* @typedef {import('../../_shared/contract.js').Expect<
|
|
50
|
+
* import('../../_shared/contract.js').Equal<
|
|
51
|
+
* z.infer<typeof themeDocSchema>,
|
|
52
|
+
* ThemeDoc
|
|
53
|
+
* >
|
|
54
|
+
* >} _ThemeDocDriftLock
|
|
55
|
+
*/
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Validate an unknown value as a theme descriptor, or throw.
|
|
59
|
+
*
|
|
60
|
+
* @param {unknown} input
|
|
61
|
+
* @param {string} [label]
|
|
62
|
+
* @returns {ThemeDoc}
|
|
63
|
+
*/
|
|
64
|
+
export function parseTheme(input, label = 'theme') {
|
|
65
|
+
const result = themeDocSchema.safeParse(input);
|
|
66
|
+
const protoKey =
|
|
67
|
+
input !== null &&
|
|
68
|
+
typeof input === 'object' &&
|
|
69
|
+
Object.hasOwn(input, '__proto__');
|
|
70
|
+
if (result.success && !protoKey) return result.data;
|
|
71
|
+
const issues = [
|
|
72
|
+
...(result.error?.issues ?? []),
|
|
73
|
+
...(protoKey ? [PROTO_KEY_ISSUE] : []),
|
|
74
|
+
];
|
|
75
|
+
throw new Error(formatZodError(label, new z.ZodError(issues)));
|
|
76
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// @generated by scripts/sync-api-types.mjs from the JSDoc in authoring/**/*.mjs.
|
|
2
|
+
// DO NOT EDIT — run `pnpm sync:api-types` to regenerate.
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @file SchemaDoc for the ThemeDoc authoring type.
|
|
6
|
+
* @position packages/cli/authoring/doctypes/theme — doc-type documentation
|
|
7
|
+
*/
|
|
8
|
+
/** @type {import('@astryxdesign/cli/authoring').SchemaDoc} */
|
|
9
|
+
export const doc: import("@astryxdesign/cli/authoring").SchemaDoc;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file SchemaDoc for the ThemeDoc authoring type.
|
|
5
|
+
* @position packages/cli/authoring/doctypes/theme — doc-type documentation
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/** @type {import('@astryxdesign/cli/authoring').SchemaDoc} */
|
|
9
|
+
export const doc = {
|
|
10
|
+
type: 'schema',
|
|
11
|
+
name: 'theme-doc',
|
|
12
|
+
displayName: 'ThemeDoc',
|
|
13
|
+
namespace: 'authoring',
|
|
14
|
+
description:
|
|
15
|
+
'The strongly typed descriptor for one integration or CLI-bundled source theme.',
|
|
16
|
+
appliesTo: '<theme-source-stem>.doc.mjs',
|
|
17
|
+
fields: [
|
|
18
|
+
{
|
|
19
|
+
name: 'type',
|
|
20
|
+
type: "'theme'",
|
|
21
|
+
description: 'Doc-kind discriminant.',
|
|
22
|
+
required: true,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'name',
|
|
26
|
+
type: 'string',
|
|
27
|
+
description:
|
|
28
|
+
'Lower-kebab CLI theme identity. Must match the descriptor parent directory.',
|
|
29
|
+
required: true,
|
|
30
|
+
example: "'ocean'",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'displayName',
|
|
34
|
+
type: 'string',
|
|
35
|
+
description: 'Human-readable name shown by theme listings.',
|
|
36
|
+
required: true,
|
|
37
|
+
example: "'Ocean'",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'description',
|
|
41
|
+
type: 'string',
|
|
42
|
+
description: 'One-line summary shown by theme listings.',
|
|
43
|
+
required: true,
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'maintained',
|
|
47
|
+
type: 'boolean',
|
|
48
|
+
description: 'Whether the owning package actively maintains this theme.',
|
|
49
|
+
required: true,
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
examples: [
|
|
53
|
+
{
|
|
54
|
+
label: 'A theme descriptor beside oceanTheme.ts',
|
|
55
|
+
code: `/** @type {import('@astryxdesign/cli/authoring').ThemeDoc} */
|
|
56
|
+
export default {
|
|
57
|
+
type: 'theme',
|
|
58
|
+
name: 'ocean',
|
|
59
|
+
displayName: 'Ocean',
|
|
60
|
+
description: 'Cool blue surfaces with crisp contrast.',
|
|
61
|
+
maintained: true,
|
|
62
|
+
};`,
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
notes: [
|
|
66
|
+
{
|
|
67
|
+
type: 'prose',
|
|
68
|
+
text: 'ThemeDoc is static metadata. Default-export one object with literal string and boolean fields; discovery validates it without executing the descriptor or theme source.',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'prose',
|
|
72
|
+
text: 'The descriptor and source share one stem. For oceanTheme.doc.mjs, discovery requires exactly one oceanTheme source module and a named oceanTheme runtime export.',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'prose',
|
|
76
|
+
text: 'The parent theme directory, including this descriptor, is the complete copy and pack boundary. Nested source, palettes, assets, and receipts need no second file list.',
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file Theme contribution descriptor type.
|
|
5
|
+
*
|
|
6
|
+
* A theme descriptor is a strongly typed `.doc.mjs` beside its same-stem theme
|
|
7
|
+
* source. The shared stem identifies the source entry and required named runtime
|
|
8
|
+
* export. The lower-kebab parent directory and `name` identify the CLI theme.
|
|
9
|
+
*
|
|
10
|
+
* @input metadata authored beside one source theme
|
|
11
|
+
* @output the public ThemeDoc contract
|
|
12
|
+
* @position packages/cli/authoring/doctypes/theme — theme descriptor vocabulary
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The descriptor for one source theme contributed by an integration or bundled
|
|
17
|
+
* with the CLI.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```
|
|
21
|
+
* /** @type {import('@astryxdesign/cli/authoring').ThemeDoc} *\/
|
|
22
|
+
* export default {
|
|
23
|
+
* type: 'theme',
|
|
24
|
+
* name: 'ocean',
|
|
25
|
+
* displayName: 'Ocean',
|
|
26
|
+
* description: 'Cool blue surfaces with crisp contrast.',
|
|
27
|
+
* maintained: true,
|
|
28
|
+
* };
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export interface ThemeDoc {
|
|
32
|
+
/** Doc-kind discriminant. */
|
|
33
|
+
type: 'theme';
|
|
34
|
+
/** Stable CLI identity. Must be lower-kebab and match the parent directory. */
|
|
35
|
+
name: string;
|
|
36
|
+
/** Human-readable name shown by theme listings. */
|
|
37
|
+
displayName: string;
|
|
38
|
+
/** One-line summary shown by theme listings. */
|
|
39
|
+
description: string;
|
|
40
|
+
/** Whether the owning package actively maintains this theme. */
|
|
41
|
+
maintained: boolean;
|
|
42
|
+
}
|
|
@@ -3,16 +3,18 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* @file Doc-type vocabulary barrel. Each kind's types live in one `type.ts`
|
|
5
5
|
* under its folder (`base/` shared leaves, then `component/`, `hook/`,
|
|
6
|
-
* `reference/`, `template/`); this re-exports them as the full doc vocabulary
|
|
6
|
+
* `reference/`, `template/`, `theme/`); this re-exports them as the full doc vocabulary
|
|
7
7
|
* behind `@astryxdesign/cli/authoring`.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
export type * from './base/type';
|
|
11
|
-
export type * from './component/type';
|
|
12
|
-
export type * from './hook/type';
|
|
13
|
-
export type * from './function/type';
|
|
14
|
-
export type * from './reference/type';
|
|
15
|
-
export type * from './
|
|
16
|
-
export type * from './
|
|
17
|
-
export type * from './
|
|
18
|
-
export type * from './
|
|
10
|
+
export type * from './base/type.js';
|
|
11
|
+
export type * from './component/type.js';
|
|
12
|
+
export type * from './hook/type.js';
|
|
13
|
+
export type * from './function/type.js';
|
|
14
|
+
export type * from './reference/type.js';
|
|
15
|
+
export type * from './namespace/type.js';
|
|
16
|
+
export type * from './template/type.js';
|
|
17
|
+
export type * from './schema/type.js';
|
|
18
|
+
export type * from './command/type.js';
|
|
19
|
+
export type * from './enum/type.js';
|
|
20
|
+
export type * from './theme/type.js';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// @generated by scripts/sync-api-types.mjs from the JSDoc in authoring/**/*.mjs.
|
|
2
|
+
// DO NOT EDIT — run `pnpm sync:api-types` to regenerate.
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @file SchemaDoc for GapReportHandler, the handler `astryx gap-report` calls.
|
|
6
|
+
* @input The GapReportHandler type beside it (`type.ts`), which `parse.mjs`
|
|
7
|
+
* validates.
|
|
8
|
+
* @output The `gap-report-handler` section of `astryx docs authoring`.
|
|
9
|
+
* @position packages/cli/authoring/gap-report — schema documentation
|
|
10
|
+
*/
|
|
11
|
+
/** @type {import('@astryxdesign/cli/authoring').SchemaDoc} */
|
|
12
|
+
export const doc: import("@astryxdesign/cli/authoring").SchemaDoc;
|