@wishbone-media/spark 0.20.0 → 0.21.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/index.js CHANGED
@@ -1,149 +1,156 @@
1
- import { computed as C, resolveComponent as B, createElementBlock as g, openBlock as f, normalizeClass as T, createElementVNode as d, createVNode as v, unref as y, renderSlot as M, reactive as Z, Fragment as z, renderList as q, createCommentVNode as $, toDisplayString as H, createBlock as F, resolveDynamicComponent as ae, ref as R, inject as _e, provide as Ae, withCtx as L, createTextVNode as A, markRaw as Ce, mergeProps as oe, toHandlers as Se, watch as j, onMounted as pe, withModifiers as G, useSlots as $e, onUnmounted as je, h as me } from "vue";
2
- import { library as Te, icon as se } from "@fortawesome/fontawesome-svg-core";
3
- import { FontAwesomeIcon as Oe } from "@fortawesome/vue-fontawesome";
4
- import { faCloudDownload as ze, faBolt as Ie, faUndo as Ne, faEye as De, faSignOut as qe, faXmark as Ze, faTrash as Ke, faTimes as Ue, faStreetView as Ge, faSortUp as We, faSortDown as Ye, faSort as Xe, faScaleBalanced as Je, faSatelliteDish as Qe, faLayerPlus as et, faLaptopMobile as tt, faInfoCircle as st, faGripDotsVertical as at, faGearComplex as ot, faFlag as rt, faFaceSmileWink as nt, faFaceSmileRelaxed as lt, faExclamationTriangle as it, faEllipsisVertical as ct, faEllipsis as dt, faEdit as ut, faComments as pt, faCircleXmark as ft, faCircleUser as mt, faChevronUp as gt, faChevronRight as ht, faChevronLeft as yt, faChevronDown as bt, faCheckCircle as vt, faCheck as xt, faBullhorn as kt, faBellRing as wt, faBarsSort as _t, faArrowRightToLine as Ct, faArrowLeftToLine as St } from "@fortawesome/pro-regular-svg-icons";
5
- import { defineStore as re } from "pinia";
6
- import { TransitionRoot as Le, Dialog as He, TransitionChild as le, DialogPanel as Pe } from "@headlessui/vue";
7
- import ie from "nprogress";
8
- import { range as $t, get as D, find as Tt, has as Lt } from "lodash";
9
- import { HotTable as Ht } from "@handsontable/vue3";
1
+ import { computed as S, resolveComponent as A, createElementBlock as g, openBlock as m, normalizeClass as P, createElementVNode as d, createCommentVNode as $, createVNode as v, unref as x, renderSlot as O, reactive as q, Fragment as R, renderList as z, toDisplayString as L, createBlock as M, resolveDynamicComponent as I, markRaw as de, ref as E, watch as j, Transition as De, withCtx as C, normalizeProps as Ne, mergeProps as D, createTextVNode as B, Teleport as qe, TransitionGroup as ne, inject as Le, provide as Ze, toHandlers as Pe, onMounted as ge, withModifiers as X, useSlots as He, onUnmounted as Ke, h as ve } from "vue";
2
+ import { library as Ve, icon as le } from "@fortawesome/fontawesome-svg-core";
3
+ import { FontAwesomeIcon as Ue } from "@fortawesome/vue-fontawesome";
4
+ import { faCloudDownload as Ge, faBolt as We, faUndo as Ye, faEye as Xe, faSignOut as Je, faXmark as Qe, faTrash as et, faTimes as tt, faStreetView as st, faSortUp as at, faSortDown as ot, faSort as rt, faScaleBalanced as nt, faSatelliteDish as lt, faLayerPlus as it, faLaptopMobile as ct, faInfoCircle as ut, faGripDotsVertical as dt, faGearComplex as pt, faFlag as ft, faFaceSmileWink as mt, faFaceSmileRelaxed as ht, faExclamationTriangle as gt, faEllipsisVertical as yt, faEllipsis as vt, faEdit as bt, faComments as xt, faCircleXmark as kt, faCircleUser as _t, faChevronUp as wt, faChevronRight as St, faChevronLeft as Ct, faChevronDown as $t, faCheckCircle as Tt, faCheck as Lt, faBullhorn as Pt, faBellRing as Ht, faBarsSort as Vt, faArrowRightToLine as Mt, faArrowLeftToLine as Rt } from "@fortawesome/pro-regular-svg-icons";
5
+ import { defineStore as ie } from "pinia";
6
+ import { TransitionRoot as Me, Dialog as Re, TransitionChild as ue, DialogPanel as Be } from "@headlessui/vue";
7
+ import pe from "nprogress";
8
+ import { range as Bt, get as U, find as Et, has as At } from "lodash";
9
+ import { HotTable as Ft } from "@handsontable/vue3";
10
10
  import "handsontable/styles/handsontable.css";
11
11
  import "handsontable/styles/ht-theme-classic.css";
12
- import { registerPlugin as ne, AutoColumnSize as Pt, CopyPaste as Vt, StretchColumns as Rt, NestedHeaders as Bt } from "handsontable/plugins";
13
- import { registerAllCellTypes as Et } from "handsontable/cellTypes";
14
- import { useDebounceFn as Ve, watchDebounced as ge } from "@vueuse/core";
15
- import { registerRenderer as Mt, baseRenderer as Ft } from "handsontable/renderers";
16
- import { useRouter as K, useRoute as te } from "vue-router";
17
- import ee from "axios";
18
- var At = {
12
+ import { registerPlugin as ce, AutoColumnSize as Ot, CopyPaste as zt, StretchColumns as jt, NestedHeaders as It } from "handsontable/plugins";
13
+ import { registerAllCellTypes as Dt } from "handsontable/cellTypes";
14
+ import { useDebounceFn as Ee, watchDebounced as be } from "@vueuse/core";
15
+ import { registerRenderer as Nt, baseRenderer as qt } from "handsontable/renderers";
16
+ import { useRouter as W, useRoute as re } from "vue-router";
17
+ import oe from "axios";
18
+ var Zt = {
19
19
  prefix: "fad",
20
20
  iconName: "sort-up",
21
21
  icon: [384, 512, ["sort-asc"], "f0de", ["", "M32 224c-12.9 0-24.6-7.8-29.6-19.8S.2 178.5 9.4 169.4l160-160c12.5-12.5 32.8-12.5 45.3 0l160 160c9.2 9.2 11.9 22.9 6.9 34.9S364.9 224 352 224L32 224z"]]
22
- }, jt = {
22
+ }, Kt = {
23
23
  prefix: "fad",
24
24
  iconName: "sort",
25
25
  icon: [384, 512, ["unsorted"], "f0dc", ["M2.4 307.8c-5 12-2.2 25.7 6.9 34.9l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288c-12.9 0-24.6 7.8-29.6 19.8z", "M32 224c-12.9 0-24.6-7.8-29.6-19.8S.2 178.5 9.4 169.4l160-160c12.5-12.5 32.8-12.5 45.3 0l160 160c9.2 9.2 11.9 22.9 6.9 34.9S364.9 224 352 224L32 224z"]]
26
- }, Ot = {
26
+ }, Ut = {
27
27
  prefix: "fad",
28
28
  iconName: "sort-down",
29
29
  icon: [384, 512, ["sort-desc"], "f0dd", ["", "M32 288c-12.9 0-24.6 7.8-29.6 19.8S.2 333.5 9.4 342.6l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288z"]]
30
30
  };
31
- const E = {
32
- farArrowLeftToLine: St,
33
- farArrowRightToLine: Ct,
34
- farBarsSort: _t,
35
- farBellRing: wt,
36
- farBullhorn: kt,
37
- farCheck: xt,
38
- farCheckCircle: vt,
39
- farChevronDown: bt,
40
- farChevronLeft: yt,
41
- farChevronRight: ht,
42
- farChevronUp: gt,
43
- farCircleUser: mt,
44
- farCircleXmark: ft,
45
- farComments: pt,
46
- farEdit: ut,
47
- farEllipsis: dt,
48
- farEllipsisVertical: ct,
49
- farExclamationTriangle: it,
50
- farFaceSmileRelaxed: lt,
51
- farFaceSmileWink: nt,
52
- farFlag: rt,
53
- farGearComplex: ot,
54
- farGripDotsVertical: at,
55
- farInfoCircle: st,
56
- farLaptopMobile: tt,
57
- farLayerPlus: et,
58
- farSatelliteDish: Qe,
59
- farScaleBalanced: Je,
60
- farSort: Xe,
61
- farSortDown: Ye,
62
- farSortUp: We,
63
- farStreetView: Ge,
64
- farTimes: Ue,
65
- farTrash: Ke,
66
- farXmark: Ze,
67
- farSignOut: qe,
68
- farEye: De,
69
- farUndo: Ne,
70
- farBolt: Ie,
71
- farCloudDownload: ze,
72
- fadSort: jt,
73
- fadSortDown: Ot,
74
- fadSortUp: At
31
+ const F = {
32
+ farArrowLeftToLine: Rt,
33
+ farArrowRightToLine: Mt,
34
+ farBarsSort: Vt,
35
+ farBellRing: Ht,
36
+ farBullhorn: Pt,
37
+ farCheck: Lt,
38
+ farCheckCircle: Tt,
39
+ farChevronDown: $t,
40
+ farChevronLeft: Ct,
41
+ farChevronRight: St,
42
+ farChevronUp: wt,
43
+ farCircleUser: _t,
44
+ farCircleXmark: kt,
45
+ farComments: xt,
46
+ farEdit: bt,
47
+ farEllipsis: vt,
48
+ farEllipsisVertical: yt,
49
+ farExclamationTriangle: gt,
50
+ farFaceSmileRelaxed: ht,
51
+ farFaceSmileWink: mt,
52
+ farFlag: ft,
53
+ farGearComplex: pt,
54
+ farGripDotsVertical: dt,
55
+ farInfoCircle: ut,
56
+ farLaptopMobile: ct,
57
+ farLayerPlus: it,
58
+ farSatelliteDish: lt,
59
+ farScaleBalanced: nt,
60
+ farSort: rt,
61
+ farSortDown: ot,
62
+ farSortUp: at,
63
+ farStreetView: st,
64
+ farTimes: tt,
65
+ farTrash: et,
66
+ farXmark: Qe,
67
+ farSignOut: Je,
68
+ farEye: Xe,
69
+ farUndo: Ye,
70
+ farBolt: We,
71
+ farCloudDownload: Ge,
72
+ fadSort: Kt,
73
+ fadSortDown: Ut,
74
+ fadSortUp: Zt
75
75
  };
76
- function Vr(e) {
77
- Object.assign(E, e), Te.add(...Object.values(e));
76
+ function Kr(e) {
77
+ Object.assign(F, e), Ve.add(...Object.values(e));
78
78
  }
79
- function Rr(e) {
80
- Te.add(...Object.values(E)), e.component("FontAwesomeIcon", Oe);
79
+ function Ur(e) {
80
+ Ve.add(...Object.values(F)), e.component("FontAwesomeIcon", Ue);
81
81
  }
82
- const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }, Nt = { class: "ml-3" }, Dt = { class: "ml-auto pl-3 pt-1 self-start" }, qt = { class: "-mx-1.5 -my-1.5" }, Br = {
82
+ const Gt = { class: "flex items-center" }, Wt = { class: "shrink-0 self-start" }, Yt = { class: "ml-3" }, Xt = {
83
+ key: 0,
84
+ class: "ml-auto pl-3 pt-1 self-start"
85
+ }, Jt = { class: "-mx-1.5 -my-1.5" }, te = {
83
86
  __name: "SparkAlert",
84
87
  props: {
85
88
  type: {
86
89
  type: String,
87
90
  default: "info",
88
91
  validator: (e) => ["success", "warning", "danger", "info"].includes(e)
92
+ },
93
+ closeable: {
94
+ type: Boolean,
95
+ default: !0
89
96
  }
90
97
  },
91
98
  emits: ["close"],
92
99
  setup(e) {
93
- const s = e, t = C(() => ({
100
+ const s = e, t = S(() => ({
94
101
  success: "bg-green-50 border-green-200 text-green-700",
95
102
  warning: "bg-yellow-50 border-yellow-200 text-yellow-700",
96
103
  danger: "bg-red-50 border-red-200 text-red-700",
97
104
  info: "bg-blue-50 border-blue-200 text-blue-700"
98
- })[s.type]), a = C(() => ({
105
+ })[s.type]), a = S(() => ({
99
106
  success: "text-green-400",
100
107
  warning: "text-yellow-400",
101
108
  danger: "text-red-400",
102
109
  info: "text-blue-400"
103
- })[s.type]), l = C(() => ({
110
+ })[s.type]), l = S(() => ({
104
111
  success: "farCheckCircle",
105
112
  warning: "farExclamationTriangle",
106
113
  danger: "farCircleXmark",
107
114
  info: "farInfoCircle"
108
- })[s.type]), n = C(() => ({
115
+ })[s.type]), n = S(() => ({
109
116
  success: "text-green-400 hover:bg-green-100",
110
117
  warning: "text-yellow-400 hover:bg-yellow-100",
111
118
  danger: "text-red-400 hover:bg-red-100",
112
119
  info: "text-blue-400 hover:bg-blue-100"
113
120
  })[s.type]);
114
- return (o, i) => {
115
- const r = B("font-awesome-icon");
116
- return f(), g("div", {
117
- class: T(["rounded-md border p-4", t.value])
121
+ return (o, c) => {
122
+ const r = A("font-awesome-icon");
123
+ return m(), g("div", {
124
+ class: P(["rounded-md border p-4", t.value])
118
125
  }, [
119
- d("div", zt, [
120
- d("div", It, [
126
+ d("div", Gt, [
127
+ d("div", Wt, [
121
128
  v(r, {
122
- icon: y(E)[l.value],
123
- class: T(a.value)
129
+ icon: x(F)[l.value],
130
+ class: P(a.value)
124
131
  }, null, 8, ["icon", "class"])
125
132
  ]),
126
- d("div", Nt, [
127
- M(o.$slots, "default")
133
+ d("div", Yt, [
134
+ O(o.$slots, "default")
128
135
  ]),
129
- d("div", Dt, [
130
- d("div", qt, [
136
+ e.closeable ? (m(), g("div", Xt, [
137
+ d("div", Jt, [
131
138
  d("button", {
132
139
  type: "button",
133
- class: T(["inline-flex rounded-md px-2 py-1.5", n.value]),
134
- onClick: i[0] || (i[0] = (c) => o.$emit("close"))
140
+ class: P(["inline-flex rounded-md px-2 py-1.5", n.value]),
141
+ onClick: c[0] || (c[0] = (i) => o.$emit("close"))
135
142
  }, [
136
143
  v(r, {
137
- icon: y(E).farXmark
144
+ icon: x(F).farXmark
138
145
  }, null, 8, ["icon"])
139
146
  ], 2)
140
147
  ])
141
- ])
148
+ ])) : $("", !0)
142
149
  ])
143
150
  ], 2);
144
151
  };
145
152
  }
146
- }, ce = [
153
+ }, fe = [
147
154
  {
148
155
  name: "Bolt",
149
156
  description: "Job management",
@@ -192,41 +199,41 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
192
199
  href: "https://tabula.letsbolt.io",
193
200
  icon: "farCompass"
194
201
  }
195
- ], Re = re("sparkAppSelector", () => {
196
- const e = Z({
197
- apps: [...ce]
202
+ ], Ae = ie("sparkAppSelector", () => {
203
+ const e = q({
204
+ apps: [...fe]
198
205
  }), s = (n = {}) => {
199
206
  if (n.apps && Array.isArray(n.apps)) {
200
- const o = n.apps.filter((i) => {
201
- const r = i.name && i.description && i.icon && i.href;
202
- return r || console.warn("useSparkAppSelectorStore: Invalid app object", i), r;
207
+ const o = n.apps.filter((c) => {
208
+ const r = c.name && c.description && c.icon && c.href;
209
+ return r || console.warn("useSparkAppSelectorStore: Invalid app object", c), r;
203
210
  });
204
- e.apps = o.map((i) => ({
205
- name: i.name,
206
- description: i.description,
207
- icon: i.icon,
208
- href: i.href
211
+ e.apps = o.map((c) => ({
212
+ name: c.name,
213
+ description: c.description,
214
+ icon: c.icon,
215
+ href: c.href
209
216
  }));
210
217
  return;
211
218
  }
212
219
  if (n.appHrefs && typeof n.appHrefs == "object") {
213
220
  const o = /* @__PURE__ */ new Map();
214
- Object.keys(n.appHrefs).forEach((i) => {
215
- o.set(i.toLowerCase(), n.appHrefs[i]);
216
- }), e.apps = ce.map((i) => {
217
- const r = o.get(i.name.toLowerCase());
221
+ Object.keys(n.appHrefs).forEach((c) => {
222
+ o.set(c.toLowerCase(), n.appHrefs[c]);
223
+ }), e.apps = fe.map((c) => {
224
+ const r = o.get(c.name.toLowerCase());
218
225
  return {
219
- ...i,
220
- href: r || i.href
226
+ ...c,
227
+ href: r || c.href
221
228
  };
222
229
  });
223
230
  return;
224
231
  }
225
- e.apps = [...ce];
226
- }, t = C(() => e.apps), a = (n) => {
232
+ e.apps = [...fe];
233
+ }, t = S(() => e.apps), a = (n) => {
227
234
  if (!n) return null;
228
235
  const o = n.toLowerCase();
229
- return e.apps.find((i) => i.name.toLowerCase() === o) || null;
236
+ return e.apps.find((c) => c.name.toLowerCase() === o) || null;
230
237
  };
231
238
  return {
232
239
  state: e,
@@ -238,8 +245,8 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
238
245
  return o ? o.icon : "";
239
246
  }
240
247
  };
241
- }), Be = re("sparkApp", () => {
242
- const e = Z({
248
+ }), Fe = ie("sparkApp", () => {
249
+ const e = q({
243
250
  app: "",
244
251
  homeRoute: "dashboard",
245
252
  showBrandSelector: !0,
@@ -251,16 +258,16 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
251
258
  e.app = t.app || "", e.homeRoute = t.homeRoute ?? "dashboard", e.showBrandSelector = t.showBrandSelector ?? !0, e.showAppSelector = t.showAppSelector ?? !0;
252
259
  }
253
260
  };
254
- }), Zt = { class: "flex grow flex-col gap-y-5 overflow-y-auto bg-white rounded-lg" }, Kt = { class: "flex flex-1 flex-col" }, Ut = { class: "divide-y divide-gray-200" }, Gt = { class: "flex px-[22px] py-2.5 text-[12px] items-center" }, Wt = { class: "ml-auto flex items-center" }, Yt = ["href", "onClick"], Xt = { class: "gap-y-1" }, Jt = { class: "text-base text-gray-800 flex items-center" }, Qt = { class: "font-medium" }, es = {
261
+ }), Qt = { class: "flex grow flex-col gap-y-5 overflow-y-auto bg-white rounded-lg" }, es = { class: "flex flex-1 flex-col" }, ts = { class: "divide-y divide-gray-200" }, ss = { class: "flex px-[22px] py-2.5 text-[12px] items-center" }, as = { class: "ml-auto flex items-center" }, os = ["href", "onClick"], rs = { class: "gap-y-1" }, ns = { class: "text-base text-gray-800 flex items-center" }, ls = { class: "font-medium" }, is = {
255
262
  key: 0,
256
263
  class: "inline-flex items-center rounded-full bg-green-100 px-1.5 py-0.5 text-xs font-medium text-green-700 ml-1"
257
- }, ts = { class: "text-sm text-gray-500" }, ss = { class: "ml-auto flex items-center" }, as = { class: "mt-auto" }, os = {
264
+ }, cs = { class: "text-sm text-gray-500" }, us = { class: "ml-auto flex items-center" }, ds = { class: "mt-auto" }, ps = {
258
265
  key: 0,
259
266
  class: "p-6"
260
- }, rs = {
267
+ }, fs = {
261
268
  key: 1,
262
269
  class: "bg-gray-50 p-6"
263
- }, ns = {
270
+ }, ms = {
264
271
  __name: "SparkAppSelector",
265
272
  props: {
266
273
  bottomSlot: {
@@ -274,62 +281,62 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
274
281
  },
275
282
  emits: ["close", "select"],
276
283
  setup(e, { emit: s }) {
277
- const t = s, a = Re(), l = Be(), n = C(() => {
278
- const i = l.state.app;
284
+ const t = s, a = Ae(), l = Fe(), n = S(() => {
285
+ const c = l.state.app;
279
286
  return a.state.apps.map((r) => ({
280
287
  ...r,
281
- current: i && r.name.toLowerCase() === i.toLowerCase()
288
+ current: c && r.name.toLowerCase() === c.toLowerCase()
282
289
  }));
283
- }), o = (i, r) => {
284
- t("select", i);
290
+ }), o = (c, r) => {
291
+ t("select", c);
285
292
  };
286
- return (i, r) => {
287
- const c = B("font-awesome-icon");
288
- return f(), g("div", Zt, [
289
- d("div", Kt, [
290
- d("div", Ut, [
291
- d("div", Gt, [
293
+ return (c, r) => {
294
+ const i = A("font-awesome-icon");
295
+ return m(), g("div", Qt, [
296
+ d("div", es, [
297
+ d("div", ts, [
298
+ d("div", ss, [
292
299
  r[1] || (r[1] = d("div", null, "Mr Group Network", -1)),
293
- d("div", Wt, [
294
- v(c, {
295
- icon: y(E).farTimes,
300
+ d("div", as, [
301
+ v(i, {
302
+ icon: x(F).farTimes,
296
303
  class: "h-[15px] w-[15px] shrink-0 text-gray-400 cursor-pointer",
297
- onClick: r[0] || (r[0] = (p) => t("close"))
304
+ onClick: r[0] || (r[0] = (u) => t("close"))
298
305
  }, null, 8, ["icon"])
299
306
  ])
300
307
  ]),
301
- (f(!0), g(z, null, q(n.value, (p) => (f(), g("a", {
302
- key: p.name,
303
- href: p.href,
308
+ (m(!0), g(R, null, z(n.value, (u) => (m(), g("a", {
309
+ key: u.name,
310
+ href: u.href,
304
311
  target: "_blank",
305
- class: T([p.current ? "bg-gray-50" : "hover:bg-gray-50", "flex px-[22px] py-[15px] cursor-pointer"]),
306
- onClick: (u) => p.current ? u.preventDefault() : o(p)
312
+ class: P([u.current ? "bg-gray-50" : "hover:bg-gray-50", "flex px-[22px] py-[15px] cursor-pointer"]),
313
+ onClick: (p) => u.current ? p.preventDefault() : o(u)
307
314
  }, [
308
- d("div", Xt, [
309
- d("div", Jt, [
310
- d("div", Qt, H(p.name), 1),
311
- p.current ? (f(), g("span", es, " Active ")) : $("", !0)
315
+ d("div", rs, [
316
+ d("div", ns, [
317
+ d("div", ls, L(u.name), 1),
318
+ u.current ? (m(), g("span", is, " Active ")) : $("", !0)
312
319
  ]),
313
- d("div", ts, H(p.description), 1)
320
+ d("div", cs, L(u.description), 1)
314
321
  ]),
315
- d("div", ss, [
316
- v(c, {
317
- class: T([p.current ? "text-gray-700" : "text-gray-400", "h-5 w-5 shrink-0"]),
318
- icon: y(E)[p.icon]
322
+ d("div", us, [
323
+ v(i, {
324
+ class: P([u.current ? "text-gray-700" : "text-gray-400", "h-5 w-5 shrink-0"]),
325
+ icon: x(F)[u.icon]
319
326
  }, null, 8, ["class", "icon"])
320
327
  ])
321
- ], 10, Yt))), 128)),
328
+ ], 10, os))), 128)),
322
329
  r[2] || (r[2] = d("div", null, null, -1))
323
330
  ]),
324
- d("div", as, [
325
- i.$slots.bottom || e.bottomSlot ? (f(), g("div", os, [
326
- M(i.$slots, "bottom", {}, () => [
327
- e.bottomSlot ? (f(), F(ae(e.bottomSlot), { key: 0 })) : $("", !0)
331
+ d("div", ds, [
332
+ c.$slots.bottom || e.bottomSlot ? (m(), g("div", ps, [
333
+ O(c.$slots, "bottom", {}, () => [
334
+ e.bottomSlot ? (m(), M(I(e.bottomSlot), { key: 0 })) : $("", !0)
328
335
  ])
329
336
  ])) : $("", !0),
330
- i.$slots.footer || e.footerSlot ? (f(), g("div", rs, [
331
- M(i.$slots, "footer", {}, () => [
332
- e.footerSlot ? (f(), F(ae(e.footerSlot), { key: 0 })) : $("", !0)
337
+ c.$slots.footer || e.footerSlot ? (m(), g("div", fs, [
338
+ O(c.$slots, "footer", {}, () => [
339
+ e.footerSlot ? (m(), M(I(e.footerSlot), { key: 0 })) : $("", !0)
333
340
  ])
334
341
  ])) : $("", !0)
335
342
  ])
@@ -337,10 +344,530 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
337
344
  ]);
338
345
  };
339
346
  }
340
- }, Ee = re(
347
+ }, Oe = {
348
+ success: 5e3,
349
+ info: 5e3,
350
+ warning: 5e3,
351
+ danger: 0
352
+ // sticky by default
353
+ }, xe = ["top-left", "top-right", "center", "bottom-left", "bottom-right"];
354
+ function hs() {
355
+ const e = q({
356
+ isVisible: !1,
357
+ type: "info",
358
+ message: null,
359
+ component: null,
360
+ props: {},
361
+ closeable: !0,
362
+ duration: null
363
+ });
364
+ let s = null, t = 0, a = !1, l = null;
365
+ const n = () => {
366
+ s && (clearTimeout(s), s = null), t = 0, a = !1, l = null;
367
+ }, o = () => {
368
+ n(), e.isVisible = !1;
369
+ }, c = (f) => {
370
+ f <= 0 || (t = f, l = Date.now(), s = setTimeout(() => {
371
+ o();
372
+ }, f));
373
+ };
374
+ return {
375
+ state: e,
376
+ show: (f = {}) => {
377
+ n();
378
+ const {
379
+ type: y = "info",
380
+ message: k = null,
381
+ component: h = null,
382
+ props: _ = {},
383
+ closeable: H = !0,
384
+ duration: w = null
385
+ } = f;
386
+ e.type = y, e.message = k, e.component = h ? de(h) : null, e.props = _, e.closeable = H, e.isVisible = !0;
387
+ const b = w !== null ? w : Oe[y];
388
+ e.duration = b, b > 0 && c(b);
389
+ },
390
+ hide: o,
391
+ reset: () => {
392
+ o(), e.type = "info", e.message = null, e.component = null, e.props = {}, e.closeable = !0, e.duration = null;
393
+ },
394
+ pause: () => {
395
+ if (!s || a) return;
396
+ clearTimeout(s), s = null;
397
+ const f = Date.now() - l;
398
+ t = Math.max(0, t - f), a = !0;
399
+ },
400
+ resume: () => {
401
+ !a || t <= 0 || (a = !1, l = Date.now(), s = setTimeout(() => {
402
+ o();
403
+ }, t));
404
+ }
405
+ };
406
+ }
407
+ class gs {
408
+ constructor() {
409
+ this.outlets = /* @__PURE__ */ new Map(), this.toastState = q({
410
+ toasts: [],
411
+ maxToasts: 3,
412
+ defaultPosition: "bottom-right",
413
+ newestOnTop: !0
414
+ }), this._toastTimers = /* @__PURE__ */ new Map(), this._toastIdCounter = 0;
415
+ }
416
+ // ============================================
417
+ // Banner Notification Methods
418
+ // ============================================
419
+ /**
420
+ * Get or create a notification outlet by name
421
+ * @param {string} name - Outlet name (default: 'default')
422
+ * @returns {Object} Notification outlet instance
423
+ */
424
+ getOutlet(s = "default") {
425
+ return this.outlets.has(s) || this.outlets.set(s, hs()), this.outlets.get(s);
426
+ }
427
+ /**
428
+ * Show a banner notification in the specified outlet
429
+ * @param {Object} options - Notification options
430
+ * @param {string} options.type - Alert type: 'success' | 'warning' | 'danger' | 'info'
431
+ * @param {string} options.message - Simple text message (mutually exclusive with component)
432
+ * @param {Component} options.component - Vue component to render (mutually exclusive with message)
433
+ * @param {Object} options.props - Props to pass to the component
434
+ * @param {boolean} options.closeable - Whether to show close button (default: true)
435
+ * @param {number} options.duration - Auto-dismiss duration in ms (0 = sticky, null = use default)
436
+ * @param {string} outletName - Target outlet name (default: 'default')
437
+ */
438
+ show(s = {}, t = "default") {
439
+ this.getOutlet(t).show(s);
440
+ }
441
+ /**
442
+ * Hide banner notification in the specified outlet
443
+ * @param {string} outletName - Target outlet name (default: 'default')
444
+ */
445
+ hide(s = "default") {
446
+ this.getOutlet(s).hide();
447
+ }
448
+ /**
449
+ * Hide all banner notifications in all outlets
450
+ */
451
+ hideAll() {
452
+ for (const s of this.outlets.values())
453
+ s.hide();
454
+ }
455
+ /**
456
+ * Pause auto-dismiss timer for the specified banner outlet
457
+ * @param {string} outletName - Target outlet name (default: 'default')
458
+ */
459
+ pause(s = "default") {
460
+ this.getOutlet(s).pause();
461
+ }
462
+ /**
463
+ * Resume auto-dismiss timer for the specified banner outlet
464
+ * @param {string} outletName - Target outlet name (default: 'default')
465
+ */
466
+ resume(s = "default") {
467
+ this.getOutlet(s).resume();
468
+ }
469
+ /**
470
+ * Reset and remove a banner outlet
471
+ * @param {string} outletName - Target outlet name (default: 'default')
472
+ */
473
+ reset(s = "default") {
474
+ const t = this.outlets.get(s);
475
+ t && (t.reset(), this.outlets.delete(s));
476
+ }
477
+ /**
478
+ * Reset all banner outlets
479
+ */
480
+ resetAll() {
481
+ for (const s of this.outlets.values())
482
+ s.reset();
483
+ this.outlets.clear();
484
+ }
485
+ // ============================================
486
+ // Toast Notification Methods
487
+ // ============================================
488
+ /**
489
+ * Configure toast defaults
490
+ * @param {Object} options - Configuration options
491
+ * @param {number} options.maxToasts - Maximum visible toasts (default: 3)
492
+ * @param {string} options.defaultPosition - Default position (default: 'bottom-right')
493
+ * @param {boolean} options.newestOnTop - Whether newest toasts appear on top (default: true)
494
+ */
495
+ configureToasts(s = {}) {
496
+ s.maxToasts !== void 0 && (this.toastState.maxToasts = s.maxToasts), s.defaultPosition !== void 0 && xe.includes(s.defaultPosition) && (this.toastState.defaultPosition = s.defaultPosition), s.newestOnTop !== void 0 && (this.toastState.newestOnTop = s.newestOnTop);
497
+ }
498
+ /**
499
+ * Show a toast notification
500
+ * @param {Object} options - Toast options
501
+ * @param {string} options.type - Alert type: 'success' | 'warning' | 'danger' | 'info'
502
+ * @param {string} options.message - Simple text message (mutually exclusive with component)
503
+ * @param {Component} options.component - Vue component to render (mutually exclusive with message)
504
+ * @param {Object} options.props - Props to pass to the component
505
+ * @param {boolean} options.closeable - Whether to show close button (default: true)
506
+ * @param {number} options.duration - Auto-dismiss duration in ms (0 = sticky, null = use default)
507
+ * @param {string} options.position - Position: 'top-left' | 'top-right' | 'top-center' | 'bottom-left' | 'bottom-right' | 'bottom-center'
508
+ * @returns {number} Toast ID for programmatic dismissal
509
+ */
510
+ toast(s = {}) {
511
+ const {
512
+ type: t = "info",
513
+ message: a = null,
514
+ component: l = null,
515
+ props: n = {},
516
+ closeable: o = !0,
517
+ duration: c = null,
518
+ position: r = null
519
+ } = s, i = ++this._toastIdCounter, u = r && xe.includes(r) ? r : this.toastState.defaultPosition, p = c !== null ? c : Oe[t], f = {
520
+ id: i,
521
+ type: t,
522
+ message: a,
523
+ component: l ? de(l) : null,
524
+ props: n,
525
+ closeable: o,
526
+ duration: p,
527
+ position: u,
528
+ createdAt: Date.now()
529
+ }, y = this.toastState.toasts.filter((k) => k.position === u);
530
+ if (y.length >= this.toastState.maxToasts) {
531
+ const k = this.toastState.newestOnTop ? y[y.length - 1] : y[0];
532
+ this.hideToast(k.id);
533
+ }
534
+ if (this.toastState.newestOnTop) {
535
+ const k = this.toastState.toasts.findIndex((h) => h.position === u);
536
+ k === -1 ? this.toastState.toasts.push(f) : this.toastState.toasts.splice(k, 0, f);
537
+ } else
538
+ this.toastState.toasts.push(f);
539
+ return p > 0 && this._startToastTimer(i, p), i;
540
+ }
541
+ /**
542
+ * Hide a specific toast by ID
543
+ * @param {number} toastId - Toast ID to hide
544
+ */
545
+ hideToast(s) {
546
+ this._clearToastTimer(s);
547
+ const t = this.toastState.toasts.findIndex((a) => a.id === s);
548
+ t !== -1 && this.toastState.toasts.splice(t, 1);
549
+ }
550
+ /**
551
+ * Hide all toasts
552
+ */
553
+ hideAllToasts() {
554
+ for (const s of this._toastTimers.keys())
555
+ this._clearToastTimer(s);
556
+ this.toastState.toasts.splice(0, this.toastState.toasts.length);
557
+ }
558
+ /**
559
+ * Pause auto-dismiss timer for a specific toast
560
+ * @param {number} toastId - Toast ID
561
+ */
562
+ pauseToast(s) {
563
+ const t = this._toastTimers.get(s);
564
+ if (!t || t.isPaused) return;
565
+ clearTimeout(t.timeout), t.timeout = null;
566
+ const a = Date.now() - t.startedAt;
567
+ t.remainingTime = Math.max(0, t.remainingTime - a), t.isPaused = !0;
568
+ }
569
+ /**
570
+ * Resume auto-dismiss timer for a specific toast
571
+ * @param {number} toastId - Toast ID
572
+ */
573
+ resumeToast(s) {
574
+ const t = this._toastTimers.get(s);
575
+ !t || !t.isPaused || t.remainingTime <= 0 || (t.isPaused = !1, t.startedAt = Date.now(), t.timeout = setTimeout(() => {
576
+ this.hideToast(s);
577
+ }, t.remainingTime));
578
+ }
579
+ /**
580
+ * Get toasts for a specific position
581
+ * @param {string} position - Position to filter by
582
+ * @returns {Array} Toasts at that position
583
+ */
584
+ getToastsByPosition(s) {
585
+ return this.toastState.toasts.filter((t) => t.position === s);
586
+ }
587
+ // ============================================
588
+ // Private Toast Timer Methods
589
+ // ============================================
590
+ /**
591
+ * @private
592
+ */
593
+ _startToastTimer(s, t) {
594
+ const a = {
595
+ timeout: null,
596
+ remainingTime: t,
597
+ startedAt: Date.now(),
598
+ isPaused: !1
599
+ };
600
+ a.timeout = setTimeout(() => {
601
+ this.hideToast(s);
602
+ }, t), this._toastTimers.set(s, a);
603
+ }
604
+ /**
605
+ * @private
606
+ */
607
+ _clearToastTimer(s) {
608
+ const t = this._toastTimers.get(s);
609
+ t && (t.timeout && clearTimeout(t.timeout), this._toastTimers.delete(s));
610
+ }
611
+ }
612
+ const G = new gs(), Gr = {
613
+ __name: "SparkNotificationOutlet",
614
+ props: {
615
+ name: {
616
+ type: String,
617
+ default: "default"
618
+ }
619
+ },
620
+ setup(e) {
621
+ const s = e, t = S(() => G.getOutlet(s.name)), a = E(0);
622
+ j(
623
+ () => [t.value.state.message, t.value.state.component, t.value.state.type],
624
+ () => {
625
+ t.value.state.isVisible && a.value++;
626
+ }
627
+ );
628
+ const l = () => {
629
+ G.hide(s.name);
630
+ }, n = () => {
631
+ G.pause(s.name);
632
+ }, o = () => {
633
+ G.resume(s.name);
634
+ };
635
+ return (c, r) => (m(), M(De, {
636
+ "enter-active-class": "transition-all duration-300 ease-out",
637
+ "enter-from-class": "opacity-0 -translate-y-2",
638
+ "enter-to-class": "opacity-100 translate-y-0",
639
+ "leave-active-class": "transition-all duration-200 ease-in",
640
+ "leave-from-class": "opacity-100 translate-y-0",
641
+ "leave-to-class": "opacity-0 -translate-y-2",
642
+ mode: "out-in"
643
+ }, {
644
+ default: C(() => [
645
+ t.value.state.isVisible ? (m(), M(te, {
646
+ key: a.value,
647
+ type: t.value.state.type,
648
+ closeable: t.value.state.closeable,
649
+ onClose: l,
650
+ onMouseenter: n,
651
+ onMouseleave: o
652
+ }, {
653
+ default: C(() => [
654
+ t.value.state.component ? (m(), M(I(t.value.state.component), Ne(D({ key: 0 }, t.value.state.props)), null, 16)) : (m(), g(R, { key: 1 }, [
655
+ B(L(t.value.state.message), 1)
656
+ ], 64))
657
+ ]),
658
+ _: 1
659
+ }, 8, ["type", "closeable"])) : $("", !0)
660
+ ]),
661
+ _: 1
662
+ }));
663
+ }
664
+ }, ys = { class: "fixed top-4 left-4 z-[2000] flex flex-col gap-3 max-w-sm w-full pointer-events-none" }, vs = { class: "fixed top-4 right-4 z-[2000] flex flex-col gap-3 max-w-sm w-full pointer-events-none" }, bs = { class: "fixed top-[40%] left-1/2 -translate-x-1/2 -translate-y-1/2 z-[2000] flex flex-col gap-3 max-w-sm w-full pointer-events-none" }, xs = { class: "fixed bottom-4 left-4 z-[2000] flex flex-col-reverse gap-3 max-w-sm w-full pointer-events-none" }, ks = { class: "fixed bottom-4 right-4 z-[2000] flex flex-col-reverse gap-3 max-w-sm w-full pointer-events-none" }, Wr = {
665
+ __name: "SparkToastContainer",
666
+ setup(e) {
667
+ const s = G.toastState, t = S(
668
+ () => s.toasts.filter((u) => u.position === "top-left")
669
+ ), a = S(
670
+ () => s.toasts.filter((u) => u.position === "top-right")
671
+ ), l = S(
672
+ () => s.toasts.filter((u) => u.position === "center")
673
+ ), n = S(
674
+ () => s.toasts.filter((u) => u.position === "bottom-left")
675
+ ), o = S(
676
+ () => s.toasts.filter((u) => u.position === "bottom-right")
677
+ ), c = (u) => {
678
+ G.hideToast(u);
679
+ }, r = (u) => {
680
+ G.pauseToast(u);
681
+ }, i = (u) => {
682
+ G.resumeToast(u);
683
+ };
684
+ return (u, p) => (m(), M(qe, { to: "body" }, [
685
+ d("div", ys, [
686
+ v(ne, {
687
+ "enter-active-class": "transition-all duration-300 ease-out",
688
+ "enter-from-class": "opacity-0 -translate-x-4",
689
+ "enter-to-class": "opacity-100 translate-x-0",
690
+ "leave-active-class": "transition-all duration-200 ease-in",
691
+ "leave-from-class": "opacity-100 translate-x-0",
692
+ "leave-to-class": "opacity-0 -translate-x-4"
693
+ }, {
694
+ default: C(() => [
695
+ (m(!0), g(R, null, z(t.value, (f) => (m(), g("div", {
696
+ key: f.id,
697
+ class: "pointer-events-auto"
698
+ }, [
699
+ v(te, {
700
+ type: f.type,
701
+ closeable: f.closeable,
702
+ onClose: (y) => c(f.id),
703
+ onMouseenter: (y) => r(f.id),
704
+ onMouseleave: (y) => i(f.id)
705
+ }, {
706
+ default: C(() => [
707
+ f.component ? (m(), M(I(f.component), D({
708
+ key: 0,
709
+ ref_for: !0
710
+ }, f.props), null, 16)) : (m(), g(R, { key: 1 }, [
711
+ B(L(f.message), 1)
712
+ ], 64))
713
+ ]),
714
+ _: 2
715
+ }, 1032, ["type", "closeable", "onClose", "onMouseenter", "onMouseleave"])
716
+ ]))), 128))
717
+ ]),
718
+ _: 1
719
+ })
720
+ ]),
721
+ d("div", vs, [
722
+ v(ne, {
723
+ "enter-active-class": "transition-all duration-300 ease-out",
724
+ "enter-from-class": "opacity-0 translate-x-4",
725
+ "enter-to-class": "opacity-100 translate-x-0",
726
+ "leave-active-class": "transition-all duration-200 ease-in",
727
+ "leave-from-class": "opacity-100 translate-x-0",
728
+ "leave-to-class": "opacity-0 translate-x-4"
729
+ }, {
730
+ default: C(() => [
731
+ (m(!0), g(R, null, z(a.value, (f) => (m(), g("div", {
732
+ key: f.id,
733
+ class: "pointer-events-auto"
734
+ }, [
735
+ v(te, {
736
+ type: f.type,
737
+ closeable: f.closeable,
738
+ onClose: (y) => c(f.id),
739
+ onMouseenter: (y) => r(f.id),
740
+ onMouseleave: (y) => i(f.id)
741
+ }, {
742
+ default: C(() => [
743
+ f.component ? (m(), M(I(f.component), D({
744
+ key: 0,
745
+ ref_for: !0
746
+ }, f.props), null, 16)) : (m(), g(R, { key: 1 }, [
747
+ B(L(f.message), 1)
748
+ ], 64))
749
+ ]),
750
+ _: 2
751
+ }, 1032, ["type", "closeable", "onClose", "onMouseenter", "onMouseleave"])
752
+ ]))), 128))
753
+ ]),
754
+ _: 1
755
+ })
756
+ ]),
757
+ d("div", bs, [
758
+ v(ne, {
759
+ "enter-active-class": "transition-all duration-300 ease-out",
760
+ "enter-from-class": "opacity-0 scale-95",
761
+ "enter-to-class": "opacity-100 scale-100",
762
+ "leave-active-class": "transition-all duration-200 ease-in",
763
+ "leave-from-class": "opacity-100 scale-100",
764
+ "leave-to-class": "opacity-0 scale-95"
765
+ }, {
766
+ default: C(() => [
767
+ (m(!0), g(R, null, z(l.value, (f) => (m(), g("div", {
768
+ key: f.id,
769
+ class: "pointer-events-auto"
770
+ }, [
771
+ v(te, {
772
+ type: f.type,
773
+ closeable: f.closeable,
774
+ onClose: (y) => c(f.id),
775
+ onMouseenter: (y) => r(f.id),
776
+ onMouseleave: (y) => i(f.id)
777
+ }, {
778
+ default: C(() => [
779
+ f.component ? (m(), M(I(f.component), D({
780
+ key: 0,
781
+ ref_for: !0
782
+ }, f.props), null, 16)) : (m(), g(R, { key: 1 }, [
783
+ B(L(f.message), 1)
784
+ ], 64))
785
+ ]),
786
+ _: 2
787
+ }, 1032, ["type", "closeable", "onClose", "onMouseenter", "onMouseleave"])
788
+ ]))), 128))
789
+ ]),
790
+ _: 1
791
+ })
792
+ ]),
793
+ d("div", xs, [
794
+ v(ne, {
795
+ "enter-active-class": "transition-all duration-300 ease-out",
796
+ "enter-from-class": "opacity-0 -translate-x-4",
797
+ "enter-to-class": "opacity-100 translate-x-0",
798
+ "leave-active-class": "transition-all duration-200 ease-in",
799
+ "leave-from-class": "opacity-100 translate-x-0",
800
+ "leave-to-class": "opacity-0 -translate-x-4"
801
+ }, {
802
+ default: C(() => [
803
+ (m(!0), g(R, null, z(n.value, (f) => (m(), g("div", {
804
+ key: f.id,
805
+ class: "pointer-events-auto"
806
+ }, [
807
+ v(te, {
808
+ type: f.type,
809
+ closeable: f.closeable,
810
+ onClose: (y) => c(f.id),
811
+ onMouseenter: (y) => r(f.id),
812
+ onMouseleave: (y) => i(f.id)
813
+ }, {
814
+ default: C(() => [
815
+ f.component ? (m(), M(I(f.component), D({
816
+ key: 0,
817
+ ref_for: !0
818
+ }, f.props), null, 16)) : (m(), g(R, { key: 1 }, [
819
+ B(L(f.message), 1)
820
+ ], 64))
821
+ ]),
822
+ _: 2
823
+ }, 1032, ["type", "closeable", "onClose", "onMouseenter", "onMouseleave"])
824
+ ]))), 128))
825
+ ]),
826
+ _: 1
827
+ })
828
+ ]),
829
+ d("div", ks, [
830
+ v(ne, {
831
+ "enter-active-class": "transition-all duration-300 ease-out",
832
+ "enter-from-class": "opacity-0 translate-x-4",
833
+ "enter-to-class": "opacity-100 translate-x-0",
834
+ "leave-active-class": "transition-all duration-200 ease-in",
835
+ "leave-from-class": "opacity-100 translate-x-0",
836
+ "leave-to-class": "opacity-0 translate-x-4"
837
+ }, {
838
+ default: C(() => [
839
+ (m(!0), g(R, null, z(o.value, (f) => (m(), g("div", {
840
+ key: f.id,
841
+ class: "pointer-events-auto"
842
+ }, [
843
+ v(te, {
844
+ type: f.type,
845
+ closeable: f.closeable,
846
+ onClose: (y) => c(f.id),
847
+ onMouseenter: (y) => r(f.id),
848
+ onMouseleave: (y) => i(f.id)
849
+ }, {
850
+ default: C(() => [
851
+ f.component ? (m(), M(I(f.component), D({
852
+ key: 0,
853
+ ref_for: !0
854
+ }, f.props), null, 16)) : (m(), g(R, { key: 1 }, [
855
+ B(L(f.message), 1)
856
+ ], 64))
857
+ ]),
858
+ _: 2
859
+ }, 1032, ["type", "closeable", "onClose", "onMouseenter", "onMouseleave"])
860
+ ]))), 128))
861
+ ]),
862
+ _: 1
863
+ })
864
+ ])
865
+ ]));
866
+ }
867
+ }, ze = ie(
341
868
  "brandFilter",
342
869
  () => {
343
- const e = Z({
870
+ const e = q({
344
871
  brands: []
345
872
  }), s = (n = {}) => {
346
873
  if (!n.brands || !Array.isArray(n.brands)) {
@@ -348,18 +875,18 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
348
875
  return;
349
876
  }
350
877
  const o = n.brands.filter((r) => {
351
- const c = r.name && r.logo;
352
- return c || console.warn("useSparkBrandFilterStore: Invalid brand object", r), c;
353
- }), i = o.filter((r) => r.current);
354
- i.length === 0 && o.length > 0 ? o[0].current = !0 : i.length > 1 && o.forEach((r) => {
355
- r.current = r === i[0];
878
+ const i = r.name && r.logo;
879
+ return i || console.warn("useSparkBrandFilterStore: Invalid brand object", r), i;
880
+ }), c = o.filter((r) => r.current);
881
+ c.length === 0 && o.length > 0 ? o[0].current = !0 : c.length > 1 && o.forEach((r) => {
882
+ r.current = r === c[0];
356
883
  }), e.brands = o.map((r) => ({
357
884
  id: r.id,
358
885
  name: r.name,
359
886
  logo: r.logo,
360
887
  current: r.current || !1
361
888
  }));
362
- }, t = C(() => e.brands.find((n) => n.current) || null), a = C(() => e.brands);
889
+ }, t = S(() => e.brands.find((n) => n.current) || null), a = S(() => e.brands);
363
890
  return {
364
891
  state: e,
365
892
  initialize: s,
@@ -381,57 +908,57 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
381
908
  paths: ["state.brands"]
382
909
  }
383
910
  }
384
- ), ls = { class: "flex grow flex-col gap-y-5 overflow-y-auto bg-white rounded-lg" }, is = { class: "flex flex-1 flex-col" }, cs = { class: "divide-y divide-gray-200" }, ds = { class: "flex px-[22px] py-2.5 text-[12px] items-center" }, us = { class: "ml-auto flex items-center" }, ps = {
911
+ ), _s = { class: "flex grow flex-col gap-y-5 overflow-y-auto bg-white rounded-lg" }, ws = { class: "flex flex-1 flex-col" }, Ss = { class: "divide-y divide-gray-200" }, Cs = { class: "flex px-[22px] py-2.5 text-[12px] items-center" }, $s = { class: "ml-auto flex items-center" }, Ts = {
385
912
  key: 0,
386
913
  class: "flex px-[22px] py-[15px] text-gray-500 text-sm"
387
- }, fs = ["onClick"], ms = { class: "w-full gap-y-1 flex justify-between" }, gs = { class: "flex flex-col" }, hs = { class: "flex items-center" }, ys = { class: "font-medium text-base text-gray-900" }, bs = {
914
+ }, Ls = ["onClick"], Ps = { class: "w-full gap-y-1 flex justify-between" }, Hs = { class: "flex flex-col" }, Vs = { class: "flex items-center" }, Ms = { class: "font-medium text-base text-gray-900" }, Rs = {
388
915
  key: 0,
389
916
  class: "inline-flex items-center rounded-full bg-green-100 px-1.5 py-0.5 text-xs font-medium text-green-800 ml-1"
390
- }, vs = { class: "text-sm text-gray-500 font-normal" }, xs = { class: "flex items-center" }, ks = ["src", "alt"], ws = {
917
+ }, Bs = { class: "text-sm text-gray-500 font-normal" }, Es = { class: "flex items-center" }, As = ["src", "alt"], Fs = {
391
918
  __name: "SparkBrandSelector",
392
919
  emits: ["close", "select"],
393
920
  setup(e, { emit: s }) {
394
- const t = s, a = Ee(), l = (n) => {
921
+ const t = s, a = ze(), l = (n) => {
395
922
  t("select", n);
396
923
  };
397
924
  return (n, o) => {
398
- const i = B("font-awesome-icon");
399
- return f(), g("div", ls, [
400
- d("div", is, [
401
- d("div", cs, [
402
- d("div", ds, [
925
+ const c = A("font-awesome-icon");
926
+ return m(), g("div", _s, [
927
+ d("div", ws, [
928
+ d("div", Ss, [
929
+ d("div", Cs, [
403
930
  o[1] || (o[1] = d("div", null, "Filter by Brand", -1)),
404
- d("div", us, [
405
- v(i, {
406
- icon: y(E).farTimes,
931
+ d("div", $s, [
932
+ v(c, {
933
+ icon: x(F).farTimes,
407
934
  class: "size-4 text-gray-400 cursor-pointer",
408
935
  onClick: o[0] || (o[0] = (r) => t("close"))
409
936
  }, null, 8, ["icon"])
410
937
  ])
411
938
  ]),
412
- y(a).allBrands.length === 0 ? (f(), g("div", ps, " No brands configured ")) : $("", !0),
413
- (f(!0), g(z, null, q(y(a).allBrands, (r) => (f(), g("div", {
939
+ x(a).allBrands.length === 0 ? (m(), g("div", Ts, " No brands configured ")) : $("", !0),
940
+ (m(!0), g(R, null, z(x(a).allBrands, (r) => (m(), g("div", {
414
941
  key: r.id,
415
- class: T([r.current ? "bg-gray-50" : "hover:bg-gray-50", "flex px-[22px] py-[15px] cursor-pointer"]),
416
- onClick: (c) => l(r)
942
+ class: P([r.current ? "bg-gray-50" : "hover:bg-gray-50", "flex px-[22px] py-[15px] cursor-pointer"]),
943
+ onClick: (i) => l(r)
417
944
  }, [
418
- d("div", ms, [
419
- d("div", gs, [
420
- d("div", hs, [
421
- d("div", ys, H(r.name), 1),
422
- r.current ? (f(), g("span", bs, " Current ")) : $("", !0)
945
+ d("div", Ps, [
946
+ d("div", Hs, [
947
+ d("div", Vs, [
948
+ d("div", Ms, L(r.name), 1),
949
+ r.current ? (m(), g("span", Rs, " Current ")) : $("", !0)
423
950
  ]),
424
- d("div", vs, H(r.current ? "Current Brand" : "Change to"), 1)
951
+ d("div", Bs, L(r.current ? "Current Brand" : "Change to"), 1)
425
952
  ]),
426
- d("div", xs, [
953
+ d("div", Es, [
427
954
  d("img", {
428
955
  src: r.logo,
429
956
  alt: `${r.name} logo`,
430
957
  class: "h-8 w-auto"
431
- }, null, 8, ks)
958
+ }, null, 8, As)
432
959
  ])
433
960
  ])
434
- ], 10, fs))), 128)),
961
+ ], 10, Ls))), 128)),
435
962
  o[2] || (o[2] = d("div", null, null, -1))
436
963
  ]),
437
964
  o[3] || (o[3] = d("div", { class: "mt-auto" }, null, -1))
@@ -439,7 +966,7 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
439
966
  ]);
440
967
  };
441
968
  }
442
- }, _s = ["disabled"], N = {
969
+ }, Os = ["disabled"], K = {
443
970
  __name: "SparkButton",
444
971
  props: {
445
972
  size: {
@@ -460,15 +987,16 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
460
987
  default: !1
461
988
  }
462
989
  },
990
+ emits: ["click"],
463
991
  setup(e) {
464
- const s = e, t = R(null), a = _e("buttonGroup", null), l = C(() => {
992
+ const s = e, t = E(null), a = Le("buttonGroup", null), l = S(() => {
465
993
  if (!a?.isInGroup || !t.value) return null;
466
- const r = a.getButtonIndex(t.value), c = a.getButtonCount();
994
+ const r = a.getButtonIndex(t.value), i = a.getButtonCount();
467
995
  return {
468
996
  isFirst: r === 0,
469
- isLast: r === c - 1,
997
+ isLast: r === i - 1,
470
998
  index: r,
471
- total: c
999
+ total: i
472
1000
  };
473
1001
  }), n = {
474
1002
  paddingX: /^px-/,
@@ -480,41 +1008,41 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
480
1008
  borderRadius: /^rounded-/,
481
1009
  background: /^bg-/,
482
1010
  text: /^text-(?!white|black)/
483
- }, o = (r, c) => {
484
- if (!c) return r;
485
- const p = r.split(" ").filter(Boolean), u = c.split(" ").filter(Boolean);
486
- return [...p.filter((_) => !u.some((w) => {
487
- const m = Object.entries(n).find(
488
- ([P, k]) => k.test(_)
489
- )?.[0], x = Object.entries(n).find(
490
- ([P, k]) => k.test(w)
1011
+ }, o = (r, i) => {
1012
+ if (!i) return r;
1013
+ const u = r.split(" ").filter(Boolean), p = i.split(" ").filter(Boolean);
1014
+ return [...u.filter((y) => !p.some((k) => {
1015
+ const h = Object.entries(n).find(
1016
+ ([H, w]) => w.test(y)
1017
+ )?.[0], _ = Object.entries(n).find(
1018
+ ([H, w]) => w.test(k)
491
1019
  )?.[0];
492
- return m && m === x;
493
- })), ...u].join(" ");
494
- }, i = C(() => {
495
- let r = "", c = "";
1020
+ return h && h === _;
1021
+ })), ...p].join(" ");
1022
+ }, c = S(() => {
1023
+ let r = "", i = "";
496
1024
  switch (s.size) {
497
1025
  case "xs":
498
- r += " px-2 py-1 text-xs", c = "sm";
1026
+ r += " px-2 py-1 text-xs", i = "sm";
499
1027
  break;
500
1028
  case "sm":
501
- r += " px-2 py-1 text-sm", c = "sm";
1029
+ r += " px-2 py-1 text-sm", i = "sm";
502
1030
  break;
503
1031
  case "md":
504
- r += " px-2.5 py-1.5 text-sm", c = "md";
1032
+ r += " px-2.5 py-1.5 text-sm", i = "md";
505
1033
  break;
506
1034
  case "lg":
507
- r += " px-3 py-2 text-sm", c = "md";
1035
+ r += " px-3 py-2 text-sm", i = "md";
508
1036
  break;
509
1037
  case "xl":
510
- r += " px-3.5 py-2.5 min-h-[42px] text-sm", c = "md";
1038
+ r += " px-3.5 py-2.5 min-h-[42px] text-sm", i = "md";
511
1039
  break;
512
1040
  }
513
1041
  if (a?.isInGroup && l.value) {
514
- const { isFirst: p, isLast: u } = l.value;
515
- r += " relative inline-flex items-center focus:z-10", p && u ? r += ` rounded-${c}` : p ? r += ` rounded-l-${c} rounded-r-none` : u ? r += ` rounded-r-${c} rounded-l-none -ml-px` : r += " rounded-none -ml-px";
1042
+ const { isFirst: u, isLast: p } = l.value;
1043
+ r += " relative inline-flex items-center focus:z-10", u && p ? r += ` rounded-${i}` : u ? r += ` rounded-l-${i} rounded-r-none` : p ? r += ` rounded-r-${i} rounded-l-none -ml-px` : r += " rounded-none -ml-px";
516
1044
  } else
517
- r += ` shadow-xs rounded-${c}`;
1045
+ r += ` shadow-xs rounded-${i}`;
518
1046
  switch (s.variant) {
519
1047
  case "primary":
520
1048
  r += " bg-primary-600 hover:bg-primary-500 text-white";
@@ -539,40 +1067,40 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
539
1067
  }
540
1068
  return r = o(r, s.buttonClass), r;
541
1069
  });
542
- return (r, c) => (f(), g("button", {
1070
+ return (r, i) => (m(), g("button", {
543
1071
  type: "button",
544
1072
  ref_key: "buttonRef",
545
1073
  ref: t,
546
- class: T(i.value),
1074
+ class: P(c.value),
547
1075
  disabled: e.disabled,
548
- onClick: c[0] || (c[0] = (p) => r.$emit("click"))
1076
+ onClick: i[0] || (i[0] = (u) => r.$emit("click"))
549
1077
  }, [
550
- M(r.$slots, "default")
551
- ], 10, _s));
1078
+ O(r.$slots, "default")
1079
+ ], 10, Os));
552
1080
  }
553
- }, Cs = {
1081
+ }, zs = {
554
1082
  __name: "SparkButtonGroup",
555
1083
  setup(e) {
556
- const s = R(null);
557
- return Ae("buttonGroup", {
1084
+ const s = E(null);
1085
+ return Ze("buttonGroup", {
558
1086
  isInGroup: !0,
559
1087
  getButtonIndex: (l) => s.value ? Array.from(s.value.children).indexOf(l) : -1,
560
1088
  getButtonCount: () => s.value?.children.length || 0
561
- }), (l, n) => (f(), g("div", {
1089
+ }), (l, n) => (m(), g("div", {
562
1090
  class: "inline-flex rounded-md shadow-xs",
563
1091
  ref_key: "groupRef",
564
1092
  ref: s
565
1093
  }, [
566
- M(l.$slots, "default")
1094
+ O(l.$slots, "default")
567
1095
  ], 512));
568
1096
  }
569
- }, Ss = { class: "divide-y divide-gray-300 rounded-lg border border-gray-300 text-gray-700 bg-gray-100" }, $s = {
1097
+ }, js = { class: "divide-y divide-gray-300 rounded-lg border border-gray-300 text-gray-700 bg-gray-100" }, Is = {
570
1098
  key: 0,
571
1099
  class: "p-5"
572
- }, Ts = {
1100
+ }, Ds = {
573
1101
  key: 1,
574
1102
  class: "p-5"
575
- }, Er = {
1103
+ }, Yr = {
576
1104
  __name: "SparkCard",
577
1105
  props: {
578
1106
  padded: {
@@ -586,24 +1114,24 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
586
1114
  },
587
1115
  setup(e) {
588
1116
  const s = e;
589
- return (t, a) => (f(), g("div", Ss, [
590
- t.$slots.header ? (f(), g("div", $s, [
591
- M(t.$slots, "header")
1117
+ return (t, a) => (m(), g("div", js, [
1118
+ t.$slots.header ? (m(), g("div", Is, [
1119
+ O(t.$slots, "header")
592
1120
  ])) : $("", !0),
593
1121
  d("div", {
594
- class: T([s.padded ? s.paddedClass : ""])
1122
+ class: P([s.padded ? s.paddedClass : ""])
595
1123
  }, [
596
- M(t.$slots, "default")
1124
+ O(t.$slots, "default")
597
1125
  ], 2),
598
- t.$slots.footer ? (f(), g("div", Ts, [
599
- M(t.$slots, "footer")
1126
+ t.$slots.footer ? (m(), g("div", Ds, [
1127
+ O(t.$slots, "footer")
600
1128
  ])) : $("", !0)
601
1129
  ]));
602
1130
  }
603
- }, Ls = { class: "px-4 pt-5 pb-4 sm:p-6" }, Hs = {
1131
+ }, Ns = { class: "px-4 pt-5 pb-4 sm:p-6" }, qs = {
604
1132
  key: 0,
605
1133
  class: "text-lg font-medium text-gray-900"
606
- }, Ps = {
1134
+ }, Zs = {
607
1135
  __name: "SparkModalDialog",
608
1136
  props: {
609
1137
  title: {
@@ -653,7 +1181,7 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
653
1181
  "input"
654
1182
  ],
655
1183
  setup(e) {
656
- const s = e, t = C(() => !s.buttons || s.buttons.length === 0 ? [{ text: "OK", variant: "primary", event: "ok" }] : s.buttons), a = C(() => {
1184
+ const s = e, t = S(() => !s.buttons || s.buttons.length === 0 ? [{ text: "OK", variant: "primary", event: "ok" }] : s.buttons), a = S(() => {
657
1185
  switch (t.value.length) {
658
1186
  case 1:
659
1187
  return "sm:grid sm:grid-flow-row-dense";
@@ -669,48 +1197,48 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
669
1197
  success: "farCheckCircle",
670
1198
  warning: "farExclamationTriangle",
671
1199
  danger: "farCircleXmark"
672
- }, n = C(() => s.icon || l[s.type]), o = C(() => ({
1200
+ }, n = S(() => s.icon || l[s.type]), o = S(() => ({
673
1201
  info: "bg-blue-100",
674
1202
  success: "bg-green-100",
675
1203
  warning: "bg-yellow-100",
676
1204
  danger: "bg-red-100"
677
- })[s.type]), i = C(() => ({
1205
+ })[s.type]), c = S(() => ({
678
1206
  info: "text-blue-400",
679
1207
  success: "text-green-400",
680
1208
  warning: "text-yellow-400",
681
1209
  danger: "text-red-400"
682
1210
  })[s.type]);
683
- return (r, c) => {
684
- const p = B("font-awesome-icon");
685
- return f(), g("div", Ls, [
686
- n.value ? (f(), g("div", {
1211
+ return (r, i) => {
1212
+ const u = A("font-awesome-icon");
1213
+ return m(), g("div", Ns, [
1214
+ n.value ? (m(), g("div", {
687
1215
  key: 0,
688
- class: T(["mx-auto flex size-12 items-center justify-center rounded-full", o.value])
1216
+ class: P(["mx-auto flex size-12 items-center justify-center rounded-full", o.value])
689
1217
  }, [
690
- v(p, {
691
- icon: y(E)[n.value],
692
- class: T(["h-5 w-5", i.value])
1218
+ v(u, {
1219
+ icon: x(F)[n.value],
1220
+ class: P(["h-5 w-5", c.value])
693
1221
  }, null, 8, ["icon", "class"])
694
1222
  ], 2)) : $("", !0),
695
1223
  d("div", {
696
- class: T(["text-center", { "mt-3 sm:mt-5": n.value }])
1224
+ class: P(["text-center", { "mt-3 sm:mt-5": n.value }])
697
1225
  }, [
698
- e.title ? (f(), g("h3", Hs, H(e.title), 1)) : $("", !0),
699
- e.message ? (f(), g("div", {
1226
+ e.title ? (m(), g("h3", qs, L(e.title), 1)) : $("", !0),
1227
+ e.message ? (m(), g("div", {
700
1228
  key: 1,
701
- class: T([{ "mt-2": e.title }, "text-sm text-gray-500"])
702
- }, H(e.message), 3)) : $("", !0)
1229
+ class: P([{ "mt-2": e.title }, "text-sm text-gray-500"])
1230
+ }, L(e.message), 3)) : $("", !0)
703
1231
  ], 2),
704
1232
  d("div", {
705
- class: T(["mt-5 sm:mt-6", a.value])
1233
+ class: P(["mt-5 sm:mt-6", a.value])
706
1234
  }, [
707
- (f(!0), g(z, null, q(t.value, (u, h) => (f(), F(y(N), {
708
- key: h,
709
- variant: u.variant,
710
- onClick: (_) => r.$emit(u.event, u)
1235
+ (m(!0), g(R, null, z(t.value, (p, f) => (m(), M(x(K), {
1236
+ key: f,
1237
+ variant: p.variant,
1238
+ onClick: (y) => r.$emit(p.event, p)
711
1239
  }, {
712
- default: L(() => [
713
- A(H(u.text), 1)
1240
+ default: C(() => [
1241
+ B(L(p.text), 1)
714
1242
  ]),
715
1243
  _: 2
716
1244
  }, 1032, ["variant", "onClick"]))), 128))
@@ -719,9 +1247,9 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
719
1247
  };
720
1248
  }
721
1249
  };
722
- class Vs {
1250
+ class Ks {
723
1251
  constructor() {
724
- this.state = Z({
1252
+ this.state = q({
725
1253
  isVisible: !1,
726
1254
  content: null,
727
1255
  props: {},
@@ -729,7 +1257,7 @@ class Vs {
729
1257
  });
730
1258
  }
731
1259
  show = (s, t = {}, a = {}) => {
732
- this.state.content = Ce(s), this.state.props = t, this.state.eventHandlers = a, this.state.isVisible = !0;
1260
+ this.state.content = de(s), this.state.props = t, this.state.eventHandlers = a, this.state.isVisible = !0;
733
1261
  };
734
1262
  hide = () => {
735
1263
  this.state.isVisible = !1, this.state.eventHandlers = {};
@@ -752,18 +1280,18 @@ class Vs {
752
1280
  message: l = "Are you sure?",
753
1281
  type: n = "warning",
754
1282
  confirmText: o = "Confirm",
755
- cancelText: i = "Cancel",
1283
+ cancelText: c = "Cancel",
756
1284
  confirmVariant: r = "primary"
757
1285
  } = s;
758
1286
  this.show(
759
- Ps,
1287
+ Zs,
760
1288
  {
761
1289
  title: a,
762
1290
  message: l,
763
1291
  type: n,
764
1292
  buttons: [
765
1293
  { text: o, variant: r, event: "confirm" },
766
- { text: i, variant: "secondary", event: "cancel" }
1294
+ { text: c, variant: "secondary", event: "cancel" }
767
1295
  ]
768
1296
  },
769
1297
  {
@@ -777,20 +1305,20 @@ class Vs {
777
1305
  );
778
1306
  });
779
1307
  }
780
- const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto" }, Bs = { class: "flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0" }, Es = {
1308
+ const se = new Ks(), Us = { class: "fixed inset-0 z-10 w-screen overflow-y-auto" }, Gs = { class: "flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0" }, Ws = {
781
1309
  __name: "SparkModalContainer",
782
1310
  setup(e) {
783
- return (s, t) => (f(), F(y(Le), {
1311
+ return (s, t) => (m(), M(x(Me), {
784
1312
  as: "template",
785
- show: y(J).state.isVisible
1313
+ show: x(se).state.isVisible
786
1314
  }, {
787
- default: L(() => [
788
- v(y(He), {
1315
+ default: C(() => [
1316
+ v(x(Re), {
789
1317
  class: "relative z-1000",
790
- onClose: y(J).hide
1318
+ onClose: x(se).hide
791
1319
  }, {
792
- default: L(() => [
793
- v(y(le), {
1320
+ default: C(() => [
1321
+ v(x(ue), {
794
1322
  as: "template",
795
1323
  enter: "ease-out duration-300",
796
1324
  "enter-from": "opacity-0",
@@ -799,14 +1327,14 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
799
1327
  "leave-from": "opacity-100",
800
1328
  "leave-to": "opacity-0"
801
1329
  }, {
802
- default: L(() => [...t[0] || (t[0] = [
1330
+ default: C(() => [...t[0] || (t[0] = [
803
1331
  d("div", { class: "fixed inset-0 bg-gray-500/75 transition-opacity" }, null, -1)
804
1332
  ])]),
805
1333
  _: 1
806
1334
  }),
807
- d("div", Rs, [
808
- d("div", Bs, [
809
- v(y(le), {
1335
+ d("div", Us, [
1336
+ d("div", Gs, [
1337
+ v(x(ue), {
810
1338
  as: "template",
811
1339
  enter: "ease-out duration-300",
812
1340
  "enter-from": "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",
@@ -815,10 +1343,10 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
815
1343
  "leave-from": "opacity-100 translate-y-0 sm:scale-100",
816
1344
  "leave-to": "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
817
1345
  }, {
818
- default: L(() => [
819
- v(y(Pe), { class: "relative transform overflow-hidden rounded-lg bg-white text-left shadow-xl transition-all sm:my-8 sm:w-full sm:min-w-lg sm:max-w-max" }, {
820
- default: L(() => [
821
- (f(), F(ae(y(J).state.content), oe(y(J).state.props, Se(y(J).state.eventHandlers)), null, 16))
1346
+ default: C(() => [
1347
+ v(x(Be), { class: "relative transform overflow-hidden rounded-lg bg-white text-left shadow-xl transition-all sm:my-8 sm:w-full sm:min-w-lg sm:max-w-max" }, {
1348
+ default: C(() => [
1349
+ (m(), M(I(x(se).state.content), D(x(se).state.props, Pe(x(se).state.eventHandlers)), null, 16))
822
1350
  ]),
823
1351
  _: 1
824
1352
  })
@@ -834,7 +1362,7 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
834
1362
  _: 1
835
1363
  }, 8, ["show"]));
836
1364
  }
837
- }, Ms = { class: "fixed inset-0 flex" }, he = {
1365
+ }, Ys = { class: "fixed inset-0 flex" }, ke = {
838
1366
  __name: "SparkOverlay",
839
1367
  props: {
840
1368
  position: {
@@ -849,21 +1377,27 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
849
1377
  },
850
1378
  emits: ["close"],
851
1379
  setup(e, { emit: s }) {
852
- const t = R(null), a = e, l = s, n = () => {
853
- a.overlayInstance.close(), l("close");
1380
+ const t = E(null), a = {
1381
+ xs: "w-[250px]",
1382
+ sm: "w-[300px]",
1383
+ md: "w-[450px]",
1384
+ lg: "w-[810px]",
1385
+ xl: "w-[1000px]"
1386
+ }, l = e, n = s, o = S(() => a[l.overlayInstance.state.size] || a.md), c = () => {
1387
+ l.overlayInstance.close(), n("close");
854
1388
  };
855
- return (o, i) => (f(), F(y(Le), {
1389
+ return (r, i) => (m(), M(x(Me), {
856
1390
  show: e.overlayInstance.state.isVisible,
857
1391
  as: "template"
858
1392
  }, {
859
- default: L(() => [
860
- v(y(He), {
1393
+ default: C(() => [
1394
+ v(x(Re), {
861
1395
  initialFocus: t.value,
862
1396
  class: "relative z-1000",
863
- onClose: n
1397
+ onClose: c
864
1398
  }, {
865
- default: L(() => [
866
- v(y(le), {
1399
+ default: C(() => [
1400
+ v(x(ue), {
867
1401
  as: "template",
868
1402
  enter: "transition-opacity ease-linear duration-150",
869
1403
  "enter-from": "opacity-0",
@@ -872,13 +1406,13 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
872
1406
  "leave-from": "opacity-100",
873
1407
  "leave-to": "opacity-0"
874
1408
  }, {
875
- default: L(() => [...i[0] || (i[0] = [
1409
+ default: C(() => [...i[0] || (i[0] = [
876
1410
  d("div", { class: "fixed inset-0 bg-gray-600/30" }, null, -1)
877
1411
  ])]),
878
1412
  _: 1
879
1413
  }),
880
- d("div", Ms, [
881
- v(y(le), {
1414
+ d("div", Ys, [
1415
+ v(x(ue), {
882
1416
  as: "template",
883
1417
  enter: "transition ease-in-out duration-150 transform",
884
1418
  "enter-from": e.position === "left" ? "-translate-x-full opacity-0" : "translate-x-full opacity-0",
@@ -887,17 +1421,18 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
887
1421
  "leave-from": "translate-x-0 opacity-100",
888
1422
  "leave-to": e.position === "left" ? "-translate-x-full opacity-0" : "translate-x-full opacity-0"
889
1423
  }, {
890
- default: L(() => [
891
- v(y(Pe), {
1424
+ default: C(() => [
1425
+ v(x(Be), {
892
1426
  ref_key: "panelRef",
893
1427
  ref: t,
894
- class: T([
895
- "flex w-[400px] py-2.5",
1428
+ class: P([
1429
+ "flex py-2.5",
1430
+ o.value,
896
1431
  e.position === "left" ? "relative left-[10px]" : "absolute right-[10px] h-full"
897
1432
  ])
898
1433
  }, {
899
- default: L(() => [
900
- (f(), F(ae(e.overlayInstance.state.content), oe(e.overlayInstance.state.props, Se(e.overlayInstance.state.eventHandlers)), null, 16))
1434
+ default: C(() => [
1435
+ (m(), M(I(e.overlayInstance.state.content), D(e.overlayInstance.state.props, Pe(e.overlayInstance.state.eventHandlers)), null, 16))
901
1436
  ]),
902
1437
  _: 1
903
1438
  }, 8, ["class"])
@@ -912,18 +1447,18 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
912
1447
  _: 1
913
1448
  }, 8, ["show"]));
914
1449
  }
915
- }, Fs = (e) => {
1450
+ }, Xs = (e) => {
916
1451
  if (e.includes(".")) {
917
1452
  const s = e.split(".");
918
1453
  e = s[s.length - 1];
919
1454
  }
920
1455
  return e.replace(/_/g, " ");
921
- }, As = (e, s, t) => {
1456
+ }, Js = (e, s, t) => {
922
1457
  const a = s.querySelector(".relative");
923
1458
  if (!a || a.querySelector(".spark-table-head-sorting"))
924
1459
  return;
925
1460
  const l = document.createElement("span");
926
- l.classList.add("spark-table-head-sorting"), l.innerHTML = se({ prefix: "fad", iconName: "sort" }).html + se({ prefix: "fad", iconName: "sort-up" }).html + se({ prefix: "fad", iconName: "sort-down" }).html, a.appendChild(l), a.addEventListener("click", async () => {
1461
+ l.classList.add("spark-table-head-sorting"), l.innerHTML = le({ prefix: "fad", iconName: "sort" }).html + le({ prefix: "fad", iconName: "sort-up" }).html + le({ prefix: "fad", iconName: "sort-down" }).html, a.appendChild(l), a.addEventListener("click", async () => {
927
1462
  const n = t.params.orderBy, o = t.params.sortedBy;
928
1463
  return n === e && o === "asc" ? (a.classList.remove("asc"), a.classList.add("desc"), t.methods.applyParams({
929
1464
  orderBy: e,
@@ -933,34 +1468,34 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
933
1468
  sortedBy: "asc"
934
1469
  }));
935
1470
  });
936
- }, js = (e, s, t) => {
1471
+ }, Qs = (e, s, t) => {
937
1472
  if (s.querySelector(".spark-table-head-filter"))
938
1473
  return;
939
1474
  const a = document.createElement("div"), l = document.createElement("input");
940
1475
  l.type = "text", l.placeholder = "Filter...", a.className = "spark-table-head-filter", a.appendChild(l);
941
- const n = Ve(async (o, i) => {
942
- const r = i.target.value, c = `filter[${o}]`;
1476
+ const n = Ee(async (o, c) => {
1477
+ const r = c.target.value, i = `filter[${o}]`;
943
1478
  if (r)
944
- return t.params[c] && t.params[c] === r ? void 0 : t.methods.applyParams({
1479
+ return t.params[i] && t.params[i] === r ? void 0 : t.methods.applyParams({
945
1480
  page: 1,
946
- [c]: r
1481
+ [i]: r
947
1482
  });
948
- await t.methods.removeParam(c);
1483
+ await t.methods.removeParam(i);
949
1484
  }, 200);
950
1485
  l.addEventListener("keyup", (o) => n(e, o)), s.appendChild(a);
951
- }, Os = (e, s, t) => {
1486
+ }, ea = (e, s, t) => {
952
1487
  e.classList.add("spark-table-head"), t && t.columnSort && e.classList.add("can-sort"), t && t.columnFilter && e.classList.add("can-filter"), e.querySelector(".relative").classList.add("spark-table-head-title-wrapper");
953
1488
  const l = e.querySelector(".colHeader");
954
- l.classList.add("spark-table-head-title"), l.innerHTML = Fs(s);
955
- }, zs = (e, s, t) => {
1489
+ l.classList.add("spark-table-head-title"), l.innerHTML = Xs(s);
1490
+ }, ta = (e, s, t) => {
956
1491
  if (typeof e != "number")
957
1492
  return e;
958
1493
  if (e < 0)
959
1494
  return;
960
1495
  let a = 2;
961
1496
  const l = t.methods.colToProp(e), n = t.methods.getSettingsForProp(l);
962
- s.childElementCount === 1 && ((!n || !n.columnSort) && a--, (!n || !n.columnFilter) && a--, n && n.columnSort && As(l, s, t), n && n.columnFilter && js(l, s, t)), (s.childElementCount === a || a === 0) && Os(s, l, n);
963
- }, Is = (e) => {
1497
+ s.childElementCount === 1 && ((!n || !n.columnSort) && a--, (!n || !n.columnFilter) && a--, n && n.columnSort && Js(l, s, t), n && n.columnFilter && Qs(l, s, t)), (s.childElementCount === a || a === 0) && ea(s, l, n);
1498
+ }, sa = (e) => {
964
1499
  if (!e.hotInstance || !e.hotInstance.rootElement)
965
1500
  return;
966
1501
  const s = e.params.orderBy, t = e.params.sortedBy, a = e.hotInstance.rootElement.querySelectorAll("thead th.can-sort .relative");
@@ -970,41 +1505,41 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
970
1505
  const n = l.closest("th"), o = Array.from(n.parentElement.children).indexOf(n);
971
1506
  e.methods.colToProp(o) === s && l.classList.add(t);
972
1507
  });
973
- }, Ns = (e) => (s, t, a, l, n, o, i) => {
1508
+ }, aa = (e) => (s, t, a, l, n, o, c) => {
974
1509
  t.innerHTML = "", t.classList.add("spark-table-cell-actions");
975
- const c = (i.rendererConfig || {}).actions || [];
976
- if (c.length === 0)
1510
+ const i = (c.rendererConfig || {}).actions || [];
1511
+ if (i.length === 0)
977
1512
  return;
978
- const p = s.getSourceDataAtRow(s.toPhysicalRow(a)), u = document.createElement("div");
979
- u.classList.add("flex", "items-center", "gap-2"), c.forEach((h) => {
980
- if (h.condition && typeof h.condition == "function" && !h.condition(p))
1513
+ const u = s.getSourceDataAtRow(s.toPhysicalRow(a)), p = document.createElement("div");
1514
+ p.classList.add("flex", "items-center", "gap-2"), i.forEach((f) => {
1515
+ if (f.condition && typeof f.condition == "function" && !f.condition(u))
981
1516
  return;
982
- const _ = document.createElement("button");
983
- if (_.type = "button", _.classList.add("spark-table-action-button"), h.icon) {
984
- const w = document.createElement("span");
985
- w.innerHTML = se({ prefix: "far", iconName: h.icon }).html, w.classList.add("size-4"), _.appendChild(w);
1517
+ const y = document.createElement("button");
1518
+ if (y.type = "button", y.classList.add("spark-table-action-button"), f.icon) {
1519
+ const k = document.createElement("span");
1520
+ k.innerHTML = le({ prefix: "far", iconName: f.icon }).html, k.classList.add("size-4"), y.appendChild(k);
986
1521
  }
987
- if (h.label) {
988
- const w = document.createElement("span");
989
- w.textContent = h.label, _.appendChild(w);
1522
+ if (f.label) {
1523
+ const k = document.createElement("span");
1524
+ k.textContent = f.label, y.appendChild(k);
990
1525
  }
991
- _.addEventListener("click", async (w) => {
992
- if (w.preventDefault(), w.stopPropagation(), h.confirm) {
993
- const m = typeof h.confirm == "string" ? h.confirm : `Are you sure you want to ${h.label?.toLowerCase() || "perform this action"}?`;
994
- if (!await J.confirm({
995
- title: h.confirmTitle,
996
- message: m,
997
- type: h.confirmType,
998
- confirmText: h.confirmText,
999
- cancelText: h.cancelText,
1000
- confirmVariant: h.confirmVariant
1526
+ y.addEventListener("click", async (k) => {
1527
+ if (k.preventDefault(), k.stopPropagation(), f.confirm) {
1528
+ const h = typeof f.confirm == "string" ? f.confirm : `Are you sure you want to ${f.label?.toLowerCase() || "perform this action"}?`;
1529
+ if (!await se.confirm({
1530
+ title: f.confirmTitle,
1531
+ message: h,
1532
+ type: f.confirmType,
1533
+ confirmText: f.confirmText,
1534
+ cancelText: f.cancelText,
1535
+ confirmVariant: f.confirmVariant
1001
1536
  }))
1002
1537
  return;
1003
1538
  }
1004
- h.event && e.methods.fireEvent(h.event, p), h.handler && typeof h.handler == "function" && h.handler(p);
1005
- }), u.appendChild(_);
1006
- }), t.appendChild(u);
1007
- }, ye = {
1539
+ f.event && e.methods.fireEvent(f.event, u), f.handler && typeof f.handler == "function" && f.handler(u);
1540
+ }), p.appendChild(y);
1541
+ }), t.appendChild(p);
1542
+ }, _e = {
1008
1543
  green: "bg-green-100 text-green-800",
1009
1544
  red: "bg-red-100 text-red-800",
1010
1545
  yellow: "bg-yellow-100 text-yellow-800",
@@ -1013,11 +1548,11 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1013
1548
  purple: "bg-purple-100 text-purple-800",
1014
1549
  pink: "bg-pink-100 text-pink-800",
1015
1550
  indigo: "bg-indigo-100 text-indigo-800"
1016
- }, Ds = (e) => (s, t, a, l, n, o, i) => {
1551
+ }, oa = (e) => (s, t, a, l, n, o, c) => {
1017
1552
  if (t.innerHTML = "", t.classList.add("spark-table-cell-badge"), !o)
1018
1553
  return;
1019
- const c = (i.rendererConfig || {}).colorMap || {}, p = c[o] || c[o?.toLowerCase()] || "gray", u = ye[p] || ye.gray, h = document.createElement("span");
1020
- h.classList.add(
1554
+ const i = (c.rendererConfig || {}).colorMap || {}, u = i[o] || i[o?.toLowerCase()] || "gray", p = _e[u] || _e.gray, f = document.createElement("span");
1555
+ f.classList.add(
1021
1556
  "inline-flex",
1022
1557
  "items-center",
1023
1558
  "px-2.5",
@@ -1026,16 +1561,16 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1026
1561
  "text-xs",
1027
1562
  "font-medium",
1028
1563
  "capitalize",
1029
- ...u.split(" ")
1030
- ), h.textContent = o, t.appendChild(h);
1031
- }, be = {
1564
+ ...p.split(" ")
1565
+ ), f.textContent = o, t.appendChild(f);
1566
+ }, we = {
1032
1567
  green: { bg: "bg-green-100", text: "text-green-500" },
1033
1568
  red: { bg: "bg-red-100", text: "text-red-500" },
1034
1569
  yellow: { bg: "bg-yellow-100", text: "text-yellow-500" },
1035
1570
  blue: { bg: "bg-blue-100", text: "text-blue-500" },
1036
1571
  gray: { bg: "bg-gray-100", text: "text-gray-500" },
1037
1572
  purple: { bg: "bg-purple-100", text: "text-purple-500" }
1038
- }, qs = (e) => {
1573
+ }, ra = (e) => {
1039
1574
  if (e == null || e === "")
1040
1575
  return !1;
1041
1576
  if (typeof e == "boolean")
@@ -1047,152 +1582,152 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1047
1582
  return s === "1" || s === "yes" || s === "true";
1048
1583
  }
1049
1584
  return !1;
1050
- }, Zs = (e) => (s, t, a, l, n, o, i) => {
1585
+ }, na = (e) => (s, t, a, l, n, o, c) => {
1051
1586
  t.innerHTML = "", t.classList.add("spark-table-cell-boolean");
1052
- const r = i.rendererConfig || {}, c = qs(o), p = c ? r.trueIcon || "check" : r.falseIcon || "xmark", u = c ? r.trueColor || "green" : r.falseColor || "red", h = r.size || 32, _ = r.iconPrefix || "far", w = be[u] || be.gray, m = document.createElement("div");
1053
- m.classList.add(
1587
+ const r = c.rendererConfig || {}, i = ra(o), u = i ? r.trueIcon || "check" : r.falseIcon || "xmark", p = i ? r.trueColor || "green" : r.falseColor || "red", f = r.size || 32, y = r.iconPrefix || "far", k = we[p] || we.gray, h = document.createElement("div");
1588
+ h.classList.add(
1054
1589
  "inline-flex",
1055
1590
  "items-center",
1056
1591
  "justify-center",
1057
1592
  "rounded-full",
1058
- w.bg,
1059
- w.text
1060
- ), m.style.width = `${h}px`, m.style.height = `${h}px`;
1061
- const x = document.createElement("span");
1062
- x.innerHTML = se({ prefix: _, iconName: p }).html, x.classList.add("flex", "items-center", "justify-center");
1063
- const P = Math.round(h * 0.5);
1064
- x.style.fontSize = `${P}px`, m.appendChild(x), t.appendChild(m);
1065
- }, Ks = (e) => (s, t, a, l, n, o, i) => {
1593
+ k.bg,
1594
+ k.text
1595
+ ), h.style.width = `${f}px`, h.style.height = `${f}px`;
1596
+ const _ = document.createElement("span");
1597
+ _.innerHTML = le({ prefix: y, iconName: u }).html, _.classList.add("flex", "items-center", "justify-center");
1598
+ const H = Math.round(f * 0.5);
1599
+ _.style.fontSize = `${H}px`, h.appendChild(_), t.appendChild(h);
1600
+ }, la = (e) => (s, t, a, l, n, o, c) => {
1066
1601
  if (t.innerHTML = "", t.classList.add("spark-table-cell-link"), !o)
1067
1602
  return;
1068
- const r = i.rendererConfig || {}, c = s.getSourceDataAtRow(s.toPhysicalRow(a));
1069
- let p = o;
1070
- r.href && (typeof r.href == "function" ? p = r.href(c) : r.href === "email" ? p = `mailto:${o}` : r.href === "tel" ? p = `tel:${o}` : typeof r.href == "string" && (p = c[r.href] || o));
1071
- const u = document.createElement("a");
1072
- u.href = p, u.textContent = o, u.classList.add("text-primary-600", "hover:text-primary-900", "hover:underline"), r.target && (u.target = r.target), r.rel && (u.rel = r.rel), u.addEventListener("click", (h) => {
1073
- h.stopPropagation();
1074
- }), t.appendChild(u);
1075
- }, ve = {
1603
+ const r = c.rendererConfig || {}, i = s.getSourceDataAtRow(s.toPhysicalRow(a));
1604
+ let u = o;
1605
+ r.href && (typeof r.href == "function" ? u = r.href(i) : r.href === "email" ? u = `mailto:${o}` : r.href === "tel" ? u = `tel:${o}` : typeof r.href == "string" && (u = i[r.href] || o));
1606
+ const p = document.createElement("a");
1607
+ p.href = u, p.textContent = o, p.classList.add("text-primary-600", "hover:text-primary-900", "hover:underline"), r.target && (p.target = r.target), r.rel && (p.rel = r.rel), p.addEventListener("click", (f) => {
1608
+ f.stopPropagation();
1609
+ }), t.appendChild(p);
1610
+ }, Se = {
1076
1611
  sm: "h-6 w-6",
1077
1612
  md: "h-8 w-8",
1078
1613
  lg: "h-12 w-12"
1079
- }, Us = (e) => (s, t, a, l, n, o, i) => {
1614
+ }, ia = (e) => (s, t, a, l, n, o, c) => {
1080
1615
  if (t.innerHTML = "", t.classList.add("spark-table-cell-image"), !o)
1081
1616
  return;
1082
- const r = i.rendererConfig || {}, c = s.getSourceDataAtRow(s.toPhysicalRow(a)), p = r.size || "md", u = ve[p] || ve.md, h = r.rounded !== !1;
1083
- let _ = r.alt || "";
1084
- typeof r.alt == "string" && c[r.alt] && (_ = c[r.alt]);
1085
- const w = document.createElement("img");
1086
- w.src = o, w.alt = _, w.classList.add(...u.split(" "), "object-cover"), h ? w.classList.add("rounded-full") : w.classList.add("rounded"), t.appendChild(w);
1087
- }, Gs = (e) => (s, t, a, l, n, o, i) => {
1617
+ const r = c.rendererConfig || {}, i = s.getSourceDataAtRow(s.toPhysicalRow(a)), u = r.size || "md", p = Se[u] || Se.md, f = r.rounded !== !1;
1618
+ let y = r.alt || "";
1619
+ typeof r.alt == "string" && i[r.alt] && (y = i[r.alt]);
1620
+ const k = document.createElement("img");
1621
+ k.src = o, k.alt = y, k.classList.add(...p.split(" "), "object-cover"), f ? k.classList.add("rounded-full") : k.classList.add("rounded"), t.appendChild(k);
1622
+ }, ca = (e) => (s, t, a, l, n, o, c) => {
1088
1623
  if (t.innerHTML = "", t.classList.add("spark-table-cell-date"), !o)
1089
1624
  return;
1090
- const r = i.rendererConfig || {}, c = r.format || "short", p = r.locale || "en-US";
1091
- let u = o;
1625
+ const r = c.rendererConfig || {}, i = r.format || "short", u = r.locale || "en-US";
1626
+ let p = o;
1092
1627
  try {
1093
- const _ = new Date(o);
1094
- isNaN(_.getTime()) ? u = o : typeof c == "function" ? u = c(_) : c === "short" ? u = _.toLocaleDateString(p) : c === "long" ? u = _.toLocaleDateString(p, {
1628
+ const y = new Date(o);
1629
+ isNaN(y.getTime()) ? p = o : typeof i == "function" ? p = i(y) : i === "short" ? p = y.toLocaleDateString(u) : i === "long" ? p = y.toLocaleDateString(u, {
1095
1630
  year: "numeric",
1096
1631
  month: "long",
1097
1632
  day: "numeric"
1098
- }) : c === "relative" ? u = Ws(_) : c === "datetime" ? u = _.toLocaleString(p) : u = _.toLocaleDateString(p);
1099
- } catch (_) {
1100
- console.error("Error formatting date:", _), u = o;
1633
+ }) : i === "relative" ? p = ua(y) : i === "datetime" ? p = y.toLocaleString(u) : p = y.toLocaleDateString(u);
1634
+ } catch (y) {
1635
+ console.error("Error formatting date:", y), p = o;
1101
1636
  }
1102
- const h = document.createElement("span");
1103
- h.textContent = u, t.appendChild(h);
1637
+ const f = document.createElement("span");
1638
+ f.textContent = p, t.appendChild(f);
1104
1639
  };
1105
- function Ws(e) {
1106
- const t = /* @__PURE__ */ new Date() - e, a = Math.floor(Math.abs(t) / 1e3), l = Math.floor(a / 60), n = Math.floor(l / 60), o = Math.floor(n / 24), i = Math.floor(o / 30), r = Math.floor(o / 365), c = t > 0;
1107
- return a < 60 ? c ? "just now" : "in a moment" : l < 60 ? c ? `${l} minute${l > 1 ? "s" : ""} ago` : `in ${l} minute${l > 1 ? "s" : ""}` : n < 24 ? c ? `${n} hour${n > 1 ? "s" : ""} ago` : `in ${n} hour${n > 1 ? "s" : ""}` : o < 30 ? c ? `${o} day${o > 1 ? "s" : ""} ago` : `in ${o} day${o > 1 ? "s" : ""}` : i < 12 ? c ? `${i} month${i > 1 ? "s" : ""} ago` : `in ${i} month${i > 1 ? "s" : ""}` : c ? `${r} year${r > 1 ? "s" : ""} ago` : `in ${r} year${r > 1 ? "s" : ""}`;
1640
+ function ua(e) {
1641
+ const t = /* @__PURE__ */ new Date() - e, a = Math.floor(Math.abs(t) / 1e3), l = Math.floor(a / 60), n = Math.floor(l / 60), o = Math.floor(n / 24), c = Math.floor(o / 30), r = Math.floor(o / 365), i = t > 0;
1642
+ return a < 60 ? i ? "just now" : "in a moment" : l < 60 ? i ? `${l} minute${l > 1 ? "s" : ""} ago` : `in ${l} minute${l > 1 ? "s" : ""}` : n < 24 ? i ? `${n} hour${n > 1 ? "s" : ""} ago` : `in ${n} hour${n > 1 ? "s" : ""}` : o < 30 ? i ? `${o} day${o > 1 ? "s" : ""} ago` : `in ${o} day${o > 1 ? "s" : ""}` : c < 12 ? i ? `${c} month${c > 1 ? "s" : ""} ago` : `in ${c} month${c > 1 ? "s" : ""}` : i ? `${r} year${r > 1 ? "s" : ""} ago` : `in ${r} year${r > 1 ? "s" : ""}`;
1108
1643
  }
1109
- const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1110
- Mt(e, (t, a, l, n, o, i, r) => {
1111
- Ft.apply(null, [t, a, l, n, o, i, r]), s(t, a, l, n, o, i, r);
1112
- }), Ys.set(e, s);
1113
- }, Xs = (e) => {
1114
- U("spark.actions", Ns(e)), U("spark.badge", Ds()), U("spark.boolean", Zs()), U("spark.link", Ks()), U("spark.image", Us()), U("spark.date", Gs()), U("style.capitalize", (s, t, a, l, n, o) => {
1644
+ const da = /* @__PURE__ */ new Map(), Y = (e, s) => {
1645
+ Nt(e, (t, a, l, n, o, c, r) => {
1646
+ qt.apply(null, [t, a, l, n, o, c, r]), s(t, a, l, n, o, c, r);
1647
+ }), da.set(e, s);
1648
+ }, pa = (e) => {
1649
+ Y("spark.actions", aa(e)), Y("spark.badge", oa()), Y("spark.boolean", na()), Y("spark.link", la()), Y("spark.image", ia()), Y("spark.date", ca()), Y("style.capitalize", (s, t, a, l, n, o) => {
1115
1650
  if (!o || o.length === 0) {
1116
1651
  t.innerText = "";
1117
1652
  return;
1118
1653
  }
1119
- const i = document.createElement("span");
1120
- i.innerHTML = o, i.classList.add("capitalize"), t.replaceChildren(i);
1654
+ const c = document.createElement("span");
1655
+ c.innerHTML = o, c.classList.add("capitalize"), t.replaceChildren(c);
1121
1656
  });
1122
- }, Js = () => {
1123
- }, Qs = (e, s = {}) => {
1124
- const t = K(), a = te(), l = s.namespace, n = l === null, o = s.syncToRoute !== !1, i = s.persistToStorage === !0, r = s.restoreOnMount !== !1, c = s.storageTTL || 7, p = n ? `spark-table:${a.path}` : `spark-table:${l}`, u = (b, S = "") => {
1657
+ }, fa = () => {
1658
+ }, ma = (e, s = {}) => {
1659
+ const t = W(), a = re(), l = s.namespace, n = l === null, o = s.syncToRoute !== !1, c = s.persistToStorage === !0, r = s.restoreOnMount !== !1, i = s.storageTTL || 7, u = n ? `spark-table:${a.path}` : `spark-table:${l}`, p = (b, T = "") => {
1125
1660
  const V = {};
1126
- return Object.keys(b).forEach((O) => {
1127
- const Y = b[O], fe = S ? `${S}[${O}]` : O;
1128
- Y != null && (typeof Y == "object" && !Array.isArray(Y) ? Object.assign(V, u(Y, fe)) : V[fe] = String(Y));
1661
+ return Object.keys(b).forEach((N) => {
1662
+ const Q = b[N], ye = T ? `${T}[${N}]` : N;
1663
+ Q != null && (typeof Q == "object" && !Array.isArray(Q) ? Object.assign(V, p(Q, ye)) : V[ye] = String(Q));
1129
1664
  }), V;
1130
- }, h = () => {
1131
- if (i)
1665
+ }, f = () => {
1666
+ if (c)
1132
1667
  try {
1133
1668
  const b = {
1134
1669
  params: e.params,
1135
1670
  timestamp: Date.now()
1136
1671
  };
1137
- localStorage.setItem(p, JSON.stringify(b));
1672
+ localStorage.setItem(u, JSON.stringify(b));
1138
1673
  } catch (b) {
1139
1674
  console.warn("Failed to save table state to localStorage:", b);
1140
1675
  }
1141
- }, _ = () => {
1142
- if (!i) return null;
1676
+ }, y = () => {
1677
+ if (!c) return null;
1143
1678
  try {
1144
- const b = localStorage.getItem(p);
1679
+ const b = localStorage.getItem(u);
1145
1680
  if (!b) return null;
1146
- const S = JSON.parse(b);
1147
- if (c > 0) {
1148
- const V = Date.now() - S.timestamp, O = c * 24 * 60 * 60 * 1e3;
1149
- if (V > O)
1150
- return localStorage.removeItem(p), null;
1681
+ const T = JSON.parse(b);
1682
+ if (i > 0) {
1683
+ const V = Date.now() - T.timestamp, N = i * 24 * 60 * 60 * 1e3;
1684
+ if (V > N)
1685
+ return localStorage.removeItem(u), null;
1151
1686
  }
1152
- return S.params;
1687
+ return T.params;
1153
1688
  } catch (b) {
1154
1689
  return console.warn("Failed to load table state from localStorage:", b), null;
1155
1690
  }
1156
- }, w = () => {
1691
+ }, k = () => {
1157
1692
  try {
1158
- localStorage.removeItem(p);
1693
+ localStorage.removeItem(u);
1159
1694
  } catch (b) {
1160
1695
  console.warn("Failed to clear table state from localStorage:", b);
1161
1696
  }
1162
- }, m = () => {
1697
+ }, h = () => {
1163
1698
  if (!o) return;
1164
1699
  const b = { ...a.query };
1165
1700
  if (n) {
1166
1701
  Object.keys(b).forEach((V) => {
1167
- x(V) && delete b[V];
1702
+ _(V) && delete b[V];
1168
1703
  });
1169
- const S = u(e.params);
1170
- Object.assign(b, S);
1704
+ const T = p(e.params);
1705
+ Object.assign(b, T);
1171
1706
  } else {
1172
1707
  Object.keys(b).forEach((V) => {
1173
1708
  (V.startsWith(`${l}[`) || V === l) && delete b[V];
1174
1709
  });
1175
- const S = u(e.params, l);
1176
- Object.assign(b, S);
1710
+ const T = p(e.params, l);
1711
+ Object.assign(b, T);
1177
1712
  }
1178
1713
  t.replace({ query: b });
1179
- }, x = (b) => !!(["page", "limit", "search", "orderBy", "sortedBy"].includes(b) || b.includes("[")), P = (b, S) => {
1180
- if (["page", "limit"].includes(b) && S !== null && S !== void 0) {
1181
- const O = parseInt(S, 10);
1182
- return isNaN(O) ? S : O;
1714
+ }, _ = (b) => !!(["page", "limit", "search", "orderBy", "sortedBy"].includes(b) || b.includes("[")), H = (b, T) => {
1715
+ if (["page", "limit"].includes(b) && T !== null && T !== void 0) {
1716
+ const N = parseInt(T, 10);
1717
+ return isNaN(N) ? T : N;
1183
1718
  }
1184
- return S;
1185
- }, k = () => {
1719
+ return T;
1720
+ }, w = () => {
1186
1721
  if (n)
1187
1722
  Object.keys(a.query).forEach((b) => {
1188
- x(b) && (e.params[b] = P(b, a.query[b]));
1723
+ _(b) && (e.params[b] = H(b, a.query[b]));
1189
1724
  });
1190
1725
  else {
1191
1726
  const b = `${l}[`;
1192
- Object.keys(a.query).forEach((S) => {
1193
- if (S.startsWith(b)) {
1194
- const V = S.slice(b.length, -1);
1195
- e.params[V] = P(V, a.query[S]);
1727
+ Object.keys(a.query).forEach((T) => {
1728
+ if (T.startsWith(b)) {
1729
+ const V = T.slice(b.length, -1);
1730
+ e.params[V] = H(V, a.query[T]);
1196
1731
  }
1197
1732
  });
1198
1733
  }
@@ -1200,37 +1735,37 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1200
1735
  return j(
1201
1736
  () => e.params,
1202
1737
  () => {
1203
- o && m(), i && h();
1738
+ o && h(), c && f();
1204
1739
  },
1205
1740
  { deep: !0 }
1206
- ), r && pe(() => {
1741
+ ), r && ge(() => {
1207
1742
  let b = !1;
1208
1743
  if (o) {
1209
- let S = !1;
1744
+ let T = !1;
1210
1745
  if (n)
1211
- S = Object.keys(a.query).some((V) => x(V));
1746
+ T = Object.keys(a.query).some((V) => _(V));
1212
1747
  else {
1213
1748
  const V = `${l}[`;
1214
- S = Object.keys(a.query).some(
1215
- (O) => O.startsWith(V)
1749
+ T = Object.keys(a.query).some(
1750
+ (N) => N.startsWith(V)
1216
1751
  );
1217
1752
  }
1218
- S && (b = !0, k());
1753
+ T && (b = !0, w());
1219
1754
  }
1220
- if (!b && i) {
1221
- const S = _();
1222
- S && Object.keys(S).length > 0 && (Object.keys(S).forEach((V) => {
1223
- S[V] = P(V, S[V]);
1224
- }), Object.assign(e.params, S));
1755
+ if (!b && c) {
1756
+ const T = y();
1757
+ T && Object.keys(T).length > 0 && (Object.keys(T).forEach((V) => {
1758
+ T[V] = H(V, T[V]);
1759
+ }), Object.assign(e.params, T));
1225
1760
  }
1226
1761
  }), {
1227
- syncToRoute: m,
1228
- restoreFromRoute: k,
1229
- saveToStorage: h,
1230
- loadFromStorage: _,
1231
- clearStorage: w
1762
+ syncToRoute: h,
1763
+ restoreFromRoute: w,
1764
+ saveToStorage: f,
1765
+ loadFromStorage: y,
1766
+ clearStorage: k
1232
1767
  };
1233
- }, ea = { class: "flex items-center gap-4 py-3" }, ta = { class: "shrink-0" }, sa = { class: "text-sm text-gray-700" }, aa = { class: "font-medium" }, oa = { class: "font-medium" }, ra = { class: "font-medium" }, na = {
1768
+ }, ha = { class: "flex items-center gap-4 py-3" }, ga = { class: "shrink-0" }, ya = { class: "text-sm text-gray-700" }, va = { class: "font-medium" }, ba = { class: "font-medium" }, xa = { class: "font-medium" }, ka = {
1234
1769
  __name: "SparkTablePaginationDetails",
1235
1770
  props: {
1236
1771
  sparkTable: {
@@ -1240,29 +1775,29 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1240
1775
  },
1241
1776
  setup(e) {
1242
1777
  const s = e;
1243
- return (t, a) => (f(), g("div", null, [
1244
- d("div", ea, [
1245
- d("div", ta, [
1246
- d("div", sa, [
1247
- a[0] || (a[0] = A(" Showing ", -1)),
1248
- d("span", aa, H(s.sparkTable.response.meta.from), 1),
1249
- a[1] || (a[1] = A(" to ", -1)),
1250
- d("span", oa, H(s.sparkTable.response.meta.to), 1),
1251
- a[2] || (a[2] = A(" of ", -1)),
1252
- d("span", ra, H(s.sparkTable.response.meta.total), 1),
1253
- a[3] || (a[3] = A(" results ", -1))
1778
+ return (t, a) => (m(), g("div", null, [
1779
+ d("div", ha, [
1780
+ d("div", ga, [
1781
+ d("div", ya, [
1782
+ a[0] || (a[0] = B(" Showing ", -1)),
1783
+ d("span", va, L(s.sparkTable.response.meta.from), 1),
1784
+ a[1] || (a[1] = B(" to ", -1)),
1785
+ d("span", ba, L(s.sparkTable.response.meta.to), 1),
1786
+ a[2] || (a[2] = B(" of ", -1)),
1787
+ d("span", xa, L(s.sparkTable.response.meta.total), 1),
1788
+ a[3] || (a[3] = B(" results ", -1))
1254
1789
  ])
1255
1790
  ])
1256
1791
  ])
1257
1792
  ]));
1258
1793
  }
1259
- }, la = { class: "flex items-center gap-4 px-4 py-3" }, ia = {
1794
+ }, _a = { class: "flex items-center gap-4 px-4 py-3" }, wa = {
1260
1795
  key: 0,
1261
1796
  class: "shrink-0 ml-auto"
1262
- }, ca = {
1797
+ }, Sa = {
1263
1798
  class: "isolate inline-flex -space-x-px rounded-md shadow-xs bg-white",
1264
1799
  "aria-label": "Pagination"
1265
- }, da = ["onClick"], ua = {
1800
+ }, Ca = ["onClick"], $a = {
1266
1801
  __name: "SparkTablePaginationPaging",
1267
1802
  props: {
1268
1803
  sparkTable: {
@@ -1272,51 +1807,51 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1272
1807
  },
1273
1808
  emits: ["paginate"],
1274
1809
  setup(e, { emit: s }) {
1275
- const t = e, a = s, l = (p) => {
1276
- n(t.sparkTable.params.page + p);
1277
- }, n = (p) => {
1278
- p < 1 || p > t.sparkTable.response.meta.last_page || a("paginate", {
1279
- page: p
1810
+ const t = e, a = s, l = (u) => {
1811
+ n(t.sparkTable.params.page + u);
1812
+ }, n = (u) => {
1813
+ u < 1 || u > t.sparkTable.response.meta.last_page || a("paginate", {
1814
+ page: u
1280
1815
  });
1281
- }, o = C(() => t.sparkTable.params.page ? Math.ceil(t.sparkTable.params.page / 10) * 10 : 1), i = C(() => t.sparkTable.computed.ready ? $t(
1816
+ }, o = S(() => t.sparkTable.params.page ? Math.ceil(t.sparkTable.params.page / 10) * 10 : 1), c = S(() => t.sparkTable.computed.ready ? Bt(
1282
1817
  Math.floor((o.value - 1) / 10) * 10 + 1,
1283
1818
  o.value > t.sparkTable.response.meta.last_page ? t.sparkTable.response.meta.last_page + 1 : o.value + 1
1284
- ) : []), r = C(
1285
- () => t.sparkTable.params.page < D(t.sparkTable.response.meta, "last_page", 1)
1286
- ), c = C(() => t.sparkTable.params.page > 1);
1287
- return (p, u) => {
1288
- const h = B("font-awesome-icon");
1289
- return f(), g("div", null, [
1290
- d("div", la, [
1291
- i.value.length > 1 ? (f(), g("div", ia, [
1819
+ ) : []), r = S(
1820
+ () => t.sparkTable.params.page < U(t.sparkTable.response.meta, "last_page", 1)
1821
+ ), i = S(() => t.sparkTable.params.page > 1);
1822
+ return (u, p) => {
1823
+ const f = A("font-awesome-icon");
1824
+ return m(), g("div", null, [
1825
+ d("div", _a, [
1826
+ c.value.length > 1 ? (m(), g("div", wa, [
1292
1827
  d("div", null, [
1293
- d("nav", ca, [
1828
+ d("nav", Sa, [
1294
1829
  d("a", {
1295
- class: T([c.value ? "" : "disabled", "relative inline-flex items-center rounded-l-md px-2 py-[9px] text-gray-400 ring-1 ring-gray-300 ring-inset hover:bg-gray-50 focus:z-20 focus:outline-offset-0"]),
1830
+ class: P([i.value ? "" : "disabled", "relative inline-flex items-center rounded-l-md px-2 py-[9px] text-gray-400 ring-1 ring-gray-300 ring-inset hover:bg-gray-50 focus:z-20 focus:outline-offset-0"]),
1296
1831
  href: "#",
1297
- onClick: u[0] || (u[0] = G((_) => l(-1), ["prevent"]))
1832
+ onClick: p[0] || (p[0] = X((y) => l(-1), ["prevent"]))
1298
1833
  }, [
1299
- v(h, {
1300
- icon: y(E).farChevronLeft,
1834
+ v(f, {
1835
+ icon: x(F).farChevronLeft,
1301
1836
  class: "size-5"
1302
1837
  }, null, 8, ["icon"])
1303
1838
  ], 2),
1304
- (f(!0), g(z, null, q(i.value, (_) => (f(), g("a", {
1305
- key: `page-${_}`,
1839
+ (m(!0), g(R, null, z(c.value, (y) => (m(), g("a", {
1840
+ key: `page-${y}`,
1306
1841
  href: "#",
1307
- class: T([
1842
+ class: P([
1308
1843
  "relative inline-flex items-center px-4 py-[9px] text-sm font-semibold ring-1 ring-inset",
1309
- e.sparkTable.params.page === _ ? "z-10 text-white bg-primary-600 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 hover:bg-primary-600" : "text-gray-900 hover:bg-gray-50 ring-gray-300 focus:z-20 focus:outline-offset-0"
1844
+ e.sparkTable.params.page === y ? "z-10 text-white bg-primary-600 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 hover:bg-primary-600" : "text-gray-900 hover:bg-gray-50 ring-gray-300 focus:z-20 focus:outline-offset-0"
1310
1845
  ]),
1311
- onClick: (w) => n(_)
1312
- }, H(_), 11, da))), 128)),
1846
+ onClick: (k) => n(y)
1847
+ }, L(y), 11, Ca))), 128)),
1313
1848
  d("a", {
1314
- class: T([r.value ? "" : "disabled", "relative inline-flex items-center rounded-r-md px-2 py-[9px] text-gray-400 ring-1 ring-gray-300 ring-inset hover:bg-gray-50 focus:z-20 focus:outline-offset-0"]),
1315
- onClick: u[1] || (u[1] = G((_) => l(1), ["prevent"])),
1849
+ class: P([r.value ? "" : "disabled", "relative inline-flex items-center rounded-r-md px-2 py-[9px] text-gray-400 ring-1 ring-gray-300 ring-inset hover:bg-gray-50 focus:z-20 focus:outline-offset-0"]),
1850
+ onClick: p[1] || (p[1] = X((y) => l(1), ["prevent"])),
1316
1851
  href: "#"
1317
1852
  }, [
1318
- v(h, {
1319
- icon: y(E).farChevronRight,
1853
+ v(f, {
1854
+ icon: x(F).farChevronRight,
1320
1855
  class: "size-5"
1321
1856
  }, null, 8, ["icon"])
1322
1857
  ], 2)
@@ -1327,12 +1862,12 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1327
1862
  ]);
1328
1863
  };
1329
1864
  }
1330
- }, W = (e, s) => {
1865
+ }, J = (e, s) => {
1331
1866
  const t = e.__vccOpts || e;
1332
1867
  for (const [a, l] of s)
1333
1868
  t[a] = l;
1334
1869
  return t;
1335
- }, pa = { class: "spark-table-pagination-per-page" }, fa = {
1870
+ }, Ta = { class: "spark-table-pagination-per-page" }, La = {
1336
1871
  __name: "SparkTablePaginationPerPage",
1337
1872
  props: {
1338
1873
  sparkTable: {
@@ -1342,7 +1877,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1342
1877
  },
1343
1878
  emits: ["paginate"],
1344
1879
  setup(e, { emit: s }) {
1345
- const t = e, a = s, l = C(() => t.sparkTable.options.perPages.map((o) => ({
1880
+ const t = e, a = s, l = S(() => t.sparkTable.options.perPages.map((o) => ({
1346
1881
  label: String(o),
1347
1882
  value: o
1348
1883
  }))), n = (o) => {
@@ -1351,9 +1886,9 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1351
1886
  limit: parseInt(o)
1352
1887
  });
1353
1888
  };
1354
- return (o, i) => {
1355
- const r = B("FormKit");
1356
- return f(), g("div", pa, [
1889
+ return (o, c) => {
1890
+ const r = A("FormKit");
1891
+ return m(), g("div", Ta, [
1357
1892
  v(r, {
1358
1893
  "model-value": e.sparkTable.params.limit,
1359
1894
  type: "select",
@@ -1366,7 +1901,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1366
1901
  ]);
1367
1902
  };
1368
1903
  }
1369
- }, ma = /* @__PURE__ */ W(fa, [["__scopeId", "data-v-9ef8544b"]]), xe = {
1904
+ }, Pa = /* @__PURE__ */ J(La, [["__scopeId", "data-v-9ef8544b"]]), Ce = {
1370
1905
  __name: "SparkTableToolbar",
1371
1906
  props: {
1372
1907
  position: {
@@ -1376,18 +1911,18 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1376
1911
  }
1377
1912
  },
1378
1913
  setup(e) {
1379
- const s = e, t = $e(), a = C(() => !!t.default), l = C(() => {
1914
+ const s = e, t = He(), a = S(() => !!t.default), l = S(() => {
1380
1915
  const n = "spark-table-toolbar flex flex-wrap items-center gap-x-5 w-full";
1381
1916
  return s.position === "footer" ? `${n} spark-table-toolbar-footer justify-between` : `${n} spark-table-toolbar-header gap-y-5 py-5`;
1382
1917
  });
1383
- return (n, o) => a.value ? (f(), g("div", {
1918
+ return (n, o) => a.value ? (m(), g("div", {
1384
1919
  key: 0,
1385
- class: T(l.value)
1920
+ class: P(l.value)
1386
1921
  }, [
1387
- M(n.$slots, "default")
1922
+ O(n.$slots, "default")
1388
1923
  ], 2)) : $("", !0);
1389
1924
  }
1390
- }, ga = { class: "spark-table-search" }, ha = {
1925
+ }, Ha = { class: "spark-table-search" }, Va = {
1391
1926
  __name: "SparkTableSearch",
1392
1927
  props: {
1393
1928
  /** SparkTable instance object */
@@ -1406,11 +1941,11 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1406
1941
  }
1407
1942
  },
1408
1943
  setup(e) {
1409
- const s = e, t = R(""), a = s.config.param || "search";
1944
+ const s = e, t = E(""), a = s.config.param || "search";
1410
1945
  s.sparkTable.params[a] ? t.value = s.sparkTable.params[a] : s.config.initialValue && (t.value = s.config.initialValue, s.sparkTable.methods.applyParams({
1411
1946
  [a]: s.config.initialValue
1412
1947
  }));
1413
- const l = Ve((o) => {
1948
+ const l = Ee((o) => {
1414
1949
  o ? s.sparkTable.methods.applyParams({
1415
1950
  page: 1,
1416
1951
  [a]: o
@@ -1425,14 +1960,14 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1425
1960
  (o) => {
1426
1961
  o && o !== t.value ? t.value = o : !o && t.value && (t.value = "");
1427
1962
  }
1428
- ), (o, i) => {
1429
- const r = B("FormKit");
1430
- return f(), g("div", ga, [
1431
- v(r, oe({
1963
+ ), (o, c) => {
1964
+ const r = A("FormKit");
1965
+ return m(), g("div", Ha, [
1966
+ v(r, D({
1432
1967
  modelValue: t.value,
1433
- "onUpdate:modelValue": i[0] || (i[0] = (c) => t.value = c),
1968
+ "onUpdate:modelValue": c[0] || (c[0] = (i) => t.value = i),
1434
1969
  type: "text",
1435
- placeholder: y(n),
1970
+ placeholder: x(n),
1436
1971
  suffixIcon: "search",
1437
1972
  "outer-class": "!mb-0",
1438
1973
  "wrapper-class": "!mb-0",
@@ -1441,7 +1976,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1441
1976
  ]);
1442
1977
  };
1443
1978
  }
1444
- }, ya = /* @__PURE__ */ W(ha, [["__scopeId", "data-v-976170dc"]]), ba = { class: "spark-table-filter-select" }, va = {
1979
+ }, Ma = /* @__PURE__ */ J(Va, [["__scopeId", "data-v-976170dc"]]), Ra = { class: "spark-table-filter-select" }, Ba = {
1445
1980
  __name: "SparkTableFilterSelect",
1446
1981
  props: {
1447
1982
  /** SparkTable instance object */
@@ -1457,11 +1992,11 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1457
1992
  }
1458
1993
  },
1459
1994
  setup(e) {
1460
- const s = e, t = R(""), a = s.config.param || `filter[${s.config.key}]`;
1995
+ const s = e, t = E(""), a = s.config.param || `filter[${s.config.key}]`;
1461
1996
  s.sparkTable.params[a] ? t.value = s.sparkTable.params[a] : s.config.initialValue !== void 0 && s.config.initialValue !== null && (t.value = s.config.initialValue, s.sparkTable.methods.applyParams({
1462
1997
  [a]: s.config.initialValue
1463
1998
  }));
1464
- const l = s.config.label || null, n = C(() => [
1999
+ const l = s.config.label || null, n = S(() => [
1465
2000
  { label: s.config.placeholder || "All", value: "" },
1466
2001
  ...s.config.options
1467
2002
  ]);
@@ -1475,14 +2010,14 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1475
2010
  (o) => {
1476
2011
  o != null && o !== "" ? t.value !== o && (t.value = o) : t.value && (t.value = "");
1477
2012
  }
1478
- ), (o, i) => {
1479
- const r = B("FormKit");
1480
- return f(), g("div", ba, [
1481
- v(r, oe({
2013
+ ), (o, c) => {
2014
+ const r = A("FormKit");
2015
+ return m(), g("div", Ra, [
2016
+ v(r, D({
1482
2017
  modelValue: t.value,
1483
- "onUpdate:modelValue": i[0] || (i[0] = (c) => t.value = c),
2018
+ "onUpdate:modelValue": c[0] || (c[0] = (i) => t.value = i),
1484
2019
  type: "select",
1485
- label: y(l),
2020
+ label: x(l),
1486
2021
  options: n.value,
1487
2022
  placeholder: e.config.placeholder || "All",
1488
2023
  "outer-class": "!mb-0",
@@ -1491,10 +2026,10 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1491
2026
  ]);
1492
2027
  };
1493
2028
  }
1494
- }, xa = /* @__PURE__ */ W(va, [["__scopeId", "data-v-642dbc69"]]), ka = { class: "spark-table-filter-buttons" }, wa = {
2029
+ }, Ea = /* @__PURE__ */ J(Ba, [["__scopeId", "data-v-642dbc69"]]), Aa = { class: "spark-table-filter-buttons" }, Fa = {
1495
2030
  key: 0,
1496
2031
  class: "spark-table-filter-buttons-label"
1497
- }, _a = {
2032
+ }, Oa = {
1498
2033
  __name: "SparkTableFilterButtons",
1499
2034
  props: {
1500
2035
  /** SparkTable instance object */
@@ -1510,33 +2045,33 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1510
2045
  }
1511
2046
  },
1512
2047
  setup(e) {
1513
- const s = e, t = R(null), a = s.config.label || null, l = s.config.param || `filter[${s.config.key}]`;
2048
+ const s = e, t = E(null), a = s.config.label || null, l = s.config.param || `filter[${s.config.key}]`;
1514
2049
  s.sparkTable.params[l] !== void 0 ? t.value = s.sparkTable.params[l] : s.config.initialValue !== void 0 && (t.value = s.config.initialValue, s.config.initialValue !== null && s.sparkTable.methods.applyParams({
1515
2050
  [l]: s.config.initialValue
1516
2051
  }));
1517
- const n = (i) => i == null ? t.value === null || t.value === void 0 || t.value === "" : t.value === i, o = (i) => {
1518
- t.value = i, i == null || i === "" ? s.sparkTable.methods.removeParam(l) : s.sparkTable.methods.applyParams({
2052
+ const n = (c) => c == null ? t.value === null || t.value === void 0 || t.value === "" : t.value === c, o = (c) => {
2053
+ t.value = c, c == null || c === "" ? s.sparkTable.methods.removeParam(l) : s.sparkTable.methods.applyParams({
1519
2054
  page: 1,
1520
- [l]: i
2055
+ [l]: c
1521
2056
  });
1522
2057
  };
1523
2058
  return j(
1524
2059
  () => s.sparkTable.params[l],
1525
- (i) => {
1526
- (i == null || i === "") && t.value ? t.value = null : i !== t.value && (t.value = i);
2060
+ (c) => {
2061
+ (c == null || c === "") && t.value ? t.value = null : c !== t.value && (t.value = c);
1527
2062
  }
1528
- ), (i, r) => (f(), g("div", ka, [
1529
- y(a) ? (f(), g("span", wa, H(y(a)), 1)) : $("", !0),
1530
- v(Cs, { class: "isolate" }, {
1531
- default: L(() => [
1532
- (f(!0), g(z, null, q(e.config.options, (c) => (f(), F(N, {
1533
- key: c.value,
2063
+ ), (c, r) => (m(), g("div", Aa, [
2064
+ x(a) ? (m(), g("span", Fa, L(x(a)), 1)) : $("", !0),
2065
+ v(zs, { class: "isolate" }, {
2066
+ default: C(() => [
2067
+ (m(!0), g(R, null, z(e.config.options, (i) => (m(), M(K, {
2068
+ key: i.value,
1534
2069
  size: "xl",
1535
- variant: n(c.value) ? "primary" : "secondary",
1536
- onClick: (p) => o(c.value)
2070
+ variant: n(i.value) ? "primary" : "secondary",
2071
+ onClick: (u) => o(i.value)
1537
2072
  }, {
1538
- default: L(() => [
1539
- A(H(c.label), 1)
2073
+ default: C(() => [
2074
+ B(L(i.label), 1)
1540
2075
  ]),
1541
2076
  _: 2
1542
2077
  }, 1032, ["variant", "onClick"]))), 128))
@@ -1545,7 +2080,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1545
2080
  })
1546
2081
  ]));
1547
2082
  }
1548
- }, Ca = /* @__PURE__ */ W(_a, [["__scopeId", "data-v-0fcd0cce"]]), Sa = { class: "spark-table-date-picker" }, $a = {
2083
+ }, za = /* @__PURE__ */ J(Oa, [["__scopeId", "data-v-0fcd0cce"]]), ja = { class: "spark-table-date-picker" }, Ia = {
1549
2084
  __name: "SparkTableDatePicker",
1550
2085
  props: {
1551
2086
  /** SparkTable instance object */
@@ -1561,7 +2096,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1561
2096
  }
1562
2097
  },
1563
2098
  setup(e) {
1564
- const s = e, t = R(null), a = s.config.label || null, l = s.config.param || `filter[${s.config.key}]`, n = R(`${l}-0`);
2099
+ const s = e, t = E(null), a = s.config.label || null, l = s.config.param || `filter[${s.config.key}]`, n = E(`${l}-0`);
1565
2100
  return s.sparkTable.params[l] ? t.value = s.sparkTable.params[l] : s.config.initialValue ? (t.value = s.config.initialValue, s.sparkTable.methods.applyParams({
1566
2101
  [l]: s.config.initialValue
1567
2102
  })) : t.value = null, j(t, (o) => {
@@ -1574,20 +2109,20 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1574
2109
  (o) => {
1575
2110
  if ((o == null || o === "") && t.value) {
1576
2111
  t.value = null;
1577
- const i = parseInt(n.value.split("-").pop()) || 0;
1578
- n.value = `${l}-${i + 1}`;
2112
+ const c = parseInt(n.value.split("-").pop()) || 0;
2113
+ n.value = `${l}-${c + 1}`;
1579
2114
  } else o && o !== t.value && (t.value = o);
1580
2115
  }
1581
- ), (o, i) => {
1582
- const r = B("FormKit");
1583
- return f(), g("div", Sa, [
1584
- (f(), F(r, oe({
2116
+ ), (o, c) => {
2117
+ const r = A("FormKit");
2118
+ return m(), g("div", ja, [
2119
+ (m(), M(r, D({
1585
2120
  key: n.value,
1586
2121
  modelValue: t.value,
1587
- "onUpdate:modelValue": i[0] || (i[0] = (c) => t.value = c),
2122
+ "onUpdate:modelValue": c[0] || (c[0] = (i) => t.value = i),
1588
2123
  type: "datepicker",
1589
2124
  "picker-only": "",
1590
- label: y(a),
2125
+ label: x(a),
1591
2126
  placeholder: e.config.placeholder || "Select date",
1592
2127
  overlay: !0,
1593
2128
  "value-format": "YYYY-MM-DD",
@@ -1598,7 +2133,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1598
2133
  ]);
1599
2134
  };
1600
2135
  }
1601
- }, Ta = /* @__PURE__ */ W($a, [["__scopeId", "data-v-44ef9cb8"]]), La = { class: "spark-table-reset" }, Ha = { key: 1 }, Pa = {
2136
+ }, Da = /* @__PURE__ */ J(Ia, [["__scopeId", "data-v-44ef9cb8"]]), Na = { class: "spark-table-reset" }, qa = { key: 1 }, Za = {
1602
2137
  __name: "SparkTableReset",
1603
2138
  props: {
1604
2139
  /** SparkTable instance object */
@@ -1615,56 +2150,56 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1615
2150
  setup(e) {
1616
2151
  const s = e, t = () => {
1617
2152
  const a = s.sparkTable.plugins || {}, l = [], n = {};
1618
- Object.entries(a).forEach(([c, p]) => {
1619
- if (!p || p.type === "reset" || !(typeof p.enabled == "function" ? p.enabled(s.sparkTable.params) : p.enabled))
2153
+ Object.entries(a).forEach(([i, u]) => {
2154
+ if (!u || u.type === "reset" || !(typeof u.enabled == "function" ? u.enabled(s.sparkTable.params) : u.enabled))
1620
2155
  return;
1621
- let h = null;
1622
- p.type === "search" ? h = p.param || "search" : p.type === "filterSelect" || p.type === "filterButtons" ? h = p.param || `filter[${p.key}]` : p.type === "datePicker" && (h = p.param || `filter[${p.key}]`), h && (p.initialValue !== void 0 && p.initialValue !== null ? n[h] = p.initialValue : l.push(h));
2156
+ let f = null;
2157
+ u.type === "search" ? f = u.param || "search" : u.type === "filterSelect" || u.type === "filterButtons" ? f = u.param || `filter[${u.key}]` : u.type === "datePicker" && (f = u.param || `filter[${u.key}]`), f && (u.initialValue !== void 0 && u.initialValue !== null ? n[f] = u.initialValue : l.push(f));
1623
2158
  });
1624
2159
  const o = l.filter(
1625
- (c) => s.sparkTable.params[c] !== void 0 && s.sparkTable.params[c] !== null && s.sparkTable.params[c] !== ""
1626
- ), i = Object.entries(n).filter(
1627
- ([c, p]) => s.sparkTable.params[c] !== p
2160
+ (i) => s.sparkTable.params[i] !== void 0 && s.sparkTable.params[i] !== null && s.sparkTable.params[i] !== ""
2161
+ ), c = Object.entries(n).filter(
2162
+ ([i, u]) => s.sparkTable.params[i] !== u
1628
2163
  );
1629
- if (o.length === 0 && i.length === 0)
2164
+ if (o.length === 0 && c.length === 0)
1630
2165
  return;
1631
- o.forEach((c) => {
1632
- delete s.sparkTable.params[c];
2166
+ o.forEach((i) => {
2167
+ delete s.sparkTable.params[i];
1633
2168
  });
1634
- const r = Object.fromEntries(i);
2169
+ const r = Object.fromEntries(c);
1635
2170
  s.sparkTable.methods.applyParams({ ...r, page: 1 });
1636
2171
  };
1637
2172
  return (a, l) => {
1638
- const n = B("font-awesome-icon");
1639
- return f(), g("div", La, [
1640
- v(N, {
2173
+ const n = A("font-awesome-icon");
2174
+ return m(), g("div", Na, [
2175
+ v(K, {
1641
2176
  onClick: t,
1642
2177
  variant: "secondary",
1643
2178
  size: "xl"
1644
2179
  }, {
1645
- default: L(() => [
1646
- e.config.icon ? (f(), F(n, {
2180
+ default: C(() => [
2181
+ e.config.icon ? (m(), M(n, {
1647
2182
  key: 0,
1648
2183
  icon: ["far", e.config.icon],
1649
- class: T({ "mr-1.5": e.config.label })
2184
+ class: P({ "mr-1.5": e.config.label })
1650
2185
  }, null, 8, ["icon", "class"])) : $("", !0),
1651
- e.config.label ? (f(), g("span", Ha, H(e.config.label), 1)) : $("", !0)
2186
+ e.config.label ? (m(), g("span", qa, L(e.config.label), 1)) : $("", !0)
1652
2187
  ]),
1653
2188
  _: 1
1654
2189
  })
1655
2190
  ]);
1656
2191
  };
1657
2192
  }
1658
- }, Va = /* @__PURE__ */ W(Pa, [["__scopeId", "data-v-45343158"]]), Ra = { class: "spark-table" }, Ba = {
2193
+ }, Ka = /* @__PURE__ */ J(Za, [["__scopeId", "data-v-45343158"]]), Ua = { class: "spark-table" }, Ga = {
1659
2194
  key: 1,
1660
2195
  class: "pt-5"
1661
- }, Ea = { class: "flex items-center gap-x-3" }, ue = {
2196
+ }, Wa = { class: "flex items-center gap-x-3" }, he = {
1662
2197
  perPages: [15, 30, 50, 100, 200, 500],
1663
2198
  limit: 15
1664
- }, Ma = {
2199
+ }, Ya = {
1665
2200
  page: 1,
1666
- limit: ue.limit
1667
- }, ke = {
2201
+ limit: he.limit
2202
+ }, $e = {
1668
2203
  colHeaders: !0,
1669
2204
  filters: !1,
1670
2205
  stretchH: "all",
@@ -1674,7 +2209,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1674
2209
  tableClassName: "spark-table-table",
1675
2210
  readOnlyCellClassName: "read-only",
1676
2211
  licenseKey: "non-commercial-and-evaluation"
1677
- }, Mr = {
2212
+ }, Xr = {
1678
2213
  __name: "SparkTable",
1679
2214
  props: {
1680
2215
  url: {
@@ -1686,7 +2221,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1686
2221
  dataTransformer: {
1687
2222
  type: Function,
1688
2223
  default: (e, s) => ({
1689
- data: D(s.settings, "nestedHeaders") ? e.data.data.map((a) => (s.settings.columnKeys || []).map((n) => a[n])) : e.data.data,
2224
+ data: U(s.settings, "nestedHeaders") ? e.data.data.map((a) => (s.settings.columnKeys || []).map((n) => a[n])) : e.data.data,
1690
2225
  meta: {
1691
2226
  last_page: e.data.last_page,
1692
2227
  from: e.data.from,
@@ -1698,19 +2233,19 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1698
2233
  params: {
1699
2234
  type: Object,
1700
2235
  default() {
1701
- return Ma;
2236
+ return Ya;
1702
2237
  }
1703
2238
  },
1704
2239
  options: {
1705
2240
  type: Object,
1706
2241
  default() {
1707
- return ue;
2242
+ return he;
1708
2243
  }
1709
2244
  },
1710
2245
  settings: {
1711
2246
  type: Object,
1712
2247
  default() {
1713
- return ke;
2248
+ return $e;
1714
2249
  }
1715
2250
  },
1716
2251
  plugins: {
@@ -1739,18 +2274,18 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1739
2274
  ],
1740
2275
  setup(e, { expose: s, emit: t }) {
1741
2276
  const a = e;
1742
- Et(), ne(Pt), ne(Vt), ne(Rt), D(a, "settings.nestedHeaders") && ne(Bt);
1743
- const l = t, n = _e("axios"), o = R(null), i = R(!1), r = R(null);
1744
- let c = !1;
1745
- const p = {
1746
- search: ya,
1747
- filterSelect: xa,
1748
- filterButtons: Ca,
1749
- datePicker: Ta,
1750
- reset: Va
1751
- }, u = Z({
2277
+ Dt(), ce(Ot), ce(zt), ce(jt), U(a, "settings.nestedHeaders") && ce(It);
2278
+ const l = t, n = Le("axios"), o = E(null), c = E(!1), r = E(null);
2279
+ let i = !1;
2280
+ const u = {
2281
+ search: Ma,
2282
+ filterSelect: Ea,
2283
+ filterButtons: za,
2284
+ datePicker: Da,
2285
+ reset: Ka
2286
+ }, p = q({
1752
2287
  hotInstance: null,
1753
- url: C(() => a.url),
2288
+ url: S(() => a.url),
1754
2289
  plugins: a.plugins,
1755
2290
  response: {},
1756
2291
  params: {
@@ -1758,208 +2293,208 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1758
2293
  limit: a.options.limit
1759
2294
  },
1760
2295
  methods: {
1761
- applyParams: (m) => {
1762
- m && (u.params = {
1763
- ...u.params,
1764
- ...m
1765
- }, l("page-change", u.params));
2296
+ applyParams: (h) => {
2297
+ h && (p.params = {
2298
+ ...p.params,
2299
+ ...h
2300
+ }, l("page-change", p.params));
1766
2301
  },
1767
- removeParam: async (m) => {
1768
- u.params[m] && (delete u.params[m], await u.methods.loadTable());
2302
+ removeParam: async (h) => {
2303
+ p.params[h] && (delete p.params[h], await p.methods.loadTable());
1769
2304
  },
1770
- loadTable: async (m) => {
2305
+ loadTable: async (h) => {
1771
2306
  if (!(!o.value || !o.value.hotInstance)) {
1772
- i.value = !0, r.value = null, l("loading", !0), ie.start(), u.hotInstance = o.value.hotInstance;
2307
+ c.value = !0, r.value = null, l("loading", !0), pe.start(), p.hotInstance = o.value.hotInstance;
1773
2308
  try {
1774
2309
  if (a.dataProvider) {
1775
- const k = await a.dataProvider(u.computed.params);
1776
- u.response = a.dataTransformer(k, a);
2310
+ const w = await a.dataProvider(p.computed.params);
2311
+ p.response = a.dataTransformer(w, a);
1777
2312
  } else if (a.url) {
1778
- const k = await n.get(a.url, {
1779
- params: u.computed.params
2313
+ const w = await n.get(a.url, {
2314
+ params: p.computed.params
1780
2315
  });
1781
- u.response = a.dataTransformer(k, a);
2316
+ p.response = a.dataTransformer(w, a);
1782
2317
  } else {
1783
- console.error("No data provider or URL provided"), i.value = !1, l("loading", !1), ie.done();
2318
+ console.error("No data provider or URL provided"), c.value = !1, l("loading", !1), pe.done();
1784
2319
  return;
1785
2320
  }
1786
- if (c) return;
1787
- u.hotInstance.updateData(u.response.data), u.options.callback && typeof u.options.callback == "function" && await u.options.callback();
1788
- const x = u.hotInstance.getPlugin("autoColumnSize");
1789
- D(a.settings, "columns", []).forEach((k, b) => {
1790
- k.width || x.calculateColumnsWidth(b, b, !0);
2321
+ if (i) return;
2322
+ p.hotInstance.updateData(p.response.data), p.options.callback && typeof p.options.callback == "function" && await p.options.callback();
2323
+ const _ = p.hotInstance.getPlugin("autoColumnSize");
2324
+ U(a.settings, "columns", []).forEach((w, b) => {
2325
+ w.width || _.calculateColumnsWidth(b, b, !0);
1791
2326
  }), l("load", {
1792
- data: u.response.data,
1793
- meta: u.response.meta
1794
- }), m && typeof m == "function" && m();
1795
- } catch (x) {
1796
- r.value = x, l("error", x), console.error("Error loading table data:", x);
2327
+ data: p.response.data,
2328
+ meta: p.response.meta
2329
+ }), h && typeof h == "function" && h();
2330
+ } catch (_) {
2331
+ r.value = _, l("error", _), console.error("Error loading table data:", _);
1797
2332
  } finally {
1798
- i.value = !1, l("loading", !1), ie.done();
2333
+ c.value = !1, l("loading", !1), pe.done();
1799
2334
  }
1800
2335
  }
1801
2336
  },
1802
2337
  // can't use sparkTable.hotInstance here because the ref isn't ready
1803
- colToProp: (m) => o.value.hotInstance.colToProp(m),
1804
- fireEvent: (m, x) => {
1805
- l(m, x);
2338
+ colToProp: (h) => o.value.hotInstance.colToProp(h),
2339
+ fireEvent: (h, _) => {
2340
+ l(h, _);
1806
2341
  },
1807
- getSettingsForProp: (m) => Tt(D(u.tableSettings, "columns"), { data: m }),
2342
+ getSettingsForProp: (h) => Et(U(p.tableSettings, "columns"), { data: h }),
1808
2343
  // Helper methods for easier param access
1809
- getParams: () => u.computed.params,
1810
- getParam: (m) => u.computed.params[m],
1811
- setParam: (m, x) => {
1812
- u.methods.applyParams({ [m]: x });
2344
+ getParams: () => p.computed.params,
2345
+ getParam: (h) => p.computed.params[h],
2346
+ setParam: (h, _) => {
2347
+ p.methods.applyParams({ [h]: _ });
1813
2348
  },
1814
- clearParam: (m) => u.methods.removeParam(m),
1815
- clearParams: (m) => {
1816
- (Array.isArray(m) ? m : [m]).forEach((P) => {
1817
- u.params[P] !== void 0 && delete u.params[P];
1818
- }), u.methods.applyParams({ page: 1 });
2349
+ clearParam: (h) => p.methods.removeParam(h),
2350
+ clearParams: (h) => {
2351
+ (Array.isArray(h) ? h : [h]).forEach((H) => {
2352
+ p.params[H] !== void 0 && delete p.params[H];
2353
+ }), p.methods.applyParams({ page: 1 });
1819
2354
  }
1820
2355
  },
1821
2356
  computed: {
1822
- params: C(() => ({
2357
+ params: S(() => ({
1823
2358
  ...a.params,
1824
- ...u.params
2359
+ ...p.params
1825
2360
  })),
1826
- ready: C(() => Lt(u, "response.meta.last_page"))
2361
+ ready: S(() => At(p, "response.meta.last_page"))
1827
2362
  },
1828
- options: C(() => ({
1829
- ...ue,
2363
+ options: S(() => ({
2364
+ ...he,
1830
2365
  ...a.options
1831
2366
  })),
1832
- tableSettings: C(() => ({
1833
- ...ke,
1834
- nestedHeaders: D(a.settings, "nestedHeaders", []),
1835
- ...!D(a.settings, "nestedHeaders") && {
1836
- afterGetColHeader: (m, x) => zs(m, x, u)
2367
+ tableSettings: S(() => ({
2368
+ ...$e,
2369
+ nestedHeaders: U(a.settings, "nestedHeaders", []),
2370
+ ...!U(a.settings, "nestedHeaders") && {
2371
+ afterGetColHeader: (h, _) => ta(h, _, p)
1837
2372
  },
1838
- afterChange: (m, x) => Js(),
1839
- afterRender: () => Is(u),
2373
+ afterChange: (h, _) => fa(),
2374
+ afterRender: () => sa(p),
1840
2375
  /**
1841
2376
  * Prevent columns with explicit width from being stretched
1842
2377
  * This hook fires BEFORE stretchH is applied, allowing us to cap specific columns
1843
2378
  * while letting others stretch normally
1844
2379
  */
1845
- beforeStretchingColumnWidth: (m, x) => {
1846
- const k = D(a.settings, "columns", [])[x];
1847
- return k && k.width !== void 0 ? k.width : m;
2380
+ beforeStretchingColumnWidth: (h, _) => {
2381
+ const w = U(a.settings, "columns", [])[_];
2382
+ return w && w.width !== void 0 ? w.width : h;
1848
2383
  },
1849
2384
  ...a.settings
1850
2385
  }))
1851
- }), h = (m) => {
1852
- if (!m) return null;
1853
- switch (m.type) {
2386
+ }), f = (h) => {
2387
+ if (!h) return null;
2388
+ switch (h.type) {
1854
2389
  case "search":
1855
- return m.param || "search";
2390
+ return h.param || "search";
1856
2391
  case "filterSelect":
1857
2392
  case "filterButtons":
1858
2393
  case "datePicker":
1859
- return m.param || `filter[${m.key}]`;
2394
+ return h.param || `filter[${h.key}]`;
1860
2395
  default:
1861
2396
  return null;
1862
2397
  }
1863
- }, _ = (m) => m ? typeof m.enabled == "function" ? m.enabled(u.params) : m.enabled : !1, w = C(() => Object.entries(a.plugins).filter(([m, x]) => _(x)).map(([m, x]) => ({ name: m, config: x })));
2398
+ }, y = (h) => h ? typeof h.enabled == "function" ? h.enabled(p.params) : h.enabled : !1, k = S(() => Object.entries(a.plugins).filter(([h, _]) => y(_)).map(([h, _]) => ({ name: h, config: _ })));
1864
2399
  if (j(
1865
- () => ({ ...u.params }),
2400
+ () => ({ ...p.params }),
1866
2401
  () => {
1867
- const m = [];
1868
- Object.values(a.plugins).forEach((x) => {
1869
- const P = h(x);
1870
- if (!P) return;
1871
- const k = _(x), b = u.params[P] !== void 0;
1872
- !k && b && m.push(P);
1873
- }), m.length > 0 && m.forEach((x) => {
1874
- delete u.params[x];
2402
+ const h = [];
2403
+ Object.values(a.plugins).forEach((_) => {
2404
+ const H = f(_);
2405
+ if (!H) return;
2406
+ const w = y(_), b = p.params[H] !== void 0;
2407
+ !w && b && h.push(H);
2408
+ }), h.length > 0 && h.forEach((_) => {
2409
+ delete p.params[_];
1875
2410
  });
1876
2411
  },
1877
2412
  { deep: !0, flush: "sync" }
1878
2413
  ), a.syncToRoute || a.persistToStorage) {
1879
- const m = typeof a.syncToRoute == "string";
1880
- Qs(u, {
1881
- namespace: m ? a.syncToRoute : null,
2414
+ const h = typeof a.syncToRoute == "string";
2415
+ ma(p, {
2416
+ namespace: h ? a.syncToRoute : null,
1882
2417
  syncToRoute: !!a.syncToRoute,
1883
2418
  persistToStorage: a.persistToStorage
1884
2419
  });
1885
2420
  }
1886
- return ge(
2421
+ return be(
1887
2422
  () => a.params,
1888
2423
  async () => {
1889
- u.params.page = 1, await u.methods.loadTable();
2424
+ p.params.page = 1, await p.methods.loadTable();
1890
2425
  },
1891
2426
  { debounce: 50, maxWait: 1e3 }
1892
- ), ge(
1893
- () => u.params,
2427
+ ), be(
2428
+ () => p.params,
1894
2429
  async () => {
1895
- await u.methods.loadTable();
2430
+ await p.methods.loadTable();
1896
2431
  },
1897
2432
  { debounce: 50, maxWait: 1e3 }
1898
2433
  ), j(
1899
2434
  () => a.url,
1900
- async (m, x) => {
1901
- m !== x && (u.params.page = 1, await u.methods.loadTable());
2435
+ async (h, _) => {
2436
+ h !== _ && (p.params.page = 1, await p.methods.loadTable());
1902
2437
  }
1903
- ), pe(async () => {
1904
- await u.methods.loadTable(), l("ready");
1905
- }), je(() => {
1906
- c = !0;
1907
- }), Xs(u), s({
1908
- refresh: () => u.methods.loadTable(),
1909
- getParams: () => u.methods.getParams(),
1910
- getParam: (m) => u.methods.getParam(m),
1911
- setParam: (m, x) => u.methods.setParam(m, x),
1912
- clearParam: (m) => u.methods.clearParam(m),
1913
- clearParams: (m) => u.methods.clearParams(m),
1914
- applyParams: (m) => u.methods.applyParams(m),
1915
- loading: i,
2438
+ ), ge(async () => {
2439
+ await p.methods.loadTable(), l("ready");
2440
+ }), Ke(() => {
2441
+ i = !0;
2442
+ }), pa(p), s({
2443
+ refresh: () => p.methods.loadTable(),
2444
+ getParams: () => p.methods.getParams(),
2445
+ getParam: (h) => p.methods.getParam(h),
2446
+ setParam: (h, _) => p.methods.setParam(h, _),
2447
+ clearParam: (h) => p.methods.clearParam(h),
2448
+ clearParams: (h) => p.methods.clearParams(h),
2449
+ applyParams: (h) => p.methods.applyParams(h),
2450
+ loading: c,
1916
2451
  error: r,
1917
- sparkTable: u,
2452
+ sparkTable: p,
1918
2453
  table: o
1919
- }), (m, x) => (f(), g("div", Ra, [
1920
- u.computed.ready && w.value && w.value.length ? (f(), F(xe, {
2454
+ }), (h, _) => (m(), g("div", Ua, [
2455
+ p.computed.ready && k.value && k.value.length ? (m(), M(Ce, {
1921
2456
  key: 0,
1922
2457
  position: "header"
1923
2458
  }, {
1924
- default: L(() => [
1925
- (f(!0), g(z, null, q(w.value, (P) => (f(), F(ae(p[P.config.type]), {
1926
- key: P.name,
1927
- class: T(P.config.align ? `self-${P.config.align}` : ""),
1928
- "spark-table": u,
1929
- config: P.config
2459
+ default: C(() => [
2460
+ (m(!0), g(R, null, z(k.value, (H) => (m(), M(I(u[H.config.type]), {
2461
+ key: H.name,
2462
+ class: P(H.config.align ? `self-${H.config.align}` : ""),
2463
+ "spark-table": p,
2464
+ config: H.config
1930
2465
  }, null, 8, ["class", "spark-table", "config"]))), 128)),
1931
- M(m.$slots, "header", {
1932
- sparkTable: u,
1933
- loading: i.value,
2466
+ O(h.$slots, "header", {
2467
+ sparkTable: p,
2468
+ loading: c.value,
1934
2469
  error: r.value
1935
2470
  })
1936
2471
  ]),
1937
2472
  _: 3
1938
- })) : (f(), g("div", Ba)),
1939
- v(y(Ht), {
2473
+ })) : (m(), g("div", Ga)),
2474
+ v(x(Ft), {
1940
2475
  "theme-name": "ht-theme-classic",
1941
2476
  ref_key: "table",
1942
2477
  ref: o,
1943
- settings: u.tableSettings
2478
+ settings: p.tableSettings
1944
2479
  }, null, 8, ["settings"]),
1945
- u.computed.ready ? (f(), F(xe, {
2480
+ p.computed.ready ? (m(), M(Ce, {
1946
2481
  key: 2,
1947
2482
  position: "footer"
1948
2483
  }, {
1949
- default: L(() => [
1950
- v(na, { "spark-table": u }, null, 8, ["spark-table"]),
1951
- d("div", Ea, [
1952
- v(ua, {
1953
- "spark-table": u,
1954
- onPaginate: u.methods.applyParams
2484
+ default: C(() => [
2485
+ v(ka, { "spark-table": p }, null, 8, ["spark-table"]),
2486
+ d("div", Wa, [
2487
+ v($a, {
2488
+ "spark-table": p,
2489
+ onPaginate: p.methods.applyParams
1955
2490
  }, null, 8, ["spark-table", "onPaginate"]),
1956
- v(ma, {
1957
- "spark-table": u,
1958
- onPaginate: u.methods.applyParams
2491
+ v(Pa, {
2492
+ "spark-table": p,
2493
+ onPaginate: p.methods.applyParams
1959
2494
  }, null, 8, ["spark-table", "onPaginate"]),
1960
- M(m.$slots, "footer", {
1961
- sparkTable: u,
1962
- loading: i.value,
2495
+ O(h.$slots, "footer", {
2496
+ sparkTable: p,
2497
+ loading: c.value,
1963
2498
  error: r.value
1964
2499
  })
1965
2500
  ])
@@ -1969,20 +2504,21 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
1969
2504
  ]));
1970
2505
  }
1971
2506
  };
1972
- function we() {
1973
- const e = Z({
2507
+ function Te() {
2508
+ const e = q({
1974
2509
  isVisible: !1,
1975
2510
  content: null,
1976
2511
  props: {},
1977
- eventHandlers: {}
2512
+ eventHandlers: {},
2513
+ size: "md"
1978
2514
  }), s = () => {
1979
2515
  e.isVisible = !e.isVisible;
1980
2516
  }, t = () => {
1981
- e.isVisible = !1, e.content = null, e.props = {}, e.eventHandlers = {};
2517
+ e.isVisible = !1, e.content = null, e.props = {}, e.eventHandlers = {}, e.size = "md";
1982
2518
  }, a = () => {
1983
2519
  e.isVisible = !0;
1984
- }, l = (o, i = {}, r = {}) => {
1985
- e.content = Ce(o), e.props = i, e.eventHandlers = r;
2520
+ }, l = (o, c = {}, r = {}, i = {}) => {
2521
+ e.content = de(o), e.props = c, e.eventHandlers = r, e.size = i.size || "md";
1986
2522
  };
1987
2523
  return {
1988
2524
  state: e,
@@ -1990,32 +2526,32 @@ function we() {
1990
2526
  close: t,
1991
2527
  open: a,
1992
2528
  setContent: l,
1993
- show: (o, i = {}, r = {}) => {
1994
- o && l(o, i, r), a();
2529
+ show: (o, c = {}, r = {}, i = {}) => {
2530
+ o && l(o, c, r, i), a();
1995
2531
  }
1996
2532
  };
1997
2533
  }
1998
- class Fa {
2534
+ class Xa {
1999
2535
  constructor() {
2000
- this.left = we(), this.right = we();
2536
+ this.left = Te(), this.right = Te();
2001
2537
  }
2002
- showLeft = (s, t = {}, a = {}) => {
2003
- const l = {
2538
+ showLeft = (s, t = {}, a = {}, l = {}) => {
2539
+ const n = {
2004
2540
  close: () => {
2005
2541
  a.close?.(), this.closeLeft();
2006
2542
  },
2007
2543
  ...a
2008
2544
  };
2009
- this.left.show(s, t, l);
2545
+ this.left.show(s, t, n, l);
2010
2546
  };
2011
- showRight = (s, t = {}, a = {}) => {
2012
- const l = {
2547
+ showRight = (s, t = {}, a = {}, l = {}) => {
2548
+ const n = {
2013
2549
  close: () => {
2014
2550
  a.close?.(), this.closeRight();
2015
2551
  },
2016
2552
  ...a
2017
2553
  };
2018
- this.right.show(s, t, l);
2554
+ this.right.show(s, t, n, l);
2019
2555
  };
2020
2556
  closeLeft = () => {
2021
2557
  this.left.close();
@@ -2027,22 +2563,22 @@ class Fa {
2027
2563
  this.left.close(), this.right.close();
2028
2564
  };
2029
2565
  }
2030
- const X = new Fa(), Aa = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, ja = { class: "flex flex-1 flex-col" }, Oa = {
2566
+ const ee = new Xa(), Ja = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, Qa = { class: "flex flex-1 flex-col" }, eo = {
2031
2567
  class: "flex flex-1 flex-col gap-y-7",
2032
2568
  role: "list"
2033
- }, za = { class: "flex flex-1 flex-col" }, Ia = {
2569
+ }, to = { class: "flex flex-1 flex-col" }, so = {
2034
2570
  role: "list",
2035
2571
  class: "flex flex-1 flex-col"
2036
- }, Na = { class: "flex items-center pb-8" }, Da = ["href", "onClick"], qa = {
2572
+ }, ao = { class: "flex items-center pb-8" }, oo = ["href", "onClick"], ro = {
2037
2573
  key: 2,
2038
2574
  class: "w-full flex justify-center"
2039
- }, Za = {
2575
+ }, no = {
2040
2576
  key: 0,
2041
2577
  class: "mt-[5px] flex flex-col gap-[5px]"
2042
- }, Ka = ["href", "onClick"], Ua = {
2578
+ }, lo = ["href", "onClick"], io = {
2043
2579
  key: 1,
2044
2580
  class: "text-[13px]"
2045
- }, Ga = { class: "mt-auto" }, Wa = { class: "p-[10px] flex-shrink-0" }, Ya = { class: "flex flex-1 items-center gap-x-6" }, Xa = { class: "relative flex flex-1 items-center gap-4" }, Ja = { class: "cursor-pointer" }, Qa = ["src"], eo = { class: "ml-auto" }, to = { class: "mr-[10px] pb-[10px] flex-1 flex flex-col" }, Fr = {
2581
+ }, co = { class: "mt-auto" }, uo = { class: "p-[10px] flex-shrink-0" }, po = { class: "flex flex-1 items-center gap-x-6" }, fo = { class: "relative flex flex-1 items-center gap-4" }, mo = { class: "cursor-pointer" }, ho = ["src"], go = { class: "ml-auto" }, yo = { class: "mr-[10px] pb-[10px] flex-1 flex flex-col" }, Jr = {
2046
2582
  __name: "SparkDefaultContainer",
2047
2583
  props: {
2048
2584
  appStore: {
@@ -2060,113 +2596,113 @@ const X = new Fa(), Aa = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, ja =
2060
2596
  },
2061
2597
  emits: ["overlayClose"],
2062
2598
  setup(e, { emit: s }) {
2063
- const t = e, a = s, l = $e(), n = te(), o = Ee(), i = Re(), r = C(() => i.getAppIcon(t.appStore.state.app)), c = C(() => n.meta.hideBrandSelector === !0 ? !1 : t.appStore.state.showBrandSelector), p = () => {
2064
- const w = {};
2065
- l["app-selector-bottom"] ? w.bottomSlot = () => me("div", {}, l["app-selector-bottom"]()) : t.appSelectorSlots.bottomSlot && (w.bottomSlot = t.appSelectorSlots.bottomSlot), l["app-selector-footer"] ? w.footerSlot = () => me("div", {}, l["app-selector-footer"]()) : t.appSelectorSlots.footerSlot && (w.footerSlot = t.appSelectorSlots.footerSlot), X.showRight(ns, w, {
2066
- select: (m) => {
2067
- X.closeRight();
2599
+ const t = e, a = s, l = He(), n = re(), o = ze(), c = Ae(), r = S(() => c.getAppIcon(t.appStore.state.app)), i = S(() => n.meta.hideBrandSelector === !0 ? !1 : t.appStore.state.showBrandSelector), u = () => {
2600
+ const k = {};
2601
+ l["app-selector-bottom"] ? k.bottomSlot = () => ve("div", {}, l["app-selector-bottom"]()) : t.appSelectorSlots.bottomSlot && (k.bottomSlot = t.appSelectorSlots.bottomSlot), l["app-selector-footer"] ? k.footerSlot = () => ve("div", {}, l["app-selector-footer"]()) : t.appSelectorSlots.footerSlot && (k.footerSlot = t.appSelectorSlots.footerSlot), ee.showRight(ms, k, {
2602
+ select: (h) => {
2603
+ ee.closeRight();
2068
2604
  }
2069
2605
  });
2070
- }, u = () => {
2071
- X.showLeft(
2072
- ws,
2606
+ }, p = () => {
2607
+ ee.showLeft(
2608
+ Fs,
2073
2609
  {},
2074
2610
  {
2075
- select: (w) => {
2076
- o.toggleBrand(w), X.closeLeft();
2611
+ select: (k) => {
2612
+ o.toggleBrand(k), ee.closeLeft();
2077
2613
  }
2078
2614
  }
2079
2615
  );
2080
- }, h = C(() => t.mainNavStore.state.hidden ? ["w-0 overflow-hidden"] : [t.mainNavStore.state.collapsed ? "w-[80px]" : "w-[240px]"]), _ = C(() => t.mainNavStore.state.hidden ? ["pl-2.5"] : [t.mainNavStore.state.collapsed ? "pl-[80px]" : "pl-[240px]"]);
2081
- return (w, m) => {
2082
- const x = B("font-awesome-icon"), P = B("router-view");
2083
- return f(), g(z, null, [
2616
+ }, f = S(() => t.mainNavStore.state.hidden ? ["w-0 overflow-hidden"] : [t.mainNavStore.state.collapsed ? "w-[80px]" : "w-[240px]"]), y = S(() => t.mainNavStore.state.hidden ? ["pl-2.5"] : [t.mainNavStore.state.collapsed ? "pl-[80px]" : "pl-[240px]"]);
2617
+ return (k, h) => {
2618
+ const _ = A("font-awesome-icon"), H = A("router-view");
2619
+ return m(), g(R, null, [
2084
2620
  d("div", {
2085
- class: T([h.value, "fixed inset-y-0 flex transition-all z-100"])
2621
+ class: P([f.value, "fixed inset-y-0 flex transition-all z-100"])
2086
2622
  }, [
2087
- d("div", Aa, [
2088
- d("nav", ja, [
2089
- d("ul", Oa, [
2090
- d("li", za, [
2091
- d("ul", Ia, [
2092
- d("li", Na, [
2623
+ d("div", Ja, [
2624
+ d("nav", Qa, [
2625
+ d("ul", eo, [
2626
+ d("li", to, [
2627
+ d("ul", so, [
2628
+ d("li", ao, [
2093
2629
  d("a", {
2094
2630
  class: "grid w-[40px] h-[40px] place-items-center rounded-md bg-primary-600 text-white text-[13px] cursor-pointer",
2095
- onClick: m[0] || (m[0] = G((k) => e.mainNavStore.goto(e.appStore.state.homeRoute), ["prevent"]))
2631
+ onClick: h[0] || (h[0] = X((w) => e.mainNavStore.goto(e.appStore.state.homeRoute), ["prevent"]))
2096
2632
  }, [
2097
- v(x, {
2098
- icon: y(E)[r.value],
2633
+ v(_, {
2634
+ icon: x(F)[r.value],
2099
2635
  class: "size-5"
2100
2636
  }, null, 8, ["icon"])
2101
2637
  ]),
2102
- e.mainNavStore.state.collapsed ? $("", !0) : (f(), g("a", {
2638
+ e.mainNavStore.state.collapsed ? $("", !0) : (m(), g("a", {
2103
2639
  key: 0,
2104
- onClick: m[1] || (m[1] = G((k) => e.mainNavStore.goto(e.appStore.state.homeRoute), ["prevent"])),
2640
+ onClick: h[1] || (h[1] = X((w) => e.mainNavStore.goto(e.appStore.state.homeRoute), ["prevent"])),
2105
2641
  class: "font-medium text-gray-800 ml-[10px] cursor-pointer"
2106
- }, H(e.appStore.state.app), 1))
2642
+ }, L(e.appStore.state.app), 1))
2107
2643
  ]),
2108
- (f(!0), g(z, null, q(e.mainNavStore.state.menu, (k) => (f(), g("li", {
2109
- key: k.name,
2110
- class: T({
2111
- "mt-[10px]": k.children,
2112
- "mt-auto": k.footerSection
2644
+ (m(!0), g(R, null, z(e.mainNavStore.state.menu, (w) => (m(), g("li", {
2645
+ key: w.name,
2646
+ class: P({
2647
+ "mt-[10px]": w.children,
2648
+ "mt-auto": w.footerSection
2113
2649
  })
2114
2650
  }, [
2115
2651
  d("a", {
2116
- class: T([{
2117
- "bg-gray-100": k.current,
2118
- "hover:bg-gray-100": k?.href
2652
+ class: P([{
2653
+ "bg-gray-100": w.current,
2654
+ "hover:bg-gray-100": w?.href
2119
2655
  }, "h-[37px] sgroup flex items-center gap-x-2 rounded-md p-3 text-gray-800 leading-5 transition-all duration-300 ease-in-out"]),
2120
- href: k?.href,
2121
- onClick: G((b) => e.mainNavStore.goto(k.href), ["prevent"])
2656
+ href: w?.href,
2657
+ onClick: X((b) => e.mainNavStore.goto(w.href), ["prevent"])
2122
2658
  }, [
2123
- k.icon ? (f(), F(x, {
2659
+ w.icon ? (m(), M(_, {
2124
2660
  key: 0,
2125
- icon: y(E)[k.icon],
2126
- class: T([[(k.current, "text-gray-400")], "size-4"])
2661
+ icon: x(F)[w.icon],
2662
+ class: P([[(w.current, "text-gray-400")], "size-4"])
2127
2663
  }, null, 8, ["icon", "class"])) : $("", !0),
2128
- e.mainNavStore.state.collapsed ? k?.children ? (f(), g("div", qa, [...m[6] || (m[6] = [
2664
+ e.mainNavStore.state.collapsed ? w?.children ? (m(), g("div", ro, [...h[6] || (h[6] = [
2129
2665
  d("div", { class: "w-[10px] h-px bg-gray-400" }, null, -1)
2130
- ])])) : $("", !0) : (f(), g("span", {
2666
+ ])])) : $("", !0) : (m(), g("span", {
2131
2667
  key: 1,
2132
- class: T({
2133
- "text-[11px]": k?.children,
2134
- "text-[13px]": !k?.children,
2135
- "font-semibold": k?.children,
2136
- "text-gray-500": k?.children
2668
+ class: P({
2669
+ "text-[11px]": w?.children,
2670
+ "text-[13px]": !w?.children,
2671
+ "font-semibold": w?.children,
2672
+ "text-gray-500": w?.children
2137
2673
  })
2138
- }, H(k.name), 3))
2139
- ], 10, Da),
2140
- k.children ? (f(), g("ul", Za, [
2141
- (f(!0), g(z, null, q(k.children, (b) => (f(), g("li", {
2674
+ }, L(w.name), 3))
2675
+ ], 10, oo),
2676
+ w.children ? (m(), g("ul", no, [
2677
+ (m(!0), g(R, null, z(w.children, (b) => (m(), g("li", {
2142
2678
  key: b.name
2143
2679
  }, [
2144
2680
  d("a", {
2145
- class: T([[b.current ? "bg-gray-100" : "", "hover:bg-gray-100"], "h-[37px] sgroup flex items-center gap-x-2 rounded-md p-3 text-gray-800 leading-5 transition-all duration-300 ease-in-out"]),
2681
+ class: P([[b.current ? "bg-gray-100" : "", "hover:bg-gray-100"], "h-[37px] sgroup flex items-center gap-x-2 rounded-md p-3 text-gray-800 leading-5 transition-all duration-300 ease-in-out"]),
2146
2682
  href: b.href,
2147
- onClick: G((S) => e.mainNavStore.goto(b.href), ["prevent"])
2683
+ onClick: X((T) => e.mainNavStore.goto(b.href), ["prevent"])
2148
2684
  }, [
2149
- b.icon ? (f(), F(x, {
2685
+ b.icon ? (m(), M(_, {
2150
2686
  key: 0,
2151
- icon: y(E)[b.icon],
2152
- class: T([[(b.current, "text-gray-400")], "size-4"])
2687
+ icon: x(F)[b.icon],
2688
+ class: P([[(b.current, "text-gray-400")], "size-4"])
2153
2689
  }, null, 8, ["icon", "class"])) : $("", !0),
2154
- e.mainNavStore.state.collapsed ? $("", !0) : (f(), g("span", Ua, H(b.name), 1))
2155
- ], 10, Ka)
2690
+ e.mainNavStore.state.collapsed ? $("", !0) : (m(), g("span", io, L(b.name), 1))
2691
+ ], 10, lo)
2156
2692
  ]))), 128))
2157
2693
  ])) : $("", !0)
2158
2694
  ], 2))), 128))
2159
2695
  ])
2160
2696
  ]),
2161
- d("li", Ga, [
2162
- M(w.$slots, "sidebar-footer"),
2697
+ d("li", co, [
2698
+ O(k.$slots, "sidebar-footer"),
2163
2699
  d("a", {
2164
2700
  class: "font-medium grid place-content-center gap-x-3 rounded-md h-10 p-2.5 text-gray-800 text-[13px] hover:bg-gray-100 transition-all duration-300 ease-in-out",
2165
2701
  href: "#",
2166
- onClick: m[2] || (m[2] = G((k) => e.mainNavStore.toggleCollapsed(), ["prevent"]))
2702
+ onClick: h[2] || (h[2] = X((w) => e.mainNavStore.toggleCollapsed(), ["prevent"]))
2167
2703
  }, [
2168
- v(x, {
2169
- icon: y(E)[e.mainNavStore.state.collapsed ? "farArrowRightToLine" : "farArrowLeftToLine"],
2704
+ v(_, {
2705
+ icon: x(F)[e.mainNavStore.state.collapsed ? "farArrowRightToLine" : "farArrowLeftToLine"],
2170
2706
  class: "class-5"
2171
2707
  }, null, 8, ["icon"])
2172
2708
  ])
@@ -2176,44 +2712,44 @@ const X = new Fa(), Aa = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, ja =
2176
2712
  ])
2177
2713
  ], 2),
2178
2714
  d("div", {
2179
- class: T([_.value, "h-full transition-all flex flex-col"])
2715
+ class: P([y.value, "h-full transition-all flex flex-col"])
2180
2716
  }, [
2181
- d("div", Wa, [
2182
- d("div", Ya, [
2183
- d("div", Xa, [
2184
- M(w.$slots, "header-left", {}, () => [
2185
- d("div", Ja, [
2186
- v(x, {
2187
- icon: y(E).farBarsSort,
2717
+ d("div", uo, [
2718
+ d("div", po, [
2719
+ d("div", fo, [
2720
+ O(k.$slots, "header-left", {}, () => [
2721
+ d("div", mo, [
2722
+ v(_, {
2723
+ icon: x(F).farBarsSort,
2188
2724
  class: "size-5",
2189
- onClick: m[3] || (m[3] = (k) => e.mainNavStore.toggleHidden())
2725
+ onClick: h[3] || (h[3] = (w) => e.mainNavStore.toggleHidden())
2190
2726
  }, null, 8, ["icon"])
2191
2727
  ])
2192
2728
  ]),
2193
- M(w.$slots, "header-center", {}, () => [
2194
- c.value ? (f(), g("div", {
2729
+ O(k.$slots, "header-center", {}, () => [
2730
+ i.value ? (m(), g("div", {
2195
2731
  key: 0,
2196
2732
  class: "absolute left-1/2 -translate-x-1/2 cursor-pointer h-9 flex items-center",
2197
- onClick: u
2733
+ onClick: p
2198
2734
  }, [
2199
- y(o).currentBrand ? (f(), g("img", {
2735
+ x(o).currentBrand ? (m(), g("img", {
2200
2736
  key: 0,
2201
- src: y(o).currentBrand.logo,
2737
+ src: x(o).currentBrand.logo,
2202
2738
  alt: "",
2203
2739
  class: "h-[30px] w-auto"
2204
- }, null, 8, Qa)) : $("", !0)
2740
+ }, null, 8, ho)) : $("", !0)
2205
2741
  ])) : $("", !0)
2206
2742
  ]),
2207
- d("div", eo, [
2208
- M(w.$slots, "header-right", {}, () => [
2209
- e.appStore.state.showAppSelector ? (f(), g("button", {
2743
+ d("div", go, [
2744
+ O(k.$slots, "header-right", {}, () => [
2745
+ e.appStore.state.showAppSelector ? (m(), g("button", {
2210
2746
  key: 0,
2211
2747
  class: "rounded-sm bg-white w-[42px] h-[42px] ring-1 ring-inset ring-gray-300",
2212
2748
  type: "button",
2213
- onClick: p
2749
+ onClick: u
2214
2750
  }, [
2215
- v(x, {
2216
- icon: y(E).farGripDotsVertical,
2751
+ v(_, {
2752
+ icon: x(F).farGripDotsVertical,
2217
2753
  class: "size-4 text-gray-400"
2218
2754
  }, null, 8, ["icon"])
2219
2755
  ])) : $("", !0)
@@ -2222,62 +2758,62 @@ const X = new Fa(), Aa = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, ja =
2222
2758
  ])
2223
2759
  ])
2224
2760
  ]),
2225
- d("main", to, [
2226
- v(P)
2761
+ d("main", yo, [
2762
+ v(H)
2227
2763
  ])
2228
2764
  ], 2),
2229
- v(y(he), {
2765
+ v(x(ke), {
2230
2766
  position: "left",
2231
- "overlay-instance": y(X).left,
2232
- onClose: m[4] || (m[4] = (k) => a("overlayClose", "left"))
2767
+ "overlay-instance": x(ee).left,
2768
+ onClose: h[4] || (h[4] = (w) => a("overlayClose", "left"))
2233
2769
  }, null, 8, ["overlay-instance"]),
2234
- v(y(he), {
2770
+ v(x(ke), {
2235
2771
  position: "right",
2236
- "overlay-instance": y(X).right,
2237
- onClose: m[5] || (m[5] = (k) => a("overlayClose", "right"))
2772
+ "overlay-instance": x(ee).right,
2773
+ onClose: h[5] || (h[5] = (w) => a("overlayClose", "right"))
2238
2774
  }, null, 8, ["overlay-instance"]),
2239
- v(y(Es))
2775
+ v(x(Ws))
2240
2776
  ], 64);
2241
2777
  };
2242
2778
  }
2243
- }, so = {}, ao = { class: "h-full" };
2244
- function oo(e, s) {
2245
- const t = B("router-view");
2246
- return f(), g("main", ao, [
2779
+ }, vo = {}, bo = { class: "h-full" };
2780
+ function xo(e, s) {
2781
+ const t = A("router-view");
2782
+ return m(), g("main", bo, [
2247
2783
  v(t)
2248
2784
  ]);
2249
2785
  }
2250
- const Ar = /* @__PURE__ */ W(so, [["render", oo]]), ro = (e) => {
2786
+ const Qr = /* @__PURE__ */ J(vo, [["render", xo]]), ko = (e) => {
2251
2787
  const s = document.cookie.match(new RegExp(`(^| )${e}=([^;]+)`));
2252
2788
  return s ? s[2] : null;
2253
- }, no = (e, s, t = {}) => {
2789
+ }, _o = (e, s, t = {}) => {
2254
2790
  const {
2255
2791
  maxAge: a = 31536e3,
2256
2792
  // 365 days in seconds
2257
- domain: l = Me(),
2793
+ domain: l = je(),
2258
2794
  secure: n = !0,
2259
2795
  sameSite: o = "Lax",
2260
- path: i = "/"
2796
+ path: c = "/"
2261
2797
  } = t;
2262
- let r = `${e}=${s}; max-age=${a}; path=${i}; samesite=${o}`;
2798
+ let r = `${e}=${s}; max-age=${a}; path=${c}; samesite=${o}`;
2263
2799
  l && (r += `; domain=${l}`), n && (r += "; secure"), document.cookie = r;
2264
- }, lo = (e, s = {}) => {
2265
- const { domain: t = Me(), path: a = "/" } = s;
2800
+ }, wo = (e, s = {}) => {
2801
+ const { domain: t = je(), path: a = "/" } = s;
2266
2802
  let l = `${e}=; max-age=0; path=${a}`;
2267
2803
  t && (l += `; domain=${t}`), document.cookie = l;
2268
- }, Me = () => {
2804
+ }, je = () => {
2269
2805
  const e = window.location.hostname;
2270
2806
  return e === "localhost" ? "localhost" : e.endsWith(".test") || e.endsWith(".io") ? "." + e.split(".").slice(-2).join(".") : e.endsWith(".com.au") ? "." + e.split(".").slice(-3).join(".") : e;
2271
- }, Fe = [];
2272
- function io(e) {
2273
- Fe.push(e);
2807
+ }, Ie = [];
2808
+ function So(e) {
2809
+ Ie.push(e);
2274
2810
  }
2275
- function co() {
2276
- Fe.forEach((e) => e());
2811
+ function Co() {
2812
+ Ie.forEach((e) => e());
2277
2813
  }
2278
- function jr(e) {
2814
+ function en(e) {
2279
2815
  let s = !1;
2280
- return io(() => {
2816
+ return So(() => {
2281
2817
  s = !1;
2282
2818
  }), {
2283
2819
  bootstrapApp: async () => {
@@ -2290,8 +2826,8 @@ function jr(e) {
2290
2826
  }
2291
2827
  };
2292
2828
  }
2293
- const de = "bolt-next-token", I = re("auth", () => {
2294
- const e = Z({
2829
+ const me = "bolt-next-token", Z = ie("auth", () => {
2830
+ const e = q({
2295
2831
  user: null,
2296
2832
  token: null,
2297
2833
  ready: !1,
@@ -2323,18 +2859,18 @@ const de = "bolt-next-token", I = re("auth", () => {
2323
2859
  onLogoutSuccess: null,
2324
2860
  onLogoutError: null
2325
2861
  }
2326
- }), s = (c = {}) => {
2327
- c.endpoints && Object.assign(e.endpoints, c.endpoints), c.routes && Object.assign(e.routes, c.routes), c.devCredentials && Object.assign(e.devCredentials, c.devCredentials), c.callbacks && Object.assign(e.callbacks, c.callbacks), c.overrideToken && (e.overrideToken = c.overrideToken);
2328
- }, t = (c) => {
2329
- no(de, c), e.token = c;
2862
+ }), s = (i = {}) => {
2863
+ i.endpoints && Object.assign(e.endpoints, i.endpoints), i.routes && Object.assign(e.routes, i.routes), i.devCredentials && Object.assign(e.devCredentials, i.devCredentials), i.callbacks && Object.assign(e.callbacks, i.callbacks), i.overrideToken && (e.overrideToken = i.overrideToken);
2864
+ }, t = (i) => {
2865
+ _o(me, i), e.token = i;
2330
2866
  }, a = () => {
2331
- lo(de), e.token = null;
2332
- }, l = () => ro(de), n = async (c) => {
2333
- const p = await ee.post(e.endpoints.login, c), u = p.headers.authorization;
2334
- return t(u), e.user = p.data, e.callbacks.onLoginSuccess && await e.callbacks.onLoginSuccess(p.data), p.data;
2867
+ wo(me), e.token = null;
2868
+ }, l = () => ko(me), n = async (i) => {
2869
+ const u = await oe.post(e.endpoints.login, i), p = u.headers.authorization;
2870
+ return t(p), e.user = u.data, e.callbacks.onLoginSuccess && await e.callbacks.onLoginSuccess(u.data), u.data;
2335
2871
  }, o = async () => {
2336
2872
  try {
2337
- await ee.post(
2873
+ await oe.post(
2338
2874
  e.endpoints.logout,
2339
2875
  {},
2340
2876
  {
@@ -2343,50 +2879,50 @@ const de = "bolt-next-token", I = re("auth", () => {
2343
2879
  }
2344
2880
  }
2345
2881
  ), e.callbacks.onLogoutSuccess && await e.callbacks.onLogoutSuccess();
2346
- } catch (c) {
2347
- throw e.callbacks.onLogoutError && await e.callbacks.onLogoutError(c), c;
2882
+ } catch (i) {
2883
+ throw e.callbacks.onLogoutError && await e.callbacks.onLogoutError(i), i;
2348
2884
  } finally {
2349
- a(), e.user = null, co();
2885
+ a(), e.user = null, Co();
2350
2886
  }
2351
- }, i = async () => {
2352
- const c = e.overrideToken || l();
2353
- if (!c)
2887
+ }, c = async () => {
2888
+ const i = e.overrideToken || l();
2889
+ if (!i)
2354
2890
  return e.ready = !0, null;
2355
2891
  try {
2356
- const { data: p } = await ee.get(e.endpoints.fetch, {
2892
+ const { data: u } = await oe.get(e.endpoints.fetch, {
2357
2893
  headers: {
2358
- Authorization: `Bearer ${c}`
2894
+ Authorization: `Bearer ${i}`
2359
2895
  }
2360
2896
  });
2361
- e.user = p, e.overrideToken || (e.token = c);
2897
+ e.user = u, e.overrideToken || (e.token = i);
2362
2898
  } catch {
2363
2899
  e.overrideToken || a();
2364
2900
  } finally {
2365
2901
  e.ready = !0;
2366
2902
  }
2367
- }, r = C(() => e.overrideToken ? !0 : !!e.token && !!e.user);
2903
+ }, r = S(() => e.overrideToken ? !0 : !!e.token && !!e.user);
2368
2904
  return {
2369
2905
  state: e,
2370
2906
  initialize: s,
2371
2907
  login: n,
2372
2908
  logout: o,
2373
- fetchUser: i,
2909
+ fetchUser: c,
2374
2910
  check: r,
2375
2911
  setTokenCookie: t,
2376
2912
  clearTokenCookie: a,
2377
2913
  getTokenCookie: l
2378
2914
  };
2379
- }), uo = { class: "h-full grid place-content-center relative" }, po = { class: "absolute top-8 left-8" }, fo = ["src"], mo = {
2915
+ }), $o = { class: "h-full grid place-content-center relative" }, To = { class: "absolute top-8 left-8" }, Lo = ["src"], Po = {
2380
2916
  key: 1,
2381
2917
  width: "59",
2382
2918
  height: "23",
2383
2919
  viewBox: "0 0 59 23",
2384
2920
  fill: "none",
2385
2921
  xmlns: "http://www.w3.org/2000/svg"
2386
- }, go = { class: "max-w-sm grid gap-y-1 -mt-8" }, ho = { class: "mb-7" }, yo = { class: "text-gray-600" }, bo = { class: "grid grid-flow-col justify-between mt-1 mb-4" }, vo = {
2922
+ }, Ho = { class: "max-w-sm grid gap-y-1 -mt-8" }, Vo = { class: "mb-7" }, Mo = { class: "text-gray-600" }, Ro = { class: "grid grid-flow-col justify-between mt-1 mb-4" }, Bo = {
2387
2923
  key: 0,
2388
2924
  class: "text-red-600 text-sm mb-2"
2389
- }, xo = { key: 0 }, ko = { key: 1 }, wo = {
2925
+ }, Eo = { key: 0 }, Ao = { key: 1 }, Fo = {
2390
2926
  __name: "SparkLoginView",
2391
2927
  props: {
2392
2928
  logo: {
@@ -2403,35 +2939,35 @@ const de = "bolt-next-token", I = re("auth", () => {
2403
2939
  }
2404
2940
  },
2405
2941
  setup(e) {
2406
- const s = K(), t = te(), a = Be(), l = I(), n = e, o = R(!1), i = R(""), r = async (c) => {
2407
- o.value = !0, i.value = "";
2942
+ const s = W(), t = re(), a = Fe(), l = Z(), n = e, o = E(!1), c = E(""), r = async (i) => {
2943
+ o.value = !0, c.value = "";
2408
2944
  try {
2409
- await l.login(c);
2410
- const p = t.query.redirect;
2411
- if (p) {
2412
- if (p.startsWith("http")) {
2413
- window.location.href = p;
2945
+ await l.login(i);
2946
+ const u = t.query.redirect;
2947
+ if (u) {
2948
+ if (u.startsWith("http")) {
2949
+ window.location.href = u;
2414
2950
  return;
2415
2951
  }
2416
- await s.push(p);
2952
+ await s.push(u);
2417
2953
  } else
2418
2954
  await s.push(n.defaultRedirect);
2419
- } catch (p) {
2420
- i.value = p.response?.data?.message || p.message || "Login failed. Please try again.";
2955
+ } catch (u) {
2956
+ c.value = u.response?.data?.message || u.message || "Login failed. Please try again.";
2421
2957
  } finally {
2422
2958
  o.value = !1;
2423
2959
  }
2424
2960
  };
2425
- return (c, p) => {
2426
- const u = B("FormKit"), h = B("router-link");
2427
- return f(), g("div", uo, [
2428
- d("div", po, [
2429
- n.logo ? (f(), g("img", {
2961
+ return (i, u) => {
2962
+ const p = A("FormKit"), f = A("router-link");
2963
+ return m(), g("div", $o, [
2964
+ d("div", To, [
2965
+ n.logo ? (m(), g("img", {
2430
2966
  key: 0,
2431
2967
  src: n.logo,
2432
2968
  alt: "Logo",
2433
2969
  class: "h-[23px] w-auto"
2434
- }, null, 8, fo)) : (f(), g("svg", mo, [...p[0] || (p[0] = [
2970
+ }, null, 8, Lo)) : (m(), g("svg", Po, [...u[0] || (u[0] = [
2435
2971
  d("path", {
2436
2972
  d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
2437
2973
  fill: "#1C64F2"
@@ -2450,56 +2986,56 @@ const de = "bolt-next-token", I = re("auth", () => {
2450
2986
  }, null, -1)
2451
2987
  ])]))
2452
2988
  ]),
2453
- d("div", go, [
2454
- d("div", ho, [
2455
- p[1] || (p[1] = d("h1", { class: "text-4xl text-gray-900 semibold tracking-tight mb-3" }, "Log in", -1)),
2456
- d("p", yo, " Welcome back" + H(y(a).state.app ? ` to ${y(a).state.app}` : "") + "! Please enter your details. ", 1)
2989
+ d("div", Ho, [
2990
+ d("div", Vo, [
2991
+ u[1] || (u[1] = d("h1", { class: "text-4xl text-gray-900 semibold tracking-tight mb-3" }, "Log in", -1)),
2992
+ d("p", Mo, " Welcome back" + L(x(a).state.app ? ` to ${x(a).state.app}` : "") + "! Please enter your details. ", 1)
2457
2993
  ]),
2458
- v(u, {
2994
+ v(p, {
2459
2995
  type: "form",
2460
2996
  onSubmit: r,
2461
2997
  actions: !1
2462
2998
  }, {
2463
- default: L(() => [
2464
- v(u, {
2999
+ default: C(() => [
3000
+ v(p, {
2465
3001
  label: "Email",
2466
3002
  name: "email",
2467
3003
  placeholder: "Enter your email",
2468
3004
  type: "email",
2469
3005
  validation: "required|email",
2470
3006
  "outer-class": "max-w-full",
2471
- value: y(l).state.devCredentials.username
3007
+ value: x(l).state.devCredentials.username
2472
3008
  }, null, 8, ["value"]),
2473
- v(u, {
3009
+ v(p, {
2474
3010
  label: "Password",
2475
3011
  name: "password",
2476
3012
  placeholder: "••••••••",
2477
3013
  type: "password",
2478
3014
  validation: "required",
2479
3015
  "outer-class": "max-w-full",
2480
- value: y(l).state.devCredentials.password
3016
+ value: x(l).state.devCredentials.password
2481
3017
  }, null, 8, ["value"]),
2482
- d("div", bo, [
2483
- p[3] || (p[3] = d("span", null, null, -1)),
2484
- v(h, {
3018
+ d("div", Ro, [
3019
+ u[3] || (u[3] = d("span", null, null, -1)),
3020
+ v(f, {
2485
3021
  to: n.forgotPasswordRoute,
2486
3022
  class: "text-sm text-primary-600 font-semibold"
2487
3023
  }, {
2488
- default: L(() => [...p[2] || (p[2] = [
2489
- A(" Forgot password ", -1)
3024
+ default: C(() => [...u[2] || (u[2] = [
3025
+ B(" Forgot password ", -1)
2490
3026
  ])]),
2491
3027
  _: 1
2492
3028
  }, 8, ["to"])
2493
3029
  ]),
2494
- i.value ? (f(), g("div", vo, H(i.value), 1)) : $("", !0),
2495
- v(y(N), {
3030
+ c.value ? (m(), g("div", Bo, L(c.value), 1)) : $("", !0),
3031
+ v(x(K), {
2496
3032
  type: "submit",
2497
3033
  size: "xl",
2498
3034
  disabled: o.value,
2499
3035
  "button-class": "w-full mb-2"
2500
3036
  }, {
2501
- default: L(() => [
2502
- o.value ? (f(), g("span", ko, "Signing in...")) : (f(), g("span", xo, "Sign in"))
3037
+ default: C(() => [
3038
+ o.value ? (m(), g("span", Ao, "Signing in...")) : (m(), g("span", Eo, "Sign in"))
2503
3039
  ]),
2504
3040
  _: 1
2505
3041
  }, 8, ["disabled"])
@@ -2510,7 +3046,7 @@ const de = "bolt-next-token", I = re("auth", () => {
2510
3046
  ]);
2511
3047
  };
2512
3048
  }
2513
- }, _o = {
3049
+ }, Oo = {
2514
3050
  __name: "SparkLogoutView",
2515
3051
  props: {
2516
3052
  defaultRedirect: {
@@ -2519,27 +3055,27 @@ const de = "bolt-next-token", I = re("auth", () => {
2519
3055
  }
2520
3056
  },
2521
3057
  setup(e) {
2522
- const s = K(), t = te(), a = I(), l = e;
2523
- return pe(async () => {
3058
+ const s = W(), t = re(), a = Z(), l = e;
3059
+ return ge(async () => {
2524
3060
  await a.logout();
2525
3061
  const n = t.query.redirect;
2526
3062
  n && n.startsWith("http") ? window.location.href = n : await s.push(n || l.defaultRedirect);
2527
3063
  }), (n, o) => null;
2528
3064
  }
2529
- }, Co = { class: "h-full grid place-content-center relative" }, So = { class: "absolute top-8 left-8" }, $o = ["src"], To = {
3065
+ }, zo = { class: "h-full grid place-content-center relative" }, jo = { class: "absolute top-8 left-8" }, Io = ["src"], Do = {
2530
3066
  key: 1,
2531
3067
  width: "59",
2532
3068
  height: "23",
2533
3069
  viewBox: "0 0 59 23",
2534
3070
  fill: "none",
2535
3071
  xmlns: "http://www.w3.org/2000/svg"
2536
- }, Lo = { class: "max-w-sm grid gap-y-1 -mt-8" }, Ho = {
3072
+ }, No = { class: "max-w-sm grid gap-y-1 -mt-8" }, qo = {
2537
3073
  key: 0,
2538
3074
  class: "text-red-600 text-sm mb-2"
2539
- }, Po = {
3075
+ }, Zo = {
2540
3076
  key: 1,
2541
3077
  class: "text-green-600 text-sm mb-2"
2542
- }, Vo = { key: 0 }, Ro = { key: 1 }, Bo = {
3078
+ }, Ko = { key: 0 }, Uo = { key: 1 }, Go = {
2543
3079
  __name: "SparkForgotPasswordView",
2544
3080
  props: {
2545
3081
  logo: {
@@ -2552,26 +3088,26 @@ const de = "bolt-next-token", I = re("auth", () => {
2552
3088
  }
2553
3089
  },
2554
3090
  setup(e) {
2555
- const s = I(), t = e, a = R(!1), l = R(""), n = R(""), o = async ({ email: i }) => {
3091
+ const s = Z(), t = e, a = E(!1), l = E(""), n = E(""), o = async ({ email: c }) => {
2556
3092
  a.value = !0, l.value = "", n.value = "";
2557
3093
  try {
2558
- await ee.post(s.state.endpoints.passwordEmail, { email: i }), n.value = "Password reset link sent! Check your email.";
3094
+ await oe.post(s.state.endpoints.passwordEmail, { email: c }), n.value = "Password reset link sent! Check your email.";
2559
3095
  } catch (r) {
2560
3096
  l.value = r.response?.data?.message || "Failed to send reset link.";
2561
3097
  } finally {
2562
3098
  a.value = !1;
2563
3099
  }
2564
3100
  };
2565
- return (i, r) => {
2566
- const c = B("FormKit"), p = B("router-link");
2567
- return f(), g("div", Co, [
2568
- d("div", So, [
2569
- t.logo ? (f(), g("img", {
3101
+ return (c, r) => {
3102
+ const i = A("FormKit"), u = A("router-link");
3103
+ return m(), g("div", zo, [
3104
+ d("div", jo, [
3105
+ t.logo ? (m(), g("img", {
2570
3106
  key: 0,
2571
3107
  src: t.logo,
2572
3108
  alt: "Logo",
2573
3109
  class: "h-[23px] w-auto"
2574
- }, null, 8, $o)) : (f(), g("svg", To, [...r[0] || (r[0] = [
3110
+ }, null, 8, Io)) : (m(), g("svg", Do, [...r[0] || (r[0] = [
2575
3111
  d("path", {
2576
3112
  d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
2577
3113
  fill: "#1C64F2"
@@ -2590,18 +3126,18 @@ const de = "bolt-next-token", I = re("auth", () => {
2590
3126
  }, null, -1)
2591
3127
  ])]))
2592
3128
  ]),
2593
- d("div", Lo, [
3129
+ d("div", No, [
2594
3130
  r[2] || (r[2] = d("div", { class: "mb-7" }, [
2595
3131
  d("h1", { class: "text-4xl text-gray-900 semibold tracking-tight mb-3" }, "Reset password"),
2596
3132
  d("p", { class: "text-gray-600" }, " Enter your email and we'll send you a link to reset your password. ")
2597
3133
  ], -1)),
2598
- v(c, {
3134
+ v(i, {
2599
3135
  type: "form",
2600
3136
  onSubmit: o,
2601
3137
  actions: !1
2602
3138
  }, {
2603
- default: L(() => [
2604
- v(c, {
3139
+ default: C(() => [
3140
+ v(i, {
2605
3141
  label: "Email",
2606
3142
  name: "email",
2607
3143
  placeholder: "Enter your email",
@@ -2609,25 +3145,25 @@ const de = "bolt-next-token", I = re("auth", () => {
2609
3145
  validation: "required|email",
2610
3146
  "outer-class": "max-w-full"
2611
3147
  }),
2612
- l.value ? (f(), g("div", Ho, H(l.value), 1)) : $("", !0),
2613
- n.value ? (f(), g("div", Po, H(n.value), 1)) : $("", !0),
2614
- v(y(N), {
3148
+ l.value ? (m(), g("div", qo, L(l.value), 1)) : $("", !0),
3149
+ n.value ? (m(), g("div", Zo, L(n.value), 1)) : $("", !0),
3150
+ v(x(K), {
2615
3151
  type: "submit",
2616
3152
  size: "xl",
2617
3153
  disabled: a.value,
2618
3154
  "button-class": "w-full mb-2"
2619
3155
  }, {
2620
- default: L(() => [
2621
- a.value ? (f(), g("span", Ro, "Sending...")) : (f(), g("span", Vo, "Send reset link"))
3156
+ default: C(() => [
3157
+ a.value ? (m(), g("span", Uo, "Sending...")) : (m(), g("span", Ko, "Send reset link"))
2622
3158
  ]),
2623
3159
  _: 1
2624
3160
  }, 8, ["disabled"]),
2625
- v(p, {
3161
+ v(u, {
2626
3162
  to: t.loginRoute,
2627
3163
  class: "text-sm text-center text-primary-600 font-semibold block"
2628
3164
  }, {
2629
- default: L(() => [...r[1] || (r[1] = [
2630
- A(" Back to login ", -1)
3165
+ default: C(() => [...r[1] || (r[1] = [
3166
+ B(" Back to login ", -1)
2631
3167
  ])]),
2632
3168
  _: 1
2633
3169
  }, 8, ["to"])
@@ -2638,17 +3174,17 @@ const de = "bolt-next-token", I = re("auth", () => {
2638
3174
  ]);
2639
3175
  };
2640
3176
  }
2641
- }, Eo = { class: "h-full grid place-content-center relative" }, Mo = { class: "absolute top-8 left-8" }, Fo = ["src"], Ao = {
3177
+ }, Wo = { class: "h-full grid place-content-center relative" }, Yo = { class: "absolute top-8 left-8" }, Xo = ["src"], Jo = {
2642
3178
  key: 1,
2643
3179
  width: "59",
2644
3180
  height: "23",
2645
3181
  viewBox: "0 0 59 23",
2646
3182
  fill: "none",
2647
3183
  xmlns: "http://www.w3.org/2000/svg"
2648
- }, jo = { class: "max-w-sm grid gap-y-1 -mt-8" }, Oo = {
3184
+ }, Qo = { class: "max-w-sm grid gap-y-1 -mt-8" }, er = {
2649
3185
  key: 0,
2650
3186
  class: "text-red-600 text-sm mb-2"
2651
- }, zo = { key: 0 }, Io = { key: 1 }, No = {
3187
+ }, tr = { key: 0 }, sr = { key: 1 }, ar = {
2652
3188
  __name: "SparkResetPasswordView",
2653
3189
  props: {
2654
3190
  logo: {
@@ -2661,31 +3197,31 @@ const de = "bolt-next-token", I = re("auth", () => {
2661
3197
  }
2662
3198
  },
2663
3199
  setup(e) {
2664
- const s = K(), t = te(), a = I(), l = e, n = R(!1), o = R(""), i = async ({ password: r, password_confirmation: c }) => {
3200
+ const s = W(), t = re(), a = Z(), l = e, n = E(!1), o = E(""), c = async ({ password: r, password_confirmation: i }) => {
2665
3201
  n.value = !0, o.value = "";
2666
3202
  try {
2667
- await ee.post(a.state.endpoints.passwordReset, {
3203
+ await oe.post(a.state.endpoints.passwordReset, {
2668
3204
  email: t.query.email,
2669
3205
  token: t.query.token,
2670
3206
  password: r,
2671
- password_confirmation: c
3207
+ password_confirmation: i
2672
3208
  }), await s.push(l.loginRoute);
2673
- } catch (p) {
2674
- o.value = p.response?.data?.message || "Failed to reset password.";
3209
+ } catch (u) {
3210
+ o.value = u.response?.data?.message || "Failed to reset password.";
2675
3211
  } finally {
2676
3212
  n.value = !1;
2677
3213
  }
2678
3214
  };
2679
- return (r, c) => {
2680
- const p = B("FormKit");
2681
- return f(), g("div", Eo, [
2682
- d("div", Mo, [
2683
- l.logo ? (f(), g("img", {
3215
+ return (r, i) => {
3216
+ const u = A("FormKit");
3217
+ return m(), g("div", Wo, [
3218
+ d("div", Yo, [
3219
+ l.logo ? (m(), g("img", {
2684
3220
  key: 0,
2685
3221
  src: l.logo,
2686
3222
  alt: "Logo",
2687
3223
  class: "h-[23px] w-auto"
2688
- }, null, 8, Fo)) : (f(), g("svg", Ao, [...c[0] || (c[0] = [
3224
+ }, null, 8, Xo)) : (m(), g("svg", Jo, [...i[0] || (i[0] = [
2689
3225
  d("path", {
2690
3226
  d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
2691
3227
  fill: "#1C64F2"
@@ -2704,18 +3240,18 @@ const de = "bolt-next-token", I = re("auth", () => {
2704
3240
  }, null, -1)
2705
3241
  ])]))
2706
3242
  ]),
2707
- d("div", jo, [
2708
- c[1] || (c[1] = d("div", { class: "mb-7" }, [
3243
+ d("div", Qo, [
3244
+ i[1] || (i[1] = d("div", { class: "mb-7" }, [
2709
3245
  d("h1", { class: "text-4xl text-gray-900 semibold tracking-tight mb-3" }, "Set new password"),
2710
3246
  d("p", { class: "text-gray-600" }, " Enter your new password below. ")
2711
3247
  ], -1)),
2712
- v(p, {
3248
+ v(u, {
2713
3249
  type: "form",
2714
- onSubmit: i,
3250
+ onSubmit: c,
2715
3251
  actions: !1
2716
3252
  }, {
2717
- default: L(() => [
2718
- v(p, {
3253
+ default: C(() => [
3254
+ v(u, {
2719
3255
  label: "New Password",
2720
3256
  name: "password",
2721
3257
  placeholder: "••••••••",
@@ -2723,7 +3259,7 @@ const de = "bolt-next-token", I = re("auth", () => {
2723
3259
  validation: "required|length:8",
2724
3260
  "outer-class": "max-w-full"
2725
3261
  }),
2726
- v(p, {
3262
+ v(u, {
2727
3263
  label: "Confirm Password",
2728
3264
  name: "password_confirmation",
2729
3265
  placeholder: "••••••••",
@@ -2731,15 +3267,15 @@ const de = "bolt-next-token", I = re("auth", () => {
2731
3267
  validation: "required|confirm:password",
2732
3268
  "outer-class": "max-w-full"
2733
3269
  }),
2734
- o.value ? (f(), g("div", Oo, H(o.value), 1)) : $("", !0),
2735
- v(y(N), {
3270
+ o.value ? (m(), g("div", er, L(o.value), 1)) : $("", !0),
3271
+ v(x(K), {
2736
3272
  type: "submit",
2737
3273
  size: "xl",
2738
3274
  disabled: n.value,
2739
3275
  "button-class": "w-full mb-2"
2740
3276
  }, {
2741
- default: L(() => [
2742
- n.value ? (f(), g("span", Io, "Resetting...")) : (f(), g("span", zo, "Reset password"))
3277
+ default: C(() => [
3278
+ n.value ? (m(), g("span", sr, "Resetting...")) : (m(), g("span", tr, "Reset password"))
2743
3279
  ]),
2744
3280
  _: 1
2745
3281
  }, 8, ["disabled"])
@@ -2750,14 +3286,14 @@ const de = "bolt-next-token", I = re("auth", () => {
2750
3286
  ]);
2751
3287
  };
2752
3288
  }
2753
- }, Do = { class: "h-full grid place-content-center relative" }, qo = { class: "absolute top-8 left-8" }, Zo = ["src"], Ko = {
3289
+ }, or = { class: "h-full grid place-content-center relative" }, rr = { class: "absolute top-8 left-8" }, nr = ["src"], lr = {
2754
3290
  key: 1,
2755
3291
  width: "59",
2756
3292
  height: "23",
2757
3293
  viewBox: "0 0 59 23",
2758
3294
  fill: "none",
2759
3295
  xmlns: "http://www.w3.org/2000/svg"
2760
- }, Uo = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, Go = { class: "flex gap-4 justify-center" }, Wo = {
3296
+ }, ir = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, cr = { class: "flex gap-4 justify-center" }, ur = {
2761
3297
  __name: "SparkError403View",
2762
3298
  props: {
2763
3299
  logo: {
@@ -2770,17 +3306,17 @@ const de = "bolt-next-token", I = re("auth", () => {
2770
3306
  }
2771
3307
  },
2772
3308
  setup(e) {
2773
- const s = K(), t = e, a = () => {
3309
+ const s = W(), t = e, a = () => {
2774
3310
  s.push(t.homeRoute);
2775
3311
  };
2776
- return (l, n) => (f(), g("div", Do, [
2777
- d("div", qo, [
2778
- t.logo ? (f(), g("img", {
3312
+ return (l, n) => (m(), g("div", or, [
3313
+ d("div", rr, [
3314
+ t.logo ? (m(), g("img", {
2779
3315
  key: 0,
2780
3316
  src: t.logo,
2781
3317
  alt: "Logo",
2782
3318
  class: "h-[23px] w-auto"
2783
- }, null, 8, Zo)) : (f(), g("svg", Ko, [...n[0] || (n[0] = [
3319
+ }, null, 8, nr)) : (m(), g("svg", lr, [...n[0] || (n[0] = [
2784
3320
  d("path", {
2785
3321
  d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
2786
3322
  fill: "#1C64F2"
@@ -2799,23 +3335,23 @@ const de = "bolt-next-token", I = re("auth", () => {
2799
3335
  }, null, -1)
2800
3336
  ])]))
2801
3337
  ]),
2802
- d("div", Uo, [
3338
+ d("div", ir, [
2803
3339
  n[2] || (n[2] = d("div", null, [
2804
3340
  d("div", { class: "text-primary-600 text-7xl font-bold mb-4" }, "403"),
2805
3341
  d("h1", { class: "text-3xl text-gray-900 font-semibold tracking-tight mb-3" }, " Access Forbidden "),
2806
3342
  d("p", { class: "text-gray-600" }, [
2807
- A(" You don't have permission to access this resource."),
3343
+ B(" You don't have permission to access this resource."),
2808
3344
  d("br"),
2809
- A(" If you believe this is an error, please contact your administrator. ")
3345
+ B(" If you believe this is an error, please contact your administrator. ")
2810
3346
  ])
2811
3347
  ], -1)),
2812
- d("div", Go, [
2813
- v(y(N), {
3348
+ d("div", cr, [
3349
+ v(x(K), {
2814
3350
  onClick: a,
2815
3351
  size: "lg"
2816
3352
  }, {
2817
- default: L(() => [...n[1] || (n[1] = [
2818
- A(" Go to Home ", -1)
3353
+ default: C(() => [...n[1] || (n[1] = [
3354
+ B(" Go to Home ", -1)
2819
3355
  ])]),
2820
3356
  _: 1
2821
3357
  })
@@ -2823,14 +3359,14 @@ const de = "bolt-next-token", I = re("auth", () => {
2823
3359
  ])
2824
3360
  ]));
2825
3361
  }
2826
- }, Yo = { class: "h-full grid place-content-center relative" }, Xo = { class: "absolute top-8 left-8" }, Jo = ["src"], Qo = {
3362
+ }, dr = { class: "h-full grid place-content-center relative" }, pr = { class: "absolute top-8 left-8" }, fr = ["src"], mr = {
2827
3363
  key: 1,
2828
3364
  width: "59",
2829
3365
  height: "23",
2830
3366
  viewBox: "0 0 59 23",
2831
3367
  fill: "none",
2832
3368
  xmlns: "http://www.w3.org/2000/svg"
2833
- }, er = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, tr = { class: "flex gap-4 justify-center" }, sr = {
3369
+ }, hr = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, gr = { class: "flex gap-4 justify-center" }, yr = {
2834
3370
  __name: "SparkError404View",
2835
3371
  props: {
2836
3372
  logo: {
@@ -2843,17 +3379,17 @@ const de = "bolt-next-token", I = re("auth", () => {
2843
3379
  }
2844
3380
  },
2845
3381
  setup(e) {
2846
- const s = K(), t = e, a = () => {
3382
+ const s = W(), t = e, a = () => {
2847
3383
  s.push(t.homeRoute);
2848
3384
  };
2849
- return (l, n) => (f(), g("div", Yo, [
2850
- d("div", Xo, [
2851
- t.logo ? (f(), g("img", {
3385
+ return (l, n) => (m(), g("div", dr, [
3386
+ d("div", pr, [
3387
+ t.logo ? (m(), g("img", {
2852
3388
  key: 0,
2853
3389
  src: t.logo,
2854
3390
  alt: "Logo",
2855
3391
  class: "h-[23px] w-auto"
2856
- }, null, 8, Jo)) : (f(), g("svg", Qo, [...n[0] || (n[0] = [
3392
+ }, null, 8, fr)) : (m(), g("svg", mr, [...n[0] || (n[0] = [
2857
3393
  d("path", {
2858
3394
  d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
2859
3395
  fill: "#1C64F2"
@@ -2872,19 +3408,19 @@ const de = "bolt-next-token", I = re("auth", () => {
2872
3408
  }, null, -1)
2873
3409
  ])]))
2874
3410
  ]),
2875
- d("div", er, [
3411
+ d("div", hr, [
2876
3412
  n[2] || (n[2] = d("div", null, [
2877
3413
  d("div", { class: "text-primary-600 text-7xl font-bold mb-4" }, "404"),
2878
3414
  d("h1", { class: "text-3xl text-gray-900 font-semibold tracking-tight mb-3" }, " Page Not Found "),
2879
3415
  d("p", { class: "text-gray-600" }, " The page you're looking for doesn't exist or has been moved. ")
2880
3416
  ], -1)),
2881
- d("div", tr, [
2882
- v(y(N), {
3417
+ d("div", gr, [
3418
+ v(x(K), {
2883
3419
  onClick: a,
2884
3420
  size: "lg"
2885
3421
  }, {
2886
- default: L(() => [...n[1] || (n[1] = [
2887
- A(" Go to Home ", -1)
3422
+ default: C(() => [...n[1] || (n[1] = [
3423
+ B(" Go to Home ", -1)
2888
3424
  ])]),
2889
3425
  _: 1
2890
3426
  })
@@ -2892,14 +3428,14 @@ const de = "bolt-next-token", I = re("auth", () => {
2892
3428
  ])
2893
3429
  ]));
2894
3430
  }
2895
- }, ar = { class: "h-full grid place-content-center relative" }, or = { class: "absolute top-8 left-8" }, rr = ["src"], nr = {
3431
+ }, vr = { class: "h-full grid place-content-center relative" }, br = { class: "absolute top-8 left-8" }, xr = ["src"], kr = {
2896
3432
  key: 1,
2897
3433
  width: "59",
2898
3434
  height: "23",
2899
3435
  viewBox: "0 0 59 23",
2900
3436
  fill: "none",
2901
3437
  xmlns: "http://www.w3.org/2000/svg"
2902
- }, lr = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, ir = { class: "text-primary-600 text-7xl font-bold mb-4" }, cr = { class: "text-3xl text-gray-900 font-semibold tracking-tight mb-3" }, dr = { class: "text-gray-600" }, ur = { class: "flex gap-4 justify-center" }, Or = {
3438
+ }, _r = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, wr = { class: "text-primary-600 text-7xl font-bold mb-4" }, Sr = { class: "text-3xl text-gray-900 font-semibold tracking-tight mb-3" }, Cr = { class: "text-gray-600" }, $r = { class: "flex gap-4 justify-center" }, tn = {
2903
3439
  __name: "SparkErrorGeneralView",
2904
3440
  props: {
2905
3441
  logo: {
@@ -2924,17 +3460,17 @@ const de = "bolt-next-token", I = re("auth", () => {
2924
3460
  }
2925
3461
  },
2926
3462
  setup(e) {
2927
- const s = K(), t = e, a = () => {
3463
+ const s = W(), t = e, a = () => {
2928
3464
  s.push(t.homeRoute);
2929
3465
  };
2930
- return (l, n) => (f(), g("div", ar, [
2931
- d("div", or, [
2932
- t.logo ? (f(), g("img", {
3466
+ return (l, n) => (m(), g("div", vr, [
3467
+ d("div", br, [
3468
+ t.logo ? (m(), g("img", {
2933
3469
  key: 0,
2934
3470
  src: t.logo,
2935
3471
  alt: "Logo",
2936
3472
  class: "h-[23px] w-auto"
2937
- }, null, 8, rr)) : (f(), g("svg", nr, [...n[0] || (n[0] = [
3473
+ }, null, 8, xr)) : (m(), g("svg", kr, [...n[0] || (n[0] = [
2938
3474
  d("path", {
2939
3475
  d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
2940
3476
  fill: "#1C64F2"
@@ -2953,19 +3489,19 @@ const de = "bolt-next-token", I = re("auth", () => {
2953
3489
  }, null, -1)
2954
3490
  ])]))
2955
3491
  ]),
2956
- d("div", lr, [
3492
+ d("div", _r, [
2957
3493
  d("div", null, [
2958
- d("div", ir, H(t.errorCode || "Error"), 1),
2959
- d("h1", cr, H(t.title || "Something went wrong"), 1),
2960
- d("p", dr, H(t.message || "An unexpected error occurred. Please try again later."), 1)
3494
+ d("div", wr, L(t.errorCode || "Error"), 1),
3495
+ d("h1", Sr, L(t.title || "Something went wrong"), 1),
3496
+ d("p", Cr, L(t.message || "An unexpected error occurred. Please try again later."), 1)
2961
3497
  ]),
2962
- d("div", ur, [
2963
- v(y(N), {
3498
+ d("div", $r, [
3499
+ v(x(K), {
2964
3500
  onClick: a,
2965
3501
  size: "lg"
2966
3502
  }, {
2967
- default: L(() => [...n[1] || (n[1] = [
2968
- A(" Go to Home ", -1)
3503
+ default: C(() => [...n[1] || (n[1] = [
3504
+ B(" Go to Home ", -1)
2969
3505
  ])]),
2970
3506
  _: 1
2971
3507
  })
@@ -2974,7 +3510,7 @@ const de = "bolt-next-token", I = re("auth", () => {
2974
3510
  ]));
2975
3511
  }
2976
3512
  };
2977
- function zr(e = {}) {
3513
+ function sn(e = {}) {
2978
3514
  const {
2979
3515
  loginPath: s = "/login",
2980
3516
  logoutPath: t = "/logout",
@@ -2987,41 +3523,41 @@ function zr(e = {}) {
2987
3523
  {
2988
3524
  path: s,
2989
3525
  name: "login",
2990
- component: wo,
3526
+ component: Fo,
2991
3527
  props: { logo: n, defaultRedirect: o },
2992
3528
  meta: { auth: !1 }
2993
3529
  },
2994
3530
  {
2995
3531
  path: t,
2996
3532
  name: "logout",
2997
- component: _o,
3533
+ component: Oo,
2998
3534
  props: { defaultRedirect: s },
2999
3535
  meta: { auth: !1 }
3000
3536
  },
3001
3537
  {
3002
3538
  path: a,
3003
3539
  name: "forgot-password",
3004
- component: Bo,
3540
+ component: Go,
3005
3541
  props: { logo: n, loginRoute: s },
3006
3542
  meta: { auth: !1 }
3007
3543
  },
3008
3544
  {
3009
3545
  path: l,
3010
3546
  name: "password-reset",
3011
- component: No,
3547
+ component: ar,
3012
3548
  props: { logo: n, loginRoute: s },
3013
3549
  meta: { auth: !1 }
3014
3550
  }
3015
3551
  ];
3016
3552
  }
3017
- function Ir(e, s = {}) {
3553
+ function an(e, s = {}) {
3018
3554
  const { defaultAuthenticatedRoute: t = "/dashboard" } = s;
3019
3555
  e.beforeEach(async (a, l, n) => {
3020
- const o = I();
3021
- o.state.ready || await o.fetchUser(), pr(a, n, o, t);
3556
+ const o = Z();
3557
+ o.state.ready || await o.fetchUser(), Tr(a, n, o, t);
3022
3558
  });
3023
3559
  }
3024
- function pr(e, s, t, a) {
3560
+ function Tr(e, s, t, a) {
3025
3561
  const l = e.meta.auth !== !1, n = t.check;
3026
3562
  if (t.state.overrideToken && e.path === "/logout") {
3027
3563
  s({ path: a });
@@ -3059,7 +3595,7 @@ function pr(e, s, t, a) {
3059
3595
  s();
3060
3596
  }
3061
3597
  }
3062
- function Nr(e = {}) {
3598
+ function on(e = {}) {
3063
3599
  const {
3064
3600
  forbiddenPath: s = "/error/403",
3065
3601
  logo: t = "",
@@ -3068,12 +3604,12 @@ function Nr(e = {}) {
3068
3604
  return {
3069
3605
  path: s,
3070
3606
  name: "error-403",
3071
- component: Wo,
3607
+ component: ur,
3072
3608
  props: { logo: t, homeRoute: a },
3073
3609
  meta: { auth: !1 }
3074
3610
  };
3075
3611
  }
3076
- function Dr(e = {}) {
3612
+ function rn(e = {}) {
3077
3613
  const {
3078
3614
  logo: s = "",
3079
3615
  homeRoute: t = "/dashboard"
@@ -3081,21 +3617,21 @@ function Dr(e = {}) {
3081
3617
  return {
3082
3618
  path: "/:pathMatch(.*)*",
3083
3619
  name: "error-404",
3084
- component: sr,
3620
+ component: yr,
3085
3621
  props: { logo: s, homeRoute: t },
3086
3622
  meta: { auth: !1 }
3087
3623
  };
3088
3624
  }
3089
- function qr(e, s) {
3625
+ function nn(e, s) {
3090
3626
  e.beforeResolve(async (t) => {
3091
3627
  if (t.meta.auth !== !1) {
3092
- const a = I();
3628
+ const a = Z();
3093
3629
  a.state.ready && a.check && await s();
3094
3630
  }
3095
3631
  });
3096
3632
  }
3097
- function fr(e = {}) {
3098
- const s = ee.create({
3633
+ function Lr(e = {}) {
3634
+ const s = oe.create({
3099
3635
  baseURL: e.baseURL || "",
3100
3636
  timeout: e.timeout || 3e4,
3101
3637
  headers: {
@@ -3106,7 +3642,7 @@ function fr(e = {}) {
3106
3642
  return s.interceptors.request.use(
3107
3643
  (t) => {
3108
3644
  try {
3109
- const a = I();
3645
+ const a = Z();
3110
3646
  a.state.overrideToken ? t.headers.Authorization = `Bearer ${a.state.overrideToken}` : a.state.token && (t.headers.Authorization = `Bearer ${a.state.token}`);
3111
3647
  } catch {
3112
3648
  }
@@ -3118,14 +3654,14 @@ function fr(e = {}) {
3118
3654
  async (t) => {
3119
3655
  if (t.response?.status === 401)
3120
3656
  try {
3121
- const a = I();
3657
+ const a = Z();
3122
3658
  await a.logout(), window.location.href = a.state.routes.auth;
3123
3659
  } catch (a) {
3124
3660
  console.error("Error during auto-logout:", a), window.location.href = "/login";
3125
3661
  }
3126
3662
  if (t.response?.status === 403)
3127
3663
  try {
3128
- const a = I();
3664
+ const a = Z();
3129
3665
  window.location.href = a.state.routes.forbidden;
3130
3666
  } catch (a) {
3131
3667
  console.error("Error during 403 redirect:", a), window.location.href = "/error/403";
@@ -3134,53 +3670,53 @@ function fr(e = {}) {
3134
3670
  }
3135
3671
  ), s;
3136
3672
  }
3137
- let Q = null;
3138
- function Zr(e, s = {}) {
3139
- return Q = fr(s), e.provide("axios", Q), e.config.globalProperties.$axios = Q, Q;
3673
+ let ae = null;
3674
+ function ln(e, s = {}) {
3675
+ return ae = Lr(s), e.provide("axios", ae), e.config.globalProperties.$axios = ae, ae;
3140
3676
  }
3141
- function Kr() {
3142
- if (!Q)
3677
+ function cn() {
3678
+ if (!ae)
3143
3679
  throw new Error("Axios instance not initialized. Call setupAxios() first.");
3144
- return Q;
3680
+ return ae;
3145
3681
  }
3146
- const Ur = re("sparkNav", () => {
3147
- const e = Z({
3682
+ const un = ie("sparkNav", () => {
3683
+ const e = q({
3148
3684
  menu: [],
3149
3685
  collapsed: !1,
3150
3686
  hidden: !1
3151
- }), s = K(), t = te(), a = (c = []) => {
3152
- e.menu = c, r();
3153
- }, l = (c, p) => {
3154
- for (const u of c) {
3155
- if (u.href === p) return u;
3156
- if (u.children) {
3157
- const h = l(u.children, p);
3158
- if (h) return h;
3687
+ }), s = W(), t = re(), a = (i = []) => {
3688
+ e.menu = i, r();
3689
+ }, l = (i, u) => {
3690
+ for (const p of i) {
3691
+ if (p.href === u) return p;
3692
+ if (p.children) {
3693
+ const f = l(p.children, u);
3694
+ if (f) return f;
3159
3695
  }
3160
3696
  }
3161
3697
  return null;
3162
- }, n = async (c) => {
3163
- if (c) {
3164
- const p = l(e.menu, c);
3165
- if (p && typeof p.action == "function") {
3166
- p.action();
3698
+ }, n = async (i) => {
3699
+ if (i) {
3700
+ const u = l(e.menu, i);
3701
+ if (u && typeof u.action == "function") {
3702
+ u.action();
3167
3703
  return;
3168
3704
  }
3169
- await s.push(c);
3705
+ await s.push(i);
3170
3706
  }
3171
3707
  }, o = () => {
3172
3708
  e.collapsed = !e.collapsed;
3173
- }, i = () => {
3709
+ }, c = () => {
3174
3710
  e.hidden = !e.hidden;
3175
3711
  }, r = () => {
3176
- const c = t.name || t.path.replace("/", "");
3177
- if (c) {
3178
- const p = (u) => {
3179
- u.forEach((h) => {
3180
- h.current = h.href === c, h.children && p(h.children);
3712
+ const i = t.name || t.path.replace("/", "");
3713
+ if (i) {
3714
+ const u = (p) => {
3715
+ p.forEach((f) => {
3716
+ f.current = f.href === i, f.children && u(f.children);
3181
3717
  });
3182
3718
  };
3183
- p(e.menu);
3719
+ u(e.menu);
3184
3720
  }
3185
3721
  };
3186
3722
  return j(
@@ -3194,64 +3730,67 @@ const Ur = re("sparkNav", () => {
3194
3730
  initialize: a,
3195
3731
  goto: n,
3196
3732
  toggleCollapsed: o,
3197
- toggleHidden: i,
3733
+ toggleHidden: c,
3198
3734
  syncWithRoute: r
3199
3735
  };
3200
3736
  });
3201
3737
  export {
3202
- E as Icons,
3203
- Br as SparkAlert,
3204
- ns as SparkAppSelector,
3205
- ws as SparkBrandSelector,
3206
- N as SparkButton,
3207
- Cs as SparkButtonGroup,
3208
- Er as SparkCard,
3209
- Fr as SparkDefaultContainer,
3210
- Wo as SparkError403View,
3211
- sr as SparkError404View,
3212
- Or as SparkErrorGeneralView,
3213
- Bo as SparkForgotPasswordView,
3214
- wo as SparkLoginView,
3215
- _o as SparkLogoutView,
3216
- Es as SparkModalContainer,
3217
- Ps as SparkModalDialog,
3218
- he as SparkOverlay,
3219
- Ar as SparkPublicContainer,
3220
- No as SparkResetPasswordView,
3221
- Mr as SparkTable,
3222
- Ta as SparkTableDatePicker,
3223
- Ca as SparkTableFilterButtons,
3224
- xa as SparkTableFilterSelect,
3225
- ua as SparkTablePaginationPaging,
3226
- ma as SparkTablePaginationPerPage,
3227
- Va as SparkTableReset,
3228
- ya as SparkTableSearch,
3229
- xe as SparkTableToolbar,
3230
- Vr as addIcons,
3231
- Nr as create403Route,
3232
- Dr as create404Route,
3233
- zr as createAuthRoutes,
3234
- fr as createAxiosInstance,
3235
- jr as createBootstrapService,
3236
- zs as customiseHeader,
3237
- lo as deleteCookie,
3238
- Kr as getAxiosInstance,
3239
- ro as getCookie,
3240
- Me as getDomain,
3241
- Fs as renderHeaderTitle,
3242
- no as setCookie,
3243
- Ir as setupAuthGuards,
3244
- Zr as setupAxios,
3245
- qr as setupBootstrapGuard,
3246
- Rr as setupFontAwesome,
3247
- J as sparkModalService,
3248
- X as sparkOverlayService,
3249
- Js as updateRow,
3250
- Re as useSparkAppSelectorStore,
3251
- Be as useSparkAppStore,
3252
- I as useSparkAuthStore,
3253
- Ee as useSparkBrandFilterStore,
3254
- Ur as useSparkNavStore,
3255
- we as useSparkOverlay,
3256
- Qs as useSparkTableRouteSync
3738
+ F as Icons,
3739
+ te as SparkAlert,
3740
+ ms as SparkAppSelector,
3741
+ Fs as SparkBrandSelector,
3742
+ K as SparkButton,
3743
+ zs as SparkButtonGroup,
3744
+ Yr as SparkCard,
3745
+ Jr as SparkDefaultContainer,
3746
+ ur as SparkError403View,
3747
+ yr as SparkError404View,
3748
+ tn as SparkErrorGeneralView,
3749
+ Go as SparkForgotPasswordView,
3750
+ Fo as SparkLoginView,
3751
+ Oo as SparkLogoutView,
3752
+ Ws as SparkModalContainer,
3753
+ Zs as SparkModalDialog,
3754
+ Gr as SparkNotificationOutlet,
3755
+ ke as SparkOverlay,
3756
+ Qr as SparkPublicContainer,
3757
+ ar as SparkResetPasswordView,
3758
+ Xr as SparkTable,
3759
+ Da as SparkTableDatePicker,
3760
+ za as SparkTableFilterButtons,
3761
+ Ea as SparkTableFilterSelect,
3762
+ $a as SparkTablePaginationPaging,
3763
+ Pa as SparkTablePaginationPerPage,
3764
+ Ka as SparkTableReset,
3765
+ Ma as SparkTableSearch,
3766
+ Ce as SparkTableToolbar,
3767
+ Wr as SparkToastContainer,
3768
+ Kr as addIcons,
3769
+ on as create403Route,
3770
+ rn as create404Route,
3771
+ sn as createAuthRoutes,
3772
+ Lr as createAxiosInstance,
3773
+ en as createBootstrapService,
3774
+ ta as customiseHeader,
3775
+ wo as deleteCookie,
3776
+ cn as getAxiosInstance,
3777
+ ko as getCookie,
3778
+ je as getDomain,
3779
+ Xs as renderHeaderTitle,
3780
+ _o as setCookie,
3781
+ an as setupAuthGuards,
3782
+ ln as setupAxios,
3783
+ nn as setupBootstrapGuard,
3784
+ Ur as setupFontAwesome,
3785
+ se as sparkModalService,
3786
+ G as sparkNotificationService,
3787
+ ee as sparkOverlayService,
3788
+ fa as updateRow,
3789
+ Ae as useSparkAppSelectorStore,
3790
+ Fe as useSparkAppStore,
3791
+ Z as useSparkAuthStore,
3792
+ ze as useSparkBrandFilterStore,
3793
+ un as useSparkNavStore,
3794
+ Te as useSparkOverlay,
3795
+ ma as useSparkTableRouteSync
3257
3796
  };