mgv-backoffice 1.45.0 → 1.47.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.
package/dist/ui-lib.js CHANGED
@@ -206,7 +206,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
206
206
  }, Qe = { key: 1 }, $e = { key: 2 }, et = ["type", "disabled"], tt = {
207
207
  key: 0,
208
208
  class: "inline-flex items-center"
209
- }, nt = { key: 1 }, rt = { key: 2 }, it = /* @__PURE__ */ m({
209
+ }, nt = { key: 1 }, rt = { key: 2 }, q = /* @__PURE__ */ m({
210
210
  __name: "BaseButton",
211
211
  props: {
212
212
  description: {
@@ -477,52 +477,52 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
477
477
  ], 10, et));
478
478
  };
479
479
  }
480
- }), at = /* @__PURE__ */ function(e) {
480
+ }), it = /* @__PURE__ */ function(e) {
481
481
  return e.BASE = "BASE", e.BASE_SHORTER = "BASE_SHORTER", e.SQUARE = "SQUARE", e;
482
- }({}), ot = {
482
+ }({}), at = {
483
483
  key: 0,
484
484
  class: "h-px my-8 bg-gray-200 border-0 dark:bg-gray-700"
485
- }, st = {
485
+ }, ot = {
486
486
  key: 1,
487
487
  class: "w-48 h-1 mx-auto my-4 bg-gray-100 border-0 rounded md:my-10 dark:bg-gray-700"
488
- }, ct = {
488
+ }, st = {
489
489
  key: 2,
490
490
  class: "w-8 h-8 mx-auto my-8 bg-gray-200 border-0 rounded md:my-12 dark:bg-gray-700"
491
- }, lt = /* @__PURE__ */ m({
491
+ }, ct = /* @__PURE__ */ m({
492
492
  __name: "BaseLine",
493
493
  props: { mode: {
494
494
  type: String,
495
495
  required: !1,
496
- default: at.BASE
496
+ default: it.BASE
497
497
  } },
498
498
  setup(t) {
499
499
  return (n, r) => (D(), c(e, null, [
500
- t.mode === F(at).BASE ? (D(), c("hr", ot)) : s("", !0),
501
- t.mode === F(at).BASE_SHORTER ? (D(), c("hr", st)) : s("", !0),
502
- t.mode === F(at).SQUARE ? (D(), c("hr", ct)) : s("", !0)
500
+ t.mode === F(it).BASE ? (D(), c("hr", at)) : s("", !0),
501
+ t.mode === F(it).BASE_SHORTER ? (D(), c("hr", ot)) : s("", !0),
502
+ t.mode === F(it).SQUARE ? (D(), c("hr", st)) : s("", !0)
503
503
  ], 64));
504
504
  }
505
- }), q = /* @__PURE__ */ function(e) {
505
+ }), J = /* @__PURE__ */ function(e) {
506
506
  return e.SMALL = "SMALL", e.MEDIUM = "MEDIUM", e.LARGE = "LARGE", e;
507
- }({}), ut = q, dt = ["height", "width"], ft = ["id"], pt = ["id", "href"], mt = ["id", "href"], ht = ["id", "href"], gt = ["id", "href"], _t = ["id", "href"], vt = ["id", "href"], yt = ["id", "href"], bt = ["id", "href"], xt = ["id", "href"], St = ["id"], Ct = ["fill"], wt = ["fill"], Tt = ["fill"], Et = ["fill"], Dt = ["fill"], Ot = ["fill"], kt = ["fill"], At = ["fill"], jt = ["fill"], Mt = ["fill"], Nt = /* @__PURE__ */ m({
507
+ }({}), lt = J, ut = ["height", "width"], dt = ["id"], ft = ["id", "href"], pt = ["id", "href"], mt = ["id", "href"], ht = ["id", "href"], gt = ["id", "href"], _t = ["id", "href"], vt = ["id", "href"], yt = ["id", "href"], bt = ["id", "href"], xt = ["id"], St = ["fill"], Ct = ["fill"], wt = ["fill"], Tt = ["fill"], Et = ["fill"], Dt = ["fill"], Ot = ["fill"], kt = ["fill"], At = ["fill"], jt = ["fill"], Mt = /* @__PURE__ */ m({
508
508
  __name: "BaseLogo",
509
509
  props: { size: {
510
510
  type: String,
511
511
  required: !1,
512
- default: q.MEDIUM
512
+ default: J.MEDIUM
513
513
  } },
514
514
  setup(e) {
515
515
  let t = `logo-${te()}`, n = e;
516
516
  function r() {
517
517
  let e = "";
518
518
  switch (n.size) {
519
- case q.SMALL:
519
+ case J.SMALL:
520
520
  e = "50px";
521
521
  break;
522
- case q.MEDIUM:
522
+ case J.MEDIUM:
523
523
  e = "100px";
524
524
  break;
525
- case q.LARGE: e = "150px";
525
+ case J.LARGE: e = "150px";
526
526
  }
527
527
  return e;
528
528
  }
@@ -545,7 +545,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
545
545
  }, null, -1), l("stop", {
546
546
  offset: "1",
547
547
  "stop-color": "#132d13"
548
- }, null, -1)]], 8, ft),
548
+ }, null, -1)]], 8, dt),
549
549
  l("linearGradient", {
550
550
  id: `${t}-b`,
551
551
  gradientUnits: "userSpaceOnUse",
@@ -554,7 +554,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
554
554
  href: `#${t}-a`,
555
555
  y1: "288.291",
556
556
  y2: "369.4"
557
- }, null, 8, pt),
557
+ }, null, 8, ft),
558
558
  l("linearGradient", {
559
559
  id: `${t}-c`,
560
560
  gradientUnits: "userSpaceOnUse",
@@ -563,7 +563,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
563
563
  href: `#${t}-a`,
564
564
  y1: "308.454",
565
565
  y2: "370.601"
566
- }, null, 8, mt),
566
+ }, null, 8, pt),
567
567
  l("linearGradient", {
568
568
  id: `${t}-d`,
569
569
  gradientUnits: "userSpaceOnUse",
@@ -572,7 +572,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
572
572
  href: `#${t}-a`,
573
573
  y1: "288.291",
574
574
  y2: "369.85"
575
- }, null, 8, ht),
575
+ }, null, 8, mt),
576
576
  l("linearGradient", {
577
577
  id: `${t}-e`,
578
578
  gradientUnits: "userSpaceOnUse",
@@ -581,7 +581,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
581
581
  href: `#${t}-a`,
582
582
  y1: "307.312",
583
583
  y2: "369.511"
584
- }, null, 8, gt),
584
+ }, null, 8, ht),
585
585
  l("linearGradient", {
586
586
  id: `${t}-f`,
587
587
  gradientUnits: "userSpaceOnUse",
@@ -590,7 +590,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
590
590
  href: `#${t}-a`,
591
591
  y1: "288.291",
592
592
  y2: "367.857"
593
- }, null, 8, _t),
593
+ }, null, 8, gt),
594
594
  l("linearGradient", {
595
595
  id: `${t}-g`,
596
596
  gradientUnits: "userSpaceOnUse",
@@ -599,7 +599,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
599
599
  href: `#${t}-a`,
600
600
  y1: "307.312",
601
601
  y2: "369.511"
602
- }, null, 8, vt),
602
+ }, null, 8, _t),
603
603
  l("linearGradient", {
604
604
  id: `${t}-h`,
605
605
  gradientUnits: "userSpaceOnUse",
@@ -608,7 +608,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
608
608
  href: `#${t}-a`,
609
609
  y1: "306.156",
610
610
  y2: "367.742"
611
- }, null, 8, yt),
611
+ }, null, 8, vt),
612
612
  l("linearGradient", {
613
613
  id: `${t}-i`,
614
614
  gradientUnits: "userSpaceOnUse",
@@ -617,7 +617,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
617
617
  href: `#${t}-a`,
618
618
  y1: "288.291",
619
619
  y2: "369.4"
620
- }, null, 8, bt),
620
+ }, null, 8, yt),
621
621
  l("linearGradient", {
622
622
  id: `${t}-j`,
623
623
  gradientUnits: "userSpaceOnUse",
@@ -626,7 +626,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
626
626
  href: `#${t}-a`,
627
627
  y1: "131.629",
628
628
  y2: "232.559"
629
- }, null, 8, xt),
629
+ }, null, 8, bt),
630
630
  l("linearGradient", {
631
631
  id: `${t}-k`,
632
632
  gradientUnits: "userSpaceOnUse",
@@ -641,64 +641,64 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
641
641
  }, null, -1), l("stop", {
642
642
  offset: "1",
643
643
  "stop-color": "#808183"
644
- }, null, -1)]], 8, St),
644
+ }, null, -1)]], 8, xt),
645
645
  l("path", {
646
646
  d: "m65 307.2c-6.8 0-13.1 2.2-18.2 5.9v-24.8h-13.2v81.1h31.4c17.2 0 31.1-13.9 31.1-31.1s-13.9-31.1-31.1-31.1zm0 49.3h-18.2v-18.2c0-10.1 8.2-18.2 18.2-18.2 10.1 0 18.2 8.2 18.2 18.2.1 10.1-8.1 18.2-18.2 18.2z",
647
647
  fill: `url(#${t}-b)`
648
- }, null, 8, Ct),
648
+ }, null, 8, St),
649
649
  l("path", {
650
650
  d: "m168.8 343.9h-46.7c1.4 7.1 6.6 12 14.1 12.7 6.4.6 12.9.1 19.9.1v11.9c-15.2 4.9-33.3.5-42.1-10.4-3.8-4.7-17.3-34.7 11.5-47.4 39-11.4 45.3 22.4 43.3 33.1zm-14.2-12.7c-1.7-8.1-8.8-12.9-17.9-12.3-7.6.5-14 5.8-14.5 12.3z",
651
651
  fill: `url(#${t}-c)`
652
- }, null, 8, wt),
652
+ }, null, 8, Ct),
653
653
  l("path", {
654
654
  d: "m195.5 320.2c0 10.5-.2 20 .1 29.6.2 5.8 4.4 8.4 13.2 8.6v10.5c-13.8 3.9-26.2-4.5-26.4-18-.2-18.7-.1-43.9-.1-62.6h14.1l-.3 18.5 12.7-.1v13.4h-13.3z",
655
655
  fill: `url(#${t}-d)`
656
- }, null, 8, Tt),
656
+ }, null, 8, wt),
657
657
  l("path", {
658
658
  d: "m249.6 307.3c-17.2 0-31.1 13.9-31.1 31.1s13.9 31.1 31.1 31.1h31.1v-31.1c0-17.2-13.9-31.1-31.1-31.1zm18.6 49.7h-18.5c-10.2 0-18.5-8.3-18.5-18.5s8.3-18.5 18.5-18.5 18.5 8.3 18.5 18.5z",
659
659
  fill: `url(#${t}-e)`
660
- }, null, 8, Et),
660
+ }, null, 8, Tt),
661
661
  l("path", {
662
662
  d: "m296.4 288.3h13v79.6h-13z",
663
663
  fill: `url(#${t}-f)`
664
- }, null, 8, Dt),
664
+ }, null, 8, Et),
665
665
  l("path", {
666
666
  d: "m354.1 307.3c-17.2 0-31.1 13.9-31.1 31.1s13.9 31.1 31.1 31.1h31.1v-31.1c0-17.2-13.9-31.1-31.1-31.1zm18.6 49.7h-18.5c-10.2 0-18.5-8.3-18.5-18.5s8.3-18.5 18.5-18.5 18.5 8.3 18.5 18.5z",
667
667
  fill: `url(#${t}-g)`
668
- }, null, 8, Ot),
668
+ }, null, 8, Dt),
669
669
  l("path", {
670
670
  d: "m442.2 367.7c0-12.3.2-23.6 0-34.9-.2-3.4-3.6-13.8-14.1-13.4-10.3-.3-14.4 10-14.3 12.7.1 10.2.5 35.1.5 35.1l-13.6.1s-.3-25.7.2-36.2c.6-14.1 12.7-25 27.5-25 14.7 0 26.2 10.4 26.7 24.9.4 10.4.5 36.3.5 36.3z",
671
671
  fill: `url(#${t}-h)`
672
- }, null, 8, kt),
672
+ }, null, 8, Ot),
673
673
  l("path", {
674
674
  d: "m501.9 307.2c6.8 0 13.1 2.2 18.2 5.9v-24.8h13.2v81.1h-31.4c-17.2 0-31.1-13.9-31.1-31.1s13.9-31.1 31.1-31.1zm0 49.3h18.2v-18.2c0-10.1-8.2-18.2-18.2-18.2-10.1 0-18.2 8.2-18.2 18.2 0 10.1 8.1 18.2 18.2 18.2z",
675
675
  fill: `url(#${t}-i)`
676
- }, null, 8, At),
676
+ }, null, 8, kt),
677
677
  l("path", {
678
678
  d: "m309.2 180.6h-24v-24c0-12.6 10.2-24.1 22.8-25 14.8-1 27.1 11.3 26.1 26.1-.8 12.7-12.3 22.9-24.9 22.9zm-50.7-48.9c-14.8-1-27.1 11.3-26.1 26.1.8 12.6 12.4 22.8 25 22.8h23.9v-24c0-12.6-10.3-24.1-22.8-24.9zm50.7 51.9h-24v23.9c0 12.6 10.2 24.1 22.8 25 14.8 1 27.1-11.3 26.1-26.1-.8-12.6-12.3-22.8-24.9-22.8zm-52.4 0c-14 0-25.3 11.8-24.4 26 .8 12.2 10.7 22.1 22.9 22.9 14.2.9 26-10.4 26-24.4v-24.5z",
679
679
  fill: `url(#${t}-j)`
680
- }, null, 8, jt),
680
+ }, null, 8, At),
681
681
  l("path", {
682
682
  d: "m281.7 183.8h3.6v18.5h-3.6z",
683
683
  fill: `url(#${t}-k)`
684
- }, null, 8, Mt)
685
- ], 8, dt))]),
684
+ }, null, 8, jt)
685
+ ], 8, ut))]),
686
686
  _: 1
687
687
  });
688
688
  };
689
689
  }
690
- }), Pt = /* @__PURE__ */ function(e) {
690
+ }), Nt = /* @__PURE__ */ function(e) {
691
691
  return e.DELETE = "DELETE", e.SUCCESS = "SUCCESS", e;
692
- }({}), Ft = {
692
+ }({}), Pt = {
693
693
  key: 0,
694
694
  class: "p-6 text-center"
695
- }, It = { class: "flex justify-center" }, Lt = {
695
+ }, Ft = { class: "flex justify-center" }, It = {
696
696
  key: 1,
697
697
  class: "p-6 text-center"
698
- }, Rt = {
698
+ }, Lt = {
699
699
  key: 0,
700
700
  class: "mb-5 text-sm text-gray-500"
701
- }, zt = { class: "flex justify-center" }, Bt = /* @__PURE__ */ m({
701
+ }, Rt = { class: "flex justify-center" }, zt = /* @__PURE__ */ m({
702
702
  __name: "BaseModal",
703
703
  props: {
704
704
  title: {
@@ -717,7 +717,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
717
717
  mode: {
718
718
  type: String,
719
719
  required: !1,
720
- default: Pt.SUCCESS
720
+ default: Nt.SUCCESS
721
721
  }
722
722
  },
723
723
  emits: ["closeModal", "confirmModal"],
@@ -738,37 +738,37 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
738
738
  role: "dialog",
739
739
  "aria-modal": "true",
740
740
  "aria-labelledby": i
741
- }, [t.mode === F(Pt).DELETE ? (D(), c("div", Ft, [
741
+ }, [t.mode === F(Nt).DELETE ? (D(), c("div", Pt, [
742
742
  p(F(Se), { class: "w-12 h-12 text-gray-400 mx-auto mb-4" }),
743
743
  l("h3", {
744
744
  id: i,
745
745
  class: "mb-5 text-lg font-normal text-gray-500 dark:text-gray-400"
746
746
  }, " Are you sure you want to delete this " + P(t.title) + "? ", 1),
747
- l("div", It, [p(it, {
747
+ l("div", Ft, [p(q, {
748
748
  color: F(G).RED,
749
749
  onClick: r[1] ||= (e) => n.$emit("confirmModal"),
750
750
  description: "Yes, I'm sure"
751
- }, null, 8, ["color"]), p(it, {
751
+ }, null, 8, ["color"]), p(q, {
752
752
  color: F(G).WHITE,
753
753
  onClick: r[2] ||= (e) => n.$emit("closeModal"),
754
754
  description: "No, cancel"
755
755
  }, null, 8, ["color"])])
756
- ])) : (D(), c("div", Lt, [
756
+ ])) : (D(), c("div", It, [
757
757
  p(F(pe), { class: "w-12 h-12 text-green-500 mx-auto mb-4" }),
758
758
  l("h3", {
759
759
  id: i,
760
760
  class: "mb-2 text-lg font-medium text-gray-900"
761
761
  }, P(t.title), 1),
762
- t.description ? (D(), c("p", Rt, P(t.description), 1)) : s("", !0),
762
+ t.description ? (D(), c("p", Lt, P(t.description), 1)) : s("", !0),
763
763
  j(n.$slots, "default"),
764
- l("div", zt, [p(it, {
764
+ l("div", Rt, [p(q, {
765
765
  color: F(G).BLUE,
766
766
  onClick: r[3] ||= (e) => n.$emit("closeModal"),
767
767
  description: "OK"
768
768
  }, null, 8, ["color"])])
769
769
  ]))])], 64));
770
770
  }
771
- }), Vt = /* @__PURE__ */ m({
771
+ }), Bt = /* @__PURE__ */ m({
772
772
  __name: "BaseRow",
773
773
  props: { bgColor: {
774
774
  type: String,
@@ -782,7 +782,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
782
782
  }
783
783
  return (e, t) => (D(), c("div", { class: b(n()) }, [j(e.$slots, "default")], 2));
784
784
  }
785
- }), Ht = /* @__PURE__ */ m({
785
+ }), Vt = /* @__PURE__ */ m({
786
786
  __name: "BaseSpinner",
787
787
  props: {
788
788
  size: { default: "sm" },
@@ -810,9 +810,9 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
810
810
  "aria-label": "Loading"
811
811
  }, null, 2));
812
812
  }
813
- }), J = /* @__PURE__ */ function(e) {
813
+ }), Y = /* @__PURE__ */ function(e) {
814
814
  return e.SUCCESS = "SUCCESS", e.WARNING = "WARNING", e.ERROR = "ERROR", e;
815
- }({}), Y = /* @__PURE__ */ function(e) {
815
+ }({}), Ht = /* @__PURE__ */ function(e) {
816
816
  return e.TOP_LEFT = "TOP_LEFT", e.TOP_RIGHT = "TOP_RIGHT", e.BOTTOM_LEFT = "BOTTOM_LEFT", e.BOTTOM_RIGHT = "BOTTOM_RIGHT", e;
817
817
  }({}), Ut = { class: "flex items-center w-full max-w-md p-4 mb-4 text-gray-500 bg-white rounded-lg shadow dark:text-gray-400 dark:bg-gray-800" }, Wt = { class: "ml-3 text-sm font-normal" }, Gt = /* @__PURE__ */ m({
818
818
  __name: "BaseToast",
@@ -833,7 +833,7 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
833
833
  positioning: {
834
834
  type: String,
835
835
  required: !1,
836
- default: Y.TOP_RIGHT
836
+ default: Ht.TOP_RIGHT
837
837
  },
838
838
  duration: {
839
839
  type: Number,
@@ -854,13 +854,13 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
854
854
  function a() {
855
855
  let e = "";
856
856
  switch (t.mode) {
857
- case J.ERROR:
857
+ case Y.ERROR:
858
858
  e = "text-red-500 bg-red-100 dark:bg-red-800 dark:text-red-200";
859
859
  break;
860
- case J.SUCCESS:
860
+ case Y.SUCCESS:
861
861
  e = "text-green-500 bg-green-100 dark:bg-green-800 dark:text-green-200";
862
862
  break;
863
- case J.WARNING:
863
+ case Y.WARNING:
864
864
  e = "text-orange-500 bg-orange-100 dark:bg-orange-700 dark:text-orange-200";
865
865
  break;
866
866
  default: e = "text-gray-500 bg-gray-100 dark:bg-gray-800 dark:text-gray-200";
@@ -870,16 +870,16 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
870
870
  function o() {
871
871
  let e = "top-5 right-5";
872
872
  switch (t.positioning) {
873
- case Y.BOTTOM_LEFT:
873
+ case Ht.BOTTOM_LEFT:
874
874
  e = "bottom-5 left-5";
875
875
  break;
876
- case Y.TOP_LEFT:
876
+ case Ht.TOP_LEFT:
877
877
  e = "top-5 left-5";
878
878
  break;
879
- case Y.TOP_RIGHT:
879
+ case Ht.TOP_RIGHT:
880
880
  e = "top-5 right-5";
881
881
  break;
882
- case Y.BOTTOM_RIGHT: e = "bottom-5 right-5";
882
+ case Ht.BOTTOM_RIGHT: e = "bottom-5 right-5";
883
883
  }
884
884
  return "fixed flex items-center w-full max-w-md p-4 space-x-4 divide-x rounded-lg " + e;
885
885
  }
@@ -889,13 +889,13 @@ var We = "bg-red-100 text-red-700 border-red-200", Ge = /* @__PURE__ */ m({
889
889
  class: b(o()),
890
890
  role: "alert"
891
891
  }, [l("div", Ut, [
892
- e.mode == F(J).ERROR ? (D(), c("div", {
892
+ e.mode == F(Y).ERROR ? (D(), c("div", {
893
893
  key: 0,
894
894
  class: b(a())
895
- }, [p(F(Se), { class: "h-6 w-6 text-red-500" }), r[0] ||= l("span", { class: "sr-only" }, "Error icon", -1)], 2)) : e.mode == F(J).SUCCESS ? (D(), c("div", {
895
+ }, [p(F(Se), { class: "h-6 w-6 text-red-500" }), r[0] ||= l("span", { class: "sr-only" }, "Error icon", -1)], 2)) : e.mode == F(Y).SUCCESS ? (D(), c("div", {
896
896
  key: 1,
897
897
  class: b(a())
898
- }, [p(F(pe), { class: "h-6 w-6 text-green-500" }), r[1] ||= l("span", { class: "sr-only" }, "Check icon", -1)], 2)) : e.mode == F(J).WARNING ? (D(), c("div", {
898
+ }, [p(F(pe), { class: "h-6 w-6 text-green-500" }), r[1] ||= l("span", { class: "sr-only" }, "Check icon", -1)], 2)) : e.mode == F(Y).WARNING ? (D(), c("div", {
899
899
  key: 2,
900
900
  class: b(a())
901
901
  }, [p(F(Ce), { class: "h-6 w-6 text-yellow-500" }), r[2] ||= l("span", { class: "sr-only" }, "Warning icon", -1)], 2)) : s("", !0),
@@ -1881,7 +1881,7 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
1881
1881
  key: 0,
1882
1882
  class: b(["text-sm", F(d) ? "text-gray-300" : "text-gray-600"])
1883
1883
  }, P(t.message), 3)) : s("", !0),
1884
- h.value ? (D(), c("div", rr, [p(Ht, { color: "emerald" })])) : g.value ? (D(), c("div", ir, P(g.value), 1)) : s("", !0),
1884
+ h.value ? (D(), c("div", rr, [p(Vt, { color: "emerald" })])) : g.value ? (D(), c("div", ir, P(g.value), 1)) : s("", !0),
1885
1885
  !h.value && !g.value && S.value.length > 0 ? (D(), c("div", ar, [l("div", or, [p(F(Ee), {
1886
1886
  class: b(["absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4", F(f).dimText]),
1887
1887
  "aria-hidden": "true"
@@ -3082,9 +3082,9 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3082
3082
  }
3083
3083
  }
3084
3084
  }
3085
- return w(h), n({ load: h }), (n, r) => (D(), o(Vt, { class: "!p-6" }, {
3085
+ return w(h), n({ load: h }), (n, r) => (D(), o(Bt, { class: "!p-6" }, {
3086
3086
  default: L(() => [
3087
- l("div", Wi, [l("div", null, [l("h2", Gi, P(t.title), 1), t.subtitle ? (D(), c("p", Ki, P(t.subtitle), 1)) : s("", !0)]), u.value ? (D(), c("span", qi, [p(Ht, { class: "!h-4 !w-4" }), r[4] ||= f(" Saving… ", -1)])) : s("", !0)]),
3087
+ l("div", Wi, [l("div", null, [l("h2", Gi, P(t.title), 1), t.subtitle ? (D(), c("p", Ki, P(t.subtitle), 1)) : s("", !0)]), u.value ? (D(), c("span", qi, [p(Vt, { class: "!h-4 !w-4" }), r[4] ||= f(" Saving… ", -1)])) : s("", !0)]),
3088
3088
  l("div", Ji, [
3089
3089
  l("div", Yi, [l("label", {
3090
3090
  for: `${t.idPrefix}-key-id`,
@@ -3146,7 +3146,7 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3146
3146
  type: "text",
3147
3147
  class: b(aa)
3148
3148
  }, null, 8, ["id", "modelValue"])]),
3149
- l("div", ia, [p(it, {
3149
+ l("div", ia, [p(q, {
3150
3150
  color: F(G).GREEN,
3151
3151
  description: t.saveLabel,
3152
3152
  isDisable: u.value,
@@ -3289,7 +3289,115 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3289
3289
  }, P(e.label), 9, ba)
3290
3290
  ], 8, va))), 128))], 8, _a));
3291
3291
  }
3292
- }), Sa = /* @__PURE__ */ m({
3292
+ }), Sa = { class: "flex items-center gap-2 border-b border-slate-200 dark:border-slate-700 pb-2" }, Ca = ["checked", "aria-label"], wa = { class: "text-sm font-medium text-slate-700 dark:text-slate-200" }, Ta = { class: "flex items-center gap-2 pb-1.5" }, Ea = [
3293
+ "checked",
3294
+ "aria-label",
3295
+ "onChange"
3296
+ ], Da = { class: "text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400" }, Oa = { class: "grid grid-cols-[repeat(2,minmax(0,1fr))] sm:grid-cols-[repeat(3,minmax(0,1fr))] gap-x-3 gap-y-1.5" }, ka = [
3297
+ "checked",
3298
+ "aria-label",
3299
+ "onChange"
3300
+ ], Aa = /* @__PURE__ */ m({
3301
+ __name: "BaseGroupedChecklist",
3302
+ props: {
3303
+ groups: {},
3304
+ modelValue: {},
3305
+ allLabel: { default: "Select all" },
3306
+ allAriaLabel: { default: "Select all items" },
3307
+ itemAriaLabel: {
3308
+ type: Function,
3309
+ default: void 0
3310
+ },
3311
+ mono: {
3312
+ type: Boolean,
3313
+ default: !1
3314
+ },
3315
+ maxHeightClass: { default: "max-h-72" }
3316
+ },
3317
+ emits: ["update:modelValue"],
3318
+ setup(t, { emit: n }) {
3319
+ let r = t, i = n, o = a(() => r.groups.filter((e) => e.items.length > 0)), s = a(() => o.value.flatMap((e) => e.items)), u = a(() => new Set(r.modelValue)), d = a(() => s.value.length > 0 && s.value.every((e) => u.value.has(e)));
3320
+ function f(e) {
3321
+ return e.items.every((e) => u.value.has(e));
3322
+ }
3323
+ function p(e) {
3324
+ i("update:modelValue", s.value.filter((t) => e.has(t)));
3325
+ }
3326
+ function m() {
3327
+ p(d.value ? /* @__PURE__ */ new Set() : new Set(s.value));
3328
+ }
3329
+ function h(e) {
3330
+ let t = new Set(u.value), n = !f(e);
3331
+ for (let r of e.items) n ? t.add(r) : t.delete(r);
3332
+ p(t);
3333
+ }
3334
+ function g(e) {
3335
+ let t = new Set(u.value);
3336
+ t.has(e) ? t.delete(e) : t.add(e), p(t);
3337
+ }
3338
+ return (n, r) => (D(), c("div", null, [l("label", Sa, [l("input", {
3339
+ type: "checkbox",
3340
+ class: "h-4 w-4",
3341
+ checked: d.value,
3342
+ "aria-label": t.allAriaLabel,
3343
+ onChange: m
3344
+ }, null, 40, Ca), l("span", wa, P(t.allLabel) + " (" + P(s.value.length) + ") ", 1)]), l("div", { class: b(["overflow-y-auto space-y-3 mt-3", t.maxHeightClass]) }, [(D(!0), c(e, null, A(o.value, (n) => (D(), c("div", { key: n.key }, [l("label", Ta, [l("input", {
3345
+ type: "checkbox",
3346
+ class: "h-4 w-4",
3347
+ checked: f(n),
3348
+ "aria-label": `${t.allLabel} ${n.label}`,
3349
+ onChange: (e) => h(n)
3350
+ }, null, 40, Ea), l("span", Da, P(n.label) + " (" + P(n.items.length) + ") ", 1)]), l("div", Oa, [(D(!0), c(e, null, A(n.items, (e) => (D(), c("label", {
3351
+ key: e,
3352
+ class: "flex items-center gap-2"
3353
+ }, [l("input", {
3354
+ type: "checkbox",
3355
+ class: "h-4 w-4",
3356
+ checked: u.value.has(e),
3357
+ "aria-label": t.itemAriaLabel ? t.itemAriaLabel(e) : e,
3358
+ onChange: (t) => g(e)
3359
+ }, null, 40, ka), l("span", { class: b(["text-sm text-slate-700 dark:text-slate-200", { "font-mono": t.mono }]) }, P(e), 3)]))), 128))])]))), 128))], 2)]));
3360
+ }
3361
+ }), ja = { class: "inline-flex items-center gap-1 font-mono text-[11px]" }, Ma = {
3362
+ key: 0,
3363
+ class: "text-slate-500 dark:text-slate-400 uppercase tracking-wide"
3364
+ }, Na = ["title"], Pa = ["title", "aria-label"], Fa = /* @__PURE__ */ m({
3365
+ __name: "BaseIdChip",
3366
+ props: {
3367
+ value: {},
3368
+ label: { default: "" },
3369
+ copyLabel: { default: void 0 },
3370
+ actionLabel: { default: void 0 },
3371
+ maxWidthClass: { default: "max-w-[90px]" }
3372
+ },
3373
+ emits: ["action"],
3374
+ setup(e, { emit: t }) {
3375
+ let n = t;
3376
+ return (t, r) => (D(), c("div", ja, [
3377
+ e.label ? (D(), c("span", Ma, P(e.label), 1)) : s("", !0),
3378
+ l("code", {
3379
+ class: b(["truncate rounded bg-slate-100 px-1 text-slate-600 dark:bg-slate-800 dark:text-slate-300", e.maxWidthClass]),
3380
+ title: e.value
3381
+ }, P(e.value), 11, Na),
3382
+ p(Ar, {
3383
+ text: e.value,
3384
+ label: e.copyLabel ?? `${e.label} ${e.value}`.trim(),
3385
+ "icon-class": "w-3.5 h-3.5"
3386
+ }, null, 8, ["text", "label"]),
3387
+ e.actionLabel ? (D(), c("button", {
3388
+ key: 1,
3389
+ type: "button",
3390
+ title: e.actionLabel,
3391
+ "aria-label": e.actionLabel,
3392
+ class: "rounded px-0.5 text-slate-400 hover:bg-slate-100 hover:text-emerald-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 dark:hover:bg-slate-800 dark:hover:text-emerald-400",
3393
+ onClick: r[0] ||= (t) => n("action", e.value)
3394
+ }, [p(F(Ee), {
3395
+ class: "h-3.5 w-3.5",
3396
+ "aria-hidden": "true"
3397
+ })], 8, Pa)) : s("", !0)
3398
+ ]));
3399
+ }
3400
+ }), Ia = /* @__PURE__ */ m({
3293
3401
  __name: "BaseDateTimePicker",
3294
3402
  props: {
3295
3403
  modelValue: { default: null },
@@ -3342,28 +3450,28 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3342
3450
  "teleport"
3343
3451
  ]));
3344
3452
  }
3345
- }), Ca = { class: "flex min-w-0 flex-1 flex-wrap items-center gap-1" }, wa = { class: "truncate" }, Ta = [
3453
+ }), La = { class: "flex min-w-0 flex-1 flex-wrap items-center gap-1" }, Ra = { class: "truncate" }, za = [
3346
3454
  "aria-label",
3347
3455
  "disabled",
3348
3456
  "onClick"
3349
- ], Ea = [
3457
+ ], Ba = [
3350
3458
  "disabled",
3351
3459
  "readonly",
3352
3460
  "aria-label",
3353
3461
  "aria-expanded",
3354
3462
  "aria-activedescendant",
3355
3463
  "placeholder"
3356
- ], Da = ["aria-multiselectable"], Oa = [
3464
+ ], Va = ["aria-multiselectable"], Ha = [
3357
3465
  "id",
3358
3466
  "aria-selected",
3359
3467
  "aria-disabled",
3360
3468
  "title",
3361
3469
  "onMouseenter",
3362
3470
  "onClick"
3363
- ], ka = { class: "truncate" }, Aa = {
3471
+ ], Ua = { class: "truncate" }, Wa = {
3364
3472
  key: 0,
3365
3473
  class: "px-3 py-2 text-sm text-slate-500 dark:text-slate-400"
3366
- }, ja = /* @__PURE__ */ m({
3474
+ }, Ga = /* @__PURE__ */ m({
3367
3475
  __name: "BaseSearchSelect",
3368
3476
  props: {
3369
3477
  options: {},
@@ -3472,10 +3580,10 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3472
3580
  class: b(["flex min-h-[38px] items-center gap-1.5 rounded-lg border bg-white px-3 py-1.5 text-sm transition-colors dark:bg-slate-900", [f.value ? "border-emerald-500 ring-2 ring-emerald-500/30" : "border-slate-300 hover:border-slate-400 dark:border-slate-600 dark:hover:border-slate-500", t.disabled ? "cursor-not-allowed opacity-60" : "cursor-text"]]),
3473
3581
  onMousedown: N
3474
3582
  }, [
3475
- l("div", Ca, [(D(!0), c(e, null, A(v.value, (e) => R((D(), c("span", {
3583
+ l("div", La, [(D(!0), c(e, null, A(v.value, (e) => R((D(), c("span", {
3476
3584
  key: String(e.value),
3477
3585
  class: "inline-flex max-w-full items-center gap-1 rounded-md bg-emerald-50 py-0.5 pl-2 pr-1 text-xs font-medium text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300"
3478
- }, [l("span", wa, P(e.label), 1), l("button", {
3586
+ }, [l("span", Ra, P(e.label), 1), l("button", {
3479
3587
  type: "button",
3480
3588
  class: "rounded p-0.5 hover:bg-emerald-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 dark:hover:bg-emerald-500/25",
3481
3589
  "aria-label": `Remove ${e.label}`,
@@ -3485,7 +3593,7 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3485
3593
  }, [p(F(Ae), {
3486
3594
  class: "h-3 w-3",
3487
3595
  "aria-hidden": "true"
3488
- })], 40, Ta)])), [[oe, t.multiple]])), 128)), R(l("input", {
3596
+ })], 40, za)])), [[oe, t.multiple]])), 128)), R(l("input", {
3489
3597
  ref_key: "inputEl",
3490
3598
  ref: d,
3491
3599
  "onUpdate:modelValue": r[1] ||= (e) => m.value = e,
@@ -3504,7 +3612,7 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3504
3612
  onFocus: j,
3505
3613
  onInput: j,
3506
3614
  onKeydown: se
3507
- }, null, 42, Ea), [[ae, m.value]])]),
3615
+ }, null, 42, Ba), [[ae, m.value]])]),
3508
3616
  t.clearable && x.value && !t.disabled ? (D(), c("button", {
3509
3617
  key: 0,
3510
3618
  type: "button",
@@ -3537,28 +3645,28 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3537
3645
  onMousedown: r[3] ||= z(() => {}, ["prevent"]),
3538
3646
  onMouseenter: (e) => h.value = t,
3539
3647
  onClick: (t) => ne(e)
3540
- }, [l("span", ka, P(e.label), 1), O(e) ? (D(), o(F(me), {
3648
+ }, [l("span", Ua, P(e.label), 1), O(e) ? (D(), o(F(me), {
3541
3649
  key: 0,
3542
3650
  class: "h-4 w-4 shrink-0",
3543
3651
  "aria-hidden": "true"
3544
- })) : s("", !0)], 42, Oa))), 128)), E.value.length === 0 ? (D(), c("li", Aa, P(t.options.length === 0 ? t.emptyText : t.noResultsText), 1)) : s("", !0)], 8, Da)) : s("", !0)], 2));
3652
+ })) : s("", !0)], 42, Ha))), 128)), E.value.length === 0 ? (D(), c("li", Wa, P(t.options.length === 0 ? t.emptyText : t.noResultsText), 1)) : s("", !0)], 8, Va)) : s("", !0)], 2));
3545
3653
  }
3546
- }), Ma = { class: "rounded-xl border border-slate-200 bg-white text-left shadow-sm dark:border-slate-700 dark:bg-slate-900" }, Na = {
3654
+ }), Ka = { class: "rounded-xl border border-slate-200 bg-white text-left shadow-sm dark:border-slate-700 dark:bg-slate-900" }, qa = {
3547
3655
  key: 0,
3548
3656
  class: "flex flex-wrap items-center justify-between gap-3 border-b border-slate-200 px-5 py-3 dark:border-slate-700"
3549
- }, Pa = { class: "min-w-0" }, Fa = {
3657
+ }, Ja = { class: "min-w-0" }, Ya = {
3550
3658
  key: 0,
3551
3659
  class: "text-base font-semibold text-slate-900 dark:text-slate-100"
3552
- }, Ia = {
3660
+ }, Xa = {
3553
3661
  key: 1,
3554
3662
  class: "text-sm text-slate-500 dark:text-slate-400"
3555
- }, La = {
3663
+ }, Za = {
3556
3664
  key: 0,
3557
3665
  class: "flex items-center gap-2"
3558
- }, Ra = {
3666
+ }, Qa = {
3559
3667
  key: 1,
3560
3668
  class: "flex flex-wrap items-center justify-end gap-2 border-t border-slate-200 px-5 py-3 dark:border-slate-700"
3561
- }, za = /* @__PURE__ */ m({
3669
+ }, $a = /* @__PURE__ */ m({
3562
3670
  __name: "BaseCard",
3563
3671
  props: {
3564
3672
  title: { default: "" },
@@ -3566,24 +3674,24 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3566
3674
  padding: { default: "md" }
3567
3675
  },
3568
3676
  setup(e) {
3569
- return (t, n) => (D(), c("section", Ma, [
3570
- e.title || e.subtitle || t.$slots.actions ? (D(), c("header", Na, [l("div", Pa, [e.title ? (D(), c("h2", Fa, P(e.title), 1)) : s("", !0), e.subtitle ? (D(), c("p", Ia, P(e.subtitle), 1)) : s("", !0)]), t.$slots.actions ? (D(), c("div", La, [j(t.$slots, "actions")])) : s("", !0)])) : s("", !0),
3677
+ return (t, n) => (D(), c("section", Ka, [
3678
+ e.title || e.subtitle || t.$slots.actions ? (D(), c("header", qa, [l("div", Ja, [e.title ? (D(), c("h2", Ya, P(e.title), 1)) : s("", !0), e.subtitle ? (D(), c("p", Xa, P(e.subtitle), 1)) : s("", !0)]), t.$slots.actions ? (D(), c("div", Za, [j(t.$slots, "actions")])) : s("", !0)])) : s("", !0),
3571
3679
  l("div", { class: b(e.padding === "sm" ? "p-4" : e.padding === "none" ? "" : "p-5") }, [j(t.$slots, "default")], 2),
3572
- t.$slots.footer ? (D(), c("footer", Ra, [j(t.$slots, "footer")])) : s("", !0)
3680
+ t.$slots.footer ? (D(), c("footer", Qa, [j(t.$slots, "footer")])) : s("", !0)
3573
3681
  ]));
3574
3682
  }
3575
- }), Ba = ["for"], Va = {
3683
+ }), eo = ["for"], to = {
3576
3684
  key: 0,
3577
3685
  class: "ml-0.5 text-red-500",
3578
3686
  "aria-hidden": "true"
3579
- }, Ha = {
3687
+ }, no = {
3580
3688
  key: 1,
3581
3689
  class: "mt-1 text-xs font-medium text-red-600 dark:text-red-400",
3582
3690
  role: "alert"
3583
- }, Ua = {
3691
+ }, ro = {
3584
3692
  key: 2,
3585
3693
  class: "mt-1 text-xs text-slate-500 dark:text-slate-400"
3586
- }, Wa = /* @__PURE__ */ m({
3694
+ }, io = /* @__PURE__ */ m({
3587
3695
  __name: "BaseField",
3588
3696
  props: {
3589
3697
  label: { default: "" },
@@ -3609,12 +3717,12 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3609
3717
  key: 0,
3610
3718
  for: e.labelFor || void 0,
3611
3719
  class: b(["mb-1 block", e.compact ? "text-xs uppercase tracking-wide text-slate-500 dark:text-slate-400" : "text-sm font-medium text-slate-700 dark:text-slate-200"])
3612
- }, [f(P(e.label), 1), e.required ? (D(), c("span", Va, "*")) : s("", !0)], 10, Ba)) : s("", !0),
3720
+ }, [f(P(e.label), 1), e.required ? (D(), c("span", to, "*")) : s("", !0)], 10, eo)) : s("", !0),
3613
3721
  j(t.$slots, "default"),
3614
- e.error ? (D(), c("p", Ha, P(e.error), 1)) : e.hint ? (D(), c("p", Ua, P(e.hint), 1)) : s("", !0)
3722
+ e.error ? (D(), c("p", no, P(e.error), 1)) : e.hint ? (D(), c("p", ro, P(e.hint), 1)) : s("", !0)
3615
3723
  ], 2));
3616
3724
  }
3617
- }), Ga = { class: "flex items-start justify-between gap-3" }, Ka = { class: "min-w-0 text-left" }, qa = { class: "truncate text-sm font-bold tracking-wide text-gray-800 dark:text-slate-200" }, Ja = /* @__PURE__ */ m({
3725
+ }), ao = { class: "flex items-start justify-between gap-3" }, oo = { class: "min-w-0 text-left" }, so = { class: "truncate text-sm font-bold tracking-wide text-gray-800 dark:text-slate-200" }, co = /* @__PURE__ */ m({
3618
3726
  __name: "BaseStatCard",
3619
3727
  props: {
3620
3728
  title: {},
@@ -3662,8 +3770,8 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3662
3770
  }
3663
3771
  }, r = a(() => n[t.accent]);
3664
3772
  return (t, n) => (D(), o(N(e.to ? F(Me) : "div"), v(e.to ? { to: e.to } : {}, { class: ["relative block rounded-xl border-2 border-dashed bg-white p-5 transition-colors dark:bg-slate-800", [r.value.border, e.to ? "hover:bg-slate-50 dark:hover:bg-slate-700/60 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500" : ""]] }), {
3665
- default: L(() => [l("div", Ga, [l("div", Ka, [
3666
- l("p", qa, P(e.title), 1),
3773
+ default: L(() => [l("div", ao, [l("div", oo, [
3774
+ l("p", so, P(e.title), 1),
3667
3775
  l("p", { class: b(["mt-1 truncate text-3xl font-bold", r.value.value]) }, P(e.value), 3),
3668
3776
  e.subtitle ? (D(), c("p", {
3669
3777
  key: 0,
@@ -3677,14 +3785,14 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3677
3785
  _: 3
3678
3786
  }, 16, ["class"]));
3679
3787
  }
3680
- }), Ya = [
3788
+ }), lo = [
3681
3789
  "aria-checked",
3682
3790
  "aria-label",
3683
3791
  "disabled"
3684
- ], Xa = {
3792
+ ], uo = {
3685
3793
  key: 0,
3686
3794
  class: "text-sm font-medium text-slate-700 dark:text-slate-200"
3687
- }, Za = /* @__PURE__ */ m({
3795
+ }, fo = /* @__PURE__ */ m({
3688
3796
  __name: "BaseToggle",
3689
3797
  props: {
3690
3798
  modelValue: {
@@ -3724,12 +3832,12 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3724
3832
  }, [l("span", {
3725
3833
  class: b(["inline-block h-5 w-5 rounded-full bg-white shadow ring-1 ring-black/5 transition-transform", e.modelValue ? "translate-x-[22px]" : "translate-x-0.5"]),
3726
3834
  "aria-hidden": "true"
3727
- }, null, 2)], 10, Ya), e.label ? (D(), c("span", Xa, P(e.label), 1)) : s("", !0)], 2));
3835
+ }, null, 2)], 10, lo), e.label ? (D(), c("span", uo, P(e.label), 1)) : s("", !0)], 2));
3728
3836
  }
3729
- }), Qa = ["checked", "disabled"], $a = {
3837
+ }), po = ["checked", "disabled"], mo = {
3730
3838
  key: 0,
3731
3839
  class: "text-sm text-slate-700 dark:text-slate-200"
3732
- }, eo = /* @__PURE__ */ m({
3840
+ }, ho = /* @__PURE__ */ m({
3733
3841
  inheritAttrs: !1,
3734
3842
  __name: "BaseCheckbox",
3735
3843
  props: {
@@ -3756,15 +3864,15 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3756
3864
  disabled: e.disabled,
3757
3865
  class: "h-5 w-5 shrink-0 cursor-[inherit] rounded-md border-slate-300 bg-white text-emerald-600 accent-emerald-600 transition-colors focus:ring-2 focus:ring-emerald-500/40 focus:ring-offset-0 dark:border-slate-600 dark:bg-slate-900 dark:checked:bg-emerald-600",
3758
3866
  onChange: r
3759
- }), null, 16, Qa), e.label || t.$slots.default ? (D(), c("span", $a, [j(t.$slots, "default", {}, () => [f(P(e.label), 1)])])) : s("", !0)], 2));
3867
+ }), null, 16, po), e.label || t.$slots.default ? (D(), c("span", mo, [j(t.$slots, "default", {}, () => [f(P(e.label), 1)])])) : s("", !0)], 2));
3760
3868
  }
3761
- }), to = { class: "flex flex-col gap-2 text-left" }, no = {
3869
+ }), go = { class: "flex flex-col gap-2 text-left" }, _o = {
3762
3870
  class: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-emerald-100 text-sm font-semibold text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300",
3763
3871
  "aria-hidden": "true"
3764
- }, ro = { class: "min-w-0" }, io = { class: "block truncate text-sm font-medium text-slate-900 dark:text-slate-100" }, ao = {
3872
+ }, vo = { class: "min-w-0" }, yo = { class: "block truncate text-sm font-medium text-slate-900 dark:text-slate-100" }, bo = {
3765
3873
  key: 0,
3766
3874
  class: "block truncate text-xs text-slate-500 dark:text-slate-400"
3767
- }, oo = /* @__PURE__ */ m({
3875
+ }, xo = /* @__PURE__ */ m({
3768
3876
  __name: "BaseSidebarUser",
3769
3877
  props: {
3770
3878
  name: {},
@@ -3780,13 +3888,13 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3780
3888
  emits: ["logout"],
3781
3889
  setup(e, { emit: t }) {
3782
3890
  let n = e, r = t, i = a(() => (n.name || "?").split(/[\s._-]+/).filter(Boolean).slice(0, 2).map((e) => e[0].toUpperCase()).join(""));
3783
- return (t, n) => (D(), c("div", to, [(D(), o(N(e.to ? F(Me) : "div"), v(e.to ? { to: e.to } : {}, {
3891
+ return (t, n) => (D(), c("div", go, [(D(), o(N(e.to ? F(Me) : "div"), v(e.to ? { to: e.to } : {}, {
3784
3892
  class: ["flex items-center gap-3 rounded-lg p-2 transition-colors", e.to ? "hover:bg-slate-100 dark:hover:bg-slate-800 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500" : ""],
3785
3893
  title: e.to ? e.profileLabel : void 0
3786
3894
  }), {
3787
- default: L(() => [l("span", no, P(i.value), 1), l("span", ro, [l("span", io, P(e.name), 1), e.email ? (D(), c("span", ao, P(e.email), 1)) : s("", !0)])]),
3895
+ default: L(() => [l("span", _o, P(i.value), 1), l("span", vo, [l("span", yo, P(e.name), 1), e.email ? (D(), c("span", bo, P(e.email), 1)) : s("", !0)])]),
3788
3896
  _: 1
3789
- }, 16, ["class", "title"])), e.showLogout ? (D(), o(it, {
3897
+ }, 16, ["class", "title"])), e.showLogout ? (D(), o(q, {
3790
3898
  key: 0,
3791
3899
  class: "w-full justify-center",
3792
3900
  description: e.logoutLabel,
@@ -3807,16 +3915,16 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3807
3915
  "size"
3808
3916
  ])) : s("", !0)]));
3809
3917
  }
3810
- }), so = { class: "flex min-h-screen w-full flex-col items-center justify-center bg-slate-50 px-4 py-10 dark:bg-slate-950" }, co = { class: "mb-6 flex justify-center" }, lo = {
3918
+ }), So = { class: "flex min-h-screen w-full flex-col items-center justify-center bg-slate-50 px-4 py-10 dark:bg-slate-950" }, Co = { class: "mb-6 flex justify-center" }, wo = {
3811
3919
  key: 0,
3812
3920
  class: "mb-1 text-2xl font-bold tracking-tight text-slate-900 dark:text-slate-100"
3813
- }, uo = {
3921
+ }, To = {
3814
3922
  key: 1,
3815
3923
  class: "text-sm text-slate-500 dark:text-slate-400"
3816
- }, fo = {
3924
+ }, Eo = {
3817
3925
  key: 2,
3818
3926
  class: "mt-6 border-t border-slate-200 pt-4 text-center text-sm text-slate-500 dark:border-slate-700 dark:text-slate-400"
3819
- }, po = /* @__PURE__ */ m({
3927
+ }, Do = /* @__PURE__ */ m({
3820
3928
  __name: "BaseAuthLayout",
3821
3929
  props: {
3822
3930
  title: { default: "" },
@@ -3827,17 +3935,17 @@ var Kn = ["aria-label", "aria-expanded"], qn = { class: "flex flex-col h-full" }
3827
3935
  }
3828
3936
  },
3829
3937
  setup(e) {
3830
- return (t, n) => (D(), c("div", so, [l("div", co, [j(t.$slots, "logo", {}, () => [p(Nt, { size: F(q).MEDIUM }, null, 8, ["size"])])]), l("div", { class: b(["w-full rounded-xl border border-slate-200 bg-white p-6 text-left shadow-sm sm:p-8 dark:border-slate-700 dark:bg-slate-900", e.wide ? "max-w-3xl" : "max-w-md"]) }, [
3831
- e.title ? (D(), c("h1", lo, P(e.title), 1)) : s("", !0),
3832
- e.subtitle ? (D(), c("p", uo, P(e.subtitle), 1)) : s("", !0),
3938
+ return (t, n) => (D(), c("div", So, [l("div", Co, [j(t.$slots, "logo", {}, () => [p(Mt, { size: F(J).MEDIUM }, null, 8, ["size"])])]), l("div", { class: b(["w-full rounded-xl border border-slate-200 bg-white p-6 text-left shadow-sm sm:p-8 dark:border-slate-700 dark:bg-slate-900", e.wide ? "max-w-3xl" : "max-w-md"]) }, [
3939
+ e.title ? (D(), c("h1", wo, P(e.title), 1)) : s("", !0),
3940
+ e.subtitle ? (D(), c("p", To, P(e.subtitle), 1)) : s("", !0),
3833
3941
  l("div", { class: b(e.title || e.subtitle ? "mt-6" : "") }, [j(t.$slots, "default")], 2),
3834
- t.$slots.footer ? (D(), c("div", fo, [j(t.$slots, "footer")])) : s("", !0)
3942
+ t.$slots.footer ? (D(), c("div", Eo, [j(t.$slots, "footer")])) : s("", !0)
3835
3943
  ], 2)]));
3836
3944
  }
3837
3945
  });
3838
3946
  //#endregion
3839
3947
  //#region node_modules/@heroicons/vue/20/solid/esm/CheckCircleIcon.js
3840
- function mo(e, t) {
3948
+ function Oo(e, t) {
3841
3949
  return D(), c("svg", {
3842
3950
  xmlns: "http://www.w3.org/2000/svg",
3843
3951
  viewBox: "0 0 20 20",
@@ -3852,7 +3960,7 @@ function mo(e, t) {
3852
3960
  }
3853
3961
  //#endregion
3854
3962
  //#region node_modules/@heroicons/vue/20/solid/esm/XCircleIcon.js
3855
- function ho(e, t) {
3963
+ function ko(e, t) {
3856
3964
  return D(), c("svg", {
3857
3965
  xmlns: "http://www.w3.org/2000/svg",
3858
3966
  viewBox: "0 0 20 20",
@@ -3867,7 +3975,7 @@ function ho(e, t) {
3867
3975
  }
3868
3976
  //#endregion
3869
3977
  //#region src/components/BaseBooleanBadge.vue
3870
- var go = /* @__PURE__ */ m({
3978
+ var Ao = /* @__PURE__ */ m({
3871
3979
  __name: "BaseBooleanBadge",
3872
3980
  props: {
3873
3981
  value: {
@@ -3878,20 +3986,20 @@ var go = /* @__PURE__ */ m({
3878
3986
  falseLabel: { default: "No" }
3879
3987
  },
3880
3988
  setup(e) {
3881
- return (t, n) => (D(), c("span", { class: b(["inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium ring-1 ring-inset", e.value ? "bg-emerald-50 text-emerald-700 ring-emerald-600/20 dark:bg-emerald-500/10 dark:text-emerald-300 dark:ring-emerald-400/30" : "bg-red-50 text-red-700 ring-red-600/20 dark:bg-red-500/10 dark:text-red-300 dark:ring-red-400/30"]) }, [e.value ? (D(), o(F(mo), {
3989
+ return (t, n) => (D(), c("span", { class: b(["inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium ring-1 ring-inset", e.value ? "bg-emerald-50 text-emerald-700 ring-emerald-600/20 dark:bg-emerald-500/10 dark:text-emerald-300 dark:ring-emerald-400/30" : "bg-red-50 text-red-700 ring-red-600/20 dark:bg-red-500/10 dark:text-red-300 dark:ring-red-400/30"]) }, [e.value ? (D(), o(F(Oo), {
3882
3990
  key: 0,
3883
3991
  class: "h-3.5 w-3.5",
3884
3992
  "aria-hidden": "true"
3885
- })) : (D(), o(F(ho), {
3993
+ })) : (D(), o(F(ko), {
3886
3994
  key: 1,
3887
3995
  class: "h-3.5 w-3.5",
3888
3996
  "aria-hidden": "true"
3889
3997
  })), f(" " + P(e.value ? e.trueLabel : e.falseLabel), 1)], 2));
3890
3998
  }
3891
- }), _o = { class: "text-xs uppercase tracking-wide text-slate-500 dark:text-slate-400" }, vo = ["href"], yo = {
3999
+ }), jo = { class: "text-xs uppercase tracking-wide text-slate-500 dark:text-slate-400" }, Mo = ["href"], No = {
3892
4000
  key: 1,
3893
4001
  class: "text-slate-400 dark:text-slate-500"
3894
- }, bo = /* @__PURE__ */ m({
4002
+ }, Po = /* @__PURE__ */ m({
3895
4003
  __name: "BaseDetailList",
3896
4004
  props: {
3897
4005
  items: {},
@@ -3905,18 +4013,18 @@ var go = /* @__PURE__ */ m({
3905
4013
  return (r, i) => (D(), c("dl", { class: b(["grid grid-cols-[minmax(0,1fr)] gap-x-6 gap-y-4 text-left", t.columns === 2 ? "sm:grid-cols-[repeat(2,minmax(0,1fr))]" : t.columns === 3 ? "sm:grid-cols-[repeat(2,minmax(0,1fr))] lg:grid-cols-[repeat(3,minmax(0,1fr))]" : ""]) }, [(D(!0), c(e, null, A(t.items, (r) => (D(), c("div", {
3906
4014
  key: r.label,
3907
4015
  class: "min-w-0"
3908
- }, [l("dt", _o, P(r.label), 1), l("dd", { class: b(["mt-1 break-words text-sm text-slate-900 dark:text-slate-100", r.mono ? "font-mono" : ""]) }, [r.href && !n(r.value) ? (D(), c("a", {
4016
+ }, [l("dt", jo, P(r.label), 1), l("dd", { class: b(["mt-1 break-words text-sm text-slate-900 dark:text-slate-100", r.mono ? "font-mono" : ""]) }, [r.href && !n(r.value) ? (D(), c("a", {
3909
4017
  key: 0,
3910
4018
  href: r.href,
3911
4019
  target: "_blank",
3912
4020
  rel: "noopener noreferrer",
3913
4021
  class: "text-emerald-600 hover:underline dark:text-emerald-400"
3914
- }, P(r.value), 9, vo)) : n(r.value) ? (D(), c("span", yo, P(t.emptyText), 1)) : (D(), c(e, { key: 2 }, [f(P(r.value), 1)], 64))], 2)]))), 128))], 2));
4022
+ }, P(r.value), 9, Mo)) : n(r.value) ? (D(), c("span", No, P(t.emptyText), 1)) : (D(), c(e, { key: 2 }, [f(P(r.value), 1)], 64))], 2)]))), 128))], 2));
3915
4023
  }
3916
4024
  });
3917
4025
  //#endregion
3918
4026
  //#region src/composables/useDebounce.ts
3919
- function xo(e, t = 300) {
4027
+ function Fo(e, t = 300) {
3920
4028
  let n = k(e.value), r = null;
3921
4029
  return I(e, (e) => {
3922
4030
  r && clearTimeout(r), r = setTimeout(() => {
@@ -3928,12 +4036,12 @@ function xo(e, t = 300) {
3928
4036
  }
3929
4037
  //#endregion
3930
4038
  //#region src/composables/useToast.ts
3931
- function So(e = 3e3) {
3932
- let t = k(!1), n = k(""), r = k(J.SUCCESS), i = null;
4039
+ function Io(e = 3e3) {
4040
+ let t = k(!1), n = k(""), r = k(Y.SUCCESS), i = null;
3933
4041
  function a() {
3934
4042
  i &&= (clearTimeout(i), null);
3935
4043
  }
3936
- function o(o, s = J.SUCCESS, c = e) {
4044
+ function o(o, s = Y.SUCCESS, c = e) {
3937
4045
  n.value = o, r.value = s, t.value = !0, a(), i = setTimeout(() => {
3938
4046
  t.value = !1, i = null;
3939
4047
  }, c);
@@ -3949,7 +4057,7 @@ function So(e = 3e3) {
3949
4057
  }
3950
4058
  //#endregion
3951
4059
  //#region src/composables/useQueryParamSync.ts
3952
- function Co() {
4060
+ function Lo() {
3953
4061
  let e = Ne(), t = Pe();
3954
4062
  function n(t) {
3955
4063
  let n = e.query[t];
@@ -3971,7 +4079,7 @@ function Co() {
3971
4079
  }
3972
4080
  //#endregion
3973
4081
  //#region src/composables/useFieldClasses.ts
3974
- function wo() {
4082
+ function Ro() {
3975
4083
  let { isDark: e } = U(), t = a(() => e.value ? "text-gray-300" : "text-gray-600"), n = a(() => e.value ? "bg-gray-800 border-gray-600 text-gray-100 placeholder-gray-500 focus:ring-emerald-500 focus:border-emerald-500" : "bg-white border-gray-300 text-gray-800 focus:ring-emerald-500 focus:border-emerald-500");
3976
4084
  function r(t) {
3977
4085
  return t == null || String(t).trim() === "" ? e.value ? "bg-gray-800 border-red-500 text-gray-100 placeholder-gray-500 focus:ring-red-500 focus:border-red-500 ring-1 ring-red-500/30" : "bg-white border-red-400 text-gray-800 focus:ring-red-500 focus:border-red-500 ring-1 ring-red-400/30" : n.value;
@@ -3984,7 +4092,7 @@ function wo() {
3984
4092
  }
3985
4093
  //#endregion
3986
4094
  //#region src/composables/usePolling.ts
3987
- function To(e, t, n = {}) {
4095
+ function zo(e, t, n = {}) {
3988
4096
  let { immediate: r = !0, pauseWhenHidden: i = !0 } = n, a = null, o = k(!1), s = !1;
3989
4097
  function c() {
3990
4098
  a === null && t !== null && (a = setInterval(() => void e(), t));
@@ -4019,7 +4127,7 @@ function To(e, t, n = {}) {
4019
4127
  }
4020
4128
  //#endregion
4021
4129
  //#region src/composables/useLatestRequest.ts
4022
- function Eo() {
4130
+ function Bo() {
4023
4131
  let e = 0, t = null;
4024
4132
  function n() {
4025
4133
  let n = ++e;
@@ -4038,17 +4146,39 @@ function Eo() {
4038
4146
  cancel: r
4039
4147
  };
4040
4148
  }
4041
- function Do(e) {
4149
+ function Vo(e) {
4042
4150
  return typeof DOMException < "u" && e instanceof DOMException && e.name === "AbortError" || e instanceof Error && e.name === "AbortError";
4043
4151
  }
4044
4152
  //#endregion
4153
+ //#region src/composables/useDirtyState.ts
4154
+ function Ho(e) {
4155
+ return JSON.stringify(e, (e, t) => {
4156
+ if (typeof t == "object" && t && !Array.isArray(t)) {
4157
+ let e = {};
4158
+ for (let n of Object.keys(t).sort()) e[n] = t[n];
4159
+ return e;
4160
+ }
4161
+ return t;
4162
+ });
4163
+ }
4164
+ function Uo(e) {
4165
+ let t = k(Ho(e())), n = a(() => Ho(e()) !== t.value);
4166
+ function r() {
4167
+ t.value = Ho(e());
4168
+ }
4169
+ return {
4170
+ dirty: n,
4171
+ markClean: r
4172
+ };
4173
+ }
4174
+ //#endregion
4045
4175
  //#region src/enums/BaseBadgeEnum.ts
4046
- var Oo = /* @__PURE__ */ function(e) {
4176
+ var Wo = /* @__PURE__ */ function(e) {
4047
4177
  return e.WIN = "WIN", e.LOSE = "LOSE", e;
4048
4178
  }({});
4049
4179
  //#endregion
4050
4180
  //#region src/utils/util.ts
4051
- function ko(e) {
4181
+ function Go(e) {
4052
4182
  let t = "red";
4053
4183
  switch (e) {
4054
4184
  case B.ERROR:
@@ -4064,7 +4194,7 @@ function ko(e) {
4064
4194
  }
4065
4195
  return t;
4066
4196
  }
4067
- function Ao(e) {
4197
+ function Ko(e) {
4068
4198
  let t = "red";
4069
4199
  switch (e) {
4070
4200
  case W.GREEN:
@@ -4091,14 +4221,14 @@ function Ao(e) {
4091
4221
  }
4092
4222
  //#endregion
4093
4223
  //#region src/utils/httpColors.ts
4094
- var jo = {
4224
+ var qo = {
4095
4225
  GET: "bg-blue-600",
4096
4226
  POST: "bg-emerald-600",
4097
4227
  PUT: "bg-amber-600",
4098
4228
  DELETE: "bg-red-600",
4099
4229
  PATCH: "bg-purple-600",
4100
4230
  HEAD: "bg-gray-600"
4101
- }, Mo = {
4231
+ }, Jo = {
4102
4232
  GET: "bg-blue-500",
4103
4233
  POST: "bg-green-500",
4104
4234
  PUT: "bg-yellow-500",
@@ -4106,39 +4236,39 @@ var jo = {
4106
4236
  PATCH: "bg-purple-500",
4107
4237
  HEAD: "bg-gray-500"
4108
4238
  };
4109
- function No(e) {
4110
- return e ? jo[e.toUpperCase()] ?? "bg-gray-600" : "bg-gray-600";
4239
+ function Yo(e) {
4240
+ return e ? qo[e.toUpperCase()] ?? "bg-gray-600" : "bg-gray-600";
4111
4241
  }
4112
- function Po(e) {
4113
- return e ? Mo[e.toUpperCase()] ?? "bg-gray-500" : "bg-gray-500";
4242
+ function Xo(e) {
4243
+ return e ? Jo[e.toUpperCase()] ?? "bg-gray-500" : "bg-gray-500";
4114
4244
  }
4115
- function Fo(e) {
4245
+ function Zo(e) {
4116
4246
  let t = e ?? 0;
4117
4247
  return t >= 200 && t < 300 ? "bg-emerald-600" : t >= 300 && t < 400 ? "bg-blue-600" : t >= 400 && t < 500 ? "bg-amber-600" : t >= 500 ? "bg-red-600" : "bg-gray-600";
4118
4248
  }
4119
- function Io(e, t) {
4249
+ function Qo(e, t) {
4120
4250
  let n = (e || "ANY").toUpperCase();
4121
4251
  return n === "GET" ? t ? "bg-blue-500/15 text-blue-400" : "bg-blue-100 text-blue-700" : n === "POST" ? t ? "bg-emerald-500/15 text-emerald-400" : "bg-emerald-100 text-emerald-700" : n === "PUT" ? t ? "bg-amber-500/15 text-amber-400" : "bg-amber-100 text-amber-700" : n === "DELETE" ? t ? "bg-red-500/15 text-red-400" : "bg-red-100 text-red-700" : n === "PATCH" ? t ? "bg-purple-500/15 text-purple-400" : "bg-purple-100 text-purple-700" : n === "HEAD" ? t ? "bg-sky-500/15 text-sky-400" : "bg-sky-100 text-sky-700" : t ? "bg-gray-500/15 text-gray-400" : "bg-gray-100 text-gray-600";
4122
4252
  }
4123
- function Lo(e, t) {
4253
+ function $o(e, t) {
4124
4254
  let n = e ?? 200;
4125
4255
  return n >= 200 && n < 300 ? t ? "bg-emerald-500/15 text-emerald-300" : "bg-emerald-100 text-emerald-700" : n >= 300 && n < 400 ? t ? "bg-sky-500/15 text-sky-300" : "bg-sky-100 text-sky-700" : n >= 400 && n < 500 ? t ? "bg-amber-500/15 text-amber-300" : "bg-amber-100 text-amber-700" : n >= 500 && n < 600 ? t ? "bg-red-500/15 text-red-300" : "bg-red-100 text-red-700" : t ? "bg-gray-800 text-gray-400" : "bg-gray-100 text-gray-600";
4126
4256
  }
4127
- function Ro(e, t) {
4257
+ function es(e, t) {
4128
4258
  let n = e ?? 200;
4129
4259
  return t ? n >= 200 && n < 300 ? "bg-green-500/15 text-green-400" : n >= 300 && n < 400 ? "bg-blue-500/15 text-blue-400" : n >= 400 && n < 500 ? "bg-yellow-500/15 text-yellow-400" : "bg-red-500/15 text-red-400" : n >= 200 && n < 300 ? "bg-green-100 text-green-800" : n >= 300 && n < 400 ? "bg-blue-100 text-blue-800" : n >= 400 && n < 500 ? "bg-yellow-100 text-yellow-800" : "bg-red-100 text-red-800";
4130
4260
  }
4131
4261
  //#endregion
4132
4262
  //#region src/utils/kvRows.ts
4133
- function zo(e) {
4263
+ function ts(e) {
4134
4264
  return !(e.key ?? "").trim() || e.matcherType === "absent" ? !1 : !(e.value ?? "").trim();
4135
4265
  }
4136
- function Bo(e) {
4266
+ function ns(e) {
4137
4267
  return e.matcherType === "absent" || !(e.value ?? "").trim() ? !1 : !(e.key ?? "").trim();
4138
4268
  }
4139
4269
  //#endregion
4140
4270
  //#region src/utils/sanitizeHtml.ts
4141
- var Vo = /* @__PURE__ */ new Set([
4271
+ var rs = /* @__PURE__ */ new Set([
4142
4272
  "A",
4143
4273
  "B",
4144
4274
  "STRONG",
@@ -4153,7 +4283,7 @@ var Vo = /* @__PURE__ */ new Set([
4153
4283
  "LI",
4154
4284
  "SPAN",
4155
4285
  "DIV"
4156
- ]), Ho = /* @__PURE__ */ new Set([
4286
+ ]), is = /* @__PURE__ */ new Set([
4157
4287
  "SCRIPT",
4158
4288
  "STYLE",
4159
4289
  "IFRAME",
@@ -4161,40 +4291,40 @@ var Vo = /* @__PURE__ */ new Set([
4161
4291
  "EMBED",
4162
4292
  "NOSCRIPT",
4163
4293
  "TEMPLATE"
4164
- ]), Uo = { A: /* @__PURE__ */ new Set(["href", "title"]) };
4165
- function Wo(e) {
4294
+ ]), as = { A: /* @__PURE__ */ new Set(["href", "title"]) };
4295
+ function os(e) {
4166
4296
  let t = e.trim().toLowerCase();
4167
4297
  return t.startsWith("http://") || t.startsWith("https://") || t.startsWith("mailto:") || t.startsWith("tel:") || t.startsWith("/") || t.startsWith("#") || t === "";
4168
4298
  }
4169
- function Go(e) {
4299
+ function ss(e) {
4170
4300
  if (e.nodeType !== Node.ELEMENT_NODE) return;
4171
4301
  let t = e, n = t.tagName.toUpperCase();
4172
- if (!Vo.has(n)) {
4173
- Ho.has(n) ? t.remove() : t.replaceWith(document.createTextNode(t.textContent ?? ""));
4302
+ if (!rs.has(n)) {
4303
+ is.has(n) ? t.remove() : t.replaceWith(document.createTextNode(t.textContent ?? ""));
4174
4304
  return;
4175
4305
  }
4176
- let r = Uo[n] ?? /* @__PURE__ */ new Set();
4306
+ let r = as[n] ?? /* @__PURE__ */ new Set();
4177
4307
  for (let e of Array.from(t.attributes)) {
4178
4308
  if (!r.has(e.name.toLowerCase())) {
4179
4309
  t.removeAttribute(e.name);
4180
4310
  continue;
4181
4311
  }
4182
- n === "A" && e.name.toLowerCase() === "href" && !Wo(e.value) && t.removeAttribute(e.name);
4312
+ n === "A" && e.name.toLowerCase() === "href" && !os(e.value) && t.removeAttribute(e.name);
4183
4313
  }
4184
4314
  n === "A" && t.hasAttribute("href") && (t.setAttribute("rel", "noopener noreferrer"), t.setAttribute("target", "_blank"));
4185
- for (let e of Array.from(t.childNodes)) Go(e);
4315
+ for (let e of Array.from(t.childNodes)) ss(e);
4186
4316
  }
4187
- function Ko(e) {
4317
+ function cs(e) {
4188
4318
  if (!e) return "";
4189
4319
  let t = new DOMParser().parseFromString(`<div>${e}</div>`, "text/html").body.firstElementChild;
4190
4320
  if (!t) return "";
4191
- for (let e of Array.from(t.childNodes)) Go(e);
4321
+ for (let e of Array.from(t.childNodes)) ss(e);
4192
4322
  return t.innerHTML;
4193
4323
  }
4194
4324
  //#endregion
4195
4325
  //#region src/utils/format.ts
4196
4326
  var $ = "—";
4197
- function qo(e, t = 4) {
4327
+ function ls(e, t = 4) {
4198
4328
  if (e == null || typeof e == "string" && e.trim() === "") return $;
4199
4329
  let n = typeof e == "string" ? Number(e) : e;
4200
4330
  return isFinite(n) ? n.toLocaleString(void 0, {
@@ -4202,12 +4332,12 @@ function qo(e, t = 4) {
4202
4332
  maximumFractionDigits: t
4203
4333
  }) : $;
4204
4334
  }
4205
- function Jo(e) {
4335
+ function us(e) {
4206
4336
  if (e == null || e === "") return $;
4207
4337
  let t = new Date(e);
4208
4338
  return isNaN(t.getTime()) ? String(e) : t.toLocaleString();
4209
4339
  }
4210
- function Yo(e) {
4340
+ function ds(e) {
4211
4341
  return new Date(e).toLocaleString(void 0, {
4212
4342
  month: "short",
4213
4343
  day: "numeric",
@@ -4215,13 +4345,13 @@ function Yo(e) {
4215
4345
  minute: "2-digit"
4216
4346
  });
4217
4347
  }
4218
- function Xo(e) {
4348
+ function fs(e) {
4219
4349
  return new Date(e).toLocaleDateString(void 0, {
4220
4350
  month: "short",
4221
4351
  day: "numeric"
4222
4352
  });
4223
4353
  }
4224
- function Zo(e) {
4354
+ function ps(e) {
4225
4355
  try {
4226
4356
  return new Date(e).toLocaleString(void 0, {
4227
4357
  year: "numeric",
@@ -4237,7 +4367,7 @@ function Zo(e) {
4237
4367
  return String(e);
4238
4368
  }
4239
4369
  }
4240
- function Qo(e) {
4370
+ function ms(e) {
4241
4371
  if (!isFinite(e) || e === 0) return e.toFixed(2);
4242
4372
  let t = Math.abs(e), n = 2;
4243
4373
  return t < 1e-4 ? n = 8 : t < .01 ? n = 6 : t < 1 ? n = 4 : t < 100 && (n = 3), e.toLocaleString(void 0, {
@@ -4245,13 +4375,13 @@ function Qo(e) {
4245
4375
  maximumFractionDigits: n
4246
4376
  });
4247
4377
  }
4248
- function $o(e, t = 2) {
4378
+ function hs(e, t = 2) {
4249
4379
  return `${e >= 0 ? "+" : ""}${e.toFixed(t)}%`;
4250
4380
  }
4251
- function es(e) {
4381
+ function gs(e) {
4252
4382
  return `${e < 0 ? "-" : "+"}$${Math.abs(e).toFixed(2)}`;
4253
4383
  }
4254
- function ts(e, t = 2, n = "$") {
4384
+ function _s(e, t = 2, n = "$") {
4255
4385
  if (e == null || typeof e == "string" && e.trim() === "") return $;
4256
4386
  let r = typeof e == "string" ? Number(e) : e;
4257
4387
  if (!isFinite(r)) return $;
@@ -4261,7 +4391,29 @@ function ts(e, t = 2, n = "$") {
4261
4391
  });
4262
4392
  return `${r < 0 && Number(Math.abs(r).toFixed(t)) !== 0 ? "-" : ""}${n}${i}`;
4263
4393
  }
4264
- function ns(e) {
4394
+ var vs = {
4395
+ EUR: "€",
4396
+ GBP: "£"
4397
+ }, ys = /* @__PURE__ */ new Set([
4398
+ "USD",
4399
+ "USDT",
4400
+ "USDC"
4401
+ ]);
4402
+ function bs(e) {
4403
+ let t = (e ?? "").trim().toUpperCase();
4404
+ return !t || ys.has(t) ? "$" : vs[t] ?? null;
4405
+ }
4406
+ function xs(e, t, n = 2) {
4407
+ let r = (t ?? "").trim().toUpperCase(), i = bs(r);
4408
+ if (i !== null) {
4409
+ let t = _s(e, n, i);
4410
+ return r && r !== "USD" && ys.has(r) && t !== $ ? `${t} ${r}` : t;
4411
+ }
4412
+ if (e == null || typeof e == "string" && e.trim() === "") return $;
4413
+ let a = typeof e == "string" ? Number(e) : e;
4414
+ return isFinite(a) ? `${a.toLocaleString(void 0, { maximumFractionDigits: 8 })} ${r}` : $;
4415
+ }
4416
+ function Ss(e) {
4265
4417
  if (e == null || e === "") return $;
4266
4418
  let t = new Date(e);
4267
4419
  return isNaN(t.getTime()) ? String(e) : t.toLocaleDateString("en-US", {
@@ -4270,7 +4422,7 @@ function ns(e) {
4270
4422
  day: "numeric"
4271
4423
  });
4272
4424
  }
4273
- function rs(e) {
4425
+ function Cs(e) {
4274
4426
  if (e == null || e === "") return $;
4275
4427
  let t = new Date(e);
4276
4428
  return isNaN(t.getTime()) ? String(e) : t.toLocaleDateString("en-US", {
@@ -4281,22 +4433,22 @@ function rs(e) {
4281
4433
  minute: "2-digit"
4282
4434
  });
4283
4435
  }
4284
- function is(e) {
4436
+ function ws(e) {
4285
4437
  if (typeof e != "number" || !isFinite(e) || e <= 0) return "";
4286
4438
  let t = e / 1e3, n = t < 1 ? 3 : 2;
4287
4439
  return `= ${t.toFixed(n)} s`;
4288
4440
  }
4289
- function as(e) {
4441
+ function Ts(e) {
4290
4442
  return e ? e < 1024 ? `${e} B` : e < 1048576 ? `${(e / 1024).toFixed(1)} KB` : `${(e / 1048576).toFixed(1)} MB` : "";
4291
4443
  }
4292
- function os(e) {
4444
+ function Es(e) {
4293
4445
  try {
4294
4446
  return JSON.stringify(JSON.parse(e), null, 2);
4295
4447
  } catch {
4296
4448
  return e;
4297
4449
  }
4298
4450
  }
4299
- function ss(e) {
4451
+ function Ds(e) {
4300
4452
  if (e == null) return "";
4301
4453
  if (typeof e == "string") return e;
4302
4454
  try {
@@ -4305,14 +4457,14 @@ function ss(e) {
4305
4457
  return String(e);
4306
4458
  }
4307
4459
  }
4308
- function cs(e, t = 2) {
4460
+ function Os(e, t = 2) {
4309
4461
  if (e == null || !isFinite(e)) return $;
4310
4462
  let n = Math.floor(Math.max(0, e) / 6e4), r = Math.floor(n / 1440), i = Math.floor(n % 1440 / 60), a = n % 60, o = [];
4311
4463
  return r > 0 && o.push(`${r}d`), (r > 0 || i > 0) && o.push(`${i}h`), o.push(`${a}m`), o.slice(0, t).join(" ");
4312
4464
  }
4313
4465
  //#endregion
4314
4466
  //#region src/utils/validate.ts
4315
- function ls(e) {
4467
+ function ks(e) {
4316
4468
  let t = (e ?? "").trim();
4317
4469
  if (!t) return !1;
4318
4470
  try {
@@ -4322,7 +4474,7 @@ function ls(e) {
4322
4474
  return !1;
4323
4475
  }
4324
4476
  }
4325
- function us(e) {
4477
+ function As(e) {
4326
4478
  if (!e.trim()) return !0;
4327
4479
  try {
4328
4480
  return JSON.parse(e), !0;
@@ -4330,7 +4482,7 @@ function us(e) {
4330
4482
  return !1;
4331
4483
  }
4332
4484
  }
4333
- function ds(e) {
4485
+ function js(e) {
4334
4486
  if (!e.trim()) return !0;
4335
4487
  try {
4336
4488
  return !new DOMParser().parseFromString(e, "application/xml").getElementsByTagName("parsererror").length;
@@ -4338,7 +4490,7 @@ function ds(e) {
4338
4490
  return !1;
4339
4491
  }
4340
4492
  }
4341
- function fs(e) {
4493
+ function Ms(e) {
4342
4494
  if (!e.trim()) return !0;
4343
4495
  let t = e.replace(/\s+/g, "");
4344
4496
  if (!t) return !0;
@@ -4351,7 +4503,7 @@ function fs(e) {
4351
4503
  }
4352
4504
  //#endregion
4353
4505
  //#region src/utils/specForm.ts
4354
- function ps(e, t) {
4506
+ function Ns(e, t) {
4355
4507
  let n = {};
4356
4508
  if (!e) return n;
4357
4509
  for (let r of e) {
@@ -4360,7 +4512,7 @@ function ps(e, t) {
4360
4512
  }
4361
4513
  return n;
4362
4514
  }
4363
- function ms(e, t) {
4515
+ function Ps(e, t) {
4364
4516
  if (!e) return null;
4365
4517
  for (let n of e) if (n.type === "decimal" || n.type === "integer") {
4366
4518
  let e = t[n.key], r = e === "" || e == null;
@@ -4371,7 +4523,7 @@ function ms(e, t) {
4371
4523
  }
4372
4524
  //#endregion
4373
4525
  //#region src/utils/pnl.ts
4374
- function hs(e) {
4526
+ function Fs(e) {
4375
4527
  if (e.buyPrice == null || e.lastPrice == null || e.filledQty == null) return {
4376
4528
  pnlUsd: null,
4377
4529
  pnlPct: null
@@ -4386,4 +4538,4 @@ function hs(e) {
4386
4538
  };
4387
4539
  }
4388
4540
  //#endregion
4389
- export { B as AlertEnum, Or as BaseActionButton, Ve as BaseAlert, vr as BaseAppLayout, po as BaseAuthLayout, Ge as BaseBadge, Oo as BaseBadgeEnum, xa as BaseBarDistribution, go as BaseBooleanBadge, Ye as BaseBreadcrumb, it as BaseButton, G as BaseButtonEnum, K as BaseButtonSizeEnum, za as BaseCard, eo as BaseCheckbox, ti as BaseChipButton, li as BaseCodeBlock, Tn as BaseCollapsibleSection, kn as BaseConfirmModal, Ar as BaseCopyButton, oa as BaseCredentialsForm, Sa as BaseDateTimePicker, bo as BaseDetailList, vi as BaseDropdown, hr as BaseEntityPickerModal, Wa as BaseField, ci as BaseFileDropzone, Ui as BaseFilterChip, Pr as BaseGoogleSignInButton, di as BaseInput, lt as BaseLine, ut as BaseLoginEnum, Kr as BaseLoginForm, Nt as BaseLogo, q as BaseLogoEnum, Bt as BaseModal, Pt as BaseModalEnum, Sn as BaseModalShell, In as BaseNotFoundPage, $r as BaseNotificationPanel, Sr as BasePageHeader, ga as BasePillPickerModal, ni as BaseRemoveButton, Vt as BaseRow, ja as BaseSearchSelect, Si as BaseSegmentedControl, pi as BaseSelect, nr as BaseSidebar, oo as BaseSidebarUser, Ri as BaseSpecFields, Ht as BaseSpinner, Vi as BaseStatBreakdown, Ja as BaseStatCard, ai as BaseStatusPill, Ai as BaseTable, Nn as BaseTextInputModal, Gt as BaseToast, J as BaseToastEnum, Za as BaseToggle, Tr as BaseToolbarButton, qt as ColoredSquares, W as ColorsEnums, Xt as EarningsCard, tn as EuroAmount, at as LineEnum, sn as Pagination, Y as PositioningEnum, fn as TrendArrow, ps as buildSpecParams, hs as computePnL, ms as firstInvalidNumericSpec, as as fmtBytes, ns as fmtCalendarDate, rs as fmtCalendarDateTime, Jo as fmtDate, Xo as fmtDateShort, Yo as fmtDateTime, Zo as fmtDateTimeMs, cs as fmtDuration, ts as fmtMoney, is as fmtMsAsSeconds, qo as fmtNumber, $o as fmtPct, Qo as fmtPrice, es as fmtUsd, os as formatJson, ko as getBaseColor, Ao as getBaseColorOf, He as humanizeEnum, Ue as humanizeTextVNodes, Re as initTheme, Do as isAbortError, Wo as isSafeHref, ls as isValidAbsoluteUrl, fs as isValidBase64, us as isValidJson, ds as isValidXml, Po as methodBadgeBright, No as methodBadgeSolid, Io as methodBadgeTinted, Bo as rowKeyMissing, zo as rowValueMissing, Ko as sanitizeHtml, Lo as statusBadgeSoft, Fo as statusBadgeSolid, Ro as statusBadgeTinted, ss as stringifyValue, xo as useDebouncedRef, pn as useEscapeKey, wo as useFieldClasses, Eo as useLatestRequest, Rn as useMobileSidebar, Gn as useNotifications, To as usePolling, Co as useQueryParamSync, Hn as useSidebarCollapse, U as useTheme, X as useThemeClasses, So as useToast };
4541
+ export { B as AlertEnum, Or as BaseActionButton, Ve as BaseAlert, vr as BaseAppLayout, Do as BaseAuthLayout, Ge as BaseBadge, Wo as BaseBadgeEnum, xa as BaseBarDistribution, Ao as BaseBooleanBadge, Ye as BaseBreadcrumb, q as BaseButton, G as BaseButtonEnum, K as BaseButtonSizeEnum, $a as BaseCard, ho as BaseCheckbox, ti as BaseChipButton, li as BaseCodeBlock, Tn as BaseCollapsibleSection, kn as BaseConfirmModal, Ar as BaseCopyButton, oa as BaseCredentialsForm, Ia as BaseDateTimePicker, Po as BaseDetailList, vi as BaseDropdown, hr as BaseEntityPickerModal, io as BaseField, ci as BaseFileDropzone, Ui as BaseFilterChip, Pr as BaseGoogleSignInButton, Aa as BaseGroupedChecklist, Fa as BaseIdChip, di as BaseInput, ct as BaseLine, lt as BaseLoginEnum, Kr as BaseLoginForm, Mt as BaseLogo, J as BaseLogoEnum, zt as BaseModal, Nt as BaseModalEnum, Sn as BaseModalShell, In as BaseNotFoundPage, $r as BaseNotificationPanel, Sr as BasePageHeader, ga as BasePillPickerModal, ni as BaseRemoveButton, Bt as BaseRow, Ga as BaseSearchSelect, Si as BaseSegmentedControl, pi as BaseSelect, nr as BaseSidebar, xo as BaseSidebarUser, Ri as BaseSpecFields, Vt as BaseSpinner, Vi as BaseStatBreakdown, co as BaseStatCard, ai as BaseStatusPill, Ai as BaseTable, Nn as BaseTextInputModal, Gt as BaseToast, Y as BaseToastEnum, fo as BaseToggle, Tr as BaseToolbarButton, qt as ColoredSquares, W as ColorsEnums, Xt as EarningsCard, tn as EuroAmount, it as LineEnum, sn as Pagination, Ht as PositioningEnum, fn as TrendArrow, Ns as buildSpecParams, Fs as computePnL, bs as currencySymbol, Ps as firstInvalidNumericSpec, Ts as fmtBytes, Ss as fmtCalendarDate, Cs as fmtCalendarDateTime, xs as fmtCurrencyAmount, us as fmtDate, fs as fmtDateShort, ds as fmtDateTime, ps as fmtDateTimeMs, Os as fmtDuration, _s as fmtMoney, ws as fmtMsAsSeconds, ls as fmtNumber, hs as fmtPct, ms as fmtPrice, gs as fmtUsd, Es as formatJson, Go as getBaseColor, Ko as getBaseColorOf, He as humanizeEnum, Ue as humanizeTextVNodes, Re as initTheme, Vo as isAbortError, os as isSafeHref, ks as isValidAbsoluteUrl, Ms as isValidBase64, As as isValidJson, js as isValidXml, Xo as methodBadgeBright, Yo as methodBadgeSolid, Qo as methodBadgeTinted, ns as rowKeyMissing, ts as rowValueMissing, cs as sanitizeHtml, Ho as stableStringify, $o as statusBadgeSoft, Zo as statusBadgeSolid, es as statusBadgeTinted, Ds as stringifyValue, Fo as useDebouncedRef, Uo as useDirtyState, pn as useEscapeKey, Ro as useFieldClasses, Bo as useLatestRequest, Rn as useMobileSidebar, Gn as useNotifications, zo as usePolling, Lo as useQueryParamSync, Hn as useSidebarCollapse, U as useTheme, X as useThemeClasses, Io as useToast };