@astryxdesign/cli 0.3.0-canary.fc1c3f3 → 0.3.0-canary.fcbc342
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 +8 -8
- package/api/blog/blog.doc.mjs +2 -2
- package/api/build/build.doc.mjs +1 -1
- package/api/component/component.doc.mjs +1 -1
- package/api/discover/discover.doc.mjs +2 -2
- package/api/docs/docs.doc.mjs +2 -2
- package/api/doctor/doctor.doc.mjs +3 -3
- package/api/hook/hook.doc.mjs +1 -1
- package/api/init/init.doc.mjs +1 -1
- package/api/integration/summarizeIssues.doc.mjs +1 -1
- package/api/integration/validateIntegration.doc.mjs +1 -1
- package/api/json/assertResponse.doc.mjs +2 -2
- package/api/json/isError.doc.mjs +1 -1
- package/api/json/parseResponse.doc.mjs +2 -2
- package/api/layout/layoutCheck.doc.mjs +1 -1
- package/api/layout/layoutExpand.doc.mjs +1 -1
- package/api/layout/layoutGrammar.doc.mjs +1 -1
- package/api/swizzle/swizzle.doc.mjs +1 -1
- package/api/template/template.test.mjs +26 -0
- package/api/theme/listThemes.doc.mjs +2 -2
- package/api/theme/themeAdd.doc.mjs +1 -1
- package/api/theme/themeBuild.doc.mjs +3 -3
- package/api/theme/themeList.doc.mjs +2 -2
- package/api/upgrade/upgrade.doc.mjs +1 -1
- package/assets/codemods/transforms/next/__tests__/next-codemods.test.mjs +92 -0
- package/assets/codemods/transforms/next/index.mjs +11 -1
- package/assets/codemods/transforms/next/rename-dropdown-menu-radio-dot-target.mjs +152 -0
- package/assets/codemods/transforms/v0.3.0/__tests__/migrate-table-rowexpansion-to-tree.test.mjs +201 -0
- package/assets/codemods/transforms/v0.3.0/index.mjs +8 -0
- package/assets/codemods/transforms/v0.3.0/migrate-table-rowexpansion-to-tree.mjs +214 -0
- package/assets/docs/browser-support.doc.mjs +6 -6
- package/assets/docs/getting-started.doc.mjs +3 -3
- package/assets/docs/icons.doc.mjs +3 -3
- package/assets/docs/illustrations.doc.mjs +2 -2
- package/assets/docs/internationalization.doc.mjs +1 -1
- package/assets/docs/migration.doc.mjs +1 -1
- package/assets/docs/principles.doc.mjs +1 -1
- package/assets/docs/styling-libraries.doc.mjs +1 -1
- package/assets/docs/styling.doc.mjs +4 -4
- package/assets/docs/theme.doc.mjs +3 -3
- package/assets/docs/typography.doc.mjs +2 -2
- package/assets/templates/blocks/components/Stepper/StepperHorizontal.doc.mjs +14 -0
- package/assets/templates/blocks/components/Stepper/StepperHorizontal.tsx +24 -0
- package/assets/templates/blocks/components/Stepper/StepperIndicatorModes.doc.mjs +14 -0
- package/assets/templates/blocks/components/Stepper/StepperIndicatorModes.tsx +68 -0
- package/assets/templates/blocks/components/Stepper/StepperMultiStepForm.doc.mjs +14 -0
- package/assets/templates/blocks/components/Stepper/StepperMultiStepForm.tsx +92 -0
- package/assets/templates/blocks/components/Stepper/StepperOnTrackVertical.doc.mjs +14 -0
- package/assets/templates/blocks/components/Stepper/StepperOnTrackVertical.tsx +41 -0
- package/assets/templates/blocks/components/Stepper/StepperShowcase.doc.mjs +15 -0
- package/assets/templates/blocks/components/Stepper/StepperShowcase.tsx +25 -0
- package/assets/templates/blocks/components/Stepper/StepperStatus.doc.mjs +14 -0
- package/assets/templates/blocks/components/Stepper/StepperStatus.tsx +50 -0
- package/assets/templates/blocks/components/Stepper/StepperVerticalOnboarding.doc.mjs +14 -0
- package/assets/templates/blocks/components/Stepper/StepperVerticalOnboarding.tsx +40 -0
- package/assets/templates/blocks/components/Table/TableRowExpansionTable.tsx +61 -58
- package/assets/templates/blocks/components/TextArea/TextAreaStates.tsx +1 -1
- package/assets/templates/themes/neutral/neutralTheme.ts +4 -1
- package/authoring/codemod/codemod.doc.mjs +2 -2
- package/authoring/config/config.doc.mjs +1 -1
- package/authoring/doctypes/base/type.ts +15 -0
- package/authoring/doctypes/command/command.doc.mjs +2 -2
- package/authoring/doctypes/component/component.doc.mjs +7 -7
- package/authoring/doctypes/enum/enum.doc.mjs +2 -2
- package/authoring/doctypes/function/function.doc.mjs +3 -3
- package/authoring/doctypes/hook/hook.doc.mjs +3 -3
- package/authoring/doctypes/reference/reference.doc.mjs +3 -3
- package/authoring/doctypes/schema/schema.doc.mjs +1 -1
- package/authoring/doctypes/template/template.doc.mjs +3 -3
- package/clients/cli/commands/build-theme.registry.test.mjs +14 -1
- package/clients/cli/commands/build.doc.mjs +1 -1
- package/clients/cli/commands/component.doc.mjs +1 -1
- package/clients/cli/commands/doctor.doc.mjs +2 -2
- package/clients/cli/commands/layout-expand.doc.mjs +1 -1
- package/clients/cli/commands/layout.doc.mjs +1 -1
- package/clients/cli/commands/manifest.doc.mjs +3 -3
- package/clients/cli/commands/search.doc.mjs +1 -1
- package/clients/cli/commands/theme-add.doc.mjs +1 -1
- package/clients/cli/commands/theme-build.doc.mjs +1 -1
- package/clients/cli/commands/theme-list.doc.mjs +1 -1
- package/clients/cli/commands/theme.doc.mjs +2 -2
- package/clients/cli/commands/validate-integration.doc.mjs +2 -2
- package/foundation/discovery/template-adapter.d.mts +6 -3
- package/foundation/discovery/template-adapter.mjs +30 -14
- package/foundation/response/response-types.doc.mjs +7 -7
- package/foundation/response/response.doc.mjs +5 -5
- package/package.json +9 -9
|
@@ -153,19 +153,33 @@ const PLACEHOLDER_IMAGE =
|
|
|
153
153
|
'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20400%20300%22%20preserveAspectRatio%3D%22xMidYMid%20slice%22%3E%3Crect%20width%3D%22400%22%20height%3D%22300%22%20fill%3D%22%23f5f6f8%22%2F%3E%3Cg%20transform%3D%22translate%28200%20150%29%22%20fill%3D%22none%22%20stroke%3D%22%23c2cad6%22%20stroke-width%3D%225%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%22-44%22%20y%3D%22-44%22%20width%3D%2288%22%20height%3D%2288%22%20rx%3D%2216%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%22-18%22%20r%3D%222.5%22%20fill%3D%22%23c2cad6%22%20stroke%3D%22none%22%2F%3E%3Cpath%20d%3D%22M-34%2030%20L-8%200%20L10%2018%20L20%208%20L34%2024%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E';
|
|
154
154
|
|
|
155
155
|
/**
|
|
156
|
-
*
|
|
156
|
+
* Extensions that need a video-safe placeholder rather than the image data
|
|
157
|
+
* URI (see stripTemplateAssetRefs). There's no equivalent self-contained
|
|
158
|
+
* inline placeholder for video: unlike an SVG data URI, a `<video src>`
|
|
159
|
+
* needs actual encoded media, and hand-authoring a valid tiny MP4/WebM
|
|
160
|
+
* blob isn't something we can do reliably here — an unverifiable, possibly
|
|
161
|
+
* still-broken binary would just trade one silent failure for another.
|
|
162
|
+
* Rather than mis-render image data as video (the original bug) or guess at
|
|
163
|
+
* binary bytes, video sources are stripped to an empty string so the
|
|
164
|
+
* scaffolded example is honest about needing the builder to supply their
|
|
165
|
+
* own file, instead of silently pointing at something that can't play.
|
|
166
|
+
*
|
|
167
|
+
* @type {Set<string>}
|
|
168
|
+
*/
|
|
169
|
+
const VIDEO_EXTENSIONS = new Set(['mp4', 'webm', 'mov', 'ogv']);
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Demo-asset sources to strip from scaffolded projects. Template demo imagery
|
|
157
173
|
* is self-hosted under the docsite's `/template-assets/*` dir (committed there,
|
|
158
174
|
* mirrored into the sandbox preview by scripts/sync-templates.js). Those paths
|
|
159
175
|
* only resolve inside the Astryx docsite/sandbox, so on scaffold they're
|
|
160
|
-
* replaced
|
|
161
|
-
*
|
|
162
|
-
*
|
|
176
|
+
* replaced — a scaffolded project has no `/template-assets/` dir and would
|
|
177
|
+
* otherwise 404. Genuine third-party URLs (e.g. brand logos from
|
|
178
|
+
* paypalobjects.com) are intentionally left untouched.
|
|
163
179
|
*
|
|
164
|
-
* @type {RegExp
|
|
180
|
+
* @type {RegExp}
|
|
165
181
|
*/
|
|
166
|
-
const
|
|
167
|
-
/\/template-assets\/[\w-]+\.\w+/g,
|
|
168
|
-
];
|
|
182
|
+
const DEMO_ASSET_PATTERN = /\/template-assets\/[\w-]+\.(\w+)/g;
|
|
169
183
|
|
|
170
184
|
/**
|
|
171
185
|
* Normalize path into Unix path (using forward slashes) for consistent comparison
|
|
@@ -179,16 +193,18 @@ function toPosixPath(p) {
|
|
|
179
193
|
}
|
|
180
194
|
|
|
181
195
|
/**
|
|
182
|
-
* Replace demo
|
|
183
|
-
*
|
|
196
|
+
* Replace demo asset references with a placeholder so scaffolded pages
|
|
197
|
+
* render with zero setup. Images get a self-contained data URI; videos
|
|
198
|
+
* (which have no equivalent inline placeholder — see VIDEO_EXTENSIONS) are
|
|
199
|
+
* stripped to an empty src instead of being mis-replaced with image data.
|
|
200
|
+
* Builders drop in their own media either way.
|
|
184
201
|
*
|
|
185
202
|
* @param {string} source - Template source code.
|
|
186
|
-
* @returns {string} Source with demo
|
|
203
|
+
* @returns {string} Source with demo asset references replaced.
|
|
187
204
|
*/
|
|
188
205
|
export function stripTemplateAssetRefs(source) {
|
|
189
|
-
return
|
|
190
|
-
(
|
|
191
|
-
source,
|
|
206
|
+
return source.replace(DEMO_ASSET_PATTERN, (match, extension) =>
|
|
207
|
+
VIDEO_EXTENSIONS.has(extension.toLowerCase()) ? '' : PLACEHOLDER_IMAGE,
|
|
192
208
|
);
|
|
193
209
|
}
|
|
194
210
|
/**
|
|
@@ -21,7 +21,7 @@ export const doc = {
|
|
|
21
21
|
{
|
|
22
22
|
value: 'component.list',
|
|
23
23
|
description:
|
|
24
|
-
'The component catalog grouped by category: `detail` (the level
|
|
24
|
+
'The component catalog grouped by category: `detail` (the level: names | compact | full) and `components`, the grouped map of names+package, brief entries, or a full ComponentDoc per entry.',
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
value: 'component.detail',
|
|
@@ -61,14 +61,14 @@ export const doc = {
|
|
|
61
61
|
{
|
|
62
62
|
value: 'docs.detail.section',
|
|
63
63
|
description:
|
|
64
|
-
'A single ReferenceSection of a topic
|
|
64
|
+
'A single ReferenceSection of a topic: the first whose title contains the section query.',
|
|
65
65
|
},
|
|
66
66
|
|
|
67
67
|
// blog (read from the published RSS feed)
|
|
68
68
|
{
|
|
69
69
|
value: 'blog.list',
|
|
70
70
|
description:
|
|
71
|
-
'The feed URL plus every post parsed from the RSS feed
|
|
71
|
+
'The feed URL plus every post parsed from the RSS feed, each with slug, title, description, date, type, authors, link, and plaintext URL.',
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
74
|
value: 'blog.detail',
|
|
@@ -89,7 +89,7 @@ export const doc = {
|
|
|
89
89
|
{
|
|
90
90
|
value: 'discover.detail.doc',
|
|
91
91
|
description:
|
|
92
|
-
'The validated ComponentDoc for one external component
|
|
92
|
+
'The validated ComponentDoc for one external component: an @scope/name/Component query, or a free-text term resolving to exactly one component.',
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
value: 'discover.search',
|
|
@@ -154,7 +154,7 @@ export const doc = {
|
|
|
154
154
|
{
|
|
155
155
|
value: 'hook.list',
|
|
156
156
|
description:
|
|
157
|
-
'The hook catalog grouped by category: `detail` (the level
|
|
157
|
+
'The hook catalog grouped by category: `detail` (the level: names | compact | full) and `components`, the grouped map of hook names, brief entries, or a full HookDoc per entry.',
|
|
158
158
|
},
|
|
159
159
|
{value: 'hook.detail', description: "One hook's full authored HookDoc."},
|
|
160
160
|
{
|
|
@@ -176,7 +176,7 @@ export const doc = {
|
|
|
176
176
|
{
|
|
177
177
|
value: 'theme.list',
|
|
178
178
|
description:
|
|
179
|
-
'Every bundled theme as a ThemeListEntry[]
|
|
179
|
+
'Every bundled theme as a ThemeListEntry[]: each with slug, displayName, description, and a maintained flag.',
|
|
180
180
|
},
|
|
181
181
|
{
|
|
182
182
|
value: 'theme.add',
|
|
@@ -193,7 +193,7 @@ export const doc = {
|
|
|
193
193
|
{
|
|
194
194
|
value: 'upgrade.status',
|
|
195
195
|
description:
|
|
196
|
-
'A short-circuit outcome with no codemods run
|
|
196
|
+
'A short-circuit outcome with no codemods run (up_to_date, no_codemods, or config_fixable), each carrying the agent-docs summary.',
|
|
197
197
|
},
|
|
198
198
|
{
|
|
199
199
|
value: 'upgrade.run',
|
|
@@ -47,7 +47,7 @@ export const doc = {
|
|
|
47
47
|
name: 'data',
|
|
48
48
|
type: 'unknown',
|
|
49
49
|
description:
|
|
50
|
-
"The command's payload. Structural by design
|
|
50
|
+
"The command's payload. Structural by design, narrowed by the " +
|
|
51
51
|
'per-command return type, not by a map in the serializer.',
|
|
52
52
|
required: true,
|
|
53
53
|
},
|
|
@@ -63,7 +63,7 @@ export const doc = {
|
|
|
63
63
|
name: 'Error envelope',
|
|
64
64
|
type: '{ apiVersion: number; error: string; code: ErrorCode; suggestions?: Suggestion[] }',
|
|
65
65
|
description:
|
|
66
|
-
'Emitted for every failure in --json mode
|
|
66
|
+
'Emitted for every failure in --json mode, including uncaught throws ' +
|
|
67
67
|
'and Commander parse errors, which are converted to this shape.',
|
|
68
68
|
fields: [
|
|
69
69
|
{
|
|
@@ -86,7 +86,7 @@ export const doc = {
|
|
|
86
86
|
name: 'code',
|
|
87
87
|
type: 'ErrorCode',
|
|
88
88
|
description:
|
|
89
|
-
'Stable, machine-readable identifier
|
|
89
|
+
'Stable, machine-readable identifier; always present, append-only, ' +
|
|
90
90
|
'and never changes meaning. Branch on this.',
|
|
91
91
|
required: true,
|
|
92
92
|
example: "'ERR_UNKNOWN_COMPONENT'",
|
|
@@ -95,7 +95,7 @@ export const doc = {
|
|
|
95
95
|
name: 'suggestions',
|
|
96
96
|
type: 'Suggestion[]',
|
|
97
97
|
description:
|
|
98
|
-
'Optional "did you mean
|
|
98
|
+
'Optional "did you mean..." hints, present only when candidates exist.',
|
|
99
99
|
fields: [
|
|
100
100
|
{
|
|
101
101
|
name: 'suggestions[].name',
|
|
@@ -146,7 +146,7 @@ export const doc = {
|
|
|
146
146
|
{
|
|
147
147
|
type: 'prose',
|
|
148
148
|
text:
|
|
149
|
-
'`code` is the stable contract
|
|
149
|
+
'`code` is the stable contract; see the error-codes enum (ErrorCode) ' +
|
|
150
150
|
'for the full append-only list. Branch on `code`, never on the `error` ' +
|
|
151
151
|
'prose, which can be reworded or localized at any time.',
|
|
152
152
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astryxdesign/cli",
|
|
3
|
-
"version": "0.3.0-canary.
|
|
3
|
+
"version": "0.3.0-canary.fcbc342",
|
|
4
4
|
"displayName": "CLI",
|
|
5
5
|
"description": "Scaffold projects, browse templates, generate themes, and get agent-ready docs from the command line.",
|
|
6
6
|
"author": "Meta Open Source",
|
|
@@ -84,10 +84,10 @@
|
|
|
84
84
|
"zod": "^4.4.3"
|
|
85
85
|
},
|
|
86
86
|
"peerDependencies": {
|
|
87
|
-
"@astryxdesign/charts": "0.3.0-canary.
|
|
88
|
-
"@astryxdesign/core": "0.3.0-canary.
|
|
89
|
-
"@astryxdesign/lab": "0.3.0-canary.
|
|
90
|
-
"@astryxdesign/theme-neutral": "0.3.0-canary.
|
|
87
|
+
"@astryxdesign/charts": "0.3.0-canary.fcbc342",
|
|
88
|
+
"@astryxdesign/core": "0.3.0-canary.fcbc342",
|
|
89
|
+
"@astryxdesign/lab": "0.3.0-canary.fcbc342",
|
|
90
|
+
"@astryxdesign/theme-neutral": "0.3.0-canary.fcbc342",
|
|
91
91
|
"gpt-tokenizer": "^3.4.0"
|
|
92
92
|
},
|
|
93
93
|
"peerDependenciesMeta": {
|
|
@@ -105,10 +105,10 @@
|
|
|
105
105
|
}
|
|
106
106
|
},
|
|
107
107
|
"devDependencies": {
|
|
108
|
-
"@astryxdesign/charts": "0.3.0-canary.
|
|
109
|
-
"@astryxdesign/core": "0.3.0-canary.
|
|
110
|
-
"@astryxdesign/lab": "0.3.0-canary.
|
|
111
|
-
"@astryxdesign/theme-neutral": "0.3.0-canary.
|
|
108
|
+
"@astryxdesign/charts": "0.3.0-canary.fcbc342",
|
|
109
|
+
"@astryxdesign/core": "0.3.0-canary.fcbc342",
|
|
110
|
+
"@astryxdesign/lab": "0.3.0-canary.fcbc342",
|
|
111
|
+
"@astryxdesign/theme-neutral": "0.3.0-canary.fcbc342",
|
|
112
112
|
"gpt-tokenizer": "^3.4.0"
|
|
113
113
|
},
|
|
114
114
|
"scripts": {
|