extended-dynamic-forms 0.1.0

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 (37) hide show
  1. package/README.md +583 -0
  2. package/dist/ExtendedForm.d.ts +4 -0
  3. package/dist/components/fields/AddressField.d.ts +4 -0
  4. package/dist/components/fields/CurrencyField.d.ts +4 -0
  5. package/dist/components/fields/PhoneField.d.ts +4 -0
  6. package/dist/components/index.d.ts +10 -0
  7. package/dist/components/ui/badge.d.ts +9 -0
  8. package/dist/components/ui/button.d.ts +11 -0
  9. package/dist/components/ui/card.d.ts +8 -0
  10. package/dist/components/ui/input.d.ts +5 -0
  11. package/dist/components/ui/label.d.ts +5 -0
  12. package/dist/components/ui/slider.d.ts +4 -0
  13. package/dist/events/FormEventContext.d.ts +20 -0
  14. package/dist/events/FormEventHub.d.ts +27 -0
  15. package/dist/events/FormEventManager.d.ts +10 -0
  16. package/dist/events/index.d.ts +4 -0
  17. package/dist/index.d.ts +11 -0
  18. package/dist/index.es.js +4748 -0
  19. package/dist/index.umd.js +50 -0
  20. package/dist/layouts/grid/GridLayout.d.ts +11 -0
  21. package/dist/layouts/horizontal/HorizontalLayout.d.ts +10 -0
  22. package/dist/layouts/index.d.ts +3 -0
  23. package/dist/layouts/vertical/VerticalLayout.d.ts +9 -0
  24. package/dist/lib/utils.d.ts +3 -0
  25. package/dist/style.css +1 -0
  26. package/dist/types/index.d.ts +47 -0
  27. package/dist/utils/formDataUtils.d.ts +22 -0
  28. package/dist/utils/index.d.ts +3 -0
  29. package/dist/utils/schemaUtils.d.ts +24 -0
  30. package/dist/utils/validationUtils.d.ts +26 -0
  31. package/dist/widgets/date/DateWidget.d.ts +4 -0
  32. package/dist/widgets/file/FileWidget.d.ts +4 -0
  33. package/dist/widgets/index.d.ts +14 -0
  34. package/dist/widgets/input/ColorWidget.d.ts +4 -0
  35. package/dist/widgets/input/RangeWidget.d.ts +4 -0
  36. package/dist/widgets/input/RatingWidget.d.ts +4 -0
  37. package/package.json +73 -0
@@ -0,0 +1,4748 @@
1
+ var Nr = Object.defineProperty;
2
+ var Tr = (e, t, r) => t in e ? Nr(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
+ var se = (e, t, r) => Tr(e, typeof t != "symbol" ? t + "" : t, r);
4
+ import * as y from "react";
5
+ import re, { createContext as Ar, useContext as Mr, forwardRef as Or, createElement as dt, useRef as wt, useMemo as Fr, useEffect as $r } from "react";
6
+ import "react-dom";
7
+ import Vr from "@rjsf/shadcn";
8
+ import Ir from "@rjsf/validator-ajv8";
9
+ var De = { exports: {} }, xe = {};
10
+ /**
11
+ * @license React
12
+ * react-jsx-runtime.production.min.js
13
+ *
14
+ * Copyright (c) Facebook, Inc. and its affiliates.
15
+ *
16
+ * This source code is licensed under the MIT license found in the
17
+ * LICENSE file in the root directory of this source tree.
18
+ */
19
+ var ft;
20
+ function zr() {
21
+ if (ft) return xe;
22
+ ft = 1;
23
+ var e = re, t = Symbol.for("react.element"), r = Symbol.for("react.fragment"), n = Object.prototype.hasOwnProperty, s = e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, i = { key: !0, ref: !0, __self: !0, __source: !0 };
24
+ function l(a, c, f) {
25
+ var p, d = {}, h = null, w = null;
26
+ f !== void 0 && (h = "" + f), c.key !== void 0 && (h = "" + c.key), c.ref !== void 0 && (w = c.ref);
27
+ for (p in c) n.call(c, p) && !i.hasOwnProperty(p) && (d[p] = c[p]);
28
+ if (a && a.defaultProps) for (p in c = a.defaultProps, c) d[p] === void 0 && (d[p] = c[p]);
29
+ return { $$typeof: t, type: a, key: h, ref: w, props: d, _owner: s.current };
30
+ }
31
+ return xe.Fragment = r, xe.jsx = l, xe.jsxs = l, xe;
32
+ }
33
+ var we = {};
34
+ /**
35
+ * @license React
36
+ * react-jsx-runtime.development.js
37
+ *
38
+ * Copyright (c) Facebook, Inc. and its affiliates.
39
+ *
40
+ * This source code is licensed under the MIT license found in the
41
+ * LICENSE file in the root directory of this source tree.
42
+ */
43
+ var pt;
44
+ function Dr() {
45
+ return pt || (pt = 1, process.env.NODE_ENV !== "production" && function() {
46
+ var e = re, t = Symbol.for("react.element"), r = Symbol.for("react.portal"), n = Symbol.for("react.fragment"), s = Symbol.for("react.strict_mode"), i = Symbol.for("react.profiler"), l = Symbol.for("react.provider"), a = Symbol.for("react.context"), c = Symbol.for("react.forward_ref"), f = Symbol.for("react.suspense"), p = Symbol.for("react.suspense_list"), d = Symbol.for("react.memo"), h = Symbol.for("react.lazy"), w = Symbol.for("react.offscreen"), S = Symbol.iterator, v = "@@iterator";
47
+ function g(o) {
48
+ if (o === null || typeof o != "object")
49
+ return null;
50
+ var m = S && o[S] || o[v];
51
+ return typeof m == "function" ? m : null;
52
+ }
53
+ var b = e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
54
+ function C(o) {
55
+ {
56
+ for (var m = arguments.length, x = new Array(m > 1 ? m - 1 : 0), R = 1; R < m; R++)
57
+ x[R - 1] = arguments[R];
58
+ j("error", o, x);
59
+ }
60
+ }
61
+ function j(o, m, x) {
62
+ {
63
+ var R = b.ReactDebugCurrentFrame, T = R.getStackAddendum();
64
+ T !== "" && (m += "%s", x = x.concat([T]));
65
+ var A = x.map(function(N) {
66
+ return String(N);
67
+ });
68
+ A.unshift("Warning: " + m), Function.prototype.apply.call(console[o], console, A);
69
+ }
70
+ }
71
+ var E = !1, V = !1, L = !1, Y = !1, oe = !1, te;
72
+ te = Symbol.for("react.module.reference");
73
+ function I(o) {
74
+ return !!(typeof o == "string" || typeof o == "function" || o === n || o === i || oe || o === s || o === f || o === p || Y || o === w || E || V || L || typeof o == "object" && o !== null && (o.$$typeof === h || o.$$typeof === d || o.$$typeof === l || o.$$typeof === a || o.$$typeof === c || // This needs to include all possible module reference object
75
+ // types supported by any Flight configuration anywhere since
76
+ // we don't know which Flight build this will end up being used
77
+ // with.
78
+ o.$$typeof === te || o.getModuleId !== void 0));
79
+ }
80
+ function O(o, m, x) {
81
+ var R = o.displayName;
82
+ if (R)
83
+ return R;
84
+ var T = m.displayName || m.name || "";
85
+ return T !== "" ? x + "(" + T + ")" : x;
86
+ }
87
+ function _(o) {
88
+ return o.displayName || "Context";
89
+ }
90
+ function z(o) {
91
+ if (o == null)
92
+ return null;
93
+ if (typeof o.tag == "number" && C("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof o == "function")
94
+ return o.displayName || o.name || null;
95
+ if (typeof o == "string")
96
+ return o;
97
+ switch (o) {
98
+ case n:
99
+ return "Fragment";
100
+ case r:
101
+ return "Portal";
102
+ case i:
103
+ return "Profiler";
104
+ case s:
105
+ return "StrictMode";
106
+ case f:
107
+ return "Suspense";
108
+ case p:
109
+ return "SuspenseList";
110
+ }
111
+ if (typeof o == "object")
112
+ switch (o.$$typeof) {
113
+ case a:
114
+ var m = o;
115
+ return _(m) + ".Consumer";
116
+ case l:
117
+ var x = o;
118
+ return _(x._context) + ".Provider";
119
+ case c:
120
+ return O(o, o.render, "ForwardRef");
121
+ case d:
122
+ var R = o.displayName || null;
123
+ return R !== null ? R : z(o.type) || "Memo";
124
+ case h: {
125
+ var T = o, A = T._payload, N = T._init;
126
+ try {
127
+ return z(N(A));
128
+ } catch {
129
+ return null;
130
+ }
131
+ }
132
+ }
133
+ return null;
134
+ }
135
+ var W = Object.assign, q = 0, G, J, H, Z, ve, Q, Ye;
136
+ function qe() {
137
+ }
138
+ qe.__reactDisabledLog = !0;
139
+ function nr() {
140
+ {
141
+ if (q === 0) {
142
+ G = console.log, J = console.info, H = console.warn, Z = console.error, ve = console.group, Q = console.groupCollapsed, Ye = console.groupEnd;
143
+ var o = {
144
+ configurable: !0,
145
+ enumerable: !0,
146
+ value: qe,
147
+ writable: !0
148
+ };
149
+ Object.defineProperties(console, {
150
+ info: o,
151
+ log: o,
152
+ warn: o,
153
+ error: o,
154
+ group: o,
155
+ groupCollapsed: o,
156
+ groupEnd: o
157
+ });
158
+ }
159
+ q++;
160
+ }
161
+ }
162
+ function or() {
163
+ {
164
+ if (q--, q === 0) {
165
+ var o = {
166
+ configurable: !0,
167
+ enumerable: !0,
168
+ writable: !0
169
+ };
170
+ Object.defineProperties(console, {
171
+ log: W({}, o, {
172
+ value: G
173
+ }),
174
+ info: W({}, o, {
175
+ value: J
176
+ }),
177
+ warn: W({}, o, {
178
+ value: H
179
+ }),
180
+ error: W({}, o, {
181
+ value: Z
182
+ }),
183
+ group: W({}, o, {
184
+ value: ve
185
+ }),
186
+ groupCollapsed: W({}, o, {
187
+ value: Q
188
+ }),
189
+ groupEnd: W({}, o, {
190
+ value: Ye
191
+ })
192
+ });
193
+ }
194
+ q < 0 && C("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
195
+ }
196
+ }
197
+ var Te = b.ReactCurrentDispatcher, Ae;
198
+ function Re(o, m, x) {
199
+ {
200
+ if (Ae === void 0)
201
+ try {
202
+ throw Error();
203
+ } catch (T) {
204
+ var R = T.stack.trim().match(/\n( *(at )?)/);
205
+ Ae = R && R[1] || "";
206
+ }
207
+ return `
208
+ ` + Ae + o;
209
+ }
210
+ }
211
+ var Me = !1, Ee;
212
+ {
213
+ var sr = typeof WeakMap == "function" ? WeakMap : Map;
214
+ Ee = new sr();
215
+ }
216
+ function Je(o, m) {
217
+ if (!o || Me)
218
+ return "";
219
+ {
220
+ var x = Ee.get(o);
221
+ if (x !== void 0)
222
+ return x;
223
+ }
224
+ var R;
225
+ Me = !0;
226
+ var T = Error.prepareStackTrace;
227
+ Error.prepareStackTrace = void 0;
228
+ var A;
229
+ A = Te.current, Te.current = null, nr();
230
+ try {
231
+ if (m) {
232
+ var N = function() {
233
+ throw Error();
234
+ };
235
+ if (Object.defineProperty(N.prototype, "props", {
236
+ set: function() {
237
+ throw Error();
238
+ }
239
+ }), typeof Reflect == "object" && Reflect.construct) {
240
+ try {
241
+ Reflect.construct(N, []);
242
+ } catch (U) {
243
+ R = U;
244
+ }
245
+ Reflect.construct(o, [], N);
246
+ } else {
247
+ try {
248
+ N.call();
249
+ } catch (U) {
250
+ R = U;
251
+ }
252
+ o.call(N.prototype);
253
+ }
254
+ } else {
255
+ try {
256
+ throw Error();
257
+ } catch (U) {
258
+ R = U;
259
+ }
260
+ o();
261
+ }
262
+ } catch (U) {
263
+ if (U && R && typeof U.stack == "string") {
264
+ for (var P = U.stack.split(`
265
+ `), B = R.stack.split(`
266
+ `), F = P.length - 1, $ = B.length - 1; F >= 1 && $ >= 0 && P[F] !== B[$]; )
267
+ $--;
268
+ for (; F >= 1 && $ >= 0; F--, $--)
269
+ if (P[F] !== B[$]) {
270
+ if (F !== 1 || $ !== 1)
271
+ do
272
+ if (F--, $--, $ < 0 || P[F] !== B[$]) {
273
+ var X = `
274
+ ` + P[F].replace(" at new ", " at ");
275
+ return o.displayName && X.includes("<anonymous>") && (X = X.replace("<anonymous>", o.displayName)), typeof o == "function" && Ee.set(o, X), X;
276
+ }
277
+ while (F >= 1 && $ >= 0);
278
+ break;
279
+ }
280
+ }
281
+ } finally {
282
+ Me = !1, Te.current = A, or(), Error.prepareStackTrace = T;
283
+ }
284
+ var fe = o ? o.displayName || o.name : "", ce = fe ? Re(fe) : "";
285
+ return typeof o == "function" && Ee.set(o, ce), ce;
286
+ }
287
+ function ir(o, m, x) {
288
+ return Je(o, !1);
289
+ }
290
+ function ar(o) {
291
+ var m = o.prototype;
292
+ return !!(m && m.isReactComponent);
293
+ }
294
+ function je(o, m, x) {
295
+ if (o == null)
296
+ return "";
297
+ if (typeof o == "function")
298
+ return Je(o, ar(o));
299
+ if (typeof o == "string")
300
+ return Re(o);
301
+ switch (o) {
302
+ case f:
303
+ return Re("Suspense");
304
+ case p:
305
+ return Re("SuspenseList");
306
+ }
307
+ if (typeof o == "object")
308
+ switch (o.$$typeof) {
309
+ case c:
310
+ return ir(o.render);
311
+ case d:
312
+ return je(o.type, m, x);
313
+ case h: {
314
+ var R = o, T = R._payload, A = R._init;
315
+ try {
316
+ return je(A(T), m, x);
317
+ } catch {
318
+ }
319
+ }
320
+ }
321
+ return "";
322
+ }
323
+ var ye = Object.prototype.hasOwnProperty, Qe = {}, Xe = b.ReactDebugCurrentFrame;
324
+ function ke(o) {
325
+ if (o) {
326
+ var m = o._owner, x = je(o.type, o._source, m ? m.type : null);
327
+ Xe.setExtraStackFrame(x);
328
+ } else
329
+ Xe.setExtraStackFrame(null);
330
+ }
331
+ function lr(o, m, x, R, T) {
332
+ {
333
+ var A = Function.call.bind(ye);
334
+ for (var N in o)
335
+ if (A(o, N)) {
336
+ var P = void 0;
337
+ try {
338
+ if (typeof o[N] != "function") {
339
+ var B = Error((R || "React class") + ": " + x + " type `" + N + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof o[N] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
340
+ throw B.name = "Invariant Violation", B;
341
+ }
342
+ P = o[N](m, N, R, x, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
343
+ } catch (F) {
344
+ P = F;
345
+ }
346
+ P && !(P instanceof Error) && (ke(T), C("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", R || "React class", x, N, typeof P), ke(null)), P instanceof Error && !(P.message in Qe) && (Qe[P.message] = !0, ke(T), C("Failed %s type: %s", x, P.message), ke(null));
347
+ }
348
+ }
349
+ }
350
+ var cr = Array.isArray;
351
+ function Oe(o) {
352
+ return cr(o);
353
+ }
354
+ function ur(o) {
355
+ {
356
+ var m = typeof Symbol == "function" && Symbol.toStringTag, x = m && o[Symbol.toStringTag] || o.constructor.name || "Object";
357
+ return x;
358
+ }
359
+ }
360
+ function dr(o) {
361
+ try {
362
+ return Ze(o), !1;
363
+ } catch {
364
+ return !0;
365
+ }
366
+ }
367
+ function Ze(o) {
368
+ return "" + o;
369
+ }
370
+ function et(o) {
371
+ if (dr(o))
372
+ return C("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", ur(o)), Ze(o);
373
+ }
374
+ var tt = b.ReactCurrentOwner, fr = {
375
+ key: !0,
376
+ ref: !0,
377
+ __self: !0,
378
+ __source: !0
379
+ }, rt, nt;
380
+ function pr(o) {
381
+ if (ye.call(o, "ref")) {
382
+ var m = Object.getOwnPropertyDescriptor(o, "ref").get;
383
+ if (m && m.isReactWarning)
384
+ return !1;
385
+ }
386
+ return o.ref !== void 0;
387
+ }
388
+ function mr(o) {
389
+ if (ye.call(o, "key")) {
390
+ var m = Object.getOwnPropertyDescriptor(o, "key").get;
391
+ if (m && m.isReactWarning)
392
+ return !1;
393
+ }
394
+ return o.key !== void 0;
395
+ }
396
+ function hr(o, m) {
397
+ typeof o.ref == "string" && tt.current;
398
+ }
399
+ function gr(o, m) {
400
+ {
401
+ var x = function() {
402
+ rt || (rt = !0, C("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", m));
403
+ };
404
+ x.isReactWarning = !0, Object.defineProperty(o, "key", {
405
+ get: x,
406
+ configurable: !0
407
+ });
408
+ }
409
+ }
410
+ function br(o, m) {
411
+ {
412
+ var x = function() {
413
+ nt || (nt = !0, C("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", m));
414
+ };
415
+ x.isReactWarning = !0, Object.defineProperty(o, "ref", {
416
+ get: x,
417
+ configurable: !0
418
+ });
419
+ }
420
+ }
421
+ var vr = function(o, m, x, R, T, A, N) {
422
+ var P = {
423
+ // This tag allows us to uniquely identify this as a React Element
424
+ $$typeof: t,
425
+ // Built-in properties that belong on the element
426
+ type: o,
427
+ key: m,
428
+ ref: x,
429
+ props: N,
430
+ // Record the component responsible for creating this element.
431
+ _owner: A
432
+ };
433
+ return P._store = {}, Object.defineProperty(P._store, "validated", {
434
+ configurable: !1,
435
+ enumerable: !1,
436
+ writable: !0,
437
+ value: !1
438
+ }), Object.defineProperty(P, "_self", {
439
+ configurable: !1,
440
+ enumerable: !1,
441
+ writable: !1,
442
+ value: R
443
+ }), Object.defineProperty(P, "_source", {
444
+ configurable: !1,
445
+ enumerable: !1,
446
+ writable: !1,
447
+ value: T
448
+ }), Object.freeze && (Object.freeze(P.props), Object.freeze(P)), P;
449
+ };
450
+ function yr(o, m, x, R, T) {
451
+ {
452
+ var A, N = {}, P = null, B = null;
453
+ x !== void 0 && (et(x), P = "" + x), mr(m) && (et(m.key), P = "" + m.key), pr(m) && (B = m.ref, hr(m, T));
454
+ for (A in m)
455
+ ye.call(m, A) && !fr.hasOwnProperty(A) && (N[A] = m[A]);
456
+ if (o && o.defaultProps) {
457
+ var F = o.defaultProps;
458
+ for (A in F)
459
+ N[A] === void 0 && (N[A] = F[A]);
460
+ }
461
+ if (P || B) {
462
+ var $ = typeof o == "function" ? o.displayName || o.name || "Unknown" : o;
463
+ P && gr(N, $), B && br(N, $);
464
+ }
465
+ return vr(o, P, B, T, R, tt.current, N);
466
+ }
467
+ }
468
+ var Fe = b.ReactCurrentOwner, ot = b.ReactDebugCurrentFrame;
469
+ function de(o) {
470
+ if (o) {
471
+ var m = o._owner, x = je(o.type, o._source, m ? m.type : null);
472
+ ot.setExtraStackFrame(x);
473
+ } else
474
+ ot.setExtraStackFrame(null);
475
+ }
476
+ var $e;
477
+ $e = !1;
478
+ function Ve(o) {
479
+ return typeof o == "object" && o !== null && o.$$typeof === t;
480
+ }
481
+ function st() {
482
+ {
483
+ if (Fe.current) {
484
+ var o = z(Fe.current.type);
485
+ if (o)
486
+ return `
487
+
488
+ Check the render method of \`` + o + "`.";
489
+ }
490
+ return "";
491
+ }
492
+ }
493
+ function xr(o) {
494
+ return "";
495
+ }
496
+ var it = {};
497
+ function wr(o) {
498
+ {
499
+ var m = st();
500
+ if (!m) {
501
+ var x = typeof o == "string" ? o : o.displayName || o.name;
502
+ x && (m = `
503
+
504
+ Check the top-level render call using <` + x + ">.");
505
+ }
506
+ return m;
507
+ }
508
+ }
509
+ function at(o, m) {
510
+ {
511
+ if (!o._store || o._store.validated || o.key != null)
512
+ return;
513
+ o._store.validated = !0;
514
+ var x = wr(m);
515
+ if (it[x])
516
+ return;
517
+ it[x] = !0;
518
+ var R = "";
519
+ o && o._owner && o._owner !== Fe.current && (R = " It was passed a child from " + z(o._owner.type) + "."), de(o), C('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', x, R), de(null);
520
+ }
521
+ }
522
+ function lt(o, m) {
523
+ {
524
+ if (typeof o != "object")
525
+ return;
526
+ if (Oe(o))
527
+ for (var x = 0; x < o.length; x++) {
528
+ var R = o[x];
529
+ Ve(R) && at(R, m);
530
+ }
531
+ else if (Ve(o))
532
+ o._store && (o._store.validated = !0);
533
+ else if (o) {
534
+ var T = g(o);
535
+ if (typeof T == "function" && T !== o.entries)
536
+ for (var A = T.call(o), N; !(N = A.next()).done; )
537
+ Ve(N.value) && at(N.value, m);
538
+ }
539
+ }
540
+ }
541
+ function Cr(o) {
542
+ {
543
+ var m = o.type;
544
+ if (m == null || typeof m == "string")
545
+ return;
546
+ var x;
547
+ if (typeof m == "function")
548
+ x = m.propTypes;
549
+ else if (typeof m == "object" && (m.$$typeof === c || // Note: Memo only checks outer props here.
550
+ // Inner props are checked in the reconciler.
551
+ m.$$typeof === d))
552
+ x = m.propTypes;
553
+ else
554
+ return;
555
+ if (x) {
556
+ var R = z(m);
557
+ lr(x, o.props, "prop", R, o);
558
+ } else if (m.PropTypes !== void 0 && !$e) {
559
+ $e = !0;
560
+ var T = z(m);
561
+ C("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", T || "Unknown");
562
+ }
563
+ typeof m.getDefaultProps == "function" && !m.getDefaultProps.isReactClassApproved && C("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
564
+ }
565
+ }
566
+ function Sr(o) {
567
+ {
568
+ for (var m = Object.keys(o.props), x = 0; x < m.length; x++) {
569
+ var R = m[x];
570
+ if (R !== "children" && R !== "key") {
571
+ de(o), C("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", R), de(null);
572
+ break;
573
+ }
574
+ }
575
+ o.ref !== null && (de(o), C("Invalid attribute `ref` supplied to `React.Fragment`."), de(null));
576
+ }
577
+ }
578
+ var ct = {};
579
+ function ut(o, m, x, R, T, A) {
580
+ {
581
+ var N = I(o);
582
+ if (!N) {
583
+ var P = "";
584
+ (o === void 0 || typeof o == "object" && o !== null && Object.keys(o).length === 0) && (P += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");
585
+ var B = xr();
586
+ B ? P += B : P += st();
587
+ var F;
588
+ o === null ? F = "null" : Oe(o) ? F = "array" : o !== void 0 && o.$$typeof === t ? (F = "<" + (z(o.type) || "Unknown") + " />", P = " Did you accidentally export a JSX literal instead of a component?") : F = typeof o, C("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", F, P);
589
+ }
590
+ var $ = yr(o, m, x, T, A);
591
+ if ($ == null)
592
+ return $;
593
+ if (N) {
594
+ var X = m.children;
595
+ if (X !== void 0)
596
+ if (R)
597
+ if (Oe(X)) {
598
+ for (var fe = 0; fe < X.length; fe++)
599
+ lt(X[fe], o);
600
+ Object.freeze && Object.freeze(X);
601
+ } else
602
+ C("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
603
+ else
604
+ lt(X, o);
605
+ }
606
+ if (ye.call(m, "key")) {
607
+ var ce = z(o), U = Object.keys(m).filter(function(Pr) {
608
+ return Pr !== "key";
609
+ }), Ie = U.length > 0 ? "{key: someKey, " + U.join(": ..., ") + ": ...}" : "{key: someKey}";
610
+ if (!ct[ce + Ie]) {
611
+ var _r = U.length > 0 ? "{" + U.join(": ..., ") + ": ...}" : "{}";
612
+ C(`A props object containing a "key" prop is being spread into JSX:
613
+ let props = %s;
614
+ <%s {...props} />
615
+ React keys must be passed directly to JSX without using spread:
616
+ let props = %s;
617
+ <%s key={someKey} {...props} />`, Ie, ce, _r, ce), ct[ce + Ie] = !0;
618
+ }
619
+ }
620
+ return o === n ? Sr($) : Cr($), $;
621
+ }
622
+ }
623
+ function Rr(o, m, x) {
624
+ return ut(o, m, x, !0);
625
+ }
626
+ function Er(o, m, x) {
627
+ return ut(o, m, x, !1);
628
+ }
629
+ var jr = Er, kr = Rr;
630
+ we.Fragment = n, we.jsx = jr, we.jsxs = kr;
631
+ }()), we;
632
+ }
633
+ process.env.NODE_ENV === "production" ? De.exports = zr() : De.exports = Dr();
634
+ var u = De.exports;
635
+ function Ct(e) {
636
+ var t, r, n = "";
637
+ if (typeof e == "string" || typeof e == "number") n += e;
638
+ else if (typeof e == "object") if (Array.isArray(e)) {
639
+ var s = e.length;
640
+ for (t = 0; t < s; t++) e[t] && (r = Ct(e[t])) && (n && (n += " "), n += r);
641
+ } else for (r in e) e[r] && (n && (n += " "), n += r);
642
+ return n;
643
+ }
644
+ function St() {
645
+ for (var e, t, r = 0, n = "", s = arguments.length; r < s; r++) (e = arguments[r]) && (t = Ct(e)) && (n && (n += " "), n += t);
646
+ return n;
647
+ }
648
+ const Ue = "-", Lr = (e) => {
649
+ const t = Br(e), {
650
+ conflictingClassGroups: r,
651
+ conflictingClassGroupModifiers: n
652
+ } = e;
653
+ return {
654
+ getClassGroupId: (l) => {
655
+ const a = l.split(Ue);
656
+ return a[0] === "" && a.length !== 1 && a.shift(), Rt(a, t) || Wr(l);
657
+ },
658
+ getConflictingClassGroupIds: (l, a) => {
659
+ const c = r[l] || [];
660
+ return a && n[l] ? [...c, ...n[l]] : c;
661
+ }
662
+ };
663
+ }, Rt = (e, t) => {
664
+ var l;
665
+ if (e.length === 0)
666
+ return t.classGroupId;
667
+ const r = e[0], n = t.nextPart.get(r), s = n ? Rt(e.slice(1), n) : void 0;
668
+ if (s)
669
+ return s;
670
+ if (t.validators.length === 0)
671
+ return;
672
+ const i = e.join(Ue);
673
+ return (l = t.validators.find(({
674
+ validator: a
675
+ }) => a(i))) == null ? void 0 : l.classGroupId;
676
+ }, mt = /^\[(.+)\]$/, Wr = (e) => {
677
+ if (mt.test(e)) {
678
+ const t = mt.exec(e)[1], r = t == null ? void 0 : t.substring(0, t.indexOf(":"));
679
+ if (r)
680
+ return "arbitrary.." + r;
681
+ }
682
+ }, Br = (e) => {
683
+ const {
684
+ theme: t,
685
+ prefix: r
686
+ } = e, n = {
687
+ nextPart: /* @__PURE__ */ new Map(),
688
+ validators: []
689
+ };
690
+ return Ur(Object.entries(e.classGroups), r).forEach(([i, l]) => {
691
+ Le(l, n, i, t);
692
+ }), n;
693
+ }, Le = (e, t, r, n) => {
694
+ e.forEach((s) => {
695
+ if (typeof s == "string") {
696
+ const i = s === "" ? t : ht(t, s);
697
+ i.classGroupId = r;
698
+ return;
699
+ }
700
+ if (typeof s == "function") {
701
+ if (Hr(s)) {
702
+ Le(s(n), t, r, n);
703
+ return;
704
+ }
705
+ t.validators.push({
706
+ validator: s,
707
+ classGroupId: r
708
+ });
709
+ return;
710
+ }
711
+ Object.entries(s).forEach(([i, l]) => {
712
+ Le(l, ht(t, i), r, n);
713
+ });
714
+ });
715
+ }, ht = (e, t) => {
716
+ let r = e;
717
+ return t.split(Ue).forEach((n) => {
718
+ r.nextPart.has(n) || r.nextPart.set(n, {
719
+ nextPart: /* @__PURE__ */ new Map(),
720
+ validators: []
721
+ }), r = r.nextPart.get(n);
722
+ }), r;
723
+ }, Hr = (e) => e.isThemeGetter, Ur = (e, t) => t ? e.map(([r, n]) => {
724
+ const s = n.map((i) => typeof i == "string" ? t + i : typeof i == "object" ? Object.fromEntries(Object.entries(i).map(([l, a]) => [t + l, a])) : i);
725
+ return [r, s];
726
+ }) : e, Gr = (e) => {
727
+ if (e < 1)
728
+ return {
729
+ get: () => {
730
+ },
731
+ set: () => {
732
+ }
733
+ };
734
+ let t = 0, r = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map();
735
+ const s = (i, l) => {
736
+ r.set(i, l), t++, t > e && (t = 0, n = r, r = /* @__PURE__ */ new Map());
737
+ };
738
+ return {
739
+ get(i) {
740
+ let l = r.get(i);
741
+ if (l !== void 0)
742
+ return l;
743
+ if ((l = n.get(i)) !== void 0)
744
+ return s(i, l), l;
745
+ },
746
+ set(i, l) {
747
+ r.has(i) ? r.set(i, l) : s(i, l);
748
+ }
749
+ };
750
+ }, Et = "!", Kr = (e) => {
751
+ const {
752
+ separator: t,
753
+ experimentalParseClassName: r
754
+ } = e, n = t.length === 1, s = t[0], i = t.length, l = (a) => {
755
+ const c = [];
756
+ let f = 0, p = 0, d;
757
+ for (let g = 0; g < a.length; g++) {
758
+ let b = a[g];
759
+ if (f === 0) {
760
+ if (b === s && (n || a.slice(g, g + i) === t)) {
761
+ c.push(a.slice(p, g)), p = g + i;
762
+ continue;
763
+ }
764
+ if (b === "/") {
765
+ d = g;
766
+ continue;
767
+ }
768
+ }
769
+ b === "[" ? f++ : b === "]" && f--;
770
+ }
771
+ const h = c.length === 0 ? a : a.substring(p), w = h.startsWith(Et), S = w ? h.substring(1) : h, v = d && d > p ? d - p : void 0;
772
+ return {
773
+ modifiers: c,
774
+ hasImportantModifier: w,
775
+ baseClassName: S,
776
+ maybePostfixModifierPosition: v
777
+ };
778
+ };
779
+ return r ? (a) => r({
780
+ className: a,
781
+ parseClassName: l
782
+ }) : l;
783
+ }, Yr = (e) => {
784
+ if (e.length <= 1)
785
+ return e;
786
+ const t = [];
787
+ let r = [];
788
+ return e.forEach((n) => {
789
+ n[0] === "[" ? (t.push(...r.sort(), n), r = []) : r.push(n);
790
+ }), t.push(...r.sort()), t;
791
+ }, qr = (e) => ({
792
+ cache: Gr(e.cacheSize),
793
+ parseClassName: Kr(e),
794
+ ...Lr(e)
795
+ }), Jr = /\s+/, Qr = (e, t) => {
796
+ const {
797
+ parseClassName: r,
798
+ getClassGroupId: n,
799
+ getConflictingClassGroupIds: s
800
+ } = t, i = [], l = e.trim().split(Jr);
801
+ let a = "";
802
+ for (let c = l.length - 1; c >= 0; c -= 1) {
803
+ const f = l[c], {
804
+ modifiers: p,
805
+ hasImportantModifier: d,
806
+ baseClassName: h,
807
+ maybePostfixModifierPosition: w
808
+ } = r(f);
809
+ let S = !!w, v = n(S ? h.substring(0, w) : h);
810
+ if (!v) {
811
+ if (!S) {
812
+ a = f + (a.length > 0 ? " " + a : a);
813
+ continue;
814
+ }
815
+ if (v = n(h), !v) {
816
+ a = f + (a.length > 0 ? " " + a : a);
817
+ continue;
818
+ }
819
+ S = !1;
820
+ }
821
+ const g = Yr(p).join(":"), b = d ? g + Et : g, C = b + v;
822
+ if (i.includes(C))
823
+ continue;
824
+ i.push(C);
825
+ const j = s(v, S);
826
+ for (let E = 0; E < j.length; ++E) {
827
+ const V = j[E];
828
+ i.push(b + V);
829
+ }
830
+ a = f + (a.length > 0 ? " " + a : a);
831
+ }
832
+ return a;
833
+ };
834
+ function Xr() {
835
+ let e = 0, t, r, n = "";
836
+ for (; e < arguments.length; )
837
+ (t = arguments[e++]) && (r = jt(t)) && (n && (n += " "), n += r);
838
+ return n;
839
+ }
840
+ const jt = (e) => {
841
+ if (typeof e == "string")
842
+ return e;
843
+ let t, r = "";
844
+ for (let n = 0; n < e.length; n++)
845
+ e[n] && (t = jt(e[n])) && (r && (r += " "), r += t);
846
+ return r;
847
+ };
848
+ function Zr(e, ...t) {
849
+ let r, n, s, i = l;
850
+ function l(c) {
851
+ const f = t.reduce((p, d) => d(p), e());
852
+ return r = qr(f), n = r.cache.get, s = r.cache.set, i = a, a(c);
853
+ }
854
+ function a(c) {
855
+ const f = n(c);
856
+ if (f)
857
+ return f;
858
+ const p = Qr(c, r);
859
+ return s(c, p), p;
860
+ }
861
+ return function() {
862
+ return i(Xr.apply(null, arguments));
863
+ };
864
+ }
865
+ const M = (e) => {
866
+ const t = (r) => r[e] || [];
867
+ return t.isThemeGetter = !0, t;
868
+ }, kt = /^\[(?:([a-z-]+):)?(.+)\]$/i, en = /^\d+\/\d+$/, tn = /* @__PURE__ */ new Set(["px", "full", "screen"]), rn = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, nn = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, on = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, sn = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, an = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, ne = (e) => me(e) || tn.has(e) || en.test(e), ie = (e) => he(e, "length", hn), me = (e) => !!e && !Number.isNaN(Number(e)), ze = (e) => he(e, "number", me), Ce = (e) => !!e && Number.isInteger(Number(e)), ln = (e) => e.endsWith("%") && me(e.slice(0, -1)), k = (e) => kt.test(e), ae = (e) => rn.test(e), cn = /* @__PURE__ */ new Set(["length", "size", "percentage"]), un = (e) => he(e, cn, _t), dn = (e) => he(e, "position", _t), fn = /* @__PURE__ */ new Set(["image", "url"]), pn = (e) => he(e, fn, bn), mn = (e) => he(e, "", gn), Se = () => !0, he = (e, t, r) => {
869
+ const n = kt.exec(e);
870
+ return n ? n[1] ? typeof t == "string" ? n[1] === t : t.has(n[1]) : r(n[2]) : !1;
871
+ }, hn = (e) => (
872
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
873
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
874
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
875
+ nn.test(e) && !on.test(e)
876
+ ), _t = () => !1, gn = (e) => sn.test(e), bn = (e) => an.test(e), vn = () => {
877
+ const e = M("colors"), t = M("spacing"), r = M("blur"), n = M("brightness"), s = M("borderColor"), i = M("borderRadius"), l = M("borderSpacing"), a = M("borderWidth"), c = M("contrast"), f = M("grayscale"), p = M("hueRotate"), d = M("invert"), h = M("gap"), w = M("gradientColorStops"), S = M("gradientColorStopPositions"), v = M("inset"), g = M("margin"), b = M("opacity"), C = M("padding"), j = M("saturate"), E = M("scale"), V = M("sepia"), L = M("skew"), Y = M("space"), oe = M("translate"), te = () => ["auto", "contain", "none"], I = () => ["auto", "hidden", "clip", "visible", "scroll"], O = () => ["auto", k, t], _ = () => [k, t], z = () => ["", ne, ie], W = () => ["auto", me, k], q = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"], G = () => ["solid", "dashed", "dotted", "double", "none"], J = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], H = () => ["start", "end", "center", "between", "around", "evenly", "stretch"], Z = () => ["", "0", k], ve = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], Q = () => [me, k];
878
+ return {
879
+ cacheSize: 500,
880
+ separator: ":",
881
+ theme: {
882
+ colors: [Se],
883
+ spacing: [ne, ie],
884
+ blur: ["none", "", ae, k],
885
+ brightness: Q(),
886
+ borderColor: [e],
887
+ borderRadius: ["none", "", "full", ae, k],
888
+ borderSpacing: _(),
889
+ borderWidth: z(),
890
+ contrast: Q(),
891
+ grayscale: Z(),
892
+ hueRotate: Q(),
893
+ invert: Z(),
894
+ gap: _(),
895
+ gradientColorStops: [e],
896
+ gradientColorStopPositions: [ln, ie],
897
+ inset: O(),
898
+ margin: O(),
899
+ opacity: Q(),
900
+ padding: _(),
901
+ saturate: Q(),
902
+ scale: Q(),
903
+ sepia: Z(),
904
+ skew: Q(),
905
+ space: _(),
906
+ translate: _()
907
+ },
908
+ classGroups: {
909
+ // Layout
910
+ /**
911
+ * Aspect Ratio
912
+ * @see https://tailwindcss.com/docs/aspect-ratio
913
+ */
914
+ aspect: [{
915
+ aspect: ["auto", "square", "video", k]
916
+ }],
917
+ /**
918
+ * Container
919
+ * @see https://tailwindcss.com/docs/container
920
+ */
921
+ container: ["container"],
922
+ /**
923
+ * Columns
924
+ * @see https://tailwindcss.com/docs/columns
925
+ */
926
+ columns: [{
927
+ columns: [ae]
928
+ }],
929
+ /**
930
+ * Break After
931
+ * @see https://tailwindcss.com/docs/break-after
932
+ */
933
+ "break-after": [{
934
+ "break-after": ve()
935
+ }],
936
+ /**
937
+ * Break Before
938
+ * @see https://tailwindcss.com/docs/break-before
939
+ */
940
+ "break-before": [{
941
+ "break-before": ve()
942
+ }],
943
+ /**
944
+ * Break Inside
945
+ * @see https://tailwindcss.com/docs/break-inside
946
+ */
947
+ "break-inside": [{
948
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
949
+ }],
950
+ /**
951
+ * Box Decoration Break
952
+ * @see https://tailwindcss.com/docs/box-decoration-break
953
+ */
954
+ "box-decoration": [{
955
+ "box-decoration": ["slice", "clone"]
956
+ }],
957
+ /**
958
+ * Box Sizing
959
+ * @see https://tailwindcss.com/docs/box-sizing
960
+ */
961
+ box: [{
962
+ box: ["border", "content"]
963
+ }],
964
+ /**
965
+ * Display
966
+ * @see https://tailwindcss.com/docs/display
967
+ */
968
+ display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"],
969
+ /**
970
+ * Floats
971
+ * @see https://tailwindcss.com/docs/float
972
+ */
973
+ float: [{
974
+ float: ["right", "left", "none", "start", "end"]
975
+ }],
976
+ /**
977
+ * Clear
978
+ * @see https://tailwindcss.com/docs/clear
979
+ */
980
+ clear: [{
981
+ clear: ["left", "right", "both", "none", "start", "end"]
982
+ }],
983
+ /**
984
+ * Isolation
985
+ * @see https://tailwindcss.com/docs/isolation
986
+ */
987
+ isolation: ["isolate", "isolation-auto"],
988
+ /**
989
+ * Object Fit
990
+ * @see https://tailwindcss.com/docs/object-fit
991
+ */
992
+ "object-fit": [{
993
+ object: ["contain", "cover", "fill", "none", "scale-down"]
994
+ }],
995
+ /**
996
+ * Object Position
997
+ * @see https://tailwindcss.com/docs/object-position
998
+ */
999
+ "object-position": [{
1000
+ object: [...q(), k]
1001
+ }],
1002
+ /**
1003
+ * Overflow
1004
+ * @see https://tailwindcss.com/docs/overflow
1005
+ */
1006
+ overflow: [{
1007
+ overflow: I()
1008
+ }],
1009
+ /**
1010
+ * Overflow X
1011
+ * @see https://tailwindcss.com/docs/overflow
1012
+ */
1013
+ "overflow-x": [{
1014
+ "overflow-x": I()
1015
+ }],
1016
+ /**
1017
+ * Overflow Y
1018
+ * @see https://tailwindcss.com/docs/overflow
1019
+ */
1020
+ "overflow-y": [{
1021
+ "overflow-y": I()
1022
+ }],
1023
+ /**
1024
+ * Overscroll Behavior
1025
+ * @see https://tailwindcss.com/docs/overscroll-behavior
1026
+ */
1027
+ overscroll: [{
1028
+ overscroll: te()
1029
+ }],
1030
+ /**
1031
+ * Overscroll Behavior X
1032
+ * @see https://tailwindcss.com/docs/overscroll-behavior
1033
+ */
1034
+ "overscroll-x": [{
1035
+ "overscroll-x": te()
1036
+ }],
1037
+ /**
1038
+ * Overscroll Behavior Y
1039
+ * @see https://tailwindcss.com/docs/overscroll-behavior
1040
+ */
1041
+ "overscroll-y": [{
1042
+ "overscroll-y": te()
1043
+ }],
1044
+ /**
1045
+ * Position
1046
+ * @see https://tailwindcss.com/docs/position
1047
+ */
1048
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
1049
+ /**
1050
+ * Top / Right / Bottom / Left
1051
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1052
+ */
1053
+ inset: [{
1054
+ inset: [v]
1055
+ }],
1056
+ /**
1057
+ * Right / Left
1058
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1059
+ */
1060
+ "inset-x": [{
1061
+ "inset-x": [v]
1062
+ }],
1063
+ /**
1064
+ * Top / Bottom
1065
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1066
+ */
1067
+ "inset-y": [{
1068
+ "inset-y": [v]
1069
+ }],
1070
+ /**
1071
+ * Start
1072
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1073
+ */
1074
+ start: [{
1075
+ start: [v]
1076
+ }],
1077
+ /**
1078
+ * End
1079
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1080
+ */
1081
+ end: [{
1082
+ end: [v]
1083
+ }],
1084
+ /**
1085
+ * Top
1086
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1087
+ */
1088
+ top: [{
1089
+ top: [v]
1090
+ }],
1091
+ /**
1092
+ * Right
1093
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1094
+ */
1095
+ right: [{
1096
+ right: [v]
1097
+ }],
1098
+ /**
1099
+ * Bottom
1100
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1101
+ */
1102
+ bottom: [{
1103
+ bottom: [v]
1104
+ }],
1105
+ /**
1106
+ * Left
1107
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1108
+ */
1109
+ left: [{
1110
+ left: [v]
1111
+ }],
1112
+ /**
1113
+ * Visibility
1114
+ * @see https://tailwindcss.com/docs/visibility
1115
+ */
1116
+ visibility: ["visible", "invisible", "collapse"],
1117
+ /**
1118
+ * Z-Index
1119
+ * @see https://tailwindcss.com/docs/z-index
1120
+ */
1121
+ z: [{
1122
+ z: ["auto", Ce, k]
1123
+ }],
1124
+ // Flexbox and Grid
1125
+ /**
1126
+ * Flex Basis
1127
+ * @see https://tailwindcss.com/docs/flex-basis
1128
+ */
1129
+ basis: [{
1130
+ basis: O()
1131
+ }],
1132
+ /**
1133
+ * Flex Direction
1134
+ * @see https://tailwindcss.com/docs/flex-direction
1135
+ */
1136
+ "flex-direction": [{
1137
+ flex: ["row", "row-reverse", "col", "col-reverse"]
1138
+ }],
1139
+ /**
1140
+ * Flex Wrap
1141
+ * @see https://tailwindcss.com/docs/flex-wrap
1142
+ */
1143
+ "flex-wrap": [{
1144
+ flex: ["wrap", "wrap-reverse", "nowrap"]
1145
+ }],
1146
+ /**
1147
+ * Flex
1148
+ * @see https://tailwindcss.com/docs/flex
1149
+ */
1150
+ flex: [{
1151
+ flex: ["1", "auto", "initial", "none", k]
1152
+ }],
1153
+ /**
1154
+ * Flex Grow
1155
+ * @see https://tailwindcss.com/docs/flex-grow
1156
+ */
1157
+ grow: [{
1158
+ grow: Z()
1159
+ }],
1160
+ /**
1161
+ * Flex Shrink
1162
+ * @see https://tailwindcss.com/docs/flex-shrink
1163
+ */
1164
+ shrink: [{
1165
+ shrink: Z()
1166
+ }],
1167
+ /**
1168
+ * Order
1169
+ * @see https://tailwindcss.com/docs/order
1170
+ */
1171
+ order: [{
1172
+ order: ["first", "last", "none", Ce, k]
1173
+ }],
1174
+ /**
1175
+ * Grid Template Columns
1176
+ * @see https://tailwindcss.com/docs/grid-template-columns
1177
+ */
1178
+ "grid-cols": [{
1179
+ "grid-cols": [Se]
1180
+ }],
1181
+ /**
1182
+ * Grid Column Start / End
1183
+ * @see https://tailwindcss.com/docs/grid-column
1184
+ */
1185
+ "col-start-end": [{
1186
+ col: ["auto", {
1187
+ span: ["full", Ce, k]
1188
+ }, k]
1189
+ }],
1190
+ /**
1191
+ * Grid Column Start
1192
+ * @see https://tailwindcss.com/docs/grid-column
1193
+ */
1194
+ "col-start": [{
1195
+ "col-start": W()
1196
+ }],
1197
+ /**
1198
+ * Grid Column End
1199
+ * @see https://tailwindcss.com/docs/grid-column
1200
+ */
1201
+ "col-end": [{
1202
+ "col-end": W()
1203
+ }],
1204
+ /**
1205
+ * Grid Template Rows
1206
+ * @see https://tailwindcss.com/docs/grid-template-rows
1207
+ */
1208
+ "grid-rows": [{
1209
+ "grid-rows": [Se]
1210
+ }],
1211
+ /**
1212
+ * Grid Row Start / End
1213
+ * @see https://tailwindcss.com/docs/grid-row
1214
+ */
1215
+ "row-start-end": [{
1216
+ row: ["auto", {
1217
+ span: [Ce, k]
1218
+ }, k]
1219
+ }],
1220
+ /**
1221
+ * Grid Row Start
1222
+ * @see https://tailwindcss.com/docs/grid-row
1223
+ */
1224
+ "row-start": [{
1225
+ "row-start": W()
1226
+ }],
1227
+ /**
1228
+ * Grid Row End
1229
+ * @see https://tailwindcss.com/docs/grid-row
1230
+ */
1231
+ "row-end": [{
1232
+ "row-end": W()
1233
+ }],
1234
+ /**
1235
+ * Grid Auto Flow
1236
+ * @see https://tailwindcss.com/docs/grid-auto-flow
1237
+ */
1238
+ "grid-flow": [{
1239
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
1240
+ }],
1241
+ /**
1242
+ * Grid Auto Columns
1243
+ * @see https://tailwindcss.com/docs/grid-auto-columns
1244
+ */
1245
+ "auto-cols": [{
1246
+ "auto-cols": ["auto", "min", "max", "fr", k]
1247
+ }],
1248
+ /**
1249
+ * Grid Auto Rows
1250
+ * @see https://tailwindcss.com/docs/grid-auto-rows
1251
+ */
1252
+ "auto-rows": [{
1253
+ "auto-rows": ["auto", "min", "max", "fr", k]
1254
+ }],
1255
+ /**
1256
+ * Gap
1257
+ * @see https://tailwindcss.com/docs/gap
1258
+ */
1259
+ gap: [{
1260
+ gap: [h]
1261
+ }],
1262
+ /**
1263
+ * Gap X
1264
+ * @see https://tailwindcss.com/docs/gap
1265
+ */
1266
+ "gap-x": [{
1267
+ "gap-x": [h]
1268
+ }],
1269
+ /**
1270
+ * Gap Y
1271
+ * @see https://tailwindcss.com/docs/gap
1272
+ */
1273
+ "gap-y": [{
1274
+ "gap-y": [h]
1275
+ }],
1276
+ /**
1277
+ * Justify Content
1278
+ * @see https://tailwindcss.com/docs/justify-content
1279
+ */
1280
+ "justify-content": [{
1281
+ justify: ["normal", ...H()]
1282
+ }],
1283
+ /**
1284
+ * Justify Items
1285
+ * @see https://tailwindcss.com/docs/justify-items
1286
+ */
1287
+ "justify-items": [{
1288
+ "justify-items": ["start", "end", "center", "stretch"]
1289
+ }],
1290
+ /**
1291
+ * Justify Self
1292
+ * @see https://tailwindcss.com/docs/justify-self
1293
+ */
1294
+ "justify-self": [{
1295
+ "justify-self": ["auto", "start", "end", "center", "stretch"]
1296
+ }],
1297
+ /**
1298
+ * Align Content
1299
+ * @see https://tailwindcss.com/docs/align-content
1300
+ */
1301
+ "align-content": [{
1302
+ content: ["normal", ...H(), "baseline"]
1303
+ }],
1304
+ /**
1305
+ * Align Items
1306
+ * @see https://tailwindcss.com/docs/align-items
1307
+ */
1308
+ "align-items": [{
1309
+ items: ["start", "end", "center", "baseline", "stretch"]
1310
+ }],
1311
+ /**
1312
+ * Align Self
1313
+ * @see https://tailwindcss.com/docs/align-self
1314
+ */
1315
+ "align-self": [{
1316
+ self: ["auto", "start", "end", "center", "stretch", "baseline"]
1317
+ }],
1318
+ /**
1319
+ * Place Content
1320
+ * @see https://tailwindcss.com/docs/place-content
1321
+ */
1322
+ "place-content": [{
1323
+ "place-content": [...H(), "baseline"]
1324
+ }],
1325
+ /**
1326
+ * Place Items
1327
+ * @see https://tailwindcss.com/docs/place-items
1328
+ */
1329
+ "place-items": [{
1330
+ "place-items": ["start", "end", "center", "baseline", "stretch"]
1331
+ }],
1332
+ /**
1333
+ * Place Self
1334
+ * @see https://tailwindcss.com/docs/place-self
1335
+ */
1336
+ "place-self": [{
1337
+ "place-self": ["auto", "start", "end", "center", "stretch"]
1338
+ }],
1339
+ // Spacing
1340
+ /**
1341
+ * Padding
1342
+ * @see https://tailwindcss.com/docs/padding
1343
+ */
1344
+ p: [{
1345
+ p: [C]
1346
+ }],
1347
+ /**
1348
+ * Padding X
1349
+ * @see https://tailwindcss.com/docs/padding
1350
+ */
1351
+ px: [{
1352
+ px: [C]
1353
+ }],
1354
+ /**
1355
+ * Padding Y
1356
+ * @see https://tailwindcss.com/docs/padding
1357
+ */
1358
+ py: [{
1359
+ py: [C]
1360
+ }],
1361
+ /**
1362
+ * Padding Start
1363
+ * @see https://tailwindcss.com/docs/padding
1364
+ */
1365
+ ps: [{
1366
+ ps: [C]
1367
+ }],
1368
+ /**
1369
+ * Padding End
1370
+ * @see https://tailwindcss.com/docs/padding
1371
+ */
1372
+ pe: [{
1373
+ pe: [C]
1374
+ }],
1375
+ /**
1376
+ * Padding Top
1377
+ * @see https://tailwindcss.com/docs/padding
1378
+ */
1379
+ pt: [{
1380
+ pt: [C]
1381
+ }],
1382
+ /**
1383
+ * Padding Right
1384
+ * @see https://tailwindcss.com/docs/padding
1385
+ */
1386
+ pr: [{
1387
+ pr: [C]
1388
+ }],
1389
+ /**
1390
+ * Padding Bottom
1391
+ * @see https://tailwindcss.com/docs/padding
1392
+ */
1393
+ pb: [{
1394
+ pb: [C]
1395
+ }],
1396
+ /**
1397
+ * Padding Left
1398
+ * @see https://tailwindcss.com/docs/padding
1399
+ */
1400
+ pl: [{
1401
+ pl: [C]
1402
+ }],
1403
+ /**
1404
+ * Margin
1405
+ * @see https://tailwindcss.com/docs/margin
1406
+ */
1407
+ m: [{
1408
+ m: [g]
1409
+ }],
1410
+ /**
1411
+ * Margin X
1412
+ * @see https://tailwindcss.com/docs/margin
1413
+ */
1414
+ mx: [{
1415
+ mx: [g]
1416
+ }],
1417
+ /**
1418
+ * Margin Y
1419
+ * @see https://tailwindcss.com/docs/margin
1420
+ */
1421
+ my: [{
1422
+ my: [g]
1423
+ }],
1424
+ /**
1425
+ * Margin Start
1426
+ * @see https://tailwindcss.com/docs/margin
1427
+ */
1428
+ ms: [{
1429
+ ms: [g]
1430
+ }],
1431
+ /**
1432
+ * Margin End
1433
+ * @see https://tailwindcss.com/docs/margin
1434
+ */
1435
+ me: [{
1436
+ me: [g]
1437
+ }],
1438
+ /**
1439
+ * Margin Top
1440
+ * @see https://tailwindcss.com/docs/margin
1441
+ */
1442
+ mt: [{
1443
+ mt: [g]
1444
+ }],
1445
+ /**
1446
+ * Margin Right
1447
+ * @see https://tailwindcss.com/docs/margin
1448
+ */
1449
+ mr: [{
1450
+ mr: [g]
1451
+ }],
1452
+ /**
1453
+ * Margin Bottom
1454
+ * @see https://tailwindcss.com/docs/margin
1455
+ */
1456
+ mb: [{
1457
+ mb: [g]
1458
+ }],
1459
+ /**
1460
+ * Margin Left
1461
+ * @see https://tailwindcss.com/docs/margin
1462
+ */
1463
+ ml: [{
1464
+ ml: [g]
1465
+ }],
1466
+ /**
1467
+ * Space Between X
1468
+ * @see https://tailwindcss.com/docs/space
1469
+ */
1470
+ "space-x": [{
1471
+ "space-x": [Y]
1472
+ }],
1473
+ /**
1474
+ * Space Between X Reverse
1475
+ * @see https://tailwindcss.com/docs/space
1476
+ */
1477
+ "space-x-reverse": ["space-x-reverse"],
1478
+ /**
1479
+ * Space Between Y
1480
+ * @see https://tailwindcss.com/docs/space
1481
+ */
1482
+ "space-y": [{
1483
+ "space-y": [Y]
1484
+ }],
1485
+ /**
1486
+ * Space Between Y Reverse
1487
+ * @see https://tailwindcss.com/docs/space
1488
+ */
1489
+ "space-y-reverse": ["space-y-reverse"],
1490
+ // Sizing
1491
+ /**
1492
+ * Width
1493
+ * @see https://tailwindcss.com/docs/width
1494
+ */
1495
+ w: [{
1496
+ w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", k, t]
1497
+ }],
1498
+ /**
1499
+ * Min-Width
1500
+ * @see https://tailwindcss.com/docs/min-width
1501
+ */
1502
+ "min-w": [{
1503
+ "min-w": [k, t, "min", "max", "fit"]
1504
+ }],
1505
+ /**
1506
+ * Max-Width
1507
+ * @see https://tailwindcss.com/docs/max-width
1508
+ */
1509
+ "max-w": [{
1510
+ "max-w": [k, t, "none", "full", "min", "max", "fit", "prose", {
1511
+ screen: [ae]
1512
+ }, ae]
1513
+ }],
1514
+ /**
1515
+ * Height
1516
+ * @see https://tailwindcss.com/docs/height
1517
+ */
1518
+ h: [{
1519
+ h: [k, t, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
1520
+ }],
1521
+ /**
1522
+ * Min-Height
1523
+ * @see https://tailwindcss.com/docs/min-height
1524
+ */
1525
+ "min-h": [{
1526
+ "min-h": [k, t, "min", "max", "fit", "svh", "lvh", "dvh"]
1527
+ }],
1528
+ /**
1529
+ * Max-Height
1530
+ * @see https://tailwindcss.com/docs/max-height
1531
+ */
1532
+ "max-h": [{
1533
+ "max-h": [k, t, "min", "max", "fit", "svh", "lvh", "dvh"]
1534
+ }],
1535
+ /**
1536
+ * Size
1537
+ * @see https://tailwindcss.com/docs/size
1538
+ */
1539
+ size: [{
1540
+ size: [k, t, "auto", "min", "max", "fit"]
1541
+ }],
1542
+ // Typography
1543
+ /**
1544
+ * Font Size
1545
+ * @see https://tailwindcss.com/docs/font-size
1546
+ */
1547
+ "font-size": [{
1548
+ text: ["base", ae, ie]
1549
+ }],
1550
+ /**
1551
+ * Font Smoothing
1552
+ * @see https://tailwindcss.com/docs/font-smoothing
1553
+ */
1554
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
1555
+ /**
1556
+ * Font Style
1557
+ * @see https://tailwindcss.com/docs/font-style
1558
+ */
1559
+ "font-style": ["italic", "not-italic"],
1560
+ /**
1561
+ * Font Weight
1562
+ * @see https://tailwindcss.com/docs/font-weight
1563
+ */
1564
+ "font-weight": [{
1565
+ font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", ze]
1566
+ }],
1567
+ /**
1568
+ * Font Family
1569
+ * @see https://tailwindcss.com/docs/font-family
1570
+ */
1571
+ "font-family": [{
1572
+ font: [Se]
1573
+ }],
1574
+ /**
1575
+ * Font Variant Numeric
1576
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1577
+ */
1578
+ "fvn-normal": ["normal-nums"],
1579
+ /**
1580
+ * Font Variant Numeric
1581
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1582
+ */
1583
+ "fvn-ordinal": ["ordinal"],
1584
+ /**
1585
+ * Font Variant Numeric
1586
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1587
+ */
1588
+ "fvn-slashed-zero": ["slashed-zero"],
1589
+ /**
1590
+ * Font Variant Numeric
1591
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1592
+ */
1593
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
1594
+ /**
1595
+ * Font Variant Numeric
1596
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1597
+ */
1598
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
1599
+ /**
1600
+ * Font Variant Numeric
1601
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1602
+ */
1603
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1604
+ /**
1605
+ * Letter Spacing
1606
+ * @see https://tailwindcss.com/docs/letter-spacing
1607
+ */
1608
+ tracking: [{
1609
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", k]
1610
+ }],
1611
+ /**
1612
+ * Line Clamp
1613
+ * @see https://tailwindcss.com/docs/line-clamp
1614
+ */
1615
+ "line-clamp": [{
1616
+ "line-clamp": ["none", me, ze]
1617
+ }],
1618
+ /**
1619
+ * Line Height
1620
+ * @see https://tailwindcss.com/docs/line-height
1621
+ */
1622
+ leading: [{
1623
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose", ne, k]
1624
+ }],
1625
+ /**
1626
+ * List Style Image
1627
+ * @see https://tailwindcss.com/docs/list-style-image
1628
+ */
1629
+ "list-image": [{
1630
+ "list-image": ["none", k]
1631
+ }],
1632
+ /**
1633
+ * List Style Type
1634
+ * @see https://tailwindcss.com/docs/list-style-type
1635
+ */
1636
+ "list-style-type": [{
1637
+ list: ["none", "disc", "decimal", k]
1638
+ }],
1639
+ /**
1640
+ * List Style Position
1641
+ * @see https://tailwindcss.com/docs/list-style-position
1642
+ */
1643
+ "list-style-position": [{
1644
+ list: ["inside", "outside"]
1645
+ }],
1646
+ /**
1647
+ * Placeholder Color
1648
+ * @deprecated since Tailwind CSS v3.0.0
1649
+ * @see https://tailwindcss.com/docs/placeholder-color
1650
+ */
1651
+ "placeholder-color": [{
1652
+ placeholder: [e]
1653
+ }],
1654
+ /**
1655
+ * Placeholder Opacity
1656
+ * @see https://tailwindcss.com/docs/placeholder-opacity
1657
+ */
1658
+ "placeholder-opacity": [{
1659
+ "placeholder-opacity": [b]
1660
+ }],
1661
+ /**
1662
+ * Text Alignment
1663
+ * @see https://tailwindcss.com/docs/text-align
1664
+ */
1665
+ "text-alignment": [{
1666
+ text: ["left", "center", "right", "justify", "start", "end"]
1667
+ }],
1668
+ /**
1669
+ * Text Color
1670
+ * @see https://tailwindcss.com/docs/text-color
1671
+ */
1672
+ "text-color": [{
1673
+ text: [e]
1674
+ }],
1675
+ /**
1676
+ * Text Opacity
1677
+ * @see https://tailwindcss.com/docs/text-opacity
1678
+ */
1679
+ "text-opacity": [{
1680
+ "text-opacity": [b]
1681
+ }],
1682
+ /**
1683
+ * Text Decoration
1684
+ * @see https://tailwindcss.com/docs/text-decoration
1685
+ */
1686
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1687
+ /**
1688
+ * Text Decoration Style
1689
+ * @see https://tailwindcss.com/docs/text-decoration-style
1690
+ */
1691
+ "text-decoration-style": [{
1692
+ decoration: [...G(), "wavy"]
1693
+ }],
1694
+ /**
1695
+ * Text Decoration Thickness
1696
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
1697
+ */
1698
+ "text-decoration-thickness": [{
1699
+ decoration: ["auto", "from-font", ne, ie]
1700
+ }],
1701
+ /**
1702
+ * Text Underline Offset
1703
+ * @see https://tailwindcss.com/docs/text-underline-offset
1704
+ */
1705
+ "underline-offset": [{
1706
+ "underline-offset": ["auto", ne, k]
1707
+ }],
1708
+ /**
1709
+ * Text Decoration Color
1710
+ * @see https://tailwindcss.com/docs/text-decoration-color
1711
+ */
1712
+ "text-decoration-color": [{
1713
+ decoration: [e]
1714
+ }],
1715
+ /**
1716
+ * Text Transform
1717
+ * @see https://tailwindcss.com/docs/text-transform
1718
+ */
1719
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1720
+ /**
1721
+ * Text Overflow
1722
+ * @see https://tailwindcss.com/docs/text-overflow
1723
+ */
1724
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1725
+ /**
1726
+ * Text Wrap
1727
+ * @see https://tailwindcss.com/docs/text-wrap
1728
+ */
1729
+ "text-wrap": [{
1730
+ text: ["wrap", "nowrap", "balance", "pretty"]
1731
+ }],
1732
+ /**
1733
+ * Text Indent
1734
+ * @see https://tailwindcss.com/docs/text-indent
1735
+ */
1736
+ indent: [{
1737
+ indent: _()
1738
+ }],
1739
+ /**
1740
+ * Vertical Alignment
1741
+ * @see https://tailwindcss.com/docs/vertical-align
1742
+ */
1743
+ "vertical-align": [{
1744
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", k]
1745
+ }],
1746
+ /**
1747
+ * Whitespace
1748
+ * @see https://tailwindcss.com/docs/whitespace
1749
+ */
1750
+ whitespace: [{
1751
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1752
+ }],
1753
+ /**
1754
+ * Word Break
1755
+ * @see https://tailwindcss.com/docs/word-break
1756
+ */
1757
+ break: [{
1758
+ break: ["normal", "words", "all", "keep"]
1759
+ }],
1760
+ /**
1761
+ * Hyphens
1762
+ * @see https://tailwindcss.com/docs/hyphens
1763
+ */
1764
+ hyphens: [{
1765
+ hyphens: ["none", "manual", "auto"]
1766
+ }],
1767
+ /**
1768
+ * Content
1769
+ * @see https://tailwindcss.com/docs/content
1770
+ */
1771
+ content: [{
1772
+ content: ["none", k]
1773
+ }],
1774
+ // Backgrounds
1775
+ /**
1776
+ * Background Attachment
1777
+ * @see https://tailwindcss.com/docs/background-attachment
1778
+ */
1779
+ "bg-attachment": [{
1780
+ bg: ["fixed", "local", "scroll"]
1781
+ }],
1782
+ /**
1783
+ * Background Clip
1784
+ * @see https://tailwindcss.com/docs/background-clip
1785
+ */
1786
+ "bg-clip": [{
1787
+ "bg-clip": ["border", "padding", "content", "text"]
1788
+ }],
1789
+ /**
1790
+ * Background Opacity
1791
+ * @deprecated since Tailwind CSS v3.0.0
1792
+ * @see https://tailwindcss.com/docs/background-opacity
1793
+ */
1794
+ "bg-opacity": [{
1795
+ "bg-opacity": [b]
1796
+ }],
1797
+ /**
1798
+ * Background Origin
1799
+ * @see https://tailwindcss.com/docs/background-origin
1800
+ */
1801
+ "bg-origin": [{
1802
+ "bg-origin": ["border", "padding", "content"]
1803
+ }],
1804
+ /**
1805
+ * Background Position
1806
+ * @see https://tailwindcss.com/docs/background-position
1807
+ */
1808
+ "bg-position": [{
1809
+ bg: [...q(), dn]
1810
+ }],
1811
+ /**
1812
+ * Background Repeat
1813
+ * @see https://tailwindcss.com/docs/background-repeat
1814
+ */
1815
+ "bg-repeat": [{
1816
+ bg: ["no-repeat", {
1817
+ repeat: ["", "x", "y", "round", "space"]
1818
+ }]
1819
+ }],
1820
+ /**
1821
+ * Background Size
1822
+ * @see https://tailwindcss.com/docs/background-size
1823
+ */
1824
+ "bg-size": [{
1825
+ bg: ["auto", "cover", "contain", un]
1826
+ }],
1827
+ /**
1828
+ * Background Image
1829
+ * @see https://tailwindcss.com/docs/background-image
1830
+ */
1831
+ "bg-image": [{
1832
+ bg: ["none", {
1833
+ "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1834
+ }, pn]
1835
+ }],
1836
+ /**
1837
+ * Background Color
1838
+ * @see https://tailwindcss.com/docs/background-color
1839
+ */
1840
+ "bg-color": [{
1841
+ bg: [e]
1842
+ }],
1843
+ /**
1844
+ * Gradient Color Stops From Position
1845
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1846
+ */
1847
+ "gradient-from-pos": [{
1848
+ from: [S]
1849
+ }],
1850
+ /**
1851
+ * Gradient Color Stops Via Position
1852
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1853
+ */
1854
+ "gradient-via-pos": [{
1855
+ via: [S]
1856
+ }],
1857
+ /**
1858
+ * Gradient Color Stops To Position
1859
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1860
+ */
1861
+ "gradient-to-pos": [{
1862
+ to: [S]
1863
+ }],
1864
+ /**
1865
+ * Gradient Color Stops From
1866
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1867
+ */
1868
+ "gradient-from": [{
1869
+ from: [w]
1870
+ }],
1871
+ /**
1872
+ * Gradient Color Stops Via
1873
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1874
+ */
1875
+ "gradient-via": [{
1876
+ via: [w]
1877
+ }],
1878
+ /**
1879
+ * Gradient Color Stops To
1880
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1881
+ */
1882
+ "gradient-to": [{
1883
+ to: [w]
1884
+ }],
1885
+ // Borders
1886
+ /**
1887
+ * Border Radius
1888
+ * @see https://tailwindcss.com/docs/border-radius
1889
+ */
1890
+ rounded: [{
1891
+ rounded: [i]
1892
+ }],
1893
+ /**
1894
+ * Border Radius Start
1895
+ * @see https://tailwindcss.com/docs/border-radius
1896
+ */
1897
+ "rounded-s": [{
1898
+ "rounded-s": [i]
1899
+ }],
1900
+ /**
1901
+ * Border Radius End
1902
+ * @see https://tailwindcss.com/docs/border-radius
1903
+ */
1904
+ "rounded-e": [{
1905
+ "rounded-e": [i]
1906
+ }],
1907
+ /**
1908
+ * Border Radius Top
1909
+ * @see https://tailwindcss.com/docs/border-radius
1910
+ */
1911
+ "rounded-t": [{
1912
+ "rounded-t": [i]
1913
+ }],
1914
+ /**
1915
+ * Border Radius Right
1916
+ * @see https://tailwindcss.com/docs/border-radius
1917
+ */
1918
+ "rounded-r": [{
1919
+ "rounded-r": [i]
1920
+ }],
1921
+ /**
1922
+ * Border Radius Bottom
1923
+ * @see https://tailwindcss.com/docs/border-radius
1924
+ */
1925
+ "rounded-b": [{
1926
+ "rounded-b": [i]
1927
+ }],
1928
+ /**
1929
+ * Border Radius Left
1930
+ * @see https://tailwindcss.com/docs/border-radius
1931
+ */
1932
+ "rounded-l": [{
1933
+ "rounded-l": [i]
1934
+ }],
1935
+ /**
1936
+ * Border Radius Start Start
1937
+ * @see https://tailwindcss.com/docs/border-radius
1938
+ */
1939
+ "rounded-ss": [{
1940
+ "rounded-ss": [i]
1941
+ }],
1942
+ /**
1943
+ * Border Radius Start End
1944
+ * @see https://tailwindcss.com/docs/border-radius
1945
+ */
1946
+ "rounded-se": [{
1947
+ "rounded-se": [i]
1948
+ }],
1949
+ /**
1950
+ * Border Radius End End
1951
+ * @see https://tailwindcss.com/docs/border-radius
1952
+ */
1953
+ "rounded-ee": [{
1954
+ "rounded-ee": [i]
1955
+ }],
1956
+ /**
1957
+ * Border Radius End Start
1958
+ * @see https://tailwindcss.com/docs/border-radius
1959
+ */
1960
+ "rounded-es": [{
1961
+ "rounded-es": [i]
1962
+ }],
1963
+ /**
1964
+ * Border Radius Top Left
1965
+ * @see https://tailwindcss.com/docs/border-radius
1966
+ */
1967
+ "rounded-tl": [{
1968
+ "rounded-tl": [i]
1969
+ }],
1970
+ /**
1971
+ * Border Radius Top Right
1972
+ * @see https://tailwindcss.com/docs/border-radius
1973
+ */
1974
+ "rounded-tr": [{
1975
+ "rounded-tr": [i]
1976
+ }],
1977
+ /**
1978
+ * Border Radius Bottom Right
1979
+ * @see https://tailwindcss.com/docs/border-radius
1980
+ */
1981
+ "rounded-br": [{
1982
+ "rounded-br": [i]
1983
+ }],
1984
+ /**
1985
+ * Border Radius Bottom Left
1986
+ * @see https://tailwindcss.com/docs/border-radius
1987
+ */
1988
+ "rounded-bl": [{
1989
+ "rounded-bl": [i]
1990
+ }],
1991
+ /**
1992
+ * Border Width
1993
+ * @see https://tailwindcss.com/docs/border-width
1994
+ */
1995
+ "border-w": [{
1996
+ border: [a]
1997
+ }],
1998
+ /**
1999
+ * Border Width X
2000
+ * @see https://tailwindcss.com/docs/border-width
2001
+ */
2002
+ "border-w-x": [{
2003
+ "border-x": [a]
2004
+ }],
2005
+ /**
2006
+ * Border Width Y
2007
+ * @see https://tailwindcss.com/docs/border-width
2008
+ */
2009
+ "border-w-y": [{
2010
+ "border-y": [a]
2011
+ }],
2012
+ /**
2013
+ * Border Width Start
2014
+ * @see https://tailwindcss.com/docs/border-width
2015
+ */
2016
+ "border-w-s": [{
2017
+ "border-s": [a]
2018
+ }],
2019
+ /**
2020
+ * Border Width End
2021
+ * @see https://tailwindcss.com/docs/border-width
2022
+ */
2023
+ "border-w-e": [{
2024
+ "border-e": [a]
2025
+ }],
2026
+ /**
2027
+ * Border Width Top
2028
+ * @see https://tailwindcss.com/docs/border-width
2029
+ */
2030
+ "border-w-t": [{
2031
+ "border-t": [a]
2032
+ }],
2033
+ /**
2034
+ * Border Width Right
2035
+ * @see https://tailwindcss.com/docs/border-width
2036
+ */
2037
+ "border-w-r": [{
2038
+ "border-r": [a]
2039
+ }],
2040
+ /**
2041
+ * Border Width Bottom
2042
+ * @see https://tailwindcss.com/docs/border-width
2043
+ */
2044
+ "border-w-b": [{
2045
+ "border-b": [a]
2046
+ }],
2047
+ /**
2048
+ * Border Width Left
2049
+ * @see https://tailwindcss.com/docs/border-width
2050
+ */
2051
+ "border-w-l": [{
2052
+ "border-l": [a]
2053
+ }],
2054
+ /**
2055
+ * Border Opacity
2056
+ * @see https://tailwindcss.com/docs/border-opacity
2057
+ */
2058
+ "border-opacity": [{
2059
+ "border-opacity": [b]
2060
+ }],
2061
+ /**
2062
+ * Border Style
2063
+ * @see https://tailwindcss.com/docs/border-style
2064
+ */
2065
+ "border-style": [{
2066
+ border: [...G(), "hidden"]
2067
+ }],
2068
+ /**
2069
+ * Divide Width X
2070
+ * @see https://tailwindcss.com/docs/divide-width
2071
+ */
2072
+ "divide-x": [{
2073
+ "divide-x": [a]
2074
+ }],
2075
+ /**
2076
+ * Divide Width X Reverse
2077
+ * @see https://tailwindcss.com/docs/divide-width
2078
+ */
2079
+ "divide-x-reverse": ["divide-x-reverse"],
2080
+ /**
2081
+ * Divide Width Y
2082
+ * @see https://tailwindcss.com/docs/divide-width
2083
+ */
2084
+ "divide-y": [{
2085
+ "divide-y": [a]
2086
+ }],
2087
+ /**
2088
+ * Divide Width Y Reverse
2089
+ * @see https://tailwindcss.com/docs/divide-width
2090
+ */
2091
+ "divide-y-reverse": ["divide-y-reverse"],
2092
+ /**
2093
+ * Divide Opacity
2094
+ * @see https://tailwindcss.com/docs/divide-opacity
2095
+ */
2096
+ "divide-opacity": [{
2097
+ "divide-opacity": [b]
2098
+ }],
2099
+ /**
2100
+ * Divide Style
2101
+ * @see https://tailwindcss.com/docs/divide-style
2102
+ */
2103
+ "divide-style": [{
2104
+ divide: G()
2105
+ }],
2106
+ /**
2107
+ * Border Color
2108
+ * @see https://tailwindcss.com/docs/border-color
2109
+ */
2110
+ "border-color": [{
2111
+ border: [s]
2112
+ }],
2113
+ /**
2114
+ * Border Color X
2115
+ * @see https://tailwindcss.com/docs/border-color
2116
+ */
2117
+ "border-color-x": [{
2118
+ "border-x": [s]
2119
+ }],
2120
+ /**
2121
+ * Border Color Y
2122
+ * @see https://tailwindcss.com/docs/border-color
2123
+ */
2124
+ "border-color-y": [{
2125
+ "border-y": [s]
2126
+ }],
2127
+ /**
2128
+ * Border Color S
2129
+ * @see https://tailwindcss.com/docs/border-color
2130
+ */
2131
+ "border-color-s": [{
2132
+ "border-s": [s]
2133
+ }],
2134
+ /**
2135
+ * Border Color E
2136
+ * @see https://tailwindcss.com/docs/border-color
2137
+ */
2138
+ "border-color-e": [{
2139
+ "border-e": [s]
2140
+ }],
2141
+ /**
2142
+ * Border Color Top
2143
+ * @see https://tailwindcss.com/docs/border-color
2144
+ */
2145
+ "border-color-t": [{
2146
+ "border-t": [s]
2147
+ }],
2148
+ /**
2149
+ * Border Color Right
2150
+ * @see https://tailwindcss.com/docs/border-color
2151
+ */
2152
+ "border-color-r": [{
2153
+ "border-r": [s]
2154
+ }],
2155
+ /**
2156
+ * Border Color Bottom
2157
+ * @see https://tailwindcss.com/docs/border-color
2158
+ */
2159
+ "border-color-b": [{
2160
+ "border-b": [s]
2161
+ }],
2162
+ /**
2163
+ * Border Color Left
2164
+ * @see https://tailwindcss.com/docs/border-color
2165
+ */
2166
+ "border-color-l": [{
2167
+ "border-l": [s]
2168
+ }],
2169
+ /**
2170
+ * Divide Color
2171
+ * @see https://tailwindcss.com/docs/divide-color
2172
+ */
2173
+ "divide-color": [{
2174
+ divide: [s]
2175
+ }],
2176
+ /**
2177
+ * Outline Style
2178
+ * @see https://tailwindcss.com/docs/outline-style
2179
+ */
2180
+ "outline-style": [{
2181
+ outline: ["", ...G()]
2182
+ }],
2183
+ /**
2184
+ * Outline Offset
2185
+ * @see https://tailwindcss.com/docs/outline-offset
2186
+ */
2187
+ "outline-offset": [{
2188
+ "outline-offset": [ne, k]
2189
+ }],
2190
+ /**
2191
+ * Outline Width
2192
+ * @see https://tailwindcss.com/docs/outline-width
2193
+ */
2194
+ "outline-w": [{
2195
+ outline: [ne, ie]
2196
+ }],
2197
+ /**
2198
+ * Outline Color
2199
+ * @see https://tailwindcss.com/docs/outline-color
2200
+ */
2201
+ "outline-color": [{
2202
+ outline: [e]
2203
+ }],
2204
+ /**
2205
+ * Ring Width
2206
+ * @see https://tailwindcss.com/docs/ring-width
2207
+ */
2208
+ "ring-w": [{
2209
+ ring: z()
2210
+ }],
2211
+ /**
2212
+ * Ring Width Inset
2213
+ * @see https://tailwindcss.com/docs/ring-width
2214
+ */
2215
+ "ring-w-inset": ["ring-inset"],
2216
+ /**
2217
+ * Ring Color
2218
+ * @see https://tailwindcss.com/docs/ring-color
2219
+ */
2220
+ "ring-color": [{
2221
+ ring: [e]
2222
+ }],
2223
+ /**
2224
+ * Ring Opacity
2225
+ * @see https://tailwindcss.com/docs/ring-opacity
2226
+ */
2227
+ "ring-opacity": [{
2228
+ "ring-opacity": [b]
2229
+ }],
2230
+ /**
2231
+ * Ring Offset Width
2232
+ * @see https://tailwindcss.com/docs/ring-offset-width
2233
+ */
2234
+ "ring-offset-w": [{
2235
+ "ring-offset": [ne, ie]
2236
+ }],
2237
+ /**
2238
+ * Ring Offset Color
2239
+ * @see https://tailwindcss.com/docs/ring-offset-color
2240
+ */
2241
+ "ring-offset-color": [{
2242
+ "ring-offset": [e]
2243
+ }],
2244
+ // Effects
2245
+ /**
2246
+ * Box Shadow
2247
+ * @see https://tailwindcss.com/docs/box-shadow
2248
+ */
2249
+ shadow: [{
2250
+ shadow: ["", "inner", "none", ae, mn]
2251
+ }],
2252
+ /**
2253
+ * Box Shadow Color
2254
+ * @see https://tailwindcss.com/docs/box-shadow-color
2255
+ */
2256
+ "shadow-color": [{
2257
+ shadow: [Se]
2258
+ }],
2259
+ /**
2260
+ * Opacity
2261
+ * @see https://tailwindcss.com/docs/opacity
2262
+ */
2263
+ opacity: [{
2264
+ opacity: [b]
2265
+ }],
2266
+ /**
2267
+ * Mix Blend Mode
2268
+ * @see https://tailwindcss.com/docs/mix-blend-mode
2269
+ */
2270
+ "mix-blend": [{
2271
+ "mix-blend": [...J(), "plus-lighter", "plus-darker"]
2272
+ }],
2273
+ /**
2274
+ * Background Blend Mode
2275
+ * @see https://tailwindcss.com/docs/background-blend-mode
2276
+ */
2277
+ "bg-blend": [{
2278
+ "bg-blend": J()
2279
+ }],
2280
+ // Filters
2281
+ /**
2282
+ * Filter
2283
+ * @deprecated since Tailwind CSS v3.0.0
2284
+ * @see https://tailwindcss.com/docs/filter
2285
+ */
2286
+ filter: [{
2287
+ filter: ["", "none"]
2288
+ }],
2289
+ /**
2290
+ * Blur
2291
+ * @see https://tailwindcss.com/docs/blur
2292
+ */
2293
+ blur: [{
2294
+ blur: [r]
2295
+ }],
2296
+ /**
2297
+ * Brightness
2298
+ * @see https://tailwindcss.com/docs/brightness
2299
+ */
2300
+ brightness: [{
2301
+ brightness: [n]
2302
+ }],
2303
+ /**
2304
+ * Contrast
2305
+ * @see https://tailwindcss.com/docs/contrast
2306
+ */
2307
+ contrast: [{
2308
+ contrast: [c]
2309
+ }],
2310
+ /**
2311
+ * Drop Shadow
2312
+ * @see https://tailwindcss.com/docs/drop-shadow
2313
+ */
2314
+ "drop-shadow": [{
2315
+ "drop-shadow": ["", "none", ae, k]
2316
+ }],
2317
+ /**
2318
+ * Grayscale
2319
+ * @see https://tailwindcss.com/docs/grayscale
2320
+ */
2321
+ grayscale: [{
2322
+ grayscale: [f]
2323
+ }],
2324
+ /**
2325
+ * Hue Rotate
2326
+ * @see https://tailwindcss.com/docs/hue-rotate
2327
+ */
2328
+ "hue-rotate": [{
2329
+ "hue-rotate": [p]
2330
+ }],
2331
+ /**
2332
+ * Invert
2333
+ * @see https://tailwindcss.com/docs/invert
2334
+ */
2335
+ invert: [{
2336
+ invert: [d]
2337
+ }],
2338
+ /**
2339
+ * Saturate
2340
+ * @see https://tailwindcss.com/docs/saturate
2341
+ */
2342
+ saturate: [{
2343
+ saturate: [j]
2344
+ }],
2345
+ /**
2346
+ * Sepia
2347
+ * @see https://tailwindcss.com/docs/sepia
2348
+ */
2349
+ sepia: [{
2350
+ sepia: [V]
2351
+ }],
2352
+ /**
2353
+ * Backdrop Filter
2354
+ * @deprecated since Tailwind CSS v3.0.0
2355
+ * @see https://tailwindcss.com/docs/backdrop-filter
2356
+ */
2357
+ "backdrop-filter": [{
2358
+ "backdrop-filter": ["", "none"]
2359
+ }],
2360
+ /**
2361
+ * Backdrop Blur
2362
+ * @see https://tailwindcss.com/docs/backdrop-blur
2363
+ */
2364
+ "backdrop-blur": [{
2365
+ "backdrop-blur": [r]
2366
+ }],
2367
+ /**
2368
+ * Backdrop Brightness
2369
+ * @see https://tailwindcss.com/docs/backdrop-brightness
2370
+ */
2371
+ "backdrop-brightness": [{
2372
+ "backdrop-brightness": [n]
2373
+ }],
2374
+ /**
2375
+ * Backdrop Contrast
2376
+ * @see https://tailwindcss.com/docs/backdrop-contrast
2377
+ */
2378
+ "backdrop-contrast": [{
2379
+ "backdrop-contrast": [c]
2380
+ }],
2381
+ /**
2382
+ * Backdrop Grayscale
2383
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
2384
+ */
2385
+ "backdrop-grayscale": [{
2386
+ "backdrop-grayscale": [f]
2387
+ }],
2388
+ /**
2389
+ * Backdrop Hue Rotate
2390
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
2391
+ */
2392
+ "backdrop-hue-rotate": [{
2393
+ "backdrop-hue-rotate": [p]
2394
+ }],
2395
+ /**
2396
+ * Backdrop Invert
2397
+ * @see https://tailwindcss.com/docs/backdrop-invert
2398
+ */
2399
+ "backdrop-invert": [{
2400
+ "backdrop-invert": [d]
2401
+ }],
2402
+ /**
2403
+ * Backdrop Opacity
2404
+ * @see https://tailwindcss.com/docs/backdrop-opacity
2405
+ */
2406
+ "backdrop-opacity": [{
2407
+ "backdrop-opacity": [b]
2408
+ }],
2409
+ /**
2410
+ * Backdrop Saturate
2411
+ * @see https://tailwindcss.com/docs/backdrop-saturate
2412
+ */
2413
+ "backdrop-saturate": [{
2414
+ "backdrop-saturate": [j]
2415
+ }],
2416
+ /**
2417
+ * Backdrop Sepia
2418
+ * @see https://tailwindcss.com/docs/backdrop-sepia
2419
+ */
2420
+ "backdrop-sepia": [{
2421
+ "backdrop-sepia": [V]
2422
+ }],
2423
+ // Tables
2424
+ /**
2425
+ * Border Collapse
2426
+ * @see https://tailwindcss.com/docs/border-collapse
2427
+ */
2428
+ "border-collapse": [{
2429
+ border: ["collapse", "separate"]
2430
+ }],
2431
+ /**
2432
+ * Border Spacing
2433
+ * @see https://tailwindcss.com/docs/border-spacing
2434
+ */
2435
+ "border-spacing": [{
2436
+ "border-spacing": [l]
2437
+ }],
2438
+ /**
2439
+ * Border Spacing X
2440
+ * @see https://tailwindcss.com/docs/border-spacing
2441
+ */
2442
+ "border-spacing-x": [{
2443
+ "border-spacing-x": [l]
2444
+ }],
2445
+ /**
2446
+ * Border Spacing Y
2447
+ * @see https://tailwindcss.com/docs/border-spacing
2448
+ */
2449
+ "border-spacing-y": [{
2450
+ "border-spacing-y": [l]
2451
+ }],
2452
+ /**
2453
+ * Table Layout
2454
+ * @see https://tailwindcss.com/docs/table-layout
2455
+ */
2456
+ "table-layout": [{
2457
+ table: ["auto", "fixed"]
2458
+ }],
2459
+ /**
2460
+ * Caption Side
2461
+ * @see https://tailwindcss.com/docs/caption-side
2462
+ */
2463
+ caption: [{
2464
+ caption: ["top", "bottom"]
2465
+ }],
2466
+ // Transitions and Animation
2467
+ /**
2468
+ * Tranisition Property
2469
+ * @see https://tailwindcss.com/docs/transition-property
2470
+ */
2471
+ transition: [{
2472
+ transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", k]
2473
+ }],
2474
+ /**
2475
+ * Transition Duration
2476
+ * @see https://tailwindcss.com/docs/transition-duration
2477
+ */
2478
+ duration: [{
2479
+ duration: Q()
2480
+ }],
2481
+ /**
2482
+ * Transition Timing Function
2483
+ * @see https://tailwindcss.com/docs/transition-timing-function
2484
+ */
2485
+ ease: [{
2486
+ ease: ["linear", "in", "out", "in-out", k]
2487
+ }],
2488
+ /**
2489
+ * Transition Delay
2490
+ * @see https://tailwindcss.com/docs/transition-delay
2491
+ */
2492
+ delay: [{
2493
+ delay: Q()
2494
+ }],
2495
+ /**
2496
+ * Animation
2497
+ * @see https://tailwindcss.com/docs/animation
2498
+ */
2499
+ animate: [{
2500
+ animate: ["none", "spin", "ping", "pulse", "bounce", k]
2501
+ }],
2502
+ // Transforms
2503
+ /**
2504
+ * Transform
2505
+ * @see https://tailwindcss.com/docs/transform
2506
+ */
2507
+ transform: [{
2508
+ transform: ["", "gpu", "none"]
2509
+ }],
2510
+ /**
2511
+ * Scale
2512
+ * @see https://tailwindcss.com/docs/scale
2513
+ */
2514
+ scale: [{
2515
+ scale: [E]
2516
+ }],
2517
+ /**
2518
+ * Scale X
2519
+ * @see https://tailwindcss.com/docs/scale
2520
+ */
2521
+ "scale-x": [{
2522
+ "scale-x": [E]
2523
+ }],
2524
+ /**
2525
+ * Scale Y
2526
+ * @see https://tailwindcss.com/docs/scale
2527
+ */
2528
+ "scale-y": [{
2529
+ "scale-y": [E]
2530
+ }],
2531
+ /**
2532
+ * Rotate
2533
+ * @see https://tailwindcss.com/docs/rotate
2534
+ */
2535
+ rotate: [{
2536
+ rotate: [Ce, k]
2537
+ }],
2538
+ /**
2539
+ * Translate X
2540
+ * @see https://tailwindcss.com/docs/translate
2541
+ */
2542
+ "translate-x": [{
2543
+ "translate-x": [oe]
2544
+ }],
2545
+ /**
2546
+ * Translate Y
2547
+ * @see https://tailwindcss.com/docs/translate
2548
+ */
2549
+ "translate-y": [{
2550
+ "translate-y": [oe]
2551
+ }],
2552
+ /**
2553
+ * Skew X
2554
+ * @see https://tailwindcss.com/docs/skew
2555
+ */
2556
+ "skew-x": [{
2557
+ "skew-x": [L]
2558
+ }],
2559
+ /**
2560
+ * Skew Y
2561
+ * @see https://tailwindcss.com/docs/skew
2562
+ */
2563
+ "skew-y": [{
2564
+ "skew-y": [L]
2565
+ }],
2566
+ /**
2567
+ * Transform Origin
2568
+ * @see https://tailwindcss.com/docs/transform-origin
2569
+ */
2570
+ "transform-origin": [{
2571
+ origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", k]
2572
+ }],
2573
+ // Interactivity
2574
+ /**
2575
+ * Accent Color
2576
+ * @see https://tailwindcss.com/docs/accent-color
2577
+ */
2578
+ accent: [{
2579
+ accent: ["auto", e]
2580
+ }],
2581
+ /**
2582
+ * Appearance
2583
+ * @see https://tailwindcss.com/docs/appearance
2584
+ */
2585
+ appearance: [{
2586
+ appearance: ["none", "auto"]
2587
+ }],
2588
+ /**
2589
+ * Cursor
2590
+ * @see https://tailwindcss.com/docs/cursor
2591
+ */
2592
+ cursor: [{
2593
+ cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", k]
2594
+ }],
2595
+ /**
2596
+ * Caret Color
2597
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2598
+ */
2599
+ "caret-color": [{
2600
+ caret: [e]
2601
+ }],
2602
+ /**
2603
+ * Pointer Events
2604
+ * @see https://tailwindcss.com/docs/pointer-events
2605
+ */
2606
+ "pointer-events": [{
2607
+ "pointer-events": ["none", "auto"]
2608
+ }],
2609
+ /**
2610
+ * Resize
2611
+ * @see https://tailwindcss.com/docs/resize
2612
+ */
2613
+ resize: [{
2614
+ resize: ["none", "y", "x", ""]
2615
+ }],
2616
+ /**
2617
+ * Scroll Behavior
2618
+ * @see https://tailwindcss.com/docs/scroll-behavior
2619
+ */
2620
+ "scroll-behavior": [{
2621
+ scroll: ["auto", "smooth"]
2622
+ }],
2623
+ /**
2624
+ * Scroll Margin
2625
+ * @see https://tailwindcss.com/docs/scroll-margin
2626
+ */
2627
+ "scroll-m": [{
2628
+ "scroll-m": _()
2629
+ }],
2630
+ /**
2631
+ * Scroll Margin X
2632
+ * @see https://tailwindcss.com/docs/scroll-margin
2633
+ */
2634
+ "scroll-mx": [{
2635
+ "scroll-mx": _()
2636
+ }],
2637
+ /**
2638
+ * Scroll Margin Y
2639
+ * @see https://tailwindcss.com/docs/scroll-margin
2640
+ */
2641
+ "scroll-my": [{
2642
+ "scroll-my": _()
2643
+ }],
2644
+ /**
2645
+ * Scroll Margin Start
2646
+ * @see https://tailwindcss.com/docs/scroll-margin
2647
+ */
2648
+ "scroll-ms": [{
2649
+ "scroll-ms": _()
2650
+ }],
2651
+ /**
2652
+ * Scroll Margin End
2653
+ * @see https://tailwindcss.com/docs/scroll-margin
2654
+ */
2655
+ "scroll-me": [{
2656
+ "scroll-me": _()
2657
+ }],
2658
+ /**
2659
+ * Scroll Margin Top
2660
+ * @see https://tailwindcss.com/docs/scroll-margin
2661
+ */
2662
+ "scroll-mt": [{
2663
+ "scroll-mt": _()
2664
+ }],
2665
+ /**
2666
+ * Scroll Margin Right
2667
+ * @see https://tailwindcss.com/docs/scroll-margin
2668
+ */
2669
+ "scroll-mr": [{
2670
+ "scroll-mr": _()
2671
+ }],
2672
+ /**
2673
+ * Scroll Margin Bottom
2674
+ * @see https://tailwindcss.com/docs/scroll-margin
2675
+ */
2676
+ "scroll-mb": [{
2677
+ "scroll-mb": _()
2678
+ }],
2679
+ /**
2680
+ * Scroll Margin Left
2681
+ * @see https://tailwindcss.com/docs/scroll-margin
2682
+ */
2683
+ "scroll-ml": [{
2684
+ "scroll-ml": _()
2685
+ }],
2686
+ /**
2687
+ * Scroll Padding
2688
+ * @see https://tailwindcss.com/docs/scroll-padding
2689
+ */
2690
+ "scroll-p": [{
2691
+ "scroll-p": _()
2692
+ }],
2693
+ /**
2694
+ * Scroll Padding X
2695
+ * @see https://tailwindcss.com/docs/scroll-padding
2696
+ */
2697
+ "scroll-px": [{
2698
+ "scroll-px": _()
2699
+ }],
2700
+ /**
2701
+ * Scroll Padding Y
2702
+ * @see https://tailwindcss.com/docs/scroll-padding
2703
+ */
2704
+ "scroll-py": [{
2705
+ "scroll-py": _()
2706
+ }],
2707
+ /**
2708
+ * Scroll Padding Start
2709
+ * @see https://tailwindcss.com/docs/scroll-padding
2710
+ */
2711
+ "scroll-ps": [{
2712
+ "scroll-ps": _()
2713
+ }],
2714
+ /**
2715
+ * Scroll Padding End
2716
+ * @see https://tailwindcss.com/docs/scroll-padding
2717
+ */
2718
+ "scroll-pe": [{
2719
+ "scroll-pe": _()
2720
+ }],
2721
+ /**
2722
+ * Scroll Padding Top
2723
+ * @see https://tailwindcss.com/docs/scroll-padding
2724
+ */
2725
+ "scroll-pt": [{
2726
+ "scroll-pt": _()
2727
+ }],
2728
+ /**
2729
+ * Scroll Padding Right
2730
+ * @see https://tailwindcss.com/docs/scroll-padding
2731
+ */
2732
+ "scroll-pr": [{
2733
+ "scroll-pr": _()
2734
+ }],
2735
+ /**
2736
+ * Scroll Padding Bottom
2737
+ * @see https://tailwindcss.com/docs/scroll-padding
2738
+ */
2739
+ "scroll-pb": [{
2740
+ "scroll-pb": _()
2741
+ }],
2742
+ /**
2743
+ * Scroll Padding Left
2744
+ * @see https://tailwindcss.com/docs/scroll-padding
2745
+ */
2746
+ "scroll-pl": [{
2747
+ "scroll-pl": _()
2748
+ }],
2749
+ /**
2750
+ * Scroll Snap Align
2751
+ * @see https://tailwindcss.com/docs/scroll-snap-align
2752
+ */
2753
+ "snap-align": [{
2754
+ snap: ["start", "end", "center", "align-none"]
2755
+ }],
2756
+ /**
2757
+ * Scroll Snap Stop
2758
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
2759
+ */
2760
+ "snap-stop": [{
2761
+ snap: ["normal", "always"]
2762
+ }],
2763
+ /**
2764
+ * Scroll Snap Type
2765
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2766
+ */
2767
+ "snap-type": [{
2768
+ snap: ["none", "x", "y", "both"]
2769
+ }],
2770
+ /**
2771
+ * Scroll Snap Type Strictness
2772
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2773
+ */
2774
+ "snap-strictness": [{
2775
+ snap: ["mandatory", "proximity"]
2776
+ }],
2777
+ /**
2778
+ * Touch Action
2779
+ * @see https://tailwindcss.com/docs/touch-action
2780
+ */
2781
+ touch: [{
2782
+ touch: ["auto", "none", "manipulation"]
2783
+ }],
2784
+ /**
2785
+ * Touch Action X
2786
+ * @see https://tailwindcss.com/docs/touch-action
2787
+ */
2788
+ "touch-x": [{
2789
+ "touch-pan": ["x", "left", "right"]
2790
+ }],
2791
+ /**
2792
+ * Touch Action Y
2793
+ * @see https://tailwindcss.com/docs/touch-action
2794
+ */
2795
+ "touch-y": [{
2796
+ "touch-pan": ["y", "up", "down"]
2797
+ }],
2798
+ /**
2799
+ * Touch Action Pinch Zoom
2800
+ * @see https://tailwindcss.com/docs/touch-action
2801
+ */
2802
+ "touch-pz": ["touch-pinch-zoom"],
2803
+ /**
2804
+ * User Select
2805
+ * @see https://tailwindcss.com/docs/user-select
2806
+ */
2807
+ select: [{
2808
+ select: ["none", "text", "all", "auto"]
2809
+ }],
2810
+ /**
2811
+ * Will Change
2812
+ * @see https://tailwindcss.com/docs/will-change
2813
+ */
2814
+ "will-change": [{
2815
+ "will-change": ["auto", "scroll", "contents", "transform", k]
2816
+ }],
2817
+ // SVG
2818
+ /**
2819
+ * Fill
2820
+ * @see https://tailwindcss.com/docs/fill
2821
+ */
2822
+ fill: [{
2823
+ fill: [e, "none"]
2824
+ }],
2825
+ /**
2826
+ * Stroke Width
2827
+ * @see https://tailwindcss.com/docs/stroke-width
2828
+ */
2829
+ "stroke-w": [{
2830
+ stroke: [ne, ie, ze]
2831
+ }],
2832
+ /**
2833
+ * Stroke
2834
+ * @see https://tailwindcss.com/docs/stroke
2835
+ */
2836
+ stroke: [{
2837
+ stroke: [e, "none"]
2838
+ }],
2839
+ // Accessibility
2840
+ /**
2841
+ * Screen Readers
2842
+ * @see https://tailwindcss.com/docs/screen-readers
2843
+ */
2844
+ sr: ["sr-only", "not-sr-only"],
2845
+ /**
2846
+ * Forced Color Adjust
2847
+ * @see https://tailwindcss.com/docs/forced-color-adjust
2848
+ */
2849
+ "forced-color-adjust": [{
2850
+ "forced-color-adjust": ["auto", "none"]
2851
+ }]
2852
+ },
2853
+ conflictingClassGroups: {
2854
+ overflow: ["overflow-x", "overflow-y"],
2855
+ overscroll: ["overscroll-x", "overscroll-y"],
2856
+ inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
2857
+ "inset-x": ["right", "left"],
2858
+ "inset-y": ["top", "bottom"],
2859
+ flex: ["basis", "grow", "shrink"],
2860
+ gap: ["gap-x", "gap-y"],
2861
+ p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
2862
+ px: ["pr", "pl"],
2863
+ py: ["pt", "pb"],
2864
+ m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
2865
+ mx: ["mr", "ml"],
2866
+ my: ["mt", "mb"],
2867
+ size: ["w", "h"],
2868
+ "font-size": ["leading"],
2869
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
2870
+ "fvn-ordinal": ["fvn-normal"],
2871
+ "fvn-slashed-zero": ["fvn-normal"],
2872
+ "fvn-figure": ["fvn-normal"],
2873
+ "fvn-spacing": ["fvn-normal"],
2874
+ "fvn-fraction": ["fvn-normal"],
2875
+ "line-clamp": ["display", "overflow"],
2876
+ rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
2877
+ "rounded-s": ["rounded-ss", "rounded-es"],
2878
+ "rounded-e": ["rounded-se", "rounded-ee"],
2879
+ "rounded-t": ["rounded-tl", "rounded-tr"],
2880
+ "rounded-r": ["rounded-tr", "rounded-br"],
2881
+ "rounded-b": ["rounded-br", "rounded-bl"],
2882
+ "rounded-l": ["rounded-tl", "rounded-bl"],
2883
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
2884
+ "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
2885
+ "border-w-x": ["border-w-r", "border-w-l"],
2886
+ "border-w-y": ["border-w-t", "border-w-b"],
2887
+ "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
2888
+ "border-color-x": ["border-color-r", "border-color-l"],
2889
+ "border-color-y": ["border-color-t", "border-color-b"],
2890
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
2891
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
2892
+ "scroll-my": ["scroll-mt", "scroll-mb"],
2893
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
2894
+ "scroll-px": ["scroll-pr", "scroll-pl"],
2895
+ "scroll-py": ["scroll-pt", "scroll-pb"],
2896
+ touch: ["touch-x", "touch-y", "touch-pz"],
2897
+ "touch-x": ["touch"],
2898
+ "touch-y": ["touch"],
2899
+ "touch-pz": ["touch"]
2900
+ },
2901
+ conflictingClassGroupModifiers: {
2902
+ "font-size": ["leading"]
2903
+ }
2904
+ };
2905
+ }, yn = /* @__PURE__ */ Zr(vn);
2906
+ function D(...e) {
2907
+ return yn(St(e));
2908
+ }
2909
+ const ee = y.forwardRef(
2910
+ ({ className: e, type: t, ...r }, n) => /* @__PURE__ */ u.jsx(
2911
+ "input",
2912
+ {
2913
+ type: t,
2914
+ className: D(
2915
+ "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
2916
+ e
2917
+ ),
2918
+ ref: n,
2919
+ ...r
2920
+ }
2921
+ )
2922
+ );
2923
+ ee.displayName = "Input";
2924
+ function gt(e, t) {
2925
+ if (typeof e == "function")
2926
+ return e(t);
2927
+ e != null && (e.current = t);
2928
+ }
2929
+ function Pt(...e) {
2930
+ return (t) => {
2931
+ let r = !1;
2932
+ const n = e.map((s) => {
2933
+ const i = gt(s, t);
2934
+ return !r && typeof i == "function" && (r = !0), i;
2935
+ });
2936
+ if (r)
2937
+ return () => {
2938
+ for (let s = 0; s < n.length; s++) {
2939
+ const i = n[s];
2940
+ typeof i == "function" ? i() : gt(e[s], null);
2941
+ }
2942
+ };
2943
+ };
2944
+ }
2945
+ function le(...e) {
2946
+ return y.useCallback(Pt(...e), e);
2947
+ }
2948
+ // @__NO_SIDE_EFFECTS__
2949
+ function _e(e) {
2950
+ const t = /* @__PURE__ */ wn(e), r = y.forwardRef((n, s) => {
2951
+ const { children: i, ...l } = n, a = y.Children.toArray(i), c = a.find(Sn);
2952
+ if (c) {
2953
+ const f = c.props.children, p = a.map((d) => d === c ? y.Children.count(f) > 1 ? y.Children.only(null) : y.isValidElement(f) ? f.props.children : null : d);
2954
+ return /* @__PURE__ */ u.jsx(t, { ...l, ref: s, children: y.isValidElement(f) ? y.cloneElement(f, void 0, p) : null });
2955
+ }
2956
+ return /* @__PURE__ */ u.jsx(t, { ...l, ref: s, children: i });
2957
+ });
2958
+ return r.displayName = `${e}.Slot`, r;
2959
+ }
2960
+ var xn = /* @__PURE__ */ _e("Slot");
2961
+ // @__NO_SIDE_EFFECTS__
2962
+ function wn(e) {
2963
+ const t = y.forwardRef((r, n) => {
2964
+ const { children: s, ...i } = r;
2965
+ if (y.isValidElement(s)) {
2966
+ const l = En(s), a = Rn(i, s.props);
2967
+ return s.type !== y.Fragment && (a.ref = n ? Pt(n, l) : l), y.cloneElement(s, a);
2968
+ }
2969
+ return y.Children.count(s) > 1 ? y.Children.only(null) : null;
2970
+ });
2971
+ return t.displayName = `${e}.SlotClone`, t;
2972
+ }
2973
+ var Cn = Symbol("radix.slottable");
2974
+ function Sn(e) {
2975
+ return y.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId === Cn;
2976
+ }
2977
+ function Rn(e, t) {
2978
+ const r = { ...t };
2979
+ for (const n in t) {
2980
+ const s = e[n], i = t[n];
2981
+ /^on[A-Z]/.test(n) ? s && i ? r[n] = (...a) => {
2982
+ const c = i(...a);
2983
+ return s(...a), c;
2984
+ } : s && (r[n] = s) : n === "style" ? r[n] = { ...s, ...i } : n === "className" && (r[n] = [s, i].filter(Boolean).join(" "));
2985
+ }
2986
+ return { ...e, ...r };
2987
+ }
2988
+ function En(e) {
2989
+ var n, s;
2990
+ let t = (n = Object.getOwnPropertyDescriptor(e.props, "ref")) == null ? void 0 : n.get, r = t && "isReactWarning" in t && t.isReactWarning;
2991
+ return r ? e.ref : (t = (s = Object.getOwnPropertyDescriptor(e, "ref")) == null ? void 0 : s.get, r = t && "isReactWarning" in t && t.isReactWarning, r ? e.props.ref : e.props.ref || e.ref);
2992
+ }
2993
+ var jn = [
2994
+ "a",
2995
+ "button",
2996
+ "div",
2997
+ "form",
2998
+ "h2",
2999
+ "h3",
3000
+ "img",
3001
+ "input",
3002
+ "label",
3003
+ "li",
3004
+ "nav",
3005
+ "ol",
3006
+ "p",
3007
+ "select",
3008
+ "span",
3009
+ "svg",
3010
+ "ul"
3011
+ ], ge = jn.reduce((e, t) => {
3012
+ const r = /* @__PURE__ */ _e(`Primitive.${t}`), n = y.forwardRef((s, i) => {
3013
+ const { asChild: l, ...a } = s, c = l ? r : t;
3014
+ return typeof window < "u" && (window[Symbol.for("radix-ui")] = !0), /* @__PURE__ */ u.jsx(c, { ...a, ref: i });
3015
+ });
3016
+ return n.displayName = `Primitive.${t}`, { ...e, [t]: n };
3017
+ }, {}), kn = "Label", Nt = y.forwardRef((e, t) => /* @__PURE__ */ u.jsx(
3018
+ ge.label,
3019
+ {
3020
+ ...e,
3021
+ ref: t,
3022
+ onMouseDown: (r) => {
3023
+ var s;
3024
+ r.target.closest("button, input, select, textarea") || ((s = e.onMouseDown) == null || s.call(e, r), !r.defaultPrevented && r.detail > 1 && r.preventDefault());
3025
+ }
3026
+ }
3027
+ ));
3028
+ Nt.displayName = kn;
3029
+ var Tt = Nt;
3030
+ const bt = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, vt = St, Ge = (e, t) => (r) => {
3031
+ var n;
3032
+ if ((t == null ? void 0 : t.variants) == null) return vt(e, r == null ? void 0 : r.class, r == null ? void 0 : r.className);
3033
+ const { variants: s, defaultVariants: i } = t, l = Object.keys(s).map((f) => {
3034
+ const p = r == null ? void 0 : r[f], d = i == null ? void 0 : i[f];
3035
+ if (p === null) return null;
3036
+ const h = bt(p) || bt(d);
3037
+ return s[f][h];
3038
+ }), a = r && Object.entries(r).reduce((f, p) => {
3039
+ let [d, h] = p;
3040
+ return h === void 0 || (f[d] = h), f;
3041
+ }, {}), c = t == null || (n = t.compoundVariants) === null || n === void 0 ? void 0 : n.reduce((f, p) => {
3042
+ let { class: d, className: h, ...w } = p;
3043
+ return Object.entries(w).every((S) => {
3044
+ let [v, g] = S;
3045
+ return Array.isArray(g) ? g.includes({
3046
+ ...i,
3047
+ ...a
3048
+ }[v]) : {
3049
+ ...i,
3050
+ ...a
3051
+ }[v] === g;
3052
+ }) ? [
3053
+ ...f,
3054
+ d,
3055
+ h
3056
+ ] : f;
3057
+ }, []);
3058
+ return vt(e, l, c, r == null ? void 0 : r.class, r == null ? void 0 : r.className);
3059
+ }, _n = Ge(
3060
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
3061
+ ), K = y.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ u.jsx(
3062
+ Tt,
3063
+ {
3064
+ ref: r,
3065
+ className: D(_n(), e),
3066
+ ...t
3067
+ }
3068
+ ));
3069
+ K.displayName = Tt.displayName;
3070
+ const At = y.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ u.jsx(
3071
+ "div",
3072
+ {
3073
+ ref: r,
3074
+ className: D(
3075
+ "rounded-lg border bg-card text-card-foreground shadow-sm",
3076
+ e
3077
+ ),
3078
+ ...t
3079
+ }
3080
+ ));
3081
+ At.displayName = "Card";
3082
+ const Mt = y.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ u.jsx(
3083
+ "div",
3084
+ {
3085
+ ref: r,
3086
+ className: D("flex flex-col space-y-1.5 p-6", e),
3087
+ ...t
3088
+ }
3089
+ ));
3090
+ Mt.displayName = "CardHeader";
3091
+ const Ot = y.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ u.jsx(
3092
+ "h3",
3093
+ {
3094
+ ref: r,
3095
+ className: D(
3096
+ "text-2xl font-semibold leading-none tracking-tight",
3097
+ e
3098
+ ),
3099
+ ...t
3100
+ }
3101
+ ));
3102
+ Ot.displayName = "CardTitle";
3103
+ const Pn = y.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ u.jsx(
3104
+ "p",
3105
+ {
3106
+ ref: r,
3107
+ className: D("text-sm text-muted-foreground", e),
3108
+ ...t
3109
+ }
3110
+ ));
3111
+ Pn.displayName = "CardDescription";
3112
+ const Ft = y.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ u.jsx("div", { ref: r, className: D("p-6 pt-0", e), ...t }));
3113
+ Ft.displayName = "CardContent";
3114
+ const Nn = y.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ u.jsx(
3115
+ "div",
3116
+ {
3117
+ ref: r,
3118
+ className: D("flex items-center p-6 pt-0", e),
3119
+ ...t
3120
+ }
3121
+ ));
3122
+ Nn.displayName = "CardFooter";
3123
+ const Tn = ({
3124
+ formData: e,
3125
+ onChange: t,
3126
+ required: r,
3127
+ disabled: n,
3128
+ readonly: s,
3129
+ schema: i,
3130
+ idSchema: l
3131
+ }) => {
3132
+ const a = (c) => (f) => {
3133
+ t({
3134
+ ...e,
3135
+ [c]: f.target.value
3136
+ });
3137
+ };
3138
+ return /* @__PURE__ */ u.jsxs(At, { children: [
3139
+ /* @__PURE__ */ u.jsx(Mt, { className: "pb-4", children: /* @__PURE__ */ u.jsx(Ot, { className: "text-lg", children: i.title || "Address" }) }),
3140
+ /* @__PURE__ */ u.jsxs(Ft, { className: "space-y-4", children: [
3141
+ /* @__PURE__ */ u.jsxs("div", { className: "space-y-2", children: [
3142
+ /* @__PURE__ */ u.jsxs(K, { htmlFor: `${l.$id}_street`, children: [
3143
+ "Street Address",
3144
+ r && /* @__PURE__ */ u.jsx("span", { className: "text-destructive ml-1", children: "*" })
3145
+ ] }),
3146
+ /* @__PURE__ */ u.jsx(
3147
+ ee,
3148
+ {
3149
+ id: `${l.$id}_street`,
3150
+ type: "text",
3151
+ value: (e == null ? void 0 : e.street) || "",
3152
+ onChange: a("street"),
3153
+ disabled: n || s,
3154
+ placeholder: "123 Main St"
3155
+ }
3156
+ )
3157
+ ] }),
3158
+ /* @__PURE__ */ u.jsxs("div", { className: "space-y-2", children: [
3159
+ /* @__PURE__ */ u.jsxs(K, { htmlFor: `${l.$id}_city`, children: [
3160
+ "City",
3161
+ r && /* @__PURE__ */ u.jsx("span", { className: "text-destructive ml-1", children: "*" })
3162
+ ] }),
3163
+ /* @__PURE__ */ u.jsx(
3164
+ ee,
3165
+ {
3166
+ id: `${l.$id}_city`,
3167
+ type: "text",
3168
+ value: (e == null ? void 0 : e.city) || "",
3169
+ onChange: a("city"),
3170
+ disabled: n || s,
3171
+ placeholder: "New York"
3172
+ }
3173
+ )
3174
+ ] }),
3175
+ /* @__PURE__ */ u.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
3176
+ /* @__PURE__ */ u.jsxs("div", { className: "space-y-2", children: [
3177
+ /* @__PURE__ */ u.jsxs(K, { htmlFor: `${l.$id}_state`, children: [
3178
+ "State/Province",
3179
+ r && /* @__PURE__ */ u.jsx("span", { className: "text-destructive ml-1", children: "*" })
3180
+ ] }),
3181
+ /* @__PURE__ */ u.jsx(
3182
+ ee,
3183
+ {
3184
+ id: `${l.$id}_state`,
3185
+ type: "text",
3186
+ value: (e == null ? void 0 : e.state) || "",
3187
+ onChange: a("state"),
3188
+ disabled: n || s,
3189
+ placeholder: "NY"
3190
+ }
3191
+ )
3192
+ ] }),
3193
+ /* @__PURE__ */ u.jsxs("div", { className: "space-y-2", children: [
3194
+ /* @__PURE__ */ u.jsxs(K, { htmlFor: `${l.$id}_zip`, children: [
3195
+ "ZIP/Postal Code",
3196
+ r && /* @__PURE__ */ u.jsx("span", { className: "text-destructive ml-1", children: "*" })
3197
+ ] }),
3198
+ /* @__PURE__ */ u.jsx(
3199
+ ee,
3200
+ {
3201
+ id: `${l.$id}_zip`,
3202
+ type: "text",
3203
+ value: (e == null ? void 0 : e.zip) || "",
3204
+ onChange: a("zip"),
3205
+ disabled: n || s,
3206
+ placeholder: "10001"
3207
+ }
3208
+ )
3209
+ ] })
3210
+ ] }),
3211
+ /* @__PURE__ */ u.jsxs("div", { className: "space-y-2", children: [
3212
+ /* @__PURE__ */ u.jsx(K, { htmlFor: `${l.$id}_country`, children: "Country" }),
3213
+ /* @__PURE__ */ u.jsx(
3214
+ ee,
3215
+ {
3216
+ id: `${l.$id}_country`,
3217
+ type: "text",
3218
+ value: (e == null ? void 0 : e.country) || "",
3219
+ onChange: a("country"),
3220
+ disabled: n || s,
3221
+ placeholder: "United States"
3222
+ }
3223
+ )
3224
+ ] })
3225
+ ] })
3226
+ ] });
3227
+ }, $t = Ar(null), An = ({
3228
+ eventHub: e,
3229
+ formData: t,
3230
+ children: r
3231
+ }) => /* @__PURE__ */ u.jsx($t.Provider, { value: { eventHub: e, formData: t }, children: r }), Mn = () => {
3232
+ const e = Mr($t);
3233
+ if (!e)
3234
+ throw new Error("useFormEventHub must be used within a FormEventProvider");
3235
+ return e;
3236
+ }, ue = (e, t, r) => {
3237
+ const { eventHub: n, formData: s } = Mn();
3238
+ return re.useMemo(
3239
+ () => n.createFieldEventHandlers(e, t, s, r),
3240
+ [n, e, t, s, r]
3241
+ );
3242
+ }, On = ({
3243
+ formData: e,
3244
+ onChange: t,
3245
+ required: r,
3246
+ disabled: n,
3247
+ readonly: s,
3248
+ schema: i,
3249
+ idSchema: l
3250
+ }) => {
3251
+ const a = ue(l.$id, i), c = (p) => {
3252
+ const d = p.replace(/\D/g, ""), h = d.length;
3253
+ return h < 4 ? d : h < 7 ? `(${d.slice(0, 3)}) ${d.slice(3)}` : `(${d.slice(0, 3)}) ${d.slice(3, 6)}-${d.slice(6, 10)}`;
3254
+ }, f = async (p) => {
3255
+ const d = c(p.target.value);
3256
+ t(d), await a.onChange(d);
3257
+ };
3258
+ return /* @__PURE__ */ u.jsxs("div", { className: "space-y-2", children: [
3259
+ /* @__PURE__ */ u.jsxs(K, { htmlFor: l.$id, children: [
3260
+ i.title || "Phone Number",
3261
+ r && /* @__PURE__ */ u.jsx("span", { className: "text-destructive ml-1", children: "*" })
3262
+ ] }),
3263
+ /* @__PURE__ */ u.jsx(
3264
+ ee,
3265
+ {
3266
+ id: l.$id,
3267
+ type: "tel",
3268
+ value: e || "",
3269
+ onChange: f,
3270
+ disabled: n || s,
3271
+ placeholder: "(555) 123-4567",
3272
+ maxLength: 14
3273
+ }
3274
+ )
3275
+ ] });
3276
+ }, Fn = ({
3277
+ formData: e,
3278
+ onChange: t,
3279
+ required: r,
3280
+ disabled: n,
3281
+ readonly: s,
3282
+ schema: i,
3283
+ uiSchema: l,
3284
+ idSchema: a
3285
+ }) => {
3286
+ var S, v;
3287
+ const c = ((S = l == null ? void 0 : l["ui:options"]) == null ? void 0 : S.currency) || "USD", f = ((v = l == null ? void 0 : l["ui:options"]) == null ? void 0 : v.symbol) || "$", p = ue(a.$id, i), d = (g) => {
3288
+ const b = parseFloat(g.replace(/[^0-9.-]+/g, ""));
3289
+ return isNaN(b) ? "" : b.toFixed(2);
3290
+ }, h = async (g) => {
3291
+ const b = g.target.value.replace(/[^0-9.-]+/g, ""), C = b ? parseFloat(b) : void 0;
3292
+ t(C), await p.onChange(C);
3293
+ }, w = async (g) => {
3294
+ const b = d(g.target.value), C = b ? parseFloat(b) : void 0;
3295
+ t(C), await p.onBlur(C);
3296
+ };
3297
+ return /* @__PURE__ */ u.jsxs("div", { className: "space-y-2", children: [
3298
+ /* @__PURE__ */ u.jsxs(K, { htmlFor: a.$id, children: [
3299
+ i.title || "Amount",
3300
+ r && /* @__PURE__ */ u.jsx("span", { className: "text-destructive ml-1", children: "*" })
3301
+ ] }),
3302
+ /* @__PURE__ */ u.jsxs("div", { className: "relative", children: [
3303
+ /* @__PURE__ */ u.jsx("span", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-sm text-muted-foreground", children: String(f) }),
3304
+ /* @__PURE__ */ u.jsx(
3305
+ ee,
3306
+ {
3307
+ id: a.$id,
3308
+ type: "text",
3309
+ inputMode: "decimal",
3310
+ value: e || "",
3311
+ onChange: h,
3312
+ onBlur: w,
3313
+ disabled: n || s,
3314
+ placeholder: "0.00",
3315
+ className: "pl-8 pr-12"
3316
+ }
3317
+ ),
3318
+ /* @__PURE__ */ u.jsx("span", { className: "absolute right-3 top-1/2 -translate-y-1/2 text-sm text-muted-foreground", children: String(c) })
3319
+ ] })
3320
+ ] });
3321
+ }, $n = {
3322
+ address: Tn,
3323
+ phone: On,
3324
+ currency: Fn
3325
+ }, Vn = ({
3326
+ id: e,
3327
+ value: t,
3328
+ required: r,
3329
+ disabled: n,
3330
+ readonly: s,
3331
+ label: i,
3332
+ onChange: l,
3333
+ onBlur: a,
3334
+ onFocus: c,
3335
+ schema: f
3336
+ }) => {
3337
+ const p = ue(e, f), d = async (S) => {
3338
+ const v = S.target.value;
3339
+ l(v), await p.onChange(v);
3340
+ }, h = async (S) => {
3341
+ const v = S.target.value;
3342
+ a && a(e, v), await p.onBlur(v);
3343
+ }, w = async (S) => {
3344
+ const v = S.target.value;
3345
+ c && c(e, v), await p.onFocus(v);
3346
+ };
3347
+ return /* @__PURE__ */ u.jsxs("div", { className: "space-y-2", children: [
3348
+ /* @__PURE__ */ u.jsxs(K, { htmlFor: e, children: [
3349
+ i || f.title,
3350
+ r && /* @__PURE__ */ u.jsx("span", { className: "text-destructive ml-1", children: "*" })
3351
+ ] }),
3352
+ /* @__PURE__ */ u.jsx(
3353
+ ee,
3354
+ {
3355
+ id: e,
3356
+ type: "color",
3357
+ value: t || "#000000",
3358
+ required: r,
3359
+ disabled: n || s,
3360
+ onChange: d,
3361
+ onBlur: h,
3362
+ onFocus: w,
3363
+ className: "h-10 w-full cursor-pointer"
3364
+ }
3365
+ )
3366
+ ] });
3367
+ }, In = ({
3368
+ id: e,
3369
+ value: t,
3370
+ required: r,
3371
+ disabled: n,
3372
+ readonly: s,
3373
+ label: i,
3374
+ onChange: l,
3375
+ onBlur: a,
3376
+ onFocus: c,
3377
+ options: f,
3378
+ schema: p
3379
+ }) => {
3380
+ const d = f.inputType || "date", h = ue(e, p), w = async (g) => {
3381
+ const b = g.target.value;
3382
+ l(b), await h.onChange(b);
3383
+ }, S = async (g) => {
3384
+ const b = g.target.value;
3385
+ a && a(e, b), await h.onBlur(b);
3386
+ }, v = async (g) => {
3387
+ const b = g.target.value;
3388
+ c && c(e, b), await h.onFocus(b);
3389
+ };
3390
+ return /* @__PURE__ */ u.jsxs("div", { className: "space-y-2", children: [
3391
+ /* @__PURE__ */ u.jsxs(K, { htmlFor: e, children: [
3392
+ i || p.title,
3393
+ r && /* @__PURE__ */ u.jsx("span", { className: "text-destructive ml-1", children: "*" })
3394
+ ] }),
3395
+ /* @__PURE__ */ u.jsx(
3396
+ ee,
3397
+ {
3398
+ id: e,
3399
+ type: d,
3400
+ value: t || "",
3401
+ required: r,
3402
+ disabled: n || s,
3403
+ onChange: w,
3404
+ onBlur: S,
3405
+ onFocus: v,
3406
+ min: typeof f.minDate == "string" || typeof f.minDate == "number" ? f.minDate : void 0,
3407
+ max: typeof f.maxDate == "string" || typeof f.maxDate == "number" ? f.maxDate : void 0,
3408
+ className: "w-full"
3409
+ }
3410
+ )
3411
+ ] });
3412
+ }, zn = Ge(
3413
+ "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
3414
+ {
3415
+ variants: {
3416
+ variant: {
3417
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
3418
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
3419
+ outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
3420
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
3421
+ ghost: "hover:bg-accent hover:text-accent-foreground",
3422
+ link: "text-primary underline-offset-4 hover:underline"
3423
+ },
3424
+ size: {
3425
+ default: "h-10 px-4 py-2",
3426
+ sm: "h-9 rounded-md px-3",
3427
+ lg: "h-11 rounded-md px-8",
3428
+ icon: "h-10 w-10"
3429
+ }
3430
+ },
3431
+ defaultVariants: {
3432
+ variant: "default",
3433
+ size: "default"
3434
+ }
3435
+ }
3436
+ ), Pe = y.forwardRef(
3437
+ ({ className: e, variant: t, size: r, asChild: n = !1, ...s }, i) => {
3438
+ const l = n ? xn : "button";
3439
+ return /* @__PURE__ */ u.jsx(
3440
+ l,
3441
+ {
3442
+ className: D(zn({ variant: t, size: r, className: e })),
3443
+ ref: i,
3444
+ ...s
3445
+ }
3446
+ );
3447
+ }
3448
+ );
3449
+ Pe.displayName = "Button";
3450
+ const Dn = Ge(
3451
+ "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
3452
+ {
3453
+ variants: {
3454
+ variant: {
3455
+ default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
3456
+ secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
3457
+ destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
3458
+ outline: "text-foreground"
3459
+ }
3460
+ },
3461
+ defaultVariants: {
3462
+ variant: "default"
3463
+ }
3464
+ }
3465
+ );
3466
+ function yt({ className: e, variant: t, ...r }) {
3467
+ return /* @__PURE__ */ u.jsx("div", { className: D(Dn({ variant: t }), e), ...r });
3468
+ }
3469
+ /**
3470
+ * @license lucide-react v0.303.0 - ISC
3471
+ *
3472
+ * This source code is licensed under the ISC license.
3473
+ * See the LICENSE file in the root directory of this source tree.
3474
+ */
3475
+ var Ln = {
3476
+ xmlns: "http://www.w3.org/2000/svg",
3477
+ width: 24,
3478
+ height: 24,
3479
+ viewBox: "0 0 24 24",
3480
+ fill: "none",
3481
+ stroke: "currentColor",
3482
+ strokeWidth: 2,
3483
+ strokeLinecap: "round",
3484
+ strokeLinejoin: "round"
3485
+ };
3486
+ /**
3487
+ * @license lucide-react v0.303.0 - ISC
3488
+ *
3489
+ * This source code is licensed under the ISC license.
3490
+ * See the LICENSE file in the root directory of this source tree.
3491
+ */
3492
+ const Wn = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase().trim(), Vt = (e, t) => {
3493
+ const r = Or(
3494
+ ({ color: n = "currentColor", size: s = 24, strokeWidth: i = 2, absoluteStrokeWidth: l, className: a = "", children: c, ...f }, p) => dt(
3495
+ "svg",
3496
+ {
3497
+ ref: p,
3498
+ ...Ln,
3499
+ width: s,
3500
+ height: s,
3501
+ stroke: n,
3502
+ strokeWidth: l ? Number(i) * 24 / Number(s) : i,
3503
+ className: ["lucide", `lucide-${Wn(e)}`, a].join(" "),
3504
+ ...f
3505
+ },
3506
+ [
3507
+ ...t.map(([d, h]) => dt(d, h)),
3508
+ ...Array.isArray(c) ? c : [c]
3509
+ ]
3510
+ )
3511
+ );
3512
+ return r.displayName = `${e}`, r;
3513
+ };
3514
+ /**
3515
+ * @license lucide-react v0.303.0 - ISC
3516
+ *
3517
+ * This source code is licensed under the ISC license.
3518
+ * See the LICENSE file in the root directory of this source tree.
3519
+ */
3520
+ const Bn = Vt("Star", [
3521
+ [
3522
+ "polygon",
3523
+ {
3524
+ points: "12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2",
3525
+ key: "8f66p6"
3526
+ }
3527
+ ]
3528
+ ]);
3529
+ /**
3530
+ * @license lucide-react v0.303.0 - ISC
3531
+ *
3532
+ * This source code is licensed under the ISC license.
3533
+ * See the LICENSE file in the root directory of this source tree.
3534
+ */
3535
+ const xt = Vt("X", [
3536
+ ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
3537
+ ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
3538
+ ]), Hn = ({
3539
+ id: e,
3540
+ value: t,
3541
+ required: r,
3542
+ disabled: n,
3543
+ readonly: s,
3544
+ label: i,
3545
+ onChange: l,
3546
+ options: a,
3547
+ schema: c
3548
+ }) => {
3549
+ const f = wt(null), p = a.accept || "*/*", d = a.multiple || !1, h = ue(e, c), w = async (g) => {
3550
+ const b = g.target.files;
3551
+ if (!b) return;
3552
+ let C;
3553
+ if (d) {
3554
+ const j = Array.from(b).map((E) => ({
3555
+ name: E.name,
3556
+ size: E.size,
3557
+ type: E.type,
3558
+ lastModified: E.lastModified
3559
+ }));
3560
+ C = j, l(j);
3561
+ } else {
3562
+ const j = b[0];
3563
+ j && (C = {
3564
+ name: j.name,
3565
+ size: j.size,
3566
+ type: j.type,
3567
+ lastModified: j.lastModified
3568
+ }, l(C));
3569
+ }
3570
+ C && await h.onChange(C);
3571
+ }, S = async () => {
3572
+ f.current && (f.current.value = ""), l(null), await h.onChange(null);
3573
+ }, v = (g) => g < 1024 ? g + " B" : g < 1024 * 1024 ? (g / 1024).toFixed(1) + " KB" : (g / (1024 * 1024)).toFixed(1) + " MB";
3574
+ return /* @__PURE__ */ u.jsxs("div", { className: "space-y-2", children: [
3575
+ /* @__PURE__ */ u.jsxs(K, { htmlFor: e, children: [
3576
+ i || c.title,
3577
+ r && /* @__PURE__ */ u.jsx("span", { className: "text-destructive ml-1", children: "*" })
3578
+ ] }),
3579
+ /* @__PURE__ */ u.jsx(
3580
+ ee,
3581
+ {
3582
+ ref: f,
3583
+ id: e,
3584
+ type: "file",
3585
+ accept: p,
3586
+ multiple: d,
3587
+ required: r,
3588
+ disabled: n || s,
3589
+ onChange: w,
3590
+ className: "cursor-pointer"
3591
+ }
3592
+ ),
3593
+ t && /* @__PURE__ */ u.jsx("div", { className: "space-y-2", children: d && Array.isArray(t) ? /* @__PURE__ */ u.jsx("div", { className: "flex flex-wrap gap-2", children: t.map((g, b) => /* @__PURE__ */ u.jsxs(yt, { variant: "secondary", className: "flex items-center gap-1 pr-1", children: [
3594
+ /* @__PURE__ */ u.jsxs("span", { className: "text-xs", children: [
3595
+ g.name,
3596
+ " (",
3597
+ v(g.size),
3598
+ ")"
3599
+ ] }),
3600
+ !n && !s && /* @__PURE__ */ u.jsx(
3601
+ Pe,
3602
+ {
3603
+ type: "button",
3604
+ variant: "ghost",
3605
+ size: "icon",
3606
+ className: "h-4 w-4 p-0 hover:bg-transparent",
3607
+ onClick: S,
3608
+ children: /* @__PURE__ */ u.jsx(xt, { className: "h-3 w-3" })
3609
+ }
3610
+ )
3611
+ ] }, b)) }) : t && typeof t == "object" && "name" in t ? /* @__PURE__ */ u.jsxs(yt, { variant: "secondary", className: "inline-flex items-center gap-1 pr-1", children: [
3612
+ /* @__PURE__ */ u.jsxs("span", { className: "text-xs", children: [
3613
+ t.name,
3614
+ " (",
3615
+ v(t.size),
3616
+ ")"
3617
+ ] }),
3618
+ !n && !s && /* @__PURE__ */ u.jsx(
3619
+ Pe,
3620
+ {
3621
+ type: "button",
3622
+ variant: "ghost",
3623
+ size: "icon",
3624
+ className: "h-4 w-4 p-0 hover:bg-transparent",
3625
+ onClick: S,
3626
+ children: /* @__PURE__ */ u.jsx(xt, { className: "h-3 w-3" })
3627
+ }
3628
+ )
3629
+ ] }) : null })
3630
+ ] });
3631
+ };
3632
+ function It(e, [t, r]) {
3633
+ return Math.min(r, Math.max(t, e));
3634
+ }
3635
+ function pe(e, t, { checkForDefaultPrevented: r = !0 } = {}) {
3636
+ return function(s) {
3637
+ if (e == null || e(s), r === !1 || !s.defaultPrevented)
3638
+ return t == null ? void 0 : t(s);
3639
+ };
3640
+ }
3641
+ function zt(e, t = []) {
3642
+ let r = [];
3643
+ function n(i, l) {
3644
+ const a = y.createContext(l), c = r.length;
3645
+ r = [...r, l];
3646
+ const f = (d) => {
3647
+ var b;
3648
+ const { scope: h, children: w, ...S } = d, v = ((b = h == null ? void 0 : h[e]) == null ? void 0 : b[c]) || a, g = y.useMemo(() => S, Object.values(S));
3649
+ return /* @__PURE__ */ u.jsx(v.Provider, { value: g, children: w });
3650
+ };
3651
+ f.displayName = i + "Provider";
3652
+ function p(d, h) {
3653
+ var v;
3654
+ const w = ((v = h == null ? void 0 : h[e]) == null ? void 0 : v[c]) || a, S = y.useContext(w);
3655
+ if (S) return S;
3656
+ if (l !== void 0) return l;
3657
+ throw new Error(`\`${d}\` must be used within \`${i}\``);
3658
+ }
3659
+ return [f, p];
3660
+ }
3661
+ const s = () => {
3662
+ const i = r.map((l) => y.createContext(l));
3663
+ return function(a) {
3664
+ const c = (a == null ? void 0 : a[e]) || i;
3665
+ return y.useMemo(
3666
+ () => ({ [`__scope${e}`]: { ...a, [e]: c } }),
3667
+ [a, c]
3668
+ );
3669
+ };
3670
+ };
3671
+ return s.scopeName = e, [n, Un(s, ...t)];
3672
+ }
3673
+ function Un(...e) {
3674
+ const t = e[0];
3675
+ if (e.length === 1) return t;
3676
+ const r = () => {
3677
+ const n = e.map((s) => ({
3678
+ useScope: s(),
3679
+ scopeName: s.scopeName
3680
+ }));
3681
+ return function(i) {
3682
+ const l = n.reduce((a, { useScope: c, scopeName: f }) => {
3683
+ const d = c(i)[`__scope${f}`];
3684
+ return { ...a, ...d };
3685
+ }, {});
3686
+ return y.useMemo(() => ({ [`__scope${t.scopeName}`]: l }), [l]);
3687
+ };
3688
+ };
3689
+ return r.scopeName = t.scopeName, r;
3690
+ }
3691
+ var Dt = globalThis != null && globalThis.document ? y.useLayoutEffect : () => {
3692
+ }, Gn = y[" useInsertionEffect ".trim().toString()] || Dt;
3693
+ function Kn({
3694
+ prop: e,
3695
+ defaultProp: t,
3696
+ onChange: r = () => {
3697
+ },
3698
+ caller: n
3699
+ }) {
3700
+ const [s, i, l] = Yn({
3701
+ defaultProp: t,
3702
+ onChange: r
3703
+ }), a = e !== void 0, c = a ? e : s;
3704
+ {
3705
+ const p = y.useRef(e !== void 0);
3706
+ y.useEffect(() => {
3707
+ const d = p.current;
3708
+ d !== a && console.warn(
3709
+ `${n} is changing from ${d ? "controlled" : "uncontrolled"} to ${a ? "controlled" : "uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`
3710
+ ), p.current = a;
3711
+ }, [a, n]);
3712
+ }
3713
+ const f = y.useCallback(
3714
+ (p) => {
3715
+ var d;
3716
+ if (a) {
3717
+ const h = qn(p) ? p(e) : p;
3718
+ h !== e && ((d = l.current) == null || d.call(l, h));
3719
+ } else
3720
+ i(p);
3721
+ },
3722
+ [a, e, i, l]
3723
+ );
3724
+ return [c, f];
3725
+ }
3726
+ function Yn({
3727
+ defaultProp: e,
3728
+ onChange: t
3729
+ }) {
3730
+ const [r, n] = y.useState(e), s = y.useRef(r), i = y.useRef(t);
3731
+ return Gn(() => {
3732
+ i.current = t;
3733
+ }, [t]), y.useEffect(() => {
3734
+ var l;
3735
+ s.current !== r && ((l = i.current) == null || l.call(i, r), s.current = r);
3736
+ }, [r, s]), [r, n, i];
3737
+ }
3738
+ function qn(e) {
3739
+ return typeof e == "function";
3740
+ }
3741
+ var Jn = y.createContext(void 0);
3742
+ function Qn(e) {
3743
+ const t = y.useContext(Jn);
3744
+ return e || t || "ltr";
3745
+ }
3746
+ function Xn(e) {
3747
+ const t = y.useRef({ value: e, previous: e });
3748
+ return y.useMemo(() => (t.current.value !== e && (t.current.previous = t.current.value, t.current.value = e), t.current.previous), [e]);
3749
+ }
3750
+ function Zn(e) {
3751
+ const [t, r] = y.useState(void 0);
3752
+ return Dt(() => {
3753
+ if (e) {
3754
+ r({ width: e.offsetWidth, height: e.offsetHeight });
3755
+ const n = new ResizeObserver((s) => {
3756
+ if (!Array.isArray(s) || !s.length)
3757
+ return;
3758
+ const i = s[0];
3759
+ let l, a;
3760
+ if ("borderBoxSize" in i) {
3761
+ const c = i.borderBoxSize, f = Array.isArray(c) ? c[0] : c;
3762
+ l = f.inlineSize, a = f.blockSize;
3763
+ } else
3764
+ l = e.offsetWidth, a = e.offsetHeight;
3765
+ r({ width: l, height: a });
3766
+ });
3767
+ return n.observe(e, { box: "border-box" }), () => n.unobserve(e);
3768
+ } else
3769
+ r(void 0);
3770
+ }, [e]), t;
3771
+ }
3772
+ function eo(e) {
3773
+ const t = e + "CollectionProvider", [r, n] = zt(t), [s, i] = r(
3774
+ t,
3775
+ { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }
3776
+ ), l = (v) => {
3777
+ const { scope: g, children: b } = v, C = re.useRef(null), j = re.useRef(/* @__PURE__ */ new Map()).current;
3778
+ return /* @__PURE__ */ u.jsx(s, { scope: g, itemMap: j, collectionRef: C, children: b });
3779
+ };
3780
+ l.displayName = t;
3781
+ const a = e + "CollectionSlot", c = /* @__PURE__ */ _e(a), f = re.forwardRef(
3782
+ (v, g) => {
3783
+ const { scope: b, children: C } = v, j = i(a, b), E = le(g, j.collectionRef);
3784
+ return /* @__PURE__ */ u.jsx(c, { ref: E, children: C });
3785
+ }
3786
+ );
3787
+ f.displayName = a;
3788
+ const p = e + "CollectionItemSlot", d = "data-radix-collection-item", h = /* @__PURE__ */ _e(p), w = re.forwardRef(
3789
+ (v, g) => {
3790
+ const { scope: b, children: C, ...j } = v, E = re.useRef(null), V = le(g, E), L = i(p, b);
3791
+ return re.useEffect(() => (L.itemMap.set(E, { ref: E, ...j }), () => void L.itemMap.delete(E))), /* @__PURE__ */ u.jsx(h, { [d]: "", ref: V, children: C });
3792
+ }
3793
+ );
3794
+ w.displayName = p;
3795
+ function S(v) {
3796
+ const g = i(e + "CollectionConsumer", v);
3797
+ return re.useCallback(() => {
3798
+ const C = g.collectionRef.current;
3799
+ if (!C) return [];
3800
+ const j = Array.from(C.querySelectorAll(`[${d}]`));
3801
+ return Array.from(g.itemMap.values()).sort(
3802
+ (L, Y) => j.indexOf(L.ref.current) - j.indexOf(Y.ref.current)
3803
+ );
3804
+ }, [g.collectionRef, g.itemMap]);
3805
+ }
3806
+ return [
3807
+ { Provider: l, Slot: f, ItemSlot: w },
3808
+ S,
3809
+ n
3810
+ ];
3811
+ }
3812
+ var Lt = ["PageUp", "PageDown"], Wt = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"], Bt = {
3813
+ "from-left": ["Home", "PageDown", "ArrowDown", "ArrowLeft"],
3814
+ "from-right": ["Home", "PageDown", "ArrowDown", "ArrowRight"],
3815
+ "from-bottom": ["Home", "PageDown", "ArrowDown", "ArrowLeft"],
3816
+ "from-top": ["Home", "PageDown", "ArrowUp", "ArrowLeft"]
3817
+ }, be = "Slider", [We, to, ro] = eo(be), [Ht, Fo] = zt(be, [
3818
+ ro
3819
+ ]), [no, Ne] = Ht(be), Ut = y.forwardRef(
3820
+ (e, t) => {
3821
+ const {
3822
+ name: r,
3823
+ min: n = 0,
3824
+ max: s = 100,
3825
+ step: i = 1,
3826
+ orientation: l = "horizontal",
3827
+ disabled: a = !1,
3828
+ minStepsBetweenThumbs: c = 0,
3829
+ defaultValue: f = [n],
3830
+ value: p,
3831
+ onValueChange: d = () => {
3832
+ },
3833
+ onValueCommit: h = () => {
3834
+ },
3835
+ inverted: w = !1,
3836
+ form: S,
3837
+ ...v
3838
+ } = e, g = y.useRef(/* @__PURE__ */ new Set()), b = y.useRef(0), j = l === "horizontal" ? oo : so, [E = [], V] = Kn({
3839
+ prop: p,
3840
+ defaultProp: f,
3841
+ onChange: (O) => {
3842
+ var z;
3843
+ (z = [...g.current][b.current]) == null || z.focus(), d(O);
3844
+ }
3845
+ }), L = y.useRef(E);
3846
+ function Y(O) {
3847
+ const _ = uo(E, O);
3848
+ I(O, _);
3849
+ }
3850
+ function oe(O) {
3851
+ I(O, b.current);
3852
+ }
3853
+ function te() {
3854
+ const O = L.current[b.current];
3855
+ E[b.current] !== O && h(E);
3856
+ }
3857
+ function I(O, _, { commit: z } = { commit: !1 }) {
3858
+ const W = ho(i), q = go(Math.round((O - n) / i) * i + n, W), G = It(q, [n, s]);
3859
+ V((J = []) => {
3860
+ const H = lo(J, G, _);
3861
+ if (mo(H, c * i)) {
3862
+ b.current = H.indexOf(G);
3863
+ const Z = String(H) !== String(J);
3864
+ return Z && z && h(H), Z ? H : J;
3865
+ } else
3866
+ return J;
3867
+ });
3868
+ }
3869
+ return /* @__PURE__ */ u.jsx(
3870
+ no,
3871
+ {
3872
+ scope: e.__scopeSlider,
3873
+ name: r,
3874
+ disabled: a,
3875
+ min: n,
3876
+ max: s,
3877
+ valueIndexToChangeRef: b,
3878
+ thumbs: g.current,
3879
+ values: E,
3880
+ orientation: l,
3881
+ form: S,
3882
+ children: /* @__PURE__ */ u.jsx(We.Provider, { scope: e.__scopeSlider, children: /* @__PURE__ */ u.jsx(We.Slot, { scope: e.__scopeSlider, children: /* @__PURE__ */ u.jsx(
3883
+ j,
3884
+ {
3885
+ "aria-disabled": a,
3886
+ "data-disabled": a ? "" : void 0,
3887
+ ...v,
3888
+ ref: t,
3889
+ onPointerDown: pe(v.onPointerDown, () => {
3890
+ a || (L.current = E);
3891
+ }),
3892
+ min: n,
3893
+ max: s,
3894
+ inverted: w,
3895
+ onSlideStart: a ? void 0 : Y,
3896
+ onSlideMove: a ? void 0 : oe,
3897
+ onSlideEnd: a ? void 0 : te,
3898
+ onHomeKeyDown: () => !a && I(n, 0, { commit: !0 }),
3899
+ onEndKeyDown: () => !a && I(s, E.length - 1, { commit: !0 }),
3900
+ onStepKeyDown: ({ event: O, direction: _ }) => {
3901
+ if (!a) {
3902
+ const q = Lt.includes(O.key) || O.shiftKey && Wt.includes(O.key) ? 10 : 1, G = b.current, J = E[G], H = i * q * _;
3903
+ I(J + H, G, { commit: !0 });
3904
+ }
3905
+ }
3906
+ }
3907
+ ) }) })
3908
+ }
3909
+ );
3910
+ }
3911
+ );
3912
+ Ut.displayName = be;
3913
+ var [Gt, Kt] = Ht(be, {
3914
+ startEdge: "left",
3915
+ endEdge: "right",
3916
+ size: "width",
3917
+ direction: 1
3918
+ }), oo = y.forwardRef(
3919
+ (e, t) => {
3920
+ const {
3921
+ min: r,
3922
+ max: n,
3923
+ dir: s,
3924
+ inverted: i,
3925
+ onSlideStart: l,
3926
+ onSlideMove: a,
3927
+ onSlideEnd: c,
3928
+ onStepKeyDown: f,
3929
+ ...p
3930
+ } = e, [d, h] = y.useState(null), w = le(t, (j) => h(j)), S = y.useRef(void 0), v = Qn(s), g = v === "ltr", b = g && !i || !g && i;
3931
+ function C(j) {
3932
+ const E = S.current || d.getBoundingClientRect(), V = [0, E.width], Y = Ke(V, b ? [r, n] : [n, r]);
3933
+ return S.current = E, Y(j - E.left);
3934
+ }
3935
+ return /* @__PURE__ */ u.jsx(
3936
+ Gt,
3937
+ {
3938
+ scope: e.__scopeSlider,
3939
+ startEdge: b ? "left" : "right",
3940
+ endEdge: b ? "right" : "left",
3941
+ direction: b ? 1 : -1,
3942
+ size: "width",
3943
+ children: /* @__PURE__ */ u.jsx(
3944
+ Yt,
3945
+ {
3946
+ dir: v,
3947
+ "data-orientation": "horizontal",
3948
+ ...p,
3949
+ ref: w,
3950
+ style: {
3951
+ ...p.style,
3952
+ "--radix-slider-thumb-transform": "translateX(-50%)"
3953
+ },
3954
+ onSlideStart: (j) => {
3955
+ const E = C(j.clientX);
3956
+ l == null || l(E);
3957
+ },
3958
+ onSlideMove: (j) => {
3959
+ const E = C(j.clientX);
3960
+ a == null || a(E);
3961
+ },
3962
+ onSlideEnd: () => {
3963
+ S.current = void 0, c == null || c();
3964
+ },
3965
+ onStepKeyDown: (j) => {
3966
+ const V = Bt[b ? "from-left" : "from-right"].includes(j.key);
3967
+ f == null || f({ event: j, direction: V ? -1 : 1 });
3968
+ }
3969
+ }
3970
+ )
3971
+ }
3972
+ );
3973
+ }
3974
+ ), so = y.forwardRef(
3975
+ (e, t) => {
3976
+ const {
3977
+ min: r,
3978
+ max: n,
3979
+ inverted: s,
3980
+ onSlideStart: i,
3981
+ onSlideMove: l,
3982
+ onSlideEnd: a,
3983
+ onStepKeyDown: c,
3984
+ ...f
3985
+ } = e, p = y.useRef(null), d = le(t, p), h = y.useRef(void 0), w = !s;
3986
+ function S(v) {
3987
+ const g = h.current || p.current.getBoundingClientRect(), b = [0, g.height], j = Ke(b, w ? [n, r] : [r, n]);
3988
+ return h.current = g, j(v - g.top);
3989
+ }
3990
+ return /* @__PURE__ */ u.jsx(
3991
+ Gt,
3992
+ {
3993
+ scope: e.__scopeSlider,
3994
+ startEdge: w ? "bottom" : "top",
3995
+ endEdge: w ? "top" : "bottom",
3996
+ size: "height",
3997
+ direction: w ? 1 : -1,
3998
+ children: /* @__PURE__ */ u.jsx(
3999
+ Yt,
4000
+ {
4001
+ "data-orientation": "vertical",
4002
+ ...f,
4003
+ ref: d,
4004
+ style: {
4005
+ ...f.style,
4006
+ "--radix-slider-thumb-transform": "translateY(50%)"
4007
+ },
4008
+ onSlideStart: (v) => {
4009
+ const g = S(v.clientY);
4010
+ i == null || i(g);
4011
+ },
4012
+ onSlideMove: (v) => {
4013
+ const g = S(v.clientY);
4014
+ l == null || l(g);
4015
+ },
4016
+ onSlideEnd: () => {
4017
+ h.current = void 0, a == null || a();
4018
+ },
4019
+ onStepKeyDown: (v) => {
4020
+ const b = Bt[w ? "from-bottom" : "from-top"].includes(v.key);
4021
+ c == null || c({ event: v, direction: b ? -1 : 1 });
4022
+ }
4023
+ }
4024
+ )
4025
+ }
4026
+ );
4027
+ }
4028
+ ), Yt = y.forwardRef(
4029
+ (e, t) => {
4030
+ const {
4031
+ __scopeSlider: r,
4032
+ onSlideStart: n,
4033
+ onSlideMove: s,
4034
+ onSlideEnd: i,
4035
+ onHomeKeyDown: l,
4036
+ onEndKeyDown: a,
4037
+ onStepKeyDown: c,
4038
+ ...f
4039
+ } = e, p = Ne(be, r);
4040
+ return /* @__PURE__ */ u.jsx(
4041
+ ge.span,
4042
+ {
4043
+ ...f,
4044
+ ref: t,
4045
+ onKeyDown: pe(e.onKeyDown, (d) => {
4046
+ d.key === "Home" ? (l(d), d.preventDefault()) : d.key === "End" ? (a(d), d.preventDefault()) : Lt.concat(Wt).includes(d.key) && (c(d), d.preventDefault());
4047
+ }),
4048
+ onPointerDown: pe(e.onPointerDown, (d) => {
4049
+ const h = d.target;
4050
+ h.setPointerCapture(d.pointerId), d.preventDefault(), p.thumbs.has(h) ? h.focus() : n(d);
4051
+ }),
4052
+ onPointerMove: pe(e.onPointerMove, (d) => {
4053
+ d.target.hasPointerCapture(d.pointerId) && s(d);
4054
+ }),
4055
+ onPointerUp: pe(e.onPointerUp, (d) => {
4056
+ const h = d.target;
4057
+ h.hasPointerCapture(d.pointerId) && (h.releasePointerCapture(d.pointerId), i(d));
4058
+ })
4059
+ }
4060
+ );
4061
+ }
4062
+ ), qt = "SliderTrack", Jt = y.forwardRef(
4063
+ (e, t) => {
4064
+ const { __scopeSlider: r, ...n } = e, s = Ne(qt, r);
4065
+ return /* @__PURE__ */ u.jsx(
4066
+ ge.span,
4067
+ {
4068
+ "data-disabled": s.disabled ? "" : void 0,
4069
+ "data-orientation": s.orientation,
4070
+ ...n,
4071
+ ref: t
4072
+ }
4073
+ );
4074
+ }
4075
+ );
4076
+ Jt.displayName = qt;
4077
+ var Be = "SliderRange", Qt = y.forwardRef(
4078
+ (e, t) => {
4079
+ const { __scopeSlider: r, ...n } = e, s = Ne(Be, r), i = Kt(Be, r), l = y.useRef(null), a = le(t, l), c = s.values.length, f = s.values.map(
4080
+ (h) => er(h, s.min, s.max)
4081
+ ), p = c > 1 ? Math.min(...f) : 0, d = 100 - Math.max(...f);
4082
+ return /* @__PURE__ */ u.jsx(
4083
+ ge.span,
4084
+ {
4085
+ "data-orientation": s.orientation,
4086
+ "data-disabled": s.disabled ? "" : void 0,
4087
+ ...n,
4088
+ ref: a,
4089
+ style: {
4090
+ ...e.style,
4091
+ [i.startEdge]: p + "%",
4092
+ [i.endEdge]: d + "%"
4093
+ }
4094
+ }
4095
+ );
4096
+ }
4097
+ );
4098
+ Qt.displayName = Be;
4099
+ var He = "SliderThumb", Xt = y.forwardRef(
4100
+ (e, t) => {
4101
+ const r = to(e.__scopeSlider), [n, s] = y.useState(null), i = le(t, (a) => s(a)), l = y.useMemo(
4102
+ () => n ? r().findIndex((a) => a.ref.current === n) : -1,
4103
+ [r, n]
4104
+ );
4105
+ return /* @__PURE__ */ u.jsx(io, { ...e, ref: i, index: l });
4106
+ }
4107
+ ), io = y.forwardRef(
4108
+ (e, t) => {
4109
+ const { __scopeSlider: r, index: n, name: s, ...i } = e, l = Ne(He, r), a = Kt(He, r), [c, f] = y.useState(null), p = le(t, (C) => f(C)), d = c ? l.form || !!c.closest("form") : !0, h = Zn(c), w = l.values[n], S = w === void 0 ? 0 : er(w, l.min, l.max), v = co(n, l.values.length), g = h == null ? void 0 : h[a.size], b = g ? fo(g, S, a.direction) : 0;
4110
+ return y.useEffect(() => {
4111
+ if (c)
4112
+ return l.thumbs.add(c), () => {
4113
+ l.thumbs.delete(c);
4114
+ };
4115
+ }, [c, l.thumbs]), /* @__PURE__ */ u.jsxs(
4116
+ "span",
4117
+ {
4118
+ style: {
4119
+ transform: "var(--radix-slider-thumb-transform)",
4120
+ position: "absolute",
4121
+ [a.startEdge]: `calc(${S}% + ${b}px)`
4122
+ },
4123
+ children: [
4124
+ /* @__PURE__ */ u.jsx(We.ItemSlot, { scope: e.__scopeSlider, children: /* @__PURE__ */ u.jsx(
4125
+ ge.span,
4126
+ {
4127
+ role: "slider",
4128
+ "aria-label": e["aria-label"] || v,
4129
+ "aria-valuemin": l.min,
4130
+ "aria-valuenow": w,
4131
+ "aria-valuemax": l.max,
4132
+ "aria-orientation": l.orientation,
4133
+ "data-orientation": l.orientation,
4134
+ "data-disabled": l.disabled ? "" : void 0,
4135
+ tabIndex: l.disabled ? void 0 : 0,
4136
+ ...i,
4137
+ ref: p,
4138
+ style: w === void 0 ? { display: "none" } : e.style,
4139
+ onFocus: pe(e.onFocus, () => {
4140
+ l.valueIndexToChangeRef.current = n;
4141
+ })
4142
+ }
4143
+ ) }),
4144
+ d && /* @__PURE__ */ u.jsx(
4145
+ Zt,
4146
+ {
4147
+ name: s ?? (l.name ? l.name + (l.values.length > 1 ? "[]" : "") : void 0),
4148
+ form: l.form,
4149
+ value: w
4150
+ },
4151
+ n
4152
+ )
4153
+ ]
4154
+ }
4155
+ );
4156
+ }
4157
+ );
4158
+ Xt.displayName = He;
4159
+ var ao = "RadioBubbleInput", Zt = y.forwardRef(
4160
+ ({ __scopeSlider: e, value: t, ...r }, n) => {
4161
+ const s = y.useRef(null), i = le(s, n), l = Xn(t);
4162
+ return y.useEffect(() => {
4163
+ const a = s.current;
4164
+ if (!a) return;
4165
+ const c = window.HTMLInputElement.prototype, p = Object.getOwnPropertyDescriptor(c, "value").set;
4166
+ if (l !== t && p) {
4167
+ const d = new Event("input", { bubbles: !0 });
4168
+ p.call(a, t), a.dispatchEvent(d);
4169
+ }
4170
+ }, [l, t]), /* @__PURE__ */ u.jsx(
4171
+ ge.input,
4172
+ {
4173
+ style: { display: "none" },
4174
+ ...r,
4175
+ ref: i,
4176
+ defaultValue: t
4177
+ }
4178
+ );
4179
+ }
4180
+ );
4181
+ Zt.displayName = ao;
4182
+ function lo(e = [], t, r) {
4183
+ const n = [...e];
4184
+ return n[r] = t, n.sort((s, i) => s - i);
4185
+ }
4186
+ function er(e, t, r) {
4187
+ const i = 100 / (r - t) * (e - t);
4188
+ return It(i, [0, 100]);
4189
+ }
4190
+ function co(e, t) {
4191
+ return t > 2 ? `Value ${e + 1} of ${t}` : t === 2 ? ["Minimum", "Maximum"][e] : void 0;
4192
+ }
4193
+ function uo(e, t) {
4194
+ if (e.length === 1) return 0;
4195
+ const r = e.map((s) => Math.abs(s - t)), n = Math.min(...r);
4196
+ return r.indexOf(n);
4197
+ }
4198
+ function fo(e, t, r) {
4199
+ const n = e / 2, i = Ke([0, 50], [0, n]);
4200
+ return (n - i(t) * r) * r;
4201
+ }
4202
+ function po(e) {
4203
+ return e.slice(0, -1).map((t, r) => e[r + 1] - t);
4204
+ }
4205
+ function mo(e, t) {
4206
+ if (t > 0) {
4207
+ const r = po(e);
4208
+ return Math.min(...r) >= t;
4209
+ }
4210
+ return !0;
4211
+ }
4212
+ function Ke(e, t) {
4213
+ return (r) => {
4214
+ if (e[0] === e[1] || t[0] === t[1]) return t[0];
4215
+ const n = (t[1] - t[0]) / (e[1] - e[0]);
4216
+ return t[0] + n * (r - e[0]);
4217
+ };
4218
+ }
4219
+ function ho(e) {
4220
+ return (String(e).split(".")[1] || "").length;
4221
+ }
4222
+ function go(e, t) {
4223
+ const r = Math.pow(10, t);
4224
+ return Math.round(e * r) / r;
4225
+ }
4226
+ var tr = Ut, bo = Jt, vo = Qt, yo = Xt;
4227
+ const rr = y.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ u.jsxs(
4228
+ tr,
4229
+ {
4230
+ ref: r,
4231
+ className: D(
4232
+ "relative flex w-full touch-none select-none items-center",
4233
+ e
4234
+ ),
4235
+ ...t,
4236
+ children: [
4237
+ /* @__PURE__ */ u.jsx(bo, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: /* @__PURE__ */ u.jsx(vo, { className: "absolute h-full bg-primary" }) }),
4238
+ /* @__PURE__ */ u.jsx(yo, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" })
4239
+ ]
4240
+ }
4241
+ ));
4242
+ rr.displayName = tr.displayName;
4243
+ const xo = ({
4244
+ id: e,
4245
+ value: t,
4246
+ required: r,
4247
+ disabled: n,
4248
+ readonly: s,
4249
+ label: i,
4250
+ onChange: l,
4251
+ onBlur: a,
4252
+ schema: c
4253
+ }) => {
4254
+ const f = c.minimum || 0, p = c.maximum || 100, d = c.multipleOf || 1, h = ue(e, c), w = async (S) => {
4255
+ const v = S[0];
4256
+ l(v), a && a(e, v), await h.onChange(v);
4257
+ };
4258
+ return /* @__PURE__ */ u.jsxs("div", { className: "space-y-2", children: [
4259
+ /* @__PURE__ */ u.jsxs("div", { className: "flex items-center justify-between", children: [
4260
+ /* @__PURE__ */ u.jsxs(K, { htmlFor: e, children: [
4261
+ i || c.title,
4262
+ r && /* @__PURE__ */ u.jsx("span", { className: "text-destructive ml-1", children: "*" })
4263
+ ] }),
4264
+ /* @__PURE__ */ u.jsx("span", { className: "text-sm font-medium tabular-nums", children: t || f })
4265
+ ] }),
4266
+ /* @__PURE__ */ u.jsx(
4267
+ rr,
4268
+ {
4269
+ id: e,
4270
+ min: f,
4271
+ max: p,
4272
+ step: d,
4273
+ value: [t || f],
4274
+ onValueChange: w,
4275
+ disabled: n || s,
4276
+ className: "w-full"
4277
+ }
4278
+ )
4279
+ ] });
4280
+ }, wo = ({
4281
+ id: e,
4282
+ value: t,
4283
+ required: r,
4284
+ disabled: n,
4285
+ readonly: s,
4286
+ label: i,
4287
+ onChange: l,
4288
+ options: a,
4289
+ schema: c
4290
+ }) => {
4291
+ const f = Number(a.max || c.maximum || 5), p = Array.from({ length: f }, (w, S) => S + 1), d = ue(e, c), h = async (w) => {
4292
+ !n && !s && (l(w), await d.onChange(w));
4293
+ };
4294
+ return /* @__PURE__ */ u.jsxs("div", { className: "space-y-2", children: [
4295
+ /* @__PURE__ */ u.jsxs(K, { htmlFor: e, children: [
4296
+ i || c.title,
4297
+ r && /* @__PURE__ */ u.jsx("span", { className: "text-destructive ml-1", children: "*" })
4298
+ ] }),
4299
+ /* @__PURE__ */ u.jsx("div", { className: "flex items-center gap-1", role: "radiogroup", "aria-labelledby": e, children: p.map((w) => /* @__PURE__ */ u.jsx(
4300
+ Pe,
4301
+ {
4302
+ type: "button",
4303
+ variant: "ghost",
4304
+ size: "icon",
4305
+ className: D(
4306
+ "h-8 w-8 p-0 hover:bg-transparent",
4307
+ n || s ? "cursor-not-allowed opacity-50" : "cursor-pointer"
4308
+ ),
4309
+ onClick: () => h(w),
4310
+ disabled: n || s,
4311
+ "aria-label": `Rate ${w} out of ${f}`,
4312
+ role: "radio",
4313
+ "aria-checked": w === t,
4314
+ children: /* @__PURE__ */ u.jsx(
4315
+ Bn,
4316
+ {
4317
+ className: D(
4318
+ "h-5 w-5 transition-colors",
4319
+ w <= (t || 0) ? "fill-yellow-400 text-yellow-400" : "text-muted-foreground"
4320
+ )
4321
+ }
4322
+ )
4323
+ },
4324
+ w
4325
+ )) })
4326
+ ] });
4327
+ }, Co = {
4328
+ color: Vn,
4329
+ date: In,
4330
+ file: Hn,
4331
+ range: xo,
4332
+ rating: wo
4333
+ }, So = {
4334
+ small: "space-y-2",
4335
+ medium: "space-y-4",
4336
+ large: "space-y-6"
4337
+ }, $o = ({
4338
+ children: e,
4339
+ spacing: t = "medium",
4340
+ className: r = ""
4341
+ }) => /* @__PURE__ */ u.jsx("div", { className: D("flex flex-col", So[t], r), children: e }), Ro = {
4342
+ small: "space-x-2",
4343
+ medium: "space-x-4",
4344
+ large: "space-x-6"
4345
+ }, Eo = {
4346
+ start: "items-start",
4347
+ center: "items-center",
4348
+ end: "items-end",
4349
+ stretch: "items-stretch"
4350
+ }, Vo = ({
4351
+ children: e,
4352
+ spacing: t = "medium",
4353
+ align: r = "center",
4354
+ className: n = ""
4355
+ }) => /* @__PURE__ */ u.jsx("div", { className: D("flex flex-row", Ro[t], Eo[r], n), children: e }), jo = {
4356
+ small: "gap-2",
4357
+ medium: "gap-4",
4358
+ large: "gap-6"
4359
+ }, Io = ({
4360
+ children: e,
4361
+ columns: t = "auto-fit",
4362
+ gap: r = "medium",
4363
+ minItemWidth: n = "250px",
4364
+ className: s = ""
4365
+ }) => {
4366
+ const i = {
4367
+ display: "grid"
4368
+ };
4369
+ return typeof t == "number" ? i.gridTemplateColumns = `repeat(${t}, 1fr)` : i.gridTemplateColumns = `repeat(${t}, minmax(${n}, 1fr))`, /* @__PURE__ */ u.jsx("div", { className: D("grid", jo[r], s), style: i, children: e });
4370
+ };
4371
+ class zo {
4372
+ constructor(t) {
4373
+ se(this, "handlers");
4374
+ this.handlers = t;
4375
+ }
4376
+ async handleBeforeSubmit(t) {
4377
+ return this.handlers.beforeSubmit ? await this.handlers.beforeSubmit(t) : t;
4378
+ }
4379
+ async handleAfterSubmit(t) {
4380
+ this.handlers.afterSubmit && await this.handlers.afterSubmit(t);
4381
+ }
4382
+ async handleBeforeValidation(t) {
4383
+ return this.handlers.beforeValidation ? await this.handlers.beforeValidation(t) : t;
4384
+ }
4385
+ async handleAfterValidation(t, r) {
4386
+ this.handlers.afterValidation && await this.handlers.afterValidation(t, r);
4387
+ }
4388
+ }
4389
+ class ko {
4390
+ constructor(t, r = {}, n = []) {
4391
+ se(this, "formHandlers");
4392
+ se(this, "fieldHandlers");
4393
+ se(this, "webhooks");
4394
+ se(this, "debounceTimers", /* @__PURE__ */ new Map());
4395
+ se(this, "webhookQueue", []);
4396
+ se(this, "isProcessingQueue", !1);
4397
+ this.formHandlers = t, this.fieldHandlers = r, this.webhooks = n;
4398
+ }
4399
+ // Existing form-level event handlers
4400
+ async handleBeforeSubmit(t) {
4401
+ return this.formHandlers.beforeSubmit ? await this.formHandlers.beforeSubmit(t) : t;
4402
+ }
4403
+ async handleAfterSubmit(t) {
4404
+ this.formHandlers.afterSubmit && await this.formHandlers.afterSubmit(t);
4405
+ }
4406
+ async handleBeforeValidation(t) {
4407
+ return this.formHandlers.beforeValidation ? await this.formHandlers.beforeValidation(t) : t;
4408
+ }
4409
+ async handleAfterValidation(t, r) {
4410
+ this.formHandlers.afterValidation && await this.formHandlers.afterValidation(t, r);
4411
+ }
4412
+ // New field-level event handlers
4413
+ async handleFieldEvent(t, r, n, s, i, l) {
4414
+ const a = {
4415
+ eventType: t,
4416
+ fieldId: r,
4417
+ fieldValue: n,
4418
+ schema: s,
4419
+ formData: i,
4420
+ timestamp: Date.now(),
4421
+ fieldPath: l
4422
+ };
4423
+ try {
4424
+ switch (t) {
4425
+ case "focus":
4426
+ this.fieldHandlers.onFieldFocus && await this.fieldHandlers.onFieldFocus(a);
4427
+ break;
4428
+ case "blur":
4429
+ this.fieldHandlers.onFieldBlur && await this.fieldHandlers.onFieldBlur(a);
4430
+ break;
4431
+ case "change":
4432
+ this.fieldHandlers.onFieldChange && await this.fieldHandlers.onFieldChange(a);
4433
+ break;
4434
+ }
4435
+ } catch (c) {
4436
+ console.error(`Error in field event handler (${t}):`, c);
4437
+ }
4438
+ this.processWebhooks(a);
4439
+ }
4440
+ processWebhooks(t) {
4441
+ const r = this.webhooks.filter(
4442
+ (n) => !n.events || n.events.includes(t.eventType)
4443
+ );
4444
+ for (const n of r)
4445
+ n.debounceMs && n.debounceMs > 0 ? this.debounceWebhook(n, t) : this.queueWebhook(n, t);
4446
+ }
4447
+ debounceWebhook(t, r) {
4448
+ const n = `${t.url}-${r.fieldId}-${r.eventType}`;
4449
+ this.debounceTimers.has(n) && clearTimeout(this.debounceTimers.get(n));
4450
+ const s = setTimeout(() => {
4451
+ this.queueWebhook(t, r), this.debounceTimers.delete(n);
4452
+ }, t.debounceMs);
4453
+ this.debounceTimers.set(n, s);
4454
+ }
4455
+ queueWebhook(t, r) {
4456
+ this.webhookQueue.push({
4457
+ config: t,
4458
+ event: r,
4459
+ retryCount: 0
4460
+ }), this.isProcessingQueue || this.processWebhookQueue();
4461
+ }
4462
+ async processWebhookQueue() {
4463
+ if (!(this.isProcessingQueue || this.webhookQueue.length === 0)) {
4464
+ for (this.isProcessingQueue = !0; this.webhookQueue.length > 0; ) {
4465
+ const t = this.webhookQueue.shift();
4466
+ try {
4467
+ await this.callWebhook(t.config, t.event);
4468
+ } catch (r) {
4469
+ const n = t.config.retries || 3;
4470
+ t.retryCount < n ? (t.retryCount++, setTimeout(() => {
4471
+ this.webhookQueue.push(t);
4472
+ }, Math.pow(2, t.retryCount) * 1e3)) : console.error(`Webhook failed after ${n} retries:`, r);
4473
+ }
4474
+ }
4475
+ this.isProcessingQueue = !1;
4476
+ }
4477
+ }
4478
+ async callWebhook(t, r) {
4479
+ const n = {
4480
+ event: r,
4481
+ timestamp: Date.now(),
4482
+ source: "extended-dynamic-forms"
4483
+ }, s = {
4484
+ method: t.method || "POST",
4485
+ headers: {
4486
+ "Content-Type": "application/json",
4487
+ ...t.headers
4488
+ },
4489
+ body: JSON.stringify(n)
4490
+ };
4491
+ t.timeout && (s.signal = AbortSignal.timeout(t.timeout));
4492
+ const i = await fetch(t.url, s);
4493
+ if (!i.ok)
4494
+ throw new Error(`Webhook request failed: ${i.status} ${i.statusText}`);
4495
+ }
4496
+ // Helper method to create bound event handlers for widgets
4497
+ createFieldEventHandlers(t, r, n, s) {
4498
+ return {
4499
+ onFocus: (i) => this.handleFieldEvent("focus", t, i, r, n, s),
4500
+ onBlur: (i) => this.handleFieldEvent("blur", t, i, r, n, s),
4501
+ onChange: (i) => this.handleFieldEvent("change", t, i, r, n, s)
4502
+ };
4503
+ }
4504
+ // Cleanup method to clear timers
4505
+ cleanup() {
4506
+ for (const t of this.debounceTimers.values())
4507
+ clearTimeout(t);
4508
+ this.debounceTimers.clear();
4509
+ }
4510
+ }
4511
+ const _o = {
4512
+ /**
4513
+ * Deep clone form data to avoid mutations
4514
+ */
4515
+ cloneFormData: (e) => JSON.parse(JSON.stringify(e)),
4516
+ /**
4517
+ * Merge two form data objects
4518
+ */
4519
+ mergeFormData: (e, t) => ({ ...e, ...t }),
4520
+ /**
4521
+ * Get nested value from form data using dot notation
4522
+ */
4523
+ getNestedValue: (e, t) => {
4524
+ const r = t.split(".");
4525
+ let n = e;
4526
+ for (const s of r)
4527
+ if (n && typeof n == "object" && s in n)
4528
+ n = n[s];
4529
+ else
4530
+ return;
4531
+ return n;
4532
+ },
4533
+ /**
4534
+ * Set nested value in form data using dot notation
4535
+ */
4536
+ setNestedValue: (e, t, r) => {
4537
+ const n = t.split("."), s = { ...e };
4538
+ let i = s;
4539
+ for (let l = 0; l < n.length - 1; l++) {
4540
+ const a = n[l];
4541
+ (!(a in i) || typeof i[a] != "object") && (i[a] = {}), i = i[a];
4542
+ }
4543
+ return i[n[n.length - 1]] = r, s;
4544
+ },
4545
+ /**
4546
+ * Remove empty values from form data
4547
+ */
4548
+ removeEmptyValues: (e) => {
4549
+ if (Array.isArray(e))
4550
+ return e.filter((t) => t != null && t !== "");
4551
+ if (e !== null && typeof e == "object") {
4552
+ const t = {};
4553
+ for (const [r, n] of Object.entries(e))
4554
+ n != null && n !== "" && (t[r] = _o.removeEmptyValues(n));
4555
+ return t;
4556
+ }
4557
+ return e;
4558
+ }
4559
+ }, Po = {
4560
+ /**
4561
+ * Get required fields from schema
4562
+ */
4563
+ getRequiredFields: (e) => e.required || [],
4564
+ /**
4565
+ * Check if a field is required
4566
+ */
4567
+ isFieldRequired: (e, t) => (e.required || []).includes(t),
4568
+ /**
4569
+ * Get field schema by path
4570
+ */
4571
+ getFieldSchema: (e, t) => {
4572
+ const r = t.split(".");
4573
+ let n = e;
4574
+ for (const s of r)
4575
+ if (n.type === "object" && n.properties)
4576
+ n = n.properties[s];
4577
+ else if (n.type === "array" && n.items)
4578
+ n = n.items;
4579
+ else
4580
+ return;
4581
+ return n;
4582
+ },
4583
+ /**
4584
+ * Merge two schemas
4585
+ */
4586
+ mergeSchemas: (e, t) => ({
4587
+ ...e,
4588
+ ...t,
4589
+ properties: {
4590
+ ...e.properties,
4591
+ ...t.properties
4592
+ },
4593
+ required: [.../* @__PURE__ */ new Set([...e.required || [], ...t.required || []])]
4594
+ }),
4595
+ /**
4596
+ * Get all field paths from schema
4597
+ */
4598
+ getAllFieldPaths: (e, t = "") => {
4599
+ const r = [];
4600
+ if (e.type === "object" && e.properties)
4601
+ for (const [n, s] of Object.entries(e.properties)) {
4602
+ const i = t ? `${t}.${n}` : n;
4603
+ r.push(i), r.push(...Po.getAllFieldPaths(s, i));
4604
+ }
4605
+ return r;
4606
+ }
4607
+ }, Do = {
4608
+ /**
4609
+ * Validate email format
4610
+ */
4611
+ isValidEmail: (e) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),
4612
+ /**
4613
+ * Validate phone number format
4614
+ */
4615
+ isValidPhone: (e) => /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/.test(e),
4616
+ /**
4617
+ * Validate URL format
4618
+ */
4619
+ isValidUrl: (e) => {
4620
+ try {
4621
+ return new URL(e), !0;
4622
+ } catch {
4623
+ return !1;
4624
+ }
4625
+ },
4626
+ /**
4627
+ * Validate date format
4628
+ */
4629
+ isValidDate: (e) => {
4630
+ const t = new Date(e);
4631
+ return t instanceof Date && !isNaN(t.getTime());
4632
+ },
4633
+ /**
4634
+ * Validate number in range
4635
+ */
4636
+ isInRange: (e, t, r) => !(t !== void 0 && e < t || r !== void 0 && e > r),
4637
+ /**
4638
+ * Custom validation messages
4639
+ */
4640
+ getValidationMessage: (e, t) => ({
4641
+ required: "This field is required",
4642
+ email: "Please enter a valid email address",
4643
+ phone: "Please enter a valid phone number",
4644
+ url: "Please enter a valid URL",
4645
+ date: "Please enter a valid date",
4646
+ min: `Value must be at least ${t == null ? void 0 : t.min}`,
4647
+ max: `Value must be at most ${t == null ? void 0 : t.max}`,
4648
+ minLength: `Must be at least ${t == null ? void 0 : t.minLength} characters`,
4649
+ maxLength: `Must be at most ${t == null ? void 0 : t.maxLength} characters`
4650
+ })[e] || "Invalid value"
4651
+ }, Lo = ({
4652
+ schema: e,
4653
+ uiSchema: t,
4654
+ formData: r,
4655
+ onSubmit: n,
4656
+ onChange: s,
4657
+ onError: i,
4658
+ onBlur: l,
4659
+ onFocus: a,
4660
+ beforeSubmit: c,
4661
+ afterSubmit: f,
4662
+ beforeValidation: p,
4663
+ afterValidation: d,
4664
+ onFieldFocus: h,
4665
+ onFieldBlur: w,
4666
+ onFieldChange: S,
4667
+ webhooks: v = [],
4668
+ widgets: g = {},
4669
+ fields: b = {},
4670
+ templates: C = {},
4671
+ ...j
4672
+ }) => {
4673
+ const E = wt(null), V = Fr(() => {
4674
+ const I = new ko(
4675
+ {
4676
+ beforeSubmit: c,
4677
+ afterSubmit: f,
4678
+ beforeValidation: p,
4679
+ afterValidation: d
4680
+ },
4681
+ {
4682
+ onFieldFocus: h,
4683
+ onFieldBlur: w,
4684
+ onFieldChange: S
4685
+ },
4686
+ v
4687
+ );
4688
+ return E.current = I, I;
4689
+ }, [c, f, p, d, h, w, S, v]);
4690
+ $r(() => () => {
4691
+ E.current && E.current.cleanup();
4692
+ }, []);
4693
+ const L = async (I, O) => {
4694
+ const _ = await V.handleBeforeSubmit(I);
4695
+ n && await n(_, O), await V.handleAfterSubmit(_);
4696
+ }, Y = (I) => {
4697
+ s && s(I);
4698
+ }, oe = {
4699
+ ...Co,
4700
+ ...g
4701
+ }, te = {
4702
+ ...$n,
4703
+ ...b
4704
+ };
4705
+ return /* @__PURE__ */ u.jsx(An, { eventHub: V, formData: r, children: /* @__PURE__ */ u.jsx(
4706
+ Vr,
4707
+ {
4708
+ schema: e,
4709
+ uiSchema: t,
4710
+ formData: r,
4711
+ validator: Ir,
4712
+ onSubmit: L,
4713
+ onChange: Y,
4714
+ onError: i,
4715
+ onBlur: l,
4716
+ onFocus: a,
4717
+ widgets: oe,
4718
+ fields: te,
4719
+ templates: C,
4720
+ ...j
4721
+ }
4722
+ ) });
4723
+ };
4724
+ export {
4725
+ Tn as AddressField,
4726
+ Vn as ColorWidget,
4727
+ Fn as CurrencyField,
4728
+ In as DateWidget,
4729
+ Lo as ExtendedForm,
4730
+ Hn as FileWidget,
4731
+ ko as FormEventHub,
4732
+ zo as FormEventManager,
4733
+ An as FormEventProvider,
4734
+ Io as GridLayout,
4735
+ Vo as HorizontalLayout,
4736
+ On as PhoneField,
4737
+ xo as RangeWidget,
4738
+ wo as RatingWidget,
4739
+ $o as VerticalLayout,
4740
+ D as cn,
4741
+ $n as customFields,
4742
+ Co as customWidgets,
4743
+ _o as formDataUtils,
4744
+ Po as schemaUtils,
4745
+ ue as useFieldEventHandlers,
4746
+ Mn as useFormEventHub,
4747
+ Do as validationUtils
4748
+ };