tembro 3.1.6 → 3.1.7

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 (120) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +241 -91
  3. package/dist/components/ui/dialog/index.d.ts +3 -1
  4. package/dist/components/ui/select/index.d.ts +6 -3
  5. package/dist/showcase/package-meta.d.ts +3 -3
  6. package/dist/showcase/premium/wizard/index.cjs +1 -0
  7. package/dist/showcase/premium/wizard/index.d.ts +2 -0
  8. package/dist/showcase/premium/wizard/index.js +1 -0
  9. package/dist/showcase/premium/wizard/mock.cjs +1 -0
  10. package/dist/showcase/premium/wizard/mock.d.ts +2 -0
  11. package/dist/showcase/premium/wizard/mock.js +1 -0
  12. package/dist/showcase/premium/wizard/showcase.cjs +1 -0
  13. package/dist/showcase/premium/wizard/showcase.d.ts +2 -0
  14. package/dist/showcase/premium/wizard/showcase.js +1 -0
  15. package/dist/showcase/search-utils.d.ts +1 -1
  16. package/dist/showcase/site-data.d.ts +6 -6
  17. package/dist/src/components/layout/app-sidebar.cjs +1 -1
  18. package/dist/src/components/layout/app-sidebar.js +49 -36
  19. package/dist/src/components/theme-provider.cjs +1 -1
  20. package/dist/src/components/theme-provider.js +1 -1
  21. package/dist/src/components/ui/dialog/index.cjs +1 -1
  22. package/dist/src/components/ui/dialog/index.js +14 -7
  23. package/dist/src/components/ui/select/index.cjs +1 -1
  24. package/dist/src/components/ui/select/index.js +30 -29
  25. package/dist/src/index.cjs +1 -1
  26. package/dist/src/index.js +101 -101
  27. package/dist/src/showcase/component-api-schema.cjs +1 -1
  28. package/dist/src/showcase/component-api-schema.js +868 -9
  29. package/dist/src/showcase/demo-snippets/forms/index.cjs +1 -1
  30. package/dist/src/showcase/demo-snippets/forms/index.js +1 -1
  31. package/dist/src/showcase/fallback.cjs +4 -4
  32. package/dist/src/showcase/fallback.js +354 -181
  33. package/dist/src/showcase/index.cjs +1 -1
  34. package/dist/src/showcase/index.js +2 -2
  35. package/dist/src/showcase/package-meta.cjs +1 -1
  36. package/dist/src/showcase/package-meta.js +1 -1
  37. package/dist/src/showcase/premium/app-sidebar/mock.cjs +3 -2
  38. package/dist/src/showcase/premium/app-sidebar/mock.js +1 -1
  39. package/dist/src/showcase/premium/app-sidebar/showcase.cjs +1 -1
  40. package/dist/src/showcase/premium/app-sidebar/showcase.js +1 -1
  41. package/dist/src/showcase/premium/async-select/showcase.cjs +1 -1
  42. package/dist/src/showcase/premium/async-select/showcase.js +118 -74
  43. package/dist/src/showcase/premium/avatar/showcase.cjs +1 -1
  44. package/dist/src/showcase/premium/avatar/showcase.js +5 -5
  45. package/dist/src/showcase/premium/dialog/mock.cjs +6 -1
  46. package/dist/src/showcase/premium/dialog/mock.js +1 -1
  47. package/dist/src/showcase/premium/dialog/showcase.cjs +1 -1
  48. package/dist/src/showcase/premium/dialog/showcase.js +101 -39
  49. package/dist/src/showcase/premium/form-wrapper/mock.cjs +2 -2
  50. package/dist/src/showcase/premium/form-wrapper/mock.js +2 -2
  51. package/dist/src/showcase/premium/form-wrapper/showcase.cjs +1 -1
  52. package/dist/src/showcase/premium/form-wrapper/showcase.js +1 -1
  53. package/dist/src/showcase/premium/index.cjs +1 -1
  54. package/dist/src/showcase/premium/index.js +9 -3
  55. package/dist/src/showcase/premium/input/showcase.cjs +1 -1
  56. package/dist/src/showcase/premium/input/showcase.js +1 -1
  57. package/dist/src/showcase/premium/json-input/showcase.cjs +1 -1
  58. package/dist/src/showcase/premium/json-input/showcase.js +1 -1
  59. package/dist/src/showcase/premium/select/showcase.cjs +1 -1
  60. package/dist/src/showcase/premium/select/showcase.js +53 -0
  61. package/dist/src/showcase/premium/table/mock.cjs +1 -1
  62. package/dist/src/showcase/premium/table/mock.js +1 -1
  63. package/dist/src/showcase/premium/types.cjs +1 -1
  64. package/dist/src/showcase/premium/types.js +1 -1
  65. package/dist/src/showcase/premium/wizard/index.cjs +1 -0
  66. package/dist/src/showcase/premium/wizard/index.js +3 -0
  67. package/dist/src/showcase/premium/wizard/mock.cjs +25 -0
  68. package/dist/src/showcase/premium/wizard/mock.js +32 -0
  69. package/dist/src/showcase/premium/wizard/showcase.cjs +1 -0
  70. package/dist/src/showcase/premium/wizard/showcase.js +130 -0
  71. package/dist/src/showcase/preview-registry.cjs +1 -1
  72. package/dist/src/showcase/preview-registry.js +6 -6
  73. package/dist/src/showcase/registry-quality.cjs +1 -1
  74. package/dist/src/showcase/registry-quality.js +5 -0
  75. package/dist/src/showcase/registry-specific.cjs +1 -1
  76. package/dist/src/showcase/registry-specific.js +2 -2
  77. package/dist/src/showcase/render-registry-preview.cjs +1 -1
  78. package/dist/src/showcase/render-registry-preview.js +2 -2
  79. package/dist/src/showcase/site-data.cjs +1 -1
  80. package/dist/src/showcase/site-data.js +198 -44
  81. package/dist/src/showcase/tembro-registry.json.cjs +1 -1
  82. package/dist/src/showcase/tembro-registry.json.js +1 -1
  83. package/dist/src/showcase/types.cjs +1 -1
  84. package/dist/src/showcase/types.js +1 -1
  85. package/package.json +7 -3
  86. package/packages/cli/dist/index.cjs +127 -127
  87. package/packages/cli/vendor/src/components/layout/app-sidebar.tsx +31 -6
  88. package/packages/cli/vendor/src/components/theme-provider.tsx +1 -1
  89. package/packages/cli/vendor/src/components/ui/dialog/index.tsx +15 -3
  90. package/packages/cli/vendor/src/components/ui/select/index.tsx +17 -9
  91. package/packages/cli/vendor/src/showcase/component-api-schema.ts +269 -39
  92. package/packages/cli/vendor/src/showcase/demo-snippets/forms/index.ts +1 -1
  93. package/packages/cli/vendor/src/showcase/fallback.tsx +202 -39
  94. package/packages/cli/vendor/src/showcase/index.ts +6 -6
  95. package/packages/cli/vendor/src/showcase/package-meta.ts +3 -3
  96. package/packages/cli/vendor/src/showcase/premium/app-sidebar/mock.ts +3 -2
  97. package/packages/cli/vendor/src/showcase/premium/app-sidebar/showcase.tsx +1 -1
  98. package/packages/cli/vendor/src/showcase/premium/async-select/showcase.tsx +50 -4
  99. package/packages/cli/vendor/src/showcase/premium/avatar/showcase.tsx +5 -5
  100. package/packages/cli/vendor/src/showcase/premium/dialog/mock.ts +6 -1
  101. package/packages/cli/vendor/src/showcase/premium/dialog/showcase.tsx +53 -1
  102. package/packages/cli/vendor/src/showcase/premium/form-wrapper/mock.ts +2 -2
  103. package/packages/cli/vendor/src/showcase/premium/form-wrapper/showcase.tsx +1 -1
  104. package/packages/cli/vendor/src/showcase/premium/index.ts +5 -3
  105. package/packages/cli/vendor/src/showcase/premium/input/showcase.tsx +1 -1
  106. package/packages/cli/vendor/src/showcase/premium/json-input/showcase.tsx +1 -1
  107. package/packages/cli/vendor/src/showcase/premium/select/showcase.tsx +38 -0
  108. package/packages/cli/vendor/src/showcase/premium/table/mock.ts +1 -1
  109. package/packages/cli/vendor/src/showcase/premium/types.ts +1 -1
  110. package/packages/cli/vendor/src/showcase/premium/wizard/index.ts +2 -0
  111. package/packages/cli/vendor/src/showcase/premium/wizard/mock.ts +41 -0
  112. package/packages/cli/vendor/src/showcase/premium/wizard/showcase.tsx +88 -0
  113. package/packages/cli/vendor/src/showcase/preview-registry.tsx +6 -6
  114. package/packages/cli/vendor/src/showcase/registry-quality.ts +5 -0
  115. package/packages/cli/vendor/src/showcase/registry-specific.tsx +2 -2
  116. package/packages/cli/vendor/src/showcase/render-registry-preview.tsx +2 -2
  117. package/packages/cli/vendor/src/showcase/site-data.tsx +89 -32
  118. package/packages/cli/vendor/src/showcase/tembro-registry.json +1 -1
  119. package/packages/cli/vendor/src/showcase/types.ts +1 -1
  120. package/registry.json +1 -1
@@ -4,42 +4,51 @@ import { CopyButton as n } from "../components/actions/copy-button.js";
4
4
  import { Input as r } from "../components/ui/input/index.js";
5
5
  import { Card as i, CardContent as a } from "../components/ui/card/index.js";
6
6
  import { Badge as o } from "../components/ui/badge/index.js";
7
- import { Skeleton as s, SkeletonCard as c, SkeletonText as l } from "../components/ui/skeleton/index.js";
8
- import { Divider as u } from "../components/ui/divider/index.js";
9
- import { SegmentedControl as d } from "../components/ui/segmented-control/index.js";
10
- import { Spinner as f } from "../components/ui/spinner/index.js";
11
- import { QuickActionGrid as p } from "../components/actions/quick-action-grid.js";
12
- import { Section as m } from "../components/layout/section.js";
13
- import { FilterBar as h } from "../components/filters/filter-bar.js";
14
- import { SavedFilterSelect as g } from "../components/filters/saved-filter-select.js";
15
- import { OtpInput as _ } from "../components/inputs/otp-input.js";
16
- import { Rating as v } from "../components/inputs/rating.js";
17
- import { RangeSlider as y, Slider as ee } from "../components/inputs/slider.js";
18
- import { TagInput as b } from "../components/inputs/tag-input.js";
19
- import { JsonInput as x } from "../components/inputs/json-input.js";
20
- import { TimePicker as S, TimeRangePicker as C } from "../components/inputs/time-picker.js";
21
- import { Alert as w } from "../components/feedback/alert.js";
22
- import { PageState as T } from "../components/feedback/page-state.js";
23
- import { Avatar as E, AvatarGroup as D } from "../components/display/avatar.js";
24
- import { KanbanBoard as O } from "../components/display/kanban.js";
25
- import { CodeBlock as k } from "../components/display/code-block.js";
26
- import { DataState as A } from "../components/display/data-state.js";
27
- import { List as j } from "../components/display/list.js";
28
- import { Statistic as M, StatisticCard as N, StatisticGrid as P } from "../components/display/statistic.js";
29
- import { StatusLegend as F } from "../components/display/status-legend.js";
30
- import { TreeView as te } from "../components/display/tree-view.js";
31
- import { Carousel as I, CarouselItem as L } from "../components/display/carousel.js";
32
- import { Tag as R, TagGroup as z } from "../components/display/tag.js";
33
- import { Heading as B, Mark as V, Text as H } from "../components/display/typography.js";
34
- import { CalendarScheduler as U } from "../components/modern/calendar-scheduler.js";
35
- import { DualListPicker as W } from "../components/modern/dual-list-picker.js";
36
- import { ResizableHandle as G, ResizablePanel as K, ResizablePanelGroup as q } from "../components/modern/resizable-panel.js";
37
- import { jsx as J, jsxs as Y } from "react/jsx-runtime";
7
+ import { Accordion as ee } from "../components/ui/accordion/index.js";
8
+ import { Skeleton as te, SkeletonCard as ne, SkeletonText as s } from "../components/ui/skeleton/index.js";
9
+ import { Divider as c } from "../components/ui/divider/index.js";
10
+ import { SegmentedControl as l } from "../components/ui/segmented-control/index.js";
11
+ import { Spinner as u } from "../components/ui/spinner/index.js";
12
+ import { QuickActionGrid as d } from "../components/actions/quick-action-grid.js";
13
+ import { Section as f } from "../components/layout/section.js";
14
+ import { FilterBar as p } from "../components/filters/filter-bar.js";
15
+ import { SavedFilterSelect as m } from "../components/filters/saved-filter-select.js";
16
+ import { OtpInput as h } from "../components/inputs/otp-input.js";
17
+ import { Rating as g } from "../components/inputs/rating.js";
18
+ import { RangeSlider as re, Slider as ie } from "../components/inputs/slider.js";
19
+ import { TagInput as _ } from "../components/inputs/tag-input.js";
20
+ import { JsonInput as v } from "../components/inputs/json-input.js";
21
+ import { TimePicker as y, TimeRangePicker as b } from "../components/inputs/time-picker.js";
22
+ import { ColorPicker as x } from "../components/inputs/color-picker.js";
23
+ import { SignaturePad as S } from "../components/inputs/signature-pad.js";
24
+ import { Alert as C } from "../components/feedback/alert.js";
25
+ import { PageState as w } from "../components/feedback/page-state.js";
26
+ import { Avatar as T, AvatarGroup as E } from "../components/display/avatar.js";
27
+ import { KanbanBoard as D } from "../components/display/kanban.js";
28
+ import { CodeBlock as O } from "../components/display/code-block.js";
29
+ import { DataState as k } from "../components/display/data-state.js";
30
+ import { List as A } from "../components/display/list.js";
31
+ import { Statistic as j, StatisticCard as M, StatisticGrid as N } from "../components/display/statistic.js";
32
+ import { StatusLegend as P } from "../components/display/status-legend.js";
33
+ import { TreeView as F } from "../components/display/tree-view.js";
34
+ import { VirtualList as ae } from "../components/display/virtual-list.js";
35
+ import { QRCode as I } from "../components/display/qr-code.js";
36
+ import { Carousel as L, CarouselItem as R } from "../components/display/carousel.js";
37
+ import { Tag as z, TagGroup as B } from "../components/display/tag.js";
38
+ import { Heading as V, Mark as H, Text as U } from "../components/display/typography.js";
39
+ import { CalendarScheduler as W } from "../components/modern/calendar-scheduler.js";
40
+ import { DualListPicker as G } from "../components/modern/dual-list-picker.js";
41
+ import { ResizableHandle as K, ResizablePanel as q, ResizablePanelGroup as J } from "../components/modern/resizable-panel.js";
42
+ import { RichTextEditor as oe } from "../components/modern/rich-text-editor.js";
43
+ import { ImageCropper as se } from "../components/modern/image-cropper.js";
44
+ import { CommandPalette as ce } from "../components/command/command-palette.js";
45
+ import { SortableList as le } from "../components/dnd/sortable-list.js";
46
+ import { jsx as Y, jsxs as X } from "react/jsx-runtime";
38
47
  //#region src/showcase/fallback.tsx
39
- function X({ item: e, groupLabel: t, importSnippet: n }) {
40
- let r = Z(e.slug);
48
+ function Z({ item: e, groupLabel: t, importSnippet: n }) {
49
+ let r = ue(e.slug);
41
50
  return {
42
- Showcase: (n) => /* @__PURE__ */ J(Q, {
51
+ Showcase: (n) => /* @__PURE__ */ Y(Q, {
43
52
  ...n,
44
53
  item: e,
45
54
  groupLabel: t
@@ -56,7 +65,7 @@ function X({ item: e, groupLabel: t, importSnippet: n }) {
56
65
  }
57
66
  };
58
67
  }
59
- function Z(e) {
68
+ function ue(e) {
60
69
  return e.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join("");
61
70
  }
62
71
  function Q({ item: e, groupLabel: t, state: n, setState: r, mode: i }) {
@@ -65,69 +74,69 @@ function Q({ item: e, groupLabel: t, state: n, setState: r, mode: i }) {
65
74
  "CLI add",
66
75
  "Local file"
67
76
  ];
68
- return /* @__PURE__ */ Y("div", {
77
+ return /* @__PURE__ */ X("div", {
69
78
  className: "space-y-5",
70
79
  children: [
71
- /* @__PURE__ */ Y("div", {
80
+ /* @__PURE__ */ X("div", {
72
81
  className: "flex flex-col gap-5 border-b border-[color:var(--aui-divider)] pb-5 lg:flex-row lg:items-start lg:justify-between",
73
- children: [/* @__PURE__ */ Y("div", {
82
+ children: [/* @__PURE__ */ X("div", {
74
83
  className: "max-w-xl",
75
84
  children: [
76
- /* @__PURE__ */ J("p", {
85
+ /* @__PURE__ */ Y("p", {
77
86
  className: "text-sm font-semibold uppercase tracking-[0.22em] text-[color:var(--aui-brand-strong)]",
78
87
  children: "CLI component"
79
88
  }),
80
- /* @__PURE__ */ J("h3", {
89
+ /* @__PURE__ */ Y("h3", {
81
90
  className: "mt-2.5 text-2xl font-semibold tracking-tight text-[color:var(--aui-page-foreground)]",
82
91
  children: e.title
83
92
  }),
84
- /* @__PURE__ */ J("p", {
93
+ /* @__PURE__ */ Y("p", {
85
94
  className: "mt-3 text-sm leading-7 text-[color:var(--aui-page-muted)]",
86
95
  children: "Copy this component into your app and adjust it inside your own `components` folder."
87
96
  })
88
97
  ]
89
- }), /* @__PURE__ */ J("div", {
98
+ }), /* @__PURE__ */ Y("div", {
90
99
  className: "rounded-full border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-3 py-1.5 text-[11px] font-semibold uppercase tracking-[0.18em] text-[color:var(--aui-page-muted-strong)]",
91
100
  children: i === "docs" ? "Docs" : "Preview"
92
101
  })]
93
102
  }),
94
- /* @__PURE__ */ J("div", {
103
+ /* @__PURE__ */ Y("div", {
95
104
  className: "grid gap-3 sm:grid-cols-3",
96
- children: a.slice(0, 3).map((e) => /* @__PURE__ */ Y("div", {
105
+ children: a.slice(0, 3).map((e) => /* @__PURE__ */ X("div", {
97
106
  className: "rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-3.5",
98
- children: [/* @__PURE__ */ J("p", {
107
+ children: [/* @__PURE__ */ Y("p", {
99
108
  className: "text-sm font-semibold text-[color:var(--aui-page-foreground)]",
100
109
  children: e
101
- }), /* @__PURE__ */ J("p", {
110
+ }), /* @__PURE__ */ Y("p", {
102
111
  className: "mt-1.5 text-xs leading-5 text-[color:var(--aui-page-muted)]",
103
112
  children: "Lives in your local component source."
104
113
  })]
105
114
  }, e))
106
115
  }),
107
- /* @__PURE__ */ J("div", {
116
+ /* @__PURE__ */ Y("div", {
108
117
  className: "rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-code-bg)] px-4 py-3",
109
- children: /* @__PURE__ */ Y("code", {
118
+ children: /* @__PURE__ */ X("code", {
110
119
  className: "text-sm text-[color:var(--aui-code-fg)]",
111
120
  children: ["npx tembro add ", e.slug]
112
121
  })
113
122
  }),
114
- /* @__PURE__ */ J("div", {
123
+ /* @__PURE__ */ Y("div", {
115
124
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4 sm:p-5",
116
125
  children: $(e, t, n, r, i)
117
126
  })
118
127
  ]
119
128
  });
120
129
  }
121
- function $(X, Z, Q, $, ne) {
122
- return X.slug === "avatar" ? /* @__PURE__ */ Y("div", {
130
+ function $(Z, ue, Q, $, de) {
131
+ return Z.slug === "avatar" ? /* @__PURE__ */ X("div", {
123
132
  className: "flex flex-wrap items-center gap-4",
124
133
  children: [
125
- /* @__PURE__ */ J(E, { name: "Azamat UI" }),
126
- /* @__PURE__ */ J(E, {
134
+ /* @__PURE__ */ Y(T, { name: "Tembro" }),
135
+ /* @__PURE__ */ Y(T, {
127
136
  fallback: "AJ",
128
137
  shape: "rounded"
129
138
  }),
130
- /* @__PURE__ */ J(D, { items: [
139
+ /* @__PURE__ */ Y(E, { items: [
131
140
  {
132
141
  key: "1",
133
142
  name: "Azamat"
@@ -146,7 +155,21 @@ function $(X, Z, Q, $, ne) {
146
155
  }
147
156
  ] })
148
157
  ]
149
- }) : X.slug === "calendar-scheduler" ? /* @__PURE__ */ J(U, { events: [
158
+ }) : Z.slug === "accordion" ? /* @__PURE__ */ Y(ee, {
159
+ type: "single",
160
+ defaultValue: "install",
161
+ items: [{
162
+ key: "install",
163
+ title: "Install with CLI",
164
+ description: "Copy source into your app.",
165
+ content: "Run `npx tembro add accordion`, then edit the local component source."
166
+ }, {
167
+ key: "compose",
168
+ title: "Compose route content",
169
+ description: "Use it for settings, FAQ and dense docs groups.",
170
+ content: "Accordion items keep title, description, meta, badges and disabled states together."
171
+ }]
172
+ }) : Z.slug === "calendar-scheduler" ? /* @__PURE__ */ Y(W, { events: [
150
173
  {
151
174
  id: "1",
152
175
  title: "Design review",
@@ -168,56 +191,99 @@ function $(X, Z, Q, $, ne) {
168
191
  time: "09:30",
169
192
  tone: "success"
170
193
  }
171
- ] }) : X.slug === "carousel" ? /* @__PURE__ */ Y(I, {
194
+ ] }) : Z.slug === "carousel" ? /* @__PURE__ */ X(L, {
172
195
  index: 0,
173
- children: [/* @__PURE__ */ J(L, { children: /* @__PURE__ */ J(i, { children: /* @__PURE__ */ Y(a, {
196
+ children: [/* @__PURE__ */ Y(R, { children: /* @__PURE__ */ Y(i, { children: /* @__PURE__ */ X(a, {
174
197
  className: "p-5",
175
- children: [/* @__PURE__ */ J("p", {
198
+ children: [/* @__PURE__ */ Y("p", {
176
199
  className: "text-lg font-semibold",
177
200
  children: "Release dashboard"
178
- }), /* @__PURE__ */ J("p", {
201
+ }), /* @__PURE__ */ Y("p", {
179
202
  className: "mt-2 text-sm text-muted-foreground",
180
203
  children: "Compact KPI slide for weekly review."
181
204
  })]
182
- }) }) }), /* @__PURE__ */ J(L, { children: /* @__PURE__ */ J(i, { children: /* @__PURE__ */ Y(a, {
205
+ }) }) }), /* @__PURE__ */ Y(R, { children: /* @__PURE__ */ Y(i, { children: /* @__PURE__ */ X(a, {
183
206
  className: "p-5",
184
- children: [/* @__PURE__ */ J("p", {
207
+ children: [/* @__PURE__ */ Y("p", {
185
208
  className: "text-lg font-semibold",
186
209
  children: "Customer health"
187
- }), /* @__PURE__ */ J("p", {
210
+ }), /* @__PURE__ */ Y("p", {
188
211
  className: "mt-2 text-sm text-muted-foreground",
189
212
  children: "Second slide with account risk summary."
190
213
  })]
191
214
  }) }) })]
192
- }) : X.slug === "code-block" ? /* @__PURE__ */ J(k, {
215
+ }) : Z.slug === "code-block" ? /* @__PURE__ */ Y(O, {
193
216
  title: "Install",
194
217
  language: "bash",
195
218
  code: "npx tembro init --template next\nnpx tembro add button"
196
- }) : X.slug === "copy-button" ? /* @__PURE__ */ J(n, {
219
+ }) : Z.slug === "command-palette" ? /* @__PURE__ */ Y(ce, {
220
+ open: !0,
221
+ onOpenChange: () => void 0,
222
+ title: "Preview command palette",
223
+ description: "Command palette preview with grouped actions.",
224
+ placeholder: "Search commands...",
225
+ groups: [{
226
+ id: "components",
227
+ label: "Components",
228
+ items: [
229
+ {
230
+ id: "button",
231
+ label: "Button",
232
+ description: "Open button docs",
233
+ shortcut: "B"
234
+ },
235
+ {
236
+ id: "input",
237
+ label: "Input",
238
+ description: "Open input docs",
239
+ shortcut: "I"
240
+ },
241
+ {
242
+ id: "data-table",
243
+ label: "DataTable",
244
+ description: "Open table docs",
245
+ shortcut: "T"
246
+ }
247
+ ]
248
+ }],
249
+ contentClassName: "relative inset-auto translate-x-0 translate-y-0 shadow-none"
250
+ }) : Z.slug === "copy-button" ? /* @__PURE__ */ Y(n, {
197
251
  value: "npx tembro add button",
198
252
  children: "Copy command"
199
- }) : X.slug === "data-state" ? /* @__PURE__ */ J(A, {
253
+ }) : Z.slug === "data-state" ? /* @__PURE__ */ Y(k, {
200
254
  status: "empty",
201
255
  title: "No matching rows",
202
256
  description: "Try another filter or import the first record.",
203
- actions: /* @__PURE__ */ J(e, {
257
+ actions: /* @__PURE__ */ Y(e, {
204
258
  size: "sm",
205
259
  children: "Import CSV"
206
260
  })
207
- }) : X.slug === "divider" ? /* @__PURE__ */ Y("div", {
261
+ }) : Z.slug === "color-picker" ? /* @__PURE__ */ Y(x, {
262
+ label: "Brand accent",
263
+ defaultValue: "#2563ebcc",
264
+ showAlpha: !0,
265
+ swatches: [
266
+ "#0f172a",
267
+ "#2563eb",
268
+ "#059669",
269
+ "#d97706",
270
+ "#dc2626",
271
+ "#7c3aed"
272
+ ]
273
+ }) : Z.slug === "divider" ? /* @__PURE__ */ X("div", {
208
274
  className: "grid gap-3",
209
275
  children: [
210
- /* @__PURE__ */ J("div", {
276
+ /* @__PURE__ */ Y("div", {
211
277
  className: "text-sm font-medium",
212
278
  children: "Section above"
213
279
  }),
214
- /* @__PURE__ */ J(u, { label: "Summary" }),
215
- /* @__PURE__ */ J("div", {
280
+ /* @__PURE__ */ Y(c, { label: "Summary" }),
281
+ /* @__PURE__ */ Y("div", {
216
282
  className: "text-sm text-muted-foreground",
217
283
  children: "Section below"
218
284
  })
219
285
  ]
220
- }) : X.slug === "dual-list-picker" ? /* @__PURE__ */ J(W, {
286
+ }) : Z.slug === "dual-list-picker" ? /* @__PURE__ */ Y(G, {
221
287
  picked: ["billing", "support"],
222
288
  items: [
223
289
  {
@@ -237,7 +303,7 @@ function $(X, Z, Q, $, ne) {
237
303
  label: "Security"
238
304
  }
239
305
  ]
240
- }) : X.slug === "segmented-control" ? /* @__PURE__ */ J(d, {
306
+ }) : Z.slug === "segmented-control" ? /* @__PURE__ */ Y(l, {
241
307
  options: [
242
308
  {
243
309
  value: "overview",
@@ -253,44 +319,44 @@ function $(X, Z, Q, $, ne) {
253
319
  }
254
320
  ],
255
321
  defaultValue: "overview"
256
- }) : X.slug === "spinner" ? /* @__PURE__ */ Y("div", {
322
+ }) : Z.slug === "spinner" ? /* @__PURE__ */ X("div", {
257
323
  className: "flex items-center gap-5",
258
324
  children: [
259
- /* @__PURE__ */ J(f, { size: "xs" }),
260
- /* @__PURE__ */ J(f, { size: "sm" }),
261
- /* @__PURE__ */ J(f, { size: "md" }),
262
- /* @__PURE__ */ J(f, { size: "lg" })
325
+ /* @__PURE__ */ Y(u, { size: "xs" }),
326
+ /* @__PURE__ */ Y(u, { size: "sm" }),
327
+ /* @__PURE__ */ Y(u, { size: "md" }),
328
+ /* @__PURE__ */ Y(u, { size: "lg" })
263
329
  ]
264
- }) : X.slug === "skeleton" ? /* @__PURE__ */ Y("div", {
330
+ }) : Z.slug === "skeleton" ? /* @__PURE__ */ X("div", {
265
331
  className: "grid gap-3",
266
332
  children: [
267
- /* @__PURE__ */ J(s, { className: "h-10 w-full" }),
268
- /* @__PURE__ */ J(l, { rows: 3 }),
269
- /* @__PURE__ */ J(c, { avatar: !0 })
333
+ /* @__PURE__ */ Y(te, { className: "h-10 w-full" }),
334
+ /* @__PURE__ */ Y(s, { rows: 3 }),
335
+ /* @__PURE__ */ Y(ne, { avatar: !0 })
270
336
  ]
271
- }) : X.slug === "slider" ? /* @__PURE__ */ J(ee, {
337
+ }) : Z.slug === "slider" ? /* @__PURE__ */ Y(ie, {
272
338
  label: "Spacing scale",
273
339
  description: "Adjust dashboard density.",
274
340
  defaultValue: 64,
275
341
  showValue: !0
276
- }) : X.slug === "statistic" ? /* @__PURE__ */ Y(P, {
342
+ }) : Z.slug === "statistic" ? /* @__PURE__ */ X(N, {
277
343
  columns: 3,
278
344
  children: [
279
- /* @__PURE__ */ J(N, {
345
+ /* @__PURE__ */ Y(M, {
280
346
  label: "ARR",
281
347
  value: "$84.2k",
282
348
  change: "+12.4%",
283
349
  trend: "up",
284
350
  description: "vs previous month"
285
351
  }),
286
- /* @__PURE__ */ J(M, {
352
+ /* @__PURE__ */ Y(j, {
287
353
  label: "MRR",
288
354
  value: "$7.0k",
289
355
  change: "+3.1%",
290
356
  trend: "up",
291
357
  description: "Live subscriptions"
292
358
  }),
293
- /* @__PURE__ */ J(M, {
359
+ /* @__PURE__ */ Y(j, {
294
360
  label: "Churn",
295
361
  value: "1.9%",
296
362
  change: "-0.4%",
@@ -298,30 +364,30 @@ function $(X, Z, Q, $, ne) {
298
364
  description: "Healthy range"
299
365
  })
300
366
  ]
301
- }) : X.slug === "tag" ? /* @__PURE__ */ Y(z, { children: [
302
- /* @__PURE__ */ J(R, { children: "Default" }),
303
- /* @__PURE__ */ J(R, {
367
+ }) : Z.slug === "tag" ? /* @__PURE__ */ X(B, { children: [
368
+ /* @__PURE__ */ Y(z, { children: "Default" }),
369
+ /* @__PURE__ */ Y(z, {
304
370
  tone: "success",
305
371
  children: "Live"
306
372
  }),
307
- /* @__PURE__ */ J(R, {
373
+ /* @__PURE__ */ Y(z, {
308
374
  tone: "warning",
309
375
  children: "Review"
310
376
  }),
311
- /* @__PURE__ */ J(R, {
377
+ /* @__PURE__ */ Y(z, {
312
378
  tone: "danger",
313
379
  children: "Blocked"
314
380
  })
315
- ] }) : X.slug === "time-picker" ? /* @__PURE__ */ Y("div", {
381
+ ] }) : Z.slug === "time-picker" ? /* @__PURE__ */ X("div", {
316
382
  className: "grid gap-3",
317
- children: [/* @__PURE__ */ J(S, {
383
+ children: [/* @__PURE__ */ Y(y, {
318
384
  label: "Start time",
319
385
  defaultValue: "09:30"
320
- }), /* @__PURE__ */ J(C, {
386
+ }), /* @__PURE__ */ Y(b, {
321
387
  from: "09:30",
322
388
  to: "17:30"
323
389
  })]
324
- }) : X.slug === "tree-view" ? /* @__PURE__ */ J(te, {
390
+ }) : Z.slug === "tree-view" ? /* @__PURE__ */ Y(F, {
325
391
  defaultExpandedKeys: ["components", "inputs"],
326
392
  selectedKey: "button",
327
393
  items: [{
@@ -339,51 +405,51 @@ function $(X, Z, Q, $, ne) {
339
405
  }]
340
406
  }]
341
407
  }]
342
- }) : X.slug === "typography" ? /* @__PURE__ */ Y("div", {
408
+ }) : Z.slug === "typography" ? /* @__PURE__ */ X("div", {
343
409
  className: "grid gap-3",
344
410
  children: [
345
- /* @__PURE__ */ J(B, {
411
+ /* @__PURE__ */ Y(V, {
346
412
  level: 2,
347
413
  children: "Dashboard typography"
348
414
  }),
349
- /* @__PURE__ */ J(H, { children: "Readable defaults for product copy and operational labels." }),
350
- /* @__PURE__ */ J("blockquote", {
415
+ /* @__PURE__ */ Y(U, { children: "Readable defaults for product copy and operational labels." }),
416
+ /* @__PURE__ */ Y("blockquote", {
351
417
  className: "border-l-4 pl-4 italic text-muted-foreground",
352
418
  children: "Ship simple text hierarchy before adding decorative layout layers."
353
419
  }),
354
- /* @__PURE__ */ Y(H, {
420
+ /* @__PURE__ */ X(U, {
355
421
  muted: !0,
356
422
  size: "sm",
357
423
  children: [
358
424
  "Use ",
359
- /* @__PURE__ */ J(V, { children: "Mark" }),
425
+ /* @__PURE__ */ Y(H, { children: "Mark" }),
360
426
  " only for emphasis that matters."
361
427
  ]
362
428
  })
363
429
  ]
364
- }) : X.slug === "range-slider" ? /* @__PURE__ */ J(y, {
430
+ }) : Z.slug === "range-slider" ? /* @__PURE__ */ Y(re, {
365
431
  label: "Revenue band",
366
432
  description: "Filter a metric window.",
367
433
  defaultValue: [20, 80],
368
434
  showValue: !0
369
- }) : X.slug === "rating" ? /* @__PURE__ */ J(v, {
435
+ }) : Z.slug === "rating" ? /* @__PURE__ */ Y(g, {
370
436
  defaultValue: 4,
371
437
  labels: { clear: "Reset" }
372
- }) : X.slug === "otp-input" ? /* @__PURE__ */ J(_, {
438
+ }) : Z.slug === "otp-input" ? /* @__PURE__ */ Y(h, {
373
439
  value: Q.textValue.replace(/\D/g, "").slice(0, 6),
374
440
  onValueChange: (e) => $({ textValue: e })
375
- }) : X.slug === "color-input" ? /* @__PURE__ */ J(r, {
441
+ }) : Z.slug === "color-input" ? /* @__PURE__ */ Y(r, {
376
442
  type: "color",
377
443
  defaultValue: "#22c55e",
378
444
  "aria-label": "Accent color"
379
- }) : X.slug === "tag-input" ? /* @__PURE__ */ J(b, {
445
+ }) : Z.slug === "tag-input" ? /* @__PURE__ */ Y(_, {
380
446
  defaultValue: [
381
447
  "dashboard",
382
448
  "beta",
383
449
  "ops"
384
450
  ],
385
451
  placeholder: "Add label"
386
- }) : X.slug === "button-group" ? /* @__PURE__ */ J(t, { items: [
452
+ }) : Z.slug === "button-group" ? /* @__PURE__ */ Y(t, { items: [
387
453
  {
388
454
  key: "day",
389
455
  label: "Day"
@@ -396,7 +462,7 @@ function $(X, Z, Q, $, ne) {
396
462
  key: "month",
397
463
  label: "Month"
398
464
  }
399
- ] }) : X.slug === "quick-action-grid" ? /* @__PURE__ */ J(p, {
465
+ ] }) : Z.slug === "quick-action-grid" ? /* @__PURE__ */ Y(d, {
400
466
  columns: 3,
401
467
  items: [
402
468
  {
@@ -418,9 +484,9 @@ function $(X, Z, Q, $, ne) {
418
484
  badge: "S"
419
485
  }
420
486
  ]
421
- }) : X.slug === "data-table-saved-filters" ? /* @__PURE__ */ Y("div", {
487
+ }) : Z.slug === "data-table-saved-filters" ? /* @__PURE__ */ X("div", {
422
488
  className: "grid gap-3",
423
- children: [/* @__PURE__ */ J(h, {
489
+ children: [/* @__PURE__ */ Y(p, {
424
490
  chips: [
425
491
  {
426
492
  key: "status",
@@ -443,7 +509,7 @@ function $(X, Z, Q, $, ne) {
443
509
  ],
444
510
  onRemoveChip: () => void 0,
445
511
  onReset: () => void 0
446
- }), /* @__PURE__ */ J(t, {
512
+ }), /* @__PURE__ */ Y(t, {
447
513
  attached: !1,
448
514
  items: [
449
515
  {
@@ -461,23 +527,23 @@ function $(X, Z, Q, $, ne) {
461
527
  }
462
528
  ]
463
529
  })]
464
- }) : X.slug === "alert" ? /* @__PURE__ */ J(w, {
530
+ }) : Z.slug === "alert" ? /* @__PURE__ */ Y(C, {
465
531
  tone: "warning",
466
532
  title: "Review needed",
467
533
  description: "Billing rules changed and one approval is pending.",
468
- action: /* @__PURE__ */ J(e, {
534
+ action: /* @__PURE__ */ Y(e, {
469
535
  size: "sm",
470
536
  children: "Open"
471
537
  })
472
- }) : X.slug === "page-state" ? /* @__PURE__ */ J(T, {
538
+ }) : Z.slug === "page-state" ? /* @__PURE__ */ Y(w, {
473
539
  title: "Workspace connected",
474
540
  description: "The route is ready to accept live data and team actions.",
475
541
  tone: "success",
476
- action: /* @__PURE__ */ J(e, {
542
+ action: /* @__PURE__ */ Y(e, {
477
543
  size: "sm",
478
544
  children: "Continue"
479
545
  })
480
- }) : X.slug === "list" ? /* @__PURE__ */ J(j, { items: [
546
+ }) : Z.slug === "list" ? /* @__PURE__ */ Y(A, { items: [
481
547
  {
482
548
  key: "1",
483
549
  title: "Enterprise plan",
@@ -496,7 +562,7 @@ function $(X, Z, Q, $, ne) {
496
562
  description: "Lightweight team setup",
497
563
  extra: "$49"
498
564
  }
499
- ] }) : X.slug === "status-legend" ? /* @__PURE__ */ J(F, {
565
+ ] }) : Z.slug === "status-legend" ? /* @__PURE__ */ Y(P, {
500
566
  title: "Delivery states",
501
567
  items: [
502
568
  {
@@ -521,7 +587,7 @@ function $(X, Z, Q, $, ne) {
521
587
  count: 1
522
588
  }
523
589
  ]
524
- }) : X.slug === "notification-center" ? /* @__PURE__ */ J(j, { items: [
590
+ }) : Z.slug === "notification-center" ? /* @__PURE__ */ Y(A, { items: [
525
591
  {
526
592
  key: "1",
527
593
  title: "Build completed",
@@ -540,20 +606,127 @@ function $(X, Z, Q, $, ne) {
540
606
  description: "Package version is ready for release.",
541
607
  extra: "1h"
542
608
  }
543
- ] }) : X.slug === "inline-editable" ? /* @__PURE__ */ Y("div", {
609
+ ] }) : Z.slug === "inline-editable" ? /* @__PURE__ */ X("div", {
544
610
  className: "flex flex-col gap-3 sm:flex-row",
545
- children: [/* @__PURE__ */ J(r, {
611
+ children: [/* @__PURE__ */ Y(r, {
546
612
  value: Q.textValue,
547
613
  onChange: (e) => $({ textValue: e.currentTarget.value })
548
- }), /* @__PURE__ */ J(e, {
614
+ }), /* @__PURE__ */ Y(e, {
549
615
  size: "sm",
550
616
  children: "Save label"
551
617
  })]
552
- }) : X.slug === "json-input" ? /* @__PURE__ */ J(x, {
553
- value: "{\n \"workspace\": \"azamat-ui\",\n \"theme\": \"dashboard\"\n}",
618
+ }) : Z.slug === "json-input" ? /* @__PURE__ */ Y(v, {
619
+ value: "{\n \"workspace\": \"tembro\",\n \"theme\": \"dashboard\"\n}",
554
620
  onValueChange: () => void 0,
555
621
  rows: 7
556
- }) : X.slug === "kanban" ? /* @__PURE__ */ J(O, { columns: [
622
+ }) : Z.slug === "sortable-list" ? /* @__PURE__ */ Y(le, {
623
+ defaultItems: [
624
+ {
625
+ id: "docs",
626
+ title: "Docs polish",
627
+ meta: "Ready"
628
+ },
629
+ {
630
+ id: "api",
631
+ title: "API table",
632
+ meta: "Review"
633
+ },
634
+ {
635
+ id: "preview",
636
+ title: "Live preview",
637
+ meta: "Live"
638
+ }
639
+ ],
640
+ getItemId: (e) => e.id,
641
+ getItemLabel: (e) => e.title,
642
+ renderItem: (e) => /* @__PURE__ */ X("div", {
643
+ className: "flex min-w-0 items-center justify-between gap-3",
644
+ children: [/* @__PURE__ */ Y("span", {
645
+ className: "truncate text-sm font-medium",
646
+ children: e.title
647
+ }), /* @__PURE__ */ Y(o, {
648
+ variant: "outline",
649
+ children: e.meta
650
+ })]
651
+ })
652
+ }) : Z.slug === "virtual-list" ? /* @__PURE__ */ Y(ae, {
653
+ items: Array.from({ length: 80 }, (e, t) => ({
654
+ id: `row-${t + 1}`,
655
+ name: `Virtual record ${t + 1}`,
656
+ status: t % 3 == 0 ? "Review" : "Live"
657
+ })),
658
+ height: 280,
659
+ estimateSize: 56,
660
+ getItemKey: (e) => e.id,
661
+ renderItem: (e) => /* @__PURE__ */ X("div", {
662
+ className: "mx-1 flex items-center justify-between rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] px-4 py-3",
663
+ children: [/* @__PURE__ */ Y("span", {
664
+ className: "text-sm font-medium",
665
+ children: e.name
666
+ }), /* @__PURE__ */ Y(o, {
667
+ variant: e.status === "Live" ? "secondary" : "outline",
668
+ children: e.status
669
+ })]
670
+ })
671
+ }) : Z.slug === "signature-pad" ? /* @__PURE__ */ Y(S, {
672
+ defaultValue: [[
673
+ {
674
+ x: .16,
675
+ y: .58,
676
+ pressure: .5
677
+ },
678
+ {
679
+ x: .26,
680
+ y: .38,
681
+ pressure: .5
682
+ },
683
+ {
684
+ x: .38,
685
+ y: .62,
686
+ pressure: .5
687
+ },
688
+ {
689
+ x: .54,
690
+ y: .42,
691
+ pressure: .5
692
+ },
693
+ {
694
+ x: .72,
695
+ y: .56,
696
+ pressure: .5
697
+ }
698
+ ]],
699
+ labels: {
700
+ canvas: "Signature preview",
701
+ undo: "Undo",
702
+ clear: "Clear"
703
+ }
704
+ }) : Z.slug === "qr-code" ? /* @__PURE__ */ X("div", {
705
+ className: "flex flex-col items-start gap-4 sm:flex-row sm:items-center",
706
+ children: [/* @__PURE__ */ Y("div", {
707
+ className: "rounded-2xl border border-[color:var(--aui-divider)] bg-white p-4",
708
+ children: /* @__PURE__ */ Y(I, {
709
+ value: "https://tembro.dev/components",
710
+ size: 148,
711
+ alt: "Tembro components QR"
712
+ })
713
+ }), /* @__PURE__ */ X("div", { children: [/* @__PURE__ */ Y("p", {
714
+ className: "font-semibold aui-text-strong",
715
+ children: "QR code"
716
+ }), /* @__PURE__ */ Y("p", {
717
+ className: "mt-2 text-sm leading-6 aui-text-muted",
718
+ children: "Generates SVG output, supports custom colors, error fallback and async loading."
719
+ })] })]
720
+ }) : Z.slug === "rich-text-editor" ? /* @__PURE__ */ Y(oe, {
721
+ defaultValue: "<h2>Release notes</h2><p>Write rich product copy with toolbar actions, links and placeholder support.</p>",
722
+ minHeight: 180,
723
+ onLinkRequest: () => "https://tembro.dev"
724
+ }) : Z.slug === "image-cropper" ? /* @__PURE__ */ Y(se, {
725
+ src: "data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20640%20420%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%22%20x2%3D%221%22%20y1%3D%220%22%20y2%3D%221%22%3E%3Cstop%20stop-color%3D%22%230f172a%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2322c55e%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Crect%20width%3D%22640%22%20height%3D%22420%22%20fill%3D%22url(%23g)%22%2F%3E%3Ccircle%20cx%3D%22460%22%20cy%3D%22150%22%20r%3D%2288%22%20fill%3D%22%23ffffff%22%20opacity%3D%22.22%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22245%22%20width%3D%22310%22%20height%3D%2264%22%20rx%3D%2220%22%20fill%3D%22%23fff%22%20opacity%3D%22.88%22%2F%3E%3Ctext%20x%3D%2295%22%20y%3D%22287%22%20font-family%3D%22Arial%22%20font-size%3D%2228%22%20font-weight%3D%22700%22%20fill%3D%22%230f172a%22%3ETembro%20crop%3C%2Ftext%3E%3C%2Fsvg%3E",
726
+ aspect: 16 / 9,
727
+ defaultZoom: 1.15,
728
+ defaultRotation: -2
729
+ }) : Z.slug === "kanban" ? /* @__PURE__ */ Y(D, { columns: [
557
730
  {
558
731
  key: "todo",
559
732
  title: "Todo",
@@ -581,63 +754,63 @@ function $(X, Z, Q, $, ne) {
581
754
  description: "Release package and sync docs."
582
755
  }]
583
756
  }
584
- ] }) : X.slug === "overlay" ? /* @__PURE__ */ Y("div", {
757
+ ] }) : Z.slug === "overlay" ? /* @__PURE__ */ X("div", {
585
758
  className: "grid gap-3 sm:grid-cols-3",
586
759
  children: [
587
- /* @__PURE__ */ J(i, { children: /* @__PURE__ */ Y(a, {
760
+ /* @__PURE__ */ Y(i, { children: /* @__PURE__ */ X(a, {
588
761
  className: "p-4",
589
- children: [/* @__PURE__ */ J("p", {
762
+ children: [/* @__PURE__ */ Y("p", {
590
763
  className: "font-medium",
591
764
  children: "Dialog"
592
- }), /* @__PURE__ */ J("p", {
765
+ }), /* @__PURE__ */ Y("p", {
593
766
  className: "mt-1 text-sm text-muted-foreground",
594
767
  children: "Focused confirmation and forms."
595
768
  })]
596
769
  }) }),
597
- /* @__PURE__ */ J(i, { children: /* @__PURE__ */ Y(a, {
770
+ /* @__PURE__ */ Y(i, { children: /* @__PURE__ */ X(a, {
598
771
  className: "p-4",
599
- children: [/* @__PURE__ */ J("p", {
772
+ children: [/* @__PURE__ */ Y("p", {
600
773
  className: "font-medium",
601
774
  children: "Popover"
602
- }), /* @__PURE__ */ J("p", {
775
+ }), /* @__PURE__ */ Y("p", {
603
776
  className: "mt-1 text-sm text-muted-foreground",
604
777
  children: "Compact contextual actions."
605
778
  })]
606
779
  }) }),
607
- /* @__PURE__ */ J(i, { children: /* @__PURE__ */ Y(a, {
780
+ /* @__PURE__ */ Y(i, { children: /* @__PURE__ */ X(a, {
608
781
  className: "p-4",
609
- children: [/* @__PURE__ */ J("p", {
782
+ children: [/* @__PURE__ */ Y("p", {
610
783
  className: "font-medium",
611
784
  children: "Sheet"
612
- }), /* @__PURE__ */ J("p", {
785
+ }), /* @__PURE__ */ Y("p", {
613
786
  className: "mt-1 text-sm text-muted-foreground",
614
787
  children: "Side panel workflows."
615
788
  })]
616
789
  }) })
617
790
  ]
618
- }) : X.slug === "resizable-panel" ? /* @__PURE__ */ Y(q, { children: [
619
- /* @__PURE__ */ Y(K, {
791
+ }) : Z.slug === "resizable-panel" ? /* @__PURE__ */ X(J, { children: [
792
+ /* @__PURE__ */ X(q, {
620
793
  defaultSize: "45%",
621
- children: [/* @__PURE__ */ J("p", {
794
+ children: [/* @__PURE__ */ Y("p", {
622
795
  className: "text-sm font-medium",
623
796
  children: "Preview panel"
624
- }), /* @__PURE__ */ J("p", {
797
+ }), /* @__PURE__ */ Y("p", {
625
798
  className: "mt-2 text-sm text-muted-foreground",
626
799
  children: "Resize this surface in product screens with long content."
627
800
  })]
628
801
  }),
629
- /* @__PURE__ */ J(G, {}),
630
- /* @__PURE__ */ Y(K, {
802
+ /* @__PURE__ */ Y(K, {}),
803
+ /* @__PURE__ */ X(q, {
631
804
  defaultSize: "55%",
632
- children: [/* @__PURE__ */ J("p", {
805
+ children: [/* @__PURE__ */ Y("p", {
633
806
  className: "text-sm font-medium",
634
807
  children: "Inspector panel"
635
- }), /* @__PURE__ */ J("p", {
808
+ }), /* @__PURE__ */ Y("p", {
636
809
  className: "mt-2 text-sm text-muted-foreground",
637
810
  children: "Use for side-by-side data and editing tools."
638
811
  })]
639
812
  })
640
- ] }) : X.slug === "saved-filter-select" ? /* @__PURE__ */ J(g, {
813
+ ] }) : Z.slug === "saved-filter-select" ? /* @__PURE__ */ Y(m, {
641
814
  value: "billing",
642
815
  filters: [
643
816
  {
@@ -659,74 +832,74 @@ function $(X, Z, Q, $, ne) {
659
832
  onValueChange: () => void 0,
660
833
  onSave: () => void 0,
661
834
  onDelete: () => void 0
662
- }) : X.slug === "section" ? /* @__PURE__ */ J(m, {
835
+ }) : Z.slug === "section" ? /* @__PURE__ */ Y(f, {
663
836
  title: "Revenue summary",
664
837
  description: "Section wrapper for grouped content and actions.",
665
- actions: /* @__PURE__ */ J(e, {
838
+ actions: /* @__PURE__ */ Y(e, {
666
839
  size: "sm",
667
840
  children: "Export"
668
841
  }),
669
842
  bordered: !0,
670
- children: /* @__PURE__ */ J("div", {
843
+ children: /* @__PURE__ */ Y("div", {
671
844
  className: "text-sm text-muted-foreground",
672
845
  children: "Place chart, filters, table or any route content inside."
673
846
  })
674
- }) : X.category === "Forms" ? /* @__PURE__ */ Y("div", {
847
+ }) : Z.category === "Forms" ? /* @__PURE__ */ X("div", {
675
848
  className: "grid gap-3",
676
- children: [/* @__PURE__ */ J(r, {
849
+ children: [/* @__PURE__ */ Y(r, {
677
850
  value: Q.textValue,
678
851
  onChange: (e) => $({ textValue: e.currentTarget.value }),
679
- placeholder: `${X.title} preview`
680
- }), /* @__PURE__ */ J("p", {
852
+ placeholder: `${Z.title} preview`
853
+ }), /* @__PURE__ */ Y("p", {
681
854
  className: "text-sm text-muted-foreground",
682
855
  children: "Generic field preview for this form surface."
683
856
  })]
684
- }) : X.category === "Overlay" ? /* @__PURE__ */ Y("div", {
857
+ }) : Z.category === "Overlay" ? /* @__PURE__ */ X("div", {
685
858
  className: "grid gap-4 rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5",
686
- children: [/* @__PURE__ */ Y("div", {
859
+ children: [/* @__PURE__ */ X("div", {
687
860
  className: "flex items-center justify-between gap-4",
688
- children: [/* @__PURE__ */ Y("div", { children: [/* @__PURE__ */ J("p", {
861
+ children: [/* @__PURE__ */ X("div", { children: [/* @__PURE__ */ Y("p", {
689
862
  className: "text-sm font-semibold text-[color:var(--aui-page-foreground)]",
690
- children: X.title
691
- }), /* @__PURE__ */ J("p", {
863
+ children: Z.title
864
+ }), /* @__PURE__ */ Y("p", {
692
865
  className: "mt-2 max-w-xl text-sm leading-6 text-[color:var(--aui-page-muted)]",
693
866
  children: "Overlay surfaces should stay compact, focused, and secondary to the route behind them."
694
- })] }), /* @__PURE__ */ J(o, {
867
+ })] }), /* @__PURE__ */ Y(o, {
695
868
  variant: "outline",
696
869
  children: "Overlay"
697
870
  })]
698
- }), /* @__PURE__ */ J("div", {
871
+ }), /* @__PURE__ */ Y("div", {
699
872
  className: "rounded-2xl border border-dashed border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4",
700
- children: /* @__PURE__ */ Y("div", {
873
+ children: /* @__PURE__ */ X("div", {
701
874
  className: "flex flex-wrap items-center justify-end gap-2",
702
875
  children: [
703
- /* @__PURE__ */ J(e, {
876
+ /* @__PURE__ */ Y(e, {
704
877
  variant: "ghost",
705
878
  children: "Cancel"
706
879
  }),
707
- /* @__PURE__ */ J(e, {
880
+ /* @__PURE__ */ Y(e, {
708
881
  variant: "outline",
709
882
  children: "Save draft"
710
883
  }),
711
- /* @__PURE__ */ J(e, { children: "Confirm" })
884
+ /* @__PURE__ */ Y(e, { children: "Confirm" })
712
885
  ]
713
886
  })
714
887
  })]
715
- }) : X.category === "Data Display" ? /* @__PURE__ */ Y("div", {
888
+ }) : Z.category === "Data Display" ? /* @__PURE__ */ X("div", {
716
889
  className: "grid gap-4 rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5",
717
- children: [/* @__PURE__ */ Y("div", {
890
+ children: [/* @__PURE__ */ X("div", {
718
891
  className: "flex items-center justify-between gap-4",
719
- children: [/* @__PURE__ */ Y("div", { children: [/* @__PURE__ */ J("p", {
892
+ children: [/* @__PURE__ */ X("div", { children: [/* @__PURE__ */ Y("p", {
720
893
  className: "text-lg font-semibold",
721
- children: X.title
722
- }), /* @__PURE__ */ J("p", {
894
+ children: Z.title
895
+ }), /* @__PURE__ */ Y("p", {
723
896
  className: "mt-1 text-sm text-muted-foreground",
724
897
  children: "Display surfaces should prioritize readable values, compact metadata, and clear scanning order."
725
- })] }), /* @__PURE__ */ J(o, {
898
+ })] }), /* @__PURE__ */ Y(o, {
726
899
  variant: "outline",
727
- children: ne
900
+ children: de
728
901
  })]
729
- }), /* @__PURE__ */ J("div", {
902
+ }), /* @__PURE__ */ Y("div", {
730
903
  className: "grid gap-3 md:grid-cols-3",
731
904
  children: [
732
905
  {
@@ -744,40 +917,40 @@ function $(X, Z, Q, $, ne) {
744
917
  value: "Live",
745
918
  note: "One concise badge or tone"
746
919
  }
747
- ].map((e) => /* @__PURE__ */ Y("div", {
920
+ ].map((e) => /* @__PURE__ */ X("div", {
748
921
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3",
749
922
  children: [
750
- /* @__PURE__ */ J("p", {
923
+ /* @__PURE__ */ Y("p", {
751
924
  className: "text-xs uppercase tracking-[0.18em] text-muted-foreground",
752
925
  children: e.label
753
926
  }),
754
- /* @__PURE__ */ J("p", {
927
+ /* @__PURE__ */ Y("p", {
755
928
  className: "mt-2 text-lg font-semibold text-[color:var(--aui-page-foreground)]",
756
929
  children: e.value
757
930
  }),
758
- /* @__PURE__ */ J("p", {
931
+ /* @__PURE__ */ Y("p", {
759
932
  className: "mt-1 text-sm text-muted-foreground",
760
933
  children: e.note
761
934
  })
762
935
  ]
763
936
  }, e.label))
764
937
  })]
765
- }) : /* @__PURE__ */ J("div", {
938
+ }) : /* @__PURE__ */ Y("div", {
766
939
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5",
767
- children: /* @__PURE__ */ Y("div", {
940
+ children: /* @__PURE__ */ X("div", {
768
941
  className: "flex items-center justify-between gap-4",
769
- children: [/* @__PURE__ */ Y("div", { children: [/* @__PURE__ */ J("p", {
942
+ children: [/* @__PURE__ */ X("div", { children: [/* @__PURE__ */ Y("p", {
770
943
  className: "text-lg font-semibold",
771
- children: X.title
772
- }), /* @__PURE__ */ J("p", {
944
+ children: Z.title
945
+ }), /* @__PURE__ */ Y("p", {
773
946
  className: "mt-1 text-sm text-muted-foreground",
774
947
  children: "Neutral starter preview for this surface. Copy it into your app, then shape the final state with your real data and props."
775
- })] }), /* @__PURE__ */ J(o, {
948
+ })] }), /* @__PURE__ */ Y(o, {
776
949
  variant: "outline",
777
- children: X.category
950
+ children: Z.category
778
951
  })]
779
952
  })
780
953
  });
781
954
  }
782
955
  //#endregion
783
- export { X as createGenericShowcaseDemo };
956
+ export { Z as createGenericShowcaseDemo };