mgv-backoffice 1.16.0 → 1.18.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 +19 -7
- package/dist/src/components/BaseButton.vue.d.ts +0 -16
- package/dist/src/components/BaseConfirmModal.vue.d.ts +1 -0
- package/dist/src/components/BaseModal.vue.d.ts +16 -1
- package/dist/src/composables/useTheme.d.ts +7 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/ui-lib.css +1 -1
- package/dist/ui-lib.js +417 -391
- package/dist/ui-lib.umd.cjs +1 -1
- package/package.json +5 -3
- package/src/components/BaseAlert.vue +58 -33
- package/src/components/BaseBadge.vue +1 -0
- package/src/components/BaseButton.vue +1 -9
- package/src/components/BaseConfirmModal.vue +11 -3
- package/src/components/BaseModal.vue +35 -31
- package/src/components/BasePageHeader.vue +8 -2
- package/src/components/BaseRow.vue +1 -1
- package/src/components/BaseSidebar.vue +1 -9
- package/src/components/BaseToast.vue +3 -6
- package/src/components/ColoredSquares.vue +3 -2
- package/src/components/Pagination.test.ts +85 -0
- package/src/components/Pagination.vue +44 -99
- package/src/components/TrendArrow.vue +8 -1
- package/src/composables/useTheme.ts +23 -1
- package/src/index.ts +1 -1
- package/tailwind.safelist.css +43 -123
- package/tailwind.safelist.js +35 -3
package/dist/ui-lib.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Fragment as e, Teleport as t, computed as n, createBlock as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, createTextVNode as s, createVNode as c, defineComponent as l, effectScope as u, nextTick as d, normalizeClass as f, onBeforeUnmount as p, onMounted as m, onScopeDispose as h, onUnmounted as g, openBlock as _, ref as v, renderList as y, renderSlot as b, resolveComponent as x, resolveDynamicComponent as S, toDisplayString as C, unref as w, useSlots as T, vModelText as E, vShow as D, watch as O, withCtx as k, withDirectives as A, withKeys as j, withModifiers as M } from "vue";
|
|
2
|
-
import { ArrowDownIcon as ee, ArrowUpIcon as te, Bars3Icon as N, CheckCircleIcon as
|
|
2
|
+
import { ArrowDownIcon as ee, ArrowUpIcon as te, Bars3Icon as N, CheckCircleIcon as P, ChevronRightIcon as F, ClipboardDocumentCheckIcon as ne, ClipboardDocumentIcon as re, DocumentDuplicateIcon as ie, ExclamationCircleIcon as ae, ExclamationTriangleIcon as I, FolderIcon as oe, InformationCircleIcon as se, MagnifyingGlassIcon as ce, MinusIcon as le, XMarkIcon as ue } from "@heroicons/vue/24/outline";
|
|
3
3
|
import { HomeIcon as de } from "@heroicons/vue/24/solid";
|
|
4
4
|
import { useRoute as fe, useRouter as pe } 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
|
|
@@ -13,16 +13,16 @@ var I = /* @__PURE__ */ function(e) {
|
|
|
13
13
|
function me(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
|
}
|
|
@@ -31,25 +31,25 @@ function me(e) {
|
|
|
31
31
|
function he(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
|
}
|
|
@@ -68,21 +68,35 @@ var ge = { class: "font-medium pl-1" }, _e = /* @__PURE__ */ l({
|
|
|
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
|
-
let t = e
|
|
76
|
-
|
|
75
|
+
let t = e, i = n(() => {
|
|
76
|
+
switch (t.color) {
|
|
77
|
+
case L.SUCCESS: return P;
|
|
78
|
+
case L.WARNING: return I;
|
|
79
|
+
case L.INFO: return se;
|
|
80
|
+
default: return ae;
|
|
81
|
+
}
|
|
82
|
+
}), s = n(() => {
|
|
83
|
+
switch (t.color) {
|
|
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
|
+
default: return "text-red-500";
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
function c() {
|
|
77
91
|
let e = me(t.color);
|
|
78
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";
|
|
79
93
|
}
|
|
80
|
-
return (t,
|
|
81
|
-
class: f(
|
|
94
|
+
return (t, n) => (_(), a("div", {
|
|
95
|
+
class: f(c()),
|
|
82
96
|
role: "alert"
|
|
83
|
-
}, [
|
|
97
|
+
}, [(_(), r(S(i.value), { class: f(["w-6 h-6 flex-shrink-0", s.value]) }, null, 8, ["class"])), o("div", null, [o("span", ge, C(e.title), 1)])], 2));
|
|
84
98
|
}
|
|
85
|
-
}), ve = "bg-red-100 text-red-700 border-red-200",
|
|
99
|
+
}), ve = "bg-red-100 text-red-700 border-red-200", z = /* @__PURE__ */ l({
|
|
86
100
|
__name: "BaseBadge",
|
|
87
101
|
props: { color: {
|
|
88
102
|
type: String,
|
|
@@ -90,12 +104,13 @@ var ge = { class: "font-medium pl-1" }, _e = /* @__PURE__ */ l({
|
|
|
90
104
|
} },
|
|
91
105
|
setup(e) {
|
|
92
106
|
let t = T(), r = n(() => !!t.default), o = e, s = {
|
|
93
|
-
[
|
|
94
|
-
[
|
|
95
|
-
[
|
|
96
|
-
[
|
|
97
|
-
[
|
|
98
|
-
[
|
|
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"
|
|
99
114
|
}, c = n(() => `inline-flex items-center gap-1 font-semibold text-xs leading-none px-3 py-1.5 rounded-full border ${o.color && s[o.color] || ve}`);
|
|
100
115
|
return (e, t) => r.value ? (_(), a("span", {
|
|
101
116
|
key: 0,
|
|
@@ -143,7 +158,7 @@ var ge = { class: "font-medium pl-1" }, _e = /* @__PURE__ */ l({
|
|
|
143
158
|
key: t,
|
|
144
159
|
class: "inline-flex items-center",
|
|
145
160
|
style: { "margin-left": "0" }
|
|
146
|
-
}, [c(w(
|
|
161
|
+
}, [c(w(F), { class: "h-4 w-4 text-gray-500" }), c(r, {
|
|
147
162
|
to: e.url,
|
|
148
163
|
class: "ml-1 text-sm font-medium text-gray-700 hover:text-blue-600 md:ml-2 dark:text-gray-400 dark:hover:text-white"
|
|
149
164
|
}, {
|
|
@@ -152,47 +167,52 @@ var ge = { class: "font-medium pl-1" }, _e = /* @__PURE__ */ l({
|
|
|
152
167
|
}, 1032, ["to"])]))), 128))])]);
|
|
153
168
|
};
|
|
154
169
|
}
|
|
155
|
-
}),
|
|
170
|
+
}), B = /* @__PURE__ */ function(e) {
|
|
156
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;
|
|
157
|
-
}({}),
|
|
172
|
+
}({}), V = /* @__PURE__ */ function(e) {
|
|
158
173
|
return e.EXTRA_SMALL = "EXTRA_SMALL", e.SMALL = "SMALL", e.BASE = "BASE", e.LARGE = "LARGE", e.EXTRA_LARGE = "EXTRA_LARGE", e;
|
|
159
|
-
}({}),
|
|
174
|
+
}({}), H = v(!1), Ce = !1, U = "mgv-theme";
|
|
160
175
|
function we(e) {
|
|
161
|
-
if (
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
e ? V.value = e === "dark" : typeof window.matchMedia == "function" && (V.value = window.matchMedia("(prefers-color-scheme: dark)").matches);
|
|
165
|
-
}
|
|
166
|
-
typeof document < "u" && u(!0).run(() => {
|
|
167
|
-
O(V, (e) => {
|
|
168
|
-
document.documentElement.classList.toggle("dark", e), window.localStorage?.setItem(H, e ? "dark" : "light");
|
|
169
|
-
}, { immediate: !0 });
|
|
170
|
-
});
|
|
176
|
+
if (Ce) {
|
|
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
|
+
return;
|
|
171
179
|
}
|
|
180
|
+
if (Ce = !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
|
+
}
|
|
184
|
+
typeof document < "u" && u(!0).run(() => {
|
|
185
|
+
O(H, (e) => {
|
|
186
|
+
document.documentElement.classList.toggle("dark", e), window.localStorage?.setItem(U, e ? "dark" : "light");
|
|
187
|
+
}, { immediate: !0 });
|
|
188
|
+
});
|
|
172
189
|
}
|
|
173
|
-
function
|
|
174
|
-
we(e?.storageKey ??
|
|
190
|
+
function Te(e) {
|
|
191
|
+
we(e?.storageKey ?? U);
|
|
192
|
+
}
|
|
193
|
+
function W(e) {
|
|
194
|
+
we(e?.storageKey ?? U);
|
|
175
195
|
function t() {
|
|
176
|
-
|
|
196
|
+
H.value = !H.value;
|
|
177
197
|
}
|
|
178
198
|
return {
|
|
179
|
-
isDark:
|
|
199
|
+
isDark: H,
|
|
180
200
|
toggleTheme: t
|
|
181
201
|
};
|
|
182
202
|
}
|
|
183
203
|
//#endregion
|
|
184
204
|
//#region src/components/BaseButton.vue?vue&type=script&setup=true&lang.ts
|
|
185
|
-
var
|
|
205
|
+
var Ee = [
|
|
186
206
|
"type",
|
|
187
207
|
"disabled",
|
|
188
208
|
"onClick"
|
|
189
|
-
],
|
|
209
|
+
], De = {
|
|
190
210
|
key: 0,
|
|
191
211
|
class: "inline-flex items-center"
|
|
192
|
-
},
|
|
212
|
+
}, Oe = { key: 1 }, ke = { key: 2 }, Ae = ["type", "disabled"], je = {
|
|
193
213
|
key: 0,
|
|
194
214
|
class: "inline-flex items-center"
|
|
195
|
-
},
|
|
215
|
+
}, Me = { key: 1 }, Ne = { key: 2 }, G = /* @__PURE__ */ l({
|
|
196
216
|
__name: "BaseButton",
|
|
197
217
|
props: {
|
|
198
218
|
description: {
|
|
@@ -202,7 +222,7 @@ var Te = [
|
|
|
202
222
|
color: {
|
|
203
223
|
type: String,
|
|
204
224
|
required: !1,
|
|
205
|
-
default:
|
|
225
|
+
default: B.BLUE
|
|
206
226
|
},
|
|
207
227
|
to: {
|
|
208
228
|
type: String,
|
|
@@ -213,14 +233,6 @@ var Te = [
|
|
|
213
233
|
required: !1,
|
|
214
234
|
default: "button"
|
|
215
235
|
},
|
|
216
|
-
icon: {
|
|
217
|
-
type: String,
|
|
218
|
-
required: !1
|
|
219
|
-
},
|
|
220
|
-
iconSize: {
|
|
221
|
-
type: String,
|
|
222
|
-
required: !1
|
|
223
|
-
},
|
|
224
236
|
iconLeft: {
|
|
225
237
|
type: Boolean,
|
|
226
238
|
required: !1,
|
|
@@ -254,139 +266,139 @@ var Te = [
|
|
|
254
266
|
}
|
|
255
267
|
},
|
|
256
268
|
setup(e) {
|
|
257
|
-
let { isDark: t } =
|
|
269
|
+
let { isDark: t } = W(), n = e;
|
|
258
270
|
function s() {
|
|
259
271
|
let e = {
|
|
260
|
-
[
|
|
272
|
+
[B.BLUE]: {
|
|
261
273
|
light: "text-blue-700 border-blue-300 hover:bg-blue-50",
|
|
262
274
|
dark: "text-blue-400 border-blue-500/40 hover:bg-blue-500/10"
|
|
263
275
|
},
|
|
264
|
-
[
|
|
276
|
+
[B.GREEN]: {
|
|
265
277
|
light: "text-green-700 border-green-300 hover:bg-green-50",
|
|
266
278
|
dark: "text-green-400 border-green-500/40 hover:bg-green-500/10"
|
|
267
279
|
},
|
|
268
|
-
[
|
|
280
|
+
[B.EMERALD]: {
|
|
269
281
|
light: "text-emerald-700 border-emerald-300 hover:bg-emerald-50",
|
|
270
282
|
dark: "text-emerald-400 border-emerald-500/40 hover:bg-emerald-500/10"
|
|
271
283
|
},
|
|
272
|
-
[
|
|
284
|
+
[B.RED]: {
|
|
273
285
|
light: "text-red-700 border-red-300 hover:bg-red-50",
|
|
274
286
|
dark: "text-red-400 border-red-500/40 hover:bg-red-500/10"
|
|
275
287
|
},
|
|
276
|
-
[
|
|
288
|
+
[B.YELLOW]: {
|
|
277
289
|
light: "text-yellow-700 border-yellow-300 hover:bg-yellow-50",
|
|
278
290
|
dark: "text-yellow-400 border-yellow-500/40 hover:bg-yellow-500/10"
|
|
279
291
|
},
|
|
280
|
-
[
|
|
292
|
+
[B.PURPLE]: {
|
|
281
293
|
light: "text-purple-700 border-purple-300 hover:bg-purple-50",
|
|
282
294
|
dark: "text-purple-400 border-purple-500/40 hover:bg-purple-500/10"
|
|
283
295
|
},
|
|
284
|
-
[
|
|
296
|
+
[B.SKY]: {
|
|
285
297
|
light: "text-sky-700 border-sky-300 hover:bg-sky-50",
|
|
286
298
|
dark: "text-sky-400 border-sky-500/40 hover:bg-sky-500/10"
|
|
287
299
|
},
|
|
288
|
-
[
|
|
300
|
+
[B.AMBER]: {
|
|
289
301
|
light: "text-amber-700 border-amber-300 hover:bg-amber-50",
|
|
290
302
|
dark: "text-amber-400 border-amber-500/40 hover:bg-amber-500/10"
|
|
291
303
|
},
|
|
292
|
-
[
|
|
304
|
+
[B.GRAY]: {
|
|
293
305
|
light: "text-gray-700 border-gray-300 hover:bg-gray-50",
|
|
294
306
|
dark: "text-gray-300 border-gray-600 hover:bg-gray-800"
|
|
295
307
|
},
|
|
296
|
-
[
|
|
308
|
+
[B.DARK]: {
|
|
297
309
|
light: "text-gray-700 border-gray-300 hover:bg-gray-50",
|
|
298
310
|
dark: "text-gray-300 border-gray-600 hover:bg-gray-800"
|
|
299
311
|
},
|
|
300
|
-
[
|
|
312
|
+
[B.WHITE]: {
|
|
301
313
|
light: "text-gray-700 border-gray-300 hover:bg-gray-50",
|
|
302
314
|
dark: "text-gray-300 border-gray-600 hover:bg-gray-800"
|
|
303
315
|
}
|
|
304
|
-
}, r = e[n.color] ?? e[
|
|
316
|
+
}, r = e[n.color] ?? e[B.BLUE], i = t.value ? r.dark : r.light;
|
|
305
317
|
return n.isDisable || n.isLoading ? `border bg-transparent ${i} opacity-50 cursor-not-allowed` : `focus:outline-none border bg-transparent ${i}`;
|
|
306
318
|
}
|
|
307
319
|
function c() {
|
|
308
320
|
let e = {
|
|
309
|
-
[
|
|
321
|
+
[B.BLUE]: {
|
|
310
322
|
light: "text-blue-600 hover:bg-blue-50",
|
|
311
323
|
dark: "text-blue-400 hover:bg-blue-500/10"
|
|
312
324
|
},
|
|
313
|
-
[
|
|
325
|
+
[B.GREEN]: {
|
|
314
326
|
light: "text-green-600 hover:bg-green-50",
|
|
315
327
|
dark: "text-green-400 hover:bg-green-500/10"
|
|
316
328
|
},
|
|
317
|
-
[
|
|
329
|
+
[B.EMERALD]: {
|
|
318
330
|
light: "text-emerald-600 hover:bg-emerald-50",
|
|
319
331
|
dark: "text-emerald-400 hover:bg-emerald-500/10"
|
|
320
332
|
},
|
|
321
|
-
[
|
|
333
|
+
[B.SKY]: {
|
|
322
334
|
light: "text-sky-600 hover:bg-sky-50",
|
|
323
335
|
dark: "text-sky-400 hover:bg-sky-500/10"
|
|
324
336
|
},
|
|
325
|
-
[
|
|
337
|
+
[B.RED]: {
|
|
326
338
|
light: "text-red-500 hover:bg-red-50",
|
|
327
339
|
dark: "text-red-400 hover:bg-red-500/10"
|
|
328
340
|
},
|
|
329
|
-
[
|
|
341
|
+
[B.AMBER]: {
|
|
330
342
|
light: "text-amber-700 hover:bg-amber-50",
|
|
331
343
|
dark: "text-amber-300 hover:bg-amber-500/10"
|
|
332
344
|
},
|
|
333
|
-
[
|
|
345
|
+
[B.YELLOW]: {
|
|
334
346
|
light: "text-yellow-600 hover:bg-yellow-50",
|
|
335
347
|
dark: "text-yellow-400 hover:bg-yellow-500/10"
|
|
336
348
|
},
|
|
337
|
-
[
|
|
349
|
+
[B.PURPLE]: {
|
|
338
350
|
light: "text-purple-600 hover:bg-purple-50",
|
|
339
351
|
dark: "text-purple-400 hover:bg-purple-500/10"
|
|
340
352
|
},
|
|
341
|
-
[
|
|
353
|
+
[B.GRAY]: {
|
|
342
354
|
light: "text-gray-500 hover:bg-gray-100",
|
|
343
355
|
dark: "text-gray-400 hover:bg-gray-800"
|
|
344
356
|
},
|
|
345
|
-
[
|
|
357
|
+
[B.DARK]: {
|
|
346
358
|
light: "text-gray-500 hover:bg-gray-100",
|
|
347
359
|
dark: "text-gray-400 hover:bg-gray-800"
|
|
348
360
|
},
|
|
349
|
-
[
|
|
361
|
+
[B.WHITE]: {
|
|
350
362
|
light: "text-gray-500 hover:bg-gray-100",
|
|
351
363
|
dark: "text-gray-400 hover:bg-gray-800"
|
|
352
364
|
}
|
|
353
|
-
}, r = e[n.color] ?? e[
|
|
365
|
+
}, r = e[n.color] ?? e[B.GRAY], i = t.value ? r.dark : r.light;
|
|
354
366
|
return n.isDisable || n.isLoading ? `bg-transparent ${i} opacity-60 cursor-not-allowed` : `focus:outline-none bg-transparent ${i} cursor-pointer`;
|
|
355
367
|
}
|
|
356
368
|
function l() {
|
|
357
369
|
let e = n.isDisable || n.isLoading, t;
|
|
358
370
|
switch (n.color) {
|
|
359
|
-
case
|
|
371
|
+
case B.BLUE:
|
|
360
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";
|
|
361
373
|
break;
|
|
362
|
-
case
|
|
374
|
+
case B.WHITE:
|
|
363
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";
|
|
364
376
|
break;
|
|
365
|
-
case
|
|
377
|
+
case B.DARK:
|
|
366
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";
|
|
367
379
|
break;
|
|
368
|
-
case
|
|
380
|
+
case B.GREEN:
|
|
369
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";
|
|
370
382
|
break;
|
|
371
|
-
case
|
|
383
|
+
case B.EMERALD:
|
|
372
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";
|
|
373
385
|
break;
|
|
374
|
-
case
|
|
386
|
+
case B.RED:
|
|
375
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";
|
|
376
388
|
break;
|
|
377
|
-
case
|
|
389
|
+
case B.YELLOW:
|
|
378
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";
|
|
379
391
|
break;
|
|
380
|
-
case
|
|
381
|
-
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
|
|
392
|
+
case B.PURPLE:
|
|
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";
|
|
382
394
|
break;
|
|
383
|
-
case
|
|
395
|
+
case B.SKY:
|
|
384
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";
|
|
385
397
|
break;
|
|
386
|
-
case
|
|
398
|
+
case B.AMBER:
|
|
387
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";
|
|
388
400
|
break;
|
|
389
|
-
case
|
|
401
|
+
case B.GRAY:
|
|
390
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";
|
|
391
403
|
break;
|
|
392
404
|
default:
|
|
@@ -396,19 +408,19 @@ var Te = [
|
|
|
396
408
|
n.outline && (t = s()), n.ghost && (t = c());
|
|
397
409
|
let r = "px-5 py-2.5 mr-2 mb-2 text-sm";
|
|
398
410
|
switch (n.size) {
|
|
399
|
-
case
|
|
411
|
+
case V.EXTRA_SMALL:
|
|
400
412
|
r = "px-3 py-2 text-xs";
|
|
401
413
|
break;
|
|
402
|
-
case
|
|
414
|
+
case V.SMALL:
|
|
403
415
|
r = "px-3 py-2 text-sm";
|
|
404
416
|
break;
|
|
405
|
-
case
|
|
417
|
+
case V.BASE:
|
|
406
418
|
r = "px-5 py-2.5 text-sm";
|
|
407
419
|
break;
|
|
408
|
-
case
|
|
420
|
+
case V.LARGE:
|
|
409
421
|
r = "px-5 py-3 text-base";
|
|
410
422
|
break;
|
|
411
|
-
case
|
|
423
|
+
case V.EXTRA_LARGE:
|
|
412
424
|
r = "px-6 py-3.5 text-base";
|
|
413
425
|
break;
|
|
414
426
|
}
|
|
@@ -428,7 +440,7 @@ var Te = [
|
|
|
428
440
|
disabled: e.isDisable || e.isLoading,
|
|
429
441
|
onClick: r
|
|
430
442
|
}, [
|
|
431
|
-
e.isLoading ? (_(), a("div",
|
|
443
|
+
e.isLoading ? (_(), a("div", De, [...s[0] ||= [o("svg", {
|
|
432
444
|
"aria-hidden": "true",
|
|
433
445
|
role: "status",
|
|
434
446
|
class: "inline w-4 h-4 me-3 animate-spin",
|
|
@@ -442,10 +454,10 @@ var Te = [
|
|
|
442
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",
|
|
443
455
|
fill: "currentColor"
|
|
444
456
|
})], -1)]])) : i("", !0),
|
|
445
|
-
e.iconLeft ? i("", !0) : (_(), a("span",
|
|
457
|
+
e.iconLeft ? i("", !0) : (_(), a("span", Oe, C(e.description), 1)),
|
|
446
458
|
b(t.$slots, "default"),
|
|
447
|
-
e.iconLeft ? (_(), a("span",
|
|
448
|
-
], 10,
|
|
459
|
+
e.iconLeft ? (_(), a("span", ke, C(e.description), 1)) : i("", !0)
|
|
460
|
+
], 10, Ee)]),
|
|
449
461
|
_: 3
|
|
450
462
|
}, 8, ["to"])) : (_(), a("button", {
|
|
451
463
|
key: 1,
|
|
@@ -453,7 +465,7 @@ var Te = [
|
|
|
453
465
|
class: f(l()),
|
|
454
466
|
disabled: e.isDisable || e.isLoading
|
|
455
467
|
}, [
|
|
456
|
-
e.isLoading ? (_(), a("div",
|
|
468
|
+
e.isLoading ? (_(), a("div", je, [...s[1] ||= [o("svg", {
|
|
457
469
|
"aria-hidden": "true",
|
|
458
470
|
role: "status",
|
|
459
471
|
class: "inline w-4 h-4 me-3 animate-spin",
|
|
@@ -467,13 +479,13 @@ var Te = [
|
|
|
467
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",
|
|
468
480
|
fill: "currentColor"
|
|
469
481
|
})], -1)]])) : i("", !0),
|
|
470
|
-
e.iconLeft ? i("", !0) : (_(), a("span",
|
|
482
|
+
e.iconLeft ? i("", !0) : (_(), a("span", Me, C(e.description), 1)),
|
|
471
483
|
b(t.$slots, "default"),
|
|
472
|
-
e.iconLeft ? (_(), a("span",
|
|
473
|
-
], 10,
|
|
484
|
+
e.iconLeft ? (_(), a("span", Ne, C(e.description), 1)) : i("", !0)
|
|
485
|
+
], 10, Ae));
|
|
474
486
|
};
|
|
475
487
|
}
|
|
476
|
-
}),
|
|
488
|
+
}), K = /* @__PURE__ */ function(e) {
|
|
477
489
|
return e.BASE = "BASE", e.BASE_SHORTER = "BASE_SHORTER", e.SQUARE = "SQUARE", e;
|
|
478
490
|
}({}), Pe = {
|
|
479
491
|
key: 0,
|
|
@@ -489,36 +501,36 @@ var Te = [
|
|
|
489
501
|
props: { mode: {
|
|
490
502
|
type: String,
|
|
491
503
|
required: !1,
|
|
492
|
-
default:
|
|
504
|
+
default: K.BASE
|
|
493
505
|
} },
|
|
494
506
|
setup(t) {
|
|
495
507
|
return (n, r) => (_(), a(e, null, [
|
|
496
|
-
t.mode === w(
|
|
497
|
-
t.mode === w(
|
|
498
|
-
t.mode === w(
|
|
508
|
+
t.mode === w(K).BASE ? (_(), a("hr", Pe)) : i("", !0),
|
|
509
|
+
t.mode === w(K).BASE_SHORTER ? (_(), a("hr", Fe)) : i("", !0),
|
|
510
|
+
t.mode === w(K).SQUARE ? (_(), a("hr", Ie)) : i("", !0)
|
|
499
511
|
], 64));
|
|
500
512
|
}
|
|
501
|
-
}),
|
|
513
|
+
}), q = /* @__PURE__ */ function(e) {
|
|
502
514
|
return e.SMALL = "SMALL", e.MEDIUM = "MEDIUM", e.LARGE = "LARGE", e;
|
|
503
|
-
}({}), Re =
|
|
515
|
+
}({}), Re = q, ze = ["height", "width"], Be = /* @__PURE__ */ l({
|
|
504
516
|
__name: "BaseLogo",
|
|
505
517
|
props: { size: {
|
|
506
518
|
type: String,
|
|
507
519
|
required: !1,
|
|
508
|
-
default:
|
|
520
|
+
default: q.MEDIUM
|
|
509
521
|
} },
|
|
510
522
|
setup(e) {
|
|
511
523
|
let t = e;
|
|
512
524
|
function n() {
|
|
513
525
|
let e = "";
|
|
514
526
|
switch (t.size) {
|
|
515
|
-
case
|
|
527
|
+
case q.SMALL:
|
|
516
528
|
e = "50px";
|
|
517
529
|
break;
|
|
518
|
-
case
|
|
530
|
+
case q.MEDIUM:
|
|
519
531
|
e = "100px";
|
|
520
532
|
break;
|
|
521
|
-
case
|
|
533
|
+
case q.LARGE:
|
|
522
534
|
e = "150px";
|
|
523
535
|
break;
|
|
524
536
|
}
|
|
@@ -685,12 +697,18 @@ var Te = [
|
|
|
685
697
|
});
|
|
686
698
|
};
|
|
687
699
|
}
|
|
688
|
-
}),
|
|
700
|
+
}), J = /* @__PURE__ */ function(e) {
|
|
689
701
|
return e.DELETE = "DELETE", e.SUCCESS = "SUCCESS", e;
|
|
690
|
-
}({}), Ve =
|
|
702
|
+
}({}), Ve = {
|
|
691
703
|
key: 0,
|
|
692
704
|
class: "p-6 text-center"
|
|
693
|
-
},
|
|
705
|
+
}, He = { class: "flex justify-center" }, Ue = {
|
|
706
|
+
key: 1,
|
|
707
|
+
class: "p-6 text-center"
|
|
708
|
+
}, We = {
|
|
709
|
+
key: 0,
|
|
710
|
+
class: "mb-5 text-sm text-gray-500"
|
|
711
|
+
}, Ge = { class: "flex justify-center" }, Ke = /* @__PURE__ */ l({
|
|
694
712
|
__name: "BaseModal",
|
|
695
713
|
props: {
|
|
696
714
|
title: {
|
|
@@ -709,57 +727,63 @@ var Te = [
|
|
|
709
727
|
mode: {
|
|
710
728
|
type: String,
|
|
711
729
|
required: !1,
|
|
712
|
-
default:
|
|
730
|
+
default: J.SUCCESS
|
|
713
731
|
}
|
|
714
732
|
},
|
|
715
733
|
emits: ["closeModal", "confirmModal"],
|
|
716
734
|
setup(t, { emit: n }) {
|
|
717
|
-
let r = n
|
|
718
|
-
function
|
|
735
|
+
let r = n, s = `modal-title-${Math.random().toString(36).slice(2, 9)}`;
|
|
736
|
+
function l(e) {
|
|
719
737
|
e.key === "Escape" && r("closeModal");
|
|
720
738
|
}
|
|
721
739
|
return m(() => {
|
|
722
|
-
document.addEventListener("keydown",
|
|
740
|
+
document.addEventListener("keydown", l);
|
|
723
741
|
}), g(() => {
|
|
724
|
-
document.removeEventListener("keydown",
|
|
725
|
-
}), (n, r) => {
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
742
|
+
document.removeEventListener("keydown", l);
|
|
743
|
+
}), (n, r) => (_(), a(e, null, [o("div", {
|
|
744
|
+
class: "fixed inset-0 w-full h-screen bg-black/75 z-40",
|
|
745
|
+
onClick: r[0] ||= (e) => n.$emit("closeModal")
|
|
746
|
+
}), o("div", {
|
|
747
|
+
class: "fixed top-[20vh] left-1/2 -translate-x-1/2 w-96 z-50 rounded-xl shadow-lg bg-white overflow-hidden",
|
|
748
|
+
role: "dialog",
|
|
749
|
+
"aria-modal": "true",
|
|
750
|
+
"aria-labelledby": s
|
|
751
|
+
}, [t.mode === w(J).DELETE ? (_(), a("div", Ve, [
|
|
752
|
+
c(w(ae), { class: "w-12 h-12 text-gray-400 mx-auto mb-4" }),
|
|
753
|
+
o("h3", {
|
|
754
|
+
id: s,
|
|
755
|
+
class: "mb-5 text-lg font-normal text-gray-500 dark:text-gray-400"
|
|
756
|
+
}, " Are you sure you want to delete this " + C(t.title) + "? ", 1),
|
|
757
|
+
o("div", He, [c(G, {
|
|
758
|
+
color: w(B).RED,
|
|
759
|
+
onClick: r[1] ||= (e) => n.$emit("confirmModal"),
|
|
760
|
+
description: "Yes, I'm sure"
|
|
761
|
+
}, null, 8, ["color"]), c(G, {
|
|
762
|
+
color: w(B).WHITE,
|
|
763
|
+
onClick: r[2] ||= (e) => n.$emit("closeModal"),
|
|
764
|
+
description: "No, cancel"
|
|
765
|
+
}, null, 8, ["color"])])
|
|
766
|
+
])) : (_(), a("div", Ue, [
|
|
767
|
+
c(w(P), { class: "w-12 h-12 text-green-500 mx-auto mb-4" }),
|
|
768
|
+
o("h3", {
|
|
769
|
+
id: s,
|
|
770
|
+
class: "mb-2 text-lg font-medium text-gray-900"
|
|
771
|
+
}, C(t.title), 1),
|
|
772
|
+
t.description ? (_(), a("p", We, C(t.description), 1)) : i("", !0),
|
|
773
|
+
b(n.$slots, "default"),
|
|
774
|
+
o("div", Ge, [c(G, {
|
|
775
|
+
color: w(B).BLUE,
|
|
776
|
+
onClick: r[3] ||= (e) => n.$emit("closeModal"),
|
|
777
|
+
description: "OK"
|
|
778
|
+
}, null, 8, ["color"])])
|
|
779
|
+
]))])], 64));
|
|
752
780
|
}
|
|
753
|
-
}),
|
|
754
|
-
let n = e.__vccOpts || e;
|
|
755
|
-
for (let [e, r] of t) n[e] = r;
|
|
756
|
-
return n;
|
|
757
|
-
}, Ke = /* @__PURE__ */ q(Ge, [["__scopeId", "data-v-1db4f0ac"]]), qe = /* @__PURE__ */ l({
|
|
781
|
+
}), qe = /* @__PURE__ */ l({
|
|
758
782
|
__name: "BaseRow",
|
|
759
783
|
props: { bgColor: {
|
|
760
784
|
type: String,
|
|
761
785
|
required: !1,
|
|
762
|
-
default: "white"
|
|
786
|
+
default: "bg-white"
|
|
763
787
|
} },
|
|
764
788
|
setup(e) {
|
|
765
789
|
let t = e;
|
|
@@ -796,21 +820,15 @@ var Te = [
|
|
|
796
820
|
"aria-label": "Loading"
|
|
797
821
|
}, null, 2));
|
|
798
822
|
}
|
|
799
|
-
}),
|
|
823
|
+
}), Y = /* @__PURE__ */ function(e) {
|
|
800
824
|
return e.SUCCESS = "SUCCESS", e.WARNING = "WARNING", e.ERROR = "ERROR", e;
|
|
801
|
-
}({}),
|
|
825
|
+
}({}), X = /* @__PURE__ */ function(e) {
|
|
802
826
|
return e.TOP_LEFT = "TOP_LEFT", e.TOP_RIGHT = "TOP_RIGHT", e.BOTTOM_LEFT = "BOTTOM_LEFT", e.BOTTOM_RIGHT = "BOTTOM_RIGHT", e;
|
|
803
|
-
}({}), Ye = { 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" }, Xe = { class: "ml-3 text-sm font-normal" }, Ze = {
|
|
804
|
-
key: 3,
|
|
805
|
-
type: "button",
|
|
806
|
-
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",
|
|
807
|
-
"data-dismiss-target": "#toast-danger",
|
|
808
|
-
"aria-label": "Close"
|
|
809
|
-
}, Qe = /* @__PURE__ */ l({
|
|
827
|
+
}({}), Ye = { 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" }, Xe = { class: "ml-3 text-sm font-normal" }, Ze = /* @__PURE__ */ l({
|
|
810
828
|
__name: "BaseToast",
|
|
811
829
|
props: {
|
|
812
830
|
mode: {
|
|
813
|
-
type:
|
|
831
|
+
type: String,
|
|
814
832
|
required: !0
|
|
815
833
|
},
|
|
816
834
|
description: {
|
|
@@ -825,7 +843,7 @@ var Te = [
|
|
|
825
843
|
positioning: {
|
|
826
844
|
type: String,
|
|
827
845
|
required: !1,
|
|
828
|
-
default:
|
|
846
|
+
default: X.TOP_RIGHT
|
|
829
847
|
},
|
|
830
848
|
duration: {
|
|
831
849
|
type: Number,
|
|
@@ -846,13 +864,13 @@ var Te = [
|
|
|
846
864
|
function l() {
|
|
847
865
|
let e = "";
|
|
848
866
|
switch (t.mode) {
|
|
849
|
-
case
|
|
867
|
+
case Y.ERROR:
|
|
850
868
|
e = "text-red-500 bg-red-100 dark:bg-red-800 dark:text-red-200";
|
|
851
869
|
break;
|
|
852
|
-
case
|
|
870
|
+
case Y.SUCCESS:
|
|
853
871
|
e = "text-green-500 bg-green-100 dark:bg-green-800 dark:text-green-200";
|
|
854
872
|
break;
|
|
855
|
-
case
|
|
873
|
+
case Y.WARNING:
|
|
856
874
|
e = "text-orange-500 bg-orange-100 dark:bg-orange-700 dark:text-orange-200";
|
|
857
875
|
break;
|
|
858
876
|
default:
|
|
@@ -864,16 +882,16 @@ var Te = [
|
|
|
864
882
|
function u() {
|
|
865
883
|
let e = "top-5 right-5";
|
|
866
884
|
switch (t.positioning) {
|
|
867
|
-
case
|
|
885
|
+
case X.BOTTOM_LEFT:
|
|
868
886
|
e = "bottom-5 left-5";
|
|
869
887
|
break;
|
|
870
|
-
case
|
|
888
|
+
case X.TOP_LEFT:
|
|
871
889
|
e = "top-5 left-5";
|
|
872
890
|
break;
|
|
873
|
-
case
|
|
891
|
+
case X.TOP_RIGHT:
|
|
874
892
|
e = "top-5 right-5";
|
|
875
893
|
break;
|
|
876
|
-
case
|
|
894
|
+
case X.BOTTOM_RIGHT:
|
|
877
895
|
e = "bottom-5 right-5";
|
|
878
896
|
break;
|
|
879
897
|
}
|
|
@@ -885,24 +903,27 @@ var Te = [
|
|
|
885
903
|
class: f(u()),
|
|
886
904
|
role: "alert"
|
|
887
905
|
}, [o("div", Ye, [
|
|
888
|
-
e.mode == w(
|
|
906
|
+
e.mode == w(Y).ERROR ? (_(), a("div", {
|
|
889
907
|
key: 0,
|
|
890
908
|
class: f(l())
|
|
891
|
-
}, [c(w(
|
|
909
|
+
}, [c(w(ae), { class: "h-6 w-6 text-red-500" }), r[0] ||= o("span", { class: "sr-only" }, "Error icon", -1)], 2)) : e.mode == w(Y).SUCCESS ? (_(), a("div", {
|
|
892
910
|
key: 1,
|
|
893
911
|
class: f(l())
|
|
894
|
-
}, [c(w(
|
|
912
|
+
}, [c(w(P), { class: "h-6 w-6 text-green-500" }), r[1] ||= o("span", { class: "sr-only" }, "Check icon", -1)], 2)) : e.mode == w(Y).WARNING ? (_(), a("div", {
|
|
895
913
|
key: 2,
|
|
896
914
|
class: f(l())
|
|
897
|
-
}, [c(w(
|
|
915
|
+
}, [c(w(I), { class: "h-6 w-6 text-yellow-500" }), r[2] ||= o("span", { class: "sr-only" }, "Warning icon", -1)], 2)) : i("", !0),
|
|
898
916
|
o("div", Xe, C(e.description), 1),
|
|
899
|
-
e.hasCloseIcon ? (_(), a("button",
|
|
900
|
-
|
|
917
|
+
e.hasCloseIcon ? (_(), a("button", {
|
|
918
|
+
key: 3,
|
|
919
|
+
type: "button",
|
|
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
|
+
"aria-label": "Close",
|
|
901
922
|
onClick: s
|
|
902
|
-
})])) : i("", !0)
|
|
923
|
+
}, [r[3] ||= o("span", { class: "sr-only" }, "Close", -1), c(w(ue), { class: "h-6 w-6 text-gray-500" })])) : i("", !0)
|
|
903
924
|
])], 2)) : i("", !0);
|
|
904
925
|
}
|
|
905
|
-
}),
|
|
926
|
+
}), Qe = { class: "w-13" }, $e = /* @__PURE__ */ l({
|
|
906
927
|
__name: "ColoredSquares",
|
|
907
928
|
props: { color: {
|
|
908
929
|
type: String,
|
|
@@ -921,29 +942,27 @@ var Te = [
|
|
|
921
942
|
"bg-pink-300"
|
|
922
943
|
], r = v(n[Math.floor(Math.random() * n.length)]);
|
|
923
944
|
function i() {
|
|
924
|
-
let e = "gray";
|
|
945
|
+
let e = "font-bold text-xs mr-2 px-2.5 py-0.5 rounded-full", n = "gray";
|
|
925
946
|
switch (t.color) {
|
|
926
|
-
case
|
|
927
|
-
|
|
928
|
-
break;
|
|
929
|
-
case L.RED:
|
|
930
|
-
e = "red";
|
|
947
|
+
case R.GREEN:
|
|
948
|
+
n = "green";
|
|
931
949
|
break;
|
|
932
|
-
case
|
|
933
|
-
|
|
950
|
+
case R.RED:
|
|
951
|
+
n = "red";
|
|
934
952
|
break;
|
|
935
|
-
case
|
|
936
|
-
|
|
953
|
+
case R.BLUE:
|
|
954
|
+
n = "blue";
|
|
937
955
|
break;
|
|
938
|
-
case
|
|
939
|
-
|
|
956
|
+
case R.YELLOW:
|
|
957
|
+
n = "yellow";
|
|
940
958
|
break;
|
|
959
|
+
case R.NONE: return e;
|
|
941
960
|
}
|
|
942
|
-
return "
|
|
961
|
+
return e + " bg-" + n + "-100 text-" + n + "-800";
|
|
943
962
|
}
|
|
944
|
-
return (e, t) => (_(), a("div",
|
|
963
|
+
return (e, t) => (_(), a("div", Qe, [o("div", { class: f(["border border-gray-300 relative aspect-square rounded-lg bg-white shadow-sm overflow-hidden flex items-center justify-center text-center", i()]) }, [b(e.$slots, "default"), o("div", { class: f(["absolute bottom-0 left-0 h-1 w-full", r.value]) }, null, 2)], 2)]));
|
|
945
964
|
}
|
|
946
|
-
}),
|
|
965
|
+
}), et = { class: "flex items-start justify-between" }, tt = { class: "text-sm font-bold tracking-wide text-gray-800 dark:text-slate-200" }, nt = /* @__PURE__ */ l({
|
|
947
966
|
__name: "EarningsCard",
|
|
948
967
|
props: {
|
|
949
968
|
title: { default: "TOTAL EARNINGS" },
|
|
@@ -982,8 +1001,8 @@ var Te = [
|
|
|
982
1001
|
return (t, n) => (_(), a("div", { class: f(["relative rounded-xl border-2 border-dashed bg-white p-6 dark:bg-slate-800", s.value.border]) }, [e.badge ? (_(), a("div", {
|
|
983
1002
|
key: 0,
|
|
984
1003
|
class: f(["absolute right-4 top-4 rounded-md px-3 py-1 text-xs font-bold tracking-wide", s.value.badge])
|
|
985
|
-
}, C(e.badge), 3)) : i("", !0), o("div",
|
|
986
|
-
o("p",
|
|
1004
|
+
}, C(e.badge), 3)) : i("", !0), o("div", et, [o("div", null, [
|
|
1005
|
+
o("p", tt, C(e.title), 1),
|
|
987
1006
|
o("p", { class: f(["mt-1 text-4xl font-bold", s.value.amount]) }, C(c.value), 3),
|
|
988
1007
|
o("p", { class: f(["mt-1 text-sm font-medium", s.value.subtitle]) }, C(e.subtitle), 3)
|
|
989
1008
|
]), o("div", { class: f(["mt-6 flex h-12 w-12 items-center justify-center rounded-xl", s.value.iconBox]) }, [(_(), a("svg", {
|
|
@@ -996,10 +1015,10 @@ var Te = [
|
|
|
996
1015
|
"stroke-linejoin": "round"
|
|
997
1016
|
}, [...n[0] ||= [o("polyline", { points: "22 7 13.5 15.5 8.5 10.5 2 17" }, null, -1), o("polyline", { points: "16 7 22 7 22 13" }, null, -1)]], 2))], 2)])], 2));
|
|
998
1017
|
}
|
|
999
|
-
}),
|
|
1018
|
+
}), rt = {
|
|
1000
1019
|
key: 0,
|
|
1001
1020
|
class: "font-bold text-green-800"
|
|
1002
|
-
},
|
|
1021
|
+
}, it = { key: 0 }, at = { key: 0 }, ot = "font-bold", st = /* @__PURE__ */ l({
|
|
1003
1022
|
__name: "EuroAmount",
|
|
1004
1023
|
props: {
|
|
1005
1024
|
amount: {
|
|
@@ -1019,15 +1038,15 @@ var Te = [
|
|
|
1019
1038
|
},
|
|
1020
1039
|
setup(t) {
|
|
1021
1040
|
let r = t, o = n(() => r.amount !== null && r.amount !== void 0), c = n(() => o.value && r.amount < 0), l = n(() => r.beforeAmount === null || r.beforeAmount === void 0 ? !1 : r.amount < r.beforeAmount), u = n(() => c.value || l.value), d = n(() => !c.value && !l.value && !(r.beforeAmount === null || r.beforeAmount === void 0));
|
|
1022
|
-
return (n, r) => (_(), a(e, null, [o.value && d.value ? (_(), a("span",
|
|
1041
|
+
return (n, r) => (_(), a(e, null, [o.value && d.value ? (_(), a("span", rt, [s(C(t.amount) + " ", 1), t.showCurrency ? (_(), a("span", it, "€")) : i("", !0)])) : i("", !0), o.value && !d.value ? (_(), a("span", {
|
|
1023
1042
|
key: 1,
|
|
1024
|
-
class: f([
|
|
1025
|
-
}, [s(C(t.amount) + " ", 1), t.showCurrency ? (_(), a("span",
|
|
1043
|
+
class: f([ot, u.value ? "text-red-800" : "text-gray-800"])
|
|
1044
|
+
}, [s(C(t.amount) + " ", 1), t.showCurrency ? (_(), a("span", at, "€")) : i("", !0)], 2)) : i("", !0)], 64));
|
|
1026
1045
|
}
|
|
1027
|
-
}), lt = ["onClick", "onKeydown"], ut = {
|
|
1046
|
+
}), ct = { class: "flex list-none p-0 m-0" }, lt = ["onClick", "onKeydown"], ut = {
|
|
1028
1047
|
key: 1,
|
|
1029
|
-
|
|
1030
|
-
}, dt = /* @__PURE__ */
|
|
1048
|
+
class: "inline-block border border-gray-300 rounded-lg p-3 text-black cursor-not-allowed"
|
|
1049
|
+
}, dt = /* @__PURE__ */ l({
|
|
1031
1050
|
__name: "Pagination",
|
|
1032
1051
|
props: {
|
|
1033
1052
|
totalItems: {
|
|
@@ -1041,44 +1060,44 @@ var Te = [
|
|
|
1041
1060
|
},
|
|
1042
1061
|
emits: ["page-changed"],
|
|
1043
1062
|
setup(t, { emit: n }) {
|
|
1044
|
-
let r = t,
|
|
1045
|
-
function
|
|
1046
|
-
if (
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
let n = e - t;
|
|
1050
|
-
n > 0 && l.value.push(n);
|
|
1051
|
-
}
|
|
1052
|
-
l.value.length, l.value.push(s.value);
|
|
1053
|
-
let t = c.value - e;
|
|
1054
|
-
if (t > 2) {
|
|
1055
|
-
for (let t = 1; t <= 2; t++) l.value.push(e + t);
|
|
1056
|
-
l.value.push(0), l.value.push(c.value);
|
|
1057
|
-
} else for (let n = 1; n <= t; n++) l.value.push(e + n);
|
|
1063
|
+
let r = t, i = v(1), s = v(0), c = v([]), l = n;
|
|
1064
|
+
function u(e) {
|
|
1065
|
+
if (s.value <= 5) {
|
|
1066
|
+
c.value = Array.from({ length: s.value }, (e, t) => t + 1);
|
|
1067
|
+
return;
|
|
1058
1068
|
}
|
|
1059
|
-
|
|
1069
|
+
let t = [], n = Math.max(1, e - 2), r = Math.min(s.value, e + 2);
|
|
1070
|
+
n > 1 && (t.push(1), n > 2 && t.push(0));
|
|
1071
|
+
for (let e = n; e <= r; e++) t.push(e);
|
|
1072
|
+
r < s.value && (r < s.value - 1 && t.push(0), t.push(s.value)), c.value = t;
|
|
1073
|
+
}
|
|
1074
|
+
function d(e) {
|
|
1075
|
+
e === i.value || e < 1 || e > s.value || (i.value = e, u(e), l("page-changed", e));
|
|
1060
1076
|
}
|
|
1061
|
-
return O(() => r.totalItems, () => {
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
},
|
|
1077
|
+
return O(() => [r.totalItems, r.itemsPerPage], () => {
|
|
1078
|
+
s.value = Math.ceil(r.totalItems / r.itemsPerPage), i.value > s.value && (i.value = Math.max(1, s.value)), u(i.value);
|
|
1079
|
+
}, { immediate: !0 }), (t, n) => (_(), a("div", null, [o("ul", ct, [(_(!0), a(e, null, y(c.value, (e, t) => (_(), a("li", {
|
|
1080
|
+
key: t,
|
|
1081
|
+
class: "mr-1"
|
|
1082
|
+
}, [e === 0 ? (_(), a("span", ut, "...")) : (_(), a("a", {
|
|
1067
1083
|
key: 0,
|
|
1068
1084
|
role: "button",
|
|
1069
1085
|
tabindex: "0",
|
|
1070
1086
|
onClick: (t) => d(e),
|
|
1071
1087
|
onKeydown: j((t) => d(e), ["enter"]),
|
|
1072
|
-
class: f({ active: e ===
|
|
1073
|
-
}, C(e), 43, lt))
|
|
1088
|
+
class: f(["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
|
+
}, C(e), 43, lt))]))), 128))])]));
|
|
1074
1090
|
}
|
|
1075
|
-
}),
|
|
1091
|
+
}), ft = { key: 0 }, pt = {
|
|
1076
1092
|
key: 0,
|
|
1077
1093
|
class: "flex items-center space-x-2"
|
|
1078
1094
|
}, mt = {
|
|
1079
1095
|
key: 1,
|
|
1080
1096
|
class: "flex items-center space-x-2"
|
|
1081
|
-
}, ht =
|
|
1097
|
+
}, ht = {
|
|
1098
|
+
key: 2,
|
|
1099
|
+
class: "flex items-center space-x-2"
|
|
1100
|
+
}, gt = /* @__PURE__ */ l({
|
|
1082
1101
|
__name: "TrendArrow",
|
|
1083
1102
|
props: {
|
|
1084
1103
|
number: {
|
|
@@ -1091,11 +1110,14 @@ var Te = [
|
|
|
1091
1110
|
}
|
|
1092
1111
|
},
|
|
1093
1112
|
setup(e) {
|
|
1094
|
-
let t = e, r = n(() => t.number !== null && t.number !== void 0 && t.number < 0);
|
|
1095
|
-
return (n,
|
|
1113
|
+
let t = e, r = n(() => t.number !== null && t.number !== void 0 && t.number < 0), o = n(() => t.number === 0);
|
|
1114
|
+
return (n, l) => e.number !== null && e.number !== void 0 ? (_(), a("div", ft, [r.value ? (_(), a("span", pt, [c(z, { color: w(R).RED }, {
|
|
1115
|
+
default: k(() => [s(C(e.number) + C(t.icon), 1)]),
|
|
1116
|
+
_: 1
|
|
1117
|
+
}, 8, ["color"]), c(w(ee), { class: "h-5 w-5 text-red-500" })])) : o.value ? (_(), a("span", mt, [c(z, { color: w(R).GRAY }, {
|
|
1096
1118
|
default: k(() => [s(C(e.number) + C(t.icon), 1)]),
|
|
1097
1119
|
_: 1
|
|
1098
|
-
}, 8, ["color"]), c(w(
|
|
1120
|
+
}, 8, ["color"]), c(w(le), { class: "h-5 w-5 text-gray-400" })])) : (_(), a("span", ht, [c(z, { color: w(R).GREEN }, {
|
|
1099
1121
|
default: k(() => [s(C(e.number) + C(t.icon), 1)]),
|
|
1100
1122
|
_: 1
|
|
1101
1123
|
}, 8, ["color"]), c(w(te), { class: "h-5 w-5 text-green-500" })]))])) : i("", !0);
|
|
@@ -1103,8 +1125,8 @@ var Te = [
|
|
|
1103
1125
|
});
|
|
1104
1126
|
//#endregion
|
|
1105
1127
|
//#region src/composables/useThemeClasses.ts
|
|
1106
|
-
function
|
|
1107
|
-
let { isDark: e } =
|
|
1128
|
+
function Z() {
|
|
1129
|
+
let { isDark: e } = W();
|
|
1108
1130
|
return {
|
|
1109
1131
|
card: n(() => e.value ? "bg-gray-800 border-gray-700" : "bg-white border-gray-200"),
|
|
1110
1132
|
cardAlt: n(() => e.value ? "bg-gray-900 border-gray-700" : "bg-white border-gray-200"),
|
|
@@ -1131,7 +1153,7 @@ function X() {
|
|
|
1131
1153
|
}
|
|
1132
1154
|
//#endregion
|
|
1133
1155
|
//#region src/composables/useEscapeKey.ts
|
|
1134
|
-
function
|
|
1156
|
+
function _t(e) {
|
|
1135
1157
|
function t(t) {
|
|
1136
1158
|
t.key === "Escape" && e();
|
|
1137
1159
|
}
|
|
@@ -1139,7 +1161,7 @@ function Z(e) {
|
|
|
1139
1161
|
}
|
|
1140
1162
|
//#endregion
|
|
1141
1163
|
//#region src/components/BaseModalShell.vue?vue&type=script&setup=true&lang.ts
|
|
1142
|
-
var
|
|
1164
|
+
var vt = { class: "flex items-start gap-4 min-w-0" }, yt = { class: "flex-1 min-w-0" }, bt = { class: "p-6 overflow-y-auto flex-1" }, xt = { class: "p-6" }, St = { class: "flex items-start gap-4" }, Ct = { class: "flex-1" }, wt = { class: "mt-4" }, Tt = { class: "mt-6 flex gap-3 justify-end" }, Q = /* @__PURE__ */ l({
|
|
1143
1165
|
__name: "BaseModalShell",
|
|
1144
1166
|
props: {
|
|
1145
1167
|
title: {},
|
|
@@ -1156,11 +1178,11 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1156
1178
|
},
|
|
1157
1179
|
emits: ["cancel", "backdrop"],
|
|
1158
1180
|
setup(e, { emit: s }) {
|
|
1159
|
-
let c = e, l = s, { isDark: u } =
|
|
1181
|
+
let c = e, l = s, { isDark: u } = W(), d = Z(), p = `modal-title-${Math.random().toString(36).slice(2, 9)}`, m = n(() => u.value ? "bg-gray-900 border border-gray-700" : "bg-white border border-gray-200");
|
|
1160
1182
|
function h() {
|
|
1161
1183
|
l("backdrop"), c.manualClose || l("cancel");
|
|
1162
1184
|
}
|
|
1163
|
-
return
|
|
1185
|
+
return _t(() => {
|
|
1164
1186
|
c.manualClose || l("cancel");
|
|
1165
1187
|
}), (n, s) => (_(), r(t, { to: "body" }, [o("div", {
|
|
1166
1188
|
class: "fixed inset-0 z-50 flex items-center justify-center bg-black/50",
|
|
@@ -1173,14 +1195,14 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1173
1195
|
class: f(["relative w-full mx-4 rounded-lg shadow-xl max-h-[90vh] flex flex-col", [e.maxWidthClass, m.value]]),
|
|
1174
1196
|
onClick: s[0] ||= M(() => {}, ["stop"])
|
|
1175
1197
|
}, [
|
|
1176
|
-
o("div", { class: f(["flex items-start justify-between gap-4 p-6 border-b shrink-0", w(d).border]) }, [o("div",
|
|
1198
|
+
o("div", { class: f(["flex items-start justify-between gap-4 p-6 border-b shrink-0", w(d).border]) }, [o("div", vt, [b(n.$slots, "icon"), o("div", yt, [o("h3", {
|
|
1177
1199
|
id: p,
|
|
1178
1200
|
class: f(["text-lg font-medium", w(d).primaryText])
|
|
1179
1201
|
}, C(e.title), 3), e.subtitle ? (_(), a("p", {
|
|
1180
1202
|
key: 0,
|
|
1181
1203
|
class: f(["text-sm mt-1 break-all", w(d).mutedText])
|
|
1182
1204
|
}, C(e.subtitle), 3)) : i("", !0)])]), b(n.$slots, "header-actions")], 2),
|
|
1183
|
-
o("div",
|
|
1205
|
+
o("div", bt, [b(n.$slots, "default")]),
|
|
1184
1206
|
n.$slots.footer ? (_(), a("div", {
|
|
1185
1207
|
key: 0,
|
|
1186
1208
|
class: f(["flex gap-3 justify-end p-6 border-t shrink-0", w(d).border])
|
|
@@ -1189,16 +1211,16 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1189
1211
|
key: 1,
|
|
1190
1212
|
class: f(["relative w-full mx-4 rounded-lg shadow-xl", [e.maxWidthClass, m.value]]),
|
|
1191
1213
|
onClick: s[1] ||= M(() => {}, ["stop"])
|
|
1192
|
-
}, [o("div",
|
|
1193
|
-
o("div",
|
|
1214
|
+
}, [o("div", xt, [
|
|
1215
|
+
o("div", St, [b(n.$slots, "icon"), o("div", Ct, [o("h3", {
|
|
1194
1216
|
id: p,
|
|
1195
1217
|
class: f(["text-lg font-medium", w(d).primaryText])
|
|
1196
1218
|
}, C(e.title), 3)])]),
|
|
1197
|
-
o("div",
|
|
1198
|
-
o("div",
|
|
1219
|
+
o("div", wt, [b(n.$slots, "default")]),
|
|
1220
|
+
o("div", Tt, [b(n.$slots, "footer")])
|
|
1199
1221
|
])], 2))])]));
|
|
1200
1222
|
}
|
|
1201
|
-
}),
|
|
1223
|
+
}), Et = ["aria-expanded"], Dt = { class: "flex items-center gap-3" }, Ot = /* @__PURE__ */ l({
|
|
1202
1224
|
__name: "BaseCollapsibleSection",
|
|
1203
1225
|
props: {
|
|
1204
1226
|
title: {},
|
|
@@ -1208,13 +1230,13 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1208
1230
|
},
|
|
1209
1231
|
emits: ["toggle"],
|
|
1210
1232
|
setup(e, { emit: t }) {
|
|
1211
|
-
let r = e, s = t, { isDark: c } =
|
|
1233
|
+
let r = e, s = t, { isDark: c } = W(), l = Z(), u = n(() => c.value ? "text-gray-100" : "text-gray-700"), d = n(() => c.value ? "bg-gray-800/50 hover:bg-gray-800 border-gray-700" : "bg-gray-50 hover:bg-gray-100 border-gray-200"), p = n(() => c.value ? "bg-emerald-500/15 text-emerald-400" : "bg-emerald-50 text-emerald-700"), m = n(() => r.bodyClass === void 0 ? c.value ? "bg-gray-800" : "bg-white" : r.bodyClass);
|
|
1212
1234
|
return (t, n) => (_(), a("section", { class: f(["rounded-xl border overflow-hidden transition-colors", w(l).cardAlt]) }, [o("button", {
|
|
1213
1235
|
type: "button",
|
|
1214
1236
|
class: f(["w-full flex items-center justify-between p-4 text-left transition-colors", d.value]),
|
|
1215
1237
|
"aria-expanded": !e.collapsed,
|
|
1216
1238
|
onClick: n[0] ||= (e) => s("toggle")
|
|
1217
|
-
}, [o("div",
|
|
1239
|
+
}, [o("div", Dt, [o("h2", { class: f(["text-base font-semibold", u.value]) }, C(e.title), 3), e.badge ? (_(), a("span", {
|
|
1218
1240
|
key: 0,
|
|
1219
1241
|
class: f(["text-xs px-2 py-0.5 rounded-full", p.value])
|
|
1220
1242
|
}, C(e.badge), 3)) : i("", !0)]), (_(), a("svg", {
|
|
@@ -1228,15 +1250,15 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1228
1250
|
"stroke-linecap": "round",
|
|
1229
1251
|
"stroke-linejoin": "round",
|
|
1230
1252
|
d: "M19 9l-7 7-7-7"
|
|
1231
|
-
}, null, -1)]], 2))], 10,
|
|
1253
|
+
}, null, -1)]], 2))], 10, Et), A(o("div", { class: f(["p-6 border-t", [w(l).border, m.value]]) }, [b(t.$slots, "default")], 2), [[D, !e.collapsed]])], 2));
|
|
1232
1254
|
}
|
|
1233
|
-
}),
|
|
1255
|
+
}), kt = ["disabled"], At = ["disabled"], jt = {
|
|
1234
1256
|
key: 0,
|
|
1235
1257
|
class: "w-4 h-4 animate-spin",
|
|
1236
1258
|
fill: "none",
|
|
1237
1259
|
viewBox: "0 0 24 24",
|
|
1238
1260
|
"aria-hidden": "true"
|
|
1239
|
-
},
|
|
1261
|
+
}, Mt = /* @__PURE__ */ l({
|
|
1240
1262
|
__name: "BaseConfirmModal",
|
|
1241
1263
|
props: {
|
|
1242
1264
|
title: {},
|
|
@@ -1252,7 +1274,7 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1252
1274
|
},
|
|
1253
1275
|
emits: ["confirm", "cancel"],
|
|
1254
1276
|
setup(e, { emit: t }) {
|
|
1255
|
-
let n = e, l = t, { isDark: u } =
|
|
1277
|
+
let n = e, l = t, { isDark: u } = W(), d = Z();
|
|
1256
1278
|
function p() {
|
|
1257
1279
|
n.submitting || l("confirm");
|
|
1258
1280
|
}
|
|
@@ -1264,7 +1286,7 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1264
1286
|
"manual-close": e.submitting,
|
|
1265
1287
|
onCancel: m
|
|
1266
1288
|
}, {
|
|
1267
|
-
icon: k(() => [o("div", { class: f(["flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full", [e.variant === "danger" ? w(u) ? "bg-red-900/30" : "bg-red-50" : w(u) ? "bg-amber-900/30" : "bg-amber-50"]]) }, [c(w(
|
|
1289
|
+
icon: k(() => [o("div", { class: f(["flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full", [e.variant === "danger" ? w(u) ? "bg-red-900/30" : "bg-red-50" : w(u) ? "bg-amber-900/30" : "bg-amber-50"]]) }, [c(w(I), {
|
|
1268
1290
|
class: f(["h-6 w-6", e.variant === "danger" ? "text-red-600" : "text-amber-600"]),
|
|
1269
1291
|
"aria-hidden": "true"
|
|
1270
1292
|
}, null, 8, ["class"])], 2)]),
|
|
@@ -1273,12 +1295,12 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1273
1295
|
disabled: e.submitting,
|
|
1274
1296
|
class: f(["inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150", [w(d).ghostButton, e.submitting ? "opacity-60 cursor-not-allowed" : "cursor-pointer"]]),
|
|
1275
1297
|
onClick: m
|
|
1276
|
-
}, C(e.cancelText), 11,
|
|
1298
|
+
}, C(e.cancelText), 11, kt), o("button", {
|
|
1277
1299
|
type: "button",
|
|
1278
1300
|
disabled: e.submitting,
|
|
1279
1301
|
class: f(["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", [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"]]),
|
|
1280
1302
|
onClick: p
|
|
1281
|
-
}, [e.submitting ? (_(), a("svg",
|
|
1303
|
+
}, [e.submitting ? (_(), a("svg", jt, [...n[0] ||= [o("circle", {
|
|
1282
1304
|
class: "opacity-25",
|
|
1283
1305
|
cx: "12",
|
|
1284
1306
|
cy: "12",
|
|
@@ -1289,12 +1311,12 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1289
1311
|
class: "opacity-75",
|
|
1290
1312
|
fill: "currentColor",
|
|
1291
1313
|
d: "M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"
|
|
1292
|
-
}, null, -1)]])) : i("", !0), s(" " + C(e.submitting ? e.submittingText : e.confirmText), 1)], 10,
|
|
1293
|
-
default: k(() => [o("p", { class: f(["text-sm", w(u) ? "text-gray-300" : "text-gray-600"]) }, C(e.message), 3), b(t.$slots, "default")]),
|
|
1314
|
+
}, null, -1)]])) : i("", !0), s(" " + C(e.submitting ? e.submittingText : e.confirmText), 1)], 10, At)]),
|
|
1315
|
+
default: k(() => [b(t.$slots, "message", {}, () => [o("p", { class: f(["text-sm", w(u) ? "text-gray-300" : "text-gray-600"]) }, C(e.message), 3)]), b(t.$slots, "default")]),
|
|
1294
1316
|
_: 3
|
|
1295
1317
|
}, 8, ["title", "manual-close"]));
|
|
1296
1318
|
}
|
|
1297
|
-
}),
|
|
1319
|
+
}), Nt = { class: "mt-4" }, Pt = ["placeholder"], Ft = ["disabled"], It = /* @__PURE__ */ l({
|
|
1298
1320
|
__name: "BaseTextInputModal",
|
|
1299
1321
|
props: {
|
|
1300
1322
|
title: {},
|
|
@@ -1312,7 +1334,7 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1312
1334
|
},
|
|
1313
1335
|
emits: ["confirm", "cancel"],
|
|
1314
1336
|
setup(e, { emit: t }) {
|
|
1315
|
-
let n = e, i = t, { isDark: a } =
|
|
1337
|
+
let n = e, i = t, { isDark: a } = W(), s = Z(), l = v(n.initialValue), u = v(null);
|
|
1316
1338
|
m(async () => {
|
|
1317
1339
|
await d(), u.value?.focus();
|
|
1318
1340
|
});
|
|
@@ -1325,12 +1347,12 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1325
1347
|
function g() {
|
|
1326
1348
|
l.value.trim() === (n.initialValue ?? "").trim() && h();
|
|
1327
1349
|
}
|
|
1328
|
-
return
|
|
1350
|
+
return _t(h), (t, n) => (_(), r(Q, {
|
|
1329
1351
|
title: e.title,
|
|
1330
1352
|
"manual-close": "",
|
|
1331
1353
|
onBackdrop: g
|
|
1332
1354
|
}, {
|
|
1333
|
-
icon: k(() => [b(t.$slots, "icon", {}, () => [o("div", { class: f(["flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full", w(a) ? "bg-emerald-900/30" : "bg-emerald-50"]) }, [c(w(
|
|
1355
|
+
icon: k(() => [b(t.$slots, "icon", {}, () => [o("div", { class: f(["flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full", w(a) ? "bg-emerald-900/30" : "bg-emerald-50"]) }, [c(w(ie), {
|
|
1334
1356
|
class: "h-6 w-6 text-emerald-600",
|
|
1335
1357
|
"aria-hidden": "true"
|
|
1336
1358
|
})], 2)])]),
|
|
@@ -1343,8 +1365,8 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1343
1365
|
disabled: !l.value.trim() || e.submitting,
|
|
1344
1366
|
class: f(["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", [!l.value.trim() || e.submitting ? "bg-emerald-400 cursor-not-allowed" : "bg-emerald-600 hover:bg-emerald-700 cursor-pointer"]]),
|
|
1345
1367
|
onClick: p
|
|
1346
|
-
}, C(e.submitting ? e.submittingText : e.confirmText), 11,
|
|
1347
|
-
default: k(() => [o("p", { class: f(["text-sm", w(a) ? "text-gray-300" : "text-gray-600"]) }, C(e.message), 3), o("div",
|
|
1368
|
+
}, C(e.submitting ? e.submittingText : e.confirmText), 11, Ft)]),
|
|
1369
|
+
default: k(() => [o("p", { class: f(["text-sm", w(a) ? "text-gray-300" : "text-gray-600"]) }, C(e.message), 3), o("div", Nt, [o("label", { class: f(["block text-sm font-medium mb-1", w(s).label]) }, C(e.inputLabel), 3), A(o("input", {
|
|
1348
1370
|
ref_key: "nameInput",
|
|
1349
1371
|
ref: u,
|
|
1350
1372
|
"onUpdate:modelValue": n[0] ||= (e) => l.value = e,
|
|
@@ -1352,11 +1374,11 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1352
1374
|
placeholder: e.placeholder,
|
|
1353
1375
|
class: f(["w-full px-3 py-2 rounded-md border text-sm transition-colors", w(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"]),
|
|
1354
1376
|
onKeyup: j(p, ["enter"])
|
|
1355
|
-
}, null, 42,
|
|
1377
|
+
}, null, 42, Pt), [[E, l.value]])])]),
|
|
1356
1378
|
_: 3
|
|
1357
1379
|
}, 8, ["title"]));
|
|
1358
1380
|
}
|
|
1359
|
-
}),
|
|
1381
|
+
}), Lt = { class: "flex items-center justify-center min-h-[60vh]" }, Rt = { class: "text-center px-6" }, zt = /* @__PURE__ */ l({
|
|
1360
1382
|
__name: "BaseNotFoundPage",
|
|
1361
1383
|
props: {
|
|
1362
1384
|
code: { default: "404" },
|
|
@@ -1365,12 +1387,12 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1365
1387
|
homeLabel: { default: "Go home" }
|
|
1366
1388
|
},
|
|
1367
1389
|
setup(e) {
|
|
1368
|
-
let t = e, n = pe(), { isDark: r } =
|
|
1390
|
+
let t = e, n = pe(), { isDark: r } = W(), i = Z();
|
|
1369
1391
|
function s() {
|
|
1370
1392
|
n.push({ name: t.homeRouteName });
|
|
1371
1393
|
}
|
|
1372
|
-
return (t, n) => (_(), a("div",
|
|
1373
|
-
c(w(
|
|
1394
|
+
return (t, n) => (_(), a("div", Lt, [o("div", Rt, [
|
|
1395
|
+
c(w(I), { class: f(["w-16 h-16 mx-auto mb-4", w(i).illustration]) }, null, 8, ["class"]),
|
|
1374
1396
|
o("h1", { class: f(["text-4xl font-bold mb-2", w(r) ? "text-gray-200" : "text-gray-800"]) }, C(e.code), 3),
|
|
1375
1397
|
o("p", { class: f(["text-lg mb-6", w(i).dimTextAlt]) }, C(e.message), 3),
|
|
1376
1398
|
o("button", {
|
|
@@ -1380,7 +1402,7 @@ var gt = { class: "flex items-start gap-4 min-w-0" }, _t = { class: "flex-1 min-
|
|
|
1380
1402
|
])]));
|
|
1381
1403
|
}
|
|
1382
1404
|
}), $ = v(!1);
|
|
1383
|
-
function
|
|
1405
|
+
function Bt() {
|
|
1384
1406
|
function e() {
|
|
1385
1407
|
$.value = !0;
|
|
1386
1408
|
}
|
|
@@ -1399,11 +1421,15 @@ function Rt() {
|
|
|
1399
1421
|
}
|
|
1400
1422
|
//#endregion
|
|
1401
1423
|
//#region src/components/BaseSidebar.vue?vue&type=script&setup=true&lang.ts
|
|
1402
|
-
var
|
|
1424
|
+
var Vt = ["aria-label", "aria-expanded"], Ht = { class: "flex flex-col h-full" }, Ut = { class: "px-5 pt-5 pb-4 flex items-center justify-center relative" }, Wt = { class: "flex-1 overflow-y-auto px-3 space-y-6" }, Gt = { class: "px-2 mb-2 text-[10px] font-semibold uppercase tracking-wider text-gray-500" }, Kt = { class: "space-y-0.5" }, qt = ["aria-current", "onClick"], Jt = [
|
|
1403
1425
|
"title",
|
|
1404
1426
|
"aria-label",
|
|
1405
1427
|
"aria-pressed"
|
|
1406
|
-
],
|
|
1428
|
+
], Yt = /* @__PURE__ */ ((e, t) => {
|
|
1429
|
+
let n = e.__vccOpts || e;
|
|
1430
|
+
for (let [e, r] of t) n[e] = r;
|
|
1431
|
+
return n;
|
|
1432
|
+
})(/* @__PURE__ */ l({
|
|
1407
1433
|
__name: "BaseSidebar",
|
|
1408
1434
|
props: {
|
|
1409
1435
|
sections: {},
|
|
@@ -1416,32 +1442,32 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1416
1442
|
}
|
|
1417
1443
|
},
|
|
1418
1444
|
setup(t) {
|
|
1419
|
-
let n = t, l = pe(), u = fe(), { isDark: p, toggleTheme:
|
|
1420
|
-
O(
|
|
1421
|
-
e ? (
|
|
1422
|
-
})
|
|
1423
|
-
function
|
|
1424
|
-
l.push({ name: n.homeRouteName }),
|
|
1445
|
+
let n = t, l = pe(), u = fe(), { isDark: p, toggleTheme: m } = W(), { mobileOpen: h, close: g, toggle: x } = Bt(), T = v(null), E = null;
|
|
1446
|
+
O(h, async (e) => {
|
|
1447
|
+
e ? (E = document.activeElement instanceof HTMLElement ? document.activeElement : null, await d(), T.value?.focus()) : (E?.focus(), E = null);
|
|
1448
|
+
});
|
|
1449
|
+
function D() {
|
|
1450
|
+
l.push({ name: n.homeRouteName }), g();
|
|
1425
1451
|
}
|
|
1426
|
-
function
|
|
1452
|
+
function k(e) {
|
|
1427
1453
|
return u.name === e;
|
|
1428
1454
|
}
|
|
1429
|
-
function
|
|
1430
|
-
l.push({ name: e }),
|
|
1455
|
+
function A(e) {
|
|
1456
|
+
l.push({ name: e }), g();
|
|
1431
1457
|
}
|
|
1432
1458
|
return (n, l) => (_(), a("div", null, [
|
|
1433
1459
|
o("div", { class: f(["mobile-topbar fixed top-0 inset-x-0 z-30 flex items-center justify-between px-4 py-3 border-b transition-colors", w(p) ? "bg-gray-900 border-gray-800" : "bg-white border-gray-200"]) }, [o("button", {
|
|
1434
1460
|
type: "button",
|
|
1435
|
-
onClick:
|
|
1461
|
+
onClick: D,
|
|
1436
1462
|
class: "cursor-pointer",
|
|
1437
1463
|
"aria-label": "Go to home"
|
|
1438
1464
|
}, [b(n.$slots, "logo", { size: 28 }, void 0, !0)]), o("button", {
|
|
1439
1465
|
type: "button",
|
|
1440
|
-
onClick: l[0] ||= (...e) => w(
|
|
1466
|
+
onClick: l[0] ||= (...e) => w(x) && w(x)(...e),
|
|
1441
1467
|
class: f(["p-2 rounded-lg cursor-pointer", w(p) ? "text-gray-400 hover:bg-gray-800" : "text-gray-600 hover:bg-gray-100"]),
|
|
1442
|
-
"aria-label": w(
|
|
1443
|
-
"aria-expanded": w(
|
|
1444
|
-
}, [w(
|
|
1468
|
+
"aria-label": w(h) ? "Close navigation menu" : "Open navigation menu",
|
|
1469
|
+
"aria-expanded": w(h)
|
|
1470
|
+
}, [w(h) ? (_(), r(w(ue), {
|
|
1445
1471
|
key: 1,
|
|
1446
1472
|
class: "w-6 h-6",
|
|
1447
1473
|
"aria-hidden": "true"
|
|
@@ -1449,50 +1475,50 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1449
1475
|
key: 0,
|
|
1450
1476
|
class: "w-6 h-6",
|
|
1451
1477
|
"aria-hidden": "true"
|
|
1452
|
-
}))], 10,
|
|
1453
|
-
w(
|
|
1478
|
+
}))], 10, Vt)], 2),
|
|
1479
|
+
w(h) ? (_(), a("div", {
|
|
1454
1480
|
key: 0,
|
|
1455
1481
|
class: "mobile-overlay fixed inset-0 z-40 bg-black/50",
|
|
1456
1482
|
"aria-hidden": "true",
|
|
1457
|
-
onClick: l[1] ||= (...e) => w(
|
|
1483
|
+
onClick: l[1] ||= (...e) => w(g) && w(g)(...e)
|
|
1458
1484
|
})) : i("", !0),
|
|
1459
1485
|
o("aside", {
|
|
1460
1486
|
role: "navigation",
|
|
1461
1487
|
"aria-label": "Main navigation",
|
|
1462
|
-
class: f(["fixed top-0 left-0 h-screen w-60 flex flex-col border-r transition-transform duration-300 lg:pointer-events-auto", [w(p) ? "bg-gray-900 border-gray-800" : "bg-white border-gray-200", w(
|
|
1463
|
-
}, [o("div",
|
|
1464
|
-
o("div",
|
|
1488
|
+
class: f(["fixed top-0 left-0 h-screen w-60 flex flex-col border-r transition-transform duration-300 lg:pointer-events-auto", [w(p) ? "bg-gray-900 border-gray-800" : "bg-white border-gray-200", w(h) ? "translate-x-0 z-50" : "-translate-x-full max-lg:pointer-events-none lg:translate-x-0 z-50"]])
|
|
1489
|
+
}, [o("div", Ht, [
|
|
1490
|
+
o("div", Ut, [o("button", {
|
|
1465
1491
|
type: "button",
|
|
1466
|
-
onClick:
|
|
1492
|
+
onClick: D,
|
|
1467
1493
|
class: "cursor-pointer",
|
|
1468
1494
|
"aria-label": "Go to home"
|
|
1469
1495
|
}, [b(n.$slots, "logo", { size: 52 }, void 0, !0)]), o("button", {
|
|
1470
1496
|
ref_key: "closeMobileButton",
|
|
1471
|
-
ref:
|
|
1497
|
+
ref: T,
|
|
1472
1498
|
type: "button",
|
|
1473
|
-
onClick: l[2] ||= (...e) => w(
|
|
1499
|
+
onClick: l[2] ||= (...e) => w(g) && w(g)(...e),
|
|
1474
1500
|
class: f(["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", w(p) ? "text-gray-400 hover:bg-gray-800" : "text-gray-500 hover:bg-gray-100"]),
|
|
1475
1501
|
"aria-label": "Close navigation menu"
|
|
1476
|
-
}, [c(w(
|
|
1502
|
+
}, [c(w(ue), {
|
|
1477
1503
|
class: "w-5 h-5",
|
|
1478
1504
|
"aria-hidden": "true"
|
|
1479
1505
|
})], 2)]),
|
|
1480
|
-
o("nav",
|
|
1506
|
+
o("nav", Wt, [(_(!0), a(e, null, y(t.sections, (t) => (_(), a("div", { key: t.title }, [o("p", Gt, C(t.title), 1), o("ul", Kt, [(_(!0), a(e, null, y(t.items, (e) => (_(), a("li", { key: e.name }, [o("button", {
|
|
1481
1507
|
type: "button",
|
|
1482
|
-
"aria-current":
|
|
1483
|
-
onClick: (t) =>
|
|
1484
|
-
class: f(["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",
|
|
1485
|
-
}, [(_(), r(S(e.icon), { class: "w-[18px] h-[18px] shrink-0" })), s(" " + C(e.label), 1)], 10,
|
|
1508
|
+
"aria-current": k(e.name) ? "page" : void 0,
|
|
1509
|
+
onClick: (t) => A(e.name),
|
|
1510
|
+
class: f(["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", k(e.name) ? w(p) ? "bg-emerald-500/15 text-emerald-300" : "bg-emerald-50 text-emerald-700" : w(p) ? "text-gray-400 hover:text-gray-100 hover:bg-gray-800" : "text-gray-600 hover:text-gray-900 hover:bg-gray-100"])
|
|
1511
|
+
}, [(_(), r(S(e.icon), { class: "w-[18px] h-[18px] shrink-0" })), s(" " + C(e.label), 1)], 10, qt)]))), 128))])]))), 128))]),
|
|
1486
1512
|
o("div", { class: f(["px-4 py-4 border-t transition-colors space-y-3", w(p) ? "border-gray-800" : "border-gray-200"]) }, [
|
|
1487
1513
|
t.showThemeToggle ? (_(), a("button", {
|
|
1488
1514
|
key: 0,
|
|
1489
1515
|
type: "button",
|
|
1490
|
-
onClick: l[3] ||= (...e) => w(
|
|
1516
|
+
onClick: l[3] ||= (...e) => w(m) && w(m)(...e),
|
|
1491
1517
|
title: w(p) ? "Switch to light mode" : "Switch to dark mode",
|
|
1492
1518
|
"aria-label": w(p) ? "Switch to light mode" : "Switch to dark mode",
|
|
1493
1519
|
"aria-pressed": w(p),
|
|
1494
1520
|
class: f(["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", w(p) ? "text-gray-400 hover:text-gray-100 hover:bg-gray-800" : "text-gray-600 hover:text-gray-900 hover:bg-gray-100"])
|
|
1495
|
-
}, [s(C(w(p) ? "Switch to light" : "Switch to dark") + " ", 1), o("span", { class: f(["ml-auto relative w-9 h-5 rounded-full transition-colors", w(p) ? "bg-emerald-600" : "bg-gray-300"]) }, [o("span", { class: f(["absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white shadow-sm transition-transform duration-300", w(p) ? "translate-x-4" : "translate-x-0"]) }, null, 2)], 2)], 10,
|
|
1521
|
+
}, [s(C(w(p) ? "Switch to light" : "Switch to dark") + " ", 1), o("span", { class: f(["ml-auto relative w-9 h-5 rounded-full transition-colors", w(p) ? "bg-emerald-600" : "bg-gray-300"]) }, [o("span", { class: f(["absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white shadow-sm transition-transform duration-300", w(p) ? "translate-x-4" : "translate-x-0"]) }, null, 2)], 2)], 10, Jt)) : i("", !0),
|
|
1496
1522
|
b(n.$slots, "status", {}, void 0, !0),
|
|
1497
1523
|
b(n.$slots, "footer", {}, () => [t.appName || t.version ? (_(), a("div", {
|
|
1498
1524
|
key: 0,
|
|
@@ -1506,26 +1532,26 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1506
1532
|
])], 2)
|
|
1507
1533
|
]));
|
|
1508
1534
|
}
|
|
1509
|
-
}), [["__scopeId", "data-v-
|
|
1535
|
+
}), [["__scopeId", "data-v-1a9948c5"]]), Xt = {
|
|
1510
1536
|
key: 1,
|
|
1511
1537
|
class: "mt-4 flex justify-center py-6"
|
|
1512
|
-
},
|
|
1538
|
+
}, Zt = {
|
|
1513
1539
|
key: 2,
|
|
1514
1540
|
class: "mt-4 text-sm text-red-500",
|
|
1515
1541
|
role: "alert"
|
|
1516
|
-
},
|
|
1542
|
+
}, Qt = {
|
|
1517
1543
|
key: 3,
|
|
1518
1544
|
class: "mt-4"
|
|
1519
|
-
},
|
|
1545
|
+
}, $t = { class: "relative" }, en = ["placeholder"], tn = {
|
|
1520
1546
|
key: 4,
|
|
1521
1547
|
class: "mt-3 max-h-64 overflow-y-auto"
|
|
1522
|
-
},
|
|
1548
|
+
}, nn = ["onClick"], rn = { class: "flex-1 min-w-0" }, an = {
|
|
1523
1549
|
key: 0,
|
|
1524
1550
|
class: "text-center py-6"
|
|
1525
|
-
},
|
|
1551
|
+
}, on = {
|
|
1526
1552
|
key: 1,
|
|
1527
1553
|
class: "text-center py-6"
|
|
1528
|
-
},
|
|
1554
|
+
}, sn = ["disabled"], cn = ["disabled"], ln = /* @__PURE__ */ l({
|
|
1529
1555
|
__name: "BaseEntityPickerModal",
|
|
1530
1556
|
props: {
|
|
1531
1557
|
title: {},
|
|
@@ -1547,7 +1573,7 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1547
1573
|
},
|
|
1548
1574
|
emits: ["confirm", "cancel"],
|
|
1549
1575
|
setup(t, { emit: s }) {
|
|
1550
|
-
let l = t, u = s, { isDark: p } =
|
|
1576
|
+
let l = t, u = s, { isDark: p } = W(), h = Z(), g = v([]), x = v(!1), S = v(""), T = v(null), D = v(""), O = v(null), j = n(() => {
|
|
1551
1577
|
let e = l.loader ? g.value : l.items;
|
|
1552
1578
|
return l.excludeId ? e.filter((e) => e.id !== l.excludeId) : e;
|
|
1553
1579
|
}), M = n(() => j.value.filter((e) => e.label.toLowerCase().includes(D.value.toLowerCase()))), ee = {
|
|
@@ -1656,18 +1682,18 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1656
1682
|
}
|
|
1657
1683
|
await d(), O.value?.focus();
|
|
1658
1684
|
});
|
|
1659
|
-
function
|
|
1685
|
+
function P() {
|
|
1660
1686
|
!T.value || l.submitting || u("confirm", T.value);
|
|
1661
1687
|
}
|
|
1662
|
-
function
|
|
1688
|
+
function F() {
|
|
1663
1689
|
l.submitting || u("cancel");
|
|
1664
1690
|
}
|
|
1665
1691
|
return (n, s) => (_(), r(Q, {
|
|
1666
1692
|
title: t.title,
|
|
1667
1693
|
"manual-close": t.submitting,
|
|
1668
|
-
onCancel:
|
|
1694
|
+
onCancel: F
|
|
1669
1695
|
}, {
|
|
1670
|
-
icon: k(() => [b(n.$slots, "icon", {}, () => [o("div", { class: f(["flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full", N.value.iconBg]) }, [c(w(
|
|
1696
|
+
icon: k(() => [b(n.$slots, "icon", {}, () => [o("div", { class: f(["flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full", N.value.iconBg]) }, [c(w(oe), {
|
|
1671
1697
|
class: f(["h-6 w-6", N.value.iconText]),
|
|
1672
1698
|
"aria-hidden": "true"
|
|
1673
1699
|
}, null, 8, ["class"])], 2)])]),
|
|
@@ -1675,20 +1701,20 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1675
1701
|
type: "button",
|
|
1676
1702
|
disabled: t.submitting,
|
|
1677
1703
|
class: f(["inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150 disabled:opacity-50 disabled:cursor-not-allowed", w(h).ghostButton]),
|
|
1678
|
-
onClick:
|
|
1679
|
-
}, C(t.cancelText), 11,
|
|
1704
|
+
onClick: F
|
|
1705
|
+
}, C(t.cancelText), 11, sn), o("button", {
|
|
1680
1706
|
type: "button",
|
|
1681
1707
|
disabled: !T.value || t.submitting,
|
|
1682
1708
|
class: f(["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", !T.value || t.submitting ? N.value.confirmDisabled : N.value.confirmActive]),
|
|
1683
|
-
onClick:
|
|
1684
|
-
}, C(t.submitting ? t.submittingText : t.confirmText), 11,
|
|
1709
|
+
onClick: P
|
|
1710
|
+
}, C(t.submitting ? t.submittingText : t.confirmText), 11, cn)]),
|
|
1685
1711
|
default: k(() => [
|
|
1686
1712
|
t.message ? (_(), a("p", {
|
|
1687
1713
|
key: 0,
|
|
1688
1714
|
class: f(["text-sm", w(p) ? "text-gray-300" : "text-gray-600"])
|
|
1689
1715
|
}, C(t.message), 3)) : i("", !0),
|
|
1690
|
-
x.value ? (_(), a("div",
|
|
1691
|
-
!x.value && !S.value && j.value.length > 0 ? (_(), a("div",
|
|
1716
|
+
x.value ? (_(), a("div", Xt, [c(Je, { color: "emerald" })])) : S.value ? (_(), a("div", Zt, C(S.value), 1)) : i("", !0),
|
|
1717
|
+
!x.value && !S.value && j.value.length > 0 ? (_(), a("div", Qt, [o("div", $t, [c(w(ce), {
|
|
1692
1718
|
class: f(["absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4", w(h).dimText]),
|
|
1693
1719
|
"aria-hidden": "true"
|
|
1694
1720
|
}, null, 8, ["class"]), A(o("input", {
|
|
@@ -1698,14 +1724,14 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1698
1724
|
type: "text",
|
|
1699
1725
|
placeholder: t.searchPlaceholder,
|
|
1700
1726
|
class: f(["w-full pl-9 pr-3 py-2 text-sm rounded-md border outline-none transition-colors", [w(p) ? "bg-gray-800 border-gray-600 text-gray-200 placeholder-gray-500" : "bg-white border-gray-300 text-gray-700 placeholder-gray-400", N.value.inputFocus]])
|
|
1701
|
-
}, null, 10,
|
|
1702
|
-
!x.value && !S.value ? (_(), a("div",
|
|
1727
|
+
}, null, 10, en), [[E, D.value]])])])) : i("", !0),
|
|
1728
|
+
!x.value && !S.value ? (_(), a("div", tn, [(_(!0), a(e, null, y(M.value, (e) => (_(), a("div", {
|
|
1703
1729
|
key: e.id,
|
|
1704
1730
|
class: f(["flex items-center gap-3 px-3 py-2.5 rounded-lg cursor-pointer transition-colors", [T.value === e.id ? N.value.selectedRow : w(p) ? "hover:bg-gray-800 border border-transparent" : "hover:bg-gray-50 border border-transparent"]]),
|
|
1705
1731
|
onClick: (t) => T.value = e.id
|
|
1706
1732
|
}, [
|
|
1707
|
-
c(w(
|
|
1708
|
-
o("div",
|
|
1733
|
+
c(w(oe), { class: f(["w-5 h-5 flex-shrink-0", w(h).dimText]) }, null, 8, ["class"]),
|
|
1734
|
+
o("div", rn, [o("p", { class: f(["text-sm font-medium truncate", w(h).bodyText]) }, C(e.label), 3)]),
|
|
1709
1735
|
T.value === e.id ? (_(), a("div", {
|
|
1710
1736
|
key: 0,
|
|
1711
1737
|
class: f(["w-5 h-5 rounded-full flex items-center justify-center", N.value.checkBg])
|
|
@@ -1721,15 +1747,15 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1721
1747
|
"stroke-linejoin": "round",
|
|
1722
1748
|
d: "M5 13l4 4L19 7"
|
|
1723
1749
|
})], -1)]], 2)) : i("", !0)
|
|
1724
|
-
], 10,
|
|
1750
|
+
], 10, nn))), 128)), j.value.length === 0 ? (_(), a("div", an, [o("p", { class: f(["text-sm", w(h).dimText]) }, C(t.emptyMessage), 3)])) : M.value.length === 0 ? (_(), a("div", on, [o("p", { class: f(["text-sm", w(h).dimText]) }, C(t.noMatchMessage), 3)])) : i("", !0)])) : i("", !0)
|
|
1725
1751
|
]),
|
|
1726
1752
|
_: 3
|
|
1727
1753
|
}, 8, ["title", "manual-close"]));
|
|
1728
1754
|
}
|
|
1729
|
-
}),
|
|
1755
|
+
}), un = {
|
|
1730
1756
|
href: "#main-content",
|
|
1731
1757
|
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"
|
|
1732
|
-
},
|
|
1758
|
+
}, dn = ["inert"], fn = /* @__PURE__ */ l({
|
|
1733
1759
|
__name: "BaseAppLayout",
|
|
1734
1760
|
props: {
|
|
1735
1761
|
showSidebar: {
|
|
@@ -1739,19 +1765,19 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1739
1765
|
skipLinkLabel: { default: "Skip to main content" }
|
|
1740
1766
|
},
|
|
1741
1767
|
setup(e) {
|
|
1742
|
-
let t = e, { isDark: r } =
|
|
1768
|
+
let t = e, { isDark: r } = W(), { mobileOpen: s } = Bt(), c = n(() => t.showSidebar);
|
|
1743
1769
|
return (t, n) => (_(), a("div", { class: f(["min-h-screen transition-colors duration-300", w(r) ? "bg-gray-950 text-gray-100" : "bg-gray-50 text-gray-800"]) }, [
|
|
1744
|
-
o("a",
|
|
1770
|
+
o("a", un, C(e.skipLinkLabel), 1),
|
|
1745
1771
|
c.value ? b(t.$slots, "sidebar", { key: 0 }) : i("", !0),
|
|
1746
1772
|
o("main", {
|
|
1747
1773
|
id: "main-content",
|
|
1748
1774
|
tabindex: "-1",
|
|
1749
1775
|
inert: c.value && w(s) ? !0 : void 0,
|
|
1750
1776
|
class: f(c.value ? "pt-14 lg:pt-0 lg:ml-60" : "")
|
|
1751
|
-
}, [b(t.$slots, "default")], 10,
|
|
1777
|
+
}, [b(t.$slots, "default")], 10, dn)
|
|
1752
1778
|
], 2));
|
|
1753
1779
|
}
|
|
1754
|
-
}),
|
|
1780
|
+
}), pn = { class: "flex flex-wrap items-center justify-between gap-3 mb-8" }, mn = { class: "flex items-center gap-3 min-w-0" }, hn = { class: "flex items-center gap-2" }, gn = /* @__PURE__ */ l({
|
|
1755
1781
|
__name: "BasePageHeader",
|
|
1756
1782
|
props: {
|
|
1757
1783
|
title: {},
|
|
@@ -1760,7 +1786,7 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1760
1786
|
maxWidthClass: { default: "max-w-4xl" }
|
|
1761
1787
|
},
|
|
1762
1788
|
setup(e) {
|
|
1763
|
-
let t = e, { isDark: r } =
|
|
1789
|
+
let t = e, { isDark: r } = W(), s = Z(), c = n(() => {
|
|
1764
1790
|
let e = {
|
|
1765
1791
|
emerald: {
|
|
1766
1792
|
dark: "bg-emerald-500/10",
|
|
@@ -1801,16 +1827,16 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1801
1827
|
}[t.iconColor];
|
|
1802
1828
|
return r.value ? e.dark : e.light;
|
|
1803
1829
|
});
|
|
1804
|
-
return (t, n) => (_(), a("div", { class: f(["mx-auto px-4 sm:px-6", e.maxWidthClass]) }, [o("div",
|
|
1830
|
+
return (t, n) => (_(), a("div", { class: f(["mx-auto px-4 sm:px-6", e.maxWidthClass]) }, [o("div", pn, [o("div", mn, [o("div", { class: f(["w-10 h-10 rounded-lg flex items-center justify-center", c.value]) }, [b(t.$slots, "icon", { iconClass: l.value })], 2), o("div", null, [o("h1", { class: f(["text-2xl font-bold", w(s).primaryTextSoft]) }, C(e.title), 3), e.subtitle ? (_(), a("p", {
|
|
1805
1831
|
key: 0,
|
|
1806
1832
|
class: f(["text-sm", w(s).dimTextAlt])
|
|
1807
|
-
}, C(e.subtitle), 3)) : i("", !0)])]), o("div",
|
|
1833
|
+
}, C(e.subtitle), 3)) : i("", !0)])]), o("div", hn, [b(t.$slots, "actions")])])], 2));
|
|
1808
1834
|
}
|
|
1809
|
-
}),
|
|
1835
|
+
}), _n = [
|
|
1810
1836
|
"type",
|
|
1811
1837
|
"disabled",
|
|
1812
1838
|
"title"
|
|
1813
|
-
],
|
|
1839
|
+
], vn = { key: 0 }, yn = /* @__PURE__ */ l({
|
|
1814
1840
|
__name: "BaseToolbarButton",
|
|
1815
1841
|
props: {
|
|
1816
1842
|
label: { default: "" },
|
|
@@ -1824,7 +1850,7 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1824
1850
|
},
|
|
1825
1851
|
emits: ["click"],
|
|
1826
1852
|
setup(e) {
|
|
1827
|
-
let t = e, { isDark: r } =
|
|
1853
|
+
let t = e, { isDark: r } = W(), o = n(() => {
|
|
1828
1854
|
let e = {
|
|
1829
1855
|
neutral: {
|
|
1830
1856
|
dark: "bg-gray-800 text-gray-100 border-gray-700 hover:bg-gray-700",
|
|
@@ -1843,14 +1869,14 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1843
1869
|
title: e.title,
|
|
1844
1870
|
class: f(["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", o.value]),
|
|
1845
1871
|
onClick: n[0] ||= (e) => t.$emit("click", e)
|
|
1846
|
-
}, [b(t.$slots, "icon", { iconClass: "w-4 h-4" }), e.label ? (_(), a("span",
|
|
1872
|
+
}, [b(t.$slots, "icon", { iconClass: "w-4 h-4" }), e.label ? (_(), a("span", vn, C(e.label), 1)) : i("", !0)], 10, _n));
|
|
1847
1873
|
}
|
|
1848
|
-
}),
|
|
1874
|
+
}), bn = [
|
|
1849
1875
|
"type",
|
|
1850
1876
|
"disabled",
|
|
1851
1877
|
"title",
|
|
1852
1878
|
"aria-label"
|
|
1853
|
-
],
|
|
1879
|
+
], xn = { key: 0 }, Sn = /* @__PURE__ */ l({
|
|
1854
1880
|
__name: "BaseActionButton",
|
|
1855
1881
|
props: {
|
|
1856
1882
|
label: { default: "" },
|
|
@@ -1869,7 +1895,7 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1869
1895
|
},
|
|
1870
1896
|
emits: ["click"],
|
|
1871
1897
|
setup(e) {
|
|
1872
|
-
let t = e, { isDark: r } =
|
|
1898
|
+
let t = e, { isDark: r } = W(), o = n(() => {
|
|
1873
1899
|
let e = {
|
|
1874
1900
|
emerald: {
|
|
1875
1901
|
dark: "text-emerald-400 hover:bg-emerald-500/10",
|
|
@@ -1949,9 +1975,9 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1949
1975
|
"aria-label": e.ariaLabel,
|
|
1950
1976
|
class: f(["inline-flex items-center justify-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium transition-colors", [e.fullWidth ? "flex-1" : "", c.value]]),
|
|
1951
1977
|
onClick: n[0] ||= (e) => t.$emit("click", e)
|
|
1952
|
-
}, [b(t.$slots, "icon", { iconClass: "w-4 h-4" }), e.label ? (_(), a("span",
|
|
1978
|
+
}, [b(t.$slots, "icon", { iconClass: "w-4 h-4" }), e.label ? (_(), a("span", xn, C(e.label), 1)) : i("", !0)], 10, bn));
|
|
1953
1979
|
}
|
|
1954
|
-
}),
|
|
1980
|
+
}), Cn = ["title", "aria-label"], wn = /* @__PURE__ */ l({
|
|
1955
1981
|
__name: "BaseCopyButton",
|
|
1956
1982
|
props: {
|
|
1957
1983
|
text: {},
|
|
@@ -1962,7 +1988,7 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1962
1988
|
},
|
|
1963
1989
|
emits: ["copied", "error"],
|
|
1964
1990
|
setup(e, { emit: t }) {
|
|
1965
|
-
let i = e, o = t, { isDark: s } =
|
|
1991
|
+
let i = e, o = t, { isDark: s } = W(), c = v(!1), l = null, u = n(() => c.value ? "Copied!" : i.label ? `Copy ${i.label}` : "Copy"), d = n(() => i.label ? `Copy ${i.label}` : "Copy"), p = n(() => i.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"}`);
|
|
1966
1992
|
async function m(e) {
|
|
1967
1993
|
try {
|
|
1968
1994
|
if (navigator.clipboard?.writeText) {
|
|
@@ -1992,20 +2018,20 @@ var zt = ["aria-label", "aria-expanded"], Bt = { class: "flex flex-col h-full" }
|
|
|
1992
2018
|
"aria-label": d.value,
|
|
1993
2019
|
class: f(p.value),
|
|
1994
2020
|
onClick: h
|
|
1995
|
-
}, [c.value ? (_(), r(w(
|
|
2021
|
+
}, [c.value ? (_(), r(w(ne), {
|
|
1996
2022
|
key: 0,
|
|
1997
2023
|
class: f(e.iconClass),
|
|
1998
2024
|
"aria-hidden": "true"
|
|
1999
|
-
}, null, 8, ["class"])) : (_(), r(w(
|
|
2025
|
+
}, null, 8, ["class"])) : (_(), r(w(re), {
|
|
2000
2026
|
key: 1,
|
|
2001
2027
|
class: f(e.iconClass),
|
|
2002
2028
|
"aria-hidden": "true"
|
|
2003
|
-
}, null, 8, ["class"]))], 10,
|
|
2029
|
+
}, null, 8, ["class"]))], 10, Cn));
|
|
2004
2030
|
}
|
|
2005
2031
|
});
|
|
2006
2032
|
//#endregion
|
|
2007
2033
|
//#region src/composables/useDebounce.ts
|
|
2008
|
-
function
|
|
2034
|
+
function Tn(e, t = 300) {
|
|
2009
2035
|
let n = v(e.value), r = null;
|
|
2010
2036
|
return O(e, (e) => {
|
|
2011
2037
|
r && clearTimeout(r), r = setTimeout(() => {
|
|
@@ -2017,12 +2043,12 @@ function Cn(e, t = 300) {
|
|
|
2017
2043
|
}
|
|
2018
2044
|
//#endregion
|
|
2019
2045
|
//#region src/composables/useToast.ts
|
|
2020
|
-
function
|
|
2021
|
-
let t = v(!1), n = v(""), r = v(
|
|
2046
|
+
function En(e = 3e3) {
|
|
2047
|
+
let t = v(!1), n = v(""), r = v(Y.SUCCESS), i = null;
|
|
2022
2048
|
function a() {
|
|
2023
2049
|
i &&= (clearTimeout(i), null);
|
|
2024
2050
|
}
|
|
2025
|
-
function o(o, s =
|
|
2051
|
+
function o(o, s = Y.SUCCESS, c = e) {
|
|
2026
2052
|
n.value = o, r.value = s, t.value = !0, a(), i = setTimeout(() => {
|
|
2027
2053
|
t.value = !1, i = null;
|
|
2028
2054
|
}, c);
|
|
@@ -2038,16 +2064,16 @@ function wn(e = 3e3) {
|
|
|
2038
2064
|
}
|
|
2039
2065
|
//#endregion
|
|
2040
2066
|
//#region src/enums/BaseBadgeEnum.ts
|
|
2041
|
-
var
|
|
2067
|
+
var Dn = /* @__PURE__ */ function(e) {
|
|
2042
2068
|
return e.WIN = "WIN", e.LOSE = "LOSE", e;
|
|
2043
|
-
}({}),
|
|
2069
|
+
}({}), On = {
|
|
2044
2070
|
GET: "bg-blue-600",
|
|
2045
2071
|
POST: "bg-emerald-600",
|
|
2046
2072
|
PUT: "bg-amber-600",
|
|
2047
2073
|
DELETE: "bg-red-600",
|
|
2048
2074
|
PATCH: "bg-purple-600",
|
|
2049
2075
|
HEAD: "bg-gray-600"
|
|
2050
|
-
},
|
|
2076
|
+
}, kn = {
|
|
2051
2077
|
GET: "bg-blue-500",
|
|
2052
2078
|
POST: "bg-green-500",
|
|
2053
2079
|
PUT: "bg-yellow-500",
|
|
@@ -2055,23 +2081,23 @@ var Tn = /* @__PURE__ */ function(e) {
|
|
|
2055
2081
|
PATCH: "bg-purple-500",
|
|
2056
2082
|
HEAD: "bg-gray-500"
|
|
2057
2083
|
};
|
|
2058
|
-
function
|
|
2059
|
-
return e ?
|
|
2084
|
+
function An(e) {
|
|
2085
|
+
return e ? On[e.toUpperCase()] ?? "bg-gray-600" : "bg-gray-600";
|
|
2060
2086
|
}
|
|
2061
|
-
function
|
|
2062
|
-
return e ?
|
|
2087
|
+
function jn(e) {
|
|
2088
|
+
return e ? kn[e.toUpperCase()] ?? "bg-gray-500" : "bg-gray-500";
|
|
2063
2089
|
}
|
|
2064
|
-
function
|
|
2090
|
+
function Mn(e) {
|
|
2065
2091
|
let t = e ?? 0;
|
|
2066
2092
|
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";
|
|
2067
2093
|
}
|
|
2068
|
-
function
|
|
2094
|
+
function Nn(e, t) {
|
|
2069
2095
|
let n = e ?? 200;
|
|
2070
2096
|
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";
|
|
2071
2097
|
}
|
|
2072
2098
|
//#endregion
|
|
2073
2099
|
//#region src/utils/sanitizeHtml.ts
|
|
2074
|
-
var
|
|
2100
|
+
var Pn = new Set([
|
|
2075
2101
|
"A",
|
|
2076
2102
|
"B",
|
|
2077
2103
|
"STRONG",
|
|
@@ -2086,7 +2112,7 @@ var Mn = new Set([
|
|
|
2086
2112
|
"LI",
|
|
2087
2113
|
"SPAN",
|
|
2088
2114
|
"DIV"
|
|
2089
|
-
]),
|
|
2115
|
+
]), Fn = new Set([
|
|
2090
2116
|
"SCRIPT",
|
|
2091
2117
|
"STYLE",
|
|
2092
2118
|
"IFRAME",
|
|
@@ -2094,53 +2120,53 @@ var Mn = new Set([
|
|
|
2094
2120
|
"EMBED",
|
|
2095
2121
|
"NOSCRIPT",
|
|
2096
2122
|
"TEMPLATE"
|
|
2097
|
-
]),
|
|
2098
|
-
function
|
|
2123
|
+
]), In = { A: new Set(["href", "title"]) };
|
|
2124
|
+
function Ln(e) {
|
|
2099
2125
|
let t = e.trim().toLowerCase();
|
|
2100
2126
|
return t.startsWith("http://") || t.startsWith("https://") || t.startsWith("mailto:") || t.startsWith("tel:") || t.startsWith("/") || t.startsWith("#") || t === "";
|
|
2101
2127
|
}
|
|
2102
|
-
function
|
|
2128
|
+
function Rn(e) {
|
|
2103
2129
|
if (e.nodeType !== Node.ELEMENT_NODE) return;
|
|
2104
2130
|
let t = e, n = t.tagName.toUpperCase();
|
|
2105
|
-
if (!
|
|
2106
|
-
|
|
2131
|
+
if (!Pn.has(n)) {
|
|
2132
|
+
Fn.has(n) ? t.remove() : t.replaceWith(document.createTextNode(t.textContent ?? ""));
|
|
2107
2133
|
return;
|
|
2108
2134
|
}
|
|
2109
|
-
let r =
|
|
2135
|
+
let r = In[n] ?? /* @__PURE__ */ new Set();
|
|
2110
2136
|
for (let e of Array.from(t.attributes)) {
|
|
2111
2137
|
if (!r.has(e.name.toLowerCase())) {
|
|
2112
2138
|
t.removeAttribute(e.name);
|
|
2113
2139
|
continue;
|
|
2114
2140
|
}
|
|
2115
|
-
n === "A" && e.name.toLowerCase() === "href" && !
|
|
2141
|
+
n === "A" && e.name.toLowerCase() === "href" && !Ln(e.value) && t.removeAttribute(e.name);
|
|
2116
2142
|
}
|
|
2117
2143
|
n === "A" && t.hasAttribute("href") && (t.setAttribute("rel", "noopener noreferrer"), t.setAttribute("target", "_blank"));
|
|
2118
|
-
for (let e of Array.from(t.childNodes))
|
|
2144
|
+
for (let e of Array.from(t.childNodes)) Rn(e);
|
|
2119
2145
|
}
|
|
2120
|
-
function
|
|
2146
|
+
function zn(e) {
|
|
2121
2147
|
if (!e) return "";
|
|
2122
2148
|
let t = new DOMParser().parseFromString(`<div>${e}</div>`, "text/html").body.firstElementChild;
|
|
2123
2149
|
if (!t) return "";
|
|
2124
|
-
for (let e of Array.from(t.childNodes))
|
|
2150
|
+
for (let e of Array.from(t.childNodes)) Rn(e);
|
|
2125
2151
|
return t.innerHTML;
|
|
2126
2152
|
}
|
|
2127
2153
|
//#endregion
|
|
2128
2154
|
//#region src/utils/format.ts
|
|
2129
|
-
var
|
|
2130
|
-
function
|
|
2131
|
-
if (e == null || typeof e == "string" && e.trim() === "") return
|
|
2155
|
+
var Bn = "—";
|
|
2156
|
+
function Vn(e, t = 4) {
|
|
2157
|
+
if (e == null || typeof e == "string" && e.trim() === "") return Bn;
|
|
2132
2158
|
let n = typeof e == "string" ? Number(e) : e;
|
|
2133
2159
|
return isFinite(n) ? n.toLocaleString(void 0, {
|
|
2134
2160
|
minimumFractionDigits: t,
|
|
2135
2161
|
maximumFractionDigits: t
|
|
2136
|
-
}) :
|
|
2162
|
+
}) : Bn;
|
|
2137
2163
|
}
|
|
2138
|
-
function
|
|
2139
|
-
if (e == null || e === "") return
|
|
2164
|
+
function Hn(e) {
|
|
2165
|
+
if (e == null || e === "") return Bn;
|
|
2140
2166
|
let t = new Date(e);
|
|
2141
2167
|
return isNaN(t.getTime()) ? String(e) : t.toLocaleString();
|
|
2142
2168
|
}
|
|
2143
|
-
function
|
|
2169
|
+
function Un(e) {
|
|
2144
2170
|
return new Date(e).toLocaleString(void 0, {
|
|
2145
2171
|
month: "short",
|
|
2146
2172
|
day: "numeric",
|
|
@@ -2148,13 +2174,13 @@ function Vn(e) {
|
|
|
2148
2174
|
minute: "2-digit"
|
|
2149
2175
|
});
|
|
2150
2176
|
}
|
|
2151
|
-
function
|
|
2177
|
+
function Wn(e) {
|
|
2152
2178
|
return new Date(e).toLocaleDateString(void 0, {
|
|
2153
2179
|
month: "short",
|
|
2154
2180
|
day: "numeric"
|
|
2155
2181
|
});
|
|
2156
2182
|
}
|
|
2157
|
-
function
|
|
2183
|
+
function Gn(e) {
|
|
2158
2184
|
if (!isFinite(e) || e === 0) return e.toFixed(2);
|
|
2159
2185
|
let t = Math.abs(e), n = 2;
|
|
2160
2186
|
return t < 1e-4 ? n = 8 : t < .01 ? n = 6 : t < 1 ? n = 4 : t < 100 && (n = 3), e.toLocaleString(void 0, {
|
|
@@ -2162,15 +2188,15 @@ function Un(e) {
|
|
|
2162
2188
|
maximumFractionDigits: n
|
|
2163
2189
|
});
|
|
2164
2190
|
}
|
|
2165
|
-
function
|
|
2191
|
+
function Kn(e, t = 2) {
|
|
2166
2192
|
return `${e >= 0 ? "+" : ""}${e.toFixed(t)}%`;
|
|
2167
2193
|
}
|
|
2168
|
-
function
|
|
2194
|
+
function qn(e) {
|
|
2169
2195
|
return `${e < 0 ? "-" : "+"}$${Math.abs(e).toFixed(2)}`;
|
|
2170
2196
|
}
|
|
2171
2197
|
//#endregion
|
|
2172
2198
|
//#region src/utils/pnl.ts
|
|
2173
|
-
function
|
|
2199
|
+
function Jn(e) {
|
|
2174
2200
|
if (e.buyPrice == null || e.lastPrice == null || e.filledQty == null) return {
|
|
2175
2201
|
pnlUsd: null,
|
|
2176
2202
|
pnlPct: null
|
|
@@ -2185,4 +2211,4 @@ function Kn(e) {
|
|
|
2185
2211
|
};
|
|
2186
2212
|
}
|
|
2187
2213
|
//#endregion
|
|
2188
|
-
export {
|
|
2214
|
+
export { L as AlertEnum, Sn as BaseActionButton, _e as BaseAlert, fn as BaseAppLayout, z as BaseBadge, Dn as BaseBadgeEnum, Se as BaseBreadcrumb, G as BaseButton, B as BaseButtonEnum, V as BaseButtonSizeEnum, Ot as BaseCollapsibleSection, Mt as BaseConfirmModal, wn as BaseCopyButton, ln as BaseEntityPickerModal, Le as BaseLine, Re as BaseLoginEnum, Be as BaseLogo, q as BaseLogoEnum, Ke as BaseModal, J as BaseModalEnum, Q as BaseModalShell, zt as BaseNotFoundPage, gn as BasePageHeader, qe as BaseRow, Yt as BaseSidebar, Je as BaseSpinner, It as BaseTextInputModal, Ze as BaseToast, Y as BaseToastEnum, yn as BaseToolbarButton, $e as ColoredSquares, R as ColorsEnums, nt as EarningsCard, st as EuroAmount, K as LineEnum, dt as Pagination, X as PositioningEnum, gt as TrendArrow, Jn as computePnL, Hn as fmtDate, Wn as fmtDateShort, Un as fmtDateTime, Vn as fmtNumber, Kn as fmtPct, Gn as fmtPrice, qn as fmtUsd, me as getBaseColor, he as getBaseColorOf, Te as initTheme, Ln as isSafeHref, jn as methodBadgeBright, An as methodBadgeSolid, zn as sanitizeHtml, Mn as statusBadgeSolid, Nn as statusBadgeTinted, Tn as useDebouncedRef, _t as useEscapeKey, Bt as useMobileSidebar, W as useTheme, Z as useThemeClasses, En as useToast };
|