@nadicodeai/ui 10.0.0 → 10.0.2

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 (100) hide show
  1. package/README.md +0 -25
  2. package/dist/components/model-mark.js +1 -1
  3. package/dist/components/table.js +1 -1
  4. package/dist/index.d.ts +1 -30
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -30
  7. package/docs/component-classification.md +2 -2
  8. package/docs/contract.md +4 -1
  9. package/docs/product-compositions.md +16 -0
  10. package/package.json +2 -2
  11. package/dist/components/action-band.d.ts +0 -12
  12. package/dist/components/action-band.d.ts.map +0 -1
  13. package/dist/components/action-band.js +0 -48
  14. package/dist/components/card-marketing.d.ts +0 -30
  15. package/dist/components/card-marketing.d.ts.map +0 -1
  16. package/dist/components/card-marketing.js +0 -48
  17. package/dist/components/code-editor-mockup.d.ts +0 -25
  18. package/dist/components/code-editor-mockup.d.ts.map +0 -1
  19. package/dist/components/code-editor-mockup.js +0 -47
  20. package/dist/components/contact.d.ts +0 -32
  21. package/dist/components/contact.d.ts.map +0 -1
  22. package/dist/components/contact.js +0 -46
  23. package/dist/components/faq-item.d.ts +0 -25
  24. package/dist/components/faq-item.d.ts.map +0 -1
  25. package/dist/components/faq-item.js +0 -25
  26. package/dist/components/faq.d.ts +0 -20
  27. package/dist/components/faq.d.ts.map +0 -1
  28. package/dist/components/faq.js +0 -23
  29. package/dist/components/feature-grid.d.ts +0 -23
  30. package/dist/components/feature-grid.d.ts.map +0 -1
  31. package/dist/components/feature-grid.js +0 -33
  32. package/dist/components/feature-rows.d.ts +0 -23
  33. package/dist/components/feature-rows.d.ts.map +0 -1
  34. package/dist/components/feature-rows.js +0 -27
  35. package/dist/components/hero-split.d.ts +0 -23
  36. package/dist/components/hero-split.d.ts.map +0 -1
  37. package/dist/components/hero-split.js +0 -35
  38. package/dist/components/hero.d.ts +0 -28
  39. package/dist/components/hero.d.ts.map +0 -1
  40. package/dist/components/hero.js +0 -45
  41. package/dist/components/integration-flow.d.ts +0 -36
  42. package/dist/components/integration-flow.d.ts.map +0 -1
  43. package/dist/components/integration-flow.js +0 -36
  44. package/dist/components/live-demo.d.ts +0 -31
  45. package/dist/components/live-demo.d.ts.map +0 -1
  46. package/dist/components/live-demo.js +0 -30
  47. package/dist/components/logo-band.d.ts +0 -33
  48. package/dist/components/logo-band.d.ts.map +0 -1
  49. package/dist/components/logo-band.js +0 -49
  50. package/dist/components/logo-tile.d.ts +0 -21
  51. package/dist/components/logo-tile.d.ts.map +0 -1
  52. package/dist/components/logo-tile.js +0 -28
  53. package/dist/components/media-mount.d.ts +0 -13
  54. package/dist/components/media-mount.d.ts.map +0 -1
  55. package/dist/components/media-mount.js +0 -15
  56. package/dist/components/newsletter.d.ts +0 -24
  57. package/dist/components/newsletter.d.ts.map +0 -1
  58. package/dist/components/newsletter.js +0 -31
  59. package/dist/components/pricing-card.d.ts +0 -30
  60. package/dist/components/pricing-card.d.ts.map +0 -1
  61. package/dist/components/pricing-card.js +0 -44
  62. package/dist/components/pricing.d.ts +0 -25
  63. package/dist/components/pricing.d.ts.map +0 -1
  64. package/dist/components/pricing.js +0 -11
  65. package/dist/components/proof-slot.d.ts +0 -8
  66. package/dist/components/proof-slot.d.ts.map +0 -1
  67. package/dist/components/proof-slot.js +0 -8
  68. package/dist/components/quote-card.d.ts +0 -31
  69. package/dist/components/quote-card.d.ts.map +0 -1
  70. package/dist/components/quote-card.js +0 -48
  71. package/dist/components/seam-grid.d.ts +0 -30
  72. package/dist/components/seam-grid.d.ts.map +0 -1
  73. package/dist/components/seam-grid.js +0 -30
  74. package/dist/components/section-intro.d.ts +0 -18
  75. package/dist/components/section-intro.d.ts.map +0 -1
  76. package/dist/components/section-intro.js +0 -22
  77. package/dist/components/security-grid.d.ts +0 -25
  78. package/dist/components/security-grid.d.ts.map +0 -1
  79. package/dist/components/security-grid.js +0 -28
  80. package/dist/components/shift-band.d.ts +0 -14
  81. package/dist/components/shift-band.d.ts.map +0 -1
  82. package/dist/components/shift-band.js +0 -11
  83. package/dist/components/statement.d.ts +0 -32
  84. package/dist/components/statement.d.ts.map +0 -1
  85. package/dist/components/statement.js +0 -40
  86. package/dist/components/steps.d.ts +0 -34
  87. package/dist/components/steps.d.ts.map +0 -1
  88. package/dist/components/steps.js +0 -40
  89. package/dist/components/team-grid.d.ts +0 -27
  90. package/dist/components/team-grid.d.ts.map +0 -1
  91. package/dist/components/team-grid.js +0 -30
  92. package/dist/components/testimonials.d.ts +0 -48
  93. package/dist/components/testimonials.d.ts.map +0 -1
  94. package/dist/components/testimonials.js +0 -58
  95. package/dist/components/texture-strip.d.ts +0 -22
  96. package/dist/components/texture-strip.d.ts.map +0 -1
  97. package/dist/components/texture-strip.js +0 -32
  98. package/dist/lib/seam.d.ts +0 -29
  99. package/dist/lib/seam.d.ts.map +0 -1
  100. package/dist/lib/seam.js +0 -30
package/README.md CHANGED
@@ -55,7 +55,6 @@ Prefer direct subpath imports in app code:
55
55
 
56
56
  ```tsx
57
57
  import { Button } from "@nadicodeai/ui/components/button";
58
- import { SeamGrid } from "@nadicodeai/ui/components/seam-grid";
59
58
  import { Thread } from "@nadicodeai/ui/agents";
60
59
  ```
61
60
 
@@ -93,30 +92,6 @@ System activity is `PendingLabel`, `WaitingLine`, `Progress` and `Skeleton`.
93
92
  See [`docs/activity.md`](docs/activity.md) for which wait takes which, the
94
93
  one-second delay, accessibility and usage examples.
95
94
 
96
- ## Layout primitives
97
-
98
- `SeamGrid` is a supported low-level layout primitive: the single owner of the
99
- "gap-as-seam" grid used by the bordered section grids (stats band, testimonials,
100
- logo band, and siblings). It renders a `div` with the invariant `grid gap-px`
101
- base and paints one hairline seam at every cell boundary, so borderless,
102
- square-cornered cells never double a line.
103
-
104
- ```tsx
105
- import { SeamGrid } from "@nadicodeai/ui/components/seam-grid";
106
-
107
- <SeamGrid surface="canvas" className="grid-cols-2 lg:grid-cols-4">
108
- {/* borderless, square-cornered cells */}
109
- </SeamGrid>;
110
- ```
111
-
112
- The only seam-specific prop is `surface`: `"canvas"` (default) paints the brand
113
- `line` via `bg-border`; `"ink"` mixes the line toward the ink role for darker
114
- panels. `surface` also lands on a `data-surface` attribute. Pass `className`,
115
- `children`, and any `div` props to keep your own column map, heights, and
116
- `data-*` attributes. The seam colour helper itself is an internal implementation
117
- detail (no public subpath export); couple to `SeamGrid` and its `surface` prop,
118
- not to the underlying arbitrary Tailwind class string.
119
-
120
95
  ## Registry maintenance
121
96
 
122
97
  Use shadcn MCP or the CLI for live discovery and registry maintenance while
@@ -101,6 +101,6 @@ function ModelMark({ author, name, size = MODEL_MARK_SIZE, label, className, ...
101
101
  : label?.trim()
102
102
  ? { role: "img", "aria-label": label }
103
103
  : {};
104
- return (_jsxs("span", { "data-slot": "model-mark", "data-author": author, "data-resolved-author": slug, className: cn("inline-flex min-w-0 items-center gap-1.5", className), ...props, ...labelling, children: [_jsx("span", { "data-slot": "model-mark-tile", "data-mark": Mark ? "brand" : "monogram", "data-mark-source": definition?.source, "aria-hidden": "true", className: "inline-flex shrink-0 items-center justify-center rounded-md border border-border bg-background text-foreground", style: { width: size, height: size }, children: Mark ? (_jsx(Mark, { size: Math.round(size * MODEL_MARK_GLYPH_RATIO) })) : (_jsx("span", { "aria-hidden": "true", className: "font-semibold leading-none text-muted-foreground", "data-slot": "model-author-monogram", style: { fontSize: Math.max(8, Math.round(size * 0.32)) }, children: authorInitials(slug) })) }), name ? (_jsxs("span", { className: "min-w-0 truncate", children: [_jsx("span", { className: "font-medium", children: name }), " ", _jsx("span", { className: "text-xs text-muted-foreground", children: author })] })) : null] }));
104
+ return (_jsxs("span", { "data-slot": "model-mark", "data-author": author, "data-resolved-author": slug, className: cn("inline-flex min-w-0 max-w-full items-center gap-1.5", className), ...props, ...labelling, children: [_jsx("span", { "data-slot": "model-mark-tile", "data-mark": Mark ? "brand" : "monogram", "data-mark-source": definition?.source, "aria-hidden": "true", className: "inline-flex shrink-0 items-center justify-center rounded-md border border-border bg-background text-foreground", style: { width: size, height: size }, children: Mark ? (_jsx(Mark, { size: Math.round(size * MODEL_MARK_GLYPH_RATIO) })) : (_jsx("span", { "aria-hidden": "true", className: "font-semibold leading-none text-muted-foreground", "data-slot": "model-author-monogram", style: { fontSize: Math.max(8, Math.round(size * 0.32)) }, children: authorInitials(slug) })) }), name ? (_jsxs("span", { className: "min-w-0 truncate", children: [_jsx("span", { className: "font-medium", children: name }), " ", _jsx("span", { className: "text-xs text-muted-foreground", children: author })] })) : null] }));
105
105
  }
106
106
  export { ModelMark };
@@ -27,7 +27,7 @@ function TableCell({ className, ...props }) {
27
27
  return (_jsx("td", { "data-slot": "table-cell", className: cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0", className), ...props }));
28
28
  }
29
29
  function TableDetailRow({ colSpan, facts, layout = "standard", }) {
30
- return (_jsx(TableRow, { "data-slot": "table-detail-row", className: tableCompactLayouts[layout].details, children: _jsx(TableCell, { colSpan: colSpan, className: "px-2 pt-0 pb-3 whitespace-normal", children: _jsx("dl", { className: cn("grid min-w-0 grid-cols-2 gap-x-4 gap-y-2", facts.length > 2 && "@lg/table:grid-cols-3"), children: facts.map((fact) => (_jsxs("div", { className: cn("min-w-0 last:odd:col-span-2", facts.length > 2 && "@lg/table:last:odd:col-span-1"), children: [_jsx("dt", { className: "text-xs text-muted-foreground", children: fact.label }), _jsx("dd", { className: cn("min-w-0", fact.numeric ? "tabular-nums wrap-normal" : "wrap-anywhere"), children: fact.value })] }, fact.id))) }) }) }));
30
+ return (_jsx(TableRow, { "data-slot": "table-detail-row", className: tableCompactLayouts[layout].details, children: _jsx(TableCell, { colSpan: colSpan, className: "px-2 pt-0 pb-3 whitespace-normal", children: _jsx("dl", { className: cn("grid min-w-0 grid-cols-1 gap-x-4 gap-y-2 @sm/table:grid-cols-2", facts.length > 2 && "@lg/table:grid-cols-3"), children: facts.map((fact) => (_jsxs("div", { className: cn("min-w-0 @sm/table:last:odd:col-span-2", facts.length > 2 && "@lg/table:last:odd:col-span-1"), children: [_jsx("dt", { className: "text-xs text-muted-foreground", children: fact.label }), _jsx("dd", { className: cn("min-w-0", fact.numeric ? "tabular-nums wrap-normal" : "wrap-anywhere"), children: fact.value })] }, fact.id))) }) }) }));
31
31
  }
32
32
  function TableCaption({ className, ...props }) {
33
33
  return (_jsx("caption", { "data-slot": "table-caption", className: cn("mt-4 text-sm text-muted-foreground", className), ...props }));
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export * from "./components/accordion.js";
2
2
  export * from "./components/account-menu.js";
3
- export * from "./components/action-band.js";
4
3
  export * from "./components/action-menu.js";
5
4
  export * from "./components/action-status.js";
6
5
  export * from "./components/activity-calendar.js";
@@ -10,8 +9,8 @@ export * from "./components/alert.js";
10
9
  export * from "./components/alert-dialog.js";
11
10
  export * from "./components/app-mark.js";
12
11
  export * from "./components/aspect-ratio.js";
13
- export * from "./components/automation-section.js";
14
12
  export * from "./components/avatar.js";
13
+ export * from "./components/automation-section.js";
15
14
  export * from "./components/badge.js";
16
15
  export * from "./components/brand.js";
17
16
  export * from "./components/brand-field.js";
@@ -21,7 +20,6 @@ export * from "./components/button.js";
21
20
  export * from "./components/button-group.js";
22
21
  export * from "./components/calendar.js";
23
22
  export * from "./components/card.js";
24
- export * from "./components/card-marketing.js";
25
23
  export * from "./components/card-row.js";
26
24
  export * from "./components/carousel.js";
27
25
  export * from "./components/chart.js";
@@ -35,7 +33,6 @@ export * from "./components/chart-date-range-control.js";
35
33
  export * from "./components/chart-entity-colors.js";
36
34
  export * from "./components/chart-sparkline.js";
37
35
  export * from "./components/checkbox.js";
38
- export * from "./components/code-editor-mockup.js";
39
36
  export * from "./components/collapsible.js";
40
37
  export * from "./components/collection-filters.js";
41
38
  export * from "./components/collection-scope.js";
@@ -43,7 +40,6 @@ export * from "./components/collection-toolbar.js";
43
40
  export * from "./components/combobox.js";
44
41
  export * from "./components/command.js";
45
42
  export * from "./components/confirm-dialog.js";
46
- export * from "./components/contact.js";
47
43
  export * from "./components/context-menu.js";
48
44
  export * from "./components/dashboard-shell.js";
49
45
  export * from "./components/desktop-shell.js";
@@ -56,10 +52,6 @@ export * from "./components/dropdown-menu.js";
56
52
  export * from "./components/empty.js";
57
53
  export * from "./components/expandable-block.js";
58
54
  export * from "./components/fact-cell.js";
59
- export * from "./components/faq.js";
60
- export * from "./components/faq-item.js";
61
- export * from "./components/feature-grid.js";
62
- export * from "./components/feature-rows.js";
63
55
  export * from "./components/feedback-state.js";
64
56
  export * from "./components/field.js";
65
57
  export * from "./components/file-type-icon.js";
@@ -67,24 +59,17 @@ export * from "./components/footer.js";
67
59
  export * from "./components/form.js";
68
60
  export * from "./components/glass-control.js";
69
61
  export * from "./components/handoff-banner.js";
70
- export * from "./components/hero.js";
71
- export * from "./components/hero-split.js";
72
62
  export * from "./components/house-icons.js";
73
63
  export * from "./components/hover-card.js";
74
64
  export * from "./components/input.js";
75
65
  export * from "./components/input-group.js";
76
66
  export * from "./components/input-otp.js";
77
67
  export * from "./components/installer-shell.js";
78
- export * from "./components/integration-flow.js";
79
68
  export * from "./components/item.js";
80
69
  export * from "./components/kbd.js";
81
70
  export * from "./components/kpi-card.js";
82
71
  export * from "./components/label.js";
83
72
  export * from "./components/label-system.js";
84
- export * from "./components/live-demo.js";
85
- export * from "./components/logo-band.js";
86
- export * from "./components/logo-tile.js";
87
- export * from "./components/media-mount.js";
88
73
  export * from "./components/memory-item.js";
89
74
  export * from "./components/menu-choice-row.js";
90
75
  export * from "./components/menubar.js";
@@ -92,48 +77,34 @@ export * from "./components/model-identity.js";
92
77
  export * from "./components/model-mark.js";
93
78
  export * from "./components/native-select.js";
94
79
  export * from "./components/navigation-menu.js";
95
- export * from "./components/newsletter.js";
96
80
  export * from "./components/notice-banner.js";
97
81
  export * from "./components/pagination.js";
98
82
  export * from "./components/pending-label.js";
99
83
  export * from "./components/plugin-slot-boundary.js";
100
84
  export * from "./components/popover.js";
101
- export * from "./components/pricing.js";
102
- export * from "./components/pricing-card.js";
103
85
  export * from "./components/progress.js";
104
- export * from "./components/proof-slot.js";
105
- export * from "./components/quote-card.js";
106
86
  export * from "./components/radio-group.js";
107
87
  export * from "./components/reading-column.js";
108
88
  export * from "./components/resizable.js";
109
89
  export * from "./components/run-timeline.js";
110
90
  export * from "./components/scroll-area.js";
111
- export * from "./components/seam-grid.js";
112
- export * from "./components/section-intro.js";
113
- export * from "./components/security-grid.js";
114
91
  export * from "./components/select.js";
115
92
  export * from "./components/separator.js";
116
93
  export * from "./components/settings-facts.js";
117
94
  export * from "./components/settings-section.js";
118
95
  export * from "./components/sheet.js";
119
- export * from "./components/shift-band.js";
120
96
  export * from "./components/sidebar.js";
121
97
  export * from "./components/skeleton.js";
122
98
  export * from "./components/slider.js";
123
99
  export * from "./components/sonner.js";
124
- export * from "./components/statement.js";
125
100
  export * from "./components/status-dot.js";
126
101
  export * from "./components/status-row.js";
127
- export * from "./components/steps.js";
128
102
  export * from "./components/switch.js";
129
103
  export * from "./components/table.js";
130
104
  export * from "./components/table-value.js";
131
105
  export * from "./components/object-workspace.js";
132
106
  export * from "./components/tabs.js";
133
- export * from "./components/team-grid.js";
134
- export * from "./components/testimonials.js";
135
107
  export * from "./components/textarea.js";
136
- export * from "./components/texture-strip.js";
137
108
  export * from "./components/theme-mode-switcher.js";
138
109
  export * from "./components/toggle.js";
139
110
  export * from "./components/toggle-group.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,5 @@
1
1
  export * from "./components/accordion.js";
2
2
  export * from "./components/account-menu.js";
3
- export * from "./components/action-band.js";
4
3
  export * from "./components/action-menu.js";
5
4
  export * from "./components/action-status.js";
6
5
  export * from "./components/activity-calendar.js";
@@ -10,8 +9,8 @@ export * from "./components/alert.js";
10
9
  export * from "./components/alert-dialog.js";
11
10
  export * from "./components/app-mark.js";
12
11
  export * from "./components/aspect-ratio.js";
13
- export * from "./components/automation-section.js";
14
12
  export * from "./components/avatar.js";
13
+ export * from "./components/automation-section.js";
15
14
  export * from "./components/badge.js";
16
15
  export * from "./components/brand.js";
17
16
  export * from "./components/brand-field.js";
@@ -21,7 +20,6 @@ export * from "./components/button.js";
21
20
  export * from "./components/button-group.js";
22
21
  export * from "./components/calendar.js";
23
22
  export * from "./components/card.js";
24
- export * from "./components/card-marketing.js";
25
23
  export * from "./components/card-row.js";
26
24
  export * from "./components/carousel.js";
27
25
  export * from "./components/chart.js";
@@ -35,7 +33,6 @@ export * from "./components/chart-date-range-control.js";
35
33
  export * from "./components/chart-entity-colors.js";
36
34
  export * from "./components/chart-sparkline.js";
37
35
  export * from "./components/checkbox.js";
38
- export * from "./components/code-editor-mockup.js";
39
36
  export * from "./components/collapsible.js";
40
37
  export * from "./components/collection-filters.js";
41
38
  export * from "./components/collection-scope.js";
@@ -43,7 +40,6 @@ export * from "./components/collection-toolbar.js";
43
40
  export * from "./components/combobox.js";
44
41
  export * from "./components/command.js";
45
42
  export * from "./components/confirm-dialog.js";
46
- export * from "./components/contact.js";
47
43
  export * from "./components/context-menu.js";
48
44
  export * from "./components/dashboard-shell.js";
49
45
  export * from "./components/desktop-shell.js";
@@ -56,10 +52,6 @@ export * from "./components/dropdown-menu.js";
56
52
  export * from "./components/empty.js";
57
53
  export * from "./components/expandable-block.js";
58
54
  export * from "./components/fact-cell.js";
59
- export * from "./components/faq.js";
60
- export * from "./components/faq-item.js";
61
- export * from "./components/feature-grid.js";
62
- export * from "./components/feature-rows.js";
63
55
  export * from "./components/feedback-state.js";
64
56
  export * from "./components/field.js";
65
57
  export * from "./components/file-type-icon.js";
@@ -67,24 +59,17 @@ export * from "./components/footer.js";
67
59
  export * from "./components/form.js";
68
60
  export * from "./components/glass-control.js";
69
61
  export * from "./components/handoff-banner.js";
70
- export * from "./components/hero.js";
71
- export * from "./components/hero-split.js";
72
62
  export * from "./components/house-icons.js";
73
63
  export * from "./components/hover-card.js";
74
64
  export * from "./components/input.js";
75
65
  export * from "./components/input-group.js";
76
66
  export * from "./components/input-otp.js";
77
67
  export * from "./components/installer-shell.js";
78
- export * from "./components/integration-flow.js";
79
68
  export * from "./components/item.js";
80
69
  export * from "./components/kbd.js";
81
70
  export * from "./components/kpi-card.js";
82
71
  export * from "./components/label.js";
83
72
  export * from "./components/label-system.js";
84
- export * from "./components/live-demo.js";
85
- export * from "./components/logo-band.js";
86
- export * from "./components/logo-tile.js";
87
- export * from "./components/media-mount.js";
88
73
  export * from "./components/memory-item.js";
89
74
  export * from "./components/menu-choice-row.js";
90
75
  export * from "./components/menubar.js";
@@ -92,48 +77,34 @@ export * from "./components/model-identity.js";
92
77
  export * from "./components/model-mark.js";
93
78
  export * from "./components/native-select.js";
94
79
  export * from "./components/navigation-menu.js";
95
- export * from "./components/newsletter.js";
96
80
  export * from "./components/notice-banner.js";
97
81
  export * from "./components/pagination.js";
98
82
  export * from "./components/pending-label.js";
99
83
  export * from "./components/plugin-slot-boundary.js";
100
84
  export * from "./components/popover.js";
101
- export * from "./components/pricing.js";
102
- export * from "./components/pricing-card.js";
103
85
  export * from "./components/progress.js";
104
- export * from "./components/proof-slot.js";
105
- export * from "./components/quote-card.js";
106
86
  export * from "./components/radio-group.js";
107
87
  export * from "./components/reading-column.js";
108
88
  export * from "./components/resizable.js";
109
89
  export * from "./components/run-timeline.js";
110
90
  export * from "./components/scroll-area.js";
111
- export * from "./components/seam-grid.js";
112
- export * from "./components/section-intro.js";
113
- export * from "./components/security-grid.js";
114
91
  export * from "./components/select.js";
115
92
  export * from "./components/separator.js";
116
93
  export * from "./components/settings-facts.js";
117
94
  export * from "./components/settings-section.js";
118
95
  export * from "./components/sheet.js";
119
- export * from "./components/shift-band.js";
120
96
  export * from "./components/sidebar.js";
121
97
  export * from "./components/skeleton.js";
122
98
  export * from "./components/slider.js";
123
99
  export * from "./components/sonner.js";
124
- export * from "./components/statement.js";
125
100
  export * from "./components/status-dot.js";
126
101
  export * from "./components/status-row.js";
127
- export * from "./components/steps.js";
128
102
  export * from "./components/switch.js";
129
103
  export * from "./components/table.js";
130
104
  export * from "./components/table-value.js";
131
105
  export * from "./components/object-workspace.js";
132
106
  export * from "./components/tabs.js";
133
- export * from "./components/team-grid.js";
134
- export * from "./components/testimonials.js";
135
107
  export * from "./components/textarea.js";
136
- export * from "./components/texture-strip.js";
137
108
  export * from "./components/theme-mode-switcher.js";
138
109
  export * from "./components/toggle.js";
139
110
  export * from "./components/toggle-group.js";
@@ -11,8 +11,8 @@ copy, and behavior.
11
11
 
12
12
  | Removed API | Registry source to use instead | Reason |
13
13
  | --- | --- | --- |
14
- | `DataTable`, `DataTableColumnControls`, `DataTableEmptyState`, `DataTableState` | `@shadcn/data-table-demo` or the `DataTable` inside `@shadcn/dashboard-01` | shadcn already ships first-party data-table examples with sorting, selection, visibility, filtering, and pagination patterns. |
15
- | `CommandPalette`, `ModelPickerCommand`, `SessionPickerCommand` | `@shadcn/command`, `@shadcn/command-demo`, `@shadcn/command-dialog` | shadcn already ships the command primitives and command-dialog example; model/session execution is app behavior. |
14
+ | Package-level `DataTable`, `DataTableColumnControls`, `DataTableEmptyState`, `DataTableState` | [shadcn Data Table guide](https://ui.shadcn.com/docs/components/base/data-table), `@shadcn/table`, and the table in `@shadcn/dashboard-01` | These are first-party composition sources for sorting, visibility, filtering, and pagination. Portal retains its app-owned `DataTable` adapter for registry and URL behavior. |
15
+ | `CommandPalette`, `ModelPickerCommand`, `SessionPickerCommand` | `@shadcn/command` and its `CommandDialog` export ([Command guide](https://ui.shadcn.com/docs/components/base/command)) | The command primitive and dialog composition are already supplied; model/session execution is app behavior. |
16
16
  | `ChartCard`, `MetricChart`, `semanticChartColors` | The package chart kit, owned by [`contract.md`](contract.md) | shadcn already ships the chart primitives and blocks the kit is pulled from; metric aggregation and chart choice are app behavior. |
17
17
 
18
18
  ## Retained Package Compositions
package/docs/contract.md CHANGED
@@ -205,6 +205,8 @@ content, and a chart names a model through the label in its `ChartConfig`. A
205
205
  model's row in a table or a ranked list is where `ModelMark` belongs. A mark is
206
206
  decoration beside the label that already names it; one standing alone takes
207
207
  `label` (`role="img"` with an accessible name) or stays hidden.
208
+ Named marks stay within their containing cell, shortening the visible text when
209
+ space is tight; callers with long model IDs provide the full ID in `title`.
208
210
 
209
211
  The package owns the reviewed author-to-mark mapping and its generated artwork;
210
212
  the live catalog remains the source of which authors exist. The consuming app
@@ -298,7 +300,8 @@ highlights one record. A consumer does not render the two rows as independent
298
300
  siblings. Portal `DataTable` chooses a layout from its column count by default;
299
301
  a comparison whose columns remain readable longer may select one of these
300
302
  shared layouts instead of adding route-owned width rules.
301
- Two supporting facts use two columns; additional facts can use three when they fit.
303
+ Supporting facts stack below 384px of table width, use two columns when they
304
+ fit, and use three for additional facts at the larger container breakpoint.
302
305
  The cell renderer supplies the value, leaving the label to the detail row.
303
306
 
304
307
  ### Missing table values
@@ -25,6 +25,22 @@ Fixtures live in:
25
25
  | `SettingsSection` / `SettingsField` | Header, divided save footer, field layout, labels, descriptions, errors, and control associations. | Form state, validation, submission, persistence, settings taxonomy, and save/cancel behavior. |
26
26
  | `FeedbackState` | Shared empty, loading, saving, error, permission, offline, no-results, and fatal state presentation. | Recovery actions, retry behavior, permission escalation, app-specific state language. |
27
27
 
28
+ ## Collection and command recipes
29
+
30
+ Portal's [`DataTable`](../../../apps/portal/src/components/kit/data-table.tsx) is
31
+ the existing app owner for collection interaction, URL state, and registry
32
+ behavior. It composes the shared `Table` and `TableDetailRow` with TanStack
33
+ Table, following the [shadcn Data Table guide](https://ui.shadcn.com/docs/components/base/data-table)
34
+ and the `@shadcn/dashboard-01` table block. The shared row owns compact fact
35
+ geometry; a caller supplies its labels and values. Keep Portal's adapter for
36
+ its existing consumers instead of introducing a second package table API.
37
+
38
+ The shared [`command`](../src/components/command.tsx) component includes
39
+ `CommandDialog`, as the [shadcn Command guide](https://ui.shadcn.com/docs/components/base/command)
40
+ documents. A product composes its commands there and owns search data,
41
+ selection effects, shortcuts, routing, and permission checks. The Portal
42
+ command dialog is the current app owner for Portal navigation commands.
43
+
28
44
  ## SettingsSection
29
45
 
30
46
  Use `SettingsSection` and `SettingsField` for horizontal settings rows that need consistent label, description, error, and control alignment.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nadicodeai/ui",
3
- "version": "10.0.0",
3
+ "version": "10.0.2",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -72,7 +72,7 @@
72
72
  "@assistant-ui/react": "0.15.21",
73
73
  "@assistant-ui/react-markdown": "0.14.16",
74
74
  "@base-ui/react": "^1.8.0",
75
- "@nadicodeai/design-system": "10.0.0",
75
+ "@nadicodeai/design-system": "10.0.2",
76
76
  "class-variance-authority": "^0.7.1",
77
77
  "clsx": "^2.1.1",
78
78
  "cmdk": "^1.1.1",
@@ -1,12 +0,0 @@
1
- import * as React from "react";
2
- type ActionBandProps = React.ComponentProps<"section"> & {
3
- /** Retained for consumer compatibility; the V5 band has a single fixed layout. */
4
- active?: "inset" | "full";
5
- };
6
- declare function ActionBand({ active, className, children, ...props }: ActionBandProps): React.JSX.Element;
7
- declare function ActionBandContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
8
- declare function ActionBandCopy({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
9
- declare function ActionBandHeading({ className, ...props }: React.ComponentProps<"h2">): React.JSX.Element;
10
- declare function ActionBandVisual({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
11
- export { ActionBand, ActionBandContent, ActionBandCopy, ActionBandHeading, ActionBandVisual };
12
- //# sourceMappingURL=action-band.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action-band.d.ts","sourceRoot":"","sources":["../../src/components/action-band.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA8C/B,KAAK,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG;IACvD,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC3B,CAAC;AAEF,iBAAS,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,qBA0B7E;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW9E;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAE3E;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAW7E;AAED,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ7E;AAED,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,48 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { cn } from "../lib/utils.js";
3
- /**
4
- * action-band — the full-bleed on-verde conversion band (V5 · B19).
5
- *
6
- * A solid brand-verde field (`bg-primary`) carrying one statement and one action,
7
- * one statement, one button. The band bleeds full width; a
8
- * centred rail (`max-w-[1200px]`, left/right hairlines) holds the content, and a
9
- * crosshair marks the STRUCTURAL intersection of the rail's top edge and left edge
10
- * — it is never decorative. A fractal-noise overlay adds grain TEXTURE only (an
11
- * inline feTurbulence data-URI, carrying no colour value), layered under the copy.
12
- *
13
- * Every mark on the verde field — text, heading, crosshair, and rail hairlines —
14
- * is the ink primary-foreground role, NOT `text-foreground`. `foreground` flips to
15
- * near-white under a dark ancestor while `bg-primary` stays a bright verde field, so
16
- * ink text would turn near-white-on-verde (≈1.7:1). `primary-foreground` is ink in
17
- * both modes and the build gate guarantees it clears on the primary field. Token-only;
18
- * no raw colour values, no gradients, and no `dark:` styling.
19
- *
20
- * COMPAT: the `active` prop and the `ActionBand{Content,Copy,Visual}` parts are kept
21
- * so existing consumers still compile; their roles are re-cut for the V5 band
22
- * (Content = padded stack, Copy = rich-content wrapper, Visual = the trailing
23
- * action/media slot). `ActionBandHeading` owns the simple V5 statement treatment.
24
- * The prior two-cell ink stage is retired.
25
- */
26
- // Grain texture only — feTurbulence fractal noise, no colour literal (`#` encoded
27
- // as `%23`), so the raw-colour ban has nothing to report here.
28
- const GRAIN_TEXTURE = "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)'/%3E%3C/svg%3E\")";
29
- function ActionBandCrosshair() {
30
- return (_jsxs("span", { "data-slot": "action-band-crosshair", "aria-hidden": "true", className: "pointer-events-none absolute left-0 top-0 z-20 size-4 -translate-x-1/2 -translate-y-1/2", children: [_jsx("span", { className: "absolute left-1/2 top-0 h-full w-px -translate-x-1/2 bg-primary-foreground" }), _jsx("span", { className: "absolute left-0 top-1/2 h-px w-full -translate-y-1/2 bg-primary-foreground" })] }));
31
- }
32
- function ActionBand({ active, className, children, ...props }) {
33
- void active;
34
- return (_jsxs("section", { "data-slot": "action-band", className: cn("relative isolate overflow-hidden bg-primary text-primary-foreground", className), ...props, children: [_jsx("span", { "aria-hidden": "true", className: "pointer-events-none absolute inset-0 z-0 opacity-20", style: { backgroundImage: GRAIN_TEXTURE } }), _jsxs("div", { "data-slot": "action-band-rail", className: "relative z-10 mx-auto w-full max-w-[1200px] border-x border-primary-foreground/15", children: [_jsx(ActionBandCrosshair, {}), children] })] }));
35
- }
36
- function ActionBandContent({ className, ...props }) {
37
- return (_jsx("div", { "data-slot": "action-band-content", className: cn("flex flex-col items-start gap-6 px-[clamp(24px,5vw,64px)] py-[clamp(64px,10vw,144px)]", className), ...props }));
38
- }
39
- function ActionBandCopy({ className, ...props }) {
40
- return _jsx("div", { "data-slot": "action-band-copy", className: cn("min-w-0", className), ...props });
41
- }
42
- function ActionBandHeading({ className, ...props }) {
43
- return (_jsx("h2", { "data-slot": "action-band-heading", className: cn("nc-type-heading-md max-w-[24ch] text-balance text-primary-foreground", className), ...props }));
44
- }
45
- function ActionBandVisual({ className, ...props }) {
46
- return (_jsx("div", { "data-slot": "action-band-visual", className: cn("flex flex-wrap items-center gap-3", className), ...props }));
47
- }
48
- export { ActionBand, ActionBandContent, ActionBandCopy, ActionBandHeading, ActionBandVisual };
@@ -1,30 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * card-marketing — the self-contained marketing feature card (replaces the retired
4
- * `.nc-card-marketing` + its `data-size="lg"` / `data-surface="soft"` / media-slot
5
- * variants).
6
- *
7
- * Unlike the seam-free grid fills (stat-block / quote-card / logo-tile / fact-cell,
8
- * which are square-cornered for a holding grid), card-marketing is a SELF-CONTAINED
9
- * rounded card: it owns its full outline — exactly one `line` hairline border and
10
- * its own `rounded-md` radius — and is laid out in a flow/flex layout with
11
- * transparent gaps, never inside a seam-painting grid. The optional media slot draws
12
- * exactly one inner seam (its own bottom border); `overflow-hidden` clips the media's
13
- * square top corners to the card radius (the card owns the outer radius; the media
14
- * never re-rounds it). No other layer repeats either coordinate.
15
- *
16
- * `size="lg"` steps up to larger padding; `surface="soft"` uses the
17
- * `canvas-soft` fill. Server-renderable: the media-present padding compression is a
18
- * `:has()` variant and the title/media sizing is driven by `data-size` descendant
19
- * selectors on the parent — no client context. Token-only; no `dark:` styling.
20
- */
21
- declare function CardMarketing({ className, size, surface, ...props }: React.ComponentProps<"div"> & {
22
- size?: "default" | "lg";
23
- surface?: "canvas" | "soft";
24
- }): React.JSX.Element;
25
- declare function CardMarketingMedia({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
26
- declare function CardMarketingEyebrow({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
27
- declare function CardMarketingTitle({ className, ...props }: React.ComponentProps<"h3">): React.JSX.Element;
28
- declare function CardMarketingBody({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
29
- export { CardMarketing, CardMarketingMedia, CardMarketingEyebrow, CardMarketingTitle, CardMarketingBody, };
30
- //# sourceMappingURL=card-marketing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"card-marketing.d.ts","sourceRoot":"","sources":["../../src/components/card-marketing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;;;;;;;;;;GAkBG;AAEH,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,IAAgB,EAChB,OAAkB,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC7B,qBA2BA;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW/E;AAED,iBAAS,oBAAoB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAQ/E;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAQ9E;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAQ5E;AAED,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC"}
@@ -1,48 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "../lib/utils.js";
3
- /**
4
- * card-marketing — the self-contained marketing feature card (replaces the retired
5
- * `.nc-card-marketing` + its `data-size="lg"` / `data-surface="soft"` / media-slot
6
- * variants).
7
- *
8
- * Unlike the seam-free grid fills (stat-block / quote-card / logo-tile / fact-cell,
9
- * which are square-cornered for a holding grid), card-marketing is a SELF-CONTAINED
10
- * rounded card: it owns its full outline — exactly one `line` hairline border and
11
- * its own `rounded-md` radius — and is laid out in a flow/flex layout with
12
- * transparent gaps, never inside a seam-painting grid. The optional media slot draws
13
- * exactly one inner seam (its own bottom border); `overflow-hidden` clips the media's
14
- * square top corners to the card radius (the card owns the outer radius; the media
15
- * never re-rounds it). No other layer repeats either coordinate.
16
- *
17
- * `size="lg"` steps up to larger padding; `surface="soft"` uses the
18
- * `canvas-soft` fill. Server-renderable: the media-present padding compression is a
19
- * `:has()` variant and the title/media sizing is driven by `data-size` descendant
20
- * selectors on the parent — no client context. Token-only; no `dark:` styling.
21
- */
22
- function CardMarketing({ className, size = "default", surface = "canvas", ...props }) {
23
- return (_jsx("div", { "data-slot": "card-marketing", "data-size": size, "data-surface": surface, className: cn("grid content-start overflow-hidden rounded-md border border-border text-foreground", surface === "soft" ? "bg-[var(--nc-canvas-soft)]" : "bg-card", size === "default" && [
24
- "gap-3 p-6",
25
- // media present -> compress padding; the media insets follow (below).
26
- "has-[[data-slot=card-marketing-media]]:gap-3 has-[[data-slot=card-marketing-media]]:p-4",
27
- "[&_[data-slot=card-marketing-title]]:text-xl",
28
- "[&_[data-slot=card-marketing-media]]:-mx-4 [&_[data-slot=card-marketing-media]]:-mt-4 [&_[data-slot=card-marketing-media]]:mb-1",
29
- ], size === "lg" && [
30
- "gap-4 p-8",
31
- "has-[[data-slot=card-marketing-media]]:p-6",
32
- "[&_[data-slot=card-marketing-title]]:text-2xl",
33
- "[&_[data-slot=card-marketing-media]]:-mx-6 [&_[data-slot=card-marketing-media]]:-mt-6 [&_[data-slot=card-marketing-media]]:mb-1.5",
34
- ], className), ...props }));
35
- }
36
- function CardMarketingMedia({ className, ...props }) {
37
- return (_jsx("div", { "data-slot": "card-marketing-media", className: cn("grid min-h-[132px] place-items-center border-b border-border bg-[var(--nc-canvas-soft)] text-muted-foreground", className), ...props }));
38
- }
39
- function CardMarketingEyebrow({ className, ...props }) {
40
- return (_jsx("p", { "data-slot": "card-marketing-eyebrow", className: cn("m-0 font-mono text-xs font-medium uppercase text-muted-foreground", className), ...props }));
41
- }
42
- function CardMarketingTitle({ className, ...props }) {
43
- return (_jsx("h3", { "data-slot": "card-marketing-title", className: cn("m-0 font-semibold text-foreground", className), ...props }));
44
- }
45
- function CardMarketingBody({ className, ...props }) {
46
- return (_jsx("p", { "data-slot": "card-marketing-body", className: cn("m-0 text-[var(--nc-body)]", className), ...props }));
47
- }
48
- export { CardMarketing, CardMarketingMedia, CardMarketingEyebrow, CardMarketingTitle, CardMarketingBody, };
@@ -1,25 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * code-editor-mockup — dark code/terminal preview surface (replaces the retired
4
- * `.nc-code-editor-mockup`). The brand's technical marketing visual: a dark window
5
- * (the ink/primary role) with a chrome/title bar over a mono code body. For
6
- * technical examples, not generic decoration.
7
- *
8
- * SINGLE-OWNER SEAMS: the chrome row owns exactly ONE inner hairline — its own
9
- * bottom border — between itself and the code body. The outer `rounded-md` radius
10
- * is owned once by the root, and `overflow-hidden` clips the chrome's square top
11
- * corners to it. The on-dark hairline + dots + muted-on-dark tints are all DERIVED
12
- * from the brand `line` / `canvas` / `ink` tokens via `color-mix` (the same family
13
- * the retired dark sections use), so no raw literal is introduced. The dots are
14
- * nadicode-monochrome, never the macOS traffic-light colours. Token-only;
15
- * no `dark:` styling.
16
- */
17
- declare function CodeEditorMockup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
18
- declare function CodeEditorMockupChrome({ className, children, ...props }: React.ComponentProps<"div">): React.JSX.Element;
19
- declare function CodeEditorMockupTitle({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
20
- declare function CodeEditorMockupBody({ className, ...props }: React.ComponentProps<"pre">): React.JSX.Element;
21
- declare function CodeEditorMockupLine({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
22
- declare function CodeEditorMockupGutter({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
23
- declare function CodeEditorMockupComment({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
24
- export { CodeEditorMockup, CodeEditorMockupChrome, CodeEditorMockupTitle, CodeEditorMockupBody, CodeEditorMockupLine, CodeEditorMockupGutter, CodeEditorMockupComment, };
25
- //# sourceMappingURL=code-editor-mockup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-editor-mockup.d.ts","sourceRoot":"","sources":["../../src/components/code-editor-mockup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;;;;;;GAcG;AAWH,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7E;AAED,iBAAS,sBAAsB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAkB7F;AAED,iBAAS,qBAAqB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAWnF;AAED,iBAAS,oBAAoB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWjF;AAED,iBAAS,oBAAoB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAElF;AAED,iBAAS,sBAAsB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAYpF;AAED,iBAAS,uBAAuB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAQrF;AAED,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,GACxB,CAAC"}