tembro 3.1.14 → 3.1.16

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 (45) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/components/modern/resizable-panel.d.ts +1 -1
  3. package/dist/components/patterns/form-builder.d.ts +9 -4
  4. package/dist/showcase/package-meta.d.ts +2 -2
  5. package/dist/src/components/display/status-legend.cjs +1 -1
  6. package/dist/src/components/display/status-legend.js +4 -4
  7. package/dist/src/components/modern/resizable-panel.cjs +1 -1
  8. package/dist/src/components/modern/resizable-panel.js +4 -4
  9. package/dist/src/components/notifications/notification-center.cjs +1 -1
  10. package/dist/src/components/notifications/notification-center.js +10 -10
  11. package/dist/src/components/patterns/detail-layout.cjs +1 -1
  12. package/dist/src/components/patterns/detail-layout.js +1 -1
  13. package/dist/src/components/patterns/form-builder.cjs +1 -1
  14. package/dist/src/components/patterns/form-builder.js +6 -6
  15. package/dist/src/components/patterns/resource-detail-page.cjs +1 -1
  16. package/dist/src/components/patterns/resource-detail-page.js +1 -1
  17. package/dist/src/components/patterns/resource-page.cjs +1 -1
  18. package/dist/src/components/patterns/resource-page.js +1 -1
  19. package/dist/src/components/ui/card/index.cjs +1 -1
  20. package/dist/src/components/ui/card/index.js +1 -0
  21. package/dist/src/showcase/package-meta.cjs +1 -1
  22. package/dist/src/showcase/package-meta.js +1 -1
  23. package/dist/src/showcase/registry-specific.cjs +1 -1
  24. package/dist/src/showcase/registry-specific.js +281 -233
  25. package/dist/src/showcase/site-data.cjs +1 -1
  26. package/dist/src/showcase/site-data.js +1 -1
  27. package/dist/src/showcase/tembro-registry.json.cjs +1 -1
  28. package/dist/src/showcase/tembro-registry.json.js +1 -1
  29. package/package.json +1 -1
  30. package/packages/cli/dist/index.cjs +1 -1
  31. package/packages/cli/vendor/src/components/display/status-legend.tsx +4 -4
  32. package/packages/cli/vendor/src/components/modern/resizable-panel.tsx +1 -1
  33. package/packages/cli/vendor/src/components/notifications/notification-center.tsx +11 -11
  34. package/packages/cli/vendor/src/components/patterns/detail-layout.tsx +1 -1
  35. package/packages/cli/vendor/src/components/patterns/form-builder.tsx +30 -30
  36. package/packages/cli/vendor/src/components/patterns/resource-detail-page.tsx +1 -1
  37. package/packages/cli/vendor/src/components/patterns/resource-page.tsx +1 -1
  38. package/packages/cli/vendor/src/components/ui/card/index.tsx +1 -0
  39. package/packages/cli/vendor/src/showcase/package-meta.ts +1 -1
  40. package/packages/cli/vendor/src/showcase/registry-specific.tsx +11 -1
  41. package/packages/cli/vendor/src/showcase/tembro-registry.json +1 -1
  42. package/packages/cli/vendor/templates/showcase/src/showcase/layout/HeroSection.tsx +2 -2
  43. package/packages/cli/vendor/templates/showcase/src/showcase/layout/WorkbenchSidebar.tsx +1 -1
  44. package/packages/cli/vendor/templates/styles/globals.css +60 -40
  45. package/registry.json +1 -1
@@ -13,33 +13,33 @@ import { Drawer as f } from "../components/overlay/drawer.js";
13
13
  import { AsyncSelect as p } from "../components/inputs/async-select.js";
14
14
  import { OtpInput as m } from "../components/inputs/otp-input.js";
15
15
  import { Rating as h } from "../components/inputs/rating.js";
16
- import { RangeSlider as te, Slider as g } from "../components/inputs/slider.js";
17
- import { TagInput as _ } from "../components/inputs/tag-input.js";
18
- import { Calendar as v } from "../components/calendar/calendar.js";
19
- import { Alert as ne } from "../components/feedback/alert.js";
20
- import { PageState as re } from "../components/feedback/page-state.js";
21
- import { DescriptionList as y } from "../components/display/description-list.js";
22
- import { Avatar as b } from "../components/display/avatar.js";
23
- import { List as x } from "../components/display/list.js";
24
- import { Progress as S } from "../components/display/progress.js";
25
- import { StatusDot as C } from "../components/display/status-dot.js";
26
- import { StatusLegend as w } from "../components/display/status-legend.js";
27
- import { Timeline as T } from "../components/display/timeline.js";
28
- import { InfoCard as E } from "../components/display/info-card.js";
29
- import { FileUpload as D } from "../components/upload/file-upload.js";
30
- import { ImageUpload as O } from "../components/upload/image-upload.js";
31
- import { FormBuilder as k, customField as A, formSection as j } from "../components/patterns/form-builder.js";
32
- import { ResourcePage as M, ResourcePageSection as N } from "../components/patterns/resource-page.js";
33
- import { ResourceDetailPage as P } from "../components/patterns/resource-detail-page.js";
34
- import { Stepper as F } from "../components/wizard/stepper.js";
35
- import { Wizard as I } from "../components/wizard/wizard.js";
36
- import { PreviewFileDropzone as L, PreviewStatCard as R } from "./preview-compositions.js";
16
+ import { RangeSlider as g, Slider as _ } from "../components/inputs/slider.js";
17
+ import { TagInput as te } from "../components/inputs/tag-input.js";
18
+ import { Calendar as ne } from "../components/calendar/calendar.js";
19
+ import { Alert as re } from "../components/feedback/alert.js";
20
+ import { PageState as ie } from "../components/feedback/page-state.js";
21
+ import { DescriptionList as v } from "../components/display/description-list.js";
22
+ import { Avatar as ae } from "../components/display/avatar.js";
23
+ import { List as y } from "../components/display/list.js";
24
+ import { Progress as b } from "../components/display/progress.js";
25
+ import { StatusDot as x } from "../components/display/status-dot.js";
26
+ import { StatusLegend as S } from "../components/display/status-legend.js";
27
+ import { Timeline as C } from "../components/display/timeline.js";
28
+ import { InfoCard as w } from "../components/display/info-card.js";
29
+ import { FileUpload as T } from "../components/upload/file-upload.js";
30
+ import { ImageUpload as E } from "../components/upload/image-upload.js";
31
+ import { FormBuilder as D, customField as O, formSection as k, inputField as A, selectField as j, switchField as M, textareaField as N } from "../components/patterns/form-builder.js";
32
+ import { ResourcePage as P, ResourcePageSection as F } from "../components/patterns/resource-page.js";
33
+ import { ResourceDetailPage as I } from "../components/patterns/resource-detail-page.js";
34
+ import { Stepper as L } from "../components/wizard/stepper.js";
35
+ import { Wizard as R } from "../components/wizard/wizard.js";
36
+ import { PreviewFileDropzone as z, PreviewStatCard as B } from "./preview-compositions.js";
37
37
  import "react";
38
- import { ArchiveIcon as z, BellIcon as B, ChevronRightIcon as V, DownloadIcon as H, FilterIcon as U, LayoutDashboardIcon as W, MoreHorizontalIcon as G, UploadCloudIcon as K } from "lucide-react";
39
- import { jsx as q, jsxs as J } from "react/jsx-runtime";
40
- import { useForm as Y } from "react-hook-form";
38
+ import { ArchiveIcon as V, BellIcon as H, ChevronRightIcon as U, DownloadIcon as W, FilterIcon as G, LayoutDashboardIcon as K, MoreHorizontalIcon as q, UploadCloudIcon as J } from "lucide-react";
39
+ import { jsx as Y, jsxs as X } from "react/jsx-runtime";
40
+ import { useForm as oe } from "react-hook-form";
41
41
  //#region src/showcase/registry-specific.tsx
42
- var X = [
42
+ var se = [
43
43
  Z("alert-dialog", "AlertDialog", "overlay", "Destructive confirmation dialog with loading-ready action states."),
44
44
  Z("drawer", "Drawer", "overlay", "Side panel for contextual details without leaving the page."),
45
45
  Z("pagination", "Pagination", "navigation", "Controlled page navigation with edge buttons and active state."),
@@ -67,15 +67,15 @@ var X = [
67
67
  Z("wizard", "Wizard", "wizard", "Stepper, content and footer controls combined into one workflow."),
68
68
  Z("resource-page", "ResourcePage", "patterns", "Full resource index page shell for admin dashboards."),
69
69
  Z("resource-detail-page", "ResourceDetailPage", "patterns", "Detail page shell with title, metadata and sections.")
70
- ], ie = Object.fromEntries(X.map((e) => [e.slug, {
71
- mock: ae(e),
72
- Showcase: (t) => /* @__PURE__ */ q(se, {
70
+ ], ce = Object.fromEntries(se.map((e) => [e.slug, {
71
+ mock: le(e),
72
+ Showcase: (t) => /* @__PURE__ */ Y(de, {
73
73
  definition: e,
74
74
  ...t
75
75
  })
76
76
  }]));
77
77
  function Z(e, t, n, r, i = t) {
78
- let a = Se(e);
78
+ let a = Ee(e);
79
79
  return {
80
80
  slug: e,
81
81
  title: a,
@@ -97,77 +97,77 @@ function Z(e, t, n, r, i = t) {
97
97
  }]
98
98
  };
99
99
  }
100
- function ae(e) {
100
+ function le(e) {
101
101
  return {
102
102
  cliCommand: `npx tembro add ${e.slug}`,
103
- code: oe(e),
103
+ code: ue(e),
104
104
  highlights: e.highlights,
105
105
  scenarios: e.scenarios,
106
106
  capabilityNotes: [`Add ${e.slug} into your local source with the CLI.`, "Import the public component surface from `tembro` in app code."]
107
107
  };
108
108
  }
109
- function oe(e) {
109
+ function ue(e) {
110
110
  let t = e.importName ?? e.component;
111
111
  return `import { ${t} } from "tembro"\n\nexport function Demo() {\n return <${t} />\n}`;
112
112
  }
113
- function se({ definition: e, state: t, setState: n }) {
114
- return /* @__PURE__ */ J("div", {
113
+ function de({ definition: e, state: t, setState: n }) {
114
+ return /* @__PURE__ */ X("div", {
115
115
  className: "space-y-5",
116
- children: [/* @__PURE__ */ J("header", {
116
+ children: [/* @__PURE__ */ X("header", {
117
117
  className: "space-y-2",
118
- children: [/* @__PURE__ */ q("p", {
118
+ children: [/* @__PURE__ */ Y("p", {
119
119
  className: "text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted",
120
120
  children: e.component
121
- }), /* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("h3", {
121
+ }), /* @__PURE__ */ X("div", { children: [/* @__PURE__ */ Y("h3", {
122
122
  className: "aui-text-strong text-2xl font-semibold tracking-tight",
123
123
  children: e.title
124
- }), /* @__PURE__ */ q("p", {
124
+ }), /* @__PURE__ */ Y("p", {
125
125
  className: "aui-text-muted mt-2 max-w-2xl text-sm leading-6",
126
126
  children: e.summary
127
127
  })] })]
128
- }), /* @__PURE__ */ q("div", {
128
+ }), /* @__PURE__ */ Y("div", {
129
129
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4 sm:p-5",
130
- children: ce(e, t, n)
130
+ children: fe(e, t, n)
131
131
  })]
132
132
  });
133
133
  }
134
- function ce(e, t, n) {
135
- return e.kind === "inputs" ? /* @__PURE__ */ q(le, {
134
+ function fe(e, t, n) {
135
+ return e.kind === "inputs" ? /* @__PURE__ */ Y(pe, {
136
136
  slug: e.slug,
137
137
  state: t,
138
138
  setState: n
139
- }) : e.kind === "form" ? /* @__PURE__ */ q(ue, {
139
+ }) : e.kind === "form" ? /* @__PURE__ */ Y(me, {
140
140
  state: t,
141
141
  setState: n
142
- }) : e.kind === "overlay" ? /* @__PURE__ */ q(de, { slug: e.slug }) : e.kind === "navigation" ? /* @__PURE__ */ q(fe, { slug: e.slug }) : e.kind === "feedback" ? /* @__PURE__ */ q(pe, { slug: e.slug }) : e.kind === "display" ? /* @__PURE__ */ q(me, { slug: e.slug }) : e.kind === "actions" ? /* @__PURE__ */ q(Q, {
142
+ }) : e.kind === "overlay" ? /* @__PURE__ */ Y(he, { slug: e.slug }) : e.kind === "navigation" ? /* @__PURE__ */ Y(ge, { slug: e.slug }) : e.kind === "feedback" ? /* @__PURE__ */ Y(_e, { slug: e.slug }) : e.kind === "display" ? /* @__PURE__ */ Y(ve, { slug: e.slug }) : e.kind === "actions" ? /* @__PURE__ */ Y(ye, {
143
143
  slug: e.slug,
144
144
  state: t,
145
145
  setState: n
146
- }) : e.kind === "layout" ? /* @__PURE__ */ q(he, { slug: e.slug }) : e.kind === "data-table" ? /* @__PURE__ */ q(ge, { slug: e.slug }) : e.kind === "calendar" ? /* @__PURE__ */ q(_e, {}) : e.kind === "upload" ? /* @__PURE__ */ q(ve, { slug: e.slug }) : e.kind === "wizard" ? /* @__PURE__ */ q(ye, { slug: e.slug }) : e.kind === "patterns" ? /* @__PURE__ */ q(be, { slug: e.slug }) : null;
146
+ }) : e.kind === "layout" ? /* @__PURE__ */ Y(be, { slug: e.slug }) : e.kind === "data-table" ? /* @__PURE__ */ Y(xe, { slug: e.slug }) : e.kind === "calendar" ? /* @__PURE__ */ Y(Q, {}) : e.kind === "upload" ? /* @__PURE__ */ Y(Se, { slug: e.slug }) : e.kind === "wizard" ? /* @__PURE__ */ Y(Ce, { slug: e.slug }) : e.kind === "patterns" ? /* @__PURE__ */ Y(we, { slug: e.slug }) : null;
147
147
  }
148
- function le({ slug: e, state: t, setState: n }) {
148
+ function pe({ slug: e, state: t, setState: n }) {
149
149
  let i = t.textValue, a = (e) => n({ textValue: e });
150
- if (e === "slider") return /* @__PURE__ */ q(g, {
150
+ if (e === "slider") return /* @__PURE__ */ Y(_, {
151
151
  label: "Density",
152
152
  description: "Tune content density.",
153
153
  defaultValue: 64,
154
154
  showValue: !0
155
155
  });
156
- if (e === "range-slider") return /* @__PURE__ */ q(te, {
156
+ if (e === "range-slider") return /* @__PURE__ */ Y(g, {
157
157
  label: "Revenue range",
158
158
  description: "Filter between two values.",
159
159
  defaultValue: [20, 80],
160
160
  showValue: !0
161
161
  });
162
- if (e === "rating") return /* @__PURE__ */ q(h, {
162
+ if (e === "rating") return /* @__PURE__ */ Y(h, {
163
163
  defaultValue: 4,
164
164
  labels: { clear: "Reset" }
165
165
  });
166
- if (e === "otp-input") return /* @__PURE__ */ q(m, {
166
+ if (e === "otp-input") return /* @__PURE__ */ Y(m, {
167
167
  value: i.replace(/\D/g, "").slice(0, 6),
168
168
  onValueChange: a
169
169
  });
170
- if (e === "tag-input") return /* @__PURE__ */ q(_, {
170
+ if (e === "tag-input") return /* @__PURE__ */ Y(te, {
171
171
  defaultValue: [
172
172
  "dashboard",
173
173
  "beta",
@@ -193,9 +193,9 @@ function le({ slug: e, state: t, setState: n }) {
193
193
  description: "Billing operations"
194
194
  }
195
195
  ];
196
- return /* @__PURE__ */ J("div", {
196
+ return /* @__PURE__ */ X("div", {
197
197
  className: "grid gap-4",
198
- children: [/* @__PURE__ */ q(p, {
198
+ children: [/* @__PURE__ */ Y(p, {
199
199
  value: "north",
200
200
  onValueChange: () => void 0,
201
201
  loadOptions: async (t) => {
@@ -205,18 +205,18 @@ function le({ slug: e, state: t, setState: n }) {
205
205
  defaultOptions: e,
206
206
  minSearchLength: 1,
207
207
  clearable: !0
208
- }), /* @__PURE__ */ J("div", {
208
+ }), /* @__PURE__ */ X("div", {
209
209
  className: "grid gap-3 md:grid-cols-3",
210
210
  children: [
211
- /* @__PURE__ */ q("div", {
211
+ /* @__PURE__ */ Y("div", {
212
212
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
213
213
  children: "Remote-ready select surface."
214
214
  }),
215
- /* @__PURE__ */ q("div", {
215
+ /* @__PURE__ */ Y("div", {
216
216
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
217
217
  children: "Hydration and clear behavior stay aligned."
218
218
  }),
219
- /* @__PURE__ */ q("div", {
219
+ /* @__PURE__ */ Y("div", {
220
220
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
221
221
  children: "Good for large or changing datasets."
222
222
  })
@@ -224,45 +224,45 @@ function le({ slug: e, state: t, setState: n }) {
224
224
  })]
225
225
  });
226
226
  }
227
- return /* @__PURE__ */ q(r, {
227
+ return /* @__PURE__ */ Y(r, {
228
228
  value: i,
229
229
  onChange: (e) => n({ textValue: e.currentTarget.value }),
230
230
  placeholder: "Unified input"
231
231
  });
232
232
  }
233
- function ue({ state: e, setState: t }) {
234
- return /* @__PURE__ */ J("div", {
233
+ function me({ state: e, setState: t }) {
234
+ return /* @__PURE__ */ X("div", {
235
235
  className: "grid gap-4 md:grid-cols-2",
236
- children: [/* @__PURE__ */ J("label", {
236
+ children: [/* @__PURE__ */ X("label", {
237
237
  className: "grid gap-2",
238
238
  children: [
239
- /* @__PURE__ */ q("span", {
239
+ /* @__PURE__ */ Y("span", {
240
240
  className: "text-sm font-medium aui-text-strong",
241
241
  children: "Email address"
242
242
  }),
243
- /* @__PURE__ */ q(r, {
243
+ /* @__PURE__ */ Y(r, {
244
244
  value: e.textValue,
245
245
  onChange: (e) => t({ textValue: e.currentTarget.value })
246
246
  }),
247
- /* @__PURE__ */ q("span", {
247
+ /* @__PURE__ */ Y("span", {
248
248
  className: "text-xs aui-text-muted",
249
249
  children: "Form wrappers keep label, hint and error spacing consistent."
250
250
  })
251
251
  ]
252
- }), /* @__PURE__ */ J("label", {
252
+ }), /* @__PURE__ */ X("label", {
253
253
  className: "grid gap-2",
254
254
  children: [
255
- /* @__PURE__ */ q("span", {
255
+ /* @__PURE__ */ Y("span", {
256
256
  className: "text-sm font-medium aui-text-strong",
257
257
  children: "Status"
258
258
  }),
259
- /* @__PURE__ */ q(r, {
259
+ /* @__PURE__ */ Y(r, {
260
260
  type: "search",
261
261
  value: "Active customers",
262
262
  resultCount: 7,
263
263
  readOnly: !0
264
264
  }),
265
- /* @__PURE__ */ q("span", {
265
+ /* @__PURE__ */ Y("span", {
266
266
  className: "text-xs text-emerald-500",
267
267
  children: "Ready to submit"
268
268
  })
@@ -270,24 +270,24 @@ function ue({ state: e, setState: t }) {
270
270
  })]
271
271
  });
272
272
  }
273
- function de({ slug: t }) {
274
- return t === "alert-dialog" ? /* @__PURE__ */ q(d, {
273
+ function he({ slug: t }) {
274
+ return t === "alert-dialog" ? /* @__PURE__ */ Y(d, {
275
275
  open: !1,
276
276
  title: "Archive invoice?",
277
277
  description: "This keeps the invoice readable but removes it from active queues.",
278
- children: /* @__PURE__ */ q(e, {
278
+ children: /* @__PURE__ */ Y(e, {
279
279
  variant: "destructive",
280
280
  children: "Open alert"
281
281
  })
282
- }) : t === "drawer" ? /* @__PURE__ */ q(f, {
282
+ }) : t === "drawer" ? /* @__PURE__ */ Y(f, {
283
283
  open: !1,
284
- trigger: /* @__PURE__ */ q(e, {
284
+ trigger: /* @__PURE__ */ Y(e, {
285
285
  variant: "outline",
286
286
  children: "Open drawer"
287
287
  }),
288
288
  title: "Customer details",
289
289
  description: "Side panel for fast inspection.",
290
- children: /* @__PURE__ */ q(y, { items: [{
290
+ children: /* @__PURE__ */ Y(v, { items: [{
291
291
  key: "plan",
292
292
  label: "Plan",
293
293
  value: "Scale"
@@ -296,43 +296,43 @@ function de({ slug: t }) {
296
296
  label: "Owner",
297
297
  value: "Tembro"
298
298
  }] })
299
- }) : /* @__PURE__ */ J("div", {
299
+ }) : /* @__PURE__ */ X("div", {
300
300
  className: "flex flex-wrap items-center justify-end gap-2 rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4",
301
301
  children: [
302
- /* @__PURE__ */ q(e, {
302
+ /* @__PURE__ */ Y(e, {
303
303
  variant: "ghost",
304
304
  children: "Cancel"
305
305
  }),
306
- /* @__PURE__ */ q(e, {
306
+ /* @__PURE__ */ Y(e, {
307
307
  variant: "outline",
308
308
  children: "Save draft"
309
309
  }),
310
- /* @__PURE__ */ q(e, { children: "Publish" })
310
+ /* @__PURE__ */ Y(e, { children: "Publish" })
311
311
  ]
312
312
  });
313
313
  }
314
- function fe({ slug: e }) {
315
- return e === "pagination" ? /* @__PURE__ */ q(c, {
314
+ function ge({ slug: e }) {
315
+ return e === "pagination" ? /* @__PURE__ */ Y(c, {
316
316
  page: 3,
317
317
  pageCount: 9,
318
318
  onPageChange: () => void 0
319
- }) : /* @__PURE__ */ q(a, {
319
+ }) : /* @__PURE__ */ Y(a, {
320
320
  defaultValue: "overview",
321
- children: /* @__PURE__ */ J(o, {
321
+ children: /* @__PURE__ */ X(o, {
322
322
  variant: "pills",
323
323
  overflow: "wrap",
324
324
  children: [
325
- /* @__PURE__ */ q(s, {
325
+ /* @__PURE__ */ Y(s, {
326
326
  value: "overview",
327
327
  variant: "pills",
328
328
  children: "Overview"
329
329
  }),
330
- /* @__PURE__ */ q(s, {
330
+ /* @__PURE__ */ Y(s, {
331
331
  value: "usage",
332
332
  variant: "pills",
333
333
  children: "Usage"
334
334
  }),
335
- /* @__PURE__ */ q(s, {
335
+ /* @__PURE__ */ Y(s, {
336
336
  value: "api",
337
337
  variant: "pills",
338
338
  children: "API"
@@ -341,53 +341,53 @@ function fe({ slug: e }) {
341
341
  })
342
342
  });
343
343
  }
344
- function pe({ slug: t }) {
345
- return t === "alert" ? /* @__PURE__ */ q(ne, {
344
+ function _e({ slug: t }) {
345
+ return t === "alert" ? /* @__PURE__ */ Y(re, {
346
346
  tone: "warning",
347
347
  title: "Review needed",
348
348
  description: "Billing rules changed and one approval is pending.",
349
- action: /* @__PURE__ */ q(e, {
349
+ action: /* @__PURE__ */ Y(e, {
350
350
  size: "sm",
351
351
  children: "Open"
352
352
  })
353
- }) : t === "page-state" ? /* @__PURE__ */ q(re, {
353
+ }) : t === "page-state" ? /* @__PURE__ */ Y(ie, {
354
354
  title: "Workspace connected",
355
355
  description: "The route is ready to accept live data and team actions.",
356
356
  tone: "success",
357
- action: /* @__PURE__ */ q(e, {
357
+ action: /* @__PURE__ */ Y(e, {
358
358
  size: "sm",
359
359
  children: "Continue"
360
360
  })
361
- }) : /* @__PURE__ */ J("div", {
361
+ }) : /* @__PURE__ */ X("div", {
362
362
  className: "flex flex-wrap gap-2",
363
363
  children: [
364
- /* @__PURE__ */ q($, {
364
+ /* @__PURE__ */ Y($, {
365
365
  tone: "success",
366
366
  children: "Live"
367
367
  }),
368
- /* @__PURE__ */ q($, {
368
+ /* @__PURE__ */ Y($, {
369
369
  tone: "warning",
370
370
  children: "Needs review"
371
371
  }),
372
- /* @__PURE__ */ q($, {
372
+ /* @__PURE__ */ Y($, {
373
373
  tone: "danger",
374
374
  children: "Blocked"
375
375
  }),
376
- /* @__PURE__ */ q($, {
376
+ /* @__PURE__ */ Y($, {
377
377
  tone: "info",
378
378
  children: "Queued"
379
379
  })
380
380
  ]
381
381
  });
382
382
  }
383
- function me({ slug: t }) {
384
- return t === "progress" ? /* @__PURE__ */ q(S, {
383
+ function ve({ slug: t }) {
384
+ return t === "progress" ? /* @__PURE__ */ Y(b, {
385
385
  label: "Migration progress",
386
386
  description: "Production rollout",
387
387
  value: 68,
388
388
  tone: "success",
389
389
  showValue: !0
390
- }) : t === "timeline" ? /* @__PURE__ */ q(T, {
390
+ }) : t === "timeline" ? /* @__PURE__ */ Y(C, {
391
391
  items: [
392
392
  {
393
393
  key: "created",
@@ -413,7 +413,7 @@ function me({ slug: t }) {
413
413
  ],
414
414
  pending: !0,
415
415
  pendingLabel: "Paid"
416
- }) : t === "metric-card" || t === "stat-card" ? /* @__PURE__ */ q(R, {
416
+ }) : t === "metric-card" || t === "stat-card" ? /* @__PURE__ */ Y(B, {
417
417
  title: "Revenue",
418
418
  value: "$84.2k",
419
419
  description: "Compared with last month",
@@ -421,25 +421,25 @@ function me({ slug: t }) {
421
421
  value: "+12.4%",
422
422
  tone: "success"
423
423
  },
424
- icon: /* @__PURE__ */ q(W, {})
425
- }) : t === "status-dot" ? /* @__PURE__ */ J("div", {
424
+ icon: /* @__PURE__ */ Y(K, {})
425
+ }) : t === "status-dot" ? /* @__PURE__ */ X("div", {
426
426
  className: "grid gap-3",
427
427
  children: [
428
- /* @__PURE__ */ q(C, {
428
+ /* @__PURE__ */ Y(x, {
429
429
  tone: "success",
430
430
  pulse: !0,
431
431
  label: "API healthy"
432
432
  }),
433
- /* @__PURE__ */ q(C, {
433
+ /* @__PURE__ */ Y(x, {
434
434
  tone: "warning",
435
435
  label: "Sync delayed"
436
436
  }),
437
- /* @__PURE__ */ q(C, {
437
+ /* @__PURE__ */ Y(x, {
438
438
  tone: "danger",
439
439
  label: "Webhook failed"
440
440
  })
441
441
  ]
442
- }) : t === "notification-center" ? /* @__PURE__ */ q(x, { items: [
442
+ }) : t === "notification-center" ? /* @__PURE__ */ Y(y, { items: [
443
443
  {
444
444
  key: "1",
445
445
  title: "Build completed",
@@ -458,7 +458,7 @@ function me({ slug: t }) {
458
458
  description: "Package version is ready for release.",
459
459
  extra: "1h"
460
460
  }
461
- ] }) : t === "status-legend" ? /* @__PURE__ */ q(w, {
461
+ ] }) : t === "status-legend" ? /* @__PURE__ */ Y(S, {
462
462
  title: "Delivery states",
463
463
  description: "Explain what each state means and how often it appears.",
464
464
  orientation: "grid",
@@ -485,52 +485,52 @@ function me({ slug: t }) {
485
485
  count: 1
486
486
  }
487
487
  ]
488
- }) : t === "info-card" ? /* @__PURE__ */ J("div", {
488
+ }) : t === "info-card" ? /* @__PURE__ */ X("div", {
489
489
  className: "grid gap-4",
490
- children: [/* @__PURE__ */ q(E, {
490
+ children: [/* @__PURE__ */ Y(w, {
491
491
  eyebrow: "Summary",
492
492
  title: "Workspace",
493
493
  description: "Reusable card surface with header, actions and metadata.",
494
- actions: /* @__PURE__ */ q(e, {
494
+ actions: /* @__PURE__ */ Y(e, {
495
495
  size: "sm",
496
496
  variant: "outline",
497
497
  children: "Open"
498
498
  }),
499
499
  selected: !0,
500
- children: /* @__PURE__ */ q("p", {
500
+ children: /* @__PURE__ */ Y("p", {
501
501
  className: "aui-text-muted mt-2 text-sm",
502
502
  children: "Keep metadata, helper copy and compact actions in one reusable card surface."
503
503
  })
504
- }), /* @__PURE__ */ J("div", {
504
+ }), /* @__PURE__ */ X("div", {
505
505
  className: "grid gap-3 md:grid-cols-3",
506
506
  children: [
507
- /* @__PURE__ */ q("div", {
507
+ /* @__PURE__ */ Y("div", {
508
508
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
509
509
  children: "Vertical and horizontal layout support."
510
510
  }),
511
- /* @__PURE__ */ q("div", {
511
+ /* @__PURE__ */ Y("div", {
512
512
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
513
513
  children: "Selected and action-safe surfaces."
514
514
  }),
515
- /* @__PURE__ */ q("div", {
515
+ /* @__PURE__ */ Y("div", {
516
516
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
517
517
  children: "Useful for summary panels and detail sidebars."
518
518
  })
519
519
  ]
520
520
  })]
521
- }) : /* @__PURE__ */ q(E, {
521
+ }) : /* @__PURE__ */ Y(w, {
522
522
  title: "Azamat Jurayev",
523
523
  description: "Product designer and maintainer",
524
- media: /* @__PURE__ */ q(b, { name: "Azamat Jurayev" }),
525
- actions: /* @__PURE__ */ q(e, {
524
+ media: /* @__PURE__ */ Y(ae, { name: "Azamat Jurayev" }),
525
+ actions: /* @__PURE__ */ Y(e, {
526
526
  size: "sm",
527
527
  children: "Invite"
528
528
  })
529
529
  });
530
530
  }
531
- function Q({ slug: i, state: a, setState: o }) {
532
- return i === "filter-bar" ? /* @__PURE__ */ q(l, {
533
- search: /* @__PURE__ */ q(r, {
531
+ function ye({ slug: i, state: a, setState: o }) {
532
+ return i === "filter-bar" ? /* @__PURE__ */ Y(l, {
533
+ search: /* @__PURE__ */ Y(r, {
534
534
  type: "search",
535
535
  value: a.textValue,
536
536
  onValueChange: (e) => o({ textValue: e }),
@@ -538,16 +538,16 @@ function Q({ slug: i, state: a, setState: o }) {
538
538
  }),
539
539
  activeCount: 2,
540
540
  onReset: () => o({ textValue: "" }),
541
- filters: /* @__PURE__ */ J(e, {
541
+ filters: /* @__PURE__ */ X(e, {
542
542
  variant: "outline",
543
543
  size: "sm",
544
- children: [/* @__PURE__ */ q(U, { "data-icon": "inline-start" }), "Status"]
544
+ children: [/* @__PURE__ */ Y(G, { "data-icon": "inline-start" }), "Status"]
545
545
  }),
546
- actions: /* @__PURE__ */ q(e, {
546
+ actions: /* @__PURE__ */ Y(e, {
547
547
  size: "sm",
548
548
  children: "Export"
549
549
  })
550
- }) : i === "button-group" ? /* @__PURE__ */ q(n, { items: [
550
+ }) : i === "button-group" ? /* @__PURE__ */ Y(n, { items: [
551
551
  {
552
552
  key: "day",
553
553
  label: "Day"
@@ -560,7 +560,7 @@ function Q({ slug: i, state: a, setState: o }) {
560
560
  key: "month",
561
561
  label: "Month"
562
562
  }
563
- ] }) : i === "quick-action-grid" ? /* @__PURE__ */ q(ee, {
563
+ ] }) : i === "quick-action-grid" ? /* @__PURE__ */ Y(ee, {
564
564
  columns: 3,
565
565
  items: [
566
566
  {
@@ -582,9 +582,9 @@ function Q({ slug: i, state: a, setState: o }) {
582
582
  badge: "S"
583
583
  }
584
584
  ]
585
- }) : i === "saved-filter-select" ? /* @__PURE__ */ J("div", {
585
+ }) : i === "saved-filter-select" ? /* @__PURE__ */ X("div", {
586
586
  className: "grid gap-4",
587
- children: [/* @__PURE__ */ q(u, {
587
+ children: [/* @__PURE__ */ Y(u, {
588
588
  value: "billing",
589
589
  onValueChange: () => void 0,
590
590
  onSave: () => void 0,
@@ -606,89 +606,89 @@ function Q({ slug: i, state: a, setState: o }) {
606
606
  description: "Assigned records only"
607
607
  }
608
608
  ]
609
- }), /* @__PURE__ */ J("div", {
609
+ }), /* @__PURE__ */ X("div", {
610
610
  className: "grid gap-3 md:grid-cols-3",
611
611
  children: [
612
- /* @__PURE__ */ q("div", {
612
+ /* @__PURE__ */ Y("div", {
613
613
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
614
614
  children: "Named view switching for table routes."
615
615
  }),
616
- /* @__PURE__ */ q("div", {
616
+ /* @__PURE__ */ Y("div", {
617
617
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
618
618
  children: "Delete action stays isolated from parent selection."
619
619
  }),
620
- /* @__PURE__ */ q("div", {
620
+ /* @__PURE__ */ Y("div", {
621
621
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
622
622
  children: "Useful in finance, ops and admin dashboards."
623
623
  })
624
624
  ]
625
625
  })]
626
- }) : /* @__PURE__ */ J("div", {
626
+ }) : /* @__PURE__ */ X("div", {
627
627
  className: "flex items-center justify-between rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4",
628
- children: [/* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("p", {
628
+ children: [/* @__PURE__ */ X("div", { children: [/* @__PURE__ */ Y("p", {
629
629
  className: "font-medium aui-text-strong",
630
630
  children: "Invoice #4821"
631
- }), /* @__PURE__ */ q("p", {
631
+ }), /* @__PURE__ */ Y("p", {
632
632
  className: "text-sm aui-text-muted",
633
633
  children: "Pending approval"
634
- })] }), /* @__PURE__ */ q(t, {
634
+ })] }), /* @__PURE__ */ Y(t, {
635
635
  label: "Actions",
636
636
  actions: [
637
637
  {
638
638
  key: "open",
639
639
  label: "Open",
640
- icon: /* @__PURE__ */ q(V, { className: "size-4" })
640
+ icon: /* @__PURE__ */ Y(U, { className: "size-4" })
641
641
  },
642
642
  {
643
643
  key: "download",
644
644
  label: "Download",
645
- icon: /* @__PURE__ */ q(H, { className: "size-4" })
645
+ icon: /* @__PURE__ */ Y(W, { className: "size-4" })
646
646
  },
647
647
  {
648
648
  key: "archive",
649
649
  label: "Archive",
650
- icon: /* @__PURE__ */ q(z, { className: "size-4" }),
650
+ icon: /* @__PURE__ */ Y(V, { className: "size-4" }),
651
651
  destructive: !0
652
652
  }
653
653
  ],
654
- trigger: /* @__PURE__ */ q(e, {
654
+ trigger: /* @__PURE__ */ Y(e, {
655
655
  variant: "outline",
656
656
  size: "icon-sm",
657
657
  "aria-label": "Open actions",
658
- children: /* @__PURE__ */ q(G, {})
658
+ children: /* @__PURE__ */ Y(q, {})
659
659
  })
660
660
  })]
661
661
  });
662
662
  }
663
- function he({ slug: t }) {
664
- return t === "app-header" ? /* @__PURE__ */ J("div", {
663
+ function be({ slug: t }) {
664
+ return t === "app-header" ? /* @__PURE__ */ X("div", {
665
665
  className: "flex flex-wrap items-center justify-between gap-3 rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-3",
666
666
  children: [
667
- /* @__PURE__ */ J("div", {
667
+ /* @__PURE__ */ X("div", {
668
668
  className: "flex items-center gap-2",
669
- children: [/* @__PURE__ */ q(W, { className: "size-4" }), /* @__PURE__ */ q("span", {
669
+ children: [/* @__PURE__ */ Y(K, { className: "size-4" }), /* @__PURE__ */ Y("span", {
670
670
  className: "font-medium",
671
671
  children: "Dashboard"
672
672
  })]
673
673
  }),
674
- /* @__PURE__ */ q(i, {
674
+ /* @__PURE__ */ Y(i, {
675
675
  variant: "secondary",
676
676
  children: "Preview"
677
677
  }),
678
- /* @__PURE__ */ J("div", {
678
+ /* @__PURE__ */ X("div", {
679
679
  className: "flex items-center gap-2",
680
- children: [/* @__PURE__ */ q(e, {
680
+ children: [/* @__PURE__ */ Y(e, {
681
681
  variant: "ghost",
682
682
  size: "icon-sm",
683
683
  "aria-label": "Notifications",
684
- children: /* @__PURE__ */ q(B, {})
685
- }), /* @__PURE__ */ q(e, {
684
+ children: /* @__PURE__ */ Y(H, {})
685
+ }), /* @__PURE__ */ Y(e, {
686
686
  size: "sm",
687
687
  children: "Deploy"
688
688
  })]
689
689
  })
690
690
  ]
691
- }) : /* @__PURE__ */ q(R, {
691
+ }) : /* @__PURE__ */ Y(B, {
692
692
  title: "Revenue",
693
693
  value: "$84.2k",
694
694
  description: "Compared with last month",
@@ -699,78 +699,78 @@ function he({ slug: t }) {
699
699
  helperText: "StatCard keeps KPI, helper text and trend in one compact tile."
700
700
  });
701
701
  }
702
- function ge({ slug: t }) {
703
- return /* @__PURE__ */ J("div", {
702
+ function xe({ slug: t }) {
703
+ return /* @__PURE__ */ X("div", {
704
704
  className: "overflow-hidden rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)]",
705
705
  children: [
706
- /* @__PURE__ */ J("div", {
706
+ /* @__PURE__ */ X("div", {
707
707
  className: "flex flex-wrap items-center justify-between gap-3 border-b border-[color:var(--aui-divider)] p-3",
708
- children: [/* @__PURE__ */ q(r, {
708
+ children: [/* @__PURE__ */ Y(r, {
709
709
  type: "search",
710
710
  value: "",
711
711
  placeholder: "Search rows...",
712
712
  className: "max-w-xs",
713
713
  readOnly: !0
714
- }), /* @__PURE__ */ J("div", {
714
+ }), /* @__PURE__ */ X("div", {
715
715
  className: "flex gap-2",
716
- children: [/* @__PURE__ */ J(e, {
716
+ children: [/* @__PURE__ */ X(e, {
717
717
  variant: "outline",
718
718
  size: "sm",
719
- children: [/* @__PURE__ */ q(U, { "data-icon": "inline-start" }), "Filters"]
720
- }), /* @__PURE__ */ q(e, {
719
+ children: [/* @__PURE__ */ Y(G, { "data-icon": "inline-start" }), "Filters"]
720
+ }), /* @__PURE__ */ Y(e, {
721
721
  size: "sm",
722
722
  children: "Create"
723
723
  })]
724
724
  })]
725
725
  }),
726
- /* @__PURE__ */ J("div", {
726
+ /* @__PURE__ */ X("div", {
727
727
  className: "grid grid-cols-[40px_1fr_120px_72px] border-b border-[color:var(--aui-divider)] px-3 py-2 text-xs font-semibold uppercase tracking-[0.18em] aui-text-muted",
728
728
  children: [
729
- /* @__PURE__ */ q("span", { children: /* @__PURE__ */ q("input", {
729
+ /* @__PURE__ */ Y("span", { children: /* @__PURE__ */ Y("input", {
730
730
  type: "checkbox",
731
731
  "aria-label": "Select rows"
732
732
  }) }),
733
- /* @__PURE__ */ q("span", { children: "Name" }),
734
- /* @__PURE__ */ q("span", { children: "Status" }),
735
- /* @__PURE__ */ q("span", { children: "Actions" })
733
+ /* @__PURE__ */ Y("span", { children: "Name" }),
734
+ /* @__PURE__ */ Y("span", { children: "Status" }),
735
+ /* @__PURE__ */ Y("span", { children: "Actions" })
736
736
  ]
737
737
  }),
738
738
  [
739
739
  "Tembro",
740
740
  "Registry",
741
741
  "Dashboard"
742
- ].map((t, n) => /* @__PURE__ */ J("div", {
742
+ ].map((t, n) => /* @__PURE__ */ X("div", {
743
743
  className: "grid grid-cols-[40px_1fr_120px_72px] items-center border-b border-[color:var(--aui-divider)] px-3 py-3 last:border-b-0",
744
744
  children: [
745
- /* @__PURE__ */ q("span", { children: /* @__PURE__ */ q("input", {
745
+ /* @__PURE__ */ Y("span", { children: /* @__PURE__ */ Y("input", {
746
746
  type: "checkbox",
747
747
  "aria-label": `Select ${t}`,
748
748
  defaultChecked: n === 0
749
749
  }) }),
750
- /* @__PURE__ */ q("span", {
750
+ /* @__PURE__ */ Y("span", {
751
751
  className: "font-medium aui-text-strong",
752
752
  children: t
753
753
  }),
754
- /* @__PURE__ */ q("span", { children: /* @__PURE__ */ q($, {
754
+ /* @__PURE__ */ Y("span", { children: /* @__PURE__ */ Y($, {
755
755
  tone: n === 2 ? "warning" : "success",
756
756
  children: n === 2 ? "Review" : "Live"
757
757
  }) }),
758
- /* @__PURE__ */ q("span", { children: /* @__PURE__ */ q(e, {
758
+ /* @__PURE__ */ Y("span", { children: /* @__PURE__ */ Y(e, {
759
759
  variant: "ghost",
760
760
  size: "icon-sm",
761
761
  "aria-label": "Row actions",
762
- children: /* @__PURE__ */ q(G, {})
762
+ children: /* @__PURE__ */ Y(q, {})
763
763
  }) })
764
764
  ]
765
765
  }, t)),
766
- /* @__PURE__ */ J("div", {
766
+ /* @__PURE__ */ X("div", {
767
767
  className: "flex flex-wrap items-center justify-between gap-3 border-t border-[color:var(--aui-divider)] p-3 text-sm aui-text-muted",
768
- children: [/* @__PURE__ */ J("span", { children: [{
768
+ children: [/* @__PURE__ */ X("span", { children: [{
769
769
  "data-table-column-visibility-menu": "Column visibility",
770
770
  "data-table-sortable-header": "Sortable header",
771
771
  "data-table-bulk-actions": "Bulk action bar",
772
772
  "data-table-view-presets": "Saved view presets"
773
- }[t] ?? "DataTable part", " preview"] }), /* @__PURE__ */ q(c, {
773
+ }[t] ?? "DataTable part", " preview"] }), /* @__PURE__ */ Y(c, {
774
774
  page: 1,
775
775
  pageCount: 4,
776
776
  onPageChange: () => void 0,
@@ -780,73 +780,73 @@ function ge({ slug: t }) {
780
780
  ]
781
781
  });
782
782
  }
783
- function _e() {
784
- return /* @__PURE__ */ q(v, {
783
+ function Q() {
784
+ return /* @__PURE__ */ Y(ne, {
785
785
  value: "2026-06-18",
786
786
  defaultMonth: "2026-06-01",
787
787
  onValueChange: () => void 0
788
788
  });
789
789
  }
790
- function ve({ slug: e }) {
791
- return e === "file-upload" ? /* @__PURE__ */ J("div", {
790
+ function Se({ slug: e }) {
791
+ return e === "file-upload" ? /* @__PURE__ */ X("div", {
792
792
  className: "grid gap-4",
793
- children: [/* @__PURE__ */ q(D, {
793
+ children: [/* @__PURE__ */ Y(T, {
794
794
  dropzoneLabel: "Upload documents",
795
795
  dropzoneDescription: "Drag files here or choose from your device.",
796
796
  buttonLabel: "Choose files",
797
797
  helperText: "Supports PDF, CSV and images."
798
- }), /* @__PURE__ */ J("div", {
798
+ }), /* @__PURE__ */ X("div", {
799
799
  className: "grid gap-3 md:grid-cols-3",
800
800
  children: [
801
- /* @__PURE__ */ q("div", {
801
+ /* @__PURE__ */ Y("div", {
802
802
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
803
803
  children: "Dropzone click and nested actions stay isolated."
804
804
  }),
805
- /* @__PURE__ */ q("div", {
805
+ /* @__PURE__ */ Y("div", {
806
806
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
807
807
  children: "Rejected states and helper copy live in the same component."
808
808
  }),
809
- /* @__PURE__ */ q("div", {
809
+ /* @__PURE__ */ Y("div", {
810
810
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
811
811
  children: "Use for production file routes, not just decorative previews."
812
812
  })
813
813
  ]
814
814
  })]
815
- }) : e === "image-upload" ? /* @__PURE__ */ J("div", {
815
+ }) : e === "image-upload" ? /* @__PURE__ */ X("div", {
816
816
  className: "grid gap-4",
817
- children: [/* @__PURE__ */ q(O, {
817
+ children: [/* @__PURE__ */ Y(E, {
818
818
  dropzoneLabel: "Upload product image",
819
819
  helperText: "Preview-friendly upload for gallery and hero assets."
820
- }), /* @__PURE__ */ J("div", {
820
+ }), /* @__PURE__ */ X("div", {
821
821
  className: "grid gap-3 md:grid-cols-3",
822
822
  children: [
823
- /* @__PURE__ */ q("div", {
823
+ /* @__PURE__ */ Y("div", {
824
824
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
825
825
  children: "Image preview is part of the reusable component."
826
826
  }),
827
- /* @__PURE__ */ q("div", {
827
+ /* @__PURE__ */ Y("div", {
828
828
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
829
829
  children: "Remove action stays separate from the parent dropzone surface."
830
830
  }),
831
- /* @__PURE__ */ q("div", {
831
+ /* @__PURE__ */ Y("div", {
832
832
  className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted",
833
833
  children: "Good for template thumbnails and marketing assets."
834
834
  })
835
835
  ]
836
836
  })]
837
- }) : /* @__PURE__ */ J("div", {
837
+ }) : /* @__PURE__ */ X("div", {
838
838
  className: "grid gap-4 md:grid-cols-[160px_1fr] md:items-center",
839
- children: [/* @__PURE__ */ q("div", {
839
+ children: [/* @__PURE__ */ Y("div", {
840
840
  className: "flex aspect-square items-center justify-center rounded-2xl border border-dashed border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)]",
841
- children: /* @__PURE__ */ q(K, { className: "size-8 aui-text-muted" })
842
- }), /* @__PURE__ */ q(L, {
841
+ children: /* @__PURE__ */ Y(J, { className: "size-8 aui-text-muted" })
842
+ }), /* @__PURE__ */ Y(z, {
843
843
  label: "Upload product image",
844
844
  description: "Shows the image-upload flow without custom CSS.",
845
845
  accept: "image/*"
846
846
  })]
847
847
  });
848
848
  }
849
- function ye({ slug: e }) {
849
+ function Ce({ slug: e }) {
850
850
  let t = [
851
851
  {
852
852
  id: "profile",
@@ -865,39 +865,39 @@ function ye({ slug: e }) {
865
865
  description: "Confirm data"
866
866
  }
867
867
  ];
868
- return e === "stepper" ? /* @__PURE__ */ q(F, {
868
+ return e === "stepper" ? /* @__PURE__ */ Y(L, {
869
869
  steps: t,
870
870
  currentStep: "billing",
871
871
  onStepChange: () => void 0
872
- }) : /* @__PURE__ */ q(I, {
872
+ }) : /* @__PURE__ */ Y(R, {
873
873
  steps: t,
874
874
  currentStep: "billing",
875
875
  onNext: () => void 0,
876
876
  onPrevious: () => void 0,
877
877
  onFinish: () => void 0,
878
- children: /* @__PURE__ */ J("div", {
878
+ children: /* @__PURE__ */ X("div", {
879
879
  className: "rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4",
880
- children: [/* @__PURE__ */ q("p", {
880
+ children: [/* @__PURE__ */ Y("p", {
881
881
  className: "font-medium aui-text-strong",
882
882
  children: "Billing setup"
883
- }), /* @__PURE__ */ q("p", {
883
+ }), /* @__PURE__ */ Y("p", {
884
884
  className: "mt-1 text-sm aui-text-muted",
885
885
  children: "Wizard combines steps, content and footer controls."
886
886
  })]
887
887
  })
888
888
  });
889
889
  }
890
- function be({ slug: t }) {
891
- return t === "form-builder" ? /* @__PURE__ */ q(xe, {}) : t === "resource-detail-page" ? /* @__PURE__ */ q(P, {
890
+ function we({ slug: t }) {
891
+ return t === "form-builder" ? /* @__PURE__ */ Y(Te, {}) : t === "resource-detail-page" ? /* @__PURE__ */ Y(I, {
892
892
  title: "Customer profile",
893
893
  description: "ResourceDetailPage organizes detail screens.",
894
- actions: /* @__PURE__ */ q(e, {
894
+ actions: /* @__PURE__ */ Y(e, {
895
895
  size: "sm",
896
896
  children: "Edit"
897
897
  }),
898
- children: /* @__PURE__ */ q(N, {
898
+ children: /* @__PURE__ */ Y(F, {
899
899
  title: "Account",
900
- children: /* @__PURE__ */ q(y, { items: [{
900
+ children: /* @__PURE__ */ Y(v, { items: [{
901
901
  key: "plan",
902
902
  label: "Plan",
903
903
  value: "Scale"
@@ -907,23 +907,23 @@ function be({ slug: t }) {
907
907
  value: "Design team"
908
908
  }] })
909
909
  })
910
- }) : /* @__PURE__ */ q(M, {
910
+ }) : /* @__PURE__ */ Y(P, {
911
911
  title: "Customers",
912
912
  description: "ResourcePage combines header, stats, filters and sections.",
913
- actions: /* @__PURE__ */ q(e, {
913
+ actions: /* @__PURE__ */ Y(e, {
914
914
  size: "sm",
915
915
  children: "New customer"
916
916
  }),
917
- stats: /* @__PURE__ */ J("div", {
917
+ stats: /* @__PURE__ */ X("div", {
918
918
  className: "grid gap-3 sm:grid-cols-2",
919
- children: [/* @__PURE__ */ q(R, {
919
+ children: [/* @__PURE__ */ Y(B, {
920
920
  title: "Active",
921
921
  value: "2,418",
922
922
  trend: {
923
923
  value: "+8%",
924
924
  tone: "success"
925
925
  }
926
- }), /* @__PURE__ */ q(R, {
926
+ }), /* @__PURE__ */ Y(B, {
927
927
  title: "Health",
928
928
  value: "94%",
929
929
  trend: {
@@ -932,8 +932,8 @@ function be({ slug: t }) {
932
932
  }
933
933
  })]
934
934
  }),
935
- filters: /* @__PURE__ */ q(l, {
936
- search: /* @__PURE__ */ q(r, {
935
+ filters: /* @__PURE__ */ Y(l, {
936
+ search: /* @__PURE__ */ Y(r, {
937
937
  type: "search",
938
938
  value: "",
939
939
  placeholder: "Search...",
@@ -941,9 +941,9 @@ function be({ slug: t }) {
941
941
  }),
942
942
  activeCount: 1
943
943
  }),
944
- children: /* @__PURE__ */ q(N, {
944
+ children: /* @__PURE__ */ Y(F, {
945
945
  title: "Recent activity",
946
- children: /* @__PURE__ */ q(T, { items: [{
946
+ children: /* @__PURE__ */ Y(C, { items: [{
947
947
  key: "a",
948
948
  title: "Customer added",
949
949
  description: "Acme workspace",
@@ -957,49 +957,97 @@ function be({ slug: t }) {
957
957
  })
958
958
  });
959
959
  }
960
- function xe() {
961
- let e = Y({ defaultValues: {
960
+ function Te() {
961
+ let e = oe({ defaultValues: {
962
962
  name: "Azamat Jurayev",
963
963
  email: "azamat@example.com",
964
964
  notes: "Release gate is ready.",
965
- marketing: !0
966
- } }), t = [j({
965
+ marketing: !0,
966
+ role: "admin"
967
+ } }), t = [k({
967
968
  id: "profile",
968
969
  title: "Profile",
969
970
  description: "Core account and contact fields.",
970
- fields: [A({
971
- id: "profile-summary",
972
- colSpan: "full",
973
- render: () => /* @__PURE__ */ J("div", {
974
- className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4",
975
- children: [/* @__PURE__ */ q("p", {
976
- className: "text-sm font-semibold text-[color:var(--aui-page-foreground)]",
977
- children: "Reusable section shell"
978
- }), /* @__PURE__ */ q("p", {
979
- className: "mt-1 text-sm text-[color:var(--aui-page-muted)]",
980
- children: "FormBuilder groups controls, helper copy and actions without scattering layout logic."
981
- })]
971
+ fields: [
972
+ O({
973
+ id: "profile-summary",
974
+ colSpan: "full",
975
+ render: () => /* @__PURE__ */ X("div", {
976
+ className: "rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4",
977
+ children: [/* @__PURE__ */ Y("p", {
978
+ className: "text-sm font-semibold text-[color:var(--aui-page-foreground)]",
979
+ children: "Reusable section shell"
980
+ }), /* @__PURE__ */ Y("p", {
981
+ className: "mt-1 text-sm text-[color:var(--aui-page-muted)]",
982
+ children: "FormBuilder groups controls, helper copy and actions without scattering layout logic."
983
+ })]
984
+ })
985
+ }),
986
+ A({
987
+ id: "name",
988
+ props: {
989
+ name: "name",
990
+ label: "Name",
991
+ required: !0
992
+ }
993
+ }),
994
+ A({
995
+ id: "email",
996
+ props: {
997
+ name: "email",
998
+ label: "Email",
999
+ type: "email"
1000
+ }
1001
+ }),
1002
+ j({
1003
+ id: "role",
1004
+ props: {
1005
+ name: "role",
1006
+ label: "Role",
1007
+ options: [{
1008
+ value: "admin",
1009
+ label: "Administrator"
1010
+ }, {
1011
+ value: "member",
1012
+ label: "Member"
1013
+ }]
1014
+ }
1015
+ }),
1016
+ M({
1017
+ id: "marketing",
1018
+ props: {
1019
+ name: "marketing",
1020
+ label: "Product updates"
1021
+ }
1022
+ }),
1023
+ N({
1024
+ id: "notes",
1025
+ colSpan: "full",
1026
+ props: {
1027
+ name: "notes",
1028
+ label: "Release notes"
1029
+ }
982
1030
  })
983
- })]
1031
+ ]
984
1032
  })];
985
- return /* @__PURE__ */ q(k, {
1033
+ return /* @__PURE__ */ Y(D, {
986
1034
  control: e.control,
987
1035
  sections: t,
988
1036
  columns: 1,
989
1037
  submitLabel: "Save changes",
990
1038
  resetLabel: "Reset",
991
1039
  onResetClick: () => e.reset(),
992
- footer: /* @__PURE__ */ q("div", {
1040
+ footer: /* @__PURE__ */ Y("div", {
993
1041
  className: "rounded-2xl border border-dashed border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm text-[color:var(--aui-page-muted)]",
994
1042
  children: "Use the builder for real form routes, then replace this preview with your own field presets."
995
1043
  })
996
1044
  });
997
1045
  }
998
- function Se(e) {
1046
+ function Ee(e) {
999
1047
  return e.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(" ");
1000
1048
  }
1001
1049
  function $({ tone: e, children: t }) {
1002
- return /* @__PURE__ */ q(i, {
1050
+ return /* @__PURE__ */ Y(i, {
1003
1051
  variant: {
1004
1052
  success: "secondary",
1005
1053
  warning: "outline",
@@ -1010,4 +1058,4 @@ function $({ tone: e, children: t }) {
1010
1058
  });
1011
1059
  }
1012
1060
  //#endregion
1013
- export { ie as registrySpecificDemoRegistry };
1061
+ export { ce as registrySpecificDemoRegistry };