@archetypeai/ds-cli 0.9.0 → 0.10.0

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.
Files changed (32) hide show
  1. package/README.md +3 -3
  2. package/commands/create.js +2 -2
  3. package/commands/init.js +2 -2
  4. package/files/AGENTS.md +128 -70
  5. package/files/CLAUDE.md +128 -70
  6. package/files/ds-manifest.json +998 -1023
  7. package/lib/add-ds-config-codeagent.js +3 -57
  8. package/package.json +2 -2
  9. package/files/LICENSE +0 -21
  10. package/files/rules/accessibility.md +0 -268
  11. package/files/rules/charts.md +0 -256
  12. package/files/rules/components.md +0 -251
  13. package/files/rules/design-principles.md +0 -71
  14. package/files/rules/frontend-architecture.md +0 -86
  15. package/files/rules/linting.md +0 -31
  16. package/files/rules/state.md +0 -373
  17. package/files/rules/styling.md +0 -142
  18. package/files/skills/apply-ds/SKILL.md +0 -121
  19. package/files/skills/apply-ds/scripts/audit.sh +0 -169
  20. package/files/skills/apply-ds/scripts/setup.sh +0 -153
  21. package/files/skills/build-component/SKILL.md +0 -153
  22. package/files/skills/create-dashboard/SKILL.md +0 -220
  23. package/files/skills/deploy-worker/SKILL.md +0 -231
  24. package/files/skills/deploy-worker/references/wrangler-commands.md +0 -327
  25. package/files/skills/fix-accessibility/SKILL.md +0 -232
  26. package/files/skills/fix-metadata/SKILL.md +0 -118
  27. package/files/skills/fix-metadata/assets/favicon.ico +0 -0
  28. package/files/skills/setup-chart/SKILL.md +0 -223
  29. package/files/skills/setup-chart/data/embedding.csv +0 -42
  30. package/files/skills/setup-chart/data/timeseries.csv +0 -173
  31. package/files/skills/setup-chart/references/scatter-chart.md +0 -229
  32. package/files/skills/setup-chart/references/sensor-chart.md +0 -156
@@ -1,1074 +1,1049 @@
1
1
  {
2
2
  "name": "archetypeai-design-system",
3
- "suiteVersion": "0.8.1",
4
- "rules": [
5
- "Compose UIs from the npm packages by default; import components from their package subpaths (see each component `import` field).",
6
- "Pull editable source via the registry only when a component must be modified: npx shadcn-svelte@latest add <component `source` URL>. Never hand-edit files inside node_modules.",
7
- "Console is the stable base tier with a frozen API; do not expect console variant or prop changes. Labs is the 0.x experimental tier and may break between minor versions.",
8
- "Variant values listed under `consoleProductOnly` are named after console-product screens (runSession, lensTraySelection, topNav*, sideBarSelection, backToDashboard) and must only be used inside the console product itself.",
9
- "layerchart is pinned exactly (see labs peerDependencies); newer prereleases break the chart primitives. Do not loosen the pin.",
10
- "Use cn() re-exported from @archetypeai/ds-ui-svelte-console/primitives/utils ($lib/utils in scaffolded apps); do not create a local clsx+tailwind-merge copy."
11
- ],
12
- "tiers": {
13
- "console": {
14
- "package": "@archetypeai/ds-ui-svelte-console",
15
- "version": "0.8.1",
16
- "registry": "https://design-system-console.archetypeai.workers.dev/r/{name}.json",
17
- "stability": "stable — frozen API",
18
- "components": [
19
- {
20
- "name": "console-utils",
21
- "title": "Console Utils",
22
- "description": "className merge helper (cn) with the rounded-interactive tailwind-merge extension.",
23
- "import": "@archetypeai/ds-ui-svelte-console/primitives/utils",
24
- "source": "https://design-system-console.archetypeai.workers.dev/r/console-utils.json",
25
- "dependencies": [
26
- "clsx",
27
- "tailwind-merge"
28
- ]
29
- },
30
- {
31
- "name": "theme",
32
- "title": "Theme",
33
- "description": "Dark-mode controller (singleton) that syncs the `dark` class on <html>.",
34
- "import": "@archetypeai/ds-ui-svelte-console/primitives/theme",
35
- "source": "https://design-system-console.archetypeai.workers.dev/r/theme.json"
36
- },
37
- {
38
- "name": "alert",
39
- "import": "@archetypeai/ds-ui-svelte-console/primitives/alert",
40
- "source": "https://design-system-console.archetypeai.workers.dev/r/alert.json",
41
- "dependencies": [
42
- "tailwind-variants"
43
- ],
44
- "variants": {
45
- "alertVariants": {
46
- "axes": {
47
- "variant": [
48
- "success",
49
- "warning",
50
- "danger",
51
- "info",
52
- "neutral"
53
- ]
54
- },
55
- "defaults": {
56
- "variant": "neutral"
57
- }
58
- }
3
+ "version": "0.10.0",
4
+ "components": [
5
+ {
6
+ "name": "alert",
7
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/alert",
8
+ "source": "https://design-system-console.archetypeai.workers.dev/r/alert.json",
9
+ "description": "Inline callout for operation results and system messages.",
10
+ "usage": [
11
+ "Pick variant by severity: success | warning | danger | info | neutral (default).",
12
+ "Slots: AlertTitle (outcome), optional AlertHeadline (specific cause, e.g. the failed file), AlertDescription (next step).",
13
+ "AlertAction with a `Button variant=\"secondaryCta\"` for follow-ups (View Logs)."
14
+ ],
15
+ "variants": {
16
+ "alertVariants": {
17
+ "axes": {
18
+ "variant": [
19
+ "success",
20
+ "warning",
21
+ "danger",
22
+ "info",
23
+ "neutral"
24
+ ]
25
+ },
26
+ "defaults": {
27
+ "variant": "neutral"
59
28
  }
60
- },
61
- {
62
- "name": "badge",
63
- "import": "@archetypeai/ds-ui-svelte-console/primitives/badge",
64
- "source": "https://design-system-console.archetypeai.workers.dev/r/badge.json",
65
- "dependencies": [
66
- "tailwind-variants"
67
- ],
68
- "variants": {
69
- "badgeVariants": {
70
- "axes": {
71
- "variant": [
72
- "selection",
73
- "status"
74
- ]
75
- },
76
- "defaults": {
77
- "variant": "status"
78
- }
79
- }
29
+ }
30
+ }
31
+ },
32
+ {
33
+ "name": "aspect-ratio",
34
+ "import": "@archetypeai/ds-ui-svelte-labs/primitives/aspect-ratio",
35
+ "source": "https://design-system-labs.archetypeai.workers.dev/r/aspect-ratio.json",
36
+ "description": "Fixed-ratio container for media and placeholders.",
37
+ "usage": [
38
+ "`<AspectRatio ratio={16 / 9}>` wrapping an image, video, or bg-muted placeholder."
39
+ ]
40
+ },
41
+ {
42
+ "name": "badge",
43
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/badge",
44
+ "source": "https://design-system-console.archetypeai.workers.dev/r/badge.json",
45
+ "description": "Small pill for statuses and selected items.",
46
+ "usage": [
47
+ "Status: `variant=\"status\"` colored via status tokens, e.g. class=\"text-atai-good border-atai-good\" (Completed), atai-critical (Failed), atai-warning (Interrupted), atai-neutral (Running), muted-foreground (Pending).",
48
+ "Selection: `variant=\"selection\"` for dismissible picks, with an embedded `Button variant=\"ghost\" size=\"inline\" visibility=\"dimmed\"` X icon to remove."
49
+ ],
50
+ "variants": {
51
+ "badgeVariants": {
52
+ "axes": {
53
+ "variant": [
54
+ "selection",
55
+ "status"
56
+ ]
57
+ },
58
+ "defaults": {
59
+ "variant": "status"
80
60
  }
81
- },
82
- {
83
- "name": "button",
84
- "import": "@archetypeai/ds-ui-svelte-console/primitives/button",
85
- "source": "https://design-system-console.archetypeai.workers.dev/r/button.json",
86
- "dependencies": [
87
- "@lucide/svelte",
88
- "tailwind-variants"
89
- ],
90
- "variants": {
91
- "buttonVariants": {
92
- "axes": {
93
- "variant": [
94
- "cta",
95
- "ghost",
96
- "outline",
97
- "accent",
98
- "destructive",
99
- "floating",
100
- "link",
101
- "announcement",
102
- "runSession",
103
- "topNavLogo",
104
- "topNavSelection",
105
- "topNavTrigger",
106
- "sideBarSelection",
107
- "lensTraySelection",
108
- "lensTrayTrigger",
109
- "backToDashboard"
110
- ],
111
- "size": [
112
- "default",
113
- "sm",
114
- "lg",
115
- "icon",
116
- "overlay",
117
- "inline"
118
- ],
119
- "typography": [
120
- "default",
121
- "mono"
122
- ],
123
- "visibility": [
124
- "default",
125
- "hover",
126
- "dimmed"
127
- ],
128
- "width": [
129
- "default",
130
- "fit",
131
- "full"
132
- ],
133
- "justify": [
134
- "default",
135
- "between"
136
- ]
137
- },
138
- "defaults": {
139
- "variant": "cta",
140
- "size": "default",
141
- "typography": "default",
142
- "visibility": "default",
143
- "width": "default",
144
- "justify": "default"
145
- }
146
- }
61
+ }
62
+ }
63
+ },
64
+ {
65
+ "name": "button",
66
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/button",
67
+ "source": "https://design-system-console.archetypeai.workers.dev/r/button.json",
68
+ "description": "Action trigger for every emphasis level; renders an <a> when href is set. `loading` prop swaps in a spinner.",
69
+ "usage": [
70
+ "cta — filled primary action (Create, Submit, modal confirm); one per view. `size=\"sm\"` in toolbars and dialog footers.",
71
+ "secondaryCta — capitalized text action, underline on hover (Learn More, alert/banner follow-ups).",
72
+ "outline — secondary action paired against a cta (Cancel/Close in dialog footers); also `width=\"full\"` add-file buttons in pickers.",
73
+ "ghost + size=\"icon\" — quiet icon action everywhere: row actions, pager arrows, sidebar collapse, card headers (copy, dismiss).",
74
+ "accent + size=\"icon\" — quiet icon control that gains a bg on hover (steppers, profile/theme triggers).",
75
+ "destructive + size=\"icon\" — delete/end action, turns red on hover; add visibility=\"hover\" inside list rows so it only appears on row hover.",
76
+ "floating + size=\"overlay\" — backdrop-blurred control floating over media or scrolling panels (sort selector).",
77
+ "link — inline text link; size=\"inline\" flows inside prose (empty states). announcement — babyblue brand pill.",
78
+ "typography=\"mono\" uppercases label text (dialog footer CTAs); width=\"full\" for full-width form buttons."
79
+ ],
80
+ "variants": {
81
+ "buttonVariants": {
82
+ "axes": {
83
+ "variant": [
84
+ "cta",
85
+ "secondaryCta",
86
+ "ghost",
87
+ "outline",
88
+ "accent",
89
+ "destructive",
90
+ "floating",
91
+ "link",
92
+ "announcement"
93
+ ],
94
+ "size": [
95
+ "default",
96
+ "sm",
97
+ "lg",
98
+ "icon",
99
+ "overlay",
100
+ "inline"
101
+ ],
102
+ "typography": [
103
+ "default",
104
+ "mono"
105
+ ],
106
+ "visibility": [
107
+ "default",
108
+ "hover",
109
+ "dimmed"
110
+ ],
111
+ "width": [
112
+ "default",
113
+ "fit",
114
+ "full"
115
+ ],
116
+ "justify": [
117
+ "default",
118
+ "between"
119
+ ]
147
120
  },
148
- "consoleProductOnly": {
149
- "buttonVariants.variant": [
150
- "runSession",
151
- "topNavLogo",
152
- "topNavSelection",
153
- "topNavTrigger",
154
- "sideBarSelection",
155
- "lensTraySelection",
156
- "lensTrayTrigger",
157
- "backToDashboard"
121
+ "defaults": {
122
+ "variant": "cta",
123
+ "size": "default",
124
+ "typography": "default",
125
+ "visibility": "default",
126
+ "width": "default",
127
+ "justify": "default"
128
+ }
129
+ }
130
+ }
131
+ },
132
+ {
133
+ "name": "card",
134
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/card",
135
+ "source": "https://design-system-console.archetypeai.workers.dev/r/card.json",
136
+ "description": "Surface container with Header/Title/Action/Content/Footer sub-parts.",
137
+ "usage": [
138
+ "Detail panel: `variant=\"info\"` + Card.Header (Card.Title + Card.Action icon) + Card.Content layout=\"stack\" holding Label sectionHeader → mono value pairs (Job Details, dialog notes).",
139
+ "Grid tile: `variant=\"status\"` for clickable job/model status cards in dashboard grids (pass href); `variant=\"intro\"` for hero/landing cards.",
140
+ "Single-metric status cards often need no CardHeader — omit when content is self-explanatory."
141
+ ],
142
+ "variants": {
143
+ "cardVariants": {
144
+ "axes": {
145
+ "variant": [
146
+ "default",
147
+ "intro",
148
+ "status",
149
+ "info"
158
150
  ]
151
+ },
152
+ "defaults": {
153
+ "variant": "default"
159
154
  }
160
155
  },
161
- {
162
- "name": "card",
163
- "import": "@archetypeai/ds-ui-svelte-console/primitives/card",
164
- "source": "https://design-system-console.archetypeai.workers.dev/r/card.json",
165
- "dependencies": [
166
- "tailwind-variants"
167
- ],
168
- "variants": {
169
- "cardVariants": {
170
- "axes": {
171
- "variant": [
172
- "default",
173
- "intro",
174
- "status",
175
- "info"
176
- ]
177
- },
178
- "defaults": {
179
- "variant": "default"
180
- }
181
- },
182
- "cardContentVariants": {
183
- "axes": {
184
- "layout": [
185
- "stack",
186
- "compact"
187
- ]
188
- }
189
- }
156
+ "cardContentVariants": {
157
+ "axes": {
158
+ "layout": [
159
+ "stack",
160
+ "compact"
161
+ ]
190
162
  }
191
- },
192
- {
193
- "name": "checkbox",
194
- "import": "@archetypeai/ds-ui-svelte-console/primitives/checkbox",
195
- "source": "https://design-system-console.archetypeai.workers.dev/r/checkbox.json",
196
- "dependencies": [
197
- "@lucide/svelte",
198
- "bits-ui",
199
- "tailwind-variants"
200
- ]
201
- },
202
- {
203
- "name": "codeblock",
204
- "import": "@archetypeai/ds-ui-svelte-console/primitives/codeblock",
205
- "source": "https://design-system-console.archetypeai.workers.dev/r/codeblock.json",
206
- "dependencies": [
207
- "@cfworker/json-schema",
208
- "@lucide/svelte",
209
- "shiki",
210
- "yaml"
211
- ]
212
- },
213
- {
214
- "name": "collapsible",
215
- "import": "@archetypeai/ds-ui-svelte-console/primitives/collapsible",
216
- "source": "https://design-system-console.archetypeai.workers.dev/r/collapsible.json",
217
- "dependencies": [
218
- "@lucide/svelte",
219
- "bits-ui",
220
- "tailwind-variants"
221
- ],
222
- "variants": {
223
- "collapsibleTriggerVariants": {
224
- "axes": {
225
- "width": [
226
- "default",
227
- "fit",
228
- "full"
229
- ],
230
- "chevron": [
231
- "start",
232
- "end"
233
- ]
234
- },
235
- "defaults": {
236
- "width": "default",
237
- "chevron": "start"
238
- }
239
- }
163
+ }
164
+ }
165
+ },
166
+ {
167
+ "name": "chart",
168
+ "import": "@archetypeai/ds-ui-svelte-labs/primitives/chart",
169
+ "source": "https://design-system-labs.archetypeai.workers.dev/r/chart.json",
170
+ "description": "Chart.Container + Chart.Tooltip wrappers around layerchart for custom charts (prefer sensor-chart / scatter-chart when they fit).",
171
+ "usage": [
172
+ "Wrap every layerchart in `<Chart.Container config={...} class=\"aspect-auto h-[220px] w-full\">`; config maps data keys to { label, color: 'var(--chart-N)' } (chart-1…chart-5).",
173
+ "layerchart is pinned to an exact prerelease — never loosen it."
174
+ ]
175
+ },
176
+ {
177
+ "name": "checkbox",
178
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/checkbox",
179
+ "source": "https://design-system-console.archetypeai.workers.dev/r/checkbox.json",
180
+ "description": "Binary selection control (bits-ui).",
181
+ "usage": [
182
+ "`bind:checked` + aria-label; for selectable file rows wrap checkbox + name + size in a <label> row, selected state via bg-atai-brand-babyblue/60."
183
+ ]
184
+ },
185
+ {
186
+ "name": "codeblock",
187
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/codeblock",
188
+ "source": "https://design-system-console.archetypeai.workers.dev/r/codeblock.json",
189
+ "description": "Syntax-highlighted code display (CodeBlock, shiki) and editable code field with JSON-schema validation (CodeBlockEditor).",
190
+ "usage": [
191
+ "`<CodeBlock code language=\"yaml\" class=\"border-border border\" />` for configs; wrap in {#key darkMode.current} so it re-highlights on theme flips.",
192
+ "Config editors: `<CodeBlockEditor bind:value bind:valid bind:schemaUnavailable schema={jsonSchema} placeholder showDownload downloadBaseName />` + a Label sectionHeader row showing the derived valid/invalid state in status tokens."
193
+ ]
194
+ },
195
+ {
196
+ "name": "collapsible",
197
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/collapsible",
198
+ "source": "https://design-system-console.archetypeai.workers.dev/r/collapsible.json",
199
+ "description": "Expandable/collapsible section.",
200
+ "usage": [
201
+ "`Collapsible.Root bind:open` + `Collapsible.Trigger chevron=\"start\"` wrapping a Label sectionHeader → folding config/detail sections."
202
+ ],
203
+ "variants": {
204
+ "collapsibleTriggerVariants": {
205
+ "axes": {
206
+ "width": [
207
+ "default",
208
+ "fit",
209
+ "full"
210
+ ],
211
+ "chevron": [
212
+ "start",
213
+ "end"
214
+ ]
215
+ },
216
+ "defaults": {
217
+ "width": "default",
218
+ "chevron": "start"
240
219
  }
241
- },
242
- {
243
- "name": "dialog",
244
- "import": "@archetypeai/ds-ui-svelte-console/primitives/dialog",
245
- "source": "https://design-system-console.archetypeai.workers.dev/r/dialog.json",
246
- "dependencies": [
247
- "@lucide/svelte",
248
- "bits-ui",
249
- "tailwind-variants"
250
- ],
251
- "variants": {
252
- "dialogFooterVariants": {
253
- "axes": {
254
- "justify": [
255
- "default",
256
- "between"
257
- ]
258
- },
259
- "defaults": {
260
- "justify": "default"
261
- }
262
- }
220
+ }
221
+ }
222
+ },
223
+ {
224
+ "name": "console-utils",
225
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/utils",
226
+ "source": "https://design-system-console.archetypeai.workers.dev/r/console-utils.json",
227
+ "description": "className merge helper cn() (clsx + tailwind-merge with the rounded-interactive extension). Re-exported as $lib/utils in scaffolded apps."
228
+ },
229
+ {
230
+ "name": "dialog",
231
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/dialog",
232
+ "source": "https://design-system-console.archetypeai.workers.dev/r/dialog.json",
233
+ "description": "Modal dialog for forms and confirmations.",
234
+ "usage": [
235
+ "Open from a button: `<Dialog.Trigger>{#snippet child({ props })}<Button variant=\"outline\" size=\"sm\" {...props}>…</Button>{/snippet}</Dialog.Trigger>`.",
236
+ "Content = Dialog.Header (Title + Description) + Dialog.Body (form fields) + Dialog.Footer justify=\"between\" pairing `outline` Cancel and `cta` Submit, both size=\"sm\" typography=\"mono\"."
237
+ ],
238
+ "variants": {
239
+ "dialogFooterVariants": {
240
+ "axes": {
241
+ "justify": [
242
+ "default",
243
+ "between"
244
+ ]
245
+ },
246
+ "defaults": {
247
+ "justify": "default"
263
248
  }
264
- },
265
- {
266
- "name": "dropdown-menu",
267
- "import": "@archetypeai/ds-ui-svelte-console/primitives/dropdown-menu",
268
- "source": "https://design-system-console.archetypeai.workers.dev/r/dropdown-menu.json",
269
- "dependencies": [
270
- "@lucide/svelte",
271
- "bits-ui",
272
- "tailwind-variants"
273
- ],
274
- "variants": {
275
- "dropdownMenuTriggerVariants": {
276
- "axes": {
277
- "variant": [
278
- "default",
279
- "ghost",
280
- "input",
281
- "filter"
282
- ],
283
- "typography": [
284
- "default",
285
- "mono"
286
- ]
287
- },
288
- "defaults": {
289
- "variant": "default",
290
- "typography": "default"
291
- }
292
- },
293
- "dropdownMenuItemVariants": {
294
- "axes": {
295
- "variant": [
296
- "default",
297
- "destructive"
298
- ],
299
- "inset": [
300
- "true",
301
- "false"
302
- ],
303
- "typography": [
304
- "default",
305
- "mono"
306
- ],
307
- "justify": [
308
- "default",
309
- "between"
310
- ]
311
- },
312
- "defaults": {
313
- "variant": "default",
314
- "inset": "false",
315
- "typography": "default",
316
- "justify": "default"
317
- }
318
- },
319
- "dropdownMenuSubTriggerVariants": {
320
- "axes": {
321
- "inset": [
322
- "true",
323
- "false"
324
- ]
325
- },
326
- "defaults": {
327
- "inset": "false"
328
- }
329
- },
330
- "dropdownMenuLabelVariants": {
331
- "axes": {
332
- "inset": [
333
- "true",
334
- "false"
335
- ]
336
- },
337
- "defaults": {
338
- "inset": "false"
339
- }
340
- },
341
- "dropdownMenuGroupHeadingVariants": {
342
- "axes": {
343
- "inset": [
344
- "true",
345
- "false"
346
- ]
347
- },
348
- "defaults": {
349
- "inset": "false"
350
- }
351
- }
249
+ }
250
+ }
251
+ },
252
+ {
253
+ "name": "dropdown-menu",
254
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/dropdown-menu",
255
+ "source": "https://design-system-console.archetypeai.workers.dev/r/dropdown-menu.json",
256
+ "description": "Contextual action menu.",
257
+ "usage": [
258
+ "Trigger via child snippet spread onto a Button (profile menu: `variant=\"accent\"` avatar + chevron, rounded-full).",
259
+ "Styled triggers: `DropdownMenu.Trigger variant=\"filter\"` for toolbar/list filter dropdowns; `variant=\"input\"` for form-field-styled dropdowns in pickers.",
260
+ "`DropdownMenu.Content align=\"end\" class=\"min-w-64\"`; items `justify=\"between\"` with a trailing icon; `closeOnSelect={false}` for in-menu toggles (dark mode); Separator before Sign Out."
261
+ ],
262
+ "variants": {
263
+ "dropdownMenuTriggerVariants": {
264
+ "axes": {
265
+ "variant": [
266
+ "default",
267
+ "ghost",
268
+ "input",
269
+ "filter"
270
+ ],
271
+ "typography": [
272
+ "default",
273
+ "mono"
274
+ ]
275
+ },
276
+ "defaults": {
277
+ "variant": "default",
278
+ "typography": "default"
352
279
  }
353
280
  },
354
- {
355
- "name": "dropzone",
356
- "import": "@archetypeai/ds-ui-svelte-console/primitives/dropzone",
357
- "source": "https://design-system-console.archetypeai.workers.dev/r/dropzone.json",
358
- "dependencies": [
359
- "tailwind-variants"
360
- ],
361
- "variants": {
362
- "dropzoneVariants": {
363
- "axes": {
364
- "size": [
365
- "default",
366
- "fill",
367
- "compact"
368
- ]
369
- },
370
- "defaults": {
371
- "size": "default"
372
- }
373
- }
281
+ "dropdownMenuItemVariants": {
282
+ "axes": {
283
+ "variant": [
284
+ "default",
285
+ "destructive"
286
+ ],
287
+ "inset": [
288
+ "true",
289
+ "false"
290
+ ],
291
+ "typography": [
292
+ "default",
293
+ "mono"
294
+ ],
295
+ "justify": [
296
+ "default",
297
+ "between"
298
+ ]
299
+ },
300
+ "defaults": {
301
+ "variant": "default",
302
+ "inset": "false",
303
+ "typography": "default",
304
+ "justify": "default"
374
305
  }
375
306
  },
376
- {
377
- "name": "empty-state",
378
- "import": "@archetypeai/ds-ui-svelte-console/primitives/empty-state",
379
- "source": "https://design-system-console.archetypeai.workers.dev/r/empty-state.json",
380
- "dependencies": [
381
- "tailwind-variants"
382
- ],
383
- "variants": {
384
- "emptyStateVariants": {
385
- "axes": {
386
- "variant": [
387
- "default",
388
- "list"
389
- ]
390
- },
391
- "defaults": {
392
- "variant": "default"
393
- }
394
- }
307
+ "dropdownMenuSubTriggerVariants": {
308
+ "axes": {
309
+ "inset": [
310
+ "true",
311
+ "false"
312
+ ]
313
+ },
314
+ "defaults": {
315
+ "inset": "false"
395
316
  }
396
317
  },
397
- {
398
- "name": "input",
399
- "import": "@archetypeai/ds-ui-svelte-console/primitives/input",
400
- "source": "https://design-system-console.archetypeai.workers.dev/r/input.json",
401
- "dependencies": [
402
- "@lucide/svelte",
403
- "tailwind-variants"
404
- ],
405
- "variants": {
406
- "inputVariants": {
407
- "axes": {
408
- "variant": [
409
- "default",
410
- "search",
411
- "login",
412
- "filter"
413
- ],
414
- "size": [
415
- "sm",
416
- "default"
417
- ]
418
- },
419
- "defaults": {
420
- "variant": "default",
421
- "size": "default"
422
- }
423
- }
318
+ "dropdownMenuLabelVariants": {
319
+ "axes": {
320
+ "inset": [
321
+ "true",
322
+ "false"
323
+ ]
324
+ },
325
+ "defaults": {
326
+ "inset": "false"
424
327
  }
425
328
  },
426
- {
427
- "name": "input-group",
428
- "import": "@archetypeai/ds-ui-svelte-console/primitives/input-group",
429
- "source": "https://design-system-console.archetypeai.workers.dev/r/input-group.json",
430
- "dependencies": [
431
- "tailwind-variants"
432
- ],
433
- "variants": {
434
- "inputGroupVariants": {
435
- "axes": {
436
- "variant": [
437
- "default",
438
- "login",
439
- "form"
440
- ],
441
- "width": [
442
- "default",
443
- "fit",
444
- "full"
445
- ]
446
- },
447
- "defaults": {
448
- "variant": "default",
449
- "width": "full"
450
- }
451
- },
452
- "inputGroupAddonVariants": {
453
- "axes": {
454
- "align": [
455
- "inline-start",
456
- "inline-end",
457
- "block-start",
458
- "block-end"
459
- ]
460
- },
461
- "defaults": {
462
- "align": "inline-start"
463
- }
464
- },
465
- "inputGroupButtonVariants": {
466
- "axes": {
467
- "size": [
468
- "xs",
469
- "sm",
470
- "icon-xs",
471
- "icon-sm"
472
- ]
473
- },
474
- "defaults": {
475
- "size": "xs"
476
- }
477
- }
329
+ "dropdownMenuGroupHeadingVariants": {
330
+ "axes": {
331
+ "inset": [
332
+ "true",
333
+ "false"
334
+ ]
335
+ },
336
+ "defaults": {
337
+ "inset": "false"
478
338
  }
479
- },
480
- {
481
- "name": "item",
482
- "import": "@archetypeai/ds-ui-svelte-console/primitives/item",
483
- "source": "https://design-system-console.archetypeai.workers.dev/r/item.json",
484
- "dependencies": [
485
- "tailwind-variants"
486
- ],
487
- "variants": {
488
- "itemVariants": {
489
- "axes": {
490
- "variant": [
491
- "default",
492
- "outline",
493
- "muted",
494
- "rowItem",
495
- "banner"
496
- ],
497
- "size": [
498
- "default",
499
- "sm",
500
- "xs",
501
- "compact"
502
- ],
503
- "phase": [
504
- "default",
505
- "pending",
506
- "uploading",
507
- "complete",
508
- "error"
509
- ],
510
- "dimmed": [
511
- "off",
512
- "on"
513
- ]
514
- },
515
- "defaults": {
516
- "variant": "default",
517
- "size": "default",
518
- "phase": "default",
519
- "dimmed": "off"
520
- }
521
- },
522
- "itemColumnVariants": {
523
- "axes": {
524
- "column": [
525
- "grow",
526
- "wide",
527
- "mid",
528
- "status"
529
- ],
530
- "typography": [
531
- "default",
532
- "mono"
533
- ]
534
- },
535
- "defaults": {
536
- "column": "grow",
537
- "typography": "default"
538
- }
539
- },
540
- "itemContentVariants": {
541
- "axes": {
542
- "typography": [
543
- "default",
544
- "mono"
545
- ]
546
- },
547
- "defaults": {
548
- "typography": "default"
549
- }
550
- },
551
- "itemMediaVariants": {
552
- "axes": {
553
- "variant": [
554
- "default",
555
- "icon",
556
- "image"
557
- ]
558
- },
559
- "defaults": {
560
- "variant": "default"
561
- }
562
- },
563
- "itemStatusVariants": {
564
- "axes": {
565
- "phase": [
566
- "default",
567
- "pending",
568
- "uploading",
569
- "complete",
570
- "error"
571
- ],
572
- "visibility": [
573
- "default",
574
- "idleOnly"
575
- ]
576
- },
577
- "defaults": {
578
- "phase": "default",
579
- "visibility": "default"
580
- }
581
- }
339
+ }
340
+ }
341
+ },
342
+ {
343
+ "name": "dropzone",
344
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/dropzone",
345
+ "source": "https://design-system-console.archetypeai.workers.dev/r/dropzone.json",
346
+ "description": "File-upload drop target with per-phase snippets.",
347
+ "usage": [
348
+ "`<DropZone.Root size=\"compact\" multiple ariaLabel=\"Upload files\">` in file pickers, {#snippet idle()} / dragging() / uploading()} states; `size=\"fill\"` fills an entire empty panel.",
349
+ "idle = icon + DropZone.CaptionStack (Title + Action + Hint); uploading = `<Spinner size=\"lg\" />` + Title."
350
+ ],
351
+ "variants": {
352
+ "dropzoneVariants": {
353
+ "axes": {
354
+ "size": [
355
+ "default",
356
+ "fill",
357
+ "compact"
358
+ ]
359
+ },
360
+ "defaults": {
361
+ "size": "default"
582
362
  }
583
- },
584
- {
585
- "name": "label",
586
- "import": "@archetypeai/ds-ui-svelte-console/primitives/label",
587
- "source": "https://design-system-console.archetypeai.workers.dev/r/label.json",
588
- "dependencies": [
589
- "bits-ui",
590
- "tailwind-variants"
591
- ],
592
- "variants": {
593
- "labelVariants": {
594
- "axes": {
595
- "variant": [
596
- "default",
597
- "pagination",
598
- "destructive",
599
- "fieldError",
600
- "sectionHeader",
601
- "tableColumnHeader",
602
- "workbenchHeader",
603
- "responseCaption",
604
- "selectionSubHeader"
605
- ]
606
- },
607
- "defaults": {
608
- "variant": "default"
609
- }
610
- }
363
+ }
364
+ }
365
+ },
366
+ {
367
+ "name": "empty-state",
368
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/empty-state",
369
+ "source": "https://design-system-console.archetypeai.workers.dev/r/empty-state.json",
370
+ "description": "Placeholder for lists, tables, and panels with no content.",
371
+ "usage": [
372
+ "`variant=\"list\"` inside list/log containers (\"No matching logs found.\").",
373
+ "Point at the fix with inline links: `Button variant=\"link\" size=\"inline\"` inside the muted prose."
374
+ ],
375
+ "variants": {
376
+ "emptyStateVariants": {
377
+ "axes": {
378
+ "variant": [
379
+ "default",
380
+ "list"
381
+ ]
382
+ },
383
+ "defaults": {
384
+ "variant": "default"
611
385
  }
612
- },
613
- {
614
- "name": "progress",
615
- "import": "@archetypeai/ds-ui-svelte-console/primitives/progress",
616
- "source": "https://design-system-console.archetypeai.workers.dev/r/progress.json",
617
- "dependencies": [
618
- "bits-ui",
619
- "tailwind-variants"
620
- ],
621
- "variants": {
622
- "progressVariants": {
623
- "axes": {
624
- "size": [
625
- "default",
626
- "sm"
627
- ]
628
- },
629
- "defaults": {
630
- "size": "default"
631
- }
632
- },
633
- "progressIndicatorVariants": {
634
- "axes": {
635
- "variant": [
636
- "default",
637
- "success",
638
- "critical"
639
- ]
640
- },
641
- "defaults": {
642
- "variant": "default"
643
- }
644
- }
386
+ }
387
+ }
388
+ },
389
+ {
390
+ "name": "input",
391
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/input",
392
+ "source": "https://design-system-console.archetypeai.workers.dev/r/input.json",
393
+ "description": "Single-line text input.",
394
+ "usage": [
395
+ "`variant=\"search\"` + placeholder + bind:value — search boxes in toolbars and log viewers (Search jobs…).",
396
+ "default variant for form fields; `variant=\"filter\"` — search field inside filter/dropdown popovers; `variant=\"login\"` pairs with input-group login."
397
+ ],
398
+ "variants": {
399
+ "inputVariants": {
400
+ "axes": {
401
+ "variant": [
402
+ "default",
403
+ "search",
404
+ "login",
405
+ "filter"
406
+ ],
407
+ "size": [
408
+ "sm",
409
+ "default"
410
+ ]
411
+ },
412
+ "defaults": {
413
+ "variant": "default",
414
+ "size": "default"
645
415
  }
646
- },
647
- {
648
- "name": "select",
649
- "import": "@archetypeai/ds-ui-svelte-console/primitives/select",
650
- "source": "https://design-system-console.archetypeai.workers.dev/r/select.json",
651
- "dependencies": [
652
- "@lucide/svelte",
653
- "bits-ui",
654
- "tailwind-variants"
655
- ],
656
- "variants": {
657
- "selectTriggerVariants": {
658
- "axes": {
659
- "variant": [
660
- "default",
661
- "ghost",
662
- "input"
663
- ],
664
- "size": [
665
- "default",
666
- "sm"
667
- ],
668
- "typography": [
669
- "default",
670
- "mono"
671
- ]
672
- },
673
- "defaults": {
674
- "variant": "default",
675
- "size": "default",
676
- "typography": "default"
677
- }
678
- },
679
- "selectItemVariants": {
680
- "axes": {
681
- "typography": [
682
- "default",
683
- "mono"
684
- ]
685
- },
686
- "defaults": {
687
- "typography": "default"
688
- }
689
- },
690
- "selectContentVariants": {
691
- "axes": {
692
- "size": [
693
- "default",
694
- "sm"
695
- ]
696
- },
697
- "defaults": {
698
- "size": "default"
699
- }
700
- }
416
+ }
417
+ }
418
+ },
419
+ {
420
+ "name": "input-group",
421
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/input-group",
422
+ "source": "https://design-system-console.archetypeai.workers.dev/r/input-group.json",
423
+ "description": "Input with attached addons and buttons.",
424
+ "usage": [
425
+ "Credential field: `InputGroup.Root variant=\"login\"` + `InputGroup.Input variant=\"login\" type=\"password\"` + `InputGroup.Addon align=\"inline-end\"` holding an `InputGroup.Button size=\"icon-sm\"` eye toggle (aria-label for show/hide)."
426
+ ],
427
+ "variants": {
428
+ "inputGroupVariants": {
429
+ "axes": {
430
+ "variant": [
431
+ "default",
432
+ "login",
433
+ "form"
434
+ ],
435
+ "width": [
436
+ "default",
437
+ "fit",
438
+ "full"
439
+ ]
440
+ },
441
+ "defaults": {
442
+ "variant": "default",
443
+ "width": "full"
701
444
  }
702
445
  },
703
- {
704
- "name": "separator",
705
- "import": "@archetypeai/ds-ui-svelte-console/primitives/separator",
706
- "source": "https://design-system-console.archetypeai.workers.dev/r/separator.json",
707
- "dependencies": [
708
- "bits-ui",
709
- "tailwind-variants"
710
- ]
711
- },
712
- {
713
- "name": "sonner",
714
- "import": "@archetypeai/ds-ui-svelte-console/primitives/sonner",
715
- "source": "https://design-system-console.archetypeai.workers.dev/r/sonner.json",
716
- "dependencies": [
717
- "svelte-sonner",
718
- "tailwind-variants"
719
- ]
446
+ "inputGroupAddonVariants": {
447
+ "axes": {
448
+ "align": [
449
+ "inline-start",
450
+ "inline-end",
451
+ "block-start",
452
+ "block-end"
453
+ ]
454
+ },
455
+ "defaults": {
456
+ "align": "inline-start"
457
+ }
720
458
  },
721
- {
722
- "name": "spinner",
723
- "import": "@archetypeai/ds-ui-svelte-console/primitives/spinner",
724
- "source": "https://design-system-console.archetypeai.workers.dev/r/spinner.json",
725
- "dependencies": [
726
- "@lucide/svelte",
727
- "tailwind-variants"
728
- ],
729
- "variants": {
730
- "spinnerVariants": {
731
- "axes": {
732
- "variant": [
733
- "default",
734
- "braille"
735
- ],
736
- "size": [
737
- "default",
738
- "md",
739
- "lg"
740
- ]
741
- },
742
- "defaults": {
743
- "variant": "default",
744
- "size": "default"
745
- }
746
- }
459
+ "inputGroupButtonVariants": {
460
+ "axes": {
461
+ "size": [
462
+ "xs",
463
+ "sm",
464
+ "icon-xs",
465
+ "icon-sm"
466
+ ]
467
+ },
468
+ "defaults": {
469
+ "size": "xs"
470
+ }
471
+ }
472
+ }
473
+ },
474
+ {
475
+ "name": "item",
476
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/item",
477
+ "source": "https://design-system-console.archetypeai.workers.dev/r/item.json",
478
+ "description": "List-row unit for files, sessions, and uploads.",
479
+ "usage": [
480
+ "File/attachment row: `variant=\"outline\"` + Item.Media (file icon) + Item.Content (Item.Title + Item.Description with size · type).",
481
+ "Data row: `variant=\"rowItem\"` + Item.Row of Item.Column column=\"grow|wide|mid|status\" typography=\"mono\" — truncated mono ids with a ghost icon copy button, a status Badge column, and Item.Actions holding icon buttons with visibility=\"hover\" (the standard job/session/file row).",
482
+ "`variant=\"banner\"` for banner-style rows; the phase axis (pending | uploading | complete | error) + Item.Status track upload lifecycles."
483
+ ],
484
+ "variants": {
485
+ "itemVariants": {
486
+ "axes": {
487
+ "variant": [
488
+ "default",
489
+ "outline",
490
+ "muted",
491
+ "rowItem",
492
+ "banner"
493
+ ],
494
+ "size": [
495
+ "default",
496
+ "sm",
497
+ "xs",
498
+ "compact"
499
+ ],
500
+ "phase": [
501
+ "default",
502
+ "pending",
503
+ "uploading",
504
+ "complete",
505
+ "error"
506
+ ],
507
+ "dimmed": [
508
+ "off",
509
+ "on"
510
+ ]
511
+ },
512
+ "defaults": {
513
+ "variant": "default",
514
+ "size": "default",
515
+ "phase": "default",
516
+ "dimmed": "off"
747
517
  }
748
518
  },
749
- {
750
- "name": "table",
751
- "import": "@archetypeai/ds-ui-svelte-console/primitives/table",
752
- "source": "https://design-system-console.archetypeai.workers.dev/r/table.json",
753
- "dependencies": [
754
- "tailwind-variants"
755
- ],
756
- "variants": {
757
- "tableBodyVariants": {
758
- "axes": {
759
- "typography": [
760
- "default",
761
- "mono"
762
- ]
763
- },
764
- "defaults": {
765
- "typography": "default"
766
- }
767
- }
519
+ "itemColumnVariants": {
520
+ "axes": {
521
+ "column": [
522
+ "grow",
523
+ "wide",
524
+ "mid",
525
+ "status"
526
+ ],
527
+ "typography": [
528
+ "default",
529
+ "mono"
530
+ ]
531
+ },
532
+ "defaults": {
533
+ "column": "grow",
534
+ "typography": "default"
768
535
  }
769
536
  },
770
- {
771
- "name": "tabs",
772
- "import": "@archetypeai/ds-ui-svelte-console/primitives/tabs",
773
- "source": "https://design-system-console.archetypeai.workers.dev/r/tabs.json",
774
- "dependencies": [
775
- "bits-ui",
776
- "tailwind-variants"
777
- ],
778
- "variants": {
779
- "tabsListVariants": {
780
- "axes": {
781
- "variant": [
782
- "default",
783
- "line",
784
- "toggle"
785
- ]
786
- },
787
- "defaults": {
788
- "variant": "default"
789
- }
790
- },
791
- "tabsTriggerVariants": {
792
- "axes": {
793
- "variant": [
794
- "text",
795
- "icon"
796
- ],
797
- "size": [
798
- "default",
799
- "pill"
800
- ],
801
- "typography": [
802
- "default",
803
- "mono"
804
- ]
805
- },
806
- "defaults": {
807
- "variant": "text",
808
- "size": "default",
809
- "typography": "default"
810
- }
811
- }
537
+ "itemContentVariants": {
538
+ "axes": {
539
+ "typography": [
540
+ "default",
541
+ "mono"
542
+ ]
543
+ },
544
+ "defaults": {
545
+ "typography": "default"
812
546
  }
813
547
  },
814
- {
815
- "name": "textarea",
816
- "import": "@archetypeai/ds-ui-svelte-console/primitives/textarea",
817
- "source": "https://design-system-console.archetypeai.workers.dev/r/textarea.json",
818
- "dependencies": [
819
- "tailwind-variants"
820
- ],
821
- "variants": {
822
- "textareaVariants": {
823
- "axes": {
824
- "size": [
825
- "sm",
826
- "default",
827
- "lg"
828
- ]
829
- },
830
- "defaults": {
831
- "size": "default"
832
- }
833
- }
548
+ "itemMediaVariants": {
549
+ "axes": {
550
+ "variant": [
551
+ "default",
552
+ "icon",
553
+ "image"
554
+ ]
555
+ },
556
+ "defaults": {
557
+ "variant": "default"
834
558
  }
835
559
  },
836
- {
837
- "name": "tooltip",
838
- "import": "@archetypeai/ds-ui-svelte-console/primitives/tooltip",
839
- "source": "https://design-system-console.archetypeai.workers.dev/r/tooltip.json",
840
- "dependencies": [
841
- "bits-ui",
842
- "tailwind-variants"
843
- ],
844
- "variants": {
845
- "tooltipTriggerVariants": {
846
- "axes": {
847
- "variant": [
848
- "default",
849
- "info",
850
- "inlineLink"
851
- ]
852
- },
853
- "defaults": {
854
- "variant": "default"
855
- }
856
- }
560
+ "itemStatusVariants": {
561
+ "axes": {
562
+ "phase": [
563
+ "default",
564
+ "pending",
565
+ "uploading",
566
+ "complete",
567
+ "error"
568
+ ],
569
+ "visibility": [
570
+ "default",
571
+ "idleOnly"
572
+ ]
573
+ },
574
+ "defaults": {
575
+ "phase": "default",
576
+ "visibility": "default"
857
577
  }
858
578
  }
579
+ }
580
+ },
581
+ {
582
+ "name": "kbd",
583
+ "import": "@archetypeai/ds-ui-svelte-labs/primitives/kbd",
584
+ "source": "https://design-system-labs.archetypeai.workers.dev/r/kbd.json",
585
+ "description": "Keyboard-shortcut display.",
586
+ "usage": [
587
+ "`Kbd.Group` holding one `Kbd.Root` per key (⌘ K, Ctrl Shift P)."
859
588
  ]
860
589
  },
861
- "labs": {
862
- "package": "@archetypeai/ds-ui-svelte-labs",
863
- "version": "0.8.1",
864
- "registry": "https://design-system-labs.archetypeai.workers.dev/r/{name}.json",
865
- "stability": "experimental 0.x, depends on the console package",
866
- "components": [
867
- {
868
- "name": "labs-utils",
869
- "title": "Labs Utils",
870
- "description": "Labs domain helpers plus className merge re-exported from console. Named labs-utils because the shadcn-svelte CLI redirects an item named utils to the consumer's utils alias, breaking relative imports.",
871
- "import": "@archetypeai/ds-ui-svelte-labs/primitives/utils",
872
- "source": "https://design-system-labs.archetypeai.workers.dev/r/labs-utils.json",
873
- "dependencies": [
874
- "@archetypeai/ds-ui-svelte-console"
875
- ]
876
- },
877
- {
878
- "name": "aspect-ratio",
879
- "import": "@archetypeai/ds-ui-svelte-labs/primitives/aspect-ratio",
880
- "source": "https://design-system-labs.archetypeai.workers.dev/r/aspect-ratio.json",
881
- "dependencies": [
882
- "bits-ui"
883
- ]
884
- },
885
- {
886
- "name": "chart",
887
- "import": "@archetypeai/ds-ui-svelte-labs/primitives/chart",
888
- "source": "https://design-system-labs.archetypeai.workers.dev/r/chart.json",
889
- "dependencies": [
890
- "layerchart@2.0.0-next.46",
891
- "tailwind-variants"
892
- ]
893
- },
894
- {
895
- "name": "kbd",
896
- "import": "@archetypeai/ds-ui-svelte-labs/primitives/kbd",
897
- "source": "https://design-system-labs.archetypeai.workers.dev/r/kbd.json",
898
- "dependencies": [
899
- "tailwind-variants"
900
- ]
901
- },
902
- {
903
- "name": "logo",
904
- "title": "Logo",
905
- "description": "Archetype AI brand logo mark.",
906
- "import": "@archetypeai/ds-ui-svelte-labs/primitives/logo",
907
- "source": "https://design-system-labs.archetypeai.workers.dev/r/logo.json",
908
- "dependencies": [
909
- "tailwind-variants"
910
- ],
911
- "variants": {
912
- "logoVariants": {
913
- "axes": {
914
- "size": [
915
- "sm",
916
- "default",
917
- "lg"
918
- ]
919
- },
920
- "defaults": {
921
- "size": "default"
922
- }
923
- }
590
+ {
591
+ "name": "label",
592
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/label",
593
+ "source": "https://design-system-console.archetypeai.workers.dev/r/label.json",
594
+ "description": "Text label for form fields, sections, and headings.",
595
+ "usage": [
596
+ "`variant=\"sectionHeader\"` — the ubiquitous mono uppercase heading above values and form sections, in card content and collapsible triggers.",
597
+ "`variant=\"tableColumnHeader\"` — dashboard table/list column headers; `variant=\"selectionSubHeader\"` — sub-header over selection rows in pickers.",
598
+ "`variant=\"fieldError\"` — validation error under a field; `variant=\"workbenchHeader\"` — workbench panel headers; `variant=\"pagination\"` — 'Page X of Y'.",
599
+ "default variant + for= on form inputs."
600
+ ],
601
+ "variants": {
602
+ "labelVariants": {
603
+ "axes": {
604
+ "variant": [
605
+ "default",
606
+ "pagination",
607
+ "destructive",
608
+ "fieldError",
609
+ "sectionHeader",
610
+ "tableColumnHeader",
611
+ "workbenchHeader",
612
+ "responseCaption",
613
+ "selectionSubHeader"
614
+ ]
615
+ },
616
+ "defaults": {
617
+ "variant": "default"
618
+ }
619
+ }
620
+ }
621
+ },
622
+ {
623
+ "name": "labs-utils",
624
+ "import": "@archetypeai/ds-ui-svelte-labs/primitives/utils",
625
+ "source": "https://design-system-labs.archetypeai.workers.dev/r/labs-utils.json",
626
+ "description": "Labs domain helpers plus cn() re-exported from console."
627
+ },
628
+ {
629
+ "name": "logo",
630
+ "import": "@archetypeai/ds-ui-svelte-labs/primitives/logo",
631
+ "source": "https://design-system-labs.archetypeai.workers.dev/r/logo.json",
632
+ "description": "Archetype AI brand logo mark.",
633
+ "usage": [
634
+ "Headers: `<Logo class=\"h-6 w-auto\" />` next to the app title; sizes sm | default | lg."
635
+ ],
636
+ "variants": {
637
+ "logoVariants": {
638
+ "axes": {
639
+ "size": [
640
+ "sm",
641
+ "default",
642
+ "lg"
643
+ ]
644
+ },
645
+ "defaults": {
646
+ "size": "default"
647
+ }
648
+ }
649
+ }
650
+ },
651
+ {
652
+ "name": "menubar",
653
+ "import": "@archetypeai/ds-ui-svelte-labs/primitives/menubar",
654
+ "source": "https://design-system-labs.archetypeai.workers.dev/r/menubar.json",
655
+ "description": "Branded app header with logo, partner-logo slot, action children, and built-in dark-mode toggle.",
656
+ "usage": [
657
+ "Top of every dashboard shell; children render as right-side actions — `Button variant=\"link\" class=\"text-muted-foreground no-underline hover:underline\"`."
658
+ ]
659
+ },
660
+ {
661
+ "name": "progress",
662
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/progress",
663
+ "source": "https://design-system-console.archetypeai.workers.dev/r/progress.json",
664
+ "description": "Determinate progress bar.",
665
+ "usage": [
666
+ "Pair with a large mono readout: `<span class=\"font-mono text-4xl\">{value}</span><span class=\"text-muted-foreground text-sm\">%</span>` beside the bar.",
667
+ "`size=\"sm\"` for compact/inline progress (upload rows); always aria-label."
668
+ ],
669
+ "variants": {
670
+ "progressVariants": {
671
+ "axes": {
672
+ "size": [
673
+ "default",
674
+ "sm"
675
+ ]
676
+ },
677
+ "defaults": {
678
+ "size": "default"
924
679
  }
925
680
  },
926
- {
927
- "name": "menubar",
928
- "title": "Menubar",
929
- "description": "Branded app header with logo, partner logo slot, action children, and dark mode toggle.",
930
- "import": "@archetypeai/ds-ui-svelte-labs/primitives/menubar",
931
- "source": "https://design-system-labs.archetypeai.workers.dev/r/menubar.json",
932
- "dependencies": [
933
- "@lucide/svelte",
934
- "@archetypeai/ds-ui-svelte-console",
935
- "tailwind-variants"
936
- ]
937
- },
938
- {
939
- "name": "scatter-chart",
940
- "title": "Scatter Chart",
941
- "description": "Scatter plot card with category grouping and sliding-window streaming. Composes BackgroundCard + Chart.",
942
- "import": "@archetypeai/ds-ui-svelte-labs/primitives/scatter-chart",
943
- "source": "https://design-system-labs.archetypeai.workers.dev/r/scatter-chart.json",
944
- "dependencies": [
945
- "layerchart@2.0.0-next.46",
946
- "d3-scale",
947
- "tailwind-variants"
948
- ]
949
- },
950
- {
951
- "name": "sensor-chart",
952
- "title": "Sensor Chart",
953
- "description": "Time-series line chart card with multi-signal and sliding-window streaming. Composes BackgroundCard + Chart.",
954
- "import": "@archetypeai/ds-ui-svelte-labs/primitives/sensor-chart",
955
- "source": "https://design-system-labs.archetypeai.workers.dev/r/sensor-chart.json",
956
- "dependencies": [
957
- "layerchart@2.0.0-next.46",
958
- "d3-scale",
959
- "d3-shape",
960
- "tailwind-variants"
961
- ]
681
+ "progressIndicatorVariants": {
682
+ "axes": {
683
+ "variant": [
684
+ "default",
685
+ "success",
686
+ "critical"
687
+ ]
688
+ },
689
+ "defaults": {
690
+ "variant": "default"
691
+ }
692
+ }
693
+ }
694
+ },
695
+ {
696
+ "name": "scatter-chart",
697
+ "import": "@archetypeai/ds-ui-svelte-labs/primitives/scatter-chart",
698
+ "source": "https://design-system-labs.archetypeai.workers.dev/r/scatter-chart.json",
699
+ "description": "Scatter-plot card for embeddings and cluster views; composes BackgroundCard + Chart.",
700
+ "usage": [
701
+ "`<ScatterChart title icon data categoryKey=\"cluster\" categories={{ q1: 'Cluster A', … }} xMin xMax yMin yMax xTicks yTicks />` — data rows are { x, y, <categoryKey> }; categories map drives legend + series colors.",
702
+ "Streaming: append rows and set `maxPoints` for a sliding window."
703
+ ]
704
+ },
705
+ {
706
+ "name": "select",
707
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/select",
708
+ "source": "https://design-system-console.archetypeai.workers.dev/r/select.json",
709
+ "description": "Single-choice dropdown (bits-ui).",
710
+ "usage": [
711
+ "`Select.Root type=\"single\" bind:value` + `Select.Trigger variant=\"input\"` in forms; render a $derived label with a 'Select a …' fallback as trigger text.",
712
+ "`Select.Content > Select.Group > Select.Item value label` per option; default trigger variant in toolbars/headers."
713
+ ],
714
+ "variants": {
715
+ "selectTriggerVariants": {
716
+ "axes": {
717
+ "variant": [
718
+ "default",
719
+ "ghost",
720
+ "input"
721
+ ],
722
+ "size": [
723
+ "default",
724
+ "sm"
725
+ ],
726
+ "typography": [
727
+ "default",
728
+ "mono"
729
+ ]
730
+ },
731
+ "defaults": {
732
+ "variant": "default",
733
+ "size": "default",
734
+ "typography": "default"
735
+ }
962
736
  },
963
- {
964
- "name": "slider",
965
- "import": "@archetypeai/ds-ui-svelte-labs/primitives/slider",
966
- "source": "https://design-system-labs.archetypeai.workers.dev/r/slider.json",
967
- "dependencies": [
968
- "bits-ui",
969
- "tailwind-variants"
970
- ]
737
+ "selectItemVariants": {
738
+ "axes": {
739
+ "typography": [
740
+ "default",
741
+ "mono"
742
+ ]
743
+ },
744
+ "defaults": {
745
+ "typography": "default"
746
+ }
971
747
  },
972
- {
973
- "name": "switch",
974
- "import": "@archetypeai/ds-ui-svelte-labs/primitives/switch",
975
- "source": "https://design-system-labs.archetypeai.workers.dev/r/switch.json",
976
- "dependencies": [
977
- "bits-ui",
978
- "tailwind-variants"
979
- ],
980
- "variants": {
981
- "switchVariants": {
982
- "axes": {
983
- "size": [
984
- "sm",
985
- "default",
986
- "lg"
987
- ]
988
- },
989
- "defaults": {
990
- "size": "default"
991
- }
992
- },
993
- "switchThumbVariants": {
994
- "axes": {
995
- "size": [
996
- "sm",
997
- "default",
998
- "lg"
999
- ]
1000
- },
1001
- "defaults": {
1002
- "size": "default"
1003
- }
1004
- }
748
+ "selectContentVariants": {
749
+ "axes": {
750
+ "size": [
751
+ "default",
752
+ "sm"
753
+ ]
754
+ },
755
+ "defaults": {
756
+ "size": "default"
757
+ }
758
+ }
759
+ }
760
+ },
761
+ {
762
+ "name": "sensor-chart",
763
+ "import": "@archetypeai/ds-ui-svelte-labs/primitives/sensor-chart",
764
+ "source": "https://design-system-labs.archetypeai.workers.dev/r/sensor-chart.json",
765
+ "description": "Time-series line-chart card with multi-signal support and sliding-window streaming; composes BackgroundCard + Chart.",
766
+ "usage": [
767
+ "`<SensorChart title=\"ACCELERATION SENSOR\" icon={AudioWaveformIcon} data={rows} signals={{ accel_x: 'Accel X', … }} yMin yMax yTicks />` — data rows are { timestamp: Date, <signalKey>: number }.",
768
+ "Streaming: append rows and set `maxPoints` (sliding window); `axis=\"y\"` hides the time axis while streaming."
769
+ ]
770
+ },
771
+ {
772
+ "name": "separator",
773
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/separator",
774
+ "source": "https://design-system-console.archetypeai.workers.dev/r/separator.json",
775
+ "description": "Hairline divider.",
776
+ "usage": [
777
+ "Horizontal between stacked sections; `orientation=\"vertical\"` in multi-column layouts."
778
+ ]
779
+ },
780
+ {
781
+ "name": "slider",
782
+ "import": "@archetypeai/ds-ui-svelte-labs/primitives/slider",
783
+ "source": "https://design-system-labs.archetypeai.workers.dev/r/slider.json",
784
+ "description": "Range slider (bits-ui).",
785
+ "usage": [
786
+ "`<Slider type=\"single\" bind:value max={100} step={1} aria-label=\"…\" />`; also the scrub control inside video-player."
787
+ ]
788
+ },
789
+ {
790
+ "name": "sonner",
791
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/sonner",
792
+ "source": "https://design-system-console.archetypeai.workers.dev/r/sonner.json",
793
+ "description": "Toast notifications (svelte-sonner themed for the DS).",
794
+ "usage": [
795
+ "Mount `<Toaster />` once at the app root; fire `toast.success('3 files uploaded')` / `toast.error(...)` from anywhere, `{ description }` for a second line."
796
+ ]
797
+ },
798
+ {
799
+ "name": "spinner",
800
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/spinner",
801
+ "source": "https://design-system-console.archetypeai.workers.dev/r/spinner.json",
802
+ "description": "Loading indicator.",
803
+ "usage": [
804
+ "`size=\"lg\"` in upload/empty panels; default size with `class=\"size-4\"` for inline row/status loaders; `variant=\"braille\"` for terminal-style loaders; Button embeds it via its `loading` prop."
805
+ ],
806
+ "variants": {
807
+ "spinnerVariants": {
808
+ "axes": {
809
+ "variant": [
810
+ "default",
811
+ "braille"
812
+ ],
813
+ "size": [
814
+ "default",
815
+ "md",
816
+ "lg"
817
+ ]
818
+ },
819
+ "defaults": {
820
+ "variant": "default",
821
+ "size": "default"
822
+ }
823
+ }
824
+ }
825
+ },
826
+ {
827
+ "name": "switch",
828
+ "import": "@archetypeai/ds-ui-svelte-labs/primitives/switch",
829
+ "source": "https://design-system-labs.archetypeai.workers.dev/r/switch.json",
830
+ "description": "On/off toggle switch (bits-ui).",
831
+ "usage": [
832
+ "`bind:checked` + aria-label; sizes sm | default | lg."
833
+ ],
834
+ "variants": {
835
+ "switchVariants": {
836
+ "axes": {
837
+ "size": [
838
+ "sm",
839
+ "default",
840
+ "lg"
841
+ ]
842
+ },
843
+ "defaults": {
844
+ "size": "default"
1005
845
  }
1006
846
  },
1007
- {
1008
- "name": "toggle",
1009
- "import": "@archetypeai/ds-ui-svelte-labs/primitives/toggle",
1010
- "source": "https://design-system-labs.archetypeai.workers.dev/r/toggle.json",
1011
- "dependencies": [
1012
- "bits-ui",
1013
- "tailwind-variants"
1014
- ],
1015
- "variants": {
1016
- "toggleVariants": {
1017
- "axes": {
1018
- "variant": [
1019
- "default",
1020
- "outline"
1021
- ],
1022
- "size": [
1023
- "default",
1024
- "sm",
1025
- "lg"
1026
- ]
1027
- },
1028
- "defaults": {
1029
- "variant": "default",
1030
- "size": "default"
1031
- }
1032
- }
847
+ "switchThumbVariants": {
848
+ "axes": {
849
+ "size": [
850
+ "sm",
851
+ "default",
852
+ "lg"
853
+ ]
854
+ },
855
+ "defaults": {
856
+ "size": "default"
857
+ }
858
+ }
859
+ }
860
+ },
861
+ {
862
+ "name": "table",
863
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/table",
864
+ "source": "https://design-system-console.archetypeai.workers.dev/r/table.json",
865
+ "description": "Data table.",
866
+ "usage": [
867
+ "Log/event tables: width-classed Table.Head columns, `Table.Body class=\"font-sans text-xs\"`, level cells colored with status tokens (text-atai-critical for error rows).",
868
+ "Mono body (`typography=\"mono\"` on Table.Body) for id-heavy tables; pair with `EmptyState variant=\"list\"` when empty."
869
+ ],
870
+ "variants": {
871
+ "tableBodyVariants": {
872
+ "axes": {
873
+ "typography": [
874
+ "default",
875
+ "mono"
876
+ ]
877
+ },
878
+ "defaults": {
879
+ "typography": "default"
880
+ }
881
+ }
882
+ }
883
+ },
884
+ {
885
+ "name": "tabs",
886
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/tabs",
887
+ "source": "https://design-system-console.archetypeai.workers.dev/r/tabs.json",
888
+ "description": "View and section switcher.",
889
+ "usage": [
890
+ "Icon view toggle (list/grid): `Tabs.List variant=\"toggle\"` + `Tabs.Trigger variant=\"icon\"` with an icon + title.",
891
+ "Segmented source switch (Library | File IDs | Upload): `variant=\"toggle\"` list + triggers `size=\"pill\" typography=\"mono\"`.",
892
+ "Page-section tabs (Progress | Logs | Artifacts): `Tabs.List variant=\"line\"` with plain text triggers; always `Tabs.Root bind:value`."
893
+ ],
894
+ "variants": {
895
+ "tabsListVariants": {
896
+ "axes": {
897
+ "variant": [
898
+ "default",
899
+ "line",
900
+ "toggle"
901
+ ]
902
+ },
903
+ "defaults": {
904
+ "variant": "default"
1033
905
  }
1034
906
  },
1035
- {
1036
- "name": "video-player",
1037
- "title": "Video Player",
1038
- "description": "Media playback card with controls and aspect ratio. Composes Card + AspectRatio + Button + Slider.",
1039
- "import": "@archetypeai/ds-ui-svelte-labs/primitives/video-player",
1040
- "source": "https://design-system-labs.archetypeai.workers.dev/r/video-player.json",
1041
- "dependencies": [
1042
- "@lucide/svelte",
1043
- "@archetypeai/ds-ui-svelte-console",
1044
- "tailwind-variants"
1045
- ],
1046
- "variants": {
1047
- "videoPlayerOverlayVariants": {
1048
- "axes": {
1049
- "visible": [
1050
- "true",
1051
- "false"
1052
- ]
1053
- },
1054
- "defaults": {
1055
- "visible": "true"
1056
- }
1057
- },
1058
- "videoPlayerControlsVariants": {
1059
- "axes": {
1060
- "visible": [
1061
- "true",
1062
- "false"
1063
- ]
1064
- },
1065
- "defaults": {
1066
- "visible": "true"
1067
- }
1068
- }
907
+ "tabsTriggerVariants": {
908
+ "axes": {
909
+ "variant": [
910
+ "text",
911
+ "icon"
912
+ ],
913
+ "size": [
914
+ "default",
915
+ "pill"
916
+ ],
917
+ "typography": [
918
+ "default",
919
+ "mono"
920
+ ]
921
+ },
922
+ "defaults": {
923
+ "variant": "text",
924
+ "size": "default",
925
+ "typography": "default"
926
+ }
927
+ }
928
+ }
929
+ },
930
+ {
931
+ "name": "textarea",
932
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/textarea",
933
+ "source": "https://design-system-console.archetypeai.workers.dev/r/textarea.json",
934
+ "description": "Multi-line text input.",
935
+ "usage": [
936
+ "Feedback/description fields under a Label sectionHeader; bind:value + placeholder."
937
+ ],
938
+ "variants": {
939
+ "textareaVariants": {
940
+ "axes": {
941
+ "size": [
942
+ "sm",
943
+ "default",
944
+ "lg"
945
+ ]
946
+ },
947
+ "defaults": {
948
+ "size": "default"
1069
949
  }
1070
950
  }
951
+ }
952
+ },
953
+ {
954
+ "name": "theme",
955
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/theme",
956
+ "source": "https://design-system-console.archetypeai.workers.dev/r/theme.json",
957
+ "description": "darkMode singleton controller syncing the `dark` class on <html>.",
958
+ "usage": [
959
+ "`darkMode.set(window.matchMedia('(prefers-color-scheme: dark)').matches)` on startup; `darkMode.toggle()` from a menu item or icon button; `darkMode.current` for reactive reads."
1071
960
  ]
961
+ },
962
+ {
963
+ "name": "toggle",
964
+ "import": "@archetypeai/ds-ui-svelte-labs/primitives/toggle",
965
+ "source": "https://design-system-labs.archetypeai.workers.dev/r/toggle.json",
966
+ "description": "Pressed-state button (bits-ui).",
967
+ "usage": [
968
+ "Icon-only by default (aria-label required); `variant=\"outline\"` for icon + text."
969
+ ],
970
+ "variants": {
971
+ "toggleVariants": {
972
+ "axes": {
973
+ "variant": [
974
+ "default",
975
+ "outline"
976
+ ],
977
+ "size": [
978
+ "default",
979
+ "sm",
980
+ "lg"
981
+ ]
982
+ },
983
+ "defaults": {
984
+ "variant": "default",
985
+ "size": "default"
986
+ }
987
+ }
988
+ }
989
+ },
990
+ {
991
+ "name": "tooltip",
992
+ "import": "@archetypeai/ds-ui-svelte-console/primitives/tooltip",
993
+ "source": "https://design-system-console.archetypeai.workers.dev/r/tooltip.json",
994
+ "description": "Hover hint.",
995
+ "usage": [
996
+ "Wrap the app/section in `Tooltip.Provider delayDuration={200}`.",
997
+ "Field help: `Tooltip.Trigger variant=\"info\"` holding an InfoIcon placed next to a Label sectionHeader, explanation in Tooltip.Content.",
998
+ "`variant=\"inlineLink\"` — underlined trigger flowing inside prose (supported file requirements)."
999
+ ],
1000
+ "variants": {
1001
+ "tooltipTriggerVariants": {
1002
+ "axes": {
1003
+ "variant": [
1004
+ "default",
1005
+ "info",
1006
+ "inlineLink"
1007
+ ]
1008
+ },
1009
+ "defaults": {
1010
+ "variant": "default"
1011
+ }
1012
+ }
1013
+ }
1014
+ },
1015
+ {
1016
+ "name": "video-player",
1017
+ "import": "@archetypeai/ds-ui-svelte-labs/primitives/video-player",
1018
+ "source": "https://design-system-labs.archetypeai.workers.dev/r/video-player.json",
1019
+ "description": "Media-playback card with controls and aspect ratio; composes Card + AspectRatio + Button + Slider.",
1020
+ "usage": [
1021
+ "`<VideoPlayer src muted />` for the standard controlled player; `controls={false}` for ambient/looping footage."
1022
+ ],
1023
+ "variants": {
1024
+ "videoPlayerOverlayVariants": {
1025
+ "axes": {
1026
+ "visible": [
1027
+ "true",
1028
+ "false"
1029
+ ]
1030
+ },
1031
+ "defaults": {
1032
+ "visible": "true"
1033
+ }
1034
+ },
1035
+ "videoPlayerControlsVariants": {
1036
+ "axes": {
1037
+ "visible": [
1038
+ "true",
1039
+ "false"
1040
+ ]
1041
+ },
1042
+ "defaults": {
1043
+ "visible": "true"
1044
+ }
1045
+ }
1046
+ }
1072
1047
  }
1073
- }
1048
+ ]
1074
1049
  }