@webority/ui-elements 0.31.0 → 0.33.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.
@@ -589,6 +589,9 @@ var at = Object.freeze([
589
589
  cancelled: (e) => `${e} was not moved.`,
590
590
  rolledBack: (e, t) => `${e} went back to ${t}.`,
591
591
  locked: (e) => `${e} cannot be moved.`,
592
+ more: (e) => `Show ${e} more`,
593
+ fewer: "Show fewer",
594
+ swipeHint: "Swipe sideways or tap a column",
592
595
  busy: "This card is still saving. Try again in a moment.",
593
596
  failed: Object.freeze({
594
597
  forbidden: "You do not have permission to move this card.",
@@ -597,16 +600,29 @@ var at = Object.freeze([
597
600
  server: "Something went wrong on our side, so the card went back. Try again in a moment.",
598
601
  network: "Could not reach the server, so the card went back. Check your connection and try again."
599
602
  })
600
- }), dt = "[data-wui-column]", ft = "[data-wui-body]", pt = "[data-wui-card]", mt = "[data-wui-count]", ht = "[data-wui-summary]", gt = "[data-wui-empty]", _t = "[data-wui-drop-note]", vt = "[data-wui-live]", yt = "[data-wui-help]", bt = "[data-wui-switch]", xt = "[data-wui-scroller]", St = "[data-wui-collapse]", Ct = "input, select, textarea, [contenteditable=\"\"], [contenteditable=\"true\"], [data-wui-no-drag]", wt = 48, Tt = 16, M = (e) => e.getAttribute("data-wui-column"), Et = (e) => e.getAttribute("data-wui-card"), Dt = (e) => e.hidden || e.hasAttribute("hidden");
601
- function N(e) {
603
+ }), dt = "[data-wui-column]", ft = "[data-wui-body]", pt = "[data-wui-card]", mt = "[data-wui-count]", ht = "[data-wui-summary]", gt = "[data-wui-empty]", _t = "[data-wui-drop-note]", vt = "[data-wui-live]", yt = "[data-wui-help]", bt = "[data-wui-switch]", xt = "[data-wui-scroller]", St = "[data-wui-collapse]", Ct = "[data-wui-more]", wt = "data-wui-visible-limit", Tt = "data-wui-overflow", Et = "input, select, textarea, [contenteditable=\"\"], [contenteditable=\"true\"], [data-wui-no-drag]", Dt = 48, Ot = 16, M = (e) => e.getAttribute("data-wui-column"), N = (e) => e.getAttribute("data-wui-card"), kt = (e) => e.hidden || e.hasAttribute("hidden"), At = (e) => kt(e) || e.hasAttribute(Tt);
604
+ function jt(e) {
605
+ if (e == null || e === "") return null;
606
+ let t = typeof e == "number" ? e : Number(e);
607
+ if (!Number.isInteger(t) || t < 1) throw TypeError(`Unsupported kanban visible limit "${String(e)}". Use a whole number of 1 or more.`);
608
+ return t;
609
+ }
610
+ function Mt(e, t, n, r) {
611
+ let i = /* @__PURE__ */ new Set();
612
+ if (t == null || n) return i;
613
+ let a = 0;
614
+ for (let n of e) r.has(n) || (a < t ? a++ : i.add(n));
615
+ return i;
616
+ }
617
+ function P(e) {
602
618
  let t = (e.getAttribute("aria-label") || e.textContent || "").replace(/\s+/g, " ").trim();
603
- return t.length > 80 ? `${t.slice(0, 79)}…` : t || Et(e) || "Card";
619
+ return t.length > 80 ? `${t.slice(0, 79)}…` : t || N(e) || "Card";
604
620
  }
605
- function Ot(e) {
621
+ function Nt(e) {
606
622
  return e ? `${st}${e}` : null;
607
623
  }
608
- function kt(e, t = globalThis.localStorage) {
609
- let n = Ot(e);
624
+ function Pt(e, t = globalThis.localStorage) {
625
+ let n = Nt(e);
610
626
  if (!n || !t) return {};
611
627
  try {
612
628
  let e = JSON.parse(t.getItem(n) || "null");
@@ -615,18 +631,18 @@ function kt(e, t = globalThis.localStorage) {
615
631
  return {};
616
632
  }
617
633
  }
618
- function At(e, t, n, r = globalThis.localStorage) {
619
- let i = Ot(e);
634
+ function Ft(e, t, n, r = globalThis.localStorage) {
635
+ let i = Nt(e);
620
636
  if (!i || !r) return;
621
637
  let a = {
622
- ...kt(e, r),
638
+ ...Pt(e, r),
623
639
  [t]: !!n
624
640
  };
625
641
  try {
626
642
  r.setItem(i, JSON.stringify({ collapsed: a }));
627
643
  } catch {}
628
644
  }
629
- function jt(e, t) {
645
+ function It(e, t) {
630
646
  if (!ot.includes(e)) throw TypeError(`Unsupported kanban summary format "${String(e)}". Use ${ot.join(", ")}.`);
631
647
  if (t != null && t !== "" && !r.includes(t)) throw TypeError(`Unsupported kanban summary unit "${String(t)}". Use ${r.join(", ")}.`);
632
648
  return e === "currency" ? {
@@ -641,7 +657,7 @@ function jt(e, t) {
641
657
  decimals: 0
642
658
  };
643
659
  }
644
- function Mt(e) {
660
+ function Lt(e) {
645
661
  let t = 0;
646
662
  for (let n of e) {
647
663
  if (n == null || n === "") continue;
@@ -650,11 +666,11 @@ function Mt(e) {
650
666
  }
651
667
  return t;
652
668
  }
653
- var Nt = (e, t) => {
669
+ var Rt = (e, t) => {
654
670
  e && window.WUI?.toast?.(e, { variant: t });
655
- }, Pt = class extends e {
671
+ }, zt = class extends e {
656
672
  constructor() {
657
- super(), this._wired = !1, this._filter = null, this._press = null, this._drag = null, this._kbd = null, this._suppressClick = !1, this._observer = null, this._refreshQueued = !1, this._scrollTimer = 0, this._onPointerMove = (e) => this._pointerMove(e), this._onPointerUp = (e) => this._pointerUp(e), this._onPointerCancel = () => this._endPointer(!1), this._onDocKeyDown = (e) => {
673
+ super(), this._wired = !1, this._filter = null, this._expanded = /* @__PURE__ */ new Set(), this._revealed = /* @__PURE__ */ new Set(), this._press = null, this._drag = null, this._kbd = null, this._suppressClick = !1, this._observer = null, this._refreshQueued = !1, this._scrollTimer = 0, this._onPointerMove = (e) => this._pointerMove(e), this._onPointerUp = (e) => this._pointerUp(e), this._onPointerCancel = () => this._endPointer(!1), this._onDocKeyDown = (e) => {
658
674
  e.key === "Escape" && this._drag && (e.preventDefault(), this._endPointer(!1));
659
675
  }, this._onScroll = () => {
660
676
  clearTimeout(this._scrollTimer), this._scrollTimer = setTimeout(() => this._syncSwitcherFromScroll(), 80);
@@ -694,14 +710,28 @@ var Nt = (e, t) => {
694
710
  this._refreshQueued = !1;
695
711
  let e = this._summaryFormat();
696
712
  for (let t of this._columns()) {
697
- let n = 0, r = [];
698
- for (let e of this._cardsIn(t)) this._filter && (e.hidden = this._filter(e) === !1), !Dt(e) && (n++, r.push(e.getAttribute("data-wui-value")));
699
- let i = String(n);
700
- for (let e of this._countsOf(t)) e.textContent !== i && (e.textContent = i);
701
- let a = t.querySelector(gt);
702
- if (a && (a.hidden = n > 0), e) {
713
+ let n = M(t), r = jt(t.getAttribute(wt)), i = [], a = [];
714
+ for (let e of this._cardsIn(t)) {
715
+ if (this._filter && (e.hidden = this._filter(e) === !1), kt(e)) {
716
+ e.removeAttribute(Tt);
717
+ continue;
718
+ }
719
+ i.push(e), a.push(e.getAttribute("data-wui-value"));
720
+ }
721
+ let o = this._expanded.has(n), s = Mt(i.map(N), r, o, this._revealed);
722
+ for (let e of i) e.toggleAttribute(Tt, s.has(N(e)));
723
+ let c = String(i.length);
724
+ for (let e of this._countsOf(t)) e.textContent !== c && (e.textContent = c);
725
+ let l = t.querySelector(gt);
726
+ if (l && (l.hidden = i.length > 0), e) {
703
727
  let n = t.querySelector(ht);
704
- n && (n.textContent = ie(Mt(r), e));
728
+ n && (n.textContent = ie(Lt(a), e));
729
+ }
730
+ let u = t.querySelector(Ct);
731
+ if (u) {
732
+ u.hidden = r == null || (o ? i.length <= r : s.size === 0), u.setAttribute("aria-expanded", o ? "true" : "false");
733
+ let e = o ? j.fewer : j.more(s.size);
734
+ u.textContent !== e && (u.textContent = e);
705
735
  }
706
736
  }
707
737
  }
@@ -731,13 +761,13 @@ var Nt = (e, t) => {
731
761
  return t ? [...t.children].filter((e) => e.matches(pt)) : [];
732
762
  }
733
763
  _visibleCardsIn(e) {
734
- return this._cardsIn(e).filter((e) => !Dt(e));
764
+ return this._cardsIn(e).filter((e) => !At(e));
735
765
  }
736
766
  _allCards() {
737
767
  return [...this.querySelectorAll(`${ft} > ${pt}`)];
738
768
  }
739
769
  _cardByKey(e) {
740
- return this._allCards().find((t) => Et(t) === e) || null;
770
+ return this._allCards().find((t) => N(t) === e) || null;
741
771
  }
742
772
  _countsOf(e) {
743
773
  let t = M(e), n = [...this.querySelectorAll(bt)].filter((e) => e.getAttribute("data-wui-switch") === t);
@@ -748,7 +778,7 @@ var Nt = (e, t) => {
748
778
  }
749
779
  _summaryFormat() {
750
780
  let e = this.getAttribute("summary-format");
751
- return e ? jt(e, this.getAttribute("summary-unit")) : null;
781
+ return e ? It(e, this.getAttribute("summary-unit")) : null;
752
782
  }
753
783
  _queueRefresh() {
754
784
  this._refreshQueued || (this._refreshQueued = !0, queueMicrotask(() => {
@@ -771,8 +801,12 @@ var Nt = (e, t) => {
771
801
  }));
772
802
  }
773
803
  _canLift(e) {
774
- let t = N(e);
775
- return this.hasAttribute("readonly") || e.hasAttribute("data-wui-locked") ? (this._announce(j.locked(t)), !1) : e.getAttribute("aria-busy") === "true" ? (this._announce(j.busy), Nt(j.busy, "info"), !1) : !0;
804
+ let t = P(e), n = this.hasAttribute("readonly");
805
+ return n || e.hasAttribute("data-wui-locked") ? (this._announce(j.locked(t)), this._fire("wui:kanban:locked", {
806
+ key: N(e),
807
+ card: e,
808
+ reason: n ? "readonly" : "locked"
809
+ }, !0), !1) : e.getAttribute("aria-busy") === "true" ? (this._announce(j.busy), Rt(j.busy, "info"), !1) : !0;
776
810
  }
777
811
  _check(e, t, n) {
778
812
  if (t === n) return {
@@ -802,7 +836,7 @@ var Nt = (e, t) => {
802
836
  };
803
837
  }
804
838
  _markTargets(e, t) {
805
- let n = N(e), r = /* @__PURE__ */ new Map();
839
+ let n = P(e), r = /* @__PURE__ */ new Map();
806
840
  for (let i of this._columns()) {
807
841
  let a = M(i), o = this._check(e, t, a);
808
842
  r.set(a, o), i.setAttribute("data-wui-drop", o.source ? "source" : o.ok ? "ok" : "refused");
@@ -819,12 +853,12 @@ var Nt = (e, t) => {
819
853
  }
820
854
  }
821
855
  async _commit(e, t, n) {
822
- let r = this._columnOf(e), i = M(r), a = this._columnByKey(t), o = N(e);
856
+ let r = this._columnOf(e), i = M(r), a = this._columnByKey(t), o = P(e);
823
857
  if (i === t || !this._canLift(e)) return !1;
824
858
  let s = this._check(e, i, t);
825
- if (!s.ok) return this._announce(s.reason), Nt(s.reason, "info"), !1;
859
+ if (!s.ok) return this._announce(s.reason), Rt(s.reason, "info"), !1;
826
860
  let c = this._cardsIn(a), l = Number.isInteger(n) ? Math.max(0, Math.min(n, c.length)) : c.length, u = {
827
- key: Et(e),
861
+ key: N(e),
828
862
  card: e,
829
863
  from: i,
830
864
  to: t,
@@ -832,21 +866,24 @@ var Nt = (e, t) => {
832
866
  }, d = e.contains(document.activeElement);
833
867
  if (this._controlled()) return this._fire("wui:kanban:move", u), this._announce(j.moved(o, this._titleOf(a))), d && this._refocusSoon(u.key), !0;
834
868
  if (!this._fire("wui:kanban:move", u, !0)) return !1;
835
- let f = {
869
+ let f = a.hasAttribute(wt) && !this._revealed.has(u.key);
870
+ f && this._revealed.add(u.key);
871
+ let p = {
836
872
  parent: e.parentNode,
837
873
  next: e.nextSibling,
838
- column: r
874
+ column: r,
875
+ revealed: f
839
876
  };
840
877
  this._bodyOf(a).insertBefore(e, c[l] || null), d && e.focus(), this.refresh();
841
- let p = a.getAttribute("data-wui-step");
842
- if (p) return this._runStep(e, u, f, p, a.getAttribute("data-wui-step-size"));
843
- let m = this.getAttribute("move-url");
844
- if (!m) return this._announce(j.moved(o, this._titleOf(a))), this._fire("wui:kanban:moved", {
878
+ let m = a.getAttribute("data-wui-step");
879
+ if (m) return this._runStep(e, u, p, m, a.getAttribute("data-wui-step-size"));
880
+ let h = this.getAttribute("move-url");
881
+ if (!h) return this._announce(j.moved(o, this._titleOf(a))), this._fire("wui:kanban:moved", {
845
882
  ...u,
846
883
  result: null
847
884
  }), !0;
848
885
  this._lock(e, !0), this._announce(j.saving(o, this._titleOf(a)));
849
- let h = await fe(m, {
886
+ let g = await fe(h, {
850
887
  method: "POST",
851
888
  body: new URLSearchParams({
852
889
  card: u.key,
@@ -855,24 +892,24 @@ var Nt = (e, t) => {
855
892
  index: String(l)
856
893
  })
857
894
  });
858
- if (this._lock(e, !1), h.kind === "session") return !1;
859
- if (h.ok) {
860
- let t = this._applyFragment(h.html) || e;
861
- return Nt(h.message, "success"), this._announce(j.moved(N(t), this._titleOf(a))), this._fire("wui:kanban:moved", {
895
+ if (this._lock(e, !1), g.kind === "session") return !1;
896
+ if (g.ok) {
897
+ let t = this._applyFragment(g.html) || e;
898
+ return Rt(g.message, "success"), this._announce(j.moved(P(t), this._titleOf(a))), this._fire("wui:kanban:moved", {
862
899
  ...u,
863
900
  card: t,
864
- result: h
901
+ result: g
865
902
  }), !0;
866
903
  }
867
- return this._rollback(e, f), h.kind !== "aborted" && Nt(h.message || j.failed[h.kind] || j.failed.server, "danger"), this._fire("wui:kanban:failed", {
904
+ return this._rollback(e, p), g.kind !== "aborted" && Rt(g.message || j.failed[g.kind] || j.failed.server, "danger"), this._fire("wui:kanban:failed", {
868
905
  ...u,
869
- kind: h.kind,
870
- status: h.status,
871
- message: h.message
906
+ kind: g.kind,
907
+ status: g.status,
908
+ message: g.message
872
909
  }), !1;
873
910
  }
874
911
  async _runStep(e, t, n, r, i) {
875
- let a = N(e), o = this._columnByKey(t.to), s = new URLSearchParams({
912
+ let a = P(e), o = this._columnByKey(t.to), s = new URLSearchParams({
876
913
  card: t.key,
877
914
  from: t.from,
878
915
  to: t.to
@@ -885,7 +922,7 @@ var Nt = (e, t) => {
885
922
  size: i || void 0
886
923
  })).closed;
887
924
  } catch (r) {
888
- return this._lock(e, !1), this._rollback(e, n), r?.name !== "AbortError" && Nt(j.failed.server, "danger"), this._fire("wui:kanban:failed", {
925
+ return this._lock(e, !1), this._rollback(e, n), r?.name !== "AbortError" && Rt(j.failed.server, "danger"), this._fire("wui:kanban:failed", {
889
926
  ...t,
890
927
  kind: "step",
891
928
  status: 0,
@@ -903,7 +940,7 @@ var Nt = (e, t) => {
903
940
  let n = await fe(`${d}${d.includes("?") ? "&" : "?"}${new URLSearchParams({ card: t.key })}`);
904
941
  n.ok && (u = this._applyFragment(n.html) || e);
905
942
  }
906
- return this._lock(u, !1), this._announce(j.moved(N(u), this._titleOf(o))), this._fire("wui:kanban:moved", {
943
+ return this._lock(u, !1), this._announce(j.moved(P(u), this._titleOf(o))), this._fire("wui:kanban:moved", {
907
944
  ...t,
908
945
  card: u,
909
946
  result: l
@@ -914,7 +951,7 @@ var Nt = (e, t) => {
914
951
  }
915
952
  _rollback(e, t) {
916
953
  let n = e.contains(document.activeElement), r = t.next && t.next.parentNode === t.parent ? t.next : null;
917
- t.parent.insertBefore(e, r), n && e.focus(), this.refresh(), this._announce(j.rolledBack(N(e), this._titleOf(t.column)));
954
+ t.revealed && this._revealed.delete(N(e)), t.parent.insertBefore(e, r), n && e.focus(), this.refresh(), this._announce(j.rolledBack(P(e), this._titleOf(t.column)));
918
955
  }
919
956
  _applyFragment(e) {
920
957
  if (!e) return null;
@@ -924,7 +961,7 @@ var Nt = (e, t) => {
924
961
  let n = null;
925
962
  for (let e of [...t.content.querySelectorAll(pt)]) {
926
963
  if (e.closest("template")) continue;
927
- let t = this._cardByKey(Et(e));
964
+ let t = this._cardByKey(N(e));
928
965
  if (!t) continue;
929
966
  let r = t.contains(document.activeElement);
930
967
  t.dispatchEvent(new CustomEvent("wui:teardown", { bubbles: !0 })), t.hidden && (e.hidden = !0), t.replaceWith(e), this._prepareCard(e), r && e.focus(), n ??= e;
@@ -939,7 +976,7 @@ var Nt = (e, t) => {
939
976
  _pointerDown(e) {
940
977
  if (e.button !== 0 || e.isPrimary === !1 || this._drag || this._kbd) return;
941
978
  let t = e.target.closest?.(pt);
942
- if (!t || !this.contains(t) || e.target.closest(Ct)) return;
979
+ if (!t || !this.contains(t) || e.target.closest(Et)) return;
943
980
  let n = {
944
981
  card: t,
945
982
  id: e.pointerId,
@@ -985,7 +1022,7 @@ var Nt = (e, t) => {
985
1022
  dy: n - a.top,
986
1023
  over: null,
987
1024
  verdicts: this._markTargets(r, i)
988
- }, this._announce(j.lifted(N(r), this._titleOf(this._columnOf(r)))), document.addEventListener("keydown", this._onDocKeyDown), this._dragTo(t, n);
1025
+ }, this._announce(j.lifted(P(r), this._titleOf(this._columnOf(r)))), document.addEventListener("keydown", this._onDocKeyDown), this._dragTo(t, n);
989
1026
  }
990
1027
  _dragTo(e, t) {
991
1028
  let n = this._drag;
@@ -1011,10 +1048,10 @@ var Nt = (e, t) => {
1011
1048
  let n = this._scroller();
1012
1049
  if (n) {
1013
1050
  let t = n.getBoundingClientRect();
1014
- t.width > 0 && (e < t.left + wt ? n.scrollBy?.({ left: -16 }) : e > t.right - wt && n.scrollBy?.({ left: Tt }));
1051
+ t.width > 0 && (e < t.left + Dt ? n.scrollBy?.({ left: -16 }) : e > t.right - Dt && n.scrollBy?.({ left: Ot }));
1015
1052
  }
1016
1053
  let r = window.innerHeight || 0;
1017
- r > 0 && (t < wt ? window.scrollBy?.({ top: -16 }) : t > r - wt && window.scrollBy?.({ top: Tt }));
1054
+ r > 0 && (t < Dt ? window.scrollBy?.({ top: -16 }) : t > r - Dt && window.scrollBy?.({ top: Ot }));
1018
1055
  }
1019
1056
  _endPointer(e) {
1020
1057
  let t = this._press, n = this._drag;
@@ -1024,16 +1061,16 @@ var Nt = (e, t) => {
1024
1061
  }, 0);
1025
1062
  let r = n.over;
1026
1063
  if (this._clearTargets(), !e || !r) {
1027
- this._announce(j.cancelled(N(n.card)));
1064
+ this._announce(j.cancelled(P(n.card)));
1028
1065
  return;
1029
1066
  }
1030
1067
  let i = M(r), a = n.verdicts.get(i);
1031
1068
  if (a?.source) {
1032
- this._announce(j.cancelled(N(n.card)));
1069
+ this._announce(j.cancelled(P(n.card)));
1033
1070
  return;
1034
1071
  }
1035
1072
  if (!a?.ok) {
1036
- this._announce(a?.reason), Nt(a?.reason, "info");
1073
+ this._announce(a?.reason), Rt(a?.reason, "info");
1037
1074
  return;
1038
1075
  }
1039
1076
  this._commit(n.card, i, this._indexAt(r, n.y));
@@ -1049,8 +1086,13 @@ var Nt = (e, t) => {
1049
1086
  e && this._setCollapsed(e, !e.hasAttribute("data-collapsed"), !0);
1050
1087
  return;
1051
1088
  }
1052
- let n = e.target.closest?.(bt);
1053
- n && this.contains(n) && this._showColumn(n.getAttribute("data-wui-switch"));
1089
+ let n = e.target.closest?.(Ct);
1090
+ if (n && this.contains(n)) {
1091
+ this._controlled() || this._toggleMore(n.closest(dt));
1092
+ return;
1093
+ }
1094
+ let r = e.target.closest?.(bt);
1095
+ r && this.contains(r) && this._showColumn(r.getAttribute("data-wui-switch"));
1054
1096
  }
1055
1097
  _keyDown(e) {
1056
1098
  if (this._kbd) {
@@ -1070,7 +1112,7 @@ var Nt = (e, t) => {
1070
1112
  from: r,
1071
1113
  target: i.indexOf(n),
1072
1114
  verdicts: this._markTargets(t, r)
1073
- }, t.setAttribute("data-wui-lifted", ""), this.setAttribute("data-wui-dragging", ""), n.setAttribute("data-wui-target", ""), this._announce(j.lifted(N(t), this._titleOf(n)));
1115
+ }, t.setAttribute("data-wui-lifted", ""), this.setAttribute("data-wui-dragging", ""), n.setAttribute("data-wui-target", ""), this._announce(j.lifted(P(t), this._titleOf(n)));
1074
1116
  return;
1075
1117
  }
1076
1118
  case "ArrowDown":
@@ -1106,7 +1148,7 @@ var Nt = (e, t) => {
1106
1148
  let i = n[r];
1107
1149
  i.setAttribute("data-wui-target", ""), this._showColumn(M(i), !1);
1108
1150
  let a = t.verdicts.get(M(i)), o = this._titleOf(i);
1109
- this._announce(a.source ? j.overSource(o) : a.ok ? j.over(o, this._visibleCardsIn(i).length) : j.overRefused(o, a.reason));
1151
+ this._announce(a.source ? j.overSource(o) : a.ok ? j.over(o, this._cardsIn(i).filter((e) => !kt(e)).length) : j.overRefused(o, a.reason));
1110
1152
  return;
1111
1153
  }
1112
1154
  case " ":
@@ -1118,12 +1160,12 @@ var Nt = (e, t) => {
1118
1160
  this._announce(a.reason);
1119
1161
  return;
1120
1162
  }
1121
- this._endKeyboard(), a.source ? this._announce(j.cancelled(N(t.card))) : this._commit(t.card, i);
1163
+ this._endKeyboard(), a.source ? this._announce(j.cancelled(P(t.card))) : this._commit(t.card, i);
1122
1164
  return;
1123
1165
  }
1124
1166
  case "Escape":
1125
1167
  case "Tab":
1126
- e.key === "Escape" && e.preventDefault(), this._endKeyboard(), this._showColumn(t.from, !1), this._announce(j.cancelled(N(t.card)));
1168
+ e.key === "Escape" && e.preventDefault(), this._endKeyboard(), this._showColumn(t.from, !1), this._announce(j.cancelled(P(t.card)));
1127
1169
  return;
1128
1170
  default:
1129
1171
  }
@@ -1133,7 +1175,7 @@ var Nt = (e, t) => {
1133
1175
  this._kbd = null, e && (e.card.removeAttribute("data-wui-lifted"), this.removeAttribute("data-wui-dragging"), this._clearTargets());
1134
1176
  }
1135
1177
  _restoreCollapsed() {
1136
- let e = kt(this.getAttribute("board-id"));
1178
+ let e = Pt(this.getAttribute("board-id"));
1137
1179
  for (let t of this._columns()) {
1138
1180
  let n = M(t);
1139
1181
  t.hasAttribute("data-collapsible") && Object.hasOwn(e, n) && this._setCollapsed(t, e[n], !1);
@@ -1144,11 +1186,18 @@ var Nt = (e, t) => {
1144
1186
  e.toggleAttribute("data-collapsed", t);
1145
1187
  let i = this._titleOf(e);
1146
1188
  for (let n of e.querySelectorAll(St)) n.setAttribute("aria-expanded", t ? "false" : "true"), n.setAttribute("aria-label", t ? j.expand(i) : j.collapse(i));
1147
- n && (At(this.getAttribute("board-id"), r, t), this._fire("wui:kanban:collapse", {
1189
+ n && (Ft(this.getAttribute("board-id"), r, t), this._fire("wui:kanban:collapse", {
1148
1190
  column: r,
1149
1191
  collapsed: t
1150
1192
  }));
1151
1193
  }
1194
+ _toggleMore(e) {
1195
+ if (!e) return;
1196
+ let t = M(e);
1197
+ if (this._expanded.delete(t)) for (let t of this._cardsIn(e)) this._revealed.delete(N(t));
1198
+ else this._expanded.add(t);
1199
+ this.refresh();
1200
+ }
1152
1201
  _isPhone() {
1153
1202
  return typeof matchMedia == "function" && matchMedia("(max-width: 767.98px)").matches;
1154
1203
  }
@@ -1168,20 +1217,20 @@ var Nt = (e, t) => {
1168
1217
  let t = e.clientWidth || 1, n = this._columns()[Math.round(e.scrollLeft / t)];
1169
1218
  if (n) for (let e of this.querySelectorAll(bt)) e.getAttribute("data-wui-switch") === M(n) ? e.setAttribute("aria-current", "true") : e.removeAttribute("aria-current");
1170
1219
  }
1171
- }, Ft = {
1220
+ }, Bt = {
1172
1221
  delete: "data:image/webp;base64,UklGRh4RAABXRUJQVlA4WAoAAAAQAAAAFwEAFwEAQUxQSGwFAAABkFXbbh1JgiAIhmAIZjBhEDOIGcQMqhgkDKoZCEIgCIIh6KO7Xokt6WtWREwAjBxDykvdNjqYWZ42ZqLHVpecIpgbY67b0eSEjR51SmginJYHy+mPR53QMnHZWC7MjyVZJC7UpIONlmgJzFuTjvI2owlwIekwzUF5uJB0m+agNlxIOk8zaizdmwywbUlZuJAMk2fUU1ibDJW3oKNEMuAt6SeRDJpm3SSSgfOsl0QyeJ51kkgUSFEfgUSJW9AFrqLIW1DE0kSVPGshkqiTgwbwJipdcXiJRan8b2x4E8VuYWCJRbWcRoU3Ue86pnCIgjkMaGmi4lZGgzdR8w2HElgUzWEgUxNVt2kYq6h7HQNuovAbDiAcovIjdC+wKJ1D52ITtXPs2txE8W3u2CLKL91aRf1rp1Yx4NqlVUy4dmgVI67dWcWMa2dWMeTalUVMWToyizHnbsRmjRY7EVjM2UIXAotBOXQADzHpgde7iVG3y61i1vVikxh2ulRolmnhQshiWsbr3MS4t8ssYt5ykdDs08I1WAx84BVWMfHtAkmMnE4X2EqMZ9vFzLeTTWLodCpkSzGeaRVT304UxNjxPGwtOk0Wc5eTBLZXw3PcxOD1FEFMHs6w24xOEMXo6XtkNfpaFrOnb7Hd6EtZDJ++w5ajr2QxffoG2Y6+kMT46XO79ehjQcwfPrXbr34I2X4NP5PFActn2APoI0lcMH1i94H7B7D5QMP3sjhheY+8gN4K4ob4TvaD8g75Ab0RxBHxtewJ5TXyBHoJxRXxlewL+ZXdF7ZX2BfaC1GcMT4r3lCekTfQs+YN7UkSd4x/FX8ofz38YfuL/YH/QHFI/DV5xL9f1SPKr4dH/Pw6PIIBAMUlESD5RASYfCIDVJ+oAA+f2ADIJw6A5hMNQJwSo1eE5BUpe0UuXlGqV9TdK7aHW5BXkFsc7BXsF80t5L8v2SuaW7BfHF5B5Ba7V/y4xVa9ohavKNkrcvKKFLwiolcANJ9oAIdPEMDuEz8A1ScqQPaJfwDRJxIA+gQCAHvEAQDw8IifX8Uj6q/JI/79Qo/AX8D+wPDn7g8/fxV/KH9Ff0h/QfOGBk/JG+hZ8YbyLHpDfAbNFxhe3H1heyX7wvwK+gK+AuQJBC8XT5hfQ08IrwH5AcGbxQ/md9APwjtAXkDwdvGC+T1sPtDwPbj7wAYfTD6QPgHkAQwfLR4wfwab/Rg/A9V+G3w42C98Csh6G3w8WS99Dsh2BF9Mtpu/AWQ5hq8my83fAbIbw5eT3eZvAVmN4OvJavF7QDbb4ITBZuEMUC12h1NisxeHc0Cx1wxnJWsxnDZaK5wH7raqcGJkSzGeCZKlJjj33U4bnBzZShzOBslKCc5/t1GFC+JhIYZLhmafFq4BxT4Frnq3zh0ui2wbxutAaJZpAa48WWaCa1e7VLj6bpU7XB4Pmxx4PQhsEQ7Qw9DswQH6GJs1WoReZmtk6GexRYGeVktU6Gu1Q4XeVitU6G+1QYUeVwtU6HPVX4VeF+0V6HdummsZeh5Zby1C3wNrjQP0Phw6OwL0H+8a2xGGWPVVYZRT01WbYJyBNcUBRop3Pd0RBluajlqB8QbW0BFgyFU/d4RBJ9YNJxh32DVzRxj6xFrhBKPHqpM7ggID64MiKDGzLloBPYa7JiqCKsOuBQqgzkgaoAQqzTw6SqDWzCOjBKrNNCpKoN60j4gSqDjsPJZWA6gZM4+DFgRdp72NoN0TKBwz9Y4WBK2HTP2iBUH3IVOPaEGwIOade9K2jGDIuFDrQaMlgkHT8uAr8bZEMCxO9XGcjx/LhGBhTFN9UDtDO7aaI4K5Y8pL3R5EzO0ZMx+0bXXJKSCMHFZQOCCMCwAAMFkAnQEqGAEYAT6RRptJpaQioSdTe3CwEgljbutgKsAxpvoA/gH3oOA/AD9AP4B5AH0AfwDjAP4BAgH4AXEFAH8j8bvJnBn7v8ZunJ8A8E9NOjTsZwkvaf5h/6aedh7DvMZ/L/8x+3Xu+f4/9u/cV6AH8z/4/WWeg7/C/Pl9mD9vf3R9qPVj/PH+v/EvxA8vfwDahtIjeborN0V2zyP+x5anqeNyMw6s+UT419zLmspKSPVTXvvv9O8duu5qNgYynmCdzX6+m+gGQsXKqGqUQXz7rc7RMvsEmkFvX3G7p6+ngJUrQ8JdmTf422mCMhQHvkZ5WnfeYxdpFhTFDtrreFo1Ro04Rzqd7gK/qkdMcQj74nb3rhOMBOhdqQMlWtGiqSIMdain0T+SyxBLcaBrXtfZmls80Hr83t1NCP+R/iuvxJlEpuRblgI2CYtb7iuStaVjiIjBaqbA7dP3IVoAeO3/I/ljBsNTpRQgE+fDHjpseCOEcn34uj5KXR5Ez+RHK8cHuSLgmrSiVvDx/vu2kpze5CnTgyzlvPn4FRIRd9R0NlryX7ASmUy7z494WYljWjm5SJzvu36bfVdDaesHEy9Zqpm6LCk+WjyO9GJKHBSUOqVYUOH5HwBpt5qAilcmGnfZNivSCG4y5rC/Y7FcUEUng4XW/PbJlUC3b5EY8Qv+aPt7VI1E7YCEdL0pKTGDi6hLHQnokp/QcmO4FJqSxhLPZ1WxNFZ83K0T4pgL0OQSjBs59Ud+Q7bnCQypJh1ic9fQbkLKyrhZQR8spCPsbC7sCBpyZmn/F5eEZ3Ql034+DIoSCieVTzs6H/BQci1swB3kc2++Fha33px0W4/fZ2bYkKK5+j2JNHs0Zas1uDW+wq8ILxOS+oA1NuvVN3EXPF1GT/fkI/78ExRmwHJJxGYBkJg8XGBmzYz460i9e5bJzNzfhDdIiRqrHhV8SdPBIoAA/t4CDH/+CeyNwU+/ZgG5itgAbxAWK97fFpIxQUKM/sVjGDgMLxoMi/1LPbECenen6EjayQk+/5pKWLjjyfSC/3Lvs5lKuh6HgMwfJKoSaDe++MCnk3CZ9S7i3+McJhIgnPFCHf4PIsxgrIWS1qaSYLng22IuFhQ7C6UBuJU8sM7GF0V2ibD4RSDhBn+Lm8t+ntbYgT0Ch5oZMKZmIB4N8GogoNDd8cv0xslDDH7y61rO5JMRsfUy4u3hSUdmHJkTZCTmA+LMAZFYNq+SlXgdH0BVEXpjyPvUaL0aUfNXgNk0R96rshl8wS9Ui3nWfnj4oie0DSG719s0/ag8fdCmOjNMtYvFbgQiSHgJSZTQQHD6I2pUyNHwIQiMr3lq4ERnWtULVMfzzdyje6eapJ/Dw7JNdu8Og0+NDmxw2XRG7rTrpNQBsO08I2Yed/+AG5HMc+lHuMUkq+llaO9rQS7RmQENql//oLrVKKomtuqYWjbHhkjFMu/9WYW+l6wArbV1NERdM/CTO/Dyn8VrbYrX9m+4PHa25PT/PHVfwEjFRm1azjES8IzULUYG2gh4nQ660svAg0KXoIP+KS5n7F9MZFySznSOdi8uk9nAlfA6Hk6lGkgNR6mzffbfRnJBwbhg22+pnqgG3UmNyPK3ypD/6Mn47yFx/C3XM4B9x3MfCrMm3Zn96QqbD17y0QW1YRd37TZfx58sFG3kD3/liZ7Z90x0SiuAGsLS3qr7CmPUDGsDB7umNO9sd0enjoHuTVovhvf2iN2x2ThmyQ5m4SS09J30j5FAZhrRWIsxWKqRdXEkmGuFne8so+TeX+gviGBQg+shl3TygEgwpaWODN3aAcmF+YQFh0aGGs0EXvm9YXkNCqgbm9MZD0nUcHiYerrSNOsTv+weqHI1Omtl8kUOwrgS/72Imt/cjBCYsHZL34O6aeF+CcTull//MzwKPwz/6QpUzVd9qz5nScYbB6f6MtXrH+aPT86LU1H8Qkz98HzISClOv2puugsKEGiiEbRut6EhcvlU9A62BMz2Xe339QHKxykehre9LIh2itZnTePtqoxIolCeiOk1ureTExbOzC2K+eNbqsWwBMMVseayapPp5jnYiuKKHrK8FqnN4WDtcGWeM2F2ufDNRQ23v6bm1RQuO7CQGOSQelxsmoGUtsFg670QndY8QFFPzEkuK6aVoRk5bBh2a0K1j43fi0Os3nrFldsFrxU7U123ilHZliZdmwi93jLKIqdl/VnwycCPsJc01yeXZsL4cJ/UAa4DNzNVDVgjs6SxjE+Uf2WZATuNemxz+bT2peeNHBAIZw3e0riHcKgG/ukreWxSYdc/S3Q1FL25wIMbkYBH2wd9BTxuaRh5S3SJV+LpRP1EaX3lbivpCF35xxzR6cI5/CreKbBJpodX4uB31o+HTBSOXHBCgxQzTDdglhruuhS2RYPdT6L7Nr9kZ9VGRYqN1Q5fl+mGRZalb98oD1FOD5GfCOd0+RElFMqNLkeJHCKllL6o3fRop/0AEzrULXvoo5n+K4ORAtY2kSwguu3DfHT3vT6Ya5bowYm+BnJ9ej9b2KQRaiENa6gVLhLOrMrfVVEA3DsCsvM4wipEX0y5T3AIA+98wKbQn2yIqDJisSTg800lb/jtrI9u0JZQSP8zMkoDOAv5pyzCi+ylLz0dHBK47oPr47+UkPaRNx8vE2Z18/YWGRwoVFdin6uj+d3651I/OZtDhC/Kwg1Urv/VU3Op4Ghcv6wt2UXV17/Jin54LJCAB3s7i4LxIdeN8zUUa13RP8QP2yAegH11eTAIGLQ94iCQSbnWBqPaYYvshakjvs6rqSEsUb3BFb7V+RgLZeYCPUX+Sb2O1C7dWsVhps0fKTdmR2zbdWf6wyMHzu4lrHXN63mJMYKvilxAXP6ScOTygL9bDrff2dCEH5APU1meYpiJ+azRqcXmfxAv2iRzbuN/e/U1f8bcjj/D+vYrr9afou2LicUt/xaAAUUJaQBKhp7iMBkaNA53Rnvn+Zib89jyYkljiSfbHRsLV4FHwSFEwEHyjjysD5QmH19dMK/Mhkup6SRj0zCXaEokuRxwT+93BvzF3o4kwcPUOTxB59ZfZNIAeq8hY62BoNZDGByqjCCZ4sFM/3JKPDHK0aM+mUKLXUo3FexpatdKDpaNupln7N+L6BDHR2liFkcFp7DkzOwmTBNspD8g8RHWq5fcfP2ecKyUsYVZg/v3kaegXTBgGbtidoWtCx0TTDilWqTY+ZBfBUO1jKe/NxKRY9qDAvMLFcoHwQvivPGSkz6rQLV2HALr+ehKnIh539wXzNE68xS9anOy2GUHC0M/ApZ2+egESAXFWbzPHo2IZnaZ5jJquE17WS5yXGund81Pitwdqn3RVuVFQby71SdKUOgzKKeSFxonDd2G/aJy2muvyqmq15OFkMCZeGmS2Gz7/5ZPVtDDoYcdCjYjGL9WwwrvHEBULoz+KjxrxxiIlEIGVuuWab1aGw594O8MwmW6Iw6wGghYXAT4xN50bd1PaR36cdHjeJrw4OcsBQX1k8gPQVCzAwuRL5X0rw+KjC08R6JqMAG7Bm1EegUbOFfm2+AAPuU5sWIXjMSgBAx9MLUcX88WVZXSBblwog/SB6wpWOGeNsWW3zmojhdUIGyGZsiMJB7kJjUF+MLk1n3cmAEOsSBz+h/QPt/zGz/IHCSD/mB4N6ZeZp3dwgJeZXzabQXpct9kbpRzQALgRkLLEF9HjUiGDdd1BK88hdVK1Iegg3NLzKYWIKoMK0rmir+Jg7bc2VUr4WeNsQjAq//B17ddWv7AVAgfbvjeyZgWS4WoFOL7K8sgBC+rabsz/E/64fCYdFlM2JG68BehtEH+B/UZw9L/4ejwB6mdD7dCQpLL5GGhF7jdX/wdb707uLFx+ADUqdUAAERTPvRaJ86NJIKm0SRAABB3Dwu1WTM60XqgI5+1PL//1jNqwAAAAA==",
1173
1222
  info: "data:image/webp;base64,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",
1174
1223
  primary: "data:image/webp;base64,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",
1175
1224
  success: "data:image/webp;base64,UklGRuoPAABXRUJQVlA4WAoAAAAQAAAAEQEAFwEAQUxQSE8FAAAB8FZtb95q27ZtEAxBEALBDM4ySBg0DGIGMwwSBtkZGEIhCIIg6Pzo7EdiSzq/I2IC0O003KaybkdlZtHnwvyodVvLlIcER6dhWg8W/b48jvWek3doWg/Ws0tdb+SUfD9EryvHPTsj36toA+t9cEKaNtF28jYm66V71fbWkeyW7lVbXUcyWa7a9mO01rCItp83MlSu2ss62igtoj3lkcyTFtHubmQa2rXPG5mFdu33RiahXfu+kTnSItr9jWyxiFqQF0NkVivyaASqasmNLLCIGnPpXma1J1PX0o/a9Cf1K7NalYde/ahlly7RQ23L1J+7qHVl7kz6UQv/pJ4Qq42Z+nETtbKMvVjU0ksX0qa2PlL76KHWZmodsdqbqW1Z1OKSWzaq1cd2LWr3pVWLWn5p06K2X1q0qPWX9ixq/6U1i3pwacuiPlxasqgXl3aM6sexFYN6MreBxBUytIBYfcl0vcTqzUe63KH+3K62qEeXa93Up+OVSJwidJ3E6lVOl/lRv25Xuatn52uQuEboEqy+fVxhUe/+nI/Uv/lsiR3E6WQ/6uGfc5H6OJ+KncTpRIt6uZyH1M1Cp9n9pPUsk3o6n4RdxekUd/V1OQOxsySdYFdvl++R+pu+tjts+xapx+lLu8u275D6nL6yO237BqnX6Qu728rnSNwm6WOT+r18jB0nn5rU8/lD1XX1M6S+zx/Znbd+hJ0n6QM39X7+wOG++h6p/9NbUwDMb9UAqO+QRmB6YwqB+Y0aAvW1pDGYXpqCYHppD4LtJQ4CeWXQKMwvzGFQXqhhUF+QMJD0S9Y4zL/MgTD/cgTCn18kEOQZaSTSk1soTE9KKKxPaij8eSKhIP+QNBYTgBwMGcAcDBOANRhWAEcw/AHwCAYGIMEgQNJoTBjCYUAOh79gCocJJRwK1nBYsYfDhhoONSQe4cDgf4mQcFDo//UlAcHhwP8S8UANh4ojIPZw2LCGw4oSDgVTOEy4hUPGEBApHBIg0QCAg+EB4AiGCmANhhXAFAwzgCEYMoAUDAkAOBQE/3iEQn2yhsL6ZAqFvzyhUBieQAJB8PwIhPrLHAjzLzkQ8i+QOMDvNQzqC3MYzC/kMMgvQIJA8OoeBNtLUxCML6UgoJdQQ6Di9TkExjdSCNAbqAFQ8e4cAONbKQDoLVT3/cH72X3jByDOY3yyOG/7yOA8+giq6yo+m103fgjiOMani+PGjyXxG30MxW0bPp/cRl/A7rQN3ySn0Vewu2zDd8ll9CXsDtvwbRJ/0ddQ3LXh+0mcxXQCFGcVnJJdxThndtV4ElRHbTgriZ/oNChuKjgxO4lx5uyk4VRYXbTi3IkdxOlkyA7KOP3qnoILPpzDuCKJa4Qugdk1My66OmbDVRO7hdNlQOIUIVz45pQRly4uKbj47pADV08Pd3C6HIidwYQGkrhCCE3Mrsho5OSICc0sbihoaHFCQVOLCwoaWxxQ0NxivoIGF+MVNLmYrqDRxXAFzZ7MNqHhg5hMMppObDAe0Hhicz0IzU+HsfaEHhZTFXTyJmaSCd0kNhITOppWE+0JfZ3FPDKju8TGeRB6XEyzotPEZuGMbqfVKGtCz4kNwhm9L9aQktB/2k1RCTac2AycYceZTSAlwZK0909KgjVp79xGsCjtHdsIVqW9UxvBsrRLd6QkWJcm7oqUBBNPtRs1w860cwekDDD27WhczQkGp6k2q94TzE5TbVC9Jxg/TTs3RLYpwYfDvUoDpN4zfJnvh1xIjntOcCndSpXT8bFOBOemfF+Ph5xA+FinIcHRachTWbdaH8zyizBzPba1TLchod8AVlA4IHQKAADQUQCdASoSARgBPpFGm0qlpCkhpdOLaSASCWNu3+WLoA/gEEA/AD9AP4Aih7V11D2H9q58npTpI6qY0up/4lf6n9fTzJecn6TP8f6gHSgehf0rX9y/6OVA+i/8j+IH6RfVa7s4K8Q9jOKCg8en8F/8fW7zx/ew/e+id9dReysUvdTdlvswWJg/iAYxLnBP2hy4YomMBpbkzK9BiEdLF0s58WsBSHPI/ohT1nl24BI4h+Ja2LWg+bS6gSueUNukWx/gAS8GujThHx5x6uI0FiQYaM/iWztZ8wnEGvDGGODWwus3dQBh7UYucHBgeFOZiwCRG20Aq1sCzhmTpkYWDh1sq0B8F/Za/q2PYKVbr2mjb1NQxRswXXHAjAqoFpH00I0zgrJCzG1lcJBIyhkrZg8JTQVdhhXgT7l1nVJy2/CcaNr35mAb0g9Ns++a5v2ah/aKJOUs1CtCfVCz/Qnui5WuNln+nq6bcASfcGNNggeESeNa/fGUiClCf2Cp9ao1l6c78ls1YprgODkbnqvbG7Pq37eKXIlhzVjUH8Oqo/9A6cPh35LZqxYCBe/rq2zBiY0qAeBKGZczuvvTu2ll7ADcOku/bCZRM7cThdgFJQFDlexxKvWLFeROEvFVorAptSwboZUW1XjKwkFQzp0sGmB8lD1a0mDPRkFtbQ9vs3Iq8xMZrCV15npwz9e25l8DwByJthgFf4a3FHZz1cjAeVpOzFCQtXvM9Xx8efQjZAvjuYoiiSQR3+x8NYs0DgRrFyCHPBfPUubnuqkV1nDok/EjkhLkEXtqtxHP8kxRr2nznCzGd+DZwiONlGb+95eZFX4Pj9ch0wxLCIlEaOPUNp3BZbwIDqHZpkYvzxll7X1AqsaMfIiURAAA/vucwMH+Ce+UQUVjkMUEIysL9ak+AcE/YjlEUbwJPiC7o/BQwfwT/FCZdBzW8NKBmq0sMiZhrRWyT8XhVw7l65Ea6KN3zEHo5UACJ/goYP4J/k//dfqn6mCfct43ZUK8amAeJjGeLFwFBMoarfi2OsgKAAUxXLPbpvfDEIQf8FDB/BP8mj5r7i1wNbItzY09uyUugLxTod0/UMPBsmjAKrGZ0b+DiNQcMxnt/yJo4xTwdZMilnRldWangTD8jeW1lzvQqkpFHkXS+Bv7lWjn1Bo17BRmRdP9VuhU7J/ieFnwY4f1eZjnAjf+iXp2LwswAe7EEzuhYDmbgoMMlN4ZPd+peqzcK3vVo/CfmAiQSf1IgEVHkBAkkdC0xjkFeufdQLcrhToG3mEjH4VK41hb7rM2CMLydivZwyQiCjGwi1Tp/4J7y4HtLIOFsdMukm8LH/A1805WIzSiBp6e3ZWivbaFNInkcgwpQkfdDHg39ZiAB9bkvPQ27hj0mc2i96QkS/FHNPhVlZoQG39s7YeJ6g4ewJJWqUs9R/u3BkysJTuVv2rYiVbfQjBWWJd1Bv/u/e/9C3kejOfPZfnG9iF9Pe6x1rvUspeMfntVVSY58P+RsgW9TmrEQatDKDj/MV1fgQ3B9XsymOffIcn9TMcznG6KfXHwCveLXW1wcAAL14I0FenYCfnRSQy1R9ZU8wA2IiEZtdj1AInYM/rcx04qK49ROhhZAX5bre+jXPQ+4IwyjQgnkR0OVQYOlumYHeLJP3c0Gt/XUAGvE4JvhfjXZ2wFd0pdAV/6+gxRswF4eweZeCX247IDEQuHDprlcPA33P5Io75ZNXkR4DVfGWTbP+7yTN8AV75rnBPDBj8cxNDJN2oivW5fpuuPzBYf7y80Qyn3nE6ZbO4LIMZXtjGVfZS8x4eTiqRRRxUa9BWoujRLcIouZjfm2THpyi2ZG9wy3wbG8rOxjo1nCD7XrPGgx09I74+15HmsvtzgMAtbTDKxUImDv/H0x85w4jmRWMlPq/lMwI2mGVgSU/6zh5lmmq7qVvegUmdEMhCHkbbIHcazrVIMuq96fpE0nvLaD54oduWV2ZvcUe4PMAWYM5ztOHIYWjDRF19+WMbPf658ngm/mD7P21x4AZISBMp+CKZNZkX5WEYTssrDVB6zoO+oErFDeoDKm80+kSOt4BBsk7CvrGH3pSuPA/Kx2R/ssyJsKItWQp6bBBZ9sKBKXG/kgvTSond/32FIHuVHjbUf18VsooppjECVcqyP2p5dt1XcatDwZyGoqSQYiwPT2iNXUHOjBhaC2khQUk6HVcRt5X4Hyw9lZzzbs3vxA8NKiDT+fjKFIu45X4IzUXcb+6q6GZfHk9zhfWQyryXL+wbmovRPx201r+ZfLJCv2ZAmI8u+8ALRRqCzxhDnirjVmc8aIhMFW9oMx69vFcrZJa+VRZe2iUlrP1/kwahtdmbSwtpYfjXbyx9IrAyblGuPx8FrSXmKpFVvAA5BPYVPCcb8Npc1zJ8Z8f4JlL+HO9HW/99vz4Gwy5tBCnrnz5GiCJcwt27n2YvUVObox3sCG+H7PDDWYdDZbMlV/HV1hBuD7gDpFcHbNG3Oa6/5a5g5KYPsw59rpbisFtxOIpL84D+bqtNYWtPKgWqAQEIAU7+lg7nyadB2bMqXXVi9MCiKIRvrXDJNBiDt74XiEoJEZ+pSf+LVcWdwsinZfU2vFfuZjJnkp+L4xtZ++1VXutGzyXYdv58jQ9BgVuHT4C0sW5LOWJJBhKiVH8f7Dm2Mk0OrqX6VeF/+AWI1jd4ZjMpY4vS5OPikpUTU2gC/3Y2Rp4LPGia7yp1M6OOe3Tl+0aa5a7Hs9ch2aYGUDNefPqFg/0xqL8Ba7NbRe3rfyjpG9zz6nSg0tk61cg97rh/rr2OVauhptIFHTaSOf7aA27n6PrN03a9y2vbuuudW2X1u7ajXbAoAAnYxO6DAXeuZE8xdjxvPmtAAb22RDvbNrhn9TxwiTZtXI9DeCSISEa/XAd5wey8J6NJb7YQLo+tlFiep6nAujp6zwqikT9QRy9JfWNnJf7ay7/usogLs08v/A8HNbYCG+IlvPv0ZLEorsp/rGoea2V0qfpLKFY77sDtZthrt/cPN5wDiPYxQQPkcpGIIFimMDZ3j7dsQ9WCSrAm9MJnP2N58afUo/CLWC+ZBaxctQNhcs2SCs9uTVJ234VSmAjkBT8Nsemz3XANGtkOVcHnITaA85iB0cFKX8MMG9wjhGkU1VCl0MoOsFraSCyIIR8vXA1Rr0tONLoOb+nZaDw7Lreov+HNRqo07avUGEKCiwwWuDyE/vO6ze2o1GBmjKhGXyjp/Mb5wT4uFXW38HpAcupLTUHS4rlq2mOn+DzG0MlbBlNGQ9rhQarHGOYTeL8wSj8AOu0V3yoFuY4LU0fdS2TnTa01J5mlT4AIEhvGEpReY1VAXTnCPyoZtfLvpFAsAcyf5rkYvPAEjXQUtJyWgYdXlhw2oeZjYbJHZoKv8lV/PPmwLkAIrFvdBG8JCmcaUfUXyLQzcUrhOw5U+/D3AsSGa6hYWhXh+e57X1ZEddXrPUSGbb7LEkZ9YTvNNxI8PP8HpGw1VeDx6O0DX2AjQgAAANhf6LIbn/+KTP//E1SIQhHpQCfn//skr2VlBk/s3yskytTZ3wAAAAAA=",
1176
1225
  warning: "data:image/webp;base64,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"
1177
- }, It = { error: "<rect width=\"174\" height=\"174\" rx=\"87\" fill=\"var(--wui-danger-5)\"/>\n<rect x=\"24\" y=\"24\" width=\"126\" height=\"126\" rx=\"63\" stroke=\"var(--wui-danger-20)\" stroke-width=\"16\"/>\n<g clip-path=\"url(#wui_error_clip0)\">\n<rect x=\"32\" y=\"32\" width=\"110\" height=\"110\" rx=\"55\" fill=\"var(--wui-danger)\"/>\n<rect x=\"110.758\" y=\"62\" width=\"75.5044\" height=\"69.9535\" transform=\"rotate(45 110.758 62)\" fill=\"var(--wui-danger-active)\"/>\n<g clip-path=\"url(#wui_error_clip1)\">\n<path d=\"M95.9285 87.0037L112.943 69.9887C114.823 68.1087 114.823 65.0608 112.943 63.1838L110.675 60.9155C108.795 59.0349 105.747 59.0349 103.87 60.9155L86.8552 77.9298L69.8403 60.9119C67.9603 59.032 64.9124 59.032 63.0353 60.9119L60.7635 63.1802C58.8835 65.0608 58.8835 68.1087 60.7635 69.9858L77.7814 87.0037L60.767 104.018C58.8865 105.899 58.8865 108.947 60.767 110.824L63.0353 113.092C64.9153 114.972 67.9632 114.972 69.8403 113.092L86.8552 96.0769L103.87 113.092C105.75 114.972 108.798 114.972 110.675 113.092L112.943 110.824C114.823 108.943 114.823 105.895 112.943 104.018L95.9285 87.0037Z\" fill=\"white\"/>\n</g>\n</g>\n<defs><clipPath id=\"wui_error_clip0\"><rect x=\"32\" y=\"32\" width=\"110\" height=\"110\" rx=\"55\" fill=\"white\"/></clipPath><clipPath id=\"wui_error_clip1\"><rect width=\"55\" height=\"55\" fill=\"white\" transform=\"translate(59.3535 59.502)\"/></clipPath></defs>" }, Lt = [
1226
+ }, Vt = { error: "<rect width=\"174\" height=\"174\" rx=\"87\" fill=\"var(--wui-danger-5)\"/>\n<rect x=\"24\" y=\"24\" width=\"126\" height=\"126\" rx=\"63\" stroke=\"var(--wui-danger-20)\" stroke-width=\"16\"/>\n<g clip-path=\"url(#wui_error_clip0)\">\n<rect x=\"32\" y=\"32\" width=\"110\" height=\"110\" rx=\"55\" fill=\"var(--wui-danger)\"/>\n<rect x=\"110.758\" y=\"62\" width=\"75.5044\" height=\"69.9535\" transform=\"rotate(45 110.758 62)\" fill=\"var(--wui-danger-active)\"/>\n<g clip-path=\"url(#wui_error_clip1)\">\n<path d=\"M95.9285 87.0037L112.943 69.9887C114.823 68.1087 114.823 65.0608 112.943 63.1838L110.675 60.9155C108.795 59.0349 105.747 59.0349 103.87 60.9155L86.8552 77.9298L69.8403 60.9119C67.9603 59.032 64.9124 59.032 63.0353 60.9119L60.7635 63.1802C58.8835 65.0608 58.8835 68.1087 60.7635 69.9858L77.7814 87.0037L60.767 104.018C58.8865 105.899 58.8865 108.947 60.767 110.824L63.0353 113.092C64.9153 114.972 67.9632 114.972 69.8403 113.092L86.8552 96.0769L103.87 113.092C105.75 114.972 108.798 114.972 110.675 113.092L112.943 110.824C114.823 108.943 114.823 105.895 112.943 104.018L95.9285 87.0037Z\" fill=\"white\"/>\n</g>\n</g>\n<defs><clipPath id=\"wui_error_clip0\"><rect x=\"32\" y=\"32\" width=\"110\" height=\"110\" rx=\"55\" fill=\"white\"/></clipPath><clipPath id=\"wui_error_clip1\"><rect width=\"55\" height=\"55\" fill=\"white\" transform=\"translate(59.3535 59.502)\"/></clipPath></defs>" }, Ht = [
1178
1227
  "success",
1179
1228
  "error",
1180
1229
  "warning",
1181
1230
  "info",
1182
1231
  "delete",
1183
1232
  "primary"
1184
- ], Rt = class extends e {
1233
+ ], Ut = class extends e {
1185
1234
  static get observedAttributes() {
1186
1235
  return ["tone", "size"];
1187
1236
  }
@@ -1192,67 +1241,67 @@ var Nt = (e, t) => {
1192
1241
  this.isConnected && this.render();
1193
1242
  }
1194
1243
  render() {
1195
- let e = this.getAttribute("tone"), t = Number.parseInt(this.getAttribute("size"), 10) || 72, n = It[e];
1244
+ let e = this.getAttribute("tone"), t = Number.parseInt(this.getAttribute("size"), 10) || 72, n = Vt[e];
1196
1245
  if (n) {
1197
1246
  this.innerHTML = `<svg width="${t}" height="${t}" viewBox="0 0 174 174" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">${n}</svg>`;
1198
1247
  return;
1199
1248
  }
1200
- let r = Ft[e] || Ft.info;
1249
+ let r = Bt[e] || Bt.info;
1201
1250
  this.innerHTML = `<img src="${r}" width="${t}" height="${t}" alt="" aria-hidden="true" draggable="false" />`;
1202
1251
  }
1203
- }, P = 4, zt = 300, Bt = 400;
1204
- function F(e, t, n = {}) {
1252
+ }, F = 4, Wt = 300, Gt = 400;
1253
+ function I(e, t, n = {}) {
1205
1254
  if (!e || !t) return;
1206
1255
  let r = e.getBoundingClientRect(), i = n.clampHeight ? t.scrollTop : 0;
1207
1256
  n.clampHeight && (t.style.maxHeight = "");
1208
- let a = t.offsetHeight, o = window.innerHeight - r.bottom, s = o < a + P && r.top > o;
1209
- if (t.classList.toggle("drop-up", s), t.style.position = "fixed", t.style.top = s ? `${Math.max(P, r.top - a - P)}px` : `${r.bottom + P}px`, n.clampHeight) {
1210
- let e = s ? r.top - P * 2 : window.innerHeight - r.bottom - P * 2;
1257
+ let a = t.offsetHeight, o = window.innerHeight - r.bottom, s = o < a + F && r.top > o;
1258
+ if (t.classList.toggle("drop-up", s), t.style.position = "fixed", t.style.top = s ? `${Math.max(F, r.top - a - F)}px` : `${r.bottom + F}px`, n.clampHeight) {
1259
+ let e = s ? r.top - F * 2 : window.innerHeight - r.bottom - F * 2;
1211
1260
  e < a && (t.style.maxHeight = `${Math.max(e, 0)}px`), t.scrollTop = i;
1212
1261
  }
1213
- n.matchWidth && (r.width >= zt ? (t.style.minWidth = `${r.width}px`, t.style.width = `${r.width}px`, t.style.maxWidth = `${r.width}px`) : (t.style.minWidth = `${r.width}px`, t.style.width = "max-content", t.style.maxWidth = `${Math.min(Bt, window.innerWidth - P * 2)}px`));
1214
- let c = t.offsetWidth, l = Math.min(r.left, window.innerWidth - c - P);
1215
- t.style.left = `${Math.max(P, l)}px`;
1262
+ n.matchWidth && (r.width >= Wt ? (t.style.minWidth = `${r.width}px`, t.style.width = `${r.width}px`, t.style.maxWidth = `${r.width}px`) : (t.style.minWidth = `${r.width}px`, t.style.width = "max-content", t.style.maxWidth = `${Math.min(Gt, window.innerWidth - F * 2)}px`));
1263
+ let c = t.offsetWidth, l = Math.min(r.left, window.innerWidth - c - F);
1264
+ t.style.left = `${Math.max(F, l)}px`;
1216
1265
  }
1217
- function I(e, t) {
1218
- L(e), e._reanchor = t, e._reanchorScroll = (n) => {
1266
+ function L(e, t) {
1267
+ R(e), e._reanchor = t, e._reanchorScroll = (n) => {
1219
1268
  n.target instanceof Node && typeof e.contains == "function" && e.contains(n.target) || t();
1220
1269
  }, window.addEventListener("resize", e._reanchor), window.addEventListener("scroll", e._reanchorScroll, !0);
1221
1270
  }
1222
- function L(e) {
1271
+ function R(e) {
1223
1272
  e?._reanchor && (window.removeEventListener("resize", e._reanchor), window.removeEventListener("scroll", e._reanchorScroll, !0), e._reanchor = null, e._reanchorScroll = null);
1224
1273
  }
1225
1274
  //#endregion
1226
1275
  //#region src/formMirror.js
1227
- var Vt = "data-wui-mirror";
1228
- function Ht(e, t, n, r) {
1276
+ var Kt = "data-wui-mirror";
1277
+ function qt(e, t, n, r) {
1229
1278
  t.name = n, t.value = r == null ? "" : String(r);
1230
1279
  for (let n of [...t.attributes]) n.name.startsWith("data-val") && !e.hasAttribute(n.name) && t.removeAttribute(n.name);
1231
1280
  for (let n of e.attributes) n.name.startsWith("data-val") && t.setAttribute(n.name, n.value);
1232
1281
  t.disabled = e.hasAttribute("disabled");
1233
1282
  }
1234
- function Ut(e) {
1283
+ function Jt(e) {
1235
1284
  let t = document.createElement("input");
1236
- return t.type = "hidden", t.setAttribute(Vt, ""), e.appendChild(t), t;
1285
+ return t.type = "hidden", t.setAttribute(Kt, ""), e.appendChild(t), t;
1237
1286
  }
1238
- function R(e, t) {
1239
- let n = e.getAttribute("name"), r = e.querySelector(`:scope > input[${Vt}]`);
1287
+ function z(e, t) {
1288
+ let n = e.getAttribute("name"), r = e.querySelector(`:scope > input[${Kt}]`);
1240
1289
  if (!n) {
1241
1290
  r?.remove();
1242
1291
  return;
1243
1292
  }
1244
- r ||= Ut(e), Ht(e, r, n, t);
1293
+ r ||= Jt(e), qt(e, r, n, t);
1245
1294
  }
1246
- function z(e, t) {
1247
- let n = e.getAttribute("name"), r = [...e.querySelectorAll(`:scope > input[${Vt}]`)], i = [...e.attributes].some((e) => e.name.startsWith("data-val")), a = n ? t.length > 0 ? t : i ? [""] : [] : [];
1295
+ function B(e, t) {
1296
+ let n = e.getAttribute("name"), r = [...e.querySelectorAll(`:scope > input[${Kt}]`)], i = [...e.attributes].some((e) => e.name.startsWith("data-val")), a = n ? t.length > 0 ? t : i ? [""] : [] : [];
1248
1297
  for (let e of r.splice(a.length)) e.remove();
1249
1298
  a.forEach((t, i) => {
1250
- Ht(e, r[i] ?? Ut(e), n, t);
1299
+ qt(e, r[i] ?? Jt(e), n, t);
1251
1300
  });
1252
1301
  }
1253
1302
  //#endregion
1254
1303
  //#region src/iconGlyphs.g.js
1255
- var Wt = {
1304
+ var Yt = {
1256
1305
  activity: "<path d=\"M9 22h6c5 0 7-2 7-7V9c0-5-2-7-7-7H9C4 2 2 4 2 9v6c0 5 2 7 7 7Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path><path d=\"m7.33 14.49 2.38-3.09c.34-.44.97-.52 1.41-.18l1.83 1.44c.44.34 1.07.26 1.41-.17l2.31-2.98\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>",
1257
1306
  add: "<path d=\"M6 12h12M12 18V6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>",
1258
1307
  "add-circle": "<path d=\"M12 22c5.5 0 10-4.5 10-10S17.5 2 12 2 2 6.5 2 12s4.5 10 10 10ZM8 12h8M12 16V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>",
@@ -1459,14 +1508,14 @@ var Wt = {
1459
1508
  "zoom-in": "<path d=\"M11 20a9 9 0 1 0 0-18 9 9 0 0 0 0 18ZM8.5 11h5M11 13.5v-5M18.93 20.69c.53 1.6 1.74 1.76 2.67.36.85-1.28.29-2.33-1.25-2.33-1.14-.01-1.78.88-1.42 1.97Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>",
1460
1509
  "zoom-out": "<path d=\"M9 11.7h5M11.5 21a9.5 9.5 0 1 0 0-19 9.5 9.5 0 0 0 0 19ZM22 22l-2-2\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>"
1461
1510
  };
1462
- Object.keys(Wt);
1463
- function B(e, { size: t = 16, className: n = "", style: r = "" } = {}) {
1464
- let i = Wt[e];
1511
+ Object.keys(Yt);
1512
+ function V(e, { size: t = 16, className: n = "", style: r = "" } = {}) {
1513
+ let i = Yt[e];
1465
1514
  return i ? `<svg class="${n ? `wui-icon ${n}` : "wui-icon"}" data-icon="${e}" width="${t}" height="${t}" viewBox="0 0 24 24" fill="none" aria-hidden="true" style="vertical-align:-.125em${r ? `;${r}` : ""}">${i}</svg>` : "";
1466
1515
  }
1467
1516
  //#endregion
1468
1517
  //#region src/listboxKeyNav.js
1469
- function Gt(e) {
1518
+ function Xt(e) {
1470
1519
  let { getVisibleOptions: t, getActive: n, setActive: r, onEnter: i, onEscape: a, onTypeahead: o, typeaheadMs: s = 500 } = e, c = "", l = null, u = () => {
1471
1520
  clearTimeout(l), l = null, c = "";
1472
1521
  };
@@ -1497,18 +1546,18 @@ function Gt(e) {
1497
1546
  }
1498
1547
  //#endregion
1499
1548
  //#region src/optionLabel.js
1500
- var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;"), qt = (e) => {
1549
+ var Zt = Symbol("wui.trustedHtml"), H = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;"), Qt = (e) => {
1501
1550
  if (!e) return "";
1502
1551
  let t = String(e).toLowerCase().replace(/[^a-z0-9-]/g, "");
1503
- return t ? B(t) : "";
1504
- }, Jt = (e) => `wui-flag wui-flag-${e}`, Yt = (e) => {
1552
+ return t ? V(t) : "";
1553
+ }, $t = (e) => `wui-flag wui-flag-${e}`, en = (e) => {
1505
1554
  let t = String(e ?? "").toLowerCase();
1506
- return /^[a-z]{2}$/.test(t) ? `<span class="${Jt(t)}" aria-hidden="true"></span>` : "";
1507
- }, Xt = (e) => {
1555
+ return /^[a-z]{2}$/.test(t) ? `<span class="${$t(t)}" aria-hidden="true"></span>` : "";
1556
+ }, tn = (e) => {
1508
1557
  if (e == null) return "";
1509
- let t = e[Kt] ? String(e.label ?? "") : V(e.label), n = Yt(e.flag) + qt(e.icon);
1558
+ let t = e[Zt] ? String(e.label ?? "") : H(e.label), n = en(e.flag) + Qt(e.icon);
1510
1559
  return n ? `<span class="wui-opt-label">${n}${t}</span>` : t;
1511
- }, Zt = class extends e {
1560
+ }, nn = class extends e {
1512
1561
  static formAssociated = !0;
1513
1562
  _accessibleName() {
1514
1563
  return this.getAttribute("aria-label") || this.getAttribute("placeholder") || "Select";
@@ -1567,14 +1616,14 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
1567
1616
  return this._value;
1568
1617
  }
1569
1618
  set value(e) {
1570
- this._value = e == null ? "" : String(e), R(this, this._value);
1619
+ this._value = e == null ? "" : String(e), z(this, this._value);
1571
1620
  let t = this._readOptions().find((e) => String(e.value) === this._value);
1572
- this._label = t ? Qt(t.label) : "", this._syncInput(), this._renderOptions("");
1621
+ this._label = t ? an(t.label) : "", this._syncInput(), this._renderOptions("");
1573
1622
  }
1574
1623
  set options(e) {
1575
1624
  this._optionsProp = Array.isArray(e) ? e : [];
1576
1625
  let t = this._readOptions().find((e) => String(e.value) === this._value);
1577
- t && (this._label = Qt(t.label)), this._renderOptions(), this._syncInput();
1626
+ t && (this._label = an(t.label)), this._renderOptions(), this._syncInput();
1578
1627
  }
1579
1628
  get options() {
1580
1629
  return this._readOptions();
@@ -1593,7 +1642,7 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
1593
1642
  }
1594
1643
  _matchesKnownOption(e) {
1595
1644
  let t = e.toLowerCase();
1596
- return this._readOptions().some((e) => Qt(e.label).toLowerCase() === t || String(e.value ?? "").toLowerCase() === t);
1645
+ return this._readOptions().some((e) => an(e.label).toLowerCase() === t || String(e.value ?? "").toLowerCase() === t);
1597
1646
  }
1598
1647
  get _minChars() {
1599
1648
  return Math.max(0, Number(this.getAttribute("min-chars")) || +!!this._remote);
@@ -1611,7 +1660,7 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
1611
1660
  value: e.getAttribute("value") ?? e.textContent.trim(),
1612
1661
  label: e.innerHTML,
1613
1662
  icon: e.getAttribute("icon") || void 0,
1614
- [Kt]: !0,
1663
+ [Zt]: !0,
1615
1664
  selected: e.hasAttribute("selected")
1616
1665
  })));
1617
1666
  }
@@ -1625,17 +1674,17 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
1625
1674
  let r = `${this.id}-listbox`;
1626
1675
  this._listboxId = r, this.innerHTML = `
1627
1676
  <div class="search-select${n}">
1628
- <div class="input search-select-control search-select-ac" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-controls="${H(r)}" aria-label="${H(this._accessibleName())}"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}>
1629
- <input class="search-select-input search-select-ac-input" placeholder="${H(e)}" aria-autocomplete="list" autocomplete="off"${this.hasAttribute("disabled") ? " disabled" : ""} />
1677
+ <div class="input search-select-control search-select-ac" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-controls="${rn(r)}" aria-label="${rn(this._accessibleName())}"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}>
1678
+ <input class="search-select-input search-select-ac-input" placeholder="${rn(e)}" aria-autocomplete="list" autocomplete="off"${this.hasAttribute("disabled") ? " disabled" : ""} />
1630
1679
  <span class="search-select-spinner spinner-border spinner-border-sm" role="status" aria-hidden="true" hidden></span>
1631
- <button type="button" class="search-select-clear" aria-label="Clear" hidden>${B("x")}</button>
1680
+ <button type="button" class="search-select-clear" aria-label="Clear" hidden>${V("x")}</button>
1632
1681
  </div>
1633
- <div class="search-select-menu search-select-menu-fixed" role="listbox" id="${H(r)}" tabindex="-1" hidden>
1682
+ <div class="search-select-menu search-select-menu-fixed" role="listbox" id="${rn(r)}" tabindex="-1" hidden>
1634
1683
  <div class="search-select-options"></div>
1635
1684
  <div class="search-select-empty" hidden>No matches</div>
1636
1685
  <div class="search-select-hint" hidden>Type to search…</div>
1637
1686
  </div>
1638
- </div>`, this._rendered = !0, R(this, this._value), this._wire(), this._syncInput(), this._renderOptions();
1687
+ </div>`, this._rendered = !0, z(this, this._value), this._wire(), this._syncInput(), this._renderOptions();
1639
1688
  }
1640
1689
  _refs() {
1641
1690
  return {
@@ -1664,7 +1713,7 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
1664
1713
  let t = this._refs();
1665
1714
  if (!t.optionsWrap) return;
1666
1715
  let n = e ?? (t.input ? t.input.value : ""), r = n.trim().toLowerCase(), i = this._readOptions();
1667
- !this._remote && r && (i = i.filter((e) => Qt(e.label).toLowerCase().includes(r)));
1716
+ !this._remote && r && (i = i.filter((e) => an(e.label).toLowerCase().includes(r)));
1668
1717
  let a = n.trim(), o = this._allowCustom && a && !this._matchesKnownOption(a) ? [...i, {
1669
1718
  value: a,
1670
1719
  custom: !0
@@ -1672,11 +1721,11 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
1672
1721
  t.optionsWrap.innerHTML = o.map((e, t) => {
1673
1722
  let n = `${s}-opt-${t}`;
1674
1723
  if (e.custom) {
1675
- let t = `Add “${V(e.value)}”`;
1676
- return `<button type="button" role="option" id="${H(n)}" class="search-select-option search-select-option-custom" data-value="${H(e.value)}" data-custom="true" aria-selected="false">${t}</button>`;
1724
+ let t = `Add “${H(e.value)}”`;
1725
+ return `<button type="button" role="option" id="${rn(n)}" class="search-select-option search-select-option-custom" data-value="${rn(e.value)}" data-custom="true" aria-selected="false">${t}</button>`;
1677
1726
  }
1678
1727
  let r = String(e.value) === String(this._value);
1679
- return `<button type="button" role="option" id="${H(n)}" class="search-select-option${r ? " selected" : ""}" data-value="${H(e.value)}" aria-selected="${r}">${Xt(e)}</button>`;
1728
+ return `<button type="button" role="option" id="${rn(n)}" class="search-select-option${r ? " selected" : ""}" data-value="${rn(e.value)}" aria-selected="${r}">${tn(e)}</button>`;
1680
1729
  }).join(""), this._active = -1, t.control?.removeAttribute("aria-activedescendant");
1681
1730
  let c = r.length < this._minChars;
1682
1731
  t.hint && (t.hint.hidden = !(this._remote && c && !i.length)), t.empty && (t.empty.hidden = this._loading || o.length > 0 || this._remote && c), this._reanchor?.();
@@ -1685,7 +1734,7 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
1685
1734
  this._teardown();
1686
1735
  let e = this._refs();
1687
1736
  if (!e.control || !e.input) return;
1688
- let t = () => F(e.control, e.menu, { matchWidth: !0 }), n = () => this._optionEls().filter((e) => !e.hidden), r = (t) => {
1737
+ let t = () => I(e.control, e.menu, { matchWidth: !0 }), n = () => this._optionEls().filter((e) => !e.hidden), r = (t) => {
1689
1738
  let r = n();
1690
1739
  this._active = t;
1691
1740
  for (let e of this._optionEls()) e.classList.remove("is-active");
@@ -1696,12 +1745,12 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
1696
1745
  e.menu.hidden = !0, e.control.setAttribute("aria-expanded", "false"), e.control.classList.remove("open"), r(-1), clearTimeout(this._typeaheadTimer), this._typeaheadTimer = null, this._typeahead = "", this._syncInput();
1697
1746
  }, s = (t) => {
1698
1747
  let n = t.dataset.custom === "true";
1699
- this._value = t.dataset.value, this._label = n ? t.dataset.value : Qt(t.innerHTML), R(this, this._value), e.input.value = this._label, this.dispatchEvent(new CustomEvent("change", {
1748
+ this._value = t.dataset.value, this._label = n ? t.dataset.value : an(t.innerHTML), z(this, this._value), e.input.value = this._label, this.dispatchEvent(new CustomEvent("change", {
1700
1749
  bubbles: !0,
1701
1750
  detail: { isCustom: n }
1702
1751
  })), o(), e.input.focus();
1703
1752
  }, c = (t) => {
1704
- this._value = t, this._label = t, R(this, t), e.input.value = t, this.dispatchEvent(new CustomEvent("change", {
1753
+ this._value = t, this._label = t, z(this, t), e.input.value = t, this.dispatchEvent(new CustomEvent("change", {
1705
1754
  bubbles: !0,
1706
1755
  detail: { isCustom: !0 }
1707
1756
  })), o();
@@ -1719,7 +1768,7 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
1719
1768
  }, this._timer = setTimeout(() => this._fireSearch(t, e), this._debounceMs);
1720
1769
  } else this._renderOptions(t);
1721
1770
  };
1722
- this._navHandler = Gt({
1771
+ this._navHandler = Xt({
1723
1772
  getVisibleOptions: n,
1724
1773
  getActive: () => this._active,
1725
1774
  setActive: (e) => r(e),
@@ -1759,11 +1808,11 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
1759
1808
  let t = e.target.closest(".search-select-option");
1760
1809
  t && r(this._optionEls().indexOf(t));
1761
1810
  }), e.optionsWrap.addEventListener("mouseleave", () => r(-1)), e.clear?.addEventListener("click", () => {
1762
- this._value = "", this._label = "", R(this, ""), e.input.value = "", e.clear.hidden = !0, this._renderOptions(""), this.dispatchEvent(new Event("change", { bubbles: !0 })), e.input.focus();
1811
+ this._value = "", this._label = "", z(this, ""), e.input.value = "", e.clear.hidden = !0, this._renderOptions(""), this.dispatchEvent(new Event("change", { bubbles: !0 })), e.input.focus();
1763
1812
  }), this._bindGlobal = () => {
1764
1813
  this._teardown(), this._onDocClick = (e) => {
1765
1814
  i() && !this.contains(e.target) && o();
1766
- }, document.addEventListener("click", this._onDocClick), I(this, () => {
1815
+ }, document.addEventListener("click", this._onDocClick), L(this, () => {
1767
1816
  i() && t();
1768
1817
  });
1769
1818
  }, this._bindGlobal();
@@ -1778,15 +1827,15 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
1778
1827
  }));
1779
1828
  }
1780
1829
  _teardown() {
1781
- this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), L(this), clearTimeout(this._timer), this._navHandler?.teardown();
1830
+ this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), R(this), clearTimeout(this._timer), this._navHandler?.teardown();
1782
1831
  }
1783
1832
  disconnectedCallback() {
1784
1833
  this._teardown();
1785
1834
  }
1786
- }, H = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;"), Qt = (e) => String(e ?? "").replace(/<[^>]*>/g, "");
1835
+ }, rn = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;"), an = (e) => String(e ?? "").replace(/<[^>]*>/g, "");
1787
1836
  //#endregion
1788
1837
  //#region src/textMatch.js
1789
- function $t(e, t) {
1838
+ function on(e, t) {
1790
1839
  let n = String(e ?? ""), r = String(t ?? "").trim();
1791
1840
  if (!r || !n) return [{
1792
1841
  text: n,
@@ -1812,7 +1861,7 @@ function $t(e, t) {
1812
1861
  }
1813
1862
  //#endregion
1814
1863
  //#region src/WuiCommandPalette.js
1815
- var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
1864
+ var sn = "[role=\"option\"]", cn = "No results", ln = class extends e {
1816
1865
  static get observedAttributes() {
1817
1866
  return [
1818
1867
  "filter",
@@ -1855,7 +1904,7 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
1855
1904
  this.setAttribute("highlight", e ? "true" : "false");
1856
1905
  }
1857
1906
  get emptyText() {
1858
- return this.getAttribute("empty-text") ?? tn;
1907
+ return this.getAttribute("empty-text") ?? cn;
1859
1908
  }
1860
1909
  set emptyText(e) {
1861
1910
  this.setAttribute("empty-text", String(e ?? ""));
@@ -1872,7 +1921,7 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
1872
1921
  return this.querySelector("[role=\"combobox\"]");
1873
1922
  }
1874
1923
  _optionFrom(e, t = !1) {
1875
- let n = e?.closest?.(en);
1924
+ let n = e?.closest?.(sn);
1876
1925
  return n && this.contains(n) && !this._isHidden(n) && (t || !this._isDisabled(n)) ? n : null;
1877
1926
  }
1878
1927
  _isDisabled(e) {
@@ -1882,11 +1931,11 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
1882
1931
  return e.hidden || !!e.closest("[role=\"group\"]")?.hidden;
1883
1932
  }
1884
1933
  _selectableOptions() {
1885
- return [...this.querySelectorAll(en)].filter((e) => !this._isHidden(e) && !this._isDisabled(e));
1934
+ return [...this.querySelectorAll(sn)].filter((e) => !this._isHidden(e) && !this._isDisabled(e));
1886
1935
  }
1887
1936
  _setActive(e, t) {
1888
1937
  this._activeId = e ? e.id : null;
1889
- for (let t of this.querySelectorAll(en)) t.setAttribute("aria-selected", t === e ? "true" : "false");
1938
+ for (let t of this.querySelectorAll(sn)) t.setAttribute("aria-selected", t === e ? "true" : "false");
1890
1939
  let n = this._input();
1891
1940
  n && (e ? n.setAttribute("aria-activedescendant", e.id) : n.removeAttribute("aria-activedescendant")), e && t && e.scrollIntoView({ block: "nearest" });
1892
1941
  }
@@ -1922,11 +1971,11 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
1922
1971
  }
1923
1972
  _applyFilter() {
1924
1973
  let e = this._input(), t = (e ? e.value : "").trim(), n = t.toLowerCase(), r = this.highlight, i = 0;
1925
- for (let e of this.querySelectorAll(en)) {
1974
+ for (let e of this.querySelectorAll(sn)) {
1926
1975
  let a = e.querySelector(".wui-cmd-item-label"), o = e.dataset.label ?? a?.textContent ?? "", s = !n || o.toLowerCase().includes(n);
1927
- e.hidden = !s, s && i++, a && (a.innerHTML = $t(o, r ? t : "").map((e) => e.match ? `<mark class="wui-cmd-mark">${V(e.text)}</mark>` : V(e.text)).join(""));
1976
+ e.hidden = !s, s && i++, a && (a.innerHTML = on(o, r ? t : "").map((e) => e.match ? `<mark class="wui-cmd-mark">${H(e.text)}</mark>` : H(e.text)).join(""));
1928
1977
  }
1929
- for (let e of this.querySelectorAll("[role=\"group\"]")) e.hidden = ![...e.querySelectorAll(en)].some((e) => !e.hidden);
1978
+ for (let e of this.querySelectorAll("[role=\"group\"]")) e.hidden = ![...e.querySelectorAll(sn)].some((e) => !e.hidden);
1930
1979
  let a = this.querySelector("[role=\"listbox\"]");
1931
1980
  a && (a.hidden = i === 0);
1932
1981
  let o = this.querySelector(".wui-cmd-empty");
@@ -1935,7 +1984,7 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
1935
1984
  _teardown() {
1936
1985
  this.removeEventListener("keydown", this._onKeyDown), this.removeEventListener("click", this._onClick), this.removeEventListener("mousedown", this._onMouseDown), this.removeEventListener("mousemove", this._onMouseMove), this.removeEventListener("input", this._onInput);
1937
1986
  }
1938
- }, rn = {
1987
+ }, un = {
1939
1988
  "--color-primary": "#4F46E5",
1940
1989
  "--color-primary-hover": "#4338CA",
1941
1990
  "--color-text": "#071437",
@@ -1945,7 +1994,7 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
1945
1994
  "--wui-radius-lg": "14px",
1946
1995
  "--wui-shadow-overlay-lg": "0 24px 60px -16px rgba(7, 20, 55, 0.28)",
1947
1996
  "--wui-z-fixed": "1030"
1948
- }, U = (e) => `var(${e}, ${rn[e]})`, an = `
1997
+ }, U = (e) => `var(${e}, ${un[e]})`, dn = `
1949
1998
  :host {
1950
1999
  all: initial;
1951
2000
  position: fixed;
@@ -2123,7 +2172,7 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
2123
2172
  max-width: none;
2124
2173
  }
2125
2174
  }
2126
- `, on = "wui-consent-save", sn = "[data-consent-settings]", W = {
2175
+ `, fn = "wui-consent-save", pn = "[data-consent-settings]", W = {
2127
2176
  heading: "Cookies on this site",
2128
2177
  description: "We use cookies to understand how the site is used and to measure our campaigns. You can change your choice at any time.",
2129
2178
  policyLabel: "Cookie policy",
@@ -2139,11 +2188,11 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
2139
2188
  rejectLabel: "Reject all",
2140
2189
  acceptLabel: "Accept all",
2141
2190
  saveLabel: "Save preferences"
2142
- }, cn = [
2191
+ }, mn = [
2143
2192
  "analytics",
2144
2193
  "functional",
2145
2194
  "marketing"
2146
- ], ln = 0, un = class extends e {
2195
+ ], hn = 0, gn = class extends e {
2147
2196
  static get observedAttributes() {
2148
2197
  return [
2149
2198
  "heading",
@@ -2156,12 +2205,12 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
2156
2205
  ];
2157
2206
  }
2158
2207
  constructor() {
2159
- super(), ln += 1, this._uid = `wui-consent-${ln}`, this._preferences = {
2208
+ super(), hn += 1, this._uid = `wui-consent-${hn}`, this._preferences = {
2160
2209
  analytics: !1,
2161
2210
  functional: !1,
2162
2211
  marketing: !1
2163
2212
  }, this._settings = !1, this._onDocumentClick = (e) => {
2164
- e.target instanceof Element && e.target.closest(sn) && (e.preventDefault(), this.open({
2213
+ e.target instanceof Element && e.target.closest(pn) && (e.preventDefault(), this.open({
2165
2214
  settings: !0,
2166
2215
  focus: !0
2167
2216
  }));
@@ -2244,16 +2293,16 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
2244
2293
  this._rendered && this.render();
2245
2294
  }
2246
2295
  render() {
2247
- let e = this.isOpen, t = this._uid, n = this.policyHref ? ` <a class="wui-consent-banner-policy" href="${pn(this.policyHref)}">${fn(this.policyLabel)}</a>` : "", r = this._root();
2248
- r.innerHTML = `${r === this ? "" : `<style>${an}</style>`}
2296
+ let e = this.isOpen, t = this._uid, n = this.policyHref ? ` <a class="wui-consent-banner-policy" href="${yn(this.policyHref)}">${vn(this.policyLabel)}</a>` : "", r = this._root();
2297
+ r.innerHTML = `${r === this ? "" : `<style>${dn}</style>`}
2249
2298
  <div class="wui-consent-banner-panel" role="dialog" aria-labelledby="${t}-heading" aria-describedby="${t}-description" hidden>
2250
- <h2 class="wui-consent-banner-heading" id="${t}-heading">${fn(this.heading)}</h2>
2251
- <p class="wui-consent-banner-description" id="${t}-description">${fn(this.description)}${n}</p>
2299
+ <h2 class="wui-consent-banner-heading" id="${t}-heading">${vn(this.heading)}</h2>
2300
+ <p class="wui-consent-banner-description" id="${t}-description">${vn(this.description)}${n}</p>
2252
2301
  <div class="wui-consent-banner-settings" hidden>
2253
- ${dn(t, "essential", W.essentialLabel, W.essentialDescription, !0)}
2254
- ${dn(t, "analytics", W.analyticsLabel, this.analyticsDescription, !1)}
2255
- ${dn(t, "functional", W.functionalLabel, this.functionalDescription, !1)}
2256
- ${dn(t, "marketing", W.marketingLabel, this.marketingDescription, !1)}
2302
+ ${_n(t, "essential", W.essentialLabel, W.essentialDescription, !0)}
2303
+ ${_n(t, "analytics", W.analyticsLabel, this.analyticsDescription, !1)}
2304
+ ${_n(t, "functional", W.functionalLabel, this.functionalDescription, !1)}
2305
+ ${_n(t, "marketing", W.marketingLabel, this.marketingDescription, !1)}
2257
2306
  </div>
2258
2307
  <div class="wui-consent-banner-actions">
2259
2308
  <button type="button" class="btn btn-sm btn-link wui-consent-banner-settings-toggle" aria-expanded="false">${W.settingsLabel}</button>
@@ -2289,7 +2338,7 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
2289
2338
  })), e.querySelector(".wui-consent-banner-save")?.addEventListener("click", () => this._save(this._switchValues())), e.querySelector(".wui-consent-banner-settings-toggle")?.addEventListener("click", () => this._showSettings(!this._settings));
2290
2339
  }
2291
2340
  _save(e) {
2292
- this._preferences = { ...e }, this.dispatchEvent(new CustomEvent(on, {
2341
+ this._preferences = { ...e }, this.dispatchEvent(new CustomEvent(fn, {
2293
2342
  bubbles: !0,
2294
2343
  composed: !0,
2295
2344
  detail: { ...e }
@@ -2297,11 +2346,11 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
2297
2346
  }
2298
2347
  _switchValues() {
2299
2348
  let e = {};
2300
- for (let t of cn) e[t] = this._root().querySelector(`input[data-category="${t}"]`)?.checked === !0;
2349
+ for (let t of mn) e[t] = this._root().querySelector(`input[data-category="${t}"]`)?.checked === !0;
2301
2350
  return e;
2302
2351
  }
2303
2352
  _applyPreferences() {
2304
- for (let e of cn) {
2353
+ for (let e of mn) {
2305
2354
  let t = this._root().querySelector(`input[data-category="${e}"]`);
2306
2355
  t && (t.checked = this._preferences[e]);
2307
2356
  }
@@ -2319,47 +2368,47 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
2319
2368
  }
2320
2369
  }
2321
2370
  };
2322
- function dn(e, t, n, r, i) {
2371
+ function _n(e, t, n, r, i) {
2323
2372
  let a = `${e}-${t}`;
2324
2373
  return `<div class="wui-consent-banner-category">
2325
2374
  <div class="form-check form-switch">
2326
2375
  <input class="form-check-input" type="checkbox" role="switch" id="${a}" data-category="${t}"${i ? " checked disabled" : ""} />
2327
- <label class="form-check-label" for="${a}">${fn(n)}</label>
2376
+ <label class="form-check-label" for="${a}">${vn(n)}</label>
2328
2377
  </div>
2329
- <p class="wui-consent-banner-category-description">${fn(r)}</p>
2378
+ <p class="wui-consent-banner-category-description">${vn(r)}</p>
2330
2379
  </div>`;
2331
2380
  }
2332
- var fn = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), pn = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;"), mn = "[role=\"menuitem\"]", hn = "input, textarea, select, [contenteditable=\"\"], [contenteditable=\"true\"]", gn = "data-open", _n = 500, vn = 10, yn = 400, bn = null, xn = null, Sn = /* @__PURE__ */ new WeakMap();
2333
- function Cn(e, t, n) {
2334
- let r = Sn.get(e);
2381
+ var vn = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), yn = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;"), bn = "[role=\"menuitem\"]", xn = "input, textarea, select, [contenteditable=\"\"], [contenteditable=\"true\"]", Sn = "data-open", Cn = 500, wn = 10, Tn = 400, En = null, Dn = null, On = /* @__PURE__ */ new WeakMap();
2382
+ function kn(e, t, n) {
2383
+ let r = On.get(e);
2335
2384
  if (r) {
2336
2385
  if (r.region === t || t.contains(r.region)) return !1;
2337
2386
  r.cancel();
2338
2387
  }
2339
- return Sn.set(e, {
2388
+ return On.set(e, {
2340
2389
  region: t,
2341
2390
  cancel: n
2342
2391
  }), !0;
2343
2392
  }
2344
- var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class extends e {
2393
+ var An = (e) => e instanceof Element ? e : e?.parentElement ?? null, jn = class extends e {
2345
2394
  static get observedAttributes() {
2346
2395
  return ["disabled"];
2347
2396
  }
2348
2397
  constructor() {
2349
- super(), this._region = null, this._origin = null, this._returnFocus = null, this._press = null, this._swallowClick = !1, this._nav = Gt({
2398
+ super(), this._region = null, this._origin = null, this._returnFocus = null, this._press = null, this._swallowClick = !1, this._nav = Xt({
2350
2399
  getVisibleOptions: () => this._items(),
2351
2400
  getActive: () => this._items().indexOf(document.activeElement),
2352
2401
  setActive: (e) => this._items()[e]?.focus({ preventScroll: !0 })
2353
2402
  }), this._onContextMenu = (e) => this._handleContextMenu(e), this._onContextMenuCapture = (e) => {
2354
2403
  this.isOpen && !this._inPanel(e.target) && !this._isKeyEcho() && this.close();
2355
2404
  }, this._onDocKeyDown = (e) => this._handleDocKeyDown(e), this._onPointerDown = (e) => this._handlePointerDown(e), this._onPressMove = (e) => {
2356
- this._press && Math.hypot(e.clientX - this._press.x, e.clientY - this._press.y) > vn && this._cancelPress();
2405
+ this._press && Math.hypot(e.clientX - this._press.x, e.clientY - this._press.y) > wn && this._cancelPress();
2357
2406
  }, this._onPressEnd = () => this._cancelPress(), this._onClickCapture = (e) => {
2358
2407
  !this._swallowClick || !this._region?.contains(e.target) || (this._swallowClick = !1, e.preventDefault(), e.stopImmediatePropagation());
2359
2408
  }, this._onKeyDown = (e) => {
2360
2409
  this._inPanel(e.target) && this._handleMenuKey(e);
2361
2410
  }, this._onClick = (e) => this._handleClick(e), this._onMouseMove = (e) => {
2362
- let t = wn(e.target)?.closest(mn);
2411
+ let t = An(e.target)?.closest(bn);
2363
2412
  t && this._inPanel(t) && !this._isDisabled(t) && t !== document.activeElement && t.focus({ preventScroll: !0 });
2364
2413
  }, this._onDismiss = (e) => {
2365
2414
  e.type === "scroll" && this._inPanel(e.target) || this.close();
@@ -2389,16 +2438,16 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
2389
2438
  this.toggleAttribute("disabled", !!e);
2390
2439
  }
2391
2440
  get isOpen() {
2392
- return this._panel()?.hasAttribute(gn) ?? !1;
2441
+ return this._panel()?.hasAttribute(Sn) ?? !1;
2393
2442
  }
2394
2443
  open(e, t, { region: n = this, origin: r = n, keyboard: i = !1 } = {}) {
2395
2444
  let a = this._panel();
2396
2445
  if (a) {
2397
- if (bn && bn !== this && bn.close(!0), !this.isOpen) {
2446
+ if (En && En !== this && En.close(!0), !this.isOpen) {
2398
2447
  let e = document.activeElement;
2399
2448
  this._returnFocus = e && e !== document.body && !this._inPanel(e) ? e : null;
2400
2449
  }
2401
- this._region = n, this._origin = r, xn = null, a.setAttribute(gn, ""), bn = this, F({ getBoundingClientRect: () => ({
2450
+ this._region = n, this._origin = r, Dn = null, a.setAttribute(Sn, ""), En = this, I({ getBoundingClientRect: () => ({
2402
2451
  left: e,
2403
2452
  right: e,
2404
2453
  top: t,
@@ -2418,8 +2467,8 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
2418
2467
  }
2419
2468
  close(e = !1) {
2420
2469
  let t = this._panel();
2421
- if (!t?.hasAttribute(gn)) return;
2422
- t.removeAttribute(gn), bn === this && (bn = null), window.removeEventListener("scroll", this._onDismiss, !0), window.removeEventListener("resize", this._onDismiss), window.removeEventListener("blur", this._onDismiss), this._nav.teardown();
2470
+ if (!t?.hasAttribute(Sn)) return;
2471
+ t.removeAttribute(Sn), En === this && (En = null), window.removeEventListener("scroll", this._onDismiss, !0), window.removeEventListener("resize", this._onDismiss), window.removeEventListener("blur", this._onDismiss), this._nav.teardown();
2423
2472
  let n = this._returnFocus;
2424
2473
  this._returnFocus = null, e && n?.isConnected && n.focus({ preventScroll: !0 });
2425
2474
  }
@@ -2430,49 +2479,49 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
2430
2479
  return !!e && !!this._panel()?.contains(e);
2431
2480
  }
2432
2481
  _items() {
2433
- return [...this._panel()?.querySelectorAll(mn) ?? []].filter((e) => !this._isDisabled(e));
2482
+ return [...this._panel()?.querySelectorAll(bn) ?? []].filter((e) => !this._isDisabled(e));
2434
2483
  }
2435
2484
  _isDisabled(e) {
2436
2485
  return e.getAttribute("aria-disabled") === "true";
2437
2486
  }
2438
2487
  _regionFor(e) {
2439
- let t = wn(e);
2440
- if (!t || this.disabled || !this._panel() || this._inPanel(t) || t.closest(hn)) return null;
2488
+ let t = An(e);
2489
+ if (!t || this.disabled || !this._panel() || this._inPanel(t) || t.closest(xn)) return null;
2441
2490
  let n = this.target;
2442
2491
  return n ? t.closest(n) : this.contains(t) ? this : null;
2443
2492
  }
2444
2493
  _isKeyEcho() {
2445
- return xn?.menu === this && this.isOpen && performance.now() - xn.at < yn;
2494
+ return Dn?.menu === this && this.isOpen && performance.now() - Dn.at < Tn;
2446
2495
  }
2447
2496
  _handleContextMenu(e) {
2448
2497
  if (this._inPanel(e.target)) {
2449
2498
  e.preventDefault();
2450
2499
  return;
2451
2500
  }
2452
- if (e.defaultPrevented && !Sn.has(e)) return;
2501
+ if (e.defaultPrevented && !On.has(e)) return;
2453
2502
  let t = this._regionFor(e.target);
2454
2503
  if (t) {
2455
2504
  if (this._isKeyEcho()) {
2456
2505
  e.preventDefault();
2457
2506
  return;
2458
2507
  }
2459
- e.shiftKey || Cn(e, t, () => this.close(!0)) && (e.preventDefault(), this.open(e.clientX, e.clientY, {
2508
+ e.shiftKey || kn(e, t, () => this.close(!0)) && (e.preventDefault(), this.open(e.clientX, e.clientY, {
2460
2509
  region: t,
2461
- origin: wn(e.target)
2510
+ origin: An(e.target)
2462
2511
  }));
2463
2512
  }
2464
2513
  }
2465
2514
  _handleDocKeyDown(e) {
2466
- if (e.defaultPrevented && !Sn.has(e) || !(e.key === "ContextMenu" || e.key === "F10" && e.shiftKey) || this._inPanel(e.target)) return;
2515
+ if (e.defaultPrevented && !On.has(e) || !(e.key === "ContextMenu" || e.key === "F10" && e.shiftKey) || this._inPanel(e.target)) return;
2467
2516
  let t = this._regionFor(e.target);
2468
- if (!t || !Cn(e, t, () => this.close(!0))) return;
2517
+ if (!t || !kn(e, t, () => this.close(!0))) return;
2469
2518
  e.preventDefault();
2470
- let n = wn(e.target), r = n.getBoundingClientRect();
2519
+ let n = An(e.target), r = n.getBoundingClientRect();
2471
2520
  this.open(r.left + Math.min(16, r.width / 2), r.bottom, {
2472
2521
  region: t,
2473
2522
  origin: n,
2474
2523
  keyboard: !0
2475
- }), xn = {
2524
+ }), Dn = {
2476
2525
  menu: this,
2477
2526
  at: performance.now()
2478
2527
  };
@@ -2480,9 +2529,9 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
2480
2529
  _handlePointerDown(e) {
2481
2530
  if (e.pointerType !== "touch") return;
2482
2531
  let t = this._regionFor(e.target);
2483
- if (!t || !Cn(e, t, () => this._cancelPress())) return;
2532
+ if (!t || !kn(e, t, () => this._cancelPress())) return;
2484
2533
  this._cancelPress();
2485
- let { clientX: n, clientY: r } = e, i = wn(e.target);
2534
+ let { clientX: n, clientY: r } = e, i = An(e.target);
2486
2535
  this._press = {
2487
2536
  x: n,
2488
2537
  y: r,
@@ -2491,7 +2540,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
2491
2540
  region: t,
2492
2541
  origin: i
2493
2542
  });
2494
- }, _n)
2543
+ }, Cn)
2495
2544
  }, document.addEventListener("pointermove", this._onPressMove, { passive: !0 }), document.addEventListener("pointerup", this._onPressEnd), document.addEventListener("pointercancel", this._onPressEnd), window.addEventListener("scroll", this._onPressEnd, !0);
2496
2545
  }
2497
2546
  _cancelPress() {
@@ -2502,7 +2551,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
2502
2551
  else if (e.key === "Tab") this.close(!0);
2503
2552
  else if (e.key === "ArrowDown" || e.key === "ArrowUp") e.preventDefault(), this._step(e.key === "ArrowDown" ? 1 : -1);
2504
2553
  else if (e.key === " ") {
2505
- let t = wn(e.target)?.closest(mn);
2554
+ let t = An(e.target)?.closest(bn);
2506
2555
  e.preventDefault(), t && t.click();
2507
2556
  } else this._nav.handler(e);
2508
2557
  }
@@ -2513,7 +2562,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
2513
2562
  t[n < 0 ? e > 0 ? 0 : t.length - 1 : (n + e + t.length) % t.length].focus({ preventScroll: !0 });
2514
2563
  }
2515
2564
  _handleClick(e) {
2516
- let t = wn(e.target)?.closest(mn);
2565
+ let t = An(e.target)?.closest(bn);
2517
2566
  if (!(!t || !this._inPanel(t))) {
2518
2567
  if (this._isDisabled(t)) {
2519
2568
  e.preventDefault(), e.stopPropagation();
@@ -2533,7 +2582,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
2533
2582
  _teardown() {
2534
2583
  this.close(), this._cancelPress(), document.removeEventListener("contextmenu", this._onContextMenuCapture, !0), document.removeEventListener("contextmenu", this._onContextMenu), document.removeEventListener("keydown", this._onDocKeyDown), document.removeEventListener("pointerdown", this._onPointerDownCapture, !0), document.removeEventListener("pointerdown", this._onPointerDown), document.removeEventListener("click", this._onClickCapture, !0), this.removeEventListener("keydown", this._onKeyDown), this.removeEventListener("click", this._onClick), this.removeEventListener("mousemove", this._onMouseMove);
2535
2584
  }
2536
- }, En = [
2585
+ }, Mn = [
2537
2586
  [
2538
2587
  "AF",
2539
2588
  "Afghanistan",
@@ -3759,11 +3808,11 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
3759
3808
  "Zimbabwe",
3760
3809
  "263"
3761
3810
  ]
3762
- ], Dn = (e) => (En.find((t) => t[0] === e) || [
3811
+ ], Nn = (e) => (Mn.find((t) => t[0] === e) || [
3763
3812
  "",
3764
3813
  "",
3765
3814
  ""
3766
- ])[2], On = class extends e {
3815
+ ])[2], Pn = class extends e {
3767
3816
  static formAssociated = !0;
3768
3817
  static get observedAttributes() {
3769
3818
  return [
@@ -3822,7 +3871,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
3822
3871
  return this._value;
3823
3872
  }
3824
3873
  set value(e) {
3825
- this._value = e == null ? "" : String(e), R(this, this._value), this._syncSelected(), this._syncReset();
3874
+ this._value = e == null ? "" : String(e), z(this, this._value), this._syncSelected(), this._syncReset();
3826
3875
  }
3827
3876
  set options(e) {
3828
3877
  this._optionsProp = Array.isArray(e) ? e : null, this.isConnected && this.render();
@@ -3837,7 +3886,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
3837
3886
  value: e.getAttribute("value") ?? e.textContent.trim(),
3838
3887
  label: e.innerHTML,
3839
3888
  icon: e.getAttribute("icon") || void 0,
3840
- [Kt]: !0,
3889
+ [Zt]: !0,
3841
3890
  selected: e.hasAttribute("selected")
3842
3891
  })));
3843
3892
  }
@@ -3847,27 +3896,27 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
3847
3896
  render() {
3848
3897
  this._defaultValue === void 0 && (this._defaultValue = this.getAttribute("value") || ""), this._snapshotDeclared();
3849
3898
  let e = this._readOptions(), t = this.hasAttribute("searchable"), n = this.hasAttribute("clearable"), r = this.getAttribute("size"), i = r === "sm" ? " search-select-sm" : r === "lg" ? " search-select-lg" : "", a = this.getAttribute("icon"), o = this.getAttribute("prefix"), s = this.getAttribute("placeholder") || "Select...", c = this.getAttribute("search-placeholder") || "Search...", l = e.find((e) => String(e.value) === String(this._value)) || e.find((e) => e.selected);
3850
- l && (this._value = String(l.value)), R(this, this._value), this.id ||= `wui-select-${Math.random().toString(36).slice(2, 9)}`;
3899
+ l && (this._value = String(l.value)), z(this, this._value), this.id ||= `wui-select-${Math.random().toString(36).slice(2, 9)}`;
3851
3900
  let u = `${this.id}-listbox`;
3852
3901
  this._listboxId = u;
3853
3902
  let d = e.map((e, t) => {
3854
3903
  let n = String(e.value) === String(this._value);
3855
- return `<button type="button" role="option" id="${kn(`${u}-opt-${t}`)}" class="search-select-option${n ? " selected" : ""}" data-value="${kn(e.value)}" aria-selected="${n}">${Xt(e)}</button>`;
3904
+ return `<button type="button" role="option" id="${Fn(`${u}-opt-${t}`)}" class="search-select-option${n ? " selected" : ""}" data-value="${Fn(e.value)}" aria-selected="${n}">${tn(e)}</button>`;
3856
3905
  }).join("");
3857
3906
  this.innerHTML = `
3858
3907
  <div class="search-select${this.hasAttribute("compact") ? " search-select-compact" : ""}${i}">
3859
- <button type="button" role="combobox" class="input search-select-control" aria-haspopup="listbox" aria-expanded="false" aria-controls="${kn(u)}" aria-label="${kn(this._accessibleName())}"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}>
3860
- ${a ? B(a, { className: "search-select-icon" }) : ""}
3861
- ${o ? `<span class="search-select-prefix">${V(o)}</span>` : ""}
3862
- <span class="${l ? "" : "search-select-placeholder"}" data-label>${l ? Xt(l) : V(s)}</span>
3863
- ${n ? `<span class="search-select-reset" role="button" aria-label="Clear selection" hidden>${B("x")}</span>` : ""}
3864
- ${B("chevron-down", { className: "search-select-caret" })}
3908
+ <button type="button" role="combobox" class="input search-select-control" aria-haspopup="listbox" aria-expanded="false" aria-controls="${Fn(u)}" aria-label="${Fn(this._accessibleName())}"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}>
3909
+ ${a ? V(a, { className: "search-select-icon" }) : ""}
3910
+ ${o ? `<span class="search-select-prefix">${H(o)}</span>` : ""}
3911
+ <span class="${l ? "" : "search-select-placeholder"}" data-label>${l ? tn(l) : H(s)}</span>
3912
+ ${n ? `<span class="search-select-reset" role="button" aria-label="Clear selection" hidden>${V("x")}</span>` : ""}
3913
+ ${V("chevron-down", { className: "search-select-caret" })}
3865
3914
  </button>
3866
- <div class="search-select-menu search-select-menu-fixed" role="listbox" id="${kn(u)}" tabindex="-1" hidden>
3867
- ${t ? `<div class="search-select-search">${B("search")}<input class="search-select-input" placeholder="${kn(c)}" aria-autocomplete="list" /><button type="button" class="search-select-clear" aria-label="Clear search" hidden>${B("x")}</button></div>` : ""}
3915
+ <div class="search-select-menu search-select-menu-fixed" role="listbox" id="${Fn(u)}" tabindex="-1" hidden>
3916
+ ${t ? `<div class="search-select-search">${V("search")}<input class="search-select-input" placeholder="${Fn(c)}" aria-autocomplete="list" /><button type="button" class="search-select-clear" aria-label="Clear search" hidden>${V("x")}</button></div>` : ""}
3868
3917
  <div class="search-select-options">${d}<div class="search-select-empty" hidden>No matches</div></div>
3869
3918
  </div>
3870
- </div>`, this._rendered = !0, R(this, this._value), this._wire(), this._syncReset();
3919
+ </div>`, this._rendered = !0, z(this, this._value), this._wire(), this._syncReset();
3871
3920
  }
3872
3921
  _refs() {
3873
3922
  return {
@@ -3893,7 +3942,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
3893
3942
  let t = e.dataset.value === String(this._value);
3894
3943
  e.classList.toggle("selected", t), e.setAttribute("aria-selected", String(t));
3895
3944
  }
3896
- e && (e.innerHTML = t ? Xt(t) : V(this.getAttribute("placeholder") || "Select..."), e.classList.toggle("search-select-placeholder", !t));
3945
+ e && (e.innerHTML = t ? tn(t) : H(this.getAttribute("placeholder") || "Select..."), e.classList.toggle("search-select-placeholder", !t));
3897
3946
  }
3898
3947
  _syncReset() {
3899
3948
  let { reset: e } = this._refs();
@@ -3906,8 +3955,8 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
3906
3955
  let t = () => {
3907
3956
  if (this.hasAttribute("compact")) {
3908
3957
  let t = e.control.getBoundingClientRect();
3909
- e.menu.style.width = "max-content", e.menu.style.minWidth = `${t.width}px`, e.menu.style.maxWidth = "280px", F(e.control, e.menu);
3910
- } else F(e.control, e.menu, { matchWidth: !0 });
3958
+ e.menu.style.width = "max-content", e.menu.style.minWidth = `${t.width}px`, e.menu.style.maxWidth = "280px", I(e.control, e.menu);
3959
+ } else I(e.control, e.menu, { matchWidth: !0 });
3911
3960
  }, n = (t) => {
3912
3961
  let n = this._visible();
3913
3962
  this._active = t;
@@ -3927,7 +3976,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
3927
3976
  }, s = (t) => {
3928
3977
  this.value = t.dataset.value, this.dispatchEvent(new Event("change", { bubbles: !0 })), o(), e.control.focus();
3929
3978
  };
3930
- this._navHandler = Gt({
3979
+ this._navHandler = Xt({
3931
3980
  getVisibleOptions: () => this._visible(),
3932
3981
  getActive: () => this._active,
3933
3982
  setActive: (e) => n(e),
@@ -3958,40 +4007,40 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
3958
4007
  }), e.menu.addEventListener("keydown", this._navHandler.handler), this._bindGlobal = () => {
3959
4008
  this._teardown(), this._onDocClick = (e) => {
3960
4009
  i() && !this.contains(e.target) && o();
3961
- }, document.addEventListener("click", this._onDocClick), I(this, () => {
4010
+ }, document.addEventListener("click", this._onDocClick), L(this, () => {
3962
4011
  i() && t();
3963
4012
  });
3964
4013
  }, this._bindGlobal();
3965
4014
  }
3966
4015
  _teardown() {
3967
- this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), L(this), this._navHandler?.teardown();
4016
+ this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), R(this), this._navHandler?.teardown();
3968
4017
  }
3969
4018
  disconnectedCallback() {
3970
4019
  this._teardown();
3971
4020
  }
3972
- }, kn = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;"), An = (e) => {
4021
+ }, Fn = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;"), In = (e) => {
3973
4022
  if (e == null) return null;
3974
4023
  let t = String(e).split(",").map((e) => e.trim().toUpperCase()).filter(Boolean);
3975
4024
  return t.length ? new Set(t) : null;
3976
- }, jn = (e) => {
3977
- let t = An(e);
3978
- return En.filter(([e]) => !t || t.has(e)).map(([e, t]) => ({
4025
+ }, Ln = (e) => {
4026
+ let t = In(e);
4027
+ return Mn.filter(([e]) => !t || t.has(e)).map(([e, t]) => ({
3979
4028
  value: e,
3980
4029
  label: t,
3981
4030
  flag: e
3982
4031
  }));
3983
- }, Mn = class extends On {
4032
+ }, Rn = class extends Pn {
3984
4033
  static get observedAttributes() {
3985
- return [...On.observedAttributes, "countries"];
4034
+ return [...Pn.observedAttributes, "countries"];
3986
4035
  }
3987
4036
  _readOptions() {
3988
4037
  let e = this.getAttribute("countries");
3989
4038
  return this._countryCache?.attr !== e && (this._countryCache = {
3990
4039
  attr: e,
3991
- options: jn(e)
4040
+ options: Ln(e)
3992
4041
  }), this._countryCache.options;
3993
4042
  }
3994
- }, Nn = [
4043
+ }, zn = [
3995
4044
  "January",
3996
4045
  "February",
3997
4046
  "March",
@@ -4004,7 +4053,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4004
4053
  "October",
4005
4054
  "November",
4006
4055
  "December"
4007
- ], Pn = [
4056
+ ], Bn = [
4008
4057
  "Su",
4009
4058
  "Mo",
4010
4059
  "Tu",
@@ -4012,24 +4061,24 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4012
4061
  "Th",
4013
4062
  "Fr",
4014
4063
  "Sa"
4015
- ], Fn = (e) => String(e).padStart(2, "0"), In = (e, t, n) => `${e}-${Fn(t + 1)}-${Fn(n)}`, G = (e) => {
4064
+ ], Vn = (e) => String(e).padStart(2, "0"), Hn = (e, t, n) => `${e}-${Vn(t + 1)}-${Vn(n)}`, G = (e) => {
4016
4065
  let t = /^(\d{4})-(\d{2})-(\d{2})$/.exec(e || "");
4017
4066
  return t ? {
4018
4067
  y: +t[1],
4019
4068
  m: t[2] - 1,
4020
4069
  d: +t[3]
4021
4070
  } : null;
4022
- }, Ln = (e) => {
4071
+ }, Un = (e) => {
4023
4072
  let t = G(e);
4024
- return t ? `${Fn(t.d)} ${Nn[t.m].slice(0, 3)} ${t.y}` : "";
4025
- }, Rn = (e, t) => new Date(e, t + 1, 0).getDate(), K = (e, t) => {
4073
+ return t ? `${Vn(t.d)} ${zn[t.m].slice(0, 3)} ${t.y}` : "";
4074
+ }, Wn = (e, t) => new Date(e, t + 1, 0).getDate(), K = (e, t) => {
4026
4075
  for (; t < 0;) t += 12, --e;
4027
4076
  for (; t > 11;) t -= 12, e += 1;
4028
4077
  return {
4029
4078
  y: e,
4030
4079
  m: t
4031
4080
  };
4032
- }, zn = class extends e {
4081
+ }, Gn = class extends e {
4033
4082
  static formAssociated = !0;
4034
4083
  static get observedAttributes() {
4035
4084
  return [
@@ -4081,7 +4130,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4081
4130
  return this._value;
4082
4131
  }
4083
4132
  set value(e) {
4084
- this._value = e || "", R(this, this._value), this._syncTrigger();
4133
+ this._value = e || "", z(this, this._value), this._syncTrigger();
4085
4134
  }
4086
4135
  _firstDay() {
4087
4136
  let e = Number.parseInt(this.getAttribute("first-day") ?? "", 10);
@@ -4094,21 +4143,21 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4094
4143
  let n = this.getAttribute("size"), r = n === "sm" ? " input-sm" : n === "lg" ? " input-lg" : "", i = this.getAttribute("aria-label"), a = this.getAttribute("aria-describedby");
4095
4144
  this.innerHTML = `
4096
4145
  <div class="datepicker">
4097
- <button type="button" class="input datepicker-trigger${r}${t ? " has-value" : ""}" aria-haspopup="dialog" aria-expanded="false"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}${i ? ` aria-label="${V(i)}"` : ""}${a ? ` aria-describedby="${V(a)}"` : ""}>
4098
- <span data-trigger-label class="${t ? "" : "search-select-placeholder"}">${t ? Ln(this._value) : V(e)}</span>
4099
- ${B("calendar-dots")}
4146
+ <button type="button" class="input datepicker-trigger${r}${t ? " has-value" : ""}" aria-haspopup="dialog" aria-expanded="false"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}${i ? ` aria-label="${H(i)}"` : ""}${a ? ` aria-describedby="${H(a)}"` : ""}>
4147
+ <span data-trigger-label class="${t ? "" : "search-select-placeholder"}">${t ? Un(this._value) : H(e)}</span>
4148
+ ${V("calendar-dots")}
4100
4149
  </button>
4101
4150
  <div class="datepicker-pop" role="dialog" aria-modal="false" hidden></div>
4102
- </div>`, this._rendered = !0, R(this, this._value), this._wire();
4151
+ </div>`, this._rendered = !0, z(this, this._value), this._wire();
4103
4152
  }
4104
4153
  _syncFormValue() {
4105
- R(this, this._value);
4154
+ z(this, this._value);
4106
4155
  }
4107
4156
  _syncTrigger() {
4108
4157
  let e = this.querySelector(".datepicker-trigger"), t = this.querySelector("[data-trigger-label]");
4109
4158
  if (!t) return;
4110
4159
  let n = G(this._value);
4111
- t.textContent = n ? Ln(this._value) : this.getAttribute("placeholder") || "Enter Date", t.classList.toggle("search-select-placeholder", !n), e?.classList.toggle("has-value", !!n);
4160
+ t.textContent = n ? Un(this._value) : this.getAttribute("placeholder") || "Enter Date", t.classList.toggle("search-select-placeholder", !n), e?.classList.toggle("has-value", !!n);
4112
4161
  }
4113
4162
  _limits() {
4114
4163
  let e = G(this.getAttribute("min")), t = G(this.getAttribute("max")), n = e ? new Date(e.y, e.m, e.d).getTime() : -Infinity, r = t ? new Date(t.y, t.m, t.d).getTime() : Infinity;
@@ -4119,7 +4168,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4119
4168
  },
4120
4169
  monthDisabled: (e, t) => {
4121
4170
  let i = new Date(e, t, 1).getTime();
4122
- return new Date(e, t, Rn(e, t)).getTime() < n || i > r;
4171
+ return new Date(e, t, Wn(e, t)).getTime() < n || i > r;
4123
4172
  },
4124
4173
  yearDisabled: (e) => {
4125
4174
  let t = new Date(e, 0, 1).getTime();
@@ -4132,29 +4181,29 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4132
4181
  e && (this._mode === "months" ? e.innerHTML = this._monthsHtml() : this._mode === "years" ? e.innerHTML = this._yearsHtml() : e.innerHTML = this._daysHtml(), this._focusActive());
4133
4182
  }
4134
4183
  _daysHtml() {
4135
- let e = this._firstDay(), t = (new Date(this._viewY, this._viewM, 1).getDay() - e + 7) % 7, n = Rn(this._viewY, this._viewM), r = G(this._value), i = /* @__PURE__ */ new Date(), { dayDisabled: a } = this._limits(), o = this._focus || r || {
4184
+ let e = this._firstDay(), t = (new Date(this._viewY, this._viewM, 1).getDay() - e + 7) % 7, n = Wn(this._viewY, this._viewM), r = G(this._value), i = /* @__PURE__ */ new Date(), { dayDisabled: a } = this._limits(), o = this._focus || r || {
4136
4185
  y: this._viewY,
4137
4186
  m: this._viewM,
4138
4187
  d: 1
4139
4188
  }, s = (e, t, n, s) => {
4140
- let c = In(e, t, n), l = r && r.y === e && r.m === t && r.d === n, u = i.getFullYear() === e && i.getMonth() === t && i.getDate() === n, d = o.y === e && o.m === t && o.d === n, f = a(e, t, n);
4189
+ let c = Hn(e, t, n), l = r && r.y === e && r.m === t && r.d === n, u = i.getFullYear() === e && i.getMonth() === t && i.getDate() === n, d = o.y === e && o.m === t && o.d === n, f = a(e, t, n);
4141
4190
  return `<button type="button" class="${[
4142
4191
  "datepicker-day",
4143
4192
  s ? "is-outside" : "",
4144
4193
  u ? "is-today" : "",
4145
4194
  l ? "is-selected" : ""
4146
4195
  ].filter(Boolean).join(" ")}" data-iso="${c}" role="gridcell" tabindex="${d && !f ? "0" : "-1"}"${l ? " aria-selected=\"true\"" : ""}${f ? " disabled aria-disabled=\"true\"" : ""}>${n}</button>`;
4147
- }, c = "", l = K(this._viewY, this._viewM - 1), u = Rn(l.y, l.m);
4196
+ }, c = "", l = K(this._viewY, this._viewM - 1), u = Wn(l.y, l.m);
4148
4197
  for (let e = t - 1; e >= 0; e--) c += s(l.y, l.m, u - e, !0);
4149
4198
  for (let e = 1; e <= n; e++) c += s(this._viewY, this._viewM, e, !1);
4150
4199
  let d = K(this._viewY, this._viewM + 1), f = (7 - (t + n) % 7) % 7;
4151
4200
  for (let e = 1; e <= f; e++) c += s(d.y, d.m, e, !0);
4152
- let p = a(i.getFullYear(), i.getMonth(), i.getDate()), m = Pn.map((t, n) => Pn[(n + e) % 7]).map((e) => `<span>${e}</span>`).join("");
4201
+ let p = a(i.getFullYear(), i.getMonth(), i.getDate()), m = Bn.map((t, n) => Bn[(n + e) % 7]).map((e) => `<span>${e}</span>`).join("");
4153
4202
  return `
4154
4203
  <div class="datepicker-head">
4155
- <button type="button" class="datepicker-nav-btn" data-nav="-1" aria-label="Previous month">${B("chevron-left")}</button>
4156
- <button type="button" class="datepicker-month" data-view="months" aria-label="Choose month and year">${Nn[this._viewM]} ${this._viewY}</button>
4157
- <button type="button" class="datepicker-nav-btn" data-nav="1" aria-label="Next month">${B("chevron-right")}</button>
4204
+ <button type="button" class="datepicker-nav-btn" data-nav="-1" aria-label="Previous month">${V("chevron-left")}</button>
4205
+ <button type="button" class="datepicker-month" data-view="months" aria-label="Choose month and year">${zn[this._viewM]} ${this._viewY}</button>
4206
+ <button type="button" class="datepicker-nav-btn" data-nav="1" aria-label="Next month">${V("chevron-right")}</button>
4158
4207
  </div>
4159
4208
  <div class="datepicker-weekdays">${m}</div>
4160
4209
  <div class="datepicker-grid${this._slide ? ` ${this._slide}` : ""}" role="grid">${c}</div>
@@ -4171,13 +4220,13 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4171
4220
  o ? "is-today" : "",
4172
4221
  a ? "is-selected" : ""
4173
4222
  ].filter(Boolean).join(" ");
4174
- r += `<button type="button" class="${c}" data-month="${i}"${s ? " disabled" : ""}>${Nn[i].slice(0, 3)}</button>`;
4223
+ r += `<button type="button" class="${c}" data-month="${i}"${s ? " disabled" : ""}>${zn[i].slice(0, 3)}</button>`;
4175
4224
  }
4176
4225
  return `
4177
4226
  <div class="datepicker-head">
4178
- <button type="button" class="datepicker-nav-btn" data-nav-year="-1" aria-label="Previous year">${B("chevron-left")}</button>
4227
+ <button type="button" class="datepicker-nav-btn" data-nav-year="-1" aria-label="Previous year">${V("chevron-left")}</button>
4179
4228
  <button type="button" class="datepicker-month" data-view="years" aria-label="Choose year">${this._viewY}</button>
4180
- <button type="button" class="datepicker-nav-btn" data-nav-year="1" aria-label="Next year">${B("chevron-right")}</button>
4229
+ <button type="button" class="datepicker-nav-btn" data-nav-year="1" aria-label="Next year">${V("chevron-right")}</button>
4181
4230
  </div>
4182
4231
  <div class="datepicker-cells">${r}</div>`;
4183
4232
  }
@@ -4193,9 +4242,9 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4193
4242
  }
4194
4243
  return `
4195
4244
  <div class="datepicker-head">
4196
- <button type="button" class="datepicker-nav-btn" data-nav-decade="-1" aria-label="Previous decade">${B("chevron-left")}</button>
4245
+ <button type="button" class="datepicker-nav-btn" data-nav-decade="-1" aria-label="Previous decade">${V("chevron-left")}</button>
4197
4246
  <span class="datepicker-month">${r + 1} to ${r + 10}</span>
4198
- <button type="button" class="datepicker-nav-btn" data-nav-decade="1" aria-label="Next decade">${B("chevron-right")}</button>
4247
+ <button type="button" class="datepicker-nav-btn" data-nav-decade="1" aria-label="Next decade">${V("chevron-right")}</button>
4199
4248
  </div>
4200
4249
  <div class="datepicker-cells">${i}</div>`;
4201
4250
  }
@@ -4204,7 +4253,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4204
4253
  t && e.contains(document.activeElement) && t.focus();
4205
4254
  }
4206
4255
  _position(e, t) {
4207
- F(e, t, { clampHeight: !0 });
4256
+ I(e, t, { clampHeight: !0 });
4208
4257
  }
4209
4258
  _setFocus(e, t, n, r) {
4210
4259
  let { y: i, m: a } = K(e, t);
@@ -4214,7 +4263,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4214
4263
  d: n
4215
4264
  };
4216
4265
  let o = i !== this._viewY || a !== this._viewM;
4217
- this._viewY = i, this._viewM = a, this._slide = o && r || "", this._renderView(), this._slide = "", this.querySelector(`.datepicker-day[data-iso="${In(i, a, n)}"]`)?.focus();
4266
+ this._viewY = i, this._viewM = a, this._slide = o && r || "", this._renderView(), this._slide = "", this.querySelector(`.datepicker-day[data-iso="${Hn(i, a, n)}"]`)?.focus();
4218
4267
  }
4219
4268
  _onKey(e) {
4220
4269
  if (this._mode !== "days") {
@@ -4240,16 +4289,16 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4240
4289
  case "PageUp": {
4241
4290
  e.preventDefault();
4242
4291
  let n = K(t.y, t.m - (e.shiftKey ? 12 : 1));
4243
- return this._setFocus(n.y, n.m, Math.min(t.d, Rn(n.y, n.m)), "slide-prev");
4292
+ return this._setFocus(n.y, n.m, Math.min(t.d, Wn(n.y, n.m)), "slide-prev");
4244
4293
  }
4245
4294
  case "PageDown": {
4246
4295
  e.preventDefault();
4247
4296
  let n = K(t.y, t.m + (e.shiftKey ? 12 : 1));
4248
- return this._setFocus(n.y, n.m, Math.min(t.d, Rn(n.y, n.m)), "slide-next");
4297
+ return this._setFocus(n.y, n.m, Math.min(t.d, Wn(n.y, n.m)), "slide-next");
4249
4298
  }
4250
4299
  case "Enter":
4251
4300
  case " ":
4252
- e.preventDefault(), this._limits().dayDisabled(t.y, t.m, t.d) || (this.value = In(t.y, t.m, t.d), this.dispatchEvent(new Event("change", { bubbles: !0 })), this._close());
4301
+ e.preventDefault(), this._limits().dayDisabled(t.y, t.m, t.d) || (this.value = Hn(t.y, t.m, t.d), this.dispatchEvent(new Event("change", { bubbles: !0 })), this._close());
4253
4302
  return;
4254
4303
  case "Escape": return this._close();
4255
4304
  default:
@@ -4316,7 +4365,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4316
4365
  if (e.target.closest("[data-today]")) {
4317
4366
  let e = /* @__PURE__ */ new Date();
4318
4367
  if (this._limits().dayDisabled(e.getFullYear(), e.getMonth(), e.getDate())) return;
4319
- this.value = In(e.getFullYear(), e.getMonth(), e.getDate()), this.dispatchEvent(new Event("change", { bubbles: !0 })), this._close();
4368
+ this.value = Hn(e.getFullYear(), e.getMonth(), e.getDate()), this.dispatchEvent(new Event("change", { bubbles: !0 })), this._close();
4320
4369
  return;
4321
4370
  }
4322
4371
  if (e.target.closest("[data-clear]")) {
@@ -4333,18 +4382,18 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4333
4382
  this._popClick = !1, r() && !t && !this.contains(e.target) && this._close();
4334
4383
  }, document.addEventListener("click", this._onDocClick), this._onDocKey = (e) => {
4335
4384
  r() && e.key === "Escape" && this._close();
4336
- }, document.addEventListener("keydown", this._onDocKey), I(this, () => {
4385
+ }, document.addEventListener("keydown", this._onDocKey), L(this, () => {
4337
4386
  r() && this._position(e, t);
4338
4387
  });
4339
4388
  }, this._bindGlobal(), this._syncFormValue();
4340
4389
  }
4341
4390
  _teardown() {
4342
- this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null), L(this);
4391
+ this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null), R(this);
4343
4392
  }
4344
4393
  disconnectedCallback() {
4345
4394
  this._teardown();
4346
4395
  }
4347
- }, Bn = class extends e {
4396
+ }, Kn = class extends e {
4348
4397
  static formAssociated = !0;
4349
4398
  static get observedAttributes() {
4350
4399
  return [
@@ -4412,7 +4461,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4412
4461
  text: e,
4413
4462
  empty: !0
4414
4463
  } : {
4415
- text: `${Ln(this._start) || "Start"} to ${Ln(this._end) || "End"}`,
4464
+ text: `${Un(this._start) || "Start"} to ${Un(this._end) || "End"}`,
4416
4465
  empty: !1
4417
4466
  };
4418
4467
  }
@@ -4423,9 +4472,9 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4423
4472
  let t = this.getAttribute("size"), n = t === "sm" ? " input-sm" : t === "lg" ? " input-lg" : "", { text: r, empty: i } = this._label(), a = this.getAttribute("aria-label"), o = this.getAttribute("aria-describedby");
4424
4473
  this.innerHTML = `
4425
4474
  <div class="daterange">
4426
- <button type="button" class="input daterange-trigger${n}${i ? "" : " has-value"}" aria-haspopup="dialog" aria-expanded="false"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}${a ? ` aria-label="${V(a)}"` : ""}${o ? ` aria-describedby="${V(o)}"` : ""}>
4427
- <span data-range-label class="${i ? "search-select-placeholder" : ""}">${V(r)}</span>
4428
- ${B("calendar")}
4475
+ <button type="button" class="input daterange-trigger${n}${i ? "" : " has-value"}" aria-haspopup="dialog" aria-expanded="false"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}${a ? ` aria-label="${H(a)}"` : ""}${o ? ` aria-describedby="${H(o)}"` : ""}>
4476
+ <span data-range-label class="${i ? "search-select-placeholder" : ""}">${H(r)}</span>
4477
+ ${V("calendar")}
4429
4478
  </button>
4430
4479
  <div class="daterange-pop" role="dialog" aria-modal="false" hidden></div>
4431
4480
  </div>`, this._rendered = !0, this._syncMirrors(), this._wire();
@@ -4459,17 +4508,17 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4459
4508
  };
4460
4509
  }
4461
4510
  _monthHtml(e, t) {
4462
- let n = this._firstDay(), r = (new Date(e, t, 1).getDay() - n + 7) % 7, i = Rn(e, t), a = this._limits(), o = Pn.map((e, t) => Pn[(t + n) % 7]).map((e) => `<span>${e}</span>`).join(""), s = (e, t, n, r) => {
4463
- let i = In(e, t, n), o = a(e, t, n);
4511
+ let n = this._firstDay(), r = (new Date(e, t, 1).getDay() - n + 7) % 7, i = Wn(e, t), a = this._limits(), o = Bn.map((e, t) => Bn[(t + n) % 7]).map((e) => `<span>${e}</span>`).join(""), s = (e, t, n, r) => {
4512
+ let i = Hn(e, t, n), o = a(e, t, n);
4464
4513
  return `<button type="button" class="${["datepicker-day", r ? "is-outside" : ""].filter(Boolean).join(" ")}" data-iso="${i}"${o ? " disabled" : ""}>${n}</button>`;
4465
- }, c = "", l = K(e, t - 1), u = Rn(l.y, l.m);
4514
+ }, c = "", l = K(e, t - 1), u = Wn(l.y, l.m);
4466
4515
  for (let e = r - 1; e >= 0; e--) c += s(l.y, l.m, u - e, !0);
4467
4516
  for (let n = 1; n <= i; n++) c += s(e, t, n, !1);
4468
4517
  let d = K(e, t + 1), f = (7 - (r + i) % 7) % 7;
4469
4518
  for (let e = 1; e <= f; e++) c += s(d.y, d.m, e, !0);
4470
4519
  return `
4471
4520
  <div class="daterange-cal">
4472
- <div class="datepicker-month-label">${Nn[t]} ${e}</div>
4521
+ <div class="datepicker-month-label">${zn[t]} ${e}</div>
4473
4522
  <div class="datepicker-weekdays">${o}</div>
4474
4523
  <div class="datepicker-grid" role="grid">${c}</div>
4475
4524
  </div>`;
@@ -4480,8 +4529,8 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4480
4529
  let t = K(this._viewY, this._viewM + 1);
4481
4530
  e.innerHTML = `
4482
4531
  <div class="daterange-head">
4483
- <button type="button" class="datepicker-nav-btn" data-nav="-1" aria-label="Previous month">${B("chevron-left")}</button>
4484
- <button type="button" class="datepicker-nav-btn" data-nav="1" aria-label="Next month">${B("chevron-right")}</button>
4532
+ <button type="button" class="datepicker-nav-btn" data-nav="-1" aria-label="Previous month">${V("chevron-left")}</button>
4533
+ <button type="button" class="datepicker-nav-btn" data-nav="1" aria-label="Next month">${V("chevron-right")}</button>
4485
4534
  </div>
4486
4535
  <div class="daterange-cals">
4487
4536
  ${this._monthHtml(this._viewY, this._viewM)}
@@ -4503,10 +4552,10 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4503
4552
  n.classList.toggle("is-range-start", i), n.classList.toggle("is-range-end", a), n.classList.toggle("in-range", o);
4504
4553
  }
4505
4554
  let i = e.querySelector("[data-range-hint]");
4506
- i && (i.textContent = this._start ? this._end ? `${Ln(this._start)} to ${Ln(this._end)}` : "Pick an end date" : "Pick a start date");
4555
+ i && (i.textContent = this._start ? this._end ? `${Un(this._start)} to ${Un(this._end)}` : "Pick an end date" : "Pick a start date");
4507
4556
  }
4508
4557
  _position(e, t) {
4509
- F(e, t, { clampHeight: !0 });
4558
+ I(e, t, { clampHeight: !0 });
4510
4559
  }
4511
4560
  _pick(e) {
4512
4561
  if (!this._start || this._start && this._end) {
@@ -4557,18 +4606,18 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4557
4606
  this._popClick = !1, r() && !t && !this.contains(e.target) && this._close();
4558
4607
  }, document.addEventListener("click", this._onDocClick), this._onDocKey = (e) => {
4559
4608
  r() && e.key === "Escape" && this._close();
4560
- }, document.addEventListener("keydown", this._onDocKey), I(this, () => {
4609
+ }, document.addEventListener("keydown", this._onDocKey), L(this, () => {
4561
4610
  r() && this._position(e, t);
4562
4611
  });
4563
4612
  }, this._bindGlobal(), this._syncMirrors();
4564
4613
  }
4565
4614
  _teardown() {
4566
- this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null), L(this);
4615
+ this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null), R(this);
4567
4616
  }
4568
4617
  disconnectedCallback() {
4569
4618
  this._teardown();
4570
4619
  }
4571
- }, Vn = class extends e {
4620
+ }, qn = class extends e {
4572
4621
  static get observedAttributes() {
4573
4622
  return [
4574
4623
  "static",
@@ -4589,10 +4638,10 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4589
4638
  e === "static" && this.isConnected && this._wire();
4590
4639
  }
4591
4640
  _maxScale() {
4592
- return Hn(this.getAttribute("max-scale"), 1.6);
4641
+ return Jn(this.getAttribute("max-scale"), 1.6);
4593
4642
  }
4594
4643
  _radius() {
4595
- return Hn(this.getAttribute("radius"), 100);
4644
+ return Jn(this.getAttribute("radius"), 100);
4596
4645
  }
4597
4646
  _magnifyEnabled() {
4598
4647
  return !(this.hasAttribute("static") || typeof matchMedia == "function" && (matchMedia("(pointer: coarse)").matches || matchMedia("(prefers-reduced-motion: reduce)").matches));
@@ -4617,21 +4666,21 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
4617
4666
  _teardown() {
4618
4667
  this._pointerMoveListener &&= (this.removeEventListener("pointermove", this._pointerMoveListener), null), this._pointerLeaveListener &&= (this.removeEventListener("pointerleave", this._pointerLeaveListener), null), this._resetMagnification();
4619
4668
  }
4620
- }, Hn = (e, t) => {
4669
+ }, Jn = (e, t) => {
4621
4670
  let n = Number.parseFloat(e);
4622
4671
  return Number.isFinite(n) ? n : t;
4623
- }, Un = 4096, Wn = [
4672
+ }, Yn = 4096, Xn = [
4624
4673
  .92,
4625
4674
  .8,
4626
4675
  .65,
4627
4676
  .5
4628
- ], Gn = .8, Kn = 8;
4629
- function qn(e) {
4677
+ ], Zn = .8, Qn = 8;
4678
+ function $n(e) {
4630
4679
  if (e == null || e === "" || e === "free") return null;
4631
4680
  let t = typeof e == "number" ? e : Number(e);
4632
4681
  return Number.isFinite(t) && t > 0 ? t : null;
4633
4682
  }
4634
- function Jn(e, t, n) {
4683
+ function er(e, t, n) {
4635
4684
  if (!n) return {
4636
4685
  x: 0,
4637
4686
  y: 0,
@@ -4646,46 +4695,46 @@ function Jn(e, t, n) {
4646
4695
  h: i
4647
4696
  };
4648
4697
  }
4649
- function Yn(e, t, n) {
4698
+ function tr(e, t, n) {
4650
4699
  return {
4651
4700
  ...e,
4652
4701
  x: Math.min(Math.max(e.x, 0), Math.max(t - e.w, 0)),
4653
4702
  y: Math.min(Math.max(e.y, 0), Math.max(n - e.h, 0))
4654
4703
  };
4655
4704
  }
4656
- function Xn(e, t, n, r, i) {
4657
- return Yn({
4705
+ function nr(e, t, n, r, i) {
4706
+ return tr({
4658
4707
  ...e,
4659
4708
  x: e.x + t,
4660
4709
  y: e.y + n
4661
4710
  }, r, i);
4662
4711
  }
4663
- function Zn(e, t) {
4712
+ function rr(e, t) {
4664
4713
  return Math.min(32, e, t);
4665
4714
  }
4666
- function Qn(e, t) {
4715
+ function ir(e, t) {
4667
4716
  return t.w / e.w;
4668
4717
  }
4669
- function $n(e, t) {
4670
- return Math.max(4, Qn(e, t));
4718
+ function ar(e, t) {
4719
+ return Math.max(4, ir(e, t));
4671
4720
  }
4672
- function er(e, t, n, r, i) {
4673
- let a = Math.min(Math.max(n, 1), $n(e, t)), o = e.h / e.w, s = Math.min(r, i / o), c = Math.min(Math.max(Zn(r, i), Zn(r, i) / o), s), l = Math.min(Math.max(t.w / a, c), s), u = l * o, d = e.x + e.w / 2, f = e.y + e.h / 2;
4674
- return Yn({
4721
+ function or(e, t, n, r, i) {
4722
+ let a = Math.min(Math.max(n, 1), ar(e, t)), o = e.h / e.w, s = Math.min(r, i / o), c = Math.min(Math.max(rr(r, i), rr(r, i) / o), s), l = Math.min(Math.max(t.w / a, c), s), u = l * o, d = e.x + e.w / 2, f = e.y + e.h / 2;
4723
+ return tr({
4675
4724
  x: d - l / 2,
4676
4725
  y: f - u / 2,
4677
4726
  w: l,
4678
4727
  h: u
4679
4728
  }, r, i);
4680
4729
  }
4681
- var tr = [
4730
+ var sr = [
4682
4731
  "nw",
4683
4732
  "ne",
4684
4733
  "sw",
4685
4734
  "se"
4686
4735
  ];
4687
- function nr(e, t, n, r, i, a) {
4688
- let o = Zn(i, a), s = t.endsWith("w"), c = t.startsWith("n"), l = s ? e.x + e.w : e.x, u = c ? e.y + e.h : e.y, d = Math.min(Math.max(n, 0), i), f = Math.min(Math.max(r, 0), a);
4736
+ function cr(e, t, n, r, i, a) {
4737
+ let o = rr(i, a), s = t.endsWith("w"), c = t.startsWith("n"), l = s ? e.x + e.w : e.x, u = c ? e.y + e.h : e.y, d = Math.min(Math.max(n, 0), i), f = Math.min(Math.max(r, 0), a);
4689
4738
  return d = s ? Math.min(d, l - o) : Math.max(d, l + o), f = c ? Math.min(f, u - o) : Math.max(f, u + o), {
4690
4739
  x: Math.min(d, l),
4691
4740
  y: Math.min(f, u),
@@ -4693,53 +4742,53 @@ function nr(e, t, n, r, i, a) {
4693
4742
  h: Math.abs(f - u)
4694
4743
  };
4695
4744
  }
4696
- function rr(e, t = Un) {
4745
+ function lr(e, t = Yn) {
4697
4746
  let n = Math.min(1, t / Math.max(e.w, e.h));
4698
4747
  return {
4699
4748
  width: Math.max(1, Math.round(e.w * n)),
4700
4749
  height: Math.max(1, Math.round(e.h * n))
4701
4750
  };
4702
4751
  }
4703
- var ir = [
4752
+ var ur = [
4704
4753
  "image/png",
4705
4754
  "image/jpeg",
4706
4755
  "image/webp"
4707
- ], ar = {
4756
+ ], dr = {
4708
4757
  "image/png": ".png",
4709
4758
  "image/jpeg": ".jpg",
4710
4759
  "image/webp": ".webp"
4711
4760
  };
4712
- function or(e) {
4761
+ function fr(e) {
4713
4762
  let t = String(e || "").toLowerCase();
4714
- return ir.includes(t) ? t : "image/png";
4763
+ return ur.includes(t) ? t : "image/png";
4715
4764
  }
4716
- function sr(e, t) {
4717
- let n = String(e || "image"), r = ar[t];
4765
+ function pr(e, t) {
4766
+ let n = String(e || "image"), r = dr[t];
4718
4767
  return (t === "image/jpeg" ? /\.jpe?g$/i.test(n) : n.toLowerCase().endsWith(r)) ? n : `${n.replace(/\.[^./\\]+$/, "") || "image"}${r}`;
4719
4768
  }
4720
- async function cr(e, { width: t, height: n, type: r, maxBytes: i }) {
4769
+ async function mr(e, { width: t, height: n, type: r, maxBytes: i }) {
4721
4770
  let a = r, o = t, s = n, c = null;
4722
- for (let t = 0; t <= Kn; t++) {
4723
- let n = a === "image/png" ? [void 0] : t === 0 ? Wn : [Wn[1]];
4771
+ for (let t = 0; t <= Qn; t++) {
4772
+ let n = a === "image/png" ? [void 0] : t === 0 ? Xn : [Xn[1]];
4724
4773
  for (let t of n) {
4725
4774
  if (c = await e(o, s, a, t), !c || (c.type && c.type !== a && (a = c.type), !(i > 0) || c.size <= i)) return c;
4726
4775
  if (a === "image/png") break;
4727
4776
  }
4728
- o = Math.max(1, Math.round(o * Gn)), s = Math.max(1, Math.round(s * Gn));
4777
+ o = Math.max(1, Math.round(o * Zn)), s = Math.max(1, Math.round(s * Zn));
4729
4778
  }
4730
4779
  return c;
4731
4780
  }
4732
4781
  //#endregion
4733
4782
  //#region src/WuiImageCrop.js
4734
- var lr = .05, ur = .2, dr = {
4783
+ var hr = .05, gr = .2, _r = {
4735
4784
  w: 320,
4736
4785
  h: 240
4737
- }, fr = {
4786
+ }, vr = {
4738
4787
  nw: "top left",
4739
4788
  ne: "top right",
4740
4789
  sw: "bottom left",
4741
4790
  se: "bottom right"
4742
- }, pr = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14\"/></svg>", mr = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14M12 5v14\"/></svg>", hr = class extends e {
4791
+ }, yr = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14\"/></svg>", br = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14M12 5v14\"/></svg>", xr = class extends e {
4743
4792
  static get observedAttributes() {
4744
4793
  return [
4745
4794
  "src",
@@ -4757,7 +4806,7 @@ var lr = .05, ur = .2, dr = {
4757
4806
  e == null || e === "" ? this.removeAttribute("src") : this.setAttribute("src", String(e));
4758
4807
  }
4759
4808
  get aspect() {
4760
- return qn(this.getAttribute("aspect"));
4809
+ return $n(this.getAttribute("aspect"));
4761
4810
  }
4762
4811
  set aspect(e) {
4763
4812
  e == null || e === "" ? this.removeAttribute("aspect") : this.setAttribute("aspect", String(e));
@@ -4772,10 +4821,10 @@ var lr = .05, ur = .2, dr = {
4772
4821
  return this._rect ? { ...this._rect } : null;
4773
4822
  }
4774
4823
  get zoom() {
4775
- return this._rect ? Qn(this._rect, this._base) : 1;
4824
+ return this._rect ? ir(this._rect, this._base) : 1;
4776
4825
  }
4777
4826
  set zoom(e) {
4778
- this._rect && (this._rect = er(this._rect, this._base, Number(e) || 1, this._natural.w, this._natural.h), this._paint(), this._announce());
4827
+ this._rect && (this._rect = or(this._rect, this._base, Number(e) || 1, this._natural.w, this._natural.h), this._paint(), this._announce());
4779
4828
  }
4780
4829
  connectedCallback() {
4781
4830
  if (!this._rendered) {
@@ -4797,18 +4846,18 @@ var lr = .05, ur = .2, dr = {
4797
4846
  <div class="wui-crop-frame"></div>
4798
4847
  </div>
4799
4848
  <div class="wui-crop-controls">
4800
- <button type="button" class="wui-crop-zoombtn" data-zoom="out" aria-label="Zoom out">${pr}</button>
4849
+ <button type="button" class="wui-crop-zoombtn" data-zoom="out" aria-label="Zoom out">${yr}</button>
4801
4850
  <input type="range" class="form-range wui-crop-zoom" min="1" max="4" step="0.01" value="1" aria-label="Zoom">
4802
- <button type="button" class="wui-crop-zoombtn" data-zoom="in" aria-label="Zoom in">${mr}</button>
4851
+ <button type="button" class="wui-crop-zoombtn" data-zoom="in" aria-label="Zoom in">${br}</button>
4803
4852
  </div>
4804
4853
  <div class="visually-hidden" data-wui-crop-live aria-live="polite"></div>
4805
4854
  </div>`, this._stage = this.querySelector(".wui-crop-stage"), this._img = this.querySelector(".wui-crop-img"), this._frame = this.querySelector(".wui-crop-frame"), this._slider = this.querySelector(".wui-crop-zoom"), this._live = this.querySelector("[data-wui-crop-live]"), this._rendered = !0, this._frame.classList.toggle("wui-crop-frame--round", this.round), this._rebuildHandles(), this._wire(), this._observe(), this._loadImage();
4806
4855
  }
4807
4856
  _rebuildHandles() {
4808
4857
  for (let e of this._frame.querySelectorAll(".wui-crop-handle")) e.remove();
4809
- if (!this.aspect) for (let e of tr) {
4858
+ if (!this.aspect) for (let e of sr) {
4810
4859
  let t = document.createElement("button");
4811
- t.type = "button", t.className = `wui-crop-handle wui-crop-handle--${e}`, t.dataset.handle = e, t.setAttribute("aria-label", `Resize ${fr[e]} corner`), this._frame.appendChild(t);
4860
+ t.type = "button", t.className = `wui-crop-handle wui-crop-handle--${e}`, t.dataset.handle = e, t.setAttribute("aria-label", `Resize ${vr[e]} corner`), this._frame.appendChild(t);
4812
4861
  }
4813
4862
  }
4814
4863
  _loadImage() {
@@ -4824,13 +4873,13 @@ var lr = .05, ur = .2, dr = {
4824
4873
  }, this._img.src = e);
4825
4874
  }
4826
4875
  _resetRect() {
4827
- this._natural && (this._base = Jn(this._natural.w, this._natural.h, this.aspect), this._rect = { ...this._base }, this._frame.hidden = !1, this._paint());
4876
+ this._natural && (this._base = er(this._natural.w, this._natural.h, this.aspect), this._rect = { ...this._base }, this._frame.hidden = !1, this._paint());
4828
4877
  }
4829
4878
  _observe() {
4830
4879
  typeof ResizeObserver > "u" || this._resizeObserver || (this._resizeObserver = new ResizeObserver(() => this._paint()), this._resizeObserver.observe(this._stage));
4831
4880
  }
4832
4881
  _view() {
4833
- let e = this._stage.clientWidth || dr.w, t = this._stage.clientHeight || dr.h, n = Math.min(e / this._natural.w, t / this._natural.h), r = this._natural.w * n, i = this._natural.h * n;
4882
+ let e = this._stage.clientWidth || _r.w, t = this._stage.clientHeight || _r.h, n = Math.min(e / this._natural.w, t / this._natural.h), r = this._natural.w * n, i = this._natural.h * n;
4834
4883
  return {
4835
4884
  scale: n,
4836
4885
  left: (e - r) / 2,
@@ -4855,7 +4904,7 @@ var lr = .05, ur = .2, dr = {
4855
4904
  width: `${t.w * e.scale}px`,
4856
4905
  height: `${t.h * e.scale}px`
4857
4906
  });
4858
- let n = Qn(t, this._base), r = $n(t, this._base);
4907
+ let n = ir(t, this._base), r = ar(t, this._base);
4859
4908
  this._slider.max = String(r), this._slider.value = String(Math.min(Math.max(n, 1), r)), this._slider.setAttribute("aria-valuetext", `${Math.round(n * 100)}%`);
4860
4909
  }
4861
4910
  _announce() {
@@ -4865,7 +4914,7 @@ var lr = .05, ur = .2, dr = {
4865
4914
  }));
4866
4915
  }
4867
4916
  _say() {
4868
- let e = this._rect, t = `Frame ${Math.round(e.w)} by ${Math.round(e.h)} pixels, ${Math.round(e.x)} from the left, ${Math.round(e.y)} from the top, zoom ${Math.round(Qn(e, this._base) * 100)}%.`;
4917
+ let e = this._rect, t = `Frame ${Math.round(e.w)} by ${Math.round(e.h)} pixels, ${Math.round(e.x)} from the left, ${Math.round(e.y)} from the top, zoom ${Math.round(ir(e, this._base) * 100)}%.`;
4869
4918
  this._live.textContent = t === this._live.textContent ? `${t}\u00a0` : t;
4870
4919
  }
4871
4920
  _wire() {
@@ -4886,8 +4935,8 @@ var lr = .05, ur = .2, dr = {
4886
4935
  let r = this._view(), { w: i, h: a } = this._natural;
4887
4936
  if (n.corner) {
4888
4937
  let o = e.getBoundingClientRect(), s = (t.clientX - o.left - e.clientLeft - r.left) / r.scale, c = (t.clientY - o.top - e.clientTop - r.top) / r.scale;
4889
- this._rect = nr(this._rect, n.corner, s, c, i, a);
4890
- } else this._rect = Xn(n.start, (t.clientX - n.x) / r.scale, (t.clientY - n.y) / r.scale, i, a);
4938
+ this._rect = cr(this._rect, n.corner, s, c, i, a);
4939
+ } else this._rect = nr(n.start, (t.clientX - n.x) / r.scale, (t.clientY - n.y) / r.scale, i, a);
4891
4940
  this._paint();
4892
4941
  });
4893
4942
  let t = (t) => {
@@ -4911,19 +4960,19 @@ var lr = .05, ur = .2, dr = {
4911
4960
  if (e.key === "+" || e.key === "=") this.zoom *= 1.25, this._say();
4912
4961
  else if (e.key === "-" || e.key === "_") this.zoom *= .8, this._say();
4913
4962
  else if (e.key.startsWith("Arrow")) {
4914
- let r = e.shiftKey ? ur : lr, i = e.key === "ArrowRight" ? 1 : e.key === "ArrowLeft" ? -1 : 0, a = e.key === "ArrowDown" ? 1 : e.key === "ArrowUp" ? -1 : 0, o = e.target.closest?.(".wui-crop-handle")?.dataset.handle;
4963
+ let r = e.shiftKey ? gr : hr, i = e.key === "ArrowRight" ? 1 : e.key === "ArrowLeft" ? -1 : 0, a = e.key === "ArrowDown" ? 1 : e.key === "ArrowUp" ? -1 : 0, o = e.target.closest?.(".wui-crop-handle")?.dataset.handle;
4915
4964
  if (o) {
4916
4965
  let e = this._rect, s = (o.endsWith("w") ? e.x : e.x + e.w) + i * r * e.w, c = (o.startsWith("n") ? e.y : e.y + e.h) + a * r * e.h;
4917
- this._rect = nr(e, o, s, c, t, n);
4918
- } else this._rect = Xn(this._rect, i * r * this._rect.w, a * r * this._rect.h, t, n);
4966
+ this._rect = cr(e, o, s, c, t, n);
4967
+ } else this._rect = nr(this._rect, i * r * this._rect.w, a * r * this._rect.h, t, n);
4919
4968
  this._paint(), this._announce(), this._say();
4920
4969
  } else return;
4921
4970
  e.preventDefault();
4922
4971
  }
4923
4972
  async toBlob({ type: e, maxBytes: t = 0 } = {}) {
4924
4973
  if (!this._rect) return null;
4925
- let n = or(e), r = Yn(this._rect, this._natural.w, this._natural.h), { width: i, height: a } = rr(r);
4926
- return cr((e, t, n, i) => new Promise((a) => {
4974
+ let n = fr(e), r = tr(this._rect, this._natural.w, this._natural.h), { width: i, height: a } = lr(r);
4975
+ return mr((e, t, n, i) => new Promise((a) => {
4927
4976
  let o = document.createElement("canvas");
4928
4977
  o.width = e, o.height = t;
4929
4978
  let s = o.getContext("2d");
@@ -4944,25 +4993,25 @@ var lr = .05, ur = .2, dr = {
4944
4993
  type: t,
4945
4994
  maxBytes: n
4946
4995
  });
4947
- return r ? new File([r], sr(e, r.type), { type: r.type }) : null;
4996
+ return r ? new File([r], pr(e, r.type), { type: r.type }) : null;
4948
4997
  }
4949
- }, gr = {
4998
+ }, Sr = {
4950
4999
  enter: "Enter",
4951
5000
  comma: ",",
4952
5001
  space: " ",
4953
5002
  tab: "Tab"
4954
- }, _r = {
5003
+ }, Cr = {
4955
5004
  enter: "\n",
4956
5005
  comma: ",",
4957
5006
  space: " ",
4958
5007
  tab: " "
4959
- }, vr = (e) => gr[e], yr = (e) => _r[e];
4960
- function br(e, t) {
5008
+ }, wr = (e) => Sr[e], Tr = (e) => Cr[e];
5009
+ function Er(e, t) {
4961
5010
  let n = [String(e ?? "")];
4962
5011
  for (let e of t) n = n.flatMap((t) => t.split(e));
4963
5012
  return n.map((e) => e.trim()).filter(Boolean);
4964
5013
  }
4965
- var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extends e {
5014
+ var Dr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Or = class extends e {
4966
5015
  static formAssociated = !0;
4967
5016
  _accessibleName() {
4968
5017
  return this.getAttribute("aria-label") || this.getAttribute("placeholder") || "Select";
@@ -5026,7 +5075,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5026
5075
  return this._values.slice();
5027
5076
  }
5028
5077
  set values(e) {
5029
- this._values = Array.isArray(e) ? e.map(String) : [], z(this, this._values), this._rendered && (this._renderControl(), this._renderOptions(this._query()));
5078
+ this._values = Array.isArray(e) ? e.map(String) : [], B(this, this._values), this._rendered && (this._renderControl(), this._renderOptions(this._query()));
5030
5079
  }
5031
5080
  set options(e) {
5032
5081
  if (this._optionsProp = Array.isArray(e) ? e : null, this._rendered && this._allowCustom) {
@@ -5059,10 +5108,10 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5059
5108
  value: e.getAttribute("value") ?? e.textContent.trim(),
5060
5109
  label: e.innerHTML,
5061
5110
  icon: e.getAttribute("icon") || void 0,
5062
- [Kt]: !0,
5111
+ [Zt]: !0,
5063
5112
  selected: e.hasAttribute("selected")
5064
5113
  };
5065
- for (let [n, r] of wr) {
5114
+ for (let [n, r] of Ar) {
5066
5115
  let i = e.getAttribute(n);
5067
5116
  i && (t[r] = i);
5068
5117
  }
@@ -5078,12 +5127,12 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5078
5127
  }
5079
5128
  _labelHtmlFor(e) {
5080
5129
  let t = this._readOptions().find((t) => String(t.value) === String(e));
5081
- return t ? Xt(t) : V(e);
5130
+ return t ? tn(t) : H(e);
5082
5131
  }
5083
5132
  render() {
5084
5133
  this._snapshotDeclared();
5085
5134
  let e = this._allowCustom, t = this.hasAttribute("searchable") && !e, n = this.getAttribute("search-placeholder") || "Search…", r = this.getAttribute("icon"), i = this.getAttribute("size"), a = i === "sm" ? " search-select-sm" : i === "lg" ? " search-select-lg" : "";
5086
- z(this, this._values), this.id ||= `wui-multiselect-${Math.random().toString(36).slice(2, 9)}`;
5135
+ B(this, this._values), this.id ||= `wui-multiselect-${Math.random().toString(36).slice(2, 9)}`;
5087
5136
  let o = `${this.id}-listbox`;
5088
5137
  this._listboxId = o;
5089
5138
  let s = this.hasAttribute("disabled");
@@ -5092,9 +5141,9 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5092
5141
  this.innerHTML = `
5093
5142
  <div class="search-select${a}">
5094
5143
  <div class="input search-select-control search-select-multi"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${s ? " aria-disabled=\"true\"" : ""}>
5095
- ${r ? B(r, { className: "search-select-icon" }) : ""}
5144
+ ${r ? V(r, { className: "search-select-icon" }) : ""}
5096
5145
  <div class="ms-chips" data-chips><input type="text" class="ms-input" data-input role="combobox" aria-autocomplete="list" aria-haspopup="listbox" aria-expanded="false" aria-controls="${q(o)}" aria-label="${q(this._accessibleName())}" aria-describedby="${q(e)}" autocomplete="off"${s ? " disabled" : ""} /></div>
5097
- ${B("chevron-down", { className: "search-select-caret" })}
5146
+ ${V("chevron-down", { className: "search-select-caret" })}
5098
5147
  </div>
5099
5148
  <div class="search-select-menu search-select-menu-fixed" role="listbox" id="${q(o)}" aria-multiselectable="true" tabindex="-1" hidden>
5100
5149
  <div class="search-select-options"></div>
@@ -5104,29 +5153,29 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5104
5153
  } else this.innerHTML = `
5105
5154
  <div class="search-select${a}">
5106
5155
  <div class="input search-select-control search-select-multi" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-controls="${q(o)}" aria-label="${q(this._accessibleName())}"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${s ? " aria-disabled=\"true\"" : " tabindex=\"0\""}>
5107
- ${r ? B(r, { className: "search-select-icon" }) : ""}
5156
+ ${r ? V(r, { className: "search-select-icon" }) : ""}
5108
5157
  <div class="ms-chips" data-chips></div>
5109
- ${B("chevron-down", { className: "search-select-caret" })}
5158
+ ${V("chevron-down", { className: "search-select-caret" })}
5110
5159
  </div>
5111
5160
  <div class="search-select-menu search-select-menu-fixed" role="listbox" id="${q(o)}" aria-multiselectable="true" tabindex="-1" hidden>
5112
- ${t ? `<div class="search-select-search">${B("search")}<input class="search-select-input" placeholder="${q(n)}" aria-autocomplete="list" /><button type="button" class="search-select-clear" aria-label="Clear search" hidden>${B("x")}</button></div>` : ""}
5161
+ ${t ? `<div class="search-select-search">${V("search")}<input class="search-select-input" placeholder="${q(n)}" aria-autocomplete="list" /><button type="button" class="search-select-clear" aria-label="Clear search" hidden>${V("x")}</button></div>` : ""}
5113
5162
  <div class="search-select-options"></div>
5114
5163
  <div class="search-select-empty" hidden>No matches</div>
5115
5164
  </div>
5116
5165
  </div>`;
5117
- this._rendered = !0, this._customError = "", z(this, this._values), this._renderControl(), this._renderOptions(), this._wire();
5166
+ this._rendered = !0, this._customError = "", B(this, this._values), this._renderControl(), this._renderOptions(), this._wire();
5118
5167
  }
5119
5168
  _renderControl() {
5120
5169
  let e = this.querySelector("[data-chips]");
5121
5170
  if (!e) return;
5122
- let t = this.getAttribute("placeholder") || "Select…", n = this._allowCustom ? e.querySelector("[data-input]") : null, r = this._values.map((e) => `<span class="chip chip-sm"><span class="chip-label">${this._labelHtmlFor(e)}</span><button type="button" class="chip-remove" data-remove="${q(e)}" aria-label="Remove ${q(jr(this._labelFor(e)))}">${B("x")}</button></span>`).join("");
5171
+ let t = this.getAttribute("placeholder") || "Select…", n = this._allowCustom ? e.querySelector("[data-input]") : null, r = this._values.map((e) => `<span class="chip chip-sm"><span class="chip-label">${this._labelHtmlFor(e)}</span><button type="button" class="chip-remove" data-remove="${q(e)}" aria-label="Remove ${q(Lr(this._labelFor(e)))}">${V("x")}</button></span>`).join("");
5123
5172
  if (n) {
5124
5173
  for (let t of [...e.querySelectorAll(":scope > .chip")]) t.remove();
5125
5174
  n.insertAdjacentHTML("beforebegin", r), n.placeholder = this._values.length ? "" : t, this._collapseChips();
5126
5175
  return;
5127
5176
  }
5128
5177
  if (!this._values.length) {
5129
- e.innerHTML = `<span class="search-select-placeholder">${V(t)}</span>`;
5178
+ e.innerHTML = `<span class="search-select-placeholder">${H(t)}</span>`;
5130
5179
  return;
5131
5180
  }
5132
5181
  e.innerHTML = r, this._collapseChips();
@@ -5150,11 +5199,11 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5150
5199
  i.textContent = `+${t.length - o}`;
5151
5200
  }
5152
5201
  _matches(e, t) {
5153
- return jr(e.label).toLowerCase().includes(t) || String(e.description ?? "").toLowerCase().includes(t);
5202
+ return Lr(e.label).toLowerCase().includes(t) || String(e.description ?? "").toLowerCase().includes(t);
5154
5203
  }
5155
5204
  _optionNamed(e) {
5156
5205
  let t = e.trim().toLowerCase();
5157
- return this._readOptions().find((e) => String(e.value ?? "").toLowerCase() === t || jr(e.label).trim().toLowerCase() === t);
5206
+ return this._readOptions().find((e) => String(e.value ?? "").toLowerCase() === t || Lr(e.label).trim().toLowerCase() === t);
5158
5207
  }
5159
5208
  _renderOptions(e) {
5160
5209
  let t = this.querySelector(".search-select-options"), n = this.querySelector(".search-select-empty");
@@ -5163,9 +5212,9 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5163
5212
  i && (a = a.filter((e) => this._matches(e, i)));
5164
5213
  let o = this._listboxId || `${this.id || "wui-multiselect"}-listbox`, s = this._allowCustom && r && !this._optionNamed(r), c = a.map((e, t) => {
5165
5214
  let n = this._values.includes(String(e.value)), r = `${o}-opt-${t}`;
5166
- return Tr(e) ? Or(e, r, n) : `<button type="button" role="option" id="${q(r)}" class="search-select-option${n ? " selected" : ""}" data-value="${q(e.value)}" aria-selected="${n}"><span class="ms-opt-label">${Xt(e)}</span><span class="ms-check">${B("check")}</span></button>`;
5215
+ return jr(e) ? Pr(e, r, n) : `<button type="button" role="option" id="${q(r)}" class="search-select-option${n ? " selected" : ""}" data-value="${q(e.value)}" aria-selected="${n}"><span class="ms-opt-label">${tn(e)}</span><span class="ms-check">${V("check")}</span></button>`;
5167
5216
  });
5168
- s && c.push(`<button type="button" role="option" id="${q(`${o}-opt-${a.length}`)}" class="search-select-option search-select-option-custom" data-value="${q(r)}" data-custom="true" aria-selected="false">Add “${V(r)}”</button>`), t.innerHTML = c.join(""), n && (n.hidden = a.length > 0), this._active = -1, this._combobox()?.removeAttribute("aria-activedescendant"), this._allowCustom && this._syncCustomMenu?.(), this._reanchor?.();
5217
+ s && c.push(`<button type="button" role="option" id="${q(`${o}-opt-${a.length}`)}" class="search-select-option search-select-option-custom" data-value="${q(r)}" data-custom="true" aria-selected="false">Add “${H(r)}”</button>`), t.innerHTML = c.join(""), n && (n.hidden = a.length > 0), this._active = -1, this._combobox()?.removeAttribute("aria-activedescendant"), this._allowCustom && this._syncCustomMenu?.(), this._reanchor?.();
5169
5218
  }
5170
5219
  _combobox() {
5171
5220
  return this._allowCustom ? this.querySelector("[data-input]") : this.querySelector(".search-select-control");
@@ -5178,7 +5227,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5178
5227
  _customRefusal(e) {
5179
5228
  let t = this.getAttribute("custom-invalid-message") || "Enter a valid value.", n = this.getAttribute("custom-pattern");
5180
5229
  if (n) {
5181
- let r = Ar(n);
5230
+ let r = Ir(n);
5182
5231
  if (r && !r.test(e)) return t;
5183
5232
  }
5184
5233
  let r = this._validateCustom;
@@ -5207,7 +5256,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5207
5256
  this._teardown();
5208
5257
  let e = this.querySelector(".search-select-control"), t = this.querySelector(".search-select-menu"), n = this.querySelector(".search-select-input"), r = this.querySelector(".search-select-clear"), i = this.querySelector(".search-select-options"), a = this._allowCustom, o = a ? this.querySelector("[data-input]") : null, s = o || e;
5209
5258
  if (!e || !t) return;
5210
- let c = () => this.hasAttribute("disabled"), l = () => F(e, t, { matchWidth: !0 }), u = () => [...this.querySelectorAll(".search-select-option")], d = () => u().filter((e) => !e.hidden), f = (e) => {
5259
+ let c = () => this.hasAttribute("disabled"), l = () => I(e, t, { matchWidth: !0 }), u = () => [...this.querySelectorAll(".search-select-option")], d = () => u().filter((e) => !e.hidden), f = (e) => {
5211
5260
  let t = d();
5212
5261
  this._active = e;
5213
5262
  for (let e of u()) e.classList.remove("is-active");
@@ -5228,7 +5277,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5228
5277
  }, _ = () => {
5229
5278
  a ? (p = !1, h()) : (t.hidden = !0, e.setAttribute("aria-expanded", "false"), e.classList.remove("open")), f(-1), clearTimeout(this._typeaheadTimer), this._typeaheadTimer = null, this._typeahead = "";
5230
5279
  }, v = () => {
5231
- z(this, this._values), this.dispatchEvent(new Event("change", { bubbles: !0 }));
5280
+ B(this, this._values), this.dispatchEvent(new Event("change", { bubbles: !0 }));
5232
5281
  }, y = (e) => {
5233
5282
  let t = String(e);
5234
5283
  if (this._values.includes(t)) this._values = this._values.filter((e) => e !== t);
@@ -5238,7 +5287,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5238
5287
  }, b = (e) => {
5239
5288
  this._values = this._values.filter((t) => t !== String(e)), this._renderControl(), this._renderOptions(this._query()), v();
5240
5289
  }, x = (e, { quiet: t = !1 } = {}) => {
5241
- let n = this._values.length, r = xr(e, Cr) ? br(e, Cr) : [e], i = [], a = "";
5290
+ let n = this._values.length, r = Dr(e, kr) ? Er(e, kr) : [e], i = [], a = "";
5242
5291
  for (let e of r) {
5243
5292
  let t = this._commitTyped(e);
5244
5293
  t && (i.push(e.trim()), a ||= t);
@@ -5276,7 +5325,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5276
5325
  e.target?.classList?.contains("avatar-img") && e.target.remove();
5277
5326
  }, !0), n?.addEventListener("input", () => {
5278
5327
  this._renderOptions(n.value), r && (r.hidden = !n.value), f(-1);
5279
- }), this._navHandler = Gt({
5328
+ }), this._navHandler = Xt({
5280
5329
  getVisibleOptions: d,
5281
5330
  getActive: () => this._active,
5282
5331
  setActive: (e) => f(e),
@@ -5316,7 +5365,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5316
5365
  (e.key === "ArrowDown" || e.key === "ArrowUp") && !m() && g(), ee(e);
5317
5366
  }), o.addEventListener("paste", (e) => {
5318
5367
  let t = e.clipboardData?.getData("text/plain") ?? "";
5319
- xr(t, Cr) && (e.preventDefault(), x(`${o.value}${t}`));
5368
+ Dr(t, kr) && (e.preventDefault(), x(`${o.value}${t}`));
5320
5369
  }), o.addEventListener("blur", (e) => {
5321
5370
  e.relatedTarget && this.contains(e.relatedTarget) || (o.value.trim() && x(o.value, { quiet: !0 }), _());
5322
5371
  });
@@ -5330,46 +5379,46 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5330
5379
  this._bindGlobal = () => {
5331
5380
  this._teardown(), !this._ro && typeof ResizeObserver < "u" && (this._ro = new ResizeObserver(() => this._collapseChips()), this._ro.observe(this)), this._onDocClick = (e) => {
5332
5381
  m() && !this.contains(e.target) && _();
5333
- }, document.addEventListener("click", this._onDocClick), I(this, () => {
5382
+ }, document.addEventListener("click", this._onDocClick), L(this, () => {
5334
5383
  m() && l();
5335
5384
  });
5336
5385
  }, this._bindGlobal();
5337
5386
  }
5338
5387
  _teardown() {
5339
- this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), L(this), this._navHandler?.teardown();
5388
+ this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), R(this), this._navHandler?.teardown();
5340
5389
  }
5341
5390
  disconnectedCallback() {
5342
5391
  this._teardown(), this._ro?.disconnect(), this._ro = null;
5343
5392
  }
5344
- }, Cr = [
5393
+ }, kr = [
5345
5394
  ",",
5346
5395
  ";",
5347
5396
  "\n",
5348
5397
  " "
5349
- ], wr = [
5398
+ ], Ar = [
5350
5399
  ["description", "description"],
5351
5400
  ["avatar", "avatar"],
5352
5401
  ["initials", "initials"],
5353
5402
  ["disabled-hint", "disabledHint"]
5354
- ], Tr = (e) => !!(e.description || e.avatar || e.initials || e.disabled || e.disabledHint), Er = (e) => {
5403
+ ], jr = (e) => !!(e.description || e.avatar || e.initials || e.disabled || e.disabledHint), Mr = (e) => {
5355
5404
  let t = String(e ?? "").trim();
5356
5405
  return /^(https?:)?\/\//i.test(t) || /^\/(?!\/)/.test(t) || /^data:image\/(png|jpe?g|gif|webp|avif);/i.test(t) ? t : "";
5357
- }, Dr = (e) => {
5358
- let t = Er(e.avatar);
5359
- return !t && !e.initials ? "" : `<span class="avatar wui-opt-avatar" aria-hidden="true"><span class="avatar-face">${V(e.initials ?? "")}</span>${t ? `<img class="avatar-img" src="${q(t)}" alt="" />` : ""}</span>`;
5360
- }, Or = (e, t, n) => {
5361
- let r = !!e.disabled, i = e.description ? `<span class="wui-opt-desc">${V(e.description)}</span>` : "", a = e.disabledHint && r ? `<span class="wui-opt-hint">${V(e.disabledHint)}</span>` : "";
5362
- return `<button type="button" role="option" id="${q(t)}" class="search-select-option wui-opt-rich${n ? " selected" : ""}" data-value="${q(e.value)}" aria-selected="${n}"${r ? " aria-disabled=\"true\"" : ""}><span class="ms-opt-label"><span class="wui-opt-name">${Xt(e)}</span>${i}</span>${a}${Dr(e)}<span class="ms-check">${B("check")}</span></button>`;
5363
- }, kr = /* @__PURE__ */ new Map(), Ar = (e) => {
5364
- if (kr.has(e)) return kr.get(e);
5406
+ }, Nr = (e) => {
5407
+ let t = Mr(e.avatar);
5408
+ return !t && !e.initials ? "" : `<span class="avatar wui-opt-avatar" aria-hidden="true"><span class="avatar-face">${H(e.initials ?? "")}</span>${t ? `<img class="avatar-img" src="${q(t)}" alt="" />` : ""}</span>`;
5409
+ }, Pr = (e, t, n) => {
5410
+ let r = !!e.disabled, i = e.description ? `<span class="wui-opt-desc">${H(e.description)}</span>` : "", a = e.disabledHint && r ? `<span class="wui-opt-hint">${H(e.disabledHint)}</span>` : "";
5411
+ return `<button type="button" role="option" id="${q(t)}" class="search-select-option wui-opt-rich${n ? " selected" : ""}" data-value="${q(e.value)}" aria-selected="${n}"${r ? " aria-disabled=\"true\"" : ""}><span class="ms-opt-label"><span class="wui-opt-name">${tn(e)}</span>${i}</span>${a}${Nr(e)}<span class="ms-check">${V("check")}</span></button>`;
5412
+ }, Fr = /* @__PURE__ */ new Map(), Ir = (e) => {
5413
+ if (Fr.has(e)) return Fr.get(e);
5365
5414
  let t = null;
5366
5415
  try {
5367
5416
  t = RegExp(`^(?:${e})$`, "u");
5368
5417
  } catch {
5369
5418
  console.warn(`<wui-multiselect> custom-pattern is not a valid regular expression and is ignored: ${e}`);
5370
5419
  }
5371
- return kr.set(e, t), t;
5372
- }, q = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;"), jr = (e) => String(e ?? "").replace(/<[^>]*>/g, ""), Mr = /[^0-9]/g, Nr = /[^0-9a-zA-Z]/g, Pr = class extends e {
5420
+ return Fr.set(e, t), t;
5421
+ }, q = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;"), Lr = (e) => String(e ?? "").replace(/<[^>]*>/g, ""), Rr = /[^0-9]/g, zr = /[^0-9a-zA-Z]/g, Br = class extends e {
5373
5422
  static formAssociated = !0;
5374
5423
  static get observedAttributes() {
5375
5424
  return [
@@ -5397,10 +5446,10 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5397
5446
  return this._value ?? "";
5398
5447
  }
5399
5448
  set value(e) {
5400
- this._value = this._clean(e), R(this, this._value), this._paint();
5449
+ this._value = this._clean(e), z(this, this._value), this._paint();
5401
5450
  }
5402
5451
  _clean(e) {
5403
- return (e == null ? "" : String(e)).replace(this.mode === "alphanumeric" ? Nr : Mr, "").slice(0, this.length);
5452
+ return (e == null ? "" : String(e)).replace(this.mode === "alphanumeric" ? zr : Rr, "").slice(0, this.length);
5404
5453
  }
5405
5454
  constructor() {
5406
5455
  super();
@@ -5414,10 +5463,10 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5414
5463
  this._rendered ? this._onSelectionChange && document.addEventListener("selectionchange", this._onSelectionChange) : (this._defaultCaptured ||= (this._defaultValue = this._value, !0), this.render());
5415
5464
  }
5416
5465
  formResetCallback() {
5417
- this._value = this._defaultValue || "", R(this, this._value), this._paint();
5466
+ this._value = this._defaultValue || "", z(this, this._value), this._paint();
5418
5467
  }
5419
5468
  attributeChangedCallback(e, t, n) {
5420
- this._rendered && (e === "value" ? (this._value = this._clean(n), R(this, this._value), this._paint()) : this.render());
5469
+ this._rendered && (e === "value" ? (this._value = this._clean(n), z(this, this._value), this._paint()) : this.render());
5421
5470
  }
5422
5471
  render() {
5423
5472
  this._value = this._clean(this.getAttribute("value") ?? this._value);
@@ -5435,7 +5484,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5435
5484
  spellcheck="false"
5436
5485
  ${n ? "disabled" : ""} />
5437
5486
  <div class="otp-slots" aria-hidden="true">${r}</div>
5438
- </div>`, this._rendered = !0, R(this, this._value), this._wire(), this._paint();
5487
+ </div>`, this._rendered = !0, z(this, this._value), this._wire(), this._paint();
5439
5488
  }
5440
5489
  _refs() {
5441
5490
  return {
@@ -5457,7 +5506,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5457
5506
  if (!e) return;
5458
5507
  let t = (e) => {
5459
5508
  let t = this._clean(e), n = t !== this._value;
5460
- this._value = t, R(this, this._value), this._paint(), n && this.dispatchEvent(new Event("change", { bubbles: !0 })), n && t.length === this.length && this.dispatchEvent(new CustomEvent("complete", {
5509
+ this._value = t, z(this, this._value), this._paint(), n && this.dispatchEvent(new Event("change", { bubbles: !0 })), n && t.length === this.length && this.dispatchEvent(new CustomEvent("complete", {
5461
5510
  bubbles: !0,
5462
5511
  detail: t
5463
5512
  }));
@@ -5491,7 +5540,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5491
5540
  disconnectedCallback() {
5492
5541
  this._onSelectionChange && document.removeEventListener("selectionchange", this._onSelectionChange);
5493
5542
  }
5494
- }, Fr = {
5543
+ }, Vr = {
5495
5544
  AD: ["Europe/Andorra"],
5496
5545
  AE: ["Asia/Dubai"],
5497
5546
  AF: ["Asia/Kabul"],
@@ -5893,13 +5942,13 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
5893
5942
  ZA: ["Africa/Johannesburg"],
5894
5943
  ZM: ["Africa/Lusaka"],
5895
5944
  ZW: ["Africa/Harare"]
5896
- }, Ir = new Set(En.map(([e]) => e)), Lr = /* @__PURE__ */ new Map();
5897
- for (let [e, t] of Object.entries(Fr)) for (let n of t) Lr.set(n, e);
5898
- function Rr(e) {
5899
- let t = Lr.get(e);
5900
- return t && Ir.has(t) ? t : null;
5945
+ }, Hr = new Set(Mn.map(([e]) => e)), Ur = /* @__PURE__ */ new Map();
5946
+ for (let [e, t] of Object.entries(Vr)) for (let n of t) Ur.set(n, e);
5947
+ function Wr(e) {
5948
+ let t = Ur.get(e);
5949
+ return t && Hr.has(t) ? t : null;
5901
5950
  }
5902
- function zr(e) {
5951
+ function Gr(e) {
5903
5952
  if (!e) return null;
5904
5953
  let t;
5905
5954
  try {
@@ -5907,9 +5956,9 @@ function zr(e) {
5907
5956
  } catch {
5908
5957
  return null;
5909
5958
  }
5910
- return t && Ir.has(t) ? t : null;
5959
+ return t && Hr.has(t) ? t : null;
5911
5960
  }
5912
- function Br() {
5961
+ function Kr() {
5913
5962
  let e;
5914
5963
  try {
5915
5964
  e = Intl.DateTimeFormat().resolvedOptions().timeZone;
@@ -5917,47 +5966,47 @@ function Br() {
5917
5966
  e = void 0;
5918
5967
  }
5919
5968
  let t = typeof navigator > "u" ? void 0 : navigator.language;
5920
- return Rr(e) || zr(t) || "IN";
5969
+ return Wr(e) || Gr(t) || "IN";
5921
5970
  }
5922
5971
  //#endregion
5923
5972
  //#region src/WuiPhone.js
5924
- var Vr = (e) => `wui-flag wui-flag-${String(e).toLowerCase()}`, J = null, Hr = null;
5925
- function Ur() {
5926
- return J ? Promise.resolve(J) : (Hr ||= Promise.all([import("./max-BDKx469G.js"), import("./examples.mobile.json-BMXTGiGC.js")]).then(([e, t]) => (J = {
5973
+ var qr = (e) => `wui-flag wui-flag-${String(e).toLowerCase()}`, J = null, Jr = null;
5974
+ function Yr() {
5975
+ return J ? Promise.resolve(J) : (Jr ||= Promise.all([import("./max-BDKx469G.js"), import("./examples.mobile.json-BMXTGiGC.js")]).then(([e, t]) => (J = {
5927
5976
  AsYouType: e.AsYouType,
5928
5977
  getExampleNumber: e.getExampleNumber,
5929
5978
  isValidPhoneNumber: e.isValidPhoneNumber,
5930
5979
  parsePhoneNumber: e.parsePhoneNumber,
5931
5980
  examples: t.default || t
5932
- }, J)).catch(() => null), Hr);
5981
+ }, J)).catch(() => null), Jr);
5933
5982
  }
5934
- function Wr(e, t) {
5935
- let n = `+${Dn(e)}`;
5983
+ function Xr(e, t) {
5984
+ let n = `+${Nn(e)}`;
5936
5985
  return t?.startsWith(n) ? t.slice(n.length).trimStart() : null;
5937
5986
  }
5938
- function Gr(e, t) {
5987
+ function Zr(e, t) {
5939
5988
  if (!J || !t) return t;
5940
5989
  try {
5941
- return Wr(e, new J.AsYouType(e).input(`+${Dn(e)}${t}`)) || t;
5990
+ return Xr(e, new J.AsYouType(e).input(`+${Nn(e)}${t}`)) || t;
5942
5991
  } catch {
5943
5992
  return t;
5944
5993
  }
5945
5994
  }
5946
- function Kr(e, t) {
5995
+ function Qr(e, t) {
5947
5996
  if (t <= 0) return 0;
5948
5997
  let n = 0;
5949
5998
  for (let r = 0; r < e.length; r++) if (/[0-9]/.test(e[r]) && (n += 1, n === t)) return r + 1;
5950
5999
  return e.length;
5951
6000
  }
5952
- function qr(e) {
6001
+ function $r(e) {
5953
6002
  if (!J) return null;
5954
6003
  try {
5955
- return Wr(e, J.getExampleNumber(e, J.examples)?.formatInternational()) || null;
6004
+ return Xr(e, J.getExampleNumber(e, J.examples)?.formatInternational()) || null;
5956
6005
  } catch {
5957
6006
  return null;
5958
6007
  }
5959
6008
  }
5960
- function Jr(e) {
6009
+ function ei(e) {
5961
6010
  if (!J || !e) return null;
5962
6011
  try {
5963
6012
  if (!J.isValidPhoneNumber(e)) return !1;
@@ -5967,7 +6016,7 @@ function Jr(e) {
5967
6016
  return null;
5968
6017
  }
5969
6018
  }
5970
- function Yr(e) {
6019
+ function ti(e) {
5971
6020
  if (!J) return null;
5972
6021
  try {
5973
6022
  let t = J.getExampleNumber(e, J.examples);
@@ -5976,7 +6025,7 @@ function Yr(e) {
5976
6025
  return null;
5977
6026
  }
5978
6027
  }
5979
- function Xr(e, t, n) {
6028
+ function ni(e, t, n) {
5980
6029
  try {
5981
6030
  let r = J.parsePhoneNumber(t, e), i = r?.nationalNumber;
5982
6031
  return !i || r.country !== e || i.length > n || !t.endsWith(i) ? null : i;
@@ -5984,7 +6033,7 @@ function Xr(e, t, n) {
5984
6033
  return null;
5985
6034
  }
5986
6035
  }
5987
- function Zr(e) {
6036
+ function ri(e) {
5988
6037
  if (!J || !e?.trim().startsWith("+")) return null;
5989
6038
  try {
5990
6039
  let t = new J.AsYouType();
@@ -5998,7 +6047,7 @@ function Zr(e) {
5998
6047
  return null;
5999
6048
  }
6000
6049
  }
6001
- var Qr = class extends e {
6050
+ var ii = class extends e {
6002
6051
  static formAssociated = !0;
6003
6052
  static get observedAttributes() {
6004
6053
  return [
@@ -6018,7 +6067,7 @@ var Qr = class extends e {
6018
6067
  } catch {
6019
6068
  this._internals = null;
6020
6069
  }
6021
- this._defaultCountry = Br(), this._country = this._defaultCountry, this._national = "", this._active = -1, this._committedValue = "";
6070
+ this._defaultCountry = Kr(), this._country = this._defaultCountry, this._national = "", this._active = -1, this._committedValue = "";
6022
6071
  }
6023
6072
  connectedCallback() {
6024
6073
  if (!this._rendered) {
@@ -6045,19 +6094,19 @@ var Qr = class extends e {
6045
6094
  this.value = this._defaultValue || "";
6046
6095
  }
6047
6096
  get value() {
6048
- return this._national ? `+${Dn(this._country)}${this._national}` : "";
6097
+ return this._national ? `+${Nn(this._country)}${this._national}` : "";
6049
6098
  }
6050
6099
  set value(e) {
6051
- let t = String(e ?? "").trim(), n = Zr(t);
6100
+ let t = String(e ?? "").trim(), n = ri(t);
6052
6101
  if (n) this._country = n.country, this._national = n.national.replace(/[^0-9]/g, "");
6053
6102
  else if (t.startsWith("+")) {
6054
- let e = t.replace(/[^0-9]/g, ""), n = String(Dn(this._country));
6103
+ let e = t.replace(/[^0-9]/g, ""), n = String(Nn(this._country));
6055
6104
  n && e.startsWith(n) && (e = e.slice(n.length)), this._national = e;
6056
6105
  } else this._national = t.replace(/[^0-9]/g, "");
6057
6106
  n && this.getAttribute("country") !== this._country ? this.setAttribute("country", this._country) : this._rendered && this.render(), this._committedValue = this.value, this._syncMirror();
6058
6107
  }
6059
6108
  _syncMirror() {
6060
- R(this, this.value);
6109
+ z(this, this.value);
6061
6110
  }
6062
6111
  _emitInput() {
6063
6112
  this.dispatchEvent(new Event("input", { bubbles: !0 }));
@@ -6067,30 +6116,30 @@ var Qr = class extends e {
6067
6116
  }
6068
6117
  render() {
6069
6118
  this._defaultValue === void 0 && (this._defaultValue = this.getAttribute("value") || ""), this._country = this.getAttribute("country") || this._country;
6070
- let e = this.getAttribute("placeholder") || qr(this._country) || "Enter phone number";
6119
+ let e = this.getAttribute("placeholder") || $r(this._country) || "Enter phone number";
6071
6120
  this.id ||= `wui-phone-${Math.random().toString(36).slice(2, 9)}`;
6072
6121
  let t = `${this.id}-listbox`;
6073
6122
  this._listboxId = t, this.innerHTML = `
6074
6123
  <div class="phone-input-wrap">
6075
6124
  <div class="phone-country-adornment">
6076
- <button type="button" class="country-toggle" aria-label="Choose country" aria-haspopup="listbox" aria-expanded="false" aria-controls="${$r(t)}"${this.hasAttribute("disabled") ? " disabled" : ""}>
6077
- <span class="${Vr(this._country)}" data-flag aria-hidden="true"></span>
6078
- ${B("chevron-down", { className: "phone-chevron" })}
6079
- <span class="phone-dial" data-dial>+${Dn(this._country)}</span>
6125
+ <button type="button" class="country-toggle" aria-label="Choose country" aria-haspopup="listbox" aria-expanded="false" aria-controls="${ai(t)}"${this.hasAttribute("disabled") ? " disabled" : ""}>
6126
+ <span class="${qr(this._country)}" data-flag aria-hidden="true"></span>
6127
+ ${V("chevron-down", { className: "phone-chevron" })}
6128
+ <span class="phone-dial" data-dial>+${Nn(this._country)}</span>
6080
6129
  </button>
6081
- <div class="country-dropdown-menu" role="listbox" id="${$r(t)}" tabindex="-1" hidden>
6082
- <div class="dropdown-search-wrapper"><span class="dropdown-search-icon">${B("search")}</span><input type="text" class="dropdown-search-input" placeholder="Search country or code" aria-label="Search countries" aria-controls="${$r(t)}" aria-autocomplete="list" /></div>
6130
+ <div class="country-dropdown-menu" role="listbox" id="${ai(t)}" tabindex="-1" hidden>
6131
+ <div class="dropdown-search-wrapper"><span class="dropdown-search-icon">${V("search")}</span><input type="text" class="dropdown-search-input" placeholder="Search country or code" aria-label="Search countries" aria-controls="${ai(t)}" aria-autocomplete="list" /></div>
6083
6132
  <div class="country-list-scroll"><div class="country-empty" hidden>No countries found</div></div>
6084
6133
  </div>
6085
6134
  </div>
6086
- <input type="tel" class="input" placeholder="${$r(e)}" value="${$r(Gr(this._country, this._national))}"${this.getAttribute("aria-label") ? ` aria-label="${$r(this.getAttribute("aria-label"))}"` : ""}${this.getAttribute("aria-describedby") ? ` aria-describedby="${$r(this.getAttribute("aria-describedby"))}"` : ""}${this.hasAttribute("required") ? " required aria-required=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""} />
6135
+ <input type="tel" class="input" placeholder="${ai(e)}" value="${ai(Zr(this._country, this._national))}"${this.getAttribute("aria-label") ? ` aria-label="${ai(this.getAttribute("aria-label"))}"` : ""}${this.getAttribute("aria-describedby") ? ` aria-describedby="${ai(this.getAttribute("aria-describedby"))}"` : ""}${this.hasAttribute("required") ? " required aria-required=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""} />
6087
6136
  </div>
6088
- <div class="field-error" data-phone-error hidden></div>`, this._rendered = !0, R(this, this.value), this._wire();
6137
+ <div class="field-error" data-phone-error hidden></div>`, this._rendered = !0, z(this, this.value), this._wire();
6089
6138
  }
6090
6139
  _ensureItems() {
6091
6140
  let e = this.querySelector(".country-list-scroll");
6092
6141
  if (!e || e.querySelector(".country-dropdown-item")) return;
6093
- let t = this._listboxId, n = En.map(([e, n, r], i) => `<button type="button" role="option" id="${$r(`${t}-opt-${i}`)}" class="country-dropdown-item${e === this._country ? " selected" : ""}" data-iso="${e}" aria-selected="${e === this._country}"><span class="${Vr(e)}" aria-hidden="true"></span><span class="country-name-text">${n}<span class="country-code-text">+${r}</span></span></button>`).join("");
6142
+ let t = this._listboxId, n = Mn.map(([e, n, r], i) => `<button type="button" role="option" id="${ai(`${t}-opt-${i}`)}" class="country-dropdown-item${e === this._country ? " selected" : ""}" data-iso="${e}" aria-selected="${e === this._country}"><span class="${qr(e)}" aria-hidden="true"></span><span class="country-name-text">${n}<span class="country-code-text">+${r}</span></span></button>`).join("");
6094
6143
  e.insertAdjacentHTML("afterbegin", n);
6095
6144
  }
6096
6145
  _itemEls() {
@@ -6103,7 +6152,7 @@ var Qr = class extends e {
6103
6152
  this._teardown();
6104
6153
  let e = this.querySelector(".country-toggle"), t = this.querySelector(".phone-input-wrap"), n = this.querySelector(".country-dropdown-menu"), r = this.querySelector(".dropdown-search-input"), i = this.querySelector(".country-list-scroll"), a = this.querySelector(".country-empty"), o = this.querySelector("input[type=tel]"), s = this.querySelector("[data-flag]"), c = this.querySelector("[data-dial]");
6105
6154
  if (!e || !n) return;
6106
- let l = () => !n.hidden, u = () => F(t || e, n), d = (e) => {
6155
+ let l = () => !n.hidden, u = () => I(t || e, n), d = (e) => {
6107
6156
  let t = this._visibleItems();
6108
6157
  this._active = e;
6109
6158
  for (let e of this._itemEls()) e.classList.remove("is-active");
@@ -6120,12 +6169,12 @@ var Qr = class extends e {
6120
6169
  }
6121
6170
  a && (a.hidden = n > 0);
6122
6171
  }, h = (e) => {
6123
- this._country = e, this.getAttribute("country") !== e && (this._suppressCountryRender = !0, this.setAttribute("country", e), this._suppressCountryRender = !1), s && (s.className = Vr(e)), c && (c.textContent = `+${Dn(e)}`);
6172
+ this._country = e, this.getAttribute("country") !== e && (this._suppressCountryRender = !0, this.setAttribute("country", e), this._suppressCountryRender = !1), s && (s.className = qr(e)), c && (c.textContent = `+${Nn(e)}`);
6124
6173
  for (let t of this._itemEls()) {
6125
6174
  let n = t.dataset.iso === e;
6126
6175
  t.classList.toggle("selected", n), t.setAttribute("aria-selected", String(n));
6127
6176
  }
6128
- !this.getAttribute("placeholder") && o && (o.placeholder = qr(e) || "Enter phone number"), o && this._national && (o.value = Gr(e, this._national)), p(), this._syncMirror(), this._emitChange(), o?.focus();
6177
+ !this.getAttribute("placeholder") && o && (o.placeholder = $r(e) || "Enter phone number"), o && this._national && (o.value = Zr(e, this._national)), p(), this._syncMirror(), this._emitChange(), o?.focus();
6129
6178
  }, g = (t) => {
6130
6179
  let n = this._visibleItems();
6131
6180
  if (t.key === "ArrowDown") {
@@ -6159,7 +6208,7 @@ var Qr = class extends e {
6159
6208
  let _ = this.querySelector("[data-phone-error]"), v = (e) => {
6160
6209
  if (o.classList.toggle("is-invalid", e), e ? o.setAttribute("aria-invalid", "true") : o.removeAttribute("aria-invalid"), _) {
6161
6210
  if (e) {
6162
- let e = qr(this._country);
6211
+ let e = $r(this._country);
6163
6212
  _.textContent = e ? `Enter a valid phone number, e.g. ${e}` : "Enter a valid phone number";
6164
6213
  }
6165
6214
  _.hidden = !e;
@@ -6167,35 +6216,35 @@ var Qr = class extends e {
6167
6216
  };
6168
6217
  o.addEventListener("input", (e) => {
6169
6218
  e.stopPropagation();
6170
- let t = o.selectionStart ?? o.value.length, n = o.value.slice(0, t).replace(/[^0-9]/g, "").length, r = o.value.replace(/[^0-9]/g, ""), i = Yr(this._country);
6219
+ let t = o.selectionStart ?? o.value.length, n = o.value.slice(0, t).replace(/[^0-9]/g, "").length, r = o.value.replace(/[^0-9]/g, ""), i = ti(this._country);
6171
6220
  if (i && r.length > i) {
6172
- let e = Xr(this._country, r, i);
6221
+ let e = ni(this._country, r, i);
6173
6222
  e ? (n = Math.max(0, n - (r.length - e.length)), r = e) : r = r.slice(0, i);
6174
6223
  }
6175
6224
  this._national = r;
6176
- let a = Gr(this._country, this._national);
6225
+ let a = Zr(this._country, this._national);
6177
6226
  if (o.value !== a) {
6178
6227
  o.value = a;
6179
- let e = Kr(a, Math.min(n, r.length));
6228
+ let e = Qr(a, Math.min(n, r.length));
6180
6229
  o.setSelectionRange(e, e);
6181
6230
  }
6182
- this._syncMirror(), this._emitInput(), o.classList.contains("is-invalid") && (!this._national || Jr(this.value) === !0) && v(!1);
6231
+ this._syncMirror(), this._emitInput(), o.classList.contains("is-invalid") && (!this._national || ei(this.value) === !0) && v(!1);
6183
6232
  }), o.addEventListener("change", (e) => e.stopPropagation()), o.addEventListener("blur", () => {
6184
- v(this._national.length > 0 && Jr(this.value) === !1), this.value !== this._committedValue && this._emitChange();
6233
+ v(this._national.length > 0 && ei(this.value) === !1), this.value !== this._committedValue && this._emitChange();
6185
6234
  }), o.addEventListener("paste", (e) => {
6186
- let t = Zr(e.clipboardData?.getData("text"));
6187
- t && (e.preventDefault(), this._national = t.national.replace(/[^0-9]/g, ""), t.country === this._country ? o.value = Gr(this._country, this._national) : this.setAttribute("country", t.country), this._syncMirror(), this._emitInput(), this._emitChange(), this.querySelector("input[type=tel]")?.focus());
6235
+ let t = ri(e.clipboardData?.getData("text"));
6236
+ t && (e.preventDefault(), this._national = t.national.replace(/[^0-9]/g, ""), t.country === this._country ? o.value = Zr(this._country, this._national) : this.setAttribute("country", t.country), this._syncMirror(), this._emitInput(), this._emitChange(), this.querySelector("input[type=tel]")?.focus());
6188
6237
  }), this._bindGlobal = () => {
6189
6238
  this._teardownGlobals?.(), this._onDocClick = (e) => {
6190
6239
  l() && !this.contains(e.target) && p();
6191
- }, document.addEventListener("click", this._onDocClick), I(this, () => {
6240
+ }, document.addEventListener("click", this._onDocClick), L(this, () => {
6192
6241
  l() && u();
6193
6242
  });
6194
6243
  }, this._teardownGlobals = () => {
6195
- this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), L(this);
6196
- }, this._bindGlobal(), Ur().then((e) => {
6197
- if (!(!e || !o.isConnected) && (this._national && (o.value = Gr(this._country, this._national)), !this.getAttribute("placeholder"))) {
6198
- let e = qr(this._country);
6244
+ this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), R(this);
6245
+ }, this._bindGlobal(), Yr().then((e) => {
6246
+ if (!(!e || !o.isConnected) && (this._national && (o.value = Zr(this._country, this._national)), !this.getAttribute("placeholder"))) {
6247
+ let e = $r(this._country);
6199
6248
  e && (o.placeholder = e);
6200
6249
  }
6201
6250
  }), this._syncMirror();
@@ -6206,7 +6255,7 @@ var Qr = class extends e {
6206
6255
  disconnectedCallback() {
6207
6256
  this._teardown();
6208
6257
  }
6209
- }, $r = (e) => String(e ?? "").replace(/"/g, "&quot;").replace(/</g, "&lt;"), ei = class extends e {
6258
+ }, ai = (e) => String(e ?? "").replace(/"/g, "&quot;").replace(/</g, "&lt;"), oi = class extends e {
6210
6259
  static formAssociated = !0;
6211
6260
  static get observedAttributes() {
6212
6261
  return [
@@ -6351,7 +6400,7 @@ var Qr = class extends e {
6351
6400
  aria-valuenow="${this._value}"
6352
6401
  aria-valuetext="${this._formatValue(this._value)}"
6353
6402
  ${a ? "disabled" : ""}
6354
- aria-label="${ti(this.getAttribute("aria-label") || "Value")}"
6403
+ aria-label="${si(this.getAttribute("aria-label") || "Value")}"
6355
6404
  ></button>
6356
6405
  `}
6357
6406
  ${this.hasAttribute("show-value") ? n ? `<span class="slider-value">${this._formatValue(this._start)} to ${this._formatValue(this._end)}</span>` : `<span class="slider-value">${this._formatValue(this._value)}</span>` : ""}
@@ -6386,7 +6435,7 @@ var Qr = class extends e {
6386
6435
  this._isRange() ? this._syncRangeMirrors() : this._syncSingleMirror();
6387
6436
  }
6388
6437
  _syncSingleMirror() {
6389
- this.getAttribute("name") && R(this, String(this._value));
6438
+ this.getAttribute("name") && z(this, String(this._value));
6390
6439
  }
6391
6440
  _syncRangeMirrors() {
6392
6441
  let e = this.getAttribute("start-name") || this.getAttribute("name"), t = this.getAttribute("end-name");
@@ -6456,7 +6505,7 @@ var Qr = class extends e {
6456
6505
  }, Y = (e, t) => {
6457
6506
  let n = Number.parseFloat(e);
6458
6507
  return Number.isFinite(n) ? n : t;
6459
- }, ti = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;"), ni = /* @__PURE__ */ new Set(), ri = ".wui-sortable-handle", ii = "a[href],button,input,select,textarea,label,summary,[contenteditable='true'],[role='button'],[role='link']", ai = 4, oi = 8, si = 250, ci = 48, li = 18, ui = class extends e {
6508
+ }, si = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;"), ci = /* @__PURE__ */ new Set(), li = ".wui-sortable-handle", ui = "a[href],button,input,select,textarea,label,summary,[contenteditable='true'],[role='button'],[role='link']", di = 4, fi = 8, pi = 250, mi = 48, hi = 18, gi = class extends e {
6460
6509
  static get observedAttributes() {
6461
6510
  return ["name", "disabled"];
6462
6511
  }
@@ -6466,10 +6515,10 @@ var Qr = class extends e {
6466
6515
  }, this._onSelectStart = (e) => e.preventDefault(), this._scrollTick = this._scrollTick.bind(this);
6467
6516
  }
6468
6517
  connectedCallback() {
6469
- ni.add(this), this.addEventListener("pointerdown", this._onPointerDown), this.addEventListener("keydown", this._onKeyDown), this.addEventListener("focusout", this._onFocusOut), this.addEventListener("dragstart", this._onDragStart), this._observer = new MutationObserver(() => this._syncMirrors()), this._observer.observe(this, { childList: !0 }), this._syncMirrors();
6518
+ ci.add(this), this.addEventListener("pointerdown", this._onPointerDown), this.addEventListener("keydown", this._onKeyDown), this.addEventListener("focusout", this._onFocusOut), this.addEventListener("dragstart", this._onDragStart), this._observer = new MutationObserver(() => this._syncMirrors()), this._observer.observe(this, { childList: !0 }), this._syncMirrors();
6470
6519
  }
6471
6520
  disconnectedCallback() {
6472
- ni.delete(this), this.removeEventListener("pointerdown", this._onPointerDown), this.removeEventListener("keydown", this._onKeyDown), this.removeEventListener("focusout", this._onFocusOut), this.removeEventListener("dragstart", this._onDragStart), this._observer?.disconnect(), this._observer = null, this._abort();
6521
+ ci.delete(this), this.removeEventListener("pointerdown", this._onPointerDown), this.removeEventListener("keydown", this._onKeyDown), this.removeEventListener("focusout", this._onFocusOut), this.removeEventListener("dragstart", this._onDragStart), this._observer?.disconnect(), this._observer = null, this._abort();
6473
6522
  }
6474
6523
  attributeChangedCallback(e) {
6475
6524
  e === "disabled" && this._abort(), this.isConnected && this._syncMirrors();
@@ -6504,7 +6553,7 @@ var Qr = class extends e {
6504
6553
  return this.getAttribute("orientation") === "horizontal";
6505
6554
  }
6506
6555
  _syncMirrors() {
6507
- z(this, this.order);
6556
+ B(this, this.order);
6508
6557
  }
6509
6558
  _insertAt(e, t) {
6510
6559
  let n = this._items();
@@ -6522,7 +6571,7 @@ var Qr = class extends e {
6522
6571
  }
6523
6572
  _peers() {
6524
6573
  let e = this.getAttribute("group");
6525
- return [...ni].filter((t) => t === this || e && t.getAttribute("group") === e && !t.hasAttribute("disabled"));
6574
+ return [...ci].filter((t) => t === this || e && t.getAttribute("group") === e && !t.hasAttribute("disabled"));
6526
6575
  }
6527
6576
  _labelOf(e) {
6528
6577
  return e.getAttribute("data-label") || e.textContent.replace(/\s+/g, " ").trim() || e.getAttribute("data-id");
@@ -6539,10 +6588,10 @@ var Qr = class extends e {
6539
6588
  if (this._drag || this._kb || this.hasAttribute("disabled") || e.pointerType === "mouse" && e.button !== 0) return;
6540
6589
  let t = this._itemFrom(e.target);
6541
6590
  if (!t || this._itemDisabled(t)) return;
6542
- let n = t.querySelector(`:scope > ${ri}`), r = !!n && n.contains(e.target);
6591
+ let n = t.querySelector(`:scope > ${li}`), r = !!n && n.contains(e.target);
6543
6592
  if (this.hasAttribute("handle") && !r) return;
6544
6593
  if (!r) {
6545
- let n = e.target.closest?.(ii);
6594
+ let n = e.target.closest?.(ui);
6546
6595
  if (n && n !== t && t.contains(n)) return;
6547
6596
  }
6548
6597
  let i = e.pointerType === "touch" && !r, a = {
@@ -6552,7 +6601,7 @@ var Qr = class extends e {
6552
6601
  startY: e.clientY,
6553
6602
  x: e.clientX,
6554
6603
  y: e.clientY,
6555
- slop: e.pointerType === "touch" ? oi : ai,
6604
+ slop: e.pointerType === "touch" ? fi : di,
6556
6605
  ready: !i,
6557
6606
  started: !1,
6558
6607
  timer: null,
@@ -6562,7 +6611,7 @@ var Qr = class extends e {
6562
6611
  };
6563
6612
  this._drag = a, i && (a.timer = setTimeout(() => {
6564
6613
  a.timer = null, a.ready = !0, this._begin();
6565
- }, si)), document.addEventListener("pointermove", this._onDocMove), document.addEventListener("pointerup", this._onDocUp), document.addEventListener("pointercancel", this._onDocCancel), document.addEventListener("keydown", this._onDocKey, !0), document.addEventListener("touchmove", this._onDocTouchMove, { passive: !1 });
6614
+ }, pi)), document.addEventListener("pointermove", this._onDocMove), document.addEventListener("pointerup", this._onDocUp), document.addEventListener("pointercancel", this._onDocCancel), document.addEventListener("keydown", this._onDocKey, !0), document.addEventListener("touchmove", this._onDocTouchMove, { passive: !1 });
6566
6615
  }
6567
6616
  _onDocMove(e) {
6568
6617
  let t = this._drag;
@@ -6618,7 +6667,7 @@ var Qr = class extends e {
6618
6667
  _scrollTick() {
6619
6668
  let e = this._drag;
6620
6669
  if (!e?.started) return;
6621
- let t = fi(e.list), n = t ? t.getBoundingClientRect() : null, r = Math.max(n?.top ?? 0, 0), i = Math.min(n?.bottom ?? window.innerHeight, window.innerHeight), a = Math.max(n?.left ?? 0, 0), o = Math.min(n?.right ?? window.innerWidth, window.innerWidth), s = di(e.y, r, i), c = di(e.x, a, o);
6670
+ let t = vi(e.list), n = t ? t.getBoundingClientRect() : null, r = Math.max(n?.top ?? 0, 0), i = Math.min(n?.bottom ?? window.innerHeight, window.innerHeight), a = Math.max(n?.left ?? 0, 0), o = Math.min(n?.right ?? window.innerWidth, window.innerWidth), s = _i(e.y, r, i), c = _i(e.x, a, o);
6622
6671
  (c || s) && (t ? (t.scrollTop += s, t.scrollLeft += c) : window.scrollBy(c, s), this._update()), e.raf = requestAnimationFrame(this._scrollTick);
6623
6672
  }
6624
6673
  _finish(e) {
@@ -6662,7 +6711,7 @@ var Qr = class extends e {
6662
6711
  }
6663
6712
  _onKeyDown(e) {
6664
6713
  if (this.hasAttribute("disabled")) return;
6665
- let t = e.target.closest?.(ri), n = t && t.parentElement?.parentElement === this ? t.parentElement : null;
6714
+ let t = e.target.closest?.(li), n = t && t.parentElement?.parentElement === this ? t.parentElement : null;
6666
6715
  if (!n || this._itemDisabled(n) || this._drag) return;
6667
6716
  let r = e.key;
6668
6717
  if (!this._kb) {
@@ -6721,10 +6770,10 @@ var Qr = class extends e {
6721
6770
  e(), n && document.activeElement !== t && t.focus(), this._moving = !1;
6722
6771
  }
6723
6772
  };
6724
- function di(e, t, n) {
6725
- return e < t + ci ? -Math.ceil(li * Math.min(1, (t + ci - e) / ci)) : e > n - ci ? Math.ceil(li * Math.min(1, (e - (n - ci)) / ci)) : 0;
6773
+ function _i(e, t, n) {
6774
+ return e < t + mi ? -Math.ceil(hi * Math.min(1, (t + mi - e) / mi)) : e > n - mi ? Math.ceil(hi * Math.min(1, (e - (n - mi)) / mi)) : 0;
6726
6775
  }
6727
- function fi(e) {
6776
+ function vi(e) {
6728
6777
  for (let t = e.parentElement; t && t !== document.body && t !== document.documentElement; t = t.parentElement) {
6729
6778
  let e = getComputedStyle(t), n = /(auto|scroll)/.test(e.overflowY) && t.scrollHeight > t.clientHeight, r = /(auto|scroll)/.test(e.overflowX) && t.scrollWidth > t.clientWidth;
6730
6779
  if (n || r) return t;
@@ -6733,7 +6782,7 @@ function fi(e) {
6733
6782
  }
6734
6783
  //#endregion
6735
6784
  //#region src/WuiTagInput.js
6736
- var pi = class extends e {
6785
+ var yi = class extends e {
6737
6786
  static formAssociated = !0;
6738
6787
  _accessibleName() {
6739
6788
  return this.getAttribute("aria-label") || this.getAttribute("placeholder") || "Add tags";
@@ -6799,30 +6848,30 @@ var pi = class extends e {
6799
6848
  return this._values.slice();
6800
6849
  }
6801
6850
  set values(e) {
6802
- this._values = Array.isArray(e) ? e.map(String) : [], z(this, this._values), this._rendered && this._renderControl();
6851
+ this._values = Array.isArray(e) ? e.map(String) : [], B(this, this._values), this._rendered && this._renderControl();
6803
6852
  }
6804
6853
  render() {
6805
6854
  let e = this.getAttribute("size"), t = e === "sm" ? " search-select-sm" : e === "lg" ? " search-select-lg" : "";
6806
- z(this, this._values), this.innerHTML = `
6855
+ B(this, this._values), this.innerHTML = `
6807
6856
  <div class="search-select${t}">
6808
6857
  <div class="input search-select-control search-select-multi"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " aria-disabled=\"true\"" : ""}>
6809
- <div class="ms-chips" data-chips><input type="text" class="ms-input" data-input aria-label="${hi(this._accessibleName())}" placeholder="${hi(this.getAttribute("placeholder") || "Add…")}" autocomplete="off"${this.hasAttribute("disabled") ? " disabled" : ""}/></div>
6858
+ <div class="ms-chips" data-chips><input type="text" class="ms-input" data-input aria-label="${xi(this._accessibleName())}" placeholder="${xi(this.getAttribute("placeholder") || "Add…")}" autocomplete="off"${this.hasAttribute("disabled") ? " disabled" : ""}/></div>
6810
6859
  </div>
6811
- </div>`, this._rendered = !0, z(this, this._values), this._renderControl(), this._wire();
6860
+ </div>`, this._rendered = !0, B(this, this._values), this._renderControl(), this._wire();
6812
6861
  }
6813
6862
  _renderControl() {
6814
6863
  let e = this.querySelector("[data-chips]");
6815
6864
  if (e) {
6816
6865
  for (let t of e.querySelectorAll(":scope > .chip")) t.remove();
6817
- this._values.length && e.querySelector("[data-input]").insertAdjacentHTML("beforebegin", this._values.map((e) => `<span class="chip chip-sm"><span class="chip-label">${mi(e)}</span><button type="button" class="chip-remove" data-remove="${hi(e)}" aria-label="Remove ${hi(e)}">${B("x")}</button></span>`).join(""));
6866
+ this._values.length && e.querySelector("[data-input]").insertAdjacentHTML("beforebegin", this._values.map((e) => `<span class="chip chip-sm"><span class="chip-label">${bi(e)}</span><button type="button" class="chip-remove" data-remove="${xi(e)}" aria-label="Remove ${xi(e)}">${V("x")}</button></span>`).join(""));
6818
6867
  }
6819
6868
  }
6820
6869
  _wire() {
6821
6870
  this._teardown();
6822
6871
  let e = this.querySelector(".search-select-control"), t = this.querySelector("[data-input]");
6823
6872
  if (!e || !t) return;
6824
- let n = () => this.hasAttribute("disabled"), r = (this.getAttribute("separators") || "enter,comma").split(",").map((e) => e.trim()), i = this.getAttribute("max-tags"), a = this.hasAttribute("allow-duplicates"), o = new Set(r.map(vr).filter(Boolean)), s = () => {
6825
- z(this, this._values), this.dispatchEvent(new Event("change", { bubbles: !0 }));
6873
+ let n = () => this.hasAttribute("disabled"), r = (this.getAttribute("separators") || "enter,comma").split(",").map((e) => e.trim()), i = this.getAttribute("max-tags"), a = this.hasAttribute("allow-duplicates"), o = new Set(r.map(wr).filter(Boolean)), s = () => {
6874
+ B(this, this._values), this.dispatchEvent(new Event("change", { bubbles: !0 }));
6826
6875
  }, c = (e) => {
6827
6876
  let t = e.trim();
6828
6877
  if (!t || i && this._values.length >= parseInt(i, 10)) return;
@@ -6853,9 +6902,9 @@ var pi = class extends e {
6853
6902
  e.preventDefault();
6854
6903
  let n = e.clipboardData.getData("text/plain"), a = [];
6855
6904
  for (let e of r) {
6856
- let t = yr(e) ?? e;
6857
- if (xr(n, [t])) {
6858
- a.push(...br(n, [t]));
6905
+ let t = Tr(e) ?? e;
6906
+ if (Dr(n, [t])) {
6907
+ a.push(...Er(n, [t]));
6859
6908
  break;
6860
6909
  }
6861
6910
  }
@@ -6883,18 +6932,18 @@ var pi = class extends e {
6883
6932
  disconnectedCallback() {
6884
6933
  this._teardown();
6885
6934
  }
6886
- }, mi = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), hi = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;"), gi = (e) => String(e).padStart(2, "0"), _i = (e, t) => `${gi(e)}:${gi(t)}`, vi = (e) => {
6935
+ }, bi = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), xi = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;"), Si = (e) => String(e).padStart(2, "0"), Ci = (e, t) => `${Si(e)}:${Si(t)}`, wi = (e) => {
6887
6936
  let t = /^(\d{2}):(\d{2})$/.exec(e || "");
6888
6937
  return t ? {
6889
6938
  h: +t[1],
6890
6939
  m: +t[2]
6891
6940
  } : null;
6892
- }, yi = (e, t = "24") => {
6941
+ }, Ti = (e, t = "24") => {
6893
6942
  if (!e) return "";
6894
- if (t === "24") return _i(e.h, e.m);
6943
+ if (t === "24") return Ci(e.h, e.m);
6895
6944
  let n = e.h % 12 || 12, r = e.h >= 12 ? "PM" : "AM";
6896
- return `${n}:${gi(e.m)} ${r}`;
6897
- }, bi = (e) => {
6945
+ return `${n}:${Si(e.m)} ${r}`;
6946
+ }, Ei = (e) => {
6898
6947
  let t = String(e || "").trim().toLowerCase(), n = /^(\d{1,2})(?:[:.](\d{2})|(\d{2}))?\s*(?:([ap])\.?\s*(?:m\.?)?)?$/.exec(t);
6899
6948
  if (!n) return null;
6900
6949
  let r = +n[1], i = +(n[2] ?? n[3] ?? "0");
@@ -6907,7 +6956,7 @@ var pi = class extends e {
6907
6956
  h: r,
6908
6957
  m: i
6909
6958
  };
6910
- }, xi = 0, Si = class extends e {
6959
+ }, Di = 0, Oi = class extends e {
6911
6960
  static formAssociated = !0;
6912
6961
  static get observedAttributes() {
6913
6962
  return [
@@ -6932,7 +6981,7 @@ var pi = class extends e {
6932
6981
  } catch {
6933
6982
  this._internals = null;
6934
6983
  }
6935
- this._value = "", this._uid = `wui-tp-${++xi}`, this._typedError = "", this._typeahead = "", this._typeaheadTimer = null, this.addEventListener("focusout", (e) => {
6984
+ this._value = "", this._uid = `wui-tp-${++Di}`, this._typedError = "", this._typeahead = "", this._typeaheadTimer = null, this.addEventListener("focusout", (e) => {
6936
6985
  this._isOpen?.() && e.relatedTarget && !this.contains(e.relatedTarget) && this._close({ commit: !0 });
6937
6986
  });
6938
6987
  }
@@ -6968,7 +7017,7 @@ var pi = class extends e {
6968
7017
  return this._value;
6969
7018
  }
6970
7019
  set value(e) {
6971
- this._value = e || "", this._typedError = "", R(this, this._value), this._syncText(), this._syncInvalid();
7020
+ this._value = e || "", this._typedError = "", z(this, this._value), this._syncText(), this._syncInvalid();
6972
7021
  }
6973
7022
  _format() {
6974
7023
  return this.getAttribute("format") || "24";
@@ -6977,10 +7026,10 @@ var pi = class extends e {
6977
7026
  return Math.max(1, parseInt(this.getAttribute("step") || "30", 10) || 30);
6978
7027
  }
6979
7028
  _bounds() {
6980
- let e = vi(this.getAttribute("min")) || {
7029
+ let e = wi(this.getAttribute("min")) || {
6981
7030
  h: 0,
6982
7031
  m: 0
6983
- }, t = vi(this.getAttribute("max")) || {
7032
+ }, t = wi(this.getAttribute("max")) || {
6984
7033
  h: 23,
6985
7034
  m: 59
6986
7035
  };
@@ -7006,12 +7055,12 @@ var pi = class extends e {
7006
7055
  }
7007
7056
  _refusal(e) {
7008
7057
  if (this._allowed(e.h, e.m)) return "";
7009
- let t = this._format(), { min: n, max: r } = this._bounds(), i = e.h * 60 + e.m, a = (e) => yi({
7058
+ let t = this._format(), { min: n, max: r } = this._bounds(), i = e.h * 60 + e.m, a = (e) => Ti({
7010
7059
  h: Math.floor(e / 60),
7011
7060
  m: e % 60
7012
7061
  }, t);
7013
7062
  if (i < n || i > r) {
7014
- let e = !!vi(this.getAttribute("min")), t = !!vi(this.getAttribute("max"));
7063
+ let e = !!wi(this.getAttribute("min")), t = !!wi(this.getAttribute("max"));
7015
7064
  return e && t ? `Enter a time between ${a(n)} and ${a(r)}.` : e ? `Enter a time at or after ${a(n)}.` : `Enter a time at or before ${a(r)}.`;
7016
7065
  }
7017
7066
  return `Enter a time in ${this._step()}-minute steps.`;
@@ -7023,11 +7072,11 @@ var pi = class extends e {
7023
7072
  <div class="timepicker">
7024
7073
  <div class="wui-timepicker-field">
7025
7074
  <input type="text" class="input timepicker-trigger${t}" id="${n}-input" role="combobox" aria-haspopup="dialog" aria-expanded="false" aria-controls="${n}-pop" aria-autocomplete="none" autocomplete="off" spellcheck="false">
7026
- <button type="button" class="wui-timepicker-toggle" tabindex="-1" aria-label="Choose time" aria-haspopup="dialog" aria-expanded="false" aria-controls="${n}-pop">${B("clock")}</button>
7075
+ <button type="button" class="wui-timepicker-toggle" tabindex="-1" aria-label="Choose time" aria-haspopup="dialog" aria-expanded="false" aria-controls="${n}-pop">${V("clock")}</button>
7027
7076
  </div>
7028
7077
  <div class="timepicker-pop" id="${n}-pop" role="dialog" aria-label="Choose time" hidden></div>
7029
7078
  <div class="field-error wui-timepicker-error" id="${n}-error" hidden></div>
7030
- </div>`, this._rendered = !0, this._syncAttrs(), this._syncText(), this._syncInvalid(), R(this, this._value), this._wire();
7079
+ </div>`, this._rendered = !0, this._syncAttrs(), this._syncText(), this._syncInvalid(), z(this, this._value), this._wire();
7031
7080
  }
7032
7081
  _input() {
7033
7082
  return this.querySelector(".timepicker-trigger");
@@ -7036,7 +7085,7 @@ var pi = class extends e {
7036
7085
  return this.querySelector(".timepicker-pop");
7037
7086
  }
7038
7087
  _syncFormValue() {
7039
- R(this, this._value);
7088
+ z(this, this._value);
7040
7089
  }
7041
7090
  _syncAttrs() {
7042
7091
  let e = this._input(), t = this.querySelector(".wui-timepicker-toggle");
@@ -7044,11 +7093,11 @@ var pi = class extends e {
7044
7093
  let n = this.hasAttribute("disabled");
7045
7094
  e.disabled = n, t && (t.disabled = n), e.placeholder = this.getAttribute("placeholder") || "Select time", this.hasAttribute("required") ? e.setAttribute("aria-required", "true") : e.removeAttribute("aria-required");
7046
7095
  let r = this.getAttribute("aria-label");
7047
- r ? e.setAttribute("aria-label", r) : e.removeAttribute("aria-label"), R(this, this._value), n && this._isOpen?.() && this._close({ commit: !1 });
7096
+ r ? e.setAttribute("aria-label", r) : e.removeAttribute("aria-label"), z(this, this._value), n && this._isOpen?.() && this._close({ commit: !1 });
7048
7097
  }
7049
7098
  _syncText() {
7050
7099
  let e = this._input();
7051
- e && (e.value = yi(vi(this._value), this._format()), this._isOpen?.() && this._syncColumns());
7100
+ e && (e.value = Ti(wi(this._value), this._format()), this._isOpen?.() && this._syncColumns());
7052
7101
  }
7053
7102
  _syncInvalid() {
7054
7103
  let e = this._input(), t = this.querySelector(".wui-timepicker-error");
@@ -7060,18 +7109,18 @@ var pi = class extends e {
7060
7109
  }
7061
7110
  _commitText() {
7062
7111
  let e = this._input();
7063
- if (!e || e.value === yi(vi(this._value), this._format())) return !0;
7112
+ if (!e || e.value === Ti(wi(this._value), this._format())) return !0;
7064
7113
  let t = e.value.trim(), n = "";
7065
7114
  if (t) {
7066
- let e = bi(t), r = e ? this._refusal(e) : `Enter a time like ${this._format() === "12" ? "7:45 PM" : "19:45"}.`;
7115
+ let e = Ei(t), r = e ? this._refusal(e) : `Enter a time like ${this._format() === "12" ? "7:45 PM" : "19:45"}.`;
7067
7116
  if (r) return this._typedError = r, this._syncInvalid(), !1;
7068
- n = _i(e.h, e.m);
7117
+ n = Ci(e.h, e.m);
7069
7118
  }
7070
7119
  let r = n !== this._value;
7071
7120
  return this.value = n, r && this.dispatchEvent(new Event("change", { bubbles: !0 })), !0;
7072
7121
  }
7073
7122
  _pending() {
7074
- let e = bi(this._input()?.value);
7123
+ let e = Ei(this._input()?.value);
7075
7124
  return e && this._allowed(e.h, e.m) ? e : null;
7076
7125
  }
7077
7126
  _columnsHtml() {
@@ -7083,17 +7132,17 @@ var pi = class extends e {
7083
7132
  text: String(e || 12)
7084
7133
  }))) + n("minute", "Minute", i.map((e) => ({
7085
7134
  v: e,
7086
- text: gi(e)
7135
+ text: Si(e)
7087
7136
  }))) + n("period", "AM or PM", t.map((e) => ({
7088
7137
  v: e,
7089
7138
  text: e.toUpperCase()
7090
7139
  })));
7091
7140
  } else a = n("hour", "Hour", r.map((e) => ({
7092
7141
  v: e,
7093
- text: gi(e)
7142
+ text: Si(e)
7094
7143
  }))) + n("minute", "Minute", i.map((e) => ({
7095
7144
  v: e,
7096
- text: gi(e)
7145
+ text: Si(e)
7097
7146
  })));
7098
7147
  return `<div class="wui-timepicker-cols">${a}</div>`;
7099
7148
  }
@@ -7133,13 +7182,13 @@ var pi = class extends e {
7133
7182
  a = r.h, o = r.m;
7134
7183
  }
7135
7184
  let s = this._input();
7136
- s.value = yi({
7185
+ s.value = Ti({
7137
7186
  h: a,
7138
7187
  m: o
7139
7188
  }, this._format()), this._typedError = "", this._syncInvalid(), this._syncColumns();
7140
7189
  }
7141
7190
  _position() {
7142
- F(this.querySelector(".wui-timepicker-field"), this._pop());
7191
+ I(this.querySelector(".wui-timepicker-field"), this._pop());
7143
7192
  }
7144
7193
  _onColumnKey(e) {
7145
7194
  let t = e.target.closest?.(".timepicker-option"), n = t?.closest(".wui-timepicker-col");
@@ -7234,29 +7283,29 @@ var pi = class extends e {
7234
7283
  this._popClick = !1, i() && !t && !this.contains(e.target) && this._close({ commit: !0 });
7235
7284
  }, document.addEventListener("click", this._onDocClick), this._onDocKey = (e) => {
7236
7285
  i() && e.key === "Escape" && this._close({ commit: !1 });
7237
- }, document.addEventListener("keydown", this._onDocKey), I(this, () => {
7286
+ }, document.addEventListener("keydown", this._onDocKey), L(this, () => {
7238
7287
  i() && this._position();
7239
7288
  });
7240
7289
  }, this._bindGlobal();
7241
7290
  }
7242
7291
  _teardown() {
7243
- this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null), L(this), clearTimeout(this._typeaheadTimer), this._typeaheadTimer = null, this._typeahead = "";
7292
+ this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null), R(this), clearTimeout(this._typeaheadTimer), this._typeaheadTimer = null, this._typeahead = "";
7244
7293
  }
7245
7294
  disconnectedCallback() {
7246
7295
  this._teardown();
7247
7296
  }
7248
- }, Ci = "wui-tour-step", wi = "wui-tour-seen:", Ti = {
7297
+ }, ki = "wui-tour-step", Ai = "wui-tour-seen:", ji = {
7249
7298
  back: "Back",
7250
7299
  next: "Next",
7251
7300
  skip: "Skip",
7252
7301
  done: "Done"
7253
- }, Ei = {
7302
+ }, Mi = {
7254
7303
  back: "back-label",
7255
7304
  next: "next-label",
7256
7305
  skip: "skip-label",
7257
7306
  done: "done-label"
7258
- }, Di = 4, Oi = 0;
7259
- function ki(e = wi, t = globalThis.localStorage) {
7307
+ }, Ni = 4, Pi = 0;
7308
+ function Fi(e = Ai, t = globalThis.localStorage) {
7260
7309
  return {
7261
7310
  isSeen: async (n) => t.getItem(e + n) === "1",
7262
7311
  markSeen: async (n) => {
@@ -7264,7 +7313,7 @@ function ki(e = wi, t = globalThis.localStorage) {
7264
7313
  }
7265
7314
  };
7266
7315
  }
7267
- var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ? !1 : e.getClientRects().length > 0, ji = class extends e {
7316
+ var Ii = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ? !1 : e.getClientRects().length > 0, Li = class extends e {
7268
7317
  static get observedAttributes() {
7269
7318
  return ["open"];
7270
7319
  }
@@ -7283,18 +7332,21 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
7283
7332
  get tourId() {
7284
7333
  return this.getAttribute("tour-id") || "";
7285
7334
  }
7335
+ set tourId(e) {
7336
+ e == null || e === "" ? this.removeAttribute("tour-id") : this.setAttribute("tour-id", String(e));
7337
+ }
7286
7338
  _stepList() {
7287
- return Array.from(this.querySelectorAll(`:scope > ${Ci}`), (e) => ({
7339
+ return Array.from(this.querySelectorAll(`:scope > ${ki}`), (e) => ({
7288
7340
  target: e.getAttribute("target") || "",
7289
7341
  title: e.getAttribute("title") || void 0,
7290
7342
  description: e.textContent.trim()
7291
7343
  }));
7292
7344
  }
7293
7345
  _store() {
7294
- return this.seenStore ? this.seenStore : this.getAttribute("seen-store") === "local" ? ki() : globalThis.window?.WUI?.tour?.seenStore || null;
7346
+ return this.seenStore ? this.seenStore : this.getAttribute("seen-store") === "local" ? Fi() : globalThis.window?.WUI?.tour?.seenStore || null;
7295
7347
  }
7296
7348
  _label(e) {
7297
- return this.getAttribute(Ei[e]) || Ti[e];
7349
+ return this.getAttribute(Mi[e]) || ji[e];
7298
7350
  }
7299
7351
  async start() {
7300
7352
  if (this._running) return;
@@ -7334,7 +7386,7 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
7334
7386
  let e = r[i];
7335
7387
  if (await this._beforeStep(e, i), n !== this._run) return null;
7336
7388
  let t = document.querySelector(e.target);
7337
- if (Ai(t)) return {
7389
+ if (Ii(t)) return {
7338
7390
  index: i,
7339
7391
  target: t
7340
7392
  };
@@ -7353,7 +7405,7 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
7353
7405
  })), await Promise.all(n), typeof this.onBeforeStep == "function" && await this.onBeforeStep(e, t);
7354
7406
  }
7355
7407
  _build() {
7356
- let e = `wui-tour-${++Oi}`, t = document.createElement("div");
7408
+ let e = `wui-tour-${++Pi}`, t = document.createElement("div");
7357
7409
  t.className = "wui-tour-layer", t.innerHTML = `
7358
7410
  <div class="wui-tour-spot" aria-hidden="true"></div>
7359
7411
  <div class="wui-tour-card" role="dialog" aria-modal="true" tabindex="-1" aria-labelledby="${e}-title" aria-describedby="${e}-text">
@@ -7370,7 +7422,7 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
7370
7422
  </div>
7371
7423
  <div class="visually-hidden" role="status" aria-live="polite"></div>`, document.body.appendChild(t), this._layer = t, this._spot = t.querySelector(".wui-tour-spot"), this._card = t.querySelector(".wui-tour-card"), this._live = t.querySelector("[role=status]"), this._card.querySelector(".wui-tour-skip").addEventListener("click", () => this._close("skipped")), this._card.querySelector(".wui-tour-back").addEventListener("click", () => this._move(-1)), this._card.querySelector(".wui-tour-next").addEventListener("click", () => this._move(1)), this._onKey = (e) => this._key(e), this._onFocusIn = (e) => {
7372
7424
  this._layer && !this._layer.contains(e.target) && this._card.focus();
7373
- }, document.addEventListener("keydown", this._onKey, !0), document.addEventListener("focusin", this._onFocusIn), I(t, () => this._place());
7425
+ }, document.addEventListener("keydown", this._onKey, !0), document.addEventListener("focusin", this._onFocusIn), L(t, () => this._place());
7374
7426
  }
7375
7427
  _show(e) {
7376
7428
  this._current = e;
@@ -7395,7 +7447,7 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
7395
7447
  _place() {
7396
7448
  if (!this._current || !this._layer) return;
7397
7449
  let e = this._current.target.getBoundingClientRect(), t = this._spot.style;
7398
- t.top = `${e.top - Di}px`, t.left = `${e.left - Di}px`, t.width = `${e.width + Di * 2}px`, t.height = `${e.height + Di * 2}px`, F(this._spot, this._card, { clampHeight: !0 });
7450
+ t.top = `${e.top - Ni}px`, t.left = `${e.left - Ni}px`, t.width = `${e.width + Ni * 2}px`, t.height = `${e.height + Ni * 2}px`, I(this._spot, this._card, { clampHeight: !0 });
7399
7451
  }
7400
7452
  async _move(e) {
7401
7453
  if (!this._current || this._moving) return;
@@ -7421,7 +7473,7 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
7421
7473
  }
7422
7474
  _teardown() {
7423
7475
  if (!this._layer) return;
7424
- document.removeEventListener("keydown", this._onKey, !0), document.removeEventListener("focusin", this._onFocusIn), L(this._layer), this._layer.remove(), this._layer = null, this._current = null;
7476
+ document.removeEventListener("keydown", this._onKey, !0), document.removeEventListener("focusin", this._onFocusIn), R(this._layer), this._layer.remove(), this._layer = null, this._current = null;
7425
7477
  let e = this._returnFocus;
7426
7478
  this._returnFocus = null, e?.isConnected && e.focus?.();
7427
7479
  }
@@ -7441,11 +7493,11 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
7441
7493
  detail: { reason: e }
7442
7494
  }));
7443
7495
  }
7444
- }, Mi = [
7496
+ }, Ri = [
7445
7497
  "none",
7446
7498
  "single",
7447
7499
  "multiple"
7448
- ], Ni = "parentId", Pi = "Loading", Fi = "Could not load. Try again.", Ii = ":scope > input[data-wui-mirror]", Li = [
7500
+ ], zi = "parentId", Bi = "Loading", Vi = "Could not load. Try again.", Hi = ":scope > input[data-wui-mirror]", Ui = [
7449
7501
  "nodes",
7450
7502
  "selection",
7451
7503
  "selected",
@@ -7453,14 +7505,14 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
7453
7505
  "loadChildren",
7454
7506
  "loadUrl",
7455
7507
  "name"
7456
- ], Ri = 0;
7508
+ ], Wi = 0;
7457
7509
  function X(e, t, n) {
7458
7510
  let r = document.createElement(e);
7459
7511
  t && (r.className = t);
7460
7512
  for (let [e, t] of Object.entries(n ?? {})) t != null && r.setAttribute(e, String(t));
7461
7513
  return r;
7462
7514
  }
7463
- var zi = class extends e {
7515
+ var Gi = class extends e {
7464
7516
  static get observedAttributes() {
7465
7517
  return [
7466
7518
  "selection",
@@ -7472,7 +7524,7 @@ var zi = class extends e {
7472
7524
  ];
7473
7525
  }
7474
7526
  constructor() {
7475
- super(), this._uid = `wui-tree-${++Ri}`, this._seq = 0, this._roots = [], this._byId = /* @__PURE__ */ new Map(), this._prev = null, this._staged = null, this._els = /* @__PURE__ */ new Map(), this._checked = /* @__PURE__ */ new Set(), this._selected = null, this._focusId = null, this._loader = null, this._list = null, this._live = null, this._ready = !1, this._nav = Gt({
7527
+ super(), this._uid = `wui-tree-${++Wi}`, this._seq = 0, this._roots = [], this._byId = /* @__PURE__ */ new Map(), this._prev = null, this._staged = null, this._els = /* @__PURE__ */ new Map(), this._checked = /* @__PURE__ */ new Set(), this._selected = null, this._focusId = null, this._loader = null, this._list = null, this._live = null, this._ready = !1, this._nav = Xt({
7476
7528
  getVisibleOptions: () => this._visible().map((e) => this._els.get(e.id)?.row),
7477
7529
  getActive: () => this._visible().findIndex((e) => e.id === this._focusId),
7478
7530
  setActive: (e) => this._focusNode(this._visible()[e]),
@@ -7487,7 +7539,7 @@ var zi = class extends e {
7487
7539
  }
7488
7540
  connectedCallback() {
7489
7541
  let e = {};
7490
- for (let t of Li) Object.hasOwn(this, t) && (e[t] = this[t], delete this[t]);
7542
+ for (let t of Ui) Object.hasOwn(this, t) && (e[t] = this[t], delete this[t]);
7491
7543
  if (!this._ready) {
7492
7544
  this._ready = !0;
7493
7545
  let e = this._readScript();
@@ -7513,7 +7565,7 @@ var zi = class extends e {
7513
7565
  }
7514
7566
  get selection() {
7515
7567
  let e = this.getAttribute("selection");
7516
- return Mi.includes(e) ? e : "none";
7568
+ return Ri.includes(e) ? e : "none";
7517
7569
  }
7518
7570
  set selection(e) {
7519
7571
  this.setAttribute("selection", String(e));
@@ -7557,13 +7609,13 @@ var zi = class extends e {
7557
7609
  e == null ? this.removeAttribute("name") : this.setAttribute("name", String(e));
7558
7610
  }
7559
7611
  get loadingText() {
7560
- return this.getAttribute("loading-text") ?? Pi;
7612
+ return this.getAttribute("loading-text") ?? Bi;
7561
7613
  }
7562
7614
  set loadingText(e) {
7563
7615
  this.setAttribute("loading-text", String(e ?? ""));
7564
7616
  }
7565
7617
  get errorText() {
7566
- return this.getAttribute("error-text") ?? Fi;
7618
+ return this.getAttribute("error-text") ?? Vi;
7567
7619
  }
7568
7620
  set errorText(e) {
7569
7621
  this.setAttribute("error-text", String(e ?? ""));
@@ -7752,7 +7804,7 @@ var zi = class extends e {
7752
7804
  let t = this.getAttribute("load-url");
7753
7805
  if (!t) throw Error("<wui-tree> has a node with children to load but no loadChildren or load-url.");
7754
7806
  let n = new URL(t, window.location.href);
7755
- n.searchParams.set(Ni, e.id);
7807
+ n.searchParams.set(zi, e.id);
7756
7808
  let r = await fe(n.href, { headers: { Accept: "application/json" } });
7757
7809
  if (!r.ok) throw Error(`Loading children answered ${r.kind}.`);
7758
7810
  return JSON.parse(r.html);
@@ -7771,9 +7823,9 @@ var zi = class extends e {
7771
7823
  }
7772
7824
  _syncForm() {
7773
7825
  let e = this.selection;
7774
- if (e === "multiple") z(this, this.values);
7775
- else if (e === "single") R(this, this._selected ?? "");
7776
- else for (let e of this.querySelectorAll(Ii)) e.remove();
7826
+ if (e === "multiple") B(this, this.values);
7827
+ else if (e === "single") z(this, this._selected ?? "");
7828
+ else for (let e of this.querySelectorAll(Hi)) e.remove();
7777
7829
  }
7778
7830
  _render() {
7779
7831
  if (!this._list) return;
@@ -7799,7 +7851,7 @@ var zi = class extends e {
7799
7851
  let s = X("div", "wui-tree-row", { role: "presentation" });
7800
7852
  s.style.setProperty("--wui-tree-level", String(e.level - 1)), r === "single" && e.id === this._selected && s.classList.add("wui-tree-row-selected"), e.failed && s.classList.add("wui-tree-row-error");
7801
7853
  let c = X("span", i ? "wui-tree-toggle" : "wui-tree-toggle wui-tree-toggle-leaf", { "aria-hidden": "true" });
7802
- if (i && (c.innerHTML = B("chevron-right", { size: 16 })), s.append(c), r === "multiple") {
7854
+ if (i && (c.innerHTML = V("chevron-right", { size: 16 })), s.append(c), r === "multiple") {
7803
7855
  let t = X("input", "form-check-input wui-tree-check", {
7804
7856
  type: "checkbox",
7805
7857
  tabindex: -1,
@@ -7809,7 +7861,7 @@ var zi = class extends e {
7809
7861
  }
7810
7862
  if (e.icon) {
7811
7863
  let t = X("span", "wui-tree-icon", { "aria-hidden": "true" });
7812
- t.innerHTML = B(e.icon, { size: 16 }), s.append(t);
7864
+ t.innerHTML = V(e.icon, { size: 16 }), s.append(t);
7813
7865
  }
7814
7866
  let l = X("span", "wui-tree-label", { id: `${this._uid}-${e.seq}` });
7815
7867
  if (l.textContent = e.label, s.append(l), e.badge) {
@@ -7825,7 +7877,7 @@ var zi = class extends e {
7825
7877
  row: s
7826
7878
  }), o;
7827
7879
  }
7828
- }, Bi = "wui-wizard-step", Vi = class extends e {
7880
+ }, Ki = "wui-wizard-step", qi = class extends e {
7829
7881
  static get observedAttributes() {
7830
7882
  return [
7831
7883
  "active",
@@ -7860,7 +7912,7 @@ var zi = class extends e {
7860
7912
  this._beforeNext = typeof e == "function" ? e : null;
7861
7913
  }
7862
7914
  get _steps() {
7863
- return [...this.querySelectorAll(`:scope > ${Bi}`)];
7915
+ return [...this.querySelectorAll(`:scope > ${Ki}`)];
7864
7916
  }
7865
7917
  refresh() {
7866
7918
  this._rendered && this._renderChrome();
@@ -7899,7 +7951,7 @@ var zi = class extends e {
7899
7951
  }
7900
7952
  _reconcileSteps() {
7901
7953
  let e = this._steps, t = this._known;
7902
- if (this._known = e, Hi(e, t)) return e;
7954
+ if (this._known = e, Ji(e, t)) return e;
7903
7955
  let n = (n) => new Set([...n].map((n) => e.indexOf(t[n])).filter((e) => e >= 0));
7904
7956
  this._skipped = n(this._skipped), this._invalid = n(this._invalid);
7905
7957
  let r = t[this._active];
@@ -7919,7 +7971,7 @@ var zi = class extends e {
7919
7971
  _onStepsMutated() {
7920
7972
  if (!this._rendered) return;
7921
7973
  let e = this._steps;
7922
- (!e.length || this._header.nextElementSibling === e[0] && this._footer.previousElementSibling === e[e.length - 1]) && Hi(e, this._known) || (this._renderChrome(), this._observer?.takeRecords());
7974
+ (!e.length || this._header.nextElementSibling === e[0] && this._footer.previousElementSibling === e[e.length - 1]) && Ji(e, this._known) || (this._renderChrome(), this._observer?.takeRecords());
7923
7975
  }
7924
7976
  _syncPanels(e) {
7925
7977
  e.forEach((e, t) => {
@@ -7943,16 +7995,16 @@ var zi = class extends e {
7943
7995
  let a = this.hasAttribute("non-linear");
7944
7996
  return e.map((r, o) => {
7945
7997
  let s = this._stepStatus(r, o), c = r.getAttribute("label") || "", l = r.getAttribute("description") || "", u = r.getAttribute("icon") || "", d = o + 1, f;
7946
- f = s === "done" ? B("check") : s === "error" ? B("alert-triangle") : s === "skipped" ? B("minus") : u ? B(u) : String(d);
7947
- let p = s === "pending" ? "step" : `step ${s}`, m = s === "active" ? " aria-current=\"step\"" : "", h = a || o < this._active, g = l ? `<span class="step-desc">${Ui(l)}</span>` : "", _;
7948
- _ = t ? `<span class="step-circle">${f}</span><span class="step-text"><span class="step-index">Step ${d}</span><span class="step-label">${Ui(c)}</span>${g}</span>` : n ? `<span class="step-circle">${f}</span><span class="step-index">Step ${d}</span><span class="step-label">${Ui(c)}</span>${g}` : `<span class="step-circle">${f}</span><span class="step-label">${Ui(c)}</span>${g}`;
7998
+ f = s === "done" ? V("check") : s === "error" ? V("alert-triangle") : s === "skipped" ? V("minus") : u ? V(u) : String(d);
7999
+ let p = s === "pending" ? "step" : `step ${s}`, m = s === "active" ? " aria-current=\"step\"" : "", h = a || o < this._active, g = l ? `<span class="step-desc">${Yi(l)}</span>` : "", _;
8000
+ _ = t ? `<span class="step-circle">${f}</span><span class="step-text"><span class="step-index">Step ${d}</span><span class="step-label">${Yi(c)}</span>${g}</span>` : n ? `<span class="step-circle">${f}</span><span class="step-index">Step ${d}</span><span class="step-label">${Yi(c)}</span>${g}` : `<span class="step-circle">${f}</span><span class="step-label">${Yi(c)}</span>${g}`;
7949
8001
  let v = h ? `<button type="button" class="${p}" data-step="${o}"${m}>${_}</button>` : `<div class="${p}"${m}>${_}</div>`;
7950
8002
  return t && i && o < e.length - 1 ? `${v}<span class="step-line${s === "done" ? " done" : ""}" aria-hidden="true"></span>` : v;
7951
8003
  }).join("");
7952
8004
  }
7953
8005
  _footerHtml(e) {
7954
8006
  let t = this._active, n = e.length - 1, r = this.hasAttribute("disabled") ? " disabled" : "", i = e[t]?.hasAttribute("optional") || this.hasAttribute("skippable"), a = this.getAttribute("back-label") || "Back", o = this.getAttribute("next-label") || "Next", s = this.getAttribute("skip-label") || "Skip", c = this.getAttribute("finish-label") || "Finish";
7955
- return `${t > 0 ? `<button type="button" class="btn btn-secondary" data-nav="back"${r}>${B("arrow-left", { className: "me-2" })}${Ui(a)}</button>` : "<span></span>"}<span class="wizard-footer-actions">${i && t < n ? `<button type="button" class="btn btn-subtle" data-nav="skip"${r}>${Ui(s)}</button>` : ""}${t < n ? `<button type="button" class="btn btn-primary" data-nav="next"${r}>${Ui(o)}${B("arrow-right", { className: "ms-2" })}</button>` : `<button type="button" class="btn btn-primary" data-nav="finish"${r}>${Ui(c)}</button>`}</span>`;
8007
+ return `${t > 0 ? `<button type="button" class="btn btn-secondary" data-nav="back"${r}>${V("arrow-left", { className: "me-2" })}${Yi(a)}</button>` : "<span></span>"}<span class="wizard-footer-actions">${i && t < n ? `<button type="button" class="btn btn-subtle" data-nav="skip"${r}>${Yi(s)}</button>` : ""}${t < n ? `<button type="button" class="btn btn-primary" data-nav="next"${r}>${Yi(o)}${V("arrow-right", { className: "ms-2" })}</button>` : `<button type="button" class="btn btn-primary" data-nav="finish"${r}>${Yi(c)}</button>`}</span>`;
7956
8008
  }
7957
8009
  _wire() {
7958
8010
  this._teardown(), this._onHeaderClick = (e) => {
@@ -8026,7 +8078,7 @@ var zi = class extends e {
8026
8078
  _reflectActive(e) {
8027
8079
  this._reflecting = !0, this.setAttribute("active", String(e)), this._reflecting = !1;
8028
8080
  }
8029
- }, Hi = (e, t) => e.length === t.length && e.every((e, n) => e === t[n]), Ui = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), Wi = class extends e {
8081
+ }, Ji = (e, t) => e.length === t.length && e.every((e, n) => e === t[n]), Yi = (e) => String(e ?? "").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), Xi = class extends e {
8030
8082
  static get observedAttributes() {
8031
8083
  return [
8032
8084
  "label",
@@ -8040,8 +8092,8 @@ var zi = class extends e {
8040
8092
  let e = this.closest("wui-wizard");
8041
8093
  e && typeof e.refresh == "function" && e.refresh();
8042
8094
  }
8043
- }, Gi = 2e3;
8044
- async function Ki(e) {
8095
+ }, Zi = 2e3;
8096
+ async function Qi(e) {
8045
8097
  try {
8046
8098
  if (navigator.clipboard?.writeText) return await navigator.clipboard.writeText(e), !0;
8047
8099
  } catch {}
@@ -8056,14 +8108,14 @@ async function Ki(e) {
8056
8108
  }
8057
8109
  //#endregion
8058
8110
  //#region src/fileValidation.js
8059
- var qi = "image/png,image/jpeg,image/webp", Ji = 5, Yi = {
8111
+ var $i = "image/png,image/jpeg,image/webp", ea = 5, ta = {
8060
8112
  "image/png": [".png"],
8061
8113
  "image/jpeg": [".jpg", ".jpeg"],
8062
8114
  "image/webp": [".webp"],
8063
8115
  "image/gif": [".gif"],
8064
8116
  "image/svg+xml": [".svg"],
8065
8117
  "application/pdf": [".pdf"]
8066
- }, Xi = {
8118
+ }, na = {
8067
8119
  "image/png": "PNG",
8068
8120
  "image/jpeg": "JPG",
8069
8121
  "image/webp": "WEBP",
@@ -8077,7 +8129,7 @@ var qi = "image/png,image/jpeg,image/webp", Ji = 5, Yi = {
8077
8129
  ".gif": "GIF",
8078
8130
  ".svg": "SVG",
8079
8131
  ".pdf": "PDF"
8080
- }, Zi = (e) => String(e || "").split(",").map((e) => e.trim().toLowerCase()).filter(Boolean), Qi = [
8132
+ }, ra = (e) => String(e || "").split(",").map((e) => e.trim().toLowerCase()).filter(Boolean), ia = [
8081
8133
  ".png",
8082
8134
  ".jpg",
8083
8135
  ".jpeg",
@@ -8088,71 +8140,71 @@ var qi = "image/png,image/jpeg,image/webp", Ji = 5, Yi = {
8088
8140
  ".avif",
8089
8141
  ".heic"
8090
8142
  ];
8091
- function $i(e) {
8143
+ function aa(e) {
8092
8144
  if (!e) return !1;
8093
8145
  let t = typeof e == "object" && e.type ? String(e.type).toLowerCase() : "";
8094
8146
  if (t) return t.startsWith("image/");
8095
8147
  let n = typeof e == "string" ? e : e.name || e.url || "", r = String(n).toLowerCase();
8096
- return Qi.some((e) => r.endsWith(e));
8148
+ return ia.some((e) => r.endsWith(e));
8097
8149
  }
8098
- function ea(e) {
8150
+ function oa(e) {
8099
8151
  if (!e) return !1;
8100
8152
  let t = typeof e == "object" && e.type ? String(e.type).toLowerCase() : "";
8101
8153
  if (t) return t === "application/pdf";
8102
8154
  let n = typeof e == "string" ? e : e.name || e.url || "";
8103
8155
  return String(n).toLowerCase().split(/[?#]/)[0].endsWith(".pdf");
8104
8156
  }
8105
- function ta(e) {
8106
- let t = Zi(e);
8107
- return t.length ? t.every((e) => e.startsWith(".") ? Qi.includes(e) : e === "image/*" || e.startsWith("image/")) : !1;
8157
+ function sa(e) {
8158
+ let t = ra(e);
8159
+ return t.length ? t.every((e) => e.startsWith(".") ? ia.includes(e) : e === "image/*" || e.startsWith("image/")) : !1;
8108
8160
  }
8109
- function na(e) {
8161
+ function ca(e) {
8110
8162
  let t = [];
8111
- for (let n of Zi(e)) {
8112
- let e = Xi[n] || (n.startsWith(".") ? n.slice(1).toUpperCase() : n.toUpperCase());
8163
+ for (let n of ra(e)) {
8164
+ let e = na[n] || (n.startsWith(".") ? n.slice(1).toUpperCase() : n.toUpperCase());
8113
8165
  t.includes(e) || t.push(e);
8114
8166
  }
8115
8167
  return t.length <= 1 ? t[0] || "supported" : `${t.slice(0, -1).join(", ")} or ${t[t.length - 1]}`;
8116
8168
  }
8117
- function ra(e, t) {
8118
- let n = Zi(t);
8169
+ function la(e, t) {
8170
+ let n = ra(t);
8119
8171
  if (!n.length) return !0;
8120
8172
  let r = (e.type || "").toLowerCase(), i = (e.name || "").toLowerCase();
8121
- return n.some((e) => e.startsWith(".") ? i.endsWith(e) : e.endsWith("/*") ? r.startsWith(e.slice(0, -1)) : r && r === e ? !0 : !r && (Yi[e] || []).some((e) => i.endsWith(e)));
8173
+ return n.some((e) => e.startsWith(".") ? i.endsWith(e) : e.endsWith("/*") ? r.startsWith(e.slice(0, -1)) : r && r === e ? !0 : !r && (ta[e] || []).some((e) => i.endsWith(e)));
8122
8174
  }
8123
- function ia(e, t = {}) {
8175
+ function ua(e, t = {}) {
8124
8176
  if (!e) return null;
8125
- let n = t.accept === void 0 ? qi : t.accept, r = t.maxSizeMb === void 0 ? 5 : t.maxSizeMb;
8126
- return ra(e, n) ? r > 0 && e.size > r * 1024 * 1024 ? `Keep the file under ${r} MB.` : null : `Choose a ${na(n)} file.`;
8177
+ let n = t.accept === void 0 ? $i : t.accept, r = t.maxSizeMb === void 0 ? 5 : t.maxSizeMb;
8178
+ return la(e, n) ? r > 0 && e.size > r * 1024 * 1024 ? `Keep the file under ${r} MB.` : null : `Choose a ${ca(n)} file.`;
8127
8179
  }
8128
8180
  //#endregion
8129
8181
  //#region src/inputMask.js
8130
- var aa = /[0-9]/, oa = {
8131
- 9: aa,
8182
+ var da = /[0-9]/, fa = {
8183
+ 9: da,
8132
8184
  A: /[A-Za-z]/,
8133
8185
  "*": /[0-9A-Za-z]/
8134
- }, sa = /[9A*]/, ca = /* @__PURE__ */ new Set([
8186
+ }, pa = /[9A*]/, ma = /* @__PURE__ */ new Set([
8135
8187
  "text",
8136
8188
  "tel",
8137
8189
  "search",
8138
8190
  "url",
8139
8191
  "password"
8140
- ]), la = (e) => {
8192
+ ]), ha = (e) => {
8141
8193
  let t = e.replace(/\D/g, "");
8142
8194
  return t.length === 12 && t.startsWith("91") ? t.slice(2) : t.length === 11 && t.startsWith("0") ? t.slice(1) : e;
8143
- }, ua = (e) => {
8195
+ }, ga = (e) => {
8144
8196
  let t = Number(e.slice(0, 2)), n = Number(e.slice(2, 4)), r = Number(e.slice(4, 8));
8145
8197
  if (r < 1) return !1;
8146
8198
  let i = new Date(Date.UTC(r, n - 1, t));
8147
8199
  return i.getUTCFullYear() === r && i.getUTCMonth() === n - 1 && i.getUTCDate() === t;
8148
- }, da = (e) => e.length <= 3 ? e : `${e.slice(0, -3).replace(/\B(?=(\d{2})+(?!\d))/g, ",")},${e.slice(-3)}`, fa = (e) => {
8200
+ }, _a = (e) => e.length <= 3 ? e : `${e.slice(0, -3).replace(/\B(?=(\d{2})+(?!\d))/g, ",")},${e.slice(-3)}`, va = (e) => {
8149
8201
  let t = /^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());
8150
8202
  return t ? `${t[3]}-${t[2]}-${t[1]}` : e;
8151
8203
  };
8152
- function pa(e, { upper: t = !1, normalize: n, valid: r, post: i = (e) => e, message: a = "Enter the full value" } = {}) {
8153
- let o = [...e].map((e) => oa[e] ? { re: oa[e] } : { lit: e }), s = o.filter((e) => e.re).length;
8204
+ function ya(e, { upper: t = !1, normalize: n, valid: r, post: i = (e) => e, message: a = "Enter the full value" } = {}) {
8205
+ let o = [...e].map((e) => fa[e] ? { re: fa[e] } : { lit: e }), s = o.filter((e) => e.re).length;
8154
8206
  return {
8155
- inputMode: o.every((e) => !e.re || e.re === aa) ? "numeric" : "text",
8207
+ inputMode: o.every((e) => !e.re || e.re === da) ? "numeric" : "text",
8156
8208
  normalize: n,
8157
8209
  post: i,
8158
8210
  message: a,
@@ -8177,18 +8229,18 @@ function pa(e, { upper: t = !1, normalize: n, valid: r, post: i = (e) => e, mess
8177
8229
  isValid: (e) => e.length === s && (!r || r(e))
8178
8230
  };
8179
8231
  }
8180
- function ma() {
8232
+ function ba() {
8181
8233
  return {
8182
8234
  inputMode: "decimal",
8183
8235
  post: (e) => e,
8184
8236
  message: "Enter a valid amount",
8185
8237
  extract(e) {
8186
8238
  let t = "", n = !1, r = 0;
8187
- for (let i of e) aa.test(i) ? n ? r < 2 && (t += i, r++) : t += i : i === "." && !n && (n = !0, t += i);
8239
+ for (let i of e) da.test(i) ? n ? r < 2 && (t += i, r++) : t += i : i === "." && !n && (n = !0, t += i);
8188
8240
  return t.startsWith(".") && (t = `0${t}`), t.replace(/^0+(?=\d)/, "");
8189
8241
  },
8190
8242
  layout(e) {
8191
- let [t, n] = e.split("."), r = da(t) + (e.includes(".") ? `.${n}` : "");
8243
+ let [t, n] = e.split("."), r = _a(t) + (e.includes(".") ? `.${n}` : "");
8192
8244
  return {
8193
8245
  text: r,
8194
8246
  isRaw: [...r].map((e) => e !== ",")
@@ -8197,75 +8249,75 @@ function ma() {
8197
8249
  isValid: (e) => /^\d+(\.\d{1,2})?$/.test(e)
8198
8250
  };
8199
8251
  }
8200
- var ha = {
8201
- "phone-in": () => pa("99999 99999", {
8202
- normalize: la,
8252
+ var xa = {
8253
+ "phone-in": () => ya("99999 99999", {
8254
+ normalize: ha,
8203
8255
  valid: (e) => /^[6-9]/.test(e),
8204
8256
  message: "Enter a 10-digit mobile number"
8205
8257
  }),
8206
- pan: () => pa("AAAAA9999A", {
8258
+ pan: () => ya("AAAAA9999A", {
8207
8259
  upper: !0,
8208
8260
  valid: (e) => /^[A-Z]{5}\d{4}[A-Z]$/.test(e),
8209
8261
  message: "Enter a valid PAN"
8210
8262
  }),
8211
- gstin: () => pa("99AAAAA9999A***", {
8263
+ gstin: () => ya("99AAAAA9999A***", {
8212
8264
  upper: !0,
8213
8265
  valid: (e) => /^\d{2}[A-Z]{5}\d{4}[A-Z][1-9A-Z]Z[0-9A-Z]$/.test(e),
8214
8266
  message: "Enter a valid GSTIN"
8215
8267
  }),
8216
- aadhaar: () => pa("9999 9999 9999", {
8268
+ aadhaar: () => ya("9999 9999 9999", {
8217
8269
  valid: (e) => /^[2-9]/.test(e),
8218
8270
  message: "Enter a valid 12-digit Aadhaar number"
8219
8271
  }),
8220
- ifsc: () => pa("AAAA*******", {
8272
+ ifsc: () => ya("AAAA*******", {
8221
8273
  upper: !0,
8222
8274
  valid: (e) => /^[A-Z]{4}0[A-Z0-9]{6}$/.test(e),
8223
8275
  message: "Enter a valid IFSC"
8224
8276
  }),
8225
- "pin-code": () => pa("999999", {
8277
+ "pin-code": () => ya("999999", {
8226
8278
  valid: (e) => /^[1-9]/.test(e),
8227
8279
  message: "Enter a valid 6-digit PIN code"
8228
8280
  }),
8229
- date: () => pa("99-99-9999", {
8230
- normalize: fa,
8231
- valid: ua,
8232
- post: (e, t) => e.length === 8 && ua(e) ? `${e.slice(4)}-${e.slice(2, 4)}-${e.slice(0, 2)}` : t,
8281
+ date: () => ya("99-99-9999", {
8282
+ normalize: va,
8283
+ valid: ga,
8284
+ post: (e, t) => e.length === 8 && ga(e) ? `${e.slice(4)}-${e.slice(2, 4)}-${e.slice(0, 2)}` : t,
8233
8285
  message: "Enter a valid date as DD-MM-YYYY"
8234
8286
  }),
8235
- amount: ma
8236
- }, ga = Object.keys(ha), _a = (e) => {
8287
+ amount: ba
8288
+ }, Sa = Object.keys(xa), Ca = (e) => {
8237
8289
  let t = String(e).toLowerCase();
8238
- return Object.hasOwn(ha, t) ? t : void 0;
8239
- }, va = (e) => sa.test(String(e)) && _a(e) === void 0, ya = /* @__PURE__ */ new Map();
8240
- function ba(e) {
8290
+ return Object.hasOwn(xa, t) ? t : void 0;
8291
+ }, wa = (e) => pa.test(String(e)) && Ca(e) === void 0, Ta = /* @__PURE__ */ new Map();
8292
+ function Ea(e) {
8241
8293
  if (e == null || e === "") return null;
8242
8294
  let t = String(e);
8243
- return ya.has(t) || (va(t) ? ya.set(t, pa(t)) : ya.set(t, Object.hasOwn(ha, t) ? ha[t]() : null)), ya.get(t);
8295
+ return Ta.has(t) || (wa(t) ? Ta.set(t, ya(t)) : Ta.set(t, Object.hasOwn(xa, t) ? xa[t]() : null)), Ta.get(t);
8244
8296
  }
8245
8297
  var Z = (e, t) => e.normalize ? e.normalize(t) : t;
8246
- function xa(e, t) {
8247
- let n = ba(e);
8298
+ function Da(e, t) {
8299
+ let n = Ea(e);
8248
8300
  return n ? n.extract(Z(n, String(t ?? ""))) : String(t ?? "");
8249
8301
  }
8250
- function Sa(e, t) {
8251
- let n = ba(e);
8302
+ function Oa(e, t) {
8303
+ let n = Ea(e);
8252
8304
  if (!n) return String(t ?? "");
8253
8305
  let r = n.extract(Z(n, String(t ?? "")));
8254
8306
  return n.post(r, n.layout(r).text);
8255
8307
  }
8256
- function Ca(e, t) {
8257
- let n = ba(e);
8308
+ function ka(e, t) {
8309
+ let n = Ea(e);
8258
8310
  return n ? n.layout(n.extract(Z(n, String(t ?? "")))).text : String(t ?? "");
8259
8311
  }
8260
- var wa = (e, t) => {
8312
+ var Aa = (e, t) => {
8261
8313
  if (t <= 0) return 0;
8262
8314
  let n = 0;
8263
8315
  for (let r = 0; r < e.length; r++) if (e[r] && ++n === t) return r + 1;
8264
8316
  return e.length;
8265
- }, Ta = /* @__PURE__ */ new WeakMap(), Ea = (e) => Ta.get(e)?.(), Da = /* @__PURE__ */ new WeakMap();
8266
- function Oa(e, t, n, r) {
8267
- let i = e.getAll(t), a = Da.get(e);
8268
- a || Da.set(e, a = /* @__PURE__ */ new Set());
8317
+ }, ja = /* @__PURE__ */ new WeakMap(), Ma = (e) => ja.get(e)?.(), Na = /* @__PURE__ */ new WeakMap();
8318
+ function Pa(e, t, n, r) {
8319
+ let i = e.getAll(t), a = Na.get(e);
8320
+ a || Na.set(e, a = /* @__PURE__ */ new Set());
8269
8321
  let o = i.findIndex((e, r) => e === n && !a.has(`${t}\u0000${r}`));
8270
8322
  if (!(o < 0)) {
8271
8323
  if (a.add(`${t}\u0000${o}`), i[o] = r, i.length === 1) {
@@ -8276,7 +8328,7 @@ function Oa(e, t, n, r) {
8276
8328
  for (let n of i) e.append(t, n);
8277
8329
  }
8278
8330
  }
8279
- function ka(e) {
8331
+ function Fa(e) {
8280
8332
  let t = null, n = null, r = !1, i = (t, n) => n === null ? e.removeAttribute(t) : e.setAttribute(t, n), a, o, s = () => {
8281
8333
  t?.remove(), t = null, n && (n.hidden = !1), n = null, r && e.classList.remove("error"), r = !1, a !== void 0 && i("aria-invalid", a), o !== void 0 && i("aria-describedby", o), a = void 0, o = void 0;
8282
8334
  };
@@ -8289,18 +8341,18 @@ function ka(e) {
8289
8341
  l && l !== t && l.textContent.trim() || (t || (r = !e.classList.contains("error"), e.classList.add("error"), a = e.getAttribute("aria-invalid"), o = e.getAttribute("aria-describedby"), c && (t = document.createElement("div"), t.className = "field-error", e.id && (t.id = `${e.id}-error`), n = c.querySelector(".field-hint"), n && (n.hidden = !0), c.insertBefore(t, [...c.children].find((e) => e.classList.contains("field-count")) ?? null), t.id && e.setAttribute("aria-describedby", t.id)), e.setAttribute("aria-invalid", "true")), t && (t.textContent = i));
8290
8342
  };
8291
8343
  }
8292
- function Aa(e, { mask: t, postFormatted: n = !1, onChange: r, onInvalidChange: i } = {}) {
8293
- let a = ba(t);
8294
- if (!a || !ca.has(e.type)) return () => {};
8344
+ function Ia(e, { mask: t, postFormatted: n = !1, onChange: r, onInvalidChange: i } = {}) {
8345
+ let a = Ea(t);
8346
+ if (!a || !ma.has(e.type)) return () => {};
8295
8347
  let o = Object.getPrototypeOf(e), s = Object.getOwnPropertyDescriptor(o, "value").set, c = !e.hasAttribute("inputmode");
8296
8348
  c && e.setAttribute("inputmode", a.inputMode);
8297
- let l = i ?? ka(e), u = null, d = !1, f = !1, p = !1, m = "", h = "", g, _ = () => {
8349
+ let l = i ?? Fa(e), u = null, d = !1, f = !1, p = !1, m = "", h = "", g, _ = () => {
8298
8350
  let e = p ? m : "";
8299
8351
  e !== h && (h = e, l(h));
8300
8352
  }, v = (t, n, i) => {
8301
8353
  let o = a.extract(t.slice(0, n)).length, c = a.extract(t), { text: l, isRaw: d } = a.layout(c);
8302
- if (e.value !== l && (s.call(e, l), document.activeElement === e && ca.has(e.type))) {
8303
- let t = wa(d, o);
8354
+ if (e.value !== l && (s.call(e, l), document.activeElement === e && ma.has(e.type))) {
8355
+ let t = Aa(d, o);
8304
8356
  e.setSelectionRange(t, t);
8305
8357
  }
8306
8358
  e.dataset.maskRaw = c, m = c && !a.isValid(c) ? a.message : "", e.setCustomValidity(m), _(), i && c !== u && r?.(c, l), u = c;
@@ -8350,52 +8402,52 @@ function Aa(e, { mask: t, postFormatted: n = !1, onChange: r, onInvalidChange: i
8350
8402
  };
8351
8403
  e.addEventListener("input", S), e.addEventListener("beforeinput", te), e.addEventListener("paste", ne), e.addEventListener("compositionstart", ee), e.addEventListener("compositionend", C), e.addEventListener("blur", w), e.addEventListener("invalid", w);
8352
8404
  let T = e.form, ie = (t) => {
8353
- e.name && !e.disabled && Oa(t.formData, e.name, e.value, re());
8405
+ e.name && !e.disabled && Pa(t.formData, e.name, e.value, re());
8354
8406
  }, ae = () => {
8355
8407
  clearTimeout(g), g = setTimeout(() => {
8356
8408
  p = !1, v(Z(a, e.value), e.value.length, !0);
8357
8409
  }, 0);
8358
8410
  };
8359
- n || (T?.addEventListener("formdata", ie), Ta.set(e, re)), T?.addEventListener("reset", ae), T?.addEventListener("submit", w);
8411
+ n || (T?.addEventListener("formdata", ie), ja.set(e, re)), T?.addEventListener("reset", ae), T?.addEventListener("submit", w);
8360
8412
  let E = Z(a, e.value);
8361
8413
  return v(E, E.length, !1), () => {
8362
- clearTimeout(g), e.removeEventListener("input", S), e.removeEventListener("beforeinput", te), e.removeEventListener("paste", ne), e.removeEventListener("compositionstart", ee), e.removeEventListener("compositionend", C), e.removeEventListener("blur", w), e.removeEventListener("invalid", w), T?.removeEventListener("formdata", ie), T?.removeEventListener("reset", ae), T?.removeEventListener("submit", w), Ta.delete(e), y ? Object.defineProperty(e, "value", y) : delete e.value, p = !1, m = "", _(), e.setCustomValidity(""), delete e.dataset.maskRaw, c && e.removeAttribute("inputmode");
8414
+ clearTimeout(g), e.removeEventListener("input", S), e.removeEventListener("beforeinput", te), e.removeEventListener("paste", ne), e.removeEventListener("compositionstart", ee), e.removeEventListener("compositionend", C), e.removeEventListener("blur", w), e.removeEventListener("invalid", w), T?.removeEventListener("formdata", ie), T?.removeEventListener("reset", ae), T?.removeEventListener("submit", w), ja.delete(e), y ? Object.defineProperty(e, "value", y) : delete e.value, p = !1, m = "", _(), e.setCustomValidity(""), delete e.dataset.maskRaw, c && e.removeAttribute("inputmode");
8363
8415
  };
8364
8416
  }
8365
- function ja() {
8417
+ function La() {
8366
8418
  let e = typeof window > "u" ? void 0 : window.jQuery?.validator?.prototype;
8367
8419
  if (!e || e.wuiMaskHook) return;
8368
8420
  let t = e.elementValue;
8369
8421
  e.elementValue = function(e) {
8370
- let n = Ea(e);
8422
+ let n = Ma(e);
8371
8423
  return n === void 0 ? t.call(this, e) : n;
8372
8424
  }, e.wuiMaskHook = !0;
8373
8425
  }
8374
- var Ma = /* @__PURE__ */ new WeakMap(), Na, Pa = (e) => {
8375
- Ma.has(e) || Ma.set(e, Aa(e, {
8426
+ var Ra = /* @__PURE__ */ new WeakMap(), za, Ba = (e) => {
8427
+ Ra.has(e) || Ra.set(e, Ia(e, {
8376
8428
  mask: e.dataset.appMask,
8377
8429
  postFormatted: e.hasAttribute("data-mask-post-formatted")
8378
8430
  }));
8379
- }, Fa = (e) => e.nodeType === 1 ? [...e.matches("input[data-app-mask]") ? [e] : [], ...e.querySelectorAll("input[data-app-mask]")] : [];
8380
- function Ia() {
8381
- Na || typeof MutationObserver > "u" || (Na = new MutationObserver((e) => {
8431
+ }, Va = (e) => e.nodeType === 1 ? [...e.matches("input[data-app-mask]") ? [e] : [], ...e.querySelectorAll("input[data-app-mask]")] : [];
8432
+ function Ha() {
8433
+ za || typeof MutationObserver > "u" || (za = new MutationObserver((e) => {
8382
8434
  for (let t of e) {
8383
- for (let e of t.removedNodes) for (let t of Fa(e)) Ma.get(t)?.(), Ma.delete(t);
8384
- for (let e of t.addedNodes) for (let t of Fa(e)) Pa(t);
8435
+ for (let e of t.removedNodes) for (let t of Va(e)) Ra.get(t)?.(), Ra.delete(t);
8436
+ for (let e of t.addedNodes) for (let t of Va(e)) Ba(t);
8385
8437
  }
8386
- }), Na.observe(document.documentElement, {
8438
+ }), za.observe(document.documentElement, {
8387
8439
  childList: !0,
8388
8440
  subtree: !0
8389
8441
  }));
8390
8442
  }
8391
- function La(e = document) {
8392
- ja();
8393
- for (let t of e.querySelectorAll("input[data-app-mask]")) Pa(t);
8394
- e === document && Ia();
8443
+ function Ua(e = document) {
8444
+ La();
8445
+ for (let t of e.querySelectorAll("input[data-app-mask]")) Ba(t);
8446
+ e === document && Ha();
8395
8447
  }
8396
8448
  //#endregion
8397
8449
  //#region src/passwordRules.js
8398
- var Ra = {
8450
+ var Wa = {
8399
8451
  minLength: 10,
8400
8452
  uppercase: !0,
8401
8453
  lowercase: !0,
@@ -8403,15 +8455,15 @@ var Ra = {
8403
8455
  special: !0,
8404
8456
  uniqueChars: 0,
8405
8457
  customRules: []
8406
- }, za = "Password requirements";
8407
- function Ba(e) {
8408
- return e === !0 || e == null ? { ...Ra } : {
8409
- ...Ra,
8458
+ }, Ga = "Password requirements";
8459
+ function Ka(e) {
8460
+ return e === !0 || e == null ? { ...Wa } : {
8461
+ ...Wa,
8410
8462
  ...e
8411
8463
  };
8412
8464
  }
8413
- function Va(e) {
8414
- let t = Ba(e), n = [];
8465
+ function qa(e) {
8466
+ let t = Ka(e), n = [];
8415
8467
  if (t.minLength > 0 && n.push({
8416
8468
  key: "length",
8417
8469
  label: `At least ${t.minLength} characters long`,
@@ -8450,47 +8502,47 @@ function Va(e) {
8450
8502
  }
8451
8503
  return n;
8452
8504
  }
8453
- function Ha(e, t) {
8505
+ function Ja(e, t) {
8454
8506
  let n = e == null ? "" : String(e);
8455
- return Va(t).map((e) => ({
8507
+ return qa(t).map((e) => ({
8456
8508
  key: e.key,
8457
8509
  label: e.label,
8458
8510
  met: e.test(n)
8459
8511
  }));
8460
8512
  }
8461
- function Ua(e, t) {
8462
- return Ha(e, t).every((e) => e.met);
8513
+ function Ya(e, t) {
8514
+ return Ja(e, t).every((e) => e.met);
8463
8515
  }
8464
8516
  //#endregion
8465
8517
  //#region src/tableSelect.js
8466
- var Wa = "Select all rows", Ga = "Select row", Q = "wui-select-cell", Ka = (e, t) => {
8518
+ var Xa = "Select all rows", Za = "Select row", Q = "wui-select-cell", Qa = (e, t) => {
8467
8519
  let n = e.createElement("input");
8468
8520
  return n.type = "checkbox", n.className = "wui-check", n.setAttribute("aria-label", t), n;
8469
8521
  };
8470
- function qa(e = document) {
8522
+ function $a(e = document) {
8471
8523
  let t = e.createElement("th");
8472
- return t.className = Q, t.appendChild(Ka(e, Wa)), t;
8524
+ return t.className = Q, t.appendChild(Qa(e, Xa)), t;
8473
8525
  }
8474
- function Ja(e = document) {
8526
+ function eo(e = document) {
8475
8527
  let t = e.createElement("td");
8476
- return t.className = Q, t.appendChild(Ka(e, Ga)), t;
8528
+ return t.className = Q, t.appendChild(Qa(e, Za)), t;
8477
8529
  }
8478
- function Ya(e = document) {
8530
+ function to(e = document) {
8479
8531
  let t = e.createElement("td");
8480
8532
  return t.className = Q, t;
8481
8533
  }
8482
- var Xa = (e) => e.firstElementChild?.classList.contains(Q);
8483
- function Za(e) {
8484
- for (let t of e) Xa(t) || t.insertBefore(Ja(t.ownerDocument), t.firstChild);
8534
+ var no = (e) => e.firstElementChild?.classList.contains(Q);
8535
+ function ro(e) {
8536
+ for (let t of e) no(t) || t.insertBefore(eo(t.ownerDocument), t.firstChild);
8485
8537
  }
8486
- function Qa(e) {
8538
+ function io(e) {
8487
8539
  let t = e.querySelector("thead tr");
8488
8540
  if (!t) return null;
8489
- Xa(t) || t.insertBefore(qa(e.ownerDocument), t.firstChild), Za(e.querySelectorAll("tbody tr"));
8490
- for (let t of e.querySelectorAll("tfoot tr")) Xa(t) || t.insertBefore(Ya(e.ownerDocument), t.firstChild);
8541
+ no(t) || t.insertBefore($a(e.ownerDocument), t.firstChild), ro(e.querySelectorAll("tbody tr"));
8542
+ for (let t of e.querySelectorAll("tfoot tr")) no(t) || t.insertBefore(to(e.ownerDocument), t.firstChild);
8491
8543
  return t.querySelector(`.${Q} .wui-check`);
8492
8544
  }
8493
- function $a(e) {
8545
+ function ao(e) {
8494
8546
  let t = e.querySelector(`thead .${Q} .wui-check`), n = [...e.querySelectorAll("tbody tr .wui-check")], r = n.length, i = n.filter((e) => e.checked).length;
8495
8547
  t && (t.checked = r > 0 && i === r, t.indeterminate = i > 0 && i < r);
8496
8548
  for (let t of e.querySelectorAll("tbody tr")) t.classList.toggle("is-selected", !!t.querySelector(".wui-check")?.checked);
@@ -8501,12 +8553,12 @@ function $a(e) {
8501
8553
  }
8502
8554
  //#endregion
8503
8555
  //#region src/serverTable.js
8504
- var eo = Object.freeze([
8556
+ var oo = Object.freeze([
8505
8557
  "page",
8506
8558
  "pageSize",
8507
8559
  "sortBy",
8508
8560
  "sortOrder"
8509
- ]), to = "search", no = Object.freeze({
8561
+ ]), so = "search", co = Object.freeze({
8510
8562
  loading: "Loading rows",
8511
8563
  error: "These rows did not load. Try again.",
8512
8564
  network: "The connection dropped before the rows loaded. Check it and try again.",
@@ -8515,28 +8567,28 @@ var eo = Object.freeze([
8515
8567
  actionFailed: "That did not work. Try again.",
8516
8568
  actionForbidden: "You do not have permission to do that.",
8517
8569
  empty: "No rows"
8518
- }), ro = 5, io = /* @__PURE__ */ new WeakMap(), ao = (e, t) => {
8570
+ }), lo = 5, uo = /* @__PURE__ */ new WeakMap(), fo = (e, t) => {
8519
8571
  let n = Number(e);
8520
8572
  return Number.isInteger(n) ? n : t;
8521
- }, oo = (e) => ({
8522
- total: ao(e.dataset.total, 0),
8523
- page: ao(e.dataset.page, 1),
8524
- pageSize: ao(e.dataset.pageSize, 0),
8573
+ }, po = (e) => ({
8574
+ total: fo(e.dataset.total, 0),
8575
+ page: fo(e.dataset.page, 1),
8576
+ pageSize: fo(e.dataset.pageSize, 0),
8525
8577
  sortBy: e.dataset.sortBy || "",
8526
8578
  sortOrder: e.dataset.sortOrder === "desc" ? "desc" : "asc"
8527
- }), so = (e, t) => {
8579
+ }), mo = (e, t) => {
8528
8580
  e && window.WUI?.toast?.(e, { variant: t });
8529
8581
  };
8530
- function co(e = document) {
8582
+ function ho(e = document) {
8531
8583
  let t = e.querySelectorAll ? [...e.querySelectorAll("[data-wui-server]")] : [];
8532
8584
  e instanceof Element && e.matches("[data-wui-server]") && t.unshift(e);
8533
- for (let e of t) io.has(e) || io.set(e, uo(e));
8585
+ for (let e of t) uo.has(e) || uo.set(e, _o(e));
8534
8586
  }
8535
- function lo(e) {
8587
+ function go(e) {
8536
8588
  let t = e instanceof Element ? e.closest("[data-wui-server]") : null;
8537
- return t && io.get(t) || null;
8589
+ return t && uo.get(t) || null;
8538
8590
  }
8539
- function uo(e) {
8591
+ function _o(e) {
8540
8592
  let t = e.querySelector(".table-wrap"), n = t?.querySelector(":scope > table"), r = e.dataset.src;
8541
8593
  if (!n || !r) throw Error("A server-paged table needs data-src and a .table-wrap > table: render it with <app-data-table src>.");
8542
8594
  let i = t.querySelector(":scope > [data-wui-table-state]"), a = e.querySelector("[data-wui-table-pager]"), o = e.querySelector("[data-wui-table-status]"), s = {
@@ -8545,11 +8597,11 @@ function uo(e) {
8545
8597
  filtersForm: e.dataset.filtersForm || null,
8546
8598
  filtersRegion: e.dataset.filtersRegion || null,
8547
8599
  searchInput: e.dataset.searchInput || null,
8548
- loadingText: e.dataset.loadingText || no.loading,
8549
- errorText: e.dataset.errorText || no.error
8600
+ loadingText: e.dataset.loadingText || co.loading,
8601
+ errorText: e.dataset.errorText || co.error
8550
8602
  }, c = new URL(r, window.location.href), l = new Set(c.searchParams.keys()), u = n.hasAttribute("data-app-datatable-selectable"), d = /* @__PURE__ */ new Set(), f = pe(), p = new AbortController(), m = { signal: p.signal }, h = n.querySelector(":scope > tbody[data-wui-rows]");
8551
8603
  if (!h) throw Error("A server-paged table needs its rows in <app-table-rows> (tbody[data-wui-rows]).");
8552
- let g = oo(h), _ = null, v = null, y = (e) => {
8604
+ let g = po(h), _ = null, v = null, y = (e) => {
8553
8605
  let t = new URLSearchParams();
8554
8606
  for (let [n, r] of new URLSearchParams(e)) l.has(n) || t.append(n, r);
8555
8607
  return t;
@@ -8571,7 +8623,7 @@ function uo(e) {
8571
8623
  })), ne = (e) => {
8572
8624
  o && (o.textContent = e);
8573
8625
  }, re = (e) => {
8574
- if (e.total === 0) return no.empty;
8626
+ if (e.total === 0) return co.empty;
8575
8627
  let t = e.pageSize > 0 ? Math.max(1, Math.ceil(e.total / e.pageSize)) : 1;
8576
8628
  return `Page ${e.page} of ${t}, ${e.total} ${e.total === 1 ? "row" : "rows"}`;
8577
8629
  }, w = () => [...n.querySelectorAll(":scope > thead > tr:first-child > th")], T = (e) => {
@@ -8579,12 +8631,12 @@ function uo(e) {
8579
8631
  }, ie = (e) => {
8580
8632
  let t = [...e.querySelectorAll(":scope > tr")];
8581
8633
  if (u) {
8582
- Za(t);
8634
+ ro(t);
8583
8635
  for (let e of t) {
8584
8636
  let t = e.querySelector(`.${Q} .wui-check`);
8585
8637
  t && (t.checked = d.has(e.dataset.rowKey));
8586
8638
  }
8587
- $a(n);
8639
+ ao(n);
8588
8640
  }
8589
8641
  let r = w();
8590
8642
  if (n.classList.contains("wui-table-stack")) for (let e of t) [...e.cells].forEach((e, t) => {
@@ -8601,7 +8653,7 @@ function uo(e) {
8601
8653
  let n = e.querySelector(":scope > template[data-wui-empty]");
8602
8654
  E(i), t.total === 0 && n ? (i.replaceChildren(n.content.cloneNode(!0)), i.hidden = !1) : (i.replaceChildren(), i.hidden = !0);
8603
8655
  }, oe = (e) => {
8604
- let r = oo(e);
8656
+ let r = po(e);
8605
8657
  if (a) {
8606
8658
  let t = e.querySelector(":scope > template[data-wui-pager]");
8607
8659
  E(a), a.replaceChildren(...t ? [t.content.cloneNode(!0)] : []), a.hidden = !1;
@@ -8617,7 +8669,7 @@ function uo(e) {
8617
8669
  }, ce = () => {
8618
8670
  if (h.querySelector(":scope > tr:not([data-wui-skeleton])")) return;
8619
8671
  let e = Math.max(1, w().length);
8620
- h.replaceChildren(...Array.from({ length: ro }, () => {
8672
+ h.replaceChildren(...Array.from({ length: lo }, () => {
8621
8673
  let t = document.createElement("tr");
8622
8674
  t.setAttribute("data-wui-skeleton", "");
8623
8675
  for (let n = 0; n < e; n++) {
@@ -8628,19 +8680,19 @@ function uo(e) {
8628
8680
  })), t.removeAttribute("data-wui-table-error"), i && (i.hidden = !0);
8629
8681
  }, le = (e) => {
8630
8682
  e ? (t.setAttribute("aria-busy", "true"), ce()) : t.removeAttribute("aria-busy");
8631
- }, ue = (e) => e === "forbidden" ? no.forbidden : e === "network" ? no.network : s.errorText, de = (e) => {
8683
+ }, ue = (e) => e === "forbidden" ? co.forbidden : e === "network" ? co.network : s.errorText, de = (e) => {
8632
8684
  let n = ue(e);
8633
8685
  if (t.setAttribute("data-wui-table-error", e), a && (a.hidden = !0), i) {
8634
8686
  let t = document.createElement("div");
8635
8687
  t.className = "tbl-empty wui-table-error", t.setAttribute("role", "alert");
8636
8688
  let r = document.createElement("span");
8637
- r.className = "tbl-empty-icon", r.innerHTML = B(e === "forbidden" ? "lock" : "alert-circle", { size: 24 });
8689
+ r.className = "tbl-empty-icon", r.innerHTML = V(e === "forbidden" ? "lock" : "alert-circle", { size: 24 });
8638
8690
  let a = document.createElement("div");
8639
8691
  a.className = "tbl-empty-title", a.textContent = n;
8640
8692
  let o = document.createElement("div");
8641
8693
  o.className = "tbl-empty-action";
8642
8694
  let s = document.createElement("button");
8643
- s.type = "button", s.className = "btn btn-outline-primary btn-sm", s.setAttribute("data-wui-table-retry", ""), s.textContent = no.retry, o.append(s), t.append(r, a, o), E(i), i.replaceChildren(t), i.hidden = !1;
8695
+ s.type = "button", s.className = "btn btn-outline-primary btn-sm", s.setAttribute("data-wui-table-retry", ""), s.textContent = co.retry, o.append(s), t.append(r, a, o), E(i), i.replaceChildren(t), i.hidden = !1;
8644
8696
  }
8645
8697
  ne(n);
8646
8698
  }, O = async (e, t = "none") => {
@@ -8677,7 +8729,7 @@ function uo(e) {
8677
8729
  };
8678
8730
  for (let e of he()) if (e.classList.add("sortable"), e.tabIndex = 0, !e.querySelector(".sort-icon")) {
8679
8731
  let t = e.classList.contains("num") || e.classList.contains("text-end"), n = document.createElement("span");
8680
- n.className = t ? "sort-icon wui-sort-lead" : "sort-icon", n.innerHTML = B("chevrons-up-down", { size: 14 }), t ? e.prepend(n) : e.append(n);
8732
+ n.className = t ? "sort-icon wui-sort-lead" : "sort-icon", n.innerHTML = V("chevrons-up-down", { size: 14 }), t ? e.prepend(n) : e.append(n);
8681
8733
  }
8682
8734
  let ge = (e) => {
8683
8735
  let t = me(new URLSearchParams(C)), n = g.sortBy === e && g.sortOrder === "asc" ? "desc" : "asc";
@@ -8692,7 +8744,7 @@ function uo(e) {
8692
8744
  !t || !n.tHead?.contains(t) || (e.preventDefault(), ge(t.dataset.sortKey));
8693
8745
  });
8694
8746
  let _e = () => {
8695
- $a(n), n.dispatchEvent(new CustomEvent("selectionchange", {
8747
+ ao(n), n.dispatchEvent(new CustomEvent("selectionchange", {
8696
8748
  bubbles: !0,
8697
8749
  detail: {
8698
8750
  selected: d.size,
@@ -8726,13 +8778,13 @@ function uo(e) {
8726
8778
  return e && (e.matches("input, textarea") ? e : e.querySelector("input"));
8727
8779
  }, A = () => e.isConnected ? !0 : (p.abort(), clearTimeout(v), !1), ye = (e, t) => {
8728
8780
  let n = t?.name ? new FormData(e, t) : new FormData(e), r = new Set([...e.querySelectorAll("[name]")].map((e) => e.getAttribute("name"))), i = new URLSearchParams();
8729
- for (let [e, t] of C) e !== "page" && (eo.includes(e) || !r.has(e)) && i.append(e, t);
8730
- for (let [e, t] of n) typeof t != "string" || t === "" || eo.includes(e) || l.has(e) || i.append(e, t);
8781
+ for (let [e, t] of C) e !== "page" && (oo.includes(e) || !r.has(e)) && i.append(e, t);
8782
+ for (let [e, t] of n) typeof t != "string" || t === "" || oo.includes(e) || l.has(e) || i.append(e, t);
8731
8783
  let a = ve();
8732
8784
  if (a) {
8733
- i.delete(to);
8785
+ i.delete(so);
8734
8786
  let e = a.value.trim();
8735
- e && i.set(to, e);
8787
+ e && i.set(so, e);
8736
8788
  }
8737
8789
  return O(i, "push");
8738
8790
  }, be = (e) => s.filtersForm && e.closest?.(s.filtersForm) || s.filtersRegion && e.closest?.(s.filtersRegion) || null;
@@ -8744,9 +8796,24 @@ function uo(e) {
8744
8796
  !t || e.target === ve() || ye(t);
8745
8797
  }, m);
8746
8798
  let xe = (e, t) => {
8747
- for (let n of e?.querySelectorAll("input[name]:not([type=hidden], [type=checkbox], [type=radio])") ?? []) {
8748
- let e = t.get(n.name) ?? "";
8749
- n.value !== e && (n.value = e, n.dispatchEvent(new Event("input", { bubbles: !0 })));
8799
+ if (!e) return;
8800
+ let n = (e) => t.get(e) ?? "";
8801
+ for (let r of e.querySelectorAll("input[name]:not([type=hidden])")) if (r.type === "checkbox") r.checked = t.getAll(r.name).includes(r.value);
8802
+ else if (r.type === "radio") {
8803
+ let e = n(r.name) === r.value;
8804
+ if (r.checked === e) continue;
8805
+ r.checked = e, e && r.dispatchEvent(new Event("change"));
8806
+ } else r.value !== n(r.name) && (r.value = n(r.name), r.dispatchEvent(new Event("input", { bubbles: !0 })));
8807
+ for (let r of e.querySelectorAll("select[name]")) if (!r.multiple) r.value = n(r.name);
8808
+ else for (let e of r.options) e.selected = t.getAll(r.name).includes(e.value);
8809
+ for (let t of e.querySelectorAll("wui-select[name]")) t.value = n(t.getAttribute("name"));
8810
+ for (let n of e.querySelectorAll("wui-multiselect[name]")) n.values = t.getAll(n.getAttribute("name"));
8811
+ for (let t of e.querySelectorAll("wui-date-range")) {
8812
+ let e = t.getAttribute("start-name") || t.getAttribute("name"), r = t.getAttribute("end-name");
8813
+ t.value = {
8814
+ start: e ? n(e) : "",
8815
+ end: r ? n(r) : ""
8816
+ };
8750
8817
  }
8751
8818
  };
8752
8819
  document.addEventListener("click", (e) => {
@@ -8763,7 +8830,7 @@ function uo(e) {
8763
8830
  let t = ve();
8764
8831
  !t || e.target !== t || (clearTimeout(v), v = setTimeout(() => {
8765
8832
  let e = me(new URLSearchParams(C)), n = t.value.trim();
8766
- n ? e.set(to, n) : e.delete(to), e.toString() !== C.toString() && O(e, "replace");
8833
+ n ? e.set(so, n) : e.delete(so), e.toString() !== C.toString() && O(e, "replace");
8767
8834
  }, 300));
8768
8835
  }, m), s.urlState && window.addEventListener("popstate", () => {
8769
8836
  if (!A()) return;
@@ -8782,7 +8849,7 @@ function uo(e) {
8782
8849
  let i = await fe(t, { method: (e.dataset.method || "post").toUpperCase() });
8783
8850
  if (e.disabled = !1, e.removeAttribute("aria-busy"), i.kind === "session" || i.kind === "aborted") return;
8784
8851
  let a = i.message;
8785
- i.ok ? (so(a, i.toastVariant || "success"), await O(C, "none")) : so(a || (i.kind === "forbidden" ? no.actionForbidden : no.actionFailed), "danger"), te("wui:table:action", {
8852
+ i.ok ? (mo(a, i.toastVariant || "success"), await O(C, "none")) : mo(a || (i.kind === "forbidden" ? co.actionForbidden : co.actionFailed), "danger"), te("wui:table:action", {
8786
8853
  action: r,
8787
8854
  key: n,
8788
8855
  ok: i.ok,
@@ -8792,7 +8859,7 @@ function uo(e) {
8792
8859
  return n.addEventListener("click", (e) => {
8793
8860
  let t = e.target.closest("[data-wui-row-action]");
8794
8861
  !t || !h.contains(t) || t.disabled || (e.preventDefault(), Se(t));
8795
- }), T(h), ae(h), u && Qa(n), ie(h), k(), {
8862
+ }), T(h), ae(h), u && io(n), ie(h), k(), {
8796
8863
  el: e,
8797
8864
  reload: () => O(C, "none"),
8798
8865
  query: () => new URLSearchParams(C),
@@ -8817,80 +8884,80 @@ function uo(e) {
8817
8884
  }
8818
8885
  //#endregion
8819
8886
  //#region src/serverActions.js
8820
- var fo = "wuiConfirm", po = Object.freeze(["danger"]), mo = Object.freeze([
8887
+ var vo = "wuiConfirm", yo = Object.freeze(["danger"]), bo = Object.freeze([
8821
8888
  "success",
8822
8889
  "info",
8823
8890
  "warning",
8824
8891
  "danger"
8825
- ]), ho = "wui.flash", go = Object.freeze({
8892
+ ]), xo = "wui.flash", So = Object.freeze({
8826
8893
  confirmTitle: "Are you sure?",
8827
8894
  confirmLabel: "Confirm",
8828
8895
  cancelLabel: "Cancel",
8829
8896
  failed: "That did not work. Try again.",
8830
8897
  forbidden: "You do not have permission to do that.",
8831
8898
  network: "Could not reach the server. Check your connection and try again."
8832
- }), _o = /* @__PURE__ */ new WeakSet(), vo = null, yo = null, bo = !1, xo = (e) => {
8899
+ }), Co = /* @__PURE__ */ new WeakSet(), wo = null, To = null, Eo = !1, Do = (e) => {
8833
8900
  let t = document.createElement("span");
8834
8901
  return t.textContent = e ?? "", t.innerHTML;
8835
- }, So = (e, t) => {
8902
+ }, Oo = (e, t) => {
8836
8903
  e && window.WUI?.toast?.(e, { variant: t });
8837
- }, Co = () => {
8904
+ }, ko = () => {
8838
8905
  let e = window.bootstrap?.Modal;
8839
8906
  if (!e) throw Error("data-wui-confirm: Bootstrap's bundle (window.bootstrap) is not loaded on this page.");
8840
8907
  return e;
8841
8908
  };
8842
- function wo() {
8843
- let e = document.getElementById(fo);
8844
- return e || (e = document.createElement("div"), e.id = fo, e.className = "modal fade wui-modal-shell", e.tabIndex = -1, e.setAttribute("aria-hidden", "true"), e.setAttribute("role", "dialog"), e.setAttribute("aria-modal", "true"), e.style.setProperty("--wui-modal-max-width", `${he.md}px`), e.innerHTML = `<div class="modal-dialog modal-dialog-centered wui-rb-dialog"><div class="modal-content wui-modal wui-confirm"><div class="wui-modal-body"><div class="wui-confirm-content"><span class="wui-confirm-icon"><wui-status-icon tone="info" size="120"></wui-status-icon></span><h3 class="wui-confirm-title" tabindex="-1"></h3><p class="wui-confirm-msg"></p></div></div><div class="wui-modal-footer"><div class="wui-confirm-actions"><button type="button" class="btn btn-secondary" data-bs-dismiss="modal">${xo(go.cancelLabel)}</button><button type="button" class="btn btn-primary" data-app-confirm></button></div></div></div></div>`, document.body.appendChild(e), e);
8909
+ function Ao() {
8910
+ let e = document.getElementById(vo);
8911
+ return e || (e = document.createElement("div"), e.id = vo, e.className = "modal fade wui-modal-shell", e.tabIndex = -1, e.setAttribute("aria-hidden", "true"), e.setAttribute("role", "dialog"), e.setAttribute("aria-modal", "true"), e.style.setProperty("--wui-modal-max-width", `${he.md}px`), e.innerHTML = `<div class="modal-dialog modal-dialog-centered wui-rb-dialog"><div class="modal-content wui-modal wui-confirm"><div class="wui-modal-body"><div class="wui-confirm-content"><span class="wui-confirm-icon"><wui-status-icon tone="info" size="120"></wui-status-icon></span><h3 class="wui-confirm-title" tabindex="-1" data-autofocus></h3><p class="wui-confirm-msg"></p></div></div><div class="wui-modal-footer"><div class="wui-confirm-actions"><button type="button" class="btn btn-secondary" data-bs-dismiss="modal">${Do(So.cancelLabel)}</button><button type="button" class="btn btn-primary" data-app-confirm></button></div></div></div></div>`, document.body.appendChild(e), e);
8845
8912
  }
8846
- function To(e, t) {
8913
+ function jo(e, t) {
8847
8914
  let n = e.getAttribute("data-wui-confirm-tone");
8848
- if (n !== null && !po.includes(n)) throw TypeError(`data-wui-confirm-tone="${n}" is not supported. Use danger, or leave it off.`);
8849
- let r = Co(), i = wo(), a = i.querySelector(".wui-confirm-title"), o = i.querySelector("[data-app-confirm]");
8850
- if (!a || !o) throw Error(`#${fo} is not a confirm dialog with a confirm button. Render <app-confirm-dialog id="${fo}"> without confirm-href, or leave the dialog to the library.`);
8915
+ if (n !== null && !yo.includes(n)) throw TypeError(`data-wui-confirm-tone="${n}" is not supported. Use danger, or leave it off.`);
8916
+ let r = ko(), i = Ao(), a = i.querySelector(".wui-confirm-title"), o = i.querySelector("[data-app-confirm]");
8917
+ if (!a || !o) throw Error(`#${vo} is not a confirm dialog with a confirm button. Render <app-confirm-dialog id="${vo}"> without confirm-href, or leave the dialog to the library.`);
8851
8918
  let s = i.querySelector(".wui-confirm-msg");
8852
8919
  s || (s = document.createElement("p"), s.className = "wui-confirm-msg", a.after(s));
8853
8920
  let c = n === "danger";
8854
- a.textContent = e.getAttribute("data-wui-confirm-title") || go.confirmTitle, s.textContent = e.getAttribute("data-wui-confirm"), o.textContent = e.getAttribute("data-wui-confirm-label") || go.confirmLabel, o.classList.toggle("btn-danger", c), o.classList.toggle("btn-primary", !c), i.querySelector("wui-status-icon")?.setAttribute("tone", c ? "delete" : "info"), i.setAttribute("aria-label", a.textContent), yo = t, bo = !1, r.getOrCreateInstance(i).show();
8921
+ a.textContent = e.getAttribute("data-wui-confirm-title") || So.confirmTitle, s.textContent = e.getAttribute("data-wui-confirm"), o.textContent = e.getAttribute("data-wui-confirm-label") || So.confirmLabel, o.classList.toggle("btn-danger", c), o.classList.toggle("btn-primary", !c), i.querySelector("wui-status-icon")?.setAttribute("tone", c ? "delete" : "info"), i.setAttribute("aria-label", a.textContent), To = t, Eo = !1, r.getOrCreateInstance(i).show();
8855
8922
  }
8856
- var Eo = (e, t) => {
8857
- vo = e;
8923
+ var Mo = (e, t) => {
8924
+ wo = e;
8858
8925
  try {
8859
8926
  t();
8860
8927
  } finally {
8861
- vo = null;
8928
+ wo = null;
8862
8929
  }
8863
- }, Do = (e) => e.disabled === !0 || e.getAttribute("aria-disabled") === "true";
8864
- function Oo(e) {
8930
+ }, No = (e) => e.disabled === !0 || e.getAttribute("aria-disabled") === "true";
8931
+ function Po(e) {
8865
8932
  let t = e.target.closest?.("[data-wui-confirm]:not(form)");
8866
- !t || t === vo || Do(t) || (e.preventDefault(), e.stopImmediatePropagation(), To(t, () => Eo(t, () => t.click())));
8933
+ !t || t === wo || No(t) || (e.preventDefault(), e.stopImmediatePropagation(), jo(t, () => Mo(t, () => t.click())));
8867
8934
  }
8868
- function ko(e) {
8935
+ function Fo(e) {
8869
8936
  let t = e.target;
8870
- if (!(t instanceof HTMLFormElement) || !t.hasAttribute("data-wui-confirm") || t === vo || e.submitter && e.submitter === vo) return;
8937
+ if (!(t instanceof HTMLFormElement) || !t.hasAttribute("data-wui-confirm") || t === wo || e.submitter && e.submitter === wo) return;
8871
8938
  e.preventDefault(), e.stopImmediatePropagation();
8872
8939
  let n = e.submitter?.form === t ? e.submitter : void 0;
8873
- To(t, () => Eo(t, () => t.requestSubmit(n)));
8940
+ jo(t, () => Mo(t, () => t.requestSubmit(n)));
8874
8941
  }
8875
- function Ao(e) {
8876
- let t = e.target.closest?.(`#${fo} [data-app-confirm]`);
8877
- !t || t.disabled || !yo || (bo = !0, Co().getOrCreateInstance(t.closest(`#${fo}`)).hide());
8942
+ function Io(e) {
8943
+ let t = e.target.closest?.(`#${vo} [data-app-confirm]`);
8944
+ !t || t.disabled || !To || (Eo = !0, ko().getOrCreateInstance(t.closest(`#${vo}`)).hide());
8878
8945
  }
8879
- function jo(e) {
8946
+ function Lo(e) {
8880
8947
  if (e.target.id !== "wuiConfirm") return;
8881
- let t = bo ? yo : null;
8882
- yo = null, bo = !1, t?.();
8948
+ let t = Eo ? To : null;
8949
+ To = null, Eo = !1, t?.();
8883
8950
  }
8884
- var Mo = (e, t) => {
8885
- e && window.sessionStorage.setItem(ho, JSON.stringify({
8951
+ var Ro = (e, t) => {
8952
+ e && window.sessionStorage.setItem(xo, JSON.stringify({
8886
8953
  message: e,
8887
8954
  variant: t
8888
8955
  }));
8889
- }, No = (e) => e === "forbidden" ? go.forbidden : e === "network" ? go.network : go.failed;
8890
- function Po() {
8891
- for (let e of document.querySelectorAll("[data-wui-server]")) e.dataset.refreshOnSuccess !== "false" && lo(e)?.reload();
8956
+ }, zo = (e) => e === "forbidden" ? So.forbidden : e === "network" ? So.network : So.failed;
8957
+ function Bo() {
8958
+ for (let e of document.querySelectorAll("[data-wui-server]")) e.dataset.refreshOnSuccess !== "false" && go(e)?.reload();
8892
8959
  }
8893
- async function Fo(e) {
8960
+ async function Vo(e) {
8894
8961
  let t = e.getAttribute("data-wui-post");
8895
8962
  if (!t) throw Error("A data-wui-post button needs the URL the action posts to.");
8896
8963
  let n = e.getAttribute("data-wui-post-reload");
@@ -8900,68 +8967,68 @@ async function Fo(e) {
8900
8967
  if (r.kind === "session" || r.kind === "aborted") return;
8901
8968
  let i = r.toastVariant || "success";
8902
8969
  if (r.ok && (r.redirect || n === "page")) {
8903
- Mo(r.message, i), r.redirect ? window.location.assign(r.redirect) : window.location.reload();
8970
+ Ro(r.message, i), r.redirect ? window.location.assign(r.redirect) : window.location.reload();
8904
8971
  return;
8905
8972
  }
8906
8973
  if (e.disabled = !1, e.removeAttribute("aria-busy"), r.ok) {
8907
- So(r.message, i), Po();
8974
+ Oo(r.message, i), Bo();
8908
8975
  return;
8909
8976
  }
8910
- So(r.message || No(r.kind), "danger");
8977
+ Oo(r.message || zo(r.kind), "danger");
8911
8978
  }
8912
- function Io(e) {
8979
+ function Ho(e) {
8913
8980
  let t = e.target.closest?.("[data-wui-post]");
8914
- t && (e.preventDefault(), !(Do(t) || t.getAttribute("aria-busy") === "true") && Fo(t).catch((e) => console.error(e)));
8981
+ t && (e.preventDefault(), !(No(t) || t.getAttribute("aria-busy") === "true") && Vo(t).catch((e) => console.error(e)));
8915
8982
  }
8916
- function Lo() {
8917
- let e = window.sessionStorage.getItem(ho);
8983
+ function Uo() {
8984
+ let e = window.sessionStorage.getItem(xo);
8918
8985
  if (!e) return;
8919
- window.sessionStorage.removeItem(ho);
8986
+ window.sessionStorage.removeItem(xo);
8920
8987
  let { message: t, variant: n } = JSON.parse(e);
8921
- So(t, n);
8988
+ Oo(t, n);
8922
8989
  }
8923
- function Ro(e) {
8990
+ function Wo(e) {
8924
8991
  let t = e.querySelectorAll ? [...e.querySelectorAll("[data-wui-flash]")] : [];
8925
8992
  e instanceof Element && e.matches("[data-wui-flash]") && t.unshift(e);
8926
8993
  for (let e of t) {
8927
8994
  let t = e.getAttribute("data-wui-flash-variant") || "success";
8928
- if (!mo.includes(t)) throw TypeError(`data-wui-flash-variant="${t}" is not supported. Use ${mo.join(", ")}.`);
8995
+ if (!bo.includes(t)) throw TypeError(`data-wui-flash-variant="${t}" is not supported. Use ${bo.join(", ")}.`);
8929
8996
  let n = e.getAttribute("data-wui-flash") || e.textContent.trim();
8930
- e.remove(), So(n, t);
8997
+ e.remove(), Oo(n, t);
8931
8998
  }
8932
8999
  }
8933
- function zo(e = document) {
9000
+ function Go(e = document) {
8934
9001
  let t = e.ownerDocument || e;
8935
- _o.has(t) || (_o.add(t), t.addEventListener("click", Oo, !0), t.addEventListener("submit", ko, !0), t.addEventListener("click", Ao), t.addEventListener("click", Io), t.addEventListener("hidden.bs.modal", jo), Lo()), Ro(e);
9002
+ Co.has(t) || (Co.add(t), t.addEventListener("click", Po, !0), t.addEventListener("submit", Fo, !0), t.addEventListener("click", Io), t.addEventListener("click", Ho), t.addEventListener("hidden.bs.modal", Lo), Uo()), Wo(e);
8936
9003
  }
8937
- var Bo = 31536e3, Vo = /* @__PURE__ */ new WeakMap(), Ho = (e) => e > 99 ? "99+" : String(e);
8938
- function Uo(e, t, n = document) {
8939
- n.cookie = `${e}=${t ? "1" : "0"}; Path=/; Max-Age=${Bo}; SameSite=Lax`;
9004
+ var Ko = 31536e3, qo = /* @__PURE__ */ new WeakMap(), Jo = (e) => e > 99 ? "99+" : String(e);
9005
+ function Yo(e, t, n = document) {
9006
+ n.cookie = `${e}=${t ? "1" : "0"}; Path=/; Max-Age=${Ko}; SameSite=Lax`;
8940
9007
  }
8941
- var Wo = (e) => {
9008
+ var Xo = (e) => {
8942
9009
  let t = document.createElement("template");
8943
9010
  return t.innerHTML = e, t.content;
8944
- }, Go = (e, t) => {
9011
+ }, Zo = (e, t) => {
8945
9012
  let n = document.createElement("div");
8946
9013
  return n.className = e, n.textContent = t, n;
8947
9014
  };
8948
- function Ko(e, t) {
9015
+ function Qo(e, t) {
8949
9016
  let n = e.querySelector(".wui-bell-trigger"), r = e.querySelector(".wui-bell-count"), i = e.querySelector("[data-wui-bell-live]"), a = e.querySelector("[data-wui-bell-list]"), o = e.querySelector(".wui-bell-menu"), { src: s, readAction: c } = e.dataset, l = e.dataset.label || "Notifications", u = e.dataset.emptyText || "You are all caught up.", d = Number(e.dataset.pollSeconds ?? 60), f = pe(), p = Number(e.dataset.unread) || 0, m = (t, a = !0) => {
8950
9017
  let o = Math.max(0, Number(t) || 0), s = o !== p;
8951
- p = o, e.dataset.unread = String(o), r && (r.textContent = Ho(o), r.hidden = o === 0), n?.setAttribute("aria-label", o === 0 ? l : `${l}, ${Ho(o)} unread`), a && s && i && (i.textContent = o === 0 ? "No unread notifications" : `${Ho(o)} unread notifications`);
9018
+ p = o, e.dataset.unread = String(o), r && (r.textContent = Jo(o), r.hidden = o === 0), n?.setAttribute("aria-label", o === 0 ? l : `${l}, ${Jo(o)} unread`), a && s && i && (i.textContent = o === 0 ? "No unread notifications" : `${Jo(o)} unread notifications`);
8952
9019
  }, h = () => o?.classList.contains("show") ?? !1, g = () => {
8953
- let e = Go("wui-bell-state", "Could not load notifications. "), t = document.createElement("button");
9020
+ let e = Zo("wui-bell-state", "Could not load notifications. "), t = document.createElement("button");
8954
9021
  t.type = "button", t.className = "btn btn-link btn-sm", t.dataset.wuiBellRetry = "", t.textContent = "Retry", e.append(t), a.replaceChildren(e);
8955
9022
  }, _ = async (t) => {
8956
- t && (a.setAttribute("aria-busy", "true"), a.querySelector(".wui-bell-item") || a.replaceChildren(Go("wui-bell-state", "Loading…")));
9023
+ t && (a.setAttribute("aria-busy", "true"), a.querySelector(".wui-bell-item") || a.replaceChildren(Zo("wui-bell-state", "Loading…")));
8957
9024
  let n = await f.run(s);
8958
9025
  if (n.kind === "aborted" || n.kind === "stale" || n.kind === "session") return;
8959
9026
  if (a.removeAttribute("aria-busy"), !n.ok) {
8960
9027
  t && g();
8961
9028
  return;
8962
9029
  }
8963
- let r = Wo(n.html), i = r.querySelector("[data-wui-unread]"), o = i ? Number(i.getAttribute("data-wui-unread")) : p;
8964
- m(o), (t || h()) && (r.querySelector(".wui-bell-item") ? a.replaceChildren(r) : a.replaceChildren(Go("wui-bell-state", u))), e.dispatchEvent(new CustomEvent("wui:notifications:loaded", {
9030
+ let r = Xo(n.html), i = r.querySelector("[data-wui-unread]"), o = i ? Number(i.getAttribute("data-wui-unread")) : p;
9031
+ m(o), (t || h()) && (r.querySelector(".wui-bell-item") ? a.replaceChildren(r) : a.replaceChildren(Zo("wui-bell-state", u))), e.dispatchEvent(new CustomEvent("wui:notifications:loaded", {
8965
9032
  bubbles: !0,
8966
9033
  detail: { unread: o }
8967
9034
  }));
@@ -8991,8 +9058,8 @@ function Ko(e, t) {
8991
9058
  refresh: () => _(h())
8992
9059
  };
8993
9060
  }
8994
- var qo = (e) => !!e && (e.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(e.tagName)), Jo = (e, t, n) => `${e}${e.includes("?") ? "&" : "?"}${encodeURIComponent(t)}=${encodeURIComponent(n)}`;
8995
- function Yo(e, t) {
9061
+ var $o = (e) => !!e && (e.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(e.tagName)), es = (e, t, n) => `${e}${e.includes("?") ? "&" : "?"}${encodeURIComponent(t)}=${encodeURIComponent(n)}`;
9062
+ function ts(e, t) {
8996
9063
  let n = e.querySelector("input.search-input"), r = e.querySelector(".wui-topsearch-results"), i = e.querySelector(".wui-topsearch-open"), a = e.querySelector("[data-wui-topsearch-live]"), { src: o, param: s = "q", resultsHref: c } = e.dataset, l = Number(e.dataset.minChars ?? 2), u = Number(e.dataset.debounceMs ?? 250), d = pe(), f = null, p = -1, m = () => [...r.querySelectorAll(".wui-topsearch-hit")], h = (e) => {
8997
9064
  let t = m();
8998
9065
  p = t.length === 0 ? -1 : (e + t.length) % t.length, t.forEach((e, t) => {
@@ -9014,16 +9081,16 @@ function Yo(e, t) {
9014
9081
  e.dispatchEvent(n) && window.location.assign(t);
9015
9082
  }, b = async (t) => {
9016
9083
  e.classList.add("is-loading");
9017
- let n = await d.run(Jo(o, s, t));
9084
+ let n = await d.run(es(o, s, t));
9018
9085
  if (!(n.kind === "aborted" || n.kind === "stale" || n.kind === "session")) {
9019
9086
  if (e.classList.remove("is-loading"), n.ok) {
9020
- let e = Wo(n.html), t = e.querySelector("[data-wui-count]");
9087
+ let e = Xo(n.html), t = e.querySelector("[data-wui-count]");
9021
9088
  r.replaceChildren(e), m().forEach((e, t) => {
9022
9089
  e.id = `${r.id}-opt-${t}`;
9023
9090
  });
9024
9091
  let i = t ? Number(t.getAttribute("data-wui-count")) : m().length;
9025
9092
  a && (a.textContent = i === 0 ? "No results" : `${i} ${i === 1 ? "result" : "results"}`);
9026
- } else r.replaceChildren(Go("wui-topsearch-empty", "Search is unavailable right now."));
9093
+ } else r.replaceChildren(Zo("wui-topsearch-empty", "Search is unavailable right now."));
9027
9094
  p = -1, _();
9028
9095
  }
9029
9096
  };
@@ -9041,7 +9108,7 @@ function Yo(e, t) {
9041
9108
  t.preventDefault(), h(p + (t.key === "ArrowDown" ? 1 : -1));
9042
9109
  } else if (t.key === "Enter") {
9043
9110
  let e = m();
9044
- !r.hidden && p >= 0 && e[p] ? (t.preventDefault(), y(e[p].getAttribute("href"))) : c && n.value.trim() !== "" && (t.preventDefault(), y(Jo(c, s, n.value.trim())));
9111
+ !r.hidden && p >= 0 && e[p] ? (t.preventDefault(), y(e[p].getAttribute("href"))) : c && n.value.trim() !== "" && (t.preventDefault(), y(es(c, s, n.value.trim())));
9045
9112
  } else t.key === "Escape" && (r.hidden ? e.classList.contains("is-open") && (t.preventDefault(), v(!1), i?.focus()) : (t.preventDefault(), g()));
9046
9113
  }), r.addEventListener("click", (e) => {
9047
9114
  let t = e.target.closest(".wui-topsearch-hit");
@@ -9051,7 +9118,7 @@ function Yo(e, t) {
9051
9118
  v(t), t && n.focus();
9052
9119
  });
9053
9120
  let x = (e) => {
9054
- e.key !== "/" || e.ctrlKey || e.metaKey || e.altKey || qo(e.target) || (e.preventDefault(), v(!0), n.focus());
9121
+ e.key !== "/" || e.ctrlKey || e.metaKey || e.altKey || $o(e.target) || (e.preventDefault(), v(!0), n.focus());
9055
9122
  }, S = (t) => {
9056
9123
  e.contains(t.target) || (g(), e.classList.contains("is-open") && v(!1));
9057
9124
  };
@@ -9059,13 +9126,13 @@ function Yo(e, t) {
9059
9126
  clearTimeout(f), d.abort(), document.removeEventListener("keydown", x), document.removeEventListener("pointerdown", S);
9060
9127
  });
9061
9128
  }
9062
- function Xo(e) {
9129
+ function ns(e) {
9063
9130
  let t = [], n = e.dataset.wuiCollapsedCookie;
9064
- n && e.addEventListener("wui:shell:collapse", (e) => Uo(n, !!e.detail?.collapsed)), e.addEventListener("click", (t) => {
9131
+ n && e.addEventListener("wui:shell:collapse", (e) => Yo(n, !!e.detail?.collapsed)), e.addEventListener("click", (t) => {
9065
9132
  t.target.closest("[data-wui-tabbar-more]") && e.querySelector("[data-app-shell-menu]")?.click();
9066
9133
  });
9067
- let r = e.querySelector("[data-wui-bell]"), i = r ? Ko(r, t) : null, a = e.querySelector("[data-wui-topsearch]");
9068
- a && Yo(a, t);
9134
+ let r = e.querySelector("[data-wui-bell]"), i = r ? Qo(r, t) : null, a = e.querySelector("[data-wui-topsearch]");
9135
+ a && ts(a, t);
9069
9136
  let o = {
9070
9137
  el: e,
9071
9138
  setUnread(e) {
@@ -9085,109 +9152,109 @@ function Xo(e) {
9085
9152
  n ? n.click() : e.classList.toggle("collapsed", !!t);
9086
9153
  }
9087
9154
  };
9088
- Vo.set(e, o);
9155
+ qo.set(e, o);
9089
9156
  let s = (n) => {
9090
9157
  if (n.target === e || n.target.contains?.(e)) {
9091
9158
  for (let e of t) e();
9092
- Vo.delete(e), delete e.dataset.wuiPartsWired, document.removeEventListener("wui:teardown", s);
9159
+ qo.delete(e), delete e.dataset.wuiPartsWired, document.removeEventListener("wui:teardown", s);
9093
9160
  }
9094
9161
  };
9095
9162
  return document.addEventListener("wui:teardown", s), o;
9096
9163
  }
9097
- function Zo(e = document) {
9164
+ function rs(e = document) {
9098
9165
  let t = [];
9099
9166
  e instanceof Element && e.matches("[data-app-shell]") && t.push(e), t.push(...e.querySelectorAll("[data-app-shell]"));
9100
- for (let e of t) e.dataset.wuiPartsWired || (e.dataset.wuiPartsWired = "1", Xo(e));
9167
+ for (let e of t) e.dataset.wuiPartsWired || (e.dataset.wuiPartsWired = "1", ns(e));
9101
9168
  }
9102
- function Qo(e) {
9169
+ function is(e) {
9103
9170
  let t = e?.closest?.("[data-app-shell]") ?? null;
9104
- return t ? (Vo.has(t) || Zo(t), Vo.get(t) ?? null) : null;
9171
+ return t ? (qo.has(t) || rs(t), qo.get(t) ?? null) : null;
9105
9172
  }
9106
9173
  //#endregion
9107
9174
  //#region src/themeTransition.js
9108
- var $o = [
9175
+ var as = [
9109
9176
  "light",
9110
9177
  "dark",
9111
9178
  "auto"
9112
- ], es = [
9179
+ ], os = [
9113
9180
  "wave",
9114
9181
  "circle",
9115
9182
  "slide",
9116
9183
  "blinds",
9117
9184
  "fade",
9118
9185
  "none"
9119
- ], ts = "wave", ns = "theme", rs = {
9186
+ ], ss = "wave", cs = "theme", ls = {
9120
9187
  wave: 1100,
9121
9188
  circle: 700,
9122
9189
  slide: 600,
9123
9190
  blinds: 900,
9124
9191
  fade: 350,
9125
9192
  none: 0
9126
- }, is = "wui-theme-switching", as = "wui:theme:change", os = "wui-theme-toggle", ss = "(prefers-color-scheme: dark)", cs = (e) => typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia(e).matches, ls = (e) => $o.includes(e);
9127
- function us(e) {
9128
- return e === "dark" || e === "auto" && cs(ss) ? "dark" : "light";
9193
+ }, us = "wui-theme-switching", ds = "wui:theme:change", fs = "wui-theme-toggle", ps = "(prefers-color-scheme: dark)", ms = (e) => typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia(e).matches, hs = (e) => as.includes(e);
9194
+ function gs(e) {
9195
+ return e === "dark" || e === "auto" && ms(ps) ? "dark" : "light";
9129
9196
  }
9130
- function ds(e = ns, { includeAuto: t = !1 } = {}) {
9197
+ function _s(e = cs, { includeAuto: t = !1 } = {}) {
9131
9198
  let n = null;
9132
9199
  try {
9133
9200
  n = window.localStorage.getItem(e);
9134
9201
  } catch {}
9135
- return !ls(n) || n === "auto" && !t ? "light" : n;
9202
+ return !hs(n) || n === "auto" && !t ? "light" : n;
9136
9203
  }
9137
- function fs(e, t = ns) {
9204
+ function vs(e, t = cs) {
9138
9205
  try {
9139
9206
  window.localStorage.setItem(t, e);
9140
9207
  } catch {}
9141
9208
  }
9142
- function ps(e) {
9209
+ function ys(e) {
9143
9210
  let t = document.documentElement;
9144
- t.setAttribute("data-theme", e), t.setAttribute("data-bs-theme", us(e)), document.dispatchEvent(new CustomEvent(as, { detail: { mode: e } }));
9211
+ t.setAttribute("data-theme", e), t.setAttribute("data-bs-theme", gs(e)), document.dispatchEvent(new CustomEvent(ds, { detail: { mode: e } }));
9145
9212
  }
9146
- function ms(e, { includeAuto: t = !1 } = {}) {
9213
+ function bs(e, { includeAuto: t = !1 } = {}) {
9147
9214
  return e === "light" ? "dark" : e === "dark" && t ? "auto" : "light";
9148
9215
  }
9149
- function hs(e) {
9216
+ function xs(e) {
9150
9217
  if (typeof window > "u" || typeof window.matchMedia != "function") return () => {};
9151
- let t = window.matchMedia(ss), n = () => e(t.matches ? "dark" : "light");
9218
+ let t = window.matchMedia(ps), n = () => e(t.matches ? "dark" : "light");
9152
9219
  return t.addEventListener("change", n), () => t.removeEventListener("change", n);
9153
9220
  }
9154
- var gs = 60, _s = (e) => e < .5 ? 4 * e * e * e : 1 - (-2 * e + 2) ** 3 / 2, vs = (e) => e.toFixed(1), ys = (e, t) => `${vs(e)}px ${vs(t)}px`, bs = {
9221
+ var Ss = 60, Cs = (e) => e < .5 ? 4 * e * e * e : 1 - (-2 * e + 2) ** 3 / 2, ws = (e) => e.toFixed(1), Ts = (e, t) => `${ws(e)}px ${ws(t)}px`, Es = {
9155
9222
  amplitude: 22,
9156
9223
  segments: 36,
9157
9224
  cycles: 1.5,
9158
9225
  ripples: 2
9159
- }, xs = 6, Ss = (e, t, n, r, i) => {
9160
- let { amplitude: a, segments: o, cycles: s } = bs, c = n * (t + 2 * a), l = i ? t + a - c : c - a, u = i ? t + 2 * a : -2 * a, d = [ys(0, u)];
9226
+ }, Ds = 6, Os = (e, t, n, r, i) => {
9227
+ let { amplitude: a, segments: o, cycles: s } = Es, c = n * (t + 2 * a), l = i ? t + a - c : c - a, u = i ? t + 2 * a : -2 * a, d = [Ts(0, u)];
9161
9228
  for (let t = 0; t <= o; t++) {
9162
9229
  let n = e * t / o, i = l + a * Math.sin(2 * Math.PI * s * t / o + r);
9163
- d.push(ys(n, i));
9230
+ d.push(Ts(n, i));
9164
9231
  }
9165
- return d.push(ys(e, u)), `polygon(${d.join(", ")})`;
9166
- }, Cs = (e, t, n, r) => {
9167
- let i = t / xs, a = [];
9168
- for (let t = 0; t < xs; t++) {
9232
+ return d.push(Ts(e, u)), `polygon(${d.join(", ")})`;
9233
+ }, ks = (e, t, n, r) => {
9234
+ let i = t / Ds, a = [];
9235
+ for (let t = 0; t < Ds; t++) {
9169
9236
  let o = t * i, s = i * n, c = r ? o + i - s : o, l = r ? o + i : o + s;
9170
- a.push(ys(0, c), ys(e, c), ys(e, l), ys(0, l));
9237
+ a.push(Ts(0, c), Ts(e, c), Ts(e, l), Ts(0, l));
9171
9238
  }
9172
9239
  return `polygon(${a.join(", ")})`;
9173
9240
  };
9174
- function ws(e, { width: t, height: n, to: r = "dark", origin: i } = {}) {
9241
+ function As(e, { width: t, height: n, to: r = "dark", origin: i } = {}) {
9175
9242
  let a = r === "dark", o = [];
9176
- for (let r = 0; r <= gs; r++) {
9177
- let s = r / gs, c = _s(s);
9243
+ for (let r = 0; r <= Ss; r++) {
9244
+ let s = r / Ss, c = Cs(s);
9178
9245
  switch (e) {
9179
9246
  case "circle": {
9180
9247
  let e = i?.x ?? t / 2, r = i?.y ?? n / 2, a = Math.hypot(Math.max(e, t - e), Math.max(r, n - r));
9181
- o.push({ clipPath: `circle(${vs(a * c)}px at ${vs(e)}px ${vs(r)}px)` });
9248
+ o.push({ clipPath: `circle(${ws(a * c)}px at ${ws(e)}px ${ws(r)}px)` });
9182
9249
  break;
9183
9250
  }
9184
9251
  case "slide": {
9185
9252
  let e = n * (1 - c);
9186
- o.push({ clipPath: a ? `inset(${vs(e)}px 0px 0px 0px)` : `inset(0px 0px ${vs(e)}px 0px)` });
9253
+ o.push({ clipPath: a ? `inset(${ws(e)}px 0px 0px 0px)` : `inset(0px 0px ${ws(e)}px 0px)` });
9187
9254
  break;
9188
9255
  }
9189
9256
  case "blinds":
9190
- o.push({ clipPath: Cs(t, n, c, a) });
9257
+ o.push({ clipPath: ks(t, n, c, a) });
9191
9258
  break;
9192
9259
  case "fade":
9193
9260
  o.push({
@@ -9196,20 +9263,20 @@ function ws(e, { width: t, height: n, to: r = "dark", origin: i } = {}) {
9196
9263
  });
9197
9264
  break;
9198
9265
  case "none": return [];
9199
- default: o.push({ clipPath: Ss(t, n, c, s * bs.ripples * 2 * Math.PI, a) });
9266
+ default: o.push({ clipPath: Os(t, n, c, s * Es.ripples * 2 * Math.PI, a) });
9200
9267
  }
9201
9268
  }
9202
9269
  return o;
9203
9270
  }
9204
- function Ts(e, { effect: t = ts, to: n, origin: r, duration: i, live: a } = {}) {
9271
+ function js(e, { effect: t = ss, to: n, origin: r, duration: i, live: a } = {}) {
9205
9272
  let o = document.documentElement, s = n !== void 0 && o.getAttribute("data-bs-theme") === n;
9206
- if (t === "none" || s || cs("(prefers-reduced-motion: reduce)") || typeof document.startViewTransition != "function" || typeof o.animate != "function") return e(), Promise.resolve(!1);
9207
- o.classList.add(is);
9273
+ if (t === "none" || s || ms("(prefers-reduced-motion: reduce)") || typeof document.startViewTransition != "function" || typeof o.animate != "function") return e(), Promise.resolve(!1);
9274
+ o.classList.add(us);
9208
9275
  let c = a instanceof Element ? a : null;
9209
- c && (c.style.viewTransitionName = os);
9210
- let l = document.startViewTransition(e), u = i ?? rs[t] ?? rs.wave;
9276
+ c && (c.style.viewTransitionName = fs);
9277
+ let l = document.startViewTransition(e), u = i ?? ls[t] ?? ls.wave;
9211
9278
  return l.ready.then(() => {
9212
- let e = ws(t, {
9279
+ let e = As(t, {
9213
9280
  width: window.innerWidth,
9214
9281
  height: window.innerHeight,
9215
9282
  to: n,
@@ -9221,16 +9288,16 @@ function Ts(e, { effect: t = ts, to: n, origin: r, duration: i, live: a } = {})
9221
9288
  fill: "both",
9222
9289
  pseudoElement: "::view-transition-new(root)"
9223
9290
  });
9224
- }).catch(() => {}), l.finished.catch(() => {}).then(() => (o.classList.remove(is), c && (c.style.viewTransitionName = ""), !0));
9291
+ }).catch(() => {}), l.finished.catch(() => {}).then(() => (o.classList.remove(us), c && (c.style.viewTransitionName = ""), !0));
9225
9292
  }
9226
9293
  //#endregion
9227
9294
  //#region src/index.js
9228
9295
  var $ = (e, t) => {
9229
9296
  typeof customElements < "u" && !customElements.get(e) && customElements.define(e, t);
9230
9297
  };
9231
- function Es() {
9232
- $("wui-select", On), $("wui-country-select", Mn), $("wui-phone", Qr), $("wui-datepicker", zn), $("wui-date-range", Bn), $("wui-dock", Vn), $("wui-image-crop", hr), $("wui-kanban", Pt), $("wui-consent-banner", un), $("wui-slider", ei), $("wui-sortable", ui), $("wui-timepicker", Si), $("wui-tour", ji), $("wui-tree", zi), $("wui-autocomplete", Zt), $("wui-command-palette", nn), $("wui-context-menu", Tn), $("wui-multiselect", Sr), $("wui-taginput", pi), $("wui-otp", Pr), $("wui-status-icon", Rt), $("wui-wizard-step", Wi), $("wui-wizard", Vi);
9298
+ function Ms() {
9299
+ $("wui-select", Pn), $("wui-country-select", Rn), $("wui-phone", ii), $("wui-datepicker", Gn), $("wui-date-range", Kn), $("wui-dock", qn), $("wui-image-crop", xr), $("wui-kanban", zt), $("wui-consent-banner", gn), $("wui-slider", oi), $("wui-sortable", gi), $("wui-timepicker", Oi), $("wui-tour", Li), $("wui-tree", Gi), $("wui-autocomplete", nn), $("wui-command-palette", ln), $("wui-context-menu", jn), $("wui-multiselect", Or), $("wui-taginput", yi), $("wui-otp", Br), $("wui-status-icon", Ut), $("wui-wizard-step", Xi), $("wui-wizard", qi);
9233
9300
  }
9234
- Es();
9301
+ Ms();
9235
9302
  //#endregion
9236
- export { fo as CONFIRM_DIALOG_ID, po as CONFIRM_TONES, Gi as COPY_FEEDBACK_MS, ae as CSRF_META_NAME, n as CURRENCIES, a as DATE_PATTERNS, E as DEFAULT_CSRF_HEADER, qi as DEFAULT_IMAGE_ACCEPT, Ji as DEFAULT_MAX_SIZE_MB, Ra as DEFAULT_PASSWORD_RULES, za as DEFAULT_REQUIREMENTS_TITLE, ts as DEFAULT_THEME_EFFECT, ns as DEFAULT_THEME_STORAGE_KEY, i as DURATION_UNITS, s as EMPTY_VALUE, ho as FLASH_STORAGE_KEY, mo as FLASH_VARIANTS, t as FORMAT_STYLES, oe as HTTP_KINDS, o as IST_TIME_ZONE, ut as KANBAN_DRAG_THRESHOLD_PX, lt as KANBAN_LONG_PRESS_MS, ct as KANBAN_PHONE_QUERY, st as KANBAN_STORAGE_PREFIX, ot as KANBAN_SUMMARY_FORMATS, j as KANBAN_TEXT, at as KANBAN_TONES, ca as MASK_INPUT_TYPES, ga as MASK_NAMES, r as MONEY_UNITS, Wa as SELECT_ALL_LABEL, Q as SELECT_CELL_CLASS, Ga as SELECT_ROW_LABEL, go as SERVER_ACTION_TEXT, Lt as STATUS_TONES, as as THEME_CHANGE_EVENT, es as THEME_EFFECTS, rs as THEME_EFFECT_DURATION, os as THEME_LIVE_NAME, $o as THEME_MODES, is as THEME_SWITCHING_CLASS, D as WUI_HEADERS, Zt as WuiAutocomplete, nn as WuiCommandPalette, un as WuiConsentBanner, Tn as WuiContextMenu, Mn as WuiCountrySelect, zn as WuiDatePicker, Bn as WuiDateRange, Vn as WuiDock, Pt as WuiKanban, Sr as WuiMultiSelect, Pr as WuiOtp, Qr as WuiPhone, On as WuiSelect, ei as WuiSlider, ui as WuiSortable, Rt as WuiStatusIcon, pi as WuiTagInput, Si as WuiTimePicker, ji as WuiTour, zi as WuiTree, Vi as WuiWizard, Wi as WuiWizardStep, na as acceptLabel, Za as addRowSelectCells, Qa as addSelectColumn, ps as applyTheme, Aa as attachInputMask, Va as buildPasswordRules, ue as classifyStatus, Ki as copyTextToClipboard, ki as createLocalSeenStore, pe as createRequestQueue, qa as createSelectHeaderCell, Ja as createSelectRowCell, Ya as createSelectSpacerCell, Es as defineWeborityElements, Ha as evaluatePassword, C as formatCompact, S as formatCurrency, T as formatDate, ne as formatDuration, Ca as formatMasked, x as formatNumber, te as formatPercent, ie as formatValue, lo as getServerTable, Qo as getShell, B as glyphSvg, La as initInputMasks, rt as initRemoteModals, zo as initServerActions, co as initServerTables, Zo as initShellParts, $i as isImageFile, ta as isImageOnlyAccept, va as isMaskPattern, ea as isPdfFile, N as kanbanCardLabel, Ot as kanbanStorageKey, jt as kanbanSummaryFormat, it as loadRemoteModal, Ea as maskedPostValue, $t as matchSegments, ra as matchesAccept, ms as nextTheme, Ua as passwordSatisfies, Sa as postedMasked, xa as rawMasked, ce as readCsrf, kt as readKanbanCollapsed, ds as readStoredTheme, ba as resolveMask, us as resolveTheme, fs as storeTheme, Mt as sumKanbanValues, $a as syncSelectAll, ws as themeKeyframes, re as toInstant, Ts as transitionTheme, ia as validateFile, hs as watchSystemTheme, At as writeKanbanCollapsed, fe as wuiFetch };
9303
+ export { vo as CONFIRM_DIALOG_ID, yo as CONFIRM_TONES, Zi as COPY_FEEDBACK_MS, ae as CSRF_META_NAME, n as CURRENCIES, a as DATE_PATTERNS, E as DEFAULT_CSRF_HEADER, $i as DEFAULT_IMAGE_ACCEPT, ea as DEFAULT_MAX_SIZE_MB, Wa as DEFAULT_PASSWORD_RULES, Ga as DEFAULT_REQUIREMENTS_TITLE, ss as DEFAULT_THEME_EFFECT, cs as DEFAULT_THEME_STORAGE_KEY, i as DURATION_UNITS, s as EMPTY_VALUE, xo as FLASH_STORAGE_KEY, bo as FLASH_VARIANTS, t as FORMAT_STYLES, oe as HTTP_KINDS, o as IST_TIME_ZONE, ut as KANBAN_DRAG_THRESHOLD_PX, lt as KANBAN_LONG_PRESS_MS, ct as KANBAN_PHONE_QUERY, st as KANBAN_STORAGE_PREFIX, ot as KANBAN_SUMMARY_FORMATS, j as KANBAN_TEXT, at as KANBAN_TONES, ma as MASK_INPUT_TYPES, Sa as MASK_NAMES, r as MONEY_UNITS, Xa as SELECT_ALL_LABEL, Q as SELECT_CELL_CLASS, Za as SELECT_ROW_LABEL, So as SERVER_ACTION_TEXT, Ht as STATUS_TONES, ds as THEME_CHANGE_EVENT, os as THEME_EFFECTS, ls as THEME_EFFECT_DURATION, fs as THEME_LIVE_NAME, as as THEME_MODES, us as THEME_SWITCHING_CLASS, D as WUI_HEADERS, nn as WuiAutocomplete, ln as WuiCommandPalette, gn as WuiConsentBanner, jn as WuiContextMenu, Rn as WuiCountrySelect, Gn as WuiDatePicker, Kn as WuiDateRange, qn as WuiDock, zt as WuiKanban, Or as WuiMultiSelect, Br as WuiOtp, ii as WuiPhone, Pn as WuiSelect, oi as WuiSlider, gi as WuiSortable, Ut as WuiStatusIcon, yi as WuiTagInput, Oi as WuiTimePicker, Li as WuiTour, Gi as WuiTree, qi as WuiWizard, Xi as WuiWizardStep, ca as acceptLabel, ro as addRowSelectCells, io as addSelectColumn, ys as applyTheme, Ia as attachInputMask, qa as buildPasswordRules, ue as classifyStatus, Qi as copyTextToClipboard, Fi as createLocalSeenStore, pe as createRequestQueue, $a as createSelectHeaderCell, eo as createSelectRowCell, to as createSelectSpacerCell, Ms as defineWeborityElements, Ja as evaluatePassword, C as formatCompact, S as formatCurrency, T as formatDate, ne as formatDuration, ka as formatMasked, x as formatNumber, te as formatPercent, ie as formatValue, go as getServerTable, is as getShell, V as glyphSvg, Ua as initInputMasks, rt as initRemoteModals, Go as initServerActions, ho as initServerTables, rs as initShellParts, aa as isImageFile, sa as isImageOnlyAccept, wa as isMaskPattern, oa as isPdfFile, P as kanbanCardLabel, Mt as kanbanOverflow, Nt as kanbanStorageKey, It as kanbanSummaryFormat, jt as kanbanVisibleLimit, it as loadRemoteModal, Ma as maskedPostValue, on as matchSegments, la as matchesAccept, bs as nextTheme, Ya as passwordSatisfies, Oa as postedMasked, Da as rawMasked, ce as readCsrf, Pt as readKanbanCollapsed, _s as readStoredTheme, Ea as resolveMask, gs as resolveTheme, vs as storeTheme, Lt as sumKanbanValues, ao as syncSelectAll, As as themeKeyframes, re as toInstant, js as transitionTheme, ua as validateFile, xs as watchSystemTheme, Ft as writeKanbanCollapsed, fe as wuiFetch };