mgv-backoffice 1.20.0 → 1.22.0

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