mgv-backoffice 1.40.0 → 1.41.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 +34 -4
- package/dist/components/BaseCheckbox.vue.d.ts +28 -0
- package/dist/components/BaseSidebarUser.vue.d.ts +23 -0
- package/dist/index.d.ts +2 -0
- package/dist/ui-lib.css +1 -1
- package/dist/ui-lib.js +701 -620
- package/dist/ui-lib.umd.cjs +1 -1
- package/package.json +1 -1
- package/src/components/BaseAuthLayout.test.ts +48 -48
- package/src/components/BaseBooleanBadge.vue +32 -33
- package/src/components/BaseCheckbox.test.ts +30 -0
- package/src/components/BaseCheckbox.vue +51 -0
- package/src/components/BaseSidebarUser.test.ts +26 -0
- package/src/components/BaseSidebarUser.vue +75 -0
- package/src/components/BaseSpinner.vue +76 -76
- package/src/index.ts +2 -0
package/dist/ui-lib.js
CHANGED
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
import { Fragment as e, Teleport as t, Text as n, Transition as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createSlots as l, createStaticVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, effectScope as m, guardReactiveProps as h, mergeProps as g, nextTick as _, normalizeClass as v, normalizeProps as y, normalizeStyle as b, onBeforeUnmount as x, onMounted as S, onScopeDispose as C, onUnmounted as w, openBlock as T, reactive as E, readonly as D, ref as O, renderList as k, renderSlot as A, resolveComponent as j, resolveDynamicComponent as M, toDisplayString as N, unref as P, useId as ee, useSlots as F, vModelCheckbox as te, vModelDynamic as ne, vModelText as re, vShow as ie, watch as
|
|
2
|
-
import { ArrowDownIcon as
|
|
3
|
-
import { HomeIcon as
|
|
4
|
-
import { RouterLink as
|
|
5
|
-
import { VueDatePicker as
|
|
1
|
+
import { Fragment as e, Teleport as t, Text as n, Transition as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createSlots as l, createStaticVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, effectScope as m, guardReactiveProps as h, mergeProps as g, nextTick as _, normalizeClass as v, normalizeProps as y, normalizeStyle as b, onBeforeUnmount as x, onMounted as S, onScopeDispose as C, onUnmounted as w, openBlock as T, reactive as E, readonly as D, ref as O, renderList as k, renderSlot as A, resolveComponent as j, resolveDynamicComponent as M, toDisplayString as N, unref as P, useId as ee, useSlots as F, vModelCheckbox as te, vModelDynamic as ne, vModelText as re, vShow as ie, watch as ae, withCtx as I, withDirectives as L, withKeys as oe, withModifiers as R } from "vue";
|
|
2
|
+
import { ArrowDownIcon as se, ArrowRightStartOnRectangleIcon as ce, ArrowUpIcon as le, Bars3Icon as ue, BellIcon as de, CheckCircleIcon as fe, CheckIcon as pe, ChevronDoubleLeftIcon as me, ChevronDoubleRightIcon as he, ChevronDownIcon as ge, ChevronRightIcon as _e, ClipboardDocumentCheckIcon as ve, ClipboardDocumentIcon as ye, DocumentDuplicateIcon as be, ExclamationCircleIcon as xe, ExclamationTriangleIcon as Se, FolderIcon as Ce, InformationCircleIcon as we, MagnifyingGlassIcon as Te, MinusIcon as Ee, MoonIcon as De, SunIcon as Oe, XMarkIcon as z } from "@heroicons/vue/24/outline";
|
|
3
|
+
import { HomeIcon as ke } from "@heroicons/vue/24/solid";
|
|
4
|
+
import { RouterLink as Ae, useRoute as je, useRouter as Me } from "vue-router";
|
|
5
|
+
import { VueDatePicker as Ne } from "@vuepic/vue-datepicker";
|
|
6
6
|
//#region src/enums/AlertEnum.ts
|
|
7
|
-
var
|
|
7
|
+
var B = /* @__PURE__ */ function(e) {
|
|
8
8
|
return e.WARNING = "WARNING", e.ERROR = "ERROR", e.SUCCESS = "SUCCESS", e.INFO = "INFO", e;
|
|
9
|
-
}({}),
|
|
10
|
-
function
|
|
11
|
-
if (
|
|
12
|
-
e !==
|
|
9
|
+
}({}), V = O(!1), Pe = !1, H = "mgv-theme";
|
|
10
|
+
function Fe(e) {
|
|
11
|
+
if (Pe) {
|
|
12
|
+
e !== H && console.warn(`[ui-lib] useTheme: storage key "${e}" ignored — theme already initialized with "${H}". Call initTheme({ storageKey }) before mounting any component.`);
|
|
13
13
|
return;
|
|
14
14
|
}
|
|
15
|
-
if (
|
|
16
|
-
let e = window.localStorage?.getItem(
|
|
17
|
-
e ?
|
|
15
|
+
if (Pe = !0, H = e, typeof window < "u") {
|
|
16
|
+
let e = window.localStorage?.getItem(H);
|
|
17
|
+
e ? V.value = e === "dark" : typeof window.matchMedia == "function" && (V.value = window.matchMedia("(prefers-color-scheme: dark)").matches);
|
|
18
18
|
}
|
|
19
19
|
typeof document < "u" && m(!0).run(() => {
|
|
20
|
-
|
|
21
|
-
document.documentElement.classList.toggle("dark", e), window.localStorage?.setItem(
|
|
20
|
+
ae(V, (e) => {
|
|
21
|
+
document.documentElement.classList.toggle("dark", e), window.localStorage?.setItem(H, e ? "dark" : "light");
|
|
22
22
|
}, { immediate: !0 });
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
|
-
function
|
|
26
|
-
|
|
25
|
+
function Ie(e) {
|
|
26
|
+
Fe(e?.storageKey ?? H);
|
|
27
27
|
}
|
|
28
|
-
function
|
|
29
|
-
|
|
28
|
+
function U(e) {
|
|
29
|
+
Fe(e?.storageKey ?? H);
|
|
30
30
|
function t() {
|
|
31
|
-
|
|
31
|
+
V.value = !V.value;
|
|
32
32
|
}
|
|
33
33
|
return {
|
|
34
|
-
isDark:
|
|
34
|
+
isDark: V,
|
|
35
35
|
toggleTheme: t
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
//#endregion
|
|
39
39
|
//#region src/components/BaseAlert.vue?vue&type=script&setup=true&lang.ts
|
|
40
|
-
var
|
|
40
|
+
var Le = { class: "min-w-0 flex-1" }, Re = {
|
|
41
41
|
key: 0,
|
|
42
42
|
class: "font-medium"
|
|
43
|
-
},
|
|
43
|
+
}, ze = /* @__PURE__ */ p({
|
|
44
44
|
__name: "BaseAlert",
|
|
45
45
|
props: {
|
|
46
46
|
title: { default: "" },
|
|
47
|
-
color: { default:
|
|
47
|
+
color: { default: B.ERROR },
|
|
48
48
|
compact: {
|
|
49
49
|
type: Boolean,
|
|
50
50
|
default: !1
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
setup(e) {
|
|
54
|
-
let t = e, { isDark: n } =
|
|
55
|
-
[
|
|
54
|
+
let t = e, { isDark: n } = U(), r = {
|
|
55
|
+
[B.ERROR]: {
|
|
56
56
|
light: "bg-red-50 border-red-200 text-red-700",
|
|
57
57
|
dark: "bg-red-500/10 border-red-500/30 text-red-300"
|
|
58
58
|
},
|
|
59
|
-
[
|
|
59
|
+
[B.WARNING]: {
|
|
60
60
|
light: "bg-amber-50 border-amber-200 text-amber-700",
|
|
61
61
|
dark: "bg-amber-500/10 border-amber-500/30 text-amber-300"
|
|
62
62
|
},
|
|
63
|
-
[
|
|
63
|
+
[B.SUCCESS]: {
|
|
64
64
|
light: "bg-emerald-50 border-emerald-200 text-emerald-700",
|
|
65
65
|
dark: "bg-emerald-500/10 border-emerald-500/30 text-emerald-300"
|
|
66
66
|
},
|
|
67
|
-
[
|
|
67
|
+
[B.INFO]: {
|
|
68
68
|
light: "bg-sky-50 border-sky-200 text-sky-700",
|
|
69
69
|
dark: "bg-sky-500/10 border-sky-500/30 text-sky-300"
|
|
70
70
|
}
|
|
71
71
|
}, l = i(() => n.value ? r[t.color].dark : r[t.color].light), u = i(() => {
|
|
72
72
|
switch (t.color) {
|
|
73
|
-
case
|
|
74
|
-
case
|
|
75
|
-
case
|
|
76
|
-
default: return
|
|
73
|
+
case B.SUCCESS: return fe;
|
|
74
|
+
case B.WARNING: return Se;
|
|
75
|
+
case B.INFO: return we;
|
|
76
|
+
default: return xe;
|
|
77
77
|
}
|
|
78
78
|
}), d = i(() => {
|
|
79
79
|
switch (t.color) {
|
|
80
|
-
case
|
|
81
|
-
case
|
|
82
|
-
case
|
|
80
|
+
case B.SUCCESS: return "text-emerald-500";
|
|
81
|
+
case B.WARNING: return "text-amber-500";
|
|
82
|
+
case B.INFO: return "text-sky-500";
|
|
83
83
|
default: return "text-red-500";
|
|
84
84
|
}
|
|
85
85
|
});
|
|
@@ -89,11 +89,11 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
89
89
|
}, [(T(), a(M(u.value), {
|
|
90
90
|
class: v(["shrink-0", [e.compact ? "w-4 h-4 mt-px" : "w-5 h-5 mt-0.5", d.value]]),
|
|
91
91
|
"aria-hidden": "true"
|
|
92
|
-
}, null, 8, ["class"])), c("div",
|
|
92
|
+
}, null, 8, ["class"])), c("div", Le, [e.title ? (T(), s("p", Re, N(e.title), 1)) : o("", !0), A(t.$slots, "default")])], 2));
|
|
93
93
|
}
|
|
94
|
-
}),
|
|
94
|
+
}), W = /* @__PURE__ */ function(e) {
|
|
95
95
|
return e.NONE = "NONE", e.RED = "RED", e.YELLOW = "YELLOW", e.BLACK = "BLACK", e.GRAY = "GRAY", e.GREEN = "GREEN", e.BLUE = "BLUE", e;
|
|
96
|
-
}({}),
|
|
96
|
+
}({}), Be = "bg-red-100 text-red-700 border-red-200", Ve = /* @__PURE__ */ p({
|
|
97
97
|
__name: "BaseBadge",
|
|
98
98
|
props: { color: {
|
|
99
99
|
type: String,
|
|
@@ -101,26 +101,26 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
101
101
|
} },
|
|
102
102
|
setup(e) {
|
|
103
103
|
let t = F(), r = i(() => !!t.default), a = () => (t.default?.() ?? []).map((e) => e.type === n && typeof e.children == "string" ? d(e.children.replace(/_/g, " ")) : e), c = e, l = {
|
|
104
|
-
[
|
|
105
|
-
[
|
|
106
|
-
[
|
|
107
|
-
[
|
|
108
|
-
[
|
|
109
|
-
[
|
|
110
|
-
[
|
|
111
|
-
}, u = i(() => `inline-flex items-center gap-1 font-semibold text-xs leading-none px-3 py-1.5 rounded-full border ${c.color && l[c.color] ||
|
|
104
|
+
[W.RED]: "bg-red-100 text-red-700 border-red-200",
|
|
105
|
+
[W.GREEN]: "bg-green-100 text-green-700 border-green-200",
|
|
106
|
+
[W.BLUE]: "bg-blue-100 text-blue-700 border-blue-200",
|
|
107
|
+
[W.YELLOW]: "bg-yellow-100 text-yellow-700 border-yellow-200",
|
|
108
|
+
[W.GRAY]: "bg-gray-100 text-gray-700 border-gray-200",
|
|
109
|
+
[W.BLACK]: "bg-gray-800 text-gray-100 border-gray-700",
|
|
110
|
+
[W.NONE]: "bg-gray-50 text-gray-600 border-gray-200"
|
|
111
|
+
}, u = i(() => `inline-flex items-center gap-1 font-semibold text-xs leading-none px-3 py-1.5 rounded-full border ${c.color && l[c.color] || Be}`);
|
|
112
112
|
return (e, t) => r.value ? (T(), s("span", {
|
|
113
113
|
key: 0,
|
|
114
114
|
class: v(u.value)
|
|
115
115
|
}, [f(a)], 2)) : o("", !0);
|
|
116
116
|
}
|
|
117
|
-
}),
|
|
117
|
+
}), He = {
|
|
118
118
|
class: "flex overflow-x-auto px-5 py-3 text-gray-700 border border-slate-200 rounded-xl bg-white shadow-sm dark:bg-slate-900 dark:border-slate-700",
|
|
119
119
|
"aria-label": "Breadcrumb"
|
|
120
|
-
},
|
|
120
|
+
}, Ue = { class: "inline-flex items-center whitespace-nowrap space-x-1 md:space-x-3" }, We = {
|
|
121
121
|
class: "inline-flex items-center",
|
|
122
122
|
style: { "margin-left": "0" }
|
|
123
|
-
},
|
|
123
|
+
}, Ge = /* @__PURE__ */ p({
|
|
124
124
|
__name: "BaseBreadcrumb",
|
|
125
125
|
props: {
|
|
126
126
|
items: {
|
|
@@ -145,40 +145,40 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
145
145
|
});
|
|
146
146
|
return (t, n) => {
|
|
147
147
|
let i = j("router-link");
|
|
148
|
-
return T(), s("nav",
|
|
148
|
+
return T(), s("nav", He, [c("ol", Ue, [c("li", We, [f(i, {
|
|
149
149
|
to: "/",
|
|
150
150
|
class: "inline-flex items-center text-sm font-medium text-gray-700 hover:text-blue-600 dark:text-gray-400 dark:hover:text-white transition-colors rounded focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500"
|
|
151
151
|
}, {
|
|
152
|
-
default:
|
|
152
|
+
default: I(() => [f(P(ke), { class: "h-4 w-4 text-gray-500 mr-2" }), n[0] ||= d(" Home ", -1)]),
|
|
153
153
|
_: 1
|
|
154
154
|
})]), (T(!0), s(e, null, k(r.value, (e, t) => (T(), s("li", {
|
|
155
155
|
key: t,
|
|
156
156
|
class: "inline-flex items-center",
|
|
157
157
|
style: { "margin-left": "0" }
|
|
158
|
-
}, [f(P(
|
|
158
|
+
}, [f(P(_e), { class: "h-4 w-4 text-gray-500" }), f(i, {
|
|
159
159
|
to: e.url,
|
|
160
160
|
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 transition-colors rounded focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500"
|
|
161
161
|
}, {
|
|
162
|
-
default:
|
|
162
|
+
default: I(() => [d(N(e.name), 1)]),
|
|
163
163
|
_: 2
|
|
164
164
|
}, 1032, ["to"])]))), 128))])]);
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
|
-
}),
|
|
167
|
+
}), G = /* @__PURE__ */ function(e) {
|
|
168
168
|
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;
|
|
169
|
-
}({}),
|
|
169
|
+
}({}), K = /* @__PURE__ */ function(e) {
|
|
170
170
|
return e.EXTRA_SMALL = "EXTRA_SMALL", e.SMALL = "SMALL", e.BASE = "BASE", e.LARGE = "LARGE", e.EXTRA_LARGE = "EXTRA_LARGE", e;
|
|
171
|
-
}({}),
|
|
171
|
+
}({}), Ke = [
|
|
172
172
|
"type",
|
|
173
173
|
"disabled",
|
|
174
174
|
"onClick"
|
|
175
|
-
],
|
|
175
|
+
], qe = {
|
|
176
176
|
key: 0,
|
|
177
177
|
class: "inline-flex items-center"
|
|
178
|
-
},
|
|
178
|
+
}, Je = { key: 1 }, Ye = { key: 2 }, Xe = ["type", "disabled"], Ze = {
|
|
179
179
|
key: 0,
|
|
180
180
|
class: "inline-flex items-center"
|
|
181
|
-
},
|
|
181
|
+
}, Qe = { key: 1 }, $e = { key: 2 }, q = /* @__PURE__ */ p({
|
|
182
182
|
__name: "BaseButton",
|
|
183
183
|
props: {
|
|
184
184
|
description: {
|
|
@@ -188,7 +188,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
188
188
|
color: {
|
|
189
189
|
type: String,
|
|
190
190
|
required: !1,
|
|
191
|
-
default:
|
|
191
|
+
default: G.GREEN
|
|
192
192
|
},
|
|
193
193
|
to: {
|
|
194
194
|
type: String,
|
|
@@ -232,103 +232,103 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
232
232
|
}
|
|
233
233
|
},
|
|
234
234
|
setup(e) {
|
|
235
|
-
let { isDark: t } =
|
|
235
|
+
let { isDark: t } = U(), n = e;
|
|
236
236
|
function r() {
|
|
237
237
|
let e = {
|
|
238
|
-
[
|
|
238
|
+
[G.BLUE]: {
|
|
239
239
|
light: "text-blue-700 border-blue-300 hover:bg-blue-50",
|
|
240
240
|
dark: "text-blue-400 border-blue-500/40 hover:bg-blue-500/10"
|
|
241
241
|
},
|
|
242
|
-
[
|
|
242
|
+
[G.GREEN]: {
|
|
243
243
|
light: "text-green-700 border-green-300 hover:bg-green-50",
|
|
244
244
|
dark: "text-green-400 border-green-500/40 hover:bg-green-500/10"
|
|
245
245
|
},
|
|
246
|
-
[
|
|
246
|
+
[G.EMERALD]: {
|
|
247
247
|
light: "text-emerald-700 border-emerald-300 hover:bg-emerald-50",
|
|
248
248
|
dark: "text-emerald-400 border-emerald-500/40 hover:bg-emerald-500/10"
|
|
249
249
|
},
|
|
250
|
-
[
|
|
250
|
+
[G.RED]: {
|
|
251
251
|
light: "text-red-700 border-red-300 hover:bg-red-50",
|
|
252
252
|
dark: "text-red-400 border-red-500/40 hover:bg-red-500/10"
|
|
253
253
|
},
|
|
254
|
-
[
|
|
254
|
+
[G.YELLOW]: {
|
|
255
255
|
light: "text-yellow-700 border-yellow-300 hover:bg-yellow-50",
|
|
256
256
|
dark: "text-yellow-400 border-yellow-500/40 hover:bg-yellow-500/10"
|
|
257
257
|
},
|
|
258
|
-
[
|
|
258
|
+
[G.PURPLE]: {
|
|
259
259
|
light: "text-purple-700 border-purple-300 hover:bg-purple-50",
|
|
260
260
|
dark: "text-purple-400 border-purple-500/40 hover:bg-purple-500/10"
|
|
261
261
|
},
|
|
262
|
-
[
|
|
262
|
+
[G.SKY]: {
|
|
263
263
|
light: "text-sky-700 border-sky-300 hover:bg-sky-50",
|
|
264
264
|
dark: "text-sky-400 border-sky-500/40 hover:bg-sky-500/10"
|
|
265
265
|
},
|
|
266
|
-
[
|
|
266
|
+
[G.AMBER]: {
|
|
267
267
|
light: "text-amber-700 border-amber-300 hover:bg-amber-50",
|
|
268
268
|
dark: "text-amber-400 border-amber-500/40 hover:bg-amber-500/10"
|
|
269
269
|
},
|
|
270
|
-
[
|
|
270
|
+
[G.GRAY]: {
|
|
271
271
|
light: "text-gray-700 border-gray-300 hover:bg-gray-50",
|
|
272
272
|
dark: "text-gray-300 border-gray-600 hover:bg-gray-800"
|
|
273
273
|
},
|
|
274
|
-
[
|
|
274
|
+
[G.DARK]: {
|
|
275
275
|
light: "text-gray-700 border-gray-300 hover:bg-gray-50",
|
|
276
276
|
dark: "text-gray-300 border-gray-600 hover:bg-gray-800"
|
|
277
277
|
},
|
|
278
|
-
[
|
|
278
|
+
[G.WHITE]: {
|
|
279
279
|
light: "text-gray-700 border-gray-300 hover:bg-gray-50",
|
|
280
280
|
dark: "text-gray-300 border-gray-600 hover:bg-gray-800"
|
|
281
281
|
}
|
|
282
|
-
}, r = e[n.color] ?? e[
|
|
282
|
+
}, r = e[n.color] ?? e[G.BLUE], i = t.value ? r.dark : r.light;
|
|
283
283
|
return n.isDisable || n.isLoading ? `border bg-transparent ${i} opacity-50 cursor-not-allowed` : `focus:outline-none focus-visible:ring-2 focus-visible:ring-current border bg-transparent ${i}`;
|
|
284
284
|
}
|
|
285
285
|
function i() {
|
|
286
286
|
let e = {
|
|
287
|
-
[
|
|
287
|
+
[G.BLUE]: {
|
|
288
288
|
light: "text-blue-600 hover:bg-blue-50",
|
|
289
289
|
dark: "text-blue-400 hover:bg-blue-500/10"
|
|
290
290
|
},
|
|
291
|
-
[
|
|
291
|
+
[G.GREEN]: {
|
|
292
292
|
light: "text-green-600 hover:bg-green-50",
|
|
293
293
|
dark: "text-green-400 hover:bg-green-500/10"
|
|
294
294
|
},
|
|
295
|
-
[
|
|
295
|
+
[G.EMERALD]: {
|
|
296
296
|
light: "text-emerald-600 hover:bg-emerald-50",
|
|
297
297
|
dark: "text-emerald-400 hover:bg-emerald-500/10"
|
|
298
298
|
},
|
|
299
|
-
[
|
|
299
|
+
[G.SKY]: {
|
|
300
300
|
light: "text-sky-600 hover:bg-sky-50",
|
|
301
301
|
dark: "text-sky-400 hover:bg-sky-500/10"
|
|
302
302
|
},
|
|
303
|
-
[
|
|
303
|
+
[G.RED]: {
|
|
304
304
|
light: "text-red-500 hover:bg-red-50",
|
|
305
305
|
dark: "text-red-400 hover:bg-red-500/10"
|
|
306
306
|
},
|
|
307
|
-
[
|
|
307
|
+
[G.AMBER]: {
|
|
308
308
|
light: "text-amber-700 hover:bg-amber-50",
|
|
309
309
|
dark: "text-amber-300 hover:bg-amber-500/10"
|
|
310
310
|
},
|
|
311
|
-
[
|
|
311
|
+
[G.YELLOW]: {
|
|
312
312
|
light: "text-yellow-600 hover:bg-yellow-50",
|
|
313
313
|
dark: "text-yellow-400 hover:bg-yellow-500/10"
|
|
314
314
|
},
|
|
315
|
-
[
|
|
315
|
+
[G.PURPLE]: {
|
|
316
316
|
light: "text-purple-600 hover:bg-purple-50",
|
|
317
317
|
dark: "text-purple-400 hover:bg-purple-500/10"
|
|
318
318
|
},
|
|
319
|
-
[
|
|
319
|
+
[G.GRAY]: {
|
|
320
320
|
light: "text-gray-500 hover:bg-gray-100",
|
|
321
321
|
dark: "text-gray-400 hover:bg-gray-800"
|
|
322
322
|
},
|
|
323
|
-
[
|
|
323
|
+
[G.DARK]: {
|
|
324
324
|
light: "text-gray-500 hover:bg-gray-100",
|
|
325
325
|
dark: "text-gray-400 hover:bg-gray-800"
|
|
326
326
|
},
|
|
327
|
-
[
|
|
327
|
+
[G.WHITE]: {
|
|
328
328
|
light: "text-gray-500 hover:bg-gray-100",
|
|
329
329
|
dark: "text-gray-400 hover:bg-gray-800"
|
|
330
330
|
}
|
|
331
|
-
}, r = e[n.color] ?? e[
|
|
331
|
+
}, r = e[n.color] ?? e[G.GRAY], i = t.value ? r.dark : r.light;
|
|
332
332
|
return n.isDisable || n.isLoading ? `bg-transparent ${i} opacity-60 cursor-not-allowed` : `focus:outline-none focus-visible:ring-2 focus-visible:ring-current bg-transparent ${i} cursor-pointer`;
|
|
333
333
|
}
|
|
334
334
|
function l() {
|
|
@@ -336,37 +336,37 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
336
336
|
e || (t += " cursor-pointer");
|
|
337
337
|
let a;
|
|
338
338
|
switch (n.color) {
|
|
339
|
-
case
|
|
339
|
+
case G.BLUE:
|
|
340
340
|
a = 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";
|
|
341
341
|
break;
|
|
342
|
-
case
|
|
342
|
+
case G.WHITE:
|
|
343
343
|
a = 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";
|
|
344
344
|
break;
|
|
345
|
-
case
|
|
345
|
+
case G.DARK:
|
|
346
346
|
a = 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";
|
|
347
347
|
break;
|
|
348
|
-
case
|
|
348
|
+
case G.GREEN:
|
|
349
349
|
a = 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";
|
|
350
350
|
break;
|
|
351
|
-
case
|
|
351
|
+
case G.EMERALD:
|
|
352
352
|
a = 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";
|
|
353
353
|
break;
|
|
354
|
-
case
|
|
354
|
+
case G.RED:
|
|
355
355
|
a = 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";
|
|
356
356
|
break;
|
|
357
|
-
case
|
|
357
|
+
case G.YELLOW:
|
|
358
358
|
a = 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";
|
|
359
359
|
break;
|
|
360
|
-
case
|
|
360
|
+
case G.PURPLE:
|
|
361
361
|
a = 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";
|
|
362
362
|
break;
|
|
363
|
-
case
|
|
363
|
+
case G.SKY:
|
|
364
364
|
a = 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";
|
|
365
365
|
break;
|
|
366
|
-
case
|
|
366
|
+
case G.AMBER:
|
|
367
367
|
a = 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";
|
|
368
368
|
break;
|
|
369
|
-
case
|
|
369
|
+
case G.GRAY:
|
|
370
370
|
a = 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";
|
|
371
371
|
break;
|
|
372
372
|
default: a = 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";
|
|
@@ -374,19 +374,19 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
374
374
|
n.outline && (a = r()), n.ghost && (a = i());
|
|
375
375
|
let o = "px-5 py-2.5 mr-2 mb-2 text-sm";
|
|
376
376
|
switch (n.size) {
|
|
377
|
-
case
|
|
377
|
+
case K.EXTRA_SMALL:
|
|
378
378
|
o = "px-3 py-2 text-xs";
|
|
379
379
|
break;
|
|
380
|
-
case
|
|
380
|
+
case K.SMALL:
|
|
381
381
|
o = "px-3 py-2 text-sm";
|
|
382
382
|
break;
|
|
383
|
-
case
|
|
383
|
+
case K.BASE:
|
|
384
384
|
o = "px-5 py-2.5 text-sm";
|
|
385
385
|
break;
|
|
386
|
-
case
|
|
386
|
+
case K.LARGE:
|
|
387
387
|
o = "px-5 py-3 text-base";
|
|
388
388
|
break;
|
|
389
|
-
case
|
|
389
|
+
case K.EXTRA_LARGE: o = "px-6 py-3.5 text-base";
|
|
390
390
|
}
|
|
391
391
|
let s = "rounded-lg";
|
|
392
392
|
return n.isRounded && (s = "rounded-full"), t + " " + o + " " + a + " font-medium " + s;
|
|
@@ -398,13 +398,13 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
398
398
|
to: e.to,
|
|
399
399
|
custom: ""
|
|
400
400
|
}, {
|
|
401
|
-
default:
|
|
401
|
+
default: I(({ navigate: i }) => [c("button", {
|
|
402
402
|
type: n.type,
|
|
403
403
|
class: v(l()),
|
|
404
404
|
disabled: e.isDisable || e.isLoading,
|
|
405
405
|
onClick: i
|
|
406
406
|
}, [
|
|
407
|
-
e.isLoading ? (T(), s("div",
|
|
407
|
+
e.isLoading ? (T(), s("div", qe, [...r[0] ||= [c("svg", {
|
|
408
408
|
"aria-hidden": "true",
|
|
409
409
|
role: "status",
|
|
410
410
|
class: "inline w-4 h-4 me-3 animate-spin",
|
|
@@ -418,10 +418,10 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
418
418
|
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",
|
|
419
419
|
fill: "currentColor"
|
|
420
420
|
})], -1)]])) : o("", !0),
|
|
421
|
-
e.iconLeft ? o("", !0) : (T(), s("span",
|
|
421
|
+
e.iconLeft ? o("", !0) : (T(), s("span", Je, N(e.description), 1)),
|
|
422
422
|
A(t.$slots, "default"),
|
|
423
|
-
e.iconLeft ? (T(), s("span",
|
|
424
|
-
], 10,
|
|
423
|
+
e.iconLeft ? (T(), s("span", Ye, N(e.description), 1)) : o("", !0)
|
|
424
|
+
], 10, Ke)]),
|
|
425
425
|
_: 3
|
|
426
426
|
}, 8, ["to"])) : (T(), s("button", {
|
|
427
427
|
key: 1,
|
|
@@ -429,7 +429,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
429
429
|
class: v(l()),
|
|
430
430
|
disabled: e.isDisable || e.isLoading
|
|
431
431
|
}, [
|
|
432
|
-
e.isLoading ? (T(), s("div",
|
|
432
|
+
e.isLoading ? (T(), s("div", Ze, [...r[1] ||= [c("svg", {
|
|
433
433
|
"aria-hidden": "true",
|
|
434
434
|
role: "status",
|
|
435
435
|
class: "inline w-4 h-4 me-3 animate-spin",
|
|
@@ -443,40 +443,40 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
443
443
|
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",
|
|
444
444
|
fill: "currentColor"
|
|
445
445
|
})], -1)]])) : o("", !0),
|
|
446
|
-
e.iconLeft ? o("", !0) : (T(), s("span",
|
|
446
|
+
e.iconLeft ? o("", !0) : (T(), s("span", Qe, N(e.description), 1)),
|
|
447
447
|
A(t.$slots, "default"),
|
|
448
|
-
e.iconLeft ? (T(), s("span",
|
|
449
|
-
], 10,
|
|
448
|
+
e.iconLeft ? (T(), s("span", $e, N(e.description), 1)) : o("", !0)
|
|
449
|
+
], 10, Xe));
|
|
450
450
|
};
|
|
451
451
|
}
|
|
452
|
-
}),
|
|
452
|
+
}), et = /* @__PURE__ */ function(e) {
|
|
453
453
|
return e.BASE = "BASE", e.BASE_SHORTER = "BASE_SHORTER", e.SQUARE = "SQUARE", e;
|
|
454
|
-
}({}),
|
|
454
|
+
}({}), tt = {
|
|
455
455
|
key: 0,
|
|
456
456
|
class: "h-px my-8 bg-gray-200 border-0 dark:bg-gray-700"
|
|
457
|
-
},
|
|
457
|
+
}, nt = {
|
|
458
458
|
key: 1,
|
|
459
459
|
class: "w-48 h-1 mx-auto my-4 bg-gray-100 border-0 rounded md:my-10 dark:bg-gray-700"
|
|
460
|
-
},
|
|
460
|
+
}, rt = {
|
|
461
461
|
key: 2,
|
|
462
462
|
class: "w-8 h-8 mx-auto my-8 bg-gray-200 border-0 rounded md:my-12 dark:bg-gray-700"
|
|
463
|
-
},
|
|
463
|
+
}, it = /* @__PURE__ */ p({
|
|
464
464
|
__name: "BaseLine",
|
|
465
465
|
props: { mode: {
|
|
466
466
|
type: String,
|
|
467
467
|
required: !1,
|
|
468
|
-
default:
|
|
468
|
+
default: et.BASE
|
|
469
469
|
} },
|
|
470
470
|
setup(t) {
|
|
471
471
|
return (n, r) => (T(), s(e, null, [
|
|
472
|
-
t.mode === P(
|
|
473
|
-
t.mode === P(
|
|
474
|
-
t.mode === P(
|
|
472
|
+
t.mode === P(et).BASE ? (T(), s("hr", tt)) : o("", !0),
|
|
473
|
+
t.mode === P(et).BASE_SHORTER ? (T(), s("hr", nt)) : o("", !0),
|
|
474
|
+
t.mode === P(et).SQUARE ? (T(), s("hr", rt)) : o("", !0)
|
|
475
475
|
], 64));
|
|
476
476
|
}
|
|
477
477
|
}), J = /* @__PURE__ */ function(e) {
|
|
478
478
|
return e.SMALL = "SMALL", e.MEDIUM = "MEDIUM", e.LARGE = "LARGE", e;
|
|
479
|
-
}({}),
|
|
479
|
+
}({}), at = J, ot = ["height", "width"], st = ["id"], ct = ["id", "href"], lt = ["id", "href"], ut = ["id", "href"], dt = ["id", "href"], ft = ["id", "href"], pt = ["id", "href"], mt = ["id", "href"], ht = ["id", "href"], gt = ["id", "href"], _t = ["id"], vt = ["fill"], yt = ["fill"], bt = ["fill"], xt = ["fill"], St = ["fill"], Ct = ["fill"], wt = ["fill"], Tt = ["fill"], Et = ["fill"], Dt = ["fill"], Ot = /* @__PURE__ */ p({
|
|
480
480
|
__name: "BaseLogo",
|
|
481
481
|
props: { size: {
|
|
482
482
|
type: String,
|
|
@@ -504,7 +504,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
504
504
|
to: "/",
|
|
505
505
|
class: "flex items-center mb-6 text-2xl font-semibold text-gray-900 dark:text-white"
|
|
506
506
|
}, {
|
|
507
|
-
default:
|
|
507
|
+
default: I(() => [(T(), s("svg", {
|
|
508
508
|
height: r(),
|
|
509
509
|
width: r(),
|
|
510
510
|
viewBox: "33.6 130.6 499.7 242.9",
|
|
@@ -517,7 +517,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
517
517
|
}, null, -1), c("stop", {
|
|
518
518
|
offset: "1",
|
|
519
519
|
"stop-color": "#132d13"
|
|
520
|
-
}, null, -1)]], 8,
|
|
520
|
+
}, null, -1)]], 8, st),
|
|
521
521
|
c("linearGradient", {
|
|
522
522
|
id: `${t}-b`,
|
|
523
523
|
gradientUnits: "userSpaceOnUse",
|
|
@@ -526,7 +526,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
526
526
|
href: `#${t}-a`,
|
|
527
527
|
y1: "288.291",
|
|
528
528
|
y2: "369.4"
|
|
529
|
-
}, null, 8,
|
|
529
|
+
}, null, 8, ct),
|
|
530
530
|
c("linearGradient", {
|
|
531
531
|
id: `${t}-c`,
|
|
532
532
|
gradientUnits: "userSpaceOnUse",
|
|
@@ -535,7 +535,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
535
535
|
href: `#${t}-a`,
|
|
536
536
|
y1: "308.454",
|
|
537
537
|
y2: "370.601"
|
|
538
|
-
}, null, 8,
|
|
538
|
+
}, null, 8, lt),
|
|
539
539
|
c("linearGradient", {
|
|
540
540
|
id: `${t}-d`,
|
|
541
541
|
gradientUnits: "userSpaceOnUse",
|
|
@@ -544,7 +544,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
544
544
|
href: `#${t}-a`,
|
|
545
545
|
y1: "288.291",
|
|
546
546
|
y2: "369.85"
|
|
547
|
-
}, null, 8,
|
|
547
|
+
}, null, 8, ut),
|
|
548
548
|
c("linearGradient", {
|
|
549
549
|
id: `${t}-e`,
|
|
550
550
|
gradientUnits: "userSpaceOnUse",
|
|
@@ -553,7 +553,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
553
553
|
href: `#${t}-a`,
|
|
554
554
|
y1: "307.312",
|
|
555
555
|
y2: "369.511"
|
|
556
|
-
}, null, 8,
|
|
556
|
+
}, null, 8, dt),
|
|
557
557
|
c("linearGradient", {
|
|
558
558
|
id: `${t}-f`,
|
|
559
559
|
gradientUnits: "userSpaceOnUse",
|
|
@@ -562,7 +562,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
562
562
|
href: `#${t}-a`,
|
|
563
563
|
y1: "288.291",
|
|
564
564
|
y2: "367.857"
|
|
565
|
-
}, null, 8,
|
|
565
|
+
}, null, 8, ft),
|
|
566
566
|
c("linearGradient", {
|
|
567
567
|
id: `${t}-g`,
|
|
568
568
|
gradientUnits: "userSpaceOnUse",
|
|
@@ -571,7 +571,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
571
571
|
href: `#${t}-a`,
|
|
572
572
|
y1: "307.312",
|
|
573
573
|
y2: "369.511"
|
|
574
|
-
}, null, 8,
|
|
574
|
+
}, null, 8, pt),
|
|
575
575
|
c("linearGradient", {
|
|
576
576
|
id: `${t}-h`,
|
|
577
577
|
gradientUnits: "userSpaceOnUse",
|
|
@@ -580,7 +580,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
580
580
|
href: `#${t}-a`,
|
|
581
581
|
y1: "306.156",
|
|
582
582
|
y2: "367.742"
|
|
583
|
-
}, null, 8,
|
|
583
|
+
}, null, 8, mt),
|
|
584
584
|
c("linearGradient", {
|
|
585
585
|
id: `${t}-i`,
|
|
586
586
|
gradientUnits: "userSpaceOnUse",
|
|
@@ -589,7 +589,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
589
589
|
href: `#${t}-a`,
|
|
590
590
|
y1: "288.291",
|
|
591
591
|
y2: "369.4"
|
|
592
|
-
}, null, 8,
|
|
592
|
+
}, null, 8, ht),
|
|
593
593
|
c("linearGradient", {
|
|
594
594
|
id: `${t}-j`,
|
|
595
595
|
gradientUnits: "userSpaceOnUse",
|
|
@@ -598,7 +598,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
598
598
|
href: `#${t}-a`,
|
|
599
599
|
y1: "131.629",
|
|
600
600
|
y2: "232.559"
|
|
601
|
-
}, null, 8,
|
|
601
|
+
}, null, 8, gt),
|
|
602
602
|
c("linearGradient", {
|
|
603
603
|
id: `${t}-k`,
|
|
604
604
|
gradientUnits: "userSpaceOnUse",
|
|
@@ -613,64 +613,64 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
613
613
|
}, null, -1), c("stop", {
|
|
614
614
|
offset: "1",
|
|
615
615
|
"stop-color": "#808183"
|
|
616
|
-
}, null, -1)]], 8,
|
|
616
|
+
}, null, -1)]], 8, _t),
|
|
617
617
|
c("path", {
|
|
618
618
|
d: "m65 307.2c-6.8 0-13.1 2.2-18.2 5.9v-24.8h-13.2v81.1h31.4c17.2 0 31.1-13.9 31.1-31.1s-13.9-31.1-31.1-31.1zm0 49.3h-18.2v-18.2c0-10.1 8.2-18.2 18.2-18.2 10.1 0 18.2 8.2 18.2 18.2.1 10.1-8.1 18.2-18.2 18.2z",
|
|
619
619
|
fill: `url(#${t}-b)`
|
|
620
|
-
}, null, 8,
|
|
620
|
+
}, null, 8, vt),
|
|
621
621
|
c("path", {
|
|
622
622
|
d: "m168.8 343.9h-46.7c1.4 7.1 6.6 12 14.1 12.7 6.4.6 12.9.1 19.9.1v11.9c-15.2 4.9-33.3.5-42.1-10.4-3.8-4.7-17.3-34.7 11.5-47.4 39-11.4 45.3 22.4 43.3 33.1zm-14.2-12.7c-1.7-8.1-8.8-12.9-17.9-12.3-7.6.5-14 5.8-14.5 12.3z",
|
|
623
623
|
fill: `url(#${t}-c)`
|
|
624
|
-
}, null, 8,
|
|
624
|
+
}, null, 8, yt),
|
|
625
625
|
c("path", {
|
|
626
626
|
d: "m195.5 320.2c0 10.5-.2 20 .1 29.6.2 5.8 4.4 8.4 13.2 8.6v10.5c-13.8 3.9-26.2-4.5-26.4-18-.2-18.7-.1-43.9-.1-62.6h14.1l-.3 18.5 12.7-.1v13.4h-13.3z",
|
|
627
627
|
fill: `url(#${t}-d)`
|
|
628
|
-
}, null, 8,
|
|
628
|
+
}, null, 8, bt),
|
|
629
629
|
c("path", {
|
|
630
630
|
d: "m249.6 307.3c-17.2 0-31.1 13.9-31.1 31.1s13.9 31.1 31.1 31.1h31.1v-31.1c0-17.2-13.9-31.1-31.1-31.1zm18.6 49.7h-18.5c-10.2 0-18.5-8.3-18.5-18.5s8.3-18.5 18.5-18.5 18.5 8.3 18.5 18.5z",
|
|
631
631
|
fill: `url(#${t}-e)`
|
|
632
|
-
}, null, 8,
|
|
632
|
+
}, null, 8, xt),
|
|
633
633
|
c("path", {
|
|
634
634
|
d: "m296.4 288.3h13v79.6h-13z",
|
|
635
635
|
fill: `url(#${t}-f)`
|
|
636
|
-
}, null, 8,
|
|
636
|
+
}, null, 8, St),
|
|
637
637
|
c("path", {
|
|
638
638
|
d: "m354.1 307.3c-17.2 0-31.1 13.9-31.1 31.1s13.9 31.1 31.1 31.1h31.1v-31.1c0-17.2-13.9-31.1-31.1-31.1zm18.6 49.7h-18.5c-10.2 0-18.5-8.3-18.5-18.5s8.3-18.5 18.5-18.5 18.5 8.3 18.5 18.5z",
|
|
639
639
|
fill: `url(#${t}-g)`
|
|
640
|
-
}, null, 8,
|
|
640
|
+
}, null, 8, Ct),
|
|
641
641
|
c("path", {
|
|
642
642
|
d: "m442.2 367.7c0-12.3.2-23.6 0-34.9-.2-3.4-3.6-13.8-14.1-13.4-10.3-.3-14.4 10-14.3 12.7.1 10.2.5 35.1.5 35.1l-13.6.1s-.3-25.7.2-36.2c.6-14.1 12.7-25 27.5-25 14.7 0 26.2 10.4 26.7 24.9.4 10.4.5 36.3.5 36.3z",
|
|
643
643
|
fill: `url(#${t}-h)`
|
|
644
|
-
}, null, 8,
|
|
644
|
+
}, null, 8, wt),
|
|
645
645
|
c("path", {
|
|
646
646
|
d: "m501.9 307.2c6.8 0 13.1 2.2 18.2 5.9v-24.8h13.2v81.1h-31.4c-17.2 0-31.1-13.9-31.1-31.1s13.9-31.1 31.1-31.1zm0 49.3h18.2v-18.2c0-10.1-8.2-18.2-18.2-18.2-10.1 0-18.2 8.2-18.2 18.2 0 10.1 8.1 18.2 18.2 18.2z",
|
|
647
647
|
fill: `url(#${t}-i)`
|
|
648
|
-
}, null, 8,
|
|
648
|
+
}, null, 8, Tt),
|
|
649
649
|
c("path", {
|
|
650
650
|
d: "m309.2 180.6h-24v-24c0-12.6 10.2-24.1 22.8-25 14.8-1 27.1 11.3 26.1 26.1-.8 12.7-12.3 22.9-24.9 22.9zm-50.7-48.9c-14.8-1-27.1 11.3-26.1 26.1.8 12.6 12.4 22.8 25 22.8h23.9v-24c0-12.6-10.3-24.1-22.8-24.9zm50.7 51.9h-24v23.9c0 12.6 10.2 24.1 22.8 25 14.8 1 27.1-11.3 26.1-26.1-.8-12.6-12.3-22.8-24.9-22.8zm-52.4 0c-14 0-25.3 11.8-24.4 26 .8 12.2 10.7 22.1 22.9 22.9 14.2.9 26-10.4 26-24.4v-24.5z",
|
|
651
651
|
fill: `url(#${t}-j)`
|
|
652
|
-
}, null, 8,
|
|
652
|
+
}, null, 8, Et),
|
|
653
653
|
c("path", {
|
|
654
654
|
d: "m281.7 183.8h3.6v18.5h-3.6z",
|
|
655
655
|
fill: `url(#${t}-k)`
|
|
656
|
-
}, null, 8,
|
|
657
|
-
], 8,
|
|
656
|
+
}, null, 8, Dt)
|
|
657
|
+
], 8, ot))]),
|
|
658
658
|
_: 1
|
|
659
659
|
});
|
|
660
660
|
};
|
|
661
661
|
}
|
|
662
|
-
}),
|
|
662
|
+
}), kt = /* @__PURE__ */ function(e) {
|
|
663
663
|
return e.DELETE = "DELETE", e.SUCCESS = "SUCCESS", e;
|
|
664
|
-
}({}),
|
|
664
|
+
}({}), At = {
|
|
665
665
|
key: 0,
|
|
666
666
|
class: "p-6 text-center"
|
|
667
|
-
},
|
|
667
|
+
}, jt = { class: "flex justify-center" }, Mt = {
|
|
668
668
|
key: 1,
|
|
669
669
|
class: "p-6 text-center"
|
|
670
|
-
},
|
|
670
|
+
}, Nt = {
|
|
671
671
|
key: 0,
|
|
672
672
|
class: "mb-5 text-sm text-gray-500"
|
|
673
|
-
},
|
|
673
|
+
}, Pt = { class: "flex justify-center" }, Ft = /* @__PURE__ */ p({
|
|
674
674
|
__name: "BaseModal",
|
|
675
675
|
props: {
|
|
676
676
|
title: {
|
|
@@ -689,7 +689,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
689
689
|
mode: {
|
|
690
690
|
type: String,
|
|
691
691
|
required: !1,
|
|
692
|
-
default:
|
|
692
|
+
default: kt.SUCCESS
|
|
693
693
|
}
|
|
694
694
|
},
|
|
695
695
|
emits: ["closeModal", "confirmModal"],
|
|
@@ -710,37 +710,37 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
710
710
|
role: "dialog",
|
|
711
711
|
"aria-modal": "true",
|
|
712
712
|
"aria-labelledby": i
|
|
713
|
-
}, [t.mode === P(
|
|
714
|
-
f(P(
|
|
713
|
+
}, [t.mode === P(kt).DELETE ? (T(), s("div", At, [
|
|
714
|
+
f(P(xe), { class: "w-12 h-12 text-gray-400 mx-auto mb-4" }),
|
|
715
715
|
c("h3", {
|
|
716
716
|
id: i,
|
|
717
717
|
class: "mb-5 text-lg font-normal text-gray-500 dark:text-gray-400"
|
|
718
718
|
}, " Are you sure you want to delete this " + N(t.title) + "? ", 1),
|
|
719
|
-
c("div",
|
|
720
|
-
color: P(
|
|
719
|
+
c("div", jt, [f(q, {
|
|
720
|
+
color: P(G).RED,
|
|
721
721
|
onClick: r[1] ||= (e) => n.$emit("confirmModal"),
|
|
722
722
|
description: "Yes, I'm sure"
|
|
723
|
-
}, null, 8, ["color"]), f(
|
|
724
|
-
color: P(
|
|
723
|
+
}, null, 8, ["color"]), f(q, {
|
|
724
|
+
color: P(G).WHITE,
|
|
725
725
|
onClick: r[2] ||= (e) => n.$emit("closeModal"),
|
|
726
726
|
description: "No, cancel"
|
|
727
727
|
}, null, 8, ["color"])])
|
|
728
|
-
])) : (T(), s("div",
|
|
729
|
-
f(P(
|
|
728
|
+
])) : (T(), s("div", Mt, [
|
|
729
|
+
f(P(fe), { class: "w-12 h-12 text-green-500 mx-auto mb-4" }),
|
|
730
730
|
c("h3", {
|
|
731
731
|
id: i,
|
|
732
732
|
class: "mb-2 text-lg font-medium text-gray-900"
|
|
733
733
|
}, N(t.title), 1),
|
|
734
|
-
t.description ? (T(), s("p",
|
|
734
|
+
t.description ? (T(), s("p", Nt, N(t.description), 1)) : o("", !0),
|
|
735
735
|
A(n.$slots, "default"),
|
|
736
|
-
c("div",
|
|
737
|
-
color: P(
|
|
736
|
+
c("div", Pt, [f(q, {
|
|
737
|
+
color: P(G).BLUE,
|
|
738
738
|
onClick: r[3] ||= (e) => n.$emit("closeModal"),
|
|
739
739
|
description: "OK"
|
|
740
740
|
}, null, 8, ["color"])])
|
|
741
741
|
]))])], 64));
|
|
742
742
|
}
|
|
743
|
-
}),
|
|
743
|
+
}), It = /* @__PURE__ */ p({
|
|
744
744
|
__name: "BaseRow",
|
|
745
745
|
props: { bgColor: {
|
|
746
746
|
type: String,
|
|
@@ -754,11 +754,11 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
754
754
|
}
|
|
755
755
|
return (e, t) => (T(), s("div", { class: v(n()) }, [A(e.$slots, "default")], 2));
|
|
756
756
|
}
|
|
757
|
-
}),
|
|
757
|
+
}), Lt = /* @__PURE__ */ p({
|
|
758
758
|
__name: "BaseSpinner",
|
|
759
759
|
props: {
|
|
760
760
|
size: { default: "sm" },
|
|
761
|
-
color: { default: "
|
|
761
|
+
color: { default: "emerald" }
|
|
762
762
|
},
|
|
763
763
|
setup(e) {
|
|
764
764
|
let t = e, n = i(() => ({
|
|
@@ -777,7 +777,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
777
777
|
amber: "border-t-amber-500"
|
|
778
778
|
})[t.color]);
|
|
779
779
|
return (e, t) => (T(), s("div", {
|
|
780
|
-
class: v(["border-gray-200 rounded-full animate-spin", [n.value, r.value]]),
|
|
780
|
+
class: v(["border-gray-200 dark:border-slate-700 rounded-full animate-spin", [n.value, r.value]]),
|
|
781
781
|
role: "status",
|
|
782
782
|
"aria-label": "Loading"
|
|
783
783
|
}, null, 2));
|
|
@@ -786,7 +786,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
786
786
|
return e.SUCCESS = "SUCCESS", e.WARNING = "WARNING", e.ERROR = "ERROR", e;
|
|
787
787
|
}({}), X = /* @__PURE__ */ function(e) {
|
|
788
788
|
return e.TOP_LEFT = "TOP_LEFT", e.TOP_RIGHT = "TOP_RIGHT", e.BOTTOM_LEFT = "BOTTOM_LEFT", e.BOTTOM_RIGHT = "BOTTOM_RIGHT", e;
|
|
789
|
-
}({}),
|
|
789
|
+
}({}), Rt = { 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" }, zt = { class: "ml-3 text-sm font-normal" }, Bt = /* @__PURE__ */ p({
|
|
790
790
|
__name: "BaseToast",
|
|
791
791
|
props: {
|
|
792
792
|
mode: {
|
|
@@ -860,28 +860,28 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
860
860
|
id: "toast-top-right",
|
|
861
861
|
class: v(l()),
|
|
862
862
|
role: "alert"
|
|
863
|
-
}, [c("div",
|
|
863
|
+
}, [c("div", Rt, [
|
|
864
864
|
e.mode == P(Y).ERROR ? (T(), s("div", {
|
|
865
865
|
key: 0,
|
|
866
866
|
class: v(a())
|
|
867
|
-
}, [f(P(
|
|
867
|
+
}, [f(P(xe), { class: "h-6 w-6 text-red-500" }), r[0] ||= c("span", { class: "sr-only" }, "Error icon", -1)], 2)) : e.mode == P(Y).SUCCESS ? (T(), s("div", {
|
|
868
868
|
key: 1,
|
|
869
869
|
class: v(a())
|
|
870
|
-
}, [f(P(
|
|
870
|
+
}, [f(P(fe), { class: "h-6 w-6 text-green-500" }), r[1] ||= c("span", { class: "sr-only" }, "Check icon", -1)], 2)) : e.mode == P(Y).WARNING ? (T(), s("div", {
|
|
871
871
|
key: 2,
|
|
872
872
|
class: v(a())
|
|
873
|
-
}, [f(P(
|
|
874
|
-
c("div",
|
|
873
|
+
}, [f(P(Se), { class: "h-6 w-6 text-yellow-500" }), r[2] ||= c("span", { class: "sr-only" }, "Warning icon", -1)], 2)) : o("", !0),
|
|
874
|
+
c("div", zt, N(e.description), 1),
|
|
875
875
|
e.hasCloseIcon ? (T(), s("button", {
|
|
876
876
|
key: 3,
|
|
877
877
|
type: "button",
|
|
878
878
|
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",
|
|
879
879
|
"aria-label": "Close",
|
|
880
880
|
onClick: i
|
|
881
|
-
}, [r[3] ||= c("span", { class: "sr-only" }, "Close", -1), f(P(
|
|
881
|
+
}, [r[3] ||= c("span", { class: "sr-only" }, "Close", -1), f(P(z), { class: "h-6 w-6 text-gray-500" })])) : o("", !0)
|
|
882
882
|
])], 2)) : o("", !0);
|
|
883
883
|
}
|
|
884
|
-
}),
|
|
884
|
+
}), Vt = { class: "w-13" }, Ht = /* @__PURE__ */ p({
|
|
885
885
|
__name: "ColoredSquares",
|
|
886
886
|
props: { color: {
|
|
887
887
|
type: String,
|
|
@@ -902,25 +902,25 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
902
902
|
function i() {
|
|
903
903
|
let e = "font-bold text-xs mr-2 px-2.5 py-0.5 rounded-full", n = "gray";
|
|
904
904
|
switch (t.color) {
|
|
905
|
-
case
|
|
905
|
+
case W.GREEN:
|
|
906
906
|
n = "green";
|
|
907
907
|
break;
|
|
908
|
-
case
|
|
908
|
+
case W.RED:
|
|
909
909
|
n = "red";
|
|
910
910
|
break;
|
|
911
|
-
case
|
|
911
|
+
case W.BLUE:
|
|
912
912
|
n = "blue";
|
|
913
913
|
break;
|
|
914
|
-
case
|
|
914
|
+
case W.YELLOW:
|
|
915
915
|
n = "yellow";
|
|
916
916
|
break;
|
|
917
|
-
case
|
|
917
|
+
case W.NONE: return e;
|
|
918
918
|
}
|
|
919
919
|
return e + " bg-" + n + "-100 text-" + n + "-800";
|
|
920
920
|
}
|
|
921
|
-
return (e, t) => (T(), s("div",
|
|
921
|
+
return (e, t) => (T(), s("div", Vt, [c("div", { class: v(["border border-gray-300 relative aspect-square rounded-lg bg-white shadow-sm overflow-hidden flex items-center justify-center text-center", i()]) }, [A(e.$slots, "default"), c("div", { class: v(["absolute bottom-0 left-0 h-1 w-full", r.value]) }, null, 2)], 2)]));
|
|
922
922
|
}
|
|
923
|
-
}),
|
|
923
|
+
}), Ut = { class: "flex items-start justify-between" }, Wt = { class: "min-w-0" }, Gt = /* @__PURE__ */ p({
|
|
924
924
|
__name: "EarningsCard",
|
|
925
925
|
props: {
|
|
926
926
|
title: { default: "TOTAL EARNINGS" },
|
|
@@ -975,7 +975,7 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
975
975
|
return (n, r) => (T(), s("div", { class: v(["relative rounded-xl border-2 border-dashed bg-white dark:bg-slate-800", [d.value.border, t.compact ? "p-3" : "p-6"]]) }, [t.badge ? (T(), s("div", {
|
|
976
976
|
key: 0,
|
|
977
977
|
class: v(["absolute right-4 top-4 rounded-md px-3 py-1 text-xs font-bold tracking-wide", d.value.badge])
|
|
978
|
-
}, N(t.badge), 3)) : o("", !0), c("div",
|
|
978
|
+
}, N(t.badge), 3)) : o("", !0), c("div", Ut, [c("div", Wt, [
|
|
979
979
|
c("p", { class: v(["font-bold tracking-wide text-gray-800 dark:text-slate-200", t.compact ? "pr-8 text-xs" : "text-sm"]) }, N(t.title), 3),
|
|
980
980
|
c("p", { class: v(["mt-1 font-bold truncate", [d.value.amount, t.compact ? "text-lg" : "text-4xl"]]) }, N(f.value), 3),
|
|
981
981
|
c("p", { class: v(["mt-1 font-medium", [d.value.subtitle, t.compact ? "text-xs" : "text-sm"]]) }, N(t.subtitle), 3)
|
|
@@ -989,10 +989,10 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
989
989
|
"stroke-linejoin": "round"
|
|
990
990
|
}, [l.value ? (T(), s(e, { key: 0 }, [r[0] ||= c("polyline", { points: "22 17 13.5 8.5 8.5 13.5 2 7" }, null, -1), r[1] ||= c("polyline", { points: "16 17 22 17 22 11" }, null, -1)], 64)) : (T(), s(e, { key: 1 }, [r[2] ||= c("polyline", { points: "22 7 13.5 15.5 8.5 10.5 2 17" }, null, -1), r[3] ||= c("polyline", { points: "16 7 22 7 22 13" }, null, -1)], 64))], 2))], 2)])], 2));
|
|
991
991
|
}
|
|
992
|
-
}),
|
|
992
|
+
}), Kt = {
|
|
993
993
|
key: 0,
|
|
994
994
|
class: "font-bold text-green-800 dark:text-green-400"
|
|
995
|
-
},
|
|
995
|
+
}, qt = { key: 0 }, Jt = { key: 0 }, Yt = "font-bold", Xt = /* @__PURE__ */ p({
|
|
996
996
|
__name: "EuroAmount",
|
|
997
997
|
props: {
|
|
998
998
|
amount: {
|
|
@@ -1012,20 +1012,20 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
1012
1012
|
},
|
|
1013
1013
|
setup(t) {
|
|
1014
1014
|
let n = t, r = i(() => n.amount !== null && n.amount !== void 0), a = i(() => r.value && n.amount < 0), c = i(() => n.beforeAmount === null || n.beforeAmount === void 0 ? !1 : n.amount < n.beforeAmount), l = i(() => a.value || c.value), u = i(() => !a.value && !c.value && n.beforeAmount !== null && n.beforeAmount !== void 0);
|
|
1015
|
-
return (n, i) => (T(), s(e, null, [r.value && u.value ? (T(), s("span",
|
|
1015
|
+
return (n, i) => (T(), s(e, null, [r.value && u.value ? (T(), s("span", Kt, [d(N(t.amount) + " ", 1), t.showCurrency ? (T(), s("span", qt, "€")) : o("", !0)])) : o("", !0), r.value && !u.value ? (T(), s("span", {
|
|
1016
1016
|
key: 1,
|
|
1017
|
-
class: v([
|
|
1018
|
-
}, [d(N(t.amount) + " ", 1), t.showCurrency ? (T(), s("span",
|
|
1017
|
+
class: v([Yt, l.value ? "text-red-800 dark:text-red-400" : "text-gray-800 dark:text-gray-200"])
|
|
1018
|
+
}, [d(N(t.amount) + " ", 1), t.showCurrency ? (T(), s("span", Jt, "€")) : o("", !0)], 2)) : o("", !0)], 64));
|
|
1019
1019
|
}
|
|
1020
|
-
}),
|
|
1020
|
+
}), Zt = { "aria-label": "Pagination" }, Qt = { class: "flex list-none p-0 m-0" }, $t = [
|
|
1021
1021
|
"aria-current",
|
|
1022
1022
|
"aria-label",
|
|
1023
1023
|
"onClick"
|
|
1024
|
-
],
|
|
1024
|
+
], en = {
|
|
1025
1025
|
key: 1,
|
|
1026
1026
|
"aria-hidden": "true",
|
|
1027
1027
|
class: "inline-block border border-gray-300 dark:border-gray-600 rounded-lg p-3 text-black dark:text-gray-200 cursor-not-allowed"
|
|
1028
|
-
},
|
|
1028
|
+
}, tn = /* @__PURE__ */ p({
|
|
1029
1029
|
__name: "Pagination",
|
|
1030
1030
|
props: {
|
|
1031
1031
|
totalItems: {
|
|
@@ -1053,31 +1053,31 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
1053
1053
|
function d(e) {
|
|
1054
1054
|
e === i.value || e < 1 || e > a.value || (i.value = e, u(e), l("page-changed", e));
|
|
1055
1055
|
}
|
|
1056
|
-
return
|
|
1056
|
+
return ae(() => [r.totalItems, r.itemsPerPage], () => {
|
|
1057
1057
|
let e = Number(r.itemsPerPage) > 0 ? Number(r.itemsPerPage) : 20, t = Number(r.totalItems) > 0 ? Number(r.totalItems) : 0;
|
|
1058
1058
|
a.value = Math.ceil(t / e), i.value > a.value && (i.value = Math.max(1, a.value)), u(i.value);
|
|
1059
|
-
}, { immediate: !0 }), (t, n) => (T(), s("nav",
|
|
1059
|
+
}, { immediate: !0 }), (t, n) => (T(), s("nav", Zt, [c("ul", Qt, [(T(!0), s(e, null, k(o.value, (e, t) => (T(), s("li", {
|
|
1060
1060
|
key: t,
|
|
1061
1061
|
class: "mr-1"
|
|
1062
|
-
}, [e === 0 ? (T(), s("span",
|
|
1062
|
+
}, [e === 0 ? (T(), s("span", en, "...")) : (T(), s("button", {
|
|
1063
1063
|
key: 0,
|
|
1064
1064
|
type: "button",
|
|
1065
1065
|
"aria-current": e === i.value ? "page" : void 0,
|
|
1066
1066
|
"aria-label": `Go to page ${e}`,
|
|
1067
1067
|
onClick: (t) => d(e),
|
|
1068
1068
|
class: v(["inline-block min-w-[44px] border border-gray-300 dark:border-gray-600 rounded-lg p-3 text-black dark:text-gray-200 cursor-pointer transition-colors hover:bg-gray-300 dark:hover:bg-gray-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", { "active font-bold bg-gray-200 dark:bg-gray-700": e === i.value }])
|
|
1069
|
-
}, N(e), 11,
|
|
1069
|
+
}, N(e), 11, $t))]))), 128))])]));
|
|
1070
1070
|
}
|
|
1071
|
-
}),
|
|
1071
|
+
}), nn = { key: 0 }, rn = {
|
|
1072
1072
|
key: 0,
|
|
1073
1073
|
class: "flex items-center space-x-2"
|
|
1074
|
-
},
|
|
1074
|
+
}, an = {
|
|
1075
1075
|
key: 1,
|
|
1076
1076
|
class: "flex items-center space-x-2"
|
|
1077
|
-
},
|
|
1077
|
+
}, on = {
|
|
1078
1078
|
key: 2,
|
|
1079
1079
|
class: "flex items-center space-x-2"
|
|
1080
|
-
},
|
|
1080
|
+
}, sn = /* @__PURE__ */ p({
|
|
1081
1081
|
__name: "TrendArrow",
|
|
1082
1082
|
props: {
|
|
1083
1083
|
number: {
|
|
@@ -1091,22 +1091,22 @@ var Fe = { class: "min-w-0 flex-1" }, Ie = {
|
|
|
1091
1091
|
},
|
|
1092
1092
|
setup(e) {
|
|
1093
1093
|
let t = e, n = i(() => t.number !== null && t.number !== void 0 && t.number < 0), r = i(() => t.number === 0);
|
|
1094
|
-
return (i, a) => e.number !== null && e.number !== void 0 ? (T(), s("div",
|
|
1095
|
-
default:
|
|
1094
|
+
return (i, a) => e.number !== null && e.number !== void 0 ? (T(), s("div", nn, [n.value ? (T(), s("span", rn, [f(Ve, { color: P(W).RED }, {
|
|
1095
|
+
default: I(() => [d(N(e.number) + N(t.icon), 1)]),
|
|
1096
1096
|
_: 1
|
|
1097
|
-
}, 8, ["color"]), f(P(
|
|
1098
|
-
default:
|
|
1097
|
+
}, 8, ["color"]), f(P(se), { class: "h-5 w-5 text-red-500" })])) : r.value ? (T(), s("span", an, [f(Ve, { color: P(W).GRAY }, {
|
|
1098
|
+
default: I(() => [d(N(e.number) + N(t.icon), 1)]),
|
|
1099
1099
|
_: 1
|
|
1100
|
-
}, 8, ["color"]), f(P(
|
|
1101
|
-
default:
|
|
1100
|
+
}, 8, ["color"]), f(P(Ee), { class: "h-5 w-5 text-gray-400" })])) : (T(), s("span", on, [f(Ve, { color: P(W).GREEN }, {
|
|
1101
|
+
default: I(() => [d(N(e.number) + N(t.icon), 1)]),
|
|
1102
1102
|
_: 1
|
|
1103
|
-
}, 8, ["color"]), f(P(
|
|
1103
|
+
}, 8, ["color"]), f(P(le), { class: "h-5 w-5 text-green-500" })]))])) : o("", !0);
|
|
1104
1104
|
}
|
|
1105
1105
|
});
|
|
1106
1106
|
//#endregion
|
|
1107
1107
|
//#region src/composables/useThemeClasses.ts
|
|
1108
1108
|
function Z() {
|
|
1109
|
-
let { isDark: e } =
|
|
1109
|
+
let { isDark: e } = U();
|
|
1110
1110
|
return E({
|
|
1111
1111
|
card: i(() => e.value ? "bg-gray-800 border-gray-700" : "bg-white border-gray-200"),
|
|
1112
1112
|
cardAlt: i(() => e.value ? "bg-gray-900 border-gray-700" : "bg-white border-gray-200"),
|
|
@@ -1133,7 +1133,7 @@ function Z() {
|
|
|
1133
1133
|
}
|
|
1134
1134
|
//#endregion
|
|
1135
1135
|
//#region src/composables/useEscapeKey.ts
|
|
1136
|
-
function
|
|
1136
|
+
function cn(e) {
|
|
1137
1137
|
function t(t) {
|
|
1138
1138
|
t.key === "Escape" && e();
|
|
1139
1139
|
}
|
|
@@ -1141,7 +1141,7 @@ function sn(e) {
|
|
|
1141
1141
|
}
|
|
1142
1142
|
//#endregion
|
|
1143
1143
|
//#region src/components/BaseModalShell.vue?vue&type=script&setup=true&lang.ts
|
|
1144
|
-
var
|
|
1144
|
+
var ln = { class: "flex items-start gap-4 min-w-0" }, un = { class: "flex-1 min-w-0" }, dn = { class: "p-6 overflow-y-auto flex-1" }, fn = { class: "p-6" }, pn = { class: "flex items-start gap-4" }, mn = { class: "flex-1" }, hn = { class: "mt-4" }, gn = { class: "mt-6 flex gap-3 justify-end" }, _n = /* @__PURE__ */ p({
|
|
1145
1145
|
__name: "BaseModalShell",
|
|
1146
1146
|
props: {
|
|
1147
1147
|
title: {},
|
|
@@ -1161,11 +1161,11 @@ var cn = { class: "flex items-start gap-4 min-w-0" }, ln = { class: "flex-1 min-
|
|
|
1161
1161
|
},
|
|
1162
1162
|
emits: ["cancel", "backdrop"],
|
|
1163
1163
|
setup(e, { emit: n }) {
|
|
1164
|
-
let r = e, l = n, { isDark: u } =
|
|
1164
|
+
let r = e, l = n, { isDark: u } = U(), d = Z(), f = `modal-title-${Math.random().toString(36).slice(2, 9)}`, p = i(() => u.value ? "bg-gray-900 border border-gray-700" : "bg-white border border-gray-200"), m = i(() => r.iconBgClass || (u.value ? "bg-emerald-900/30" : "bg-emerald-50"));
|
|
1165
1165
|
function h() {
|
|
1166
1166
|
l("backdrop"), r.manualClose || l("cancel");
|
|
1167
1167
|
}
|
|
1168
|
-
return
|
|
1168
|
+
return cn(() => {
|
|
1169
1169
|
r.manualClose || l("cancel");
|
|
1170
1170
|
}), (n, r) => (T(), a(t, { to: "body" }, [c("div", {
|
|
1171
1171
|
class: "fixed inset-0 z-50 flex items-center justify-center bg-black/50",
|
|
@@ -1176,19 +1176,19 @@ var cn = { class: "flex items-start gap-4 min-w-0" }, ln = { class: "flex-1 min-
|
|
|
1176
1176
|
}, [e.scrollable ? (T(), s("div", {
|
|
1177
1177
|
key: 0,
|
|
1178
1178
|
class: v(["relative w-full mx-4 rounded-lg shadow-xl max-h-[90vh] flex flex-col", [e.maxWidthClass, p.value]]),
|
|
1179
|
-
onClick: r[0] ||=
|
|
1179
|
+
onClick: r[0] ||= R(() => {}, ["stop"])
|
|
1180
1180
|
}, [
|
|
1181
|
-
c("div", { class: v(["flex items-start justify-between gap-4 p-6 border-b shrink-0", P(d).border]) }, [c("div",
|
|
1181
|
+
c("div", { class: v(["flex items-start justify-between gap-4 p-6 border-b shrink-0", P(d).border]) }, [c("div", ln, [A(n.$slots, "icon", {}, () => [c("div", { class: v(["flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full", m.value]) }, [(T(), a(M(e.icon), {
|
|
1182
1182
|
class: v(["h-6 w-6", e.iconClass]),
|
|
1183
1183
|
"aria-hidden": "true"
|
|
1184
|
-
}, null, 8, ["class"]))], 2)]), c("div",
|
|
1184
|
+
}, null, 8, ["class"]))], 2)]), c("div", un, [c("h3", {
|
|
1185
1185
|
id: f,
|
|
1186
1186
|
class: v(["text-lg font-medium", P(d).primaryText])
|
|
1187
1187
|
}, N(e.title), 3), e.subtitle ? (T(), s("p", {
|
|
1188
1188
|
key: 0,
|
|
1189
1189
|
class: v(["text-sm mt-1 break-all", P(d).mutedText])
|
|
1190
1190
|
}, N(e.subtitle), 3)) : o("", !0)])]), A(n.$slots, "header-actions")], 2),
|
|
1191
|
-
c("div",
|
|
1191
|
+
c("div", dn, [A(n.$slots, "default")]),
|
|
1192
1192
|
n.$slots.footer ? (T(), s("div", {
|
|
1193
1193
|
key: 0,
|
|
1194
1194
|
class: v(["flex gap-3 justify-end p-6 border-t shrink-0", P(d).border])
|
|
@@ -1196,20 +1196,20 @@ var cn = { class: "flex items-start gap-4 min-w-0" }, ln = { class: "flex-1 min-
|
|
|
1196
1196
|
], 2)) : (T(), s("div", {
|
|
1197
1197
|
key: 1,
|
|
1198
1198
|
class: v(["relative w-full mx-4 rounded-lg shadow-xl", [e.maxWidthClass, p.value]]),
|
|
1199
|
-
onClick: r[1] ||=
|
|
1200
|
-
}, [c("div",
|
|
1201
|
-
c("div",
|
|
1199
|
+
onClick: r[1] ||= R(() => {}, ["stop"])
|
|
1200
|
+
}, [c("div", fn, [
|
|
1201
|
+
c("div", pn, [A(n.$slots, "icon", {}, () => [c("div", { class: v(["flex-shrink-0 flex h-12 w-12 items-center justify-center rounded-full", m.value]) }, [(T(), a(M(e.icon), {
|
|
1202
1202
|
class: v(["h-6 w-6", e.iconClass]),
|
|
1203
1203
|
"aria-hidden": "true"
|
|
1204
|
-
}, null, 8, ["class"]))], 2)]), c("div",
|
|
1204
|
+
}, null, 8, ["class"]))], 2)]), c("div", mn, [c("h3", {
|
|
1205
1205
|
id: f,
|
|
1206
1206
|
class: v(["text-lg font-medium", P(d).primaryText])
|
|
1207
1207
|
}, N(e.title), 3)])]),
|
|
1208
|
-
c("div",
|
|
1209
|
-
c("div",
|
|
1208
|
+
c("div", hn, [A(n.$slots, "default")]),
|
|
1209
|
+
c("div", gn, [A(n.$slots, "footer")])
|
|
1210
1210
|
])], 2))])]));
|
|
1211
1211
|
}
|
|
1212
|
-
}),
|
|
1212
|
+
}), vn = ["aria-expanded"], yn = { class: "flex items-center gap-3" }, bn = /* @__PURE__ */ p({
|
|
1213
1213
|
__name: "BaseCollapsibleSection",
|
|
1214
1214
|
props: {
|
|
1215
1215
|
title: {},
|
|
@@ -1219,13 +1219,13 @@ var cn = { class: "flex items-start gap-4 min-w-0" }, ln = { class: "flex-1 min-
|
|
|
1219
1219
|
},
|
|
1220
1220
|
emits: ["toggle"],
|
|
1221
1221
|
setup(e, { emit: t }) {
|
|
1222
|
-
let n = e, r = t, { isDark: a } =
|
|
1222
|
+
let n = e, r = t, { isDark: a } = U(), l = Z(), u = i(() => a.value ? "text-gray-100" : "text-gray-700"), d = i(() => a.value ? "bg-gray-800/50 hover:bg-gray-800 border-gray-700" : "bg-gray-50 hover:bg-gray-100 border-gray-200"), f = i(() => a.value ? "bg-emerald-500/15 text-emerald-400" : "bg-emerald-50 text-emerald-700"), p = i(() => n.bodyClass === void 0 ? a.value ? "bg-gray-800" : "bg-white" : n.bodyClass);
|
|
1223
1223
|
return (t, n) => (T(), s("section", { class: v(["rounded-xl border transition-colors", P(l).cardAlt]) }, [c("button", {
|
|
1224
1224
|
type: "button",
|
|
1225
1225
|
class: v(["w-full flex items-center justify-between p-4 text-left transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-emerald-500", [d.value, e.collapsed ? "rounded-xl" : "rounded-t-xl"]]),
|
|
1226
1226
|
"aria-expanded": !e.collapsed,
|
|
1227
1227
|
onClick: n[0] ||= (e) => r("toggle")
|
|
1228
|
-
}, [c("div",
|
|
1228
|
+
}, [c("div", yn, [c("h2", { class: v(["text-base font-semibold", u.value]) }, N(e.title), 3), e.badge ? (T(), s("span", {
|
|
1229
1229
|
key: 0,
|
|
1230
1230
|
class: v(["text-xs px-2 py-0.5 rounded-full", f.value])
|
|
1231
1231
|
}, N(e.badge), 3)) : o("", !0)]), (T(), s("svg", {
|
|
@@ -1239,15 +1239,15 @@ var cn = { class: "flex items-start gap-4 min-w-0" }, ln = { class: "flex-1 min-
|
|
|
1239
1239
|
"stroke-linecap": "round",
|
|
1240
1240
|
"stroke-linejoin": "round",
|
|
1241
1241
|
d: "M19 9l-7 7-7-7"
|
|
1242
|
-
}, null, -1)]], 2))], 10,
|
|
1242
|
+
}, null, -1)]], 2))], 10, vn), L(c("div", { class: v(["p-6 border-t rounded-b-xl", [P(l).border, p.value]]) }, [A(t.$slots, "default")], 2), [[ie, !e.collapsed]])], 2));
|
|
1243
1243
|
}
|
|
1244
|
-
}),
|
|
1244
|
+
}), xn = ["disabled"], Sn = ["disabled"], Cn = {
|
|
1245
1245
|
key: 0,
|
|
1246
1246
|
class: "w-4 h-4 animate-spin",
|
|
1247
1247
|
fill: "none",
|
|
1248
1248
|
viewBox: "0 0 24 24",
|
|
1249
1249
|
"aria-hidden": "true"
|
|
1250
|
-
},
|
|
1250
|
+
}, wn = /* @__PURE__ */ p({
|
|
1251
1251
|
__name: "BaseConfirmModal",
|
|
1252
1252
|
props: {
|
|
1253
1253
|
title: {},
|
|
@@ -1263,32 +1263,32 @@ var cn = { class: "flex items-start gap-4 min-w-0" }, ln = { class: "flex-1 min-
|
|
|
1263
1263
|
},
|
|
1264
1264
|
emits: ["confirm", "cancel"],
|
|
1265
1265
|
setup(e, { emit: t }) {
|
|
1266
|
-
let n = e, r = t, { isDark: i } =
|
|
1266
|
+
let n = e, r = t, { isDark: i } = U(), l = Z();
|
|
1267
1267
|
function u() {
|
|
1268
1268
|
n.submitting || r("confirm");
|
|
1269
1269
|
}
|
|
1270
1270
|
function f() {
|
|
1271
1271
|
n.submitting || r("cancel");
|
|
1272
1272
|
}
|
|
1273
|
-
return (t, n) => (T(), a(
|
|
1273
|
+
return (t, n) => (T(), a(_n, {
|
|
1274
1274
|
title: e.title,
|
|
1275
|
-
icon: P(
|
|
1275
|
+
icon: P(Se),
|
|
1276
1276
|
"icon-bg-class": e.variant === "danger" ? P(i) ? "bg-red-900/30" : "bg-red-50" : P(i) ? "bg-amber-900/30" : "bg-amber-50",
|
|
1277
1277
|
"icon-class": e.variant === "danger" ? "text-red-600" : "text-amber-600",
|
|
1278
1278
|
"manual-close": e.submitting,
|
|
1279
1279
|
onCancel: f
|
|
1280
1280
|
}, {
|
|
1281
|
-
footer:
|
|
1281
|
+
footer: I(() => [c("button", {
|
|
1282
1282
|
type: "button",
|
|
1283
1283
|
disabled: e.submitting,
|
|
1284
1284
|
class: v(["inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", [P(l).ghostButton, e.submitting ? "opacity-60 cursor-not-allowed" : "cursor-pointer"]]),
|
|
1285
1285
|
onClick: f
|
|
1286
|
-
}, N(e.cancelText), 11,
|
|
1286
|
+
}, N(e.cancelText), 11, xn), c("button", {
|
|
1287
1287
|
type: "button",
|
|
1288
1288
|
disabled: e.submitting,
|
|
1289
1289
|
class: v(["inline-flex items-center justify-center gap-2 px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2", [e.variant === "danger" ? "focus-visible:ring-red-500" : "focus-visible:ring-emerald-500", e.variant === "danger" ? e.submitting ? "bg-red-400 cursor-not-allowed" : "bg-red-600 hover:bg-red-700 cursor-pointer" : e.submitting ? "bg-emerald-400 cursor-not-allowed" : "bg-emerald-600 hover:bg-emerald-700 cursor-pointer"]]),
|
|
1290
1290
|
onClick: u
|
|
1291
|
-
}, [e.submitting ? (T(), s("svg",
|
|
1291
|
+
}, [e.submitting ? (T(), s("svg", Cn, [...n[0] ||= [c("circle", {
|
|
1292
1292
|
class: "opacity-25",
|
|
1293
1293
|
cx: "12",
|
|
1294
1294
|
cy: "12",
|
|
@@ -1299,8 +1299,8 @@ var cn = { class: "flex items-start gap-4 min-w-0" }, ln = { class: "flex-1 min-
|
|
|
1299
1299
|
class: "opacity-75",
|
|
1300
1300
|
fill: "currentColor",
|
|
1301
1301
|
d: "M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"
|
|
1302
|
-
}, null, -1)]])) : o("", !0), d(" " + N(e.submitting ? e.submittingText : e.confirmText), 1)], 10,
|
|
1303
|
-
default:
|
|
1302
|
+
}, null, -1)]])) : o("", !0), d(" " + N(e.submitting ? e.submittingText : e.confirmText), 1)], 10, Sn)]),
|
|
1303
|
+
default: I(() => [A(t.$slots, "message", {}, () => [c("p", { class: v(["text-sm", P(i) ? "text-gray-300" : "text-gray-600"]) }, N(e.message), 3)]), A(t.$slots, "default")]),
|
|
1304
1304
|
_: 3
|
|
1305
1305
|
}, 8, [
|
|
1306
1306
|
"title",
|
|
@@ -1310,7 +1310,7 @@ var cn = { class: "flex items-start gap-4 min-w-0" }, ln = { class: "flex-1 min-
|
|
|
1310
1310
|
"manual-close"
|
|
1311
1311
|
]));
|
|
1312
1312
|
}
|
|
1313
|
-
}),
|
|
1313
|
+
}), Tn = { class: "mt-4" }, En = ["placeholder"], Dn = ["disabled"], On = /* @__PURE__ */ p({
|
|
1314
1314
|
__name: "BaseTextInputModal",
|
|
1315
1315
|
props: {
|
|
1316
1316
|
title: {},
|
|
@@ -1328,7 +1328,7 @@ var cn = { class: "flex items-start gap-4 min-w-0" }, ln = { class: "flex-1 min-
|
|
|
1328
1328
|
},
|
|
1329
1329
|
emits: ["confirm", "cancel"],
|
|
1330
1330
|
setup(e, { emit: t }) {
|
|
1331
|
-
let n = e, r = t, { isDark: i } =
|
|
1331
|
+
let n = e, r = t, { isDark: i } = U(), o = Z(), s = O(n.initialValue), u = O(null);
|
|
1332
1332
|
S(async () => {
|
|
1333
1333
|
await _(), u.value?.focus();
|
|
1334
1334
|
});
|
|
@@ -1341,13 +1341,13 @@ var cn = { class: "flex items-start gap-4 min-w-0" }, ln = { class: "flex-1 min-
|
|
|
1341
1341
|
function p() {
|
|
1342
1342
|
s.value.trim() === (n.initialValue ?? "").trim() && f();
|
|
1343
1343
|
}
|
|
1344
|
-
return
|
|
1344
|
+
return cn(f), (t, n) => (T(), a(_n, {
|
|
1345
1345
|
title: e.title,
|
|
1346
|
-
icon: P(
|
|
1346
|
+
icon: P(be),
|
|
1347
1347
|
"manual-close": "",
|
|
1348
1348
|
onBackdrop: p
|
|
1349
1349
|
}, l({
|
|
1350
|
-
footer:
|
|
1350
|
+
footer: I(() => [c("button", {
|
|
1351
1351
|
type: "button",
|
|
1352
1352
|
class: v(["inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150 cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", P(o).ghostButton]),
|
|
1353
1353
|
onClick: f
|
|
@@ -1356,24 +1356,24 @@ var cn = { class: "flex items-start gap-4 min-w-0" }, ln = { class: "flex-1 min-
|
|
|
1356
1356
|
disabled: !s.value.trim() || e.submitting,
|
|
1357
1357
|
class: v(["inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 focus-visible:ring-offset-2", [!s.value.trim() || e.submitting ? "bg-emerald-400 cursor-not-allowed" : "bg-emerald-600 hover:bg-emerald-700 cursor-pointer"]]),
|
|
1358
1358
|
onClick: d
|
|
1359
|
-
}, N(e.submitting ? e.submittingText : e.confirmText), 11,
|
|
1360
|
-
default:
|
|
1359
|
+
}, N(e.submitting ? e.submittingText : e.confirmText), 11, Dn)]),
|
|
1360
|
+
default: I(() => [c("p", { class: v(["text-sm", P(i) ? "text-gray-300" : "text-gray-600"]) }, N(e.message), 3), c("div", Tn, [c("label", { class: v(["block text-sm font-medium mb-1", P(o).label]) }, N(e.inputLabel), 3), L(c("input", {
|
|
1361
1361
|
ref_key: "nameInput",
|
|
1362
1362
|
ref: u,
|
|
1363
1363
|
"onUpdate:modelValue": n[0] ||= (e) => s.value = e,
|
|
1364
1364
|
type: "text",
|
|
1365
1365
|
placeholder: e.placeholder,
|
|
1366
1366
|
class: v(["w-full px-3 py-2 rounded-md border text-sm transition-colors", P(i) ? "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"]),
|
|
1367
|
-
onKeyup:
|
|
1368
|
-
}, null, 42,
|
|
1367
|
+
onKeyup: oe(d, ["enter"])
|
|
1368
|
+
}, null, 42, En), [[re, s.value]])])]),
|
|
1369
1369
|
_: 2
|
|
1370
1370
|
}, [t.$slots.icon ? {
|
|
1371
1371
|
name: "icon",
|
|
1372
|
-
fn:
|
|
1372
|
+
fn: I(() => [A(t.$slots, "icon")]),
|
|
1373
1373
|
key: "0"
|
|
1374
1374
|
} : void 0]), 1032, ["title", "icon"]));
|
|
1375
1375
|
}
|
|
1376
|
-
}),
|
|
1376
|
+
}), kn = { class: "flex items-center justify-center min-h-[60vh]" }, An = { class: "text-center px-6" }, jn = /* @__PURE__ */ p({
|
|
1377
1377
|
__name: "BaseNotFoundPage",
|
|
1378
1378
|
props: {
|
|
1379
1379
|
code: { default: "404" },
|
|
@@ -1382,12 +1382,12 @@ var cn = { class: "flex items-start gap-4 min-w-0" }, ln = { class: "flex-1 min-
|
|
|
1382
1382
|
homeLabel: { default: "Go home" }
|
|
1383
1383
|
},
|
|
1384
1384
|
setup(e) {
|
|
1385
|
-
let t = e, n =
|
|
1385
|
+
let t = e, n = Me(), { isDark: r } = U(), i = Z();
|
|
1386
1386
|
function a() {
|
|
1387
1387
|
n.push({ name: t.homeRouteName });
|
|
1388
1388
|
}
|
|
1389
|
-
return (t, n) => (T(), s("div",
|
|
1390
|
-
f(P(
|
|
1389
|
+
return (t, n) => (T(), s("div", kn, [c("div", An, [
|
|
1390
|
+
f(P(Se), { class: v(["w-16 h-16 mx-auto mb-4", P(i).illustration]) }, null, 8, ["class"]),
|
|
1391
1391
|
c("h1", { class: v(["text-4xl font-bold mb-2", P(r) ? "text-gray-200" : "text-gray-800"]) }, N(e.code), 3),
|
|
1392
1392
|
c("p", { class: v(["text-lg mb-6", P(i).dimTextAlt]) }, N(e.message), 3),
|
|
1393
1393
|
c("button", {
|
|
@@ -1396,19 +1396,19 @@ var cn = { class: "flex items-start gap-4 min-w-0" }, ln = { class: "flex-1 min-
|
|
|
1396
1396
|
}, N(e.homeLabel), 3)
|
|
1397
1397
|
])]));
|
|
1398
1398
|
}
|
|
1399
|
-
}),
|
|
1400
|
-
function
|
|
1399
|
+
}), Mn = O(!1);
|
|
1400
|
+
function Nn() {
|
|
1401
1401
|
function e() {
|
|
1402
|
-
|
|
1402
|
+
Mn.value = !0;
|
|
1403
1403
|
}
|
|
1404
1404
|
function t() {
|
|
1405
|
-
|
|
1405
|
+
Mn.value = !1;
|
|
1406
1406
|
}
|
|
1407
1407
|
function n() {
|
|
1408
|
-
|
|
1408
|
+
Mn.value = !Mn.value;
|
|
1409
1409
|
}
|
|
1410
1410
|
return {
|
|
1411
|
-
mobileOpen:
|
|
1411
|
+
mobileOpen: Mn,
|
|
1412
1412
|
open: e,
|
|
1413
1413
|
close: t,
|
|
1414
1414
|
toggle: n
|
|
@@ -1416,19 +1416,19 @@ function Mn() {
|
|
|
1416
1416
|
}
|
|
1417
1417
|
//#endregion
|
|
1418
1418
|
//#region src/composables/useSidebarCollapse.ts
|
|
1419
|
-
var Q = O(!1),
|
|
1420
|
-
function
|
|
1421
|
-
if (!
|
|
1422
|
-
let e = window.localStorage?.getItem(
|
|
1419
|
+
var Q = O(!1), Pn = !1, Fn = "mgv-sidebar-collapsed";
|
|
1420
|
+
function In(e) {
|
|
1421
|
+
if (!Pn && (Pn = !0, Fn = e, typeof window < "u")) {
|
|
1422
|
+
let e = window.localStorage?.getItem(Fn);
|
|
1423
1423
|
e && (Q.value = e === "true"), m(!0).run(() => {
|
|
1424
|
-
|
|
1425
|
-
window.localStorage?.setItem(
|
|
1424
|
+
ae(Q, (e) => {
|
|
1425
|
+
window.localStorage?.setItem(Fn, String(e));
|
|
1426
1426
|
});
|
|
1427
1427
|
});
|
|
1428
1428
|
}
|
|
1429
1429
|
}
|
|
1430
|
-
function
|
|
1431
|
-
|
|
1430
|
+
function Ln(e) {
|
|
1431
|
+
In(e?.storageKey ?? Fn);
|
|
1432
1432
|
function t() {
|
|
1433
1433
|
Q.value = !0;
|
|
1434
1434
|
}
|
|
@@ -1447,16 +1447,16 @@ function In(e) {
|
|
|
1447
1447
|
}
|
|
1448
1448
|
//#endregion
|
|
1449
1449
|
//#region src/composables/useNotifications.ts
|
|
1450
|
-
var $ = O([]),
|
|
1451
|
-
function
|
|
1450
|
+
var $ = O([]), Rn = O(!1), zn = i(() => $.value.filter((e) => !e.read).length);
|
|
1451
|
+
function Bn() {
|
|
1452
1452
|
function e() {
|
|
1453
|
-
|
|
1453
|
+
Rn.value = !0;
|
|
1454
1454
|
}
|
|
1455
1455
|
function t() {
|
|
1456
|
-
|
|
1456
|
+
Rn.value = !1;
|
|
1457
1457
|
}
|
|
1458
1458
|
function n() {
|
|
1459
|
-
|
|
1459
|
+
Rn.value = !Rn.value;
|
|
1460
1460
|
}
|
|
1461
1461
|
function r(e) {
|
|
1462
1462
|
$.value = e;
|
|
@@ -1484,8 +1484,8 @@ function zn() {
|
|
|
1484
1484
|
}
|
|
1485
1485
|
return {
|
|
1486
1486
|
notifications: $,
|
|
1487
|
-
unreadCount:
|
|
1488
|
-
open:
|
|
1487
|
+
unreadCount: zn,
|
|
1488
|
+
open: Rn,
|
|
1489
1489
|
openPanel: e,
|
|
1490
1490
|
closePanel: t,
|
|
1491
1491
|
togglePanel: n,
|
|
@@ -1499,22 +1499,22 @@ function zn() {
|
|
|
1499
1499
|
}
|
|
1500
1500
|
//#endregion
|
|
1501
1501
|
//#region src/components/BaseSidebar.vue?vue&type=script&setup=true&lang.ts
|
|
1502
|
-
var
|
|
1502
|
+
var Vn = ["aria-label", "aria-expanded"], Hn = { class: "flex flex-col h-full" }, Un = { class: "flex-1 overflow-y-auto px-3 space-y-6" }, Wn = { class: "space-y-0.5" }, Gn = [
|
|
1503
1503
|
"aria-current",
|
|
1504
1504
|
"title",
|
|
1505
1505
|
"onClick"
|
|
1506
|
-
],
|
|
1506
|
+
], Kn = ["aria-label"], qn = { class: "relative shrink-0" }, Jn = {
|
|
1507
1507
|
key: 0,
|
|
1508
1508
|
class: "absolute -top-1.5 -right-1.5 min-w-4 h-4 px-1 rounded-full bg-red-500 text-white text-[10px] font-semibold leading-4 text-center"
|
|
1509
|
-
},
|
|
1509
|
+
}, Yn = [
|
|
1510
1510
|
"title",
|
|
1511
1511
|
"aria-label",
|
|
1512
1512
|
"aria-pressed"
|
|
1513
|
-
],
|
|
1513
|
+
], Xn = [
|
|
1514
1514
|
"title",
|
|
1515
1515
|
"aria-label",
|
|
1516
1516
|
"aria-pressed"
|
|
1517
|
-
],
|
|
1517
|
+
], Zn = /*#__PURE__*/ ((e, t) => {
|
|
1518
1518
|
let n = e.__vccOpts || e;
|
|
1519
1519
|
for (let [e, r] of t) n[e] = r;
|
|
1520
1520
|
return n;
|
|
@@ -1539,8 +1539,8 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1539
1539
|
}
|
|
1540
1540
|
},
|
|
1541
1541
|
setup(t) {
|
|
1542
|
-
let n = t, r =
|
|
1543
|
-
|
|
1542
|
+
let n = t, r = Me(), l = je(), { isDark: u, toggleTheme: p } = U(), { mobileOpen: m, close: h, toggle: g } = Nn(), { collapsed: y, toggle: b } = Ln(), { unreadCount: x, togglePanel: S } = Bn(), C = i(() => n.collapsible && y.value), w = O(null), E = null;
|
|
1543
|
+
ae(m, async (e) => {
|
|
1544
1544
|
e ? (E = document.activeElement instanceof HTMLElement ? document.activeElement : null, await _(), w.value?.focus()) : (E?.focus(), E = null);
|
|
1545
1545
|
});
|
|
1546
1546
|
function D() {
|
|
@@ -1564,15 +1564,15 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1564
1564
|
class: v(["p-2 rounded-lg cursor-pointer transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", P(u) ? "text-gray-400 hover:bg-gray-800" : "text-gray-600 hover:bg-gray-100"]),
|
|
1565
1565
|
"aria-label": P(m) ? "Close navigation menu" : "Open navigation menu",
|
|
1566
1566
|
"aria-expanded": P(m)
|
|
1567
|
-
}, [P(m) ? (T(), a(P(
|
|
1567
|
+
}, [P(m) ? (T(), a(P(z), {
|
|
1568
1568
|
key: 1,
|
|
1569
1569
|
class: "w-6 h-6",
|
|
1570
1570
|
"aria-hidden": "true"
|
|
1571
|
-
})) : (T(), a(P(
|
|
1571
|
+
})) : (T(), a(P(ue), {
|
|
1572
1572
|
key: 0,
|
|
1573
1573
|
class: "w-6 h-6",
|
|
1574
1574
|
"aria-hidden": "true"
|
|
1575
|
-
}))], 10,
|
|
1575
|
+
}))], 10, Vn)], 2),
|
|
1576
1576
|
P(m) ? (T(), s("div", {
|
|
1577
1577
|
key: 0,
|
|
1578
1578
|
class: "mobile-overlay fixed inset-0 z-40 bg-black/50",
|
|
@@ -1587,7 +1587,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1587
1587
|
P(m) ? "translate-x-0 z-50" : "-translate-x-full max-lg:pointer-events-none lg:translate-x-0 z-50",
|
|
1588
1588
|
t.collapsible && P(y) ? "lg:w-16" : "lg:w-60"
|
|
1589
1589
|
]])
|
|
1590
|
-
}, [c("div",
|
|
1590
|
+
}, [c("div", Hn, [
|
|
1591
1591
|
c("div", { class: v(["px-5 pt-5 pb-4 flex items-center justify-center relative", { "lg:px-2": C.value }]) }, [c("button", {
|
|
1592
1592
|
type: "button",
|
|
1593
1593
|
onClick: D,
|
|
@@ -1600,17 +1600,17 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1600
1600
|
onClick: r[2] ||= (...e) => P(h) && P(h)(...e),
|
|
1601
1601
|
class: v(["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", P(u) ? "text-gray-400 hover:bg-gray-800" : "text-gray-500 hover:bg-gray-100"]),
|
|
1602
1602
|
"aria-label": "Close navigation menu"
|
|
1603
|
-
}, [f(P(
|
|
1603
|
+
}, [f(P(z), {
|
|
1604
1604
|
class: "w-5 h-5",
|
|
1605
1605
|
"aria-hidden": "true"
|
|
1606
1606
|
})], 2)], 2),
|
|
1607
|
-
c("nav",
|
|
1607
|
+
c("nav", Un, [(T(!0), s(e, null, k(t.sections, (t) => (T(), s("div", { key: t.title }, [c("p", { class: v(["px-2 mb-2 text-[10px] font-semibold uppercase tracking-wider text-gray-500", { "lg:hidden": C.value }]) }, N(t.title), 3), c("ul", Wn, [(T(!0), s(e, null, k(t.items, (e) => (T(), s("li", { key: e.name }, [c("button", {
|
|
1608
1608
|
type: "button",
|
|
1609
1609
|
"aria-current": j(e.name) ? "page" : void 0,
|
|
1610
1610
|
title: C.value ? e.label : void 0,
|
|
1611
1611
|
onClick: (t) => ee(e.name),
|
|
1612
1612
|
class: v(["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", [j(e.name) ? P(u) ? "bg-emerald-500/15 text-emerald-300" : "bg-emerald-50 text-emerald-700" : P(u) ? "text-gray-400 hover:text-gray-100 hover:bg-gray-800" : "text-gray-600 hover:text-gray-900 hover:bg-gray-100", { "lg:justify-center": C.value }]])
|
|
1613
|
-
}, [(T(), a(M(e.icon), { class: "w-[18px] h-[18px] shrink-0" })), c("span", { class: v({ "lg:hidden": C.value }) }, N(e.label), 3)], 10,
|
|
1613
|
+
}, [(T(), a(M(e.icon), { class: "w-[18px] h-[18px] shrink-0" })), c("span", { class: v({ "lg:hidden": C.value }) }, N(e.label), 3)], 10, Gn)]))), 128))])]))), 128))]),
|
|
1614
1614
|
c("div", { class: v(["px-4 py-4 border-t transition-colors space-y-3", P(u) ? "border-gray-800" : "border-gray-200"]) }, [
|
|
1615
1615
|
t.showNotifications ? (T(), s("button", {
|
|
1616
1616
|
key: 0,
|
|
@@ -1619,10 +1619,10 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1619
1619
|
title: "Notifications",
|
|
1620
1620
|
"aria-label": P(x) > 0 ? `Notifications, ${P(x)} unread` : "Notifications",
|
|
1621
1621
|
class: v(["relative flex items-center gap-3 w-full px-3 py-2.5 rounded-lg text-sm font-medium transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", [P(u) ? "text-gray-400 hover:text-gray-100 hover:bg-gray-800" : "text-gray-600 hover:text-gray-900 hover:bg-gray-100", { "lg:justify-center": C.value }]])
|
|
1622
|
-
}, [c("span",
|
|
1622
|
+
}, [c("span", qn, [f(P(de), {
|
|
1623
1623
|
class: "w-[18px] h-[18px]",
|
|
1624
1624
|
"aria-hidden": "true"
|
|
1625
|
-
}), P(x) > 0 ? (T(), s("span",
|
|
1625
|
+
}), P(x) > 0 ? (T(), s("span", Jn, N(P(x) > 99 ? "99+" : P(x)), 1)) : o("", !0)]), c("span", { class: v({ "lg:hidden": C.value }) }, "Notifications", 2)], 10, Kn)) : o("", !0),
|
|
1626
1626
|
t.showThemeToggle ? (T(), s("button", {
|
|
1627
1627
|
key: 1,
|
|
1628
1628
|
type: "button",
|
|
@@ -1632,13 +1632,13 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1632
1632
|
"aria-pressed": P(u),
|
|
1633
1633
|
class: v(["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", [P(u) ? "text-gray-400 hover:text-gray-100 hover:bg-gray-800" : "text-gray-600 hover:text-gray-900 hover:bg-gray-100", { "lg:justify-center": C.value }]])
|
|
1634
1634
|
}, [
|
|
1635
|
-
(T(), a(M(P(u) ? P(
|
|
1635
|
+
(T(), a(M(P(u) ? P(Oe) : P(De)), {
|
|
1636
1636
|
class: v(["hidden w-[18px] h-[18px] shrink-0", { "lg:block": C.value }]),
|
|
1637
1637
|
"aria-hidden": "true"
|
|
1638
1638
|
}, null, 8, ["class"])),
|
|
1639
1639
|
c("span", { class: v({ "lg:hidden": C.value }) }, N(P(u) ? "Switch to light" : "Switch to dark"), 3),
|
|
1640
1640
|
c("span", { class: v(["ml-auto relative w-9 h-5 rounded-full transition-colors", [P(u) ? "bg-emerald-600" : "bg-gray-300", { "lg:hidden": C.value }]]) }, [c("span", { class: v(["absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white shadow-sm transition-transform duration-300", P(u) ? "translate-x-4" : "translate-x-0"]) }, null, 2)], 2)
|
|
1641
|
-
], 10,
|
|
1641
|
+
], 10, Yn)) : o("", !0),
|
|
1642
1642
|
t.collapsible ? (T(), s("button", {
|
|
1643
1643
|
key: 2,
|
|
1644
1644
|
type: "button",
|
|
@@ -1647,10 +1647,10 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1647
1647
|
"aria-label": P(y) ? "Expand sidebar" : "Collapse sidebar",
|
|
1648
1648
|
"aria-pressed": P(y),
|
|
1649
1649
|
class: v(["hidden lg: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", [P(u) ? "text-gray-400 hover:text-gray-100 hover:bg-gray-800" : "text-gray-600 hover:text-gray-900 hover:bg-gray-100", { "lg:justify-center": C.value }]])
|
|
1650
|
-
}, [(T(), a(M(P(y) ? P(
|
|
1650
|
+
}, [(T(), a(M(P(y) ? P(he) : P(me)), {
|
|
1651
1651
|
class: "w-[18px] h-[18px] shrink-0",
|
|
1652
1652
|
"aria-hidden": "true"
|
|
1653
|
-
})), c("span", { class: v({ "lg:hidden": C.value }) }, "Collapse", 2)], 10,
|
|
1653
|
+
})), c("span", { class: v({ "lg:hidden": C.value }) }, "Collapse", 2)], 10, Xn)) : o("", !0),
|
|
1654
1654
|
c("div", { class: v({ "lg:hidden": C.value }) }, [A(n.$slots, "status", {}, void 0, !0)], 2),
|
|
1655
1655
|
c("div", { class: v({ "lg:hidden": C.value }) }, [A(n.$slots, "footer", {}, () => [t.appName || t.version ? (T(), s("div", {
|
|
1656
1656
|
key: 0,
|
|
@@ -1664,26 +1664,26 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1664
1664
|
])], 2)
|
|
1665
1665
|
]));
|
|
1666
1666
|
}
|
|
1667
|
-
}), [["__scopeId", "data-v-bfce9dd7"]]),
|
|
1667
|
+
}), [["__scopeId", "data-v-bfce9dd7"]]), Qn = {
|
|
1668
1668
|
key: 1,
|
|
1669
1669
|
class: "mt-4 flex justify-center py-6"
|
|
1670
|
-
},
|
|
1670
|
+
}, $n = {
|
|
1671
1671
|
key: 2,
|
|
1672
1672
|
class: "mt-4 text-sm text-red-500",
|
|
1673
1673
|
role: "alert"
|
|
1674
|
-
},
|
|
1674
|
+
}, er = {
|
|
1675
1675
|
key: 3,
|
|
1676
1676
|
class: "mt-4"
|
|
1677
|
-
},
|
|
1677
|
+
}, tr = { class: "relative" }, nr = ["placeholder"], rr = {
|
|
1678
1678
|
key: 4,
|
|
1679
1679
|
class: "mt-3 max-h-64 overflow-y-auto"
|
|
1680
|
-
},
|
|
1680
|
+
}, ir = ["aria-pressed", "onClick"], ar = { class: "flex-1 min-w-0" }, or = {
|
|
1681
1681
|
key: 0,
|
|
1682
1682
|
class: "text-center py-6"
|
|
1683
|
-
},
|
|
1683
|
+
}, sr = {
|
|
1684
1684
|
key: 1,
|
|
1685
1685
|
class: "text-center py-6"
|
|
1686
|
-
},
|
|
1686
|
+
}, cr = ["disabled"], lr = ["disabled"], ur = /* @__PURE__ */ p({
|
|
1687
1687
|
__name: "BaseEntityPickerModal",
|
|
1688
1688
|
props: {
|
|
1689
1689
|
title: {},
|
|
@@ -1705,7 +1705,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1705
1705
|
},
|
|
1706
1706
|
emits: ["confirm", "cancel"],
|
|
1707
1707
|
setup(t, { emit: n }) {
|
|
1708
|
-
let r = t, u = n, { isDark: d } =
|
|
1708
|
+
let r = t, u = n, { isDark: d } = U(), p = Z(), m = O([]), h = O(!1), g = O(""), y = O(null), b = O(""), x = O(null), C = i(() => {
|
|
1709
1709
|
let e = r.loader ? m.value : r.items;
|
|
1710
1710
|
return r.excludeId ? e.filter((e) => e.id !== r.excludeId) : e;
|
|
1711
1711
|
}), w = i(() => C.value.filter((e) => e.label.toLowerCase().includes(b.value.toLowerCase()))), E = {
|
|
@@ -1820,51 +1820,51 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1820
1820
|
function ee() {
|
|
1821
1821
|
r.submitting || u("cancel");
|
|
1822
1822
|
}
|
|
1823
|
-
return (n, r) => (T(), a(
|
|
1823
|
+
return (n, r) => (T(), a(_n, {
|
|
1824
1824
|
title: t.title,
|
|
1825
|
-
icon: P(
|
|
1825
|
+
icon: P(Ce),
|
|
1826
1826
|
"icon-bg-class": j.value.iconBg,
|
|
1827
1827
|
"icon-class": j.value.iconText,
|
|
1828
1828
|
"manual-close": t.submitting,
|
|
1829
1829
|
onCancel: ee
|
|
1830
1830
|
}, l({
|
|
1831
|
-
footer:
|
|
1831
|
+
footer: I(() => [c("button", {
|
|
1832
1832
|
type: "button",
|
|
1833
1833
|
disabled: t.submitting,
|
|
1834
1834
|
class: v(["inline-flex items-center justify-center px-4 py-2 border rounded-md shadow-sm text-sm font-medium transition-colors duration-150 cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", P(p).ghostButton]),
|
|
1835
1835
|
onClick: ee
|
|
1836
|
-
}, N(t.cancelText), 11,
|
|
1836
|
+
}, N(t.cancelText), 11, cr), c("button", {
|
|
1837
1837
|
type: "button",
|
|
1838
1838
|
disabled: !y.value || t.submitting,
|
|
1839
1839
|
class: v(["inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 focus-visible:ring-offset-2", !y.value || t.submitting ? j.value.confirmDisabled : j.value.confirmActive]),
|
|
1840
1840
|
onClick: M
|
|
1841
|
-
}, N(t.submitting ? t.submittingText : t.confirmText), 11,
|
|
1842
|
-
default:
|
|
1841
|
+
}, N(t.submitting ? t.submittingText : t.confirmText), 11, lr)]),
|
|
1842
|
+
default: I(() => [
|
|
1843
1843
|
t.message ? (T(), s("p", {
|
|
1844
1844
|
key: 0,
|
|
1845
1845
|
class: v(["text-sm", P(d) ? "text-gray-300" : "text-gray-600"])
|
|
1846
1846
|
}, N(t.message), 3)) : o("", !0),
|
|
1847
|
-
h.value ? (T(), s("div",
|
|
1848
|
-
!h.value && !g.value && C.value.length > 0 ? (T(), s("div",
|
|
1847
|
+
h.value ? (T(), s("div", Qn, [f(Lt, { color: "emerald" })])) : g.value ? (T(), s("div", $n, N(g.value), 1)) : o("", !0),
|
|
1848
|
+
!h.value && !g.value && C.value.length > 0 ? (T(), s("div", er, [c("div", tr, [f(P(Te), {
|
|
1849
1849
|
class: v(["absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4", P(p).dimText]),
|
|
1850
1850
|
"aria-hidden": "true"
|
|
1851
|
-
}, null, 8, ["class"]),
|
|
1851
|
+
}, null, 8, ["class"]), L(c("input", {
|
|
1852
1852
|
ref_key: "searchInputRef",
|
|
1853
1853
|
ref: x,
|
|
1854
1854
|
"onUpdate:modelValue": r[0] ||= (e) => b.value = e,
|
|
1855
1855
|
type: "text",
|
|
1856
1856
|
placeholder: t.searchPlaceholder,
|
|
1857
1857
|
class: v(["w-full pl-9 pr-3 py-2 text-sm rounded-md border outline-none transition-colors", [P(d) ? "bg-gray-800 border-gray-600 text-gray-200 placeholder-gray-500" : "bg-white border-gray-300 text-gray-700 placeholder-gray-400", j.value.inputFocus]])
|
|
1858
|
-
}, null, 10,
|
|
1859
|
-
!h.value && !g.value ? (T(), s("div",
|
|
1858
|
+
}, null, 10, nr), [[re, b.value]])])])) : o("", !0),
|
|
1859
|
+
!h.value && !g.value ? (T(), s("div", rr, [(T(!0), s(e, null, k(w.value, (e) => (T(), s("button", {
|
|
1860
1860
|
key: e.id,
|
|
1861
1861
|
type: "button",
|
|
1862
1862
|
"aria-pressed": y.value === e.id,
|
|
1863
1863
|
class: v(["w-full text-left flex items-center gap-3 px-3 py-2.5 rounded-lg cursor-pointer transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-emerald-500", [y.value === e.id ? j.value.selectedRow : P(d) ? "hover:bg-gray-800 border border-transparent" : "hover:bg-gray-50 border border-transparent"]]),
|
|
1864
1864
|
onClick: (t) => y.value = e.id
|
|
1865
1865
|
}, [
|
|
1866
|
-
f(P(
|
|
1867
|
-
c("div",
|
|
1866
|
+
f(P(Ce), { class: v(["w-5 h-5 flex-shrink-0", P(p).dimText]) }, null, 8, ["class"]),
|
|
1867
|
+
c("div", ar, [c("p", { class: v(["text-sm font-medium truncate", P(p).bodyText]) }, N(e.label), 3)]),
|
|
1868
1868
|
y.value === e.id ? (T(), s("div", {
|
|
1869
1869
|
key: 0,
|
|
1870
1870
|
class: v(["w-5 h-5 rounded-full flex items-center justify-center", j.value.checkBg])
|
|
@@ -1880,12 +1880,12 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1880
1880
|
"stroke-linejoin": "round",
|
|
1881
1881
|
d: "M5 13l4 4L19 7"
|
|
1882
1882
|
})], -1)]], 2)) : o("", !0)
|
|
1883
|
-
], 10,
|
|
1883
|
+
], 10, ir))), 128)), C.value.length === 0 ? (T(), s("div", or, [c("p", { class: v(["text-sm", P(p).dimText]) }, N(t.emptyMessage), 3)])) : w.value.length === 0 ? (T(), s("div", sr, [c("p", { class: v(["text-sm", P(p).dimText]) }, N(t.noMatchMessage), 3)])) : o("", !0)])) : o("", !0)
|
|
1884
1884
|
]),
|
|
1885
1885
|
_: 2
|
|
1886
1886
|
}, [n.$slots.icon ? {
|
|
1887
1887
|
name: "icon",
|
|
1888
|
-
fn:
|
|
1888
|
+
fn: I(() => [A(n.$slots, "icon")]),
|
|
1889
1889
|
key: "0"
|
|
1890
1890
|
} : void 0]), 1032, [
|
|
1891
1891
|
"title",
|
|
@@ -1895,10 +1895,10 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1895
1895
|
"manual-close"
|
|
1896
1896
|
]));
|
|
1897
1897
|
}
|
|
1898
|
-
}),
|
|
1898
|
+
}), dr = {
|
|
1899
1899
|
href: "#main-content",
|
|
1900
1900
|
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"
|
|
1901
|
-
},
|
|
1901
|
+
}, fr = ["inert"], pr = /* @__PURE__ */ p({
|
|
1902
1902
|
__name: "BaseAppLayout",
|
|
1903
1903
|
props: {
|
|
1904
1904
|
showSidebar: {
|
|
@@ -1908,23 +1908,23 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1908
1908
|
skipLinkLabel: { default: "Skip to main content" }
|
|
1909
1909
|
},
|
|
1910
1910
|
setup(e) {
|
|
1911
|
-
let t = e, { isDark: n } =
|
|
1911
|
+
let t = e, { isDark: n } = U(), { mobileOpen: r } = Nn(), { collapsed: a } = Ln(), l = i(() => t.showSidebar);
|
|
1912
1912
|
return (t, i) => (T(), s("div", { class: v(["min-h-screen transition-colors duration-300", P(n) ? "bg-gray-950 text-gray-100" : "bg-gray-50 text-gray-800"]) }, [
|
|
1913
|
-
c("a",
|
|
1913
|
+
c("a", dr, N(e.skipLinkLabel), 1),
|
|
1914
1914
|
l.value ? A(t.$slots, "sidebar", {}, void 0, void 0, 0) : o("", !0),
|
|
1915
1915
|
c("main", {
|
|
1916
1916
|
id: "main-content",
|
|
1917
1917
|
tabindex: "-1",
|
|
1918
1918
|
inert: l.value && P(r) ? !0 : void 0,
|
|
1919
1919
|
class: v(["transition-all duration-300", l.value ? P(a) ? "pt-14 lg:pt-0 lg:ml-16" : "pt-14 lg:pt-0 lg:ml-60" : ""])
|
|
1920
|
-
}, [A(t.$slots, "default")], 10,
|
|
1920
|
+
}, [A(t.$slots, "default")], 10, fr)
|
|
1921
1921
|
], 2));
|
|
1922
1922
|
}
|
|
1923
|
-
}),
|
|
1923
|
+
}), mr = { class: "flex items-center gap-3 min-w-0" }, hr = {
|
|
1924
1924
|
key: 0,
|
|
1925
1925
|
class: "absolute left-0 top-[0.14em] h-[1.1em] w-1 rounded-full bg-gradient-to-b from-emerald-400 to-emerald-600",
|
|
1926
1926
|
"aria-hidden": "true"
|
|
1927
|
-
},
|
|
1927
|
+
}, gr = { class: "flex items-center gap-2" }, _r = /* @__PURE__ */ p({
|
|
1928
1928
|
__name: "BasePageHeader",
|
|
1929
1929
|
props: {
|
|
1930
1930
|
title: {},
|
|
@@ -1939,7 +1939,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1939
1939
|
}
|
|
1940
1940
|
},
|
|
1941
1941
|
setup(e) {
|
|
1942
|
-
let t = e, { isDark: n } =
|
|
1942
|
+
let t = e, { isDark: n } = U(), r = Z(), a = i(() => {
|
|
1943
1943
|
let e = {
|
|
1944
1944
|
emerald: {
|
|
1945
1945
|
dark: "bg-emerald-500/10",
|
|
@@ -1980,19 +1980,19 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
1980
1980
|
}[t.iconColor];
|
|
1981
1981
|
return n.value ? e.dark : e.light;
|
|
1982
1982
|
});
|
|
1983
|
-
return (t, n) => (T(), s("header", { class: v(e.maxWidthClass ? ["mx-auto px-4 sm:px-6", e.maxWidthClass] : void 0) }, [c("div", { class: v(["flex flex-wrap justify-between gap-3", [e.align === "end" ? "items-end" : "items-center", e.marginClass]]) }, [c("div",
|
|
1983
|
+
return (t, n) => (T(), s("header", { class: v(e.maxWidthClass ? ["mx-auto px-4 sm:px-6", e.maxWidthClass] : void 0) }, [c("div", { class: v(["flex flex-wrap justify-between gap-3", [e.align === "end" ? "items-end" : "items-center", e.marginClass]]) }, [c("div", mr, [t.$slots.icon ? (T(), s("div", {
|
|
1984
1984
|
key: 0,
|
|
1985
1985
|
class: v(["w-10 h-10 rounded-lg flex items-center justify-center", a.value])
|
|
1986
|
-
}, [A(t.$slots, "icon", { iconClass: l.value })], 2)) : o("", !0), c("div", null, [c("h1", { class: v(["text-2xl font-bold", [P(r).primaryTextSoft, e.accent ? "relative pl-3.5 tracking-tight" : ""]]) }, [e.accent ? (T(), s("span",
|
|
1986
|
+
}, [A(t.$slots, "icon", { iconClass: l.value })], 2)) : o("", !0), c("div", null, [c("h1", { class: v(["text-2xl font-bold", [P(r).primaryTextSoft, e.accent ? "relative pl-3.5 tracking-tight" : ""]]) }, [e.accent ? (T(), s("span", hr)) : o("", !0), d(" " + N(e.title), 1)], 2), e.subtitle || t.$slots.subtitle ? (T(), s("p", {
|
|
1987
1987
|
key: 0,
|
|
1988
1988
|
class: v(["max-w-[72ch] text-sm", P(r).dimTextAlt])
|
|
1989
|
-
}, [A(t.$slots, "subtitle", {}, () => [d(N(e.subtitle), 1)])], 2)) : o("", !0)])]), c("div",
|
|
1989
|
+
}, [A(t.$slots, "subtitle", {}, () => [d(N(e.subtitle), 1)])], 2)) : o("", !0)])]), c("div", gr, [A(t.$slots, "actions")])], 2)], 2));
|
|
1990
1990
|
}
|
|
1991
|
-
}),
|
|
1991
|
+
}), vr = [
|
|
1992
1992
|
"type",
|
|
1993
1993
|
"disabled",
|
|
1994
1994
|
"title"
|
|
1995
|
-
],
|
|
1995
|
+
], yr = { key: 0 }, br = /* @__PURE__ */ p({
|
|
1996
1996
|
__name: "BaseToolbarButton",
|
|
1997
1997
|
props: {
|
|
1998
1998
|
label: { default: "" },
|
|
@@ -2006,7 +2006,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2006
2006
|
},
|
|
2007
2007
|
emits: ["click"],
|
|
2008
2008
|
setup(e) {
|
|
2009
|
-
let t = e, { isDark: n } =
|
|
2009
|
+
let t = e, { isDark: n } = U(), r = {
|
|
2010
2010
|
neutral: "px-3 py-2 rounded-lg font-medium disabled:opacity-50",
|
|
2011
2011
|
danger: "px-3 py-2 rounded-lg font-medium disabled:opacity-50",
|
|
2012
2012
|
ghost: "h-9 px-4 rounded-md font-semibold disabled:opacity-40 disabled:hover:bg-slate-50 dark:disabled:hover:bg-slate-900"
|
|
@@ -2033,14 +2033,14 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2033
2033
|
title: e.title,
|
|
2034
2034
|
class: v(["inline-flex shrink-0 items-center gap-2 text-sm border transition-colors cursor-pointer disabled:cursor-not-allowed whitespace-nowrap focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", a.value]),
|
|
2035
2035
|
onClick: n[0] ||= (e) => t.$emit("click", e)
|
|
2036
|
-
}, [A(t.$slots, "icon", { iconClass: "w-4 h-4" }), e.label ? (T(), s("span",
|
|
2036
|
+
}, [A(t.$slots, "icon", { iconClass: "w-4 h-4" }), e.label ? (T(), s("span", yr, N(e.label), 1)) : o("", !0)], 10, vr));
|
|
2037
2037
|
}
|
|
2038
|
-
}),
|
|
2038
|
+
}), xr = [
|
|
2039
2039
|
"type",
|
|
2040
2040
|
"disabled",
|
|
2041
2041
|
"title",
|
|
2042
2042
|
"aria-label"
|
|
2043
|
-
],
|
|
2043
|
+
], Sr = { key: 0 }, Cr = /* @__PURE__ */ p({
|
|
2044
2044
|
__name: "BaseActionButton",
|
|
2045
2045
|
props: {
|
|
2046
2046
|
label: { default: "" },
|
|
@@ -2059,7 +2059,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2059
2059
|
},
|
|
2060
2060
|
emits: ["click"],
|
|
2061
2061
|
setup(e) {
|
|
2062
|
-
let t = e, { isDark: n } =
|
|
2062
|
+
let t = e, { isDark: n } = U(), r = i(() => {
|
|
2063
2063
|
let e = {
|
|
2064
2064
|
emerald: {
|
|
2065
2065
|
dark: "text-emerald-400 hover:bg-emerald-500/10",
|
|
@@ -2139,9 +2139,9 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2139
2139
|
"aria-label": e.ariaLabel,
|
|
2140
2140
|
class: v(["inline-flex items-center justify-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-current", [e.fullWidth ? "flex-1" : "", c.value]]),
|
|
2141
2141
|
onClick: n[0] ||= (e) => t.$emit("click", e)
|
|
2142
|
-
}, [A(t.$slots, "icon", { iconClass: "w-4 h-4" }), e.label ? (T(), s("span",
|
|
2142
|
+
}, [A(t.$slots, "icon", { iconClass: "w-4 h-4" }), e.label ? (T(), s("span", Sr, N(e.label), 1)) : o("", !0)], 10, xr));
|
|
2143
2143
|
}
|
|
2144
|
-
}),
|
|
2144
|
+
}), wr = ["title", "aria-label"], Tr = /* @__PURE__ */ p({
|
|
2145
2145
|
__name: "BaseCopyButton",
|
|
2146
2146
|
props: {
|
|
2147
2147
|
text: {},
|
|
@@ -2152,7 +2152,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2152
2152
|
},
|
|
2153
2153
|
emits: ["copied", "error"],
|
|
2154
2154
|
setup(e, { emit: t }) {
|
|
2155
|
-
let n = e, r = t, { isDark: o } =
|
|
2155
|
+
let n = e, r = t, { isDark: o } = U(), c = O(!1), l = null, u = i(() => c.value ? "Copied!" : n.label ? `Copy ${n.label}` : "Copy"), d = i(() => n.label ? `Copy ${n.label}` : "Copy"), f = i(() => n.variant === "bordered" ? `inline-flex items-center justify-center w-9 h-9 rounded-lg border transition-colors cursor-pointer shrink-0 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 ${c.value ? o.value ? "border-emerald-500/40 bg-emerald-500/10 text-emerald-400" : "border-emerald-300 bg-emerald-50 text-emerald-600" : o.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 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 ${o.value ? "text-gray-400 hover:text-emerald-300 hover:bg-emerald-500/10" : "text-gray-500 hover:text-emerald-600 hover:bg-emerald-50"}`);
|
|
2156
2156
|
async function p(e) {
|
|
2157
2157
|
try {
|
|
2158
2158
|
if (navigator.clipboard?.writeText) {
|
|
@@ -2182,28 +2182,28 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2182
2182
|
"aria-label": d.value,
|
|
2183
2183
|
class: v(f.value),
|
|
2184
2184
|
onClick: m
|
|
2185
|
-
}, [c.value ? (T(), a(P(
|
|
2185
|
+
}, [c.value ? (T(), a(P(ve), {
|
|
2186
2186
|
key: 0,
|
|
2187
2187
|
class: v(e.iconClass),
|
|
2188
2188
|
"aria-hidden": "true"
|
|
2189
|
-
}, null, 8, ["class"])) : (T(), a(P(
|
|
2189
|
+
}, null, 8, ["class"])) : (T(), a(P(ye), {
|
|
2190
2190
|
key: 1,
|
|
2191
2191
|
class: v(e.iconClass),
|
|
2192
2192
|
"aria-hidden": "true"
|
|
2193
|
-
}, null, 8, ["class"]))], 10,
|
|
2193
|
+
}, null, 8, ["class"]))], 10, wr));
|
|
2194
2194
|
}
|
|
2195
|
-
}),
|
|
2195
|
+
}), Er = ["disabled", "aria-busy"], Dr = {
|
|
2196
2196
|
key: 0,
|
|
2197
2197
|
class: "w-5 h-5 animate-spin shrink-0",
|
|
2198
2198
|
viewBox: "0 0 24 24",
|
|
2199
2199
|
fill: "none",
|
|
2200
2200
|
"aria-hidden": "true"
|
|
2201
|
-
},
|
|
2201
|
+
}, Or = {
|
|
2202
2202
|
key: 1,
|
|
2203
2203
|
class: "w-5 h-5 shrink-0",
|
|
2204
2204
|
viewBox: "0 0 48 48",
|
|
2205
2205
|
"aria-hidden": "true"
|
|
2206
|
-
},
|
|
2206
|
+
}, kr = /* @__PURE__ */ p({
|
|
2207
2207
|
__name: "BaseGoogleSignInButton",
|
|
2208
2208
|
props: {
|
|
2209
2209
|
label: { default: "Sign in with Google" },
|
|
@@ -2222,7 +2222,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2222
2222
|
},
|
|
2223
2223
|
emits: ["click"],
|
|
2224
2224
|
setup(e, { emit: t }) {
|
|
2225
|
-
let n = e, r = t, { isDark: a } =
|
|
2225
|
+
let n = e, r = t, { isDark: a } = U(), o = i(() => n.disabled || n.loading);
|
|
2226
2226
|
function l() {
|
|
2227
2227
|
o.value || r("click");
|
|
2228
2228
|
}
|
|
@@ -2232,7 +2232,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2232
2232
|
"aria-busy": e.loading,
|
|
2233
2233
|
onClick: l,
|
|
2234
2234
|
class: v(["inline-flex items-center justify-center gap-3 h-11 px-4 rounded-lg border text-sm font-medium transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 disabled:opacity-60 disabled:cursor-not-allowed", [e.block ? "w-full" : "", P(a) ? "bg-gray-900 border-gray-700 text-gray-100 hover:bg-gray-800" : "bg-white border-gray-300 text-gray-700 hover:bg-gray-50"]])
|
|
2235
|
-
}, [e.loading ? (T(), s("svg",
|
|
2235
|
+
}, [e.loading ? (T(), s("svg", Dr, [...n[0] ||= [c("circle", {
|
|
2236
2236
|
class: "opacity-25",
|
|
2237
2237
|
cx: "12",
|
|
2238
2238
|
cy: "12",
|
|
@@ -2243,18 +2243,18 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2243
2243
|
class: "opacity-75",
|
|
2244
2244
|
fill: "currentColor",
|
|
2245
2245
|
d: "M4 12a8 8 0 0 1 8-8V0C5.4 0 0 5.4 0 12h4z"
|
|
2246
|
-
}, null, -1)]])) : (T(), s("svg",
|
|
2246
|
+
}, null, -1)]])) : (T(), s("svg", Or, [...n[1] ||= [u("<path fill=\"#EA4335\" d=\"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z\"></path><path fill=\"#4285F4\" d=\"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z\"></path><path fill=\"#FBBC05\" d=\"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z\"></path><path fill=\"#34A853\" d=\"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z\"></path><path fill=\"none\" d=\"M0 0h48v48H0z\"></path>", 5)]])), c("span", null, N(e.label), 1)], 10, Er));
|
|
2247
2247
|
}
|
|
2248
|
-
}),
|
|
2248
|
+
}), Ar = {
|
|
2249
2249
|
key: 0,
|
|
2250
2250
|
class: "flex justify-center mb-6"
|
|
2251
|
-
},
|
|
2251
|
+
}, jr = { class: "mb-6 text-center" }, Mr = { class: "flex items-center gap-3 my-5" }, Nr = ["disabled"], Pr = { class: "flex items-center justify-between mb-1.5" }, Fr = { class: "relative" }, Ir = ["type", "disabled"], Lr = ["aria-label", "aria-pressed"], Rr = ["disabled"], zr = ["disabled", "aria-busy"], Br = {
|
|
2252
2252
|
key: 0,
|
|
2253
2253
|
class: "w-4 h-4 animate-spin",
|
|
2254
2254
|
viewBox: "0 0 24 24",
|
|
2255
2255
|
fill: "none",
|
|
2256
2256
|
"aria-hidden": "true"
|
|
2257
|
-
},
|
|
2257
|
+
}, Vr = /* @__PURE__ */ p({
|
|
2258
2258
|
__name: "BaseLoginForm",
|
|
2259
2259
|
props: {
|
|
2260
2260
|
title: { default: "Sign in" },
|
|
@@ -2280,7 +2280,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2280
2280
|
},
|
|
2281
2281
|
emits: ["submit", "google-sign-in"],
|
|
2282
2282
|
setup(t, { emit: n }) {
|
|
2283
|
-
let r = t, a = n, { isDark: l } =
|
|
2283
|
+
let r = t, a = n, { isDark: l } = U(), u = Z(), p = O(""), m = O(""), h = O(!1), g = O(!1), _ = i(() => r.loading || r.googleLoading);
|
|
2284
2284
|
function y() {
|
|
2285
2285
|
_.value || a("submit", {
|
|
2286
2286
|
email: p.value,
|
|
@@ -2289,8 +2289,8 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2289
2289
|
});
|
|
2290
2290
|
}
|
|
2291
2291
|
return (n, r) => (T(), s("div", { class: v(["w-full max-w-sm mx-auto rounded-xl border shadow-sm p-6 sm:p-8", P(u).card]) }, [
|
|
2292
|
-
n.$slots.logo ? (T(), s("div",
|
|
2293
|
-
c("div",
|
|
2292
|
+
n.$slots.logo ? (T(), s("div", Ar, [A(n.$slots, "logo")])) : o("", !0),
|
|
2293
|
+
c("div", jr, [c("h1", { class: v(["text-xl font-semibold", P(u).primaryText]) }, N(t.title), 3), t.subtitle ? (T(), s("p", {
|
|
2294
2294
|
key: 0,
|
|
2295
2295
|
class: v(["mt-1 text-sm", P(u).mutedText])
|
|
2296
2296
|
}, N(t.subtitle), 3)) : o("", !0)]),
|
|
@@ -2299,23 +2299,23 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2299
2299
|
role: "alert",
|
|
2300
2300
|
class: v(["mb-4 rounded-lg border px-3 py-2 text-sm", P(l) ? "bg-red-500/10 border-red-500/30 text-red-300" : "bg-red-50 border-red-200 text-red-700"])
|
|
2301
2301
|
}, N(t.error), 3)) : o("", !0),
|
|
2302
|
-
t.showGoogle ? (T(), s(e, { key: 2 }, [f(
|
|
2302
|
+
t.showGoogle ? (T(), s(e, { key: 2 }, [f(kr, {
|
|
2303
2303
|
loading: t.googleLoading,
|
|
2304
2304
|
disabled: t.loading,
|
|
2305
2305
|
onClick: r[0] ||= (e) => a("google-sign-in")
|
|
2306
|
-
}, null, 8, ["loading", "disabled"]), c("div",
|
|
2306
|
+
}, null, 8, ["loading", "disabled"]), c("div", Mr, [
|
|
2307
2307
|
c("span", { class: v(["h-px flex-1", P(l) ? "bg-gray-700" : "bg-gray-200"]) }, null, 2),
|
|
2308
2308
|
c("span", { class: v(["text-xs uppercase tracking-wider", P(u).dimTextAlt]) }, "or", 2),
|
|
2309
2309
|
c("span", { class: v(["h-px flex-1", P(l) ? "bg-gray-700" : "bg-gray-200"]) }, null, 2)
|
|
2310
2310
|
])], 64)) : o("", !0),
|
|
2311
2311
|
c("form", {
|
|
2312
2312
|
class: "space-y-4",
|
|
2313
|
-
onSubmit:
|
|
2313
|
+
onSubmit: R(y, ["prevent"])
|
|
2314
2314
|
}, [
|
|
2315
2315
|
c("div", null, [c("label", {
|
|
2316
2316
|
for: "login-email",
|
|
2317
2317
|
class: v(["block mb-1.5 text-sm font-medium", P(u).label])
|
|
2318
|
-
}, " Email ", 2),
|
|
2318
|
+
}, " Email ", 2), L(c("input", {
|
|
2319
2319
|
id: "login-email",
|
|
2320
2320
|
"onUpdate:modelValue": r[1] ||= (e) => p.value = e,
|
|
2321
2321
|
type: "email",
|
|
@@ -2325,11 +2325,11 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2325
2325
|
disabled: _.value,
|
|
2326
2326
|
placeholder: "you@example.com",
|
|
2327
2327
|
class: v(["w-full h-11 px-3 rounded-lg border text-sm transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 disabled:opacity-60", P(u).inputWithPlaceholder])
|
|
2328
|
-
}, null, 10,
|
|
2329
|
-
c("div", null, [c("div",
|
|
2328
|
+
}, null, 10, Nr), [[re, p.value]])]),
|
|
2329
|
+
c("div", null, [c("div", Pr, [c("label", {
|
|
2330
2330
|
for: "login-password",
|
|
2331
2331
|
class: v(["block text-sm font-medium", P(u).label])
|
|
2332
|
-
}, " Password ", 2), A(n.$slots, "forgot")]), c("div",
|
|
2332
|
+
}, " Password ", 2), A(n.$slots, "forgot")]), c("div", Fr, [L(c("input", {
|
|
2333
2333
|
id: "login-password",
|
|
2334
2334
|
"onUpdate:modelValue": r[2] ||= (e) => m.value = e,
|
|
2335
2335
|
type: g.value ? "text" : "password",
|
|
@@ -2339,28 +2339,28 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2339
2339
|
disabled: _.value,
|
|
2340
2340
|
placeholder: "••••••••",
|
|
2341
2341
|
class: v(["w-full h-11 pl-3 pr-16 rounded-lg border text-sm transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 disabled:opacity-60", P(u).inputWithPlaceholder])
|
|
2342
|
-
}, null, 10,
|
|
2342
|
+
}, null, 10, Ir), [[ne, m.value]]), c("button", {
|
|
2343
2343
|
type: "button",
|
|
2344
2344
|
onClick: r[3] ||= (e) => g.value = !g.value,
|
|
2345
2345
|
"aria-label": g.value ? "Hide password" : "Show password",
|
|
2346
2346
|
"aria-pressed": g.value,
|
|
2347
2347
|
class: v(["absolute inset-y-0 right-0 px-3 text-xs font-medium cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 rounded-r-lg", P(u).mutedText])
|
|
2348
|
-
}, N(g.value ? "Hide" : "Show"), 11,
|
|
2348
|
+
}, N(g.value ? "Hide" : "Show"), 11, Lr)])]),
|
|
2349
2349
|
t.showRemember ? (T(), s("label", {
|
|
2350
2350
|
key: 0,
|
|
2351
2351
|
class: v(["flex items-center gap-2 text-sm cursor-pointer select-none", P(u).bodyText])
|
|
2352
|
-
}, [
|
|
2352
|
+
}, [L(c("input", {
|
|
2353
2353
|
"onUpdate:modelValue": r[4] ||= (e) => h.value = e,
|
|
2354
2354
|
type: "checkbox",
|
|
2355
2355
|
disabled: _.value,
|
|
2356
2356
|
class: "w-4 h-4 rounded border-gray-300 text-emerald-600 focus:ring-emerald-500"
|
|
2357
|
-
}, null, 8,
|
|
2357
|
+
}, null, 8, Rr), [[te, h.value]]), r[5] ||= d(" Remember me ", -1)], 2)) : o("", !0),
|
|
2358
2358
|
c("button", {
|
|
2359
2359
|
type: "submit",
|
|
2360
2360
|
disabled: _.value,
|
|
2361
2361
|
"aria-busy": t.loading,
|
|
2362
2362
|
class: "inline-flex items-center justify-center gap-2 w-full h-11 px-4 rounded-lg text-sm font-semibold text-white bg-emerald-600 hover:bg-emerald-700 transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 disabled:opacity-60 disabled:cursor-not-allowed"
|
|
2363
|
-
}, [t.loading ? (T(), s("svg",
|
|
2363
|
+
}, [t.loading ? (T(), s("svg", Br, [...r[6] ||= [c("circle", {
|
|
2364
2364
|
class: "opacity-25",
|
|
2365
2365
|
cx: "12",
|
|
2366
2366
|
cy: "12",
|
|
@@ -2371,7 +2371,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2371
2371
|
class: "opacity-75",
|
|
2372
2372
|
fill: "currentColor",
|
|
2373
2373
|
d: "M4 12a8 8 0 0 1 8-8V0C5.4 0 0 5.4 0 12h4z"
|
|
2374
|
-
}, null, -1)]])) : o("", !0), d(" " + N(t.submitLabel), 1)], 8,
|
|
2374
|
+
}, null, -1)]])) : o("", !0), d(" " + N(t.submitLabel), 1)], 8, zr)
|
|
2375
2375
|
], 32),
|
|
2376
2376
|
n.$slots.footer ? (T(), s("div", {
|
|
2377
2377
|
key: 3,
|
|
@@ -2379,10 +2379,10 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2379
2379
|
}, [A(n.$slots, "footer")], 2)) : o("", !0)
|
|
2380
2380
|
], 2));
|
|
2381
2381
|
}
|
|
2382
|
-
}),
|
|
2382
|
+
}), Hr = ["aria-label"], Ur = { class: "flex-1 overflow-y-auto" }, Wr = {
|
|
2383
2383
|
key: 0,
|
|
2384
2384
|
class: "flex flex-col items-center justify-center text-center px-6 py-16 gap-3"
|
|
2385
|
-
},
|
|
2385
|
+
}, Gr = ["onClick"], Kr = { class: "min-w-0 flex-1" }, qr = { class: "flex items-baseline justify-between gap-2" }, Jr = /* @__PURE__ */ p({
|
|
2386
2386
|
__name: "BaseNotificationPanel",
|
|
2387
2387
|
props: {
|
|
2388
2388
|
title: { default: "Notifications" },
|
|
@@ -2394,7 +2394,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2394
2394
|
},
|
|
2395
2395
|
emits: ["select"],
|
|
2396
2396
|
setup(n, { emit: l }) {
|
|
2397
|
-
let u = l, { isDark: p } =
|
|
2397
|
+
let u = l, { isDark: p } = U(), m = Z(), { notifications: h, unreadCount: g, open: _, closePanel: y, markAllRead: b, markRead: x } = Bn(), S = {
|
|
2398
2398
|
info: "bg-sky-500",
|
|
2399
2399
|
success: "bg-emerald-500",
|
|
2400
2400
|
warning: "bg-amber-500",
|
|
@@ -2403,7 +2403,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2403
2403
|
function w(e) {
|
|
2404
2404
|
x(e), u("select", e);
|
|
2405
2405
|
}
|
|
2406
|
-
return
|
|
2406
|
+
return cn(() => {
|
|
2407
2407
|
_.value && y();
|
|
2408
2408
|
}), (i, l) => (T(), a(t, { to: "body" }, [f(r, {
|
|
2409
2409
|
"enter-active-class": "transition-opacity duration-200",
|
|
@@ -2411,7 +2411,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2411
2411
|
"leave-active-class": "transition-opacity duration-200",
|
|
2412
2412
|
"leave-to-class": "opacity-0"
|
|
2413
2413
|
}, {
|
|
2414
|
-
default:
|
|
2414
|
+
default: I(() => [P(_) ? (T(), s("div", {
|
|
2415
2415
|
key: 0,
|
|
2416
2416
|
class: "fixed inset-0 z-[60] bg-black/50",
|
|
2417
2417
|
"aria-hidden": "true",
|
|
@@ -2424,7 +2424,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2424
2424
|
"leave-active-class": "transition-transform duration-300 ease-in",
|
|
2425
2425
|
"leave-to-class": "-translate-x-full"
|
|
2426
2426
|
}, {
|
|
2427
|
-
default:
|
|
2427
|
+
default: I(() => [P(_) ? (T(), s("aside", {
|
|
2428
2428
|
key: 0,
|
|
2429
2429
|
role: "dialog",
|
|
2430
2430
|
"aria-modal": "true",
|
|
@@ -2436,7 +2436,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2436
2436
|
onClick: l[1] ||= (...e) => P(y) && P(y)(...e),
|
|
2437
2437
|
"aria-label": "Close notifications",
|
|
2438
2438
|
class: v(["p-1.5 rounded-lg cursor-pointer transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", P(p) ? "text-gray-400 hover:bg-gray-800" : "text-gray-500 hover:bg-gray-100"])
|
|
2439
|
-
}, [f(P(
|
|
2439
|
+
}, [f(P(z), {
|
|
2440
2440
|
class: "w-5 h-5",
|
|
2441
2441
|
"aria-hidden": "true"
|
|
2442
2442
|
})], 2)], 2),
|
|
@@ -2448,7 +2448,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2448
2448
|
onClick: l[2] ||= (...e) => P(b) && P(b)(...e),
|
|
2449
2449
|
class: v(["text-xs font-medium cursor-pointer transition-colors focus:outline-none focus-visible:underline", P(m).emeraldText])
|
|
2450
2450
|
}, " Mark all as read ", 2)], 2)) : o("", !0),
|
|
2451
|
-
c("div",
|
|
2451
|
+
c("div", Ur, [C.value === 0 ? (T(), s("div", Wr, [f(P(de), {
|
|
2452
2452
|
class: v(["w-10 h-10", P(m).illustration]),
|
|
2453
2453
|
"aria-hidden": "true"
|
|
2454
2454
|
}, null, 8, ["class"]), c("p", { class: v(["text-sm", P(m).mutedText]) }, N(n.emptyText), 3)])) : (T(), s("ul", {
|
|
@@ -2461,18 +2461,18 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2461
2461
|
}, [c("span", {
|
|
2462
2462
|
class: v(["mt-1.5 w-2 h-2 rounded-full shrink-0", e.read ? P(p) ? "bg-gray-700" : "bg-gray-300" : S[e.type ?? "info"]]),
|
|
2463
2463
|
"aria-hidden": "true"
|
|
2464
|
-
}, null, 2), c("span",
|
|
2464
|
+
}, null, 2), c("span", Kr, [c("span", qr, [c("span", { class: v(["text-sm truncate", [e.read ? "font-medium" : "font-semibold", P(m).primaryTextSoft]]) }, N(e.title), 3), e.time ? (T(), s("span", {
|
|
2465
2465
|
key: 0,
|
|
2466
2466
|
class: v(["text-xs shrink-0", P(m).dimText])
|
|
2467
2467
|
}, N(e.time), 3)) : o("", !0)]), e.message ? (T(), s("span", {
|
|
2468
2468
|
key: 0,
|
|
2469
2469
|
class: v(["mt-0.5 block text-sm", P(m).mutedText])
|
|
2470
|
-
}, N(e.message), 3)) : o("", !0)])], 10,
|
|
2471
|
-
], 10,
|
|
2470
|
+
}, N(e.message), 3)) : o("", !0)])], 10, Gr)]))), 128))], 2))])
|
|
2471
|
+
], 10, Hr)) : o("", !0)]),
|
|
2472
2472
|
_: 1
|
|
2473
2473
|
})]));
|
|
2474
2474
|
}
|
|
2475
|
-
}),
|
|
2475
|
+
}), Yr = ["disabled"], Xr = /* @__PURE__ */ p({
|
|
2476
2476
|
__name: "BaseChipButton",
|
|
2477
2477
|
props: {
|
|
2478
2478
|
size: { default: "sm" },
|
|
@@ -2483,15 +2483,15 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2483
2483
|
},
|
|
2484
2484
|
emits: ["click"],
|
|
2485
2485
|
setup(e, { emit: t }) {
|
|
2486
|
-
let n = t, { isDark: r } =
|
|
2486
|
+
let n = t, { isDark: r } = U();
|
|
2487
2487
|
return (t, i) => (T(), s("button", {
|
|
2488
2488
|
type: "button",
|
|
2489
2489
|
disabled: e.disabled,
|
|
2490
2490
|
class: v(["inline-flex items-center gap-1 font-medium rounded-md border transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", [e.size === "xs" ? "text-xs px-2 py-0.5" : "text-xs px-2.5 py-1", P(r) ? "text-emerald-300 border-emerald-700 bg-emerald-900/30 hover:bg-emerald-800/50" : "text-emerald-700 border-emerald-200 bg-emerald-50 hover:bg-emerald-100"]]),
|
|
2491
2491
|
onClick: i[0] ||= (e) => n("click")
|
|
2492
|
-
}, [A(t.$slots, "default")], 10,
|
|
2492
|
+
}, [A(t.$slots, "default")], 10, Yr));
|
|
2493
2493
|
}
|
|
2494
|
-
}),
|
|
2494
|
+
}), Zr = /* @__PURE__ */ p({
|
|
2495
2495
|
__name: "BaseRemoveButton",
|
|
2496
2496
|
emits: ["click"],
|
|
2497
2497
|
setup(e, { emit: t }) {
|
|
@@ -2502,18 +2502,18 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2502
2502
|
onClick: t[0] ||= (e) => n("click")
|
|
2503
2503
|
}, " × "));
|
|
2504
2504
|
}
|
|
2505
|
-
}),
|
|
2505
|
+
}), Qr = { class: "relative flex h-2 w-2" }, $r = {
|
|
2506
2506
|
key: 0,
|
|
2507
2507
|
class: "animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75",
|
|
2508
2508
|
"aria-hidden": "true"
|
|
2509
|
-
},
|
|
2509
|
+
}, ei = /* @__PURE__ */ p({
|
|
2510
2510
|
__name: "BaseStatusPill",
|
|
2511
2511
|
props: {
|
|
2512
2512
|
status: {},
|
|
2513
2513
|
label: {}
|
|
2514
2514
|
},
|
|
2515
2515
|
setup(e) {
|
|
2516
|
-
let t = e, { isDark: n } =
|
|
2516
|
+
let t = e, { isDark: n } = U(), r = i(() => {
|
|
2517
2517
|
switch (t.status) {
|
|
2518
2518
|
case "ok": return n.value ? "bg-emerald-500/10 text-emerald-400" : "bg-emerald-50 text-emerald-700";
|
|
2519
2519
|
case "error": return n.value ? "bg-red-500/10 text-red-400" : "bg-red-50 text-red-700";
|
|
@@ -2526,13 +2526,13 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2526
2526
|
default: return "bg-gray-400";
|
|
2527
2527
|
}
|
|
2528
2528
|
});
|
|
2529
|
-
return (t, n) => (T(), s("div", { class: v(["flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs", r.value]) }, [c("span",
|
|
2529
|
+
return (t, n) => (T(), s("div", { class: v(["flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs", r.value]) }, [c("span", Qr, [e.status === "ok" ? (T(), s("span", $r)) : o("", !0), c("span", { class: v(["relative inline-flex rounded-full h-2 w-2", a.value]) }, null, 2)]), d(" " + N(e.label), 1)], 2));
|
|
2530
2530
|
}
|
|
2531
|
-
}),
|
|
2531
|
+
}), ti = { class: "text-sm font-medium" }, ni = [
|
|
2532
2532
|
"accept",
|
|
2533
2533
|
"multiple",
|
|
2534
2534
|
"disabled"
|
|
2535
|
-
],
|
|
2535
|
+
], ri = /* @__PURE__ */ p({
|
|
2536
2536
|
__name: "BaseFileDropzone",
|
|
2537
2537
|
props: {
|
|
2538
2538
|
label: {},
|
|
@@ -2549,7 +2549,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2549
2549
|
},
|
|
2550
2550
|
emits: ["files"],
|
|
2551
2551
|
setup(e, { emit: t }) {
|
|
2552
|
-
let n = e, r = t, { isDark: i } =
|
|
2552
|
+
let n = e, r = t, { isDark: i } = U(), a = O(!1);
|
|
2553
2553
|
function l(e) {
|
|
2554
2554
|
let t = e.target, n = Array.from(t.files ?? []);
|
|
2555
2555
|
t.value = "", n.length && r("files", n);
|
|
@@ -2564,9 +2564,9 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2564
2564
|
}
|
|
2565
2565
|
return (t, n) => (T(), s("label", {
|
|
2566
2566
|
class: v(["flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed px-6 py-10 text-center transition-colors", [e.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer", a.value ? P(i) ? "border-emerald-500 text-emerald-400" : "border-emerald-500 text-emerald-600" : P(i) ? "border-gray-700 hover:border-emerald-500 text-gray-400 hover:text-emerald-400" : "border-gray-300 hover:border-emerald-500 text-gray-500 hover:text-emerald-600"]]),
|
|
2567
|
-
onDragover:
|
|
2568
|
-
onDragleave: n[0] ||=
|
|
2569
|
-
onDrop:
|
|
2567
|
+
onDragover: R(u, ["prevent"]),
|
|
2568
|
+
onDragleave: n[0] ||= R((e) => a.value = !1, ["prevent"]),
|
|
2569
|
+
onDrop: R(d, ["prevent"])
|
|
2570
2570
|
}, [
|
|
2571
2571
|
A(t.$slots, "icon", {}, () => [n[1] ||= c("svg", {
|
|
2572
2572
|
class: "w-10 h-10",
|
|
@@ -2580,7 +2580,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2580
2580
|
"stroke-linejoin": "round",
|
|
2581
2581
|
d: "M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m6.75 12-3-3m0 0-3 3m3-3v6m-1.5-15H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"
|
|
2582
2582
|
})], -1)]),
|
|
2583
|
-
c("p",
|
|
2583
|
+
c("p", ti, N(e.label), 1),
|
|
2584
2584
|
e.hint ? (T(), s("p", {
|
|
2585
2585
|
key: 0,
|
|
2586
2586
|
class: v(["text-xs", P(i) ? "text-gray-500" : "text-gray-400"])
|
|
@@ -2592,10 +2592,10 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2592
2592
|
multiple: e.multiple,
|
|
2593
2593
|
disabled: e.disabled,
|
|
2594
2594
|
onChange: l
|
|
2595
|
-
}, null, 40,
|
|
2595
|
+
}, null, 40, ni)
|
|
2596
2596
|
], 34));
|
|
2597
2597
|
}
|
|
2598
|
-
}),
|
|
2598
|
+
}), ii = /* @__PURE__ */ p({
|
|
2599
2599
|
__name: "BaseCodeBlock",
|
|
2600
2600
|
props: {
|
|
2601
2601
|
code: {},
|
|
@@ -2604,7 +2604,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2604
2604
|
maxHeightClass: { default: "" }
|
|
2605
2605
|
},
|
|
2606
2606
|
setup(e) {
|
|
2607
|
-
let t = e, { isDark: n } =
|
|
2607
|
+
let t = e, { isDark: n } = U(), r = {
|
|
2608
2608
|
soft: {
|
|
2609
2609
|
dark: "bg-gray-800/70 text-gray-300",
|
|
2610
2610
|
light: "bg-gray-100 text-gray-700"
|
|
@@ -2626,7 +2626,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2626
2626
|
e.maxHeightClass
|
|
2627
2627
|
]]) }, N(e.code), 3));
|
|
2628
2628
|
}
|
|
2629
|
-
}),
|
|
2629
|
+
}), ai = ["value", "type"], oi = /* @__PURE__ */ p({
|
|
2630
2630
|
__name: "BaseInput",
|
|
2631
2631
|
props: {
|
|
2632
2632
|
modelValue: { default: "" },
|
|
@@ -2648,9 +2648,9 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2648
2648
|
type: e.type,
|
|
2649
2649
|
class: v(["rounded-lg border border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-100 text-sm placeholder:text-slate-400 dark:placeholder:text-slate-500 transition-colors hover:border-slate-400 dark:hover:border-slate-500 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500/40 focus-visible:border-emerald-500 disabled:opacity-60 disabled:cursor-not-allowed", [e.block ? "w-full" : "", e.size === "sm" ? "px-2 py-1.5" : "px-3 py-2"]]),
|
|
2650
2650
|
onInput: r
|
|
2651
|
-
}, null, 42,
|
|
2651
|
+
}, null, 42, ai));
|
|
2652
2652
|
}
|
|
2653
|
-
}),
|
|
2653
|
+
}), si = ["value"], ci = /* @__PURE__ */ p({
|
|
2654
2654
|
inheritAttrs: !1,
|
|
2655
2655
|
__name: "BaseSelect",
|
|
2656
2656
|
props: {
|
|
@@ -2671,16 +2671,16 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2671
2671
|
value: e.modelValue,
|
|
2672
2672
|
class: ["w-full appearance-none bg-none rounded-lg border border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-100 text-sm cursor-pointer transition-colors hover:border-slate-400 dark:hover:border-slate-500 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500/40 focus-visible:border-emerald-500 disabled:opacity-60 disabled:cursor-not-allowed", e.size === "md" ? "py-2 pl-3 pr-9" : "py-1.5 pl-2.5 pr-8"],
|
|
2673
2673
|
onChange: r
|
|
2674
|
-
}), [A(t.$slots, "default")], 16,
|
|
2674
|
+
}), [A(t.$slots, "default")], 16, si), f(P(ge), {
|
|
2675
2675
|
class: v(["pointer-events-none absolute top-1/2 h-4 w-4 -translate-y-1/2 text-slate-500 dark:text-slate-400", e.size === "md" ? "right-3" : "right-2.5"]),
|
|
2676
2676
|
"aria-hidden": "true"
|
|
2677
2677
|
}, null, 8, ["class"])], 2));
|
|
2678
2678
|
}
|
|
2679
|
-
}),
|
|
2679
|
+
}), li = [
|
|
2680
2680
|
"disabled",
|
|
2681
2681
|
"aria-label",
|
|
2682
2682
|
"aria-expanded"
|
|
2683
|
-
],
|
|
2683
|
+
], ui = ["aria-label"], di = ["aria-selected", "title"], fi = ["disabled", "onClick"], pi = /* @__PURE__ */ p({
|
|
2684
2684
|
__name: "BaseDropdown",
|
|
2685
2685
|
props: {
|
|
2686
2686
|
options: {},
|
|
@@ -2716,7 +2716,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2716
2716
|
function g(e) {
|
|
2717
2717
|
e.disabled || (a("update:modelValue", e.value), l.value = !1);
|
|
2718
2718
|
}
|
|
2719
|
-
|
|
2719
|
+
cn(() => {
|
|
2720
2720
|
l.value = !1;
|
|
2721
2721
|
});
|
|
2722
2722
|
function _(e) {
|
|
@@ -2734,10 +2734,10 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2734
2734
|
"aria-haspopup": "listbox",
|
|
2735
2735
|
"aria-expanded": l.value,
|
|
2736
2736
|
onClick: h
|
|
2737
|
-
}, [c("span", { class: v(["min-w-0 truncate", d.value ? "" : "text-slate-400 dark:text-slate-500"]) }, N(d.value ? d.value.label : t.placeholder), 3), f(P(
|
|
2737
|
+
}, [c("span", { class: v(["min-w-0 truncate", d.value ? "" : "text-slate-400 dark:text-slate-500"]) }, N(d.value ? d.value.label : t.placeholder), 3), f(P(ge), {
|
|
2738
2738
|
class: v(["shrink-0 transition-transform", [t.chevronClass, l.value ? "rotate-180" : ""]]),
|
|
2739
2739
|
"aria-hidden": "true"
|
|
2740
|
-
}, null, 8, ["class"])], 10,
|
|
2740
|
+
}, null, 8, ["class"])], 10, li), l.value ? (T(), s("ul", {
|
|
2741
2741
|
key: 0,
|
|
2742
2742
|
role: "listbox",
|
|
2743
2743
|
"aria-label": t.ariaLabel || t.placeholder,
|
|
@@ -2752,13 +2752,13 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2752
2752
|
disabled: e.disabled,
|
|
2753
2753
|
class: v(m(e)),
|
|
2754
2754
|
onClick: (t) => g(e)
|
|
2755
|
-
}, N(e.label), 11,
|
|
2755
|
+
}, N(e.label), 11, fi)], 8, di))), 128))], 8, ui)) : o("", !0)], 2));
|
|
2756
2756
|
}
|
|
2757
|
-
}),
|
|
2757
|
+
}), mi = ["role", "aria-label"], hi = [
|
|
2758
2758
|
"aria-pressed",
|
|
2759
2759
|
"title",
|
|
2760
2760
|
"onClick"
|
|
2761
|
-
],
|
|
2761
|
+
], gi = "bg-slate-50 dark:bg-slate-900 text-slate-600 dark:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-800", _i = /* @__PURE__ */ p({
|
|
2762
2762
|
__name: "BaseSegmentedControl",
|
|
2763
2763
|
props: {
|
|
2764
2764
|
options: {},
|
|
@@ -2775,7 +2775,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2775
2775
|
let r = t, a = n, o = i(() => r.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 = i(() => r.variant === "toolbar" ? "flex items-center px-3.5 text-xs font-semibold uppercase tracking-wide transition-colors cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-emerald-500" : `${r.variant === "wide" ? "px-4 py-2" : "px-3 py-2"} text-sm font-medium transition-colors cursor-pointer border-l first:border-l-0 border-slate-300 dark:border-slate-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-emerald-500`), l = i(() => r.variant === "wide" ? "bg-emerald-600 text-white" : "bg-emerald-500 text-white");
|
|
2776
2776
|
function u(e) {
|
|
2777
2777
|
let t = e.value === r.modelValue;
|
|
2778
|
-
return r.optionClass ? r.optionClass(e, t) : t ? l.value :
|
|
2778
|
+
return r.optionClass ? r.optionClass(e, t) : t ? l.value : gi;
|
|
2779
2779
|
}
|
|
2780
2780
|
return (n, r) => (T(), s("div", {
|
|
2781
2781
|
role: t.ariaLabel ? "group" : void 0,
|
|
@@ -2788,9 +2788,9 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2788
2788
|
"aria-pressed": e.value === t.modelValue,
|
|
2789
2789
|
title: e.title,
|
|
2790
2790
|
onClick: (t) => a("update:modelValue", e.value)
|
|
2791
|
-
}, N(e.label), 11,
|
|
2791
|
+
}, N(e.label), 11, hi))), 128))], 10, mi));
|
|
2792
2792
|
}
|
|
2793
|
-
}),
|
|
2793
|
+
}), vi = { class: "w-full text-sm" }, yi = { class: "bg-slate-50 dark:bg-slate-800/60 text-slate-600 dark:text-slate-300" }, bi = { class: "text-left border-b border-slate-200 dark:border-slate-700" }, xi = { class: "divide-y divide-slate-200 dark:divide-slate-700 [&>tr]:transition-colors [&>tr:hover]:bg-slate-50 dark:[&>tr:hover]:bg-slate-800/40" }, Si = { key: 0 }, Ci = ["colspan"], wi = "overflow-x-auto rounded-xl border border-slate-200 bg-white shadow-sm dark:border-slate-700 dark:bg-slate-900", Ti = /* @__PURE__ */ p({
|
|
2794
2794
|
__name: "BaseTable",
|
|
2795
2795
|
props: {
|
|
2796
2796
|
columns: {},
|
|
@@ -2805,24 +2805,24 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2805
2805
|
}
|
|
2806
2806
|
},
|
|
2807
2807
|
setup(t) {
|
|
2808
|
-
return (n, r) => (T(), s("div", { class: v(t.card ?
|
|
2808
|
+
return (n, r) => (T(), s("div", { class: v(t.card ? wi : void 0) }, [c("table", vi, [c("thead", yi, [c("tr", bi, [(T(!0), s(e, null, k(t.columns, (e, t) => (T(), s("th", {
|
|
2809
2809
|
key: t,
|
|
2810
2810
|
class: v(["px-4 py-3", e.align === "right" ? "text-right" : ""])
|
|
2811
|
-
}, N(e.label), 3))), 128))])]), c("tbody",
|
|
2811
|
+
}, N(e.label), 3))), 128))])]), c("tbody", xi, [t.empty ? (T(), s("tr", Si, [c("td", {
|
|
2812
2812
|
colspan: t.columns.length,
|
|
2813
2813
|
class: "px-4 py-12 text-center text-slate-500"
|
|
2814
|
-
}, [A(n.$slots, "empty", {}, () => [d(N(t.emptyText), 1)])], 8,
|
|
2814
|
+
}, [A(n.$slots, "empty", {}, () => [d(N(t.emptyText), 1)])], 8, Ci)])) : o("", !0), A(n.$slots, "default")])])], 2));
|
|
2815
2815
|
}
|
|
2816
|
-
}),
|
|
2816
|
+
}), Ei = { class: "grid gap-3 md:grid-cols-2" }, Di = {
|
|
2817
2817
|
key: 0,
|
|
2818
2818
|
class: "block text-[11px] uppercase tracking-wide text-slate-500 mb-1"
|
|
2819
|
-
},
|
|
2819
|
+
}, Oi = ["value"], ki = {
|
|
2820
2820
|
key: 2,
|
|
2821
2821
|
class: "flex items-center gap-2 mt-4"
|
|
2822
|
-
},
|
|
2822
|
+
}, Ai = ["checked", "onChange"], ji = { class: "text-sm text-slate-900 dark:text-slate-100" }, Mi = {
|
|
2823
2823
|
key: 4,
|
|
2824
2824
|
class: "text-[11px] text-slate-400 mt-1"
|
|
2825
|
-
},
|
|
2825
|
+
}, Ni = /* @__PURE__ */ p({
|
|
2826
2826
|
__name: "BaseSpecFields",
|
|
2827
2827
|
props: {
|
|
2828
2828
|
specs: {},
|
|
@@ -2849,24 +2849,24 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2849
2849
|
let t = e.clipboardData?.getData("text") ?? "";
|
|
2850
2850
|
/^-?\d*$/.test(t.trim()) || e.preventDefault();
|
|
2851
2851
|
}
|
|
2852
|
-
return (n, f) => (T(), s("div",
|
|
2853
|
-
f.type === "boolean" ? o("", !0) : (T(), s("label",
|
|
2854
|
-
f.type === "select" ? (T(), a(
|
|
2852
|
+
return (n, f) => (T(), s("div", Ei, [(T(!0), s(e, null, k(t.specs, (f) => (T(), s("div", { key: f.key }, [
|
|
2853
|
+
f.type === "boolean" ? o("", !0) : (T(), s("label", Di, N(f.label), 1)),
|
|
2854
|
+
f.type === "select" ? (T(), a(ci, {
|
|
2855
2855
|
key: 1,
|
|
2856
2856
|
modelValue: String(t.params[f.key] ?? ""),
|
|
2857
2857
|
"onUpdate:modelValue": (e) => r("update", f.key, e)
|
|
2858
2858
|
}, {
|
|
2859
|
-
default:
|
|
2859
|
+
default: I(() => [(T(!0), s(e, null, k(f.options ?? [], (e) => (T(), s("option", {
|
|
2860
2860
|
key: e,
|
|
2861
2861
|
value: e
|
|
2862
|
-
}, N(e), 9,
|
|
2862
|
+
}, N(e), 9, Oi))), 128))]),
|
|
2863
2863
|
_: 2
|
|
2864
|
-
}, 1032, ["modelValue", "onUpdate:modelValue"])) : f.type === "boolean" ? (T(), s("label",
|
|
2864
|
+
}, 1032, ["modelValue", "onUpdate:modelValue"])) : f.type === "boolean" ? (T(), s("label", ki, [c("input", {
|
|
2865
2865
|
checked: !!t.params[f.key],
|
|
2866
2866
|
type: "checkbox",
|
|
2867
2867
|
class: "h-4 w-4",
|
|
2868
2868
|
onChange: (e) => i(f.key, e)
|
|
2869
|
-
}, null, 40,
|
|
2869
|
+
}, null, 40, Ai), c("span", ji, N(f.label), 1)])) : (T(), a(oi, {
|
|
2870
2870
|
key: 3,
|
|
2871
2871
|
modelValue: t.params[f.key],
|
|
2872
2872
|
type: "number",
|
|
@@ -2885,11 +2885,11 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2885
2885
|
"onPaste",
|
|
2886
2886
|
"onUpdate:modelValue"
|
|
2887
2887
|
])),
|
|
2888
|
-
f.help ? (T(), s("p",
|
|
2888
|
+
f.help ? (T(), s("p", Mi, N(f.help), 1)) : o("", !0),
|
|
2889
2889
|
A(n.$slots, "after", { spec: f })
|
|
2890
2890
|
]))), 128))]));
|
|
2891
2891
|
}
|
|
2892
|
-
}),
|
|
2892
|
+
}), Pi = { class: "mt-1.5 space-y-0.5 px-1" }, Fi = { class: "text-slate-400 dark:text-slate-500" }, Ii = /* @__PURE__ */ p({
|
|
2893
2893
|
__name: "BaseStatBreakdown",
|
|
2894
2894
|
props: {
|
|
2895
2895
|
items: {},
|
|
@@ -2908,16 +2908,16 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2908
2908
|
function i(e) {
|
|
2909
2909
|
return !n.signed || e == null ? "text-slate-500 dark:text-slate-400" : e >= 0 ? "text-emerald-600 dark:text-emerald-400" : "text-red-600 dark:text-red-400";
|
|
2910
2910
|
}
|
|
2911
|
-
return (n, a) => (T(), s("div",
|
|
2911
|
+
return (n, a) => (T(), s("div", Pi, [(T(!0), s(e, null, k(t.items, (e) => (T(), s("div", {
|
|
2912
2912
|
key: e.label,
|
|
2913
2913
|
class: "flex items-center justify-between text-[11px]"
|
|
2914
|
-
}, [c("span",
|
|
2914
|
+
}, [c("span", Fi, N(e.label), 1), c("span", { class: v(["font-mono tabular-nums font-medium", i(e.value)]) }, N(r(e.value)), 3)]))), 128))]));
|
|
2915
2915
|
}
|
|
2916
|
-
}),
|
|
2916
|
+
}), Li = [
|
|
2917
2917
|
"disabled",
|
|
2918
2918
|
"title",
|
|
2919
2919
|
"aria-pressed"
|
|
2920
|
-
],
|
|
2920
|
+
], Ri = /* @__PURE__ */ p({
|
|
2921
2921
|
__name: "BaseFilterChip",
|
|
2922
2922
|
props: {
|
|
2923
2923
|
label: { default: "" },
|
|
@@ -2952,15 +2952,15 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
2952
2952
|
title: e.title,
|
|
2953
2953
|
"aria-pressed": e.active,
|
|
2954
2954
|
class: v(["whitespace-nowrap rounded-md border px-3 text-sm font-semibold text-center transition-colors focus:outline-none focus-visible:ring-2 disabled:opacity-50 disabled:cursor-not-allowed", e.active ? n[e.color] : t[e.color]])
|
|
2955
|
-
}, [A(r.$slots, "default", {}, () => [d(N(e.label), 1)])], 10,
|
|
2955
|
+
}, [A(r.$slots, "default", {}, () => [d(N(e.label), 1)])], 10, Li));
|
|
2956
2956
|
}
|
|
2957
|
-
}),
|
|
2957
|
+
}), zi = { class: "flex items-center justify-between mb-4" }, Bi = { class: "text-lg font-semibold text-slate-900 dark:text-slate-100" }, Vi = {
|
|
2958
2958
|
key: 0,
|
|
2959
2959
|
class: "text-xs text-slate-500 dark:text-slate-400"
|
|
2960
|
-
},
|
|
2960
|
+
}, Hi = {
|
|
2961
2961
|
key: 0,
|
|
2962
2962
|
class: "inline-flex items-center gap-2 text-xs text-slate-500"
|
|
2963
|
-
},
|
|
2963
|
+
}, Ui = { class: "grid gap-4 md:grid-cols-2" }, Wi = { class: "md:col-span-2" }, Gi = ["for"], Ki = { class: "md:col-span-2" }, qi = ["for"], Ji = { class: "text-[11px] text-slate-500 mt-1" }, Yi = { class: "md:col-span-2" }, Xi = ["for"], Zi = { class: "md:col-span-2" }, Qi = ["for"], $i = { class: "md:col-span-2" }, ea = "placeholder:text-slate-400 dark:placeholder:text-slate-500 font-mono", ta = /* @__PURE__ */ p({
|
|
2964
2964
|
__name: "BaseCredentialsForm",
|
|
2965
2965
|
props: {
|
|
2966
2966
|
title: {},
|
|
@@ -3033,72 +3033,72 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3033
3033
|
}
|
|
3034
3034
|
}
|
|
3035
3035
|
}
|
|
3036
|
-
return S(h), n({ load: h }), (n, r) => (T(), a(
|
|
3037
|
-
default:
|
|
3038
|
-
c("div",
|
|
3039
|
-
c("div",
|
|
3040
|
-
c("div",
|
|
3036
|
+
return S(h), n({ load: h }), (n, r) => (T(), a(It, { class: "!p-6" }, {
|
|
3037
|
+
default: I(() => [
|
|
3038
|
+
c("div", zi, [c("div", null, [c("h2", Bi, N(t.title), 1), t.subtitle ? (T(), s("p", Vi, N(t.subtitle), 1)) : o("", !0)]), u.value ? (T(), s("span", Hi, [f(Lt, { class: "!h-4 !w-4" }), r[4] ||= d(" Saving… ", -1)])) : o("", !0)]),
|
|
3039
|
+
c("div", Ui, [
|
|
3040
|
+
c("div", Wi, [c("label", {
|
|
3041
3041
|
for: `${t.idPrefix}-key-id`,
|
|
3042
3042
|
class: "block text-xs uppercase tracking-wide text-slate-500 mb-1"
|
|
3043
|
-
}, N(t.keyLabel), 9,
|
|
3043
|
+
}, N(t.keyLabel), 9, Gi), f(oi, {
|
|
3044
3044
|
id: `${t.idPrefix}-key-id`,
|
|
3045
3045
|
modelValue: m.keyId,
|
|
3046
3046
|
"onUpdate:modelValue": r[0] ||= (e) => m.keyId = e,
|
|
3047
3047
|
type: "text",
|
|
3048
3048
|
autocomplete: "off",
|
|
3049
3049
|
placeholder: t.keyPlaceholder,
|
|
3050
|
-
class: v(
|
|
3050
|
+
class: v(ea)
|
|
3051
3051
|
}, null, 8, [
|
|
3052
3052
|
"id",
|
|
3053
3053
|
"modelValue",
|
|
3054
3054
|
"placeholder"
|
|
3055
3055
|
])]),
|
|
3056
|
-
c("div",
|
|
3056
|
+
c("div", Ki, [
|
|
3057
3057
|
c("label", {
|
|
3058
3058
|
for: `${t.idPrefix}-secret`,
|
|
3059
3059
|
class: "block text-xs uppercase tracking-wide text-slate-500 mb-1"
|
|
3060
|
-
}, N(t.secretLabel), 9,
|
|
3061
|
-
f(
|
|
3060
|
+
}, N(t.secretLabel), 9, qi),
|
|
3061
|
+
f(oi, {
|
|
3062
3062
|
id: `${t.idPrefix}-secret`,
|
|
3063
3063
|
modelValue: m.secretKey,
|
|
3064
3064
|
"onUpdate:modelValue": r[1] ||= (e) => m.secretKey = e,
|
|
3065
3065
|
type: "password",
|
|
3066
3066
|
autocomplete: "new-password",
|
|
3067
3067
|
placeholder: p.value ? "•••••••• (unchanged — type to replace)" : t.secretPlaceholder,
|
|
3068
|
-
class: v(
|
|
3068
|
+
class: v(ea)
|
|
3069
3069
|
}, null, 8, [
|
|
3070
3070
|
"id",
|
|
3071
3071
|
"modelValue",
|
|
3072
3072
|
"placeholder"
|
|
3073
3073
|
]),
|
|
3074
|
-
c("p",
|
|
3074
|
+
c("p", Ji, [p.value ? (T(), s(e, { key: 0 }, [d(N(t.secretSetHint), 1)], 64)) : A(n.$slots, "no-secret-hint", {}, () => [d(N(t.permissionsHint), 1)], void 0, 1)])
|
|
3075
3075
|
]),
|
|
3076
|
-
c("div",
|
|
3076
|
+
c("div", Yi, [
|
|
3077
3077
|
c("label", {
|
|
3078
3078
|
for: `${t.idPrefix}-base-url`,
|
|
3079
3079
|
class: "block text-xs uppercase tracking-wide text-slate-500 mb-1"
|
|
3080
|
-
}, "Base URL (trading)", 8,
|
|
3081
|
-
f(
|
|
3080
|
+
}, "Base URL (trading)", 8, Xi),
|
|
3081
|
+
f(oi, {
|
|
3082
3082
|
id: `${t.idPrefix}-base-url`,
|
|
3083
3083
|
modelValue: m.baseUrl,
|
|
3084
3084
|
"onUpdate:modelValue": r[2] ||= (e) => m.baseUrl = e,
|
|
3085
3085
|
type: "text",
|
|
3086
|
-
class: v(
|
|
3086
|
+
class: v(ea)
|
|
3087
3087
|
}, null, 8, ["id", "modelValue"]),
|
|
3088
3088
|
A(n.$slots, "base-url-extra", { form: m })
|
|
3089
3089
|
]),
|
|
3090
|
-
c("div",
|
|
3090
|
+
c("div", Zi, [c("label", {
|
|
3091
3091
|
for: `${t.idPrefix}-data-url`,
|
|
3092
3092
|
class: "block text-xs uppercase tracking-wide text-slate-500 mb-1"
|
|
3093
|
-
}, "Data URL (market data)", 8,
|
|
3093
|
+
}, "Data URL (market data)", 8, Qi), f(oi, {
|
|
3094
3094
|
id: `${t.idPrefix}-data-url`,
|
|
3095
3095
|
modelValue: m.dataUrl,
|
|
3096
3096
|
"onUpdate:modelValue": r[3] ||= (e) => m.dataUrl = e,
|
|
3097
3097
|
type: "text",
|
|
3098
|
-
class: v(
|
|
3098
|
+
class: v(ea)
|
|
3099
3099
|
}, null, 8, ["id", "modelValue"])]),
|
|
3100
|
-
c("div",
|
|
3101
|
-
color: P(
|
|
3100
|
+
c("div", $i, [f(q, {
|
|
3101
|
+
color: P(G).GREEN,
|
|
3102
3102
|
description: t.saveLabel,
|
|
3103
3103
|
isDisable: u.value,
|
|
3104
3104
|
isLoading: u.value,
|
|
@@ -3115,16 +3115,16 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3115
3115
|
_: 3
|
|
3116
3116
|
}));
|
|
3117
3117
|
}
|
|
3118
|
-
}),
|
|
3118
|
+
}), na = {
|
|
3119
3119
|
key: 0,
|
|
3120
3120
|
class: "text-sm text-slate-500 dark:text-slate-400"
|
|
3121
|
-
},
|
|
3121
|
+
}, ra = { class: "mb-3 flex flex-wrap items-center gap-2" }, ia = { class: "relative min-w-[200px] flex-1" }, aa = ["placeholder"], oa = {
|
|
3122
3122
|
key: 0,
|
|
3123
3123
|
class: "text-sm text-slate-500 dark:text-slate-400"
|
|
3124
|
-
},
|
|
3124
|
+
}, sa = {
|
|
3125
3125
|
key: 1,
|
|
3126
3126
|
class: "flex flex-wrap gap-2"
|
|
3127
|
-
},
|
|
3127
|
+
}, ca = ["title", "onClick"], la = "h-9 rounded-md border border-slate-300 dark:border-slate-600 bg-slate-50 dark:bg-slate-900 text-slate-900 dark:text-slate-100 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", ua = "\0all", da = /* @__PURE__ */ p({
|
|
3128
3128
|
__name: "BasePillPickerModal",
|
|
3129
3129
|
props: {
|
|
3130
3130
|
title: {},
|
|
@@ -3146,11 +3146,11 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3146
3146
|
},
|
|
3147
3147
|
emits: ["pick", "close"],
|
|
3148
3148
|
setup(t, { emit: n }) {
|
|
3149
|
-
let r = t, l = n, u = i(() => r.icon ??
|
|
3150
|
-
value:
|
|
3149
|
+
let r = t, l = n, u = i(() => r.icon ?? Te), d = O(""), p = O(ua), m = i(() => r.groups && r.groups.length > 0 ? [{
|
|
3150
|
+
value: ua,
|
|
3151
3151
|
label: r.allLabel
|
|
3152
|
-
}, ...r.groups] : []), h = i(() => r.items.filter((e) => (p.value ===
|
|
3153
|
-
return (n, r) => (T(), a(
|
|
3152
|
+
}, ...r.groups] : []), h = i(() => r.items.filter((e) => (p.value === ua || e.group === p.value) && e.label.toLowerCase().includes(d.value.trim().toLowerCase())));
|
|
3153
|
+
return (n, r) => (T(), a(_n, {
|
|
3154
3154
|
title: t.title,
|
|
3155
3155
|
icon: u.value,
|
|
3156
3156
|
subtitle: t.subtitle,
|
|
@@ -3158,24 +3158,24 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3158
3158
|
"max-width-class": t.maxWidthClass,
|
|
3159
3159
|
onCancel: r[4] ||= (e) => l("close")
|
|
3160
3160
|
}, {
|
|
3161
|
-
footer:
|
|
3161
|
+
footer: I(() => [f(br, {
|
|
3162
3162
|
variant: "ghost",
|
|
3163
3163
|
label: t.closeText,
|
|
3164
3164
|
onClick: r[3] ||= (e) => l("close")
|
|
3165
3165
|
}, null, 8, ["label"])]),
|
|
3166
|
-
default:
|
|
3167
|
-
f(P(
|
|
3168
|
-
|
|
3166
|
+
default: I(() => [t.items.length === 0 ? (T(), s("p", na, N(t.emptyMessage), 1)) : (T(), s(e, { key: 1 }, [c("div", ra, [c("div", ia, [
|
|
3167
|
+
f(P(Te), { class: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400" }),
|
|
3168
|
+
L(c("input", {
|
|
3169
3169
|
"onUpdate:modelValue": r[0] ||= (e) => d.value = e,
|
|
3170
3170
|
type: "text",
|
|
3171
3171
|
placeholder: t.searchPlaceholder,
|
|
3172
3172
|
autocomplete: "off",
|
|
3173
3173
|
class: v([
|
|
3174
|
-
|
|
3174
|
+
la,
|
|
3175
3175
|
"w-full pl-9 pr-8 placeholder:text-slate-400 dark:placeholder:text-slate-500",
|
|
3176
3176
|
t.mono ? "font-mono" : ""
|
|
3177
3177
|
])
|
|
3178
|
-
}, null, 10,
|
|
3178
|
+
}, null, 10, aa), [[re, d.value]]),
|
|
3179
3179
|
d.value ? (T(), s("button", {
|
|
3180
3180
|
key: 0,
|
|
3181
3181
|
type: "button",
|
|
@@ -3183,7 +3183,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3183
3183
|
class: "absolute right-2 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600 dark:hover:text-slate-200",
|
|
3184
3184
|
onClick: r[1] ||= (e) => d.value = ""
|
|
3185
3185
|
}, " ✕ ")) : o("", !0)
|
|
3186
|
-
]), m.value.length > 0 ? (T(), a(
|
|
3186
|
+
]), m.value.length > 0 ? (T(), a(_i, {
|
|
3187
3187
|
key: 0,
|
|
3188
3188
|
modelValue: p.value,
|
|
3189
3189
|
"onUpdate:modelValue": r[2] ||= (e) => p.value = e,
|
|
@@ -3193,13 +3193,13 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3193
3193
|
"modelValue",
|
|
3194
3194
|
"options",
|
|
3195
3195
|
"aria-label"
|
|
3196
|
-
])) : o("", !0)]), h.value.length === 0 ? (T(), s("p",
|
|
3196
|
+
])) : o("", !0)]), h.value.length === 0 ? (T(), s("p", oa, N(t.noMatchMessage), 1)) : (T(), s("div", sa, [(T(!0), s(e, null, k(h.value, (e) => (T(), s("button", {
|
|
3197
3197
|
key: e.id,
|
|
3198
3198
|
type: "button",
|
|
3199
3199
|
title: e.title,
|
|
3200
3200
|
class: v(["h-8 shrink-0 rounded-md border border-slate-300 dark:border-slate-600 bg-slate-50 dark:bg-slate-900 px-3 text-sm text-slate-700 dark:text-slate-200 transition-colors hover:border-emerald-500 hover:bg-emerald-50 hover:text-emerald-700 dark:hover:bg-emerald-500/10 dark:hover:text-emerald-400 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500", t.mono ? "font-mono" : ""]),
|
|
3201
3201
|
onClick: (t) => l("pick", e)
|
|
3202
|
-
}, N(e.label), 11,
|
|
3202
|
+
}, N(e.label), 11, ca))), 128))]))], 64))]),
|
|
3203
3203
|
_: 1
|
|
3204
3204
|
}, 8, [
|
|
3205
3205
|
"title",
|
|
@@ -3208,7 +3208,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3208
3208
|
"max-width-class"
|
|
3209
3209
|
]));
|
|
3210
3210
|
}
|
|
3211
|
-
}),
|
|
3211
|
+
}), fa = ["aria-label"], pa = ["title"], ma = { class: "text-[10px] tabular-nums text-slate-400 dark:text-slate-500" }, ha = ["title"], ga = /* @__PURE__ */ p({
|
|
3212
3212
|
__name: "BaseBarDistribution",
|
|
3213
3213
|
props: {
|
|
3214
3214
|
bars: {},
|
|
@@ -3229,7 +3229,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3229
3229
|
class: "flex min-w-7 flex-1 flex-col items-center gap-0.5",
|
|
3230
3230
|
title: o(e)
|
|
3231
3231
|
}, [
|
|
3232
|
-
c("span",
|
|
3232
|
+
c("span", ma, N(e.count), 1),
|
|
3233
3233
|
c("div", {
|
|
3234
3234
|
class: v(["w-full max-w-8 rounded-t", t.barClass]),
|
|
3235
3235
|
style: b({ height: `${a(e)}px` })
|
|
@@ -3237,10 +3237,10 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3237
3237
|
c("span", {
|
|
3238
3238
|
class: "max-w-full truncate font-mono text-[10px] text-slate-500 dark:text-slate-400",
|
|
3239
3239
|
title: e.label
|
|
3240
|
-
}, N(e.label), 9,
|
|
3241
|
-
], 8,
|
|
3240
|
+
}, N(e.label), 9, ha)
|
|
3241
|
+
], 8, pa))), 128))], 8, fa));
|
|
3242
3242
|
}
|
|
3243
|
-
}),
|
|
3243
|
+
}), _a = /* @__PURE__ */ p({
|
|
3244
3244
|
__name: "BaseDateTimePicker",
|
|
3245
3245
|
props: {
|
|
3246
3246
|
modelValue: { default: null },
|
|
@@ -3262,7 +3262,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3262
3262
|
},
|
|
3263
3263
|
emits: ["update:modelValue"],
|
|
3264
3264
|
setup(e, { emit: t }) {
|
|
3265
|
-
let n = e, r = t, { isDark: o } =
|
|
3265
|
+
let n = e, r = t, { isDark: o } = U(), s = i(() => ({
|
|
3266
3266
|
enableTimePicker: n.mode !== "date",
|
|
3267
3267
|
is24: n.is24,
|
|
3268
3268
|
...n.timeConfig
|
|
@@ -3271,7 +3271,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3271
3271
|
let e = n.is24 ? "HH:mm" : "hh:mm a";
|
|
3272
3272
|
return n.mode === "date" ? { input: "dd/MM/yyyy" } : n.mode === "time" ? { input: e } : { input: `dd/MM/yyyy ${e}` };
|
|
3273
3273
|
});
|
|
3274
|
-
return (t, n) => (T(), a(P(
|
|
3274
|
+
return (t, n) => (T(), a(P(Ne), {
|
|
3275
3275
|
"model-value": e.modelValue,
|
|
3276
3276
|
dark: P(o),
|
|
3277
3277
|
"time-picker": e.mode === "time",
|
|
@@ -3282,7 +3282,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3282
3282
|
"onUpdate:modelValue": n[0] ||= (e) => r("update:modelValue", e)
|
|
3283
3283
|
}, l({ _: 2 }, [k(t.$slots, (e, n) => ({
|
|
3284
3284
|
name: n,
|
|
3285
|
-
fn:
|
|
3285
|
+
fn: I((e) => [A(t.$slots, n, y(h(e ?? {})))])
|
|
3286
3286
|
}))]), 1032, [
|
|
3287
3287
|
"model-value",
|
|
3288
3288
|
"dark",
|
|
@@ -3293,28 +3293,28 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3293
3293
|
"teleport"
|
|
3294
3294
|
]));
|
|
3295
3295
|
}
|
|
3296
|
-
}),
|
|
3296
|
+
}), va = { class: "flex min-w-0 flex-1 flex-wrap items-center gap-1" }, ya = { class: "truncate" }, ba = [
|
|
3297
3297
|
"aria-label",
|
|
3298
3298
|
"disabled",
|
|
3299
3299
|
"onClick"
|
|
3300
|
-
],
|
|
3300
|
+
], xa = [
|
|
3301
3301
|
"disabled",
|
|
3302
3302
|
"readonly",
|
|
3303
3303
|
"aria-label",
|
|
3304
3304
|
"aria-expanded",
|
|
3305
3305
|
"aria-activedescendant",
|
|
3306
3306
|
"placeholder"
|
|
3307
|
-
],
|
|
3307
|
+
], Sa = ["aria-multiselectable"], Ca = [
|
|
3308
3308
|
"id",
|
|
3309
3309
|
"aria-selected",
|
|
3310
3310
|
"aria-disabled",
|
|
3311
3311
|
"title",
|
|
3312
3312
|
"onMouseenter",
|
|
3313
3313
|
"onClick"
|
|
3314
|
-
],
|
|
3314
|
+
], wa = { class: "truncate" }, Ta = {
|
|
3315
3315
|
key: 0,
|
|
3316
3316
|
class: "px-3 py-2 text-sm text-slate-500 dark:text-slate-400"
|
|
3317
|
-
},
|
|
3317
|
+
}, Ea = /* @__PURE__ */ p({
|
|
3318
3318
|
__name: "BaseSearchSelect",
|
|
3319
3319
|
props: {
|
|
3320
3320
|
options: {},
|
|
@@ -3353,7 +3353,7 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3353
3353
|
let e = m.value.trim().toLowerCase();
|
|
3354
3354
|
return e ? r.options.filter((t) => t.label.toLowerCase().includes(e)) : [...r.options];
|
|
3355
3355
|
});
|
|
3356
|
-
|
|
3356
|
+
ae(D, (e) => {
|
|
3357
3357
|
h.value = e.findIndex((e) => !e.disabled);
|
|
3358
3358
|
});
|
|
3359
3359
|
function A(e) {
|
|
@@ -3379,26 +3379,26 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3379
3379
|
} else l("update:modelValue", e.value), F(), d.value?.blur();
|
|
3380
3380
|
}
|
|
3381
3381
|
}
|
|
3382
|
-
function
|
|
3382
|
+
function I(e) {
|
|
3383
3383
|
l("update:modelValue", y.value.filter((t) => t !== e.value));
|
|
3384
3384
|
}
|
|
3385
|
-
function
|
|
3385
|
+
function oe() {
|
|
3386
3386
|
l("update:modelValue", r.multiple ? [] : null), m.value = "";
|
|
3387
3387
|
}
|
|
3388
|
-
function
|
|
3388
|
+
function se(e) {
|
|
3389
3389
|
let t = D.value;
|
|
3390
3390
|
if (t.length === 0) return;
|
|
3391
3391
|
let n = h.value;
|
|
3392
3392
|
for (let r = 0; r < t.length && (n = (n + e + t.length) % t.length, t[n].disabled); r++);
|
|
3393
3393
|
h.value = n, _(() => document.getElementById(`${g}-${n}`)?.scrollIntoView?.({ block: "nearest" }));
|
|
3394
3394
|
}
|
|
3395
|
-
function
|
|
3395
|
+
function ce(e) {
|
|
3396
3396
|
switch (e.key) {
|
|
3397
3397
|
case "ArrowDown":
|
|
3398
|
-
e.preventDefault(), p.value ?
|
|
3398
|
+
e.preventDefault(), p.value ? se(1) : M();
|
|
3399
3399
|
break;
|
|
3400
3400
|
case "ArrowUp":
|
|
3401
|
-
e.preventDefault(), p.value ?
|
|
3401
|
+
e.preventDefault(), p.value ? se(-1) : M();
|
|
3402
3402
|
break;
|
|
3403
3403
|
case "Enter":
|
|
3404
3404
|
p.value && h.value >= 0 && (e.preventDefault(), ne(D.value[h.value]));
|
|
@@ -3409,13 +3409,13 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3409
3409
|
case "Tab":
|
|
3410
3410
|
F();
|
|
3411
3411
|
break;
|
|
3412
|
-
case "Backspace": r.multiple && m.value === "" && b.value.length &&
|
|
3412
|
+
case "Backspace": r.multiple && m.value === "" && b.value.length && I(b.value[b.value.length - 1]);
|
|
3413
3413
|
}
|
|
3414
3414
|
}
|
|
3415
|
-
function
|
|
3415
|
+
function le(e) {
|
|
3416
3416
|
p.value && u.value && !u.value.contains(e.target) && F();
|
|
3417
3417
|
}
|
|
3418
|
-
return S(() => document.addEventListener("mousedown",
|
|
3418
|
+
return S(() => document.addEventListener("mousedown", le)), x(() => document.removeEventListener("mousedown", le)), (n, r) => (T(), s("div", {
|
|
3419
3419
|
ref_key: "rootEl",
|
|
3420
3420
|
ref: u,
|
|
3421
3421
|
class: v(t.block ? "relative w-full" : "relative inline-block min-w-48")
|
|
@@ -3423,20 +3423,20 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3423
3423
|
class: v(["flex min-h-[38px] items-center gap-1.5 rounded-lg border bg-white px-3 py-1.5 text-sm transition-colors dark:bg-slate-900", [p.value ? "border-emerald-500 ring-2 ring-emerald-500/30" : "border-slate-300 hover:border-slate-400 dark:border-slate-600 dark:hover:border-slate-500", t.disabled ? "cursor-not-allowed opacity-60" : "cursor-text"]]),
|
|
3424
3424
|
onMousedown: te
|
|
3425
3425
|
}, [
|
|
3426
|
-
c("div",
|
|
3426
|
+
c("div", va, [(T(!0), s(e, null, k(b.value, (e) => L((T(), s("span", {
|
|
3427
3427
|
key: String(e.value),
|
|
3428
3428
|
class: "inline-flex max-w-full items-center gap-1 rounded-md bg-emerald-50 py-0.5 pl-2 pr-1 text-xs font-medium text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300"
|
|
3429
|
-
}, [c("span",
|
|
3429
|
+
}, [c("span", ya, N(e.label), 1), c("button", {
|
|
3430
3430
|
type: "button",
|
|
3431
3431
|
class: "rounded p-0.5 hover:bg-emerald-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 dark:hover:bg-emerald-500/25",
|
|
3432
3432
|
"aria-label": `Remove ${e.label}`,
|
|
3433
3433
|
disabled: t.disabled,
|
|
3434
|
-
onMousedown: r[0] ||=
|
|
3435
|
-
onClick:
|
|
3436
|
-
}, [f(P(
|
|
3434
|
+
onMousedown: r[0] ||= R(() => {}, ["stop", "prevent"]),
|
|
3435
|
+
onClick: R((t) => I(e), ["stop"])
|
|
3436
|
+
}, [f(P(z), {
|
|
3437
3437
|
class: "h-3 w-3",
|
|
3438
3438
|
"aria-hidden": "true"
|
|
3439
|
-
})], 40,
|
|
3439
|
+
})], 40, ba)])), [[ie, t.multiple]])), 128)), L(c("input", {
|
|
3440
3440
|
ref_key: "inputEl",
|
|
3441
3441
|
ref: d,
|
|
3442
3442
|
"onUpdate:modelValue": r[1] ||= (e) => m.value = e,
|
|
@@ -3454,20 +3454,20 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3454
3454
|
class: v(["min-w-16 flex-1 border-0 bg-transparent p-0 py-0.5 text-sm text-slate-900 outline-none focus:ring-0 dark:text-slate-100 disabled:cursor-not-allowed", w.value ? "placeholder:text-slate-900 dark:placeholder:text-slate-100" : "placeholder:text-slate-400 dark:placeholder:text-slate-500"]),
|
|
3455
3455
|
onFocus: M,
|
|
3456
3456
|
onInput: M,
|
|
3457
|
-
onKeydown:
|
|
3458
|
-
}, null, 42,
|
|
3457
|
+
onKeydown: ce
|
|
3458
|
+
}, null, 42, xa), [[re, m.value]])]),
|
|
3459
3459
|
t.clearable && C.value && !t.disabled ? (T(), s("button", {
|
|
3460
3460
|
key: 0,
|
|
3461
3461
|
type: "button",
|
|
3462
3462
|
class: "shrink-0 rounded p-0.5 text-slate-400 hover:text-slate-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500 dark:hover:text-slate-200",
|
|
3463
3463
|
"aria-label": "Clear selection",
|
|
3464
|
-
onMousedown: r[2] ||=
|
|
3465
|
-
onClick:
|
|
3466
|
-
}, [f(P(
|
|
3464
|
+
onMousedown: r[2] ||= R(() => {}, ["stop", "prevent"]),
|
|
3465
|
+
onClick: R(oe, ["stop"])
|
|
3466
|
+
}, [f(P(z), {
|
|
3467
3467
|
class: "h-4 w-4",
|
|
3468
3468
|
"aria-hidden": "true"
|
|
3469
3469
|
})], 32)) : o("", !0),
|
|
3470
|
-
f(P(
|
|
3470
|
+
f(P(ge), {
|
|
3471
3471
|
class: v(["h-4 w-4 shrink-0 text-slate-500 transition-transform dark:text-slate-400", p.value ? "rotate-180" : ""]),
|
|
3472
3472
|
"aria-hidden": "true"
|
|
3473
3473
|
}, null, 8, ["class"])
|
|
@@ -3485,31 +3485,31 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3485
3485
|
"aria-disabled": e.disabled || void 0,
|
|
3486
3486
|
title: e.title,
|
|
3487
3487
|
class: v(["flex cursor-pointer items-center justify-between gap-2 px-3 py-2 text-left text-sm", j(e, t)]),
|
|
3488
|
-
onMousedown: r[3] ||=
|
|
3488
|
+
onMousedown: r[3] ||= R(() => {}, ["prevent"]),
|
|
3489
3489
|
onMouseenter: (e) => h.value = t,
|
|
3490
3490
|
onClick: (t) => ne(e)
|
|
3491
|
-
}, [c("span",
|
|
3491
|
+
}, [c("span", wa, N(e.label), 1), A(e) ? (T(), a(P(pe), {
|
|
3492
3492
|
key: 0,
|
|
3493
3493
|
class: "h-4 w-4 shrink-0",
|
|
3494
3494
|
"aria-hidden": "true"
|
|
3495
|
-
})) : o("", !0)], 42,
|
|
3495
|
+
})) : o("", !0)], 42, Ca))), 128)), D.value.length === 0 ? (T(), s("li", Ta, N(t.options.length === 0 ? t.emptyText : t.noResultsText), 1)) : o("", !0)], 8, Sa)) : o("", !0)], 2));
|
|
3496
3496
|
}
|
|
3497
|
-
}),
|
|
3497
|
+
}), Da = { class: "rounded-xl border border-slate-200 bg-white text-left shadow-sm dark:border-slate-700 dark:bg-slate-900" }, Oa = {
|
|
3498
3498
|
key: 0,
|
|
3499
3499
|
class: "flex flex-wrap items-center justify-between gap-3 border-b border-slate-200 px-5 py-3 dark:border-slate-700"
|
|
3500
|
-
},
|
|
3500
|
+
}, ka = { class: "min-w-0" }, Aa = {
|
|
3501
3501
|
key: 0,
|
|
3502
3502
|
class: "text-base font-semibold text-slate-900 dark:text-slate-100"
|
|
3503
|
-
},
|
|
3503
|
+
}, ja = {
|
|
3504
3504
|
key: 1,
|
|
3505
3505
|
class: "text-sm text-slate-500 dark:text-slate-400"
|
|
3506
|
-
},
|
|
3506
|
+
}, Ma = {
|
|
3507
3507
|
key: 0,
|
|
3508
3508
|
class: "flex items-center gap-2"
|
|
3509
|
-
},
|
|
3509
|
+
}, Na = {
|
|
3510
3510
|
key: 1,
|
|
3511
3511
|
class: "flex flex-wrap items-center justify-end gap-2 border-t border-slate-200 px-5 py-3 dark:border-slate-700"
|
|
3512
|
-
},
|
|
3512
|
+
}, Pa = /* @__PURE__ */ p({
|
|
3513
3513
|
__name: "BaseCard",
|
|
3514
3514
|
props: {
|
|
3515
3515
|
title: { default: "" },
|
|
@@ -3517,24 +3517,24 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3517
3517
|
padding: { default: "md" }
|
|
3518
3518
|
},
|
|
3519
3519
|
setup(e) {
|
|
3520
|
-
return (t, n) => (T(), s("section",
|
|
3521
|
-
e.title || e.subtitle || t.$slots.actions ? (T(), s("header",
|
|
3520
|
+
return (t, n) => (T(), s("section", Da, [
|
|
3521
|
+
e.title || e.subtitle || t.$slots.actions ? (T(), s("header", Oa, [c("div", ka, [e.title ? (T(), s("h2", Aa, N(e.title), 1)) : o("", !0), e.subtitle ? (T(), s("p", ja, N(e.subtitle), 1)) : o("", !0)]), t.$slots.actions ? (T(), s("div", Ma, [A(t.$slots, "actions")])) : o("", !0)])) : o("", !0),
|
|
3522
3522
|
c("div", { class: v(e.padding === "sm" ? "p-4" : e.padding === "none" ? "" : "p-5") }, [A(t.$slots, "default")], 2),
|
|
3523
|
-
t.$slots.footer ? (T(), s("footer",
|
|
3523
|
+
t.$slots.footer ? (T(), s("footer", Na, [A(t.$slots, "footer")])) : o("", !0)
|
|
3524
3524
|
]));
|
|
3525
3525
|
}
|
|
3526
|
-
}),
|
|
3526
|
+
}), Fa = ["for"], Ia = {
|
|
3527
3527
|
key: 0,
|
|
3528
3528
|
class: "ml-0.5 text-red-500",
|
|
3529
3529
|
"aria-hidden": "true"
|
|
3530
|
-
},
|
|
3530
|
+
}, La = {
|
|
3531
3531
|
key: 1,
|
|
3532
3532
|
class: "mt-1 text-xs font-medium text-red-600 dark:text-red-400",
|
|
3533
3533
|
role: "alert"
|
|
3534
|
-
},
|
|
3534
|
+
}, Ra = {
|
|
3535
3535
|
key: 2,
|
|
3536
3536
|
class: "mt-1 text-xs text-slate-500 dark:text-slate-400"
|
|
3537
|
-
},
|
|
3537
|
+
}, za = /* @__PURE__ */ p({
|
|
3538
3538
|
__name: "BaseField",
|
|
3539
3539
|
props: {
|
|
3540
3540
|
label: { default: "" },
|
|
@@ -3560,12 +3560,12 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3560
3560
|
key: 0,
|
|
3561
3561
|
for: e.labelFor || void 0,
|
|
3562
3562
|
class: v(["mb-1 block", e.compact ? "text-xs uppercase tracking-wide text-slate-500 dark:text-slate-400" : "text-sm font-medium text-slate-700 dark:text-slate-200"])
|
|
3563
|
-
}, [d(N(e.label), 1), e.required ? (T(), s("span",
|
|
3563
|
+
}, [d(N(e.label), 1), e.required ? (T(), s("span", Ia, "*")) : o("", !0)], 10, Fa)) : o("", !0),
|
|
3564
3564
|
A(t.$slots, "default"),
|
|
3565
|
-
e.error ? (T(), s("p",
|
|
3565
|
+
e.error ? (T(), s("p", La, N(e.error), 1)) : e.hint ? (T(), s("p", Ra, N(e.hint), 1)) : o("", !0)
|
|
3566
3566
|
], 2));
|
|
3567
3567
|
}
|
|
3568
|
-
}),
|
|
3568
|
+
}), Ba = { class: "flex items-start justify-between gap-3" }, Va = { class: "min-w-0 text-left" }, Ha = { class: "truncate text-sm font-bold tracking-wide text-gray-800 dark:text-slate-200" }, Ua = /* @__PURE__ */ p({
|
|
3569
3569
|
__name: "BaseStatCard",
|
|
3570
3570
|
props: {
|
|
3571
3571
|
title: {},
|
|
@@ -3612,9 +3612,9 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3612
3612
|
icon: "text-slate-500 dark:text-slate-300"
|
|
3613
3613
|
}
|
|
3614
3614
|
}, r = i(() => n[t.accent]);
|
|
3615
|
-
return (t, n) => (T(), a(M(e.to ? P(
|
|
3616
|
-
default:
|
|
3617
|
-
c("p",
|
|
3615
|
+
return (t, n) => (T(), a(M(e.to ? P(Ae) : "div"), g(e.to ? { to: e.to } : {}, { class: ["relative block rounded-xl border-2 border-dashed bg-white p-5 transition-colors dark:bg-slate-800", [r.value.border, e.to ? "hover:bg-slate-50 dark:hover:bg-slate-700/60 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500" : ""]] }), {
|
|
3616
|
+
default: I(() => [c("div", Ba, [c("div", Va, [
|
|
3617
|
+
c("p", Ha, N(e.title), 1),
|
|
3618
3618
|
c("p", { class: v(["mt-1 truncate text-3xl font-bold", r.value.value]) }, N(e.value), 3),
|
|
3619
3619
|
e.subtitle ? (T(), s("p", {
|
|
3620
3620
|
key: 0,
|
|
@@ -3628,14 +3628,14 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3628
3628
|
_: 3
|
|
3629
3629
|
}, 16, ["class"]));
|
|
3630
3630
|
}
|
|
3631
|
-
}),
|
|
3631
|
+
}), Wa = [
|
|
3632
3632
|
"aria-checked",
|
|
3633
3633
|
"aria-label",
|
|
3634
3634
|
"disabled"
|
|
3635
|
-
],
|
|
3635
|
+
], Ga = {
|
|
3636
3636
|
key: 0,
|
|
3637
3637
|
class: "text-sm font-medium text-slate-700 dark:text-slate-200"
|
|
3638
|
-
},
|
|
3638
|
+
}, Ka = /* @__PURE__ */ p({
|
|
3639
3639
|
__name: "BaseToggle",
|
|
3640
3640
|
props: {
|
|
3641
3641
|
modelValue: {
|
|
@@ -3675,18 +3675,99 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3675
3675
|
}, [c("span", {
|
|
3676
3676
|
class: v(["inline-block h-5 w-5 rounded-full bg-white shadow ring-1 ring-black/5 transition-transform", e.modelValue ? "translate-x-[22px]" : "translate-x-0.5"]),
|
|
3677
3677
|
"aria-hidden": "true"
|
|
3678
|
-
}, null, 2)], 10,
|
|
3678
|
+
}, null, 2)], 10, Wa), e.label ? (T(), s("span", Ga, N(e.label), 1)) : o("", !0)], 2));
|
|
3679
|
+
}
|
|
3680
|
+
}), qa = ["checked", "disabled"], Ja = {
|
|
3681
|
+
key: 0,
|
|
3682
|
+
class: "text-sm text-slate-700 dark:text-slate-200"
|
|
3683
|
+
}, Ya = /* @__PURE__ */ p({
|
|
3684
|
+
inheritAttrs: !1,
|
|
3685
|
+
__name: "BaseCheckbox",
|
|
3686
|
+
props: {
|
|
3687
|
+
modelValue: {
|
|
3688
|
+
type: Boolean,
|
|
3689
|
+
default: !1
|
|
3690
|
+
},
|
|
3691
|
+
label: { default: "" },
|
|
3692
|
+
disabled: {
|
|
3693
|
+
type: Boolean,
|
|
3694
|
+
default: !1
|
|
3695
|
+
}
|
|
3696
|
+
},
|
|
3697
|
+
emits: ["update:modelValue", "change"],
|
|
3698
|
+
setup(e, { emit: t }) {
|
|
3699
|
+
let n = t;
|
|
3700
|
+
function r(e) {
|
|
3701
|
+
let t = e.target.checked;
|
|
3702
|
+
n("update:modelValue", t), n("change", t);
|
|
3703
|
+
}
|
|
3704
|
+
return (t, n) => (T(), s("label", { class: v(["inline-flex items-center gap-2 select-none", e.disabled ? "cursor-not-allowed opacity-60" : "cursor-pointer"]) }, [c("input", g(t.$attrs, {
|
|
3705
|
+
type: "checkbox",
|
|
3706
|
+
checked: e.modelValue,
|
|
3707
|
+
disabled: e.disabled,
|
|
3708
|
+
class: "h-5 w-5 shrink-0 cursor-[inherit] rounded-md border-slate-300 bg-white text-emerald-600 accent-emerald-600 transition-colors focus:ring-2 focus:ring-emerald-500/40 focus:ring-offset-0 dark:border-slate-600 dark:bg-slate-900 dark:checked:bg-emerald-600",
|
|
3709
|
+
onChange: r
|
|
3710
|
+
}), null, 16, qa), e.label || t.$slots.default ? (T(), s("span", Ja, [A(t.$slots, "default", {}, () => [d(N(e.label), 1)])])) : o("", !0)], 2));
|
|
3679
3711
|
}
|
|
3680
|
-
}),
|
|
3712
|
+
}), Xa = { class: "flex flex-col gap-2 text-left" }, Za = {
|
|
3713
|
+
class: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-emerald-100 text-sm font-semibold text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300",
|
|
3714
|
+
"aria-hidden": "true"
|
|
3715
|
+
}, Qa = { class: "min-w-0" }, $a = { class: "block truncate text-sm font-medium text-slate-900 dark:text-slate-100" }, eo = {
|
|
3716
|
+
key: 0,
|
|
3717
|
+
class: "block truncate text-xs text-slate-500 dark:text-slate-400"
|
|
3718
|
+
}, to = /* @__PURE__ */ p({
|
|
3719
|
+
__name: "BaseSidebarUser",
|
|
3720
|
+
props: {
|
|
3721
|
+
name: {},
|
|
3722
|
+
email: { default: "" },
|
|
3723
|
+
to: { default: void 0 },
|
|
3724
|
+
showLogout: {
|
|
3725
|
+
type: Boolean,
|
|
3726
|
+
default: !0
|
|
3727
|
+
},
|
|
3728
|
+
logoutLabel: { default: "Logout" },
|
|
3729
|
+
profileLabel: { default: "View profile" }
|
|
3730
|
+
},
|
|
3731
|
+
emits: ["logout"],
|
|
3732
|
+
setup(e, { emit: t }) {
|
|
3733
|
+
let n = e, r = t, l = i(() => (n.name || "?").split(/[\s._-]+/).filter(Boolean).slice(0, 2).map((e) => e[0].toUpperCase()).join(""));
|
|
3734
|
+
return (t, n) => (T(), s("div", Xa, [(T(), a(M(e.to ? P(Ae) : "div"), g(e.to ? { to: e.to } : {}, {
|
|
3735
|
+
class: ["flex items-center gap-3 rounded-lg p-2 transition-colors", e.to ? "hover:bg-slate-100 dark:hover:bg-slate-800 focus:outline-none focus-visible:ring-2 focus-visible:ring-emerald-500" : ""],
|
|
3736
|
+
title: e.to ? e.profileLabel : void 0
|
|
3737
|
+
}), {
|
|
3738
|
+
default: I(() => [c("span", Za, N(l.value), 1), c("span", Qa, [c("span", $a, N(e.name), 1), e.email ? (T(), s("span", eo, N(e.email), 1)) : o("", !0)])]),
|
|
3739
|
+
_: 1
|
|
3740
|
+
}, 16, ["class", "title"])), e.showLogout ? (T(), a(q, {
|
|
3741
|
+
key: 0,
|
|
3742
|
+
class: "w-full justify-center",
|
|
3743
|
+
description: e.logoutLabel,
|
|
3744
|
+
color: P(G).RED,
|
|
3745
|
+
size: P(K).SMALL,
|
|
3746
|
+
outline: "",
|
|
3747
|
+
"icon-left": "",
|
|
3748
|
+
onClick: n[0] ||= (e) => r("logout")
|
|
3749
|
+
}, {
|
|
3750
|
+
default: I(() => [f(P(ce), {
|
|
3751
|
+
class: "mr-1.5 h-4 w-4",
|
|
3752
|
+
"aria-hidden": "true"
|
|
3753
|
+
})]),
|
|
3754
|
+
_: 1
|
|
3755
|
+
}, 8, [
|
|
3756
|
+
"description",
|
|
3757
|
+
"color",
|
|
3758
|
+
"size"
|
|
3759
|
+
])) : o("", !0)]));
|
|
3760
|
+
}
|
|
3761
|
+
}), no = { class: "flex min-h-screen w-full flex-col items-center justify-center bg-slate-50 px-4 py-10 dark:bg-slate-950" }, ro = { class: "mb-6 flex justify-center" }, io = {
|
|
3681
3762
|
key: 0,
|
|
3682
3763
|
class: "mb-1 text-2xl font-bold tracking-tight text-slate-900 dark:text-slate-100"
|
|
3683
|
-
},
|
|
3764
|
+
}, ao = {
|
|
3684
3765
|
key: 1,
|
|
3685
3766
|
class: "text-sm text-slate-500 dark:text-slate-400"
|
|
3686
|
-
},
|
|
3767
|
+
}, oo = {
|
|
3687
3768
|
key: 2,
|
|
3688
3769
|
class: "mt-6 border-t border-slate-200 pt-4 text-center text-sm text-slate-500 dark:border-slate-700 dark:text-slate-400"
|
|
3689
|
-
},
|
|
3770
|
+
}, so = /* @__PURE__ */ p({
|
|
3690
3771
|
__name: "BaseAuthLayout",
|
|
3691
3772
|
props: {
|
|
3692
3773
|
title: { default: "" },
|
|
@@ -3697,17 +3778,17 @@ var Bn = ["aria-label", "aria-expanded"], Vn = { class: "flex flex-col h-full" }
|
|
|
3697
3778
|
}
|
|
3698
3779
|
},
|
|
3699
3780
|
setup(e) {
|
|
3700
|
-
return (t, n) => (T(), s("div",
|
|
3701
|
-
e.title ? (T(), s("h1",
|
|
3702
|
-
e.subtitle ? (T(), s("p",
|
|
3781
|
+
return (t, n) => (T(), s("div", no, [c("div", ro, [A(t.$slots, "logo", {}, () => [f(Ot, { size: P(J).MEDIUM }, null, 8, ["size"])])]), c("div", { class: v(["w-full rounded-xl border border-slate-200 bg-white p-6 text-left shadow-sm sm:p-8 dark:border-slate-700 dark:bg-slate-900", e.wide ? "max-w-3xl" : "max-w-md"]) }, [
|
|
3782
|
+
e.title ? (T(), s("h1", io, N(e.title), 1)) : o("", !0),
|
|
3783
|
+
e.subtitle ? (T(), s("p", ao, N(e.subtitle), 1)) : o("", !0),
|
|
3703
3784
|
c("div", { class: v(e.title || e.subtitle ? "mt-6" : "") }, [A(t.$slots, "default")], 2),
|
|
3704
|
-
t.$slots.footer ? (T(), s("div",
|
|
3785
|
+
t.$slots.footer ? (T(), s("div", oo, [A(t.$slots, "footer")])) : o("", !0)
|
|
3705
3786
|
], 2)]));
|
|
3706
3787
|
}
|
|
3707
3788
|
});
|
|
3708
3789
|
//#endregion
|
|
3709
3790
|
//#region node_modules/@heroicons/vue/20/solid/esm/CheckCircleIcon.js
|
|
3710
|
-
function
|
|
3791
|
+
function co(e, t) {
|
|
3711
3792
|
return T(), s("svg", {
|
|
3712
3793
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3713
3794
|
viewBox: "0 0 20 20",
|
|
@@ -3722,7 +3803,7 @@ function Qa(e, t) {
|
|
|
3722
3803
|
}
|
|
3723
3804
|
//#endregion
|
|
3724
3805
|
//#region node_modules/@heroicons/vue/20/solid/esm/XCircleIcon.js
|
|
3725
|
-
function
|
|
3806
|
+
function lo(e, t) {
|
|
3726
3807
|
return T(), s("svg", {
|
|
3727
3808
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3728
3809
|
viewBox: "0 0 20 20",
|
|
@@ -3737,7 +3818,7 @@ function $a(e, t) {
|
|
|
3737
3818
|
}
|
|
3738
3819
|
//#endregion
|
|
3739
3820
|
//#region src/components/BaseBooleanBadge.vue
|
|
3740
|
-
var
|
|
3821
|
+
var uo = /* @__PURE__ */ p({
|
|
3741
3822
|
__name: "BaseBooleanBadge",
|
|
3742
3823
|
props: {
|
|
3743
3824
|
value: {
|
|
@@ -3748,20 +3829,20 @@ var eo = /* @__PURE__ */ p({
|
|
|
3748
3829
|
falseLabel: { default: "No" }
|
|
3749
3830
|
},
|
|
3750
3831
|
setup(e) {
|
|
3751
|
-
return (t, n) => (T(), s("span", { class: v(["inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium ring-1 ring-inset", e.value ? "bg-emerald-50 text-emerald-700 ring-emerald-600/20 dark:bg-emerald-500/10 dark:text-emerald-300 dark:ring-emerald-400/30" : "bg-
|
|
3832
|
+
return (t, n) => (T(), s("span", { class: v(["inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium ring-1 ring-inset", e.value ? "bg-emerald-50 text-emerald-700 ring-emerald-600/20 dark:bg-emerald-500/10 dark:text-emerald-300 dark:ring-emerald-400/30" : "bg-red-50 text-red-700 ring-red-600/20 dark:bg-red-500/10 dark:text-red-300 dark:ring-red-400/30"]) }, [e.value ? (T(), a(P(co), {
|
|
3752
3833
|
key: 0,
|
|
3753
3834
|
class: "h-3.5 w-3.5",
|
|
3754
3835
|
"aria-hidden": "true"
|
|
3755
|
-
})) : (T(), a(P(
|
|
3836
|
+
})) : (T(), a(P(lo), {
|
|
3756
3837
|
key: 1,
|
|
3757
3838
|
class: "h-3.5 w-3.5",
|
|
3758
3839
|
"aria-hidden": "true"
|
|
3759
3840
|
})), d(" " + N(e.value ? e.trueLabel : e.falseLabel), 1)], 2));
|
|
3760
3841
|
}
|
|
3761
|
-
}),
|
|
3842
|
+
}), fo = { class: "text-xs uppercase tracking-wide text-slate-500 dark:text-slate-400" }, po = ["href"], mo = {
|
|
3762
3843
|
key: 1,
|
|
3763
3844
|
class: "text-slate-400 dark:text-slate-500"
|
|
3764
|
-
},
|
|
3845
|
+
}, ho = /* @__PURE__ */ p({
|
|
3765
3846
|
__name: "BaseDetailList",
|
|
3766
3847
|
props: {
|
|
3767
3848
|
items: {},
|
|
@@ -3775,20 +3856,20 @@ var eo = /* @__PURE__ */ p({
|
|
|
3775
3856
|
return (r, i) => (T(), s("dl", { class: v(["grid grid-cols-1 gap-x-6 gap-y-4 text-left", t.columns === 2 ? "sm:grid-cols-2" : t.columns === 3 ? "sm:grid-cols-2 lg:grid-cols-3" : ""]) }, [(T(!0), s(e, null, k(t.items, (r) => (T(), s("div", {
|
|
3776
3857
|
key: r.label,
|
|
3777
3858
|
class: "min-w-0"
|
|
3778
|
-
}, [c("dt",
|
|
3859
|
+
}, [c("dt", fo, N(r.label), 1), c("dd", { class: v(["mt-1 break-words text-sm text-slate-900 dark:text-slate-100", r.mono ? "font-mono" : ""]) }, [r.href && !n(r.value) ? (T(), s("a", {
|
|
3779
3860
|
key: 0,
|
|
3780
3861
|
href: r.href,
|
|
3781
3862
|
target: "_blank",
|
|
3782
3863
|
rel: "noopener noreferrer",
|
|
3783
3864
|
class: "text-emerald-600 hover:underline dark:text-emerald-400"
|
|
3784
|
-
}, N(r.value), 9,
|
|
3865
|
+
}, N(r.value), 9, po)) : n(r.value) ? (T(), s("span", mo, N(t.emptyText), 1)) : (T(), s(e, { key: 2 }, [d(N(r.value), 1)], 64))], 2)]))), 128))], 2));
|
|
3785
3866
|
}
|
|
3786
3867
|
});
|
|
3787
3868
|
//#endregion
|
|
3788
3869
|
//#region src/composables/useDebounce.ts
|
|
3789
|
-
function
|
|
3870
|
+
function go(e, t = 300) {
|
|
3790
3871
|
let n = O(e.value), r = null;
|
|
3791
|
-
return
|
|
3872
|
+
return ae(e, (e) => {
|
|
3792
3873
|
r && clearTimeout(r), r = setTimeout(() => {
|
|
3793
3874
|
n.value = e, r = null;
|
|
3794
3875
|
}, t);
|
|
@@ -3798,7 +3879,7 @@ function ao(e, t = 300) {
|
|
|
3798
3879
|
}
|
|
3799
3880
|
//#endregion
|
|
3800
3881
|
//#region src/composables/useToast.ts
|
|
3801
|
-
function
|
|
3882
|
+
function _o(e = 3e3) {
|
|
3802
3883
|
let t = O(!1), n = O(""), r = O(Y.SUCCESS), i = null;
|
|
3803
3884
|
function a() {
|
|
3804
3885
|
i &&= (clearTimeout(i), null);
|
|
@@ -3819,8 +3900,8 @@ function oo(e = 3e3) {
|
|
|
3819
3900
|
}
|
|
3820
3901
|
//#endregion
|
|
3821
3902
|
//#region src/composables/useQueryParamSync.ts
|
|
3822
|
-
function
|
|
3823
|
-
let e =
|
|
3903
|
+
function vo() {
|
|
3904
|
+
let e = je(), t = Me();
|
|
3824
3905
|
function n(t) {
|
|
3825
3906
|
let n = e.query[t];
|
|
3826
3907
|
return typeof n == "string" ? n : "";
|
|
@@ -3841,8 +3922,8 @@ function so() {
|
|
|
3841
3922
|
}
|
|
3842
3923
|
//#endregion
|
|
3843
3924
|
//#region src/composables/useFieldClasses.ts
|
|
3844
|
-
function
|
|
3845
|
-
let { isDark: e } =
|
|
3925
|
+
function yo() {
|
|
3926
|
+
let { isDark: e } = U(), t = i(() => e.value ? "text-gray-300" : "text-gray-600"), n = i(() => e.value ? "bg-gray-800 border-gray-600 text-gray-100 placeholder-gray-500 focus:ring-emerald-500 focus:border-emerald-500" : "bg-white border-gray-300 text-gray-800 focus:ring-emerald-500 focus:border-emerald-500");
|
|
3846
3927
|
function r(t) {
|
|
3847
3928
|
return t == null || String(t).trim() === "" ? e.value ? "bg-gray-800 border-red-500 text-gray-100 placeholder-gray-500 focus:ring-red-500 focus:border-red-500 ring-1 ring-red-500/30" : "bg-white border-red-400 text-gray-800 focus:ring-red-500 focus:border-red-500 ring-1 ring-red-400/30" : n.value;
|
|
3848
3929
|
}
|
|
@@ -3854,7 +3935,7 @@ function co() {
|
|
|
3854
3935
|
}
|
|
3855
3936
|
//#endregion
|
|
3856
3937
|
//#region src/composables/usePolling.ts
|
|
3857
|
-
function
|
|
3938
|
+
function bo(e, t, n = {}) {
|
|
3858
3939
|
let { immediate: r = !0, pauseWhenHidden: i = !0 } = n, a = null, o = O(!1), s = !1;
|
|
3859
3940
|
function c() {
|
|
3860
3941
|
a === null && t !== null && (a = setInterval(() => void e(), t));
|
|
@@ -3889,62 +3970,62 @@ function lo(e, t, n = {}) {
|
|
|
3889
3970
|
}
|
|
3890
3971
|
//#endregion
|
|
3891
3972
|
//#region src/enums/BaseBadgeEnum.ts
|
|
3892
|
-
var
|
|
3973
|
+
var xo = /* @__PURE__ */ function(e) {
|
|
3893
3974
|
return e.WIN = "WIN", e.LOSE = "LOSE", e;
|
|
3894
3975
|
}({});
|
|
3895
3976
|
//#endregion
|
|
3896
3977
|
//#region src/utils/util.ts
|
|
3897
|
-
function
|
|
3978
|
+
function So(e) {
|
|
3898
3979
|
let t = "red";
|
|
3899
3980
|
switch (e) {
|
|
3900
|
-
case
|
|
3981
|
+
case B.ERROR:
|
|
3901
3982
|
t = "red";
|
|
3902
3983
|
break;
|
|
3903
|
-
case
|
|
3984
|
+
case B.SUCCESS:
|
|
3904
3985
|
t = "green";
|
|
3905
3986
|
break;
|
|
3906
|
-
case
|
|
3987
|
+
case B.INFO:
|
|
3907
3988
|
t = "gray";
|
|
3908
3989
|
break;
|
|
3909
|
-
case
|
|
3990
|
+
case B.WARNING: t = "yellow";
|
|
3910
3991
|
}
|
|
3911
3992
|
return t;
|
|
3912
3993
|
}
|
|
3913
|
-
function
|
|
3994
|
+
function Co(e) {
|
|
3914
3995
|
let t = "red";
|
|
3915
3996
|
switch (e) {
|
|
3916
|
-
case
|
|
3997
|
+
case W.GREEN:
|
|
3917
3998
|
t = "green";
|
|
3918
3999
|
break;
|
|
3919
|
-
case
|
|
4000
|
+
case W.RED:
|
|
3920
4001
|
t = "red";
|
|
3921
4002
|
break;
|
|
3922
|
-
case
|
|
4003
|
+
case W.BLUE:
|
|
3923
4004
|
t = "blue";
|
|
3924
4005
|
break;
|
|
3925
|
-
case
|
|
4006
|
+
case W.YELLOW:
|
|
3926
4007
|
t = "yellow";
|
|
3927
4008
|
break;
|
|
3928
|
-
case
|
|
4009
|
+
case W.BLACK:
|
|
3929
4010
|
t = "black";
|
|
3930
4011
|
break;
|
|
3931
|
-
case
|
|
4012
|
+
case W.GRAY:
|
|
3932
4013
|
t = "gray";
|
|
3933
4014
|
break;
|
|
3934
|
-
case
|
|
4015
|
+
case W.NONE: t = "";
|
|
3935
4016
|
}
|
|
3936
4017
|
return t;
|
|
3937
4018
|
}
|
|
3938
4019
|
//#endregion
|
|
3939
4020
|
//#region src/utils/httpColors.ts
|
|
3940
|
-
var
|
|
4021
|
+
var wo = {
|
|
3941
4022
|
GET: "bg-blue-600",
|
|
3942
4023
|
POST: "bg-emerald-600",
|
|
3943
4024
|
PUT: "bg-amber-600",
|
|
3944
4025
|
DELETE: "bg-red-600",
|
|
3945
4026
|
PATCH: "bg-purple-600",
|
|
3946
4027
|
HEAD: "bg-gray-600"
|
|
3947
|
-
},
|
|
4028
|
+
}, To = {
|
|
3948
4029
|
GET: "bg-blue-500",
|
|
3949
4030
|
POST: "bg-green-500",
|
|
3950
4031
|
PUT: "bg-yellow-500",
|
|
@@ -3952,39 +4033,39 @@ var mo = {
|
|
|
3952
4033
|
PATCH: "bg-purple-500",
|
|
3953
4034
|
HEAD: "bg-gray-500"
|
|
3954
4035
|
};
|
|
3955
|
-
function
|
|
3956
|
-
return e ?
|
|
4036
|
+
function Eo(e) {
|
|
4037
|
+
return e ? wo[e.toUpperCase()] ?? "bg-gray-600" : "bg-gray-600";
|
|
3957
4038
|
}
|
|
3958
|
-
function
|
|
3959
|
-
return e ?
|
|
4039
|
+
function Do(e) {
|
|
4040
|
+
return e ? To[e.toUpperCase()] ?? "bg-gray-500" : "bg-gray-500";
|
|
3960
4041
|
}
|
|
3961
|
-
function
|
|
4042
|
+
function Oo(e) {
|
|
3962
4043
|
let t = e ?? 0;
|
|
3963
4044
|
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";
|
|
3964
4045
|
}
|
|
3965
|
-
function
|
|
4046
|
+
function ko(e, t) {
|
|
3966
4047
|
let n = (e || "ANY").toUpperCase();
|
|
3967
4048
|
return n === "GET" ? t ? "bg-blue-500/15 text-blue-400" : "bg-blue-100 text-blue-700" : n === "POST" ? t ? "bg-emerald-500/15 text-emerald-400" : "bg-emerald-100 text-emerald-700" : n === "PUT" ? t ? "bg-amber-500/15 text-amber-400" : "bg-amber-100 text-amber-700" : n === "DELETE" ? t ? "bg-red-500/15 text-red-400" : "bg-red-100 text-red-700" : n === "PATCH" ? t ? "bg-purple-500/15 text-purple-400" : "bg-purple-100 text-purple-700" : n === "HEAD" ? t ? "bg-sky-500/15 text-sky-400" : "bg-sky-100 text-sky-700" : t ? "bg-gray-500/15 text-gray-400" : "bg-gray-100 text-gray-600";
|
|
3968
4049
|
}
|
|
3969
|
-
function
|
|
4050
|
+
function Ao(e, t) {
|
|
3970
4051
|
let n = e ?? 200;
|
|
3971
4052
|
return n >= 200 && n < 300 ? t ? "bg-emerald-500/15 text-emerald-300" : "bg-emerald-100 text-emerald-700" : n >= 300 && n < 400 ? t ? "bg-sky-500/15 text-sky-300" : "bg-sky-100 text-sky-700" : n >= 400 && n < 500 ? t ? "bg-amber-500/15 text-amber-300" : "bg-amber-100 text-amber-700" : n >= 500 && n < 600 ? t ? "bg-red-500/15 text-red-300" : "bg-red-100 text-red-700" : t ? "bg-gray-800 text-gray-400" : "bg-gray-100 text-gray-600";
|
|
3972
4053
|
}
|
|
3973
|
-
function
|
|
4054
|
+
function jo(e, t) {
|
|
3974
4055
|
let n = e ?? 200;
|
|
3975
4056
|
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";
|
|
3976
4057
|
}
|
|
3977
4058
|
//#endregion
|
|
3978
4059
|
//#region src/utils/kvRows.ts
|
|
3979
|
-
function
|
|
4060
|
+
function Mo(e) {
|
|
3980
4061
|
return !(e.key ?? "").trim() || e.matcherType === "absent" ? !1 : !(e.value ?? "").trim();
|
|
3981
4062
|
}
|
|
3982
|
-
function
|
|
4063
|
+
function No(e) {
|
|
3983
4064
|
return e.matcherType === "absent" || !(e.value ?? "").trim() ? !1 : !(e.key ?? "").trim();
|
|
3984
4065
|
}
|
|
3985
4066
|
//#endregion
|
|
3986
4067
|
//#region src/utils/sanitizeHtml.ts
|
|
3987
|
-
var
|
|
4068
|
+
var Po = /* @__PURE__ */ new Set([
|
|
3988
4069
|
"A",
|
|
3989
4070
|
"B",
|
|
3990
4071
|
"STRONG",
|
|
@@ -3999,7 +4080,7 @@ var wo = /* @__PURE__ */ new Set([
|
|
|
3999
4080
|
"LI",
|
|
4000
4081
|
"SPAN",
|
|
4001
4082
|
"DIV"
|
|
4002
|
-
]),
|
|
4083
|
+
]), Fo = /* @__PURE__ */ new Set([
|
|
4003
4084
|
"SCRIPT",
|
|
4004
4085
|
"STYLE",
|
|
4005
4086
|
"IFRAME",
|
|
@@ -4007,53 +4088,53 @@ var wo = /* @__PURE__ */ new Set([
|
|
|
4007
4088
|
"EMBED",
|
|
4008
4089
|
"NOSCRIPT",
|
|
4009
4090
|
"TEMPLATE"
|
|
4010
|
-
]),
|
|
4011
|
-
function
|
|
4091
|
+
]), Io = { A: /* @__PURE__ */ new Set(["href", "title"]) };
|
|
4092
|
+
function Lo(e) {
|
|
4012
4093
|
let t = e.trim().toLowerCase();
|
|
4013
4094
|
return t.startsWith("http://") || t.startsWith("https://") || t.startsWith("mailto:") || t.startsWith("tel:") || t.startsWith("/") || t.startsWith("#") || t === "";
|
|
4014
4095
|
}
|
|
4015
|
-
function
|
|
4096
|
+
function Ro(e) {
|
|
4016
4097
|
if (e.nodeType !== Node.ELEMENT_NODE) return;
|
|
4017
4098
|
let t = e, n = t.tagName.toUpperCase();
|
|
4018
|
-
if (!
|
|
4019
|
-
|
|
4099
|
+
if (!Po.has(n)) {
|
|
4100
|
+
Fo.has(n) ? t.remove() : t.replaceWith(document.createTextNode(t.textContent ?? ""));
|
|
4020
4101
|
return;
|
|
4021
4102
|
}
|
|
4022
|
-
let r =
|
|
4103
|
+
let r = Io[n] ?? /* @__PURE__ */ new Set();
|
|
4023
4104
|
for (let e of Array.from(t.attributes)) {
|
|
4024
4105
|
if (!r.has(e.name.toLowerCase())) {
|
|
4025
4106
|
t.removeAttribute(e.name);
|
|
4026
4107
|
continue;
|
|
4027
4108
|
}
|
|
4028
|
-
n === "A" && e.name.toLowerCase() === "href" && !
|
|
4109
|
+
n === "A" && e.name.toLowerCase() === "href" && !Lo(e.value) && t.removeAttribute(e.name);
|
|
4029
4110
|
}
|
|
4030
4111
|
n === "A" && t.hasAttribute("href") && (t.setAttribute("rel", "noopener noreferrer"), t.setAttribute("target", "_blank"));
|
|
4031
|
-
for (let e of Array.from(t.childNodes))
|
|
4112
|
+
for (let e of Array.from(t.childNodes)) Ro(e);
|
|
4032
4113
|
}
|
|
4033
|
-
function
|
|
4114
|
+
function zo(e) {
|
|
4034
4115
|
if (!e) return "";
|
|
4035
4116
|
let t = new DOMParser().parseFromString(`<div>${e}</div>`, "text/html").body.firstElementChild;
|
|
4036
4117
|
if (!t) return "";
|
|
4037
|
-
for (let e of Array.from(t.childNodes))
|
|
4118
|
+
for (let e of Array.from(t.childNodes)) Ro(e);
|
|
4038
4119
|
return t.innerHTML;
|
|
4039
4120
|
}
|
|
4040
4121
|
//#endregion
|
|
4041
4122
|
//#region src/utils/format.ts
|
|
4042
|
-
var
|
|
4043
|
-
function
|
|
4044
|
-
if (e == null || typeof e == "string" && e.trim() === "") return
|
|
4123
|
+
var Bo = "—";
|
|
4124
|
+
function Vo(e, t = 4) {
|
|
4125
|
+
if (e == null || typeof e == "string" && e.trim() === "") return Bo;
|
|
4045
4126
|
let n = typeof e == "string" ? Number(e) : e;
|
|
4046
4127
|
return isFinite(n) ? n.toLocaleString(void 0, {
|
|
4047
4128
|
minimumFractionDigits: t,
|
|
4048
4129
|
maximumFractionDigits: t
|
|
4049
|
-
}) :
|
|
4130
|
+
}) : Bo;
|
|
4050
4131
|
}
|
|
4051
|
-
function
|
|
4052
|
-
if (e == null || e === "") return
|
|
4132
|
+
function Ho(e) {
|
|
4133
|
+
if (e == null || e === "") return Bo;
|
|
4053
4134
|
let t = new Date(e);
|
|
4054
4135
|
return isNaN(t.getTime()) ? String(e) : t.toLocaleString();
|
|
4055
4136
|
}
|
|
4056
|
-
function
|
|
4137
|
+
function Uo(e) {
|
|
4057
4138
|
return new Date(e).toLocaleString(void 0, {
|
|
4058
4139
|
month: "short",
|
|
4059
4140
|
day: "numeric",
|
|
@@ -4061,13 +4142,13 @@ function No(e) {
|
|
|
4061
4142
|
minute: "2-digit"
|
|
4062
4143
|
});
|
|
4063
4144
|
}
|
|
4064
|
-
function
|
|
4145
|
+
function Wo(e) {
|
|
4065
4146
|
return new Date(e).toLocaleDateString(void 0, {
|
|
4066
4147
|
month: "short",
|
|
4067
4148
|
day: "numeric"
|
|
4068
4149
|
});
|
|
4069
4150
|
}
|
|
4070
|
-
function
|
|
4151
|
+
function Go(e) {
|
|
4071
4152
|
try {
|
|
4072
4153
|
return new Date(e).toLocaleString(void 0, {
|
|
4073
4154
|
year: "numeric",
|
|
@@ -4083,7 +4164,7 @@ function Fo(e) {
|
|
|
4083
4164
|
return String(e);
|
|
4084
4165
|
}
|
|
4085
4166
|
}
|
|
4086
|
-
function
|
|
4167
|
+
function Ko(e) {
|
|
4087
4168
|
if (!isFinite(e) || e === 0) return e.toFixed(2);
|
|
4088
4169
|
let t = Math.abs(e), n = 2;
|
|
4089
4170
|
return t < 1e-4 ? n = 8 : t < .01 ? n = 6 : t < 1 ? n = 4 : t < 100 && (n = 3), e.toLocaleString(void 0, {
|
|
@@ -4091,14 +4172,14 @@ function Io(e) {
|
|
|
4091
4172
|
maximumFractionDigits: n
|
|
4092
4173
|
});
|
|
4093
4174
|
}
|
|
4094
|
-
function
|
|
4175
|
+
function qo(e, t = 2) {
|
|
4095
4176
|
return `${e >= 0 ? "+" : ""}${e.toFixed(t)}%`;
|
|
4096
4177
|
}
|
|
4097
|
-
function
|
|
4178
|
+
function Jo(e) {
|
|
4098
4179
|
return `${e < 0 ? "-" : "+"}$${Math.abs(e).toFixed(2)}`;
|
|
4099
4180
|
}
|
|
4100
|
-
function
|
|
4101
|
-
if (e == null || e === "") return
|
|
4181
|
+
function Yo(e) {
|
|
4182
|
+
if (e == null || e === "") return Bo;
|
|
4102
4183
|
let t = new Date(e);
|
|
4103
4184
|
return isNaN(t.getTime()) ? String(e) : t.toLocaleDateString("en-US", {
|
|
4104
4185
|
year: "numeric",
|
|
@@ -4106,8 +4187,8 @@ function zo(e) {
|
|
|
4106
4187
|
day: "numeric"
|
|
4107
4188
|
});
|
|
4108
4189
|
}
|
|
4109
|
-
function
|
|
4110
|
-
if (e == null || e === "") return
|
|
4190
|
+
function Xo(e) {
|
|
4191
|
+
if (e == null || e === "") return Bo;
|
|
4111
4192
|
let t = new Date(e);
|
|
4112
4193
|
return isNaN(t.getTime()) ? String(e) : t.toLocaleDateString("en-US", {
|
|
4113
4194
|
year: "numeric",
|
|
@@ -4117,22 +4198,22 @@ function Bo(e) {
|
|
|
4117
4198
|
minute: "2-digit"
|
|
4118
4199
|
});
|
|
4119
4200
|
}
|
|
4120
|
-
function
|
|
4201
|
+
function Zo(e) {
|
|
4121
4202
|
if (typeof e != "number" || !isFinite(e) || e <= 0) return "";
|
|
4122
4203
|
let t = e / 1e3, n = t < 1 ? 3 : 2;
|
|
4123
4204
|
return `= ${t.toFixed(n)} s`;
|
|
4124
4205
|
}
|
|
4125
|
-
function
|
|
4206
|
+
function Qo(e) {
|
|
4126
4207
|
return e ? e < 1024 ? `${e} B` : e < 1048576 ? `${(e / 1024).toFixed(1)} KB` : `${(e / 1048576).toFixed(1)} MB` : "";
|
|
4127
4208
|
}
|
|
4128
|
-
function
|
|
4209
|
+
function $o(e) {
|
|
4129
4210
|
try {
|
|
4130
4211
|
return JSON.stringify(JSON.parse(e), null, 2);
|
|
4131
4212
|
} catch {
|
|
4132
4213
|
return e;
|
|
4133
4214
|
}
|
|
4134
4215
|
}
|
|
4135
|
-
function
|
|
4216
|
+
function es(e) {
|
|
4136
4217
|
if (e == null) return "";
|
|
4137
4218
|
if (typeof e == "string") return e;
|
|
4138
4219
|
try {
|
|
@@ -4141,14 +4222,14 @@ function Wo(e) {
|
|
|
4141
4222
|
return String(e);
|
|
4142
4223
|
}
|
|
4143
4224
|
}
|
|
4144
|
-
function
|
|
4145
|
-
if (e == null || !isFinite(e)) return
|
|
4225
|
+
function ts(e, t = 2) {
|
|
4226
|
+
if (e == null || !isFinite(e)) return Bo;
|
|
4146
4227
|
let n = Math.floor(Math.max(0, e) / 6e4), r = Math.floor(n / 1440), i = Math.floor(n % 1440 / 60), a = n % 60, o = [];
|
|
4147
4228
|
return r > 0 && o.push(`${r}d`), (r > 0 || i > 0) && o.push(`${i}h`), o.push(`${a}m`), o.slice(0, t).join(" ");
|
|
4148
4229
|
}
|
|
4149
4230
|
//#endregion
|
|
4150
4231
|
//#region src/utils/validate.ts
|
|
4151
|
-
function
|
|
4232
|
+
function ns(e) {
|
|
4152
4233
|
let t = (e ?? "").trim();
|
|
4153
4234
|
if (!t) return !1;
|
|
4154
4235
|
try {
|
|
@@ -4158,7 +4239,7 @@ function Ko(e) {
|
|
|
4158
4239
|
return !1;
|
|
4159
4240
|
}
|
|
4160
4241
|
}
|
|
4161
|
-
function
|
|
4242
|
+
function rs(e) {
|
|
4162
4243
|
if (!e.trim()) return !0;
|
|
4163
4244
|
try {
|
|
4164
4245
|
return JSON.parse(e), !0;
|
|
@@ -4166,7 +4247,7 @@ function qo(e) {
|
|
|
4166
4247
|
return !1;
|
|
4167
4248
|
}
|
|
4168
4249
|
}
|
|
4169
|
-
function
|
|
4250
|
+
function is(e) {
|
|
4170
4251
|
if (!e.trim()) return !0;
|
|
4171
4252
|
try {
|
|
4172
4253
|
return !new DOMParser().parseFromString(e, "application/xml").getElementsByTagName("parsererror").length;
|
|
@@ -4174,7 +4255,7 @@ function Jo(e) {
|
|
|
4174
4255
|
return !1;
|
|
4175
4256
|
}
|
|
4176
4257
|
}
|
|
4177
|
-
function
|
|
4258
|
+
function as(e) {
|
|
4178
4259
|
if (!e.trim()) return !0;
|
|
4179
4260
|
let t = e.replace(/\s+/g, "");
|
|
4180
4261
|
if (!t) return !0;
|
|
@@ -4187,7 +4268,7 @@ function Yo(e) {
|
|
|
4187
4268
|
}
|
|
4188
4269
|
//#endregion
|
|
4189
4270
|
//#region src/utils/specForm.ts
|
|
4190
|
-
function
|
|
4271
|
+
function os(e, t) {
|
|
4191
4272
|
let n = {};
|
|
4192
4273
|
if (!e) return n;
|
|
4193
4274
|
for (let r of e) {
|
|
@@ -4196,7 +4277,7 @@ function Xo(e, t) {
|
|
|
4196
4277
|
}
|
|
4197
4278
|
return n;
|
|
4198
4279
|
}
|
|
4199
|
-
function
|
|
4280
|
+
function ss(e, t) {
|
|
4200
4281
|
if (!e) return null;
|
|
4201
4282
|
for (let n of e) if (n.type === "decimal" || n.type === "integer") {
|
|
4202
4283
|
let e = t[n.key], r = e === "" || e == null;
|
|
@@ -4207,7 +4288,7 @@ function Zo(e, t) {
|
|
|
4207
4288
|
}
|
|
4208
4289
|
//#endregion
|
|
4209
4290
|
//#region src/utils/pnl.ts
|
|
4210
|
-
function
|
|
4291
|
+
function cs(e) {
|
|
4211
4292
|
if (e.buyPrice == null || e.lastPrice == null || e.filledQty == null) return {
|
|
4212
4293
|
pnlUsd: null,
|
|
4213
4294
|
pnlPct: null
|
|
@@ -4222,4 +4303,4 @@ function Qo(e) {
|
|
|
4222
4303
|
};
|
|
4223
4304
|
}
|
|
4224
4305
|
//#endregion
|
|
4225
|
-
export {
|
|
4306
|
+
export { B as AlertEnum, Cr as BaseActionButton, ze as BaseAlert, pr as BaseAppLayout, so as BaseAuthLayout, Ve as BaseBadge, xo as BaseBadgeEnum, ga as BaseBarDistribution, uo as BaseBooleanBadge, Ge as BaseBreadcrumb, q as BaseButton, G as BaseButtonEnum, K as BaseButtonSizeEnum, Pa as BaseCard, Ya as BaseCheckbox, Xr as BaseChipButton, ii as BaseCodeBlock, bn as BaseCollapsibleSection, wn as BaseConfirmModal, Tr as BaseCopyButton, ta as BaseCredentialsForm, _a as BaseDateTimePicker, ho as BaseDetailList, pi as BaseDropdown, ur as BaseEntityPickerModal, za as BaseField, ri as BaseFileDropzone, Ri as BaseFilterChip, kr as BaseGoogleSignInButton, oi as BaseInput, it as BaseLine, at as BaseLoginEnum, Vr as BaseLoginForm, Ot as BaseLogo, J as BaseLogoEnum, Ft as BaseModal, kt as BaseModalEnum, _n as BaseModalShell, jn as BaseNotFoundPage, Jr as BaseNotificationPanel, _r as BasePageHeader, da as BasePillPickerModal, Zr as BaseRemoveButton, It as BaseRow, Ea as BaseSearchSelect, _i as BaseSegmentedControl, ci as BaseSelect, Zn as BaseSidebar, to as BaseSidebarUser, Ni as BaseSpecFields, Lt as BaseSpinner, Ii as BaseStatBreakdown, Ua as BaseStatCard, ei as BaseStatusPill, Ti as BaseTable, On as BaseTextInputModal, Bt as BaseToast, Y as BaseToastEnum, Ka as BaseToggle, br as BaseToolbarButton, Ht as ColoredSquares, W as ColorsEnums, Gt as EarningsCard, Xt as EuroAmount, et as LineEnum, tn as Pagination, X as PositioningEnum, sn as TrendArrow, os as buildSpecParams, cs as computePnL, ss as firstInvalidNumericSpec, Qo as fmtBytes, Yo as fmtCalendarDate, Xo as fmtCalendarDateTime, Ho as fmtDate, Wo as fmtDateShort, Uo as fmtDateTime, Go as fmtDateTimeMs, ts as fmtDuration, Zo as fmtMsAsSeconds, Vo as fmtNumber, qo as fmtPct, Ko as fmtPrice, Jo as fmtUsd, $o as formatJson, So as getBaseColor, Co as getBaseColorOf, Ie as initTheme, Lo as isSafeHref, ns as isValidAbsoluteUrl, as as isValidBase64, rs as isValidJson, is as isValidXml, Do as methodBadgeBright, Eo as methodBadgeSolid, ko as methodBadgeTinted, No as rowKeyMissing, Mo as rowValueMissing, zo as sanitizeHtml, Ao as statusBadgeSoft, Oo as statusBadgeSolid, jo as statusBadgeTinted, es as stringifyValue, go as useDebouncedRef, cn as useEscapeKey, yo as useFieldClasses, Nn as useMobileSidebar, Bn as useNotifications, bo as usePolling, vo as useQueryParamSync, Ln as useSidebarCollapse, U as useTheme, Z as useThemeClasses, _o as useToast };
|