mgv-backoffice 1.20.0 → 1.22.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 +145 -2
- package/dist/components/BaseInput.vue.d.ts +21 -0
- package/dist/components/BaseSegmentedControl.vue.d.ts +25 -0
- package/dist/components/BaseSelect.vue.d.ts +28 -0
- package/dist/components/BaseSpecFields.vue.d.ts +23 -0
- package/dist/components/BaseTable.vue.d.ts +26 -0
- package/dist/components/EarningsCard.vue.d.ts +17 -6
- package/dist/index.d.ts +8 -0
- package/dist/types/segmented.d.ts +11 -0
- package/dist/types/specField.d.ts +23 -0
- package/dist/types/table.d.ts +8 -0
- package/dist/ui-lib.css +1 -1
- package/dist/ui-lib.js +442 -270
- package/dist/ui-lib.umd.cjs +1 -1
- package/package.json +1 -1
- package/src/components/BaseInput.test.ts +40 -0
- package/src/components/BaseInput.vue +46 -0
- package/src/components/BaseSegmentedControl.test.ts +78 -0
- package/src/components/BaseSegmentedControl.vue +98 -0
- package/src/components/BaseSelect.test.ts +37 -0
- package/src/components/BaseSelect.vue +46 -0
- package/src/components/BaseSpecFields.test.ts +78 -0
- package/src/components/BaseSpecFields.vue +83 -0
- package/src/components/BaseTable.test.ts +55 -0
- package/src/components/BaseTable.vue +50 -0
- package/src/components/EarningsCard.test.ts +57 -0
- package/src/components/EarningsCard.vue +55 -18
- package/src/index.ts +10 -0
- package/src/types/segmented.ts +11 -0
- package/src/types/specField.ts +25 -0
- package/src/types/table.ts +8 -0
package/dist/ui-lib.js
CHANGED
|
@@ -1,55 +1,55 @@
|
|
|
1
1
|
import { Fragment as e, Teleport as t, Transition as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createStaticVNode as c, createTextVNode as l, createVNode as u, defineComponent as d, effectScope as f, nextTick as p, normalizeClass as m, onBeforeUnmount as h, onMounted as g, onScopeDispose as _, onUnmounted as v, openBlock as y, ref as b, renderList as x, renderSlot as S, resolveComponent as C, resolveDynamicComponent as w, toDisplayString as T, unref as E, useSlots as D, vModelCheckbox as O, vModelDynamic as k, vModelText as A, vShow as ee, watch as j, withCtx as M, withDirectives as N, withKeys as P, withModifiers as F } from "vue";
|
|
2
|
-
import { ArrowDownIcon as te, ArrowUpIcon as ne, Bars3Icon as re, BellIcon as ie, CheckCircleIcon as ae, ChevronDoubleLeftIcon as oe, ChevronDoubleRightIcon as se, ChevronRightIcon as ce, ClipboardDocumentCheckIcon as le, ClipboardDocumentIcon as ue, DocumentDuplicateIcon as de, ExclamationCircleIcon as fe, ExclamationTriangleIcon as pe, FolderIcon as me, InformationCircleIcon as he, MagnifyingGlassIcon as ge, MinusIcon as _e, MoonIcon as ve, SunIcon as ye, XMarkIcon as
|
|
3
|
-
import { HomeIcon as
|
|
4
|
-
import { useRoute as
|
|
2
|
+
import { ArrowDownIcon as te, ArrowUpIcon as ne, Bars3Icon as re, BellIcon as ie, CheckCircleIcon as ae, ChevronDoubleLeftIcon as oe, ChevronDoubleRightIcon as se, ChevronRightIcon as ce, ClipboardDocumentCheckIcon as le, ClipboardDocumentIcon as ue, DocumentDuplicateIcon as de, ExclamationCircleIcon as fe, ExclamationTriangleIcon as pe, FolderIcon as me, InformationCircleIcon as he, MagnifyingGlassIcon as ge, MinusIcon as _e, MoonIcon as ve, SunIcon as ye, XMarkIcon as I } from "@heroicons/vue/24/outline";
|
|
3
|
+
import { HomeIcon as be } from "@heroicons/vue/24/solid";
|
|
4
|
+
import { useRoute as xe, useRouter as Se } from "vue-router";
|
|
5
5
|
//#region src/enums/AlertEnum.ts
|
|
6
|
-
var
|
|
6
|
+
var L = /* @__PURE__ */ function(e) {
|
|
7
7
|
return e.WARNING = "WARNING", e.ERROR = "ERROR", e.SUCCESS = "SUCCESS", e.INFO = "INFO", e;
|
|
8
|
-
}({}),
|
|
8
|
+
}({}), R = /* @__PURE__ */ function(e) {
|
|
9
9
|
return e.NONE = "NONE", e.RED = "RED", e.YELLOW = "YELLOW", e.BLACK = "BLACK", e.GRAY = "GRAY", e.GREEN = "GREEN", e.BLUE = "BLUE", e;
|
|
10
10
|
}({});
|
|
11
11
|
//#endregion
|
|
12
12
|
//#region src/utils/util.ts
|
|
13
|
-
function
|
|
13
|
+
function Ce(e) {
|
|
14
14
|
let t = "red";
|
|
15
15
|
switch (e) {
|
|
16
|
-
case
|
|
16
|
+
case L.ERROR:
|
|
17
17
|
t = "red";
|
|
18
18
|
break;
|
|
19
|
-
case
|
|
19
|
+
case L.SUCCESS:
|
|
20
20
|
t = "green";
|
|
21
21
|
break;
|
|
22
|
-
case
|
|
22
|
+
case L.INFO:
|
|
23
23
|
t = "gray";
|
|
24
24
|
break;
|
|
25
|
-
case
|
|
25
|
+
case L.WARNING:
|
|
26
26
|
t = "yellow";
|
|
27
27
|
break;
|
|
28
28
|
}
|
|
29
29
|
return t;
|
|
30
30
|
}
|
|
31
|
-
function
|
|
31
|
+
function we(e) {
|
|
32
32
|
let t = "red";
|
|
33
33
|
switch (e) {
|
|
34
|
-
case
|
|
34
|
+
case R.GREEN:
|
|
35
35
|
t = "green";
|
|
36
36
|
break;
|
|
37
|
-
case
|
|
37
|
+
case R.RED:
|
|
38
38
|
t = "red";
|
|
39
39
|
break;
|
|
40
|
-
case
|
|
40
|
+
case R.BLUE:
|
|
41
41
|
t = "blue";
|
|
42
42
|
break;
|
|
43
|
-
case
|
|
43
|
+
case R.YELLOW:
|
|
44
44
|
t = "yellow";
|
|
45
45
|
break;
|
|
46
|
-
case
|
|
46
|
+
case R.BLACK:
|
|
47
47
|
t = "black";
|
|
48
48
|
break;
|
|
49
|
-
case
|
|
49
|
+
case R.GRAY:
|
|
50
50
|
t = "gray";
|
|
51
51
|
break;
|
|
52
|
-
case
|
|
52
|
+
case R.NONE:
|
|
53
53
|
t = "";
|
|
54
54
|
break;
|
|
55
55
|
}
|
|
@@ -57,7 +57,7 @@ function Te(e) {
|
|
|
57
57
|
}
|
|
58
58
|
//#endregion
|
|
59
59
|
//#region src/components/BaseAlert.vue?vue&type=script&setup=true&lang.ts
|
|
60
|
-
var
|
|
60
|
+
var Te = { class: "font-medium pl-1" }, Ee = /* @__PURE__ */ d({
|
|
61
61
|
__name: "BaseAlert",
|
|
62
62
|
props: {
|
|
63
63
|
title: {
|
|
@@ -68,35 +68,35 @@ var Ee = { class: "font-medium pl-1" }, De = /* @__PURE__ */ d({
|
|
|
68
68
|
color: {
|
|
69
69
|
type: String,
|
|
70
70
|
required: !1,
|
|
71
|
-
default:
|
|
71
|
+
default: L.ERROR
|
|
72
72
|
}
|
|
73
73
|
},
|
|
74
74
|
setup(e) {
|
|
75
75
|
let t = e, n = r(() => {
|
|
76
76
|
switch (t.color) {
|
|
77
|
-
case
|
|
78
|
-
case
|
|
79
|
-
case
|
|
77
|
+
case L.SUCCESS: return ae;
|
|
78
|
+
case L.WARNING: return pe;
|
|
79
|
+
case L.INFO: return he;
|
|
80
80
|
default: return fe;
|
|
81
81
|
}
|
|
82
82
|
}), a = r(() => {
|
|
83
83
|
switch (t.color) {
|
|
84
|
-
case
|
|
85
|
-
case
|
|
86
|
-
case
|
|
84
|
+
case L.SUCCESS: return "text-green-500";
|
|
85
|
+
case L.WARNING: return "text-yellow-500";
|
|
86
|
+
case L.INFO: return "text-gray-500";
|
|
87
87
|
default: return "text-red-500";
|
|
88
88
|
}
|
|
89
89
|
});
|
|
90
90
|
function c() {
|
|
91
|
-
let e =
|
|
91
|
+
let e = Ce(t.color);
|
|
92
92
|
return "flex items-center p-4 mb-4 text-sm text-" + e + "-800 border border-" + e + "-300 rounded-lg bg-" + e + "-50 dark:bg-gray-800 dark:text-" + e + "-400 dark:border-" + e + "-800";
|
|
93
93
|
}
|
|
94
94
|
return (t, r) => (y(), o("div", {
|
|
95
95
|
class: m(c()),
|
|
96
96
|
role: "alert"
|
|
97
|
-
}, [(y(), i(w(n.value), { class: m(["w-6 h-6 flex-shrink-0", a.value]) }, null, 8, ["class"])), s("div", null, [s("span",
|
|
97
|
+
}, [(y(), i(w(n.value), { class: m(["w-6 h-6 flex-shrink-0", a.value]) }, null, 8, ["class"])), s("div", null, [s("span", Te, T(e.title), 1)])], 2));
|
|
98
98
|
}
|
|
99
|
-
}),
|
|
99
|
+
}), De = "bg-red-100 text-red-700 border-red-200", z = /* @__PURE__ */ d({
|
|
100
100
|
__name: "BaseBadge",
|
|
101
101
|
props: { color: {
|
|
102
102
|
type: String,
|
|
@@ -104,26 +104,26 @@ var Ee = { class: "font-medium pl-1" }, De = /* @__PURE__ */ d({
|
|
|
104
104
|
} },
|
|
105
105
|
setup(e) {
|
|
106
106
|
let t = D(), n = r(() => !!t.default), i = e, s = {
|
|
107
|
-
[
|
|
108
|
-
[
|
|
109
|
-
[
|
|
110
|
-
[
|
|
111
|
-
[
|
|
112
|
-
[
|
|
113
|
-
[
|
|
114
|
-
}, c = r(() => `inline-flex items-center gap-1 font-semibold text-xs leading-none px-3 py-1.5 rounded-full border ${i.color && s[i.color] ||
|
|
107
|
+
[R.RED]: "bg-red-100 text-red-700 border-red-200",
|
|
108
|
+
[R.GREEN]: "bg-green-100 text-green-700 border-green-200",
|
|
109
|
+
[R.BLUE]: "bg-blue-100 text-blue-700 border-blue-200",
|
|
110
|
+
[R.YELLOW]: "bg-yellow-100 text-yellow-700 border-yellow-200",
|
|
111
|
+
[R.GRAY]: "bg-gray-100 text-gray-700 border-gray-200",
|
|
112
|
+
[R.BLACK]: "bg-gray-800 text-gray-100 border-gray-700",
|
|
113
|
+
[R.NONE]: "bg-gray-50 text-gray-600 border-gray-200"
|
|
114
|
+
}, c = r(() => `inline-flex items-center gap-1 font-semibold text-xs leading-none px-3 py-1.5 rounded-full border ${i.color && s[i.color] || De}`);
|
|
115
115
|
return (e, t) => n.value ? (y(), o("span", {
|
|
116
116
|
key: 0,
|
|
117
117
|
class: m(c.value)
|
|
118
118
|
}, [S(e.$slots, "default")], 2)) : a("", !0);
|
|
119
119
|
}
|
|
120
|
-
}),
|
|
120
|
+
}), Oe = {
|
|
121
121
|
class: "flex px-5 py-3 text-gray-700 border border-gray-200 rounded-lg bg-gray-50 dark:bg-gray-800 dark:border-gray-700",
|
|
122
122
|
"aria-label": "Breadcrumb"
|
|
123
|
-
},
|
|
123
|
+
}, ke = { class: "inline-flex items-center space-x-1 md:space-x-3" }, Ae = {
|
|
124
124
|
class: "inline-flex items-center",
|
|
125
125
|
style: { "margin-left": "0" }
|
|
126
|
-
},
|
|
126
|
+
}, je = /* @__PURE__ */ d({
|
|
127
127
|
__name: "BaseBreadcrumb",
|
|
128
128
|
props: {
|
|
129
129
|
items: {
|
|
@@ -148,11 +148,11 @@ var Ee = { class: "font-medium pl-1" }, De = /* @__PURE__ */ d({
|
|
|
148
148
|
});
|
|
149
149
|
return (t, n) => {
|
|
150
150
|
let r = C("router-link");
|
|
151
|
-
return y(), o("nav",
|
|
151
|
+
return y(), o("nav", Oe, [s("ol", ke, [s("li", Ae, [u(r, {
|
|
152
152
|
to: "/",
|
|
153
153
|
class: "inline-flex items-center text-sm font-medium text-gray-700 hover:text-blue-600 dark:text-gray-400 dark:hover:text-white"
|
|
154
154
|
}, {
|
|
155
|
-
default: M(() => [u(E(
|
|
155
|
+
default: M(() => [u(E(be), { class: "h-4 w-4 text-gray-500 mr-2" }), n[0] ||= l(" Home ", -1)]),
|
|
156
156
|
_: 1
|
|
157
157
|
})]), (y(!0), o(e, null, x(i.value, (e, t) => (y(), o("li", {
|
|
158
158
|
key: t,
|
|
@@ -167,52 +167,52 @@ var Ee = { class: "font-medium pl-1" }, De = /* @__PURE__ */ d({
|
|
|
167
167
|
}, 1032, ["to"])]))), 128))])]);
|
|
168
168
|
};
|
|
169
169
|
}
|
|
170
|
-
}),
|
|
170
|
+
}), B = /* @__PURE__ */ function(e) {
|
|
171
171
|
return e.RED = "RED", e.BLUE = "BLUE", e.WHITE = "WHITE", e.DARK = "DARK", e.GREEN = "GREEN", e.EMERALD = "EMERALD", e.YELLOW = "YELLOW", e.PURPLE = "PURPLE", e.SKY = "SKY", e.GRAY = "GRAY", e.AMBER = "AMBER", e;
|
|
172
|
-
}({}),
|
|
172
|
+
}({}), V = /* @__PURE__ */ function(e) {
|
|
173
173
|
return e.EXTRA_SMALL = "EXTRA_SMALL", e.SMALL = "SMALL", e.BASE = "BASE", e.LARGE = "LARGE", e.EXTRA_LARGE = "EXTRA_LARGE", e;
|
|
174
|
-
}({}),
|
|
175
|
-
function
|
|
176
|
-
if (
|
|
177
|
-
e !==
|
|
174
|
+
}({}), H = b(!1), Me = !1, U = "mgv-theme";
|
|
175
|
+
function Ne(e) {
|
|
176
|
+
if (Me) {
|
|
177
|
+
e !== U && console.warn(`[ui-lib] useTheme: storage key "${e}" ignored — theme already initialized with "${U}". Call initTheme({ storageKey }) before mounting any component.`);
|
|
178
178
|
return;
|
|
179
179
|
}
|
|
180
|
-
if (
|
|
181
|
-
let e = window.localStorage?.getItem(
|
|
182
|
-
e ?
|
|
180
|
+
if (Me = !0, U = e, typeof window < "u") {
|
|
181
|
+
let e = window.localStorage?.getItem(U);
|
|
182
|
+
e ? H.value = e === "dark" : typeof window.matchMedia == "function" && (H.value = window.matchMedia("(prefers-color-scheme: dark)").matches);
|
|
183
183
|
}
|
|
184
184
|
typeof document < "u" && f(!0).run(() => {
|
|
185
|
-
j(
|
|
186
|
-
document.documentElement.classList.toggle("dark", e), window.localStorage?.setItem(
|
|
185
|
+
j(H, (e) => {
|
|
186
|
+
document.documentElement.classList.toggle("dark", e), window.localStorage?.setItem(U, e ? "dark" : "light");
|
|
187
187
|
}, { immediate: !0 });
|
|
188
188
|
});
|
|
189
189
|
}
|
|
190
|
-
function
|
|
191
|
-
|
|
190
|
+
function Pe(e) {
|
|
191
|
+
Ne(e?.storageKey ?? U);
|
|
192
192
|
}
|
|
193
|
-
function
|
|
194
|
-
|
|
193
|
+
function W(e) {
|
|
194
|
+
Ne(e?.storageKey ?? U);
|
|
195
195
|
function t() {
|
|
196
|
-
|
|
196
|
+
H.value = !H.value;
|
|
197
197
|
}
|
|
198
198
|
return {
|
|
199
|
-
isDark:
|
|
199
|
+
isDark: H,
|
|
200
200
|
toggleTheme: t
|
|
201
201
|
};
|
|
202
202
|
}
|
|
203
203
|
//#endregion
|
|
204
204
|
//#region src/components/BaseButton.vue?vue&type=script&setup=true&lang.ts
|
|
205
|
-
var
|
|
205
|
+
var Fe = [
|
|
206
206
|
"type",
|
|
207
207
|
"disabled",
|
|
208
208
|
"onClick"
|
|
209
|
-
],
|
|
209
|
+
], Ie = {
|
|
210
210
|
key: 0,
|
|
211
211
|
class: "inline-flex items-center"
|
|
212
|
-
},
|
|
212
|
+
}, Le = { key: 1 }, Re = { key: 2 }, ze = ["type", "disabled"], Be = {
|
|
213
213
|
key: 0,
|
|
214
214
|
class: "inline-flex items-center"
|
|
215
|
-
},
|
|
215
|
+
}, Ve = { key: 1 }, He = { key: 2 }, Ue = /* @__PURE__ */ d({
|
|
216
216
|
__name: "BaseButton",
|
|
217
217
|
props: {
|
|
218
218
|
description: {
|
|
@@ -222,7 +222,7 @@ var Le = [
|
|
|
222
222
|
color: {
|
|
223
223
|
type: String,
|
|
224
224
|
required: !1,
|
|
225
|
-
default:
|
|
225
|
+
default: B.BLUE
|
|
226
226
|
},
|
|
227
227
|
to: {
|
|
228
228
|
type: String,
|
|
@@ -266,139 +266,139 @@ var Le = [
|
|
|
266
266
|
}
|
|
267
267
|
},
|
|
268
268
|
setup(e) {
|
|
269
|
-
let { isDark: t } =
|
|
269
|
+
let { isDark: t } = W(), n = e;
|
|
270
270
|
function r() {
|
|
271
271
|
let e = {
|
|
272
|
-
[
|
|
272
|
+
[B.BLUE]: {
|
|
273
273
|
light: "text-blue-700 border-blue-300 hover:bg-blue-50",
|
|
274
274
|
dark: "text-blue-400 border-blue-500/40 hover:bg-blue-500/10"
|
|
275
275
|
},
|
|
276
|
-
[
|
|
276
|
+
[B.GREEN]: {
|
|
277
277
|
light: "text-green-700 border-green-300 hover:bg-green-50",
|
|
278
278
|
dark: "text-green-400 border-green-500/40 hover:bg-green-500/10"
|
|
279
279
|
},
|
|
280
|
-
[
|
|
280
|
+
[B.EMERALD]: {
|
|
281
281
|
light: "text-emerald-700 border-emerald-300 hover:bg-emerald-50",
|
|
282
282
|
dark: "text-emerald-400 border-emerald-500/40 hover:bg-emerald-500/10"
|
|
283
283
|
},
|
|
284
|
-
[
|
|
284
|
+
[B.RED]: {
|
|
285
285
|
light: "text-red-700 border-red-300 hover:bg-red-50",
|
|
286
286
|
dark: "text-red-400 border-red-500/40 hover:bg-red-500/10"
|
|
287
287
|
},
|
|
288
|
-
[
|
|
288
|
+
[B.YELLOW]: {
|
|
289
289
|
light: "text-yellow-700 border-yellow-300 hover:bg-yellow-50",
|
|
290
290
|
dark: "text-yellow-400 border-yellow-500/40 hover:bg-yellow-500/10"
|
|
291
291
|
},
|
|
292
|
-
[
|
|
292
|
+
[B.PURPLE]: {
|
|
293
293
|
light: "text-purple-700 border-purple-300 hover:bg-purple-50",
|
|
294
294
|
dark: "text-purple-400 border-purple-500/40 hover:bg-purple-500/10"
|
|
295
295
|
},
|
|
296
|
-
[
|
|
296
|
+
[B.SKY]: {
|
|
297
297
|
light: "text-sky-700 border-sky-300 hover:bg-sky-50",
|
|
298
298
|
dark: "text-sky-400 border-sky-500/40 hover:bg-sky-500/10"
|
|
299
299
|
},
|
|
300
|
-
[
|
|
300
|
+
[B.AMBER]: {
|
|
301
301
|
light: "text-amber-700 border-amber-300 hover:bg-amber-50",
|
|
302
302
|
dark: "text-amber-400 border-amber-500/40 hover:bg-amber-500/10"
|
|
303
303
|
},
|
|
304
|
-
[
|
|
304
|
+
[B.GRAY]: {
|
|
305
305
|
light: "text-gray-700 border-gray-300 hover:bg-gray-50",
|
|
306
306
|
dark: "text-gray-300 border-gray-600 hover:bg-gray-800"
|
|
307
307
|
},
|
|
308
|
-
[
|
|
308
|
+
[B.DARK]: {
|
|
309
309
|
light: "text-gray-700 border-gray-300 hover:bg-gray-50",
|
|
310
310
|
dark: "text-gray-300 border-gray-600 hover:bg-gray-800"
|
|
311
311
|
},
|
|
312
|
-
[
|
|
312
|
+
[B.WHITE]: {
|
|
313
313
|
light: "text-gray-700 border-gray-300 hover:bg-gray-50",
|
|
314
314
|
dark: "text-gray-300 border-gray-600 hover:bg-gray-800"
|
|
315
315
|
}
|
|
316
|
-
}, r = e[n.color] ?? e[
|
|
316
|
+
}, r = e[n.color] ?? e[B.BLUE], i = t.value ? r.dark : r.light;
|
|
317
317
|
return n.isDisable || n.isLoading ? `border bg-transparent ${i} opacity-50 cursor-not-allowed` : `focus:outline-none border bg-transparent ${i}`;
|
|
318
318
|
}
|
|
319
319
|
function c() {
|
|
320
320
|
let e = {
|
|
321
|
-
[
|
|
321
|
+
[B.BLUE]: {
|
|
322
322
|
light: "text-blue-600 hover:bg-blue-50",
|
|
323
323
|
dark: "text-blue-400 hover:bg-blue-500/10"
|
|
324
324
|
},
|
|
325
|
-
[
|
|
325
|
+
[B.GREEN]: {
|
|
326
326
|
light: "text-green-600 hover:bg-green-50",
|
|
327
327
|
dark: "text-green-400 hover:bg-green-500/10"
|
|
328
328
|
},
|
|
329
|
-
[
|
|
329
|
+
[B.EMERALD]: {
|
|
330
330
|
light: "text-emerald-600 hover:bg-emerald-50",
|
|
331
331
|
dark: "text-emerald-400 hover:bg-emerald-500/10"
|
|
332
332
|
},
|
|
333
|
-
[
|
|
333
|
+
[B.SKY]: {
|
|
334
334
|
light: "text-sky-600 hover:bg-sky-50",
|
|
335
335
|
dark: "text-sky-400 hover:bg-sky-500/10"
|
|
336
336
|
},
|
|
337
|
-
[
|
|
337
|
+
[B.RED]: {
|
|
338
338
|
light: "text-red-500 hover:bg-red-50",
|
|
339
339
|
dark: "text-red-400 hover:bg-red-500/10"
|
|
340
340
|
},
|
|
341
|
-
[
|
|
341
|
+
[B.AMBER]: {
|
|
342
342
|
light: "text-amber-700 hover:bg-amber-50",
|
|
343
343
|
dark: "text-amber-300 hover:bg-amber-500/10"
|
|
344
344
|
},
|
|
345
|
-
[
|
|
345
|
+
[B.YELLOW]: {
|
|
346
346
|
light: "text-yellow-600 hover:bg-yellow-50",
|
|
347
347
|
dark: "text-yellow-400 hover:bg-yellow-500/10"
|
|
348
348
|
},
|
|
349
|
-
[
|
|
349
|
+
[B.PURPLE]: {
|
|
350
350
|
light: "text-purple-600 hover:bg-purple-50",
|
|
351
351
|
dark: "text-purple-400 hover:bg-purple-500/10"
|
|
352
352
|
},
|
|
353
|
-
[
|
|
353
|
+
[B.GRAY]: {
|
|
354
354
|
light: "text-gray-500 hover:bg-gray-100",
|
|
355
355
|
dark: "text-gray-400 hover:bg-gray-800"
|
|
356
356
|
},
|
|
357
|
-
[
|
|
357
|
+
[B.DARK]: {
|
|
358
358
|
light: "text-gray-500 hover:bg-gray-100",
|
|
359
359
|
dark: "text-gray-400 hover:bg-gray-800"
|
|
360
360
|
},
|
|
361
|
-
[
|
|
361
|
+
[B.WHITE]: {
|
|
362
362
|
light: "text-gray-500 hover:bg-gray-100",
|
|
363
363
|
dark: "text-gray-400 hover:bg-gray-800"
|
|
364
364
|
}
|
|
365
|
-
}, r = e[n.color] ?? e[
|
|
365
|
+
}, r = e[n.color] ?? e[B.GRAY], i = t.value ? r.dark : r.light;
|
|
366
366
|
return n.isDisable || n.isLoading ? `bg-transparent ${i} opacity-60 cursor-not-allowed` : `focus:outline-none bg-transparent ${i} cursor-pointer`;
|
|
367
367
|
}
|
|
368
368
|
function l() {
|
|
369
369
|
let e = n.isDisable || n.isLoading, t;
|
|
370
370
|
switch (n.color) {
|
|
371
|
-
case
|
|
371
|
+
case B.BLUE:
|
|
372
372
|
t = e ? "text-white bg-blue-400 cursor-not-allowed" : "focus:outline-none text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300";
|
|
373
373
|
break;
|
|
374
|
-
case
|
|
374
|
+
case B.WHITE:
|
|
375
375
|
t = e ? "text-gray-900 bg-gray-200 border border-gray-200 cursor-not-allowed" : "focus:outline-none text-gray-900 bg-white border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-200";
|
|
376
376
|
break;
|
|
377
|
-
case
|
|
377
|
+
case B.DARK:
|
|
378
378
|
t = e ? "text-white bg-gray-400 cursor-not-allowed" : "focus:outline-none text-white bg-gray-800 hover:bg-gray-900 focus:ring-4 focus:ring-gray-300";
|
|
379
379
|
break;
|
|
380
|
-
case
|
|
380
|
+
case B.GREEN:
|
|
381
381
|
t = e ? "text-white bg-green-400 cursor-not-allowed" : "focus:outline-none text-white bg-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300";
|
|
382
382
|
break;
|
|
383
|
-
case
|
|
383
|
+
case B.EMERALD:
|
|
384
384
|
t = e ? "text-white bg-emerald-400 cursor-not-allowed" : "focus:outline-none text-white bg-emerald-600 hover:bg-emerald-700 focus:ring-4 focus:ring-emerald-300";
|
|
385
385
|
break;
|
|
386
|
-
case
|
|
386
|
+
case B.RED:
|
|
387
387
|
t = e ? "text-white bg-red-400 cursor-not-allowed" : "focus:outline-none text-white bg-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300";
|
|
388
388
|
break;
|
|
389
|
-
case
|
|
389
|
+
case B.YELLOW:
|
|
390
390
|
t = e ? "text-white bg-yellow-300 cursor-not-allowed" : "focus:outline-none text-white bg-yellow-400 hover:bg-yellow-500 focus:ring-4 focus:ring-yellow-300";
|
|
391
391
|
break;
|
|
392
|
-
case
|
|
392
|
+
case B.PURPLE:
|
|
393
393
|
t = e ? "text-white bg-purple-400 cursor-not-allowed" : "focus:outline-none text-white bg-purple-700 hover:bg-purple-800 focus:ring-4 focus:ring-purple-300";
|
|
394
394
|
break;
|
|
395
|
-
case
|
|
395
|
+
case B.SKY:
|
|
396
396
|
t = e ? "text-white bg-sky-400 cursor-not-allowed" : "focus:outline-none text-white bg-sky-600 hover:bg-sky-700 focus:ring-4 focus:ring-sky-300";
|
|
397
397
|
break;
|
|
398
|
-
case
|
|
398
|
+
case B.AMBER:
|
|
399
399
|
t = e ? "text-white bg-amber-300 cursor-not-allowed" : "focus:outline-none text-white bg-amber-500 hover:bg-amber-600 focus:ring-4 focus:ring-amber-300";
|
|
400
400
|
break;
|
|
401
|
-
case
|
|
401
|
+
case B.GRAY:
|
|
402
402
|
t = e ? "text-white bg-gray-400 cursor-not-allowed" : "focus:outline-none text-white bg-gray-600 hover:bg-gray-700 focus:ring-4 focus:ring-gray-300";
|
|
403
403
|
break;
|
|
404
404
|
default:
|
|
@@ -408,19 +408,19 @@ var Le = [
|
|
|
408
408
|
n.outline && (t = r()), n.ghost && (t = c());
|
|
409
409
|
let i = "px-5 py-2.5 mr-2 mb-2 text-sm";
|
|
410
410
|
switch (n.size) {
|
|
411
|
-
case
|
|
411
|
+
case V.EXTRA_SMALL:
|
|
412
412
|
i = "px-3 py-2 text-xs";
|
|
413
413
|
break;
|
|
414
|
-
case
|
|
414
|
+
case V.SMALL:
|
|
415
415
|
i = "px-3 py-2 text-sm";
|
|
416
416
|
break;
|
|
417
|
-
case
|
|
417
|
+
case V.BASE:
|
|
418
418
|
i = "px-5 py-2.5 text-sm";
|
|
419
419
|
break;
|
|
420
|
-
case
|
|
420
|
+
case V.LARGE:
|
|
421
421
|
i = "px-5 py-3 text-base";
|
|
422
422
|
break;
|
|
423
|
-
case
|
|
423
|
+
case V.EXTRA_LARGE:
|
|
424
424
|
i = "px-6 py-3.5 text-base";
|
|
425
425
|
break;
|
|
426
426
|
}
|
|
@@ -440,7 +440,7 @@ var Le = [
|
|
|
440
440
|
disabled: e.isDisable || e.isLoading,
|
|
441
441
|
onClick: i
|
|
442
442
|
}, [
|
|
443
|
-
e.isLoading ? (y(), o("div",
|
|
443
|
+
e.isLoading ? (y(), o("div", Ie, [...r[0] ||= [s("svg", {
|
|
444
444
|
"aria-hidden": "true",
|
|
445
445
|
role: "status",
|
|
446
446
|
class: "inline w-4 h-4 me-3 animate-spin",
|
|
@@ -454,10 +454,10 @@ var Le = [
|
|
|
454
454
|
d: "M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",
|
|
455
455
|
fill: "currentColor"
|
|
456
456
|
})], -1)]])) : a("", !0),
|
|
457
|
-
e.iconLeft ? a("", !0) : (y(), o("span",
|
|
457
|
+
e.iconLeft ? a("", !0) : (y(), o("span", Le, T(e.description), 1)),
|
|
458
458
|
S(t.$slots, "default"),
|
|
459
|
-
e.iconLeft ? (y(), o("span",
|
|
460
|
-
], 10,
|
|
459
|
+
e.iconLeft ? (y(), o("span", Re, T(e.description), 1)) : a("", !0)
|
|
460
|
+
], 10, Fe)]),
|
|
461
461
|
_: 3
|
|
462
462
|
}, 8, ["to"])) : (y(), o("button", {
|
|
463
463
|
key: 1,
|
|
@@ -465,7 +465,7 @@ var Le = [
|
|
|
465
465
|
class: m(l()),
|
|
466
466
|
disabled: e.isDisable || e.isLoading
|
|
467
467
|
}, [
|
|
468
|
-
e.isLoading ? (y(), o("div",
|
|
468
|
+
e.isLoading ? (y(), o("div", Be, [...r[1] ||= [s("svg", {
|
|
469
469
|
"aria-hidden": "true",
|
|
470
470
|
role: "status",
|
|
471
471
|
class: "inline w-4 h-4 me-3 animate-spin",
|
|
@@ -479,58 +479,58 @@ var Le = [
|
|
|
479
479
|
d: "M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",
|
|
480
480
|
fill: "currentColor"
|
|
481
481
|
})], -1)]])) : a("", !0),
|
|
482
|
-
e.iconLeft ? a("", !0) : (y(), o("span",
|
|
482
|
+
e.iconLeft ? a("", !0) : (y(), o("span", Ve, T(e.description), 1)),
|
|
483
483
|
S(t.$slots, "default"),
|
|
484
|
-
e.iconLeft ? (y(), o("span",
|
|
485
|
-
], 10,
|
|
484
|
+
e.iconLeft ? (y(), o("span", He, T(e.description), 1)) : a("", !0)
|
|
485
|
+
], 10, ze));
|
|
486
486
|
};
|
|
487
487
|
}
|
|
488
|
-
}),
|
|
488
|
+
}), G = /* @__PURE__ */ function(e) {
|
|
489
489
|
return e.BASE = "BASE", e.BASE_SHORTER = "BASE_SHORTER", e.SQUARE = "SQUARE", e;
|
|
490
|
-
}({}),
|
|
490
|
+
}({}), We = {
|
|
491
491
|
key: 0,
|
|
492
492
|
class: "h-px my-8 bg-gray-200 border-0 dark:bg-gray-700"
|
|
493
|
-
},
|
|
493
|
+
}, Ge = {
|
|
494
494
|
key: 1,
|
|
495
495
|
class: "w-48 h-1 mx-auto my-4 bg-gray-100 border-0 rounded md:my-10 dark:bg-gray-700"
|
|
496
|
-
},
|
|
496
|
+
}, Ke = {
|
|
497
497
|
key: 2,
|
|
498
498
|
class: "w-8 h-8 mx-auto my-8 bg-gray-200 border-0 rounded md:my-12 dark:bg-gray-700"
|
|
499
|
-
},
|
|
499
|
+
}, qe = /* @__PURE__ */ d({
|
|
500
500
|
__name: "BaseLine",
|
|
501
501
|
props: { mode: {
|
|
502
502
|
type: String,
|
|
503
503
|
required: !1,
|
|
504
|
-
default:
|
|
504
|
+
default: G.BASE
|
|
505
505
|
} },
|
|
506
506
|
setup(t) {
|
|
507
507
|
return (n, r) => (y(), o(e, null, [
|
|
508
|
-
t.mode === E(
|
|
509
|
-
t.mode === E(
|
|
510
|
-
t.mode === E(
|
|
508
|
+
t.mode === E(G).BASE ? (y(), o("hr", We)) : a("", !0),
|
|
509
|
+
t.mode === E(G).BASE_SHORTER ? (y(), o("hr", Ge)) : a("", !0),
|
|
510
|
+
t.mode === E(G).SQUARE ? (y(), o("hr", Ke)) : a("", !0)
|
|
511
511
|
], 64));
|
|
512
512
|
}
|
|
513
|
-
}),
|
|
513
|
+
}), K = /* @__PURE__ */ function(e) {
|
|
514
514
|
return e.SMALL = "SMALL", e.MEDIUM = "MEDIUM", e.LARGE = "LARGE", e;
|
|
515
|
-
}({}),
|
|
515
|
+
}({}), Je = K, Ye = ["height", "width"], Xe = /* @__PURE__ */ d({
|
|
516
516
|
__name: "BaseLogo",
|
|
517
517
|
props: { size: {
|
|
518
518
|
type: String,
|
|
519
519
|
required: !1,
|
|
520
|
-
default:
|
|
520
|
+
default: K.MEDIUM
|
|
521
521
|
} },
|
|
522
522
|
setup(e) {
|
|
523
523
|
let t = e;
|
|
524
524
|
function n() {
|
|
525
525
|
let e = "";
|
|
526
526
|
switch (t.size) {
|
|
527
|
-
case
|
|
527
|
+
case K.SMALL:
|
|
528
528
|
e = "50px";
|
|
529
529
|
break;
|
|
530
|
-
case
|
|
530
|
+
case K.MEDIUM:
|
|
531
531
|
e = "100px";
|
|
532
532
|
break;
|
|
533
|
-
case
|
|
533
|
+
case K.LARGE:
|
|
534
534
|
e = "150px";
|
|
535
535
|
break;
|
|
536
536
|
}
|
|
@@ -692,23 +692,23 @@ var Le = [
|
|
|
692
692
|
d: "m281.7 183.8h3.6v18.5h-3.6z",
|
|
693
693
|
fill: "url(#k)"
|
|
694
694
|
}, null, -1)
|
|
695
|
-
]], 8,
|
|
695
|
+
]], 8, Ye))]),
|
|
696
696
|
_: 1
|
|
697
697
|
});
|
|
698
698
|
};
|
|
699
699
|
}
|
|
700
|
-
}),
|
|
700
|
+
}), Ze = /* @__PURE__ */ function(e) {
|
|
701
701
|
return e.DELETE = "DELETE", e.SUCCESS = "SUCCESS", e;
|
|
702
|
-
}({}),
|
|
702
|
+
}({}), Qe = {
|
|
703
703
|
key: 0,
|
|
704
704
|
class: "p-6 text-center"
|
|
705
|
-
},
|
|
705
|
+
}, $e = { class: "flex justify-center" }, et = {
|
|
706
706
|
key: 1,
|
|
707
707
|
class: "p-6 text-center"
|
|
708
|
-
},
|
|
708
|
+
}, tt = {
|
|
709
709
|
key: 0,
|
|
710
710
|
class: "mb-5 text-sm text-gray-500"
|
|
711
|
-
},
|
|
711
|
+
}, nt = { class: "flex justify-center" }, rt = /* @__PURE__ */ d({
|
|
712
712
|
__name: "BaseModal",
|
|
713
713
|
props: {
|
|
714
714
|
title: {
|
|
@@ -727,7 +727,7 @@ var Le = [
|
|
|
727
727
|
mode: {
|
|
728
728
|
type: String,
|
|
729
729
|
required: !1,
|
|
730
|
-
default:
|
|
730
|
+
default: Ze.SUCCESS
|
|
731
731
|
}
|
|
732
732
|
},
|
|
733
733
|
emits: ["closeModal", "confirmModal"],
|
|
@@ -748,37 +748,37 @@ var Le = [
|
|
|
748
748
|
role: "dialog",
|
|
749
749
|
"aria-modal": "true",
|
|
750
750
|
"aria-labelledby": i
|
|
751
|
-
}, [t.mode === E(
|
|
751
|
+
}, [t.mode === E(Ze).DELETE ? (y(), o("div", Qe, [
|
|
752
752
|
u(E(fe), { class: "w-12 h-12 text-gray-400 mx-auto mb-4" }),
|
|
753
753
|
s("h3", {
|
|
754
754
|
id: i,
|
|
755
755
|
class: "mb-5 text-lg font-normal text-gray-500 dark:text-gray-400"
|
|
756
756
|
}, " Are you sure you want to delete this " + T(t.title) + "? ", 1),
|
|
757
|
-
s("div",
|
|
758
|
-
color: E(
|
|
757
|
+
s("div", $e, [u(Ue, {
|
|
758
|
+
color: E(B).RED,
|
|
759
759
|
onClick: r[1] ||= (e) => n.$emit("confirmModal"),
|
|
760
760
|
description: "Yes, I'm sure"
|
|
761
|
-
}, null, 8, ["color"]), u(
|
|
762
|
-
color: E(
|
|
761
|
+
}, null, 8, ["color"]), u(Ue, {
|
|
762
|
+
color: E(B).WHITE,
|
|
763
763
|
onClick: r[2] ||= (e) => n.$emit("closeModal"),
|
|
764
764
|
description: "No, cancel"
|
|
765
765
|
}, null, 8, ["color"])])
|
|
766
|
-
])) : (y(), o("div",
|
|
766
|
+
])) : (y(), o("div", et, [
|
|
767
767
|
u(E(ae), { class: "w-12 h-12 text-green-500 mx-auto mb-4" }),
|
|
768
768
|
s("h3", {
|
|
769
769
|
id: i,
|
|
770
770
|
class: "mb-2 text-lg font-medium text-gray-900"
|
|
771
771
|
}, T(t.title), 1),
|
|
772
|
-
t.description ? (y(), o("p",
|
|
772
|
+
t.description ? (y(), o("p", tt, T(t.description), 1)) : a("", !0),
|
|
773
773
|
S(n.$slots, "default"),
|
|
774
|
-
s("div",
|
|
775
|
-
color: E(
|
|
774
|
+
s("div", nt, [u(Ue, {
|
|
775
|
+
color: E(B).BLUE,
|
|
776
776
|
onClick: r[3] ||= (e) => n.$emit("closeModal"),
|
|
777
777
|
description: "OK"
|
|
778
778
|
}, null, 8, ["color"])])
|
|
779
779
|
]))])], 64));
|
|
780
780
|
}
|
|
781
|
-
}),
|
|
781
|
+
}), it = /* @__PURE__ */ d({
|
|
782
782
|
__name: "BaseRow",
|
|
783
783
|
props: { bgColor: {
|
|
784
784
|
type: String,
|
|
@@ -792,7 +792,7 @@ var Le = [
|
|
|
792
792
|
}
|
|
793
793
|
return (e, t) => (y(), o("div", { class: m(n()) }, [S(e.$slots, "default")], 2));
|
|
794
794
|
}
|
|
795
|
-
}),
|
|
795
|
+
}), at = /* @__PURE__ */ d({
|
|
796
796
|
__name: "BaseSpinner",
|
|
797
797
|
props: {
|
|
798
798
|
size: { default: "sm" },
|
|
@@ -820,11 +820,11 @@ var Le = [
|
|
|
820
820
|
"aria-label": "Loading"
|
|
821
821
|
}, null, 2));
|
|
822
822
|
}
|
|
823
|
-
}),
|
|
823
|
+
}), q = /* @__PURE__ */ function(e) {
|
|
824
824
|
return e.SUCCESS = "SUCCESS", e.WARNING = "WARNING", e.ERROR = "ERROR", e;
|
|
825
|
-
}({}),
|
|
825
|
+
}({}), J = /* @__PURE__ */ function(e) {
|
|
826
826
|
return e.TOP_LEFT = "TOP_LEFT", e.TOP_RIGHT = "TOP_RIGHT", e.BOTTOM_LEFT = "BOTTOM_LEFT", e.BOTTOM_RIGHT = "BOTTOM_RIGHT", e;
|
|
827
|
-
}({}),
|
|
827
|
+
}({}), ot = { 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" }, st = { class: "ml-3 text-sm font-normal" }, ct = /* @__PURE__ */ d({
|
|
828
828
|
__name: "BaseToast",
|
|
829
829
|
props: {
|
|
830
830
|
mode: {
|
|
@@ -843,7 +843,7 @@ var Le = [
|
|
|
843
843
|
positioning: {
|
|
844
844
|
type: String,
|
|
845
845
|
required: !1,
|
|
846
|
-
default:
|
|
846
|
+
default: J.TOP_RIGHT
|
|
847
847
|
},
|
|
848
848
|
duration: {
|
|
849
849
|
type: Number,
|
|
@@ -864,13 +864,13 @@ var Le = [
|
|
|
864
864
|
function c() {
|
|
865
865
|
let e = "";
|
|
866
866
|
switch (t.mode) {
|
|
867
|
-
case
|
|
867
|
+
case q.ERROR:
|
|
868
868
|
e = "text-red-500 bg-red-100 dark:bg-red-800 dark:text-red-200";
|
|
869
869
|
break;
|
|
870
|
-
case
|
|
870
|
+
case q.SUCCESS:
|
|
871
871
|
e = "text-green-500 bg-green-100 dark:bg-green-800 dark:text-green-200";
|
|
872
872
|
break;
|
|
873
|
-
case
|
|
873
|
+
case q.WARNING:
|
|
874
874
|
e = "text-orange-500 bg-orange-100 dark:bg-orange-700 dark:text-orange-200";
|
|
875
875
|
break;
|
|
876
876
|
default:
|
|
@@ -882,16 +882,16 @@ var Le = [
|
|
|
882
882
|
function l() {
|
|
883
883
|
let e = "top-5 right-5";
|
|
884
884
|
switch (t.positioning) {
|
|
885
|
-
case
|
|
885
|
+
case J.BOTTOM_LEFT:
|
|
886
886
|
e = "bottom-5 left-5";
|
|
887
887
|
break;
|
|
888
|
-
case
|
|
888
|
+
case J.TOP_LEFT:
|
|
889
889
|
e = "top-5 left-5";
|
|
890
890
|
break;
|
|
891
|
-
case
|
|
891
|
+
case J.TOP_RIGHT:
|
|
892
892
|
e = "top-5 right-5";
|
|
893
893
|
break;
|
|
894
|
-
case
|
|
894
|
+
case J.BOTTOM_RIGHT:
|
|
895
895
|
e = "bottom-5 right-5";
|
|
896
896
|
break;
|
|
897
897
|
}
|
|
@@ -902,28 +902,28 @@ var Le = [
|
|
|
902
902
|
id: "toast-top-right",
|
|
903
903
|
class: m(l()),
|
|
904
904
|
role: "alert"
|
|
905
|
-
}, [s("div",
|
|
906
|
-
e.mode == E(
|
|
905
|
+
}, [s("div", ot, [
|
|
906
|
+
e.mode == E(q).ERROR ? (y(), o("div", {
|
|
907
907
|
key: 0,
|
|
908
908
|
class: m(c())
|
|
909
|
-
}, [u(E(fe), { class: "h-6 w-6 text-red-500" }), r[0] ||= s("span", { class: "sr-only" }, "Error icon", -1)], 2)) : e.mode == E(
|
|
909
|
+
}, [u(E(fe), { class: "h-6 w-6 text-red-500" }), r[0] ||= s("span", { class: "sr-only" }, "Error icon", -1)], 2)) : e.mode == E(q).SUCCESS ? (y(), o("div", {
|
|
910
910
|
key: 1,
|
|
911
911
|
class: m(c())
|
|
912
|
-
}, [u(E(ae), { class: "h-6 w-6 text-green-500" }), r[1] ||= s("span", { class: "sr-only" }, "Check icon", -1)], 2)) : e.mode == E(
|
|
912
|
+
}, [u(E(ae), { class: "h-6 w-6 text-green-500" }), r[1] ||= s("span", { class: "sr-only" }, "Check icon", -1)], 2)) : e.mode == E(q).WARNING ? (y(), o("div", {
|
|
913
913
|
key: 2,
|
|
914
914
|
class: m(c())
|
|
915
915
|
}, [u(E(pe), { class: "h-6 w-6 text-yellow-500" }), r[2] ||= s("span", { class: "sr-only" }, "Warning icon", -1)], 2)) : a("", !0),
|
|
916
|
-
s("div",
|
|
916
|
+
s("div", st, T(e.description), 1),
|
|
917
917
|
e.hasCloseIcon ? (y(), o("button", {
|
|
918
918
|
key: 3,
|
|
919
919
|
type: "button",
|
|
920
920
|
class: "ml-auto -mx-1.5 -my-1.5 bg-white text-gray-400 hover:text-gray-900 rounded-lg focus:ring-2 focus:ring-gray-300 p-1.5 hover:bg-gray-100 inline-flex items-center justify-center h-8 w-8 dark:text-gray-500 dark:hover:text-white dark:bg-gray-800 dark:hover:bg-gray-700 cursor-pointer",
|
|
921
921
|
"aria-label": "Close",
|
|
922
922
|
onClick: i
|
|
923
|
-
}, [r[3] ||= s("span", { class: "sr-only" }, "Close", -1), u(E(
|
|
923
|
+
}, [r[3] ||= s("span", { class: "sr-only" }, "Close", -1), u(E(I), { class: "h-6 w-6 text-gray-500" })])) : a("", !0)
|
|
924
924
|
])], 2)) : a("", !0);
|
|
925
925
|
}
|
|
926
|
-
}),
|
|
926
|
+
}), lt = { class: "w-13" }, ut = /* @__PURE__ */ d({
|
|
927
927
|
__name: "ColoredSquares",
|
|
928
928
|
props: { color: {
|
|
929
929
|
type: String,
|
|
@@ -944,25 +944,25 @@ var Le = [
|
|
|
944
944
|
function i() {
|
|
945
945
|
let e = "gray";
|
|
946
946
|
switch (t.color) {
|
|
947
|
-
case
|
|
947
|
+
case R.GREEN:
|
|
948
948
|
e = "green";
|
|
949
949
|
break;
|
|
950
|
-
case
|
|
950
|
+
case R.RED:
|
|
951
951
|
e = "red";
|
|
952
952
|
break;
|
|
953
|
-
case
|
|
953
|
+
case R.BLUE:
|
|
954
954
|
e = "blue";
|
|
955
955
|
break;
|
|
956
|
-
case
|
|
956
|
+
case R.YELLOW:
|
|
957
957
|
e = "yellow";
|
|
958
958
|
break;
|
|
959
|
-
case
|
|
959
|
+
case R.NONE: return "font-bold text-xs mr-2 px-2.5 py-0.5 rounded-full";
|
|
960
960
|
}
|
|
961
961
|
return "font-bold text-xs mr-2 px-2.5 py-0.5 rounded-full bg-" + e + "-100 text-" + e + "-800";
|
|
962
962
|
}
|
|
963
|
-
return (e, t) => (y(), o("div",
|
|
963
|
+
return (e, t) => (y(), o("div", lt, [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()]) }, [S(e.$slots, "default"), s("div", { class: m(["absolute bottom-0 left-0 h-1 w-full", r.value]) }, null, 2)], 2)]));
|
|
964
964
|
}
|
|
965
|
-
}),
|
|
965
|
+
}), dt = { class: "flex items-start justify-between" }, ft = { class: "text-sm font-bold tracking-wide text-gray-800 dark:text-slate-200" }, pt = /* @__PURE__ */ d({
|
|
966
966
|
__name: "EarningsCard",
|
|
967
967
|
props: {
|
|
968
968
|
title: { default: "TOTAL EARNINGS" },
|
|
@@ -971,10 +971,14 @@ var Le = [
|
|
|
971
971
|
badge: { default: "" },
|
|
972
972
|
currency: { default: "$" },
|
|
973
973
|
decimals: { default: 2 },
|
|
974
|
-
accent: { default: "orange" }
|
|
974
|
+
accent: { default: "orange" },
|
|
975
|
+
signed: {
|
|
976
|
+
type: Boolean,
|
|
977
|
+
default: !1
|
|
978
|
+
}
|
|
975
979
|
},
|
|
976
|
-
setup(
|
|
977
|
-
let
|
|
980
|
+
setup(t) {
|
|
981
|
+
let n = t, i = {
|
|
978
982
|
orange: {
|
|
979
983
|
border: "border-orange-300 dark:border-orange-700",
|
|
980
984
|
badge: "bg-orange-100 text-orange-500 dark:bg-orange-900/40 dark:text-orange-400",
|
|
@@ -990,35 +994,43 @@ var Le = [
|
|
|
990
994
|
subtitle: "text-emerald-500 dark:text-emerald-400",
|
|
991
995
|
iconBox: "bg-emerald-50 dark:bg-emerald-900/30",
|
|
992
996
|
icon: "text-emerald-500"
|
|
997
|
+
},
|
|
998
|
+
red: {
|
|
999
|
+
border: "border-red-300 dark:border-red-700",
|
|
1000
|
+
badge: "bg-red-100 text-red-600 dark:bg-red-900/40 dark:text-red-400",
|
|
1001
|
+
amount: "text-red-500 dark:text-red-400",
|
|
1002
|
+
subtitle: "text-red-500 dark:text-red-400",
|
|
1003
|
+
iconBox: "bg-red-50 dark:bg-red-900/30",
|
|
1004
|
+
icon: "text-red-500"
|
|
993
1005
|
}
|
|
994
|
-
},
|
|
995
|
-
let e = Number
|
|
996
|
-
return
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
});
|
|
1001
|
-
return (
|
|
1006
|
+
}, c = r(() => {
|
|
1007
|
+
let e = Number(n.amount);
|
|
1008
|
+
return Number.isFinite(e) ? e : 0;
|
|
1009
|
+
}), l = r(() => n.signed && c.value < 0), u = r(() => l.value ? "red" : n.accent), d = r(() => i[u.value]), f = r(() => n.currency + c.value.toLocaleString("en-US", {
|
|
1010
|
+
minimumFractionDigits: n.decimals,
|
|
1011
|
+
maximumFractionDigits: n.decimals
|
|
1012
|
+
}));
|
|
1013
|
+
return (n, r) => (y(), o("div", { class: m(["relative rounded-xl border-2 border-dashed bg-white p-6 dark:bg-slate-800", d.value.border]) }, [t.badge ? (y(), o("div", {
|
|
1002
1014
|
key: 0,
|
|
1003
|
-
class: m(["absolute right-4 top-4 rounded-md px-3 py-1 text-xs font-bold tracking-wide",
|
|
1004
|
-
}, T(
|
|
1005
|
-
s("p",
|
|
1006
|
-
s("p", { class: m(["mt-1 text-4xl font-bold",
|
|
1007
|
-
s("p", { class: m(["mt-1 text-sm font-medium",
|
|
1008
|
-
]), s("div", { class: m(["mt-6 flex h-12 w-12 items-center justify-center rounded-xl",
|
|
1009
|
-
class: m(["h-6 w-6",
|
|
1015
|
+
class: m(["absolute right-4 top-4 rounded-md px-3 py-1 text-xs font-bold tracking-wide", d.value.badge])
|
|
1016
|
+
}, T(t.badge), 3)) : a("", !0), s("div", dt, [s("div", null, [
|
|
1017
|
+
s("p", ft, T(t.title), 1),
|
|
1018
|
+
s("p", { class: m(["mt-1 text-4xl font-bold", d.value.amount]) }, T(f.value), 3),
|
|
1019
|
+
s("p", { class: m(["mt-1 text-sm font-medium", d.value.subtitle]) }, T(t.subtitle), 3)
|
|
1020
|
+
]), s("div", { class: m(["mt-6 flex h-12 w-12 items-center justify-center rounded-xl", d.value.iconBox]) }, [(y(), o("svg", {
|
|
1021
|
+
class: m(["h-6 w-6", d.value.icon]),
|
|
1010
1022
|
viewBox: "0 0 24 24",
|
|
1011
1023
|
fill: "none",
|
|
1012
1024
|
stroke: "currentColor",
|
|
1013
1025
|
"stroke-width": "2.5",
|
|
1014
1026
|
"stroke-linecap": "round",
|
|
1015
1027
|
"stroke-linejoin": "round"
|
|
1016
|
-
}, [
|
|
1028
|
+
}, [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));
|
|
1017
1029
|
}
|
|
1018
|
-
}),
|
|
1030
|
+
}), mt = {
|
|
1019
1031
|
key: 0,
|
|
1020
1032
|
class: "font-bold text-green-800"
|
|
1021
|
-
},
|
|
1033
|
+
}, ht = { key: 0 }, gt = { key: 0 }, _t = "font-bold", vt = /* @__PURE__ */ d({
|
|
1022
1034
|
__name: "EuroAmount",
|
|
1023
1035
|
props: {
|
|
1024
1036
|
amount: {
|
|
@@ -1038,15 +1050,15 @@ var Le = [
|
|
|
1038
1050
|
},
|
|
1039
1051
|
setup(t) {
|
|
1040
1052
|
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));
|
|
1041
|
-
return (n, r) => (y(), o(e, null, [i.value && d.value ? (y(), o("span",
|
|
1053
|
+
return (n, r) => (y(), o(e, null, [i.value && d.value ? (y(), o("span", mt, [l(T(t.amount) + " ", 1), t.showCurrency ? (y(), o("span", ht, "€")) : a("", !0)])) : a("", !0), i.value && !d.value ? (y(), o("span", {
|
|
1042
1054
|
key: 1,
|
|
1043
|
-
class: m([
|
|
1044
|
-
}, [l(T(t.amount) + " ", 1), t.showCurrency ? (y(), o("span",
|
|
1055
|
+
class: m([_t, u.value ? "text-red-800" : "text-gray-800"])
|
|
1056
|
+
}, [l(T(t.amount) + " ", 1), t.showCurrency ? (y(), o("span", gt, "€")) : a("", !0)], 2)) : a("", !0)], 64));
|
|
1045
1057
|
}
|
|
1046
|
-
}),
|
|
1058
|
+
}), yt = { class: "flex list-none p-0 m-0" }, bt = ["onClick", "onKeydown"], xt = {
|
|
1047
1059
|
key: 1,
|
|
1048
1060
|
class: "inline-block border border-gray-300 rounded-lg p-3 text-black cursor-not-allowed"
|
|
1049
|
-
},
|
|
1061
|
+
}, St = /* @__PURE__ */ d({
|
|
1050
1062
|
__name: "Pagination",
|
|
1051
1063
|
props: {
|
|
1052
1064
|
totalItems: {
|
|
@@ -1076,28 +1088,28 @@ var Le = [
|
|
|
1076
1088
|
}
|
|
1077
1089
|
return j(() => [r.totalItems, r.itemsPerPage], () => {
|
|
1078
1090
|
a.value = Math.ceil(r.totalItems / r.itemsPerPage), i.value > a.value && (i.value = Math.max(1, a.value)), u(i.value);
|
|
1079
|
-
}, { immediate: !0 }), (t, n) => (y(), o("div", null, [s("ul",
|
|
1091
|
+
}, { immediate: !0 }), (t, n) => (y(), o("div", null, [s("ul", yt, [(y(!0), o(e, null, x(c.value, (e, t) => (y(), o("li", {
|
|
1080
1092
|
key: t,
|
|
1081
1093
|
class: "mr-1"
|
|
1082
|
-
}, [e === 0 ? (y(), o("span",
|
|
1094
|
+
}, [e === 0 ? (y(), o("span", xt, "...")) : (y(), o("a", {
|
|
1083
1095
|
key: 0,
|
|
1084
1096
|
role: "button",
|
|
1085
1097
|
tabindex: "0",
|
|
1086
1098
|
onClick: (t) => d(e),
|
|
1087
1099
|
onKeydown: P((t) => d(e), ["enter"]),
|
|
1088
1100
|
class: m(["inline-block border border-gray-300 rounded-lg p-3 no-underline text-black cursor-pointer hover:bg-gray-300", { "active font-bold bg-gray-200": e === i.value }])
|
|
1089
|
-
}, T(e), 43,
|
|
1101
|
+
}, T(e), 43, bt))]))), 128))])]));
|
|
1090
1102
|
}
|
|
1091
|
-
}),
|
|
1103
|
+
}), Ct = { key: 0 }, wt = {
|
|
1092
1104
|
key: 0,
|
|
1093
1105
|
class: "flex items-center space-x-2"
|
|
1094
|
-
},
|
|
1106
|
+
}, Tt = {
|
|
1095
1107
|
key: 1,
|
|
1096
1108
|
class: "flex items-center space-x-2"
|
|
1097
|
-
},
|
|
1109
|
+
}, Et = {
|
|
1098
1110
|
key: 2,
|
|
1099
1111
|
class: "flex items-center space-x-2"
|
|
1100
|
-
},
|
|
1112
|
+
}, Dt = /* @__PURE__ */ d({
|
|
1101
1113
|
__name: "TrendArrow",
|
|
1102
1114
|
props: {
|
|
1103
1115
|
number: {
|
|
@@ -1111,13 +1123,13 @@ var Le = [
|
|
|
1111
1123
|
},
|
|
1112
1124
|
setup(e) {
|
|
1113
1125
|
let t = e, n = r(() => t.number !== null && t.number !== void 0 && t.number < 0), i = r(() => t.number === 0);
|
|
1114
|
-
return (r, s) => e.number !== null && e.number !== void 0 ? (y(), o("div",
|
|
1126
|
+
return (r, s) => e.number !== null && e.number !== void 0 ? (y(), o("div", Ct, [n.value ? (y(), o("span", wt, [u(z, { color: E(R).RED }, {
|
|
1115
1127
|
default: M(() => [l(T(e.number) + T(t.icon), 1)]),
|
|
1116
1128
|
_: 1
|
|
1117
|
-
}, 8, ["color"]), u(E(te), { class: "h-5 w-5 text-red-500" })])) : i.value ? (y(), o("span",
|
|
1129
|
+
}, 8, ["color"]), u(E(te), { class: "h-5 w-5 text-red-500" })])) : i.value ? (y(), o("span", Tt, [u(z, { color: E(R).GRAY }, {
|
|
1118
1130
|
default: M(() => [l(T(e.number) + T(t.icon), 1)]),
|
|
1119
1131
|
_: 1
|
|
1120
|
-
}, 8, ["color"]), u(E(_e), { class: "h-5 w-5 text-gray-400" })])) : (y(), o("span",
|
|
1132
|
+
}, 8, ["color"]), u(E(_e), { class: "h-5 w-5 text-gray-400" })])) : (y(), o("span", Et, [u(z, { color: E(R).GREEN }, {
|
|
1121
1133
|
default: M(() => [l(T(e.number) + T(t.icon), 1)]),
|
|
1122
1134
|
_: 1
|
|
1123
1135
|
}, 8, ["color"]), u(E(ne), { class: "h-5 w-5 text-green-500" })]))])) : a("", !0);
|
|
@@ -1125,8 +1137,8 @@ var Le = [
|
|
|
1125
1137
|
});
|
|
1126
1138
|
//#endregion
|
|
1127
1139
|
//#region src/composables/useThemeClasses.ts
|
|
1128
|
-
function
|
|
1129
|
-
let { isDark: e } =
|
|
1140
|
+
function Y() {
|
|
1141
|
+
let { isDark: e } = W();
|
|
1130
1142
|
return {
|
|
1131
1143
|
card: r(() => e.value ? "bg-gray-800 border-gray-700" : "bg-white border-gray-200"),
|
|
1132
1144
|
cardAlt: r(() => e.value ? "bg-gray-900 border-gray-700" : "bg-white border-gray-200"),
|
|
@@ -1153,7 +1165,7 @@ function J() {
|
|
|
1153
1165
|
}
|
|
1154
1166
|
//#endregion
|
|
1155
1167
|
//#region src/composables/useEscapeKey.ts
|
|
1156
|
-
function
|
|
1168
|
+
function Ot(e) {
|
|
1157
1169
|
function t(t) {
|
|
1158
1170
|
t.key === "Escape" && e();
|
|
1159
1171
|
}
|
|
@@ -1178,11 +1190,11 @@ var kt = { class: "flex items-start gap-4 min-w-0" }, At = { class: "flex-1 min-
|
|
|
1178
1190
|
},
|
|
1179
1191
|
emits: ["cancel", "backdrop"],
|
|
1180
1192
|
setup(e, { emit: n }) {
|
|
1181
|
-
let c = e, l = n, { isDark: u } =
|
|
1193
|
+
let c = e, l = n, { isDark: u } = W(), d = Y(), 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");
|
|
1182
1194
|
function h() {
|
|
1183
1195
|
l("backdrop"), c.manualClose || l("cancel");
|
|
1184
1196
|
}
|
|
1185
|
-
return
|
|
1197
|
+
return Ot(() => {
|
|
1186
1198
|
c.manualClose || l("cancel");
|
|
1187
1199
|
}), (n, r) => (y(), i(t, { to: "body" }, [s("div", {
|
|
1188
1200
|
class: "fixed inset-0 z-50 flex items-center justify-center bg-black/50",
|
|
@@ -1230,7 +1242,7 @@ var kt = { class: "flex items-start gap-4 min-w-0" }, At = { class: "flex-1 min-
|
|
|
1230
1242
|
},
|
|
1231
1243
|
emits: ["toggle"],
|
|
1232
1244
|
setup(e, { emit: t }) {
|
|
1233
|
-
let n = e, i = t, { isDark: c } =
|
|
1245
|
+
let n = e, i = t, { isDark: c } = W(), l = Y(), 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);
|
|
1234
1246
|
return (t, n) => (y(), o("section", { class: m(["rounded-xl border overflow-hidden transition-colors", E(l).cardAlt]) }, [s("button", {
|
|
1235
1247
|
type: "button",
|
|
1236
1248
|
class: m(["w-full flex items-center justify-between p-4 text-left transition-colors", d.value]),
|
|
@@ -1274,7 +1286,7 @@ var kt = { class: "flex items-start gap-4 min-w-0" }, At = { class: "flex-1 min-
|
|
|
1274
1286
|
},
|
|
1275
1287
|
emits: ["confirm", "cancel"],
|
|
1276
1288
|
setup(e, { emit: t }) {
|
|
1277
|
-
let n = e, r = t, { isDark: c } =
|
|
1289
|
+
let n = e, r = t, { isDark: c } = W(), d = Y();
|
|
1278
1290
|
function f() {
|
|
1279
1291
|
n.submitting || r("confirm");
|
|
1280
1292
|
}
|
|
@@ -1334,7 +1346,7 @@ var kt = { class: "flex items-start gap-4 min-w-0" }, At = { class: "flex-1 min-
|
|
|
1334
1346
|
},
|
|
1335
1347
|
emits: ["confirm", "cancel"],
|
|
1336
1348
|
setup(e, { emit: t }) {
|
|
1337
|
-
let n = e, r = t, { isDark: a } =
|
|
1349
|
+
let n = e, r = t, { isDark: a } = W(), o = Y(), c = b(n.initialValue), l = b(null);
|
|
1338
1350
|
g(async () => {
|
|
1339
1351
|
await p(), l.value?.focus();
|
|
1340
1352
|
});
|
|
@@ -1347,7 +1359,7 @@ var kt = { class: "flex items-start gap-4 min-w-0" }, At = { class: "flex-1 min-
|
|
|
1347
1359
|
function h() {
|
|
1348
1360
|
c.value.trim() === (n.initialValue ?? "").trim() && f();
|
|
1349
1361
|
}
|
|
1350
|
-
return
|
|
1362
|
+
return Ot(f), (t, n) => (y(), i(Lt, {
|
|
1351
1363
|
title: e.title,
|
|
1352
1364
|
"manual-close": "",
|
|
1353
1365
|
onBackdrop: h
|
|
@@ -1387,7 +1399,7 @@ var kt = { class: "flex items-start gap-4 min-w-0" }, At = { class: "flex-1 min-
|
|
|
1387
1399
|
homeLabel: { default: "Go home" }
|
|
1388
1400
|
},
|
|
1389
1401
|
setup(e) {
|
|
1390
|
-
let t = e, n =
|
|
1402
|
+
let t = e, n = Se(), { isDark: r } = W(), i = Y();
|
|
1391
1403
|
function a() {
|
|
1392
1404
|
n.push({ name: t.homeRouteName });
|
|
1393
1405
|
}
|
|
@@ -1544,7 +1556,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
1544
1556
|
}
|
|
1545
1557
|
},
|
|
1546
1558
|
setup(t) {
|
|
1547
|
-
let n = t, c =
|
|
1559
|
+
let n = t, c = Se(), d = xe(), { isDark: f, toggleTheme: h } = W(), { mobileOpen: g, close: _, toggle: v } = Qt(), { collapsed: C, toggle: D } = nn(), { unreadCount: O, togglePanel: k } = an(), A = r(() => n.collapsible && C.value), ee = b(null), M = null;
|
|
1548
1560
|
j(g, async (e) => {
|
|
1549
1561
|
e ? (M = document.activeElement instanceof HTMLElement ? document.activeElement : null, await p(), ee.value?.focus()) : (M?.focus(), M = null);
|
|
1550
1562
|
});
|
|
@@ -1569,7 +1581,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
1569
1581
|
class: m(["p-2 rounded-lg cursor-pointer", E(f) ? "text-gray-400 hover:bg-gray-800" : "text-gray-600 hover:bg-gray-100"]),
|
|
1570
1582
|
"aria-label": E(g) ? "Close navigation menu" : "Open navigation menu",
|
|
1571
1583
|
"aria-expanded": E(g)
|
|
1572
|
-
}, [E(g) ? (y(), i(E(
|
|
1584
|
+
}, [E(g) ? (y(), i(E(I), {
|
|
1573
1585
|
key: 1,
|
|
1574
1586
|
class: "w-6 h-6",
|
|
1575
1587
|
"aria-hidden": "true"
|
|
@@ -1605,7 +1617,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
1605
1617
|
onClick: r[2] ||= (...e) => E(_) && E(_)(...e),
|
|
1606
1618
|
class: m(["lg:hidden p-1.5 rounded-lg cursor-pointer absolute right-3 top-4 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", E(f) ? "text-gray-400 hover:bg-gray-800" : "text-gray-500 hover:bg-gray-100"]),
|
|
1607
1619
|
"aria-label": "Close navigation menu"
|
|
1608
|
-
}, [u(E(
|
|
1620
|
+
}, [u(E(I), {
|
|
1609
1621
|
class: "w-5 h-5",
|
|
1610
1622
|
"aria-hidden": "true"
|
|
1611
1623
|
})], 2)], 2),
|
|
@@ -1710,7 +1722,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
1710
1722
|
},
|
|
1711
1723
|
emits: ["confirm", "cancel"],
|
|
1712
1724
|
setup(t, { emit: n }) {
|
|
1713
|
-
let c = t, l = n, { isDark: d } =
|
|
1725
|
+
let c = t, l = n, { isDark: d } = W(), f = Y(), h = b([]), _ = b(!1), v = b(""), C = b(null), w = b(""), D = b(null), O = r(() => {
|
|
1714
1726
|
let e = c.loader ? h.value : c.items;
|
|
1715
1727
|
return c.excludeId ? e.filter((e) => e.id !== c.excludeId) : e;
|
|
1716
1728
|
}), k = r(() => O.value.filter((e) => e.label.toLowerCase().includes(w.value.toLowerCase()))), ee = {
|
|
@@ -1850,7 +1862,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
1850
1862
|
key: 0,
|
|
1851
1863
|
class: m(["text-sm", E(d) ? "text-gray-300" : "text-gray-600"])
|
|
1852
1864
|
}, T(t.message), 3)) : a("", !0),
|
|
1853
|
-
_.value ? (y(), o("div", _n, [u(
|
|
1865
|
+
_.value ? (y(), o("div", _n, [u(at, { color: "emerald" })])) : v.value ? (y(), o("div", vn, T(v.value), 1)) : a("", !0),
|
|
1854
1866
|
!_.value && !v.value && O.value.length > 0 ? (y(), o("div", yn, [s("div", bn, [u(E(ge), {
|
|
1855
1867
|
class: m(["absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4", E(f).dimText]),
|
|
1856
1868
|
"aria-hidden": "true"
|
|
@@ -1902,7 +1914,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
1902
1914
|
skipLinkLabel: { default: "Skip to main content" }
|
|
1903
1915
|
},
|
|
1904
1916
|
setup(e) {
|
|
1905
|
-
let t = e, { isDark: n } =
|
|
1917
|
+
let t = e, { isDark: n } = W(), { mobileOpen: i } = Qt(), { collapsed: c } = nn(), l = r(() => t.showSidebar);
|
|
1906
1918
|
return (t, r) => (y(), o("div", { class: m(["min-h-screen transition-colors duration-300", E(n) ? "bg-gray-950 text-gray-100" : "bg-gray-50 text-gray-800"]) }, [
|
|
1907
1919
|
s("a", An, T(e.skipLinkLabel), 1),
|
|
1908
1920
|
l.value ? S(t.$slots, "sidebar", { key: 0 }) : a("", !0),
|
|
@@ -1923,7 +1935,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
1923
1935
|
maxWidthClass: { default: "max-w-4xl" }
|
|
1924
1936
|
},
|
|
1925
1937
|
setup(e) {
|
|
1926
|
-
let t = e, { isDark: n } =
|
|
1938
|
+
let t = e, { isDark: n } = W(), i = Y(), c = r(() => {
|
|
1927
1939
|
let e = {
|
|
1928
1940
|
emerald: {
|
|
1929
1941
|
dark: "bg-emerald-500/10",
|
|
@@ -1987,7 +1999,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
1987
1999
|
},
|
|
1988
2000
|
emits: ["click"],
|
|
1989
2001
|
setup(e) {
|
|
1990
|
-
let t = e, { isDark: n } =
|
|
2002
|
+
let t = e, { isDark: n } = W(), i = r(() => {
|
|
1991
2003
|
let e = {
|
|
1992
2004
|
neutral: {
|
|
1993
2005
|
dark: "bg-gray-800 text-gray-100 border-gray-700 hover:bg-gray-700",
|
|
@@ -2032,7 +2044,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
2032
2044
|
},
|
|
2033
2045
|
emits: ["click"],
|
|
2034
2046
|
setup(e) {
|
|
2035
|
-
let t = e, { isDark: n } =
|
|
2047
|
+
let t = e, { isDark: n } = W(), i = r(() => {
|
|
2036
2048
|
let e = {
|
|
2037
2049
|
emerald: {
|
|
2038
2050
|
dark: "text-emerald-400 hover:bg-emerald-500/10",
|
|
@@ -2125,7 +2137,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
2125
2137
|
},
|
|
2126
2138
|
emits: ["copied", "error"],
|
|
2127
2139
|
setup(e, { emit: t }) {
|
|
2128
|
-
let n = e, a = t, { isDark: s } =
|
|
2140
|
+
let n = e, a = t, { isDark: s } = W(), c = b(!1), l = null, u = r(() => c.value ? "Copied!" : n.label ? `Copy ${n.label}` : "Copy"), d = r(() => n.label ? `Copy ${n.label}` : "Copy"), f = r(() => n.variant === "bordered" ? `inline-flex items-center justify-center w-9 h-9 rounded-lg border transition-colors cursor-pointer shrink-0 ${c.value ? s.value ? "border-emerald-500/40 bg-emerald-500/10 text-emerald-400" : "border-emerald-300 bg-emerald-50 text-emerald-600" : s.value ? "border-gray-600 text-gray-400 hover:text-gray-200 hover:bg-gray-800" : "border-gray-300 text-gray-400 hover:text-gray-600 hover:bg-gray-50"}` : `p-1 rounded transition-colors cursor-pointer ${s.value ? "text-gray-400 hover:text-emerald-300 hover:bg-emerald-500/10" : "text-gray-500 hover:text-emerald-600 hover:bg-emerald-50"}`);
|
|
2129
2141
|
async function p(e) {
|
|
2130
2142
|
try {
|
|
2131
2143
|
if (navigator.clipboard?.writeText) {
|
|
@@ -2195,7 +2207,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
2195
2207
|
},
|
|
2196
2208
|
emits: ["click"],
|
|
2197
2209
|
setup(e, { emit: t }) {
|
|
2198
|
-
let n = e, i = t, { isDark: a } =
|
|
2210
|
+
let n = e, i = t, { isDark: a } = W(), l = r(() => n.disabled || n.loading);
|
|
2199
2211
|
function u() {
|
|
2200
2212
|
l.value || i("click");
|
|
2201
2213
|
}
|
|
@@ -2253,7 +2265,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
2253
2265
|
},
|
|
2254
2266
|
emits: ["submit", "google-sign-in"],
|
|
2255
2267
|
setup(t, { emit: n }) {
|
|
2256
|
-
let i = t, c = n, { isDark: d } =
|
|
2268
|
+
let i = t, c = n, { isDark: d } = W(), f = Y(), p = b(""), h = b(""), g = b(!1), _ = b(!1), v = r(() => i.loading || i.googleLoading);
|
|
2257
2269
|
function x() {
|
|
2258
2270
|
v.value || c("submit", {
|
|
2259
2271
|
email: p.value,
|
|
@@ -2367,7 +2379,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
2367
2379
|
},
|
|
2368
2380
|
emits: ["select"],
|
|
2369
2381
|
setup(c, { emit: d }) {
|
|
2370
|
-
let f = d, { isDark: p } =
|
|
2382
|
+
let f = d, { isDark: p } = W(), h = Y(), { notifications: g, unreadCount: _, open: v, closePanel: b, markAllRead: S, markRead: C } = an(), w = {
|
|
2371
2383
|
info: "bg-sky-500",
|
|
2372
2384
|
success: "bg-emerald-500",
|
|
2373
2385
|
warning: "bg-amber-500",
|
|
@@ -2376,7 +2388,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
2376
2388
|
function O(e) {
|
|
2377
2389
|
C(e), f("select", e);
|
|
2378
2390
|
}
|
|
2379
|
-
return
|
|
2391
|
+
return Ot(() => {
|
|
2380
2392
|
v.value && b();
|
|
2381
2393
|
}), (r, d) => (y(), i(t, { to: "body" }, [u(n, {
|
|
2382
2394
|
"enter-active-class": "transition-opacity duration-200",
|
|
@@ -2409,7 +2421,7 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
2409
2421
|
onClick: d[1] ||= (...e) => E(b) && E(b)(...e),
|
|
2410
2422
|
"aria-label": "Close notifications",
|
|
2411
2423
|
class: m(["p-1.5 rounded-lg cursor-pointer transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", E(p) ? "text-gray-400 hover:bg-gray-800" : "text-gray-500 hover:bg-gray-100"])
|
|
2412
|
-
}, [u(E(
|
|
2424
|
+
}, [u(E(I), {
|
|
2413
2425
|
class: "w-5 h-5",
|
|
2414
2426
|
"aria-hidden": "true"
|
|
2415
2427
|
})], 2)], 2),
|
|
@@ -2445,10 +2457,170 @@ var on = ["aria-label", "aria-expanded"], sn = { class: "flex flex-col h-full" }
|
|
|
2445
2457
|
_: 1
|
|
2446
2458
|
})]));
|
|
2447
2459
|
}
|
|
2460
|
+
}), mr = ["value", "type"], hr = /* @__PURE__ */ d({
|
|
2461
|
+
__name: "BaseInput",
|
|
2462
|
+
props: {
|
|
2463
|
+
modelValue: { default: "" },
|
|
2464
|
+
type: { default: "text" },
|
|
2465
|
+
size: { default: "md" },
|
|
2466
|
+
block: {
|
|
2467
|
+
type: Boolean,
|
|
2468
|
+
default: !0
|
|
2469
|
+
}
|
|
2470
|
+
},
|
|
2471
|
+
emits: ["update:modelValue"],
|
|
2472
|
+
setup(e, { emit: t }) {
|
|
2473
|
+
let n = t;
|
|
2474
|
+
function r(e) {
|
|
2475
|
+
n("update:modelValue", e.target.value);
|
|
2476
|
+
}
|
|
2477
|
+
return (t, n) => (y(), o("input", {
|
|
2478
|
+
value: e.modelValue,
|
|
2479
|
+
type: e.type,
|
|
2480
|
+
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", [e.block ? "w-full" : "", e.size === "sm" ? "px-2 py-1.5" : "px-3 py-2"]]),
|
|
2481
|
+
onInput: r
|
|
2482
|
+
}, null, 42, mr));
|
|
2483
|
+
}
|
|
2484
|
+
}), gr = ["value"], _r = /* @__PURE__ */ d({
|
|
2485
|
+
__name: "BaseSelect",
|
|
2486
|
+
props: {
|
|
2487
|
+
modelValue: { default: void 0 },
|
|
2488
|
+
size: { default: "sm" },
|
|
2489
|
+
block: {
|
|
2490
|
+
type: Boolean,
|
|
2491
|
+
default: !0
|
|
2492
|
+
}
|
|
2493
|
+
},
|
|
2494
|
+
emits: ["update:modelValue"],
|
|
2495
|
+
setup(e, { emit: t }) {
|
|
2496
|
+
let n = t;
|
|
2497
|
+
function r(e) {
|
|
2498
|
+
n("update:modelValue", e.target.value);
|
|
2499
|
+
}
|
|
2500
|
+
return (t, n) => (y(), o("select", {
|
|
2501
|
+
value: e.modelValue,
|
|
2502
|
+
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", [e.block ? "w-full" : "", e.size === "md" ? "px-3 py-2" : "px-2 py-1.5"]]),
|
|
2503
|
+
onChange: r
|
|
2504
|
+
}, [S(t.$slots, "default")], 42, gr));
|
|
2505
|
+
}
|
|
2506
|
+
}), vr = ["role", "aria-label"], yr = [
|
|
2507
|
+
"aria-pressed",
|
|
2508
|
+
"title",
|
|
2509
|
+
"onClick"
|
|
2510
|
+
], br = "bg-slate-50 dark:bg-slate-900 text-slate-600 dark:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-800", xr = /* @__PURE__ */ d({
|
|
2511
|
+
__name: "BaseSegmentedControl",
|
|
2512
|
+
props: {
|
|
2513
|
+
options: {},
|
|
2514
|
+
modelValue: {},
|
|
2515
|
+
variant: { default: "base" },
|
|
2516
|
+
ariaLabel: { default: "" },
|
|
2517
|
+
optionClass: {
|
|
2518
|
+
type: Function,
|
|
2519
|
+
default: void 0
|
|
2520
|
+
}
|
|
2521
|
+
},
|
|
2522
|
+
emits: ["update:modelValue"],
|
|
2523
|
+
setup(t, { emit: n }) {
|
|
2524
|
+
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 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 border-l first:border-l-0 border-slate-300 dark:border-slate-600`), l = r(() => i.variant === "wide" ? "bg-emerald-600 text-white" : "bg-emerald-500 text-white");
|
|
2525
|
+
function u(e) {
|
|
2526
|
+
let t = e.value === i.modelValue;
|
|
2527
|
+
return i.optionClass ? i.optionClass(e, t) : t ? l.value : br;
|
|
2528
|
+
}
|
|
2529
|
+
return (n, r) => (y(), o("div", {
|
|
2530
|
+
role: t.ariaLabel ? "group" : void 0,
|
|
2531
|
+
"aria-label": t.ariaLabel || void 0,
|
|
2532
|
+
class: m(s.value)
|
|
2533
|
+
}, [(y(!0), o(e, null, x(t.options, (e) => (y(), o("button", {
|
|
2534
|
+
key: String(e.value),
|
|
2535
|
+
type: "button",
|
|
2536
|
+
class: m([c.value, u(e)]),
|
|
2537
|
+
"aria-pressed": e.value === t.modelValue,
|
|
2538
|
+
title: e.title,
|
|
2539
|
+
onClick: (t) => a("update:modelValue", e.value)
|
|
2540
|
+
}, T(e.label), 11, yr))), 128))], 10, vr));
|
|
2541
|
+
}
|
|
2542
|
+
}), Sr = { class: "w-full text-sm" }, Cr = { class: "bg-slate-50 dark:bg-slate-800/60 text-slate-600 dark:text-slate-300" }, wr = { class: "text-left" }, Tr = { key: 0 }, Er = ["colspan"], Dr = /* @__PURE__ */ d({
|
|
2543
|
+
__name: "BaseTable",
|
|
2544
|
+
props: {
|
|
2545
|
+
columns: {},
|
|
2546
|
+
empty: {
|
|
2547
|
+
type: Boolean,
|
|
2548
|
+
default: !1
|
|
2549
|
+
},
|
|
2550
|
+
emptyText: { default: "No rows." }
|
|
2551
|
+
},
|
|
2552
|
+
setup(t) {
|
|
2553
|
+
return (n, r) => (y(), o("table", Sr, [s("thead", Cr, [s("tr", wr, [(y(!0), o(e, null, x(t.columns, (e, t) => (y(), o("th", {
|
|
2554
|
+
key: t,
|
|
2555
|
+
class: m(["px-4 py-3", e.align === "right" ? "text-right" : ""])
|
|
2556
|
+
}, T(e.label), 3))), 128))])]), s("tbody", null, [t.empty ? (y(), o("tr", Tr, [s("td", {
|
|
2557
|
+
colspan: t.columns.length,
|
|
2558
|
+
class: "px-4 py-12 text-center text-slate-500"
|
|
2559
|
+
}, [S(n.$slots, "empty", {}, () => [l(T(t.emptyText), 1)])], 8, Er)])) : a("", !0), S(n.$slots, "default")])]));
|
|
2560
|
+
}
|
|
2561
|
+
}), Or = { class: "grid gap-3 md:grid-cols-2" }, kr = {
|
|
2562
|
+
key: 0,
|
|
2563
|
+
class: "block text-[11px] uppercase tracking-wide text-slate-500 mb-1"
|
|
2564
|
+
}, Ar = ["value"], jr = {
|
|
2565
|
+
key: 2,
|
|
2566
|
+
class: "flex items-center gap-2 mt-4"
|
|
2567
|
+
}, Mr = ["checked", "onChange"], Nr = { class: "text-sm text-slate-900 dark:text-slate-100" }, Pr = {
|
|
2568
|
+
key: 4,
|
|
2569
|
+
class: "text-[11px] text-slate-400 mt-1"
|
|
2570
|
+
}, Fr = /* @__PURE__ */ d({
|
|
2571
|
+
__name: "BaseSpecFields",
|
|
2572
|
+
props: {
|
|
2573
|
+
specs: {},
|
|
2574
|
+
params: {}
|
|
2575
|
+
},
|
|
2576
|
+
emits: ["update"],
|
|
2577
|
+
setup(t, { emit: n }) {
|
|
2578
|
+
let r = n;
|
|
2579
|
+
function c(e, t) {
|
|
2580
|
+
r("update", e, t.target.checked);
|
|
2581
|
+
}
|
|
2582
|
+
function l(e, t) {
|
|
2583
|
+
let n = parseFloat(t);
|
|
2584
|
+
r("update", e, Number.isNaN(n) ? t : n);
|
|
2585
|
+
}
|
|
2586
|
+
return (n, u) => (y(), o("div", Or, [(y(!0), o(e, null, x(t.specs, (u) => (y(), o("div", { key: u.key }, [
|
|
2587
|
+
u.type === "boolean" ? a("", !0) : (y(), o("label", kr, T(u.label), 1)),
|
|
2588
|
+
u.type === "select" ? (y(), i(_r, {
|
|
2589
|
+
key: 1,
|
|
2590
|
+
modelValue: String(t.params[u.key] ?? ""),
|
|
2591
|
+
"onUpdate:modelValue": (e) => r("update", u.key, e)
|
|
2592
|
+
}, {
|
|
2593
|
+
default: M(() => [(y(!0), o(e, null, x(u.options ?? [], (e) => (y(), o("option", {
|
|
2594
|
+
key: e,
|
|
2595
|
+
value: e
|
|
2596
|
+
}, T(e), 9, Ar))), 128))]),
|
|
2597
|
+
_: 2
|
|
2598
|
+
}, 1032, ["modelValue", "onUpdate:modelValue"])) : u.type === "boolean" ? (y(), o("label", jr, [s("input", {
|
|
2599
|
+
checked: !!t.params[u.key],
|
|
2600
|
+
type: "checkbox",
|
|
2601
|
+
class: "h-4 w-4",
|
|
2602
|
+
onChange: (e) => c(u.key, e)
|
|
2603
|
+
}, null, 40, Mr), s("span", Nr, T(u.label), 1)])) : (y(), i(hr, {
|
|
2604
|
+
key: 3,
|
|
2605
|
+
modelValue: t.params[u.key],
|
|
2606
|
+
type: "number",
|
|
2607
|
+
step: u.step ?? (u.type === "integer" ? 1 : .01),
|
|
2608
|
+
min: u.min ?? void 0,
|
|
2609
|
+
"onUpdate:modelValue": (e) => l(u.key, e)
|
|
2610
|
+
}, null, 8, [
|
|
2611
|
+
"modelValue",
|
|
2612
|
+
"step",
|
|
2613
|
+
"min",
|
|
2614
|
+
"onUpdate:modelValue"
|
|
2615
|
+
])),
|
|
2616
|
+
u.help ? (y(), o("p", Pr, T(u.help), 1)) : a("", !0),
|
|
2617
|
+
S(n.$slots, "after", { spec: u })
|
|
2618
|
+
]))), 128))]));
|
|
2619
|
+
}
|
|
2448
2620
|
});
|
|
2449
2621
|
//#endregion
|
|
2450
2622
|
//#region src/composables/useDebounce.ts
|
|
2451
|
-
function
|
|
2623
|
+
function Ir(e, t = 300) {
|
|
2452
2624
|
let n = b(e.value), r = null;
|
|
2453
2625
|
return j(e, (e) => {
|
|
2454
2626
|
r && clearTimeout(r), r = setTimeout(() => {
|
|
@@ -2460,12 +2632,12 @@ function mr(e, t = 300) {
|
|
|
2460
2632
|
}
|
|
2461
2633
|
//#endregion
|
|
2462
2634
|
//#region src/composables/useToast.ts
|
|
2463
|
-
function
|
|
2464
|
-
let t = b(!1), n = b(""), r = b(
|
|
2635
|
+
function Lr(e = 3e3) {
|
|
2636
|
+
let t = b(!1), n = b(""), r = b(q.SUCCESS), i = null;
|
|
2465
2637
|
function a() {
|
|
2466
2638
|
i &&= (clearTimeout(i), null);
|
|
2467
2639
|
}
|
|
2468
|
-
function o(o, s =
|
|
2640
|
+
function o(o, s = q.SUCCESS, c = e) {
|
|
2469
2641
|
n.value = o, r.value = s, t.value = !0, a(), i = setTimeout(() => {
|
|
2470
2642
|
t.value = !1, i = null;
|
|
2471
2643
|
}, c);
|
|
@@ -2481,16 +2653,16 @@ function hr(e = 3e3) {
|
|
|
2481
2653
|
}
|
|
2482
2654
|
//#endregion
|
|
2483
2655
|
//#region src/enums/BaseBadgeEnum.ts
|
|
2484
|
-
var
|
|
2656
|
+
var Rr = /* @__PURE__ */ function(e) {
|
|
2485
2657
|
return e.WIN = "WIN", e.LOSE = "LOSE", e;
|
|
2486
|
-
}({}),
|
|
2658
|
+
}({}), zr = {
|
|
2487
2659
|
GET: "bg-blue-600",
|
|
2488
2660
|
POST: "bg-emerald-600",
|
|
2489
2661
|
PUT: "bg-amber-600",
|
|
2490
2662
|
DELETE: "bg-red-600",
|
|
2491
2663
|
PATCH: "bg-purple-600",
|
|
2492
2664
|
HEAD: "bg-gray-600"
|
|
2493
|
-
},
|
|
2665
|
+
}, Br = {
|
|
2494
2666
|
GET: "bg-blue-500",
|
|
2495
2667
|
POST: "bg-green-500",
|
|
2496
2668
|
PUT: "bg-yellow-500",
|
|
@@ -2498,23 +2670,23 @@ var gr = /* @__PURE__ */ function(e) {
|
|
|
2498
2670
|
PATCH: "bg-purple-500",
|
|
2499
2671
|
HEAD: "bg-gray-500"
|
|
2500
2672
|
};
|
|
2501
|
-
function
|
|
2502
|
-
return e ?
|
|
2673
|
+
function Vr(e) {
|
|
2674
|
+
return e ? zr[e.toUpperCase()] ?? "bg-gray-600" : "bg-gray-600";
|
|
2503
2675
|
}
|
|
2504
|
-
function
|
|
2505
|
-
return e ?
|
|
2676
|
+
function Hr(e) {
|
|
2677
|
+
return e ? Br[e.toUpperCase()] ?? "bg-gray-500" : "bg-gray-500";
|
|
2506
2678
|
}
|
|
2507
|
-
function
|
|
2679
|
+
function Ur(e) {
|
|
2508
2680
|
let t = e ?? 0;
|
|
2509
2681
|
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";
|
|
2510
2682
|
}
|
|
2511
|
-
function
|
|
2683
|
+
function Wr(e, t) {
|
|
2512
2684
|
let n = e ?? 200;
|
|
2513
2685
|
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";
|
|
2514
2686
|
}
|
|
2515
2687
|
//#endregion
|
|
2516
2688
|
//#region src/utils/sanitizeHtml.ts
|
|
2517
|
-
var
|
|
2689
|
+
var Gr = /* @__PURE__ */ new Set([
|
|
2518
2690
|
"A",
|
|
2519
2691
|
"B",
|
|
2520
2692
|
"STRONG",
|
|
@@ -2529,7 +2701,7 @@ var Cr = /* @__PURE__ */ new Set([
|
|
|
2529
2701
|
"LI",
|
|
2530
2702
|
"SPAN",
|
|
2531
2703
|
"DIV"
|
|
2532
|
-
]),
|
|
2704
|
+
]), Kr = /* @__PURE__ */ new Set([
|
|
2533
2705
|
"SCRIPT",
|
|
2534
2706
|
"STYLE",
|
|
2535
2707
|
"IFRAME",
|
|
@@ -2537,53 +2709,53 @@ var Cr = /* @__PURE__ */ new Set([
|
|
|
2537
2709
|
"EMBED",
|
|
2538
2710
|
"NOSCRIPT",
|
|
2539
2711
|
"TEMPLATE"
|
|
2540
|
-
]),
|
|
2541
|
-
function
|
|
2712
|
+
]), qr = { A: /* @__PURE__ */ new Set(["href", "title"]) };
|
|
2713
|
+
function Jr(e) {
|
|
2542
2714
|
let t = e.trim().toLowerCase();
|
|
2543
2715
|
return t.startsWith("http://") || t.startsWith("https://") || t.startsWith("mailto:") || t.startsWith("tel:") || t.startsWith("/") || t.startsWith("#") || t === "";
|
|
2544
2716
|
}
|
|
2545
|
-
function
|
|
2717
|
+
function Yr(e) {
|
|
2546
2718
|
if (e.nodeType !== Node.ELEMENT_NODE) return;
|
|
2547
2719
|
let t = e, n = t.tagName.toUpperCase();
|
|
2548
|
-
if (!
|
|
2549
|
-
|
|
2720
|
+
if (!Gr.has(n)) {
|
|
2721
|
+
Kr.has(n) ? t.remove() : t.replaceWith(document.createTextNode(t.textContent ?? ""));
|
|
2550
2722
|
return;
|
|
2551
2723
|
}
|
|
2552
|
-
let r =
|
|
2724
|
+
let r = qr[n] ?? /* @__PURE__ */ new Set();
|
|
2553
2725
|
for (let e of Array.from(t.attributes)) {
|
|
2554
2726
|
if (!r.has(e.name.toLowerCase())) {
|
|
2555
2727
|
t.removeAttribute(e.name);
|
|
2556
2728
|
continue;
|
|
2557
2729
|
}
|
|
2558
|
-
n === "A" && e.name.toLowerCase() === "href" && !
|
|
2730
|
+
n === "A" && e.name.toLowerCase() === "href" && !Jr(e.value) && t.removeAttribute(e.name);
|
|
2559
2731
|
}
|
|
2560
2732
|
n === "A" && t.hasAttribute("href") && (t.setAttribute("rel", "noopener noreferrer"), t.setAttribute("target", "_blank"));
|
|
2561
|
-
for (let e of Array.from(t.childNodes))
|
|
2733
|
+
for (let e of Array.from(t.childNodes)) Yr(e);
|
|
2562
2734
|
}
|
|
2563
|
-
function
|
|
2735
|
+
function Xr(e) {
|
|
2564
2736
|
if (!e) return "";
|
|
2565
2737
|
let t = new DOMParser().parseFromString(`<div>${e}</div>`, "text/html").body.firstElementChild;
|
|
2566
2738
|
if (!t) return "";
|
|
2567
|
-
for (let e of Array.from(t.childNodes))
|
|
2739
|
+
for (let e of Array.from(t.childNodes)) Yr(e);
|
|
2568
2740
|
return t.innerHTML;
|
|
2569
2741
|
}
|
|
2570
2742
|
//#endregion
|
|
2571
2743
|
//#region src/utils/format.ts
|
|
2572
|
-
var
|
|
2573
|
-
function
|
|
2574
|
-
if (e == null || typeof e == "string" && e.trim() === "") return
|
|
2744
|
+
var Zr = "—";
|
|
2745
|
+
function Qr(e, t = 4) {
|
|
2746
|
+
if (e == null || typeof e == "string" && e.trim() === "") return Zr;
|
|
2575
2747
|
let n = typeof e == "string" ? Number(e) : e;
|
|
2576
2748
|
return isFinite(n) ? n.toLocaleString(void 0, {
|
|
2577
2749
|
minimumFractionDigits: t,
|
|
2578
2750
|
maximumFractionDigits: t
|
|
2579
|
-
}) :
|
|
2751
|
+
}) : Zr;
|
|
2580
2752
|
}
|
|
2581
|
-
function
|
|
2582
|
-
if (e == null || e === "") return
|
|
2753
|
+
function $r(e) {
|
|
2754
|
+
if (e == null || e === "") return Zr;
|
|
2583
2755
|
let t = new Date(e);
|
|
2584
2756
|
return isNaN(t.getTime()) ? String(e) : t.toLocaleString();
|
|
2585
2757
|
}
|
|
2586
|
-
function
|
|
2758
|
+
function ei(e) {
|
|
2587
2759
|
return new Date(e).toLocaleString(void 0, {
|
|
2588
2760
|
month: "short",
|
|
2589
2761
|
day: "numeric",
|
|
@@ -2591,13 +2763,13 @@ function Mr(e) {
|
|
|
2591
2763
|
minute: "2-digit"
|
|
2592
2764
|
});
|
|
2593
2765
|
}
|
|
2594
|
-
function
|
|
2766
|
+
function ti(e) {
|
|
2595
2767
|
return new Date(e).toLocaleDateString(void 0, {
|
|
2596
2768
|
month: "short",
|
|
2597
2769
|
day: "numeric"
|
|
2598
2770
|
});
|
|
2599
2771
|
}
|
|
2600
|
-
function
|
|
2772
|
+
function ni(e) {
|
|
2601
2773
|
if (!isFinite(e) || e === 0) return e.toFixed(2);
|
|
2602
2774
|
let t = Math.abs(e), n = 2;
|
|
2603
2775
|
return t < 1e-4 ? n = 8 : t < .01 ? n = 6 : t < 1 ? n = 4 : t < 100 && (n = 3), e.toLocaleString(void 0, {
|
|
@@ -2605,15 +2777,15 @@ function Pr(e) {
|
|
|
2605
2777
|
maximumFractionDigits: n
|
|
2606
2778
|
});
|
|
2607
2779
|
}
|
|
2608
|
-
function
|
|
2780
|
+
function ri(e, t = 2) {
|
|
2609
2781
|
return `${e >= 0 ? "+" : ""}${e.toFixed(t)}%`;
|
|
2610
2782
|
}
|
|
2611
|
-
function
|
|
2783
|
+
function ii(e) {
|
|
2612
2784
|
return `${e < 0 ? "-" : "+"}$${Math.abs(e).toFixed(2)}`;
|
|
2613
2785
|
}
|
|
2614
2786
|
//#endregion
|
|
2615
2787
|
//#region src/utils/pnl.ts
|
|
2616
|
-
function
|
|
2788
|
+
function ai(e) {
|
|
2617
2789
|
if (e.buyPrice == null || e.lastPrice == null || e.filledQty == null) return {
|
|
2618
2790
|
pnlUsd: null,
|
|
2619
2791
|
pnlPct: null
|
|
@@ -2628,4 +2800,4 @@ function Lr(e) {
|
|
|
2628
2800
|
};
|
|
2629
2801
|
}
|
|
2630
2802
|
//#endregion
|
|
2631
|
-
export {
|
|
2803
|
+
export { L as AlertEnum, Hn as BaseActionButton, Ee as BaseAlert, Mn as BaseAppLayout, z as BaseBadge, Rr as BaseBadgeEnum, je as BaseBreadcrumb, Ue as BaseButton, B as BaseButtonEnum, V as BaseButtonSizeEnum, Bt as BaseCollapsibleSection, Wt as BaseConfirmModal, Wn as BaseCopyButton, kn as BaseEntityPickerModal, Jn as BaseGoogleSignInButton, hr as BaseInput, qe as BaseLine, Je as BaseLoginEnum, or as BaseLoginForm, Xe as BaseLogo, K as BaseLogoEnum, rt as BaseModal, Ze as BaseModalEnum, Lt as BaseModalShell, Zt as BaseNotFoundPage, pr as BaseNotificationPanel, In as BasePageHeader, it as BaseRow, xr as BaseSegmentedControl, _r as BaseSelect, gn as BaseSidebar, Fr as BaseSpecFields, at as BaseSpinner, Dr as BaseTable, Jt as BaseTextInputModal, ct as BaseToast, q as BaseToastEnum, zn as BaseToolbarButton, ut as ColoredSquares, R as ColorsEnums, pt as EarningsCard, vt as EuroAmount, G as LineEnum, St as Pagination, J as PositioningEnum, Dt as TrendArrow, ai as computePnL, $r as fmtDate, ti as fmtDateShort, ei as fmtDateTime, Qr as fmtNumber, ri as fmtPct, ni as fmtPrice, ii as fmtUsd, Ce as getBaseColor, we as getBaseColorOf, Pe as initTheme, Jr as isSafeHref, Hr as methodBadgeBright, Vr as methodBadgeSolid, Xr as sanitizeHtml, Ur as statusBadgeSolid, Wr as statusBadgeTinted, Ir as useDebouncedRef, Ot as useEscapeKey, Qt as useMobileSidebar, an as useNotifications, nn as useSidebarCollapse, W as useTheme, Y as useThemeClasses, Lr as useToast };
|