@archetypeai/ds-cli 0.18.1 → 0.19.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.
- package/files/AGENTS.md +1 -1
- package/files/CLAUDE.md +1 -1
- package/files/ds-manifest.json +24 -24
- package/package.json +1 -1
package/files/AGENTS.md
CHANGED
|
@@ -62,7 +62,7 @@ Use semantic tokens for anything themed; standard Tailwind for layout.
|
|
|
62
62
|
`text-muted-foreground`, `border-border`, `bg-accent`, `bg-primary`,
|
|
63
63
|
`text-primary-foreground`, `bg-destructive`
|
|
64
64
|
- Status: `text-atai-good`, `text-atai-warning`, `text-atai-critical`,
|
|
65
|
-
`text-atai-neutral` (
|
|
65
|
+
`text-atai-neutral` (status badges take only the text colour; the outline follows it)
|
|
66
66
|
- Brand: `bg-atai-brand-babyblue`, `bg-atai-brand-yellow`,
|
|
67
67
|
`text-atai-always-black`, `text-atai-always-white`
|
|
68
68
|
- Icon strokes on lucide icons: `stroke-icon-default`,
|
package/files/CLAUDE.md
CHANGED
|
@@ -62,7 +62,7 @@ Use semantic tokens for anything themed; standard Tailwind for layout.
|
|
|
62
62
|
`text-muted-foreground`, `border-border`, `bg-accent`, `bg-primary`,
|
|
63
63
|
`text-primary-foreground`, `bg-destructive`
|
|
64
64
|
- Status: `text-atai-good`, `text-atai-warning`, `text-atai-critical`,
|
|
65
|
-
`text-atai-neutral` (
|
|
65
|
+
`text-atai-neutral` (status badges take only the text colour; the outline follows it)
|
|
66
66
|
- Brand: `bg-atai-brand-babyblue`, `bg-atai-brand-yellow`,
|
|
67
67
|
`text-atai-always-black`, `text-atai-always-white`
|
|
68
68
|
- Icon strokes on lucide icons: `stroke-icon-default`,
|
package/files/ds-manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "archetypeai-design-system",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"name": "alert",
|
|
@@ -75,11 +75,13 @@
|
|
|
75
75
|
"name": "badge",
|
|
76
76
|
"import": "@archetypeai/ds-ui-svelte-console/primitives/badge",
|
|
77
77
|
"source": "https://design-system-console.archetypeai.workers.dev/r/badge.json",
|
|
78
|
-
"description": "Small pill for
|
|
78
|
+
"description": "Small pill for a run's status, a selected item, or a step number — nothing else.",
|
|
79
79
|
"usage": [
|
|
80
|
-
"
|
|
80
|
+
"Restraint: a badge is for state the user acts on, not decoration. Do not badge categories, tags, counts, model names, versions, units or metadata — write them as plain text (`text-muted-foreground` for secondary). One status badge per item at most, and never a badge next to text that already says the same thing.",
|
|
81
|
+
"Status: `variant=\"status\"` colored by a status token on the text alone, e.g. class=\"text-atai-good\" (Completed), atai-critical (Failed), atai-warning (Interrupted), atai-neutral (Running), muted-foreground (Pending). The outline follows the text colour, so never pass a `border-*` class or remove the outline.",
|
|
81
82
|
"Size: `size=\"sm\"` gives the status pill smaller type and tighter spacing for tight spaces (cards, tables) or inline with text; defaults to `size=\"default\"`.",
|
|
82
83
|
"Selection: `variant=\"selection\"` for dismissible picks, with an embedded `Button variant=\"ghost\" size=\"inline\" visibility=\"dimmed\"` X icon to remove.",
|
|
84
|
+
"Step: `variant=\"step\"` is the filled circle that numbers the steps of an ordered procedure, e.g. `<Badge variant=\"step\" aria-hidden=\"true\">{i + 1}</Badge>` leading each row with `flex items-center gap-2`. Pass the number only, 1-based; one digit is a circle and more digits stretch it into a pill of the same height. Hide it from assistive tech when the row's label already names the step. `size=\"sm\"` (16px) suits dense lists and `text-xs` labels; `size=\"lg\"` (24px) steps set beside larger type.",
|
|
83
85
|
"Spacing: the badge carries no outer margin — the container owns the gap (e.g. `flex gap-2`). For the rare trailing-edge case, add `class=\"-mr-1\"` at the call site."
|
|
84
86
|
],
|
|
85
87
|
"variants": {
|
|
@@ -87,11 +89,13 @@
|
|
|
87
89
|
"axes": {
|
|
88
90
|
"variant": [
|
|
89
91
|
"selection",
|
|
90
|
-
"status"
|
|
92
|
+
"status",
|
|
93
|
+
"step"
|
|
91
94
|
],
|
|
92
95
|
"size": [
|
|
93
96
|
"default",
|
|
94
|
-
"sm"
|
|
97
|
+
"sm",
|
|
98
|
+
"lg"
|
|
95
99
|
]
|
|
96
100
|
},
|
|
97
101
|
"defaults": {
|
|
@@ -285,7 +289,7 @@
|
|
|
285
289
|
"usage": [
|
|
286
290
|
"`<Command.Root>` holds a `Command.Input`, a `Command.List` of `Command.Group`s (each a `Command.GroupHeading` and a `Command.GroupItems` of `Command.Item`s, with `Command.Separator`s between), a `Command.Empty`, and an optional `Command.Footer`. Put it in a `Popover.Content class=\"w-120 p-0\"` for a searchable menu, or on the page as a standalone search list.",
|
|
287
291
|
"Filtering: by default Command filters and ranks the items itself against each item's `value` (plus any `keywords`). When the caller filters (its own match rule, a sort, a server search), pass `shouldFilter={false}` and render only the matching items; bind the input with `bind:value` to read the query.",
|
|
288
|
-
"`Command.Input` is an `InputGroup` with the search icon at its start. Controls that belong in the field, such as a sort toggle (`Tabs
|
|
292
|
+
"`Command.Input` is an `InputGroup` with the search icon at its start. Controls that belong in the field, such as a sort toggle (`Tabs.List variant=\"segmented\"` with icon-only triggers and an `aria-label` on each), go in as its children and sit at its end.",
|
|
289
293
|
"`Command.Item` takes `onSelect` (Enter or click) and `disabled`, which skips it in arrow-key navigation and dims it; say why in a `title`. The arrow keys move the highlight; pass `loop` on the root to wrap from the last item to the first. It takes DropdownMenu.Item's `variant` (`destructive`), `inset`, `typography` and `justify`, so a row is built the same way in both menus.",
|
|
290
294
|
"Mark the current pick with `data-checked={item.value === current}`: the item's trailing check shows on it, so the menu opens showing what's picked. Every item reserves the check's width, so rows line up whether or not one is checked.",
|
|
291
295
|
"`Command.Empty` shows when no item is left: \"No file matches “report”.\" names the query. With the built-in filter that happens on its own. With `shouldFilter={false}` Command counts every mounted item, so while a query is typed leave out the static rows (an \"All files\" row, the footer) or Empty never shows.",
|
|
@@ -1259,23 +1263,29 @@
|
|
|
1259
1263
|
"source": "https://design-system-console.archetypeai.workers.dev/r/tabs.json",
|
|
1260
1264
|
"description": "View and section switcher.",
|
|
1261
1265
|
"usage": [
|
|
1262
|
-
"
|
|
1263
|
-
"
|
|
1264
|
-
"
|
|
1266
|
+
"The look is set once, on `Tabs.List`; triggers take it from the list and have no styling props of their own beyond `variant=\"icon\"`.",
|
|
1267
|
+
"Page-section tabs (Progress | Logs | Artifacts): `Tabs.List` (`variant=\"line\"` is the default) with plain text triggers and a `Tabs.Content` per tab; always `Tabs.Root bind:value`.",
|
|
1268
|
+
"A second strip nested inside a section's panel: `Tabs.List size=\"sm\"`, so it reads as a level below the page's strip. `size` exists on `line` only.",
|
|
1269
|
+
"Mode or view switch over the same content (Library | File IDs | Upload, Share | Count): `Tabs.List variant=\"segmented\"` with text triggers and no `Tabs.Content`.",
|
|
1270
|
+
"Icon view toggle (list/grid) or sort direction: `Tabs.List variant=\"segmented\"` + `Tabs.Trigger variant=\"icon\"` with an icon, and a `title` or `aria-label` on each trigger.",
|
|
1265
1271
|
"Count on a trigger: `<Tabs.Trigger value=\"logs\">Logs <Tabs.Count value={logCount} /></Tabs.Trigger>` — an odometer pill that abbreviates past 999 (`1.2K`) so the strip never reflows. Pass `value={null}` while the count is still loading (it reserves the width), `value={0}` for an empty tab, and omit `Tabs.Count` entirely for a tab that has no count at all.",
|
|
1266
1272
|
"Count on a tab that cannot be sized: `<Tabs.Count value={loaded} atLeast />` renders `103+` for a keyset-paginated tab that knows only how many rows it has so far. Prefer it over dropping the count entirely, which reads as \"none\"."
|
|
1267
1273
|
],
|
|
1268
1274
|
"variants": {
|
|
1269
|
-
"
|
|
1275
|
+
"tabsVariants": {
|
|
1270
1276
|
"axes": {
|
|
1271
1277
|
"variant": [
|
|
1272
|
-
"default",
|
|
1273
1278
|
"line",
|
|
1274
|
-
"
|
|
1279
|
+
"segmented"
|
|
1280
|
+
],
|
|
1281
|
+
"size": [
|
|
1282
|
+
"default",
|
|
1283
|
+
"sm"
|
|
1275
1284
|
]
|
|
1276
1285
|
},
|
|
1277
1286
|
"defaults": {
|
|
1278
|
-
"variant": "
|
|
1287
|
+
"variant": "line",
|
|
1288
|
+
"size": "default"
|
|
1279
1289
|
}
|
|
1280
1290
|
},
|
|
1281
1291
|
"tabsTriggerVariants": {
|
|
@@ -1283,20 +1293,10 @@
|
|
|
1283
1293
|
"variant": [
|
|
1284
1294
|
"text",
|
|
1285
1295
|
"icon"
|
|
1286
|
-
],
|
|
1287
|
-
"size": [
|
|
1288
|
-
"default",
|
|
1289
|
-
"pill"
|
|
1290
|
-
],
|
|
1291
|
-
"typography": [
|
|
1292
|
-
"default",
|
|
1293
|
-
"mono"
|
|
1294
1296
|
]
|
|
1295
1297
|
},
|
|
1296
1298
|
"defaults": {
|
|
1297
|
-
"variant": "text"
|
|
1298
|
-
"size": "default",
|
|
1299
|
-
"typography": "default"
|
|
1299
|
+
"variant": "text"
|
|
1300
1300
|
}
|
|
1301
1301
|
}
|
|
1302
1302
|
}
|