@astryxdesign/cli 0.6.3-canary.98a2e4e → 0.6.3-canary.9c4d44d
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/README.md +117 -79
- 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 +6 -12
- package/api/component/_adapter.mjs +20 -10
- package/api/component/component.doc.mjs +13 -3
- package/api/component/component.mjs +91 -14
- package/api/component/component.test.mjs +38 -0
- package/api/component/component.type.d.mts +22 -11
- package/api/component/component.type.mjs +32 -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 +268 -47
- package/api/docs/_adapter.mjs +970 -149
- package/api/docs/compiled-topics.test.mjs +78 -0
- package/api/docs/detail/detail.d.mts +0 -15
- package/api/docs/detail/detail.mjs +22 -78
- package/api/docs/detail/section/section.mjs +39 -24
- package/api/docs/detail/section/section.test.mjs +19 -9
- package/api/docs/docs.d.mts +5 -3
- package/api/docs/docs.doc.mjs +39 -17
- package/api/docs/docs.mjs +44 -8
- package/api/docs/docs.test.mjs +158 -4
- package/api/docs/docs.type.d.mts +185 -6
- package/api/docs/docs.type.mjs +127 -13
- package/api/docs/index/index.mjs +15 -6
- package/api/docs/index/index.test.mjs +1 -1
- package/api/docs/integration-tree.test.mjs +555 -0
- package/api/docs/integrationDocs.test.mjs +14 -14
- 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 +54 -4
- package/api/doctor/doctor.doc.mjs +1 -0
- package/api/doctor/doctor.mjs +332 -21
- package/api/doctor/doctor.test.mjs +420 -7
- 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 +1 -1
- package/api/hook/list/list.mjs +69 -17
- package/api/index.d.mts +1 -1
- package/api/index.mjs +1 -0
- 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 +2 -0
- 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.mjs +83 -7
- 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 -0
- package/api/json/isError.doc.mjs +1 -0
- package/api/json/parseResponse.doc.mjs +3 -2
- package/api/layout/_adapter.mjs +20 -5
- package/api/layout/expand/expand.mjs +7 -5
- package/api/layout/expand/expand.path-safety.test.mjs +53 -0
- package/api/layout/grammar/grammar.mjs +2 -1
- package/api/layout/layoutCheck.doc.mjs +1 -0
- package/api/layout/layoutExpand.doc.mjs +2 -1
- package/api/layout/layoutGrammar.doc.mjs +1 -0
- package/api/search/search-return-type.test.mjs +54 -0
- package/api/search/search.d.mts +61 -10
- package/api/search/search.doc.mjs +8 -2
- package/api/search/search.mjs +471 -83
- package/api/search/search.test.mjs +124 -1
- package/api/search/search.type.d.mts +14 -2
- 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 +1072 -3
- package/api/template/template-suffix.test.mjs +41 -21
- package/api/template/template.doc.mjs +30 -8
- package/api/template/template.mjs +45 -8
- package/api/template/template.type.d.mts +11 -13
- 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 +124 -73
- package/api/upgrade/list/list.mjs +2 -1
- package/api/upgrade/list/list.test.mjs +73 -0
- package/api/upgrade/provider-agreement.test.mjs +152 -0
- package/api/upgrade/run/run.mjs +356 -59
- package/api/upgrade/status/status.mjs +2 -2
- package/api/upgrade/upgrade.doc.mjs +8 -2
- package/api/upgrade/upgrade.type.d.mts +42 -4
- package/api/upgrade/upgrade.type.mjs +26 -10
- package/assets/codemods/__tests__/runner.test.mjs +330 -8
- package/assets/codemods/integration-discovery.mjs +48 -4
- package/assets/codemods/integration-discovery.test.mjs +73 -0
- package/assets/codemods/integration-runner.mjs +56 -4
- package/assets/codemods/integration-runner.protection.test.mjs +153 -0
- package/assets/codemods/run-codemod.mjs +177 -34
- package/assets/codemods/runner.mjs +350 -102
- 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/next/__tests__/migrate-native-picker-to-presentation.test.mjs +63 -0
- package/assets/codemods/transforms/next/__tests__/migrate-theme-catalog-to-descriptors.test.mjs +220 -0
- package/assets/codemods/transforms/next/index.mjs +19 -1
- package/assets/codemods/transforms/next/migrate-native-picker-to-presentation.mjs +148 -0
- package/assets/codemods/transforms/next/migrate-theme-catalog-to-descriptors.mjs +141 -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/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/{cli-integrations.doc.mjs → tree/integrations.doc.mjs} +95 -39
- 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/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 +10 -2
- 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 +29 -6
- package/authoring/debug/debug.doc.d.mts +11 -0
- package/authoring/debug/debug.doc.mjs +182 -0
- package/authoring/debug/parse.d.mts +7 -7
- 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 +240 -128
- package/authoring/doctypes/_schema.mjs +198 -16
- package/authoring/doctypes/base/graph-fields.doc.mjs +15 -6
- package/authoring/doctypes/base/type.ts +9 -4
- package/authoring/doctypes/command/command.doc.mjs +4 -3
- package/authoring/doctypes/command/parse.d.mts +2 -2
- package/authoring/doctypes/command/parse.mjs +1 -1
- package/authoring/doctypes/command/type.ts +4 -4
- package/authoring/doctypes/component/component.doc.mjs +5 -2
- package/authoring/doctypes/component/parse.d.mts +2 -2
- package/authoring/doctypes/component/parse.mjs +1 -1
- package/authoring/doctypes/component/type.ts +3 -3
- 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 +2 -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 +4 -3
- 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 +3 -3
- package/authoring/doctypes/legacy.d.mts +6 -6
- package/authoring/doctypes/legacy.mjs +3 -3
- package/authoring/doctypes/load-contract.test.mjs +233 -0
- package/authoring/doctypes/namespace/namespace.doc.mjs +9 -9
- package/authoring/doctypes/namespace/parse.d.mts +2 -2
- package/authoring/doctypes/namespace/parse.mjs +1 -1
- package/authoring/doctypes/namespace/parse.test.mjs +23 -25
- package/authoring/doctypes/namespace/type.ts +6 -3
- package/authoring/doctypes/parse.d.mts +22 -20
- package/authoring/doctypes/parse.mjs +19 -14
- package/authoring/doctypes/reference/parse.d.mts +2 -2
- package/authoring/doctypes/reference/parse.mjs +1 -1
- package/authoring/doctypes/reference/reference.doc.mjs +39 -6
- package/authoring/doctypes/reference/type.ts +31 -14
- 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 +3 -4
- package/authoring/doctypes/template/parse.d.mts +94 -1
- package/authoring/doctypes/template/parse.mjs +37 -1
- package/authoring/doctypes/template/parse.test.mjs +18 -0
- package/authoring/doctypes/template/template.doc.mjs +13 -3
- package/authoring/doctypes/template/type.ts +12 -1
- 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 -11
- 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 +9 -9
- package/authoring/gap-report/parse.mjs +6 -6
- package/authoring/gap-report/type.ts +1 -1
- package/authoring/identity/identity.doc.mjs +3 -2
- package/authoring/identity/type.ts +10 -10
- package/authoring/index.d.mts +2 -0
- package/authoring/index.d.ts +32 -19
- package/authoring/index.mjs +3 -1
- package/authoring/integration/integration.doc.mjs +2 -2
- package/authoring/integration/parse.d.mts +2 -2
- package/authoring/integration/parse.mjs +1 -1
- package/authoring/integration/schema.d.mts +4 -4
- package/authoring/integration/schema.mjs +3 -3
- package/authoring/integration/type.ts +5 -11
- package/clients/cli/__tests__/cliManifest.test.ts +27 -29
- package/clients/cli/command-load-failure.test.mjs +83 -0
- 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 +3 -8
- package/clients/cli/commands/component-ownership.test.mjs +3 -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 +1 -1
- package/clients/cli/commands/component.test.mjs +19 -0
- 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 +21 -9
- package/clients/cli/commands/docs.mjs +184 -70
- package/clients/cli/commands/docs.test.mjs +120 -16
- 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/layout-check.doc.mjs +15 -4
- package/clients/cli/commands/layout-expand.doc.mjs +22 -5
- package/clients/cli/commands/layout-grammar.doc.mjs +1 -1
- package/clients/cli/commands/layout.doc.mjs +3 -3
- package/clients/cli/commands/layout.mjs +21 -9
- package/clients/cli/commands/layout.path-help.test.mjs +33 -0
- package/clients/cli/commands/layout.stdin-cap.test.mjs +47 -0
- package/clients/cli/commands/layout.text-fields.test.mjs +39 -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 +719 -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 +3 -3
- 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 +20 -8
- 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 +2 -0
- package/clients/cli/formatters/index.test.mjs +6 -0
- package/clients/cli/index.mjs +21 -30
- 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 +97 -0
- package/clients/cli/lib/hook-format.mjs +19 -10
- package/clients/cli/lib/json-shim.mjs +38 -2
- package/clients/cli/lib/json-shim.test.mjs +83 -0
- package/clients/cli/lib/manifest.d.ts +2 -0
- package/clients/cli/lib/manifest.mjs +32 -2
- package/clients/cli/lib/manifest.test.mjs +17 -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 +246 -89
- package/foundation/config/project.test.mjs +270 -21
- package/foundation/discovery/authoring-self-docs.d.mts +18 -0
- package/foundation/discovery/authoring-self-docs.mjs +38 -15
- package/foundation/discovery/authoring-self-docs.test.mjs +87 -12
- 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 +38 -0
- package/foundation/discovery/component-discovery.mjs +48 -0
- package/foundation/discovery/component-loader.d.mts +35 -38
- package/foundation/discovery/component-loader.mjs +53 -222
- package/foundation/discovery/docs-discovery.d.mts +114 -9
- package/foundation/discovery/docs-discovery.mjs +239 -30
- package/foundation/discovery/docs-discovery.test.mjs +150 -35
- package/foundation/discovery/docs-output-budget.d.mts +2 -2
- package/foundation/discovery/docs-output-budget.mjs +1 -1
- package/foundation/discovery/docs-section-key.d.mts +28 -10
- package/foundation/discovery/docs-section-key.mjs +134 -33
- package/foundation/discovery/docs-section-key.test.mjs +41 -19
- 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 +772 -82
- 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 +1642 -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 +598 -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/integrations/autolink.d.mts +58 -1
- package/foundation/integrations/autolink.mjs +143 -52
- 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 +51 -26
- package/foundation/integrations/integration-warnings.test.mjs +74 -1
- package/foundation/integrations/integrations.d.mts +17 -1
- package/foundation/integrations/integrations.mjs +52 -98
- package/foundation/integrations/integrations.test.mjs +31 -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.mjs +121 -29
- package/foundation/response/base.d.ts +8 -4
- 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 +11 -0
- 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 +37 -22
- package/foundation/response/response-types.doc.test.mjs +158 -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/expand.d.mts +2 -0
- package/foundation/xle/expand.mjs +4 -3
- package/foundation/xle/expand.test.mjs +54 -0
- package/foundation/xle/xle.test.mjs +13 -0
- package/package.json +10 -11
- package/assets/templates/themes/manifest.json +0 -95
- 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
package/api/theme/theme.type.mjs
CHANGED
|
@@ -6,23 +6,23 @@
|
|
|
6
6
|
* directly (functions own their types); the public `@astryxdesign/cli/api`
|
|
7
7
|
* surface re-exports them via types/theme.d.ts, so consumers see the same names.
|
|
8
8
|
*
|
|
9
|
-
* Invocation
|
|
9
|
+
* Invocation -> type discriminator
|
|
10
10
|
* ------------------------------------------------------------------
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* (file not found / parse error)
|
|
11
|
+
* astryx --json theme build <file> -> theme.build
|
|
12
|
+
* astryx --json theme build <file> --check -> theme.build.check
|
|
13
|
+
* astryx --json theme build <a> <b> … -> theme.build.batch
|
|
14
|
+
* astryx --json theme list -> theme.list
|
|
15
|
+
* astryx --json theme add <slug> -> theme.add
|
|
16
|
+
* astryx --json theme template -> theme.template
|
|
17
|
+
* astryx --json theme targets [filter] -> theme.targets
|
|
18
|
+
* astryx --json theme palette generate <file> -> theme.palette.generate
|
|
19
|
+
* (file not found / parse error) -> CLIError
|
|
20
20
|
*
|
|
21
21
|
* @position api — colocated typedefs for api/theme/{theme,build,add,list,template,targets,_adapter}
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
* astryx --json theme build <file>
|
|
26
26
|
* @typedef {object} ThemeBuildResponse
|
|
27
27
|
* @property {'theme.build'} type
|
|
28
28
|
* `warnings` are defects the theme author should fix. `notices` are advisories
|
|
@@ -32,14 +32,14 @@
|
|
|
32
32
|
*/
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
35
|
+
* astryx --json theme build <file> --check
|
|
36
36
|
* @typedef {object} ThemeBuildCheckResponse
|
|
37
37
|
* @property {'theme.build.check'} type
|
|
38
38
|
* @property {{name: string, upToDate: boolean, stale: Array<{path: string, reason: 'missing' | 'outdated'}>, checked: string[]}} data
|
|
39
39
|
*/
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
42
|
+
* astryx --json theme build <a> <b> … — several themes in one invocation. Each
|
|
43
43
|
* result carries the file as it was passed and the receipt a single-file build
|
|
44
44
|
* would have returned (null when that theme produced no CSS). One file still
|
|
45
45
|
* returns the bare theme.build / theme.build.check envelope.
|
|
@@ -59,21 +59,21 @@
|
|
|
59
59
|
*/
|
|
60
60
|
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
62
|
+
* astryx --json theme list
|
|
63
63
|
* @typedef {object} ThemeListResponse
|
|
64
64
|
* @property {'theme.list'} type
|
|
65
65
|
* @property {ThemeListEntry[]} data
|
|
66
66
|
*/
|
|
67
67
|
|
|
68
68
|
/**
|
|
69
|
-
*
|
|
69
|
+
* astryx --json theme add <slug>
|
|
70
70
|
* @typedef {object} ThemeAddResponse
|
|
71
71
|
* @property {'theme.add'} type
|
|
72
72
|
* @property {{slug: string, displayName: string, maintained: boolean, package: string, outputDir: string, entry: string, exportName: string, files: string[]}} data
|
|
73
73
|
*/
|
|
74
74
|
|
|
75
75
|
/**
|
|
76
|
-
*
|
|
76
|
+
* astryx --json theme template
|
|
77
77
|
* `written: false` with `reason: 'exists'` is a success: the command is safe to
|
|
78
78
|
* re-run, and an edited template is the consumer's file to keep.
|
|
79
79
|
* @typedef {object} ThemeTemplateResponse
|
|
@@ -95,19 +95,19 @@
|
|
|
95
95
|
*/
|
|
96
96
|
|
|
97
97
|
/**
|
|
98
|
-
*
|
|
98
|
+
* astryx --json theme targets [filter]
|
|
99
99
|
* @typedef {object} ThemeTargetsResponse
|
|
100
100
|
* @property {'theme.targets'} type
|
|
101
101
|
* @property {{filter: string | null, componentCount: number, targets: ThemeTargetEntry[]}} data
|
|
102
102
|
*/
|
|
103
103
|
|
|
104
104
|
/**
|
|
105
|
-
* A
|
|
106
|
-
* and is not connected to runtime theme values.
|
|
105
|
+
* A color an author pins at one stop of one mode, constraining generation.
|
|
107
106
|
* @typedef {object} TonalPaletteAnchor
|
|
108
107
|
* @property {'light' | 'dark'} mode Mode containing the anchored stop.
|
|
109
108
|
* @property {number} stop Existing requested stop where the anchor applies.
|
|
110
|
-
* @property {string} color
|
|
109
|
+
* @property {string} color sRGB hex the stop is pulled toward: three or six
|
|
110
|
+
* digits, with or without `#`; the generator normalizes it.
|
|
111
111
|
* @property {'exact' | 'bounded' | 'flexible'} policy `exact` preserves the
|
|
112
112
|
* chosen color at that stop; `bounded` permits adjustment within `maxDeltaE`;
|
|
113
113
|
* `flexible` treats the color as guidance and blends toward it.
|
|
@@ -116,12 +116,16 @@
|
|
|
116
116
|
*/
|
|
117
117
|
|
|
118
118
|
/**
|
|
119
|
+
* One requested family: a seed color and the constraints applied to its ramp.
|
|
119
120
|
* @typedef {object} TonalPaletteFamilyInput
|
|
120
|
-
* @property {string} id
|
|
121
|
-
*
|
|
122
|
-
* @property {string}
|
|
123
|
-
*
|
|
124
|
-
* @property {
|
|
121
|
+
* @property {string} id Lower-kebab-case key for the family in the generated
|
|
122
|
+
* palette. `black` and `white` are reserved for the standalone values.
|
|
123
|
+
* @property {string} seed sRGB hex the ramp is generated from: three or six
|
|
124
|
+
* digits, with or without `#`; the generator normalizes it.
|
|
125
|
+
* @property {string} [name] Display name for review artifacts; defaults to `id`.
|
|
126
|
+
* @property {'chromatic' | 'neutral'} [kind] `neutral` derives the ramp from
|
|
127
|
+
* `neutralProfile` instead of the seed hue; defaults to `chromatic`.
|
|
128
|
+
* @property {TonalPaletteAnchor[]} [anchors] Colors pinned at specific stops.
|
|
125
129
|
*/
|
|
126
130
|
|
|
127
131
|
/**
|
|
@@ -130,6 +134,9 @@
|
|
|
130
134
|
* @property {number} [vibrancy] Chroma control from 0 (most muted) through 50
|
|
131
135
|
* (default) to 100 (most vivid).
|
|
132
136
|
* @property {'neutral-v1' | 'warm-v1' | 'cool-v1' | 'custom'} [neutralProfile]
|
|
137
|
+
* Hue treatment for `neutral` families: `neutral-v1` is fully achromatic,
|
|
138
|
+
* `warm-v1` and `cool-v1` add a slight tint, and `custom` derives the hue from
|
|
139
|
+
* the family's own seed. Defaults to `neutral-v1`.
|
|
133
140
|
* @property {'light-only' | 'dark-only' | 'light-and-dark'} [modeStrategy]
|
|
134
141
|
* @property {number[]} [stops] Ordered stops shared by every requested family;
|
|
135
142
|
* defaults to 0 through 100 in increments of 5. Decimal stops are supported,
|
|
@@ -137,6 +144,8 @@
|
|
|
137
144
|
*/
|
|
138
145
|
|
|
139
146
|
/**
|
|
147
|
+
* A generated palette candidate. The palette is still subject to author review
|
|
148
|
+
* and is not connected to runtime theme values.
|
|
140
149
|
* @typedef {object} TonalPaletteCandidate
|
|
141
150
|
* @property {1} schemaVersion
|
|
142
151
|
* @property {'candidate'} status
|
|
@@ -148,10 +157,68 @@
|
|
|
148
157
|
*/
|
|
149
158
|
|
|
150
159
|
/**
|
|
151
|
-
*
|
|
160
|
+
* Per-ramp evidence recorded for one family in one mode.
|
|
161
|
+
* @typedef {object} TonalPaletteRampDiagnostics
|
|
162
|
+
* @property {boolean} monotonic Whether luminance rises across every stop.
|
|
163
|
+
* @property {number} minimumAdjacentDeltaE Smallest perceptual gap between
|
|
164
|
+
* neighboring stops; a small value means two stops read as one color.
|
|
165
|
+
* @property {number} maximumAdjacentDeltaE Largest gap between neighboring stops.
|
|
166
|
+
* @property {number} maximumHueDrift Largest hue distance, in degrees, between
|
|
167
|
+
* a stop and the family's reference hue.
|
|
168
|
+
* @property {'blue-to-purple' | 'yellow-to-brown' | null} hueIdentityRisk Named
|
|
169
|
+
* drift the ramp is at risk of, or `null`.
|
|
170
|
+
* @property {number[]} gamutMappedStops Stops whose ideal color fell outside
|
|
171
|
+
* sRGB and was mapped back into it.
|
|
172
|
+
* @property {Array<TonalPaletteAnchor & {generatedColor: string, deltaE: number}>} anchors
|
|
173
|
+
* Each anchor with the color the stop received after its policy was applied
|
|
174
|
+
* and the perceptual distance that color still has from the requested target.
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Cross-family evidence for one mode, sampled at the stop nearest 50.
|
|
179
|
+
* @typedef {object} TonalPaletteCoordinationDiagnostics
|
|
180
|
+
* @property {'light' | 'dark'} mode Mode these samples come from.
|
|
181
|
+
* @property {number} stop Sampled stop.
|
|
182
|
+
* @property {[string, string] | null} closestFamilies The two chromatic
|
|
183
|
+
* families hardest to tell apart, or `null` with fewer than two.
|
|
184
|
+
* @property {number | null} minimumFamilyDeltaE Perceptual distance between them.
|
|
185
|
+
* @property {string | null} strongestFamily Most saturated family at this stop.
|
|
186
|
+
* @property {string | null} weakestFamily Least saturated family at this stop.
|
|
187
|
+
* @property {number | null} chromaRatio Strongest chroma over weakest; a large
|
|
188
|
+
* ratio means the families are unbalanced.
|
|
189
|
+
*/
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* The request as the generator resolved it, with every default filled in.
|
|
193
|
+
* @typedef {object} TonalPaletteNormalizedRequest
|
|
194
|
+
* @property {'astryx-oklch-v1'} recipe
|
|
195
|
+
* @property {number} vibrancy
|
|
196
|
+
* @property {'neutral-v1' | 'warm-v1' | 'cool-v1' | 'custom'} neutralProfile
|
|
197
|
+
* @property {'light-only' | 'dark-only' | 'light-and-dark'} modeStrategy
|
|
198
|
+
* @property {number[]} stops
|
|
199
|
+
* @property {Array<{id: string, name: string, seed: string, kind: 'chromatic' | 'neutral', anchors: TonalPaletteAnchor[]}>} families
|
|
200
|
+
*/
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* The detached receipt written beside a candidate. It records what was asked
|
|
204
|
+
* for and what the generator observed, so a candidate can be traced back to
|
|
205
|
+
* its request without rerunning generation.
|
|
206
|
+
* @typedef {object} TonalPaletteGenerationReceipt
|
|
207
|
+
* @property {1} schemaVersion
|
|
208
|
+
* @property {'astryx-oklch-v1'} recipe Recipe that produced the candidate.
|
|
209
|
+
* @property {string} candidateSha256 SHA-256 over the candidate bytes as written.
|
|
210
|
+
* @property {{version: string, sha256: string}} [preview] Present when preview
|
|
211
|
+
* content was generated for the request, even if no file was written because
|
|
212
|
+
* the target already exists.
|
|
213
|
+
* @property {TonalPaletteNormalizedRequest} request
|
|
214
|
+
* @property {{families: Record<string, {light?: TonalPaletteRampDiagnostics, dark?: TonalPaletteRampDiagnostics}>, coordination: TonalPaletteCoordinationDiagnostics[]}} diagnostics
|
|
215
|
+
*/
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* astryx --json theme palette generate <config>
|
|
152
219
|
* @typedef {object} ThemePaletteGenerateResponse
|
|
153
220
|
* @property {'theme.palette.generate'} type
|
|
154
|
-
* @property {{recipe: 'astryx-oklch-v1', status: 'candidate', familyCount: number, stopCount: number, modes: string[], output: string | null, receipt: string | null, preview: string | null, written: boolean, reason: 'exists' | null, candidate: TonalPaletteCandidate, generationReceipt:
|
|
221
|
+
* @property {{recipe: 'astryx-oklch-v1', status: 'candidate', familyCount: number, stopCount: number, modes: string[], output: string | null, receipt: string | null, preview: string | null, written: boolean, reason: 'exists' | null, candidate: TonalPaletteCandidate, generationReceipt: TonalPaletteGenerationReceipt}} data
|
|
155
222
|
*/
|
|
156
223
|
|
|
157
224
|
// Make this a module so the @typedefs above are importable as types via
|
|
@@ -9,10 +9,11 @@ export const doc = {
|
|
|
9
9
|
type: 'function',
|
|
10
10
|
kind: 'api',
|
|
11
11
|
name: 'themeAdd',
|
|
12
|
+
namespace: 'cli/api',
|
|
12
13
|
displayName: 'themeAdd()',
|
|
13
14
|
summary: 'Copy an available theme into a project as editable source.',
|
|
14
15
|
description:
|
|
15
|
-
|
|
16
|
+
"Resolves a theme from the CLI bundle or an installed integration and copies it into the consumer project: a bundled theme's source files, or an integration theme's complete directory with its descriptor. Writes are staged and existing files require explicit overwrite. Duplicate slugs fail closed until the caller selects an owner package.",
|
|
16
17
|
importPath: '@astryxdesign/cli/api',
|
|
17
18
|
signature:
|
|
18
19
|
'themeAdd(slug: string, options?: {targetPath?: string, overwrite?: boolean, cwd?: string, package?: string}): Promise<ThemeAddResponse>',
|
|
@@ -70,10 +71,10 @@ export const doc = {
|
|
|
70
71
|
{code: 'ERR_AMBIGUOUS_THEME', when: 'more than one package owns the slug'},
|
|
71
72
|
{
|
|
72
73
|
code: 'ERR_THEME_INVALID',
|
|
73
|
-
when: 'the selected installed package has a blocking integration or theme-
|
|
74
|
+
when: 'the selected installed package has a blocking integration or theme-descriptor error',
|
|
74
75
|
},
|
|
75
76
|
{code: 'ERR_PATH_TRAVERSAL', when: 'the target path escapes cwd'},
|
|
76
|
-
{code: 'ERR_NO_SOURCE', when: 'a
|
|
77
|
+
{code: 'ERR_NO_SOURCE', when: 'a theme file to copy is missing'},
|
|
77
78
|
{
|
|
78
79
|
code: 'ERR_FILE_EXISTS',
|
|
79
80
|
when: 'a destination exists and overwrite is not set',
|
|
@@ -12,6 +12,7 @@ export const doc = {
|
|
|
12
12
|
type: 'function',
|
|
13
13
|
kind: 'api',
|
|
14
14
|
name: 'themeBuild',
|
|
15
|
+
namespace: 'cli/api',
|
|
15
16
|
displayName: 'themeBuild()',
|
|
16
17
|
summary: 'Compile a defineTheme file to CSS + JS + type declarations.',
|
|
17
18
|
description:
|
|
@@ -73,7 +74,7 @@ export const doc = {
|
|
|
73
74
|
{
|
|
74
75
|
type: 'theme.build',
|
|
75
76
|
description:
|
|
76
|
-
'Build receipt: theme name
|
|
77
|
+
'Build receipt {name, tokenCount, componentCount, sizeKB, outputs, warnings, notices}: the theme name; how many tokens (portable plus theme-local) and component targets it overrides; the CSS size in KB; the written outputs {css, js, dts, and variantsDts when custom prop values were augmented}; warnings, the defects the author should fix, including exact canonical replacements for deprecated component target keys and declarations the generator dropped; and notices, advisories about a correct theme, such as a font it names but does not load. Resolves to null instead when the theme produced no CSS (nothing to build).',
|
|
77
78
|
},
|
|
78
79
|
{
|
|
79
80
|
type: 'theme.build.check',
|
|
@@ -87,10 +88,13 @@ export const doc = {
|
|
|
87
88
|
code: 'ERR_THEME_LOAD',
|
|
88
89
|
when: 'the file cannot be loaded or parsed into a defineTheme() result',
|
|
89
90
|
},
|
|
90
|
-
{
|
|
91
|
+
{
|
|
92
|
+
code: 'ERR_THEME_INVALID',
|
|
93
|
+
when: 'the resolved theme is invalid, for example it has no name, or a custom Heading type has no standalone rule with a declaration the compiler can emit',
|
|
94
|
+
},
|
|
91
95
|
{
|
|
92
96
|
code: 'ERR_PATH_TRAVERSAL',
|
|
93
|
-
when: 'the theme name contains a path separator or traversal marker',
|
|
97
|
+
when: 'the theme name contains a path separator or traversal marker, or a relative `out` path resolves outside cwd (including through a symlink)',
|
|
94
98
|
},
|
|
95
99
|
{
|
|
96
100
|
code: 'ERR_CORE_NOT_FOUND',
|
|
@@ -102,7 +106,7 @@ export const doc = {
|
|
|
102
106
|
},
|
|
103
107
|
{
|
|
104
108
|
code: 'ERR_WRITE_FAILED',
|
|
105
|
-
when: 'writing the outputs fails (staged temp files are rolled back)',
|
|
109
|
+
when: 'creating the output directory or writing the outputs fails (staged temp files are rolled back)',
|
|
106
110
|
},
|
|
107
111
|
],
|
|
108
112
|
examples: [
|
|
@@ -9,10 +9,11 @@ export const doc = {
|
|
|
9
9
|
type: 'function',
|
|
10
10
|
kind: 'api',
|
|
11
11
|
name: 'themeList',
|
|
12
|
+
namespace: 'cli/api',
|
|
12
13
|
displayName: 'themeList()',
|
|
13
14
|
summary: 'List themes bundled with this CLI build.',
|
|
14
15
|
description:
|
|
15
|
-
'Projects the bundled
|
|
16
|
+
'Projects the bundled typed theme descriptors into a synchronous theme.list envelope. This preserves the original programmatic API contract. The CLI command uses themeListAvailable() so installed integrations also appear.',
|
|
16
17
|
importPath: '@astryxdesign/cli/api',
|
|
17
18
|
signature: 'themeList(): ThemeListResponse',
|
|
18
19
|
keywords: ['theme', 'list', 'themes', 'bundled', 'available'],
|
|
@@ -27,9 +28,11 @@ export const doc = {
|
|
|
27
28
|
throws: [
|
|
28
29
|
{
|
|
29
30
|
code: 'ERR_NO_SOURCE',
|
|
30
|
-
when: 'the bundled
|
|
31
|
+
when: 'the bundled theme descriptors cannot be read or parsed',
|
|
31
32
|
},
|
|
32
33
|
],
|
|
33
|
-
examples: [
|
|
34
|
+
examples: [
|
|
35
|
+
{label: 'List bundled themes', code: 'const {data} = themeList();'},
|
|
36
|
+
],
|
|
34
37
|
related: ['themeListAvailable', 'themeAdd', 'listThemes'],
|
|
35
38
|
};
|
|
@@ -9,10 +9,11 @@ export const doc = {
|
|
|
9
9
|
type: 'function',
|
|
10
10
|
kind: 'api',
|
|
11
11
|
name: 'themeListAvailable',
|
|
12
|
+
namespace: 'cli/api',
|
|
12
13
|
displayName: 'themeListAvailable()',
|
|
13
14
|
summary: 'List bundled and installed integration themes.',
|
|
14
15
|
description:
|
|
15
|
-
'Loads Project for the requested directory, combines the CLI bundle with source themes from installed integrations, and projects each entry with its owner package. An unreadable project configuration degrades to the bundled
|
|
16
|
+
'Loads Project for the requested directory, combines the CLI bundle with source themes from installed integrations, and projects each entry with its owner package. An unreadable project configuration degrades to the bundled descriptors.',
|
|
16
17
|
importPath: '@astryxdesign/cli/api',
|
|
17
18
|
signature:
|
|
18
19
|
'themeListAvailable(options?: {cwd?: string, package?: string}): Promise<ThemeListResponse>',
|
|
@@ -21,7 +22,8 @@ export const doc = {
|
|
|
21
22
|
{
|
|
22
23
|
name: 'options.cwd',
|
|
23
24
|
type: 'string',
|
|
24
|
-
description:
|
|
25
|
+
description:
|
|
26
|
+
'Project directory whose installed integrations contribute themes.',
|
|
25
27
|
},
|
|
26
28
|
{
|
|
27
29
|
name: 'options.package',
|
|
@@ -39,7 +41,7 @@ export const doc = {
|
|
|
39
41
|
throws: [
|
|
40
42
|
{
|
|
41
43
|
code: 'ERR_NO_SOURCE',
|
|
42
|
-
when: 'the CLI bundled-theme
|
|
44
|
+
when: 'the CLI bundled-theme descriptors cannot be read or parsed',
|
|
43
45
|
},
|
|
44
46
|
],
|
|
45
47
|
examples: [
|
|
@@ -12,6 +12,7 @@ export const doc = {
|
|
|
12
12
|
type: 'function',
|
|
13
13
|
kind: 'api',
|
|
14
14
|
name: 'themeTemplate',
|
|
15
|
+
namespace: 'cli/api',
|
|
15
16
|
displayName: 'themeTemplate()',
|
|
16
17
|
summary: 'Write the annotated theme template into a project.',
|
|
17
18
|
description:
|
|
@@ -23,7 +24,7 @@ export const doc = {
|
|
|
23
24
|
'`overwrite`, so it is safe to re-run.',
|
|
24
25
|
importPath: '@astryxdesign/cli/api',
|
|
25
26
|
signature:
|
|
26
|
-
'themeTemplate(options?: {targetPath?: string, overwrite?: boolean, cwd?: string}):
|
|
27
|
+
'themeTemplate(options?: {targetPath?: string, overwrite?: boolean, cwd?: string}): ThemeTemplateResponse',
|
|
27
28
|
keywords: ['theme', 'template', 'starter', 'defineTheme', 'scaffold', 'reference', 'tokens'],
|
|
28
29
|
params: [
|
|
29
30
|
{
|
|
@@ -51,7 +52,10 @@ export const doc = {
|
|
|
51
52
|
'Receipt: the path (relative to cwd), whether it was written, and the reason it was not. `exists` when a file was already there, which is a success, not a failure.',
|
|
52
53
|
},
|
|
53
54
|
],
|
|
54
|
-
throws: [
|
|
55
|
+
throws: [
|
|
56
|
+
{code: 'ERR_PATH_TRAVERSAL', when: 'the target path escapes cwd'},
|
|
57
|
+
{code: 'ERR_WRITE_FAILED', when: 'the template file cannot be written'},
|
|
58
|
+
],
|
|
55
59
|
examples: [
|
|
56
60
|
{label: 'Write it at the project root', code: 'themeTemplate();'},
|
|
57
61
|
{
|
|
@@ -104,18 +104,27 @@ export function ensureCodemodDeps({ installDeps }?: {
|
|
|
104
104
|
* Run the CORE registry codemods. Runs BEFORE the config is loaded so a core
|
|
105
105
|
* CONFIG codemod can repair a config the strict loader would otherwise reject.
|
|
106
106
|
* @param {CoreVersionManifest[]} versionManifests
|
|
107
|
-
* @param {{apply: boolean, path: string, codemod?: string, skipCodemods: Set<string
|
|
107
|
+
* @param {{apply: boolean, path: string, codemod?: string, skipCodemods: Set<string>, root?: string, protection?: {root: string, classify: (file: string) => import('../../foundation/fs/file-protection.mjs').FileProtection[]}, silent?: boolean}} options
|
|
108
108
|
*/
|
|
109
|
-
export function runCoreCodemods(versionManifests: CoreVersionManifest[], { apply, path: srcPath, codemod, skipCodemods }: {
|
|
109
|
+
export function runCoreCodemods(versionManifests: CoreVersionManifest[], { apply, path: srcPath, codemod, skipCodemods, root, protection, silent }: {
|
|
110
110
|
apply: boolean;
|
|
111
111
|
path: string;
|
|
112
112
|
codemod?: string;
|
|
113
113
|
skipCodemods: Set<string>;
|
|
114
|
+
root?: string;
|
|
115
|
+
protection?: {
|
|
116
|
+
root: string;
|
|
117
|
+
classify: (file: string) => import("../../foundation/fs/file-protection.mjs").FileProtection[];
|
|
118
|
+
};
|
|
119
|
+
silent?: boolean;
|
|
114
120
|
}): Promise<{
|
|
115
121
|
totalFilesChanged: number;
|
|
116
122
|
totalTransformsApplied: number;
|
|
117
123
|
totalValidationBlocked: number;
|
|
124
|
+
changedFiles: string[];
|
|
118
125
|
writtenFiles: string[];
|
|
126
|
+
stagedContents: Map<string, string>;
|
|
127
|
+
protectedFiles: import("../../authoring/codemod/type").CodemodRunResult["protectedFiles"];
|
|
119
128
|
errors: Array<{
|
|
120
129
|
file: string;
|
|
121
130
|
codemod: string;
|
|
@@ -139,13 +148,21 @@ export function runCoreCodemods(versionManifests: CoreVersionManifest[], { apply
|
|
|
139
148
|
/**
|
|
140
149
|
* Load the consumer project's config + integrations. Throws on invalid config;
|
|
141
150
|
* the run leaf decides between the config_fixable preview and a hard abort.
|
|
151
|
+
*
|
|
152
|
+
* Provider identity is resolved by the same resolver Project uses, on top of
|
|
153
|
+
* Project's ledger, under the codemod policy: a package that lists itself runs
|
|
154
|
+
* its installed copy's released codemods, never the work in progress being
|
|
155
|
+
* authored, and autolinked and local packages claim provider IDs without
|
|
156
|
+
* running codemods.
|
|
157
|
+
*
|
|
142
158
|
* @param {string} cwd
|
|
143
159
|
* @param {string[]} [extraIntegrationSpecs] explicit `--integration` specs
|
|
144
|
-
* @returns {Promise<{postCodemodHooks: import('../../authoring/config/type').PostCodemodHook[], integrations: import('../../foundation/integrations/integrations.mjs').LoadedIntegration[]}>}
|
|
160
|
+
* @returns {Promise<{postCodemodHooks: import('../../authoring/config/type').PostCodemodHook[], integrations: import('../../foundation/integrations/integrations.mjs').LoadedIntegration[], ledger: import('../../foundation/integrations/provider-resolution.mjs').ProviderLedger}>}
|
|
145
161
|
*/
|
|
146
162
|
export function loadProjectContext(cwd: string, extraIntegrationSpecs?: string[]): Promise<{
|
|
147
163
|
postCodemodHooks: import("../../authoring/config/type").PostCodemodHook[];
|
|
148
164
|
integrations: import("../../foundation/integrations/integrations.mjs").LoadedIntegration[];
|
|
165
|
+
ledger: import("../../foundation/integrations/provider-resolution.mjs").ProviderLedger;
|
|
149
166
|
}>;
|
|
150
167
|
/**
|
|
151
168
|
* Non-blocking nudge for integration validation issues. Never throws (a broken
|
|
@@ -171,20 +188,30 @@ export function selectIntegrationCodemodsFor(integrations: Array<import("../../f
|
|
|
171
188
|
/**
|
|
172
189
|
* Run the file-based INTEGRATION codemods (config codemods first, then code).
|
|
173
190
|
* @param {Array<{version: string, codemods: import('../../authoring/codemod/type').CodemodEntry[]}>} versionGroups
|
|
174
|
-
* @param {{apply: boolean, path: string, codemod?: string, skipCodemods: Set<string
|
|
191
|
+
* @param {{apply: boolean, path: string, codemod?: string, skipCodemods: Set<string>, root?: string, protection?: {root: string, classify: (file: string) => import('../../foundation/fs/file-protection.mjs').FileProtection[]}, contents?: Map<string, string>, silent?: boolean}} options
|
|
175
192
|
*/
|
|
176
193
|
export function runIntegrationCodemodsStep(versionGroups: Array<{
|
|
177
194
|
version: string;
|
|
178
195
|
codemods: import("../../authoring/codemod/type").CodemodEntry[];
|
|
179
|
-
}>, { apply, path: srcPath, codemod, skipCodemods }: {
|
|
196
|
+
}>, { apply, path: srcPath, codemod, skipCodemods, root, protection, contents, silent, }: {
|
|
180
197
|
apply: boolean;
|
|
181
198
|
path: string;
|
|
182
199
|
codemod?: string;
|
|
183
200
|
skipCodemods: Set<string>;
|
|
201
|
+
root?: string;
|
|
202
|
+
protection?: {
|
|
203
|
+
root: string;
|
|
204
|
+
classify: (file: string) => import("../../foundation/fs/file-protection.mjs").FileProtection[];
|
|
205
|
+
};
|
|
206
|
+
contents?: Map<string, string>;
|
|
207
|
+
silent?: boolean;
|
|
184
208
|
}): Promise<{
|
|
185
209
|
totalFilesChanged: number;
|
|
186
210
|
totalTransformsApplied: number;
|
|
211
|
+
changedFiles: string[];
|
|
187
212
|
writtenFiles: string[];
|
|
213
|
+
stagedContents: Map<string, string>;
|
|
214
|
+
protectedFiles: import("../../authoring/codemod/type").CodemodRunResult["protectedFiles"];
|
|
188
215
|
errors: Array<{
|
|
189
216
|
file: string;
|
|
190
217
|
codemod: string;
|