@vegastack/design 0.7.31 → 0.7.32
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/dist/{chunk-OHGNXG5G.js → chunk-6CWBD6NJ.js} +7 -0
- package/dist/create-animated-icon.js +1 -1
- package/dist/icons/index.js +1 -1
- package/dist/index.cjs +7 -0
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/skills/vegastack-design-system/SKILL.md +9 -2
- package/skills/vegastack-design-system/references/components.md +1 -1
|
@@ -43,6 +43,13 @@ var prose = {
|
|
|
43
43
|
ul: "[&_ul]:my-3 [&_ul]:ms-6 [&_ul]:list-disc [&_ul]:text-foreground [&_ul]:marker:text-muted-foreground [&_ul.contains-task-list]:list-none",
|
|
44
44
|
ol: "[&_ol]:my-3 [&_ol]:ms-6 [&_ol]:list-decimal [&_ol]:text-foreground [&_ol]:marker:text-muted-foreground",
|
|
45
45
|
li: "[&_li]:mt-1.5 [&_li]:leading-relaxed",
|
|
46
|
+
// Task lists, one shape for both producers: `MarkdownView` tags the GFM list
|
|
47
|
+
// `data-type="taskList"` and each item `data-type="taskItem"` with its body in a
|
|
48
|
+
// `data-slot="task-item-content"` box, which is exactly the DOM Tiptap's `TaskItem` node view
|
|
49
|
+
// renders — so the checkbox IS the marker, the body wraps beside it, and a nested list indents
|
|
50
|
+
// under the body in view and edit alike. A cell's or item's paragraph inherits its ink so a
|
|
51
|
+
// Tiptap `<td><p>` reads the same as GFM's bare `<td>`.
|
|
52
|
+
taskList: "[&_ul[data-type=taskList]]:ms-0 [&_ul[data-type=taskList]]:list-none [&_li[data-type=taskItem]]:flex [&_li[data-type=taskItem]]:items-start [&_li[data-type=taskItem]]:gap-2 [&_li[data-type=taskItem]_[data-slot=checkbox]]:mt-1 [&_li[data-type=taskItem]_[data-slot=checkbox]]:me-0 [&_[data-slot=task-item-content]]:min-w-0 [&_[data-slot=task-item-content]]:flex-1 [&_td_p]:text-inherit [&_th_p]:text-inherit",
|
|
46
53
|
blockquote: "[&_blockquote]:my-3 [&_blockquote]:border-s-2 [&_blockquote]:border-border [&_blockquote]:ps-4 [&_blockquote]:text-muted-foreground [&_blockquote]:italic",
|
|
47
54
|
// Inline code is a chip. Code inside a `pre` is not: it inherits the panel's ground, so the chip
|
|
48
55
|
// is undone at higher specificity (`[&_pre_code]` is (0,1,2) against the chip's (0,1,1)).
|
package/dist/icons/index.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -72,6 +72,13 @@ var prose = {
|
|
|
72
72
|
ul: "[&_ul]:my-3 [&_ul]:ms-6 [&_ul]:list-disc [&_ul]:text-foreground [&_ul]:marker:text-muted-foreground [&_ul.contains-task-list]:list-none",
|
|
73
73
|
ol: "[&_ol]:my-3 [&_ol]:ms-6 [&_ol]:list-decimal [&_ol]:text-foreground [&_ol]:marker:text-muted-foreground",
|
|
74
74
|
li: "[&_li]:mt-1.5 [&_li]:leading-relaxed",
|
|
75
|
+
// Task lists, one shape for both producers: `MarkdownView` tags the GFM list
|
|
76
|
+
// `data-type="taskList"` and each item `data-type="taskItem"` with its body in a
|
|
77
|
+
// `data-slot="task-item-content"` box, which is exactly the DOM Tiptap's `TaskItem` node view
|
|
78
|
+
// renders — so the checkbox IS the marker, the body wraps beside it, and a nested list indents
|
|
79
|
+
// under the body in view and edit alike. A cell's or item's paragraph inherits its ink so a
|
|
80
|
+
// Tiptap `<td><p>` reads the same as GFM's bare `<td>`.
|
|
81
|
+
taskList: "[&_ul[data-type=taskList]]:ms-0 [&_ul[data-type=taskList]]:list-none [&_li[data-type=taskItem]]:flex [&_li[data-type=taskItem]]:items-start [&_li[data-type=taskItem]]:gap-2 [&_li[data-type=taskItem]_[data-slot=checkbox]]:mt-1 [&_li[data-type=taskItem]_[data-slot=checkbox]]:me-0 [&_[data-slot=task-item-content]]:min-w-0 [&_[data-slot=task-item-content]]:flex-1 [&_td_p]:text-inherit [&_th_p]:text-inherit",
|
|
75
82
|
blockquote: "[&_blockquote]:my-3 [&_blockquote]:border-s-2 [&_blockquote]:border-border [&_blockquote]:ps-4 [&_blockquote]:text-muted-foreground [&_blockquote]:italic",
|
|
76
83
|
// Inline code is a chip. Code inside a `pre` is not: it inherits the panel's ground, so the chip
|
|
77
84
|
// is undone at higher specificity (`[&_pre_code]` is (0,1,2) against the chip's (0,1,1)).
|
package/dist/index.d.cts
CHANGED
|
@@ -70,6 +70,7 @@ declare const prose: {
|
|
|
70
70
|
readonly ul: "[&_ul]:my-3 [&_ul]:ms-6 [&_ul]:list-disc [&_ul]:text-foreground [&_ul]:marker:text-muted-foreground [&_ul.contains-task-list]:list-none";
|
|
71
71
|
readonly ol: "[&_ol]:my-3 [&_ol]:ms-6 [&_ol]:list-decimal [&_ol]:text-foreground [&_ol]:marker:text-muted-foreground";
|
|
72
72
|
readonly li: "[&_li]:mt-1.5 [&_li]:leading-relaxed";
|
|
73
|
+
readonly taskList: "[&_ul[data-type=taskList]]:ms-0 [&_ul[data-type=taskList]]:list-none [&_li[data-type=taskItem]]:flex [&_li[data-type=taskItem]]:items-start [&_li[data-type=taskItem]]:gap-2 [&_li[data-type=taskItem]_[data-slot=checkbox]]:mt-1 [&_li[data-type=taskItem]_[data-slot=checkbox]]:me-0 [&_[data-slot=task-item-content]]:min-w-0 [&_[data-slot=task-item-content]]:flex-1 [&_td_p]:text-inherit [&_th_p]:text-inherit";
|
|
73
74
|
readonly blockquote: "[&_blockquote]:my-3 [&_blockquote]:border-s-2 [&_blockquote]:border-border [&_blockquote]:ps-4 [&_blockquote]:text-muted-foreground [&_blockquote]:italic";
|
|
74
75
|
readonly code: "[&_code]:rounded-sm [&_code]:bg-muted [&_code]:px-1.5 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-sm [&_code]:text-foreground";
|
|
75
76
|
readonly pre: "[&_pre:not([data-slot='code-block-pre'])]:my-3 [&_pre:not([data-slot='code-block-pre'])]:overflow-x-auto [&_pre:not([data-slot='code-block-pre'])]:rounded-lg [&_pre:not([data-slot='code-block-pre'])]:border [&_pre:not([data-slot='code-block-pre'])]:border-border [&_pre:not([data-slot='code-block-pre'])]:bg-muted [&_pre:not([data-slot='code-block-pre'])]:p-4 [&_pre:not([data-slot='code-block-pre'])]:text-foreground";
|
package/dist/index.d.ts
CHANGED
|
@@ -70,6 +70,7 @@ declare const prose: {
|
|
|
70
70
|
readonly ul: "[&_ul]:my-3 [&_ul]:ms-6 [&_ul]:list-disc [&_ul]:text-foreground [&_ul]:marker:text-muted-foreground [&_ul.contains-task-list]:list-none";
|
|
71
71
|
readonly ol: "[&_ol]:my-3 [&_ol]:ms-6 [&_ol]:list-decimal [&_ol]:text-foreground [&_ol]:marker:text-muted-foreground";
|
|
72
72
|
readonly li: "[&_li]:mt-1.5 [&_li]:leading-relaxed";
|
|
73
|
+
readonly taskList: "[&_ul[data-type=taskList]]:ms-0 [&_ul[data-type=taskList]]:list-none [&_li[data-type=taskItem]]:flex [&_li[data-type=taskItem]]:items-start [&_li[data-type=taskItem]]:gap-2 [&_li[data-type=taskItem]_[data-slot=checkbox]]:mt-1 [&_li[data-type=taskItem]_[data-slot=checkbox]]:me-0 [&_[data-slot=task-item-content]]:min-w-0 [&_[data-slot=task-item-content]]:flex-1 [&_td_p]:text-inherit [&_th_p]:text-inherit";
|
|
73
74
|
readonly blockquote: "[&_blockquote]:my-3 [&_blockquote]:border-s-2 [&_blockquote]:border-border [&_blockquote]:ps-4 [&_blockquote]:text-muted-foreground [&_blockquote]:italic";
|
|
74
75
|
readonly code: "[&_code]:rounded-sm [&_code]:bg-muted [&_code]:px-1.5 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-sm [&_code]:text-foreground";
|
|
75
76
|
readonly pre: "[&_pre:not([data-slot='code-block-pre'])]:my-3 [&_pre:not([data-slot='code-block-pre'])]:overflow-x-auto [&_pre:not([data-slot='code-block-pre'])]:rounded-lg [&_pre:not([data-slot='code-block-pre'])]:border [&_pre:not([data-slot='code-block-pre'])]:border-border [&_pre:not([data-slot='code-block-pre'])]:bg-muted [&_pre:not([data-slot='code-block-pre'])]:p-4 [&_pre:not([data-slot='code-block-pre'])]:text-foreground";
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vegastack/design",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.32",
|
|
4
4
|
"description": "VegaStack design system — cn utility, icon runtime, Tailwind v4 preset, and the vegastack-design CLI (tokens ship separately as @vegastack/design-tokens)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -90,8 +90,8 @@ link` (upstream's set, verbatim). `destructive` is a soft tint, not a solid red
|
|
|
90
90
|
toggle, then views as `Tabs` (default variant, `TabsList size="sm"`, optional leading icons), then
|
|
91
91
|
the layout switch (`ViewToggle`), furthest right. Filters are `FilterBarFacet` /
|
|
92
92
|
`DateRangeFilter` chips (compact, rounded-md, tinted when set) on the toggled row; people facets
|
|
93
|
-
take `itemToSecondaryLabel={(p) => p.email}`.
|
|
94
|
-
Grid | List | Board. Tables are `DataList` with `sortable` columns (`compare`, `sortFirst`,
|
|
93
|
+
take `itemToSecondaryLabel={(p) => p.email}`. Toolbar switches use default Tabs — never a ToggleGroup or line
|
|
94
|
+
Tabs: `Tabs` for scope, `ViewToggle` (default Tabs, icons) for Grid | List | Board. Tables are `DataList` with `sortable` columns (`compare`, `sortFirst`,
|
|
95
95
|
`sortMode="client"`) and `rowActions` (the ⋯ column, always last); row links are never underlined.
|
|
96
96
|
- **`alert`** for an in-content notice — `variant` is `default · destructive · success · warning ·
|
|
97
97
|
info`, each an ink on the `card` surface with a required icon; **`announcement-banner`** only for
|
|
@@ -281,6 +281,13 @@ descendant rules (`[&_h1]:…`), which means an element-level class on a child *
|
|
|
281
281
|
by setting a class on the rendered element. Under the page's own headings, `MarkdownView headingOffset={n}` moves every
|
|
282
282
|
heading down `n` levels (capped at h6) so the outline never skips back up.
|
|
283
283
|
|
|
284
|
+
**Markdown is read with `MarkdownView` and edited with `TextEdit format="markdown"`** — never a
|
|
285
|
+
textarea, a local prose class, or a hand-rolled editor. For in-place editing, swap the view for
|
|
286
|
+
`<TextEdit format="markdown" variant="ghost" onSave onCancel />`: ghost is borderless with no inset,
|
|
287
|
+
so the text does not move, and Save/Cancel sit at the toolbar's end (⌘/Ctrl+Enter saves, Esc
|
|
288
|
+
cancels). Pick `toolbar="minimal"` for comments, `"standard"` (default) for notes and summaries,
|
|
289
|
+
`"full"` for documents; the schema follows the toolbar. Keep `variant="outline"` inside forms.
|
|
290
|
+
|
|
284
291
|
`muted`, `accent` and `secondary` share one value in this base, and all three are kept: name the one
|
|
285
292
|
whose ROLE you mean, so a consumer can retune one without moving the others.
|
|
286
293
|
|
|
@@ -120,7 +120,7 @@ starts with `icon-` is a component and never an icon.
|
|
|
120
120
|
- **`pagination`** — Page navigation — previous/next, numbered page links, an ellipsis for long ranges, and the active page.
|
|
121
121
|
- **`sidebar`** — A collapsible app navigation rail — header/content/footer, labelled groups, menu items with active and open (menu-trigger) states, and an expand/collapse trigger.
|
|
122
122
|
- **`stepper`** — A bounded linear process as an ordered list — seven step states on a numbered rail that fills in behind you, aria-current=step, orientation chosen from the step count, and a compact summary below a container width.
|
|
123
|
-
- **`tabs`** — Layered content sections — default (segmented) or line variants, compact size, optional leading icons and counts, horizontal or vertical, full keyboard navigation.
|
|
123
|
+
- **`tabs`** — Layered content sections — default (segmented) or line variants, compact size, optional leading icons and counts, horizontal or vertical, full keyboard navigation. Toolbar switches use default Tabs: scope (My tasks | Team tasks) and views, whose List/Board/Grid switch is ViewToggle (default Tabs with icons). The one component that keeps a focus ring.
|
|
124
124
|
|
|
125
125
|
## Feedback
|
|
126
126
|
|