@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.
- package/README.md +0 -25
- package/dist/components/model-mark.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/index.d.ts +1 -30
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -30
- package/docs/component-classification.md +2 -2
- package/docs/contract.md +4 -1
- package/docs/product-compositions.md +16 -0
- package/package.json +2 -2
- package/dist/components/action-band.d.ts +0 -12
- package/dist/components/action-band.d.ts.map +0 -1
- package/dist/components/action-band.js +0 -48
- package/dist/components/card-marketing.d.ts +0 -30
- package/dist/components/card-marketing.d.ts.map +0 -1
- package/dist/components/card-marketing.js +0 -48
- package/dist/components/code-editor-mockup.d.ts +0 -25
- package/dist/components/code-editor-mockup.d.ts.map +0 -1
- package/dist/components/code-editor-mockup.js +0 -47
- package/dist/components/contact.d.ts +0 -32
- package/dist/components/contact.d.ts.map +0 -1
- package/dist/components/contact.js +0 -46
- package/dist/components/faq-item.d.ts +0 -25
- package/dist/components/faq-item.d.ts.map +0 -1
- package/dist/components/faq-item.js +0 -25
- package/dist/components/faq.d.ts +0 -20
- package/dist/components/faq.d.ts.map +0 -1
- package/dist/components/faq.js +0 -23
- package/dist/components/feature-grid.d.ts +0 -23
- package/dist/components/feature-grid.d.ts.map +0 -1
- package/dist/components/feature-grid.js +0 -33
- package/dist/components/feature-rows.d.ts +0 -23
- package/dist/components/feature-rows.d.ts.map +0 -1
- package/dist/components/feature-rows.js +0 -27
- package/dist/components/hero-split.d.ts +0 -23
- package/dist/components/hero-split.d.ts.map +0 -1
- package/dist/components/hero-split.js +0 -35
- package/dist/components/hero.d.ts +0 -28
- package/dist/components/hero.d.ts.map +0 -1
- package/dist/components/hero.js +0 -45
- package/dist/components/integration-flow.d.ts +0 -36
- package/dist/components/integration-flow.d.ts.map +0 -1
- package/dist/components/integration-flow.js +0 -36
- package/dist/components/live-demo.d.ts +0 -31
- package/dist/components/live-demo.d.ts.map +0 -1
- package/dist/components/live-demo.js +0 -30
- package/dist/components/logo-band.d.ts +0 -33
- package/dist/components/logo-band.d.ts.map +0 -1
- package/dist/components/logo-band.js +0 -49
- package/dist/components/logo-tile.d.ts +0 -21
- package/dist/components/logo-tile.d.ts.map +0 -1
- package/dist/components/logo-tile.js +0 -28
- package/dist/components/media-mount.d.ts +0 -13
- package/dist/components/media-mount.d.ts.map +0 -1
- package/dist/components/media-mount.js +0 -15
- package/dist/components/newsletter.d.ts +0 -24
- package/dist/components/newsletter.d.ts.map +0 -1
- package/dist/components/newsletter.js +0 -31
- package/dist/components/pricing-card.d.ts +0 -30
- package/dist/components/pricing-card.d.ts.map +0 -1
- package/dist/components/pricing-card.js +0 -44
- package/dist/components/pricing.d.ts +0 -25
- package/dist/components/pricing.d.ts.map +0 -1
- package/dist/components/pricing.js +0 -11
- package/dist/components/proof-slot.d.ts +0 -8
- package/dist/components/proof-slot.d.ts.map +0 -1
- package/dist/components/proof-slot.js +0 -8
- package/dist/components/quote-card.d.ts +0 -31
- package/dist/components/quote-card.d.ts.map +0 -1
- package/dist/components/quote-card.js +0 -48
- package/dist/components/seam-grid.d.ts +0 -30
- package/dist/components/seam-grid.d.ts.map +0 -1
- package/dist/components/seam-grid.js +0 -30
- package/dist/components/section-intro.d.ts +0 -18
- package/dist/components/section-intro.d.ts.map +0 -1
- package/dist/components/section-intro.js +0 -22
- package/dist/components/security-grid.d.ts +0 -25
- package/dist/components/security-grid.d.ts.map +0 -1
- package/dist/components/security-grid.js +0 -28
- package/dist/components/shift-band.d.ts +0 -14
- package/dist/components/shift-band.d.ts.map +0 -1
- package/dist/components/shift-band.js +0 -11
- package/dist/components/statement.d.ts +0 -32
- package/dist/components/statement.d.ts.map +0 -1
- package/dist/components/statement.js +0 -40
- package/dist/components/steps.d.ts +0 -34
- package/dist/components/steps.d.ts.map +0 -1
- package/dist/components/steps.js +0 -40
- package/dist/components/team-grid.d.ts +0 -27
- package/dist/components/team-grid.d.ts.map +0 -1
- package/dist/components/team-grid.js +0 -30
- package/dist/components/testimonials.d.ts +0 -48
- package/dist/components/testimonials.d.ts.map +0 -1
- package/dist/components/testimonials.js +0 -58
- package/dist/components/texture-strip.d.ts +0 -22
- package/dist/components/texture-strip.d.ts.map +0 -1
- package/dist/components/texture-strip.js +0 -32
- package/dist/lib/seam.d.ts +0 -29
- package/dist/lib/seam.d.ts.map +0 -1
- 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 };
|
package/dist/components/table.js
CHANGED
|
@@ -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-
|
|
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,
|
|
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` |
|
|
15
|
-
| `CommandPalette`, `ModelPickerCommand`, `SessionPickerCommand` | `@shadcn/command
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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"}
|