mgv-backoffice 1.30.0 → 1.31.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/README.md +29 -0
- package/dist/composables/useFieldClasses.d.ts +29 -0
- package/dist/index.d.ts +6 -2
- package/dist/ui-lib.css +1 -1
- package/dist/ui-lib.js +373 -316
- package/dist/ui-lib.umd.cjs +1 -1
- package/dist/utils/format.d.ts +23 -0
- package/dist/utils/httpColors.d.ts +13 -0
- package/dist/utils/kvRows.d.ts +21 -0
- package/package.json +1 -1
- package/src/composables/useFieldClasses.test.ts +55 -0
- package/src/composables/useFieldClasses.ts +56 -0
- package/src/index.ts +10 -0
- package/src/utils/format.test.ts +55 -0
- package/src/utils/format.ts +57 -0
- package/src/utils/httpColors.test.ts +38 -0
- package/src/utils/httpColors.ts +31 -0
- package/src/utils/kvRows.test.ts +47 -0
- package/src/utils/kvRows.ts +34 -0
package/dist/ui-lib.js
CHANGED
|
@@ -452,52 +452,52 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
452
452
|
], 10, He));
|
|
453
453
|
};
|
|
454
454
|
}
|
|
455
|
-
}),
|
|
455
|
+
}), Ke = /* @__PURE__ */ function(e) {
|
|
456
456
|
return e.BASE = "BASE", e.BASE_SHORTER = "BASE_SHORTER", e.SQUARE = "SQUARE", e;
|
|
457
|
-
}({}),
|
|
457
|
+
}({}), qe = {
|
|
458
458
|
key: 0,
|
|
459
459
|
class: "h-px my-8 bg-gray-200 border-0 dark:bg-gray-700"
|
|
460
|
-
},
|
|
460
|
+
}, Je = {
|
|
461
461
|
key: 1,
|
|
462
462
|
class: "w-48 h-1 mx-auto my-4 bg-gray-100 border-0 rounded md:my-10 dark:bg-gray-700"
|
|
463
|
-
},
|
|
463
|
+
}, Ye = {
|
|
464
464
|
key: 2,
|
|
465
465
|
class: "w-8 h-8 mx-auto my-8 bg-gray-200 border-0 rounded md:my-12 dark:bg-gray-700"
|
|
466
|
-
},
|
|
466
|
+
}, Xe = /* @__PURE__ */ d({
|
|
467
467
|
__name: "BaseLine",
|
|
468
468
|
props: { mode: {
|
|
469
469
|
type: String,
|
|
470
470
|
required: !1,
|
|
471
|
-
default:
|
|
471
|
+
default: Ke.BASE
|
|
472
472
|
} },
|
|
473
473
|
setup(t) {
|
|
474
474
|
return (n, r) => (y(), o(e, null, [
|
|
475
|
-
t.mode === D(
|
|
476
|
-
t.mode === D(
|
|
477
|
-
t.mode === D(
|
|
475
|
+
t.mode === D(Ke).BASE ? (y(), o("hr", qe)) : a("", !0),
|
|
476
|
+
t.mode === D(Ke).BASE_SHORTER ? (y(), o("hr", Je)) : a("", !0),
|
|
477
|
+
t.mode === D(Ke).SQUARE ? (y(), o("hr", Ye)) : a("", !0)
|
|
478
478
|
], 64));
|
|
479
479
|
}
|
|
480
|
-
}),
|
|
480
|
+
}), W = /* @__PURE__ */ function(e) {
|
|
481
481
|
return e.SMALL = "SMALL", e.MEDIUM = "MEDIUM", e.LARGE = "LARGE", e;
|
|
482
|
-
}({}),
|
|
482
|
+
}({}), Ze = W, Qe = ["height", "width"], $e = /* @__PURE__ */ d({
|
|
483
483
|
__name: "BaseLogo",
|
|
484
484
|
props: { size: {
|
|
485
485
|
type: String,
|
|
486
486
|
required: !1,
|
|
487
|
-
default:
|
|
487
|
+
default: W.MEDIUM
|
|
488
488
|
} },
|
|
489
489
|
setup(e) {
|
|
490
490
|
let t = e;
|
|
491
491
|
function n() {
|
|
492
492
|
let e = "";
|
|
493
493
|
switch (t.size) {
|
|
494
|
-
case
|
|
494
|
+
case W.SMALL:
|
|
495
495
|
e = "50px";
|
|
496
496
|
break;
|
|
497
|
-
case
|
|
497
|
+
case W.MEDIUM:
|
|
498
498
|
e = "100px";
|
|
499
499
|
break;
|
|
500
|
-
case
|
|
500
|
+
case W.LARGE:
|
|
501
501
|
e = "150px";
|
|
502
502
|
break;
|
|
503
503
|
}
|
|
@@ -659,23 +659,23 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
659
659
|
d: "m281.7 183.8h3.6v18.5h-3.6z",
|
|
660
660
|
fill: "url(#k)"
|
|
661
661
|
}, null, -1)
|
|
662
|
-
]], 8,
|
|
662
|
+
]], 8, Qe))]),
|
|
663
663
|
_: 1
|
|
664
664
|
});
|
|
665
665
|
};
|
|
666
666
|
}
|
|
667
|
-
}),
|
|
667
|
+
}), et = /* @__PURE__ */ function(e) {
|
|
668
668
|
return e.DELETE = "DELETE", e.SUCCESS = "SUCCESS", e;
|
|
669
|
-
}({}),
|
|
669
|
+
}({}), tt = {
|
|
670
670
|
key: 0,
|
|
671
671
|
class: "p-6 text-center"
|
|
672
|
-
},
|
|
672
|
+
}, nt = { class: "flex justify-center" }, rt = {
|
|
673
673
|
key: 1,
|
|
674
674
|
class: "p-6 text-center"
|
|
675
|
-
},
|
|
675
|
+
}, it = {
|
|
676
676
|
key: 0,
|
|
677
677
|
class: "mb-5 text-sm text-gray-500"
|
|
678
|
-
},
|
|
678
|
+
}, at = { class: "flex justify-center" }, ot = /* @__PURE__ */ d({
|
|
679
679
|
__name: "BaseModal",
|
|
680
680
|
props: {
|
|
681
681
|
title: {
|
|
@@ -694,7 +694,7 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
694
694
|
mode: {
|
|
695
695
|
type: String,
|
|
696
696
|
required: !1,
|
|
697
|
-
default:
|
|
697
|
+
default: et.SUCCESS
|
|
698
698
|
}
|
|
699
699
|
},
|
|
700
700
|
emits: ["closeModal", "confirmModal"],
|
|
@@ -715,13 +715,13 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
715
715
|
role: "dialog",
|
|
716
716
|
"aria-modal": "true",
|
|
717
717
|
"aria-labelledby": i
|
|
718
|
-
}, [t.mode === D(
|
|
718
|
+
}, [t.mode === D(et).DELETE ? (y(), o("div", tt, [
|
|
719
719
|
u(D(me), { class: "w-12 h-12 text-gray-400 mx-auto mb-4" }),
|
|
720
720
|
s("h3", {
|
|
721
721
|
id: i,
|
|
722
722
|
class: "mb-5 text-lg font-normal text-gray-500 dark:text-gray-400"
|
|
723
723
|
}, " Are you sure you want to delete this " + E(t.title) + "? ", 1),
|
|
724
|
-
s("div",
|
|
724
|
+
s("div", nt, [u(U, {
|
|
725
725
|
color: D(V).RED,
|
|
726
726
|
onClick: r[1] ||= (e) => n.$emit("confirmModal"),
|
|
727
727
|
description: "Yes, I'm sure"
|
|
@@ -730,22 +730,22 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
730
730
|
onClick: r[2] ||= (e) => n.$emit("closeModal"),
|
|
731
731
|
description: "No, cancel"
|
|
732
732
|
}, null, 8, ["color"])])
|
|
733
|
-
])) : (y(), o("div",
|
|
733
|
+
])) : (y(), o("div", rt, [
|
|
734
734
|
u(D(oe), { class: "w-12 h-12 text-green-500 mx-auto mb-4" }),
|
|
735
735
|
s("h3", {
|
|
736
736
|
id: i,
|
|
737
737
|
class: "mb-2 text-lg font-medium text-gray-900"
|
|
738
738
|
}, E(t.title), 1),
|
|
739
|
-
t.description ? (y(), o("p",
|
|
739
|
+
t.description ? (y(), o("p", it, E(t.description), 1)) : a("", !0),
|
|
740
740
|
C(n.$slots, "default"),
|
|
741
|
-
s("div",
|
|
741
|
+
s("div", at, [u(U, {
|
|
742
742
|
color: D(V).BLUE,
|
|
743
743
|
onClick: r[3] ||= (e) => n.$emit("closeModal"),
|
|
744
744
|
description: "OK"
|
|
745
745
|
}, null, 8, ["color"])])
|
|
746
746
|
]))])], 64));
|
|
747
747
|
}
|
|
748
|
-
}),
|
|
748
|
+
}), st = /* @__PURE__ */ d({
|
|
749
749
|
__name: "BaseRow",
|
|
750
750
|
props: { bgColor: {
|
|
751
751
|
type: String,
|
|
@@ -759,7 +759,7 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
759
759
|
}
|
|
760
760
|
return (e, t) => (y(), o("div", { class: m(n()) }, [C(e.$slots, "default")], 2));
|
|
761
761
|
}
|
|
762
|
-
}),
|
|
762
|
+
}), ct = /* @__PURE__ */ d({
|
|
763
763
|
__name: "BaseSpinner",
|
|
764
764
|
props: {
|
|
765
765
|
size: { default: "sm" },
|
|
@@ -787,11 +787,11 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
787
787
|
"aria-label": "Loading"
|
|
788
788
|
}, null, 2));
|
|
789
789
|
}
|
|
790
|
-
}),
|
|
790
|
+
}), G = /* @__PURE__ */ function(e) {
|
|
791
791
|
return e.SUCCESS = "SUCCESS", e.WARNING = "WARNING", e.ERROR = "ERROR", e;
|
|
792
|
-
}({}),
|
|
792
|
+
}({}), K = /* @__PURE__ */ function(e) {
|
|
793
793
|
return e.TOP_LEFT = "TOP_LEFT", e.TOP_RIGHT = "TOP_RIGHT", e.BOTTOM_LEFT = "BOTTOM_LEFT", e.BOTTOM_RIGHT = "BOTTOM_RIGHT", e;
|
|
794
|
-
}({}),
|
|
794
|
+
}({}), lt = { 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" }, ut = { class: "ml-3 text-sm font-normal" }, dt = /* @__PURE__ */ d({
|
|
795
795
|
__name: "BaseToast",
|
|
796
796
|
props: {
|
|
797
797
|
mode: {
|
|
@@ -810,7 +810,7 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
810
810
|
positioning: {
|
|
811
811
|
type: String,
|
|
812
812
|
required: !1,
|
|
813
|
-
default:
|
|
813
|
+
default: K.TOP_RIGHT
|
|
814
814
|
},
|
|
815
815
|
duration: {
|
|
816
816
|
type: Number,
|
|
@@ -831,13 +831,13 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
831
831
|
function c() {
|
|
832
832
|
let e = "";
|
|
833
833
|
switch (t.mode) {
|
|
834
|
-
case
|
|
834
|
+
case G.ERROR:
|
|
835
835
|
e = "text-red-500 bg-red-100 dark:bg-red-800 dark:text-red-200";
|
|
836
836
|
break;
|
|
837
|
-
case
|
|
837
|
+
case G.SUCCESS:
|
|
838
838
|
e = "text-green-500 bg-green-100 dark:bg-green-800 dark:text-green-200";
|
|
839
839
|
break;
|
|
840
|
-
case
|
|
840
|
+
case G.WARNING:
|
|
841
841
|
e = "text-orange-500 bg-orange-100 dark:bg-orange-700 dark:text-orange-200";
|
|
842
842
|
break;
|
|
843
843
|
default:
|
|
@@ -849,16 +849,16 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
849
849
|
function l() {
|
|
850
850
|
let e = "top-5 right-5";
|
|
851
851
|
switch (t.positioning) {
|
|
852
|
-
case
|
|
852
|
+
case K.BOTTOM_LEFT:
|
|
853
853
|
e = "bottom-5 left-5";
|
|
854
854
|
break;
|
|
855
|
-
case
|
|
855
|
+
case K.TOP_LEFT:
|
|
856
856
|
e = "top-5 left-5";
|
|
857
857
|
break;
|
|
858
|
-
case
|
|
858
|
+
case K.TOP_RIGHT:
|
|
859
859
|
e = "top-5 right-5";
|
|
860
860
|
break;
|
|
861
|
-
case
|
|
861
|
+
case K.BOTTOM_RIGHT:
|
|
862
862
|
e = "bottom-5 right-5";
|
|
863
863
|
break;
|
|
864
864
|
}
|
|
@@ -869,18 +869,18 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
869
869
|
id: "toast-top-right",
|
|
870
870
|
class: m(l()),
|
|
871
871
|
role: "alert"
|
|
872
|
-
}, [s("div",
|
|
873
|
-
e.mode == D(
|
|
872
|
+
}, [s("div", lt, [
|
|
873
|
+
e.mode == D(G).ERROR ? (y(), o("div", {
|
|
874
874
|
key: 0,
|
|
875
875
|
class: m(c())
|
|
876
|
-
}, [u(D(me), { class: "h-6 w-6 text-red-500" }), r[0] ||= s("span", { class: "sr-only" }, "Error icon", -1)], 2)) : e.mode == D(
|
|
876
|
+
}, [u(D(me), { class: "h-6 w-6 text-red-500" }), r[0] ||= s("span", { class: "sr-only" }, "Error icon", -1)], 2)) : e.mode == D(G).SUCCESS ? (y(), o("div", {
|
|
877
877
|
key: 1,
|
|
878
878
|
class: m(c())
|
|
879
|
-
}, [u(D(oe), { class: "h-6 w-6 text-green-500" }), r[1] ||= s("span", { class: "sr-only" }, "Check icon", -1)], 2)) : e.mode == D(
|
|
879
|
+
}, [u(D(oe), { class: "h-6 w-6 text-green-500" }), r[1] ||= s("span", { class: "sr-only" }, "Check icon", -1)], 2)) : e.mode == D(G).WARNING ? (y(), o("div", {
|
|
880
880
|
key: 2,
|
|
881
881
|
class: m(c())
|
|
882
882
|
}, [u(D(he), { class: "h-6 w-6 text-yellow-500" }), r[2] ||= s("span", { class: "sr-only" }, "Warning icon", -1)], 2)) : a("", !0),
|
|
883
|
-
s("div",
|
|
883
|
+
s("div", ut, E(e.description), 1),
|
|
884
884
|
e.hasCloseIcon ? (y(), o("button", {
|
|
885
885
|
key: 3,
|
|
886
886
|
type: "button",
|
|
@@ -890,7 +890,7 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
890
890
|
}, [r[3] ||= s("span", { class: "sr-only" }, "Close", -1), u(D(Se), { class: "h-6 w-6 text-gray-500" })])) : a("", !0)
|
|
891
891
|
])], 2)) : a("", !0);
|
|
892
892
|
}
|
|
893
|
-
}),
|
|
893
|
+
}), ft = { class: "w-13" }, pt = /* @__PURE__ */ d({
|
|
894
894
|
__name: "ColoredSquares",
|
|
895
895
|
props: { color: {
|
|
896
896
|
type: String,
|
|
@@ -927,9 +927,9 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
927
927
|
}
|
|
928
928
|
return "font-bold text-xs mr-2 px-2.5 py-0.5 rounded-full bg-" + e + "-100 text-" + e + "-800";
|
|
929
929
|
}
|
|
930
|
-
return (e, t) => (y(), o("div",
|
|
930
|
+
return (e, t) => (y(), o("div", ft, [s("div", { class: m(["border border-gray-300 relative aspect-square rounded-lg bg-white shadow-sm overflow-hidden flex items-center justify-center text-center", i()]) }, [C(e.$slots, "default"), s("div", { class: m(["absolute bottom-0 left-0 h-1 w-full", r.value]) }, null, 2)], 2)]));
|
|
931
931
|
}
|
|
932
|
-
}),
|
|
932
|
+
}), mt = { class: "flex items-start justify-between" }, ht = { class: "min-w-0" }, gt = /* @__PURE__ */ d({
|
|
933
933
|
__name: "EarningsCard",
|
|
934
934
|
props: {
|
|
935
935
|
title: { default: "TOTAL EARNINGS" },
|
|
@@ -984,7 +984,7 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
984
984
|
return (n, r) => (y(), o("div", { class: m(["relative rounded-xl border-2 border-dashed bg-white dark:bg-slate-800", [d.value.border, t.compact ? "p-3" : "p-6"]]) }, [t.badge ? (y(), o("div", {
|
|
985
985
|
key: 0,
|
|
986
986
|
class: m(["absolute right-4 top-4 rounded-md px-3 py-1 text-xs font-bold tracking-wide", d.value.badge])
|
|
987
|
-
}, E(t.badge), 3)) : a("", !0), s("div",
|
|
987
|
+
}, E(t.badge), 3)) : a("", !0), s("div", mt, [s("div", ht, [
|
|
988
988
|
s("p", { class: m(["font-bold tracking-wide text-gray-800 dark:text-slate-200", t.compact ? "pr-8 text-xs" : "text-sm"]) }, E(t.title), 3),
|
|
989
989
|
s("p", { class: m(["mt-1 font-bold truncate", [d.value.amount, t.compact ? "text-lg" : "text-4xl"]]) }, E(f.value), 3),
|
|
990
990
|
s("p", { class: m(["mt-1 font-medium", [d.value.subtitle, t.compact ? "text-xs" : "text-sm"]]) }, E(t.subtitle), 3)
|
|
@@ -998,10 +998,10 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
998
998
|
"stroke-linejoin": "round"
|
|
999
999
|
}, [l.value ? (y(), o(e, { key: 0 }, [r[0] ||= s("polyline", { points: "22 17 13.5 8.5 8.5 13.5 2 7" }, null, -1), r[1] ||= s("polyline", { points: "16 17 22 17 22 11" }, null, -1)], 64)) : (y(), o(e, { key: 1 }, [r[2] ||= s("polyline", { points: "22 7 13.5 15.5 8.5 10.5 2 17" }, null, -1), r[3] ||= s("polyline", { points: "16 7 22 7 22 13" }, null, -1)], 64))], 2))], 2)])], 2));
|
|
1000
1000
|
}
|
|
1001
|
-
}),
|
|
1001
|
+
}), _t = {
|
|
1002
1002
|
key: 0,
|
|
1003
1003
|
class: "font-bold text-green-800 dark:text-green-400"
|
|
1004
|
-
},
|
|
1004
|
+
}, vt = { key: 0 }, yt = { key: 0 }, bt = "font-bold", xt = /* @__PURE__ */ d({
|
|
1005
1005
|
__name: "EuroAmount",
|
|
1006
1006
|
props: {
|
|
1007
1007
|
amount: {
|
|
@@ -1021,20 +1021,20 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
1021
1021
|
},
|
|
1022
1022
|
setup(t) {
|
|
1023
1023
|
let n = t, i = r(() => n.amount !== null && n.amount !== void 0), s = r(() => i.value && n.amount < 0), c = r(() => n.beforeAmount === null || n.beforeAmount === void 0 ? !1 : n.amount < n.beforeAmount), u = r(() => s.value || c.value), d = r(() => !s.value && !c.value && !(n.beforeAmount === null || n.beforeAmount === void 0));
|
|
1024
|
-
return (n, r) => (y(), o(e, null, [i.value && d.value ? (y(), o("span",
|
|
1024
|
+
return (n, r) => (y(), o(e, null, [i.value && d.value ? (y(), o("span", _t, [l(E(t.amount) + " ", 1), t.showCurrency ? (y(), o("span", vt, "€")) : a("", !0)])) : a("", !0), i.value && !d.value ? (y(), o("span", {
|
|
1025
1025
|
key: 1,
|
|
1026
|
-
class: m([
|
|
1027
|
-
}, [l(E(t.amount) + " ", 1), t.showCurrency ? (y(), o("span",
|
|
1026
|
+
class: m([bt, u.value ? "text-red-800 dark:text-red-400" : "text-gray-800 dark:text-gray-200"])
|
|
1027
|
+
}, [l(E(t.amount) + " ", 1), t.showCurrency ? (y(), o("span", yt, "€")) : a("", !0)], 2)) : a("", !0)], 64));
|
|
1028
1028
|
}
|
|
1029
|
-
}),
|
|
1029
|
+
}), St = { "aria-label": "Pagination" }, Ct = { class: "flex list-none p-0 m-0" }, wt = [
|
|
1030
1030
|
"aria-current",
|
|
1031
1031
|
"aria-label",
|
|
1032
1032
|
"onClick"
|
|
1033
|
-
],
|
|
1033
|
+
], Tt = {
|
|
1034
1034
|
key: 1,
|
|
1035
1035
|
"aria-hidden": "true",
|
|
1036
1036
|
class: "inline-block border border-gray-300 dark:border-gray-600 rounded-lg p-3 text-black dark:text-gray-200 cursor-not-allowed"
|
|
1037
|
-
},
|
|
1037
|
+
}, Et = /* @__PURE__ */ d({
|
|
1038
1038
|
__name: "Pagination",
|
|
1039
1039
|
props: {
|
|
1040
1040
|
totalItems: {
|
|
@@ -1064,28 +1064,28 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
1064
1064
|
}
|
|
1065
1065
|
return M(() => [r.totalItems, r.itemsPerPage], () => {
|
|
1066
1066
|
a.value = Math.ceil(r.totalItems / r.itemsPerPage), i.value > a.value && (i.value = Math.max(1, a.value)), u(i.value);
|
|
1067
|
-
}, { immediate: !0 }), (t, n) => (y(), o("nav",
|
|
1067
|
+
}, { immediate: !0 }), (t, n) => (y(), o("nav", St, [s("ul", Ct, [(y(!0), o(e, null, S(c.value, (e, t) => (y(), o("li", {
|
|
1068
1068
|
key: t,
|
|
1069
1069
|
class: "mr-1"
|
|
1070
|
-
}, [e === 0 ? (y(), o("span",
|
|
1070
|
+
}, [e === 0 ? (y(), o("span", Tt, "...")) : (y(), o("button", {
|
|
1071
1071
|
key: 0,
|
|
1072
1072
|
type: "button",
|
|
1073
1073
|
"aria-current": e === i.value ? "page" : void 0,
|
|
1074
1074
|
"aria-label": `Go to page ${e}`,
|
|
1075
1075
|
onClick: (t) => d(e),
|
|
1076
1076
|
class: m(["inline-block min-w-[44px] border border-gray-300 dark:border-gray-600 rounded-lg p-3 text-black dark:text-gray-200 cursor-pointer transition-colors hover:bg-gray-300 dark:hover:bg-gray-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", { "active font-bold bg-gray-200 dark:bg-gray-700": e === i.value }])
|
|
1077
|
-
}, E(e), 11,
|
|
1077
|
+
}, E(e), 11, wt))]))), 128))])]));
|
|
1078
1078
|
}
|
|
1079
|
-
}),
|
|
1079
|
+
}), Dt = { key: 0 }, Ot = {
|
|
1080
1080
|
key: 0,
|
|
1081
1081
|
class: "flex items-center space-x-2"
|
|
1082
|
-
},
|
|
1082
|
+
}, kt = {
|
|
1083
1083
|
key: 1,
|
|
1084
1084
|
class: "flex items-center space-x-2"
|
|
1085
|
-
},
|
|
1085
|
+
}, At = {
|
|
1086
1086
|
key: 2,
|
|
1087
1087
|
class: "flex items-center space-x-2"
|
|
1088
|
-
},
|
|
1088
|
+
}, jt = /* @__PURE__ */ d({
|
|
1089
1089
|
__name: "TrendArrow",
|
|
1090
1090
|
props: {
|
|
1091
1091
|
number: {
|
|
@@ -1099,13 +1099,13 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
1099
1099
|
},
|
|
1100
1100
|
setup(e) {
|
|
1101
1101
|
let t = e, n = r(() => t.number !== null && t.number !== void 0 && t.number < 0), i = r(() => t.number === 0);
|
|
1102
|
-
return (r, s) => e.number !== null && e.number !== void 0 ? (y(), o("div",
|
|
1102
|
+
return (r, s) => e.number !== null && e.number !== void 0 ? (y(), o("div", Dt, [n.value ? (y(), o("span", Ot, [u(Ne, { color: D(B).RED }, {
|
|
1103
1103
|
default: N(() => [l(E(e.number) + E(t.icon), 1)]),
|
|
1104
1104
|
_: 1
|
|
1105
|
-
}, 8, ["color"]), u(D(ne), { class: "h-5 w-5 text-red-500" })])) : i.value ? (y(), o("span",
|
|
1105
|
+
}, 8, ["color"]), u(D(ne), { class: "h-5 w-5 text-red-500" })])) : i.value ? (y(), o("span", kt, [u(Ne, { color: D(B).GRAY }, {
|
|
1106
1106
|
default: N(() => [l(E(e.number) + E(t.icon), 1)]),
|
|
1107
1107
|
_: 1
|
|
1108
|
-
}, 8, ["color"]), u(D(ye), { class: "h-5 w-5 text-gray-400" })])) : (y(), o("span",
|
|
1108
|
+
}, 8, ["color"]), u(D(ye), { class: "h-5 w-5 text-gray-400" })])) : (y(), o("span", At, [u(Ne, { color: D(B).GREEN }, {
|
|
1109
1109
|
default: N(() => [l(E(e.number) + E(t.icon), 1)]),
|
|
1110
1110
|
_: 1
|
|
1111
1111
|
}, 8, ["color"]), u(D(re), { class: "h-5 w-5 text-green-500" })]))])) : a("", !0);
|
|
@@ -1113,7 +1113,7 @@ var ke = { class: "min-w-0 flex-1" }, Ae = {
|
|
|
1113
1113
|
});
|
|
1114
1114
|
//#endregion
|
|
1115
1115
|
//#region src/composables/useThemeClasses.ts
|
|
1116
|
-
function
|
|
1116
|
+
function q() {
|
|
1117
1117
|
let { isDark: e } = z();
|
|
1118
1118
|
return {
|
|
1119
1119
|
card: r(() => e.value ? "bg-gray-800 border-gray-700" : "bg-white border-gray-200"),
|
|
@@ -1141,7 +1141,7 @@ function J() {
|
|
|
1141
1141
|
}
|
|
1142
1142
|
//#endregion
|
|
1143
1143
|
//#region src/composables/useEscapeKey.ts
|
|
1144
|
-
function
|
|
1144
|
+
function J(e) {
|
|
1145
1145
|
function t(t) {
|
|
1146
1146
|
t.key === "Escape" && e();
|
|
1147
1147
|
}
|
|
@@ -1149,7 +1149,7 @@ function Y(e) {
|
|
|
1149
1149
|
}
|
|
1150
1150
|
//#endregion
|
|
1151
1151
|
//#region src/components/BaseModalShell.vue?vue&type=script&setup=true&lang.ts
|
|
1152
|
-
var
|
|
1152
|
+
var Mt = { class: "flex items-start gap-4 min-w-0" }, Nt = { class: "flex-1 min-w-0" }, Pt = { class: "p-6 overflow-y-auto flex-1" }, Ft = { class: "p-6" }, It = { class: "flex items-start gap-4" }, Lt = { class: "flex-1" }, Rt = { class: "mt-4" }, zt = { class: "mt-6 flex gap-3 justify-end" }, Bt = /* @__PURE__ */ d({
|
|
1153
1153
|
__name: "BaseModalShell",
|
|
1154
1154
|
props: {
|
|
1155
1155
|
title: {},
|
|
@@ -1166,11 +1166,11 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1166
1166
|
},
|
|
1167
1167
|
emits: ["cancel", "backdrop"],
|
|
1168
1168
|
setup(e, { emit: n }) {
|
|
1169
|
-
let c = e, l = n, { isDark: u } = z(), d =
|
|
1169
|
+
let c = e, l = n, { isDark: u } = z(), d = q(), f = `modal-title-${Math.random().toString(36).slice(2, 9)}`, p = r(() => u.value ? "bg-gray-900 border border-gray-700" : "bg-white border border-gray-200");
|
|
1170
1170
|
function h() {
|
|
1171
1171
|
l("backdrop"), c.manualClose || l("cancel");
|
|
1172
1172
|
}
|
|
1173
|
-
return
|
|
1173
|
+
return J(() => {
|
|
1174
1174
|
c.manualClose || l("cancel");
|
|
1175
1175
|
}), (n, r) => (y(), i(t, { to: "body" }, [s("div", {
|
|
1176
1176
|
class: "fixed inset-0 z-50 flex items-center justify-center bg-black/50",
|
|
@@ -1183,14 +1183,14 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1183
1183
|
class: m(["relative w-full mx-4 rounded-lg shadow-xl max-h-[90vh] flex flex-col", [e.maxWidthClass, p.value]]),
|
|
1184
1184
|
onClick: r[0] ||= F(() => {}, ["stop"])
|
|
1185
1185
|
}, [
|
|
1186
|
-
s("div", { class: m(["flex items-start justify-between gap-4 p-6 border-b shrink-0", D(d).border]) }, [s("div",
|
|
1186
|
+
s("div", { class: m(["flex items-start justify-between gap-4 p-6 border-b shrink-0", D(d).border]) }, [s("div", Mt, [C(n.$slots, "icon"), s("div", Nt, [s("h3", {
|
|
1187
1187
|
id: f,
|
|
1188
1188
|
class: m(["text-lg font-medium", D(d).primaryText])
|
|
1189
1189
|
}, E(e.title), 3), e.subtitle ? (y(), o("p", {
|
|
1190
1190
|
key: 0,
|
|
1191
1191
|
class: m(["text-sm mt-1 break-all", D(d).mutedText])
|
|
1192
1192
|
}, E(e.subtitle), 3)) : a("", !0)])]), C(n.$slots, "header-actions")], 2),
|
|
1193
|
-
s("div",
|
|
1193
|
+
s("div", Pt, [C(n.$slots, "default")]),
|
|
1194
1194
|
n.$slots.footer ? (y(), o("div", {
|
|
1195
1195
|
key: 0,
|
|
1196
1196
|
class: m(["flex gap-3 justify-end p-6 border-t shrink-0", D(d).border])
|
|
@@ -1199,16 +1199,16 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1199
1199
|
key: 1,
|
|
1200
1200
|
class: m(["relative w-full mx-4 rounded-lg shadow-xl", [e.maxWidthClass, p.value]]),
|
|
1201
1201
|
onClick: r[1] ||= F(() => {}, ["stop"])
|
|
1202
|
-
}, [s("div",
|
|
1203
|
-
s("div",
|
|
1202
|
+
}, [s("div", Ft, [
|
|
1203
|
+
s("div", It, [C(n.$slots, "icon"), s("div", Lt, [s("h3", {
|
|
1204
1204
|
id: f,
|
|
1205
1205
|
class: m(["text-lg font-medium", D(d).primaryText])
|
|
1206
1206
|
}, E(e.title), 3)])]),
|
|
1207
|
-
s("div",
|
|
1208
|
-
s("div",
|
|
1207
|
+
s("div", Rt, [C(n.$slots, "default")]),
|
|
1208
|
+
s("div", zt, [C(n.$slots, "footer")])
|
|
1209
1209
|
])], 2))])]));
|
|
1210
1210
|
}
|
|
1211
|
-
}),
|
|
1211
|
+
}), Vt = ["aria-expanded"], Ht = { class: "flex items-center gap-3" }, Ut = /* @__PURE__ */ d({
|
|
1212
1212
|
__name: "BaseCollapsibleSection",
|
|
1213
1213
|
props: {
|
|
1214
1214
|
title: {},
|
|
@@ -1218,13 +1218,13 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1218
1218
|
},
|
|
1219
1219
|
emits: ["toggle"],
|
|
1220
1220
|
setup(e, { emit: t }) {
|
|
1221
|
-
let n = e, i = t, { isDark: c } = z(), l =
|
|
1221
|
+
let n = e, i = t, { isDark: c } = z(), l = q(), u = r(() => c.value ? "text-gray-100" : "text-gray-700"), d = r(() => c.value ? "bg-gray-800/50 hover:bg-gray-800 border-gray-700" : "bg-gray-50 hover:bg-gray-100 border-gray-200"), f = r(() => c.value ? "bg-emerald-500/15 text-emerald-400" : "bg-emerald-50 text-emerald-700"), p = r(() => n.bodyClass === void 0 ? c.value ? "bg-gray-800" : "bg-white" : n.bodyClass);
|
|
1222
1222
|
return (t, n) => (y(), o("section", { class: m(["rounded-xl border transition-colors", D(l).cardAlt]) }, [s("button", {
|
|
1223
1223
|
type: "button",
|
|
1224
1224
|
class: m(["w-full flex items-center justify-between p-4 text-left transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-emerald-500", [d.value, e.collapsed ? "rounded-xl" : "rounded-t-xl"]]),
|
|
1225
1225
|
"aria-expanded": !e.collapsed,
|
|
1226
1226
|
onClick: n[0] ||= (e) => i("toggle")
|
|
1227
|
-
}, [s("div",
|
|
1227
|
+
}, [s("div", Ht, [s("h2", { class: m(["text-base font-semibold", u.value]) }, E(e.title), 3), e.badge ? (y(), o("span", {
|
|
1228
1228
|
key: 0,
|
|
1229
1229
|
class: m(["text-xs px-2 py-0.5 rounded-full", f.value])
|
|
1230
1230
|
}, E(e.badge), 3)) : a("", !0)]), (y(), o("svg", {
|
|
@@ -1238,15 +1238,15 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1238
1238
|
"stroke-linecap": "round",
|
|
1239
1239
|
"stroke-linejoin": "round",
|
|
1240
1240
|
d: "M19 9l-7 7-7-7"
|
|
1241
|
-
}, null, -1)]], 2))], 10,
|
|
1241
|
+
}, null, -1)]], 2))], 10, Vt), P(s("div", { class: m(["p-6 border-t rounded-b-xl", [D(l).border, p.value]]) }, [C(t.$slots, "default")], 2), [[j, !e.collapsed]])], 2));
|
|
1242
1242
|
}
|
|
1243
|
-
}),
|
|
1243
|
+
}), Wt = ["disabled"], Gt = ["disabled"], Kt = {
|
|
1244
1244
|
key: 0,
|
|
1245
1245
|
class: "w-4 h-4 animate-spin",
|
|
1246
1246
|
fill: "none",
|
|
1247
1247
|
viewBox: "0 0 24 24",
|
|
1248
1248
|
"aria-hidden": "true"
|
|
1249
|
-
},
|
|
1249
|
+
}, qt = /* @__PURE__ */ d({
|
|
1250
1250
|
__name: "BaseConfirmModal",
|
|
1251
1251
|
props: {
|
|
1252
1252
|
title: {},
|
|
@@ -1262,14 +1262,14 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1262
1262
|
},
|
|
1263
1263
|
emits: ["confirm", "cancel"],
|
|
1264
1264
|
setup(e, { emit: t }) {
|
|
1265
|
-
let n = e, r = t, { isDark: c } = z(), d =
|
|
1265
|
+
let n = e, r = t, { isDark: c } = z(), d = q();
|
|
1266
1266
|
function f() {
|
|
1267
1267
|
n.submitting || r("confirm");
|
|
1268
1268
|
}
|
|
1269
1269
|
function p() {
|
|
1270
1270
|
n.submitting || r("cancel");
|
|
1271
1271
|
}
|
|
1272
|
-
return (t, n) => (y(), i(
|
|
1272
|
+
return (t, n) => (y(), i(Bt, {
|
|
1273
1273
|
title: e.title,
|
|
1274
1274
|
"manual-close": e.submitting,
|
|
1275
1275
|
onCancel: p
|
|
@@ -1283,12 +1283,12 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1283
1283
|
disabled: e.submitting,
|
|
1284
1284
|
class: m(["inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", [D(d).ghostButton, e.submitting ? "opacity-60 cursor-not-allowed" : "cursor-pointer"]]),
|
|
1285
1285
|
onClick: p
|
|
1286
|
-
}, E(e.cancelText), 11,
|
|
1286
|
+
}, E(e.cancelText), 11, Wt), s("button", {
|
|
1287
1287
|
type: "button",
|
|
1288
1288
|
disabled: e.submitting,
|
|
1289
1289
|
class: m(["inline-flex items-center justify-center gap-2 px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2", [e.variant === "danger" ? "focus-visible:ring-red-500" : "focus-visible:ring-emerald-500", e.variant === "danger" ? e.submitting ? "bg-red-400 cursor-not-allowed" : "bg-red-600 hover:bg-red-700 cursor-pointer" : e.submitting ? "bg-emerald-400 cursor-not-allowed" : "bg-emerald-600 hover:bg-emerald-700 cursor-pointer"]]),
|
|
1290
1290
|
onClick: f
|
|
1291
|
-
}, [e.submitting ? (y(), o("svg",
|
|
1291
|
+
}, [e.submitting ? (y(), o("svg", Kt, [...n[0] ||= [s("circle", {
|
|
1292
1292
|
class: "opacity-25",
|
|
1293
1293
|
cx: "12",
|
|
1294
1294
|
cy: "12",
|
|
@@ -1299,12 +1299,12 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1299
1299
|
class: "opacity-75",
|
|
1300
1300
|
fill: "currentColor",
|
|
1301
1301
|
d: "M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"
|
|
1302
|
-
}, null, -1)]])) : a("", !0), l(" " + E(e.submitting ? e.submittingText : e.confirmText), 1)], 10,
|
|
1302
|
+
}, null, -1)]])) : a("", !0), l(" " + E(e.submitting ? e.submittingText : e.confirmText), 1)], 10, Gt)]),
|
|
1303
1303
|
default: N(() => [C(t.$slots, "message", {}, () => [s("p", { class: m(["text-sm", D(c) ? "text-gray-300" : "text-gray-600"]) }, E(e.message), 3)]), C(t.$slots, "default")]),
|
|
1304
1304
|
_: 3
|
|
1305
1305
|
}, 8, ["title", "manual-close"]));
|
|
1306
1306
|
}
|
|
1307
|
-
}),
|
|
1307
|
+
}), Jt = { class: "mt-4" }, Yt = ["placeholder"], Xt = ["disabled"], Zt = /* @__PURE__ */ d({
|
|
1308
1308
|
__name: "BaseTextInputModal",
|
|
1309
1309
|
props: {
|
|
1310
1310
|
title: {},
|
|
@@ -1322,7 +1322,7 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1322
1322
|
},
|
|
1323
1323
|
emits: ["confirm", "cancel"],
|
|
1324
1324
|
setup(e, { emit: t }) {
|
|
1325
|
-
let n = e, r = t, { isDark: a } = z(), o =
|
|
1325
|
+
let n = e, r = t, { isDark: a } = z(), o = q(), c = x(n.initialValue), l = x(null);
|
|
1326
1326
|
g(async () => {
|
|
1327
1327
|
await p(), l.value?.focus();
|
|
1328
1328
|
});
|
|
@@ -1335,7 +1335,7 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1335
1335
|
function h() {
|
|
1336
1336
|
c.value.trim() === (n.initialValue ?? "").trim() && f();
|
|
1337
1337
|
}
|
|
1338
|
-
return
|
|
1338
|
+
return J(f), (t, n) => (y(), i(Bt, {
|
|
1339
1339
|
title: e.title,
|
|
1340
1340
|
"manual-close": "",
|
|
1341
1341
|
onBackdrop: h
|
|
@@ -1353,8 +1353,8 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1353
1353
|
disabled: !c.value.trim() || e.submitting,
|
|
1354
1354
|
class: m(["inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 focus-visible:ring-offset-2", [!c.value.trim() || e.submitting ? "bg-emerald-400 cursor-not-allowed" : "bg-emerald-600 hover:bg-emerald-700 cursor-pointer"]]),
|
|
1355
1355
|
onClick: d
|
|
1356
|
-
}, E(e.submitting ? e.submittingText : e.confirmText), 11,
|
|
1357
|
-
default: N(() => [s("p", { class: m(["text-sm", D(a) ? "text-gray-300" : "text-gray-600"]) }, E(e.message), 3), s("div",
|
|
1356
|
+
}, E(e.submitting ? e.submittingText : e.confirmText), 11, Xt)]),
|
|
1357
|
+
default: N(() => [s("p", { class: m(["text-sm", D(a) ? "text-gray-300" : "text-gray-600"]) }, E(e.message), 3), s("div", Jt, [s("label", { class: m(["block text-sm font-medium mb-1", D(o).label]) }, E(e.inputLabel), 3), P(s("input", {
|
|
1358
1358
|
ref_key: "nameInput",
|
|
1359
1359
|
ref: l,
|
|
1360
1360
|
"onUpdate:modelValue": n[0] ||= (e) => c.value = e,
|
|
@@ -1362,11 +1362,11 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1362
1362
|
placeholder: e.placeholder,
|
|
1363
1363
|
class: m(["w-full px-3 py-2 rounded-md border text-sm transition-colors", D(a) ? "bg-gray-800 border-gray-600 text-gray-100 placeholder-gray-500 focus:outline-none focus:border-emerald-500" : "bg-white border-gray-300 text-gray-900 placeholder-gray-400 focus:outline-none focus:border-emerald-500"]),
|
|
1364
1364
|
onKeyup: te(d, ["enter"])
|
|
1365
|
-
}, null, 42,
|
|
1365
|
+
}, null, 42, Yt), [[A, c.value]])])]),
|
|
1366
1366
|
_: 3
|
|
1367
1367
|
}, 8, ["title"]));
|
|
1368
1368
|
}
|
|
1369
|
-
}),
|
|
1369
|
+
}), Qt = { class: "flex items-center justify-center min-h-[60vh]" }, $t = { class: "text-center px-6" }, en = /* @__PURE__ */ d({
|
|
1370
1370
|
__name: "BaseNotFoundPage",
|
|
1371
1371
|
props: {
|
|
1372
1372
|
code: { default: "404" },
|
|
@@ -1375,11 +1375,11 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1375
1375
|
homeLabel: { default: "Go home" }
|
|
1376
1376
|
},
|
|
1377
1377
|
setup(e) {
|
|
1378
|
-
let t = e, n = Te(), { isDark: r } = z(), i =
|
|
1378
|
+
let t = e, n = Te(), { isDark: r } = z(), i = q();
|
|
1379
1379
|
function a() {
|
|
1380
1380
|
n.push({ name: t.homeRouteName });
|
|
1381
1381
|
}
|
|
1382
|
-
return (t, n) => (y(), o("div",
|
|
1382
|
+
return (t, n) => (y(), o("div", Qt, [s("div", $t, [
|
|
1383
1383
|
u(D(he), { class: m(["w-16 h-16 mx-auto mb-4", D(i).illustration]) }, null, 8, ["class"]),
|
|
1384
1384
|
s("h1", { class: m(["text-4xl font-bold mb-2", D(r) ? "text-gray-200" : "text-gray-800"]) }, E(e.code), 3),
|
|
1385
1385
|
s("p", { class: m(["text-lg mb-6", D(i).dimTextAlt]) }, E(e.message), 3),
|
|
@@ -1389,19 +1389,19 @@ var jt = { class: "flex items-start gap-4 min-w-0" }, Mt = { class: "flex-1 min-
|
|
|
1389
1389
|
}, E(e.homeLabel), 3)
|
|
1390
1390
|
])]));
|
|
1391
1391
|
}
|
|
1392
|
-
}),
|
|
1393
|
-
function
|
|
1392
|
+
}), Y = x(!1);
|
|
1393
|
+
function tn() {
|
|
1394
1394
|
function e() {
|
|
1395
|
-
|
|
1395
|
+
Y.value = !0;
|
|
1396
1396
|
}
|
|
1397
1397
|
function t() {
|
|
1398
|
-
|
|
1398
|
+
Y.value = !1;
|
|
1399
1399
|
}
|
|
1400
1400
|
function n() {
|
|
1401
|
-
|
|
1401
|
+
Y.value = !Y.value;
|
|
1402
1402
|
}
|
|
1403
1403
|
return {
|
|
1404
|
-
mobileOpen:
|
|
1404
|
+
mobileOpen: Y,
|
|
1405
1405
|
open: e,
|
|
1406
1406
|
close: t,
|
|
1407
1407
|
toggle: n
|
|
@@ -1409,30 +1409,30 @@ function en() {
|
|
|
1409
1409
|
}
|
|
1410
1410
|
//#endregion
|
|
1411
1411
|
//#region src/composables/useSidebarCollapse.ts
|
|
1412
|
-
var
|
|
1413
|
-
function
|
|
1414
|
-
if (!
|
|
1415
|
-
let e = window.localStorage?.getItem(
|
|
1416
|
-
e && (
|
|
1417
|
-
M(
|
|
1418
|
-
window.localStorage?.setItem(
|
|
1412
|
+
var X = x(!1), nn = !1, rn = "mgv-sidebar-collapsed";
|
|
1413
|
+
function an(e) {
|
|
1414
|
+
if (!nn && (nn = !0, rn = e, typeof window < "u")) {
|
|
1415
|
+
let e = window.localStorage?.getItem(rn);
|
|
1416
|
+
e && (X.value = e === "true"), f(!0).run(() => {
|
|
1417
|
+
M(X, (e) => {
|
|
1418
|
+
window.localStorage?.setItem(rn, String(e));
|
|
1419
1419
|
});
|
|
1420
1420
|
});
|
|
1421
1421
|
}
|
|
1422
1422
|
}
|
|
1423
|
-
function
|
|
1424
|
-
|
|
1423
|
+
function on(e) {
|
|
1424
|
+
an(e?.storageKey ?? rn);
|
|
1425
1425
|
function t() {
|
|
1426
|
-
|
|
1426
|
+
X.value = !0;
|
|
1427
1427
|
}
|
|
1428
1428
|
function n() {
|
|
1429
|
-
|
|
1429
|
+
X.value = !1;
|
|
1430
1430
|
}
|
|
1431
1431
|
function r() {
|
|
1432
|
-
|
|
1432
|
+
X.value = !X.value;
|
|
1433
1433
|
}
|
|
1434
1434
|
return {
|
|
1435
|
-
collapsed:
|
|
1435
|
+
collapsed: X,
|
|
1436
1436
|
collapse: t,
|
|
1437
1437
|
expand: n,
|
|
1438
1438
|
toggle: r
|
|
@@ -1440,45 +1440,45 @@ function an(e) {
|
|
|
1440
1440
|
}
|
|
1441
1441
|
//#endregion
|
|
1442
1442
|
//#region src/composables/useNotifications.ts
|
|
1443
|
-
var
|
|
1444
|
-
function
|
|
1443
|
+
var Z = x([]), sn = x(!1), cn = r(() => Z.value.filter((e) => !e.read).length);
|
|
1444
|
+
function ln() {
|
|
1445
1445
|
function e() {
|
|
1446
|
-
|
|
1446
|
+
sn.value = !0;
|
|
1447
1447
|
}
|
|
1448
1448
|
function t() {
|
|
1449
|
-
|
|
1449
|
+
sn.value = !1;
|
|
1450
1450
|
}
|
|
1451
1451
|
function n() {
|
|
1452
|
-
|
|
1452
|
+
sn.value = !sn.value;
|
|
1453
1453
|
}
|
|
1454
1454
|
function r(e) {
|
|
1455
|
-
|
|
1455
|
+
Z.value = e;
|
|
1456
1456
|
}
|
|
1457
1457
|
function i(e) {
|
|
1458
|
-
|
|
1458
|
+
Z.value = [e, ...Z.value];
|
|
1459
1459
|
}
|
|
1460
1460
|
function a(e) {
|
|
1461
|
-
|
|
1461
|
+
Z.value = Z.value.filter((t) => t.id !== e);
|
|
1462
1462
|
}
|
|
1463
1463
|
function o(e) {
|
|
1464
|
-
|
|
1464
|
+
Z.value = Z.value.map((t) => t.id === e ? {
|
|
1465
1465
|
...t,
|
|
1466
1466
|
read: !0
|
|
1467
1467
|
} : t);
|
|
1468
1468
|
}
|
|
1469
1469
|
function s() {
|
|
1470
|
-
|
|
1470
|
+
Z.value = Z.value.map((e) => e.read ? e : {
|
|
1471
1471
|
...e,
|
|
1472
1472
|
read: !0
|
|
1473
1473
|
});
|
|
1474
1474
|
}
|
|
1475
1475
|
function c() {
|
|
1476
|
-
|
|
1476
|
+
Z.value = [];
|
|
1477
1477
|
}
|
|
1478
1478
|
return {
|
|
1479
|
-
notifications:
|
|
1480
|
-
unreadCount:
|
|
1481
|
-
open:
|
|
1479
|
+
notifications: Z,
|
|
1480
|
+
unreadCount: cn,
|
|
1481
|
+
open: sn,
|
|
1482
1482
|
openPanel: e,
|
|
1483
1483
|
closePanel: t,
|
|
1484
1484
|
togglePanel: n,
|
|
@@ -1492,22 +1492,22 @@ function cn() {
|
|
|
1492
1492
|
}
|
|
1493
1493
|
//#endregion
|
|
1494
1494
|
//#region src/components/BaseSidebar.vue?vue&type=script&setup=true&lang.ts
|
|
1495
|
-
var
|
|
1495
|
+
var un = ["aria-label", "aria-expanded"], dn = { class: "flex flex-col h-full" }, fn = { class: "flex-1 overflow-y-auto px-3 space-y-6" }, pn = { class: "space-y-0.5" }, mn = [
|
|
1496
1496
|
"aria-current",
|
|
1497
1497
|
"title",
|
|
1498
1498
|
"onClick"
|
|
1499
|
-
],
|
|
1499
|
+
], hn = ["aria-label"], gn = { class: "relative shrink-0" }, _n = {
|
|
1500
1500
|
key: 0,
|
|
1501
1501
|
class: "absolute -top-1.5 -right-1.5 min-w-4 h-4 px-1 rounded-full bg-red-500 text-white text-[10px] font-semibold leading-4 text-center"
|
|
1502
|
-
},
|
|
1502
|
+
}, vn = [
|
|
1503
1503
|
"title",
|
|
1504
1504
|
"aria-label",
|
|
1505
1505
|
"aria-pressed"
|
|
1506
|
-
],
|
|
1506
|
+
], yn = [
|
|
1507
1507
|
"title",
|
|
1508
1508
|
"aria-label",
|
|
1509
1509
|
"aria-pressed"
|
|
1510
|
-
],
|
|
1510
|
+
], bn = /*#__PURE__*/ ((e, t) => {
|
|
1511
1511
|
let n = e.__vccOpts || e;
|
|
1512
1512
|
for (let [e, r] of t) n[e] = r;
|
|
1513
1513
|
return n;
|
|
@@ -1532,7 +1532,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1532
1532
|
}
|
|
1533
1533
|
},
|
|
1534
1534
|
setup(t) {
|
|
1535
|
-
let n = t, c = Te(), d = we(), { isDark: f, toggleTheme: h } = z(), { mobileOpen: g, close: _, toggle: v } =
|
|
1535
|
+
let n = t, c = Te(), d = we(), { isDark: f, toggleTheme: h } = z(), { mobileOpen: g, close: _, toggle: v } = tn(), { collapsed: b, toggle: w } = on(), { unreadCount: O, togglePanel: ee } = ln(), k = r(() => n.collapsible && b.value), A = x(null), j = null;
|
|
1536
1536
|
M(g, async (e) => {
|
|
1537
1537
|
e ? (j = document.activeElement instanceof HTMLElement ? document.activeElement : null, await p(), A.value?.focus()) : (j?.focus(), j = null);
|
|
1538
1538
|
});
|
|
@@ -1565,7 +1565,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1565
1565
|
key: 0,
|
|
1566
1566
|
class: "w-6 h-6",
|
|
1567
1567
|
"aria-hidden": "true"
|
|
1568
|
-
}))], 10,
|
|
1568
|
+
}))], 10, un)], 2),
|
|
1569
1569
|
D(g) ? (y(), o("div", {
|
|
1570
1570
|
key: 0,
|
|
1571
1571
|
class: "mobile-overlay fixed inset-0 z-40 bg-black/50",
|
|
@@ -1580,7 +1580,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1580
1580
|
D(g) ? "translate-x-0 z-50" : "-translate-x-full max-lg:pointer-events-none lg:translate-x-0 z-50",
|
|
1581
1581
|
t.collapsible && D(b) ? "lg:w-16" : "lg:w-60"
|
|
1582
1582
|
]])
|
|
1583
|
-
}, [s("div",
|
|
1583
|
+
}, [s("div", dn, [
|
|
1584
1584
|
s("div", { class: m(["px-5 pt-5 pb-4 flex items-center justify-center relative", { "lg:px-2": k.value }]) }, [s("button", {
|
|
1585
1585
|
type: "button",
|
|
1586
1586
|
onClick: N,
|
|
@@ -1597,13 +1597,13 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1597
1597
|
class: "w-5 h-5",
|
|
1598
1598
|
"aria-hidden": "true"
|
|
1599
1599
|
})], 2)], 2),
|
|
1600
|
-
s("nav",
|
|
1600
|
+
s("nav", fn, [(y(!0), o(e, null, S(t.sections, (t) => (y(), o("div", { key: t.title }, [s("p", { class: m(["px-2 mb-2 text-[10px] font-semibold uppercase tracking-wider text-gray-500", { "lg:hidden": k.value }]) }, E(t.title), 3), s("ul", pn, [(y(!0), o(e, null, S(t.items, (e) => (y(), o("li", { key: e.name }, [s("button", {
|
|
1601
1601
|
type: "button",
|
|
1602
1602
|
"aria-current": P(e.name) ? "page" : void 0,
|
|
1603
1603
|
title: k.value ? e.label : void 0,
|
|
1604
1604
|
onClick: (t) => te(e.name),
|
|
1605
1605
|
class: m(["flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition-colors w-full text-left cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", [P(e.name) ? D(f) ? "bg-emerald-500/15 text-emerald-300" : "bg-emerald-50 text-emerald-700" : D(f) ? "text-gray-400 hover:text-gray-100 hover:bg-gray-800" : "text-gray-600 hover:text-gray-900 hover:bg-gray-100", { "lg:justify-center": k.value }]])
|
|
1606
|
-
}, [(y(), i(T(e.icon), { class: "w-[18px] h-[18px] shrink-0" })), s("span", { class: m({ "lg:hidden": k.value }) }, E(e.label), 3)], 10,
|
|
1606
|
+
}, [(y(), i(T(e.icon), { class: "w-[18px] h-[18px] shrink-0" })), s("span", { class: m({ "lg:hidden": k.value }) }, E(e.label), 3)], 10, mn)]))), 128))])]))), 128))]),
|
|
1607
1607
|
s("div", { class: m(["px-4 py-4 border-t transition-colors space-y-3", D(f) ? "border-gray-800" : "border-gray-200"]) }, [
|
|
1608
1608
|
t.showNotifications ? (y(), o("button", {
|
|
1609
1609
|
key: 0,
|
|
@@ -1612,10 +1612,10 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1612
1612
|
title: "Notifications",
|
|
1613
1613
|
"aria-label": D(O) > 0 ? `Notifications, ${D(O)} unread` : "Notifications",
|
|
1614
1614
|
class: m(["relative flex items-center gap-3 w-full px-3 py-2.5 rounded-lg text-sm font-medium transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", [D(f) ? "text-gray-400 hover:text-gray-100 hover:bg-gray-800" : "text-gray-600 hover:text-gray-900 hover:bg-gray-100", { "lg:justify-center": k.value }]])
|
|
1615
|
-
}, [s("span",
|
|
1615
|
+
}, [s("span", gn, [u(D(ae), {
|
|
1616
1616
|
class: "w-[18px] h-[18px]",
|
|
1617
1617
|
"aria-hidden": "true"
|
|
1618
|
-
}), D(O) > 0 ? (y(), o("span",
|
|
1618
|
+
}), D(O) > 0 ? (y(), o("span", _n, E(D(O) > 99 ? "99+" : D(O)), 1)) : a("", !0)]), s("span", { class: m({ "lg:hidden": k.value }) }, "Notifications", 2)], 10, hn)) : a("", !0),
|
|
1619
1619
|
t.showThemeToggle ? (y(), o("button", {
|
|
1620
1620
|
key: 1,
|
|
1621
1621
|
type: "button",
|
|
@@ -1631,7 +1631,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1631
1631
|
}, null, 8, ["class"])),
|
|
1632
1632
|
s("span", { class: m({ "lg:hidden": k.value }) }, E(D(f) ? "Switch to light" : "Switch to dark"), 3),
|
|
1633
1633
|
s("span", { class: m(["ml-auto relative w-9 h-5 rounded-full transition-colors", [D(f) ? "bg-emerald-600" : "bg-gray-300", { "lg:hidden": k.value }]]) }, [s("span", { class: m(["absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white shadow-sm transition-transform duration-300", D(f) ? "translate-x-4" : "translate-x-0"]) }, null, 2)], 2)
|
|
1634
|
-
], 10,
|
|
1634
|
+
], 10, vn)) : a("", !0),
|
|
1635
1635
|
t.collapsible ? (y(), o("button", {
|
|
1636
1636
|
key: 2,
|
|
1637
1637
|
type: "button",
|
|
@@ -1643,7 +1643,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1643
1643
|
}, [(y(), i(T(D(b) ? D(ce) : D(se)), {
|
|
1644
1644
|
class: "w-[18px] h-[18px] shrink-0",
|
|
1645
1645
|
"aria-hidden": "true"
|
|
1646
|
-
})), s("span", { class: m({ "lg:hidden": k.value }) }, "Collapse", 2)], 10,
|
|
1646
|
+
})), s("span", { class: m({ "lg:hidden": k.value }) }, "Collapse", 2)], 10, yn)) : a("", !0),
|
|
1647
1647
|
s("div", { class: m({ "lg:hidden": k.value }) }, [C(n.$slots, "status", {}, void 0, !0)], 2),
|
|
1648
1648
|
s("div", { class: m({ "lg:hidden": k.value }) }, [C(n.$slots, "footer", {}, () => [t.appName || t.version ? (y(), o("div", {
|
|
1649
1649
|
key: 0,
|
|
@@ -1657,26 +1657,26 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1657
1657
|
])], 2)
|
|
1658
1658
|
]));
|
|
1659
1659
|
}
|
|
1660
|
-
}), [["__scopeId", "data-v-452beaf2"]]),
|
|
1660
|
+
}), [["__scopeId", "data-v-452beaf2"]]), xn = {
|
|
1661
1661
|
key: 1,
|
|
1662
1662
|
class: "mt-4 flex justify-center py-6"
|
|
1663
|
-
},
|
|
1663
|
+
}, Sn = {
|
|
1664
1664
|
key: 2,
|
|
1665
1665
|
class: "mt-4 text-sm text-red-500",
|
|
1666
1666
|
role: "alert"
|
|
1667
|
-
},
|
|
1667
|
+
}, Cn = {
|
|
1668
1668
|
key: 3,
|
|
1669
1669
|
class: "mt-4"
|
|
1670
|
-
},
|
|
1670
|
+
}, wn = { class: "relative" }, Tn = ["placeholder"], En = {
|
|
1671
1671
|
key: 4,
|
|
1672
1672
|
class: "mt-3 max-h-64 overflow-y-auto"
|
|
1673
|
-
},
|
|
1673
|
+
}, Dn = ["aria-pressed", "onClick"], On = { class: "flex-1 min-w-0" }, kn = {
|
|
1674
1674
|
key: 0,
|
|
1675
1675
|
class: "text-center py-6"
|
|
1676
|
-
},
|
|
1676
|
+
}, An = {
|
|
1677
1677
|
key: 1,
|
|
1678
1678
|
class: "text-center py-6"
|
|
1679
|
-
},
|
|
1679
|
+
}, jn = ["disabled"], Mn = ["disabled"], Nn = /* @__PURE__ */ d({
|
|
1680
1680
|
__name: "BaseEntityPickerModal",
|
|
1681
1681
|
props: {
|
|
1682
1682
|
title: {},
|
|
@@ -1698,7 +1698,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1698
1698
|
},
|
|
1699
1699
|
emits: ["confirm", "cancel"],
|
|
1700
1700
|
setup(t, { emit: n }) {
|
|
1701
|
-
let c = t, l = n, { isDark: d } = z(), f =
|
|
1701
|
+
let c = t, l = n, { isDark: d } = z(), f = q(), h = x([]), _ = x(!1), v = x(""), b = x(null), w = x(""), T = x(null), O = r(() => {
|
|
1702
1702
|
let e = c.loader ? h.value : c.items;
|
|
1703
1703
|
return c.excludeId ? e.filter((e) => e.id !== c.excludeId) : e;
|
|
1704
1704
|
}), ee = r(() => O.value.filter((e) => e.label.toLowerCase().includes(w.value.toLowerCase()))), k = {
|
|
@@ -1813,7 +1813,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1813
1813
|
function F() {
|
|
1814
1814
|
c.submitting || l("cancel");
|
|
1815
1815
|
}
|
|
1816
|
-
return (n, r) => (y(), i(
|
|
1816
|
+
return (n, r) => (y(), i(Bt, {
|
|
1817
1817
|
title: t.title,
|
|
1818
1818
|
"manual-close": t.submitting,
|
|
1819
1819
|
onCancel: F
|
|
@@ -1827,19 +1827,19 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1827
1827
|
disabled: t.submitting,
|
|
1828
1828
|
class: m(["inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150 cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", D(f).ghostButton]),
|
|
1829
1829
|
onClick: F
|
|
1830
|
-
}, E(t.cancelText), 11,
|
|
1830
|
+
}, E(t.cancelText), 11, jn), s("button", {
|
|
1831
1831
|
type: "button",
|
|
1832
1832
|
disabled: !b.value || t.submitting,
|
|
1833
1833
|
class: m(["inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 focus-visible:ring-offset-2", !b.value || t.submitting ? M.value.confirmDisabled : M.value.confirmActive]),
|
|
1834
1834
|
onClick: te
|
|
1835
|
-
}, E(t.submitting ? t.submittingText : t.confirmText), 11,
|
|
1835
|
+
}, E(t.submitting ? t.submittingText : t.confirmText), 11, Mn)]),
|
|
1836
1836
|
default: N(() => [
|
|
1837
1837
|
t.message ? (y(), o("p", {
|
|
1838
1838
|
key: 0,
|
|
1839
1839
|
class: m(["text-sm", D(d) ? "text-gray-300" : "text-gray-600"])
|
|
1840
1840
|
}, E(t.message), 3)) : a("", !0),
|
|
1841
|
-
_.value ? (y(), o("div",
|
|
1842
|
-
!_.value && !v.value && O.value.length > 0 ? (y(), o("div",
|
|
1841
|
+
_.value ? (y(), o("div", xn, [u(ct, { color: "emerald" })])) : v.value ? (y(), o("div", Sn, E(v.value), 1)) : a("", !0),
|
|
1842
|
+
!_.value && !v.value && O.value.length > 0 ? (y(), o("div", Cn, [s("div", wn, [u(D(ve), {
|
|
1843
1843
|
class: m(["absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4", D(f).dimText]),
|
|
1844
1844
|
"aria-hidden": "true"
|
|
1845
1845
|
}, null, 8, ["class"]), P(s("input", {
|
|
@@ -1849,8 +1849,8 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1849
1849
|
type: "text",
|
|
1850
1850
|
placeholder: t.searchPlaceholder,
|
|
1851
1851
|
class: m(["w-full pl-9 pr-3 py-2 text-sm rounded-md border outline-none transition-colors", [D(d) ? "bg-gray-800 border-gray-600 text-gray-200 placeholder-gray-500" : "bg-white border-gray-300 text-gray-700 placeholder-gray-400", M.value.inputFocus]])
|
|
1852
|
-
}, null, 10,
|
|
1853
|
-
!_.value && !v.value ? (y(), o("div",
|
|
1852
|
+
}, null, 10, Tn), [[A, w.value]])])])) : a("", !0),
|
|
1853
|
+
!_.value && !v.value ? (y(), o("div", En, [(y(!0), o(e, null, S(ee.value, (e) => (y(), o("button", {
|
|
1854
1854
|
key: e.id,
|
|
1855
1855
|
type: "button",
|
|
1856
1856
|
"aria-pressed": b.value === e.id,
|
|
@@ -1858,7 +1858,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1858
1858
|
onClick: (t) => b.value = e.id
|
|
1859
1859
|
}, [
|
|
1860
1860
|
u(D(ge), { class: m(["w-5 h-5 flex-shrink-0", D(f).dimText]) }, null, 8, ["class"]),
|
|
1861
|
-
s("div",
|
|
1861
|
+
s("div", On, [s("p", { class: m(["text-sm font-medium truncate", D(f).bodyText]) }, E(e.label), 3)]),
|
|
1862
1862
|
b.value === e.id ? (y(), o("div", {
|
|
1863
1863
|
key: 0,
|
|
1864
1864
|
class: m(["w-5 h-5 rounded-full flex items-center justify-center", M.value.checkBg])
|
|
@@ -1874,15 +1874,15 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1874
1874
|
"stroke-linejoin": "round",
|
|
1875
1875
|
d: "M5 13l4 4L19 7"
|
|
1876
1876
|
})], -1)]], 2)) : a("", !0)
|
|
1877
|
-
], 10,
|
|
1877
|
+
], 10, Dn))), 128)), O.value.length === 0 ? (y(), o("div", kn, [s("p", { class: m(["text-sm", D(f).dimText]) }, E(t.emptyMessage), 3)])) : ee.value.length === 0 ? (y(), o("div", An, [s("p", { class: m(["text-sm", D(f).dimText]) }, E(t.noMatchMessage), 3)])) : a("", !0)])) : a("", !0)
|
|
1878
1878
|
]),
|
|
1879
1879
|
_: 3
|
|
1880
1880
|
}, 8, ["title", "manual-close"]));
|
|
1881
1881
|
}
|
|
1882
|
-
}),
|
|
1882
|
+
}), Pn = {
|
|
1883
1883
|
href: "#main-content",
|
|
1884
1884
|
class: "sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-[100] focus:px-3 focus:py-2 focus:rounded-md focus:bg-emerald-600 focus:text-white focus:shadow-lg"
|
|
1885
|
-
},
|
|
1885
|
+
}, Fn = ["inert"], In = /* @__PURE__ */ d({
|
|
1886
1886
|
__name: "BaseAppLayout",
|
|
1887
1887
|
props: {
|
|
1888
1888
|
showSidebar: {
|
|
@@ -1892,19 +1892,19 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1892
1892
|
skipLinkLabel: { default: "Skip to main content" }
|
|
1893
1893
|
},
|
|
1894
1894
|
setup(e) {
|
|
1895
|
-
let t = e, { isDark: n } = z(), { mobileOpen: i } =
|
|
1895
|
+
let t = e, { isDark: n } = z(), { mobileOpen: i } = tn(), { collapsed: c } = on(), l = r(() => t.showSidebar);
|
|
1896
1896
|
return (t, r) => (y(), o("div", { class: m(["min-h-screen transition-colors duration-300", D(n) ? "bg-gray-950 text-gray-100" : "bg-gray-50 text-gray-800"]) }, [
|
|
1897
|
-
s("a",
|
|
1897
|
+
s("a", Pn, E(e.skipLinkLabel), 1),
|
|
1898
1898
|
l.value ? C(t.$slots, "sidebar", { key: 0 }) : a("", !0),
|
|
1899
1899
|
s("main", {
|
|
1900
1900
|
id: "main-content",
|
|
1901
1901
|
tabindex: "-1",
|
|
1902
1902
|
inert: l.value && D(i) ? !0 : void 0,
|
|
1903
1903
|
class: m(["transition-all duration-300", l.value ? D(c) ? "pt-14 lg:pt-0 lg:ml-16" : "pt-14 lg:pt-0 lg:ml-60" : ""])
|
|
1904
|
-
}, [C(t.$slots, "default")], 10,
|
|
1904
|
+
}, [C(t.$slots, "default")], 10, Fn)
|
|
1905
1905
|
], 2));
|
|
1906
1906
|
}
|
|
1907
|
-
}),
|
|
1907
|
+
}), Ln = { class: "flex flex-wrap items-center justify-between gap-3 mb-8" }, Rn = { class: "flex items-center gap-3 min-w-0" }, zn = { class: "flex items-center gap-2" }, Bn = /* @__PURE__ */ d({
|
|
1908
1908
|
__name: "BasePageHeader",
|
|
1909
1909
|
props: {
|
|
1910
1910
|
title: {},
|
|
@@ -1913,7 +1913,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1913
1913
|
maxWidthClass: { default: "max-w-4xl" }
|
|
1914
1914
|
},
|
|
1915
1915
|
setup(e) {
|
|
1916
|
-
let t = e, { isDark: n } = z(), i =
|
|
1916
|
+
let t = e, { isDark: n } = z(), i = q(), c = r(() => {
|
|
1917
1917
|
let e = {
|
|
1918
1918
|
emerald: {
|
|
1919
1919
|
dark: "bg-emerald-500/10",
|
|
@@ -1954,16 +1954,16 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1954
1954
|
}[t.iconColor];
|
|
1955
1955
|
return n.value ? e.dark : e.light;
|
|
1956
1956
|
});
|
|
1957
|
-
return (t, n) => (y(), o("div", { class: m(["mx-auto px-4 sm:px-6", e.maxWidthClass]) }, [s("div",
|
|
1957
|
+
return (t, n) => (y(), o("div", { class: m(["mx-auto px-4 sm:px-6", e.maxWidthClass]) }, [s("div", Ln, [s("div", Rn, [s("div", { class: m(["w-10 h-10 rounded-lg flex items-center justify-center", c.value]) }, [C(t.$slots, "icon", { iconClass: l.value })], 2), s("div", null, [s("h1", { class: m(["text-2xl font-bold", D(i).primaryTextSoft]) }, E(e.title), 3), e.subtitle ? (y(), o("p", {
|
|
1958
1958
|
key: 0,
|
|
1959
1959
|
class: m(["text-sm", D(i).dimTextAlt])
|
|
1960
|
-
}, E(e.subtitle), 3)) : a("", !0)])]), s("div",
|
|
1960
|
+
}, E(e.subtitle), 3)) : a("", !0)])]), s("div", zn, [C(t.$slots, "actions")])])], 2));
|
|
1961
1961
|
}
|
|
1962
|
-
}),
|
|
1962
|
+
}), Vn = [
|
|
1963
1963
|
"type",
|
|
1964
1964
|
"disabled",
|
|
1965
1965
|
"title"
|
|
1966
|
-
],
|
|
1966
|
+
], Hn = { key: 0 }, Un = /* @__PURE__ */ d({
|
|
1967
1967
|
__name: "BaseToolbarButton",
|
|
1968
1968
|
props: {
|
|
1969
1969
|
label: { default: "" },
|
|
@@ -1996,14 +1996,14 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
1996
1996
|
title: e.title,
|
|
1997
1997
|
class: m(["inline-flex shrink-0 items-center gap-2 px-3 py-2 rounded-lg text-sm font-medium border transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed whitespace-nowrap focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", i.value]),
|
|
1998
1998
|
onClick: n[0] ||= (e) => t.$emit("click", e)
|
|
1999
|
-
}, [C(t.$slots, "icon", { iconClass: "w-4 h-4" }), e.label ? (y(), o("span",
|
|
1999
|
+
}, [C(t.$slots, "icon", { iconClass: "w-4 h-4" }), e.label ? (y(), o("span", Hn, E(e.label), 1)) : a("", !0)], 10, Vn));
|
|
2000
2000
|
}
|
|
2001
|
-
}),
|
|
2001
|
+
}), Wn = [
|
|
2002
2002
|
"type",
|
|
2003
2003
|
"disabled",
|
|
2004
2004
|
"title",
|
|
2005
2005
|
"aria-label"
|
|
2006
|
-
],
|
|
2006
|
+
], Gn = { key: 0 }, Kn = /* @__PURE__ */ d({
|
|
2007
2007
|
__name: "BaseActionButton",
|
|
2008
2008
|
props: {
|
|
2009
2009
|
label: { default: "" },
|
|
@@ -2102,9 +2102,9 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2102
2102
|
"aria-label": e.ariaLabel,
|
|
2103
2103
|
class: m(["inline-flex items-center justify-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-current", [e.fullWidth ? "flex-1" : "", c.value]]),
|
|
2104
2104
|
onClick: n[0] ||= (e) => t.$emit("click", e)
|
|
2105
|
-
}, [C(t.$slots, "icon", { iconClass: "w-4 h-4" }), e.label ? (y(), o("span",
|
|
2105
|
+
}, [C(t.$slots, "icon", { iconClass: "w-4 h-4" }), e.label ? (y(), o("span", Gn, E(e.label), 1)) : a("", !0)], 10, Wn));
|
|
2106
2106
|
}
|
|
2107
|
-
}),
|
|
2107
|
+
}), qn = ["title", "aria-label"], Jn = /* @__PURE__ */ d({
|
|
2108
2108
|
__name: "BaseCopyButton",
|
|
2109
2109
|
props: {
|
|
2110
2110
|
text: {},
|
|
@@ -2153,20 +2153,20 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2153
2153
|
key: 1,
|
|
2154
2154
|
class: m(e.iconClass),
|
|
2155
2155
|
"aria-hidden": "true"
|
|
2156
|
-
}, null, 8, ["class"]))], 10,
|
|
2156
|
+
}, null, 8, ["class"]))], 10, qn));
|
|
2157
2157
|
}
|
|
2158
|
-
}),
|
|
2158
|
+
}), Yn = ["disabled", "aria-busy"], Xn = {
|
|
2159
2159
|
key: 0,
|
|
2160
2160
|
class: "w-5 h-5 animate-spin shrink-0",
|
|
2161
2161
|
viewBox: "0 0 24 24",
|
|
2162
2162
|
fill: "none",
|
|
2163
2163
|
"aria-hidden": "true"
|
|
2164
|
-
},
|
|
2164
|
+
}, Zn = {
|
|
2165
2165
|
key: 1,
|
|
2166
2166
|
class: "w-5 h-5 shrink-0",
|
|
2167
2167
|
viewBox: "0 0 48 48",
|
|
2168
2168
|
"aria-hidden": "true"
|
|
2169
|
-
},
|
|
2169
|
+
}, Qn = /* @__PURE__ */ d({
|
|
2170
2170
|
__name: "BaseGoogleSignInButton",
|
|
2171
2171
|
props: {
|
|
2172
2172
|
label: { default: "Sign in with Google" },
|
|
@@ -2195,7 +2195,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2195
2195
|
"aria-busy": e.loading,
|
|
2196
2196
|
onClick: u,
|
|
2197
2197
|
class: m(["inline-flex items-center justify-center gap-3 h-11 px-4 rounded-lg border text-sm font-medium transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 disabled:opacity-60 disabled:cursor-not-allowed", [e.block ? "w-full" : "", D(a) ? "bg-gray-900 border-gray-700 text-gray-100 hover:bg-gray-800" : "bg-white border-gray-300 text-gray-700 hover:bg-gray-50"]])
|
|
2198
|
-
}, [e.loading ? (y(), o("svg",
|
|
2198
|
+
}, [e.loading ? (y(), o("svg", Xn, [...n[0] ||= [s("circle", {
|
|
2199
2199
|
class: "opacity-25",
|
|
2200
2200
|
cx: "12",
|
|
2201
2201
|
cy: "12",
|
|
@@ -2206,18 +2206,18 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2206
2206
|
class: "opacity-75",
|
|
2207
2207
|
fill: "currentColor",
|
|
2208
2208
|
d: "M4 12a8 8 0 0 1 8-8V0C5.4 0 0 5.4 0 12h4z"
|
|
2209
|
-
}, null, -1)]])) : (y(), o("svg",
|
|
2209
|
+
}, null, -1)]])) : (y(), o("svg", Zn, [...n[1] ||= [c("<path fill=\"#EA4335\" d=\"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z\"></path><path fill=\"#4285F4\" d=\"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z\"></path><path fill=\"#FBBC05\" d=\"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z\"></path><path fill=\"#34A853\" d=\"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z\"></path><path fill=\"none\" d=\"M0 0h48v48H0z\"></path>", 5)]])), s("span", null, E(e.label), 1)], 10, Yn));
|
|
2210
2210
|
}
|
|
2211
|
-
}),
|
|
2211
|
+
}), $n = {
|
|
2212
2212
|
key: 0,
|
|
2213
2213
|
class: "flex justify-center mb-6"
|
|
2214
|
-
},
|
|
2214
|
+
}, er = { class: "mb-6 text-center" }, tr = { class: "flex items-center gap-3 my-5" }, nr = ["disabled"], rr = { class: "flex items-center justify-between mb-1.5" }, ir = { class: "relative" }, ar = ["type", "disabled"], or = ["aria-label", "aria-pressed"], sr = ["disabled"], cr = ["disabled", "aria-busy"], lr = {
|
|
2215
2215
|
key: 0,
|
|
2216
2216
|
class: "w-4 h-4 animate-spin",
|
|
2217
2217
|
viewBox: "0 0 24 24",
|
|
2218
2218
|
fill: "none",
|
|
2219
2219
|
"aria-hidden": "true"
|
|
2220
|
-
},
|
|
2220
|
+
}, ur = /* @__PURE__ */ d({
|
|
2221
2221
|
__name: "BaseLoginForm",
|
|
2222
2222
|
props: {
|
|
2223
2223
|
title: { default: "Sign in" },
|
|
@@ -2243,7 +2243,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2243
2243
|
},
|
|
2244
2244
|
emits: ["submit", "google-sign-in"],
|
|
2245
2245
|
setup(t, { emit: n }) {
|
|
2246
|
-
let i = t, c = n, { isDark: d } = z(), f =
|
|
2246
|
+
let i = t, c = n, { isDark: d } = z(), f = q(), p = x(""), h = x(""), g = x(!1), _ = x(!1), v = r(() => i.loading || i.googleLoading);
|
|
2247
2247
|
function b() {
|
|
2248
2248
|
v.value || c("submit", {
|
|
2249
2249
|
email: p.value,
|
|
@@ -2252,8 +2252,8 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2252
2252
|
});
|
|
2253
2253
|
}
|
|
2254
2254
|
return (n, r) => (y(), o("div", { class: m(["w-full max-w-sm mx-auto rounded-xl border shadow-sm p-6 sm:p-8", D(f).card]) }, [
|
|
2255
|
-
n.$slots.logo ? (y(), o("div",
|
|
2256
|
-
s("div",
|
|
2255
|
+
n.$slots.logo ? (y(), o("div", $n, [C(n.$slots, "logo")])) : a("", !0),
|
|
2256
|
+
s("div", er, [s("h1", { class: m(["text-xl font-semibold", D(f).primaryText]) }, E(t.title), 3), t.subtitle ? (y(), o("p", {
|
|
2257
2257
|
key: 0,
|
|
2258
2258
|
class: m(["mt-1 text-sm", D(f).mutedText])
|
|
2259
2259
|
}, E(t.subtitle), 3)) : a("", !0)]),
|
|
@@ -2262,11 +2262,11 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2262
2262
|
role: "alert",
|
|
2263
2263
|
class: m(["mb-4 rounded-lg border px-3 py-2 text-sm", D(d) ? "bg-red-500/10 border-red-500/30 text-red-300" : "bg-red-50 border-red-200 text-red-700"])
|
|
2264
2264
|
}, E(t.error), 3)) : a("", !0),
|
|
2265
|
-
t.showGoogle ? (y(), o(e, { key: 2 }, [u(
|
|
2265
|
+
t.showGoogle ? (y(), o(e, { key: 2 }, [u(Qn, {
|
|
2266
2266
|
loading: t.googleLoading,
|
|
2267
2267
|
disabled: t.loading,
|
|
2268
2268
|
onClick: r[0] ||= (e) => c("google-sign-in")
|
|
2269
|
-
}, null, 8, ["loading", "disabled"]), s("div",
|
|
2269
|
+
}, null, 8, ["loading", "disabled"]), s("div", tr, [
|
|
2270
2270
|
s("span", { class: m(["h-px flex-1", D(d) ? "bg-gray-700" : "bg-gray-200"]) }, null, 2),
|
|
2271
2271
|
s("span", { class: m(["text-xs uppercase tracking-wider", D(f).dimTextAlt]) }, "or", 2),
|
|
2272
2272
|
s("span", { class: m(["h-px flex-1", D(d) ? "bg-gray-700" : "bg-gray-200"]) }, null, 2)
|
|
@@ -2288,11 +2288,11 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2288
2288
|
disabled: v.value,
|
|
2289
2289
|
placeholder: "you@example.com",
|
|
2290
2290
|
class: m(["w-full h-11 px-3 rounded-lg border text-sm transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 disabled:opacity-60", D(f).inputWithPlaceholder])
|
|
2291
|
-
}, null, 10,
|
|
2292
|
-
s("div", null, [s("div",
|
|
2291
|
+
}, null, 10, nr), [[A, p.value]])]),
|
|
2292
|
+
s("div", null, [s("div", rr, [s("label", {
|
|
2293
2293
|
for: "login-password",
|
|
2294
2294
|
class: m(["block text-sm font-medium", D(f).label])
|
|
2295
|
-
}, " Password ", 2), C(n.$slots, "forgot")]), s("div",
|
|
2295
|
+
}, " Password ", 2), C(n.$slots, "forgot")]), s("div", ir, [P(s("input", {
|
|
2296
2296
|
id: "login-password",
|
|
2297
2297
|
"onUpdate:modelValue": r[2] ||= (e) => h.value = e,
|
|
2298
2298
|
type: _.value ? "text" : "password",
|
|
@@ -2302,13 +2302,13 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2302
2302
|
disabled: v.value,
|
|
2303
2303
|
placeholder: "••••••••",
|
|
2304
2304
|
class: m(["w-full h-11 pl-3 pr-16 rounded-lg border text-sm transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 disabled:opacity-60", D(f).inputWithPlaceholder])
|
|
2305
|
-
}, null, 10,
|
|
2305
|
+
}, null, 10, ar), [[k, h.value]]), s("button", {
|
|
2306
2306
|
type: "button",
|
|
2307
2307
|
onClick: r[3] ||= (e) => _.value = !_.value,
|
|
2308
2308
|
"aria-label": _.value ? "Hide password" : "Show password",
|
|
2309
2309
|
"aria-pressed": _.value,
|
|
2310
2310
|
class: m(["absolute inset-y-0 right-0 px-3 text-xs font-medium cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 rounded-r-lg", D(f).mutedText])
|
|
2311
|
-
}, E(_.value ? "Hide" : "Show"), 11,
|
|
2311
|
+
}, E(_.value ? "Hide" : "Show"), 11, or)])]),
|
|
2312
2312
|
t.showRemember ? (y(), o("label", {
|
|
2313
2313
|
key: 0,
|
|
2314
2314
|
class: m(["flex items-center gap-2 text-sm cursor-pointer select-none", D(f).bodyText])
|
|
@@ -2317,13 +2317,13 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2317
2317
|
type: "checkbox",
|
|
2318
2318
|
disabled: v.value,
|
|
2319
2319
|
class: "w-4 h-4 rounded border-gray-300 text-emerald-600 focus:ring-emerald-500"
|
|
2320
|
-
}, null, 8,
|
|
2320
|
+
}, null, 8, sr), [[ee, g.value]]), r[5] ||= l(" Remember me ", -1)], 2)) : a("", !0),
|
|
2321
2321
|
s("button", {
|
|
2322
2322
|
type: "submit",
|
|
2323
2323
|
disabled: v.value,
|
|
2324
2324
|
"aria-busy": t.loading,
|
|
2325
2325
|
class: "inline-flex items-center justify-center gap-2 w-full h-11 px-4 rounded-lg text-sm font-semibold text-white bg-emerald-600 hover:bg-emerald-700 transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 disabled:opacity-60 disabled:cursor-not-allowed"
|
|
2326
|
-
}, [t.loading ? (y(), o("svg",
|
|
2326
|
+
}, [t.loading ? (y(), o("svg", lr, [...r[6] ||= [s("circle", {
|
|
2327
2327
|
class: "opacity-25",
|
|
2328
2328
|
cx: "12",
|
|
2329
2329
|
cy: "12",
|
|
@@ -2334,7 +2334,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2334
2334
|
class: "opacity-75",
|
|
2335
2335
|
fill: "currentColor",
|
|
2336
2336
|
d: "M4 12a8 8 0 0 1 8-8V0C5.4 0 0 5.4 0 12h4z"
|
|
2337
|
-
}, null, -1)]])) : a("", !0), l(" " + E(t.submitLabel), 1)], 8,
|
|
2337
|
+
}, null, -1)]])) : a("", !0), l(" " + E(t.submitLabel), 1)], 8, cr)
|
|
2338
2338
|
], 32),
|
|
2339
2339
|
n.$slots.footer ? (y(), o("div", {
|
|
2340
2340
|
key: 3,
|
|
@@ -2342,10 +2342,10 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2342
2342
|
}, [C(n.$slots, "footer")], 2)) : a("", !0)
|
|
2343
2343
|
], 2));
|
|
2344
2344
|
}
|
|
2345
|
-
}),
|
|
2345
|
+
}), dr = ["aria-label"], fr = { class: "flex-1 overflow-y-auto" }, pr = {
|
|
2346
2346
|
key: 0,
|
|
2347
2347
|
class: "flex flex-col items-center justify-center text-center px-6 py-16 gap-3"
|
|
2348
|
-
},
|
|
2348
|
+
}, mr = ["onClick"], hr = { class: "min-w-0 flex-1" }, gr = { class: "flex items-baseline justify-between gap-2" }, _r = /* @__PURE__ */ d({
|
|
2349
2349
|
__name: "BaseNotificationPanel",
|
|
2350
2350
|
props: {
|
|
2351
2351
|
title: { default: "Notifications" },
|
|
@@ -2357,7 +2357,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2357
2357
|
},
|
|
2358
2358
|
emits: ["select"],
|
|
2359
2359
|
setup(c, { emit: d }) {
|
|
2360
|
-
let f = d, { isDark: p } = z(), h =
|
|
2360
|
+
let f = d, { isDark: p } = z(), h = q(), { notifications: g, unreadCount: _, open: v, closePanel: b, markAllRead: x, markRead: C } = ln(), w = {
|
|
2361
2361
|
info: "bg-sky-500",
|
|
2362
2362
|
success: "bg-emerald-500",
|
|
2363
2363
|
warning: "bg-amber-500",
|
|
@@ -2366,7 +2366,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2366
2366
|
function O(e) {
|
|
2367
2367
|
C(e), f("select", e);
|
|
2368
2368
|
}
|
|
2369
|
-
return
|
|
2369
|
+
return J(() => {
|
|
2370
2370
|
v.value && b();
|
|
2371
2371
|
}), (r, d) => (y(), i(t, { to: "body" }, [u(n, {
|
|
2372
2372
|
"enter-active-class": "transition-opacity duration-200",
|
|
@@ -2411,7 +2411,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2411
2411
|
onClick: d[2] ||= (...e) => D(x) && D(x)(...e),
|
|
2412
2412
|
class: m(["text-xs font-medium cursor-pointer transition-colors focus:outline-none focus-visible:underline", D(h).emeraldText])
|
|
2413
2413
|
}, " Mark all as read ", 2)], 2)) : a("", !0),
|
|
2414
|
-
s("div",
|
|
2414
|
+
s("div", fr, [T.value === 0 ? (y(), o("div", pr, [u(D(ae), {
|
|
2415
2415
|
class: m(["w-10 h-10", D(h).illustration]),
|
|
2416
2416
|
"aria-hidden": "true"
|
|
2417
2417
|
}, null, 8, ["class"]), s("p", { class: m(["text-sm", D(h).mutedText]) }, E(c.emptyText), 3)])) : (y(), o("ul", {
|
|
@@ -2424,18 +2424,18 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2424
2424
|
}, [s("span", {
|
|
2425
2425
|
class: m(["mt-1.5 w-2 h-2 rounded-full shrink-0", e.read ? D(p) ? "bg-gray-700" : "bg-gray-300" : w[e.type ?? "info"]]),
|
|
2426
2426
|
"aria-hidden": "true"
|
|
2427
|
-
}, null, 2), s("span",
|
|
2427
|
+
}, null, 2), s("span", hr, [s("span", gr, [s("span", { class: m(["text-sm truncate", [e.read ? "font-medium" : "font-semibold", D(h).primaryTextSoft]]) }, E(e.title), 3), e.time ? (y(), o("span", {
|
|
2428
2428
|
key: 0,
|
|
2429
2429
|
class: m(["text-xs shrink-0", D(h).dimText])
|
|
2430
2430
|
}, E(e.time), 3)) : a("", !0)]), e.message ? (y(), o("span", {
|
|
2431
2431
|
key: 0,
|
|
2432
2432
|
class: m(["mt-0.5 block text-sm", D(h).mutedText])
|
|
2433
|
-
}, E(e.message), 3)) : a("", !0)])], 10,
|
|
2434
|
-
], 10,
|
|
2433
|
+
}, E(e.message), 3)) : a("", !0)])], 10, mr)]))), 128))], 2))])
|
|
2434
|
+
], 10, dr)) : a("", !0)]),
|
|
2435
2435
|
_: 1
|
|
2436
2436
|
})]));
|
|
2437
2437
|
}
|
|
2438
|
-
}),
|
|
2438
|
+
}), vr = ["disabled"], yr = /* @__PURE__ */ d({
|
|
2439
2439
|
__name: "BaseChipButton",
|
|
2440
2440
|
props: {
|
|
2441
2441
|
size: { default: "sm" },
|
|
@@ -2452,9 +2452,9 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2452
2452
|
disabled: e.disabled,
|
|
2453
2453
|
class: m(["inline-flex items-center gap-1 font-medium rounded-md border transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", [e.size === "xs" ? "text-xs px-2 py-0.5" : "text-xs px-2.5 py-1", D(r) ? "text-emerald-300 border-emerald-700 bg-emerald-900/30 hover:bg-emerald-800/50" : "text-emerald-700 border-emerald-200 bg-emerald-50 hover:bg-emerald-100"]]),
|
|
2454
2454
|
onClick: i[0] ||= (e) => n("click")
|
|
2455
|
-
}, [C(t.$slots, "default")], 10,
|
|
2455
|
+
}, [C(t.$slots, "default")], 10, vr));
|
|
2456
2456
|
}
|
|
2457
|
-
}),
|
|
2457
|
+
}), br = /* @__PURE__ */ d({
|
|
2458
2458
|
__name: "BaseRemoveButton",
|
|
2459
2459
|
emits: ["click"],
|
|
2460
2460
|
setup(e, { emit: t }) {
|
|
@@ -2465,11 +2465,11 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2465
2465
|
onClick: t[0] ||= (e) => n("click")
|
|
2466
2466
|
}, " × "));
|
|
2467
2467
|
}
|
|
2468
|
-
}),
|
|
2468
|
+
}), xr = { class: "relative flex h-2 w-2" }, Sr = {
|
|
2469
2469
|
key: 0,
|
|
2470
2470
|
class: "animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75",
|
|
2471
2471
|
"aria-hidden": "true"
|
|
2472
|
-
},
|
|
2472
|
+
}, Cr = /* @__PURE__ */ d({
|
|
2473
2473
|
__name: "BaseStatusPill",
|
|
2474
2474
|
props: {
|
|
2475
2475
|
status: {},
|
|
@@ -2489,9 +2489,9 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2489
2489
|
default: return "bg-gray-400";
|
|
2490
2490
|
}
|
|
2491
2491
|
});
|
|
2492
|
-
return (t, n) => (y(), o("div", { class: m(["flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs", i.value]) }, [s("span",
|
|
2492
|
+
return (t, n) => (y(), o("div", { class: m(["flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs", i.value]) }, [s("span", xr, [e.status === "ok" ? (y(), o("span", Sr)) : a("", !0), s("span", { class: m(["relative inline-flex rounded-full h-2 w-2", c.value]) }, null, 2)]), l(" " + E(e.label), 1)], 2));
|
|
2493
2493
|
}
|
|
2494
|
-
}),
|
|
2494
|
+
}), wr = ["value", "type"], Q = /* @__PURE__ */ d({
|
|
2495
2495
|
__name: "BaseInput",
|
|
2496
2496
|
props: {
|
|
2497
2497
|
modelValue: { default: "" },
|
|
@@ -2513,9 +2513,9 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2513
2513
|
type: e.type,
|
|
2514
2514
|
class: m(["rounded border border-slate-300 dark:border-slate-600 bg-slate-50 dark:bg-slate-900 text-slate-900 dark:text-slate-100 text-sm placeholder:text-slate-400 dark:placeholder:text-slate-500 transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 focus-visible:border-emerald-500 disabled:opacity-60 disabled:cursor-not-allowed", [e.block ? "w-full" : "", e.size === "sm" ? "px-2 py-1.5" : "px-3 py-2"]]),
|
|
2515
2515
|
onInput: r
|
|
2516
|
-
}, null, 42,
|
|
2516
|
+
}, null, 42, wr));
|
|
2517
2517
|
}
|
|
2518
|
-
}),
|
|
2518
|
+
}), Tr = ["value"], Er = /* @__PURE__ */ d({
|
|
2519
2519
|
__name: "BaseSelect",
|
|
2520
2520
|
props: {
|
|
2521
2521
|
modelValue: { default: void 0 },
|
|
@@ -2535,13 +2535,13 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2535
2535
|
value: e.modelValue,
|
|
2536
2536
|
class: m(["rounded border border-slate-300 dark:border-slate-600 bg-slate-50 dark:bg-slate-900 text-slate-900 dark:text-slate-100 text-sm cursor-pointer transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 focus-visible:border-emerald-500 disabled:opacity-60 disabled:cursor-not-allowed", [e.block ? "w-full" : "", e.size === "md" ? "px-3 py-2" : "px-2 py-1.5"]]),
|
|
2537
2537
|
onChange: r
|
|
2538
|
-
}, [C(t.$slots, "default")], 42,
|
|
2538
|
+
}, [C(t.$slots, "default")], 42, Tr));
|
|
2539
2539
|
}
|
|
2540
|
-
}),
|
|
2540
|
+
}), Dr = [
|
|
2541
2541
|
"disabled",
|
|
2542
2542
|
"aria-label",
|
|
2543
2543
|
"aria-expanded"
|
|
2544
|
-
],
|
|
2544
|
+
], Or = ["aria-label"], kr = ["aria-selected", "title"], Ar = ["disabled", "onClick"], jr = /* @__PURE__ */ d({
|
|
2545
2545
|
__name: "BaseDropdown",
|
|
2546
2546
|
props: {
|
|
2547
2547
|
options: {},
|
|
@@ -2572,7 +2572,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2572
2572
|
function b(e) {
|
|
2573
2573
|
e.disabled || (c("update:modelValue", e.value), l.value = !1);
|
|
2574
2574
|
}
|
|
2575
|
-
|
|
2575
|
+
J(() => {
|
|
2576
2576
|
l.value = !1;
|
|
2577
2577
|
});
|
|
2578
2578
|
function C(e) {
|
|
@@ -2593,7 +2593,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2593
2593
|
}, [s("span", { class: m(["min-w-0 truncate", f.value ? "" : "text-slate-400 dark:text-slate-500"]) }, E(f.value ? f.value.label : t.placeholder), 3), u(D(le), {
|
|
2594
2594
|
class: m(["shrink-0 transition-transform", [t.chevronClass, l.value ? "rotate-180" : ""]]),
|
|
2595
2595
|
"aria-hidden": "true"
|
|
2596
|
-
}, null, 8, ["class"])], 10,
|
|
2596
|
+
}, null, 8, ["class"])], 10, Dr), l.value ? (y(), o("ul", {
|
|
2597
2597
|
key: 0,
|
|
2598
2598
|
role: "listbox",
|
|
2599
2599
|
"aria-label": t.ariaLabel || t.placeholder,
|
|
@@ -2608,13 +2608,13 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2608
2608
|
disabled: e.disabled,
|
|
2609
2609
|
class: m(_(e)),
|
|
2610
2610
|
onClick: (t) => b(e)
|
|
2611
|
-
}, E(e.label), 11,
|
|
2611
|
+
}, E(e.label), 11, Ar)], 8, kr))), 128))], 8, Or)) : a("", !0)], 2));
|
|
2612
2612
|
}
|
|
2613
|
-
}),
|
|
2613
|
+
}), Mr = ["role", "aria-label"], Nr = [
|
|
2614
2614
|
"aria-pressed",
|
|
2615
2615
|
"title",
|
|
2616
2616
|
"onClick"
|
|
2617
|
-
],
|
|
2617
|
+
], Pr = "bg-slate-50 dark:bg-slate-900 text-slate-600 dark:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-800", Fr = /* @__PURE__ */ d({
|
|
2618
2618
|
__name: "BaseSegmentedControl",
|
|
2619
2619
|
props: {
|
|
2620
2620
|
options: {},
|
|
@@ -2631,7 +2631,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2631
2631
|
let i = t, a = n, s = r(() => i.variant === "toolbar" ? "inline-flex h-9 divide-x divide-slate-300 dark:divide-slate-600 rounded-md border border-slate-300 dark:border-slate-600 overflow-hidden" : "inline-flex rounded border border-slate-300 dark:border-slate-600 overflow-hidden"), c = r(() => i.variant === "toolbar" ? "flex items-center px-3.5 text-xs font-semibold uppercase tracking-wide transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-emerald-500" : `${i.variant === "wide" ? "px-4 py-2" : "px-3 py-2"} text-sm font-medium transition-colors cursor-pointer border-l first:border-l-0 border-slate-300 dark:border-slate-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-emerald-500`), l = r(() => i.variant === "wide" ? "bg-emerald-600 text-white" : "bg-emerald-500 text-white");
|
|
2632
2632
|
function u(e) {
|
|
2633
2633
|
let t = e.value === i.modelValue;
|
|
2634
|
-
return i.optionClass ? i.optionClass(e, t) : t ? l.value :
|
|
2634
|
+
return i.optionClass ? i.optionClass(e, t) : t ? l.value : Pr;
|
|
2635
2635
|
}
|
|
2636
2636
|
return (n, r) => (y(), o("div", {
|
|
2637
2637
|
role: t.ariaLabel ? "group" : void 0,
|
|
@@ -2644,9 +2644,9 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2644
2644
|
"aria-pressed": e.value === t.modelValue,
|
|
2645
2645
|
title: e.title,
|
|
2646
2646
|
onClick: (t) => a("update:modelValue", e.value)
|
|
2647
|
-
}, E(e.label), 11,
|
|
2647
|
+
}, E(e.label), 11, Nr))), 128))], 10, Mr));
|
|
2648
2648
|
}
|
|
2649
|
-
}),
|
|
2649
|
+
}), Ir = { class: "w-full text-sm" }, Lr = { class: "bg-slate-50 dark:bg-slate-800/60 text-slate-600 dark:text-slate-300" }, Rr = { class: "text-left" }, zr = { key: 0 }, Br = ["colspan"], Vr = /* @__PURE__ */ d({
|
|
2650
2650
|
__name: "BaseTable",
|
|
2651
2651
|
props: {
|
|
2652
2652
|
columns: {},
|
|
@@ -2657,24 +2657,24 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2657
2657
|
emptyText: { default: "No rows." }
|
|
2658
2658
|
},
|
|
2659
2659
|
setup(t) {
|
|
2660
|
-
return (n, r) => (y(), o("table",
|
|
2660
|
+
return (n, r) => (y(), o("table", Ir, [s("thead", Lr, [s("tr", Rr, [(y(!0), o(e, null, S(t.columns, (e, t) => (y(), o("th", {
|
|
2661
2661
|
key: t,
|
|
2662
2662
|
class: m(["px-4 py-3", e.align === "right" ? "text-right" : ""])
|
|
2663
|
-
}, E(e.label), 3))), 128))])]), s("tbody", null, [t.empty ? (y(), o("tr",
|
|
2663
|
+
}, E(e.label), 3))), 128))])]), s("tbody", null, [t.empty ? (y(), o("tr", zr, [s("td", {
|
|
2664
2664
|
colspan: t.columns.length,
|
|
2665
2665
|
class: "px-4 py-12 text-center text-slate-500"
|
|
2666
|
-
}, [C(n.$slots, "empty", {}, () => [l(E(t.emptyText), 1)])], 8,
|
|
2666
|
+
}, [C(n.$slots, "empty", {}, () => [l(E(t.emptyText), 1)])], 8, Br)])) : a("", !0), C(n.$slots, "default")])]));
|
|
2667
2667
|
}
|
|
2668
|
-
}),
|
|
2668
|
+
}), Hr = { class: "grid gap-3 md:grid-cols-2" }, Ur = {
|
|
2669
2669
|
key: 0,
|
|
2670
2670
|
class: "block text-[11px] uppercase tracking-wide text-slate-500 mb-1"
|
|
2671
|
-
},
|
|
2671
|
+
}, Wr = ["value"], Gr = {
|
|
2672
2672
|
key: 2,
|
|
2673
2673
|
class: "flex items-center gap-2 mt-4"
|
|
2674
|
-
},
|
|
2674
|
+
}, Kr = ["checked", "onChange"], qr = { class: "text-sm text-slate-900 dark:text-slate-100" }, Jr = {
|
|
2675
2675
|
key: 4,
|
|
2676
2676
|
class: "text-[11px] text-slate-400 mt-1"
|
|
2677
|
-
},
|
|
2677
|
+
}, Yr = /* @__PURE__ */ d({
|
|
2678
2678
|
__name: "BaseSpecFields",
|
|
2679
2679
|
props: {
|
|
2680
2680
|
specs: {},
|
|
@@ -2690,9 +2690,9 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2690
2690
|
let n = parseFloat(t);
|
|
2691
2691
|
r("update", e, Number.isNaN(n) ? t : n);
|
|
2692
2692
|
}
|
|
2693
|
-
return (n, u) => (y(), o("div",
|
|
2694
|
-
u.type === "boolean" ? a("", !0) : (y(), o("label",
|
|
2695
|
-
u.type === "select" ? (y(), i(
|
|
2693
|
+
return (n, u) => (y(), o("div", Hr, [(y(!0), o(e, null, S(t.specs, (u) => (y(), o("div", { key: u.key }, [
|
|
2694
|
+
u.type === "boolean" ? a("", !0) : (y(), o("label", Ur, E(u.label), 1)),
|
|
2695
|
+
u.type === "select" ? (y(), i(Er, {
|
|
2696
2696
|
key: 1,
|
|
2697
2697
|
modelValue: String(t.params[u.key] ?? ""),
|
|
2698
2698
|
"onUpdate:modelValue": (e) => r("update", u.key, e)
|
|
@@ -2700,14 +2700,14 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2700
2700
|
default: N(() => [(y(!0), o(e, null, S(u.options ?? [], (e) => (y(), o("option", {
|
|
2701
2701
|
key: e,
|
|
2702
2702
|
value: e
|
|
2703
|
-
}, E(e), 9,
|
|
2703
|
+
}, E(e), 9, Wr))), 128))]),
|
|
2704
2704
|
_: 2
|
|
2705
|
-
}, 1032, ["modelValue", "onUpdate:modelValue"])) : u.type === "boolean" ? (y(), o("label",
|
|
2705
|
+
}, 1032, ["modelValue", "onUpdate:modelValue"])) : u.type === "boolean" ? (y(), o("label", Gr, [s("input", {
|
|
2706
2706
|
checked: !!t.params[u.key],
|
|
2707
2707
|
type: "checkbox",
|
|
2708
2708
|
class: "h-4 w-4",
|
|
2709
2709
|
onChange: (e) => c(u.key, e)
|
|
2710
|
-
}, null, 40,
|
|
2710
|
+
}, null, 40, Kr), s("span", qr, E(u.label), 1)])) : (y(), i(Q, {
|
|
2711
2711
|
key: 3,
|
|
2712
2712
|
modelValue: t.params[u.key],
|
|
2713
2713
|
type: "number",
|
|
@@ -2720,11 +2720,11 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2720
2720
|
"min",
|
|
2721
2721
|
"onUpdate:modelValue"
|
|
2722
2722
|
])),
|
|
2723
|
-
u.help ? (y(), o("p",
|
|
2723
|
+
u.help ? (y(), o("p", Jr, E(u.help), 1)) : a("", !0),
|
|
2724
2724
|
C(n.$slots, "after", { spec: u })
|
|
2725
2725
|
]))), 128))]));
|
|
2726
2726
|
}
|
|
2727
|
-
}),
|
|
2727
|
+
}), Xr = { class: "mt-1.5 space-y-0.5 px-1" }, Zr = { class: "text-slate-400 dark:text-slate-500" }, Qr = /* @__PURE__ */ d({
|
|
2728
2728
|
__name: "BaseStatBreakdown",
|
|
2729
2729
|
props: {
|
|
2730
2730
|
items: {},
|
|
@@ -2743,16 +2743,16 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2743
2743
|
function i(e) {
|
|
2744
2744
|
return !n.signed || e == null ? "text-slate-500 dark:text-slate-400" : e >= 0 ? "text-emerald-600 dark:text-emerald-400" : "text-red-600 dark:text-red-400";
|
|
2745
2745
|
}
|
|
2746
|
-
return (n, a) => (y(), o("div",
|
|
2746
|
+
return (n, a) => (y(), o("div", Xr, [(y(!0), o(e, null, S(t.items, (e) => (y(), o("div", {
|
|
2747
2747
|
key: e.label,
|
|
2748
2748
|
class: "flex items-center justify-between text-[11px]"
|
|
2749
|
-
}, [s("span",
|
|
2749
|
+
}, [s("span", Zr, E(e.label), 1), s("span", { class: m(["font-mono tabular-nums font-medium", i(e.value)]) }, E(r(e.value)), 3)]))), 128))]));
|
|
2750
2750
|
}
|
|
2751
|
-
}),
|
|
2751
|
+
}), $r = [
|
|
2752
2752
|
"disabled",
|
|
2753
2753
|
"title",
|
|
2754
2754
|
"aria-pressed"
|
|
2755
|
-
],
|
|
2755
|
+
], ei = /* @__PURE__ */ d({
|
|
2756
2756
|
__name: "BaseFilterChip",
|
|
2757
2757
|
props: {
|
|
2758
2758
|
label: { default: "" },
|
|
@@ -2787,15 +2787,15 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2787
2787
|
title: e.title,
|
|
2788
2788
|
"aria-pressed": e.active,
|
|
2789
2789
|
class: m(["whitespace-nowrap rounded-md border px-3 text-sm font-semibold text-center transition-colors focus:outline-none focus-visible:ring-2 disabled:opacity-50 disabled:cursor-not-allowed", e.active ? n[e.color] : t[e.color]])
|
|
2790
|
-
}, [C(r.$slots, "default", {}, () => [l(E(e.label), 1)])], 10,
|
|
2790
|
+
}, [C(r.$slots, "default", {}, () => [l(E(e.label), 1)])], 10, $r));
|
|
2791
2791
|
}
|
|
2792
|
-
}),
|
|
2792
|
+
}), ti = { class: "flex items-center justify-between mb-4" }, ni = { class: "text-lg font-semibold text-slate-900 dark:text-slate-100" }, ri = {
|
|
2793
2793
|
key: 0,
|
|
2794
2794
|
class: "text-xs text-slate-500 dark:text-slate-400"
|
|
2795
|
-
},
|
|
2795
|
+
}, ii = {
|
|
2796
2796
|
key: 0,
|
|
2797
2797
|
class: "inline-flex items-center gap-2 text-xs text-slate-500"
|
|
2798
|
-
},
|
|
2798
|
+
}, ai = { class: "grid gap-4 md:grid-cols-2" }, oi = { class: "md:col-span-2" }, si = ["for"], ci = { class: "md:col-span-2" }, li = ["for"], ui = { class: "text-[11px] text-slate-500 mt-1" }, di = { class: "md:col-span-2" }, fi = ["for"], pi = { class: "md:col-span-2" }, mi = ["for"], hi = { class: "md:col-span-2" }, gi = "placeholder:text-slate-400 dark:placeholder:text-slate-500 font-mono", _i = /* @__PURE__ */ d({
|
|
2799
2799
|
__name: "BaseCredentialsForm",
|
|
2800
2800
|
props: {
|
|
2801
2801
|
title: {},
|
|
@@ -2867,71 +2867,71 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2867
2867
|
}
|
|
2868
2868
|
}
|
|
2869
2869
|
}
|
|
2870
|
-
return g(_), n({ load: _ }), (n, r) => (y(), i(
|
|
2870
|
+
return g(_), n({ load: _ }), (n, r) => (y(), i(st, { class: "!p-6" }, {
|
|
2871
2871
|
default: N(() => [
|
|
2872
|
-
s("div",
|
|
2873
|
-
s("div",
|
|
2874
|
-
s("div",
|
|
2872
|
+
s("div", ti, [s("div", null, [s("h2", ni, E(t.title), 1), t.subtitle ? (y(), o("p", ri, E(t.subtitle), 1)) : a("", !0)]), f.value ? (y(), o("span", ii, [u(ct, { class: "!h-4 !w-4" }), r[4] ||= l(" Saving… ", -1)])) : a("", !0)]),
|
|
2873
|
+
s("div", ai, [
|
|
2874
|
+
s("div", oi, [s("label", {
|
|
2875
2875
|
for: `${t.idPrefix}-key-id`,
|
|
2876
2876
|
class: "block text-xs uppercase tracking-wide text-slate-500 mb-1"
|
|
2877
|
-
}, E(t.keyLabel), 9,
|
|
2877
|
+
}, E(t.keyLabel), 9, si), u(Q, {
|
|
2878
2878
|
id: `${t.idPrefix}-key-id`,
|
|
2879
2879
|
modelValue: h.keyId,
|
|
2880
2880
|
"onUpdate:modelValue": r[0] ||= (e) => h.keyId = e,
|
|
2881
2881
|
type: "text",
|
|
2882
2882
|
autocomplete: "off",
|
|
2883
2883
|
placeholder: t.keyPlaceholder,
|
|
2884
|
-
class: m(
|
|
2884
|
+
class: m(gi)
|
|
2885
2885
|
}, null, 8, [
|
|
2886
2886
|
"id",
|
|
2887
2887
|
"modelValue",
|
|
2888
2888
|
"placeholder"
|
|
2889
2889
|
])]),
|
|
2890
|
-
s("div",
|
|
2890
|
+
s("div", ci, [
|
|
2891
2891
|
s("label", {
|
|
2892
2892
|
for: `${t.idPrefix}-secret`,
|
|
2893
2893
|
class: "block text-xs uppercase tracking-wide text-slate-500 mb-1"
|
|
2894
|
-
}, E(t.secretLabel), 9,
|
|
2895
|
-
u(
|
|
2894
|
+
}, E(t.secretLabel), 9, li),
|
|
2895
|
+
u(Q, {
|
|
2896
2896
|
id: `${t.idPrefix}-secret`,
|
|
2897
2897
|
modelValue: h.secretKey,
|
|
2898
2898
|
"onUpdate:modelValue": r[1] ||= (e) => h.secretKey = e,
|
|
2899
2899
|
type: "password",
|
|
2900
2900
|
autocomplete: "new-password",
|
|
2901
2901
|
placeholder: p.value ? "•••••••• (unchanged — type to replace)" : t.secretPlaceholder,
|
|
2902
|
-
class: m(
|
|
2902
|
+
class: m(gi)
|
|
2903
2903
|
}, null, 8, [
|
|
2904
2904
|
"id",
|
|
2905
2905
|
"modelValue",
|
|
2906
2906
|
"placeholder"
|
|
2907
2907
|
]),
|
|
2908
|
-
s("p",
|
|
2908
|
+
s("p", ui, [p.value ? (y(), o(e, { key: 0 }, [l(E(t.secretSetHint), 1)], 64)) : C(n.$slots, "no-secret-hint", { key: 1 }, () => [l(E(t.permissionsHint), 1)])])
|
|
2909
2909
|
]),
|
|
2910
|
-
s("div",
|
|
2910
|
+
s("div", di, [
|
|
2911
2911
|
s("label", {
|
|
2912
2912
|
for: `${t.idPrefix}-base-url`,
|
|
2913
2913
|
class: "block text-xs uppercase tracking-wide text-slate-500 mb-1"
|
|
2914
|
-
}, "Base URL (trading)", 8,
|
|
2915
|
-
u(
|
|
2914
|
+
}, "Base URL (trading)", 8, fi),
|
|
2915
|
+
u(Q, {
|
|
2916
2916
|
id: `${t.idPrefix}-base-url`,
|
|
2917
2917
|
modelValue: h.baseUrl,
|
|
2918
2918
|
"onUpdate:modelValue": r[2] ||= (e) => h.baseUrl = e,
|
|
2919
2919
|
type: "text",
|
|
2920
|
-
class: m(
|
|
2920
|
+
class: m(gi)
|
|
2921
2921
|
}, null, 8, ["id", "modelValue"]),
|
|
2922
2922
|
C(n.$slots, "base-url-extra", { form: h })
|
|
2923
2923
|
]),
|
|
2924
|
-
s("div",
|
|
2924
|
+
s("div", pi, [s("label", {
|
|
2925
2925
|
for: `${t.idPrefix}-data-url`,
|
|
2926
2926
|
class: "block text-xs uppercase tracking-wide text-slate-500 mb-1"
|
|
2927
|
-
}, "Data URL (market data)", 8,
|
|
2927
|
+
}, "Data URL (market data)", 8, mi), u(Q, {
|
|
2928
2928
|
id: `${t.idPrefix}-data-url`,
|
|
2929
2929
|
modelValue: h.dataUrl,
|
|
2930
2930
|
"onUpdate:modelValue": r[3] ||= (e) => h.dataUrl = e,
|
|
2931
2931
|
type: "text",
|
|
2932
|
-
class: m(
|
|
2932
|
+
class: m(gi)
|
|
2933
2933
|
}, null, 8, ["id", "modelValue"])]),
|
|
2934
|
-
s("div",
|
|
2934
|
+
s("div", hi, [u(U, {
|
|
2935
2935
|
color: D(V).GREEN,
|
|
2936
2936
|
description: t.saveLabel,
|
|
2937
2937
|
isDisable: f.value,
|
|
@@ -2952,7 +2952,7 @@ var ln = ["aria-label", "aria-expanded"], un = { class: "flex flex-col h-full" }
|
|
|
2952
2952
|
});
|
|
2953
2953
|
//#endregion
|
|
2954
2954
|
//#region src/composables/useDebounce.ts
|
|
2955
|
-
function
|
|
2955
|
+
function vi(e, t = 300) {
|
|
2956
2956
|
let n = x(e.value), r = null;
|
|
2957
2957
|
return M(e, (e) => {
|
|
2958
2958
|
r && clearTimeout(r), r = setTimeout(() => {
|
|
@@ -2964,12 +2964,12 @@ function _i(e, t = 300) {
|
|
|
2964
2964
|
}
|
|
2965
2965
|
//#endregion
|
|
2966
2966
|
//#region src/composables/useToast.ts
|
|
2967
|
-
function
|
|
2968
|
-
let t = x(!1), n = x(""), r = x(
|
|
2967
|
+
function yi(e = 3e3) {
|
|
2968
|
+
let t = x(!1), n = x(""), r = x(G.SUCCESS), i = null;
|
|
2969
2969
|
function a() {
|
|
2970
2970
|
i &&= (clearTimeout(i), null);
|
|
2971
2971
|
}
|
|
2972
|
-
function o(o, s =
|
|
2972
|
+
function o(o, s = G.SUCCESS, c = e) {
|
|
2973
2973
|
n.value = o, r.value = s, t.value = !0, a(), i = setTimeout(() => {
|
|
2974
2974
|
t.value = !1, i = null;
|
|
2975
2975
|
}, c);
|
|
@@ -2985,7 +2985,7 @@ function vi(e = 3e3) {
|
|
|
2985
2985
|
}
|
|
2986
2986
|
//#endregion
|
|
2987
2987
|
//#region src/composables/useQueryParamSync.ts
|
|
2988
|
-
function
|
|
2988
|
+
function bi() {
|
|
2989
2989
|
let e = we(), t = Te();
|
|
2990
2990
|
function n(t) {
|
|
2991
2991
|
let n = e.query[t];
|
|
@@ -3006,13 +3006,26 @@ function yi() {
|
|
|
3006
3006
|
};
|
|
3007
3007
|
}
|
|
3008
3008
|
//#endregion
|
|
3009
|
+
//#region src/composables/useFieldClasses.ts
|
|
3010
|
+
function xi() {
|
|
3011
|
+
let { isDark: e } = z(), t = r(() => e.value ? "text-gray-300" : "text-gray-600"), n = r(() => 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");
|
|
3012
|
+
function i(t) {
|
|
3013
|
+
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;
|
|
3014
|
+
}
|
|
3015
|
+
return {
|
|
3016
|
+
label: t,
|
|
3017
|
+
input: n,
|
|
3018
|
+
requiredInput: i
|
|
3019
|
+
};
|
|
3020
|
+
}
|
|
3021
|
+
//#endregion
|
|
3009
3022
|
//#region src/enums/BaseBadgeEnum.ts
|
|
3010
|
-
var
|
|
3023
|
+
var Si = /* @__PURE__ */ function(e) {
|
|
3011
3024
|
return e.WIN = "WIN", e.LOSE = "LOSE", e;
|
|
3012
3025
|
}({});
|
|
3013
3026
|
//#endregion
|
|
3014
3027
|
//#region src/utils/util.ts
|
|
3015
|
-
function
|
|
3028
|
+
function Ci(e) {
|
|
3016
3029
|
let t = "red";
|
|
3017
3030
|
switch (e) {
|
|
3018
3031
|
case I.ERROR:
|
|
@@ -3030,7 +3043,7 @@ function xi(e) {
|
|
|
3030
3043
|
}
|
|
3031
3044
|
return t;
|
|
3032
3045
|
}
|
|
3033
|
-
function
|
|
3046
|
+
function wi(e) {
|
|
3034
3047
|
let t = "red";
|
|
3035
3048
|
switch (e) {
|
|
3036
3049
|
case B.GREEN:
|
|
@@ -3059,14 +3072,14 @@ function Si(e) {
|
|
|
3059
3072
|
}
|
|
3060
3073
|
//#endregion
|
|
3061
3074
|
//#region src/utils/httpColors.ts
|
|
3062
|
-
var
|
|
3075
|
+
var Ti = {
|
|
3063
3076
|
GET: "bg-blue-600",
|
|
3064
3077
|
POST: "bg-emerald-600",
|
|
3065
3078
|
PUT: "bg-amber-600",
|
|
3066
3079
|
DELETE: "bg-red-600",
|
|
3067
3080
|
PATCH: "bg-purple-600",
|
|
3068
3081
|
HEAD: "bg-gray-600"
|
|
3069
|
-
},
|
|
3082
|
+
}, Ei = {
|
|
3070
3083
|
GET: "bg-blue-500",
|
|
3071
3084
|
POST: "bg-green-500",
|
|
3072
3085
|
PUT: "bg-yellow-500",
|
|
@@ -3074,23 +3087,39 @@ var Ci = {
|
|
|
3074
3087
|
PATCH: "bg-purple-500",
|
|
3075
3088
|
HEAD: "bg-gray-500"
|
|
3076
3089
|
};
|
|
3077
|
-
function
|
|
3078
|
-
return e ?
|
|
3090
|
+
function Di(e) {
|
|
3091
|
+
return e ? Ti[e.toUpperCase()] ?? "bg-gray-600" : "bg-gray-600";
|
|
3079
3092
|
}
|
|
3080
|
-
function
|
|
3081
|
-
return e ?
|
|
3093
|
+
function Oi(e) {
|
|
3094
|
+
return e ? Ei[e.toUpperCase()] ?? "bg-gray-500" : "bg-gray-500";
|
|
3082
3095
|
}
|
|
3083
|
-
function
|
|
3096
|
+
function ki(e) {
|
|
3084
3097
|
let t = e ?? 0;
|
|
3085
3098
|
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";
|
|
3086
3099
|
}
|
|
3087
|
-
function
|
|
3100
|
+
function Ai(e, t) {
|
|
3101
|
+
let n = (e || "ANY").toUpperCase();
|
|
3102
|
+
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";
|
|
3103
|
+
}
|
|
3104
|
+
function ji(e, t) {
|
|
3105
|
+
let n = e ?? 200;
|
|
3106
|
+
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";
|
|
3107
|
+
}
|
|
3108
|
+
function Mi(e, t) {
|
|
3088
3109
|
let n = e ?? 200;
|
|
3089
3110
|
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";
|
|
3090
3111
|
}
|
|
3091
3112
|
//#endregion
|
|
3113
|
+
//#region src/utils/kvRows.ts
|
|
3114
|
+
function Ni(e) {
|
|
3115
|
+
return !(e.key ?? "").trim() || e.matcherType === "absent" ? !1 : !(e.value ?? "").trim();
|
|
3116
|
+
}
|
|
3117
|
+
function Pi(e) {
|
|
3118
|
+
return e.matcherType === "absent" || !(e.value ?? "").trim() ? !1 : !(e.key ?? "").trim();
|
|
3119
|
+
}
|
|
3120
|
+
//#endregion
|
|
3092
3121
|
//#region src/utils/sanitizeHtml.ts
|
|
3093
|
-
var
|
|
3122
|
+
var Fi = /* @__PURE__ */ new Set([
|
|
3094
3123
|
"A",
|
|
3095
3124
|
"B",
|
|
3096
3125
|
"STRONG",
|
|
@@ -3105,7 +3134,7 @@ var ki = /* @__PURE__ */ new Set([
|
|
|
3105
3134
|
"LI",
|
|
3106
3135
|
"SPAN",
|
|
3107
3136
|
"DIV"
|
|
3108
|
-
]),
|
|
3137
|
+
]), Ii = /* @__PURE__ */ new Set([
|
|
3109
3138
|
"SCRIPT",
|
|
3110
3139
|
"STYLE",
|
|
3111
3140
|
"IFRAME",
|
|
@@ -3113,53 +3142,53 @@ var ki = /* @__PURE__ */ new Set([
|
|
|
3113
3142
|
"EMBED",
|
|
3114
3143
|
"NOSCRIPT",
|
|
3115
3144
|
"TEMPLATE"
|
|
3116
|
-
]),
|
|
3117
|
-
function
|
|
3145
|
+
]), Li = { A: /* @__PURE__ */ new Set(["href", "title"]) };
|
|
3146
|
+
function Ri(e) {
|
|
3118
3147
|
let t = e.trim().toLowerCase();
|
|
3119
3148
|
return t.startsWith("http://") || t.startsWith("https://") || t.startsWith("mailto:") || t.startsWith("tel:") || t.startsWith("/") || t.startsWith("#") || t === "";
|
|
3120
3149
|
}
|
|
3121
|
-
function
|
|
3150
|
+
function zi(e) {
|
|
3122
3151
|
if (e.nodeType !== Node.ELEMENT_NODE) return;
|
|
3123
3152
|
let t = e, n = t.tagName.toUpperCase();
|
|
3124
|
-
if (!
|
|
3125
|
-
|
|
3153
|
+
if (!Fi.has(n)) {
|
|
3154
|
+
Ii.has(n) ? t.remove() : t.replaceWith(document.createTextNode(t.textContent ?? ""));
|
|
3126
3155
|
return;
|
|
3127
3156
|
}
|
|
3128
|
-
let r =
|
|
3157
|
+
let r = Li[n] ?? /* @__PURE__ */ new Set();
|
|
3129
3158
|
for (let e of Array.from(t.attributes)) {
|
|
3130
3159
|
if (!r.has(e.name.toLowerCase())) {
|
|
3131
3160
|
t.removeAttribute(e.name);
|
|
3132
3161
|
continue;
|
|
3133
3162
|
}
|
|
3134
|
-
n === "A" && e.name.toLowerCase() === "href" && !
|
|
3163
|
+
n === "A" && e.name.toLowerCase() === "href" && !Ri(e.value) && t.removeAttribute(e.name);
|
|
3135
3164
|
}
|
|
3136
3165
|
n === "A" && t.hasAttribute("href") && (t.setAttribute("rel", "noopener noreferrer"), t.setAttribute("target", "_blank"));
|
|
3137
|
-
for (let e of Array.from(t.childNodes))
|
|
3166
|
+
for (let e of Array.from(t.childNodes)) zi(e);
|
|
3138
3167
|
}
|
|
3139
|
-
function
|
|
3168
|
+
function Bi(e) {
|
|
3140
3169
|
if (!e) return "";
|
|
3141
3170
|
let t = new DOMParser().parseFromString(`<div>${e}</div>`, "text/html").body.firstElementChild;
|
|
3142
3171
|
if (!t) return "";
|
|
3143
|
-
for (let e of Array.from(t.childNodes))
|
|
3172
|
+
for (let e of Array.from(t.childNodes)) zi(e);
|
|
3144
3173
|
return t.innerHTML;
|
|
3145
3174
|
}
|
|
3146
3175
|
//#endregion
|
|
3147
3176
|
//#region src/utils/format.ts
|
|
3148
|
-
var
|
|
3149
|
-
function
|
|
3150
|
-
if (e == null || typeof e == "string" && e.trim() === "") return
|
|
3177
|
+
var $ = "—";
|
|
3178
|
+
function Vi(e, t = 4) {
|
|
3179
|
+
if (e == null || typeof e == "string" && e.trim() === "") return $;
|
|
3151
3180
|
let n = typeof e == "string" ? Number(e) : e;
|
|
3152
3181
|
return isFinite(n) ? n.toLocaleString(void 0, {
|
|
3153
3182
|
minimumFractionDigits: t,
|
|
3154
3183
|
maximumFractionDigits: t
|
|
3155
|
-
}) :
|
|
3184
|
+
}) : $;
|
|
3156
3185
|
}
|
|
3157
|
-
function
|
|
3158
|
-
if (e == null || e === "") return
|
|
3186
|
+
function Hi(e) {
|
|
3187
|
+
if (e == null || e === "") return $;
|
|
3159
3188
|
let t = new Date(e);
|
|
3160
3189
|
return isNaN(t.getTime()) ? String(e) : t.toLocaleString();
|
|
3161
3190
|
}
|
|
3162
|
-
function
|
|
3191
|
+
function Ui(e) {
|
|
3163
3192
|
return new Date(e).toLocaleString(void 0, {
|
|
3164
3193
|
month: "short",
|
|
3165
3194
|
day: "numeric",
|
|
@@ -3167,13 +3196,13 @@ function Ri(e) {
|
|
|
3167
3196
|
minute: "2-digit"
|
|
3168
3197
|
});
|
|
3169
3198
|
}
|
|
3170
|
-
function
|
|
3199
|
+
function Wi(e) {
|
|
3171
3200
|
return new Date(e).toLocaleDateString(void 0, {
|
|
3172
3201
|
month: "short",
|
|
3173
3202
|
day: "numeric"
|
|
3174
3203
|
});
|
|
3175
3204
|
}
|
|
3176
|
-
function
|
|
3205
|
+
function Gi(e) {
|
|
3177
3206
|
try {
|
|
3178
3207
|
return new Date(e).toLocaleString(void 0, {
|
|
3179
3208
|
year: "numeric",
|
|
@@ -3189,7 +3218,7 @@ function Bi(e) {
|
|
|
3189
3218
|
return String(e);
|
|
3190
3219
|
}
|
|
3191
3220
|
}
|
|
3192
|
-
function
|
|
3221
|
+
function Ki(e) {
|
|
3193
3222
|
if (!isFinite(e) || e === 0) return e.toFixed(2);
|
|
3194
3223
|
let t = Math.abs(e), n = 2;
|
|
3195
3224
|
return t < 1e-4 ? n = 8 : t < .01 ? n = 6 : t < 1 ? n = 4 : t < 100 && (n = 3), e.toLocaleString(void 0, {
|
|
@@ -3197,20 +3226,48 @@ function Vi(e) {
|
|
|
3197
3226
|
maximumFractionDigits: n
|
|
3198
3227
|
});
|
|
3199
3228
|
}
|
|
3200
|
-
function
|
|
3229
|
+
function qi(e, t = 2) {
|
|
3201
3230
|
return `${e >= 0 ? "+" : ""}${e.toFixed(t)}%`;
|
|
3202
3231
|
}
|
|
3203
|
-
function
|
|
3232
|
+
function Ji(e) {
|
|
3204
3233
|
return `${e < 0 ? "-" : "+"}$${Math.abs(e).toFixed(2)}`;
|
|
3205
3234
|
}
|
|
3206
|
-
function
|
|
3207
|
-
if (e == null ||
|
|
3235
|
+
function Yi(e) {
|
|
3236
|
+
if (e == null || e === "") return $;
|
|
3237
|
+
let t = new Date(e);
|
|
3238
|
+
return isNaN(t.getTime()) ? String(e) : t.toLocaleDateString("en-US", {
|
|
3239
|
+
year: "numeric",
|
|
3240
|
+
month: "short",
|
|
3241
|
+
day: "numeric"
|
|
3242
|
+
});
|
|
3243
|
+
}
|
|
3244
|
+
function Xi(e) {
|
|
3245
|
+
if (e == null || e === "") return $;
|
|
3246
|
+
let t = new Date(e);
|
|
3247
|
+
return isNaN(t.getTime()) ? String(e) : t.toLocaleDateString("en-US", {
|
|
3248
|
+
year: "numeric",
|
|
3249
|
+
month: "short",
|
|
3250
|
+
day: "numeric",
|
|
3251
|
+
hour: "2-digit",
|
|
3252
|
+
minute: "2-digit"
|
|
3253
|
+
});
|
|
3254
|
+
}
|
|
3255
|
+
function Zi(e) {
|
|
3256
|
+
if (typeof e != "number" || !isFinite(e) || e <= 0) return "";
|
|
3257
|
+
let t = e / 1e3, n = t < 1 ? 3 : 2;
|
|
3258
|
+
return `= ${t.toFixed(n)} s`;
|
|
3259
|
+
}
|
|
3260
|
+
function Qi(e) {
|
|
3261
|
+
return e ? e < 1024 ? `${e} B` : e < 1024 * 1024 ? `${(e / 1024).toFixed(1)} KB` : `${(e / (1024 * 1024)).toFixed(1)} MB` : "";
|
|
3262
|
+
}
|
|
3263
|
+
function $i(e, t = 2) {
|
|
3264
|
+
if (e == null || !isFinite(e)) return $;
|
|
3208
3265
|
let n = Math.floor(Math.max(0, e) / 6e4), r = Math.floor(n / 1440), i = Math.floor(n % 1440 / 60), a = n % 60, o = [];
|
|
3209
3266
|
return r > 0 && o.push(`${r}d`), (r > 0 || i > 0) && o.push(`${i}h`), o.push(`${a}m`), o.slice(0, t).join(" ");
|
|
3210
3267
|
}
|
|
3211
3268
|
//#endregion
|
|
3212
3269
|
//#region src/utils/specForm.ts
|
|
3213
|
-
function
|
|
3270
|
+
function ea(e, t) {
|
|
3214
3271
|
let n = {};
|
|
3215
3272
|
if (!e) return n;
|
|
3216
3273
|
for (let r of e) {
|
|
@@ -3219,7 +3276,7 @@ function Gi(e, t) {
|
|
|
3219
3276
|
}
|
|
3220
3277
|
return n;
|
|
3221
3278
|
}
|
|
3222
|
-
function
|
|
3279
|
+
function ta(e, t) {
|
|
3223
3280
|
if (!e) return null;
|
|
3224
3281
|
for (let n of e) if (n.type === "decimal" || n.type === "integer") {
|
|
3225
3282
|
let e = t[n.key], r = e === "" || e == null;
|
|
@@ -3230,7 +3287,7 @@ function Ki(e, t) {
|
|
|
3230
3287
|
}
|
|
3231
3288
|
//#endregion
|
|
3232
3289
|
//#region src/utils/pnl.ts
|
|
3233
|
-
function
|
|
3290
|
+
function na(e) {
|
|
3234
3291
|
if (e.buyPrice == null || e.lastPrice == null || e.filledQty == null) return {
|
|
3235
3292
|
pnlUsd: null,
|
|
3236
3293
|
pnlPct: null
|
|
@@ -3245,4 +3302,4 @@ function qi(e) {
|
|
|
3245
3302
|
};
|
|
3246
3303
|
}
|
|
3247
3304
|
//#endregion
|
|
3248
|
-
export { I as AlertEnum,
|
|
3305
|
+
export { I as AlertEnum, Kn as BaseActionButton, je as BaseAlert, In as BaseAppLayout, Ne as BaseBadge, Si as BaseBadgeEnum, Le as BaseBreadcrumb, U as BaseButton, V as BaseButtonEnum, H as BaseButtonSizeEnum, yr as BaseChipButton, Ut as BaseCollapsibleSection, qt as BaseConfirmModal, Jn as BaseCopyButton, _i as BaseCredentialsForm, jr as BaseDropdown, Nn as BaseEntityPickerModal, ei as BaseFilterChip, Qn as BaseGoogleSignInButton, Q as BaseInput, Xe as BaseLine, Ze as BaseLoginEnum, ur as BaseLoginForm, $e as BaseLogo, W as BaseLogoEnum, ot as BaseModal, et as BaseModalEnum, Bt as BaseModalShell, en as BaseNotFoundPage, _r as BaseNotificationPanel, Bn as BasePageHeader, br as BaseRemoveButton, st as BaseRow, Fr as BaseSegmentedControl, Er as BaseSelect, bn as BaseSidebar, Yr as BaseSpecFields, ct as BaseSpinner, Qr as BaseStatBreakdown, Cr as BaseStatusPill, Vr as BaseTable, Zt as BaseTextInputModal, dt as BaseToast, G as BaseToastEnum, Un as BaseToolbarButton, pt as ColoredSquares, B as ColorsEnums, gt as EarningsCard, xt as EuroAmount, Ke as LineEnum, Et as Pagination, K as PositioningEnum, jt as TrendArrow, ea as buildSpecParams, na as computePnL, ta as firstInvalidNumericSpec, Qi as fmtBytes, Yi as fmtCalendarDate, Xi as fmtCalendarDateTime, Hi as fmtDate, Wi as fmtDateShort, Ui as fmtDateTime, Gi as fmtDateTimeMs, $i as fmtDuration, Zi as fmtMsAsSeconds, Vi as fmtNumber, qi as fmtPct, Ki as fmtPrice, Ji as fmtUsd, Ci as getBaseColor, wi as getBaseColorOf, Oe as initTheme, Ri as isSafeHref, Oi as methodBadgeBright, Di as methodBadgeSolid, Ai as methodBadgeTinted, Pi as rowKeyMissing, Ni as rowValueMissing, Bi as sanitizeHtml, ji as statusBadgeSoft, ki as statusBadgeSolid, Mi as statusBadgeTinted, vi as useDebouncedRef, J as useEscapeKey, xi as useFieldClasses, tn as useMobileSidebar, ln as useNotifications, bi as useQueryParamSync, on as useSidebarCollapse, z as useTheme, q as useThemeClasses, yi as useToast };
|