@pebble-software/bonsai 0.0.8 → 0.1.1

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 (118) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +371 -88
  3. package/dist/ast.js +10 -0
  4. package/dist/ast.js.map +1 -0
  5. package/dist/chunks/builder.meta-WpXc5VBB.js +666 -0
  6. package/dist/chunks/builder.meta-WpXc5VBB.js.map +1 -0
  7. package/dist/chunks/button-jfJanilw.js +161 -0
  8. package/dist/chunks/button-jfJanilw.js.map +1 -0
  9. package/dist/chunks/create-renderer-DHneTPd-.js +280 -0
  10. package/dist/chunks/create-renderer-DHneTPd-.js.map +1 -0
  11. package/dist/chunks/index-DzpRdatr.js +359 -0
  12. package/dist/chunks/index-DzpRdatr.js.map +1 -0
  13. package/dist/chunks/render-shared-Ci28BpkI.js +1989 -0
  14. package/dist/chunks/render-shared-Ci28BpkI.js.map +1 -0
  15. package/dist/components/core/bonsai.d.ts +5 -0
  16. package/dist/components/core/render-shared.d.ts +123 -0
  17. package/dist/components/core/render-tree-client.d.ts +4 -0
  18. package/dist/components/core/render-tree-server.d.ts +2 -0
  19. package/dist/components/ui/a.d.ts +3 -0
  20. package/dist/components/ui/accordion.d.ts +17 -0
  21. package/dist/components/ui/alert-dialog.d.ts +23 -0
  22. package/dist/components/ui/alert.d.ts +12 -0
  23. package/dist/components/ui/avatar.d.ts +21 -0
  24. package/dist/components/ui/badge.d.ts +10 -0
  25. package/dist/components/ui/breadcrumb.d.ts +10 -0
  26. package/dist/components/ui/button.d.ts +14 -0
  27. package/dist/components/ui/calendar.d.ts +9 -0
  28. package/dist/components/ui/card.d.ts +15 -0
  29. package/dist/components/ui/checkbox.d.ts +7 -0
  30. package/dist/components/ui/collapsible.d.ts +5 -0
  31. package/dist/components/ui/combobox.d.ts +31 -0
  32. package/dist/components/ui/command.d.ts +23 -0
  33. package/dist/components/ui/dialog.d.ts +23 -0
  34. package/dist/components/ui/drawer.d.ts +22 -0
  35. package/dist/components/ui/dropdown-menu.d.ts +29 -0
  36. package/dist/components/ui/form.d.ts +24 -0
  37. package/dist/components/ui/h.d.ts +10 -0
  38. package/dist/components/ui/input-group.d.ts +18 -0
  39. package/dist/components/ui/input-otp.d.ts +11 -0
  40. package/dist/components/ui/input.d.ts +3 -0
  41. package/dist/components/ui/label.d.ts +10 -0
  42. package/dist/components/ui/loader.d.ts +14 -0
  43. package/dist/components/ui/p.d.ts +11 -0
  44. package/dist/components/ui/popover.d.ts +9 -0
  45. package/dist/components/ui/progress.d.ts +31 -0
  46. package/dist/components/ui/scroll-area.d.ts +13 -0
  47. package/dist/components/ui/select.d.ts +17 -0
  48. package/dist/components/ui/separator.d.ts +8 -0
  49. package/dist/components/ui/sidebar.d.ts +70 -0
  50. package/dist/components/ui/signature-pad.d.ts +7 -0
  51. package/dist/components/ui/skeleton.d.ts +7 -0
  52. package/dist/components/ui/switch.d.ts +8 -0
  53. package/dist/components/ui/table.d.ts +14 -0
  54. package/dist/components/ui/tabs.d.ts +15 -0
  55. package/dist/components/ui/textarea.d.ts +5 -0
  56. package/dist/components/ui/toast.d.ts +46 -0
  57. package/dist/components/ui/tooltip.d.ts +15 -0
  58. package/dist/constants.d.ts +1 -0
  59. package/dist/constants.js +11 -0
  60. package/dist/constants.js.map +1 -0
  61. package/dist/core.d.ts +12 -0
  62. package/dist/core.js +17 -0
  63. package/dist/core.js.map +1 -0
  64. package/dist/hooks/haptics.d.ts +8 -0
  65. package/dist/hooks/use-mobile.d.ts +1 -0
  66. package/dist/index.css +7 -0
  67. package/dist/index.d.ts +27 -339
  68. package/dist/index.js +532 -4297
  69. package/dist/index.js.map +1 -0
  70. package/dist/lib/ast/cache.d.ts +8 -0
  71. package/dist/lib/ast/evaluator.d.ts +2 -0
  72. package/dist/lib/ast/helpers.d.ts +2 -0
  73. package/dist/lib/ast/index.d.ts +29 -0
  74. package/dist/lib/ast/setup.d.ts +2 -0
  75. package/dist/lib/ast/types.d.ts +1 -0
  76. package/dist/lib/ast/utils.d.ts +4 -0
  77. package/dist/lib/haptics.d.ts +8 -0
  78. package/dist/lib/registry/drift.d.ts +17 -0
  79. package/dist/lib/registry/identity.d.ts +24 -0
  80. package/dist/lib/registry/json-schema-to-zod.d.ts +32 -0
  81. package/dist/lib/registry/manifest-schema.d.ts +62 -0
  82. package/dist/lib/registry/manifest.d.ts +26 -0
  83. package/dist/lib/registry/merge-generated.d.ts +7 -0
  84. package/dist/lib/registry/pebble-registry.d.ts +1 -0
  85. package/dist/lib/registry/types.d.ts +29 -0
  86. package/dist/lib/registry/validate.d.ts +18 -0
  87. package/dist/lib/renderer/compile-template.d.ts +70 -0
  88. package/dist/lib/ui/registry.d.ts +19 -0
  89. package/dist/lib/utils.d.ts +3 -0
  90. package/dist/library/constants/src/components.d.ts +59 -0
  91. package/dist/library/constants/src/index.d.ts +2 -0
  92. package/dist/library/constants/src/webhook-events.d.ts +6 -0
  93. package/dist/library/schemas/src/bonsai.schema.d.ts +24 -0
  94. package/dist/library/schemas/src/builder.meta.d.ts +26 -0
  95. package/dist/presets/calendar.js +374 -0
  96. package/dist/presets/calendar.js.map +1 -0
  97. package/dist/presets/signature.js +405 -0
  98. package/dist/presets/signature.js.map +1 -0
  99. package/dist/renderer/core-registry.d.ts +52 -0
  100. package/dist/renderer/create-renderer.d.ts +38 -0
  101. package/dist/renderer/presets/calendar.d.ts +5 -0
  102. package/dist/renderer/presets/signature.d.ts +6 -0
  103. package/dist/schemas.d.ts +2 -0
  104. package/dist/schemas.js +13 -0
  105. package/dist/schemas.js.map +1 -0
  106. package/dist/styles/css/base.css +144 -0
  107. package/dist/styles/css/fonts.css +25 -0
  108. package/dist/styles/css/maplibre.css +29 -0
  109. package/dist/styles/css/overrides.css +7 -0
  110. package/dist/styles/css/tailwind.css +1 -0
  111. package/dist/styles/css/theme.css +197 -0
  112. package/dist/styles/css/tw-animate.css +1 -0
  113. package/dist/styles/css/utilities.css +44 -0
  114. package/dist/styles/presets.json +20 -0
  115. package/dist/styles/vendor/maplibre-gl.css +701 -0
  116. package/dist/styles/vendor/tw-animate.css +692 -0
  117. package/dist/types.d.ts +1 -0
  118. package/package.json +64 -19
@@ -0,0 +1,1989 @@
1
+ import { jsx as s, jsxs as N, Fragment as E } from "react/jsx-runtime";
2
+ import * as j from "react";
3
+ import { createContext as sa, useContext as da, Fragment as wa, createElement as R } from "react";
4
+ import { COMPONENT as d } from "../constants.js";
5
+ import { cva as g } from "class-variance-authority";
6
+ import { c as i, a as za, d as ka, B as na, e as ya, L as Na } from "./button-jfJanilw.js";
7
+ import { Accordion as P } from "@base-ui/react/accordion";
8
+ import { IconChevronDown as Ca, IconCheck as Pa } from "@tabler/icons-react";
9
+ import { useWebHaptics as L } from "web-haptics/react";
10
+ import { Avatar as S } from "@base-ui/react/avatar";
11
+ import { mergeProps as Ta } from "@base-ui/react/merge-props";
12
+ import { useRender as Aa } from "@base-ui/react/use-render";
13
+ import { Checkbox as K } from "@base-ui/react/checkbox";
14
+ import { Collapsible as $ } from "@base-ui/react/collapsible";
15
+ import { Input as Oa } from "@base-ui/react/input";
16
+ import { OTPInput as Ia } from "input-otp";
17
+ import { Progress as k } from "@base-ui/react/progress";
18
+ import { Separator as Ea } from "@base-ui/react/separator";
19
+ import { Switch as X } from "@base-ui/react/switch";
20
+ import { L as Ra, c as q, s as _a, p as Va } from "./index-DzpRdatr.js";
21
+ const Sa = /[^.[\]]+|\[(?:[^\[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/g;
22
+ function B(a) {
23
+ return a.match(Sa) || [];
24
+ }
25
+ function C(a) {
26
+ return a.startsWith("[") && a.endsWith("]") ? a.slice(1, -1).replace(/^["']|["']$/g, "") : a;
27
+ }
28
+ function ja(a) {
29
+ const t = B(a).map(C), e = t.map((r, o) => {
30
+ const n = t[o + 1];
31
+ return n !== void 0 && /^\d+$/.test(n);
32
+ });
33
+ return { key: a, segments: t, numericNext: e };
34
+ }
35
+ function I(a) {
36
+ const t = typeof a == "string", e = a, r = /* @__PURE__ */ Object.create(null), o = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ Object.create(null), l = /* @__PURE__ */ new Set();
37
+ let u = null;
38
+ if (t)
39
+ u = q(a), u?.variables.forEach((h) => l.add(h));
40
+ else
41
+ for (const [h, _] of Object.entries(e?.args ?? {})) {
42
+ const b = q(_);
43
+ b && (r[h] = b, o.add(h), b.ast && _a(b.ast) != null && (n[h] = b.content), b.variables.forEach((A) => l.add(A)));
44
+ }
45
+ const c = t ? void 0 : e?.type, p = c || "div", f = c === d.EACH, w = c === d.IF, T = f ? {
46
+ as: e.args?.as,
47
+ indexAlias: e.args?.index,
48
+ keyExpr: e.args?.key,
49
+ rawItemsPath: n.items ?? ""
50
+ } : null, x = Array.from(l, ja);
51
+ return {
52
+ source: a,
53
+ isText: t,
54
+ type: p,
55
+ isEach: f,
56
+ isIf: w,
57
+ isImage: c === d.IMAGE,
58
+ dynamicKeys: x,
59
+ dynamicArgs: o,
60
+ argPaths: n,
61
+ expressions: r,
62
+ text: u,
63
+ // Matches `isStaticLeaf`: control nodes always re-render, otherwise "no bindings of its own".
64
+ isStatic: !f && !w && x.length === 0,
65
+ each: T,
66
+ children: t ? [] : (e?.children ?? []).map(I)
67
+ };
68
+ }
69
+ const Y = /* @__PURE__ */ new WeakMap(), J = new Ra(50);
70
+ function ve(a) {
71
+ if (typeof a == "string") {
72
+ const r = J.get(a);
73
+ if (r) return r;
74
+ const o = {
75
+ root: I(a),
76
+ source: a
77
+ };
78
+ return J.set(a, o), o;
79
+ }
80
+ if (a == null || typeof a != "object")
81
+ return { root: I(a), source: a };
82
+ const t = Y.get(a);
83
+ if (t) return t;
84
+ const e = {
85
+ root: I(a),
86
+ source: a
87
+ };
88
+ return Y.set(a, e), e;
89
+ }
90
+ function xe(a) {
91
+ return a;
92
+ }
93
+ function we(a) {
94
+ return a;
95
+ }
96
+ const ia = j.forwardRef(({ ...a }, t) => /* @__PURE__ */ s("a", { ref: t, ...a }));
97
+ ia.displayName = "A";
98
+ const La = g("font-heading font-semibold scroll-m-20", {
99
+ variants: {
100
+ variant: {
101
+ h1: "text-6xl font-semibold tracking-tight",
102
+ h2: "text-4xl font-semibold tracking-tight first:mt-0",
103
+ h3: "text-2xl font-semibold tracking-tight",
104
+ h4: "text-xl font-semibold tracking-tight",
105
+ h5: "text-lg font-semibold tracking-tight",
106
+ h6: "text-base font-semibold tracking-tight"
107
+ }
108
+ },
109
+ defaultVariants: {
110
+ variant: "h3"
111
+ }
112
+ }), la = j.forwardRef(
113
+ ({ className: a, variant: t, as: e, ...r }, o) => /* @__PURE__ */ s(
114
+ e || t || "h3",
115
+ {
116
+ ref: o,
117
+ className: i(La({ variant: t }), a),
118
+ ...r
119
+ }
120
+ )
121
+ );
122
+ la.displayName = "H";
123
+ const $a = g("text-base", {
124
+ variants: {
125
+ variant: {
126
+ default: "",
127
+ muted: "text-muted"
128
+ },
129
+ size: {
130
+ xs: "text-xs font-light leading-snug",
131
+ sm: "text-sm font-light leading-snug",
132
+ md: "text-base",
133
+ lg: "text-lg font-semibold",
134
+ xl: "text-xl font-bold"
135
+ }
136
+ },
137
+ defaultVariants: {
138
+ variant: "default",
139
+ size: "md"
140
+ }
141
+ }), ua = j.forwardRef(
142
+ ({ className: a, variant: t, size: e, as: r = "p", ...o }, n) => /* @__PURE__ */ s(
143
+ r,
144
+ {
145
+ ref: n,
146
+ className: i($a({ variant: t, size: e }), a),
147
+ ...o
148
+ }
149
+ )
150
+ );
151
+ ua.displayName = "P";
152
+ const Ba = g("flex w-full flex-col", {
153
+ variants: {
154
+ variant: {
155
+ default: "",
156
+ contained: "",
157
+ separated: "gap-4"
158
+ },
159
+ raised: {
160
+ xs: "",
161
+ sm: "",
162
+ md: "",
163
+ lg: ""
164
+ },
165
+ extrude: {
166
+ xs: "",
167
+ sm: "",
168
+ md: "",
169
+ lg: ""
170
+ }
171
+ },
172
+ defaultVariants: {
173
+ variant: "default"
174
+ }
175
+ });
176
+ function Da({
177
+ className: a,
178
+ variant: t = "default",
179
+ raised: e,
180
+ extrude: r,
181
+ ...o
182
+ }) {
183
+ return /* @__PURE__ */ s(
184
+ P.Root,
185
+ {
186
+ "data-slot": "accordion",
187
+ "data-variant": t,
188
+ "data-raised": e ?? void 0,
189
+ "data-extrude": r ?? void 0,
190
+ className: i(
191
+ Ba({ variant: t, raised: e, extrude: r }),
192
+ "group/accordion",
193
+ a
194
+ ),
195
+ ...o
196
+ }
197
+ );
198
+ }
199
+ function Ga({ className: a, ...t }) {
200
+ return /* @__PURE__ */ s(
201
+ P.Item,
202
+ {
203
+ "data-slot": "accordion-item",
204
+ className: i(
205
+ "group/accordion-item",
206
+ "data-closed:z-1 data-open:z-2 transition-[box-shadow,translate] linear duration-200",
207
+ "group-data-[variant=default]/accordion:bg-surface",
208
+ "group-data-[variant=default]/accordion:first:rounded-t-base",
209
+ "group-data-[variant=default]/accordion:last:rounded-b-base",
210
+ "group-data-[variant=default]/accordion:border-b",
211
+ "group-data-[variant=default]/accordion:last:border-b-transparent",
212
+ "group-data-[variant=contained]/accordion:bg-surface",
213
+ "group-data-[variant=contained]/accordion:first:rounded-t-base",
214
+ "group-data-[variant=contained]/accordion:last:rounded-b-base",
215
+ "group-data-[variant=contained]/accordion:border-2",
216
+ "group-data-[variant=contained]/accordion:border-border",
217
+ "group-data-[variant=contained]/accordion:not-last:data-closed:-mb-1",
218
+ "group-data-[variant=separated]/accordion:bg-surface",
219
+ "group-data-[variant=separated]/accordion:border-2",
220
+ "group-data-[variant=separated]/accordion:border-border",
221
+ "group-data-[variant=separated]/accordion:rounded-base",
222
+ "group-data-[variant=separated]/accordion:data-closed:not-last:mb-0",
223
+ "group-data-raised/accordion:data-open:z-1",
224
+ "group-data-raised/accordion:border",
225
+ "group-data-raised/accordion:border-border",
226
+ "group-data-raised/accordion:not-last:data-closed:-mb-1",
227
+ "group-data-[raised=xs]/accordion:shadow-xs group-data-[raised=xs]/accordion:-translate-0.5",
228
+ "group-data-[raised=sm]/accordion:shadow-sm group-data-[raised=sm]/accordion:-translate-0.75",
229
+ "group-data-[raised=md]/accordion:shadow-md group-data-[raised=md]/accordion:-translate-1",
230
+ "group-data-[raised=lg]/accordion:shadow-lg group-data-[raised=lg]/accordion:-translate-1.25",
231
+ "group-data-extrude/accordion:data-open:z-1",
232
+ "group-data-extrude/accordion:border",
233
+ "group-data-extrude/accordion:data-open:border-border",
234
+ "group-data-extrude/accordion:not-last:data-open:-mb-1",
235
+ "group-data-extrude/accordion:border-t-transparent",
236
+ "group-data-extrude/accordion:border-l-transparent",
237
+ "group-data-extrude/accordion:border-r-transparent",
238
+ "group-data-[extrude=xs]/accordion:data-open:shadow-xs group-data-[extrude=xs]/accordion:data-open:-translate-0.5",
239
+ "group-data-[extrude=sm]/accordion:data-open:shadow-sm group-data-[extrude=sm]/accordion:data-open:-translate-0.75",
240
+ "group-data-[extrude=md]/accordion:data-open:shadow-md group-data-[extrude=md]/accordion:data-open:-translate-1",
241
+ "group-data-[extrude=lg]/accordion:data-open:shadow-lg group-data-[extrude=lg]/accordion:data-open:-translate-1.25",
242
+ a
243
+ ),
244
+ ...t
245
+ }
246
+ );
247
+ }
248
+ function Ua({
249
+ className: a,
250
+ children: t,
251
+ disabled: e,
252
+ icon: r = Ca,
253
+ onClick: o,
254
+ ...n
255
+ }) {
256
+ const { trigger: l } = L();
257
+ return /* @__PURE__ */ s(P.Header, { className: "flex", children: /* @__PURE__ */ N(
258
+ P.Trigger,
259
+ {
260
+ "data-slot": "accordion-trigger",
261
+ className: i(
262
+ "neo-base neo-accordion-focus pt-3 text-left text-base font-medium cursor-pointer shrink-0 group/accordion-trigger relative flex flex-1 items-center justify-between border border-transparent transition-[opacity,border], data-disabled:pointer-events-none data-disabled:opacity-50",
263
+ "p-4",
264
+ "hover:underline",
265
+ "group-first/accordion-item:rounded-t-base",
266
+ "group-last/accordion-item:group-data-closed/accordion-item:rounded-b-base",
267
+ "group-data-open/accordion-item:group-has-data-[slot=accordion-content]/accordion-item:pb-2",
268
+ "group-data-open/accordion-item:group-has-data-[slot=accordion-content]/accordion-item:mb-2",
269
+ "group-data-[variant=separated]/accordion:pt-4",
270
+ a
271
+ ),
272
+ onClick: (u) => {
273
+ l(za), o?.(u);
274
+ },
275
+ ...n,
276
+ children: [
277
+ t,
278
+ /* @__PURE__ */ s(
279
+ r,
280
+ {
281
+ "data-slot": "accordion-trigger-icon",
282
+ className: i(
283
+ "group-aria-expanded/accordion-trigger:-rotate-180 transition-[rotate] duration-300",
284
+ "text-muted ml-auto size-4 pointer-events-none"
285
+ )
286
+ }
287
+ )
288
+ ]
289
+ }
290
+ ) });
291
+ }
292
+ function Ha({
293
+ className: a,
294
+ children: t,
295
+ ...e
296
+ }) {
297
+ return /* @__PURE__ */ s(
298
+ P.Panel,
299
+ {
300
+ "data-slot": "accordion-content",
301
+ keepMounted: !0,
302
+ className: "overflow-hidden text-sm transition-[height] duration-300 ease-out data-ending-style:h-0 data-starting-style:h-0 h-(--accordion-panel-height)",
303
+ ...e,
304
+ children: /* @__PURE__ */ s(
305
+ "div",
306
+ {
307
+ className: i(
308
+ "pt-0 px-4 pb-4 data-ending-style:h-0 data-starting-style:h-0 [&_p:not(:last-child)]:mb-4",
309
+ a
310
+ ),
311
+ children: t
312
+ }
313
+ )
314
+ }
315
+ );
316
+ }
317
+ const Fa = g(
318
+ "relative grid px-4 py-3 gap-0.5 rounded-base border text-left text-sm *:[svg]:row-span-2 *:[svg]:translate-y-1 *:[svg]:text-current has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-24 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2.5",
319
+ {
320
+ variants: {
321
+ variant: {
322
+ default: "bg-surface text-card-foreground",
323
+ success: "bg-main-secondary text-card-foreground",
324
+ warning: "text-foreground bg-accent-yellow-secondary",
325
+ destructive: "text-foreground bg-accent-red-secondary border-border *:[svg]:text-current"
326
+ },
327
+ size: {
328
+ default: "w-full",
329
+ sm: "w-sm",
330
+ lg: "w-full"
331
+ },
332
+ raised: {
333
+ xs: "shadow-xs -translate-0.5",
334
+ sm: "shadow-sm -translate-0.75",
335
+ md: "shadow-md -translate-1",
336
+ lg: "shadow-lg -translate-1.25",
337
+ xl: "shadow-xl -translate-1.5"
338
+ }
339
+ },
340
+ defaultVariants: {
341
+ variant: "default"
342
+ }
343
+ }
344
+ );
345
+ function Ma({
346
+ className: a,
347
+ variant: t = "default",
348
+ size: e = "default",
349
+ raised: r,
350
+ ...o
351
+ }) {
352
+ return /* @__PURE__ */ s(
353
+ "div",
354
+ {
355
+ "data-slot": "alert",
356
+ role: "alert",
357
+ className: i(
358
+ Fa({ variant: t, raised: r, size: e }),
359
+ "group/alert",
360
+ a
361
+ ),
362
+ ...o
363
+ }
364
+ );
365
+ }
366
+ const Wa = g("relative flex shrink-0 select-none", {
367
+ variants: {
368
+ size: {
369
+ full: "size-full",
370
+ sm: "size-8",
371
+ md: "size-10",
372
+ lg: "size-12",
373
+ xl: "size-14"
374
+ },
375
+ raised: {
376
+ xs: "shadow-xs -translate-0.5 ring-0",
377
+ sm: "shadow-sm -translate-0.75 ring-0",
378
+ md: "shadow-md -translate-1 ring-0",
379
+ lg: "shadow-lg -translate-1.25 ring-0"
380
+ },
381
+ rounded: {
382
+ none: "",
383
+ sm: "rounded-sm",
384
+ md: "rounded-md",
385
+ lg: "rounded-lg",
386
+ full: "rounded-full"
387
+ }
388
+ },
389
+ defaultVariants: {
390
+ size: "md",
391
+ rounded: "full"
392
+ }
393
+ });
394
+ function Ka({
395
+ className: a,
396
+ size: t = "md",
397
+ rounded: e = "full",
398
+ raised: r,
399
+ src: o,
400
+ alt: n,
401
+ fallback: l,
402
+ badge: u,
403
+ children: c,
404
+ ...p
405
+ }) {
406
+ return /* @__PURE__ */ s(
407
+ S.Root,
408
+ {
409
+ "data-slot": "avatar",
410
+ "data-size": t,
411
+ "data-raised": r,
412
+ "data-rounded": e,
413
+ className: i(
414
+ Wa({ size: t, rounded: e, raised: r }),
415
+ "group/avatar",
416
+ a
417
+ ),
418
+ ...p,
419
+ children: c ?? /* @__PURE__ */ N(E, { children: [
420
+ o && /* @__PURE__ */ s(
421
+ S.Image,
422
+ {
423
+ "data-slot": "avatar-image",
424
+ className: i(
425
+ "aspect-square size-full object-cover border",
426
+ "group-data-[rounded=sm]/avatar:rounded-sm",
427
+ "group-data-[rounded=md]/avatar:rounded-md",
428
+ "group-data-[rounded=lg]/avatar:rounded-lg",
429
+ "group-data-[rounded=full]/avatar:rounded-full"
430
+ ),
431
+ src: o,
432
+ alt: n
433
+ }
434
+ ),
435
+ l != null && /* @__PURE__ */ s(
436
+ S.Fallback,
437
+ {
438
+ "data-slot": "avatar-fallback",
439
+ className: i(
440
+ "text-foreground bg-surface flex size-full items-center justify-center border text-sm ",
441
+ "group-data-[size=sm]/avatar:text-xs",
442
+ "group-data-[rounded=sm]/avatar:rounded-sm",
443
+ "group-data-[rounded=md]/avatar:rounded-md",
444
+ "group-data-[rounded=lg]/avatar:rounded-lg",
445
+ "group-data-[rounded=full]/avatar:rounded-full"
446
+ ),
447
+ delay: 150,
448
+ children: l
449
+ }
450
+ ),
451
+ u != null && /* @__PURE__ */ s(
452
+ "span",
453
+ {
454
+ "data-slot": "avatar-badge",
455
+ className: i(
456
+ "overflow-hidden text-primary-foreground ring-surface absolute right-1 bottom-1 z-10 inline-flex items-center justify-center bg-main select-none border-1",
457
+ "group-data-[size=sm]/avatar:size-3",
458
+ "group-data-[size=sm]/avatar:[&>svg]:hidden",
459
+ "group-data-[size=sm]/avatar:translate-0.75",
460
+ "group-data-[size=md]/avatar:size-4",
461
+ "group-data-[size=md]/avatar:[&>svg]:size-3",
462
+ "group-data-[size=md]/avatar:translate-1.5",
463
+ "group-data-[size=lg]/avatar:size-5",
464
+ "group-data-[size=lg]/avatar:[&>svg]:size-4",
465
+ "group-data-[size=lg]/avatar:translate-1.5",
466
+ "group-data-[size=xl]/avatar:size-6",
467
+ "group-data-[size=xl]/avatar:[&>svg]:size-5",
468
+ "group-data-[size=xl]/avatar:translate-1.5",
469
+ "group-data-[size=full]/avatar:size-4",
470
+ "group-data-[size=full]/avatar:[&>svg]:size-3",
471
+ "group-data-[size=full]/avatar:translate-1.5",
472
+ "group-data-[raised=xs]/avatar:shadow-xs",
473
+ "group-data-[raised=sm]/avatar:shadow-sm",
474
+ "group-data-[raised=md]/avatar:shadow-md",
475
+ "group-data-[raised=lg]/avatar:shadow-lg",
476
+ "group-data-[rounded=sm]/avatar:rounded-sm",
477
+ "group-data-[rounded=md]/avatar:rounded-md",
478
+ "group-data-[rounded=lg]/avatar:rounded-lg",
479
+ "group-data-[rounded=full]/avatar:rounded-full",
480
+ "group-data-[rounded=full]/avatar:translate-0"
481
+ ),
482
+ children: u
483
+ }
484
+ )
485
+ ] })
486
+ }
487
+ );
488
+ }
489
+ const Xa = g(
490
+ "gap-1 px-2 py-0.5 [button]:cursor-pointer rounded-full border text-xs font-medium transition-[color,box-shadow,translate] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 inline-flex items-center justify-center w-fit whitespace-nowrap shrink-0 [&>svg]:pointer-events-none aria-invalid:border-accent-red duration-200 overflow-hidden",
491
+ {
492
+ variants: {
493
+ variant: {
494
+ default: "bg-main text-foreground",
495
+ secondary: "bg-main-secondary text-foreground",
496
+ destructive: "bg-accent-red text-foreground",
497
+ outline: "border-border text-foreground",
498
+ ghost: "text-muted hover:bg-foreground/20 border-transparent"
499
+ },
500
+ size: {
501
+ sm: "h-5 text-xs [&>svg]:size-3",
502
+ md: "text-sm [&>svg]:size-4",
503
+ lg: "text-base [&>svg]:size-5"
504
+ },
505
+ raised: {
506
+ xs: "shadow-xs -translate-px",
507
+ sm: "shadow-sm -translate-0.5",
508
+ md: "shadow-md -translate-0.75",
509
+ lg: "shadow-lg -translate-1"
510
+ },
511
+ extrude: {
512
+ xs: "hover:shadow-xs hover:-translate-px focus-visible:shadow-xs focus-visible:-translate-px active:shadow-none active:translate-0 disabled:shadow-none disabled:translate-0",
513
+ sm: "hover:shadow-sm hover:-translate-0.5 focus-visible:shadow-sm focus-visible:-translate-0.5 active:shadow-none active:translate-0 disabled:shadow-none disabled:translate-0",
514
+ md: "hover:shadow-md hover:-translate-0.75 focus-visible:shadow-md focus-visible:-translate-0.75 active:shadow-none active:translate-0 disabled:shadow-none disabled:translate-0",
515
+ lg: "hover:shadow-lg hover:-translate-1 focus-visible:shadow-lg focus-visible:-translate-1 active:shadow-none active:translate-0 disabled:shadow-none disabled:translate-0"
516
+ }
517
+ },
518
+ defaultVariants: {
519
+ variant: "default",
520
+ size: "md"
521
+ }
522
+ }
523
+ );
524
+ function qa({
525
+ className: a,
526
+ variant: t = "default",
527
+ size: e = "md",
528
+ raised: r,
529
+ extrude: o,
530
+ render: n,
531
+ ...l
532
+ }) {
533
+ return Aa({
534
+ defaultTagName: "span",
535
+ props: Ta(
536
+ {
537
+ className: i(
538
+ Xa({ size: e, variant: t, raised: r, extrude: o }),
539
+ "group/badge",
540
+ a
541
+ ),
542
+ tabIndex: l.tabIndex
543
+ },
544
+ l
545
+ ),
546
+ render: n,
547
+ state: {
548
+ slot: "badge",
549
+ variant: t
550
+ }
551
+ });
552
+ }
553
+ const Ya = g(
554
+ "bg-surface border text-foreground overflow-hidden rounded-base text-sm flex flex-col",
555
+ {
556
+ variants: {
557
+ size: {
558
+ sm: "gap-3 py-3 md:gap-4 md:py-4",
559
+ md: "gap-4 py-4 md:gap-6 md:py-6"
560
+ },
561
+ raised: {
562
+ none: "shadow-none",
563
+ xs: "shadow-xs -translate-0.5",
564
+ sm: "shadow-sm -translate-0.75",
565
+ md: "shadow-md -translate-1",
566
+ lg: "shadow-lg -translate-1.25",
567
+ xl: "shadow-xl -translate-1.5"
568
+ }
569
+ },
570
+ defaultVariants: {
571
+ size: "md",
572
+ raised: "md"
573
+ }
574
+ }
575
+ );
576
+ function Ja({
577
+ className: a,
578
+ size: t = "md",
579
+ raised: e = "md",
580
+ ...r
581
+ }) {
582
+ return /* @__PURE__ */ s(
583
+ "div",
584
+ {
585
+ "data-slot": "card",
586
+ "data-size": t,
587
+ className: i(Ya({ raised: e, size: t }), "group/card", a),
588
+ ...r
589
+ }
590
+ );
591
+ }
592
+ function Qa({ className: a, ...t }) {
593
+ return /* @__PURE__ */ s(
594
+ "div",
595
+ {
596
+ "data-slot": "card-header",
597
+ className: i(
598
+ "has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]",
599
+ "gap-1 group/card-header @container/card-header grid auto-rows-min items-start",
600
+ "group-data-[size=sm]/card:px-3 group-data-[size=sm]/card:[.border-b]:pb-3",
601
+ "group-data-[size=md]/card:px-4 group-data-[size=md]/card:[.border-b]:pb-4",
602
+ "md:group-data-[size=sm]/card:px-4 md:group-data-[size=sm]/card:[.border-b]:pb-4",
603
+ "md:group-data-[size=md]/card:px-6 md:group-data-[size=md]/card:[.border-b]:pb-6",
604
+ a
605
+ ),
606
+ ...t
607
+ }
608
+ );
609
+ }
610
+ function Za({ className: a, ...t }) {
611
+ return /* @__PURE__ */ s(
612
+ "div",
613
+ {
614
+ "data-slot": "card-title",
615
+ className: i(
616
+ "col-start-1 row-start-1 font-heading leading-normal font-medium mt-0.5 self-center",
617
+ "group-has-data-[slot=card-description]/card-header:leading-tight",
618
+ "group-has-data-[slot=card-description]/card-header:mt-0",
619
+ "group-data-[size=sm]/card:text-base",
620
+ "group-data-[size=md]/card:text-lg",
621
+ "group-has-data-[slot=card-icon]/card-header:group-data-[size=sm]/card:pl-9",
622
+ "group-has-data-[slot=card-icon]/card-header:group-data-[size=md]/card:pl-12",
623
+ "group-has-data-[slot=card-icon]/card-header:group-has-data-[slot=card-description]/card-header:group-data-[size=sm]/card:pl-13",
624
+ "group-has-data-[slot=card-icon]/card-header:group-has-data-[slot=card-description]/card-header:group-data-[size=md]/card:pl-14",
625
+ a
626
+ ),
627
+ ...t
628
+ }
629
+ );
630
+ }
631
+ function at({ className: a, ...t }) {
632
+ return /* @__PURE__ */ s(
633
+ "div",
634
+ {
635
+ "data-slot": "card-description",
636
+ className: i(
637
+ "text-muted col-start-1 row-start-2",
638
+ "group-data-[size=sm]/card:text-xs",
639
+ "group-data-[size=md]/card:text-sm",
640
+ "group-has-data-[slot=card-icon]/card-header:group-data-[size=sm]/card:pl-13",
641
+ "group-has-data-[slot=card-icon]/card-header:group-data-[size=md]/card:pl-14",
642
+ a
643
+ ),
644
+ ...t
645
+ }
646
+ );
647
+ }
648
+ function tt({ className: a, ...t }) {
649
+ return /* @__PURE__ */ s(
650
+ "div",
651
+ {
652
+ "data-slot": "card-action",
653
+ className: i(
654
+ "col-start-2 row-span-2 row-start-1 self-start justify-self-end",
655
+ a
656
+ ),
657
+ ...t
658
+ }
659
+ );
660
+ }
661
+ function et({ className: a, ...t }) {
662
+ return /* @__PURE__ */ s(
663
+ "div",
664
+ {
665
+ "data-slot": "card-icon",
666
+ className: i(
667
+ "bg-main col-span-1 row-span-2 col-start-1 row-start-1 rounded-sm border-2 flex items-center justify-center self-start",
668
+ "group-data-[size=sm]/card:p-0.75",
669
+ "group-data-[size=md]/card:p-1",
670
+ "group-data-[size=sm]/card:size-7",
671
+ "group-data-[size=md]/card:size-8",
672
+ "group-has-data-[slot=card-description]/card-header:group-data-[size=sm]/card:size-10",
673
+ "group-has-data-[slot=card-description]/card-header:group-data-[size=md]/card:size-11",
674
+ a
675
+ ),
676
+ ...t
677
+ }
678
+ );
679
+ }
680
+ function rt({ className: a, ...t }) {
681
+ return /* @__PURE__ */ s(
682
+ "div",
683
+ {
684
+ "data-slot": "card-content",
685
+ className: i(
686
+ "group-data-[size=sm]/card:px-3",
687
+ "group-data-[size=md]/card:px-4",
688
+ "md:group-data-[size=sm]/card:px-4",
689
+ "md:group-data-[size=md]/card:px-6",
690
+ a
691
+ ),
692
+ ...t
693
+ }
694
+ );
695
+ }
696
+ function ot({ className: a, ...t }) {
697
+ return /* @__PURE__ */ s(
698
+ "div",
699
+ {
700
+ "data-slot": "card-footer",
701
+ className: i(
702
+ "flex items-center justify-end",
703
+ "group-data-[size=sm]/card:px-3 group-data-[size=sm]/card:[.border-t]:pt-3",
704
+ "group-data-[size=md]/card:px-4 group-data-[size=md]/card:[.border-t]:pt-4",
705
+ "md:group-data-[size=sm]/card:px-4 md:group-data-[size=sm]/card:[.border-t]:pt-4",
706
+ "md:group-data-[size=md]/card:px-6 md:group-data-[size=md]/card:[.border-t]:pt-6",
707
+ a
708
+ ),
709
+ ...t
710
+ }
711
+ );
712
+ }
713
+ const st = g(
714
+ "neo-base neo-checkbox-focus flex size-5 cursor-pointer items-center justify-center rounded-md border relative shrink-0 transition-[color,opacity,box-shadow,translate] data-checked:bg-main aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50 aria-invalid:bg-accent-red-secondary",
715
+ {
716
+ variants: {
717
+ size: {
718
+ xs: "size-4.5",
719
+ sm: "size-5",
720
+ md: "size-5.5",
721
+ lg: "size-6",
722
+ xl: "size-6.5"
723
+ }
724
+ },
725
+ defaultVariants: {
726
+ size: "md"
727
+ }
728
+ }
729
+ );
730
+ function dt({
731
+ className: a,
732
+ size: t,
733
+ onCheckedChange: e,
734
+ ...r
735
+ }) {
736
+ const { trigger: o } = L();
737
+ return /* @__PURE__ */ s(
738
+ K.Root,
739
+ {
740
+ "data-slot": "checkbox",
741
+ "data-size": t,
742
+ className: i(
743
+ st({ size: t }),
744
+ "peer group/checkbox",
745
+ a
746
+ ),
747
+ "aria-label": r["aria-label"] ?? "checkbox",
748
+ onCheckedChange: (n, l) => {
749
+ o(ka), e?.(n, l);
750
+ },
751
+ ...r,
752
+ children: /* @__PURE__ */ s(
753
+ K.Indicator,
754
+ {
755
+ "data-slot": "checkbox-indicator",
756
+ className: "grid place-content-center text-current",
757
+ children: /* @__PURE__ */ s(
758
+ Pa,
759
+ {
760
+ stroke: 3.5,
761
+ className: i(
762
+ "size-4",
763
+ "group-data-[size=xs]/checkbox:size-3",
764
+ "group-data-[size=sm]/checkbox:size-3.5",
765
+ "group-data-[size=md]/checkbox:size-4",
766
+ "group-data-[size=lg]/checkbox:size-4.5",
767
+ "group-data-[size=xl]/checkbox:size-5"
768
+ )
769
+ }
770
+ )
771
+ }
772
+ )
773
+ }
774
+ );
775
+ }
776
+ function nt({ className: a, ...t }) {
777
+ return /* @__PURE__ */ s(
778
+ $.Root,
779
+ {
780
+ className: i("group/collapsible", a),
781
+ "data-slot": "collapsible",
782
+ ...t
783
+ }
784
+ );
785
+ }
786
+ function it({
787
+ className: a,
788
+ ...t
789
+ }) {
790
+ return /* @__PURE__ */ s(
791
+ $.Trigger,
792
+ {
793
+ className: i(
794
+ "group-data-open/collapsible:[&_svg]:-scale-y-100",
795
+ a
796
+ ),
797
+ "data-slot": "collapsible-trigger",
798
+ ...t
799
+ }
800
+ );
801
+ }
802
+ function lt({
803
+ className: a,
804
+ children: t,
805
+ ...e
806
+ }) {
807
+ return /* @__PURE__ */ s(
808
+ $.Panel,
809
+ {
810
+ className: i("group overflow-hidden", a),
811
+ "data-slot": "collapsible-content",
812
+ keepMounted: !0,
813
+ ...e,
814
+ children: /* @__PURE__ */ s(
815
+ "div",
816
+ {
817
+ "data-slot": "collapsible-content-container",
818
+ className: i(
819
+ "transition-[opacity,translate] duration-300",
820
+ "group-data-starting-style:-translate-y-20 group-data-starting-style:opacity-0",
821
+ "group-data-ending-style:-translate-y-20 group-data-ending-style:opacity-0"
822
+ ),
823
+ children: t
824
+ }
825
+ )
826
+ }
827
+ );
828
+ }
829
+ function ca({ className: a, type: t, ...e }) {
830
+ return /* @__PURE__ */ s(
831
+ Oa,
832
+ {
833
+ type: t,
834
+ "data-slot": "input",
835
+ className: i(
836
+ "neo-base neo-input-focus transition-[translate,box-shadow] h-10 w-full min-w-0 placeholder:text-subtle rounded-base border px-2.5 py-1 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 bg-surface",
837
+ a
838
+ ),
839
+ ...e
840
+ }
841
+ );
842
+ }
843
+ function ut({
844
+ className: a,
845
+ containerClassName: t,
846
+ ...e
847
+ }) {
848
+ return /* @__PURE__ */ s(
849
+ Ia,
850
+ {
851
+ "data-slot": "input-otp",
852
+ containerClassName: i(
853
+ "cn-input-otp flex items-center has-disabled:opacity-50",
854
+ t
855
+ ),
856
+ spellCheck: !1,
857
+ className: i("disabled:cursor-not-allowed", a),
858
+ ...e
859
+ }
860
+ );
861
+ }
862
+ function pa({
863
+ className: a,
864
+ onInput: t,
865
+ autosize: e = !1,
866
+ ...r
867
+ }) {
868
+ return /* @__PURE__ */ s(
869
+ "textarea",
870
+ {
871
+ "data-slot": "textarea",
872
+ onInput: t || ((n) => {
873
+ if (e) {
874
+ const l = n.currentTarget;
875
+ l.style.height = "auto", l.style.height = l.scrollHeight + "px";
876
+ }
877
+ }),
878
+ className: i(
879
+ "neo-base neo-input-focus",
880
+ "flex field-sizing-content transition-all",
881
+ "h-10 min-h-16 w-full min-w-0",
882
+ "placeholder:text-subtle",
883
+ "rounded-base border px-2.5 py-2",
884
+ "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
885
+ a
886
+ ),
887
+ ...r
888
+ }
889
+ );
890
+ }
891
+ function ct({ className: a, ...t }) {
892
+ return /* @__PURE__ */ s(
893
+ "div",
894
+ {
895
+ "data-slot": "input-group",
896
+ role: "group",
897
+ className: i(
898
+ "group/input-group",
899
+ "relative flex w-full min-w-0 items-center border-border h-10 rounded-base border shadow-none has-[>textarea]:h-auto",
900
+ "has-[>[data-align=block-end]]:p-1 has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:h-auto",
901
+ "has-[>[data-align=block-start]]:p-1 has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:h-auto",
902
+ a
903
+ ),
904
+ ...t
905
+ }
906
+ );
907
+ }
908
+ const pt = g(
909
+ "text-muted h-full gap-2 p-2 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 flex cursor-text items-center justify-center select-none",
910
+ {
911
+ variants: {
912
+ align: {
913
+ "inline-start": "mr-0.5 has-[>button]:mr-0 has-[>kbd]:mr-0 has-[>button]:-ml-0.75 has-[>kbd]:-ml-0.75 order-first",
914
+ "inline-end": "ml-0.5 has-[>button]:ml-0 has-[>kbd]:ml-0 has-[>button]:-mr-0.75 has-[>kbd]:-mr-0.75 order-last",
915
+ "block-start": "mb-1 [.border-b]:pb-3 order-first w-full justify-start",
916
+ "block-end": "mt-1 [.border-t]:pt-3 order-last w-full justify-start"
917
+ }
918
+ },
919
+ defaultVariants: {
920
+ align: "inline-start"
921
+ }
922
+ }
923
+ );
924
+ function gt({
925
+ className: a,
926
+ align: t = "inline-start",
927
+ ...e
928
+ }) {
929
+ return /* @__PURE__ */ s(
930
+ "div",
931
+ {
932
+ role: "group",
933
+ "data-slot": "input-group-addon",
934
+ "data-align": t,
935
+ className: i(pt({ align: t }), a),
936
+ onClick: (r) => {
937
+ r.target.closest("button") || r.currentTarget.parentElement?.querySelector("input")?.focus();
938
+ },
939
+ ...e
940
+ }
941
+ );
942
+ }
943
+ const mt = g("gap-2 text-sm flex items-center", {
944
+ variants: {
945
+ size: {
946
+ xs: "h-7 gap-1 rounded-sm px-1.5 py-0.5",
947
+ sm: "",
948
+ "icon-xs": "size-6 rounded-sm p-0 has-[>svg]:p-0",
949
+ "icon-sm": "size-10 p-0 has-[>svg]:p-0"
950
+ }
951
+ },
952
+ defaultVariants: {
953
+ size: "xs"
954
+ }
955
+ });
956
+ function ht({
957
+ className: a,
958
+ type: t = "button",
959
+ variant: e = "outline",
960
+ extrude: r = "xs",
961
+ size: o,
962
+ ...n
963
+ }) {
964
+ return /* @__PURE__ */ s(
965
+ na,
966
+ {
967
+ type: t,
968
+ "data-size": o,
969
+ variant: e,
970
+ extrude: r ?? null,
971
+ "aria-label": n["aria-label"] ?? "input-button",
972
+ className: i(mt({ size: o }), a),
973
+ ...n
974
+ }
975
+ );
976
+ }
977
+ function ft({ className: a, ...t }) {
978
+ return /* @__PURE__ */ s(
979
+ "span",
980
+ {
981
+ className: i(
982
+ "text-subtle gap-2 font-base flex items-center [&_svg]:pointer-events-none",
983
+ a
984
+ ),
985
+ ...t
986
+ }
987
+ );
988
+ }
989
+ function bt({
990
+ className: a,
991
+ ...t
992
+ }) {
993
+ return /* @__PURE__ */ s(
994
+ ca,
995
+ {
996
+ "data-slot": "input-group-control",
997
+ className: i(
998
+ "h-10 hover:border-border focus:border-border flex-1 bg-surface -m-0.5",
999
+ "group-has-[>[data-align=block-start]]/input-group:m-0",
1000
+ "group-has-[>[data-align=block-end]]/input-group:m-0",
1001
+ "group-has-[>[data-align=inline-start]]/input-group:pl-1.5",
1002
+ "group-has-[>[data-align=inline-end]]/input-group:pr-1.5",
1003
+ "group-has-[>[data-align=block-start]]/input-group:rounded-base",
1004
+ "group-has-[>[data-align=block-end]]/input-group:rounded-base",
1005
+ "group-has-[>[data-align=inline-start]]/input-group:rounded-l-none",
1006
+ "group-has-[>[data-align=inline-start]]/input-group:hover:rounded-l-sm",
1007
+ "group-has-[>[data-align=inline-start]]/input-group:focus:rounded-l-sm",
1008
+ "group-has-[>[data-align=inline-end]]/input-group:rounded-r-none",
1009
+ "group-has-[>[data-align=inline-end]]/input-group:hover:rounded-r-sm",
1010
+ "group-has-[>[data-align=inline-end]]/input-group:focus:rounded-r-sm",
1011
+ a
1012
+ ),
1013
+ ...t
1014
+ }
1015
+ );
1016
+ }
1017
+ function vt({
1018
+ className: a,
1019
+ ...t
1020
+ }) {
1021
+ return /* @__PURE__ */ s(
1022
+ pa,
1023
+ {
1024
+ "data-slot": "input-group-control",
1025
+ className: i(
1026
+ "h-auto hover:border-border focus:border-border flex-1 bg-surface",
1027
+ "group-has-[>[data-align=block-start]]/input-group:m-0",
1028
+ "group-has-[>[data-align=block-end]]/input-group:m-0",
1029
+ "group-has-[>[data-align=block-start]]/input-group:rounded-base",
1030
+ "group-has-[>[data-align=block-end]]/input-group:rounded-base",
1031
+ "group-has-[>[data-align=inline-start]]/input-group:rounded-l-none",
1032
+ "group-has-[>[data-align=inline-start]]/input-group:hover:rounded-l-base",
1033
+ "group-has-[>[data-align=inline-start]]/input-group:focus:rounded-l-base",
1034
+ "group-has-[>[data-align=inline-end]]/input-group:rounded-r-none",
1035
+ "group-has-[>[data-align=inline-end]]/input-group:hover:rounded-r-base",
1036
+ "group-has-[>[data-align=inline-end]]/input-group:focus:rounded-r-base",
1037
+ a
1038
+ ),
1039
+ ...t
1040
+ }
1041
+ );
1042
+ }
1043
+ const xt = g(
1044
+ "gap-2 leading-none group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed",
1045
+ {
1046
+ variants: {
1047
+ variant: {
1048
+ default: "",
1049
+ underline: "hover:underline hover:underline-offset-3 hover:decoration-2",
1050
+ destructive: "font-bold! text-accent-red"
1051
+ },
1052
+ size: {
1053
+ xs: "text-xs font-normal",
1054
+ sm: "text-sm font-medium",
1055
+ md: "text-base font-medium",
1056
+ lg: "text-lg font-semibold",
1057
+ xl: "text-xl font-semibold"
1058
+ }
1059
+ }
1060
+ }
1061
+ );
1062
+ function wt({
1063
+ size: a = "sm",
1064
+ variant: t,
1065
+ className: e,
1066
+ htmlFor: r,
1067
+ ...o
1068
+ }) {
1069
+ return /* @__PURE__ */ s(
1070
+ "label",
1071
+ {
1072
+ "data-slot": "label",
1073
+ htmlFor: r,
1074
+ className: i(xt({ size: a, variant: t }), e),
1075
+ ...o
1076
+ }
1077
+ );
1078
+ }
1079
+ const Q = g("group/progress flex flex-wrap", {
1080
+ variants: {
1081
+ size: {
1082
+ xs: "gap-1",
1083
+ sm: "gap-1",
1084
+ md: "gap-1",
1085
+ lg: "gap-2",
1086
+ xl: "gap-2"
1087
+ },
1088
+ raised: {
1089
+ default: "",
1090
+ xs: "*:-translate-0.5",
1091
+ sm: "*:-translate-0.75",
1092
+ md: "*:-translate-1",
1093
+ lg: "*:-translate-[4.75px]",
1094
+ xl: "*:-translate-[5.5px]"
1095
+ },
1096
+ stacked: {
1097
+ default: "[--stack-translate:--spacing(0)]",
1098
+ xs: "[--stack-translate:--spacing(0.5)] **:data-[value=100]:rounded-xl **:data-[value=100]:scale-x-101",
1099
+ sm: "[--stack-translate:3px] **:data-[value=100]:rounded-xl **:data-[value=100]:scale-x-101",
1100
+ md: "[--stack-translate:--spacing(1)] **:data-[value=100]:rounded-xl **:data-[value=100]:scale-x-101",
1101
+ lg: "[--stack-translate:4.75px] **:data-[value=100]:rounded-xl **:data-[value=100]:scale-x-101",
1102
+ xl: "[--stack-translate:5.5px] **:data-[value=100]:rounded-xl **:data-[value=100]:scale-x-101"
1103
+ }
1104
+ }
1105
+ });
1106
+ function zt(a) {
1107
+ const {
1108
+ size: t = "md",
1109
+ raised: e = "default",
1110
+ stacked: r = "default",
1111
+ className: o,
1112
+ children: n,
1113
+ ...l
1114
+ } = a;
1115
+ if (a.mode === "multiple") {
1116
+ const u = [...a.value].sort((c, p) => p.value - c.value);
1117
+ return /* @__PURE__ */ N(
1118
+ k.Root,
1119
+ {
1120
+ "data-slot": "progress",
1121
+ "data-size": t,
1122
+ "data-raised": e,
1123
+ "data-stacked": r,
1124
+ className: i(Q({ size: t, raised: e, stacked: r }), o),
1125
+ ...l,
1126
+ children: [
1127
+ n,
1128
+ /* @__PURE__ */ s(
1129
+ Z,
1130
+ {
1131
+ style: {
1132
+ marginTop: `calc(var(--stack-translate, 0px) * ${u.length - 1})`,
1133
+ transform: `translateX(calc(var(--stack-translate, 0px) * ${u.length - 1}))`
1134
+ },
1135
+ className: "grid grid-cols-1 *:row-start-1 *:col-start-1 *:row-end-1 *:col-end-1 items-end *:self-start",
1136
+ children: u.map((c, p) => /* @__PURE__ */ s(
1137
+ yt,
1138
+ {
1139
+ index: p,
1140
+ "data-value": c.value,
1141
+ ...c,
1142
+ children: /* @__PURE__ */ s(
1143
+ k.Value,
1144
+ {
1145
+ className: i(
1146
+ c.value < 5 ? "pr-0.5" : "",
1147
+ "text-muted leading-none font-heading tabular-nums h-full flex flex-row items-end justify-end gap-1 ml-auto my-auto",
1148
+ "group-data-[size=xs]/progress:hidden",
1149
+ "group-data-[size=sm]/progress:hidden",
1150
+ "group-data-[size=md]/progress:text-[11px]",
1151
+ "group-data-[size=lg]/progress:text-xs",
1152
+ "group-data-[size=xl]/progress:text-xs",
1153
+ "group-data-[size=md]/progress:pb-px group-data-[size=md]/progress:pr-1.25",
1154
+ "group-data-[size=lg]/progress:pb-1 group-data-[size=lg]/progress:pr-1.5 group-data-[size=lg]/progress:translate-y-px",
1155
+ "group-data-[size=xl]/progress:pb-1.75 group-data-[size=xl]/progress:pr-1.75 group-data-[size=xl]/progress:translate-y-0.5",
1156
+ "group-data-[stacked=default]/progress:translate-y-0 group-data-[stacked=default]/progress:items-center"
1157
+ ),
1158
+ "data-slot": "progress-indicator-group-value",
1159
+ children: () => /* @__PURE__ */ N(E, { children: [
1160
+ c.name && /* @__PURE__ */ s(
1161
+ "span",
1162
+ {
1163
+ className: "font-semibold line-clamp-1 opacity-0 -translate-y-10 transition-[opacity,translate] duration-200 hover:ease-in ease-out",
1164
+ "data-slot": "progress-name",
1165
+ children: c.name
1166
+ }
1167
+ ),
1168
+ c.value.toLocaleString("default", {
1169
+ minimumFractionDigits: 0,
1170
+ maximumFractionDigits: 2
1171
+ }),
1172
+ c.value < 5 ? "" : "%"
1173
+ ] })
1174
+ }
1175
+ )
1176
+ },
1177
+ p
1178
+ ))
1179
+ }
1180
+ )
1181
+ ]
1182
+ }
1183
+ );
1184
+ }
1185
+ return /* @__PURE__ */ N(
1186
+ k.Root,
1187
+ {
1188
+ ...l,
1189
+ value: a.value,
1190
+ "data-slot": "progress",
1191
+ "data-size": t,
1192
+ "data-raised": e,
1193
+ "data-stacked": r,
1194
+ className: i(Q({ size: t, raised: e, stacked: r }), o),
1195
+ children: [
1196
+ n,
1197
+ /* @__PURE__ */ s(Z, { children: /* @__PURE__ */ s(kt, { "data-value": a.value }) })
1198
+ ]
1199
+ }
1200
+ );
1201
+ }
1202
+ function Z({ className: a, ...t }) {
1203
+ return /* @__PURE__ */ s(
1204
+ k.Track,
1205
+ {
1206
+ className: i(
1207
+ "bg-surface border-2 rounded-full relative flex w-full items-center",
1208
+ "group-data-[raised=xs]/progress:shadow-xs",
1209
+ "group-data-[raised=sm]/progress:shadow-sm",
1210
+ "group-data-[raised=md]/progress:shadow-md",
1211
+ "group-data-[raised=lg]/progress:shadow-lg",
1212
+ "group-data-[raised=xl]/progress:shadow-xl",
1213
+ "group-data-[size=xs]/progress:h-3",
1214
+ "group-data-[size=sm]/progress:h-4",
1215
+ "group-data-[size=md]/progress:h-5",
1216
+ "group-data-[size=lg]/progress:h-6",
1217
+ "group-data-[size=xl]/progress:h-7",
1218
+ "group-data-[stacked=default]/progress:overflow-hidden",
1219
+ "overflow-visible",
1220
+ a
1221
+ ),
1222
+ "data-slot": "progress-track",
1223
+ ...t
1224
+ }
1225
+ );
1226
+ }
1227
+ function kt({
1228
+ className: a,
1229
+ ...t
1230
+ }) {
1231
+ return /* @__PURE__ */ s(
1232
+ k.Indicator,
1233
+ {
1234
+ "data-slot": "progress-indicator",
1235
+ className: i(
1236
+ "bg-main h-full transition-all overflow-hidden border-2 rounded-l-xl",
1237
+ "group-data-[stacked=default]/progress:rounded-l-none",
1238
+ "group-data-[stacked=default]/progress:border-0",
1239
+ "group-data-[stacked=xs]/progress:shadow-xs group-data-[stacked=xs]/progress:-translate-0.5",
1240
+ "group-data-[stacked=sm]/progress:shadow-sm group-data-[stacked=sm]/progress:-translate-0.75",
1241
+ "group-data-[stacked=md]/progress:shadow-md group-data-[stacked=md]/progress:-translate-1",
1242
+ "group-data-[stacked=lg]/progress:shadow-lg group-data-[stacked=lg]/progress:-translate-[4.75px]",
1243
+ "group-data-[stacked=xl]/progress:shadow-xl group-data-[stacked=xl]/progress:-translate-[5.5px]",
1244
+ a
1245
+ ),
1246
+ ...t
1247
+ }
1248
+ );
1249
+ }
1250
+ function yt({
1251
+ className: a,
1252
+ children: t,
1253
+ value: e,
1254
+ index: r,
1255
+ ...o
1256
+ }) {
1257
+ return /* @__PURE__ */ s(
1258
+ k.Indicator,
1259
+ {
1260
+ "data-slot": "progress-indicator-group",
1261
+ "data-value": e,
1262
+ "data-group": !0,
1263
+ className: i(
1264
+ "group/progress-indicator-group bg-main overflow-hidden transition-height duration-200 ease-in hover:ease-out border-2 rounded-l-xl",
1265
+ "group-data-[size=xs]/progress:h-2.5 group-data-[size=xs]/progress:hover:h-2.5 group-data-[stacked=default]/progress:group-data-[size=xs]/progress:hover:h-2.5",
1266
+ "group-data-[size=sm]/progress:h-3.5 group-data-[size=sm]/progress:hover:h-3.5 group-data-[stacked=default]/progress:group-data-[size=sm]/progress:hover:h-3.5",
1267
+ "group-data-[size=md]/progress:h-4.5 group-data-[size=md]/progress:hover:h-7.75 group-data-[stacked=default]/progress:group-data-[size=md]/progress:hover:h-4.5",
1268
+ "group-data-[size=lg]/progress:h-5.5 group-data-[size=lg]/progress:hover:h-9.75 group-data-[stacked=default]/progress:group-data-[size=lg]/progress:hover:h-5.5",
1269
+ "group-data-[size=xl]/progress:h-6.5 group-data-[size=xl]/progress:hover:h-11.25 group-data-[stacked=default]/progress:group-data-[size=xl]/progress:hover:h-6.5",
1270
+ "group-data-[stacked=default]/progress:rounded-none group-data-[stacked=default]/progress:border-0 group-data-[stacked=default]/progress:rounded-l-none",
1271
+ "group-data-[stacked=xs]/progress:shadow-xs group-data-[stacked=xs]/progress:-translate-0.5",
1272
+ "group-data-[stacked=sm]/progress:shadow-sm group-data-[stacked=sm]/progress:-translate-0.75",
1273
+ "group-data-[stacked=md]/progress:shadow-md group-data-[stacked=md]/progress:-translate-1",
1274
+ "group-data-[stacked=lg]/progress:shadow-lg group-data-[stacked=lg]/progress:-translate-[4.75px]",
1275
+ "group-data-[stacked=xl]/progress:shadow-xl group-data-[stacked=xl]/progress:-translate-[5.5px]",
1276
+ "hover:**:data-[slot=progress-value]:flex-wrap hover:**:text-foreground hover:**:**:data-[slot=progress-name]:opacity-100 hover:**:data-[slot=progress-name]:translate-0",
1277
+ a
1278
+ ),
1279
+ ...o,
1280
+ style: {
1281
+ minWidth: `${e}%`,
1282
+ maxWidth: `${e}%`,
1283
+ transform: `translateX(calc(var(--stack-translate, 0px) * -${r})) translateY(calc(var(--stack-translate, 0px) * -${r}))`
1284
+ },
1285
+ children: t
1286
+ }
1287
+ );
1288
+ }
1289
+ const Nt = g("bg-border shrink-0", {
1290
+ variants: {
1291
+ stroke: {
1292
+ thin: "border-0.5",
1293
+ regular: "border-1",
1294
+ thick: "border-2"
1295
+ },
1296
+ orientation: {
1297
+ horizontal: "h-px w-full",
1298
+ vertical: "w-px self-stretch"
1299
+ }
1300
+ },
1301
+ defaultVariants: {
1302
+ stroke: "regular",
1303
+ orientation: "horizontal"
1304
+ }
1305
+ });
1306
+ function Ct({
1307
+ className: a,
1308
+ orientation: t,
1309
+ stroke: e,
1310
+ ...r
1311
+ }) {
1312
+ return /* @__PURE__ */ s(
1313
+ Ea,
1314
+ {
1315
+ "data-slot": "separator",
1316
+ orientation: t,
1317
+ className: i(Nt({ orientation: t, stroke: e }), a),
1318
+ ...r
1319
+ }
1320
+ );
1321
+ }
1322
+ const Pt = g("bg-foreground/30 rounded-base", {
1323
+ variants: {
1324
+ variant: {
1325
+ circle: "aspect-square w-auto rounded-full",
1326
+ square: "aspect-square w-auto",
1327
+ default: "grow",
1328
+ text: "aspect-[1/19] w-auto rounded-full max-h-10"
1329
+ },
1330
+ animate: {
1331
+ true: "animate-pulse",
1332
+ false: ""
1333
+ }
1334
+ }
1335
+ });
1336
+ function Tt({
1337
+ variant: a = "default",
1338
+ animate: t = !0,
1339
+ className: e,
1340
+ ...r
1341
+ }) {
1342
+ return /* @__PURE__ */ s(
1343
+ "div",
1344
+ {
1345
+ "data-slot": "skeleton",
1346
+ className: i(Pt({ variant: a, animate: t }), e),
1347
+ ...r
1348
+ }
1349
+ );
1350
+ }
1351
+ const At = g(
1352
+ "neo-base neo-switch-focus relative cursor-pointer inline-flex items-center data-checked:bg-main data-unchecked:bg-surface shrink-0 border-2 border-border transition-[translate,box-shadow,color] aria-disabled:cursor-not-allowed aria-disabled:opacity-50",
1353
+ {
1354
+ variants: {
1355
+ size: {
1356
+ sm: "h-5 w-10",
1357
+ md: "h-6 w-12",
1358
+ lg: "h-7 w-14"
1359
+ },
1360
+ rounded: {
1361
+ none: "rounded-none",
1362
+ sm: "rounded-sm",
1363
+ md: "rounded-md",
1364
+ lg: "rounded-lg",
1365
+ full: "rounded-[999px]"
1366
+ }
1367
+ },
1368
+ defaultVariants: {
1369
+ size: "md",
1370
+ rounded: "full"
1371
+ }
1372
+ }
1373
+ );
1374
+ function Ot({
1375
+ className: a,
1376
+ size: t = "md",
1377
+ rounded: e = "full",
1378
+ onCheckedChange: r,
1379
+ ...o
1380
+ }) {
1381
+ const { trigger: n } = L();
1382
+ return /* @__PURE__ */ s(
1383
+ X.Root,
1384
+ {
1385
+ "data-slot": "switch",
1386
+ "data-size": t,
1387
+ "data-rounded": e,
1388
+ className: i(
1389
+ At({ size: t, rounded: e }),
1390
+ "peer group/switch",
1391
+ a
1392
+ ),
1393
+ "aria-label": o["aria-label"] ?? "switch",
1394
+ onCheckedChange: (l, u) => {
1395
+ n(ya), r?.(l, u);
1396
+ },
1397
+ ...o,
1398
+ children: /* @__PURE__ */ s(
1399
+ X.Thumb,
1400
+ {
1401
+ "data-slot": "switch-thumb",
1402
+ className: i(
1403
+ "bg-surface border-2 border-border pointer-events-none block transition-[translate] duration-300",
1404
+ "group-data-checked/switch:ml-px group-data-unchecked/switch:-ml-px",
1405
+ "group-data-[rounded=full]/switch:group-data-checked/switch:ml-0 group-data-[rounded=full]/switch:group-data-unchecked/switch:ml-0",
1406
+ "group-data-unchecked/switch:translate-x-1",
1407
+ "group-data-[size=sm]/switch:size-3",
1408
+ "group-data-[size=md]/switch:size-4",
1409
+ "group-data-[size=lg]/switch:size-5",
1410
+ "group-data-[size=sm]/switch:group-data-checked/switch:translate-x-5",
1411
+ "group-data-[size=md]/switch:group-data-checked/switch:translate-x-6",
1412
+ "group-data-[size=lg]/switch:group-data-checked/switch:translate-x-7",
1413
+ "group-data-[rounded=none]/switch:rounded-none",
1414
+ "group-data-[rounded=sm]/switch:rounded-sm",
1415
+ "group-data-[rounded=md]/switch:rounded-md",
1416
+ "group-data-[rounded=lg]/switch:rounded-lg",
1417
+ "group-data-[rounded=full]/switch:rounded-full"
1418
+ )
1419
+ }
1420
+ )
1421
+ }
1422
+ );
1423
+ }
1424
+ const It = g("w-full caption-bottom text-sm", {
1425
+ variants: {
1426
+ variant: {
1427
+ default: "",
1428
+ filled: "",
1429
+ lines: ""
1430
+ }
1431
+ }
1432
+ });
1433
+ function Et({
1434
+ className: a,
1435
+ variant: t = "default",
1436
+ ...e
1437
+ }) {
1438
+ return /* @__PURE__ */ s(
1439
+ "div",
1440
+ {
1441
+ "data-slot": "table-container",
1442
+ className: "relative w-full overflow-x-auto",
1443
+ children: /* @__PURE__ */ s(
1444
+ "table",
1445
+ {
1446
+ "data-slot": "table",
1447
+ "data-variant": t,
1448
+ className: i(It({ variant: t }), "group/table", a),
1449
+ ...e
1450
+ }
1451
+ )
1452
+ }
1453
+ );
1454
+ }
1455
+ function Rt({ className: a, ...t }) {
1456
+ return /* @__PURE__ */ s(
1457
+ "thead",
1458
+ {
1459
+ "data-slot": "table-header",
1460
+ className: i("[&_tr]:border-b font-heading", a),
1461
+ ...t
1462
+ }
1463
+ );
1464
+ }
1465
+ function _t({ className: a, ...t }) {
1466
+ return /* @__PURE__ */ s(
1467
+ "tbody",
1468
+ {
1469
+ "data-slot": "table-body",
1470
+ className: i("[&_tr:last-child]:border-0", a),
1471
+ ...t
1472
+ }
1473
+ );
1474
+ }
1475
+ function Vt({ className: a, ...t }) {
1476
+ return /* @__PURE__ */ s(
1477
+ "tfoot",
1478
+ {
1479
+ "data-slot": "table-footer",
1480
+ className: i(
1481
+ "*:bg-transparent border-t font-medium font-heading [&>tr]:last:border-b-0",
1482
+ "group-data-[variant=default]/table:bg-surface",
1483
+ "group-data-[variant=filled]/table:bg-main-secondary",
1484
+ "group-data-[variant=lines]/table:bg-surface",
1485
+ a
1486
+ ),
1487
+ ...t
1488
+ }
1489
+ );
1490
+ }
1491
+ function St({ className: a, ...t }) {
1492
+ return /* @__PURE__ */ s(
1493
+ "tr",
1494
+ {
1495
+ "data-slot": "table-row",
1496
+ className: i(
1497
+ "border-b transition-colors duration-300 ease",
1498
+ "group-data-[variant=default]/table:bg-surface",
1499
+ "group-data-[variant=default]/table:hover:even:bg-main",
1500
+ "group-data-[variant=default]/table:hover:odd:bg-main-secondary",
1501
+ "group-data-[variant=default]/table:data-[state=selected]:bg-subtle",
1502
+ "group-data-[variant=filled]/table:bg-main",
1503
+ "group-data-[variant=filled]/table:hover:odd:bg-surface",
1504
+ "group-data-[variant=filled]/table:hover:even:bg-main-secondary",
1505
+ "group-data-[variant=filled]/table:data-[state=selected]:bg-foreground/25",
1506
+ "group-data-[variant=filled]/table:last:border-b-2",
1507
+ "group-data-[variant=lines]/table:bg-surface",
1508
+ "group-data-[variant=lines]/table:hover:even:bg-main",
1509
+ "group-data-[variant=lines]/table:hover:odd:bg-main-secondary",
1510
+ "group-data-[variant=lines]/table:data-[state=selected]:bg-main/50",
1511
+ a
1512
+ ),
1513
+ ...t
1514
+ }
1515
+ );
1516
+ }
1517
+ function jt({ className: a, ...t }) {
1518
+ return /* @__PURE__ */ s(
1519
+ "th",
1520
+ {
1521
+ "data-slot": "table-head",
1522
+ className: i(
1523
+ "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0",
1524
+ "group-data-[variant=filled]/table:border-r-2 group-data-[variant=filled]/table:border-t-2 group-data-[variant=filled]/table:first:border-l-2",
1525
+ "group-data-[variant=lines]/table:not-last:border-r-2",
1526
+ a
1527
+ ),
1528
+ ...t
1529
+ }
1530
+ );
1531
+ }
1532
+ function Lt({ className: a, ...t }) {
1533
+ return /* @__PURE__ */ s(
1534
+ "td",
1535
+ {
1536
+ "data-slot": "table-cell",
1537
+ className: i(
1538
+ "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",
1539
+ "group-data-[variant=filled]/table:first:border-l-2 group-data-[variant=filled]/table:border-r-2",
1540
+ "group-data-[variant=lines]/table:not-last:border-r-2",
1541
+ a
1542
+ ),
1543
+ ...t
1544
+ }
1545
+ );
1546
+ }
1547
+ function $t({
1548
+ className: a,
1549
+ ...t
1550
+ }) {
1551
+ return /* @__PURE__ */ s(
1552
+ "caption",
1553
+ {
1554
+ "data-slot": "table-caption",
1555
+ className: i(
1556
+ "text-muted hover:text-foreground mt-4 text-sm font-heading",
1557
+ a
1558
+ ),
1559
+ ...t
1560
+ }
1561
+ );
1562
+ }
1563
+ const Bt = ["bindings", "formField", "ssr", "pdf"], Dt = ["children", "bindings", "ssr", "pdf"];
1564
+ function aa(a) {
1565
+ return {
1566
+ valueProp: a.valueProp,
1567
+ changeProp: a.changeProp,
1568
+ extract: a.extractor
1569
+ };
1570
+ }
1571
+ function Gt(a) {
1572
+ if (a)
1573
+ return typeof a == "object" && "default" in a ? Object.fromEntries(
1574
+ Object.entries(a).map(([t, e]) => [
1575
+ t,
1576
+ aa(e)
1577
+ ])
1578
+ ) : aa(a);
1579
+ }
1580
+ function Ut(a, { components: t = {}, controlledInputs: e = {} }) {
1581
+ const r = { ...a.components };
1582
+ for (const o of /* @__PURE__ */ new Set([...Object.keys(t), ...Object.keys(e)])) {
1583
+ const n = Object.hasOwn(r, o) ? r[o] : void 0, l = Object.hasOwn(t, o) ? t[o] : n?.component;
1584
+ if (l === void 0) continue;
1585
+ const u = Object.hasOwn(e, o) ? Gt(e[o]) : n?.controlled;
1586
+ r[o] = {
1587
+ ...n,
1588
+ component: l,
1589
+ controlled: u,
1590
+ capabilities: n?.capabilities ?? (u ? Bt : Dt)
1591
+ };
1592
+ }
1593
+ return { ...a, components: r };
1594
+ }
1595
+ const Ht = {
1596
+ [d.A]: ia,
1597
+ [d.H]: la,
1598
+ [d.P]: ua,
1599
+ [d.OL]: "ol",
1600
+ [d.UL]: "ul",
1601
+ [d.LI]: "li",
1602
+ [d.DIV]: "div",
1603
+ [d.SPAN]: "span",
1604
+ [d.IMAGE]: "img",
1605
+ [d.ACCORDION]: Da,
1606
+ [d.ACCORDION_ITEM]: Ga,
1607
+ [d.ACCORDION_TRIGGER]: Ua,
1608
+ [d.ACCORDION_CONTENT]: Ha,
1609
+ [d.ALERT]: Ma,
1610
+ [d.AVATAR]: Ka,
1611
+ [d.BADGE]: qa,
1612
+ [d.BUTTON]: na,
1613
+ [d.CARD]: Ja,
1614
+ [d.CARD_HEADER]: Qa,
1615
+ [d.CARD_TITLE]: Za,
1616
+ [d.CARD_DESCRIPTION]: at,
1617
+ [d.CARD_CONTENT]: rt,
1618
+ [d.CARD_FOOTER]: ot,
1619
+ [d.CARD_ACTION]: tt,
1620
+ [d.CARD_ICON]: et,
1621
+ [d.CHECKBOX]: dt,
1622
+ [d.COLLAPSIBLE]: nt,
1623
+ [d.COLLAPSIBLE_TRIGGER]: it,
1624
+ [d.COLLAPSIBLE_CONTENT]: lt,
1625
+ [d.OTP]: ut,
1626
+ [d.INPUT]: ca,
1627
+ [d.INPUT_GROUP]: ct,
1628
+ [d.INPUT_GROUP_TEXT]: ft,
1629
+ [d.INPUT_GROUP_ADDON]: gt,
1630
+ [d.INPUT_GROUP_INPUT]: bt,
1631
+ [d.INPUT_GROUP_BUTTON]: ht,
1632
+ [d.INPUT_GROUP_TEXTAREA]: vt,
1633
+ [d.LABEL]: wt,
1634
+ [d.LOADER]: Na,
1635
+ [d.PROGRESS]: zt,
1636
+ [d.SWITCH]: Ot,
1637
+ [d.SEPARATOR]: Ct,
1638
+ [d.SKELETON]: Tt,
1639
+ [d.TABLE]: Et,
1640
+ [d.TABLE_HEADER]: Rt,
1641
+ [d.TABLE_BODY]: _t,
1642
+ [d.TABLE_FOOTER]: Vt,
1643
+ [d.TABLE_HEAD]: jt,
1644
+ [d.TABLE_ROW]: St,
1645
+ [d.TABLE_CELL]: Lt,
1646
+ [d.TABLE_CAPTION]: $t,
1647
+ [d.TEXTAREA]: pa
1648
+ }, Ft = {
1649
+ [d.INPUT]: {
1650
+ text: {
1651
+ valueProp: "value",
1652
+ changeProp: "onChange",
1653
+ extractor: (a) => a.target.value
1654
+ },
1655
+ email: {
1656
+ valueProp: "value",
1657
+ changeProp: "onChange",
1658
+ extractor: (a) => a.target.value
1659
+ },
1660
+ password: {
1661
+ valueProp: "value",
1662
+ changeProp: "onChange",
1663
+ extractor: (a) => a.target.value
1664
+ },
1665
+ number: {
1666
+ valueProp: "value",
1667
+ changeProp: "onChange",
1668
+ // valueAsNumber is NaN (never nullish) for an empty or partial entry; keep the raw string then.
1669
+ extractor: (a) => Number.isNaN(a.target.valueAsNumber) ? a.target.value : a.target.valueAsNumber
1670
+ },
1671
+ default: {
1672
+ valueProp: "value",
1673
+ changeProp: "onChange",
1674
+ extractor: (a) => a.target.value
1675
+ }
1676
+ },
1677
+ // input-otp calls onChange with the new string, not an event.
1678
+ [d.OTP]: {
1679
+ valueProp: "value",
1680
+ changeProp: "onChange",
1681
+ extractor: (a) => a
1682
+ },
1683
+ [d.CHECKBOX]: {
1684
+ valueProp: "checked",
1685
+ changeProp: "onCheckedChange",
1686
+ extractor: (a) => a
1687
+ },
1688
+ [d.TEXTAREA]: {
1689
+ valueProp: "value",
1690
+ changeProp: "onChange",
1691
+ extractor: (a) => a.target.value
1692
+ },
1693
+ [d.INPUT_GROUP_INPUT]: {
1694
+ valueProp: "value",
1695
+ changeProp: "onChange",
1696
+ extractor: (a) => a.target.value
1697
+ },
1698
+ [d.INPUT_GROUP_TEXTAREA]: {
1699
+ valueProp: "value",
1700
+ changeProp: "onChange",
1701
+ extractor: (a) => a.target.value
1702
+ },
1703
+ [d.SWITCH]: {
1704
+ valueProp: "checked",
1705
+ changeProp: "onCheckedChange",
1706
+ extractor: (a) => a
1707
+ }
1708
+ }, Mt = Ut(
1709
+ {
1710
+ id: "pebble-ui",
1711
+ version: "1.0.0",
1712
+ namespace: "pebble",
1713
+ fallback: "div",
1714
+ components: {}
1715
+ },
1716
+ { components: Ht, controlledInputs: Ft }
1717
+ ), ga = sa(Mt);
1718
+ function Wt() {
1719
+ return da(ga);
1720
+ }
1721
+ const ma = sa("web");
1722
+ function ze() {
1723
+ return da(ma);
1724
+ }
1725
+ function ke({
1726
+ registry: a,
1727
+ render: t = "web",
1728
+ children: e
1729
+ }) {
1730
+ const r = Wt();
1731
+ return /* @__PURE__ */ s(ga.Provider, { value: a ?? r, children: /* @__PURE__ */ s(ma.Provider, { value: t, children: e }) });
1732
+ }
1733
+ const Kt = /* @__PURE__ */ new Set([
1734
+ "area",
1735
+ "base",
1736
+ "br",
1737
+ "col",
1738
+ "embed",
1739
+ "hr",
1740
+ "img",
1741
+ "input",
1742
+ "link",
1743
+ "meta",
1744
+ "param",
1745
+ "source",
1746
+ "track",
1747
+ "wbr"
1748
+ ]), O = (a, t, e) => `${a.type}-${e}-${t}`;
1749
+ function ta(a, t, e = void 0) {
1750
+ return t ? B(t).reduce((o, n) => {
1751
+ if (o != null)
1752
+ return o[C(n)];
1753
+ }, a) ?? e : a;
1754
+ }
1755
+ function ye(a, t, e) {
1756
+ if (!t) {
1757
+ Object.assign(a, e);
1758
+ return;
1759
+ }
1760
+ const r = B(t);
1761
+ let o = a;
1762
+ for (let n = 0; n < r.length - 1; n++) {
1763
+ const l = C(r[n]), u = C(r[n + 1]);
1764
+ o[l] ??= /^\d+$/.test(u) ? [] : {}, o = o[l];
1765
+ }
1766
+ o[C(r[r.length - 1])] = e;
1767
+ }
1768
+ function ha(a) {
1769
+ const t = a.match(/^[^.[]+/);
1770
+ return t ? t[0] : a;
1771
+ }
1772
+ function ea(a, t) {
1773
+ return !!t && Object.hasOwn(t, ha(a));
1774
+ }
1775
+ function ra(a, t) {
1776
+ if (!t) return a;
1777
+ const e = ha(a), r = t[e];
1778
+ return r == null ? a : r + a.slice(e.length);
1779
+ }
1780
+ const z = (a, t) => Va(a, t);
1781
+ function Ne(a, t) {
1782
+ const e = {};
1783
+ for (const { key: r, segments: o, numericNext: n } of a) {
1784
+ const l = t(r);
1785
+ if (o.length === 1) {
1786
+ e[r] = l;
1787
+ continue;
1788
+ }
1789
+ let u = e;
1790
+ for (let c = 0; c < o.length - 1; c++) {
1791
+ const p = o[c];
1792
+ (!(p in u) || typeof u[p] != "object" || u[p] === null) && (u[p] = n[c] ? [] : {}), u = u[p];
1793
+ }
1794
+ u[o[o.length - 1]] = l;
1795
+ }
1796
+ return e;
1797
+ }
1798
+ const Xt = (a, t) => {
1799
+ if (!t) return "div";
1800
+ if (Object.hasOwn(a.components, t))
1801
+ return a.components[t].component;
1802
+ if (a.fallback === "error")
1803
+ throw new Error(
1804
+ `Bonsai: unknown component type "${t}" in registry "${a.id}"@"${a.version}"`
1805
+ );
1806
+ return a.fallback && a.fallback !== "div" ? a.fallback : "div";
1807
+ }, fa = (a, t, e, r = {}) => {
1808
+ const o = {
1809
+ key: e,
1810
+ ...a.source?.args,
1811
+ ...r
1812
+ };
1813
+ for (const n of Object.keys(o))
1814
+ (a.dynamicArgs.has(n) || Object.hasOwn(r, n)) && (o[n] = z(o[n], t));
1815
+ return o;
1816
+ };
1817
+ function qt(a, t, e, r, o) {
1818
+ return r[a.changeProp] ? {} : {
1819
+ [a.changeProp]: (n) => o(t, a.extract(n)),
1820
+ [a.valueProp]: e
1821
+ };
1822
+ }
1823
+ const Yt = () => {
1824
+ };
1825
+ function Jt({
1826
+ node: a,
1827
+ dataSlice: t,
1828
+ elementKey: e,
1829
+ ElementType: r,
1830
+ ctrlInput: o,
1831
+ keyPath: n,
1832
+ storeValue: l,
1833
+ updateData: u,
1834
+ children: c
1835
+ }) {
1836
+ const p = qt(
1837
+ o,
1838
+ n,
1839
+ l,
1840
+ a.source?.args ?? {},
1841
+ u
1842
+ ), f = fa(a, t, e, p);
1843
+ return c !== void 0 ? R(r, f, c) : R(r, f);
1844
+ }
1845
+ function Qt(a, t, e) {
1846
+ if (!Object.hasOwn(a.components, t)) return;
1847
+ const r = a.components[t].controlled;
1848
+ if (r) {
1849
+ if (typeof r == "object" && "default" in r) {
1850
+ const o = e?.args?.type || "default", n = r;
1851
+ return (Object.hasOwn(n, o) ? n[o] : void 0) || n.default;
1852
+ }
1853
+ return r;
1854
+ }
1855
+ }
1856
+ function Ce(a, t) {
1857
+ return a === "pdf" || t === "div" ? "div" : "form";
1858
+ }
1859
+ function oa(a) {
1860
+ if (Array.isArray(a)) return a.map((t) => oa(t));
1861
+ if (a !== null && typeof a == "object") {
1862
+ const t = Object.getPrototypeOf(a);
1863
+ if (t === Object.prototype || t === null) {
1864
+ const e = {};
1865
+ for (const [r, o] of Object.entries(a))
1866
+ e[r] = oa(o);
1867
+ return e;
1868
+ }
1869
+ }
1870
+ return a;
1871
+ }
1872
+ function Pe(a, t, e, r, o, n, l, u) {
1873
+ const c = a.source;
1874
+ if (!c) return null;
1875
+ const p = u.dataSlice(a, r, o);
1876
+ if (a.isText)
1877
+ return z(c, p);
1878
+ try {
1879
+ const f = a.type;
1880
+ if (a.isIf)
1881
+ return z(c.args.condition, p) ? /* @__PURE__ */ s(E, { children: a.children.map(
1882
+ (v, y) => u.renderChild(
1883
+ v,
1884
+ y,
1885
+ `${e}-${t}-if`,
1886
+ r,
1887
+ O(v, y, `${e}-${t}-if`)
1888
+ )
1889
+ ) }) : null;
1890
+ if (a.isEach) {
1891
+ const m = a.each, { as: v, keyExpr: y, rawItemsPath: V } = m, D = z(c.args.items, p), ba = Array.isArray(D) ? D : [], va = V && !ea(V, r.valueScope) ? ra(V, r.scope) : "";
1892
+ return /* @__PURE__ */ s(E, { children: ba.map((G, U) => {
1893
+ const xa = u.rowCtx(r, o, G, U, m, va), H = y ? z(y, { ...p, [v]: G }) : U, F = `${e}-${t}-each-${H}`;
1894
+ return /* @__PURE__ */ s(wa, { children: a.children.map(
1895
+ (M, W) => u.renderChild(
1896
+ M,
1897
+ W,
1898
+ F,
1899
+ xa,
1900
+ O(M, W, F)
1901
+ )
1902
+ ) }, String(H));
1903
+ }) });
1904
+ }
1905
+ const w = Xt(n, f), T = O(a, t, e), x = Qt(n, f, c);
1906
+ let h;
1907
+ if (x) {
1908
+ const m = a.argPaths[x.valueProp];
1909
+ if (m !== void 0 && ea(m, r.valueScope))
1910
+ h = {
1911
+ keyPath: m,
1912
+ storeValue: ta(r.valueScope, m),
1913
+ readOnly: !0
1914
+ };
1915
+ else if (m !== void 0) {
1916
+ const v = ra(m, r.scope);
1917
+ h = {
1918
+ keyPath: v,
1919
+ storeValue: ta(o.data ?? o, v)
1920
+ };
1921
+ } else a.dynamicArgs.has(x.valueProp) && (h = {
1922
+ keyPath: "",
1923
+ storeValue: z(c.args[x.valueProp], p),
1924
+ readOnly: !0
1925
+ });
1926
+ }
1927
+ if (a.isImage) {
1928
+ const m = z(c.args?.src, p);
1929
+ if (m === "" || m == null) return null;
1930
+ }
1931
+ const _ = a.children.length > 0 ? a.children.map(
1932
+ (m, v) => u.renderChild(
1933
+ m,
1934
+ v,
1935
+ `${e}-${t}`,
1936
+ r,
1937
+ O(a, v, `${e}-${t}`)
1938
+ )
1939
+ ) : void 0, b = typeof w == "string" && Kt.has(w) ? void 0 : _;
1940
+ if (h && x)
1941
+ return /* @__PURE__ */ s(
1942
+ Jt,
1943
+ {
1944
+ node: a,
1945
+ dataSlice: p,
1946
+ elementKey: T,
1947
+ ElementType: w,
1948
+ ctrlInput: x,
1949
+ keyPath: h.keyPath,
1950
+ storeValue: h.storeValue,
1951
+ updateData: h.readOnly ? Yt : l,
1952
+ children: b
1953
+ }
1954
+ );
1955
+ const A = fa(a, p, T);
1956
+ return b !== void 0 ? R(w, A, b) : R(w, A);
1957
+ } catch (f) {
1958
+ return console.error(`Error at ${e}-${t}:`, f), null;
1959
+ }
1960
+ }
1961
+ export {
1962
+ ke as B,
1963
+ ct as I,
1964
+ Kt as V,
1965
+ Ft as a,
1966
+ Mt as b,
1967
+ Ht as c,
1968
+ we as d,
1969
+ xe as e,
1970
+ Ut as f,
1971
+ gt as g,
1972
+ bt as h,
1973
+ ve as i,
1974
+ Wt as j,
1975
+ Pe as k,
1976
+ Ne as l,
1977
+ ta as m,
1978
+ oa as n,
1979
+ Xt as o,
1980
+ O as p,
1981
+ fa as q,
1982
+ Ce as r,
1983
+ ye as s,
1984
+ ha as t,
1985
+ ze as u,
1986
+ ra as v,
1987
+ ga as w
1988
+ };
1989
+ //# sourceMappingURL=render-shared-Ci28BpkI.js.map