reactaform 1.1.5 → 1.2.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.
@@ -1,6 +1,6 @@
1
- import A, { createContext as br, useContext as yr, useRef as k, useEffect as C, useCallback as Z, useState as T, useMemo as G, memo as ve } from "react";
1
+ import N, { createContext as yr, useContext as xr, useRef as k, useEffect as C, useCallback as Z, useState as D, useMemo as G, memo as ve } from "react";
2
2
  import Me from "react-dom";
3
- const xr = `/* ReactaForm CSS Custom Properties (CSS Variables) */\r
3
+ const vr = `/* ReactaForm CSS Custom Properties (CSS Variables) */\r
4
4
  \r
5
5
  /* Default Light Theme */\r
6
6
  :root {\r
@@ -289,21 +289,21 @@ const xr = `/* ReactaForm CSS Custom Properties (CSS Variables) */\r
289
289
  `;
290
290
  var be = { exports: {} }, de = {};
291
291
  var qe;
292
- function vr() {
292
+ function wr() {
293
293
  if (qe) return de;
294
294
  qe = 1;
295
295
  var e = Symbol.for("react.transitional.element"), r = Symbol.for("react.fragment");
296
296
  function n(o, t, a) {
297
- var i = null;
298
- if (a !== void 0 && (i = "" + a), t.key !== void 0 && (i = "" + t.key), "key" in t) {
297
+ var s = null;
298
+ if (a !== void 0 && (s = "" + a), t.key !== void 0 && (s = "" + t.key), "key" in t) {
299
299
  a = {};
300
- for (var s in t)
301
- s !== "key" && (a[s] = t[s]);
300
+ for (var i in t)
301
+ i !== "key" && (a[i] = t[i]);
302
302
  } else a = t;
303
303
  return t = a.ref, {
304
304
  $$typeof: e,
305
305
  type: o,
306
- key: i,
306
+ key: s,
307
307
  ref: t !== void 0 ? t : null,
308
308
  props: a
309
309
  };
@@ -312,7 +312,7 @@ function vr() {
312
312
  }
313
313
  var pe = {};
314
314
  var Be;
315
- function wr() {
315
+ function Sr() {
316
316
  return Be || (Be = 1, process.env.NODE_ENV !== "production" && (function() {
317
317
  function e(h) {
318
318
  if (h == null) return null;
@@ -322,13 +322,13 @@ function wr() {
322
322
  switch (h) {
323
323
  case y:
324
324
  return "Fragment";
325
- case S:
325
+ case v:
326
326
  return "Profiler";
327
327
  case x:
328
328
  return "StrictMode";
329
329
  case j:
330
330
  return "Suspense";
331
- case E:
331
+ case I:
332
332
  return "SuspenseList";
333
333
  case M:
334
334
  return "Activity";
@@ -337,21 +337,21 @@ function wr() {
337
337
  switch (typeof h.tag == "number" && console.error(
338
338
  "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
339
339
  ), h.$$typeof) {
340
- case p:
340
+ case f:
341
341
  return "Portal";
342
- case I:
342
+ case R:
343
343
  return h.displayName || "Context";
344
344
  case F:
345
345
  return (h._context.displayName || "Context") + ".Consumer";
346
346
  case w:
347
- var R = h.render;
348
- return h = h.displayName, h || (h = R.displayName || R.name || "", h = h !== "" ? "ForwardRef(" + h + ")" : "ForwardRef"), h;
349
- case v:
350
- return R = h.displayName || null, R !== null ? R : e(h.type) || "Memo";
351
- case N:
352
- R = h._payload, h = h._init;
347
+ var E = h.render;
348
+ return h = h.displayName, h || (h = E.displayName || E.name || "", h = h !== "" ? "ForwardRef(" + h + ")" : "ForwardRef"), h;
349
+ case S:
350
+ return E = h.displayName || null, E !== null ? E : e(h.type) || "Memo";
351
+ case A:
352
+ E = h._payload, h = h._init;
353
353
  try {
354
- return e(h(R));
354
+ return e(h(E));
355
355
  } catch {
356
356
  }
357
357
  }
@@ -363,15 +363,15 @@ function wr() {
363
363
  function n(h) {
364
364
  try {
365
365
  r(h);
366
- var R = !1;
366
+ var E = !1;
367
367
  } catch {
368
- R = !0;
368
+ E = !0;
369
369
  }
370
- if (R) {
371
- R = console;
372
- var B = R.error, U = typeof Symbol == "function" && Symbol.toStringTag && h[Symbol.toStringTag] || h.constructor.name || "Object";
370
+ if (E) {
371
+ E = console;
372
+ var B = E.error, U = typeof Symbol == "function" && Symbol.toStringTag && h[Symbol.toStringTag] || h.constructor.name || "Object";
373
373
  return B.call(
374
- R,
374
+ E,
375
375
  "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
376
376
  U
377
377
  ), r(h);
@@ -379,11 +379,11 @@ function wr() {
379
379
  }
380
380
  function o(h) {
381
381
  if (h === y) return "<>";
382
- if (typeof h == "object" && h !== null && h.$$typeof === N)
382
+ if (typeof h == "object" && h !== null && h.$$typeof === A)
383
383
  return "<...>";
384
384
  try {
385
- var R = e(h);
386
- return R ? "<" + R + ">" : "<...>";
385
+ var E = e(h);
386
+ return E ? "<" + E + ">" : "<...>";
387
387
  } catch {
388
388
  return "<...>";
389
389
  }
@@ -395,18 +395,18 @@ function wr() {
395
395
  function a() {
396
396
  return Error("react-stack-top-frame");
397
397
  }
398
- function i(h) {
398
+ function s(h) {
399
399
  if (J.call(h, "key")) {
400
- var R = Object.getOwnPropertyDescriptor(h, "key").get;
401
- if (R && R.isReactWarning) return !1;
400
+ var E = Object.getOwnPropertyDescriptor(h, "key").get;
401
+ if (E && E.isReactWarning) return !1;
402
402
  }
403
403
  return h.key !== void 0;
404
404
  }
405
- function s(h, R) {
405
+ function i(h, E) {
406
406
  function B() {
407
407
  ue || (ue = !0, console.error(
408
408
  "%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://react.dev/link/special-props)",
409
- R
409
+ E
410
410
  ));
411
411
  }
412
412
  B.isReactWarning = !0, Object.defineProperty(h, "key", {
@@ -420,12 +420,12 @@ function wr() {
420
420
  "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
421
421
  )), h = this.props.ref, h !== void 0 ? h : null;
422
422
  }
423
- function m(h, R, B, U, ne, ae) {
423
+ function m(h, E, B, U, ne, ae) {
424
424
  var _ = B.ref;
425
425
  return h = {
426
426
  $$typeof: b,
427
427
  type: h,
428
- key: R,
428
+ key: E,
429
429
  props: B,
430
430
  _owner: U
431
431
  }, (_ !== void 0 ? _ : null) !== null ? Object.defineProperty(h, "ref", {
@@ -453,23 +453,23 @@ function wr() {
453
453
  value: ae
454
454
  }), Object.freeze && (Object.freeze(h.props), Object.freeze(h)), h;
455
455
  }
456
- function l(h, R, B, U, ne, ae) {
457
- var _ = R.children;
456
+ function l(h, E, B, U, ne, ae) {
457
+ var _ = E.children;
458
458
  if (_ !== void 0)
459
459
  if (U)
460
460
  if (ce(_)) {
461
461
  for (U = 0; U < _.length; U++)
462
- d(_[U]);
462
+ p(_[U]);
463
463
  Object.freeze && Object.freeze(_);
464
464
  } else
465
465
  console.error(
466
466
  "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
467
467
  );
468
- else d(_);
469
- if (J.call(R, "key")) {
468
+ else p(_);
469
+ if (J.call(E, "key")) {
470
470
  _ = e(h);
471
- var V = Object.keys(R).filter(function(K) {
472
- return K !== "key";
471
+ var V = Object.keys(E).filter(function(X) {
472
+ return X !== "key";
473
473
  });
474
474
  U = 0 < V.length ? "{key: someKey, " + V.join(": ..., ") + ": ...}" : "{key: someKey}", O[_ + U] || (V = 0 < V.length ? "{" + V.join(": ..., ") + ": ...}" : "{}", console.error(
475
475
  `A props object containing a "key" prop is being spread into JSX:
@@ -484,12 +484,12 @@ React keys must be passed directly to JSX without using spread:
484
484
  _
485
485
  ), O[_ + U] = !0);
486
486
  }
487
- if (_ = null, B !== void 0 && (n(B), _ = "" + B), i(R) && (n(R.key), _ = "" + R.key), "key" in R) {
487
+ if (_ = null, B !== void 0 && (n(B), _ = "" + B), s(E) && (n(E.key), _ = "" + E.key), "key" in E) {
488
488
  B = {};
489
- for (var q in R)
490
- q !== "key" && (B[q] = R[q]);
491
- } else B = R;
492
- return _ && s(
489
+ for (var q in E)
490
+ q !== "key" && (B[q] = E[q]);
491
+ } else B = E;
492
+ return _ && i(
493
493
  B,
494
494
  typeof h == "function" ? h.displayName || h.name || "Unknown" : h
495
495
  ), m(
@@ -501,39 +501,39 @@ React keys must be passed directly to JSX without using spread:
501
501
  ae
502
502
  );
503
503
  }
504
- function d(h) {
505
- c(h) ? h._store && (h._store.validated = 1) : typeof h == "object" && h !== null && h.$$typeof === N && (h._payload.status === "fulfilled" ? c(h._payload.value) && h._payload.value._store && (h._payload.value._store.validated = 1) : h._store && (h._store.validated = 1));
504
+ function p(h) {
505
+ c(h) ? h._store && (h._store.validated = 1) : typeof h == "object" && h !== null && h.$$typeof === A && (h._payload.status === "fulfilled" ? c(h._payload.value) && h._payload.value._store && (h._payload.value._store.validated = 1) : h._store && (h._store.validated = 1));
506
506
  }
507
507
  function c(h) {
508
508
  return typeof h == "object" && h !== null && h.$$typeof === b;
509
509
  }
510
- var f = A, b = Symbol.for("react.transitional.element"), p = Symbol.for("react.portal"), y = Symbol.for("react.fragment"), x = Symbol.for("react.strict_mode"), S = Symbol.for("react.profiler"), F = Symbol.for("react.consumer"), I = Symbol.for("react.context"), w = Symbol.for("react.forward_ref"), j = Symbol.for("react.suspense"), E = Symbol.for("react.suspense_list"), v = Symbol.for("react.memo"), N = Symbol.for("react.lazy"), M = Symbol.for("react.activity"), z = Symbol.for("react.client.reference"), L = f.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, J = Object.prototype.hasOwnProperty, ce = Array.isArray, re = console.createTask ? console.createTask : function() {
510
+ var d = N, b = Symbol.for("react.transitional.element"), f = Symbol.for("react.portal"), y = Symbol.for("react.fragment"), x = Symbol.for("react.strict_mode"), v = Symbol.for("react.profiler"), F = Symbol.for("react.consumer"), R = Symbol.for("react.context"), w = Symbol.for("react.forward_ref"), j = Symbol.for("react.suspense"), I = Symbol.for("react.suspense_list"), S = Symbol.for("react.memo"), A = Symbol.for("react.lazy"), M = Symbol.for("react.activity"), z = Symbol.for("react.client.reference"), L = d.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, J = Object.prototype.hasOwnProperty, ce = Array.isArray, re = console.createTask ? console.createTask : function() {
511
511
  return null;
512
512
  };
513
- f = {
513
+ d = {
514
514
  react_stack_bottom_frame: function(h) {
515
515
  return h();
516
516
  }
517
517
  };
518
- var ue, Q = {}, oe = f.react_stack_bottom_frame.bind(
519
- f,
518
+ var ue, Q = {}, oe = d.react_stack_bottom_frame.bind(
519
+ d,
520
520
  a
521
521
  )(), P = re(o(a)), O = {};
522
- pe.Fragment = y, pe.jsx = function(h, R, B) {
522
+ pe.Fragment = y, pe.jsx = function(h, E, B) {
523
523
  var U = 1e4 > L.recentlyCreatedOwnerStacks++;
524
524
  return l(
525
525
  h,
526
- R,
526
+ E,
527
527
  B,
528
528
  !1,
529
529
  U ? Error("react-stack-top-frame") : oe,
530
530
  U ? re(o(h)) : P
531
531
  );
532
- }, pe.jsxs = function(h, R, B) {
532
+ }, pe.jsxs = function(h, E, B) {
533
533
  var U = 1e4 > L.recentlyCreatedOwnerStacks++;
534
534
  return l(
535
535
  h,
536
- R,
536
+ E,
537
537
  B,
538
538
  !0,
539
539
  U ? Error("react-stack-top-frame") : oe,
@@ -543,12 +543,12 @@ React keys must be passed directly to JSX without using spread:
543
543
  })()), pe;
544
544
  }
545
545
  var He;
546
- function Sr() {
547
- return He || (He = 1, process.env.NODE_ENV === "production" ? be.exports = vr() : be.exports = wr()), be.exports;
546
+ function Cr() {
547
+ return He || (He = 1, process.env.NODE_ENV === "production" ? be.exports = wr() : be.exports = Sr()), be.exports;
548
548
  }
549
- var g = Sr();
550
- const Oe = br(void 0), D = () => {
551
- const e = yr(Oe);
549
+ var g = Cr();
550
+ const Oe = yr(void 0), T = () => {
551
+ const e = xr(Oe);
552
552
  if (!e)
553
553
  throw new Error("❌ useReactaFormContext must be used within a <ReactaFormProvider>");
554
554
  return e;
@@ -591,8 +591,8 @@ class we {
591
591
  return this.get(r) ?? n;
592
592
  }
593
593
  }
594
- function Cr(e, r = 300, n) {
595
- const o = k(void 0), t = k(e), a = k(null), i = k(!1);
594
+ function jr(e, r = 300, n) {
595
+ const o = k(void 0), t = k(e), a = k(null), s = k(!1);
596
596
  C(() => {
597
597
  t.current = e;
598
598
  }, [e]), C(
@@ -601,30 +601,30 @@ function Cr(e, r = 300, n) {
601
601
  },
602
602
  []
603
603
  );
604
- const s = Z(() => {
605
- o.current !== void 0 && (window.clearTimeout(o.current), o.current = void 0), a.current = null, i.current = !1;
604
+ const i = Z(() => {
605
+ o.current !== void 0 && (window.clearTimeout(o.current), o.current = void 0), a.current = null, s.current = !1;
606
606
  }, []), u = Z(() => {
607
607
  if (o.current !== void 0 && (window.clearTimeout(o.current), o.current = void 0), a.current)
608
608
  try {
609
609
  t.current(...a.current);
610
610
  } finally {
611
- a.current = null, i.current = !1;
611
+ a.current = null, s.current = !1;
612
612
  }
613
613
  }, []);
614
614
  return { callback: Z(
615
615
  (...l) => {
616
- if (n?.leading === !0 && !i.current) {
617
- i.current = !0, t.current(...l), window.clearTimeout(o.current), o.current = window.setTimeout(() => {
618
- i.current = !1, o.current = void 0;
616
+ if (n?.leading === !0 && !s.current) {
617
+ s.current = !0, t.current(...l), window.clearTimeout(o.current), o.current = window.setTimeout(() => {
618
+ s.current = !1, o.current = void 0;
619
619
  }, r);
620
620
  return;
621
621
  }
622
622
  a.current = l, window.clearTimeout(o.current), o.current = window.setTimeout(() => {
623
- o.current = void 0, a.current && (t.current(...a.current), a.current = null, i.current = !1);
623
+ o.current = void 0, a.current && (t.current(...a.current), a.current = null, s.current = !1);
624
624
  }, r);
625
625
  },
626
626
  [r, n?.leading]
627
- ), cancel: s, flush: u };
627
+ ), cancel: i, flush: u };
628
628
  }
629
629
  const $ = {
630
630
  field: "reactaform-field",
@@ -635,16 +635,16 @@ const $ = {
635
635
  inputSelect: "reactaform-select",
636
636
  rangeInput: "reactaform-input--range",
637
637
  button: "reactaform-button"
638
- }, X = (...e) => {
638
+ }, K = (...e) => {
639
639
  const r = [];
640
640
  for (const n of e)
641
641
  n && (typeof n == "string" ? r.push(n) : typeof n == "object" && Object.entries(n).forEach(([o, t]) => {
642
642
  t && r.push(o);
643
643
  }));
644
644
  return r.join(" ");
645
- }, Ze = ({ content: e, size: r = "medium", animation: n = !0 }) => {
646
- const { t: o, darkMode: t, formStyle: a, fieldStyle: i } = D(), [s, u] = T(!1), [m, l] = T({ x: 0, y: 0 }), [d, c] = T(!1), f = k(null), b = k(null), p = k(null), y = G(() => {
647
- const I = {
645
+ }, er = ({ content: e, size: r = "medium", animation: n = !0 }) => {
646
+ const { t: o, darkMode: t, formStyle: a, fieldStyle: s } = T(), [i, u] = D(!1), [m, l] = D({ x: 0, y: 0 }), [p, c] = D(!1), d = k(null), b = k(null), f = k(null), y = G(() => {
647
+ const R = {
648
648
  icon: {
649
649
  display: "inline-flex",
650
650
  alignItems: "center",
@@ -686,53 +686,53 @@ const $ = {
686
686
  opacity: 1,
687
687
  visibility: "visible"
688
688
  }
689
- }, w = (E, v, N) => {
690
- const z = E?.[v];
691
- return (N && z ? z[N] : void 0) ?? {};
689
+ }, w = (I, S, A) => {
690
+ const z = I?.[S];
691
+ return (A && z ? z[A] : void 0) ?? {};
692
692
  };
693
693
  return {
694
- icon: { ...I.icon, ...w(a, "tooltip", "icon"), ...w(i, "tooltip", "icon") },
695
- text: { ...I.text, ...w(a, "tooltip", "text"), ...w(i, "tooltip", "text") },
696
- textVisible: I.textVisible
694
+ icon: { ...R.icon, ...w(a, "tooltip", "icon"), ...w(s, "tooltip", "icon") },
695
+ text: { ...R.text, ...w(a, "tooltip", "text"), ...w(s, "tooltip", "text") },
696
+ textVisible: R.textVisible
697
697
  };
698
- }, [t, r, n, a, i]);
698
+ }, [t, r, n, a, s]);
699
699
  C(() => {
700
- if (s) {
701
- const F = requestAnimationFrame(() => c(!1)), I = requestAnimationFrame(() => {
702
- if (f.current) {
703
- const w = f.current.getBoundingClientRect(), j = 8;
704
- p.current = w;
705
- const E = w.right + j, v = w.top;
706
- l({ x: E, y: v }), c(!0);
700
+ if (i) {
701
+ const F = requestAnimationFrame(() => c(!1)), R = requestAnimationFrame(() => {
702
+ if (d.current) {
703
+ const w = d.current.getBoundingClientRect(), j = 8;
704
+ f.current = w;
705
+ const I = w.right + j, S = w.top;
706
+ l({ x: I, y: S }), c(!0);
707
707
  }
708
708
  });
709
709
  return () => {
710
- cancelAnimationFrame(I), cancelAnimationFrame(F);
710
+ cancelAnimationFrame(R), cancelAnimationFrame(F);
711
711
  };
712
712
  } else
713
713
  requestAnimationFrame(() => c(!1));
714
- }, [s]), C(() => {
715
- if (!d) return;
714
+ }, [i]), C(() => {
715
+ if (!p) return;
716
716
  const F = requestAnimationFrame(() => {
717
717
  if (!b.current) return;
718
- const I = b.current.getBoundingClientRect(), w = 8, j = typeof window < "u" ? window.innerWidth : 1024, E = typeof window < "u" ? window.innerHeight : 768;
719
- let v = m.x, N = m.y;
720
- const M = p.current;
721
- M && (v = M.right + w, N = M.top + M.height / 2 - I.height / 2 + -4, v + I.width > j - w && (v = M.left - w - I.width)), v + I.width > j - w && (v = Math.max(w, j - I.width - w)), v < w && (v = w), N + I.height > E - w && (N = Math.max(w, E - I.height - w)), N < w && (N = w), (v !== m.x || N !== m.y) && l({ x: v, y: N });
718
+ const R = b.current.getBoundingClientRect(), w = 8, j = typeof window < "u" ? window.innerWidth : 1024, I = typeof window < "u" ? window.innerHeight : 768;
719
+ let S = m.x, A = m.y;
720
+ const M = f.current;
721
+ M && (S = M.right + w, A = M.top + M.height / 2 - R.height / 2 + -4, S + R.width > j - w && (S = M.left - w - R.width)), S + R.width > j - w && (S = Math.max(w, j - R.width - w)), S < w && (S = w), A + R.height > I - w && (A = Math.max(w, I - R.height - w)), A < w && (A = w), (S !== m.x || A !== m.y) && l({ x: S, y: A });
722
722
  });
723
723
  return () => cancelAnimationFrame(F);
724
- }, [d, m.x, m.y]);
725
- const x = typeof document < "u" ? document.getElementById("popup-root") : null, S = /* @__PURE__ */ g.jsx(
724
+ }, [p, m.x, m.y]);
725
+ const x = typeof document < "u" ? document.getElementById("popup-root") : null, v = /* @__PURE__ */ g.jsx(
726
726
  "div",
727
727
  {
728
728
  ref: b,
729
729
  style: {
730
730
  ...y.text,
731
- transform: d ? "translateY(0) scale(1)" : "translateY(-4px) scale(0.98)",
731
+ transform: p ? "translateY(0) scale(1)" : "translateY(-4px) scale(0.98)",
732
732
  transition: "opacity 120ms ease, transform 120ms ease, visibility 120ms ease",
733
733
  width: 240,
734
734
  // When positioned is true, apply the visible styles
735
- ...d ? y.textVisible : {},
735
+ ...p ? y.textVisible : {},
736
736
  top: m.y,
737
737
  left: m.x
738
738
  },
@@ -745,7 +745,7 @@ const $ = {
745
745
  "span",
746
746
  {
747
747
  "data-testid": "tooltip-icon",
748
- ref: f,
748
+ ref: d,
749
749
  onMouseEnter: () => u(!0),
750
750
  onMouseLeave: () => u(!1),
751
751
  style: {
@@ -754,7 +754,7 @@ const $ = {
754
754
  children: "?"
755
755
  }
756
756
  ),
757
- s && (x ? Me.createPortal(S, x) : S)
757
+ i && (x ? Me.createPortal(v, x) : v)
758
758
  ] });
759
759
  }, Re = ve(({
760
760
  field: e,
@@ -762,7 +762,7 @@ const $ = {
762
762
  children: n,
763
763
  showLabel: o = !0
764
764
  }) => {
765
- const { t } = D(), a = e?.labelLayout === "column-center" ? "center" : "left";
765
+ const { t } = T(), a = e?.labelLayout === "column-center" ? "center" : "left";
766
766
  return /* @__PURE__ */ g.jsxs(
767
767
  "div",
768
768
  {
@@ -799,7 +799,7 @@ const $ = {
799
799
  },
800
800
  children: [
801
801
  /* @__PURE__ */ g.jsx("div", { style: { flex: 1, minWidth: 0, maxWidth: "100%" }, children: /* @__PURE__ */ g.jsx("div", { style: { width: "100%" }, children: n }) }),
802
- e.tooltip && /* @__PURE__ */ g.jsx(Ze, { content: e.tooltip })
802
+ e.tooltip && /* @__PURE__ */ g.jsx(er, { content: e.tooltip })
803
803
  ]
804
804
  }
805
805
  ),
@@ -809,17 +809,17 @@ const $ = {
809
809
  );
810
810
  });
811
811
  Re.displayName = "ColumnFieldLayout";
812
- const Qe = ve(({
812
+ const rr = ve(({
813
813
  field: e,
814
814
  error: r,
815
815
  children: n,
816
816
  rightAlign: o = !1
817
817
  }) => {
818
- const { t } = D(), a = G(() => ({
818
+ const { t } = T(), a = G(() => ({
819
819
  display: "flex",
820
820
  flexDirection: "column",
821
821
  gap: 0
822
- }), []), i = G(() => ({
822
+ }), []), s = G(() => ({
823
823
  display: "flex",
824
824
  flexDirection: "row",
825
825
  alignItems: "center",
@@ -836,7 +836,7 @@ const Qe = ve(({
836
836
  }
837
837
  ),
838
838
  /* @__PURE__ */ g.jsxs("div", { style: a, children: [
839
- /* @__PURE__ */ g.jsxs("div", { style: i, children: [
839
+ /* @__PURE__ */ g.jsxs("div", { style: s, children: [
840
840
  o ? /* @__PURE__ */ g.jsx(
841
841
  "div",
842
842
  {
@@ -850,19 +850,19 @@ const Qe = ve(({
850
850
  children: n
851
851
  }
852
852
  ) : n,
853
- e.tooltip && /* @__PURE__ */ g.jsx(Ze, { content: e.tooltip })
853
+ e.tooltip && /* @__PURE__ */ g.jsx(er, { content: e.tooltip })
854
854
  ] }),
855
855
  r && /* @__PURE__ */ g.jsx($e, { children: r })
856
856
  ] })
857
857
  ] });
858
858
  });
859
- Qe.displayName = "RowFieldLayout";
859
+ rr.displayName = "RowFieldLayout";
860
860
  const W = ({
861
861
  field: e,
862
862
  error: r,
863
863
  children: n,
864
864
  rightAlign: o = !1
865
- }) => e?.labelLayout === "column-left" || e?.labelLayout === "column-center" ? /* @__PURE__ */ g.jsx(Re, { field: e, error: r, showLabel: !0, children: n }) : e?.type === "checkbox" || e?.type === "switch" ? /* @__PURE__ */ g.jsx(Re, { field: e, error: r, showLabel: !1, children: n }) : /* @__PURE__ */ g.jsx(Qe, { field: e, error: r, rightAlign: o, children: n }), $e = ve(({ children: e }) => {
865
+ }) => e?.labelLayout === "column-left" || e?.labelLayout === "column-center" ? /* @__PURE__ */ g.jsx(Re, { field: e, error: r, showLabel: !0, children: n }) : e?.type === "checkbox" || e?.type === "switch" ? /* @__PURE__ */ g.jsx(Re, { field: e, error: r, showLabel: !1, children: n }) : /* @__PURE__ */ g.jsx(rr, { field: e, error: r, rightAlign: o, children: n }), $e = ve(({ children: e }) => {
866
866
  const r = G(() => ({
867
867
  color: "var(--reactaform-error-color)",
868
868
  fontSize: "13px",
@@ -876,8 +876,8 @@ const W = ({
876
876
  return /* @__PURE__ */ g.jsx("div", { style: r, children: e });
877
877
  });
878
878
  $e.displayName = "ErrorDiv";
879
- const er = ve(({ name: e, onChange: r }) => {
880
- const { t: n } = D();
879
+ const tr = ve(({ name: e, onChange: r }) => {
880
+ const { t: n } = T();
881
881
  return /* @__PURE__ */ g.jsxs("div", { style: { marginBottom: 16 }, children: [
882
882
  /* @__PURE__ */ g.jsxs("div", { style: { display: "grid", gridTemplateColumns: "1fr 2fr", gap: 12, alignItems: "center" }, children: [
883
883
  /* @__PURE__ */ g.jsx(
@@ -917,8 +917,8 @@ const er = ve(({ name: e, onChange: r }) => {
917
917
  /* @__PURE__ */ g.jsx("div", { style: { height: "1px", backgroundColor: "var(--reactaform-separator, #e6e6e6)", marginTop: 12, marginBottom: 12 } })
918
918
  ] });
919
919
  });
920
- er.displayName = "InstanceName";
921
- class jr extends we {
920
+ tr.displayName = "InstanceName";
921
+ class kr extends we {
922
922
  registerInCategory(r, n, o) {
923
923
  this.get(r) || this.register(r, {});
924
924
  const t = this.get(r);
@@ -934,26 +934,26 @@ class jr extends we {
934
934
  return this.list();
935
935
  }
936
936
  }
937
- const rr = new we(), tr = new jr();
938
- function Xt(e, r) {
939
- rr.register(e, r);
937
+ const nr = new we(), or = new kr();
938
+ function Zt(e, r) {
939
+ nr.register(e, r);
940
940
  }
941
- function Zt(e, r, n) {
942
- tr.registerInCategory(e, r, n);
941
+ function Qt(e, r, n) {
942
+ or.registerInCategory(e, r, n);
943
943
  }
944
- function kr(e, r) {
945
- return tr.getFromCategory(e, r) || null;
944
+ function Rr(e, r) {
945
+ return or.getFromCategory(e, r) || null;
946
946
  }
947
- function Rr(e) {
948
- return rr.get(e) || null;
947
+ function Er(e) {
948
+ return nr.get(e) || null;
949
949
  }
950
950
  const Ce = /* @__PURE__ */ new Map(), je = /* @__PURE__ */ new Map();
951
951
  function Y(e, r, n, o) {
952
952
  if (r && typeof r.validationHandlerName == "string") {
953
953
  const t = `${e}:${r.validationHandlerName}`;
954
954
  if (!Ce.has(t)) {
955
- const i = kr(e, r.validationHandlerName);
956
- Ce.set(t, i);
955
+ const s = Rr(e, r.validationHandlerName);
956
+ Ce.set(t, s);
957
957
  }
958
958
  const a = Ce.get(t);
959
959
  if (a)
@@ -961,11 +961,11 @@ function Y(e, r, n, o) {
961
961
  }
962
962
  return null;
963
963
  }
964
- function Er(e, r, n) {
964
+ function Nr(e, r, n) {
965
965
  if (e && typeof e.validationHandlerName == "string") {
966
966
  const o = e.validationHandlerName;
967
967
  if (!je.has(o)) {
968
- const a = Rr(o);
968
+ const a = Er(o);
969
969
  je.set(o, a);
970
970
  }
971
971
  const t = je.get(o);
@@ -982,7 +982,7 @@ function Ve(e) {
982
982
  const r = e;
983
983
  return typeof r.name == "string" && typeof r.displayName == "string";
984
984
  }
985
- function nr(e) {
985
+ function ar(e) {
986
986
  if (!ie(e)) return !1;
987
987
  const r = e;
988
988
  return typeof r.name != "string" || typeof r.version != "string" || !Array.isArray(r.properties) ? !1 : r.properties.every((n) => Ve(n));
@@ -995,14 +995,14 @@ function Ee(e) {
995
995
  return !!r && typeof r.name == "string" && typeof r.size == "number";
996
996
  }
997
997
  }
998
- function Qt(e, r, n = {}) {
998
+ function en(e, r, n = {}) {
999
999
  try {
1000
1000
  const {
1001
1001
  includeMetadata: o = !1,
1002
1002
  dateFormat: t = "iso",
1003
1003
  fileHandling: a = "metadata",
1004
- prettify: i = !1,
1005
- excludeFields: s = [],
1004
+ prettify: s = !1,
1005
+ excludeFields: i = [],
1006
1006
  includeOnlyFields: u = []
1007
1007
  } = n;
1008
1008
  if (!e || typeof e != "object")
@@ -1010,9 +1010,9 @@ function Qt(e, r, n = {}) {
1010
1010
  success: !1,
1011
1011
  error: "Instance must be a valid object"
1012
1012
  };
1013
- const m = [], l = [], d = {}, f = (nr(r) || ie(r) && Array.isArray(r.properties) ? r.properties : []).filter(Ve), b = new Map(f.map((y) => [y.name, y]));
1013
+ const m = [], l = [], p = {}, d = (ar(r) || ie(r) && Array.isArray(r.properties) ? r.properties : []).filter(Ve), b = new Map(d.map((y) => [y.name, y]));
1014
1014
  for (const [y, x] of Object.entries(e)) {
1015
- if (s.includes(y)) {
1015
+ if (i.includes(y)) {
1016
1016
  l.push(y);
1017
1017
  continue;
1018
1018
  }
@@ -1021,23 +1021,23 @@ function Qt(e, r, n = {}) {
1021
1021
  continue;
1022
1022
  }
1023
1023
  if (x === void 0) continue;
1024
- const S = b.get(y);
1024
+ const v = b.get(y);
1025
1025
  try {
1026
- d[y] = Nr(x, S, { dateFormat: t, fileHandling: a });
1026
+ p[y] = Ir(x, v, { dateFormat: t, fileHandling: a });
1027
1027
  } catch (F) {
1028
- m.push(`Error serializing field '${y}': ${String(F)}`), d[y] = null;
1028
+ m.push(`Error serializing field '${y}': ${String(F)}`), p[y] = null;
1029
1029
  }
1030
1030
  }
1031
- return o && (d._metadata = {
1031
+ return o && (p._metadata = {
1032
1032
  serializedAt: (/* @__PURE__ */ new Date()).toISOString(),
1033
1033
  version: (ie(r) ? r.version : void 0) || "1.0.0",
1034
- fieldCount: Object.keys(d).length - 1
1034
+ fieldCount: Object.keys(p).length - 1
1035
1035
  // Exclude metadata itself
1036
1036
  }), {
1037
1037
  success: !0,
1038
- data: i ? JSON.stringify(d, null, 2) : JSON.stringify(d),
1038
+ data: s ? JSON.stringify(p, null, 2) : JSON.stringify(p),
1039
1039
  metadata: {
1040
- fieldCount: Object.keys(d).length,
1040
+ fieldCount: Object.keys(p).length,
1041
1041
  excludedFields: l,
1042
1042
  warnings: m
1043
1043
  }
@@ -1049,7 +1049,7 @@ function Qt(e, r, n = {}) {
1049
1049
  };
1050
1050
  }
1051
1051
  }
1052
- function Nr(e, r, n = {}) {
1052
+ function Ir(e, r, n = {}) {
1053
1053
  const { dateFormat: o = "iso", fileHandling: t = "metadata" } = n;
1054
1054
  if (e == null)
1055
1055
  return null;
@@ -1119,50 +1119,50 @@ function Ye(e, r) {
1119
1119
  _note: "Base64 encoding requires async implementation"
1120
1120
  };
1121
1121
  }
1122
- function en(e, r, n = {}) {
1122
+ function rn(e, r, n = {}) {
1123
1123
  try {
1124
1124
  const {
1125
1125
  strict: o = !1,
1126
1126
  validateTypes: t = !0,
1127
1127
  preserveUnknownFields: a = !0,
1128
- dateFormat: i = "auto"
1128
+ dateFormat: s = "auto"
1129
1129
  } = n;
1130
1130
  if (!e || typeof e != "string")
1131
1131
  return {
1132
1132
  success: !1,
1133
1133
  error: "Serialized data must be a non-empty string"
1134
1134
  };
1135
- let s;
1135
+ let i;
1136
1136
  try {
1137
- s = JSON.parse(e);
1138
- } catch (p) {
1137
+ i = JSON.parse(e);
1138
+ } catch (f) {
1139
1139
  return {
1140
1140
  success: !1,
1141
- error: `Invalid JSON: ${p instanceof Error ? p.message : "Unknown parsing error"}`
1141
+ error: `Invalid JSON: ${f instanceof Error ? f.message : "Unknown parsing error"}`
1142
1142
  };
1143
1143
  }
1144
- if (!s || typeof s != "object")
1144
+ if (!i || typeof i != "object")
1145
1145
  return {
1146
1146
  success: !1,
1147
1147
  error: "Parsed data must be an object"
1148
1148
  };
1149
- const u = [], m = [], l = {}, c = (nr(r) || ie(r) && Array.isArray(r.properties) ? r.properties : []).filter(Ve), f = new Map(c.map((p) => [p.name, p]));
1150
- for (const p of c) {
1151
- const y = p.name, x = s[y];
1149
+ const u = [], m = [], l = {}, c = (ar(r) || ie(r) && Array.isArray(r.properties) ? r.properties : []).filter(Ve), d = new Map(c.map((f) => [f.name, f]));
1150
+ for (const f of c) {
1151
+ const y = f.name, x = i[y];
1152
1152
  if (x === void 0) {
1153
- o && p.required && m.push(`Required field '${y}' is missing`);
1153
+ o && f.required && m.push(`Required field '${y}' is missing`);
1154
1154
  continue;
1155
1155
  }
1156
1156
  try {
1157
- l[y] = Ir(x, p, { validateTypes: t, dateFormat: i });
1158
- } catch (S) {
1159
- const F = `Error deserializing field '${y}': ${String(S)}`;
1157
+ l[y] = Ar(x, f, { validateTypes: t, dateFormat: s });
1158
+ } catch (v) {
1159
+ const F = `Error deserializing field '${y}': ${String(v)}`;
1160
1160
  o ? m.push(F) : (u.push(F), l[y] = x);
1161
1161
  }
1162
1162
  }
1163
1163
  if (a)
1164
- for (const [p, y] of Object.entries(s))
1165
- !f.has(p) && p !== "_metadata" && (o && u.push(`Unknown field '${p}' preserved`), l[p] = y);
1164
+ for (const [f, y] of Object.entries(i))
1165
+ !d.has(f) && f !== "_metadata" && (o && u.push(`Unknown field '${f}' preserved`), l[f] = y);
1166
1166
  const b = m.length > 0;
1167
1167
  return {
1168
1168
  success: !b,
@@ -1177,7 +1177,7 @@ function en(e, r, n = {}) {
1177
1177
  };
1178
1178
  }
1179
1179
  }
1180
- function Ir(e, r, n = {}) {
1180
+ function Ar(e, r, n = {}) {
1181
1181
  const { validateTypes: o = !0, dateFormat: t = "auto" } = n;
1182
1182
  if (e == null)
1183
1183
  return e;
@@ -1186,7 +1186,7 @@ function Ir(e, r, n = {}) {
1186
1186
  case "date":
1187
1187
  case "datetime":
1188
1188
  case "date-time":
1189
- return Ar(e, t, o);
1189
+ return Fr(e, t, o);
1190
1190
  case "int":
1191
1191
  case "integer":
1192
1192
  return Ne(e, o);
@@ -1194,7 +1194,7 @@ function Ir(e, r, n = {}) {
1194
1194
  case "number":
1195
1195
  return Ie(e, o);
1196
1196
  case "boolean":
1197
- return Fr(e, o);
1197
+ return Mr(e, o);
1198
1198
  case "int-array":
1199
1199
  return Je(e, "integer", o);
1200
1200
  case "float-array":
@@ -1214,7 +1214,7 @@ function Ir(e, r, n = {}) {
1214
1214
  return e;
1215
1215
  }
1216
1216
  }
1217
- function rn(e, r = {}) {
1217
+ function tn(e, r = {}) {
1218
1218
  try {
1219
1219
  const { prettify: n = !0, includeMetadata: o = !0 } = r;
1220
1220
  if (!e || typeof e != "object")
@@ -1243,7 +1243,7 @@ function rn(e, r = {}) {
1243
1243
  };
1244
1244
  }
1245
1245
  }
1246
- function tn(e, r = {}) {
1246
+ function nn(e, r = {}) {
1247
1247
  try {
1248
1248
  const { strict: n = !1, validateTypes: o = !0 } = r;
1249
1249
  let t;
@@ -1263,11 +1263,11 @@ function tn(e, r = {}) {
1263
1263
  success: !1,
1264
1264
  error: "Input must be a string or object"
1265
1265
  };
1266
- const a = [], i = [], s = ["name", "version", "displayName"];
1267
- for (const l of s)
1266
+ const a = [], s = [], i = ["name", "version", "displayName"];
1267
+ for (const l of i)
1268
1268
  if (!t[l])
1269
1269
  if (n)
1270
- i.push(`Required field '${l}' is missing`);
1270
+ s.push(`Required field '${l}' is missing`);
1271
1271
  else
1272
1272
  switch (a.push(`Missing field '${l}', using default`), l) {
1273
1273
  case "name":
@@ -1281,20 +1281,20 @@ function tn(e, r = {}) {
1281
1281
  break;
1282
1282
  }
1283
1283
  const u = Array.isArray(t.properties) ? t.properties : null;
1284
- u ? t.properties = u.map((l, d) => {
1285
- const c = ie(l) ? l : {}, f = { ...c };
1284
+ u ? t.properties = u.map((l, p) => {
1285
+ const c = ie(l) ? l : {}, d = { ...c };
1286
1286
  if (!c.name) {
1287
- const b = `Property at index ${d} missing 'name'`;
1288
- n ? i.push(b) : (a.push(`${b}, using 'field_${d}'`), f.name = `field_${d}`);
1287
+ const b = `Property at index ${p} missing 'name'`;
1288
+ n ? s.push(b) : (a.push(`${b}, using 'field_${p}'`), d.name = `field_${p}`);
1289
1289
  }
1290
- return c.displayName || (f.displayName = c.name || `Field ${d}`), c.type || (n && o ? i.push(`Property '${c.name || d}' missing 'type'`) : (a.push(`Property '${c.name || d}' missing 'type', using 'string'`), f.type = "string")), c.defaultValue === void 0 && (f.defaultValue = null), c.required === void 0 && (f.required = !1), f;
1291
- }) : n ? i.push("Properties must be an array") : (a.push("Properties not found or invalid, using empty array"), t.properties = []);
1292
- const m = i.length > 0;
1290
+ return c.displayName || (d.displayName = c.name || `Field ${p}`), c.type || (n && o ? s.push(`Property '${c.name || p}' missing 'type'`) : (a.push(`Property '${c.name || p}' missing 'type', using 'string'`), d.type = "string")), c.defaultValue === void 0 && (d.defaultValue = null), c.required === void 0 && (d.required = !1), d;
1291
+ }) : n ? s.push("Properties must be an array") : (a.push("Properties not found or invalid, using empty array"), t.properties = []);
1292
+ const m = s.length > 0;
1293
1293
  return {
1294
1294
  success: !m,
1295
1295
  data: t,
1296
1296
  warnings: a.length > 0 ? a : void 0,
1297
- validationErrors: m ? i : void 0
1297
+ validationErrors: m ? s : void 0
1298
1298
  };
1299
1299
  } catch (n) {
1300
1300
  return {
@@ -1303,7 +1303,7 @@ function tn(e, r = {}) {
1303
1303
  };
1304
1304
  }
1305
1305
  }
1306
- function Ar(e, r, n) {
1306
+ function Fr(e, r, n) {
1307
1307
  if (e instanceof Date)
1308
1308
  return e;
1309
1309
  if (typeof e == "number") {
@@ -1348,7 +1348,7 @@ function Ie(e, r) {
1348
1348
  throw new Error(`Cannot convert ${typeof e} to number`);
1349
1349
  return e;
1350
1350
  }
1351
- function Fr(e, r) {
1351
+ function Mr(e, r) {
1352
1352
  if (typeof e == "boolean")
1353
1353
  return e;
1354
1354
  if (typeof e == "string") {
@@ -1382,60 +1382,60 @@ function Je(e, r, n) {
1382
1382
  }
1383
1383
  });
1384
1384
  }
1385
- const Mr = (e, r) => {
1385
+ const Or = (e, r) => {
1386
1386
  const n = /* @__PURE__ */ new Map();
1387
1387
  let o = null, t = null, a = 0;
1388
- for (const i of e) {
1389
- const s = i.group;
1390
- if (!s) {
1388
+ for (const s of e) {
1389
+ const i = s.group;
1390
+ if (!i) {
1391
1391
  o = null, t = null;
1392
1392
  continue;
1393
1393
  }
1394
- if (s === o)
1395
- r[i.name].group = t ?? s;
1394
+ if (i === o)
1395
+ r[s.name].group = t ?? i;
1396
1396
  else {
1397
- if (!n.has(s))
1398
- n.set(s, 1), t = null, r[i.name].group = s;
1397
+ if (!n.has(i))
1398
+ n.set(i, 1), t = null, r[s.name].group = i;
1399
1399
  else {
1400
- const u = n.get(s), m = `${s}(${u})`;
1401
- n.set(s, u + 1), t = m, r[i.name].group = m, a++;
1400
+ const u = n.get(i), m = `${i}(${u})`;
1401
+ n.set(i, u + 1), t = m, r[s.name].group = m, a++;
1402
1402
  }
1403
- o = s;
1403
+ o = i;
1404
1404
  }
1405
1405
  }
1406
1406
  return a;
1407
- }, Or = (e, r = {}) => {
1407
+ }, $r = (e, r = {}) => {
1408
1408
  const { includeEmpty: n = !0 } = r, o = [];
1409
- let t = null, a = [], i = 0;
1409
+ let t = null, a = [], s = 0;
1410
1410
  for (const u of e) {
1411
1411
  const m = u.group || null;
1412
- m !== t ? ((a.length > 0 || n) && (a.length === 0 && i++, o.push({ name: t, fields: a })), t = m, a = [u]) : a.push(u);
1412
+ m !== t ? ((a.length > 0 || n) && (a.length === 0 && s++, o.push({ name: t, fields: a })), t = m, a = [u]) : a.push(u);
1413
1413
  }
1414
- (a.length > 0 || n) && (a.length === 0 && i++, o.push({ name: t, fields: a }));
1415
- const s = Math.max(0, ...o.map((u) => u.fields.length));
1414
+ (a.length > 0 || n) && (a.length === 0 && s++, o.push({ name: t, fields: a }));
1415
+ const i = Math.max(0, ...o.map((u) => u.fields.length));
1416
1416
  return {
1417
1417
  groups: o,
1418
1418
  metadata: {
1419
1419
  totalGroups: o.length,
1420
- emptyGroups: i,
1421
- largestGroup: s
1420
+ emptyGroups: s,
1421
+ largestGroup: i
1422
1422
  }
1423
1423
  };
1424
- }, ke = /* @__PURE__ */ new Map(), ye = /* @__PURE__ */ new Map(), se = /* @__PURE__ */ new Set(), Ae = /* @__PURE__ */ new Map(), $r = async (e) => {
1424
+ }, ke = /* @__PURE__ */ new Map(), ye = /* @__PURE__ */ new Map(), se = /* @__PURE__ */ new Set(), Ae = /* @__PURE__ */ new Map(), Vr = async (e) => {
1425
1425
  try {
1426
1426
  let r;
1427
1427
  switch (e.toLowerCase()) {
1428
1428
  case "fr":
1429
- r = (await import("./common-BnnwzTl2.js")).default;
1429
+ r = (await import("./common-CTK4jqc5.js")).default;
1430
1430
  break;
1431
1431
  case "de":
1432
- r = (await import("./common-BQcVe8MY.js")).default;
1432
+ r = (await import("./common-ClNcU_yE.js")).default;
1433
1433
  break;
1434
1434
  case "es":
1435
- r = (await import("./common-DLqVHgfX.js")).default;
1435
+ r = (await import("./common-DXEjsP3o.js")).default;
1436
1436
  break;
1437
1437
  case "zh-cn":
1438
- r = (await import("./common-Bzz0clAC.js")).default;
1438
+ r = (await import("./common-DRxsgpaH.js")).default;
1439
1439
  break;
1440
1440
  case "en":
1441
1441
  r = {};
@@ -1455,7 +1455,7 @@ const Mr = (e, r) => {
1455
1455
  error: `Failed to load common translations for ${e}: ${r}`
1456
1456
  };
1457
1457
  }
1458
- }, Vr = async (e) => {
1458
+ }, Dr = async (e) => {
1459
1459
  if (!e)
1460
1460
  return { success: !1, translations: {}, error: "Language is required" };
1461
1461
  const r = e.toLowerCase();
@@ -1467,13 +1467,13 @@ const Mr = (e, r) => {
1467
1467
  translations: ke.get(r) || {},
1468
1468
  fromCache: !0
1469
1469
  };
1470
- const n = await $r(r);
1470
+ const n = await Vr(r);
1471
1471
  return n.success && (ke.set(r, n.translations), Ae.set(r, {
1472
1472
  loadedAt: /* @__PURE__ */ new Date(),
1473
1473
  size: Object.keys(n.translations).length,
1474
1474
  source: "common"
1475
1475
  })), n;
1476
- }, Tr = async (e, r) => {
1476
+ }, zr = async (e, r) => {
1477
1477
  if (!e || !r)
1478
1478
  return {
1479
1479
  success: !1,
@@ -1515,22 +1515,22 @@ const Mr = (e, r) => {
1515
1515
  });
1516
1516
  }
1517
1517
  const a = t.headers.get("content-type") || "";
1518
- !a.includes("application/json") && !a.includes("text/json") && or() && console.warn(
1518
+ !a.includes("application/json") && !a.includes("text/json") && sr() && console.warn(
1519
1519
  `Translation file at ${o} has unexpected content-type: ${a}`
1520
1520
  );
1521
- const i = await t.text();
1522
- if (!i) {
1521
+ const s = await t.text();
1522
+ if (!s) {
1523
1523
  const m = "Empty translation file";
1524
1524
  return se.add(n), { success: !1, translations: {}, error: m };
1525
1525
  }
1526
- let s;
1526
+ let i;
1527
1527
  try {
1528
- s = JSON.parse(i);
1528
+ i = JSON.parse(s);
1529
1529
  } catch (m) {
1530
1530
  const l = `Invalid JSON in translation file: ${m instanceof Error ? m.message : String(m)}`;
1531
1531
  return se.add(n), { success: !1, translations: {}, error: l };
1532
1532
  }
1533
- if (!s || typeof s != "object") {
1533
+ if (!i || typeof i != "object") {
1534
1534
  const m = "Invalid translation file format";
1535
1535
  return se.add(n), {
1536
1536
  success: !1,
@@ -1539,7 +1539,7 @@ const Mr = (e, r) => {
1539
1539
  };
1540
1540
  }
1541
1541
  const u = Object.fromEntries(
1542
- Object.entries(s).map(([m, l]) => [
1542
+ Object.entries(i).map(([m, l]) => [
1543
1543
  m,
1544
1544
  typeof l == "string" ? l : String(l)
1545
1545
  ])
@@ -1570,7 +1570,7 @@ const Mr = (e, r) => {
1570
1570
  };
1571
1571
  }
1572
1572
  };
1573
- function or() {
1573
+ function sr() {
1574
1574
  try {
1575
1575
  if (typeof process < "u" && process?.env?.NODE_ENV === "development")
1576
1576
  return !0;
@@ -1578,7 +1578,7 @@ function or() {
1578
1578
  }
1579
1579
  return !1;
1580
1580
  }
1581
- function zr(e, r) {
1581
+ function Tr(e, r) {
1582
1582
  return r.length === 0 ? e : e.replace(/\{\{(\d+)\}\}/g, (n, o) => {
1583
1583
  const t = parseInt(o, 10) - 1, a = r[t];
1584
1584
  if (a == null)
@@ -1590,12 +1590,12 @@ function zr(e, r) {
1590
1590
  }
1591
1591
  });
1592
1592
  }
1593
- const Dr = (e, r, n) => (o, ...t) => {
1594
- let a = o, i = !1;
1595
- return !o || typeof o != "string" ? String(o || "") : (e.toLowerCase() === "en" ? (a = o, i = !0) : Object.prototype.hasOwnProperty.call(n, o) ? (a = n[o], i = !0) : Object.prototype.hasOwnProperty.call(r, o) ? (a = r[o], i = !0) : a = o, a = zr(a, t), !i && or() && console.debug(
1593
+ const Lr = (e, r, n) => (o, ...t) => {
1594
+ let a = o, s = !1;
1595
+ return !o || typeof o != "string" ? String(o || "") : (e.toLowerCase() === "en" ? (a = o, s = !0) : Object.prototype.hasOwnProperty.call(n, o) ? (a = n[o], s = !0) : Object.prototype.hasOwnProperty.call(r, o) ? (a = r[o], s = !0) : a = o, a = Tr(a, t), !s && sr() && console.debug(
1596
1596
  `Missing translation for "${o}" in language "${e}"`
1597
1597
  ), a);
1598
- }, Te = {
1598
+ }, De = {
1599
1599
  length: ["m", "cm", "mm", "km", "in", "ft", "yd", "mi"],
1600
1600
  area: ["m^2", "cm^2", "mm^2", "in^2", "ft^2", "yd^2"],
1601
1601
  volume: ["L", "m^3", "cm^3", "mL", "in^3", "ft^3", "yd^3"],
@@ -1657,7 +1657,7 @@ const Dr = (e, r, n) => (o, ...t) => {
1657
1657
  rad: "Radian (rad)",
1658
1658
  rev: "Revolution (rev)"
1659
1659
  }
1660
- }, De = {
1660
+ }, Te = {
1661
1661
  length: {
1662
1662
  mm: 1e3,
1663
1663
  cm: 100,
@@ -1712,52 +1712,52 @@ const Dr = (e, r, n) => (o, ...t) => {
1712
1712
  rad: Math.PI / 180,
1713
1713
  rev: 1 / 360
1714
1714
  }
1715
- }, Le = {}, Lr = /* @__PURE__ */ new Set([
1716
- ...Object.keys(Te),
1715
+ }, Le = {}, Pr = /* @__PURE__ */ new Set([
1716
+ ...Object.keys(De),
1717
1717
  ...Object.keys(ze),
1718
- ...Object.keys(De)
1718
+ ...Object.keys(Te)
1719
1719
  ]);
1720
- for (const e of Lr) {
1721
- const r = {}, n = Te[e] ?? [], o = ze[e] ?? {}, t = De[e] ?? {};
1720
+ for (const e of Pr) {
1721
+ const r = {}, n = De[e] ?? [], o = ze[e] ?? {}, t = Te[e] ?? {};
1722
1722
  for (const a of n) {
1723
- const i = o[a];
1723
+ const s = o[a];
1724
1724
  r[a] = {
1725
- name: typeof i == "string" ? i : String(a),
1725
+ name: typeof s == "string" ? s : String(a),
1726
1726
  shortName: a,
1727
1727
  factor: Object.prototype.hasOwnProperty.call(t, a) ? t[a] : void 0
1728
1728
  };
1729
1729
  }
1730
- for (const [a, i] of Object.entries(o))
1730
+ for (const [a, s] of Object.entries(o))
1731
1731
  if (!r[a]) {
1732
- const s = typeof i == "string" ? i : String(a);
1733
- r[a] = { name: s, shortName: a, factor: Object.prototype.hasOwnProperty.call(t, a) ? t[a] : void 0 };
1732
+ const i = typeof s == "string" ? s : String(a);
1733
+ r[a] = { name: i, shortName: a, factor: Object.prototype.hasOwnProperty.call(t, a) ? t[a] : void 0 };
1734
1734
  }
1735
- for (const [a, i] of Object.entries(t))
1736
- r[a] || (r[a] = { name: String(a), shortName: String(a), factor: i });
1735
+ for (const [a, s] of Object.entries(t))
1736
+ r[a] || (r[a] = { name: String(a), shortName: String(a), factor: s });
1737
1737
  Le[e] = r;
1738
1738
  }
1739
- const nn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1739
+ const on = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1740
1740
  __proto__: null,
1741
1741
  dimensionUnitDisplayMap: ze,
1742
- dimensionUnitsMap: Te,
1743
- dimensonUnitFactorsMap: De,
1742
+ dimensionUnitsMap: De,
1743
+ dimensonUnitFactorsMap: Te,
1744
1744
  unitsByDimension: Le
1745
- }, Symbol.toStringTag, { value: "Module" })), Pr = ({
1745
+ }, Symbol.toStringTag, { value: "Module" })), _r = ({
1746
1746
  field: e,
1747
1747
  value: r,
1748
1748
  onChange: n,
1749
1749
  onError: o
1750
1750
  }) => {
1751
- const { definitionName: t, t: a } = D(), i = k(o);
1751
+ const { definitionName: t, t: a } = T(), s = k(o);
1752
1752
  C(() => {
1753
- i.current = o;
1753
+ s.current = o;
1754
1754
  }, [o]), C(() => {
1755
1755
  const l = Y(t, e, r ?? !1, a);
1756
- i.current?.(l ?? null);
1756
+ s.current?.(l ?? null);
1757
1757
  }, [r, e, t, a]);
1758
- const s = (l) => {
1759
- const d = l.target.checked;
1760
- n?.(d, null);
1758
+ const i = (l) => {
1759
+ const p = l.target.checked;
1760
+ n?.(p, null);
1761
1761
  }, u = (l) => {
1762
1762
  (l.key === " " || l.key === "Spacebar" || l.key === "Space" || l.key === "Enter") && (l.preventDefault(), n?.(!r, null));
1763
1763
  }, m = e.name;
@@ -1778,7 +1778,7 @@ const nn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1778
1778
  "data-testid": "boolean-checkbox",
1779
1779
  type: "checkbox",
1780
1780
  checked: !!r,
1781
- onChange: s,
1781
+ onChange: i,
1782
1782
  onKeyDown: u,
1783
1783
  "aria-checked": !!r,
1784
1784
  style: {
@@ -1810,62 +1810,62 @@ const nn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1810
1810
  { label: "Light Gray", value: "#d3d3d3" },
1811
1811
  { label: "Pink", value: "#ffc0cb" }
1812
1812
  ];
1813
- function ar(e) {
1813
+ function ir(e) {
1814
1814
  return /^#([0-9A-F]{3}){1,2}$/i.test(e);
1815
1815
  }
1816
- function _r(e) {
1817
- if (!ar(e)) return null;
1818
- const r = sr(e), n = parseInt(r.slice(1), 16);
1816
+ function qr(e) {
1817
+ if (!ir(e)) return null;
1818
+ const r = cr(e), n = parseInt(r.slice(1), 16);
1819
1819
  return {
1820
1820
  r: n >> 16 & 255,
1821
1821
  g: n >> 8 & 255,
1822
1822
  b: n & 255
1823
1823
  };
1824
1824
  }
1825
- function sr(e) {
1825
+ function cr(e) {
1826
1826
  return e ? (e = e.toLowerCase(), /^#([a-f0-9]){3}$/i.test(e) ? "#" + e.slice(1).split("").map((r) => r + r).join("") : e) : "#000000";
1827
1827
  }
1828
- const qr = ({ field: e, value: r, onChange: n, onError: o }) => {
1829
- const { t, definitionName: a } = D(), [i, s] = T("#000000"), u = A.useRef(null), m = A.useRef(null), l = A.useRef(o);
1830
- A.useEffect(() => {
1828
+ const Br = ({ field: e, value: r, onChange: n, onError: o }) => {
1829
+ const { t, definitionName: a } = T(), [s, i] = D("#000000"), u = N.useRef(null), m = N.useRef(null), l = N.useRef(o);
1830
+ N.useEffect(() => {
1831
1831
  l.current = o;
1832
1832
  }, [o]), C(() => {
1833
- const x = r && ar(r) ? r : "#000000", S = sr(x);
1834
- s(S);
1835
- }, [r]), A.useEffect(() => {
1833
+ const x = r && ir(r) ? r : "#000000", v = cr(x);
1834
+ i(v);
1835
+ }, [r]), N.useEffect(() => {
1836
1836
  const x = Y(a, e, r ?? "#000000", t);
1837
1837
  l.current?.(x ?? null);
1838
1838
  }, [r, e, a, t]);
1839
- const d = (x) => {
1840
- const S = x.target.value;
1841
- s(S), n?.(S, null);
1839
+ const p = (x) => {
1840
+ const v = x.target.value;
1841
+ i(v), n?.(v, null);
1842
1842
  }, c = (x) => {
1843
- const S = x.target.value;
1844
- s(S), n?.(S, null);
1845
- }, f = Ge.find(
1846
- (x) => x.value === i
1847
- ), { r: b, g: p, b: y } = _r(i) || { r: 0, g: 0, b: 0 };
1843
+ const v = x.target.value;
1844
+ i(v), n?.(v, null);
1845
+ }, d = Ge.find(
1846
+ (x) => x.value === s
1847
+ ), { r: b, g: f, b: y } = qr(s) || { r: 0, g: 0, b: 0 };
1848
1848
  return /* @__PURE__ */ g.jsx(W, { field: e, error: null, children: /* @__PURE__ */ g.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px", width: "100%" }, children: [
1849
1849
  /* @__PURE__ */ g.jsxs(
1850
1850
  "select",
1851
1851
  {
1852
1852
  ref: u,
1853
1853
  id: e.name,
1854
- value: i,
1855
- onChange: d,
1854
+ value: s,
1855
+ onChange: p,
1856
1856
  style: { minWidth: "120px", flex: 1 },
1857
- className: X($.input, $.inputSelect),
1857
+ className: K($.input, $.inputSelect),
1858
1858
  children: [
1859
1859
  Ge.map((x) => /* @__PURE__ */ g.jsx("option", { value: x.value, children: t(x.label) }, x.value)),
1860
- f ? null : /* @__PURE__ */ g.jsxs("option", { value: i, children: [
1860
+ d ? null : /* @__PURE__ */ g.jsxs("option", { value: s, children: [
1861
1861
  "(",
1862
1862
  b,
1863
1863
  ", ",
1864
- p,
1864
+ f,
1865
1865
  ", ",
1866
1866
  y,
1867
1867
  ")"
1868
- ] }, i)
1868
+ ] }, s)
1869
1869
  ]
1870
1870
  }
1871
1871
  ),
@@ -1878,7 +1878,7 @@ const qr = ({ field: e, value: r, onChange: n, onError: o }) => {
1878
1878
  display: "inline-block",
1879
1879
  border: "1px solid #ccc",
1880
1880
  borderRadius: "4px",
1881
- backgroundColor: i,
1881
+ backgroundColor: s,
1882
1882
  cursor: "pointer",
1883
1883
  overflow: "hidden",
1884
1884
  flexShrink: 0
@@ -1888,7 +1888,7 @@ const qr = ({ field: e, value: r, onChange: n, onError: o }) => {
1888
1888
  {
1889
1889
  ref: m,
1890
1890
  type: "color",
1891
- value: i,
1891
+ value: s,
1892
1892
  onChange: c,
1893
1893
  style: {
1894
1894
  opacity: 0,
@@ -1907,7 +1907,7 @@ const qr = ({ field: e, value: r, onChange: n, onError: o }) => {
1907
1907
  if (!e) return null;
1908
1908
  const r = new Date(e);
1909
1909
  return isNaN(r.getTime()) ? null : r;
1910
- }, Br = (e) => {
1910
+ }, Hr = (e) => {
1911
1911
  if (!e) return "";
1912
1912
  if (/^\d{4}-\d{2}-\d{2}$/.test(e))
1913
1913
  return ge(e) ? e : "";
@@ -1917,37 +1917,37 @@ const qr = ({ field: e, value: r, onChange: n, onError: o }) => {
1917
1917
  return `${o}-${t}-${a}`;
1918
1918
  }
1919
1919
  return "";
1920
- }, Hr = ({
1920
+ }, Ur = ({
1921
1921
  field: e,
1922
1922
  value: r,
1923
1923
  onChange: n,
1924
1924
  onError: o
1925
1925
  }) => {
1926
- const { t, definitionName: a } = D(), { name: i, required: s } = e, u = k(null), m = k(o);
1926
+ const { t, definitionName: a } = T(), { name: s, required: i } = e, u = k(null), m = k(o);
1927
1927
  C(() => {
1928
1928
  m.current = o;
1929
1929
  }, [o]);
1930
- const l = A.useCallback((c) => {
1930
+ const l = N.useCallback((c) => {
1931
1931
  if (!c || c.trim() === "")
1932
- return s ? t("Value required") : null;
1932
+ return i ? t("Value required") : null;
1933
1933
  if (c) {
1934
1934
  const b = ge(c);
1935
1935
  if (!b) return t("Invalid date format");
1936
1936
  if (e.minDate) {
1937
- const p = ge(e.minDate);
1938
- if (p && b.getTime() < p.getTime())
1937
+ const f = ge(e.minDate);
1938
+ if (f && b.getTime() < f.getTime())
1939
1939
  return t("Date must be on or after {{1}}", e.minDate);
1940
1940
  }
1941
1941
  if (e.maxDate) {
1942
- const p = ge(e.maxDate);
1943
- if (p && b.getTime() > p.getTime())
1942
+ const f = ge(e.maxDate);
1943
+ if (f && b.getTime() > f.getTime())
1944
1944
  return t("Date must be on or before {{1}}", e.maxDate);
1945
1945
  }
1946
1946
  }
1947
1947
  return Y(a, e, c, t) ?? null;
1948
- }, [e, a, t, s]), d = (c) => {
1949
- const f = c.target.value, b = l(f);
1950
- n?.(f, b);
1948
+ }, [e, a, t, i]), p = (c) => {
1949
+ const d = c.target.value, b = l(d);
1950
+ n?.(d, b);
1951
1951
  };
1952
1952
  return C(() => {
1953
1953
  const c = l(r);
@@ -1955,50 +1955,50 @@ const qr = ({ field: e, value: r, onChange: n, onError: o }) => {
1955
1955
  }, [r, l]), /* @__PURE__ */ g.jsx(W, { field: e, error: l(r), children: /* @__PURE__ */ g.jsx(
1956
1956
  "input",
1957
1957
  {
1958
- id: i,
1958
+ id: s,
1959
1959
  type: "date",
1960
- value: Br(r),
1961
- onChange: d,
1962
- className: X($.input, $.textInput),
1960
+ value: Hr(r),
1961
+ onChange: p,
1962
+ className: K($.input, $.textInput),
1963
1963
  ...e.minDate ? { min: e.minDate } : {},
1964
1964
  ...e.maxDate ? { max: e.maxDate } : {},
1965
1965
  "aria-invalid": !!l(r),
1966
- "aria-describedby": l(r) ? `${i}-error` : void 0
1966
+ "aria-describedby": l(r) ? `${s}-error` : void 0
1967
1967
  }
1968
1968
  ) });
1969
- }, Ur = ({
1969
+ }, Wr = ({
1970
1970
  field: e,
1971
1971
  value: r,
1972
1972
  onChange: n,
1973
1973
  onError: o
1974
1974
  }) => {
1975
- const { t, definitionName: a } = D(), i = k(null), s = k(o);
1975
+ const { t, definitionName: a } = T(), s = k(null), i = k(o);
1976
1976
  C(() => {
1977
- s.current = o;
1977
+ i.current = o;
1978
1978
  }, [o]);
1979
1979
  const u = Z(
1980
1980
  (l) => l === "" || l === null || l === void 0 ? t("Value required") : !e.options || e.options.length === 0 ? null : e.options.some((c) => c.value === l) ? Y(a, e, l, t) ?? null : t("Invalid option selected"),
1981
1981
  [e, t, a]
1982
1982
  );
1983
1983
  C(() => {
1984
- const l = r != null ? String(r) : "", d = u(l);
1985
- if (d && e.options && e.options.length > 0) {
1984
+ const l = r != null ? String(r) : "", p = u(l);
1985
+ if (p && e.options && e.options.length > 0) {
1986
1986
  const c = String(e.options[0].value);
1987
- i.current && (i.current.value = c), n?.(c, null), s.current?.(null);
1987
+ s.current && (s.current.value = c), n?.(c, null), i.current?.(null);
1988
1988
  } else
1989
- i.current && (i.current.value = l), s.current?.(d ?? null);
1989
+ s.current && (s.current.value = l), i.current?.(p ?? null);
1990
1990
  }, [r, u, n, e.options]);
1991
1991
  const m = (l) => {
1992
- const d = l.target.value, c = u(d);
1993
- n?.(d, c);
1992
+ const p = l.target.value, c = u(p);
1993
+ n?.(p, c);
1994
1994
  };
1995
1995
  return /* @__PURE__ */ g.jsx(W, { field: e, error: u(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
1996
1996
  "select",
1997
1997
  {
1998
1998
  defaultValue: String(r ?? ""),
1999
- ref: i,
1999
+ ref: s,
2000
2000
  onChange: m,
2001
- className: X(
2001
+ className: K(
2002
2002
  $.input,
2003
2003
  $.inputSelect
2004
2004
  ),
@@ -2006,45 +2006,45 @@ const qr = ({ field: e, value: r, onChange: n, onError: o }) => {
2006
2006
  }
2007
2007
  ) });
2008
2008
  };
2009
- function Wr(e) {
2009
+ function Yr(e) {
2010
2010
  return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e);
2011
2011
  }
2012
- const Yr = ({
2012
+ const Jr = ({
2013
2013
  field: e,
2014
2014
  value: r,
2015
2015
  onChange: n,
2016
2016
  onError: o
2017
2017
  }) => {
2018
- const { definitionName: t, t: a } = D(), i = k(null), s = A.useCallback(
2019
- (d) => {
2020
- const c = d.trim();
2021
- return c === "" ? e.required ? a("Value required") : null : Wr(c) ? e.pattern && !new RegExp(e.pattern).test(c) ? a("Email does not match pattern: {{%1}}", {
2018
+ const { definitionName: t, t: a } = T(), s = k(null), i = N.useCallback(
2019
+ (p) => {
2020
+ const c = p.trim();
2021
+ return c === "" ? e.required ? a("Value required") : null : Yr(c) ? e.pattern && !new RegExp(e.pattern).test(c) ? a("Email does not match pattern: {{%1}}", {
2022
2022
  "%1": `${e.pattern}`
2023
- }) : Y(t, e, d, a) ?? null : a("Must be valid email format");
2023
+ }) : Y(t, e, p, a) ?? null : a("Must be valid email format");
2024
2024
  },
2025
2025
  [e, t, a]
2026
- ), u = (d) => {
2027
- const c = d.target.value, f = s(c);
2028
- n?.(c, f);
2026
+ ), u = (p) => {
2027
+ const c = p.target.value, d = i(c);
2028
+ n?.(c, d);
2029
2029
  }, m = k(null), l = k(o);
2030
2030
  return C(() => {
2031
2031
  l.current = o;
2032
2032
  }, [o]), C(() => {
2033
- const d = r ?? "", c = s(d);
2034
- i.current && i.current.value !== String(d) && (i.current.value = String(d)), c !== m.current && (m.current = c, l.current?.(c ?? null));
2035
- }, [r, s]), /* @__PURE__ */ g.jsx(W, { field: e, error: s(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
2033
+ const p = r ?? "", c = i(p);
2034
+ s.current && s.current.value !== String(p) && (s.current.value = String(p)), c !== m.current && (m.current = c, l.current?.(c ?? null));
2035
+ }, [r, i]), /* @__PURE__ */ g.jsx(W, { field: e, error: i(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
2036
2036
  "input",
2037
2037
  {
2038
2038
  id: e.name,
2039
2039
  type: "email",
2040
2040
  defaultValue: String(r ?? ""),
2041
- ref: i,
2041
+ ref: s,
2042
2042
  onChange: u,
2043
- className: X($.input, $.textInput)
2043
+ className: K($.input, $.textInput)
2044
2044
  }
2045
2045
  ) });
2046
- }, Jr = ({ field: e }) => {
2047
- const { darkMode: r } = D(), {
2046
+ }, Gr = ({ field: e }) => {
2047
+ const { darkMode: r } = T(), {
2048
2048
  color: n = r ? "#444444" : "#CCCCCC",
2049
2049
  thickness: o = 1,
2050
2050
  margin: t = "8px 0"
@@ -2061,254 +2061,254 @@ const Yr = ({
2061
2061
  }
2062
2062
  }
2063
2063
  );
2064
- };
2065
- function ir({
2066
- pos: e,
2067
- options: r,
2068
- onClose: n,
2069
- onClickOption: o
2070
- }) {
2071
- const t = k(null), a = k(!1), i = typeof window < "u" ? document.getElementById("popup-root") || document.body : null;
2072
- if (C(() => {
2073
- function f(b) {
2074
- a.current || b.target.dataset?.popupMenu === "item" || t.current && b.target instanceof Node && !t.current.contains(b.target) && n();
2064
+ }, Kr = ({ field: e, value: r, onChange: n, onError: o }) => {
2065
+ const { t, definitionName: a } = T(), [s, i] = D(!1), u = k(null), m = k(o);
2066
+ C(() => {
2067
+ m.current = o;
2068
+ }, [o]);
2069
+ const l = N.useCallback(
2070
+ (v) => e.required && (!v || Array.isArray(v) && v.length === 0) ? t("Value required") : Y(a, e, v, t) ?? null,
2071
+ [e, a, t]
2072
+ ), p = N.useMemo(() => l(r), [r, l]);
2073
+ C(() => {
2074
+ const v = l(r);
2075
+ n?.(r, v), m.current?.(v ?? null);
2076
+ }, [r, l]);
2077
+ const c = (v) => {
2078
+ const F = v.target.files;
2079
+ let R = null;
2080
+ if (F && F.length > 0) {
2081
+ const j = Array.from(F);
2082
+ e.multiple ? R = [...Array.isArray(r) ? r : [], ...j] : R = j[0];
2075
2083
  }
2076
- return document.addEventListener("mousedown", f), () => document.removeEventListener("mousedown", f);
2077
- }, [n]), !i || r === void 0 || r.length === 0 || !e || e.x == null || e.y == null) return null;
2078
- const s = e.x, u = e.y, m = typeof window < "u" ? window.innerWidth : 1024, l = Math.max(0, m - 160), d = Math.max(0, Math.min(s, l)), c = Math.max(0, u);
2079
- return Me.createPortal(
2080
- /* @__PURE__ */ g.jsx(
2084
+ const w = l(R);
2085
+ n?.(R, w);
2086
+ }, d = (v) => {
2087
+ v.preventDefault(), v.stopPropagation(), i(!1);
2088
+ const F = v.dataTransfer.files;
2089
+ if (F && F.length > 0) {
2090
+ const R = Array.from(F);
2091
+ let w = null;
2092
+ e.multiple ? w = [...Array.isArray(r) ? r : [], ...R] : w = R[0];
2093
+ const j = l(w);
2094
+ n?.(w, j);
2095
+ }
2096
+ }, b = (v) => {
2097
+ v.preventDefault(), v.stopPropagation(), i(!0);
2098
+ }, f = (v) => {
2099
+ v.preventDefault(), v.stopPropagation(), i(!1);
2100
+ }, y = (v) => {
2101
+ if (Array.isArray(r) && typeof v == "number") {
2102
+ const F = r.filter((j, I) => I !== v), R = F.length > 0 ? F : null, w = l(R);
2103
+ n?.(R, w);
2104
+ } else {
2105
+ const F = l(null);
2106
+ n?.(null, F);
2107
+ }
2108
+ }, x = () => {
2109
+ const v = Array.isArray(r) ? r : r ? [r] : [];
2110
+ return v.length === 0 ? null : /* @__PURE__ */ g.jsx("div", { style: {
2111
+ marginTop: "8px",
2112
+ display: "flex",
2113
+ flexDirection: "column",
2114
+ gap: "6px"
2115
+ }, children: v.map((F, R) => /* @__PURE__ */ g.jsxs(
2081
2116
  "div",
2082
2117
  {
2083
- ref: t,
2084
- onMouseDown: (f) => {
2085
- f.stopPropagation();
2118
+ style: {
2119
+ display: "flex",
2120
+ alignItems: "center",
2121
+ justifyContent: "space-between",
2122
+ padding: "6px 10px",
2123
+ backgroundColor: "var(--reactaform-input-bg, #fff)",
2124
+ border: "1px solid var(--reactaform-border-color, #d1d5db)",
2125
+ borderRadius: "4px",
2126
+ fontSize: "0.875rem",
2127
+ gap: "8px"
2086
2128
  },
2129
+ children: [
2130
+ /* @__PURE__ */ g.jsx("div", { style: {
2131
+ flex: 1,
2132
+ minWidth: 0,
2133
+ overflow: "hidden",
2134
+ textOverflow: "ellipsis",
2135
+ whiteSpace: "nowrap"
2136
+ }, children: F.name }),
2137
+ /* @__PURE__ */ g.jsx(
2138
+ "button",
2139
+ {
2140
+ type: "button",
2141
+ onClick: () => y(Array.isArray(r) ? R : void 0),
2142
+ "aria-label": t("Remove file"),
2143
+ style: {
2144
+ background: "transparent",
2145
+ border: "none",
2146
+ color: "var(--reactaform-color-error, #ef4444)",
2147
+ cursor: "pointer",
2148
+ padding: "2px 6px",
2149
+ fontSize: "1.125rem",
2150
+ lineHeight: 1,
2151
+ borderRadius: "4px",
2152
+ transition: "background-color 0.2s",
2153
+ flexShrink: 0
2154
+ },
2155
+ onMouseEnter: (w) => {
2156
+ w.currentTarget.style.backgroundColor = "var(--reactaform-bg-hover, #fee)";
2157
+ },
2158
+ onMouseLeave: (w) => {
2159
+ w.currentTarget.style.backgroundColor = "transparent";
2160
+ },
2161
+ children: "×"
2162
+ }
2163
+ )
2164
+ ]
2165
+ },
2166
+ `${F.name}-${R}`
2167
+ )) });
2168
+ };
2169
+ return /* @__PURE__ */ g.jsx(W, { field: e, error: p, children: /* @__PURE__ */ g.jsxs("div", { style: { width: "100%" }, children: [
2170
+ /* @__PURE__ */ g.jsxs(
2171
+ "div",
2172
+ {
2173
+ onDrop: d,
2174
+ onDragOver: b,
2175
+ onDragLeave: f,
2087
2176
  style: {
2088
- position: "fixed",
2089
- top: c,
2090
- left: d,
2091
- backgroundColor: "var(--reactaform-primary-bg, #fff)",
2092
- border: "1px solid var(--reactaform-border-color, #ccc)",
2177
+ position: "relative",
2178
+ border: `1px dashed ${s ? "var(--reactaform-color-primary, #2563eb)" : p ? "var(--reactaform-color-error, #ef4444)" : "var(--reactaform-border-color, #d1d5db)"}`,
2093
2179
  borderRadius: "var(--reactaform-border-radius, 4px)",
2094
- boxShadow: "var(--reactaform-shadow, 0 2px 10px rgba(0,0,0,0.2))",
2095
- zIndex: 9999,
2096
- minWidth: "var(--reactaform-menu-min-width, 150px)",
2097
- pointerEvents: "auto"
2180
+ padding: "8px 12px",
2181
+ textAlign: "center",
2182
+ backgroundColor: s ? "var(--reactaform-bg-hover, #f0f9ff)" : "var(--reactaform-input-bg, #fff)",
2183
+ transition: "all 0.2s ease",
2184
+ cursor: "pointer",
2185
+ minHeight: "var(--reactaform-input-height, 34px)",
2186
+ width: "100%",
2187
+ maxWidth: "100%",
2188
+ alignSelf: "stretch",
2189
+ boxSizing: "border-box",
2190
+ display: "flex",
2191
+ alignItems: "center",
2192
+ justifyContent: "center",
2193
+ gap: "8px"
2098
2194
  },
2099
- children: r.map((f, b) => /* @__PURE__ */ g.jsx(
2100
- "div",
2101
- {
2102
- "data-popup-menu": "item",
2103
- onMouseDown: (p) => {
2104
- p.stopPropagation(), a.current = !0;
2105
- },
2106
- onClick: (p) => {
2107
- p.stopPropagation(), p.preventDefault(), o(f), n(), setTimeout(() => {
2108
- a.current = !1;
2109
- }, 100);
2110
- },
2111
- style: {
2112
- padding: "var(--reactaform-menu-item-padding, 8px 12px)",
2113
- cursor: "pointer",
2114
- fontSize: "var(--reactaform-menu-item-font-size, 0.8em)",
2115
- borderBottom: b < r.length - 1 ? "1px solid var(--reactaform-border-light, #eee)" : void 0,
2116
- transition: "background-color 0.15s ease"
2117
- },
2118
- onMouseEnter: (p) => {
2119
- p.currentTarget.style.backgroundColor = "var(--reactaform-hover-bg, #e0e0e0)";
2120
- },
2121
- onMouseLeave: (p) => {
2122
- p.currentTarget.style.backgroundColor = "transparent";
2123
- },
2124
- children: f.label
2125
- },
2126
- f.label ?? b
2127
- ))
2195
+ onClick: () => u.current?.click(),
2196
+ children: [
2197
+ /* @__PURE__ */ g.jsx(
2198
+ "input",
2199
+ {
2200
+ id: e.name,
2201
+ ref: u,
2202
+ type: "file",
2203
+ accept: e.accept,
2204
+ multiple: e.multiple,
2205
+ style: {
2206
+ display: "none"
2207
+ },
2208
+ onChange: c
2209
+ }
2210
+ ),
2211
+ /* @__PURE__ */ g.jsx("div", { style: {
2212
+ fontSize: "1.25rem",
2213
+ opacity: 0.6,
2214
+ lineHeight: 1,
2215
+ flexShrink: 0
2216
+ }, children: "📁" }),
2217
+ /* @__PURE__ */ g.jsx("div", { style: {
2218
+ fontSize: "0.875rem",
2219
+ fontWeight: 400,
2220
+ color: "var(--reactaform-text-color, #111827)",
2221
+ flex: 1,
2222
+ textAlign: "left"
2223
+ }, children: s ? t("Drop files here") : e.multiple ? t("Choose Files or Drag & Drop") : t("Choose File or Drag & Drop") }),
2224
+ e.accept && /* @__PURE__ */ g.jsx("div", { style: {
2225
+ fontSize: "0.75rem",
2226
+ color: "var(--reactaform-text-muted, #6b7280)",
2227
+ whiteSpace: "nowrap",
2228
+ opacity: s ? 0 : 1,
2229
+ transition: "opacity 0.15s ease",
2230
+ pointerEvents: s ? "none" : "auto"
2231
+ }, children: e.accept })
2232
+ ]
2128
2233
  }
2129
2234
  ),
2130
- i
2131
- );
2132
- }
2133
- const Gr = ({ field: e, value: r, onChange: n, onError: o }) => {
2134
- const { t, definitionName: a } = D(), [i, s] = T(!1), [u, m] = T(null), [l, d] = T([]), c = k(null), f = k(o);
2135
- C(() => {
2136
- f.current = o;
2137
- }, [o]);
2138
- const b = A.useCallback(
2139
- (S) => e.required && (!S || Array.isArray(S) && S.length === 0) ? t("Value required") : Y(a, e, S, t) ?? null,
2140
- [e, a, t]
2141
- ), p = A.useMemo(() => b(r), [r, b]);
2142
- C(() => {
2143
- const S = b(r);
2144
- n?.(r, S), f.current?.(S ?? null);
2145
- }, [r, b]);
2146
- const y = (S) => {
2147
- const F = S.target.files;
2148
- let I = null;
2149
- F && F.length > 0 && (I = e.multiple ? Array.from(F) : F[0]);
2150
- const w = b(I);
2151
- n?.(I, w);
2152
- }, x = (S) => {
2153
- if (p)
2154
- return;
2155
- let F = null;
2156
- try {
2157
- F = S.currentTarget.getBoundingClientRect();
2158
- } catch {
2159
- F = null;
2160
- }
2161
- const I = F && typeof F.left == "number" ? F.left : 10, w = F && typeof F.bottom == "number" ? F.bottom : 20;
2162
- m({ x: I, y: w });
2163
- let j = [];
2164
- Array.isArray(r) ? j = r ? r.map((E) => ({ label: E.name })) : [] : j = r ? [{ label: r.name }] : [], j.length === 0 && (j = [{ label: t("No file selected") }]), d(j), s((E) => !E);
2165
- };
2166
- return /* @__PURE__ */ g.jsx(W, { field: e, error: p, children: /* @__PURE__ */ g.jsxs(
2167
- "div",
2168
- {
2169
- style: {
2170
- display: "flex",
2171
- alignItems: "center",
2172
- gap: "var(--reactaform-inline-gap, 8px)",
2173
- width: "100%"
2174
- },
2175
- children: [
2176
- /* @__PURE__ */ g.jsx(
2177
- "input",
2178
- {
2179
- id: e.name,
2180
- ref: c,
2181
- type: "file",
2182
- accept: e.accept,
2183
- multiple: e.multiple,
2184
- style: {
2185
- width: 0,
2186
- height: 0,
2187
- opacity: 0,
2188
- position: "absolute",
2189
- zIndex: -1
2190
- },
2191
- onChange: y
2192
- }
2193
- ),
2194
- /* @__PURE__ */ g.jsx(
2195
- "label",
2196
- {
2197
- htmlFor: e.name,
2198
- className: $.button,
2199
- style: {
2200
- width: "100%",
2201
- height: "inherit",
2202
- textAlign: "center"
2203
- },
2204
- children: e.multiple ? t("Choose Files...") : t("Choose File...")
2205
- }
2206
- ),
2207
- /* @__PURE__ */ g.jsx(
2208
- "button",
2209
- {
2210
- onClick: x,
2211
- "aria-haspopup": !0,
2212
- "aria-expanded": i,
2213
- "aria-label": t("Show selected files"),
2214
- className: $.button,
2215
- style: {
2216
- height: "inherit",
2217
- display: "inline-block"
2218
- },
2219
- children: /* @__PURE__ */ g.jsx("span", { children: "⋮" })
2220
- }
2221
- ),
2222
- i && u && l && l.length > 0 && /* @__PURE__ */ g.jsx(
2223
- ir,
2224
- {
2225
- pos: u,
2226
- options: l,
2227
- onClose: () => {
2228
- m(null), s(!1);
2229
- },
2230
- onClickOption: () => {
2231
- }
2232
- }
2233
- )
2234
- ]
2235
- }
2236
- ) });
2237
- }, Kr = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/;
2238
- function Xr(e) {
2239
- return e.split(",").map((r) => r.trim()).every((r) => Kr.test(r));
2235
+ x()
2236
+ ] }) });
2237
+ }, Xr = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/;
2238
+ function Zr(e) {
2239
+ return e.split(",").map((r) => r.trim()).every((r) => Xr.test(r));
2240
2240
  }
2241
- const Zr = (e) => !e || e.trim() === "" ? [] : e.split(",").map((r) => r.trim()).filter(Boolean).map(Number), Qr = ({
2241
+ const Qr = (e) => !e || e.trim() === "" ? [] : e.split(",").map((r) => r.trim()).filter(Boolean).map(Number), et = ({
2242
2242
  field: e,
2243
2243
  value: r,
2244
2244
  onChange: n,
2245
2245
  onError: o
2246
2246
  }) => {
2247
- const { t, definitionName: a } = D(), [i, s] = T(
2247
+ const { t, definitionName: a } = T(), [s, i] = D(
2248
2248
  Array.isArray(r) ? r.join(", ") : String(r ?? "")
2249
- ), u = A.useCallback(
2249
+ ), u = N.useCallback(
2250
2250
  (c) => {
2251
2251
  if (c.trim() === "")
2252
2252
  return e.required ? t("Value required") : null;
2253
- if (!Xr(c))
2253
+ if (!Zr(c))
2254
2254
  return t("Each value must be a valid float");
2255
- const f = Zr(c);
2256
- if (e.minCount !== void 0 && f.length < e.minCount)
2255
+ const d = Qr(c);
2256
+ if (e.minCount !== void 0 && d.length < e.minCount)
2257
2257
  return t("Minimum number of values: {{1}}", e.minCount);
2258
- if (e.maxCount !== void 0 && f.length > e.maxCount)
2258
+ if (e.maxCount !== void 0 && d.length > e.maxCount)
2259
2259
  return t("Maximum number of values: {{1}}", e.maxCount);
2260
- for (const p of f) {
2261
- if (e.min !== void 0 && (e.minInclusive ? p < e.min : p <= e.min))
2260
+ for (const f of d) {
2261
+ if (e.min !== void 0 && (e.minInclusive ? f < e.min : f <= e.min))
2262
2262
  return t(
2263
2263
  "Each value must be {{1}} {{2}}",
2264
2264
  e.minInclusive ? "≥" : ">",
2265
2265
  e.min
2266
2266
  );
2267
- if (e.max !== void 0 && (e.maxInclusive ? p > e.max : p >= e.max))
2267
+ if (e.max !== void 0 && (e.maxInclusive ? f > e.max : f >= e.max))
2268
2268
  return t(
2269
2269
  "Each value must be {{1}} {{2}}",
2270
2270
  e.maxInclusive ? "≤" : "<",
2271
2271
  e.max
2272
2272
  );
2273
2273
  }
2274
- return Y(a, e, f, t) ?? null;
2274
+ return Y(a, e, d, t) ?? null;
2275
2275
  },
2276
2276
  [a, e, t]
2277
2277
  ), m = (c) => {
2278
- const f = c.target.value, b = u(f);
2279
- s(f), n?.(f, b);
2280
- }, l = k(null), d = k(o);
2278
+ const d = c.target.value, b = u(d);
2279
+ i(d), n?.(d, b);
2280
+ }, l = k(null), p = k(o);
2281
2281
  return C(() => {
2282
- d.current = o;
2282
+ p.current = o;
2283
2283
  }, [o]), C(() => {
2284
- const c = Array.isArray(r) ? r.join(", ") : String(r ?? ""), f = u(c);
2285
- f !== l.current && (l.current = f, d.current?.(f ?? null));
2286
- }, [r, e.required, u, t]), /* @__PURE__ */ g.jsx(W, { field: e, error: u(i), children: /* @__PURE__ */ g.jsx(
2284
+ const c = Array.isArray(r) ? r.join(", ") : String(r ?? ""), d = u(c);
2285
+ d !== l.current && (l.current = d, p.current?.(d ?? null));
2286
+ }, [r, e.required, u, t]), /* @__PURE__ */ g.jsx(W, { field: e, error: u(s), children: /* @__PURE__ */ g.jsx(
2287
2287
  "input",
2288
2288
  {
2289
2289
  type: "text",
2290
- value: i,
2290
+ value: s,
2291
2291
  onChange: m,
2292
- className: X($.input, $.textInput),
2292
+ className: K($.input, $.textInput),
2293
2293
  style: { flex: 1 }
2294
2294
  }
2295
2295
  ) });
2296
- }, et = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, rt = (e) => {
2296
+ }, rt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, tt = (e) => {
2297
2297
  const r = Number.parseFloat(e);
2298
2298
  return Number.isNaN(r) ? null : r;
2299
- }, tt = ({
2299
+ }, nt = ({
2300
2300
  field: e,
2301
2301
  value: r,
2302
2302
  onChange: n,
2303
2303
  onError: o
2304
2304
  }) => {
2305
- const { t, definitionName: a } = D(), i = k(null), s = A.useCallback(
2306
- (d) => {
2307
- if (d.trim() === "")
2305
+ const { t, definitionName: a } = T(), s = k(null), i = N.useCallback(
2306
+ (p) => {
2307
+ if (p.trim() === "")
2308
2308
  return e.required ? t("Value required") : null;
2309
- if (!et.test(d))
2309
+ if (!rt.test(p))
2310
2310
  return t("Must be a valid float");
2311
- const c = rt(d);
2311
+ const c = tt(p);
2312
2312
  return c === null ? t("Must be a valid float") : e.min !== void 0 && (e.minInclusive ? c < e.min : c <= e.min) ? t(
2313
2313
  "Must be {{1}} {{2}}",
2314
2314
  e.minInclusive ? "≥" : ">",
@@ -2324,29 +2324,29 @@ const Zr = (e) => !e || e.trim() === "" ? [] : e.split(",").map((r) => r.trim())
2324
2324
  C(() => {
2325
2325
  m.current = o;
2326
2326
  }, [o]), C(() => {
2327
- const d = String(r ?? ""), c = s(d);
2328
- c !== u.current && (u.current = c, m.current?.(c ?? null)), i.current && document.activeElement !== i.current && (i.current.value = d);
2329
- }, [r, e, s, t]);
2330
- const l = (d) => {
2331
- const c = d.target.value, f = s(c);
2332
- n?.(c, f);
2327
+ const p = String(r ?? ""), c = i(p);
2328
+ c !== u.current && (u.current = c, m.current?.(c ?? null)), s.current && document.activeElement !== s.current && (s.current.value = p);
2329
+ }, [r, e, i, t]);
2330
+ const l = (p) => {
2331
+ const c = p.target.value, d = i(c);
2332
+ n?.(c, d);
2333
2333
  };
2334
- return /* @__PURE__ */ g.jsx(W, { field: e, error: s(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
2334
+ return /* @__PURE__ */ g.jsx(W, { field: e, error: i(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
2335
2335
  "input",
2336
2336
  {
2337
2337
  id: e.name,
2338
2338
  type: "text",
2339
2339
  defaultValue: String(r ?? ""),
2340
- ref: i,
2340
+ ref: s,
2341
2341
  onChange: l,
2342
- className: X(
2342
+ className: K(
2343
2343
  $.input,
2344
2344
  $.inputNumber
2345
2345
  )
2346
2346
  }
2347
2347
  ) });
2348
2348
  };
2349
- function nt() {
2349
+ function ot() {
2350
2350
  try {
2351
2351
  return "/";
2352
2352
  } catch {
@@ -2358,46 +2358,46 @@ function nt() {
2358
2358
  }
2359
2359
  return "/";
2360
2360
  }
2361
- const ot = ({ field: e, value: r }) => {
2362
- const { language: n, t: o } = D(), t = e.alignment || "center", a = {
2361
+ const at = ({ field: e, value: r }) => {
2362
+ const { language: n, t: o } = T(), t = e.alignment || "center", a = {
2363
2363
  left: "flex-start",
2364
2364
  center: "center",
2365
2365
  right: "flex-end"
2366
- }, i = typeof r == "string" ? r : "";
2367
- let s = i && i.trim() !== "" ? i : typeof e.defaultValue == "string" ? e.defaultValue : "";
2368
- s && !s.startsWith("/") && (s = `${nt()}${s}`);
2369
- const u = e.localized?.split(";").map((y) => y.trim()), [m, l] = T(s || ""), d = k(s || null);
2366
+ }, s = typeof r == "string" ? r : "";
2367
+ let i = s && s.trim() !== "" ? s : typeof e.defaultValue == "string" ? e.defaultValue : "";
2368
+ i && !i.startsWith("/") && (i = `${ot()}${i}`);
2369
+ const u = e.localized?.split(";").map((y) => y.trim()), [m, l] = D(i || ""), p = k(i || null);
2370
2370
  if (C(() => {
2371
- if (!s) return;
2372
- const y = s.split("/"), x = y.pop(), S = x.lastIndexOf(".");
2373
- if (S === -1) return;
2374
- const F = x.substring(0, S), I = x.substring(S);
2371
+ if (!i) return;
2372
+ const y = i.split("/"), x = y.pop(), v = x.lastIndexOf(".");
2373
+ if (v === -1) return;
2374
+ const F = x.substring(0, v), R = x.substring(v);
2375
2375
  let w = null;
2376
- u?.includes(n) && (w = `${F}_${n}${I}`);
2376
+ u?.includes(n) && (w = `${F}_${n}${R}`);
2377
2377
  const j = new AbortController();
2378
2378
  if (w) {
2379
- const E = [...y, w].join("/");
2380
- fetch(E, { method: "HEAD", signal: j.signal }).then((v) => {
2381
- const N = v.ok ? E : s;
2382
- N !== d.current && (d.current = N, l(N));
2379
+ const I = [...y, w].join("/");
2380
+ fetch(I, { method: "HEAD", signal: j.signal }).then((S) => {
2381
+ const A = S.ok ? I : i;
2382
+ A !== p.current && (p.current = A, l(A));
2383
2383
  }).catch(() => {
2384
- s !== d.current && (d.current = s, l(s));
2384
+ i !== p.current && (p.current = i, l(i));
2385
2385
  });
2386
2386
  } else {
2387
- const E = s;
2388
- E !== d.current && (d.current = E, requestAnimationFrame(() => l(E)));
2387
+ const I = i;
2388
+ I !== p.current && (p.current = I, requestAnimationFrame(() => l(I)));
2389
2389
  }
2390
2390
  return () => {
2391
2391
  j.abort();
2392
2392
  };
2393
- }, [s, n, u]), !m) return null;
2394
- const { width: c, height: f } = e, b = {}, p = {
2393
+ }, [i, n, u]), !m) return null;
2394
+ const { width: c, height: d } = e, b = {}, f = {
2395
2395
  borderRadius: "8px",
2396
2396
  objectFit: "contain",
2397
2397
  boxShadow: "0 2px 6px rgba(0,0,0,0.1)",
2398
2398
  margin: "0 0 8px 0"
2399
2399
  };
2400
- return c && f ? (b.width = c, b.height = f, p.width = `${c}px`, p.height = `${f}px`) : c && !f ? (b.width = c, p.width = `${c}px`, p.height = "auto") : !c && f && (b.height = f, p.width = "auto", p.height = `${f}px`), /* @__PURE__ */ g.jsx(W, { field: e, children: /* @__PURE__ */ g.jsx(
2400
+ return c && d ? (b.width = c, b.height = d, f.width = `${c}px`, f.height = `${d}px`) : c && !d ? (b.width = c, f.width = `${c}px`, f.height = "auto") : !c && d && (b.height = d, f.width = "auto", f.height = `${d}px`), /* @__PURE__ */ g.jsx(W, { field: e, children: /* @__PURE__ */ g.jsx(
2401
2401
  "div",
2402
2402
  {
2403
2403
  "data-testid": "image-wrapper",
@@ -2412,36 +2412,36 @@ const ot = ({ field: e, value: r }) => {
2412
2412
  src: m,
2413
2413
  alt: o?.(e.displayName || "Image") || e.displayName || "Image",
2414
2414
  ...b,
2415
- style: p
2415
+ style: f
2416
2416
  }
2417
2417
  )
2418
2418
  }
2419
2419
  ) });
2420
2420
  };
2421
- function at(e) {
2421
+ function st(e) {
2422
2422
  const r = /^-?\d+$/;
2423
2423
  return e.split(",").map((n) => n.trim()).every((n) => r.test(n));
2424
2424
  }
2425
- const st = ({
2425
+ const it = ({
2426
2426
  field: e,
2427
2427
  value: r,
2428
2428
  onChange: n,
2429
2429
  onError: o
2430
2430
  }) => {
2431
- const { t, definitionName: a } = D(), i = ",", [s, u] = T(
2432
- Array.isArray(r) ? r.join(i + " ") : String(r ?? "")
2433
- ), m = (b) => !b || b.trim() === "" ? [] : b.split(i).map((p) => p.trim()).filter(Boolean).map((p) => Number(p)), l = A.useCallback(
2431
+ const { t, definitionName: a } = T(), s = ",", [i, u] = D(
2432
+ Array.isArray(r) ? r.join(s + " ") : String(r ?? "")
2433
+ ), m = (b) => !b || b.trim() === "" ? [] : b.split(s).map((f) => f.trim()).filter(Boolean).map((f) => Number(f)), l = N.useCallback(
2434
2434
  (b) => {
2435
2435
  if (b.trim() === "")
2436
2436
  return e.required ? t("Value required") : null;
2437
- if (!at(b))
2437
+ if (!st(b))
2438
2438
  return t("Each value must be a valid integer");
2439
- const p = m(b);
2440
- if (e.minCount !== void 0 && p.length < e.minCount)
2439
+ const f = m(b);
2440
+ if (e.minCount !== void 0 && f.length < e.minCount)
2441
2441
  return t("Minimum number of values: {{1}}", `${e.minCount}`);
2442
- if (e.maxCount !== void 0 && p.length > e.maxCount)
2442
+ if (e.maxCount !== void 0 && f.length > e.maxCount)
2443
2443
  return t("Maximum number of values: {{1}}", `${e.maxCount}`);
2444
- for (const x of p) {
2444
+ for (const x of f) {
2445
2445
  if (e.min !== void 0 && (e.minInclusive ? x < e.min : x <= e.min))
2446
2446
  return t(
2447
2447
  "Each value must be {{1}} {{2}}",
@@ -2455,83 +2455,83 @@ const st = ({
2455
2455
  e.max
2456
2456
  );
2457
2457
  }
2458
- return Y(a, e, p, t) ?? null;
2458
+ return Y(a, e, f, t) ?? null;
2459
2459
  },
2460
2460
  [a, e, t]
2461
- ), d = (b) => {
2462
- const p = b.target.value, y = l(p);
2463
- u(p), n?.(p, y);
2464
- }, c = k(null), f = k(
2461
+ ), p = (b) => {
2462
+ const f = b.target.value, y = l(f);
2463
+ u(f), n?.(f, y);
2464
+ }, c = k(null), d = k(
2465
2465
  o
2466
2466
  );
2467
2467
  return C(() => {
2468
- f.current = o;
2468
+ d.current = o;
2469
2469
  }, [o]), C(() => {
2470
- const b = Array.isArray(r) ? r.join(i + " ") : String(r ?? ""), p = l(b);
2471
- p !== c.current && (c.current = p, f.current?.(p ?? null));
2472
- }, [r, e.required, l, t]), /* @__PURE__ */ g.jsx(W, { field: e, error: l(s), children: /* @__PURE__ */ g.jsx(
2470
+ const b = Array.isArray(r) ? r.join(s + " ") : String(r ?? ""), f = l(b);
2471
+ f !== c.current && (c.current = f, d.current?.(f ?? null));
2472
+ }, [r, e.required, l, t]), /* @__PURE__ */ g.jsx(W, { field: e, error: l(i), children: /* @__PURE__ */ g.jsx(
2473
2473
  "input",
2474
2474
  {
2475
2475
  type: "text",
2476
- value: s,
2477
- onChange: d,
2478
- className: X($.input, $.textInput),
2476
+ value: i,
2477
+ onChange: p,
2478
+ className: K($.input, $.textInput),
2479
2479
  style: { flex: 1 }
2480
2480
  }
2481
2481
  ) });
2482
2482
  };
2483
- function it(e) {
2483
+ function ct(e) {
2484
2484
  return /^[-+]?\d*$/.test(e);
2485
2485
  }
2486
- const ct = ({
2486
+ const lt = ({
2487
2487
  field: e,
2488
2488
  value: r,
2489
2489
  onChange: n,
2490
2490
  onError: o
2491
2491
  }) => {
2492
- const { t, definitionName: a } = D(), i = k(null), s = Z((c) => {
2493
- const f = parseInt(c, 10);
2494
- return Number.isNaN(f) ? null : f;
2495
- }, []), u = A.useCallback(
2492
+ const { t, definitionName: a } = T(), s = k(null), i = Z((c) => {
2493
+ const d = parseInt(c, 10);
2494
+ return Number.isNaN(d) ? null : d;
2495
+ }, []), u = N.useCallback(
2496
2496
  (c) => {
2497
2497
  if (c.trim() === "")
2498
2498
  return e.required ? t("Value required") : null;
2499
- if (!it(c))
2499
+ if (!ct(c))
2500
2500
  return t("Must be a valid integer");
2501
- const f = s(c);
2502
- if (f === null) return t("Must be a valid integer");
2503
- if (e.min !== void 0 && (e.minInclusive ? f < e.min : f <= e.min))
2501
+ const d = i(c);
2502
+ if (d === null) return t("Must be a valid integer");
2503
+ if (e.min !== void 0 && (e.minInclusive ? d < e.min : d <= e.min))
2504
2504
  return t(
2505
2505
  "Must be {{1}} {{2}}",
2506
2506
  e.minInclusive ? "≥" : ">",
2507
2507
  e.min
2508
2508
  );
2509
- if (e.max !== void 0 && (e.maxInclusive ? f > e.max : f >= e.max))
2509
+ if (e.max !== void 0 && (e.maxInclusive ? d > e.max : d >= e.max))
2510
2510
  return t(
2511
2511
  "Must be {{1}} {{2}}",
2512
2512
  e.maxInclusive ? "≤" : "<",
2513
2513
  e.max
2514
2514
  );
2515
2515
  if (e.step !== void 0) {
2516
- const p = Number(e.step);
2517
- if (!Number.isInteger(p))
2516
+ const f = Number(e.step);
2517
+ if (!Number.isInteger(f))
2518
2518
  return t("Invalid step value");
2519
- if (f % p !== 0)
2520
- return t("Must be a multiple of {{1}}", p);
2519
+ if (d % f !== 0)
2520
+ return t("Must be a multiple of {{1}}", f);
2521
2521
  }
2522
- return Y(a, e, f, t) ?? null;
2522
+ return Y(a, e, d, t) ?? null;
2523
2523
  },
2524
- [e, a, t, s]
2524
+ [e, a, t, i]
2525
2525
  ), m = k(null), l = k(o);
2526
2526
  C(() => {
2527
2527
  l.current = o;
2528
2528
  }, [o]), C(() => {
2529
- const c = String(r ?? ""), f = u(c);
2530
- f !== m.current && (m.current = f, l.current?.(f ?? null)), i.current && document.activeElement !== i.current && (i.current.value = c);
2529
+ const c = String(r ?? ""), d = u(c);
2530
+ d !== m.current && (m.current = d, l.current?.(d ?? null)), s.current && document.activeElement !== s.current && (s.current.value = c);
2531
2531
  }, [r, e, u, t]);
2532
- const d = (c) => {
2533
- const f = c.target.value, b = u(f);
2534
- n?.(f, b);
2532
+ const p = (c) => {
2533
+ const d = c.target.value, b = u(d);
2534
+ n?.(d, b);
2535
2535
  };
2536
2536
  return /* @__PURE__ */ g.jsx(W, { field: e, error: u(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
2537
2537
  "input",
@@ -2539,51 +2539,51 @@ const ct = ({
2539
2539
  id: e.name,
2540
2540
  type: "text",
2541
2541
  defaultValue: String(r ?? ""),
2542
- ref: i,
2543
- onChange: d,
2544
- className: X(
2542
+ ref: s,
2543
+ onChange: p,
2544
+ className: K(
2545
2545
  $.input,
2546
2546
  $.inputNumber
2547
2547
  )
2548
2548
  }
2549
2549
  ) });
2550
- }, lt = ({
2550
+ }, ut = ({
2551
2551
  field: e,
2552
2552
  value: r,
2553
2553
  onChange: n,
2554
2554
  onError: o
2555
2555
  }) => {
2556
- const { t, definitionName: a } = D(), i = e.minHeight ?? "80px", s = A.useRef(null), u = A.useRef(null), m = A.useRef(
2556
+ const { t, definitionName: a } = T(), s = e.minHeight ?? "80px", i = N.useRef(null), u = N.useRef(null), m = N.useRef(
2557
2557
  o
2558
2558
  );
2559
- A.useEffect(() => {
2559
+ N.useEffect(() => {
2560
2560
  m.current = o;
2561
2561
  }, [o]);
2562
- const l = A.useCallback(
2563
- (f) => f.trim() === "" ? e.required ? t("Value required") : null : e.minLength !== void 0 && f.length < e.minLength ? t("Must be at least {{1}} characters", e.minLength) : e.maxLength !== void 0 && f.length > e.maxLength ? t("Must be at most {{1}} characters", e.maxLength) : Y(a, e, f, t),
2562
+ const l = N.useCallback(
2563
+ (d) => d.trim() === "" ? e.required ? t("Value required") : null : e.minLength !== void 0 && d.length < e.minLength ? t("Must be at least {{1}} characters", e.minLength) : e.maxLength !== void 0 && d.length > e.maxLength ? t("Must be at most {{1}} characters", e.maxLength) : Y(a, e, d, t),
2564
2564
  [e, a, t]
2565
- ), d = (f) => {
2566
- const b = f.target.value, p = l(b);
2567
- n?.(b, p);
2565
+ ), p = (d) => {
2566
+ const b = d.target.value, f = l(b);
2567
+ n?.(b, f);
2568
2568
  };
2569
2569
  C(() => {
2570
- const f = l(r);
2571
- f !== u.current && (u.current = f, m.current?.(f ?? null)), s.current && s.current.value !== String(r ?? "") && (s.current.value = String(r ?? ""));
2570
+ const d = l(r);
2571
+ d !== u.current && (u.current = d, m.current?.(d ?? null)), i.current && i.current.value !== String(r ?? "") && (i.current.value = String(r ?? ""));
2572
2572
  }, [r, l]);
2573
2573
  const c = {
2574
2574
  defaultValue: String(r ?? ""),
2575
- ref: s,
2576
- onChange: d,
2575
+ ref: i,
2576
+ onChange: p,
2577
2577
  style: {
2578
2578
  resize: "vertical",
2579
- minHeight: i,
2579
+ minHeight: s,
2580
2580
  width: "100%",
2581
2581
  boxSizing: "border-box"
2582
2582
  },
2583
- className: X($.input, $.textInput)
2583
+ className: K($.input, $.textInput)
2584
2584
  };
2585
2585
  return /* @__PURE__ */ g.jsx(W, { field: e, error: l(r), children: /* @__PURE__ */ g.jsx("textarea", { ...c }) });
2586
- }, ut = ({
2586
+ }, mt = ({
2587
2587
  field: e,
2588
2588
  value: r,
2589
2589
  onChange: n,
@@ -2593,28 +2593,28 @@ const ct = ({
2593
2593
  C(() => {
2594
2594
  t.current = o;
2595
2595
  }, [o]);
2596
- const { t: a, darkMode: i, formStyle: s, fieldStyle: u, definitionName: m } = D(), l = (v, N, M) => {
2597
- if (!N) return {};
2598
- const L = v?.[N];
2596
+ const { t: a, darkMode: s, formStyle: i, fieldStyle: u, definitionName: m } = T(), l = (S, A, M) => {
2597
+ if (!A) return {};
2598
+ const L = S?.[A];
2599
2599
  return (M && L ? L[M] : void 0) ?? {};
2600
- }, d = k(null), [c, f] = T(!1), [b, p] = T(
2600
+ }, p = k(null), [c, d] = D(!1), [b, f] = D(
2601
2601
  null
2602
2602
  ), y = G(
2603
- () => e.options.map((v) => ({ value: v.value, label: a(v.label) })),
2603
+ () => e.options.map((S) => ({ value: S.value, label: a(S.label) })),
2604
2604
  [e.options, a]
2605
2605
  ), x = G(() => {
2606
- const v = Array.isArray(r) ? r : [], N = new Set(y.map((M) => M.value));
2607
- return v.filter((M) => N.has(M));
2608
- }, [r, y]), S = (v) => {
2609
- const N = Array.isArray(v) ? v : [];
2610
- return e.required && N.length === 0 ? a("Value required") : Y(m, e, N, a) ?? null;
2606
+ const S = Array.isArray(r) ? r : [], A = new Set(y.map((M) => M.value));
2607
+ return S.filter((M) => A.has(M));
2608
+ }, [r, y]), v = (S) => {
2609
+ const A = Array.isArray(S) ? S : [];
2610
+ return e.required && A.length === 0 ? a("Value required") : Y(m, e, A, a) ?? null;
2611
2611
  }, F = () => {
2612
- if (!d.current) return;
2613
- const v = d.current.getBoundingClientRect();
2614
- p({ x: v.left, y: v.bottom }), f((N) => !N);
2615
- }, I = (v) => {
2616
- const N = x.includes(v) ? x.filter((z) => z !== v) : [...x, v], M = S(N);
2617
- t.current?.(M ?? null), n?.(N, M);
2612
+ if (!p.current) return;
2613
+ const S = p.current.getBoundingClientRect();
2614
+ f({ x: S.left, y: S.bottom }), d((A) => !A);
2615
+ }, R = (S) => {
2616
+ const A = x.includes(S) ? x.filter((z) => z !== S) : [...x, S], M = v(A);
2617
+ t.current?.(M ?? null), n?.(A, M);
2618
2618
  }, w = G(() => ({
2619
2619
  height: "var(--reactaform-input-height, 2.5rem)",
2620
2620
  padding: "var(--reactaform-input-padding, 8px)",
@@ -2627,9 +2627,9 @@ const ct = ({
2627
2627
  border: "1px solid var(--reactaform-border-color, #ccc)",
2628
2628
  background: "var(--reactaform-secondary-bg, #fff)",
2629
2629
  color: "var(--reactaform-text-color, #000)",
2630
- ...l(s, "multiSelect", "control"),
2630
+ ...l(i, "multiSelect", "control"),
2631
2631
  ...l(u, void 0, "control")
2632
- }), [s, u]), j = G(() => ({
2632
+ }), [i, u]), j = G(() => ({
2633
2633
  position: "absolute",
2634
2634
  right: "1.5em",
2635
2635
  top: "50%",
@@ -2640,9 +2640,9 @@ const ct = ({
2640
2640
  fontSize: "0.8em",
2641
2641
  color: "var(--reactaform-text-muted, #999)",
2642
2642
  padding: 0,
2643
- ...l(s, "multiSelect", "clearButton"),
2643
+ ...l(i, "multiSelect", "clearButton"),
2644
2644
  ...l(u, void 0, "clearButton")
2645
- }), [s, u]), E = G(() => ({
2645
+ }), [i, u]), I = G(() => ({
2646
2646
  position: "absolute",
2647
2647
  right: "0.7em",
2648
2648
  top: "50%",
@@ -2650,14 +2650,14 @@ const ct = ({
2650
2650
  pointerEvents: "none",
2651
2651
  fontSize: "0.8em",
2652
2652
  color: "var(--reactaform-text-muted, #999)",
2653
- ...l(s, "multiSelect", "arrow"),
2653
+ ...l(i, "multiSelect", "arrow"),
2654
2654
  ...l(u, void 0, "arrow")
2655
- }), [s, u]);
2655
+ }), [i, u]);
2656
2656
  return /* @__PURE__ */ g.jsxs("div", { children: [
2657
2657
  /* @__PURE__ */ g.jsx(W, { field: e, error: null, children: /* @__PURE__ */ g.jsx("div", { style: { width: "100%" }, children: /* @__PURE__ */ g.jsxs(
2658
2658
  "div",
2659
2659
  {
2660
- ref: d,
2660
+ ref: p,
2661
2661
  className: "reactaform-multiselection-control",
2662
2662
  style: w,
2663
2663
  onClick: F,
@@ -2665,8 +2665,8 @@ const ct = ({
2665
2665
  role: "button",
2666
2666
  "aria-haspopup": "listbox",
2667
2667
  "aria-expanded": c,
2668
- onKeyDown: (v) => {
2669
- (v.key === "Enter" || v.key === " ") && (v.preventDefault(), F());
2668
+ onKeyDown: (S) => {
2669
+ (S.key === "Enter" || S.key === " ") && (S.preventDefault(), F());
2670
2670
  },
2671
2671
  children: [
2672
2672
  /* @__PURE__ */ g.jsxs(
@@ -2686,44 +2686,44 @@ const ct = ({
2686
2686
  {
2687
2687
  type: "button",
2688
2688
  "aria-label": "Clear selections",
2689
- onClick: (v) => {
2690
- v.stopPropagation(), n?.([], null);
2689
+ onClick: (S) => {
2690
+ S.stopPropagation(), n?.([], null);
2691
2691
  },
2692
2692
  style: j,
2693
2693
  children: /* @__PURE__ */ g.jsx("span", { style: j, "aria-hidden": !0, children: "✖" })
2694
2694
  }
2695
2695
  ),
2696
- /* @__PURE__ */ g.jsx("span", { style: E, "aria-hidden": !0, children: "▼" })
2696
+ /* @__PURE__ */ g.jsx("span", { style: I, "aria-hidden": !0, children: "▼" })
2697
2697
  ]
2698
2698
  }
2699
2699
  ) }) }),
2700
2700
  c && b && /* @__PURE__ */ g.jsx(
2701
- mt,
2701
+ ft,
2702
2702
  {
2703
2703
  position: b,
2704
2704
  options: y,
2705
2705
  selectedValues: x,
2706
- onToggleOption: I,
2707
- onClose: () => f(!1),
2708
- controlRef: d,
2709
- darkMode: i
2706
+ onToggleOption: R,
2707
+ onClose: () => d(!1),
2708
+ controlRef: p,
2709
+ darkMode: s
2710
2710
  }
2711
2711
  )
2712
2712
  ] });
2713
- }, mt = ({
2713
+ }, ft = ({
2714
2714
  position: e,
2715
2715
  options: r,
2716
2716
  selectedValues: n,
2717
2717
  onToggleOption: o,
2718
2718
  onClose: t,
2719
2719
  controlRef: a,
2720
- darkMode: i
2720
+ darkMode: s
2721
2721
  }) => {
2722
- const s = k(null), [u, m] = T(-1), { formStyle: l, fieldStyle: d } = D(), c = (j, E, v) => {
2723
- if (!E) return {};
2724
- const M = j?.[E];
2725
- return (v && M ? M[v] : void 0) ?? {};
2726
- }, f = G(() => ({
2722
+ const i = k(null), [u, m] = D(-1), { formStyle: l, fieldStyle: p } = T(), c = (j, I, S) => {
2723
+ if (!I) return {};
2724
+ const M = j?.[I];
2725
+ return (S && M ? M[S] : void 0) ?? {};
2726
+ }, d = G(() => ({
2727
2727
  maxHeight: 200,
2728
2728
  overflowY: "auto",
2729
2729
  background: "var(--reactaform-secondary-bg, #fff)",
@@ -2735,8 +2735,8 @@ const ct = ({
2735
2735
  color: "var(--reactaform-text-color, #000)",
2736
2736
  fontSize: "var(--reactaform-popup-font-size, 0.875rem)",
2737
2737
  ...c(l, "multiSelect", "popup"),
2738
- ...c(d, void 0, "popup")
2739
- }), [l, d]), b = G(() => ({
2738
+ ...c(p, void 0, "popup")
2739
+ }), [l, p]), b = G(() => ({
2740
2740
  padding: "6px 8px",
2741
2741
  cursor: "pointer",
2742
2742
  display: "flex",
@@ -2744,40 +2744,40 @@ const ct = ({
2744
2744
  background: "transparent",
2745
2745
  color: "var(--reactaform-text-color, #000)",
2746
2746
  ...c(l, "multiSelect", "option"),
2747
- ...c(d, void 0, "option")
2748
- }), [l, d]);
2747
+ ...c(p, void 0, "option")
2748
+ }), [l, p]);
2749
2749
  C(() => {
2750
- const j = (E) => {
2751
- const v = E.target;
2752
- !s.current?.contains(v) && !a.current?.contains(v) && t();
2750
+ const j = (I) => {
2751
+ const S = I.target;
2752
+ !i.current?.contains(S) && !a.current?.contains(S) && t();
2753
2753
  };
2754
2754
  return document.addEventListener("mousedown", j), () => document.removeEventListener("mousedown", j);
2755
2755
  }, [t, a]), C(() => {
2756
- s.current && r.length > 0 && requestAnimationFrame(() => m((j) => j === -1 ? 0 : j));
2756
+ i.current && r.length > 0 && requestAnimationFrame(() => m((j) => j === -1 ? 0 : j));
2757
2757
  }, [r.length]), C(() => {
2758
- if (!s.current || u < 0) return;
2759
- const j = s.current.querySelector(`#multi-opt-${u}`);
2758
+ if (!i.current || u < 0) return;
2759
+ const j = i.current.querySelector(`#multi-opt-${u}`);
2760
2760
  j && requestAnimationFrame(() => j.focus());
2761
2761
  }, [u]);
2762
- const p = 250, y = 200, [x, S] = T(
2762
+ const f = 250, y = 200, [x, v] = D(
2763
2763
  null
2764
- ), [F, I] = T(null);
2764
+ ), [F, R] = D(null);
2765
2765
  if (C(() => {
2766
2766
  if (typeof window > "u") return;
2767
2767
  const j = () => {
2768
- let N = e.x, M = e.y, z = p;
2768
+ let A = e.x, M = e.y, z = f;
2769
2769
  const L = a?.current;
2770
2770
  if (L) {
2771
2771
  const J = L.getBoundingClientRect();
2772
- N = J.left, M = J.bottom, z = Math.max(80, Math.round(J.width));
2772
+ A = J.left, M = J.bottom, z = Math.max(80, Math.round(J.width));
2773
2773
  }
2774
- N = Math.min(N, window.innerWidth - z), M = Math.min(M, window.innerHeight - y), S({ left: N, top: M }), I(z);
2774
+ A = Math.min(A, window.innerWidth - z), M = Math.min(M, window.innerHeight - y), v({ left: A, top: M }), R(z);
2775
2775
  };
2776
2776
  j(), window.addEventListener("scroll", j, !0), window.addEventListener("resize", j);
2777
- let E = null;
2778
- const v = a?.current;
2779
- return typeof ResizeObserver < "u" && v && (E = new ResizeObserver(() => j()), E.observe(v)), () => {
2780
- window.removeEventListener("scroll", j, !0), window.removeEventListener("resize", j), E && v && E.unobserve(v);
2777
+ let I = null;
2778
+ const S = a?.current;
2779
+ return typeof ResizeObserver < "u" && S && (I = new ResizeObserver(() => j()), I.observe(S)), () => {
2780
+ window.removeEventListener("scroll", j, !0), window.removeEventListener("resize", j), I && S && I.unobserve(S);
2781
2781
  };
2782
2782
  }, [a, e.x, e.y]), typeof window > "u") return null;
2783
2783
  let w = document.getElementById("popup-root");
@@ -2785,27 +2785,27 @@ const ct = ({
2785
2785
  /* @__PURE__ */ g.jsx(
2786
2786
  "div",
2787
2787
  {
2788
- ref: s,
2788
+ ref: i,
2789
2789
  role: "listbox",
2790
2790
  "aria-activedescendant": u >= 0 ? `multi-opt-${u}` : void 0,
2791
2791
  style: {
2792
2792
  position: "absolute",
2793
2793
  top: x ? x.top : e.y,
2794
2794
  left: x ? x.left : e.x,
2795
- width: F ?? p,
2795
+ width: F ?? f,
2796
2796
  // spread the static popup styles
2797
- ...f
2797
+ ...d
2798
2798
  },
2799
- "data-reactaform-theme": i ? "dark" : "light",
2800
- children: r.map((j, E) => {
2801
- const v = n.includes(j.value), N = i ? "var(--reactaform-hover-bg, rgba(255,255,255,0.01))" : "var(--reactaform-hover-bg, #eee)", M = {
2799
+ "data-reactaform-theme": s ? "dark" : "light",
2800
+ children: r.map((j, I) => {
2801
+ const S = n.includes(j.value), A = s ? "var(--reactaform-hover-bg, rgba(255,255,255,0.01))" : "var(--reactaform-hover-bg, #eee)", M = {
2802
2802
  ...b,
2803
- background: E === u ? N : b.background
2803
+ background: I === u ? A : b.background
2804
2804
  };
2805
2805
  return /* @__PURE__ */ g.jsxs(
2806
2806
  "div",
2807
2807
  {
2808
- id: `multi-opt-${E}`,
2808
+ id: `multi-opt-${I}`,
2809
2809
  onMouseDown: (z) => {
2810
2810
  z.stopPropagation(), o(j.value);
2811
2811
  },
@@ -2833,29 +2833,29 @@ const ct = ({
2833
2833
  break;
2834
2834
  }
2835
2835
  },
2836
- tabIndex: E === u ? 0 : -1,
2836
+ tabIndex: I === u ? 0 : -1,
2837
2837
  role: "option",
2838
- "aria-selected": v,
2838
+ "aria-selected": S,
2839
2839
  style: M,
2840
2840
  onMouseEnter: (z) => {
2841
- z.currentTarget.style.background = N, m(E);
2841
+ z.currentTarget.style.background = A, m(I);
2842
2842
  },
2843
2843
  onMouseLeave: (z) => {
2844
- z.currentTarget.style.background = "transparent", m((L) => L === E ? -1 : L);
2844
+ z.currentTarget.style.background = "transparent", m((L) => L === I ? -1 : L);
2845
2845
  },
2846
2846
  children: [
2847
2847
  /* @__PURE__ */ g.jsx(
2848
2848
  "input",
2849
2849
  {
2850
2850
  type: "checkbox",
2851
- checked: v,
2851
+ checked: S,
2852
2852
  readOnly: !0,
2853
2853
  style: {
2854
2854
  marginRight: 8,
2855
2855
  width: "1.125em",
2856
2856
  height: "1.125em",
2857
2857
  verticalAlign: "middle",
2858
- accentColor: i ? "#10b981" : "#22c55e",
2858
+ accentColor: s ? "#10b981" : "#22c55e",
2859
2859
  cursor: "pointer"
2860
2860
  }
2861
2861
  }
@@ -2870,41 +2870,41 @@ const ct = ({
2870
2870
  ),
2871
2871
  w
2872
2872
  );
2873
- }, ft = ({
2873
+ }, dt = ({
2874
2874
  field: e,
2875
2875
  value: r,
2876
2876
  onChange: n,
2877
2877
  onError: o
2878
2878
  }) => {
2879
- const { t, definitionName: a } = D(), i = A.useRef(null), s = e.min ?? void 0, u = e.max ?? void 0, m = Math.max(1, Math.round(e.step ?? 1)), l = Z(
2880
- (p) => isNaN(p) ? t("Must be a valid integer") : Number.isInteger(p) ? s !== void 0 && p < s ? t("Must be �?{{1}}", s) : u !== void 0 && p > u ? t("Must be �?{{1}}", u) : Y(a, e, p, t) ?? null : t("Must be an integer"),
2881
- [a, e, t, s, u]
2882
- ), d = k(null), c = k(
2879
+ const { t, definitionName: a } = T(), s = N.useRef(null), i = e.min ?? void 0, u = e.max ?? void 0, m = Math.max(1, Math.round(e.step ?? 1)), l = Z(
2880
+ (f) => isNaN(f) ? t("Must be a valid integer") : Number.isInteger(f) ? i !== void 0 && f < i ? t("Must be �?{{1}}", i) : u !== void 0 && f > u ? t("Must be �?{{1}}", u) : Y(a, e, f, t) ?? null : t("Must be an integer"),
2881
+ [a, e, t, i, u]
2882
+ ), p = k(null), c = k(
2883
2883
  o
2884
2884
  );
2885
2885
  C(() => {
2886
2886
  c.current = o;
2887
2887
  }, [o]), C(() => {
2888
- if (document.activeElement === i.current) return;
2888
+ if (document.activeElement === s.current) return;
2889
2889
  const y = String(r), x = l(r);
2890
- i.current && (i.current.value = y), x !== d.current && (d.current = x, c.current?.(x ?? null));
2890
+ s.current && (s.current.value = y), x !== p.current && (p.current = x, c.current?.(x ?? null));
2891
2891
  }, [r, l]);
2892
- const f = (p) => {
2893
- if (p.trim() === "") return e.required ? t("Value required") : null;
2894
- const x = Number(p);
2892
+ const d = (f) => {
2893
+ if (f.trim() === "") return e.required ? t("Value required") : null;
2894
+ const x = Number(f);
2895
2895
  return l(x);
2896
- }, b = (p) => {
2897
- const y = p.target.value, x = p.target.valueAsNumber, S = f(y);
2898
- n?.(x, S);
2896
+ }, b = (f) => {
2897
+ const y = f.target.value, x = f.target.valueAsNumber, v = d(y);
2898
+ n?.(x, v);
2899
2899
  };
2900
- return /* @__PURE__ */ g.jsx(W, { field: e, error: f(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
2900
+ return /* @__PURE__ */ g.jsx(W, { field: e, error: d(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
2901
2901
  "input",
2902
2902
  {
2903
- ref: i,
2903
+ ref: s,
2904
2904
  id: e.name,
2905
2905
  type: "number",
2906
2906
  defaultValue: String(r ?? ""),
2907
- min: s,
2907
+ min: i,
2908
2908
  max: u,
2909
2909
  step: m,
2910
2910
  onChange: b,
@@ -2912,15 +2912,15 @@ const ct = ({
2912
2912
  className: $.input
2913
2913
  }
2914
2914
  ) });
2915
- }, dt = ({
2915
+ }, pt = ({
2916
2916
  field: e,
2917
2917
  value: r,
2918
2918
  onChange: n,
2919
2919
  onError: o
2920
2920
  }) => {
2921
- const { t } = D(), a = A.useRef(null), { definitionName: i } = D(), s = Z(
2922
- (d) => {
2923
- const c = String(d ?? "").trim();
2921
+ const { t } = T(), a = N.useRef(null), { definitionName: s } = T(), i = Z(
2922
+ (p) => {
2923
+ const c = String(p ?? "").trim();
2924
2924
  if (c === "")
2925
2925
  return e.required ? t("Value required") : null;
2926
2926
  if (e.pattern)
@@ -2932,74 +2932,74 @@ const ct = ({
2932
2932
  );
2933
2933
  } catch {
2934
2934
  }
2935
- return Y(i, e, c, t);
2935
+ return Y(s, e, c, t);
2936
2936
  },
2937
- [i, e, t]
2937
+ [s, e, t]
2938
2938
  ), u = k(null), m = k(o);
2939
2939
  C(() => {
2940
2940
  m.current = o;
2941
2941
  }, [o]), C(() => {
2942
- const d = String(r ?? ""), c = s(d);
2943
- a.current && a.current.value !== String(d) && (a.current.value = String(d)), c !== u.current && (u.current = c, m.current?.(c ?? null));
2944
- }, [r, s]);
2945
- const l = (d) => {
2946
- const c = d.target.value, f = c.trim();
2942
+ const p = String(r ?? ""), c = i(p);
2943
+ a.current && a.current.value !== String(p) && (a.current.value = String(p)), c !== u.current && (u.current = c, m.current?.(c ?? null));
2944
+ }, [r, i]);
2945
+ const l = (p) => {
2946
+ const c = p.target.value, d = c.trim();
2947
2947
  let b = null;
2948
- if (f === "") {
2948
+ if (d === "") {
2949
2949
  b = e.required ? t("Value required") : null, n?.(c, b);
2950
2950
  return;
2951
2951
  }
2952
- !b && e.pattern && !new RegExp(e.pattern).test(f) && (b = t("Phone number does not match pattern: {{1}}", `${e.pattern}`)), n?.(c, b);
2952
+ !b && e.pattern && !new RegExp(e.pattern).test(d) && (b = t("Phone number does not match pattern: {{1}}", `${e.pattern}`)), n?.(c, b);
2953
2953
  };
2954
- return /* @__PURE__ */ g.jsx(W, { field: e, error: s(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
2954
+ return /* @__PURE__ */ g.jsx(W, { field: e, error: i(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
2955
2955
  "input",
2956
2956
  {
2957
2957
  type: "tel",
2958
2958
  defaultValue: String(r ?? ""),
2959
2959
  ref: a,
2960
2960
  onChange: l,
2961
- className: X($.input, $.textInput)
2961
+ className: K($.input, $.textInput)
2962
2962
  }
2963
2963
  ) });
2964
- }, pt = ({ field: e, value: r, onChange: n, onError: o }) => {
2965
- const { t, definitionName: a } = D(), i = e.layout?.toLowerCase() === "horizontal" ? "row" : "column", s = k(null), u = k(o);
2964
+ }, gt = ({ field: e, value: r, onChange: n, onError: o }) => {
2965
+ const { t, definitionName: a } = T(), s = e.layout?.toLowerCase() === "horizontal" ? "row" : "column", i = k(null), u = k(o);
2966
2966
  C(() => {
2967
2967
  u.current = o;
2968
2968
  }, [o]);
2969
2969
  const m = Z(
2970
- (d) => d === "" || d === null || d === void 0 ? t("Value required") : !e.options || e.options.length === 0 ? null : e.options.some((f) => f.value === d) ? Y(a, e, d, t) ?? null : t("Invalid option selected"),
2970
+ (p) => p === "" || p === null || p === void 0 ? t("Value required") : !e.options || e.options.length === 0 ? null : e.options.some((d) => d.value === p) ? Y(a, e, p, t) ?? null : t("Invalid option selected"),
2971
2971
  [e, t, a]
2972
2972
  );
2973
2973
  C(() => {
2974
- const d = r != null ? String(r) : "", c = m(d);
2975
- if (u.current?.(c ?? null), s.current) {
2976
- const f = Array.from(
2977
- s.current.querySelectorAll("input[type=radio]")
2974
+ const p = r != null ? String(r) : "", c = m(p);
2975
+ if (u.current?.(c ?? null), i.current) {
2976
+ const d = Array.from(
2977
+ i.current.querySelectorAll("input[type=radio]")
2978
2978
  );
2979
2979
  if (c && e.options && e.options.length > 0) {
2980
2980
  const b = String(e.options[0].value);
2981
- f.forEach((p) => p.checked = p.value === b), n?.(b, null);
2981
+ d.forEach((f) => f.checked = f.value === b), n?.(b, null);
2982
2982
  } else
2983
- f.forEach((b) => b.checked = b.value === d);
2983
+ d.forEach((b) => b.checked = b.value === p);
2984
2984
  }
2985
2985
  }, [r, m, n, e.options]);
2986
- const l = (d) => {
2987
- const c = d.target.value, f = m(c);
2988
- u.current?.(f ?? null), n?.(c, f);
2986
+ const l = (p) => {
2987
+ const c = p.target.value, d = m(c);
2988
+ u.current?.(d ?? null), n?.(c, d);
2989
2989
  };
2990
2990
  return /* @__PURE__ */ g.jsx(W, { field: e, error: m(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
2991
2991
  "div",
2992
2992
  {
2993
2993
  style: {
2994
2994
  display: "flex",
2995
- flexDirection: i,
2996
- flexWrap: i === "row" ? "wrap" : "nowrap",
2997
- gap: i === "row" ? "12px" : "4px",
2998
- alignItems: i === "row" ? "center" : "flex-start",
2995
+ flexDirection: s,
2996
+ flexWrap: s === "row" ? "wrap" : "nowrap",
2997
+ gap: s === "row" ? "12px" : "4px",
2998
+ alignItems: s === "row" ? "center" : "flex-start",
2999
2999
  width: "100%"
3000
3000
  },
3001
- ref: s,
3002
- children: (e.options ?? []).map((d) => /* @__PURE__ */ g.jsxs(
3001
+ ref: i,
3002
+ children: (e.options ?? []).map((p) => /* @__PURE__ */ g.jsxs(
3003
3003
  "label",
3004
3004
  {
3005
3005
  style: {
@@ -3014,22 +3014,22 @@ const ct = ({
3014
3014
  {
3015
3015
  type: "radio",
3016
3016
  name: e.name,
3017
- value: String(d.value),
3018
- defaultChecked: String(r ?? "") === String(d.value),
3017
+ value: String(p.value),
3018
+ defaultChecked: String(r ?? "") === String(p.value),
3019
3019
  onChange: l
3020
3020
  }
3021
3021
  ),
3022
- t(d.label)
3022
+ t(p.label)
3023
3023
  ]
3024
3024
  },
3025
- String(d.value)
3025
+ String(p.value)
3026
3026
  ))
3027
3027
  }
3028
3028
  ) });
3029
- }, gt = {
3029
+ }, ht = {
3030
3030
  display: "flex",
3031
3031
  gap: 4
3032
- }, ht = {
3032
+ }, bt = {
3033
3033
  cursor: "pointer",
3034
3034
  fontSize: "1.5rem",
3035
3035
  lineHeight: 1,
@@ -3037,91 +3037,150 @@ const ct = ({
3037
3037
  marginRight: "0.25rem",
3038
3038
  userSelect: "none",
3039
3039
  transition: "color 0.12s ease"
3040
- }, bt = ({
3040
+ }, yt = ({
3041
3041
  field: e,
3042
3042
  value: r,
3043
3043
  onChange: n,
3044
3044
  onError: o
3045
3045
  }) => {
3046
- const { t, definitionName: a } = D(), [i, s] = T(null), u = e.max || 5, m = Z(
3046
+ const { t, definitionName: a } = T(), [s, i] = D(null), u = e.max || 5, m = Z(
3047
3047
  (b) => e.required && b === 0 ? t("Value required") : Y(a, e, b, t) ?? null,
3048
3048
  [e, t, a]
3049
- ), l = k(null), d = k(o);
3049
+ ), l = k(null), p = k(o);
3050
3050
  C(() => {
3051
- d.current = o;
3051
+ p.current = o;
3052
3052
  }, [o]), C(() => {
3053
3053
  let b = r || 0;
3054
3054
  r < 0 && (b = 0), r > u && (b = u);
3055
- const p = m(b);
3056
- p !== l.current && (l.current = p, d.current?.(p ?? null));
3055
+ const f = m(b);
3056
+ f !== l.current && (l.current = f, p.current?.(f ?? null));
3057
3057
  }, [r, m, u]);
3058
3058
  const c = (b) => {
3059
- const p = m(b);
3060
- n?.(b, p);
3061
- }, f = (() => {
3059
+ const f = m(b);
3060
+ n?.(b, f);
3061
+ }, d = (() => {
3062
3062
  let b = r || 0;
3063
3063
  return b < 0 && (b = 0), b > u && (b = u), b;
3064
3064
  })();
3065
- return /* @__PURE__ */ g.jsx(W, { field: e, error: m(f), children: /* @__PURE__ */ g.jsx("div", { style: gt, children: (() => {
3066
- const b = e.icon, p = b && String(b).trim() ? String(b) : "★";
3065
+ return /* @__PURE__ */ g.jsx(W, { field: e, error: m(d), children: /* @__PURE__ */ g.jsx("div", { style: ht, children: (() => {
3066
+ const b = e.icon, f = b && String(b).trim() ? String(b) : "★";
3067
3067
  return [...Array(u)].map((y, x) => {
3068
- const S = x < f, I = i !== null && x <= i || S ? "gold" : "lightgray";
3068
+ const v = x < d, R = s !== null && x <= s || v ? "gold" : "lightgray";
3069
3069
  return /* @__PURE__ */ g.jsx(
3070
3070
  "span",
3071
3071
  {
3072
3072
  onClick: () => c(x + 1),
3073
- onMouseEnter: () => s(x),
3074
- onMouseLeave: () => s(null),
3075
- style: { ...ht, color: I },
3073
+ onMouseEnter: () => i(x),
3074
+ onMouseLeave: () => i(null),
3075
+ style: { ...bt, color: R },
3076
3076
  "aria-label": `Rating ${x + 1}`,
3077
3077
  title: t(`${e.displayName} ${x + 1}`),
3078
- children: p
3078
+ children: f
3079
3079
  },
3080
3080
  x
3081
3081
  );
3082
3082
  });
3083
3083
  })() }) });
3084
- }, yt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/;
3085
- function xt(e) {
3086
- return yt.test(e);
3084
+ }, xt = ({
3085
+ field: e,
3086
+ value: r,
3087
+ onChange: n,
3088
+ onError: o
3089
+ }) => {
3090
+ const { t, definitionName: a } = T(), s = N.useRef(null), i = N.useRef(null), u = N.useRef(
3091
+ o
3092
+ );
3093
+ N.useEffect(() => {
3094
+ u.current = o;
3095
+ }, [o]);
3096
+ const m = G(
3097
+ () => e.pattern ? new RegExp(e.pattern) : null,
3098
+ [e.pattern]
3099
+ ), l = N.useCallback(
3100
+ (f) => f === "" ? e.required ? t("Value required") : null : e.minLength !== void 0 && f.length < e.minLength ? t("Must be at least {{1}} characters", e.minLength) : e.maxLength !== void 0 && f.length > e.maxLength ? t("Must be at most {{1}} characters", e.maxLength) : m && !m.test(f) ? t("Input does not match pattern: {{1}}", e.pattern) : Y(a, e, f, t),
3101
+ [e, a, t, m]
3102
+ ), p = (f) => {
3103
+ const y = f.target.value, x = l(y);
3104
+ n?.(y, x);
3105
+ };
3106
+ C(() => {
3107
+ const f = l(r ?? "");
3108
+ s.current && s.current.value !== String(r ?? "") && (s.current.value = String(r ?? "")), f !== i.current && (i.current = f, u.current?.(f ?? null));
3109
+ }, [r, l]);
3110
+ const [c, d] = N.useState(!1), b = () => d((f) => !f);
3111
+ return /* @__PURE__ */ g.jsx(W, { field: e, error: l(String(r ?? "")), children: /* @__PURE__ */ g.jsxs("div", { style: { display: "flex", alignItems: "center", gap: 8, width: "100%" }, children: [
3112
+ /* @__PURE__ */ g.jsx(
3113
+ "input",
3114
+ {
3115
+ id: e.name,
3116
+ type: c ? "text" : "password",
3117
+ defaultValue: String(r ?? ""),
3118
+ ref: s,
3119
+ onChange: p,
3120
+ className: K($.input, $.textInput),
3121
+ style: { flex: 1, minWidth: 0 }
3122
+ }
3123
+ ),
3124
+ /* @__PURE__ */ g.jsx(
3125
+ "button",
3126
+ {
3127
+ type: "button",
3128
+ onClick: b,
3129
+ "aria-label": t(c ? "Hide password" : "Show password"),
3130
+ style: {
3131
+ background: "transparent",
3132
+ border: "none",
3133
+ cursor: "pointer",
3134
+ fontSize: 16,
3135
+ lineHeight: 1,
3136
+ padding: "4px 6px",
3137
+ flexShrink: 0
3138
+ },
3139
+ children: c ? "🙈" : "👁️"
3140
+ }
3141
+ )
3142
+ ] }) });
3143
+ }, vt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/;
3144
+ function wt(e) {
3145
+ return vt.test(e);
3087
3146
  }
3088
- const vt = ({
3147
+ const St = ({
3089
3148
  field: e,
3090
3149
  value: r,
3091
3150
  onChange: n,
3092
3151
  onError: o
3093
3152
  }) => {
3094
- const { t, definitionName: a } = D(), i = k(null), s = k(null), u = A.useCallback(
3153
+ const { t, definitionName: a } = T(), s = k(null), i = k(null), u = N.useCallback(
3095
3154
  (b) => {
3096
- let p = null;
3155
+ let f = null;
3097
3156
  if (b.trim() === "")
3098
3157
  return t("Value required");
3099
- if (!xt(b))
3158
+ if (!wt(b))
3100
3159
  return t("Invalid number");
3101
3160
  const y = Number(b);
3102
- return typeof e.min == "number" && y < e.min ? t("Value should be at least {{1}}", e.min) : typeof e.max == "number" && y > e.max ? t("Value should be at most {{1}}", e.max) : (p || (p = Y(a, e, y, t)), p);
3161
+ return typeof e.min == "number" && y < e.min ? t("Value should be at least {{1}}", e.min) : typeof e.max == "number" && y > e.max ? t("Value should be at most {{1}}", e.max) : (f || (f = Y(a, e, y, t)), f);
3103
3162
  },
3104
3163
  [a, e, t]
3105
3164
  ), m = k(null), l = k(o);
3106
3165
  C(() => {
3107
3166
  l.current = o;
3108
3167
  }, [o]), C(() => {
3109
- const b = String(r), p = u(b);
3110
- s.current && document.activeElement !== s.current && (s.current.value = isNaN(Number(b)) ? String(e.min ?? 0) : String(Number(b))), i.current && document.activeElement !== i.current && (i.current.value = b), p !== m.current && (m.current = p, l.current?.(p ?? null));
3168
+ const b = String(r), f = u(b);
3169
+ i.current && document.activeElement !== i.current && (i.current.value = isNaN(Number(b)) ? String(e.min ?? 0) : String(Number(b))), s.current && document.activeElement !== s.current && (s.current.value = b), f !== m.current && (m.current = f, l.current?.(f ?? null));
3111
3170
  }, [r, u, e.min]);
3112
- const d = e.min ?? 0, c = e.max ?? 100, f = (b) => {
3113
- const p = b.target.value, y = u(p);
3114
- n?.(p, y);
3171
+ const p = e.min ?? 0, c = e.max ?? 100, d = (b) => {
3172
+ const f = b.target.value, y = u(f);
3173
+ n?.(f, y);
3115
3174
  };
3116
3175
  return /* @__PURE__ */ g.jsx(W, { field: e, error: u(String(r ?? "")), children: /* @__PURE__ */ g.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px", width: "100%" }, children: [
3117
3176
  /* @__PURE__ */ g.jsx(
3118
3177
  "input",
3119
3178
  {
3120
- ref: s,
3179
+ ref: i,
3121
3180
  type: "range",
3122
- defaultValue: isNaN(Number(r)) ? String(d) : String(Number(r)),
3123
- onChange: f,
3124
- min: d,
3181
+ defaultValue: isNaN(Number(r)) ? String(p) : String(Number(r)),
3182
+ onChange: d,
3183
+ min: p,
3125
3184
  max: c,
3126
3185
  style: {
3127
3186
  padding: "0px, 0px",
@@ -3134,10 +3193,10 @@ const vt = ({
3134
3193
  /* @__PURE__ */ g.jsx(
3135
3194
  "input",
3136
3195
  {
3137
- ref: i,
3196
+ ref: s,
3138
3197
  type: "text",
3139
3198
  defaultValue: String(r ?? ""),
3140
- onChange: f,
3199
+ onChange: d,
3141
3200
  required: !0,
3142
3201
  style: {
3143
3202
  width: "40px",
@@ -3146,28 +3205,28 @@ const vt = ({
3146
3205
  textAlign: "center",
3147
3206
  flexShrink: 0
3148
3207
  },
3149
- className: X($.input, $.textInput)
3208
+ className: K($.input, $.textInput)
3150
3209
  }
3151
3210
  )
3152
3211
  ] }) });
3153
- }, wt = ({
3212
+ }, Ct = ({
3154
3213
  field: e,
3155
3214
  value: r,
3156
3215
  onChange: n,
3157
3216
  onError: o
3158
3217
  }) => {
3159
- const { t, formStyle: a, fieldStyle: i, definitionName: s } = D(), u = a, m = i, l = (w, j, E) => {
3218
+ const { t, formStyle: a, fieldStyle: s, definitionName: i } = T(), u = a, m = s, l = (w, j, I) => {
3160
3219
  if (!j) return {};
3161
- const v = w?.[j];
3162
- return (E && v ? v[E] : void 0) ?? {};
3163
- }, d = A.useMemo(() => ({
3220
+ const S = w?.[j];
3221
+ return (I && S ? S[I] : void 0) ?? {};
3222
+ }, p = N.useMemo(() => ({
3164
3223
  display: "inline-block",
3165
3224
  position: "relative",
3166
3225
  width: 44,
3167
3226
  height: 24,
3168
3227
  ...l(u, "switch", "label"),
3169
3228
  ...l(m, void 0, "label")
3170
- }), [u, m]), c = A.useMemo(() => ({
3229
+ }), [u, m]), c = N.useMemo(() => ({
3171
3230
  position: "absolute",
3172
3231
  opacity: 0,
3173
3232
  top: 0,
@@ -3180,7 +3239,7 @@ const vt = ({
3180
3239
  // Make hidden input non-interactive to avoid event conflicts
3181
3240
  ...l(u, "switch", "hiddenInput"),
3182
3241
  ...l(m, void 0, "hiddenInput")
3183
- }), [u, m]), f = A.useMemo(() => ({
3242
+ }), [u, m]), d = N.useMemo(() => ({
3184
3243
  position: "absolute",
3185
3244
  cursor: "pointer",
3186
3245
  top: 0,
@@ -3199,7 +3258,7 @@ const vt = ({
3199
3258
  borderColor: "transparent",
3200
3259
  ...l(u, "switch", "slider"),
3201
3260
  ...l(m, void 0, "slider")
3202
- }), [u, m]), b = A.useMemo(() => ({
3261
+ }), [u, m]), b = N.useMemo(() => ({
3203
3262
  position: "absolute",
3204
3263
  height: 16,
3205
3264
  width: 16,
@@ -3211,34 +3270,34 @@ const vt = ({
3211
3270
  boxShadow: "0 1px 3px rgba(0, 0, 0, 0.3)",
3212
3271
  ...l(u, "switch", "knob"),
3213
3272
  ...l(m, void 0, "knob")
3214
- }), [u, m]), p = !!r, y = A.useRef(null), x = A.useRef(o), S = A.useCallback((w) => w ? Y(s, e, w, t) ?? null : e.required ? t("Value required") : null, [e, t, s]), F = () => {
3215
- const w = !p, j = S(w);
3273
+ }), [u, m]), f = !!r, y = N.useRef(null), x = N.useRef(o), v = N.useCallback((w) => w ? Y(i, e, w, t) ?? null : e.required ? t("Value required") : null, [e, t, i]), F = () => {
3274
+ const w = !f, j = v(w);
3216
3275
  n?.(w, j);
3217
3276
  };
3218
- A.useEffect(() => {
3277
+ N.useEffect(() => {
3219
3278
  x.current = o;
3220
- }, [o]), A.useEffect(() => {
3221
- const w = S(p);
3279
+ }, [o]), N.useEffect(() => {
3280
+ const w = v(f);
3222
3281
  w !== y.current && (y.current = w, x.current?.(w ?? null));
3223
- }, [p, e, S]);
3224
- const I = e.name;
3225
- return /* @__PURE__ */ g.jsx(W, { field: e, error: S(p), rightAlign: !1, children: /* @__PURE__ */ g.jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%" }, children: [
3282
+ }, [f, e, v]);
3283
+ const R = e.name;
3284
+ return /* @__PURE__ */ g.jsx(W, { field: e, error: v(f), rightAlign: !1, children: /* @__PURE__ */ g.jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%" }, children: [
3226
3285
  /* @__PURE__ */ g.jsx(
3227
3286
  "label",
3228
3287
  {
3229
3288
  className: $.label,
3230
- htmlFor: I,
3289
+ htmlFor: R,
3231
3290
  style: { textAlign: "left", justifyContent: "flex-start" },
3232
3291
  children: t(e.displayName)
3233
3292
  }
3234
3293
  ),
3235
- /* @__PURE__ */ g.jsxs("label", { style: d, children: [
3294
+ /* @__PURE__ */ g.jsxs("label", { style: p, children: [
3236
3295
  /* @__PURE__ */ g.jsx(
3237
3296
  "input",
3238
3297
  {
3239
3298
  id: e.name,
3240
3299
  type: "checkbox",
3241
- checked: p,
3300
+ checked: f,
3242
3301
  readOnly: !0,
3243
3302
  "aria-label": t(e.displayName),
3244
3303
  style: c,
@@ -3251,19 +3310,19 @@ const vt = ({
3251
3310
  role: "switch",
3252
3311
  "data-testid": "switch",
3253
3312
  tabIndex: 0,
3254
- "aria-checked": p,
3313
+ "aria-checked": f,
3255
3314
  onClick: F,
3256
3315
  onKeyDown: (w) => {
3257
3316
  (w.key === " " || w.key === "Spacebar" || w.key === "Space" || w.key === "Enter") && (w.preventDefault(), F());
3258
3317
  },
3259
- className: `reactaform-switch ${p ? "active checked on" : ""} `,
3260
- style: p ? { ...f, backgroundColor: "var(--reactaform-switch-on-bg, #22c55e)", borderColor: "var(--reactaform-switch-on-border, #16a34a)" } : f,
3318
+ className: `reactaform-switch ${f ? "active checked on" : ""} `,
3319
+ style: f ? { ...d, backgroundColor: "var(--reactaform-switch-on-bg, #22c55e)", borderColor: "var(--reactaform-switch-on-border, #16a34a)" } : d,
3261
3320
  children: /* @__PURE__ */ g.jsx(
3262
3321
  "span",
3263
3322
  {
3264
3323
  style: {
3265
3324
  ...b,
3266
- transform: p ? "translateX(20px)" : void 0
3325
+ transform: f ? "translateX(20px)" : void 0
3267
3326
  }
3268
3327
  }
3269
3328
  )
@@ -3277,52 +3336,52 @@ const vt = ({
3277
3336
  onChange: n,
3278
3337
  onError: o
3279
3338
  }) => {
3280
- const { t, definitionName: a } = D(), i = A.useRef(null), s = A.useRef(null), u = A.useRef(
3339
+ const { t, definitionName: a } = T(), s = N.useRef(null), i = N.useRef(null), u = N.useRef(
3281
3340
  o
3282
3341
  );
3283
- A.useEffect(() => {
3342
+ N.useEffect(() => {
3284
3343
  u.current = o;
3285
3344
  }, [o]);
3286
3345
  const m = G(
3287
3346
  () => e.pattern ? new RegExp(e.pattern) : null,
3288
3347
  [e.pattern]
3289
- ), l = A.useCallback(
3348
+ ), l = N.useCallback(
3290
3349
  (c) => c.trim() === "" ? e.required ? t("Value required") : null : e.minLength !== void 0 && c.length < e.minLength ? t("Must be at least {{1}} characters", e.minLength) : e.maxLength !== void 0 && c.length > e.maxLength ? t("Must be at most {{1}} characters", e.maxLength) : m && !m.test(c) ? t("Input does not match pattern: {{1}}", e.pattern) : Y(a, e, c, t),
3291
3350
  [e, a, t, m]
3292
- ), d = (c) => {
3293
- const f = c.target.value, b = l(f);
3294
- n?.(f, b);
3351
+ ), p = (c) => {
3352
+ const d = c.target.value, b = l(d);
3353
+ n?.(d, b);
3295
3354
  };
3296
3355
  return C(() => {
3297
3356
  const c = l(r);
3298
- i.current && i.current.value !== String(r ?? "") && (i.current.value = String(r ?? "")), c !== s.current && (s.current = c, u.current?.(c ?? null));
3357
+ s.current && s.current.value !== String(r ?? "") && (s.current.value = String(r ?? "")), c !== i.current && (i.current = c, u.current?.(c ?? null));
3299
3358
  }, [r, l]), /* @__PURE__ */ g.jsx(W, { field: e, error: l(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
3300
3359
  "input",
3301
3360
  {
3302
3361
  id: e.name,
3303
3362
  type: "text",
3304
3363
  defaultValue: String(r ?? ""),
3305
- ref: i,
3306
- onChange: d,
3307
- className: X($.input, $.textInput)
3364
+ ref: s,
3365
+ onChange: p,
3366
+ className: K($.input, $.textInput)
3308
3367
  }
3309
3368
  ) });
3310
- }, St = ({
3369
+ }, jt = ({
3311
3370
  field: e,
3312
3371
  value: r,
3313
3372
  onChange: n,
3314
3373
  onError: o
3315
3374
  }) => {
3316
- const { t, definitionName: a } = D(), i = k(null), s = k(o), u = e.includeSeconds ?? !0;
3375
+ const { t, definitionName: a } = T(), s = k(null), i = k(o), u = e.includeSeconds ?? !0;
3317
3376
  C(() => {
3318
- s.current = o;
3377
+ i.current = o;
3319
3378
  }, [o]);
3320
- const m = A.useCallback((d) => {
3321
- if (!d || d.trim() === "")
3379
+ const m = N.useCallback((p) => {
3380
+ if (!p || p.trim() === "")
3322
3381
  return e.required || e.min || e.max ? t("Value required") : null;
3323
- const c = (p) => {
3324
- const y = p.split(":").map((S) => parseInt(S, 10));
3325
- if (y.some((S) => Number.isNaN(S))) return NaN;
3382
+ const c = (f) => {
3383
+ const y = f.split(":").map((v) => parseInt(v, 10));
3384
+ if (y.some((v) => Number.isNaN(v))) return NaN;
3326
3385
  let x = 0;
3327
3386
  if (y.length === 3)
3328
3387
  x = y[0] * 3600 + y[1] * 60 + y[2];
@@ -3333,26 +3392,26 @@ const vt = ({
3333
3392
  else
3334
3393
  return NaN;
3335
3394
  return x;
3336
- }, f = c(d);
3337
- if (Number.isNaN(f)) return t("Invalid time format");
3395
+ }, d = c(p);
3396
+ if (Number.isNaN(d)) return t("Invalid time format");
3338
3397
  if (e.min && typeof e.min == "string") {
3339
- const p = c(e.min);
3340
- if (!Number.isNaN(p) && f < p)
3398
+ const f = c(e.min);
3399
+ if (!Number.isNaN(f) && d < f)
3341
3400
  return t("Time must be on or after {{1}}", e.min);
3342
3401
  }
3343
3402
  if (e.max && typeof e.max == "string") {
3344
- const p = c(e.max);
3345
- if (!Number.isNaN(p) && f > p)
3403
+ const f = c(e.max);
3404
+ if (!Number.isNaN(f) && d > f)
3346
3405
  return t("Time must be on or before {{1}}", e.max);
3347
3406
  }
3348
- return Y(a, e, d, t) ?? null;
3349
- }, [e, a, t]), l = (d) => {
3350
- const c = d.target.value, f = m(c);
3351
- n?.(c, f);
3407
+ return Y(a, e, p, t) ?? null;
3408
+ }, [e, a, t]), l = (p) => {
3409
+ const c = p.target.value, d = m(c);
3410
+ n?.(c, d);
3352
3411
  };
3353
3412
  return C(() => {
3354
- const d = m(r);
3355
- d !== i.current && (i.current = d, s.current?.(d ?? null));
3413
+ const p = m(r);
3414
+ p !== s.current && (s.current = p, i.current?.(p ?? null));
3356
3415
  }, [r, m]), /* @__PURE__ */ g.jsx(W, { field: e, error: m(r), children: /* @__PURE__ */ g.jsx(
3357
3416
  "input",
3358
3417
  {
@@ -3363,25 +3422,94 @@ const vt = ({
3363
3422
  onChange: l,
3364
3423
  min: typeof e.min == "string" ? e.min : void 0,
3365
3424
  max: typeof e.max == "string" ? e.max : void 0,
3366
- className: X($.input, $.textInput)
3425
+ className: K($.input, $.textInput)
3367
3426
  }
3368
3427
  ) });
3369
- }, he = {};
3370
- function Ct(e, r) {
3428
+ };
3429
+ function kt({
3430
+ pos: e,
3431
+ options: r,
3432
+ onClose: n,
3433
+ onClickOption: o
3434
+ }) {
3435
+ const t = k(null), a = k(!1), s = typeof window < "u" ? document.getElementById("popup-root") || document.body : null;
3436
+ if (C(() => {
3437
+ function d(b) {
3438
+ a.current || b.target.dataset?.popupMenu === "item" || t.current && b.target instanceof Node && !t.current.contains(b.target) && n();
3439
+ }
3440
+ return document.addEventListener("mousedown", d), () => document.removeEventListener("mousedown", d);
3441
+ }, [n]), !s || r === void 0 || r.length === 0 || !e || e.x == null || e.y == null) return null;
3442
+ const i = e.x, u = e.y, m = typeof window < "u" ? window.innerWidth : 1024, l = Math.max(0, m - 160), p = Math.max(0, Math.min(i, l)), c = Math.max(0, u);
3443
+ return Me.createPortal(
3444
+ /* @__PURE__ */ g.jsx(
3445
+ "div",
3446
+ {
3447
+ ref: t,
3448
+ onMouseDown: (d) => {
3449
+ d.stopPropagation();
3450
+ },
3451
+ style: {
3452
+ position: "fixed",
3453
+ top: c,
3454
+ left: p,
3455
+ backgroundColor: "var(--reactaform-primary-bg, #fff)",
3456
+ border: "1px solid var(--reactaform-border-color, #ccc)",
3457
+ borderRadius: "var(--reactaform-border-radius, 4px)",
3458
+ boxShadow: "var(--reactaform-shadow, 0 2px 10px rgba(0,0,0,0.2))",
3459
+ zIndex: 9999,
3460
+ minWidth: "var(--reactaform-menu-min-width, 150px)",
3461
+ pointerEvents: "auto"
3462
+ },
3463
+ children: r.map((d, b) => /* @__PURE__ */ g.jsx(
3464
+ "div",
3465
+ {
3466
+ "data-popup-menu": "item",
3467
+ onMouseDown: (f) => {
3468
+ f.stopPropagation(), a.current = !0;
3469
+ },
3470
+ onClick: (f) => {
3471
+ f.stopPropagation(), f.preventDefault(), o(d), n(), setTimeout(() => {
3472
+ a.current = !1;
3473
+ }, 100);
3474
+ },
3475
+ style: {
3476
+ padding: "var(--reactaform-menu-item-padding, 8px 12px)",
3477
+ cursor: "pointer",
3478
+ fontSize: "var(--reactaform-menu-item-font-size, 0.8em)",
3479
+ borderBottom: b < r.length - 1 ? "1px solid var(--reactaform-border-light, #eee)" : void 0,
3480
+ transition: "background-color 0.15s ease"
3481
+ },
3482
+ onMouseEnter: (f) => {
3483
+ f.currentTarget.style.backgroundColor = "var(--reactaform-hover-bg, #e0e0e0)";
3484
+ },
3485
+ onMouseLeave: (f) => {
3486
+ f.currentTarget.style.backgroundColor = "transparent";
3487
+ },
3488
+ children: d.label
3489
+ },
3490
+ d.label ?? b
3491
+ ))
3492
+ }
3493
+ ),
3494
+ s
3495
+ );
3496
+ }
3497
+ const he = {};
3498
+ function Rt(e, r) {
3371
3499
  if (e in he)
3372
3500
  return;
3373
3501
  const n = Le[e] ?? {}, o = {}, t = {}, a = {};
3374
- for (const [s, u] of Object.entries(n))
3375
- typeof u.factor == "number" && (o[s] = u.factor), t[s] = r(s), a[r(s)] = s;
3376
- const i = Object.keys(n)[0] ?? "";
3502
+ for (const [i, u] of Object.entries(n))
3503
+ typeof u.factor == "number" && (o[i] = u.factor), t[i] = r(i), a[r(i)] = i;
3504
+ const s = Object.keys(n)[0] ?? "";
3377
3505
  he[e] = {
3378
- default: i,
3506
+ default: s,
3379
3507
  factors: o,
3380
3508
  labels: t,
3381
3509
  reverseLabels: a
3382
3510
  };
3383
3511
  }
3384
- function jt(e, r, n) {
3512
+ function Et(e, r, n) {
3385
3513
  if (e === "C") {
3386
3514
  if (r === "F") return n * (9 / 5) + 32;
3387
3515
  if (r === "K") return n + 273.15;
@@ -3394,38 +3522,38 @@ function jt(e, r, n) {
3394
3522
  }
3395
3523
  return n;
3396
3524
  }
3397
- function kt(e, r, n) {
3525
+ function Nt(e, r, n) {
3398
3526
  if (!Number.isFinite(e)) return [];
3399
3527
  if (n === he.temperature)
3400
3528
  return Object.keys(n.labels).map((a) => {
3401
- const i = jt(r, a, e);
3402
- return Number.isFinite(i) ? { label: `${i.toFixed(6)} ${a}`, value: i.toString(), unit: a } : { label: `${String(i)} ${a}`, value: String(i), unit: a };
3529
+ const s = Et(r, a, e);
3530
+ return Number.isFinite(s) ? { label: `${s.toFixed(6)} ${a}`, value: s.toString(), unit: a } : { label: `${String(s)} ${a}`, value: String(s), unit: a };
3403
3531
  });
3404
3532
  const t = n.factors[r];
3405
- return t === void 0 ? [] : Object.entries(n.factors).map(([a, i]) => {
3406
- const s = e / t * i;
3407
- return Number.isFinite(s) ? { label: `${s.toFixed(6)} ${a}`, value: s.toString(), unit: a } : { label: `${String(s)} ${a}`, value: String(s), unit: a };
3533
+ return t === void 0 ? [] : Object.entries(n.factors).map(([a, s]) => {
3534
+ const i = e / t * s;
3535
+ return Number.isFinite(i) ? { label: `${i.toFixed(6)} ${a}`, value: i.toString(), unit: a } : { label: `${String(i)} ${a}`, value: String(i), unit: a };
3408
3536
  });
3409
3537
  }
3410
3538
  function xe(e, r) {
3411
3539
  return e in r.labels ? e : r.reverseLabels && r.reverseLabels[e] ? r.reverseLabels[e] : null;
3412
3540
  }
3413
- const Rt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, Et = ({
3541
+ const It = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, At = ({
3414
3542
  unitFactors: e,
3415
3543
  field: r,
3416
3544
  value: n,
3417
3545
  onChange: o,
3418
3546
  onError: t
3419
3547
  }) => {
3420
- const { t: a, definitionName: i } = D(), s = k(null), u = k(null), m = k(null), [l, d] = T(null), [c, f] = T(null), [b, p] = T(!1), [y, x] = T(null), [S, F] = T([]), I = Z(
3548
+ const { t: a, definitionName: s } = T(), i = k(null), u = k(null), m = k(null), [l, p] = D(null), [c, d] = D(null), [b, f] = D(!1), [y, x] = D(null), [v, F] = D([]), R = Z(
3421
3549
  (P, O) => {
3422
3550
  if (!P || P.trim() === "")
3423
3551
  return r.required ? a("Value required") : null;
3424
- if (!Rt.test(P)) return a("Must be a valid number");
3425
- const h = Y(i, r, [P, O], a);
3552
+ if (!It.test(P)) return a("Must be a valid number");
3553
+ const h = Y(s, r, [P, O], a);
3426
3554
  return h || null;
3427
3555
  },
3428
- [i, r, a]
3556
+ [s, r, a]
3429
3557
  ), w = e.reverseLabels !== void 0 ? e.reverseLabels : Object.fromEntries(
3430
3558
  Object.entries(e.labels).map(([P, O]) => [O, P])
3431
3559
  );
@@ -3434,51 +3562,51 @@ const Rt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, Et = ({
3434
3562
  let O = n[1] ?? e.default;
3435
3563
  O = xe(O, e) || O;
3436
3564
  const h = document.activeElement;
3437
- h === s.current || h === u.current || (s.current && (s.current.value = P), u.current && (u.current.value = O), m.current !== null && (cancelAnimationFrame(m.current), m.current = null), m.current = requestAnimationFrame(() => {
3438
- m.current = null, d(null), f(null);
3565
+ h === i.current || h === u.current || (i.current && (i.current.value = P), u.current && (u.current.value = O), m.current !== null && (cancelAnimationFrame(m.current), m.current = null), m.current = requestAnimationFrame(() => {
3566
+ m.current = null, p(null), d(null);
3439
3567
  }));
3440
3568
  }, [n, e]), C(() => () => {
3441
3569
  m.current !== null && (cancelAnimationFrame(m.current), m.current = null);
3442
3570
  }, []);
3443
- const j = k(null), E = k(
3571
+ const j = k(null), I = k(
3444
3572
  t
3445
3573
  );
3446
3574
  C(() => {
3447
- E.current = t;
3575
+ I.current = t;
3448
3576
  }, [t]), C(() => {
3449
3577
  const P = String(n[0]);
3450
3578
  let O = n[1] ?? e.default;
3451
3579
  O = xe(O, e) || O;
3452
- const h = I(P, O);
3453
- h !== j.current && (j.current = h, E.current?.(h ?? null));
3454
- }, [n, e, I]);
3455
- const v = (P, O, h) => {
3456
- const R = w[O] || O;
3457
- o?.([P, R], h);
3458
- }, N = (P) => {
3459
- const O = P.target.value, h = u.current ? u.current.value : e.default, R = I(O, h);
3460
- d(O), v(O, h, R);
3580
+ const h = R(P, O);
3581
+ h !== j.current && (j.current = h, I.current?.(h ?? null));
3582
+ }, [n, e, R]);
3583
+ const S = (P, O, h) => {
3584
+ const E = w[O] || O;
3585
+ o?.([P, E], h);
3586
+ }, A = (P) => {
3587
+ const O = P.target.value, h = u.current ? u.current.value : e.default, E = R(O, h);
3588
+ p(O), S(O, h, E);
3461
3589
  }, M = (P) => {
3462
- const O = P.target.value, h = s.current ? s.current.value : String(n[0] ?? ""), R = I(h, O);
3463
- f(O), u.current && (u.current.value = O), v(h, O, R);
3590
+ const O = P.target.value, h = i.current ? i.current.value : String(n[0] ?? ""), E = R(h, O);
3591
+ d(O), u.current && (u.current.value = O), S(h, O, E);
3464
3592
  }, z = (P) => {
3465
- const O = s.current ? s.current.value : String(n[0] ?? ""), h = parseFloat(O), R = u.current ? u.current.value : e.default;
3466
- if (I(O, R) || !O.trim() || !Number.isFinite(h))
3593
+ const O = i.current ? i.current.value : String(n[0] ?? ""), h = parseFloat(O), E = u.current ? u.current.value : e.default;
3594
+ if (R(O, E) || !O.trim() || !Number.isFinite(h))
3467
3595
  return;
3468
3596
  const U = P.currentTarget.getBoundingClientRect(), ne = U.left, ae = U.bottom;
3469
3597
  x({ x: ne, y: ae });
3470
- const _ = kt(h, R, e);
3598
+ const _ = Nt(h, E, e);
3471
3599
  if (_.length === 0) {
3472
- F([]), p(!1);
3600
+ F([]), f(!1);
3473
3601
  return;
3474
3602
  }
3475
- F(_), p((V) => !V);
3603
+ F(_), f((V) => !V);
3476
3604
  }, L = (P) => {
3477
3605
  const { value: O, unit: h } = P;
3478
- p(!1), x(null), s.current && (s.current.value = O), u.current && (u.current.value = h), d(O), f(h);
3479
- const R = I(O, h);
3480
- v(O, h, R);
3481
- }, J = String(n[0] ?? ""), ce = xe(n[1] ?? e.default, e) || (n[1] ?? e.default), re = l ?? J, Q = !!I(re, c ?? ce) || !re.trim(), oe = {
3606
+ f(!1), x(null), i.current && (i.current.value = O), u.current && (u.current.value = h), p(O), d(h);
3607
+ const E = R(O, h);
3608
+ S(O, h, E);
3609
+ }, J = String(n[0] ?? ""), ce = xe(n[1] ?? e.default, e) || (n[1] ?? e.default), re = l ?? J, Q = !!R(re, c ?? ce) || !re.trim(), oe = {
3482
3610
  width: "var(--reactaform-unit-btn-width, 2.5em)",
3483
3611
  height: "var(--reactaform-unit-btn-height, 2.5em)",
3484
3612
  padding: "var(--reactaform-unit-btn-padding, 0)",
@@ -3492,16 +3620,16 @@ const Rt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, Et = ({
3492
3620
  alignItems: "center",
3493
3621
  justifyContent: "center"
3494
3622
  };
3495
- return /* @__PURE__ */ g.jsx(W, { field: r, error: I(J, ce), children: /* @__PURE__ */ g.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "var(--reactaform-unit-gap, 8px)", width: "100%" }, children: [
3623
+ return /* @__PURE__ */ g.jsx(W, { field: r, error: R(J, ce), children: /* @__PURE__ */ g.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "var(--reactaform-unit-gap, 8px)", width: "100%" }, children: [
3496
3624
  /* @__PURE__ */ g.jsx(
3497
3625
  "input",
3498
3626
  {
3499
3627
  type: "text",
3500
- ref: s,
3628
+ ref: i,
3501
3629
  defaultValue: String(n[0] ?? ""),
3502
- onChange: N,
3630
+ onChange: A,
3503
3631
  style: { width: "var(--reactaform-unit-input-width, 100px)" },
3504
- className: X($.input, $.textInput)
3632
+ className: K($.input, $.textInput)
3505
3633
  }
3506
3634
  ),
3507
3635
  /* @__PURE__ */ g.jsx(
@@ -3510,7 +3638,7 @@ const Rt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, Et = ({
3510
3638
  ref: u,
3511
3639
  defaultValue: xe(n[1] ?? e.default, e) || (n[1] ?? e.default),
3512
3640
  onChange: M,
3513
- className: X(
3641
+ className: K(
3514
3642
  $.input,
3515
3643
  $.inputSelect
3516
3644
  ),
@@ -3540,13 +3668,13 @@ const Rt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, Et = ({
3540
3668
  )
3541
3669
  }
3542
3670
  ),
3543
- b && S && /* @__PURE__ */ g.jsx(
3544
- ir,
3671
+ b && v && /* @__PURE__ */ g.jsx(
3672
+ kt,
3545
3673
  {
3546
3674
  pos: y,
3547
- options: S,
3675
+ options: v,
3548
3676
  onClose: () => {
3549
- x(null), p(!1);
3677
+ x(null), f(!1);
3550
3678
  },
3551
3679
  onClickOption: L
3552
3680
  }
@@ -3554,13 +3682,13 @@ const Rt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, Et = ({
3554
3682
  ] })
3555
3683
  ] }) });
3556
3684
  };
3557
- function Nt({ field: e, value: r, onChange: n }) {
3558
- const { t: o } = D(), t = e.dimension;
3685
+ function Ft({ field: e, value: r, onChange: n }) {
3686
+ const { t: o } = T(), t = e.dimension;
3559
3687
  if (!t) return null;
3560
- he[t] || Ct(t, o);
3688
+ he[t] || Rt(t, o);
3561
3689
  const a = he[t];
3562
3690
  return a ? /* @__PURE__ */ g.jsx(
3563
- Et,
3691
+ At,
3564
3692
  {
3565
3693
  unitFactors: a,
3566
3694
  field: e,
@@ -3569,47 +3697,62 @@ function Nt({ field: e, value: r, onChange: n }) {
3569
3697
  }
3570
3698
  ) : null;
3571
3699
  }
3572
- const It = /^(https?|ftp|file):\/\/[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]$/i, At = (e) => {
3700
+ const Xe = /^(https?|ftp|file):\/\/[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]$/i, Ze = (e) => {
3573
3701
  try {
3574
3702
  return new URL(e), !0;
3575
3703
  } catch {
3576
3704
  return !1;
3577
3705
  }
3578
- }, Ft = ({
3706
+ }, Mt = ({
3579
3707
  field: e,
3580
3708
  value: r,
3581
3709
  onChange: n,
3582
3710
  onError: o
3583
3711
  }) => {
3584
- const { t, definitionName: a } = D(), i = k(null), s = Z(
3585
- (d) => {
3586
- const c = d.trim();
3587
- return c === "" ? e.required ? t("Value required") : null : !It.test(c) && !At(c) ? t("Must be a valid URL") : Y(a, e, c, t) ?? null;
3712
+ const { t, definitionName: a } = T(), s = k(null), i = Z(
3713
+ (p) => {
3714
+ const c = p.trim();
3715
+ if (c === "")
3716
+ return e.required ? t("Value required") : null;
3717
+ if (!Xe.test(c) && !Ze(c)) {
3718
+ const b = e.allowRelative === !0;
3719
+ let f = !1;
3720
+ if (Xe.test(c) || Ze(c))
3721
+ f = !0;
3722
+ else if (b)
3723
+ try {
3724
+ new URL(c, "http://example.com"), f = !0;
3725
+ } catch {
3726
+ f = !1;
3727
+ }
3728
+ if (!f) return t("Must be a valid URL");
3729
+ }
3730
+ return Y(a, e, c, t) ?? null;
3588
3731
  },
3589
3732
  [a, e, t]
3590
- ), u = (d) => {
3591
- const c = d.target.value, f = s(c);
3592
- n?.(c.trim(), f);
3733
+ ), u = (p) => {
3734
+ const c = p.target.value, d = i(c);
3735
+ n?.(c.trim(), d);
3593
3736
  }, m = k(null), l = k(o);
3594
3737
  return C(() => {
3595
3738
  l.current = o;
3596
3739
  }, [o]), C(() => {
3597
- const d = r ?? "", c = s(d);
3598
- i.current && i.current.value !== String(d) && (i.current.value = String(d)), c !== m.current && (m.current = c, l.current?.(c ?? null));
3599
- }, [r, s]), /* @__PURE__ */ g.jsx(W, { field: e, error: s(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
3740
+ const p = r ?? "", c = i(p);
3741
+ s.current && s.current.value !== String(p) && (s.current.value = String(p)), c !== m.current && (m.current = c, l.current?.(c ?? null));
3742
+ }, [r, i]), /* @__PURE__ */ g.jsx(W, { field: e, error: i(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
3600
3743
  "input",
3601
3744
  {
3602
3745
  id: e.name,
3603
3746
  type: "url",
3604
3747
  defaultValue: String(r ?? ""),
3605
- ref: i,
3748
+ ref: s,
3606
3749
  onChange: u,
3607
3750
  style: { alignItems: "left" },
3608
- className: X($.input, $.textInput),
3751
+ className: K($.input, $.textInput),
3609
3752
  placeholder: "https://example.com"
3610
3753
  }
3611
3754
  ) });
3612
- }, Fe = new we(), Mt = /* @__PURE__ */ new Set([
3755
+ }, Fe = new we(), Ot = /* @__PURE__ */ new Set([
3613
3756
  "checkbox",
3614
3757
  "switch",
3615
3758
  "dropdown",
@@ -3619,46 +3762,47 @@ const It = /^(https?|ftp|file):\/\/[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]
3619
3762
  "stepper",
3620
3763
  "color",
3621
3764
  "rating"
3622
- ]), cr = {
3623
- checkbox: Pr,
3624
- color: qr,
3625
- date: Hr,
3626
- dropdown: Ur,
3627
- email: Yr,
3628
- file: Gr,
3629
- float: tt,
3630
- "float-array": Qr,
3631
- image: ot,
3632
- int: ct,
3633
- "int-array": st,
3634
- "multi-selection": ut,
3635
- multiline: lt,
3636
- phone: dt,
3637
- radio: pt,
3638
- rating: bt,
3639
- separator: Jr,
3640
- slider: vt,
3765
+ ]), lr = {
3766
+ checkbox: _r,
3767
+ color: Br,
3768
+ date: Ur,
3769
+ dropdown: Wr,
3770
+ email: Jr,
3771
+ file: Kr,
3772
+ float: nt,
3773
+ "float-array": et,
3774
+ image: at,
3775
+ int: lt,
3776
+ "int-array": it,
3777
+ "multi-selection": mt,
3778
+ multiline: ut,
3779
+ password: xt,
3780
+ phone: pt,
3781
+ radio: gt,
3782
+ rating: yt,
3783
+ separator: Gr,
3784
+ slider: St,
3641
3785
  string: Ke,
3642
- stepper: ft,
3643
- switch: wt,
3786
+ stepper: dt,
3787
+ switch: Ct,
3644
3788
  text: Ke,
3645
- time: St,
3646
- unit: Nt,
3647
- url: Ft
3789
+ time: jt,
3790
+ unit: Ft,
3791
+ url: Mt
3648
3792
  };
3649
- function lr(e, r, n) {
3650
- if (!n && e in cr) {
3793
+ function ur(e, r, n) {
3794
+ if (!n && e in lr) {
3651
3795
  console.warn(
3652
3796
  `Can't Overwrite Base Component type "${e}".`
3653
3797
  );
3654
3798
  return;
3655
3799
  }
3656
- if (Mt.has(e)) {
3800
+ if (Ot.has(e)) {
3657
3801
  Fe.register(e, r);
3658
3802
  return;
3659
3803
  }
3660
3804
  const o = (t) => {
3661
- const { callback: i, cancel: s } = Cr(
3805
+ const { callback: s, cancel: i } = jr(
3662
3806
  (...u) => {
3663
3807
  const m = t.onChange;
3664
3808
  typeof m == "function" && m(...u);
@@ -3666,31 +3810,31 @@ function lr(e, r, n) {
3666
3810
  200
3667
3811
  );
3668
3812
  return C(() => () => {
3669
- s();
3670
- }, [s]), A.createElement(r, { ...t, onChange: i });
3813
+ i();
3814
+ }, [i]), N.createElement(r, { ...t, onChange: s });
3671
3815
  };
3672
3816
  Fe.register(e, o);
3673
3817
  }
3674
- function on(e, r) {
3675
- lr(e, r, !1);
3818
+ function an(e, r) {
3819
+ ur(e, r, !1);
3676
3820
  }
3677
- function Ot(e) {
3821
+ function $t(e) {
3678
3822
  return Fe.get(e);
3679
3823
  }
3680
- let Xe = !1;
3681
- function ur() {
3682
- Xe || (Object.entries(cr).forEach(([e, r]) => {
3683
- lr(e, r, !0);
3684
- }), Xe = !0);
3824
+ let Qe = !1;
3825
+ function mr() {
3826
+ Qe || (Object.entries(lr).forEach(([e, r]) => {
3827
+ ur(e, r, !0);
3828
+ }), Qe = !0);
3685
3829
  }
3686
- const mr = new we();
3687
- function $t(e, r) {
3688
- mr.register(e, r);
3830
+ const fr = new we();
3831
+ function Vt(e, r) {
3832
+ fr.register(e, r);
3689
3833
  }
3690
- function Vt(e) {
3691
- return mr.get(e);
3834
+ function Dt(e) {
3835
+ return fr.get(e);
3692
3836
  }
3693
- $t(
3837
+ Vt(
3694
3838
  "Preset_AlertSubmitHandler",
3695
3839
  (e, r, n) => {
3696
3840
  const o = {
@@ -3702,12 +3846,12 @@ $t(
3702
3846
  alert(t);
3703
3847
  }
3704
3848
  );
3705
- const fr = A.memo(({ field: e, value: r, handleChange: n, handleError: o }) => {
3706
- const t = Ot(e.type), a = A.useCallback(
3707
- (s, u) => n(e.name, s, u),
3849
+ const dr = N.memo(({ field: e, value: r, handleChange: n, handleError: o }) => {
3850
+ const t = $t(e.type), a = N.useCallback(
3851
+ (i, u) => n(e.name, i, u),
3708
3852
  [n, e.name]
3709
- ), i = A.useCallback(
3710
- (s) => o?.(e.name, s),
3853
+ ), s = N.useCallback(
3854
+ (i) => o?.(e.name, i),
3711
3855
  [o, e.name]
3712
3856
  );
3713
3857
  return t ? /* @__PURE__ */ g.jsx(
@@ -3716,13 +3860,13 @@ const fr = A.memo(({ field: e, value: r, handleChange: n, handleError: o }) => {
3716
3860
  field: e,
3717
3861
  value: r,
3718
3862
  onChange: a,
3719
- onError: i
3863
+ onError: s
3720
3864
  }
3721
3865
  ) : null;
3722
3866
  }, (e, r) => e.field === r.field && e.value === r.value && e.handleChange === r.handleChange && e.handleError === r.handleError);
3723
- fr.displayName = "FieldWrapper";
3724
- const dr = (e, r, n, o) => /* @__PURE__ */ g.jsx(
3725
- fr,
3867
+ dr.displayName = "FieldWrapper";
3868
+ const pr = (e, r, n, o) => /* @__PURE__ */ g.jsx(
3869
+ dr,
3726
3870
  {
3727
3871
  field: e,
3728
3872
  value: r[e.name],
@@ -3730,8 +3874,8 @@ const dr = (e, r, n, o) => /* @__PURE__ */ g.jsx(
3730
3874
  handleError: o
3731
3875
  },
3732
3876
  e.name
3733
- ), pr = A.memo(({ groupName: e, isOpen: r, fields: n, valuesMap: o, handleChange: t, handleError: a, toggleGroup: i, t: s }) => {
3734
- const u = A.useCallback(() => i(e), [i, e]), { formStyle: m, fieldStyle: l } = D(), d = A.useMemo(() => ({
3877
+ ), gr = N.memo(({ groupName: e, isOpen: r, fields: n, valuesMap: o, handleChange: t, handleError: a, toggleGroup: s, t: i }) => {
3878
+ const u = N.useCallback(() => s(e), [s, e]), { formStyle: m, fieldStyle: l } = T(), p = N.useMemo(() => ({
3735
3879
  border: "1px solid var(--reactaform-border-color, #bbb)",
3736
3880
  padding: "var(--reactaform-fieldset-padding, 0.5em)",
3737
3881
  borderRadius: "var(--reactaform-border-radius, 4px)",
@@ -3739,7 +3883,7 @@ const dr = (e, r, n, o) => /* @__PURE__ */ g.jsx(
3739
3883
  // allow per-form overrides if provider exposes them
3740
3884
  ...m?.fieldset || {},
3741
3885
  ...l?.fieldset || {}
3742
- }), [m, l]), c = A.useMemo(() => ({
3886
+ }), [m, l]), c = N.useMemo(() => ({
3743
3887
  fontWeight: "bold",
3744
3888
  cursor: "pointer",
3745
3889
  display: "flex",
@@ -3750,40 +3894,40 @@ const dr = (e, r, n, o) => /* @__PURE__ */ g.jsx(
3750
3894
  ...m?.legend || {},
3751
3895
  ...l?.legend || {}
3752
3896
  }), [m, l]);
3753
- return /* @__PURE__ */ g.jsxs("fieldset", { style: d, children: [
3897
+ return /* @__PURE__ */ g.jsxs("fieldset", { style: p, children: [
3754
3898
  /* @__PURE__ */ g.jsxs("legend", { onClick: u, style: c, children: [
3755
- /* @__PURE__ */ g.jsx("span", { children: s(e) }),
3899
+ /* @__PURE__ */ g.jsx("span", { children: i(e) }),
3756
3900
  /* @__PURE__ */ g.jsx("span", { children: r ? "▼" : "▶" })
3757
3901
  ] }),
3758
- r && n.map((f) => /* @__PURE__ */ g.jsx("div", { children: dr(f, o, t, a) }, f.name))
3902
+ r && n.map((d) => /* @__PURE__ */ g.jsx("div", { children: pr(d, o, t, a) }, d.name))
3759
3903
  ] });
3760
3904
  });
3761
- pr.displayName = "FieldGroup";
3762
- const Tt = (e, r, n, o, t, a, i, s, u) => {
3763
- const m = r.slice(0, s).filter((f) => i[f.name]), d = Or(m).groups, c = [];
3764
- return d.forEach((f) => {
3765
- if (f.name) {
3766
- const b = e[f.name] ?? !0;
3905
+ gr.displayName = "FieldGroup";
3906
+ const zt = (e, r, n, o, t, a, s, i, u) => {
3907
+ const m = r.slice(0, i).filter((d) => s[d.name]), p = $r(m).groups, c = [];
3908
+ return p.forEach((d) => {
3909
+ if (d.name) {
3910
+ const b = e[d.name] ?? !0;
3767
3911
  c.push(
3768
3912
  /* @__PURE__ */ g.jsx(
3769
- pr,
3913
+ gr,
3770
3914
  {
3771
- groupName: f.name,
3915
+ groupName: d.name,
3772
3916
  isOpen: b,
3773
- fields: f.fields,
3917
+ fields: d.fields,
3774
3918
  valuesMap: n,
3775
3919
  handleChange: t,
3776
3920
  handleError: a,
3777
3921
  toggleGroup: u,
3778
3922
  t: o
3779
3923
  },
3780
- f.name
3924
+ d.name
3781
3925
  )
3782
3926
  );
3783
3927
  } else
3784
- f.fields.forEach((b) => c.push(/* @__PURE__ */ g.jsx("div", { children: dr(b, n, t, a) }, b.name)));
3928
+ d.fields.forEach((b) => c.push(/* @__PURE__ */ g.jsx("div", { children: pr(b, n, t, a) }, b.name)));
3785
3929
  }), c;
3786
- }, zt = (e) => {
3930
+ }, Tt = (e) => {
3787
3931
  const r = {};
3788
3932
  return e.forEach((n) => {
3789
3933
  r[n.name] = !1;
@@ -3791,34 +3935,34 @@ const Tt = (e, r, n, o, t, a, i, s, u) => {
3791
3935
  }, Pe = (e, r, n, o) => {
3792
3936
  const t = r[e];
3793
3937
  if (!t?.children) return;
3794
- const a = n[e], i = a != null ? String(a) : "";
3795
- (t.children[i] || []).forEach((u) => {
3938
+ const a = n[e], s = a != null ? String(a) : "";
3939
+ (t.children[s] || []).forEach((u) => {
3796
3940
  o[u] = !0, Pe(u, r, n, o);
3797
3941
  });
3798
- }, gr = (e, r, n) => {
3942
+ }, hr = (e, r, n) => {
3799
3943
  const o = r[e];
3800
3944
  o?.children && Object.values(o.children).flat().forEach((t) => {
3801
- n[t] = !1, gr(t, r, n);
3945
+ n[t] = !1, hr(t, r, n);
3802
3946
  });
3803
- }, Dt = (e, r, n, o) => {
3947
+ }, Lt = (e, r, n, o) => {
3804
3948
  const t = { ...n };
3805
3949
  return e.forEach((a) => {
3806
3950
  (!a.parents || Object.keys(a.parents).length === 0) && (t[a.name] = !0, Pe(a.name, o, r, t));
3807
3951
  }), t;
3808
- }, Lt = (e, r, n, o, t) => {
3952
+ }, Pt = (e, r, n, o, t) => {
3809
3953
  const a = { ...e };
3810
- if (gr(o, r, a), t != null) {
3811
- const i = r[o];
3812
- if (i?.children) {
3813
- const s = String(t);
3814
- (i.children[s] || []).forEach((m) => {
3954
+ if (hr(o, r, a), t != null) {
3955
+ const s = r[o];
3956
+ if (s?.children) {
3957
+ const i = String(t);
3958
+ (s.children[i] || []).forEach((m) => {
3815
3959
  a[m] = !0, Pe(m, r, n, a);
3816
3960
  });
3817
3961
  }
3818
3962
  }
3819
3963
  return a;
3820
3964
  };
3821
- function Pt(e, r, n, o, t) {
3965
+ function _t(e, r, n, o, t) {
3822
3966
  const a = Object.values(t).filter(Boolean);
3823
3967
  if (a.length > 0)
3824
3968
  return {
@@ -3826,34 +3970,34 @@ function Pt(e, r, n, o, t) {
3826
3970
  message: o("Please fix validation errors before submitting."),
3827
3971
  errors: a
3828
3972
  };
3829
- const i = { ...n }, s = [];
3973
+ const s = { ...n }, i = [];
3830
3974
  if (e && Array.isArray(e.properties))
3831
3975
  for (const m of e.properties) {
3832
- const l = m.name, d = i[l];
3833
- if (d == null) continue;
3976
+ const l = m.name, p = s[l];
3977
+ if (p == null) continue;
3834
3978
  const c = m.type;
3835
3979
  try {
3836
- if ((c === "int" || c === "number" || c === "float") && typeof d == "string") {
3837
- const f = Number(String(d).trim());
3838
- isNaN(f) ? s.push(o(`Invalid number format for field ${m.displayName || l}`)) : i[l] = f;
3839
- } else if ((c === "int-array" || c === "float-array") && typeof d == "string") {
3840
- const b = String(d).split(",").map((p) => p.trim()).filter(Boolean).map((p) => {
3841
- const y = Number(p);
3842
- return isNaN(y) ? (s.push(o(`Invalid number "${p}" in array for field ${m.displayName || l}`)), 0) : y;
3980
+ if (c === "int" || c === "number" || c === "float") {
3981
+ const d = Number(String(p).trim());
3982
+ isNaN(d) ? i.push(o(`Invalid number format for field ${m.displayName || l}`)) : s[l] = d;
3983
+ } else if (c === "int-array" || c === "float-array") {
3984
+ const b = String(p).split(",").map((f) => f.trim()).filter(Boolean).map((f) => {
3985
+ const y = Number(f);
3986
+ return isNaN(y) ? (i.push(o(`Invalid number "${f}" in array for field ${m.displayName || l}`)), 0) : y;
3843
3987
  });
3844
- s.length === 0 && (i[l] = b);
3988
+ i.length === 0 && (s[l] = b);
3845
3989
  }
3846
- } catch (f) {
3847
- s.push(o(`Error processing field ${m.displayName || l}: ${f}`));
3990
+ } catch (d) {
3991
+ i.push(o(`Error processing field ${m.displayName || l}: ${d}`));
3848
3992
  }
3849
3993
  }
3850
- if (s.length > 0)
3994
+ if (i.length > 0)
3851
3995
  return {
3852
3996
  success: !1,
3853
3997
  message: o("Data transformation errors occurred."),
3854
- errors: s
3998
+ errors: i
3855
3999
  };
3856
- const u = Er(e, i, o);
4000
+ const u = Nr(e, s, o);
3857
4001
  if (u && u.length > 0)
3858
4002
  return {
3859
4003
  success: !1,
@@ -3861,10 +4005,10 @@ function Pt(e, r, n, o, t) {
3861
4005
  errors: u
3862
4006
  };
3863
4007
  if (e && typeof e.submitHandlerName == "string") {
3864
- const m = Vt(e.submitHandlerName);
4008
+ const m = Dt(e.submitHandlerName);
3865
4009
  if (m)
3866
4010
  try {
3867
- const l = m(e, r?.name ?? null, i, o);
4011
+ const l = m(e, r?.name ?? null, s, o);
3868
4012
  if (l && l.length > 0)
3869
4013
  return {
3870
4014
  success: !1,
@@ -3882,21 +4026,21 @@ function Pt(e, r, n, o, t) {
3882
4026
  return {
3883
4027
  success: !0,
3884
4028
  message: o("Form submitted successfully."),
3885
- data: i
4029
+ data: s
3886
4030
  };
3887
4031
  }
3888
- const _t = ({
4032
+ const qt = ({
3889
4033
  definition: e,
3890
4034
  instance: r,
3891
4035
  chunkSize: n = 50,
3892
4036
  chunkDelay: o = 50
3893
4037
  }) => {
3894
- const { properties: t, displayName: a } = e, i = D(), { t: s, formStyle: u, language: m } = i, l = {
3895
- ...i,
3896
- definitionName: e?.name ?? i.definitionName
3897
- }, [d, c] = T("en"), [f, b] = T([]), [p, y] = T({}), [x, S] = T(
4038
+ const { properties: t, displayName: a } = e, s = T(), { t: i, formStyle: u, language: m } = s, l = {
4039
+ ...s,
4040
+ definitionName: e?.name ?? s.definitionName
4041
+ }, [p, c] = D("en"), [d, b] = D([]), [f, y] = D({}), [x, v] = D(
3898
4042
  {}
3899
- ), [F, I] = T({}), [w, j] = T({}), [E, v] = T({}), [N, M] = T(null), [z, L] = T(null), [J, ce] = T(0), [re, ue] = T(!1), [Q, oe] = T(!1), [P, O] = T(r.name || ""), h = k(r), R = k(!1);
4043
+ ), [F, R] = D({}), [w, j] = D({}), [I, S] = D({}), [A, M] = D(null), [z, L] = D(null), [J, ce] = D(0), [re, ue] = D(!1), [Q, oe] = D(!1), [P, O] = D(r.name || ""), h = k(r), E = k(!1);
3900
4044
  C(() => {
3901
4045
  const V = Object.fromEntries(
3902
4046
  t.map((H) => [
@@ -3907,104 +4051,104 @@ const _t = ({
3907
4051
  t.forEach((H) => {
3908
4052
  H.parents && Object.entries(H.parents).forEach(([me, Se]) => {
3909
4053
  const fe = V[me];
3910
- fe && Se.forEach((hr) => {
4054
+ fe && Se.forEach((br) => {
3911
4055
  fe.children || (fe.children = {});
3912
- const _e = String(hr);
4056
+ const _e = String(br);
3913
4057
  fe.children[_e] = [
3914
4058
  ...fe.children[_e] || [],
3915
4059
  H.name
3916
4060
  ];
3917
4061
  });
3918
4062
  });
3919
- }), Mr(t, V);
4063
+ }), Or(t, V);
3920
4064
  const q = Object.values(
3921
4065
  V
3922
- ), K = {};
4066
+ ), X = {};
3923
4067
  q.forEach((H) => {
3924
4068
  if (H.type === "unit") {
3925
4069
  const me = typeof H.defaultValue == "number" ? String(H.defaultValue) : "", Se = typeof H.defaultUnit == "string" ? H.defaultUnit : String(H.defaultUnit ?? "m");
3926
- K[H.name] = [me, Se];
4070
+ X[H.name] = [me, Se];
3927
4071
  } else
3928
- K[H.name] = H.defaultValue;
4072
+ X[H.name] = H.defaultValue;
3929
4073
  }), h.current = r, Object.keys(r.values).forEach((H) => {
3930
- V[H] !== void 0 && (K[H] = r.values[H]);
4074
+ V[H] !== void 0 && (X[H] = r.values[H]);
3931
4075
  });
3932
- const ee = zt(q), te = {};
4076
+ const ee = Tt(q), te = {};
3933
4077
  q.forEach((H) => {
3934
4078
  H.group && !(H.group in te) && (te[H.group] = !0);
3935
4079
  });
3936
4080
  const le = requestAnimationFrame(() => {
3937
- b(q), y(V), S(K), I(
3938
- Dt(q, K, ee, V)
4081
+ b(q), y(V), v(X), R(
4082
+ Lt(q, X, ee, V)
3939
4083
  ), j(te), ue(!0), O(r.name);
3940
4084
  });
3941
4085
  return () => cancelAnimationFrame(le);
3942
4086
  }, [t, r, e]), C(() => {
3943
- if (!re || J >= f.length) return;
4087
+ if (!re || J >= d.length) return;
3944
4088
  const V = setTimeout(() => {
3945
4089
  ce(
3946
- (q) => Math.min(q + n, f.length)
4090
+ (q) => Math.min(q + n, d.length)
3947
4091
  );
3948
4092
  }, o);
3949
4093
  return () => clearTimeout(V);
3950
- }, [re, J, f.length, n, o]);
4094
+ }, [re, J, d.length, n, o]);
3951
4095
  const B = Z(
3952
- (V, q, K) => {
3953
- M(null), L(null), S((ee) => {
3954
- const te = { ...ee, [V]: q }, le = p[V];
4096
+ (V, q, X) => {
4097
+ M(null), L(null), v((ee) => {
4098
+ const te = { ...ee, [V]: q }, le = f[V];
3955
4099
  return le && [
3956
4100
  "checkbox",
3957
4101
  "dropdown",
3958
4102
  "multi-select",
3959
4103
  "radio",
3960
4104
  "switch"
3961
- ].includes(le.type) && I(
3962
- (me) => Lt(
4105
+ ].includes(le.type) && R(
4106
+ (me) => Pt(
3963
4107
  me,
3964
- p,
4108
+ f,
3965
4109
  te,
3966
4110
  V,
3967
4111
  String(q)
3968
4112
  )
3969
4113
  ), te;
3970
- }), v((ee) => K ? { ...ee, [V]: K } : Object.fromEntries(Object.entries(ee).filter(([le]) => le !== V)));
4114
+ }), S((ee) => X ? { ...ee, [V]: X } : Object.fromEntries(Object.entries(ee).filter(([le]) => le !== V)));
3971
4115
  },
3972
- [p, M, L]
4116
+ [f, M, L]
3973
4117
  );
3974
4118
  C(() => {
3975
4119
  let V = 0;
3976
4120
  return V = requestAnimationFrame(() => {
3977
- m !== d && (c(m || "en"), M(null), L(null));
4121
+ m !== p && (c(m || "en"), M(null), L(null));
3978
4122
  }), () => cancelAnimationFrame(V);
3979
- }, [m, d]), C(() => {
4123
+ }, [m, p]), C(() => {
3980
4124
  let V = 0;
3981
4125
  return V = requestAnimationFrame(() => {
3982
- if (R.current) {
3983
- R.current = !1, h.current = r, O(r.name || "");
4126
+ if (E.current) {
4127
+ E.current = !1, h.current = r, O(r.name || "");
3984
4128
  return;
3985
4129
  }
3986
4130
  h.current = r, M(null), L(null), O(r.name || "");
3987
4131
  }), () => cancelAnimationFrame(V);
3988
4132
  }, [r, r.name]);
3989
4133
  const U = Z((V, q) => {
3990
- v((K) => q ? { ...K, [V]: String(q) } : Object.fromEntries(Object.entries(K).filter(([te]) => te !== V)));
4134
+ S((X) => q ? { ...X, [V]: String(q) } : Object.fromEntries(Object.entries(X).filter(([te]) => te !== V)));
3991
4135
  }, []), ne = () => {
3992
- R.current = !0;
4136
+ E.current = !0;
3993
4137
  const V = h.current?.name;
3994
4138
  h.current.name = P;
3995
- const q = Pt(e, h.current, x, s, E), K = typeof q.message == "string" ? q.message : String(q.message), ee = Object.values(q.errors ?? {}).join(`
4139
+ const q = _t(e, h.current, x, i, I), X = typeof q.message == "string" ? q.message : String(q.message), ee = Object.values(q.errors ?? {}).join(`
3996
4140
  `);
3997
- M(ee ? K + `
3998
- ` + ee : K), L(q.success), q.success || (h.current.name = V ?? h.current.name, O(V ?? ""));
4141
+ M(ee ? X + `
4142
+ ` + ee : X), L(q.success), q.success || (h.current.name = V ?? h.current.name, O(V ?? ""));
3999
4143
  }, ae = (V) => {
4000
4144
  j((q) => ({ ...q, [V]: !q[V] }));
4001
4145
  }, _ = G(
4002
- () => Object.values(E).some(Boolean),
4003
- [E]
4146
+ () => Object.values(I).some(Boolean),
4147
+ [I]
4004
4148
  );
4005
4149
  return /* @__PURE__ */ g.jsx(Oe.Provider, { value: l, children: /* @__PURE__ */ g.jsxs("div", { style: u.container, children: [
4006
- a && /* @__PURE__ */ g.jsx("h2", { style: u.titleStyle, children: s(a) }),
4007
- N && /* @__PURE__ */ g.jsxs(
4150
+ a && /* @__PURE__ */ g.jsx("h2", { style: u.titleStyle, children: i(a) }),
4151
+ A && /* @__PURE__ */ g.jsxs(
4008
4152
  "div",
4009
4153
  {
4010
4154
  role: "status",
@@ -4020,14 +4164,14 @@ const _t = ({
4020
4164
  justifyContent: "space-between"
4021
4165
  },
4022
4166
  children: [
4023
- /* @__PURE__ */ g.jsx("div", { style: { whiteSpace: "pre-wrap", flex: 1 }, children: N }),
4167
+ /* @__PURE__ */ g.jsx("div", { style: { whiteSpace: "pre-wrap", flex: 1 }, children: A }),
4024
4168
  /* @__PURE__ */ g.jsx(
4025
4169
  "button",
4026
4170
  {
4027
4171
  onClick: () => {
4028
4172
  M(null), L(null);
4029
4173
  },
4030
- "aria-label": s("Dismiss"),
4174
+ "aria-label": i("Dismiss"),
4031
4175
  style: {
4032
4176
  marginLeft: 12,
4033
4177
  background: "transparent",
@@ -4044,7 +4188,7 @@ const _t = ({
4044
4188
  }
4045
4189
  ),
4046
4190
  r && /* @__PURE__ */ g.jsx(
4047
- er,
4191
+ tr,
4048
4192
  {
4049
4193
  name: P,
4050
4194
  onChange: (V) => {
@@ -4053,18 +4197,18 @@ const _t = ({
4053
4197
  }
4054
4198
  ),
4055
4199
  /* @__PURE__ */ g.jsxs(g.Fragment, { children: [
4056
- Tt(
4200
+ zt(
4057
4201
  w,
4058
- f,
4202
+ d,
4059
4203
  x,
4060
- s,
4204
+ i,
4061
4205
  B,
4062
4206
  U,
4063
4207
  F,
4064
4208
  J,
4065
4209
  ae
4066
4210
  ),
4067
- J < f.length && /* @__PURE__ */ g.jsx(
4211
+ J < d.length && /* @__PURE__ */ g.jsx(
4068
4212
  "div",
4069
4213
  {
4070
4214
  style: {
@@ -4095,13 +4239,13 @@ const _t = ({
4095
4239
  transition: "opacity 0.2s ease",
4096
4240
  opacity: _ ? "var(--reactaform-button-disabled-opacity, 0.6)" : Q ? "var(--reactaform-button-hover-opacity, 0.9)" : "1"
4097
4241
  },
4098
- children: s("Submit")
4242
+ children: i("Submit")
4099
4243
  }
4100
4244
  )
4101
4245
  ] }) });
4102
4246
  };
4103
- ur();
4104
- const qt = (e, r = !1) => ({
4247
+ mr();
4248
+ const Bt = (e, r = !1) => ({
4105
4249
  container: {
4106
4250
  padding: "var(--reactaform-space-sm, 8px)",
4107
4251
  margin: "0 auto",
@@ -4142,7 +4286,7 @@ const qt = (e, r = !1) => ({
4142
4286
  lineHeight: "1.2",
4143
4287
  textAlign: "left"
4144
4288
  }
4145
- }), Bt = (e, r = !1) => {
4289
+ }), Ht = (e, r = !1) => {
4146
4290
  const n = {
4147
4291
  color: "var(--reactaform-color-text)",
4148
4292
  fontFamily: e?.fontFamily || "var(--reactaform-font-family, inherit)",
@@ -4201,68 +4345,68 @@ const qt = (e, r = !1) => ({
4201
4345
  display: "block"
4202
4346
  }
4203
4347
  };
4204
- }, Ht = ({
4348
+ }, Ut = ({
4205
4349
  children: e,
4206
4350
  definitionName: r = "",
4207
4351
  defaultStyle: n,
4208
4352
  defaultLanguage: o = "en",
4209
4353
  defaultDarkMode: t = !1,
4210
4354
  defaultLocalizeName: a = "",
4211
- className: i = "reactaform-container"
4355
+ className: s = "reactaform-container"
4212
4356
  }) => {
4213
- const s = r, u = a, m = t, l = o, d = G(
4357
+ const i = r, u = a, m = t, l = o, p = G(
4214
4358
  () => n ?? {},
4215
4359
  [n]
4216
- ), [c, f] = T({}), [b, p] = T({}), [y, x] = T({}), [S, F] = T({});
4360
+ ), [c, d] = D({}), [b, f] = D({}), [y, x] = D({}), [v, F] = D({});
4217
4361
  C(() => {
4218
- let v = !0;
4362
+ let S = !0;
4219
4363
  return (async () => {
4220
4364
  if (l === "en") {
4221
- v && (f({}), p({}));
4365
+ S && (d({}), f({}));
4222
4366
  return;
4223
4367
  }
4224
4368
  try {
4225
- const M = await Vr(l), z = M.success ? M.translations : {};
4226
- v && f(z);
4227
- const L = await Tr(l, u), J = L.success ? L.translations : {};
4228
- v && p(J);
4369
+ const M = await Dr(l), z = M.success ? M.translations : {};
4370
+ S && d(z);
4371
+ const L = await zr(l, u), J = L.success ? L.translations : {};
4372
+ S && f(J);
4229
4373
  } catch {
4230
- v && (f({}), p({}));
4374
+ S && (d({}), f({}));
4231
4375
  }
4232
4376
  })(), () => {
4233
- v = !1;
4377
+ S = !1;
4234
4378
  };
4235
4379
  }, [l, u]), C(() => {
4236
- F(qt(d, m)), x(Bt(d, m));
4237
- }, [d, m]);
4238
- const I = G(
4239
- () => Dr(l, c, b),
4380
+ F(Bt(p, m)), x(Ht(p, m));
4381
+ }, [p, m]);
4382
+ const R = G(
4383
+ () => Lr(l, c, b),
4240
4384
  [l, c, b]
4241
4385
  ), w = Z(
4242
- (v, ...N) => I(v, ...N),
4243
- [I]
4386
+ (S, ...A) => R(S, ...A),
4387
+ [R]
4244
4388
  ), j = G(
4245
4389
  () => ({
4246
- definitionName: s,
4390
+ definitionName: i,
4247
4391
  language: l,
4248
4392
  darkMode: m,
4249
- formStyle: S,
4393
+ formStyle: v,
4250
4394
  fieldStyle: y,
4251
4395
  t: w
4252
4396
  }),
4253
- [s, l, m, y, S, w]
4254
- ), E = d?.height ? { height: "100%" } : void 0;
4397
+ [i, l, m, y, v, w]
4398
+ ), I = p?.height ? { height: "100%" } : void 0;
4255
4399
  return /* @__PURE__ */ g.jsx(Oe.Provider, { value: j, children: /* @__PURE__ */ g.jsx(
4256
4400
  "div",
4257
4401
  {
4258
4402
  "data-reactaform-theme": m ? "dark" : "light",
4259
- className: i,
4260
- style: E,
4403
+ className: s,
4404
+ style: I,
4261
4405
  children: e
4262
4406
  }
4263
4407
  ) });
4264
4408
  };
4265
- function Ut(e) {
4409
+ function Wt(e) {
4266
4410
  if (!e || typeof e != "object") return "Definition must be an object";
4267
4411
  const r = e;
4268
4412
  if (!r.name || typeof r.name != "string") return "Definition must include a 'name' string";
@@ -4277,7 +4421,7 @@ function Ut(e) {
4277
4421
  }
4278
4422
  return null;
4279
4423
  }
4280
- async function an(e, r = {}) {
4424
+ async function sn(e, r = {}) {
4281
4425
  const { validateSchema: n = !0 } = r;
4282
4426
  try {
4283
4427
  if (!e || typeof e != "string")
@@ -4295,7 +4439,7 @@ async function an(e, r = {}) {
4295
4439
  };
4296
4440
  }
4297
4441
  if (n) {
4298
- const a = Ut(t);
4442
+ const a = Wt(t);
4299
4443
  if (a)
4300
4444
  return { success: !1, error: `Schema validation failed: ${a}` };
4301
4445
  }
@@ -4304,7 +4448,7 @@ async function an(e, r = {}) {
4304
4448
  return { success: !1, error: `Unexpected error loading definition: ${o instanceof Error ? o.message : "Unknown error"}` };
4305
4449
  }
4306
4450
  }
4307
- function Wt(e, r) {
4451
+ function Yt(e, r) {
4308
4452
  try {
4309
4453
  if (!e)
4310
4454
  return { success: !1, error: "Definition is required" };
@@ -4327,7 +4471,7 @@ function Wt(e, r) {
4327
4471
  };
4328
4472
  }
4329
4473
  }
4330
- function sn(e) {
4474
+ function cn(e) {
4331
4475
  try {
4332
4476
  if (!e)
4333
4477
  return { success: !1, error: "Instance data is required" };
@@ -4351,9 +4495,9 @@ function sn(e) {
4351
4495
  };
4352
4496
  }
4353
4497
  }
4354
- ur();
4355
- function Yt(e) {
4356
- const [r, n] = T(null);
4498
+ mr();
4499
+ function Jt(e) {
4500
+ const [r, n] = D(null);
4357
4501
  return C(() => {
4358
4502
  const o = document.querySelector("[data-reactaform-theme]");
4359
4503
  if (!o) return;
@@ -4361,14 +4505,14 @@ function Yt(e) {
4361
4505
  if (!t) return;
4362
4506
  const a = () => n(t.getAttribute("data-reactaform-theme"));
4363
4507
  a();
4364
- const i = new MutationObserver((s) => {
4365
- for (const u of s)
4508
+ const s = new MutationObserver((i) => {
4509
+ for (const u of i)
4366
4510
  u.type === "attributes" && u.attributeName === "data-reactaform-theme" && a();
4367
4511
  });
4368
- return i.observe(t, { attributes: !0, attributeFilter: ["data-reactaform-theme"] }), () => i.disconnect();
4512
+ return s.observe(t, { attributes: !0, attributeFilter: ["data-reactaform-theme"] }), () => s.disconnect();
4369
4513
  }, [e]), r;
4370
4514
  }
4371
- const cn = ({
4515
+ const ln = ({
4372
4516
  definitionData: e,
4373
4517
  instance: r,
4374
4518
  language: n,
@@ -4376,75 +4520,75 @@ const cn = ({
4376
4520
  darkMode: t,
4377
4521
  style: a
4378
4522
  }) => {
4379
- const i = G(() => {
4523
+ const s = G(() => {
4380
4524
  try {
4381
4525
  return typeof e == "string" ? JSON.parse(e) : e ?? null;
4382
4526
  } catch {
4383
4527
  return null;
4384
4528
  }
4385
- }, [e]), s = { fontSize: "inherit", fontFamily: "inherit", ...a }, u = Yt(), m = t ?? u === "dark", l = n ?? "en";
4529
+ }, [e]), i = { fontSize: "inherit", fontFamily: "inherit", ...a }, u = Jt(), m = t ?? u === "dark", l = n ?? "en";
4386
4530
  if (C(() => {
4387
4531
  let c = document.getElementById("popup-root");
4388
4532
  c || (c = document.createElement("div"), c.id = "popup-root", document.body.appendChild(c));
4389
- }, []), !i)
4533
+ }, []), !s)
4390
4534
  return /* @__PURE__ */ g.jsx("div", { style: { color: "red" }, children: "Error: No form definition provided." });
4391
- let d = r;
4392
- if (!d) {
4393
- const c = Wt(i, i.name);
4535
+ let p = r;
4536
+ if (!p) {
4537
+ const c = Yt(s, s.name);
4394
4538
  if (!c.success || !c.instance)
4395
4539
  return /* @__PURE__ */ g.jsx("div", { style: { color: "red" }, children: "Error: Failed to create instance from definition." });
4396
- d = c.instance;
4540
+ p = c.instance;
4397
4541
  }
4398
4542
  return /* @__PURE__ */ g.jsx(
4399
- Ht,
4543
+ Ut,
4400
4544
  {
4401
- definitionName: i.name,
4402
- defaultStyle: s,
4545
+ definitionName: s.name,
4546
+ defaultStyle: i,
4403
4547
  defaultLanguage: l,
4404
4548
  defaultDarkMode: m,
4405
- defaultLocalizeName: i.localization || "",
4549
+ defaultLocalizeName: s.localization || "",
4406
4550
  className: o,
4407
4551
  children: /* @__PURE__ */ g.jsx(
4408
- _t,
4552
+ qt,
4409
4553
  {
4410
- definition: i,
4411
- instance: d
4554
+ definition: s,
4555
+ instance: p
4412
4556
  }
4413
4557
  )
4414
4558
  }
4415
4559
  );
4416
4560
  };
4417
- function Jt() {
4561
+ function Gt() {
4418
4562
  if (!(typeof document > "u") && !document.getElementById("reactaform-styles"))
4419
4563
  try {
4420
4564
  const e = document.createElement("style");
4421
- e.id = "reactaform-styles", e.textContent = xr, document.head.appendChild(e);
4565
+ e.id = "reactaform-styles", e.textContent = vr, document.head.appendChild(e);
4422
4566
  } catch {
4423
4567
  }
4424
4568
  }
4425
- Jt();
4569
+ Gt();
4426
4570
  export {
4427
4571
  $ as CSS_CLASSES,
4428
- cn as ReactaForm,
4429
- Ht as ReactaFormProvider,
4430
- _t as ReactaFormRenderer,
4572
+ ln as ReactaForm,
4573
+ Ut as ReactaFormProvider,
4574
+ qt as ReactaFormRenderer,
4431
4575
  W as StandardFieldLayout,
4432
- nn as Units,
4433
- X as combineClasses,
4434
- Wt as createInstanceFromDefinition,
4435
- tn as deserializeDefinition,
4436
- en as deserializeInstance,
4437
- Ot as getComponent,
4438
- sn as loadInstance,
4439
- an as loadJsonDefinition,
4440
- on as registerComponent,
4441
- Zt as registerFieldValidationHandler,
4442
- Xt as registerFormValidationHandler,
4443
- $t as registerSubmissionHandler,
4444
- rn as serializeDefinition,
4445
- Qt as serializeInstance,
4446
- Cr as useDebouncedCallback,
4447
- D as useReactaFormContext,
4576
+ on as Units,
4577
+ K as combineClasses,
4578
+ Yt as createInstanceFromDefinition,
4579
+ nn as deserializeDefinition,
4580
+ rn as deserializeInstance,
4581
+ $t as getComponent,
4582
+ cn as loadInstance,
4583
+ sn as loadJsonDefinition,
4584
+ an as registerComponent,
4585
+ Qt as registerFieldValidationHandler,
4586
+ Zt as registerFormValidationHandler,
4587
+ Vt as registerSubmissionHandler,
4588
+ tn as serializeDefinition,
4589
+ en as serializeInstance,
4590
+ jr as useDebouncedCallback,
4591
+ T as useReactaFormContext,
4448
4592
  Y as validateFieldValue,
4449
- Er as validateFormValues
4593
+ Nr as validateFormValues
4450
4594
  };