@wishbone-media/spark 0.26.0 → 0.27.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,131 +1,131 @@
1
- import { computed as C, resolveComponent as O, createElementBlock as h, openBlock as m, normalizeClass as H, createElementVNode as f, createCommentVNode as P, createVNode as b, unref as x, renderSlot as B, reactive as q, Fragment as R, renderList as z, toDisplayString as L, createBlock as V, resolveDynamicComponent as N, markRaw as me, ref as F, watch as I, Transition as ut, withCtx as T, normalizeProps as dt, mergeProps as Z, createTextVNode as E, Teleport as pt, TransitionGroup as ie, inject as Ee, provide as ft, toHandlers as Fe, onMounted as _e, withModifiers as ee, useSlots as Oe, onUnmounted as mt, withDirectives as ht, vShow as gt, h as Se } from "vue";
2
- import { icon as J, library as Be } from "@fortawesome/fontawesome-svg-core";
3
- import { FontAwesomeIcon as yt } from "@fortawesome/vue-fontawesome";
4
- import { faCircleDot as De, faEyeDropper as ze, faAnglesLeft as je, faAnglesRight as Ie, faStar as Ne, faSpinnerThird as Ze, faCircle as vt, faFile as be, faCalendar as qe, faArrowUp as Ue, faArrowDown as Ke, faPlus as Ge, faInbox as bt, faCloudDownload as xt, faBolt as kt, faUndo as wt, faEye as _t, faSignOut as St, faXmark as xe, faTrash as We, faTimes as Ct, faStreetView as $t, faSortUp as Tt, faSortDown as Pt, faSort as Lt, faScaleBalanced as Mt, faSatelliteDish as Ht, faLayerPlus as Vt, faLaptopMobile as Rt, faInfoCircle as At, faGripDotsVertical as Ye, faGearComplex as Et, faFlag as Ft, faFaceSmileWink as Ot, faFaceSmileRelaxed as Bt, faExclamationTriangle as Dt, faEllipsisVertical as zt, faEllipsis as jt, faEdit as It, faComments as Nt, faCircleXmark as Zt, faCircleUser as qt, faChevronUp as Ut, faChevronRight as Xe, faChevronLeft as Je, faChevronDown as Qe, faCheckCircle as Kt, faCheck as ke, faBullhorn as Gt, faBellRing as Wt, faBarsSort as Yt, faArrowRightToLine as Xt, faArrowLeftToLine as Jt } from "@fortawesome/pro-regular-svg-icons";
5
- import { faSortUp as Qt, faSortDown as es, faSort as ts } from "@fortawesome/pro-duotone-svg-icons";
1
+ import { computed as $, resolveComponent as O, createElementBlock as h, openBlock as m, normalizeClass as H, createElementVNode as f, createCommentVNode as L, createVNode as b, unref as k, renderSlot as B, reactive as U, Fragment as R, renderList as z, toDisplayString as M, createBlock as V, resolveDynamicComponent as N, markRaw as me, ref as E, watch as I, Transition as dt, withCtx as T, normalizeProps as pt, mergeProps as Z, createTextVNode as F, Teleport as ft, TransitionGroup as ie, inject as Fe, provide as mt, toHandlers as Oe, onMounted as _e, withModifiers as ee, useSlots as Be, onUnmounted as ht, withDirectives as gt, vShow as yt, h as Se } from "vue";
2
+ import { icon as Q, library as De } from "@fortawesome/fontawesome-svg-core";
3
+ import { FontAwesomeIcon as vt } from "@fortawesome/vue-fontawesome";
4
+ import { faCircleDot as ze, faEyeDropper as je, faAnglesLeft as Ie, faAnglesRight as Ne, faStar as Ze, faSpinnerThird as qe, faCircle as bt, faFile as be, faCalendar as Ue, faArrowUp as Ke, faArrowDown as Ge, faPlus as We, faInbox as xt, faCloudDownload as kt, faBolt as wt, faUndo as _t, faEye as St, faSignOut as Ct, faXmark as xe, faTrash as Ye, faTimes as $t, faStreetView as Tt, faSortUp as Pt, faSortDown as Lt, faSort as Mt, faScaleBalanced as Ht, faSatelliteDish as Vt, faLayerPlus as Rt, faLaptopMobile as Et, faInfoCircle as At, faGripDotsVertical as Xe, faGearComplex as Ft, faFlag as Ot, faFaceSmileWink as Bt, faFaceSmileRelaxed as Dt, faExclamationTriangle as zt, faEllipsisVertical as jt, faEllipsis as It, faEdit as Nt, faComments as Zt, faCircleXmark as qt, faCircleUser as Ut, faChevronUp as Kt, faChevronRight as Je, faChevronLeft as Qe, faChevronDown as et, faCheckCircle as Gt, faCheck as ke, faBullhorn as Wt, faBellRing as Yt, faBarsSort as Xt, faArrowRightToLine as Jt, faArrowLeftToLine as Qt } from "@fortawesome/pro-regular-svg-icons";
5
+ import { faSortUp as es, faSortDown as ts, faSort as ss } from "@fortawesome/pro-duotone-svg-icons";
6
6
  import { defineStore as ue } from "pinia";
7
- import { TransitionRoot as et, Dialog as tt, TransitionChild as fe, DialogPanel as st } from "@headlessui/vue";
7
+ import { TransitionRoot as tt, Dialog as st, TransitionChild as fe, DialogPanel as ot } from "@headlessui/vue";
8
8
  import he from "nprogress";
9
- import { range as ss, get as Y, find as os, has as as } from "lodash";
10
- import { HotTable as rs } from "@handsontable/vue3";
9
+ import { range as os, get as J, find as as, has as rs } from "lodash";
10
+ import { HotTable as ns } from "@handsontable/vue3";
11
11
  import "handsontable/styles/handsontable.css";
12
12
  import "handsontable/styles/ht-theme-classic.css";
13
- import { registerPlugin as pe, AutoColumnSize as ns, CopyPaste as ls, StretchColumns as is, NestedHeaders as cs } from "handsontable/plugins";
14
- import { registerAllCellTypes as us } from "handsontable/cellTypes";
15
- import { useDebounceFn as ot, watchDebounced as Ce } from "@vueuse/core";
16
- import { registerRenderer as ds, baseRenderer as ps } from "handsontable/renderers";
17
- import { useRouter as Q, useRoute as le } from "vue-router";
13
+ import { registerPlugin as pe, AutoColumnSize as ls, CopyPaste as is, StretchColumns as cs, NestedHeaders as us } from "handsontable/plugins";
14
+ import { registerAllCellTypes as ds } from "handsontable/cellTypes";
15
+ import { useDebounceFn as at, watchDebounced as Ce } from "@vueuse/core";
16
+ import { registerRenderer as ps, baseRenderer as fs } from "handsontable/renderers";
17
+ import { useRouter as W, useRoute as le } from "vue-router";
18
18
  import ne from "axios";
19
19
  const A = {
20
- farArrowLeftToLine: Jt,
21
- farArrowRightToLine: Xt,
22
- farBarsSort: Yt,
23
- farBellRing: Wt,
24
- farBullhorn: Gt,
20
+ farArrowLeftToLine: Qt,
21
+ farArrowRightToLine: Jt,
22
+ farBarsSort: Xt,
23
+ farBellRing: Yt,
24
+ farBullhorn: Wt,
25
25
  farCheck: ke,
26
- farCheckCircle: Kt,
27
- farChevronDown: Qe,
28
- farChevronLeft: Je,
29
- farChevronRight: Xe,
30
- farChevronUp: Ut,
31
- farCircleUser: qt,
32
- farCircleXmark: Zt,
33
- farComments: Nt,
34
- farEdit: It,
35
- farEllipsis: jt,
36
- farEllipsisVertical: zt,
37
- farExclamationTriangle: Dt,
38
- farFaceSmileRelaxed: Bt,
39
- farFaceSmileWink: Ot,
40
- farFlag: Ft,
41
- farGearComplex: Et,
42
- farGripDotsVertical: Ye,
26
+ farCheckCircle: Gt,
27
+ farChevronDown: et,
28
+ farChevronLeft: Qe,
29
+ farChevronRight: Je,
30
+ farChevronUp: Kt,
31
+ farCircleUser: Ut,
32
+ farCircleXmark: qt,
33
+ farComments: Zt,
34
+ farEdit: Nt,
35
+ farEllipsis: It,
36
+ farEllipsisVertical: jt,
37
+ farExclamationTriangle: zt,
38
+ farFaceSmileRelaxed: Dt,
39
+ farFaceSmileWink: Bt,
40
+ farFlag: Ot,
41
+ farGearComplex: Ft,
42
+ farGripDotsVertical: Xe,
43
43
  farInfoCircle: At,
44
- farLaptopMobile: Rt,
45
- farLayerPlus: Vt,
46
- farSatelliteDish: Ht,
47
- farScaleBalanced: Mt,
48
- farSort: Lt,
49
- farSortDown: Pt,
50
- farSortUp: Tt,
51
- farStreetView: $t,
52
- farTimes: Ct,
53
- farTrash: We,
44
+ farLaptopMobile: Et,
45
+ farLayerPlus: Rt,
46
+ farSatelliteDish: Vt,
47
+ farScaleBalanced: Ht,
48
+ farSort: Mt,
49
+ farSortDown: Lt,
50
+ farSortUp: Pt,
51
+ farStreetView: Tt,
52
+ farTimes: $t,
53
+ farTrash: Ye,
54
54
  farXmark: xe,
55
- farSignOut: St,
56
- farEye: _t,
57
- farUndo: wt,
58
- farBolt: kt,
59
- farCloudDownload: xt,
60
- farInbox: bt,
61
- fadSort: ts,
62
- fadSortDown: es,
63
- fadSortUp: Qt,
55
+ farSignOut: Ct,
56
+ farEye: St,
57
+ farUndo: _t,
58
+ farBolt: wt,
59
+ farCloudDownload: kt,
60
+ farInbox: xt,
61
+ fadSort: ss,
62
+ fadSortDown: ts,
63
+ fadSortUp: es,
64
64
  // Additional icons for FormKit genesis replacement
65
- farPlus: Ge,
66
- farArrowDown: Ke,
67
- farArrowUp: Ue,
68
- farCalendar: qe,
65
+ farPlus: We,
66
+ farArrowDown: Ge,
67
+ farArrowUp: Ke,
68
+ farCalendar: Ue,
69
69
  farFile: be,
70
- farCircle: vt,
71
- farSpinner: Ze,
72
- farStar: Ne,
73
- farAnglesRight: Ie,
74
- farAnglesLeft: je,
75
- farEyeDropper: ze,
76
- farCircleDot: De
77
- }, Cn = Object.fromEntries(
70
+ farCircle: bt,
71
+ farSpinner: qe,
72
+ farStar: Ze,
73
+ farAnglesRight: Ne,
74
+ farAnglesLeft: Ie,
75
+ farEyeDropper: je,
76
+ farCircleDot: ze
77
+ }, Ln = Object.fromEntries(
78
78
  Object.entries(A).map(([e, s]) => {
79
- const t = J(s);
79
+ const t = Q(s);
80
80
  return [e, t?.html?.[0] || ""];
81
81
  })
82
- ), fs = {
83
- add: Ge,
84
- arrowDown: Ke,
85
- arrowUp: Ue,
82
+ ), ms = {
83
+ add: We,
84
+ arrowDown: Ge,
85
+ arrowUp: Ke,
86
86
  check: ke,
87
87
  close: xe,
88
88
  checkboxDecorator: ke,
89
- date: qe,
90
- dragHandle: Ye,
89
+ date: Ue,
90
+ dragHandle: Xe,
91
91
  fileItem: be,
92
92
  fileRemove: xe,
93
93
  noFiles: be,
94
- radioDecorator: De,
94
+ radioDecorator: ze,
95
95
  // Circle with dot for radio indicator
96
- select: Qe,
97
- spinner: Ze,
98
- star: Ne,
99
- trash: We,
100
- fastForward: Ie,
101
- right: Xe,
102
- left: Je,
103
- rewind: je,
104
- color: ze
105
- }, $n = Object.fromEntries(
106
- Object.entries(fs).map(([e, s]) => {
107
- const t = J(s);
96
+ select: et,
97
+ spinner: qe,
98
+ star: Ze,
99
+ trash: Ye,
100
+ fastForward: Ne,
101
+ right: Je,
102
+ left: Qe,
103
+ rewind: Ie,
104
+ color: je
105
+ }, Mn = Object.fromEntries(
106
+ Object.entries(ms).map(([e, s]) => {
107
+ const t = Q(s);
108
108
  return [e, t?.html?.[0] || ""];
109
109
  })
110
110
  );
111
- function Tn(e) {
111
+ function Hn(e) {
112
112
  const s = A[e];
113
113
  if (s) {
114
- const t = J(s);
114
+ const t = Q(s);
115
115
  return Promise.resolve(t?.html?.[0] || void 0);
116
116
  }
117
117
  return Promise.resolve(void 0);
118
118
  }
119
- function Pn(e) {
120
- Object.assign(A, e), Be.add(...Object.values(e));
119
+ function Vn(e) {
120
+ Object.assign(A, e), De.add(...Object.values(e));
121
121
  }
122
- function Ln(e) {
123
- Be.add(...Object.values(A)), e.component("FontAwesomeIcon", yt);
122
+ function Rn(e) {
123
+ De.add(...Object.values(A)), e.component("FontAwesomeIcon", vt);
124
124
  }
125
- const ms = { class: "flex items-center" }, hs = { class: "shrink-0 self-start" }, gs = { class: "ml-3" }, ys = {
125
+ const hs = { class: "flex items-center" }, gs = { class: "shrink-0 self-start" }, ys = { class: "ml-3" }, vs = {
126
126
  key: 0,
127
127
  class: "ml-auto pl-3 pt-1 self-start"
128
- }, vs = { class: "-mx-1.5 -my-1.5" }, oe = {
128
+ }, bs = { class: "-mx-1.5 -my-1.5" }, oe = {
129
129
  __name: "SparkAlert",
130
130
  props: {
131
131
  type: {
@@ -140,22 +140,22 @@ const ms = { class: "flex items-center" }, hs = { class: "shrink-0 self-start" }
140
140
  },
141
141
  emits: ["close"],
142
142
  setup(e) {
143
- const s = e, t = C(() => ({
143
+ const s = e, t = $(() => ({
144
144
  success: "bg-green-50 border-green-200 text-green-700",
145
145
  warning: "bg-yellow-50 border-yellow-200 text-yellow-700",
146
146
  danger: "bg-red-50 border-red-200 text-red-700",
147
147
  info: "bg-blue-50 border-blue-200 text-blue-700"
148
- })[s.type]), o = C(() => ({
148
+ })[s.type]), o = $(() => ({
149
149
  success: "text-green-400",
150
150
  warning: "text-yellow-400",
151
151
  danger: "text-red-400",
152
152
  info: "text-blue-400"
153
- })[s.type]), l = C(() => ({
153
+ })[s.type]), l = $(() => ({
154
154
  success: "farCheckCircle",
155
155
  warning: "farExclamationTriangle",
156
156
  danger: "farCircleXmark",
157
157
  info: "farInfoCircle"
158
- })[s.type]), n = C(() => ({
158
+ })[s.type]), n = $(() => ({
159
159
  success: "text-green-400 hover:bg-green-100",
160
160
  warning: "text-yellow-400 hover:bg-yellow-100",
161
161
  danger: "text-red-400 hover:bg-red-100",
@@ -166,29 +166,29 @@ const ms = { class: "flex items-center" }, hs = { class: "shrink-0 self-start" }
166
166
  return m(), h("div", {
167
167
  class: H(["rounded-md border p-4", t.value])
168
168
  }, [
169
- f("div", ms, [
170
- f("div", hs, [
169
+ f("div", hs, [
170
+ f("div", gs, [
171
171
  b(r, {
172
- icon: x(A)[l.value],
172
+ icon: k(A)[l.value],
173
173
  class: H(o.value)
174
174
  }, null, 8, ["icon", "class"])
175
175
  ]),
176
- f("div", gs, [
176
+ f("div", ys, [
177
177
  B(a.$slots, "default")
178
178
  ]),
179
- e.closeable ? (m(), h("div", ys, [
180
- f("div", vs, [
179
+ e.closeable ? (m(), h("div", vs, [
180
+ f("div", bs, [
181
181
  f("button", {
182
182
  type: "button",
183
183
  class: H(["inline-flex rounded-md px-2 py-1.5", n.value]),
184
184
  onClick: c[0] || (c[0] = (i) => a.$emit("close"))
185
185
  }, [
186
186
  b(r, {
187
- icon: x(A).farXmark
187
+ icon: k(A).farXmark
188
188
  }, null, 8, ["icon"])
189
189
  ], 2)
190
190
  ])
191
- ])) : P("", !0)
191
+ ])) : L("", !0)
192
192
  ])
193
193
  ], 2);
194
194
  };
@@ -242,8 +242,8 @@ const ms = { class: "flex items-center" }, hs = { class: "shrink-0 self-start" }
242
242
  href: "https://tabula.letsbolt.io",
243
243
  icon: "farCompass"
244
244
  }
245
- ], at = ue("sparkAppSelector", () => {
246
- const e = q({
245
+ ], rt = ue("sparkAppSelector", () => {
246
+ const e = U({
247
247
  apps: [...ge]
248
248
  }), s = (n = {}) => {
249
249
  if (n.apps && Array.isArray(n.apps)) {
@@ -273,7 +273,7 @@ const ms = { class: "flex items-center" }, hs = { class: "shrink-0 self-start" }
273
273
  return;
274
274
  }
275
275
  e.apps = [...ge];
276
- }, t = C(() => e.apps), o = (n) => {
276
+ }, t = $(() => e.apps), o = (n) => {
277
277
  if (!n) return null;
278
278
  const a = n.toLowerCase();
279
279
  return e.apps.find((c) => c.name.toLowerCase() === a) || null;
@@ -288,8 +288,8 @@ const ms = { class: "flex items-center" }, hs = { class: "shrink-0 self-start" }
288
288
  return a ? a.icon : "";
289
289
  }
290
290
  };
291
- }), rt = ue("sparkApp", () => {
292
- const e = q({
291
+ }), nt = ue("sparkApp", () => {
292
+ const e = U({
293
293
  app: "",
294
294
  homeRoute: "dashboard",
295
295
  showBrandSelector: !0,
@@ -301,13 +301,13 @@ const ms = { class: "flex items-center" }, hs = { class: "shrink-0 self-start" }
301
301
  e.app = t.app || "", e.homeRoute = t.homeRoute ?? "dashboard", e.showBrandSelector = t.showBrandSelector ?? !0, e.showAppSelector = t.showAppSelector ?? !0;
302
302
  }
303
303
  };
304
- }), bs = { class: "flex grow flex-col gap-y-5 overflow-y-auto bg-white rounded-lg" }, xs = { class: "flex flex-1 flex-col" }, ks = { class: "divide-y divide-gray-200" }, ws = { class: "flex px-[22px] py-2.5 text-[12px] items-center" }, _s = { class: "ml-auto flex items-center" }, Ss = ["href", "onClick"], Cs = { class: "gap-y-1" }, $s = { class: "text-base text-gray-800 flex items-center" }, Ts = { class: "font-medium" }, Ps = {
304
+ }), xs = { class: "flex grow flex-col gap-y-5 overflow-y-auto bg-white rounded-lg" }, ks = { class: "flex flex-1 flex-col" }, ws = { class: "divide-y divide-gray-200" }, _s = { class: "flex px-[22px] py-2.5 text-[12px] items-center" }, Ss = { class: "ml-auto flex items-center" }, Cs = ["href", "onClick"], $s = { class: "gap-y-1" }, Ts = { class: "text-base text-gray-800 flex items-center" }, Ps = { class: "font-medium" }, Ls = {
305
305
  key: 0,
306
306
  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"
307
- }, Ls = { class: "text-sm text-gray-500" }, Ms = { class: "ml-auto flex items-center" }, Hs = { class: "mt-auto" }, Vs = {
307
+ }, Ms = { class: "text-sm text-gray-500" }, Hs = { class: "ml-auto flex items-center" }, Vs = { class: "mt-auto" }, Rs = {
308
308
  key: 0,
309
309
  class: "p-6"
310
- }, Rs = {
310
+ }, Es = {
311
311
  key: 1,
312
312
  class: "bg-gray-50 p-6"
313
313
  }, As = {
@@ -324,7 +324,7 @@ const ms = { class: "flex items-center" }, hs = { class: "shrink-0 self-start" }
324
324
  },
325
325
  emits: ["close", "select"],
326
326
  setup(e, { emit: s }) {
327
- const t = s, o = at(), l = rt(), n = C(() => {
327
+ const t = s, o = rt(), l = nt(), n = $(() => {
328
328
  const c = l.state.app;
329
329
  return o.state.apps.map((r) => ({
330
330
  ...r,
@@ -335,14 +335,14 @@ const ms = { class: "flex items-center" }, hs = { class: "shrink-0 self-start" }
335
335
  };
336
336
  return (c, r) => {
337
337
  const i = O("font-awesome-icon");
338
- return m(), h("div", bs, [
339
- f("div", xs, [
340
- f("div", ks, [
341
- f("div", ws, [
338
+ return m(), h("div", xs, [
339
+ f("div", ks, [
340
+ f("div", ws, [
341
+ f("div", _s, [
342
342
  r[1] || (r[1] = f("div", null, "Mr Group Network", -1)),
343
- f("div", _s, [
343
+ f("div", Ss, [
344
344
  b(i, {
345
- icon: x(A).farTimes,
345
+ icon: k(A).farTimes,
346
346
  class: "h-[15px] w-[15px] shrink-0 text-gray-400 cursor-pointer",
347
347
  onClick: r[0] || (r[0] = (u) => t("close"))
348
348
  }, null, 8, ["icon"])
@@ -355,47 +355,47 @@ const ms = { class: "flex items-center" }, hs = { class: "shrink-0 self-start" }
355
355
  class: H([u.current ? "bg-gray-50" : "hover:bg-gray-50", "flex px-[22px] py-[15px] cursor-pointer"]),
356
356
  onClick: (d) => u.current ? d.preventDefault() : a(u)
357
357
  }, [
358
- f("div", Cs, [
359
- f("div", $s, [
360
- f("div", Ts, L(u.name), 1),
361
- u.current ? (m(), h("span", Ps, " Active ")) : P("", !0)
358
+ f("div", $s, [
359
+ f("div", Ts, [
360
+ f("div", Ps, M(u.name), 1),
361
+ u.current ? (m(), h("span", Ls, " Active ")) : L("", !0)
362
362
  ]),
363
- f("div", Ls, L(u.description), 1)
363
+ f("div", Ms, M(u.description), 1)
364
364
  ]),
365
- f("div", Ms, [
365
+ f("div", Hs, [
366
366
  b(i, {
367
367
  class: H([u.current ? "text-gray-700" : "text-gray-400", "h-5 w-5 shrink-0"]),
368
- icon: x(A)[u.icon]
368
+ icon: k(A)[u.icon]
369
369
  }, null, 8, ["class", "icon"])
370
370
  ])
371
- ], 10, Ss))), 128)),
371
+ ], 10, Cs))), 128)),
372
372
  r[2] || (r[2] = f("div", null, null, -1))
373
373
  ]),
374
- f("div", Hs, [
375
- c.$slots.bottom || e.bottomSlot ? (m(), h("div", Vs, [
374
+ f("div", Vs, [
375
+ c.$slots.bottom || e.bottomSlot ? (m(), h("div", Rs, [
376
376
  B(c.$slots, "bottom", {}, () => [
377
- e.bottomSlot ? (m(), V(N(e.bottomSlot), { key: 0 })) : P("", !0)
377
+ e.bottomSlot ? (m(), V(N(e.bottomSlot), { key: 0 })) : L("", !0)
378
378
  ])
379
- ])) : P("", !0),
380
- c.$slots.footer || e.footerSlot ? (m(), h("div", Rs, [
379
+ ])) : L("", !0),
380
+ c.$slots.footer || e.footerSlot ? (m(), h("div", Es, [
381
381
  B(c.$slots, "footer", {}, () => [
382
- e.footerSlot ? (m(), V(N(e.footerSlot), { key: 0 })) : P("", !0)
382
+ e.footerSlot ? (m(), V(N(e.footerSlot), { key: 0 })) : L("", !0)
383
383
  ])
384
- ])) : P("", !0)
384
+ ])) : L("", !0)
385
385
  ])
386
386
  ])
387
387
  ]);
388
388
  };
389
389
  }
390
- }, nt = {
390
+ }, lt = {
391
391
  success: 5e3,
392
392
  info: 5e3,
393
393
  warning: 5e3,
394
394
  danger: 0
395
395
  // sticky by default
396
396
  }, $e = ["top-left", "top-right", "center", "bottom-left", "bottom-right"];
397
- function Es() {
398
- const e = q({
397
+ function Fs() {
398
+ const e = U({
399
399
  isVisible: !1,
400
400
  type: "info",
401
401
  message: null,
@@ -420,14 +420,14 @@ function Es() {
420
420
  n();
421
421
  const {
422
422
  type: v = "info",
423
- message: k = null,
424
- component: $ = null,
423
+ message: x = null,
424
+ component: C = null,
425
425
  props: g = {},
426
- closeable: _ = !0,
427
- duration: w = null
426
+ closeable: w = !0,
427
+ duration: _ = null
428
428
  } = p;
429
- e.type = v, e.message = k, e.component = $ ? me($) : null, e.props = g, e.closeable = _, e.isVisible = !0;
430
- const y = w !== null ? w : nt[v];
429
+ e.type = v, e.message = x, e.component = C ? me(C) : null, e.props = g, e.closeable = w, e.isVisible = !0;
430
+ const y = _ !== null ? _ : lt[v];
431
431
  e.duration = y, y > 0 && c(y);
432
432
  },
433
433
  hide: a,
@@ -447,9 +447,9 @@ function Es() {
447
447
  }
448
448
  };
449
449
  }
450
- class Fs {
450
+ class Os {
451
451
  constructor() {
452
- this.outlets = /* @__PURE__ */ new Map(), this.toastState = q({
452
+ this.outlets = /* @__PURE__ */ new Map(), this.toastState = U({
453
453
  toasts: [],
454
454
  maxToasts: 3,
455
455
  defaultPosition: "bottom-right",
@@ -465,7 +465,7 @@ class Fs {
465
465
  * @returns {Object} Notification outlet instance
466
466
  */
467
467
  getOutlet(s = "default") {
468
- return this.outlets.has(s) || this.outlets.set(s, Es()), this.outlets.get(s);
468
+ return this.outlets.has(s) || this.outlets.set(s, Fs()), this.outlets.get(s);
469
469
  }
470
470
  /**
471
471
  * Show a banner notification in the specified outlet
@@ -559,7 +559,7 @@ class Fs {
559
559
  closeable: a = !0,
560
560
  duration: c = null,
561
561
  position: r = null
562
- } = s, i = ++this._toastIdCounter, u = r && $e.includes(r) ? r : this.toastState.defaultPosition, d = c !== null ? c : nt[t], p = {
562
+ } = s, i = ++this._toastIdCounter, u = r && $e.includes(r) ? r : this.toastState.defaultPosition, d = c !== null ? c : lt[t], p = {
563
563
  id: i,
564
564
  type: t,
565
565
  message: o,
@@ -569,14 +569,14 @@ class Fs {
569
569
  duration: d,
570
570
  position: u,
571
571
  createdAt: Date.now()
572
- }, v = this.toastState.toasts.filter((k) => k.position === u);
572
+ }, v = this.toastState.toasts.filter((x) => x.position === u);
573
573
  if (v.length >= this.toastState.maxToasts) {
574
- const k = this.toastState.newestOnTop ? v[v.length - 1] : v[0];
575
- this.hideToast(k.id);
574
+ const x = this.toastState.newestOnTop ? v[v.length - 1] : v[0];
575
+ this.hideToast(x.id);
576
576
  }
577
577
  if (this.toastState.newestOnTop) {
578
- const k = this.toastState.toasts.findIndex(($) => $.position === u);
579
- k === -1 ? this.toastState.toasts.push(p) : this.toastState.toasts.splice(k, 0, p);
578
+ const x = this.toastState.toasts.findIndex((C) => C.position === u);
579
+ x === -1 ? this.toastState.toasts.push(p) : this.toastState.toasts.splice(x, 0, p);
580
580
  } else
581
581
  this.toastState.toasts.push(p);
582
582
  return d > 0 && this._startToastTimer(i, d), i;
@@ -652,7 +652,7 @@ class Fs {
652
652
  t && (t.timeout && clearTimeout(t.timeout), this._toastTimers.delete(s));
653
653
  }
654
654
  }
655
- const X = new Fs(), Mn = {
655
+ const q = new Os(), En = {
656
656
  __name: "SparkNotificationOutlet",
657
657
  props: {
658
658
  name: {
@@ -661,7 +661,7 @@ const X = new Fs(), Mn = {
661
661
  }
662
662
  },
663
663
  setup(e) {
664
- const s = e, t = C(() => X.getOutlet(s.name)), o = F(0);
664
+ const s = e, t = $(() => q.getOutlet(s.name)), o = E(0);
665
665
  I(
666
666
  () => [t.value.state.message, t.value.state.component, t.value.state.type],
667
667
  () => {
@@ -669,13 +669,13 @@ const X = new Fs(), Mn = {
669
669
  }
670
670
  );
671
671
  const l = () => {
672
- X.hide(s.name);
672
+ q.hide(s.name);
673
673
  }, n = () => {
674
- X.pause(s.name);
674
+ q.pause(s.name);
675
675
  }, a = () => {
676
- X.resume(s.name);
676
+ q.resume(s.name);
677
677
  };
678
- return (c, r) => (m(), V(ut, {
678
+ return (c, r) => (m(), V(dt, {
679
679
  "enter-active-class": "transition-all duration-300 ease-out",
680
680
  "enter-from-class": "opacity-0 -translate-y-2",
681
681
  "enter-to-class": "opacity-100 translate-y-0",
@@ -694,38 +694,38 @@ const X = new Fs(), Mn = {
694
694
  onMouseleave: a
695
695
  }, {
696
696
  default: T(() => [
697
- t.value.state.component ? (m(), V(N(t.value.state.component), dt(Z({ key: 0 }, t.value.state.props)), null, 16)) : (m(), h(R, { key: 1 }, [
698
- E(L(t.value.state.message), 1)
697
+ t.value.state.component ? (m(), V(N(t.value.state.component), pt(Z({ key: 0 }, t.value.state.props)), null, 16)) : (m(), h(R, { key: 1 }, [
698
+ F(M(t.value.state.message), 1)
699
699
  ], 64))
700
700
  ]),
701
701
  _: 1
702
- }, 8, ["type", "closeable"])) : P("", !0)
702
+ }, 8, ["type", "closeable"])) : L("", !0)
703
703
  ]),
704
704
  _: 1
705
705
  }));
706
706
  }
707
- }, Os = { class: "fixed top-4 left-4 z-[2000] flex flex-col gap-3 max-w-sm w-full pointer-events-none" }, Bs = { class: "fixed top-4 right-4 z-[2000] flex flex-col gap-3 max-w-sm w-full pointer-events-none" }, Ds = { 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" }, zs = { class: "fixed bottom-4 left-4 z-[2000] flex flex-col-reverse gap-3 max-w-sm w-full pointer-events-none" }, js = { class: "fixed bottom-4 right-4 z-[2000] flex flex-col-reverse gap-3 max-w-sm w-full pointer-events-none" }, Hn = {
707
+ }, Bs = { class: "fixed top-4 left-4 z-[2000] flex flex-col gap-3 max-w-sm w-full pointer-events-none" }, Ds = { class: "fixed top-4 right-4 z-[2000] flex flex-col gap-3 max-w-sm w-full pointer-events-none" }, zs = { 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" }, js = { class: "fixed bottom-4 left-4 z-[2000] flex flex-col-reverse gap-3 max-w-sm w-full pointer-events-none" }, Is = { class: "fixed bottom-4 right-4 z-[2000] flex flex-col-reverse gap-3 max-w-sm w-full pointer-events-none" }, An = {
708
708
  __name: "SparkToastContainer",
709
709
  setup(e) {
710
- const s = X.toastState, t = C(
710
+ const s = q.toastState, t = $(
711
711
  () => s.toasts.filter((u) => u.position === "top-left")
712
- ), o = C(
712
+ ), o = $(
713
713
  () => s.toasts.filter((u) => u.position === "top-right")
714
- ), l = C(
714
+ ), l = $(
715
715
  () => s.toasts.filter((u) => u.position === "center")
716
- ), n = C(
716
+ ), n = $(
717
717
  () => s.toasts.filter((u) => u.position === "bottom-left")
718
- ), a = C(
718
+ ), a = $(
719
719
  () => s.toasts.filter((u) => u.position === "bottom-right")
720
720
  ), c = (u) => {
721
- X.hideToast(u);
721
+ q.hideToast(u);
722
722
  }, r = (u) => {
723
- X.pauseToast(u);
723
+ q.pauseToast(u);
724
724
  }, i = (u) => {
725
- X.resumeToast(u);
725
+ q.resumeToast(u);
726
726
  };
727
- return (u, d) => (m(), V(pt, { to: "body" }, [
728
- f("div", Os, [
727
+ return (u, d) => (m(), V(ft, { to: "body" }, [
728
+ f("div", Bs, [
729
729
  b(ie, {
730
730
  "enter-active-class": "transition-all duration-300 ease-out",
731
731
  "enter-from-class": "opacity-0 -translate-x-4",
@@ -751,7 +751,7 @@ const X = new Fs(), Mn = {
751
751
  key: 0,
752
752
  ref_for: !0
753
753
  }, p.props), null, 16)) : (m(), h(R, { key: 1 }, [
754
- E(L(p.message), 1)
754
+ F(M(p.message), 1)
755
755
  ], 64))
756
756
  ]),
757
757
  _: 2
@@ -761,7 +761,7 @@ const X = new Fs(), Mn = {
761
761
  _: 1
762
762
  })
763
763
  ]),
764
- f("div", Bs, [
764
+ f("div", Ds, [
765
765
  b(ie, {
766
766
  "enter-active-class": "transition-all duration-300 ease-out",
767
767
  "enter-from-class": "opacity-0 translate-x-4",
@@ -787,7 +787,7 @@ const X = new Fs(), Mn = {
787
787
  key: 0,
788
788
  ref_for: !0
789
789
  }, p.props), null, 16)) : (m(), h(R, { key: 1 }, [
790
- E(L(p.message), 1)
790
+ F(M(p.message), 1)
791
791
  ], 64))
792
792
  ]),
793
793
  _: 2
@@ -797,7 +797,7 @@ const X = new Fs(), Mn = {
797
797
  _: 1
798
798
  })
799
799
  ]),
800
- f("div", Ds, [
800
+ f("div", zs, [
801
801
  b(ie, {
802
802
  "enter-active-class": "transition-all duration-300 ease-out",
803
803
  "enter-from-class": "opacity-0 scale-95",
@@ -823,7 +823,7 @@ const X = new Fs(), Mn = {
823
823
  key: 0,
824
824
  ref_for: !0
825
825
  }, p.props), null, 16)) : (m(), h(R, { key: 1 }, [
826
- E(L(p.message), 1)
826
+ F(M(p.message), 1)
827
827
  ], 64))
828
828
  ]),
829
829
  _: 2
@@ -833,7 +833,7 @@ const X = new Fs(), Mn = {
833
833
  _: 1
834
834
  })
835
835
  ]),
836
- f("div", zs, [
836
+ f("div", js, [
837
837
  b(ie, {
838
838
  "enter-active-class": "transition-all duration-300 ease-out",
839
839
  "enter-from-class": "opacity-0 -translate-x-4",
@@ -859,7 +859,7 @@ const X = new Fs(), Mn = {
859
859
  key: 0,
860
860
  ref_for: !0
861
861
  }, p.props), null, 16)) : (m(), h(R, { key: 1 }, [
862
- E(L(p.message), 1)
862
+ F(M(p.message), 1)
863
863
  ], 64))
864
864
  ]),
865
865
  _: 2
@@ -869,7 +869,7 @@ const X = new Fs(), Mn = {
869
869
  _: 1
870
870
  })
871
871
  ]),
872
- f("div", js, [
872
+ f("div", Is, [
873
873
  b(ie, {
874
874
  "enter-active-class": "transition-all duration-300 ease-out",
875
875
  "enter-from-class": "opacity-0 translate-x-4",
@@ -895,7 +895,7 @@ const X = new Fs(), Mn = {
895
895
  key: 0,
896
896
  ref_for: !0
897
897
  }, p.props), null, 16)) : (m(), h(R, { key: 1 }, [
898
- E(L(p.message), 1)
898
+ F(M(p.message), 1)
899
899
  ], 64))
900
900
  ]),
901
901
  _: 2
@@ -907,10 +907,10 @@ const X = new Fs(), Mn = {
907
907
  ])
908
908
  ]));
909
909
  }
910
- }, lt = ue(
910
+ }, it = ue(
911
911
  "brandFilter",
912
912
  () => {
913
- const e = q({
913
+ const e = U({
914
914
  brands: []
915
915
  }), s = (n = {}) => {
916
916
  if (!n.brands || !Array.isArray(n.brands)) {
@@ -929,7 +929,7 @@ const X = new Fs(), Mn = {
929
929
  logo: r.logo,
930
930
  current: r.current || !1
931
931
  }));
932
- }, t = C(() => e.brands.find((n) => n.current) || null), o = C(() => e.brands);
932
+ }, t = $(() => e.brands.find((n) => n.current) || null), o = $(() => e.brands);
933
933
  return {
934
934
  state: e,
935
935
  initialize: s,
@@ -951,57 +951,57 @@ const X = new Fs(), Mn = {
951
951
  paths: ["state.brands"]
952
952
  }
953
953
  }
954
- ), Is = { class: "flex grow flex-col gap-y-5 overflow-y-auto bg-white rounded-lg" }, Ns = { class: "flex flex-1 flex-col" }, Zs = { class: "divide-y divide-gray-200" }, qs = { class: "flex px-[22px] py-2.5 text-[12px] items-center" }, Us = { class: "ml-auto flex items-center" }, Ks = {
954
+ ), Ns = { class: "flex grow flex-col gap-y-5 overflow-y-auto bg-white rounded-lg" }, Zs = { class: "flex flex-1 flex-col" }, qs = { class: "divide-y divide-gray-200" }, Us = { class: "flex px-[22px] py-2.5 text-[12px] items-center" }, Ks = { class: "ml-auto flex items-center" }, Gs = {
955
955
  key: 0,
956
956
  class: "flex px-[22px] py-[15px] text-gray-500 text-sm"
957
- }, Gs = ["onClick"], Ws = { class: "w-full gap-y-1 flex justify-between" }, Ys = { class: "flex flex-col" }, Xs = { class: "flex items-center" }, Js = { class: "font-medium text-base text-gray-900" }, Qs = {
957
+ }, Ws = ["onClick"], Ys = { class: "w-full gap-y-1 flex justify-between" }, Xs = { class: "flex flex-col" }, Js = { class: "flex items-center" }, Qs = { class: "font-medium text-base text-gray-900" }, eo = {
958
958
  key: 0,
959
959
  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"
960
- }, eo = { class: "text-sm text-gray-500 font-normal" }, to = { class: "flex items-center" }, so = ["src", "alt"], oo = {
960
+ }, to = { class: "text-sm text-gray-500 font-normal" }, so = { class: "flex items-center" }, oo = ["src", "alt"], ao = {
961
961
  __name: "SparkBrandSelector",
962
962
  emits: ["close", "select"],
963
963
  setup(e, { emit: s }) {
964
- const t = s, o = lt(), l = (n) => {
964
+ const t = s, o = it(), l = (n) => {
965
965
  t("select", n);
966
966
  };
967
967
  return (n, a) => {
968
968
  const c = O("font-awesome-icon");
969
- return m(), h("div", Is, [
970
- f("div", Ns, [
971
- f("div", Zs, [
972
- f("div", qs, [
969
+ return m(), h("div", Ns, [
970
+ f("div", Zs, [
971
+ f("div", qs, [
972
+ f("div", Us, [
973
973
  a[1] || (a[1] = f("div", null, "Filter by Brand", -1)),
974
- f("div", Us, [
974
+ f("div", Ks, [
975
975
  b(c, {
976
- icon: x(A).farTimes,
976
+ icon: k(A).farTimes,
977
977
  class: "size-4 text-gray-400 cursor-pointer",
978
978
  onClick: a[0] || (a[0] = (r) => t("close"))
979
979
  }, null, 8, ["icon"])
980
980
  ])
981
981
  ]),
982
- x(o).allBrands.length === 0 ? (m(), h("div", Ks, " No brands configured ")) : P("", !0),
983
- (m(!0), h(R, null, z(x(o).allBrands, (r) => (m(), h("div", {
982
+ k(o).allBrands.length === 0 ? (m(), h("div", Gs, " No brands configured ")) : L("", !0),
983
+ (m(!0), h(R, null, z(k(o).allBrands, (r) => (m(), h("div", {
984
984
  key: r.id,
985
985
  class: H([r.current ? "bg-gray-50" : "hover:bg-gray-50", "flex px-[22px] py-[15px] cursor-pointer"]),
986
986
  onClick: (i) => l(r)
987
987
  }, [
988
- f("div", Ws, [
989
- f("div", Ys, [
990
- f("div", Xs, [
991
- f("div", Js, L(r.name), 1),
992
- r.current ? (m(), h("span", Qs, " Current ")) : P("", !0)
988
+ f("div", Ys, [
989
+ f("div", Xs, [
990
+ f("div", Js, [
991
+ f("div", Qs, M(r.name), 1),
992
+ r.current ? (m(), h("span", eo, " Current ")) : L("", !0)
993
993
  ]),
994
- f("div", eo, L(r.current ? "Current Brand" : "Change to"), 1)
994
+ f("div", to, M(r.current ? "Current Brand" : "Change to"), 1)
995
995
  ]),
996
- f("div", to, [
996
+ f("div", so, [
997
997
  f("img", {
998
998
  src: r.logo,
999
999
  alt: `${r.name} logo`,
1000
1000
  class: "h-8 w-auto"
1001
- }, null, 8, so)
1001
+ }, null, 8, oo)
1002
1002
  ])
1003
1003
  ])
1004
- ], 10, Gs))), 128)),
1004
+ ], 10, Ws))), 128)),
1005
1005
  a[2] || (a[2] = f("div", null, null, -1))
1006
1006
  ]),
1007
1007
  a[3] || (a[3] = f("div", { class: "mt-auto" }, null, -1))
@@ -1009,7 +1009,7 @@ const X = new Fs(), Mn = {
1009
1009
  ]);
1010
1010
  };
1011
1011
  }
1012
- }, ao = ["disabled"], G = {
1012
+ }, ro = ["disabled"], Y = {
1013
1013
  __name: "SparkButton",
1014
1014
  props: {
1015
1015
  size: {
@@ -1032,7 +1032,7 @@ const X = new Fs(), Mn = {
1032
1032
  },
1033
1033
  emits: ["click"],
1034
1034
  setup(e) {
1035
- const s = e, t = F(null), o = Ee("buttonGroup", null), l = C(() => {
1035
+ const s = e, t = E(null), o = Fe("buttonGroup", null), l = $(() => {
1036
1036
  if (!o?.isInGroup || !t.value) return null;
1037
1037
  const r = o.getButtonIndex(t.value), i = o.getButtonCount();
1038
1038
  return {
@@ -1054,15 +1054,15 @@ const X = new Fs(), Mn = {
1054
1054
  }, a = (r, i) => {
1055
1055
  if (!i) return r;
1056
1056
  const u = r.split(" ").filter(Boolean), d = i.split(" ").filter(Boolean);
1057
- return [...u.filter((v) => !d.some((k) => {
1058
- const $ = Object.entries(n).find(
1059
- ([_, w]) => w.test(v)
1057
+ return [...u.filter((v) => !d.some((x) => {
1058
+ const C = Object.entries(n).find(
1059
+ ([w, _]) => _.test(v)
1060
1060
  )?.[0], g = Object.entries(n).find(
1061
- ([_, w]) => w.test(k)
1061
+ ([w, _]) => _.test(x)
1062
1062
  )?.[0];
1063
- return $ && $ === g;
1063
+ return C && C === g;
1064
1064
  })), ...d].join(" ");
1065
- }, c = C(() => {
1065
+ }, c = $(() => {
1066
1066
  let r = "", i = "";
1067
1067
  switch (s.size) {
1068
1068
  case "xs":
@@ -1119,13 +1119,13 @@ const X = new Fs(), Mn = {
1119
1119
  onClick: i[0] || (i[0] = (u) => r.$emit("click"))
1120
1120
  }, [
1121
1121
  B(r.$slots, "default")
1122
- ], 10, ao));
1122
+ ], 10, ro));
1123
1123
  }
1124
- }, ro = {
1124
+ }, no = {
1125
1125
  __name: "SparkButtonGroup",
1126
1126
  setup(e) {
1127
- const s = F(null);
1128
- return ft("buttonGroup", {
1127
+ const s = E(null);
1128
+ return mt("buttonGroup", {
1129
1129
  isInGroup: !0,
1130
1130
  getButtonIndex: (l) => s.value ? Array.from(s.value.children).indexOf(l) : -1,
1131
1131
  getButtonCount: () => s.value?.children.length || 0
@@ -1137,13 +1137,13 @@ const X = new Fs(), Mn = {
1137
1137
  B(l.$slots, "default")
1138
1138
  ], 512));
1139
1139
  }
1140
- }, no = { class: "divide-y divide-gray-300 rounded-lg border border-gray-300 text-gray-700 bg-gray-100" }, lo = {
1140
+ }, lo = { class: "divide-y divide-gray-300 rounded-lg border border-gray-300 text-gray-700 bg-gray-100" }, io = {
1141
1141
  key: 0,
1142
1142
  class: "px-[30px] py-5"
1143
- }, io = {
1143
+ }, co = {
1144
1144
  key: 1,
1145
1145
  class: "p-5"
1146
- }, Vn = {
1146
+ }, Fn = {
1147
1147
  __name: "SparkCard",
1148
1148
  props: {
1149
1149
  padded: {
@@ -1157,24 +1157,24 @@ const X = new Fs(), Mn = {
1157
1157
  },
1158
1158
  setup(e) {
1159
1159
  const s = e;
1160
- return (t, o) => (m(), h("div", no, [
1161
- t.$slots.header ? (m(), h("div", lo, [
1160
+ return (t, o) => (m(), h("div", lo, [
1161
+ t.$slots.header ? (m(), h("div", io, [
1162
1162
  B(t.$slots, "header")
1163
- ])) : P("", !0),
1163
+ ])) : L("", !0),
1164
1164
  f("div", {
1165
1165
  class: H([s.padded ? s.paddedClass : ""])
1166
1166
  }, [
1167
1167
  B(t.$slots, "default")
1168
1168
  ], 2),
1169
- t.$slots.footer ? (m(), h("div", io, [
1169
+ t.$slots.footer ? (m(), h("div", co, [
1170
1170
  B(t.$slots, "footer")
1171
- ])) : P("", !0)
1171
+ ])) : L("", !0)
1172
1172
  ]));
1173
1173
  }
1174
- }, co = { class: "px-4 pt-5 pb-4 sm:p-6" }, uo = {
1174
+ }, uo = { class: "px-4 pt-5 pb-4 sm:p-6" }, po = {
1175
1175
  key: 0,
1176
1176
  class: "text-lg font-medium text-gray-900"
1177
- }, po = {
1177
+ }, fo = {
1178
1178
  __name: "SparkModalDialog",
1179
1179
  props: {
1180
1180
  title: {
@@ -1224,7 +1224,7 @@ const X = new Fs(), Mn = {
1224
1224
  "input"
1225
1225
  ],
1226
1226
  setup(e) {
1227
- const s = e, t = C(() => !s.buttons || s.buttons.length === 0 ? [{ text: "OK", variant: "primary", event: "ok" }] : s.buttons), o = C(() => {
1227
+ const s = e, t = $(() => !s.buttons || s.buttons.length === 0 ? [{ text: "OK", variant: "primary", event: "ok" }] : s.buttons), o = $(() => {
1228
1228
  switch (t.value.length) {
1229
1229
  case 1:
1230
1230
  return "sm:grid sm:grid-flow-row-dense";
@@ -1240,12 +1240,12 @@ const X = new Fs(), Mn = {
1240
1240
  success: "farCheckCircle",
1241
1241
  warning: "farExclamationTriangle",
1242
1242
  danger: "farCircleXmark"
1243
- }, n = C(() => s.icon || l[s.type]), a = C(() => ({
1243
+ }, n = $(() => s.icon || l[s.type]), a = $(() => ({
1244
1244
  info: "bg-blue-100",
1245
1245
  success: "bg-green-100",
1246
1246
  warning: "bg-yellow-100",
1247
1247
  danger: "bg-red-100"
1248
- })[s.type]), c = C(() => ({
1248
+ })[s.type]), c = $(() => ({
1249
1249
  info: "text-blue-400",
1250
1250
  success: "text-green-400",
1251
1251
  warning: "text-yellow-400",
@@ -1253,35 +1253,35 @@ const X = new Fs(), Mn = {
1253
1253
  })[s.type]);
1254
1254
  return (r, i) => {
1255
1255
  const u = O("font-awesome-icon");
1256
- return m(), h("div", co, [
1256
+ return m(), h("div", uo, [
1257
1257
  n.value ? (m(), h("div", {
1258
1258
  key: 0,
1259
1259
  class: H(["mx-auto flex size-12 items-center justify-center rounded-full", a.value])
1260
1260
  }, [
1261
1261
  b(u, {
1262
- icon: x(A)[n.value],
1262
+ icon: k(A)[n.value],
1263
1263
  class: H(["h-5 w-5", c.value])
1264
1264
  }, null, 8, ["icon", "class"])
1265
- ], 2)) : P("", !0),
1265
+ ], 2)) : L("", !0),
1266
1266
  f("div", {
1267
1267
  class: H(["text-center", { "mt-3 sm:mt-5": n.value }])
1268
1268
  }, [
1269
- e.title ? (m(), h("h3", uo, L(e.title), 1)) : P("", !0),
1269
+ e.title ? (m(), h("h3", po, M(e.title), 1)) : L("", !0),
1270
1270
  e.message ? (m(), h("div", {
1271
1271
  key: 1,
1272
1272
  class: H([{ "mt-2": e.title }, "text-sm text-gray-500"])
1273
- }, L(e.message), 3)) : P("", !0)
1273
+ }, M(e.message), 3)) : L("", !0)
1274
1274
  ], 2),
1275
1275
  f("div", {
1276
1276
  class: H(["mt-5 sm:mt-6", o.value])
1277
1277
  }, [
1278
- (m(!0), h(R, null, z(t.value, (d, p) => (m(), V(x(G), {
1278
+ (m(!0), h(R, null, z(t.value, (d, p) => (m(), V(k(Y), {
1279
1279
  key: p,
1280
1280
  variant: d.variant,
1281
1281
  onClick: (v) => r.$emit(d.event, d)
1282
1282
  }, {
1283
1283
  default: T(() => [
1284
- E(L(d.text), 1)
1284
+ F(M(d.text), 1)
1285
1285
  ]),
1286
1286
  _: 2
1287
1287
  }, 1032, ["variant", "onClick"]))), 128))
@@ -1290,9 +1290,9 @@ const X = new Fs(), Mn = {
1290
1290
  };
1291
1291
  }
1292
1292
  };
1293
- class fo {
1293
+ class mo {
1294
1294
  constructor() {
1295
- this.state = q({
1295
+ this.state = U({
1296
1296
  isVisible: !1,
1297
1297
  content: null,
1298
1298
  props: {},
@@ -1327,7 +1327,7 @@ class fo {
1327
1327
  confirmVariant: r = "primary"
1328
1328
  } = s;
1329
1329
  this.show(
1330
- po,
1330
+ fo,
1331
1331
  {
1332
1332
  title: o,
1333
1333
  message: l,
@@ -1348,20 +1348,20 @@ class fo {
1348
1348
  );
1349
1349
  });
1350
1350
  }
1351
- const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto" }, ho = { class: "flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0" }, go = {
1351
+ const ae = new mo(), ho = { class: "fixed inset-0 z-10 w-screen overflow-y-auto" }, go = { class: "flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0" }, yo = {
1352
1352
  __name: "SparkModalContainer",
1353
1353
  setup(e) {
1354
- return (s, t) => (m(), V(x(et), {
1354
+ return (s, t) => (m(), V(k(tt), {
1355
1355
  as: "template",
1356
- show: x(ae).state.isVisible
1356
+ show: k(ae).state.isVisible
1357
1357
  }, {
1358
1358
  default: T(() => [
1359
- b(x(tt), {
1359
+ b(k(st), {
1360
1360
  class: "relative z-1000",
1361
- onClose: x(ae).hide
1361
+ onClose: k(ae).hide
1362
1362
  }, {
1363
1363
  default: T(() => [
1364
- b(x(fe), {
1364
+ b(k(fe), {
1365
1365
  as: "template",
1366
1366
  enter: "ease-out duration-300",
1367
1367
  "enter-from": "opacity-0",
@@ -1375,9 +1375,9 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1375
1375
  ])]),
1376
1376
  _: 1
1377
1377
  }),
1378
- f("div", mo, [
1379
- f("div", ho, [
1380
- b(x(fe), {
1378
+ f("div", ho, [
1379
+ f("div", go, [
1380
+ b(k(fe), {
1381
1381
  as: "template",
1382
1382
  enter: "ease-out duration-300",
1383
1383
  "enter-from": "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",
@@ -1387,9 +1387,9 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1387
1387
  "leave-to": "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
1388
1388
  }, {
1389
1389
  default: T(() => [
1390
- b(x(st), { 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" }, {
1390
+ b(k(ot), { 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" }, {
1391
1391
  default: T(() => [
1392
- (m(), V(N(x(ae).state.content), Z(x(ae).state.props, Fe(x(ae).state.eventHandlers)), null, 16))
1392
+ (m(), V(N(k(ae).state.content), Z(k(ae).state.props, Oe(k(ae).state.eventHandlers)), null, 16))
1393
1393
  ]),
1394
1394
  _: 1
1395
1395
  })
@@ -1405,7 +1405,7 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1405
1405
  _: 1
1406
1406
  }, 8, ["show"]));
1407
1407
  }
1408
- }, yo = { class: "fixed inset-0 flex" }, Te = {
1408
+ }, vo = { class: "fixed inset-0 flex" }, Te = {
1409
1409
  __name: "SparkOverlay",
1410
1410
  props: {
1411
1411
  position: {
@@ -1420,27 +1420,27 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1420
1420
  },
1421
1421
  emits: ["close"],
1422
1422
  setup(e, { emit: s }) {
1423
- const t = F(null), o = {
1423
+ const t = E(null), o = {
1424
1424
  xs: "w-[250px]",
1425
1425
  sm: "w-[300px]",
1426
1426
  md: "w-[450px]",
1427
1427
  lg: "w-[810px]",
1428
1428
  xl: "w-[1000px]"
1429
- }, l = e, n = s, a = C(() => o[l.overlayInstance.state.size] || o.md), c = () => {
1429
+ }, l = e, n = s, a = $(() => o[l.overlayInstance.state.size] || o.md), c = () => {
1430
1430
  l.overlayInstance.close(), n("close");
1431
1431
  };
1432
- return (r, i) => (m(), V(x(et), {
1432
+ return (r, i) => (m(), V(k(tt), {
1433
1433
  show: e.overlayInstance.state.isVisible,
1434
1434
  as: "template"
1435
1435
  }, {
1436
1436
  default: T(() => [
1437
- b(x(tt), {
1437
+ b(k(st), {
1438
1438
  initialFocus: t.value,
1439
1439
  class: "relative z-1000",
1440
1440
  onClose: c
1441
1441
  }, {
1442
1442
  default: T(() => [
1443
- b(x(fe), {
1443
+ b(k(fe), {
1444
1444
  as: "template",
1445
1445
  enter: "transition-opacity ease-linear duration-150",
1446
1446
  "enter-from": "opacity-0",
@@ -1454,8 +1454,8 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1454
1454
  ])]),
1455
1455
  _: 1
1456
1456
  }),
1457
- f("div", yo, [
1458
- b(x(fe), {
1457
+ f("div", vo, [
1458
+ b(k(fe), {
1459
1459
  as: "template",
1460
1460
  enter: "transition ease-in-out duration-150 transform",
1461
1461
  "enter-from": e.position === "left" ? "-translate-x-full opacity-0" : "translate-x-full opacity-0",
@@ -1465,7 +1465,7 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1465
1465
  "leave-to": e.position === "left" ? "-translate-x-full opacity-0" : "translate-x-full opacity-0"
1466
1466
  }, {
1467
1467
  default: T(() => [
1468
- b(x(st), {
1468
+ b(k(ot), {
1469
1469
  ref_key: "panelRef",
1470
1470
  ref: t,
1471
1471
  class: H([
@@ -1475,7 +1475,7 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1475
1475
  ])
1476
1476
  }, {
1477
1477
  default: T(() => [
1478
- (m(), V(N(e.overlayInstance.state.content), Z(e.overlayInstance.state.props, Fe(e.overlayInstance.state.eventHandlers)), null, 16))
1478
+ (m(), V(N(e.overlayInstance.state.content), Z(e.overlayInstance.state.props, Oe(e.overlayInstance.state.eventHandlers)), null, 16))
1479
1479
  ]),
1480
1480
  _: 1
1481
1481
  }, 8, ["class"])
@@ -1490,18 +1490,18 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1490
1490
  _: 1
1491
1491
  }, 8, ["show"]));
1492
1492
  }
1493
- }, vo = (e) => {
1493
+ }, bo = (e) => {
1494
1494
  if (e.includes(".")) {
1495
1495
  const s = e.split(".");
1496
1496
  e = s[s.length - 1];
1497
1497
  }
1498
1498
  return e.replace(/_/g, " ");
1499
- }, bo = (e, s, t) => {
1499
+ }, xo = (e, s, t) => {
1500
1500
  const o = s.querySelector(".relative");
1501
1501
  if (!o || o.querySelector(".spark-table-head-sorting"))
1502
1502
  return;
1503
1503
  const l = document.createElement("span");
1504
- l.classList.add("spark-table-head-sorting"), l.innerHTML = J({ prefix: "fad", iconName: "sort" }).html + J({ prefix: "fad", iconName: "sort-up" }).html + J({ prefix: "fad", iconName: "sort-down" }).html, o.appendChild(l), o.addEventListener("click", async () => {
1504
+ l.classList.add("spark-table-head-sorting"), l.innerHTML = Q({ prefix: "fad", iconName: "sort" }).html + Q({ prefix: "fad", iconName: "sort-up" }).html + Q({ prefix: "fad", iconName: "sort-down" }).html, o.appendChild(l), o.addEventListener("click", async () => {
1505
1505
  const n = t.params.orderBy, a = t.params.sortedBy;
1506
1506
  return n === e && a === "asc" ? (o.classList.remove("asc"), o.classList.add("desc"), t.methods.applyParams({
1507
1507
  orderBy: e,
@@ -1511,12 +1511,12 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1511
1511
  sortedBy: "asc"
1512
1512
  }));
1513
1513
  });
1514
- }, xo = (e, s, t) => {
1514
+ }, ko = (e, s, t) => {
1515
1515
  if (s.querySelector(".spark-table-head-filter"))
1516
1516
  return;
1517
1517
  const o = document.createElement("div"), l = document.createElement("input");
1518
1518
  l.type = "text", l.placeholder = "Filter...", o.className = "spark-table-head-filter", o.appendChild(l);
1519
- const n = ot(async (a, c) => {
1519
+ const n = at(async (a, c) => {
1520
1520
  const r = c.target.value, i = `filter[${a}]`;
1521
1521
  if (r)
1522
1522
  return t.params[i] && t.params[i] === r ? void 0 : t.methods.applyParams({
@@ -1526,19 +1526,19 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1526
1526
  await t.methods.removeParam(i);
1527
1527
  }, 200);
1528
1528
  l.addEventListener("keyup", (a) => n(e, a)), s.appendChild(o);
1529
- }, ko = (e, s, t) => {
1529
+ }, wo = (e, s, t) => {
1530
1530
  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");
1531
1531
  const l = e.querySelector(".colHeader");
1532
- l.classList.add("spark-table-head-title"), l.innerHTML = vo(s);
1533
- }, wo = (e, s, t) => {
1532
+ l.classList.add("spark-table-head-title"), l.innerHTML = bo(s);
1533
+ }, _o = (e, s, t) => {
1534
1534
  if (typeof e != "number")
1535
1535
  return e;
1536
1536
  if (e < 0)
1537
1537
  return;
1538
1538
  let o = 2;
1539
1539
  const l = t.methods.colToProp(e), n = t.methods.getSettingsForProp(l);
1540
- s.childElementCount === 1 && ((!n || !n.columnSort) && o--, (!n || !n.columnFilter) && o--, n && n.columnSort && bo(l, s, t), n && n.columnFilter && xo(l, s, t)), (s.childElementCount === o || o === 0) && ko(s, l, n);
1541
- }, _o = (e) => {
1540
+ s.childElementCount === 1 && ((!n || !n.columnSort) && o--, (!n || !n.columnFilter) && o--, n && n.columnSort && xo(l, s, t), n && n.columnFilter && ko(l, s, t)), (s.childElementCount === o || o === 0) && wo(s, l, n);
1541
+ }, So = (e) => {
1542
1542
  if (!e.hotInstance || !e.hotInstance.rootElement)
1543
1543
  return;
1544
1544
  const s = e.params.orderBy, t = e.params.sortedBy, o = e.hotInstance.rootElement.querySelectorAll("thead th.can-sort .relative");
@@ -1548,7 +1548,7 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1548
1548
  const n = l.closest("th"), a = Array.from(n.parentElement.children).indexOf(n);
1549
1549
  e.methods.colToProp(a) === s && l.classList.add(t);
1550
1550
  });
1551
- }, So = (e) => (s, t, o, l, n, a, c) => {
1551
+ }, Co = (e) => (s, t, o, l, n, a, c) => {
1552
1552
  t.innerHTML = "", t.classList.add("spark-table-cell-actions");
1553
1553
  const i = (c.rendererConfig || {}).actions || [];
1554
1554
  if (i.length === 0)
@@ -1559,19 +1559,19 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1559
1559
  return;
1560
1560
  const v = document.createElement("button");
1561
1561
  if (v.type = "button", v.classList.add("spark-table-action-button"), p.icon) {
1562
- const k = document.createElement("span");
1563
- k.innerHTML = J({ prefix: "far", iconName: p.icon }).html, k.classList.add("size-4"), v.appendChild(k);
1562
+ const x = document.createElement("span");
1563
+ x.innerHTML = Q({ prefix: "far", iconName: p.icon }).html, x.classList.add("size-4"), v.appendChild(x);
1564
1564
  }
1565
1565
  if (p.label) {
1566
- const k = document.createElement("span");
1567
- k.textContent = p.label, v.appendChild(k);
1566
+ const x = document.createElement("span");
1567
+ x.textContent = p.label, v.appendChild(x);
1568
1568
  }
1569
- v.addEventListener("click", async (k) => {
1570
- if (k.preventDefault(), k.stopPropagation(), p.confirm) {
1571
- const $ = typeof p.confirm == "string" ? p.confirm : `Are you sure you want to ${p.label?.toLowerCase() || "perform this action"}?`;
1569
+ v.addEventListener("click", async (x) => {
1570
+ if (x.preventDefault(), x.stopPropagation(), p.confirm) {
1571
+ const C = typeof p.confirm == "string" ? p.confirm : `Are you sure you want to ${p.label?.toLowerCase() || "perform this action"}?`;
1572
1572
  if (!await ae.confirm({
1573
1573
  title: p.confirmTitle,
1574
- message: $,
1574
+ message: C,
1575
1575
  type: p.confirmType,
1576
1576
  confirmText: p.confirmText,
1577
1577
  cancelText: p.cancelText,
@@ -1591,7 +1591,7 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1591
1591
  purple: "bg-purple-100 text-purple-800",
1592
1592
  pink: "bg-pink-100 text-pink-800",
1593
1593
  indigo: "bg-indigo-100 text-indigo-800"
1594
- }, Co = (e) => (s, t, o, l, n, a, c) => {
1594
+ }, $o = (e) => (s, t, o, l, n, a, c) => {
1595
1595
  if (t.innerHTML = "", t.classList.add("spark-table-cell-badge"), !a)
1596
1596
  return;
1597
1597
  const i = (c.rendererConfig || {}).colorMap || {}, u = i[a] || i[a?.toLowerCase()] || "gray", d = Pe[u] || Pe.gray, p = document.createElement("span");
@@ -1613,7 +1613,7 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1613
1613
  blue: { bg: "bg-blue-100", text: "text-blue-500" },
1614
1614
  gray: { bg: "bg-gray-100", text: "text-gray-500" },
1615
1615
  purple: { bg: "bg-purple-100", text: "text-purple-500" }
1616
- }, $o = (e) => {
1616
+ }, To = (e) => {
1617
1617
  if (e == null || e === "")
1618
1618
  return !1;
1619
1619
  if (typeof e == "boolean")
@@ -1625,24 +1625,24 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1625
1625
  return s === "1" || s === "yes" || s === "true";
1626
1626
  }
1627
1627
  return !1;
1628
- }, To = (e) => (s, t, o, l, n, a, c) => {
1628
+ }, Po = (e) => (s, t, o, l, n, a, c) => {
1629
1629
  t.innerHTML = "", t.classList.add("spark-table-cell-boolean");
1630
- const r = c.rendererConfig || {}, i = $o(a), u = i ? r.trueIcon || "check" : r.falseIcon || "xmark", d = i ? r.trueColor || "green" : r.falseColor || "red", p = r.size || 32, v = r.iconPrefix || "far", k = Le[d] || Le.gray;
1630
+ const r = c.rendererConfig || {}, i = To(a), u = i ? r.trueIcon || "check" : r.falseIcon || "xmark", d = i ? r.trueColor || "green" : r.falseColor || "red", p = r.size || 32, v = r.iconPrefix || "far", x = Le[d] || Le.gray;
1631
1631
  t.dataset.copyValue = i ? "true" : "false";
1632
- const $ = document.createElement("div");
1633
- $.classList.add(
1632
+ const C = document.createElement("div");
1633
+ C.classList.add(
1634
1634
  "inline-flex",
1635
1635
  "items-center",
1636
1636
  "justify-center",
1637
1637
  "rounded-full",
1638
- k.bg,
1639
- k.text
1640
- ), $.style.width = `${p}px`, $.style.height = `${p}px`;
1638
+ x.bg,
1639
+ x.text
1640
+ ), C.style.width = `${p}px`, C.style.height = `${p}px`;
1641
1641
  const g = document.createElement("span");
1642
- g.innerHTML = J({ prefix: v, iconName: u }).html, g.classList.add("flex", "items-center", "justify-center");
1643
- const _ = Math.round(p * 0.5);
1644
- g.style.fontSize = `${_}px`, $.appendChild(g), t.appendChild($);
1645
- }, Po = (e, s = 2) => {
1642
+ g.innerHTML = Q({ prefix: v, iconName: u }).html, g.classList.add("flex", "items-center", "justify-center");
1643
+ const w = Math.round(p * 0.5);
1644
+ g.style.fontSize = `${w}px`, C.appendChild(g), t.appendChild(C);
1645
+ }, Lo = (e, s = 2) => {
1646
1646
  const t = Number(e);
1647
1647
  if (isNaN(t)) return null;
1648
1648
  const o = t < 0, n = Math.abs(t).toLocaleString("en-AU", {
@@ -1650,21 +1650,21 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1650
1650
  maximumFractionDigits: s
1651
1651
  });
1652
1652
  return o ? `-$${n}` : `$${n}`;
1653
- }, Lo = (e) => (s, t, o, l, n, a, c) => {
1653
+ }, Mo = (e) => (s, t, o, l, n, a, c) => {
1654
1654
  t.innerHTML = "", t.classList.add("spark-table-cell-currency");
1655
1655
  const r = c.rendererConfig || {}, { decimals: i = 2, emptyText: u = "" } = r;
1656
1656
  if (a == null || a === "") {
1657
1657
  t.textContent = u;
1658
1658
  return;
1659
1659
  }
1660
- const d = Po(a, i);
1660
+ const d = Lo(a, i);
1661
1661
  if (d === null) {
1662
1662
  t.textContent = u;
1663
1663
  return;
1664
1664
  }
1665
1665
  const p = document.createElement("span");
1666
1666
  p.textContent = d, t.appendChild(p);
1667
- }, Mo = (e) => (s, t, o, l, n, a, c) => {
1667
+ }, Ho = (e) => (s, t, o, l, n, a, c) => {
1668
1668
  if (t.innerHTML = "", t.classList.add("spark-table-cell-link"), !a)
1669
1669
  return;
1670
1670
  const r = c.rendererConfig || {}, i = s.getSourceDataAtRow(s.toPhysicalRow(o));
@@ -1678,15 +1678,15 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1678
1678
  sm: "h-6 w-6",
1679
1679
  md: "h-8 w-8",
1680
1680
  lg: "h-12 w-12"
1681
- }, Ho = (e) => (s, t, o, l, n, a, c) => {
1681
+ }, Vo = (e) => (s, t, o, l, n, a, c) => {
1682
1682
  if (t.innerHTML = "", t.classList.add("spark-table-cell-image"), !a)
1683
1683
  return;
1684
1684
  const r = c.rendererConfig || {}, i = s.getSourceDataAtRow(s.toPhysicalRow(o)), u = r.size || "md", d = Me[u] || Me.md, p = r.rounded !== !1;
1685
1685
  let v = r.alt || "";
1686
1686
  typeof r.alt == "string" && i[r.alt] && (v = i[r.alt]);
1687
- const k = document.createElement("img");
1688
- k.src = a, k.alt = v, k.classList.add(...d.split(" "), "object-cover"), p ? k.classList.add("rounded-full") : k.classList.add("rounded"), t.appendChild(k);
1689
- }, Vo = (e) => (s, t, o, l, n, a, c) => {
1687
+ const x = document.createElement("img");
1688
+ x.src = a, x.alt = v, x.classList.add(...d.split(" "), "object-cover"), p ? x.classList.add("rounded-full") : x.classList.add("rounded"), t.appendChild(x);
1689
+ }, Ro = (e) => (s, t, o, l, n, a, c) => {
1690
1690
  if (t.innerHTML = "", t.classList.add("spark-table-cell-date"), !a)
1691
1691
  return;
1692
1692
  const r = c.rendererConfig || {}, i = r.format || "short", u = r.locale || "en-US";
@@ -1697,27 +1697,27 @@ const ae = new fo(), mo = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
1697
1697
  year: "numeric",
1698
1698
  month: "long",
1699
1699
  day: "numeric"
1700
- }) : i === "relative" ? d = Ro(v) : i === "datetime" ? d = v.toLocaleString(u) : d = v.toLocaleDateString(u);
1700
+ }) : i === "relative" ? d = Eo(v) : i === "datetime" ? d = v.toLocaleString(u) : d = v.toLocaleDateString(u);
1701
1701
  } catch (v) {
1702
1702
  console.error("Error formatting date:", v), d = a;
1703
1703
  }
1704
1704
  const p = document.createElement("span");
1705
1705
  p.textContent = d, t.appendChild(p);
1706
1706
  };
1707
- function Ro(e) {
1707
+ function Eo(e) {
1708
1708
  const t = /* @__PURE__ */ new Date() - e, o = Math.floor(Math.abs(t) / 1e3), l = Math.floor(o / 60), n = Math.floor(l / 60), a = Math.floor(n / 24), c = Math.floor(a / 30), r = Math.floor(a / 365), i = t > 0;
1709
1709
  return o < 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" : ""}` : a < 30 ? i ? `${a} day${a > 1 ? "s" : ""} ago` : `in ${a} day${a > 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" : ""}`;
1710
1710
  }
1711
1711
  const Ao = (e) => {
1712
1712
  const s = ["th", "st", "nd", "rd"], t = e % 100;
1713
1713
  return e + (s[(t - 20) % 10] || s[t] || s[0]);
1714
- }, j = (e, s = 2) => String(e).padStart(s, "0"), ye = /* @__PURE__ */ new Map(), Eo = (e, s) => {
1714
+ }, j = (e, s = 2) => String(e).padStart(s, "0"), ye = /* @__PURE__ */ new Map(), Fo = (e, s) => {
1715
1715
  const t = `${e}:${JSON.stringify(s)}`;
1716
1716
  return ye.has(t) || ye.set(t, new Intl.DateTimeFormat(e, s)), ye.get(t);
1717
1717
  }, ce = (e, s, t, o) => {
1718
- const a = Eo(s, t).formatToParts(e).find((c) => c.type === o);
1718
+ const a = Fo(s, t).formatToParts(e).find((c) => c.type === o);
1719
1719
  return a ? a.value : "";
1720
- }, Fo = (e) => e.epochMilliseconds !== void 0 ? new Date(e.epochMilliseconds) : new Date(
1720
+ }, Oo = (e) => e.epochMilliseconds !== void 0 ? new Date(e.epochMilliseconds) : new Date(
1721
1721
  e.year,
1722
1722
  e.month - 1,
1723
1723
  e.day,
@@ -1725,7 +1725,7 @@ const Ao = (e) => {
1725
1725
  e.minute || 0,
1726
1726
  e.second || 0,
1727
1727
  e.millisecond || 0
1728
- ), Oo = (e) => {
1728
+ ), Bo = (e) => {
1729
1729
  const s = e.hour || 0, t = s % 12 || 12, o = s >= 12;
1730
1730
  return {
1731
1731
  year: e.year,
@@ -1748,8 +1748,8 @@ const Ao = (e) => {
1748
1748
  return "";
1749
1749
  const t = Math.round(e.offsetNanoseconds / 6e10), o = t >= 0 ? "+" : "-", l = Math.abs(t), n = Math.floor(l / 60), a = l % 60;
1750
1750
  return s ? `${o}${j(n)}:${j(a)}` : `${o}${j(n)}${j(a)}`;
1751
- }, Bo = (e, s) => {
1752
- const t = Oo(e), o = Fo(e), l = t.dayOfWeek === 7 ? 0 : t.dayOfWeek;
1751
+ }, Do = (e, s) => {
1752
+ const t = Bo(e), o = Oo(e), l = t.dayOfWeek === 7 ? 0 : t.dayOfWeek;
1753
1753
  return [
1754
1754
  // Year
1755
1755
  ["YYYY", () => String(t.year)],
@@ -1795,7 +1795,7 @@ const Ao = (e) => {
1795
1795
  ["x", () => String(e.epochMilliseconds ?? o.getTime())],
1796
1796
  ["X", () => String(Math.floor((e.epochMilliseconds ?? o.getTime()) / 1e3))]
1797
1797
  ];
1798
- }, Do = (e, s, t = {}) => {
1798
+ }, zo = (e, s, t = {}) => {
1799
1799
  const { locale: o = "en-US" } = t;
1800
1800
  if (!e)
1801
1801
  return "";
@@ -1811,20 +1811,20 @@ const Ao = (e) => {
1811
1811
  } catch (r) {
1812
1812
  return console.error("Failed to parse date string:", e, r), e;
1813
1813
  }
1814
- const n = Bo(l, o), a = n.map(([r]) => r).join("|"), c = new RegExp(`\\[([^\\]]+)\\]|(${a})`, "g");
1814
+ const n = Do(l, o), a = n.map(([r]) => r).join("|"), c = new RegExp(`\\[([^\\]]+)\\]|(${a})`, "g");
1815
1815
  return s.replace(c, (r, i, u) => {
1816
1816
  if (i !== void 0)
1817
1817
  return i;
1818
1818
  const d = n.find(([p]) => p === u);
1819
1819
  return d ? d[1]() : r;
1820
1820
  });
1821
- }, zo = (e, s = {}) => {
1821
+ }, jo = (e, s = {}) => {
1822
1822
  const { fromTimezone: t, toTimezone: o } = s;
1823
1823
  if (!e)
1824
1824
  return null;
1825
1825
  const l = e.replace(" ", "T");
1826
1826
  return t && o ? Temporal.PlainDateTime.from(l).toZonedDateTime(t).withTimeZone(o) : t ? Temporal.PlainDateTime.from(l).toZonedDateTime(t) : Temporal.PlainDateTime.from(l);
1827
- }, jo = (e) => (s, t, o, l, n, a, c) => {
1827
+ }, Io = (e) => (s, t, o, l, n, a, c) => {
1828
1828
  t.innerHTML = "", t.classList.add("spark-table-cell-datetime");
1829
1829
  const r = c.rendererConfig || {}, {
1830
1830
  format: i = "DD MMM YYYY, HH:mm",
@@ -1838,22 +1838,22 @@ const Ao = (e) => {
1838
1838
  return;
1839
1839
  }
1840
1840
  try {
1841
- const k = zo(a, { fromTimezone: u, toTimezone: d });
1842
- if (!k) {
1841
+ const x = jo(a, { fromTimezone: u, toTimezone: d });
1842
+ if (!x) {
1843
1843
  t.textContent = v;
1844
1844
  return;
1845
1845
  }
1846
- const $ = Do(k, i, { locale: p }), g = document.createElement("span");
1847
- g.textContent = $, t.appendChild(g);
1848
- } catch (k) {
1849
- console.error("Error formatting datetime:", k, { value: a, format: i }), t.textContent = a;
1850
- }
1851
- }, Io = /* @__PURE__ */ new Map(), U = (e, s) => {
1852
- ds(e, (t, o, l, n, a, c, r) => {
1853
- ps.apply(null, [t, o, l, n, a, c, r]), s(t, o, l, n, a, c, r);
1854
- }), Io.set(e, s);
1855
- }, No = (e) => {
1856
- U("spark.actions", So(e)), U("spark.badge", Co()), U("spark.boolean", To()), U("spark.currency", Lo()), U("spark.link", Mo()), U("spark.image", Ho()), U("spark.date", Vo()), U("spark.datetime", jo()), U("style.capitalize", (s, t, o, l, n, a) => {
1846
+ const C = zo(x, i, { locale: p }), g = document.createElement("span");
1847
+ g.textContent = C, t.appendChild(g);
1848
+ } catch (x) {
1849
+ console.error("Error formatting datetime:", x, { value: a, format: i }), t.textContent = a;
1850
+ }
1851
+ }, No = /* @__PURE__ */ new Map(), K = (e, s) => {
1852
+ ps(e, (t, o, l, n, a, c, r) => {
1853
+ fs.apply(null, [t, o, l, n, a, c, r]), s(t, o, l, n, a, c, r);
1854
+ }), No.set(e, s);
1855
+ }, Zo = (e) => {
1856
+ K("spark.actions", Co(e)), K("spark.badge", $o()), K("spark.boolean", Po()), K("spark.currency", Mo()), K("spark.link", Ho()), K("spark.image", Vo()), K("spark.date", Ro()), K("spark.datetime", Io()), K("style.capitalize", (s, t, o, l, n, a) => {
1857
1857
  if (!a || a.length === 0) {
1858
1858
  t.innerText = "";
1859
1859
  return;
@@ -1861,14 +1861,14 @@ const Ao = (e) => {
1861
1861
  const c = document.createElement("span");
1862
1862
  c.innerHTML = a, c.classList.add("capitalize"), t.replaceChildren(c);
1863
1863
  });
1864
- }, Zo = () => {
1865
- }, qo = (e, s = {}) => {
1866
- const t = Q(), o = le(), l = s.namespace, n = l === null, a = s.syncToRoute !== !1, c = s.persistToStorage === !0, r = s.restoreOnMount !== !1, i = s.storageTTL || 7, u = n ? `spark-table:${o.path}` : `spark-table:${l}`, d = (y, S = "") => {
1867
- const M = {};
1864
+ }, qo = () => {
1865
+ }, Uo = (e, s = {}) => {
1866
+ const t = W(), o = le(), l = s.namespace, n = l === null, a = s.syncToRoute !== !1, c = s.persistToStorage === !0, r = s.restoreOnMount !== !1, i = s.storageTTL || 7, u = n ? `spark-table:${o.path}` : `spark-table:${l}`, d = (y, S = "") => {
1867
+ const P = {};
1868
1868
  return Object.keys(y).forEach((D) => {
1869
- const W = y[D], de = S ? `${S}[${D}]` : D;
1870
- W != null && (typeof W == "object" && !Array.isArray(W) ? Object.assign(M, d(W, de)) : M[de] = String(W));
1871
- }), M;
1869
+ const X = y[D], de = S ? `${S}[${D}]` : D;
1870
+ X != null && (typeof X == "object" && !Array.isArray(X) ? Object.assign(P, d(X, de)) : P[de] = String(X));
1871
+ }), P;
1872
1872
  }, p = () => {
1873
1873
  if (c)
1874
1874
  try {
@@ -1887,54 +1887,54 @@ const Ao = (e) => {
1887
1887
  if (!y) return null;
1888
1888
  const S = JSON.parse(y);
1889
1889
  if (i > 0) {
1890
- const M = Date.now() - S.timestamp, D = i * 24 * 60 * 60 * 1e3;
1891
- if (M > D)
1890
+ const P = Date.now() - S.timestamp, D = i * 24 * 60 * 60 * 1e3;
1891
+ if (P > D)
1892
1892
  return localStorage.removeItem(u), null;
1893
1893
  }
1894
1894
  return S.params;
1895
1895
  } catch (y) {
1896
1896
  return console.warn("Failed to load table state from localStorage:", y), null;
1897
1897
  }
1898
- }, k = () => {
1898
+ }, x = () => {
1899
1899
  try {
1900
1900
  localStorage.removeItem(u);
1901
1901
  } catch (y) {
1902
1902
  console.warn("Failed to clear table state from localStorage:", y);
1903
1903
  }
1904
- }, $ = () => {
1904
+ }, C = () => {
1905
1905
  if (!a) return;
1906
1906
  const y = { ...o.query };
1907
1907
  if (n) {
1908
- Object.keys(y).forEach((M) => {
1909
- g(M) && delete y[M];
1908
+ Object.keys(y).forEach((P) => {
1909
+ g(P) && delete y[P];
1910
1910
  });
1911
1911
  const S = d(e.params);
1912
1912
  Object.assign(y, S);
1913
1913
  } else {
1914
- Object.keys(y).forEach((M) => {
1915
- (M.startsWith(`${l}[`) || M === l) && delete y[M];
1914
+ Object.keys(y).forEach((P) => {
1915
+ (P.startsWith(`${l}[`) || P === l) && delete y[P];
1916
1916
  });
1917
1917
  const S = d(e.params, l);
1918
1918
  Object.assign(y, S);
1919
1919
  }
1920
1920
  t.replace({ query: y });
1921
- }, g = (y) => !!(["page", "limit", "search", "orderBy", "sortedBy"].includes(y) || y.includes("[")), _ = (y, S) => {
1921
+ }, g = (y) => !!(["page", "limit", "search", "orderBy", "sortedBy"].includes(y) || y.includes("[")), w = (y, S) => {
1922
1922
  if (["page", "limit"].includes(y) && S !== null && S !== void 0) {
1923
1923
  const D = parseInt(S, 10);
1924
1924
  return isNaN(D) ? S : D;
1925
1925
  }
1926
1926
  return S;
1927
- }, w = () => {
1927
+ }, _ = () => {
1928
1928
  if (n)
1929
1929
  Object.keys(o.query).forEach((y) => {
1930
- g(y) && (e.params[y] = _(y, o.query[y]));
1930
+ g(y) && (e.params[y] = w(y, o.query[y]));
1931
1931
  });
1932
1932
  else {
1933
1933
  const y = `${l}[`;
1934
1934
  Object.keys(o.query).forEach((S) => {
1935
1935
  if (S.startsWith(y)) {
1936
- const M = S.slice(y.length, -1);
1937
- e.params[M] = _(M, o.query[S]);
1936
+ const P = S.slice(y.length, -1);
1937
+ e.params[P] = w(P, o.query[S]);
1938
1938
  }
1939
1939
  });
1940
1940
  }
@@ -1942,7 +1942,7 @@ const Ao = (e) => {
1942
1942
  return I(
1943
1943
  () => e.params,
1944
1944
  () => {
1945
- a && $(), c && p();
1945
+ a && C(), c && p();
1946
1946
  },
1947
1947
  { deep: !0 }
1948
1948
  ), r && _e(() => {
@@ -1950,29 +1950,29 @@ const Ao = (e) => {
1950
1950
  if (a) {
1951
1951
  let S = !1;
1952
1952
  if (n)
1953
- S = Object.keys(o.query).some((M) => g(M));
1953
+ S = Object.keys(o.query).some((P) => g(P));
1954
1954
  else {
1955
- const M = `${l}[`;
1955
+ const P = `${l}[`;
1956
1956
  S = Object.keys(o.query).some(
1957
- (D) => D.startsWith(M)
1957
+ (D) => D.startsWith(P)
1958
1958
  );
1959
1959
  }
1960
- S && (y = !0, w());
1960
+ S && (y = !0, _());
1961
1961
  }
1962
1962
  if (!y && c) {
1963
1963
  const S = v();
1964
- S && Object.keys(S).length > 0 && (Object.keys(S).forEach((M) => {
1965
- S[M] = _(M, S[M]);
1964
+ S && Object.keys(S).length > 0 && (Object.keys(S).forEach((P) => {
1965
+ S[P] = w(P, S[P]);
1966
1966
  }), Object.assign(e.params, S));
1967
1967
  }
1968
1968
  }), {
1969
- syncToRoute: $,
1970
- restoreFromRoute: w,
1969
+ syncToRoute: C,
1970
+ restoreFromRoute: _,
1971
1971
  saveToStorage: p,
1972
1972
  loadFromStorage: v,
1973
- clearStorage: k
1973
+ clearStorage: x
1974
1974
  };
1975
- }, Uo = { class: "flex items-center gap-4 py-3" }, Ko = { class: "shrink-0" }, Go = { class: "text-sm text-gray-700" }, Wo = { class: "font-medium" }, Yo = { class: "font-medium" }, Xo = { class: "font-medium" }, Jo = {
1975
+ }, Ko = { class: "flex items-center gap-4 py-3" }, Go = { class: "shrink-0" }, Wo = { class: "text-sm text-gray-700" }, Yo = { class: "font-medium" }, Xo = { class: "font-medium" }, Jo = { class: "font-medium" }, Qo = {
1976
1976
  __name: "SparkTablePaginationDetails",
1977
1977
  props: {
1978
1978
  sparkTable: {
@@ -1983,28 +1983,28 @@ const Ao = (e) => {
1983
1983
  setup(e) {
1984
1984
  const s = e;
1985
1985
  return (t, o) => (m(), h("div", null, [
1986
- f("div", Uo, [
1987
- f("div", Ko, [
1988
- f("div", Go, [
1989
- o[0] || (o[0] = E(" Showing ", -1)),
1990
- f("span", Wo, L(s.sparkTable.response.meta.from), 1),
1991
- o[1] || (o[1] = E(" to ", -1)),
1992
- f("span", Yo, L(s.sparkTable.response.meta.to), 1),
1993
- o[2] || (o[2] = E(" of ", -1)),
1994
- f("span", Xo, L(s.sparkTable.response.meta.total), 1),
1995
- o[3] || (o[3] = E(" results ", -1))
1986
+ f("div", Ko, [
1987
+ f("div", Go, [
1988
+ f("div", Wo, [
1989
+ o[0] || (o[0] = F(" Showing ", -1)),
1990
+ f("span", Yo, M(s.sparkTable.response.meta.from), 1),
1991
+ o[1] || (o[1] = F(" to ", -1)),
1992
+ f("span", Xo, M(s.sparkTable.response.meta.to), 1),
1993
+ o[2] || (o[2] = F(" of ", -1)),
1994
+ f("span", Jo, M(s.sparkTable.response.meta.total), 1),
1995
+ o[3] || (o[3] = F(" results ", -1))
1996
1996
  ])
1997
1997
  ])
1998
1998
  ])
1999
1999
  ]));
2000
2000
  }
2001
- }, Qo = { class: "flex items-center gap-4 px-4 py-3" }, ea = {
2001
+ }, ea = { class: "flex items-center gap-4 px-4 py-3" }, ta = {
2002
2002
  key: 0,
2003
2003
  class: "shrink-0 ml-auto"
2004
- }, ta = {
2004
+ }, sa = {
2005
2005
  class: "isolate inline-flex -space-x-px rounded-md shadow-xs bg-white",
2006
2006
  "aria-label": "Pagination"
2007
- }, sa = ["onClick"], oa = {
2007
+ }, oa = ["onClick"], aa = {
2008
2008
  __name: "SparkTablePaginationPaging",
2009
2009
  props: {
2010
2010
  sparkTable: {
@@ -2020,26 +2020,26 @@ const Ao = (e) => {
2020
2020
  u < 1 || u > t.sparkTable.response.meta.last_page || o("paginate", {
2021
2021
  page: u
2022
2022
  });
2023
- }, a = C(() => t.sparkTable.params.page ? Math.ceil(t.sparkTable.params.page / 10) * 10 : 1), c = C(() => t.sparkTable.computed.ready ? ss(
2023
+ }, a = $(() => t.sparkTable.params.page ? Math.ceil(t.sparkTable.params.page / 10) * 10 : 1), c = $(() => t.sparkTable.computed.ready ? os(
2024
2024
  Math.floor((a.value - 1) / 10) * 10 + 1,
2025
2025
  a.value > t.sparkTable.response.meta.last_page ? t.sparkTable.response.meta.last_page + 1 : a.value + 1
2026
- ) : []), r = C(
2027
- () => t.sparkTable.params.page < Y(t.sparkTable.response.meta, "last_page", 1)
2028
- ), i = C(() => t.sparkTable.params.page > 1);
2026
+ ) : []), r = $(
2027
+ () => t.sparkTable.params.page < J(t.sparkTable.response.meta, "last_page", 1)
2028
+ ), i = $(() => t.sparkTable.params.page > 1);
2029
2029
  return (u, d) => {
2030
2030
  const p = O("font-awesome-icon");
2031
2031
  return m(), h("div", null, [
2032
- f("div", Qo, [
2033
- c.value.length > 1 ? (m(), h("div", ea, [
2032
+ f("div", ea, [
2033
+ c.value.length > 1 ? (m(), h("div", ta, [
2034
2034
  f("div", null, [
2035
- f("nav", ta, [
2035
+ f("nav", sa, [
2036
2036
  f("a", {
2037
2037
  class: H([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"]),
2038
2038
  href: "#",
2039
2039
  onClick: d[0] || (d[0] = ee((v) => l(-1), ["prevent"]))
2040
2040
  }, [
2041
2041
  b(p, {
2042
- icon: x(A).farChevronLeft,
2042
+ icon: k(A).farChevronLeft,
2043
2043
  class: "size-5"
2044
2044
  }, null, 8, ["icon"])
2045
2045
  ], 2),
@@ -2050,21 +2050,21 @@ const Ao = (e) => {
2050
2050
  "relative inline-flex items-center px-4 py-[9px] text-sm font-semibold ring-1 ring-inset",
2051
2051
  e.sparkTable.params.page === v ? "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"
2052
2052
  ]),
2053
- onClick: (k) => n(v)
2054
- }, L(v), 11, sa))), 128)),
2053
+ onClick: (x) => n(v)
2054
+ }, M(v), 11, oa))), 128)),
2055
2055
  f("a", {
2056
2056
  class: H([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"]),
2057
2057
  onClick: d[1] || (d[1] = ee((v) => l(1), ["prevent"])),
2058
2058
  href: "#"
2059
2059
  }, [
2060
2060
  b(p, {
2061
- icon: x(A).farChevronRight,
2061
+ icon: k(A).farChevronRight,
2062
2062
  class: "size-5"
2063
2063
  }, null, 8, ["icon"])
2064
2064
  ], 2)
2065
2065
  ])
2066
2066
  ])
2067
- ])) : P("", !0)
2067
+ ])) : L("", !0)
2068
2068
  ])
2069
2069
  ]);
2070
2070
  };
@@ -2074,7 +2074,7 @@ const Ao = (e) => {
2074
2074
  for (const [o, l] of s)
2075
2075
  t[o] = l;
2076
2076
  return t;
2077
- }, aa = { class: "spark-table-pagination-per-page" }, ra = {
2077
+ }, ra = { class: "spark-table-pagination-per-page" }, na = {
2078
2078
  __name: "SparkTablePaginationPerPage",
2079
2079
  props: {
2080
2080
  sparkTable: {
@@ -2084,7 +2084,7 @@ const Ao = (e) => {
2084
2084
  },
2085
2085
  emits: ["paginate"],
2086
2086
  setup(e, { emit: s }) {
2087
- const t = e, o = s, l = C(() => t.sparkTable.options.perPages.map((a) => ({
2087
+ const t = e, o = s, l = $(() => t.sparkTable.options.perPages.map((a) => ({
2088
2088
  label: String(a),
2089
2089
  value: a
2090
2090
  }))), n = (a) => {
@@ -2095,7 +2095,7 @@ const Ao = (e) => {
2095
2095
  };
2096
2096
  return (a, c) => {
2097
2097
  const r = O("FormKit");
2098
- return m(), h("div", aa, [
2098
+ return m(), h("div", ra, [
2099
2099
  b(r, {
2100
2100
  "model-value": e.sparkTable.params.limit,
2101
2101
  type: "select",
@@ -2108,7 +2108,7 @@ const Ao = (e) => {
2108
2108
  ]);
2109
2109
  };
2110
2110
  }
2111
- }, na = /* @__PURE__ */ te(ra, [["__scopeId", "data-v-9ef8544b"]]), Ve = {
2111
+ }, la = /* @__PURE__ */ te(na, [["__scopeId", "data-v-9ef8544b"]]), Ve = {
2112
2112
  __name: "SparkTableToolbar",
2113
2113
  props: {
2114
2114
  position: {
@@ -2118,7 +2118,7 @@ const Ao = (e) => {
2118
2118
  }
2119
2119
  },
2120
2120
  setup(e) {
2121
- const s = e, t = Oe(), o = C(() => !!t.default), l = C(() => {
2121
+ const s = e, t = Be(), o = $(() => !!t.default), l = $(() => {
2122
2122
  const n = "spark-table-toolbar flex flex-wrap items-center gap-x-5 w-full";
2123
2123
  return s.position === "footer" ? `${n} spark-table-toolbar-footer justify-between` : `${n} spark-table-toolbar-header gap-y-5 py-5`;
2124
2124
  });
@@ -2127,9 +2127,9 @@ const Ao = (e) => {
2127
2127
  class: H(l.value)
2128
2128
  }, [
2129
2129
  B(n.$slots, "default")
2130
- ], 2)) : P("", !0);
2130
+ ], 2)) : L("", !0);
2131
2131
  }
2132
- }, la = { class: "spark-table-search" }, ia = {
2132
+ }, ia = { class: "spark-table-search" }, ca = {
2133
2133
  __name: "SparkTableSearch",
2134
2134
  props: {
2135
2135
  /** SparkTable instance object */
@@ -2148,11 +2148,11 @@ const Ao = (e) => {
2148
2148
  }
2149
2149
  },
2150
2150
  setup(e) {
2151
- const s = e, t = F(""), o = s.config.param || "search";
2151
+ const s = e, t = E(""), o = s.config.param || "search";
2152
2152
  s.sparkTable.params[o] ? t.value = s.sparkTable.params[o] : s.config.initialValue && (t.value = s.config.initialValue, s.sparkTable.methods.applyParams({
2153
2153
  [o]: s.config.initialValue
2154
2154
  }));
2155
- const l = ot((a) => {
2155
+ const l = at((a) => {
2156
2156
  a ? s.sparkTable.methods.applyParams({
2157
2157
  page: 1,
2158
2158
  [o]: a
@@ -2169,12 +2169,12 @@ const Ao = (e) => {
2169
2169
  }
2170
2170
  ), (a, c) => {
2171
2171
  const r = O("FormKit");
2172
- return m(), h("div", la, [
2172
+ return m(), h("div", ia, [
2173
2173
  b(r, Z({
2174
2174
  modelValue: t.value,
2175
2175
  "onUpdate:modelValue": c[0] || (c[0] = (i) => t.value = i),
2176
2176
  type: "text",
2177
- placeholder: x(n),
2177
+ placeholder: k(n),
2178
2178
  suffixIcon: "search",
2179
2179
  "outer-class": "!mb-0",
2180
2180
  "wrapper-class": "!mb-0",
@@ -2183,7 +2183,7 @@ const Ao = (e) => {
2183
2183
  ]);
2184
2184
  };
2185
2185
  }
2186
- }, ca = /* @__PURE__ */ te(ia, [["__scopeId", "data-v-976170dc"]]), ua = { class: "spark-table-filter-select" }, da = {
2186
+ }, ua = /* @__PURE__ */ te(ca, [["__scopeId", "data-v-976170dc"]]), da = { class: "spark-table-filter-select" }, pa = {
2187
2187
  __name: "SparkTableFilterSelect",
2188
2188
  props: {
2189
2189
  /** SparkTable instance object */
@@ -2199,11 +2199,11 @@ const Ao = (e) => {
2199
2199
  }
2200
2200
  },
2201
2201
  setup(e) {
2202
- const s = e, t = F(""), o = s.config.param || `filter[${s.config.key}]`;
2202
+ const s = e, t = E(""), o = s.config.param || `filter[${s.config.key}]`;
2203
2203
  s.sparkTable.params[o] ? t.value = s.sparkTable.params[o] : s.config.initialValue !== void 0 && s.config.initialValue !== null && (t.value = s.config.initialValue, s.sparkTable.methods.applyParams({
2204
2204
  [o]: s.config.initialValue
2205
2205
  }));
2206
- const l = s.config.label || null, n = C(() => [
2206
+ const l = s.config.label || null, n = $(() => [
2207
2207
  { label: s.config.placeholder || "All", value: "" },
2208
2208
  ...s.config.options
2209
2209
  ]);
@@ -2219,12 +2219,12 @@ const Ao = (e) => {
2219
2219
  }
2220
2220
  ), (a, c) => {
2221
2221
  const r = O("FormKit");
2222
- return m(), h("div", ua, [
2222
+ return m(), h("div", da, [
2223
2223
  b(r, Z({
2224
2224
  modelValue: t.value,
2225
2225
  "onUpdate:modelValue": c[0] || (c[0] = (i) => t.value = i),
2226
2226
  type: "select",
2227
- label: x(l),
2227
+ label: k(l),
2228
2228
  options: n.value,
2229
2229
  placeholder: e.config.placeholder || "All",
2230
2230
  "outer-class": "!mb-0",
@@ -2233,10 +2233,10 @@ const Ao = (e) => {
2233
2233
  ]);
2234
2234
  };
2235
2235
  }
2236
- }, pa = /* @__PURE__ */ te(da, [["__scopeId", "data-v-642dbc69"]]), fa = { class: "spark-table-filter-buttons" }, ma = {
2236
+ }, fa = /* @__PURE__ */ te(pa, [["__scopeId", "data-v-642dbc69"]]), ma = { class: "spark-table-filter-buttons" }, ha = {
2237
2237
  key: 0,
2238
2238
  class: "spark-table-filter-buttons-label"
2239
- }, ha = {
2239
+ }, ga = {
2240
2240
  __name: "SparkTableFilterButtons",
2241
2241
  props: {
2242
2242
  /** SparkTable instance object */
@@ -2252,7 +2252,7 @@ const Ao = (e) => {
2252
2252
  }
2253
2253
  },
2254
2254
  setup(e) {
2255
- const s = e, t = F(null), o = s.config.label || null, l = s.config.param || `filter[${s.config.key}]`;
2255
+ const s = e, t = E(null), o = s.config.label || null, l = s.config.param || `filter[${s.config.key}]`;
2256
2256
  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({
2257
2257
  [l]: s.config.initialValue
2258
2258
  }));
@@ -2267,11 +2267,11 @@ const Ao = (e) => {
2267
2267
  (c) => {
2268
2268
  (c == null || c === "") && t.value ? t.value = null : c !== t.value && (t.value = c);
2269
2269
  }
2270
- ), (c, r) => (m(), h("div", fa, [
2271
- x(o) ? (m(), h("span", ma, L(x(o)), 1)) : P("", !0),
2272
- b(ro, { class: "isolate" }, {
2270
+ ), (c, r) => (m(), h("div", ma, [
2271
+ k(o) ? (m(), h("span", ha, M(k(o)), 1)) : L("", !0),
2272
+ b(no, { class: "isolate" }, {
2273
2273
  default: T(() => [
2274
- (m(!0), h(R, null, z(e.config.options, (i) => (m(), V(G, {
2274
+ (m(!0), h(R, null, z(e.config.options, (i) => (m(), V(Y, {
2275
2275
  key: i.value,
2276
2276
  size: "xl",
2277
2277
  "button-class": "px-3.5",
@@ -2279,7 +2279,7 @@ const Ao = (e) => {
2279
2279
  onClick: (u) => a(i.value)
2280
2280
  }, {
2281
2281
  default: T(() => [
2282
- E(L(i.label), 1)
2282
+ F(M(i.label), 1)
2283
2283
  ]),
2284
2284
  _: 2
2285
2285
  }, 1032, ["variant", "onClick"]))), 128))
@@ -2288,7 +2288,7 @@ const Ao = (e) => {
2288
2288
  })
2289
2289
  ]));
2290
2290
  }
2291
- }, ga = /* @__PURE__ */ te(ha, [["__scopeId", "data-v-01a49899"]]), ya = { class: "spark-table-date-picker" }, va = {
2291
+ }, ya = /* @__PURE__ */ te(ga, [["__scopeId", "data-v-01a49899"]]), va = { class: "spark-table-date-picker" }, ba = {
2292
2292
  __name: "SparkTableDatePicker",
2293
2293
  props: {
2294
2294
  /** SparkTable instance object */
@@ -2304,7 +2304,7 @@ const Ao = (e) => {
2304
2304
  }
2305
2305
  },
2306
2306
  setup(e) {
2307
- const s = e, t = F(null), o = s.config.label || null, l = s.config.param || `filter[${s.config.key}]`, n = F(`${l}-0`);
2307
+ const s = e, t = E(null), o = s.config.label || null, l = s.config.param || `filter[${s.config.key}]`, n = E(`${l}-0`);
2308
2308
  return s.sparkTable.params[l] ? t.value = s.sparkTable.params[l] : s.config.initialValue ? (t.value = s.config.initialValue, s.sparkTable.methods.applyParams({
2309
2309
  [l]: s.config.initialValue
2310
2310
  })) : t.value = null, I(t, (a) => {
@@ -2323,14 +2323,14 @@ const Ao = (e) => {
2323
2323
  }
2324
2324
  ), (a, c) => {
2325
2325
  const r = O("FormKit");
2326
- return m(), h("div", ya, [
2326
+ return m(), h("div", va, [
2327
2327
  (m(), V(r, Z({
2328
2328
  key: n.value,
2329
2329
  modelValue: t.value,
2330
2330
  "onUpdate:modelValue": c[0] || (c[0] = (i) => t.value = i),
2331
2331
  type: "datepicker",
2332
2332
  "picker-only": "",
2333
- label: x(o),
2333
+ label: k(o),
2334
2334
  placeholder: e.config.placeholder || "Select date",
2335
2335
  overlay: !0,
2336
2336
  "value-format": "YYYY-MM-DD",
@@ -2341,7 +2341,7 @@ const Ao = (e) => {
2341
2341
  ]);
2342
2342
  };
2343
2343
  }
2344
- }, ba = /* @__PURE__ */ te(va, [["__scopeId", "data-v-44ef9cb8"]]), xa = { class: "spark-table-reset" }, ka = { key: 1 }, wa = {
2344
+ }, xa = /* @__PURE__ */ te(ba, [["__scopeId", "data-v-44ef9cb8"]]), ka = { class: "spark-table-reset" }, wa = { key: 1 }, _a = {
2345
2345
  __name: "SparkTableReset",
2346
2346
  props: {
2347
2347
  /** SparkTable instance object */
@@ -2379,8 +2379,8 @@ const Ao = (e) => {
2379
2379
  };
2380
2380
  return (o, l) => {
2381
2381
  const n = O("font-awesome-icon");
2382
- return m(), h("div", xa, [
2383
- b(G, {
2382
+ return m(), h("div", ka, [
2383
+ b(Y, {
2384
2384
  onClick: t,
2385
2385
  variant: "secondary",
2386
2386
  "button-class": "px-3.5",
@@ -2391,24 +2391,24 @@ const Ao = (e) => {
2391
2391
  key: 0,
2392
2392
  icon: ["far", e.config.icon],
2393
2393
  class: H({ "mr-1.5": e.config.label })
2394
- }, null, 8, ["icon", "class"])) : P("", !0),
2395
- e.config.label ? (m(), h("span", ka, L(e.config.label), 1)) : P("", !0)
2394
+ }, null, 8, ["icon", "class"])) : L("", !0),
2395
+ e.config.label ? (m(), h("span", wa, M(e.config.label), 1)) : L("", !0)
2396
2396
  ]),
2397
2397
  _: 1
2398
2398
  })
2399
2399
  ]);
2400
2400
  };
2401
2401
  }
2402
- }, _a = /* @__PURE__ */ te(wa, [["__scopeId", "data-v-0894e3bf"]]), Sa = { class: "spark-table" }, Ca = {
2402
+ }, Sa = /* @__PURE__ */ te(_a, [["__scopeId", "data-v-0894e3bf"]]), Ca = { class: "spark-table" }, $a = {
2403
2403
  key: 1,
2404
2404
  class: "pt-5"
2405
- }, $a = {
2405
+ }, Ta = {
2406
2406
  key: 2,
2407
2407
  class: "flex flex-col items-center justify-center py-16 text-gray-500 rounded-md border border-gray-300 bg-white"
2408
- }, Ta = { class: "flex items-center gap-x-3 ml-auto" }, we = {
2408
+ }, Pa = { class: "flex items-center gap-x-3 ml-auto" }, we = {
2409
2409
  perPages: [15, 30, 50, 100, 200, 500],
2410
2410
  limit: 15
2411
- }, Pa = {
2411
+ }, La = {
2412
2412
  page: 1,
2413
2413
  limit: we.limit
2414
2414
  }, Re = {
@@ -2421,7 +2421,7 @@ const Ao = (e) => {
2421
2421
  tableClassName: "spark-table-table",
2422
2422
  readOnlyCellClassName: "read-only",
2423
2423
  licenseKey: "non-commercial-and-evaluation"
2424
- }, Rn = {
2424
+ }, On = {
2425
2425
  __name: "SparkTable",
2426
2426
  props: {
2427
2427
  url: {
@@ -2433,7 +2433,7 @@ const Ao = (e) => {
2433
2433
  dataTransformer: {
2434
2434
  type: Function,
2435
2435
  default: (e, s) => ({
2436
- data: Y(s.settings, "nestedHeaders") ? e.data.data.map((o) => (s.settings.columnKeys || []).map((n) => o[n])) : e.data.data,
2436
+ data: J(s.settings, "nestedHeaders") ? e.data.data.map((o) => (s.settings.columnKeys || []).map((n) => o[n])) : e.data.data,
2437
2437
  meta: {
2438
2438
  last_page: e.data.last_page,
2439
2439
  from: e.data.from,
@@ -2445,7 +2445,7 @@ const Ao = (e) => {
2445
2445
  params: {
2446
2446
  type: Object,
2447
2447
  default() {
2448
- return Pa;
2448
+ return La;
2449
2449
  }
2450
2450
  },
2451
2451
  options: {
@@ -2486,18 +2486,18 @@ const Ao = (e) => {
2486
2486
  ],
2487
2487
  setup(e, { expose: s, emit: t }) {
2488
2488
  const o = e;
2489
- us(), pe(ns), pe(ls), pe(is), Y(o, "settings.nestedHeaders") && pe(cs);
2490
- const l = t, n = Ee("axios"), a = F(null), c = F(!1), r = F(null);
2489
+ ds(), pe(ls), pe(is), pe(cs), J(o, "settings.nestedHeaders") && pe(us);
2490
+ const l = t, n = Fe("axios"), a = E(null), c = E(!1), r = E(null);
2491
2491
  let i = !1;
2492
2492
  const u = {
2493
- search: ca,
2494
- filterSelect: pa,
2495
- filterButtons: ga,
2496
- datePicker: ba,
2497
- reset: _a
2498
- }, d = q({
2493
+ search: ua,
2494
+ filterSelect: fa,
2495
+ filterButtons: ya,
2496
+ datePicker: xa,
2497
+ reset: Sa
2498
+ }, d = U({
2499
2499
  hotInstance: null,
2500
- url: C(() => o.url),
2500
+ url: $(() => o.url),
2501
2501
  plugins: o.plugins,
2502
2502
  response: {},
2503
2503
  params: {
@@ -2532,15 +2532,15 @@ const Ao = (e) => {
2532
2532
  }
2533
2533
  if (i) return;
2534
2534
  d.hotInstance.updateData(d.response.data), d.options.callback && typeof d.options.callback == "function" && await d.options.callback();
2535
- const _ = d.hotInstance.getPlugin("autoColumnSize");
2536
- Y(o.settings, "columns", []).forEach((y, S) => {
2537
- y.width || _.calculateColumnsWidth(S, S, !0);
2535
+ const w = d.hotInstance.getPlugin("autoColumnSize");
2536
+ J(o.settings, "columns", []).forEach((y, S) => {
2537
+ y.width || w.calculateColumnsWidth(S, S, !0);
2538
2538
  }), l("load", {
2539
2539
  data: d.response.data,
2540
2540
  meta: d.response.meta
2541
2541
  }), g && typeof g == "function" && g();
2542
- } catch (_) {
2543
- r.value = _, l("error", _), console.error("Error loading table data:", _);
2542
+ } catch (w) {
2543
+ r.value = w, l("error", w), console.error("Error loading table data:", w);
2544
2544
  } finally {
2545
2545
  c.value = !1, l("loading", !1), he.done();
2546
2546
  }
@@ -2548,71 +2548,71 @@ const Ao = (e) => {
2548
2548
  },
2549
2549
  // can't use sparkTable.hotInstance here because the ref isn't ready
2550
2550
  colToProp: (g) => a.value.hotInstance.colToProp(g),
2551
- fireEvent: (g, _) => {
2552
- l(g, _);
2551
+ fireEvent: (g, w) => {
2552
+ l(g, w);
2553
2553
  },
2554
- getSettingsForProp: (g) => os(Y(d.tableSettings, "columns"), { data: g }),
2554
+ getSettingsForProp: (g) => as(J(d.tableSettings, "columns"), { data: g }),
2555
2555
  // Helper methods for easier param access
2556
2556
  getParams: () => d.computed.params,
2557
2557
  getParam: (g) => d.computed.params[g],
2558
- setParam: (g, _) => {
2559
- d.methods.applyParams({ [g]: _ });
2558
+ setParam: (g, w) => {
2559
+ d.methods.applyParams({ [g]: w });
2560
2560
  },
2561
2561
  clearParam: (g) => d.methods.removeParam(g),
2562
2562
  clearParams: (g) => {
2563
- (Array.isArray(g) ? g : [g]).forEach((w) => {
2564
- d.params[w] !== void 0 && delete d.params[w];
2563
+ (Array.isArray(g) ? g : [g]).forEach((_) => {
2564
+ d.params[_] !== void 0 && delete d.params[_];
2565
2565
  }), d.methods.applyParams({ page: 1 });
2566
2566
  }
2567
2567
  },
2568
2568
  computed: {
2569
- params: C(() => ({
2569
+ params: $(() => ({
2570
2570
  ...o.params,
2571
2571
  ...d.params
2572
2572
  })),
2573
- ready: C(() => as(d, "response.meta.last_page"))
2573
+ ready: $(() => rs(d, "response.meta.last_page"))
2574
2574
  },
2575
- options: C(() => ({
2575
+ options: $(() => ({
2576
2576
  ...we,
2577
2577
  ...o.options
2578
2578
  })),
2579
- tableSettings: C(() => ({
2579
+ tableSettings: $(() => ({
2580
2580
  ...Re,
2581
- nestedHeaders: Y(o.settings, "nestedHeaders", []),
2582
- ...!Y(o.settings, "nestedHeaders") && {
2583
- afterGetColHeader: (g, _) => wo(g, _, d)
2581
+ nestedHeaders: J(o.settings, "nestedHeaders", []),
2582
+ ...!J(o.settings, "nestedHeaders") && {
2583
+ afterGetColHeader: (g, w) => _o(g, w, d)
2584
2584
  },
2585
- afterChange: (g, _) => Zo(),
2586
- afterRender: () => _o(d),
2585
+ afterChange: (g, w) => qo(),
2586
+ afterRender: () => So(d),
2587
2587
  /**
2588
2588
  * Prevent columns with explicit width from being stretched
2589
2589
  * This hook fires BEFORE stretchH is applied, allowing us to cap specific columns
2590
2590
  * while letting others stretch normally
2591
2591
  */
2592
- beforeStretchingColumnWidth: (g, _) => {
2593
- const y = Y(o.settings, "columns", [])[_];
2592
+ beforeStretchingColumnWidth: (g, w) => {
2593
+ const y = J(o.settings, "columns", [])[w];
2594
2594
  return y && y.width !== void 0 ? y.width : g;
2595
2595
  },
2596
2596
  /**
2597
2597
  * Copy displayed cell content instead of raw data values
2598
2598
  * This ensures custom renderers copy their visual output, not the underlying data
2599
2599
  */
2600
- beforeCopy: (g, _) => {
2601
- const w = a.value?.hotInstance;
2602
- w && _.forEach((y) => {
2600
+ beforeCopy: (g, w) => {
2601
+ const _ = a.value?.hotInstance;
2602
+ _ && w.forEach((y) => {
2603
2603
  for (let S = y.startRow; S <= y.endRow; S++)
2604
- for (let M = y.startCol; M <= y.endCol; M++) {
2605
- const D = w.getCell(S, M);
2604
+ for (let P = y.startCol; P <= y.endCol; P++) {
2605
+ const D = _.getCell(S, P);
2606
2606
  if (D) {
2607
- const W = S - _[0].startRow, de = M - _[0].startCol;
2608
- g[W][de] = D.dataset.copyValue ?? D.textContent ?? "";
2607
+ const X = S - w[0].startRow, de = P - w[0].startCol;
2608
+ g[X][de] = D.dataset.copyValue ?? D.textContent ?? "";
2609
2609
  }
2610
2610
  }
2611
2611
  });
2612
2612
  },
2613
2613
  ...o.settings
2614
2614
  }))
2615
- }), p = C(
2615
+ }), p = $(
2616
2616
  () => d.computed.ready && d.response.data?.length === 0
2617
2617
  ), v = (g) => {
2618
2618
  if (!g) return null;
@@ -2626,24 +2626,24 @@ const Ao = (e) => {
2626
2626
  default:
2627
2627
  return null;
2628
2628
  }
2629
- }, k = (g) => g ? typeof g.enabled == "function" ? g.enabled(d.params) : g.enabled : !1, $ = C(() => Object.entries(o.plugins).filter(([g, _]) => k(_)).map(([g, _]) => ({ name: g, config: _ })));
2629
+ }, x = (g) => g ? typeof g.enabled == "function" ? g.enabled(d.params) : g.enabled : !1, C = $(() => Object.entries(o.plugins).filter(([g, w]) => x(w)).map(([g, w]) => ({ name: g, config: w })));
2630
2630
  if (I(
2631
2631
  () => ({ ...d.params }),
2632
2632
  () => {
2633
2633
  const g = [];
2634
- Object.values(o.plugins).forEach((_) => {
2635
- const w = v(_);
2636
- if (!w) return;
2637
- const y = k(_), S = d.params[w] !== void 0;
2638
- !y && S && g.push(w);
2639
- }), g.length > 0 && g.forEach((_) => {
2640
- delete d.params[_];
2634
+ Object.values(o.plugins).forEach((w) => {
2635
+ const _ = v(w);
2636
+ if (!_) return;
2637
+ const y = x(w), S = d.params[_] !== void 0;
2638
+ !y && S && g.push(_);
2639
+ }), g.length > 0 && g.forEach((w) => {
2640
+ delete d.params[w];
2641
2641
  });
2642
2642
  },
2643
2643
  { deep: !0, flush: "sync" }
2644
2644
  ), o.syncToRoute || o.persistToStorage) {
2645
2645
  const g = typeof o.syncToRoute == "string";
2646
- qo(d, {
2646
+ Uo(d, {
2647
2647
  namespace: g ? o.syncToRoute : null,
2648
2648
  syncToRoute: !!o.syncToRoute,
2649
2649
  persistToStorage: o.persistToStorage
@@ -2663,18 +2663,18 @@ const Ao = (e) => {
2663
2663
  { debounce: 50, maxWait: 1e3 }
2664
2664
  ), I(
2665
2665
  () => o.url,
2666
- async (g, _) => {
2667
- g !== _ && (d.params.page = 1, await d.methods.loadTable());
2666
+ async (g, w) => {
2667
+ g !== w && (d.params.page = 1, await d.methods.loadTable());
2668
2668
  }
2669
2669
  ), _e(async () => {
2670
2670
  await d.methods.loadTable(), l("ready");
2671
- }), mt(() => {
2671
+ }), ht(() => {
2672
2672
  i = !0;
2673
- }), No(d), s({
2673
+ }), Zo(d), s({
2674
2674
  refresh: () => d.methods.loadTable(),
2675
2675
  getParams: () => d.methods.getParams(),
2676
2676
  getParam: (g) => d.methods.getParam(g),
2677
- setParam: (g, _) => d.methods.setParam(g, _),
2677
+ setParam: (g, w) => d.methods.setParam(g, w),
2678
2678
  clearParam: (g) => d.methods.clearParam(g),
2679
2679
  clearParams: (g) => d.methods.clearParams(g),
2680
2680
  applyParams: (g) => d.methods.applyParams(g),
@@ -2682,15 +2682,15 @@ const Ao = (e) => {
2682
2682
  error: r,
2683
2683
  sparkTable: d,
2684
2684
  table: a
2685
- }), (g, _) => {
2686
- const w = O("font-awesome-icon");
2687
- return m(), h("div", Sa, [
2688
- d.computed.ready && $.value && $.value.length ? (m(), V(Ve, {
2685
+ }), (g, w) => {
2686
+ const _ = O("font-awesome-icon");
2687
+ return m(), h("div", Ca, [
2688
+ d.computed.ready && C.value && C.value.length ? (m(), V(Ve, {
2689
2689
  key: 0,
2690
2690
  position: "header"
2691
2691
  }, {
2692
2692
  default: T(() => [
2693
- (m(!0), h(R, null, z($.value, (y) => (m(), V(N(u[y.config.type]), {
2693
+ (m(!0), h(R, null, z(C.value, (y) => (m(), V(N(u[y.config.type]), {
2694
2694
  key: y.name,
2695
2695
  class: H(y.config.align ? `self-${y.config.align}` : ""),
2696
2696
  "spark-table": d,
@@ -2703,38 +2703,38 @@ const Ao = (e) => {
2703
2703
  })
2704
2704
  ]),
2705
2705
  _: 3
2706
- })) : (m(), h("div", Ca)),
2707
- ht(b(x(rs), {
2706
+ })) : (m(), h("div", $a)),
2707
+ gt(b(k(ns), {
2708
2708
  "theme-name": "ht-theme-classic",
2709
2709
  ref_key: "table",
2710
2710
  ref: a,
2711
2711
  settings: d.tableSettings
2712
2712
  }, null, 8, ["settings"]), [
2713
- [gt, !p.value]
2713
+ [yt, !p.value]
2714
2714
  ]),
2715
- p.value ? (m(), h("div", $a, [
2716
- b(w, {
2717
- icon: x(A).farInbox,
2715
+ p.value ? (m(), h("div", Ta, [
2716
+ b(_, {
2717
+ icon: k(A).farInbox,
2718
2718
  class: "size-12 mb-4 text-gray-300"
2719
2719
  }, null, 8, ["icon"]),
2720
- _[0] || (_[0] = f("p", { class: "text-sm" }, "No records found", -1))
2721
- ])) : P("", !0),
2720
+ w[0] || (w[0] = f("p", { class: "text-sm" }, "No records found", -1))
2721
+ ])) : L("", !0),
2722
2722
  d.computed.ready ? (m(), V(Ve, {
2723
2723
  key: 3,
2724
2724
  position: "footer"
2725
2725
  }, {
2726
2726
  default: T(() => [
2727
- p.value ? P("", !0) : (m(), V(Jo, {
2727
+ p.value ? L("", !0) : (m(), V(Qo, {
2728
2728
  key: 0,
2729
2729
  "spark-table": d
2730
2730
  }, null, 8, ["spark-table"])),
2731
- f("div", Ta, [
2732
- p.value ? P("", !0) : (m(), V(oa, {
2731
+ f("div", Pa, [
2732
+ p.value ? L("", !0) : (m(), V(aa, {
2733
2733
  key: 0,
2734
2734
  "spark-table": d,
2735
2735
  onPaginate: d.methods.applyParams
2736
2736
  }, null, 8, ["spark-table", "onPaginate"])),
2737
- b(na, {
2737
+ b(la, {
2738
2738
  "spark-table": d,
2739
2739
  onPaginate: d.methods.applyParams
2740
2740
  }, null, 8, ["spark-table", "onPaginate"]),
@@ -2746,13 +2746,13 @@ const Ao = (e) => {
2746
2746
  ])
2747
2747
  ]),
2748
2748
  _: 3
2749
- })) : P("", !0)
2749
+ })) : L("", !0)
2750
2750
  ]);
2751
2751
  };
2752
2752
  }
2753
2753
  };
2754
- function Ae() {
2755
- const e = q({
2754
+ function Ee() {
2755
+ const e = U({
2756
2756
  isVisible: !1,
2757
2757
  content: null,
2758
2758
  props: {},
@@ -2778,9 +2778,9 @@ function Ae() {
2778
2778
  }
2779
2779
  };
2780
2780
  }
2781
- class La {
2781
+ class Ma {
2782
2782
  constructor() {
2783
- this.left = Ae(), this.right = Ae();
2783
+ this.left = Ee(), this.right = Ee();
2784
2784
  }
2785
2785
  showLeft = (s, t = {}, o = {}, l = {}) => {
2786
2786
  const n = {
@@ -2810,22 +2810,274 @@ class La {
2810
2810
  this.left.close(), this.right.close();
2811
2811
  };
2812
2812
  }
2813
- const se = new La(), Ma = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, Ha = { class: "flex flex-1 flex-col" }, Va = {
2813
+ const se = new Ma(), Ha = (e) => {
2814
+ const s = document.cookie.match(new RegExp(`(^| )${e}=([^;]+)`));
2815
+ return s ? s[2] : null;
2816
+ }, Va = (e, s, t = {}) => {
2817
+ const {
2818
+ maxAge: o = 31536e3,
2819
+ // 365 days in seconds
2820
+ domain: l = ct(),
2821
+ secure: n = !0,
2822
+ sameSite: a = "Lax",
2823
+ path: c = "/"
2824
+ } = t;
2825
+ let r = `${e}=${s}; max-age=${o}; path=${c}; samesite=${a}`;
2826
+ l && (r += `; domain=${l}`), n && (r += "; secure"), document.cookie = r;
2827
+ }, Ra = (e, s = {}) => {
2828
+ const { domain: t = ct(), path: o = "/" } = s;
2829
+ let l = `${e}=; max-age=0; path=${o}`;
2830
+ t && (l += `; domain=${t}`), document.cookie = l;
2831
+ }, ct = () => {
2832
+ const e = window.location.hostname;
2833
+ 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;
2834
+ }, ut = [];
2835
+ function Ea(e) {
2836
+ ut.push(e);
2837
+ }
2838
+ function Aa() {
2839
+ ut.forEach((e) => e());
2840
+ }
2841
+ function Bn(e) {
2842
+ let s = !1;
2843
+ return Ea(() => {
2844
+ s = !1;
2845
+ }), {
2846
+ bootstrapApp: async () => {
2847
+ if (!s)
2848
+ try {
2849
+ await e(), s = !0;
2850
+ } catch (l) {
2851
+ throw console.error("Error during app bootstrap:", l), l;
2852
+ }
2853
+ }
2854
+ };
2855
+ }
2856
+ const ve = "bolt-next-token", G = ue("auth", () => {
2857
+ const e = U({
2858
+ user: null,
2859
+ token: null,
2860
+ ready: !1,
2861
+ // Dev JWT override token (bypasses normal auth flow)
2862
+ overrideToken: null,
2863
+ // Configurable endpoints
2864
+ endpoints: {
2865
+ login: "/login",
2866
+ logout: "/logout",
2867
+ fetch: "/user",
2868
+ passwordEmail: "/password/email",
2869
+ passwordReset: "/password/reset"
2870
+ },
2871
+ // Configurable routes
2872
+ routes: {
2873
+ auth: "/login",
2874
+ forbidden: "/error/403",
2875
+ notFound: "/error/404"
2876
+ },
2877
+ // Dev credentials for autofill (optional)
2878
+ devCredentials: {
2879
+ username: null,
2880
+ password: null
2881
+ },
2882
+ // Lifecycle callbacks (optional)
2883
+ callbacks: {
2884
+ onLoginSuccess: null,
2885
+ onLoginError: null,
2886
+ onLogoutSuccess: null,
2887
+ onLogoutError: null
2888
+ }
2889
+ }), s = (i = {}) => {
2890
+ 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);
2891
+ }, t = (i) => {
2892
+ Va(ve, i), e.token = i;
2893
+ }, o = () => {
2894
+ Ra(ve), e.token = null;
2895
+ }, l = () => Ha(ve), n = async (i) => {
2896
+ const u = await ne.post(e.endpoints.login, i), d = u.headers.authorization;
2897
+ return t(d), e.user = u.data, e.callbacks.onLoginSuccess && await e.callbacks.onLoginSuccess(u.data), u.data;
2898
+ }, a = async () => {
2899
+ try {
2900
+ await ne.post(
2901
+ e.endpoints.logout,
2902
+ {},
2903
+ {
2904
+ headers: {
2905
+ Authorization: `Bearer ${e.token}`
2906
+ }
2907
+ }
2908
+ ), e.callbacks.onLogoutSuccess && await e.callbacks.onLogoutSuccess();
2909
+ } catch (i) {
2910
+ throw e.callbacks.onLogoutError && await e.callbacks.onLogoutError(i), i;
2911
+ } finally {
2912
+ o(), e.user = null, Aa();
2913
+ }
2914
+ }, c = async () => {
2915
+ const i = e.overrideToken || l();
2916
+ if (!i)
2917
+ return e.ready = !0, null;
2918
+ try {
2919
+ const { data: u } = await ne.get(e.endpoints.fetch, {
2920
+ headers: {
2921
+ Authorization: `Bearer ${i}`
2922
+ }
2923
+ });
2924
+ e.user = u, e.overrideToken || (e.token = i);
2925
+ } catch {
2926
+ e.overrideToken || o();
2927
+ } finally {
2928
+ e.ready = !0;
2929
+ }
2930
+ }, r = $(() => e.overrideToken ? !0 : !!e.token && !!e.user);
2931
+ return {
2932
+ state: e,
2933
+ initialize: s,
2934
+ login: n,
2935
+ logout: a,
2936
+ fetchUser: c,
2937
+ check: r,
2938
+ setTokenCookie: t,
2939
+ clearTokenCookie: o,
2940
+ getTokenCookie: l
2941
+ };
2942
+ });
2943
+ function Fa(e = {}) {
2944
+ const s = ne.create({
2945
+ baseURL: e.baseURL || "",
2946
+ timeout: e.timeout || 3e4,
2947
+ headers: {
2948
+ "Content-Type": "application/json",
2949
+ ...e.headers
2950
+ }
2951
+ });
2952
+ return s.interceptors.request.use(
2953
+ (t) => {
2954
+ try {
2955
+ const o = G();
2956
+ o.state.overrideToken ? t.headers.Authorization = `Bearer ${o.state.overrideToken}` : o.state.token && (t.headers.Authorization = `Bearer ${o.state.token}`);
2957
+ } catch {
2958
+ }
2959
+ return t;
2960
+ },
2961
+ (t) => Promise.reject(t)
2962
+ ), s.interceptors.response.use(
2963
+ (t) => t,
2964
+ async (t) => {
2965
+ if (t.response?.status === 401)
2966
+ try {
2967
+ const o = G();
2968
+ await o.logout(), window.location.href = o.state.routes.auth;
2969
+ } catch (o) {
2970
+ console.error("Error during auto-logout:", o), window.location.href = "/login";
2971
+ }
2972
+ if (t.response?.status === 403)
2973
+ try {
2974
+ const o = G();
2975
+ window.location.href = o.state.routes.forbidden;
2976
+ } catch (o) {
2977
+ console.error("Error during 403 redirect:", o), window.location.href = "/error/403";
2978
+ }
2979
+ return Promise.reject(t);
2980
+ }
2981
+ ), s;
2982
+ }
2983
+ let re = null;
2984
+ function Dn(e, s = {}) {
2985
+ return re = Fa(s), e.provide("axios", re), e.config.globalProperties.$axios = re, re;
2986
+ }
2987
+ function Oa() {
2988
+ if (!re)
2989
+ throw new Error("Axios instance not initialized. Call setupAxios() first.");
2990
+ return re;
2991
+ }
2992
+ function Ba(e) {
2993
+ return e?.status !== 422 ? null : e.data?.errors || null;
2994
+ }
2995
+ function Ae(e) {
2996
+ return e?.status === 422 ? e.data?.message || "Please fix the validation errors." : e?.data?.message || "An error occurred.";
2997
+ }
2998
+ function Da(e) {
2999
+ return e?.status === 422;
3000
+ }
3001
+ function zn(e = {}) {
3002
+ const {
3003
+ successMessage: s = "Saved successfully!",
3004
+ createMessage: t = "Created successfully!",
3005
+ updateMessage: o = "Updated successfully!",
3006
+ redirectTo: l = null,
3007
+ onSuccess: n = null,
3008
+ onError: a = null,
3009
+ showNotification: c = !0,
3010
+ setFieldErrors: r = !0,
3011
+ setFormErrors: i = !1
3012
+ } = e, u = W(), d = E(!1);
3013
+ async function p(x) {
3014
+ const { submitFn: C, method: g = "create", node: w = null, isEditMode: _ = !1 } = x;
3015
+ d.value = !0, w && w.clearErrors();
3016
+ try {
3017
+ const S = (await C()).data;
3018
+ if (c) {
3019
+ const P = _ ? o : g === "create" ? t : s;
3020
+ q.show({
3021
+ type: "success",
3022
+ message: P
3023
+ });
3024
+ }
3025
+ if (n && await n(S), !_ && l) {
3026
+ const P = typeof l == "function" ? l(S) : l;
3027
+ await u.push(P);
3028
+ }
3029
+ return { success: !0, data: S, error: null };
3030
+ } catch (y) {
3031
+ const S = y.response;
3032
+ if (a && await a(y) === !0)
3033
+ return { success: !1, data: null, error: y };
3034
+ if (Da(S)) {
3035
+ const P = Ba(S);
3036
+ P && w && r && w.setErrors([], P), i && q.show({
3037
+ type: "danger",
3038
+ message: Ae(S)
3039
+ });
3040
+ } else
3041
+ q.show({
3042
+ type: "danger",
3043
+ message: Ae(S)
3044
+ });
3045
+ return { success: !1, data: null, error: y };
3046
+ } finally {
3047
+ d.value = !1;
3048
+ }
3049
+ }
3050
+ async function v(x) {
3051
+ const { url: C, payload: g, method: w = "post", node: _, isEditMode: y } = x, S = Oa();
3052
+ return p({
3053
+ submitFn: () => S[w](C, g),
3054
+ method: y ? "update" : "create",
3055
+ node: _,
3056
+ isEditMode: y
3057
+ });
3058
+ }
3059
+ return {
3060
+ submitting: d,
3061
+ submit: p,
3062
+ submitToApi: v
3063
+ };
3064
+ }
3065
+ const za = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, ja = { class: "flex flex-1 flex-col" }, Ia = {
2814
3066
  class: "flex flex-1 flex-col gap-y-7",
2815
3067
  role: "list"
2816
- }, Ra = { class: "flex flex-1 flex-col" }, Aa = {
3068
+ }, Na = { class: "flex flex-1 flex-col" }, Za = {
2817
3069
  role: "list",
2818
3070
  class: "flex flex-1 flex-col"
2819
- }, Ea = { class: "flex items-center pb-8" }, Fa = ["href", "onClick"], Oa = {
3071
+ }, qa = { class: "flex items-center pb-8" }, Ua = ["href", "onClick"], Ka = {
2820
3072
  key: 2,
2821
3073
  class: "w-full flex justify-center"
2822
- }, Ba = {
3074
+ }, Ga = {
2823
3075
  key: 0,
2824
3076
  class: "mt-[5px] flex flex-col gap-[5px]"
2825
- }, Da = ["href", "onClick"], za = {
3077
+ }, Wa = ["href", "onClick"], Ya = {
2826
3078
  key: 1,
2827
3079
  class: "text-[13px]"
2828
- }, ja = { class: "mt-auto" }, Ia = { class: "p-[10px] flex-shrink-0" }, Na = { class: "flex flex-1 items-center gap-x-6" }, Za = { class: "relative flex flex-1 items-center gap-4" }, qa = { class: "cursor-pointer" }, Ua = ["src"], Ka = { class: "ml-auto" }, Ga = { class: "mr-[10px] pb-[10px] flex-1 flex flex-col" }, An = {
3080
+ }, Xa = { class: "mt-auto" }, Ja = { class: "p-[10px] flex-shrink-0" }, Qa = { class: "flex flex-1 items-center gap-x-6" }, er = { class: "relative flex flex-1 items-center gap-4" }, tr = { class: "cursor-pointer" }, sr = ["src"], or = { class: "ml-auto" }, ar = { class: "mr-[10px] pb-[10px] flex-1 flex flex-col" }, jn = {
2829
3081
  __name: "SparkDefaultContainer",
2830
3082
  props: {
2831
3083
  appStore: {
@@ -2843,85 +3095,85 @@ const se = new La(), Ma = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, Ha =
2843
3095
  },
2844
3096
  emits: ["overlayClose"],
2845
3097
  setup(e, { emit: s }) {
2846
- const t = e, o = s, l = Oe(), n = le(), a = lt(), c = at(), r = C(() => c.getAppIcon(t.appStore.state.app)), i = C(() => n.meta.hideBrandSelector === !0 ? !1 : t.appStore.state.showBrandSelector), u = () => {
2847
- const k = {};
2848
- l["app-selector-bottom"] ? k.bottomSlot = () => Se("div", {}, l["app-selector-bottom"]()) : t.appSelectorSlots.bottomSlot && (k.bottomSlot = t.appSelectorSlots.bottomSlot), l["app-selector-footer"] ? k.footerSlot = () => Se("div", {}, l["app-selector-footer"]()) : t.appSelectorSlots.footerSlot && (k.footerSlot = t.appSelectorSlots.footerSlot), se.showRight(As, k, {
2849
- select: ($) => {
3098
+ const t = e, o = s, l = Be(), n = le(), a = it(), c = rt(), r = $(() => c.getAppIcon(t.appStore.state.app)), i = $(() => n.meta.hideBrandSelector === !0 ? !1 : t.appStore.state.showBrandSelector), u = () => {
3099
+ const x = {};
3100
+ l["app-selector-bottom"] ? x.bottomSlot = () => Se("div", {}, l["app-selector-bottom"]()) : t.appSelectorSlots.bottomSlot && (x.bottomSlot = t.appSelectorSlots.bottomSlot), l["app-selector-footer"] ? x.footerSlot = () => Se("div", {}, l["app-selector-footer"]()) : t.appSelectorSlots.footerSlot && (x.footerSlot = t.appSelectorSlots.footerSlot), se.showRight(As, x, {
3101
+ select: (C) => {
2850
3102
  se.closeRight();
2851
3103
  }
2852
3104
  });
2853
3105
  }, d = () => {
2854
3106
  se.showLeft(
2855
- oo,
3107
+ ao,
2856
3108
  {},
2857
3109
  {
2858
- select: (k) => {
2859
- a.toggleBrand(k), se.closeLeft();
3110
+ select: (x) => {
3111
+ a.toggleBrand(x), se.closeLeft();
2860
3112
  }
2861
3113
  }
2862
3114
  );
2863
- }, p = C(() => t.mainNavStore.state.hidden ? ["w-0 overflow-hidden"] : [t.mainNavStore.state.collapsed ? "w-[80px]" : "w-[240px]"]), v = C(() => t.mainNavStore.state.hidden ? ["pl-2.5"] : [t.mainNavStore.state.collapsed ? "pl-[80px]" : "pl-[240px]"]);
2864
- return (k, $) => {
2865
- const g = O("font-awesome-icon"), _ = O("router-view");
3115
+ }, p = $(() => t.mainNavStore.state.hidden ? ["w-0 overflow-hidden"] : [t.mainNavStore.state.collapsed ? "w-[80px]" : "w-[240px]"]), v = $(() => t.mainNavStore.state.hidden ? ["pl-2.5"] : [t.mainNavStore.state.collapsed ? "pl-[80px]" : "pl-[240px]"]);
3116
+ return (x, C) => {
3117
+ const g = O("font-awesome-icon"), w = O("router-view");
2866
3118
  return m(), h(R, null, [
2867
3119
  f("div", {
2868
3120
  class: H([p.value, "fixed inset-y-0 flex transition-all z-100"])
2869
3121
  }, [
2870
- f("div", Ma, [
2871
- f("nav", Ha, [
2872
- f("ul", Va, [
2873
- f("li", Ra, [
2874
- f("ul", Aa, [
2875
- f("li", Ea, [
3122
+ f("div", za, [
3123
+ f("nav", ja, [
3124
+ f("ul", Ia, [
3125
+ f("li", Na, [
3126
+ f("ul", Za, [
3127
+ f("li", qa, [
2876
3128
  f("a", {
2877
3129
  class: "grid w-[40px] h-[40px] place-items-center rounded-md bg-primary-600 text-white text-[13px] cursor-pointer",
2878
- onClick: $[0] || ($[0] = ee((w) => e.mainNavStore.goto(e.appStore.state.homeRoute), ["prevent"]))
3130
+ onClick: C[0] || (C[0] = ee((_) => e.mainNavStore.goto(e.appStore.state.homeRoute), ["prevent"]))
2879
3131
  }, [
2880
3132
  b(g, {
2881
- icon: x(A)[r.value],
3133
+ icon: k(A)[r.value],
2882
3134
  class: "size-5"
2883
3135
  }, null, 8, ["icon"])
2884
3136
  ]),
2885
- e.mainNavStore.state.collapsed ? P("", !0) : (m(), h("a", {
3137
+ e.mainNavStore.state.collapsed ? L("", !0) : (m(), h("a", {
2886
3138
  key: 0,
2887
- onClick: $[1] || ($[1] = ee((w) => e.mainNavStore.goto(e.appStore.state.homeRoute), ["prevent"])),
3139
+ onClick: C[1] || (C[1] = ee((_) => e.mainNavStore.goto(e.appStore.state.homeRoute), ["prevent"])),
2888
3140
  class: "font-medium text-gray-800 ml-[10px] cursor-pointer"
2889
- }, L(e.appStore.state.app), 1))
3141
+ }, M(e.appStore.state.app), 1))
2890
3142
  ]),
2891
- (m(!0), h(R, null, z(e.mainNavStore.state.menu, (w) => (m(), h("li", {
2892
- key: w.name,
3143
+ (m(!0), h(R, null, z(e.mainNavStore.state.menu, (_) => (m(), h("li", {
3144
+ key: _.name,
2893
3145
  class: H({
2894
- "mt-[10px]": w.children,
2895
- "mt-auto": w.footerSection
3146
+ "mt-[10px]": _.children,
3147
+ "mt-auto": _.footerSection
2896
3148
  })
2897
3149
  }, [
2898
3150
  f("a", {
2899
3151
  class: H([{
2900
- "bg-gray-100": w.current,
2901
- "hover:bg-gray-100": w?.href
3152
+ "bg-gray-100": _.current,
3153
+ "hover:bg-gray-100": _?.href
2902
3154
  }, "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"]),
2903
- href: w?.href,
2904
- onClick: ee((y) => e.mainNavStore.goto(w.href), ["prevent"])
3155
+ href: _?.href,
3156
+ onClick: ee((y) => e.mainNavStore.goto(_.href), ["prevent"])
2905
3157
  }, [
2906
- w.icon ? (m(), V(g, {
3158
+ _.icon ? (m(), V(g, {
2907
3159
  key: 0,
2908
- icon: x(A)[w.icon],
2909
- class: H([[(w.current, "text-gray-400")], "size-4"])
2910
- }, null, 8, ["icon", "class"])) : P("", !0),
2911
- e.mainNavStore.state.collapsed ? w?.children ? (m(), h("div", Oa, [...$[6] || ($[6] = [
3160
+ icon: k(A)[_.icon],
3161
+ class: H([[(_.current, "text-gray-400")], "size-4"])
3162
+ }, null, 8, ["icon", "class"])) : L("", !0),
3163
+ e.mainNavStore.state.collapsed ? _?.children ? (m(), h("div", Ka, [...C[6] || (C[6] = [
2912
3164
  f("div", { class: "w-[10px] h-px bg-gray-400" }, null, -1)
2913
- ])])) : P("", !0) : (m(), h("span", {
3165
+ ])])) : L("", !0) : (m(), h("span", {
2914
3166
  key: 1,
2915
3167
  class: H({
2916
- "text-[11px]": w?.children,
2917
- "text-[13px]": !w?.children,
2918
- "font-semibold": w?.children,
2919
- "text-gray-500": w?.children
3168
+ "text-[11px]": _?.children,
3169
+ "text-[13px]": !_?.children,
3170
+ "font-semibold": _?.children,
3171
+ "text-gray-500": _?.children
2920
3172
  })
2921
- }, L(w.name), 3))
2922
- ], 10, Fa),
2923
- w.children ? (m(), h("ul", Ba, [
2924
- (m(!0), h(R, null, z(w.children, (y) => (m(), h("li", {
3173
+ }, M(_.name), 3))
3174
+ ], 10, Ua),
3175
+ _.children ? (m(), h("ul", Ga, [
3176
+ (m(!0), h(R, null, z(_.children, (y) => (m(), h("li", {
2925
3177
  key: y.name
2926
3178
  }, [
2927
3179
  f("a", {
@@ -2931,25 +3183,25 @@ const se = new La(), Ma = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, Ha =
2931
3183
  }, [
2932
3184
  y.icon ? (m(), V(g, {
2933
3185
  key: 0,
2934
- icon: x(A)[y.icon],
3186
+ icon: k(A)[y.icon],
2935
3187
  class: H([[(y.current, "text-gray-400")], "size-4"])
2936
- }, null, 8, ["icon", "class"])) : P("", !0),
2937
- e.mainNavStore.state.collapsed ? P("", !0) : (m(), h("span", za, L(y.name), 1))
2938
- ], 10, Da)
3188
+ }, null, 8, ["icon", "class"])) : L("", !0),
3189
+ e.mainNavStore.state.collapsed ? L("", !0) : (m(), h("span", Ya, M(y.name), 1))
3190
+ ], 10, Wa)
2939
3191
  ]))), 128))
2940
- ])) : P("", !0)
3192
+ ])) : L("", !0)
2941
3193
  ], 2))), 128))
2942
3194
  ])
2943
3195
  ]),
2944
- f("li", ja, [
2945
- B(k.$slots, "sidebar-footer"),
3196
+ f("li", Xa, [
3197
+ B(x.$slots, "sidebar-footer"),
2946
3198
  f("a", {
2947
3199
  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",
2948
3200
  href: "#",
2949
- onClick: $[2] || ($[2] = ee((w) => e.mainNavStore.toggleCollapsed(), ["prevent"]))
3201
+ onClick: C[2] || (C[2] = ee((_) => e.mainNavStore.toggleCollapsed(), ["prevent"]))
2950
3202
  }, [
2951
3203
  b(g, {
2952
- icon: x(A)[e.mainNavStore.state.collapsed ? "farArrowRightToLine" : "farArrowLeftToLine"],
3204
+ icon: k(A)[e.mainNavStore.state.collapsed ? "farArrowRightToLine" : "farArrowLeftToLine"],
2953
3205
  class: "class-5"
2954
3206
  }, null, 8, ["icon"])
2955
3207
  ])
@@ -2961,34 +3213,34 @@ const se = new La(), Ma = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, Ha =
2961
3213
  f("div", {
2962
3214
  class: H([v.value, "h-full transition-all flex flex-col"])
2963
3215
  }, [
2964
- f("div", Ia, [
2965
- f("div", Na, [
2966
- f("div", Za, [
2967
- B(k.$slots, "header-left", {}, () => [
2968
- f("div", qa, [
3216
+ f("div", Ja, [
3217
+ f("div", Qa, [
3218
+ f("div", er, [
3219
+ B(x.$slots, "header-left", {}, () => [
3220
+ f("div", tr, [
2969
3221
  b(g, {
2970
- icon: x(A).farBarsSort,
3222
+ icon: k(A).farBarsSort,
2971
3223
  class: "size-5",
2972
- onClick: $[3] || ($[3] = (w) => e.mainNavStore.toggleHidden())
3224
+ onClick: C[3] || (C[3] = (_) => e.mainNavStore.toggleHidden())
2973
3225
  }, null, 8, ["icon"])
2974
3226
  ])
2975
3227
  ]),
2976
- B(k.$slots, "header-center", {}, () => [
3228
+ B(x.$slots, "header-center", {}, () => [
2977
3229
  i.value ? (m(), h("div", {
2978
3230
  key: 0,
2979
3231
  class: "absolute left-1/2 -translate-x-1/2 cursor-pointer h-9 flex items-center",
2980
3232
  onClick: d
2981
3233
  }, [
2982
- x(a).currentBrand ? (m(), h("img", {
3234
+ k(a).currentBrand ? (m(), h("img", {
2983
3235
  key: 0,
2984
- src: x(a).currentBrand.logo,
3236
+ src: k(a).currentBrand.logo,
2985
3237
  alt: "",
2986
3238
  class: "h-[30px] w-auto"
2987
- }, null, 8, Ua)) : P("", !0)
2988
- ])) : P("", !0)
3239
+ }, null, 8, sr)) : L("", !0)
3240
+ ])) : L("", !0)
2989
3241
  ]),
2990
- f("div", Ka, [
2991
- B(k.$slots, "header-right", {}, () => [
3242
+ f("div", or, [
3243
+ B(x.$slots, "header-right", {}, () => [
2992
3244
  e.appStore.state.showAppSelector ? (m(), h("button", {
2993
3245
  key: 0,
2994
3246
  class: "rounded-sm bg-white w-[42px] h-[42px] ring-1 ring-inset ring-gray-300",
@@ -2996,180 +3248,51 @@ const se = new La(), Ma = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, Ha =
2996
3248
  onClick: u
2997
3249
  }, [
2998
3250
  b(g, {
2999
- icon: x(A).farGripDotsVertical,
3251
+ icon: k(A).farGripDotsVertical,
3000
3252
  class: "size-4 text-gray-400"
3001
3253
  }, null, 8, ["icon"])
3002
- ])) : P("", !0)
3254
+ ])) : L("", !0)
3003
3255
  ])
3004
3256
  ])
3005
3257
  ])
3006
3258
  ])
3007
3259
  ]),
3008
- f("main", Ga, [
3009
- b(_)
3260
+ f("main", ar, [
3261
+ b(w)
3010
3262
  ])
3011
3263
  ], 2),
3012
- b(x(Te), {
3264
+ b(k(Te), {
3013
3265
  position: "left",
3014
- "overlay-instance": x(se).left,
3015
- onClose: $[4] || ($[4] = (w) => o("overlayClose", "left"))
3266
+ "overlay-instance": k(se).left,
3267
+ onClose: C[4] || (C[4] = (_) => o("overlayClose", "left"))
3016
3268
  }, null, 8, ["overlay-instance"]),
3017
- b(x(Te), {
3269
+ b(k(Te), {
3018
3270
  position: "right",
3019
- "overlay-instance": x(se).right,
3020
- onClose: $[5] || ($[5] = (w) => o("overlayClose", "right"))
3271
+ "overlay-instance": k(se).right,
3272
+ onClose: C[5] || (C[5] = (_) => o("overlayClose", "right"))
3021
3273
  }, null, 8, ["overlay-instance"]),
3022
- b(x(go))
3274
+ b(k(yo))
3023
3275
  ], 64);
3024
3276
  };
3025
3277
  }
3026
- }, Wa = {}, Ya = { class: "h-full" };
3027
- function Xa(e, s) {
3278
+ }, rr = {}, nr = { class: "h-full" };
3279
+ function lr(e, s) {
3028
3280
  const t = O("router-view");
3029
- return m(), h("main", Ya, [
3281
+ return m(), h("main", nr, [
3030
3282
  b(t)
3031
3283
  ]);
3032
3284
  }
3033
- const En = /* @__PURE__ */ te(Wa, [["render", Xa]]), Ja = (e) => {
3034
- const s = document.cookie.match(new RegExp(`(^| )${e}=([^;]+)`));
3035
- return s ? s[2] : null;
3036
- }, Qa = (e, s, t = {}) => {
3037
- const {
3038
- maxAge: o = 31536e3,
3039
- // 365 days in seconds
3040
- domain: l = it(),
3041
- secure: n = !0,
3042
- sameSite: a = "Lax",
3043
- path: c = "/"
3044
- } = t;
3045
- let r = `${e}=${s}; max-age=${o}; path=${c}; samesite=${a}`;
3046
- l && (r += `; domain=${l}`), n && (r += "; secure"), document.cookie = r;
3047
- }, er = (e, s = {}) => {
3048
- const { domain: t = it(), path: o = "/" } = s;
3049
- let l = `${e}=; max-age=0; path=${o}`;
3050
- t && (l += `; domain=${t}`), document.cookie = l;
3051
- }, it = () => {
3052
- const e = window.location.hostname;
3053
- 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;
3054
- }, ct = [];
3055
- function tr(e) {
3056
- ct.push(e);
3057
- }
3058
- function sr() {
3059
- ct.forEach((e) => e());
3060
- }
3061
- function Fn(e) {
3062
- let s = !1;
3063
- return tr(() => {
3064
- s = !1;
3065
- }), {
3066
- bootstrapApp: async () => {
3067
- if (!s)
3068
- try {
3069
- await e(), s = !0;
3070
- } catch (l) {
3071
- throw console.error("Error during app bootstrap:", l), l;
3072
- }
3073
- }
3074
- };
3075
- }
3076
- const ve = "bolt-next-token", K = ue("auth", () => {
3077
- const e = q({
3078
- user: null,
3079
- token: null,
3080
- ready: !1,
3081
- // Dev JWT override token (bypasses normal auth flow)
3082
- overrideToken: null,
3083
- // Configurable endpoints
3084
- endpoints: {
3085
- login: "/login",
3086
- logout: "/logout",
3087
- fetch: "/user",
3088
- passwordEmail: "/password/email",
3089
- passwordReset: "/password/reset"
3090
- },
3091
- // Configurable routes
3092
- routes: {
3093
- auth: "/login",
3094
- forbidden: "/error/403",
3095
- notFound: "/error/404"
3096
- },
3097
- // Dev credentials for autofill (optional)
3098
- devCredentials: {
3099
- username: null,
3100
- password: null
3101
- },
3102
- // Lifecycle callbacks (optional)
3103
- callbacks: {
3104
- onLoginSuccess: null,
3105
- onLoginError: null,
3106
- onLogoutSuccess: null,
3107
- onLogoutError: null
3108
- }
3109
- }), s = (i = {}) => {
3110
- 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);
3111
- }, t = (i) => {
3112
- Qa(ve, i), e.token = i;
3113
- }, o = () => {
3114
- er(ve), e.token = null;
3115
- }, l = () => Ja(ve), n = async (i) => {
3116
- const u = await ne.post(e.endpoints.login, i), d = u.headers.authorization;
3117
- return t(d), e.user = u.data, e.callbacks.onLoginSuccess && await e.callbacks.onLoginSuccess(u.data), u.data;
3118
- }, a = async () => {
3119
- try {
3120
- await ne.post(
3121
- e.endpoints.logout,
3122
- {},
3123
- {
3124
- headers: {
3125
- Authorization: `Bearer ${e.token}`
3126
- }
3127
- }
3128
- ), e.callbacks.onLogoutSuccess && await e.callbacks.onLogoutSuccess();
3129
- } catch (i) {
3130
- throw e.callbacks.onLogoutError && await e.callbacks.onLogoutError(i), i;
3131
- } finally {
3132
- o(), e.user = null, sr();
3133
- }
3134
- }, c = async () => {
3135
- const i = e.overrideToken || l();
3136
- if (!i)
3137
- return e.ready = !0, null;
3138
- try {
3139
- const { data: u } = await ne.get(e.endpoints.fetch, {
3140
- headers: {
3141
- Authorization: `Bearer ${i}`
3142
- }
3143
- });
3144
- e.user = u, e.overrideToken || (e.token = i);
3145
- } catch {
3146
- e.overrideToken || o();
3147
- } finally {
3148
- e.ready = !0;
3149
- }
3150
- }, r = C(() => e.overrideToken ? !0 : !!e.token && !!e.user);
3151
- return {
3152
- state: e,
3153
- initialize: s,
3154
- login: n,
3155
- logout: a,
3156
- fetchUser: c,
3157
- check: r,
3158
- setTokenCookie: t,
3159
- clearTokenCookie: o,
3160
- getTokenCookie: l
3161
- };
3162
- }), or = { class: "h-full grid place-content-center relative" }, ar = { class: "absolute top-8 left-8" }, rr = ["src"], nr = {
3285
+ const In = /* @__PURE__ */ te(rr, [["render", lr]]), ir = { class: "h-full grid place-content-center relative" }, cr = { class: "absolute top-8 left-8" }, ur = ["src"], dr = {
3163
3286
  key: 1,
3164
3287
  width: "59",
3165
3288
  height: "23",
3166
3289
  viewBox: "0 0 59 23",
3167
3290
  fill: "none",
3168
3291
  xmlns: "http://www.w3.org/2000/svg"
3169
- }, lr = { class: "max-w-sm grid gap-y-1 -mt-8" }, ir = { class: "mb-7" }, cr = { class: "text-gray-600" }, ur = { class: "grid grid-flow-col justify-between mt-1 mb-4" }, dr = {
3292
+ }, pr = { class: "max-w-sm grid gap-y-1 -mt-8" }, fr = { class: "mb-7" }, mr = { class: "text-gray-600" }, hr = { class: "grid grid-flow-col justify-between mt-1 mb-4" }, gr = {
3170
3293
  key: 0,
3171
3294
  class: "text-red-600 text-sm mb-2"
3172
- }, pr = { key: 0 }, fr = { key: 1 }, mr = {
3295
+ }, yr = { key: 0 }, vr = { key: 1 }, br = {
3173
3296
  __name: "SparkLoginView",
3174
3297
  props: {
3175
3298
  logo: {
@@ -3186,7 +3309,7 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3186
3309
  }
3187
3310
  },
3188
3311
  setup(e) {
3189
- const s = Q(), t = le(), o = rt(), l = K(), n = e, a = F(!1), c = F(""), r = async (i) => {
3312
+ const s = W(), t = le(), o = nt(), l = G(), n = e, a = E(!1), c = E(""), r = async (i) => {
3190
3313
  a.value = !0, c.value = "";
3191
3314
  try {
3192
3315
  await l.login(i);
@@ -3207,14 +3330,14 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3207
3330
  };
3208
3331
  return (i, u) => {
3209
3332
  const d = O("FormKit"), p = O("router-link");
3210
- return m(), h("div", or, [
3211
- f("div", ar, [
3333
+ return m(), h("div", ir, [
3334
+ f("div", cr, [
3212
3335
  n.logo ? (m(), h("img", {
3213
3336
  key: 0,
3214
3337
  src: n.logo,
3215
3338
  alt: "Logo",
3216
3339
  class: "h-[23px] w-auto"
3217
- }, null, 8, rr)) : (m(), h("svg", nr, [...u[0] || (u[0] = [
3340
+ }, null, 8, ur)) : (m(), h("svg", dr, [...u[0] || (u[0] = [
3218
3341
  f("path", {
3219
3342
  d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
3220
3343
  fill: "#1C64F2"
@@ -3233,10 +3356,10 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3233
3356
  }, null, -1)
3234
3357
  ])]))
3235
3358
  ]),
3236
- f("div", lr, [
3237
- f("div", ir, [
3359
+ f("div", pr, [
3360
+ f("div", fr, [
3238
3361
  u[1] || (u[1] = f("h1", { class: "text-4xl text-gray-900 semibold tracking-tight mb-3" }, "Log in", -1)),
3239
- f("p", cr, " Welcome back" + L(x(o).state.app ? ` to ${x(o).state.app}` : "") + "! Please enter your details. ", 1)
3362
+ f("p", mr, " Welcome back" + M(k(o).state.app ? ` to ${k(o).state.app}` : "") + "! Please enter your details. ", 1)
3240
3363
  ]),
3241
3364
  b(d, {
3242
3365
  type: "form",
@@ -3251,7 +3374,7 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3251
3374
  type: "email",
3252
3375
  validation: "required|email",
3253
3376
  "outer-class": "max-w-full",
3254
- value: x(l).state.devCredentials.username
3377
+ value: k(l).state.devCredentials.username
3255
3378
  }, null, 8, ["value"]),
3256
3379
  b(d, {
3257
3380
  label: "Password",
@@ -3260,29 +3383,29 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3260
3383
  type: "password",
3261
3384
  validation: "required",
3262
3385
  "outer-class": "max-w-full",
3263
- value: x(l).state.devCredentials.password
3386
+ value: k(l).state.devCredentials.password
3264
3387
  }, null, 8, ["value"]),
3265
- f("div", ur, [
3388
+ f("div", hr, [
3266
3389
  u[3] || (u[3] = f("span", null, null, -1)),
3267
3390
  b(p, {
3268
3391
  to: n.forgotPasswordRoute,
3269
3392
  class: "text-sm text-primary-600 font-semibold"
3270
3393
  }, {
3271
3394
  default: T(() => [...u[2] || (u[2] = [
3272
- E(" Forgot password ", -1)
3395
+ F(" Forgot password ", -1)
3273
3396
  ])]),
3274
3397
  _: 1
3275
3398
  }, 8, ["to"])
3276
3399
  ]),
3277
- c.value ? (m(), h("div", dr, L(c.value), 1)) : P("", !0),
3278
- b(x(G), {
3400
+ c.value ? (m(), h("div", gr, M(c.value), 1)) : L("", !0),
3401
+ b(k(Y), {
3279
3402
  type: "submit",
3280
3403
  size: "xl",
3281
3404
  disabled: a.value,
3282
3405
  "button-class": "w-full mb-2"
3283
3406
  }, {
3284
3407
  default: T(() => [
3285
- a.value ? (m(), h("span", fr, "Signing in...")) : (m(), h("span", pr, "Sign in"))
3408
+ a.value ? (m(), h("span", vr, "Signing in...")) : (m(), h("span", yr, "Sign in"))
3286
3409
  ]),
3287
3410
  _: 1
3288
3411
  }, 8, ["disabled"])
@@ -3293,7 +3416,7 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3293
3416
  ]);
3294
3417
  };
3295
3418
  }
3296
- }, hr = {
3419
+ }, xr = {
3297
3420
  __name: "SparkLogoutView",
3298
3421
  props: {
3299
3422
  defaultRedirect: {
@@ -3302,27 +3425,27 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3302
3425
  }
3303
3426
  },
3304
3427
  setup(e) {
3305
- const s = Q(), t = le(), o = K(), l = e;
3428
+ const s = W(), t = le(), o = G(), l = e;
3306
3429
  return _e(async () => {
3307
3430
  await o.logout();
3308
3431
  const n = t.query.redirect;
3309
3432
  n && n.startsWith("http") ? window.location.href = n : await s.push(n || l.defaultRedirect);
3310
3433
  }), (n, a) => null;
3311
3434
  }
3312
- }, gr = { class: "h-full grid place-content-center relative" }, yr = { class: "absolute top-8 left-8" }, vr = ["src"], br = {
3435
+ }, kr = { class: "h-full grid place-content-center relative" }, wr = { class: "absolute top-8 left-8" }, _r = ["src"], Sr = {
3313
3436
  key: 1,
3314
3437
  width: "59",
3315
3438
  height: "23",
3316
3439
  viewBox: "0 0 59 23",
3317
3440
  fill: "none",
3318
3441
  xmlns: "http://www.w3.org/2000/svg"
3319
- }, xr = { class: "max-w-sm grid gap-y-1 -mt-8" }, kr = {
3442
+ }, Cr = { class: "max-w-sm grid gap-y-1 -mt-8" }, $r = {
3320
3443
  key: 0,
3321
3444
  class: "text-red-600 text-sm mb-2"
3322
- }, wr = {
3445
+ }, Tr = {
3323
3446
  key: 1,
3324
3447
  class: "text-green-600 text-sm mb-2"
3325
- }, _r = { key: 0 }, Sr = { key: 1 }, Cr = {
3448
+ }, Pr = { key: 0 }, Lr = { key: 1 }, Mr = {
3326
3449
  __name: "SparkForgotPasswordView",
3327
3450
  props: {
3328
3451
  logo: {
@@ -3335,7 +3458,7 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3335
3458
  }
3336
3459
  },
3337
3460
  setup(e) {
3338
- const s = K(), t = e, o = F(!1), l = F(""), n = F(""), a = async ({ email: c }) => {
3461
+ const s = G(), t = e, o = E(!1), l = E(""), n = E(""), a = async ({ email: c }) => {
3339
3462
  o.value = !0, l.value = "", n.value = "";
3340
3463
  try {
3341
3464
  await ne.post(s.state.endpoints.passwordEmail, { email: c }), n.value = "Password reset link sent! Check your email.";
@@ -3347,14 +3470,14 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3347
3470
  };
3348
3471
  return (c, r) => {
3349
3472
  const i = O("FormKit"), u = O("router-link");
3350
- return m(), h("div", gr, [
3351
- f("div", yr, [
3473
+ return m(), h("div", kr, [
3474
+ f("div", wr, [
3352
3475
  t.logo ? (m(), h("img", {
3353
3476
  key: 0,
3354
3477
  src: t.logo,
3355
3478
  alt: "Logo",
3356
3479
  class: "h-[23px] w-auto"
3357
- }, null, 8, vr)) : (m(), h("svg", br, [...r[0] || (r[0] = [
3480
+ }, null, 8, _r)) : (m(), h("svg", Sr, [...r[0] || (r[0] = [
3358
3481
  f("path", {
3359
3482
  d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
3360
3483
  fill: "#1C64F2"
@@ -3373,7 +3496,7 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3373
3496
  }, null, -1)
3374
3497
  ])]))
3375
3498
  ]),
3376
- f("div", xr, [
3499
+ f("div", Cr, [
3377
3500
  r[2] || (r[2] = f("div", { class: "mb-7" }, [
3378
3501
  f("h1", { class: "text-4xl text-gray-900 semibold tracking-tight mb-3" }, "Reset password"),
3379
3502
  f("p", { class: "text-gray-600" }, " Enter your email and we'll send you a link to reset your password. ")
@@ -3392,16 +3515,16 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3392
3515
  validation: "required|email",
3393
3516
  "outer-class": "max-w-full"
3394
3517
  }),
3395
- l.value ? (m(), h("div", kr, L(l.value), 1)) : P("", !0),
3396
- n.value ? (m(), h("div", wr, L(n.value), 1)) : P("", !0),
3397
- b(x(G), {
3518
+ l.value ? (m(), h("div", $r, M(l.value), 1)) : L("", !0),
3519
+ n.value ? (m(), h("div", Tr, M(n.value), 1)) : L("", !0),
3520
+ b(k(Y), {
3398
3521
  type: "submit",
3399
3522
  size: "xl",
3400
3523
  disabled: o.value,
3401
3524
  "button-class": "w-full mb-2"
3402
3525
  }, {
3403
3526
  default: T(() => [
3404
- o.value ? (m(), h("span", Sr, "Sending...")) : (m(), h("span", _r, "Send reset link"))
3527
+ o.value ? (m(), h("span", Lr, "Sending...")) : (m(), h("span", Pr, "Send reset link"))
3405
3528
  ]),
3406
3529
  _: 1
3407
3530
  }, 8, ["disabled"]),
@@ -3410,7 +3533,7 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3410
3533
  class: "text-sm text-center text-primary-600 font-semibold block"
3411
3534
  }, {
3412
3535
  default: T(() => [...r[1] || (r[1] = [
3413
- E(" Back to login ", -1)
3536
+ F(" Back to login ", -1)
3414
3537
  ])]),
3415
3538
  _: 1
3416
3539
  }, 8, ["to"])
@@ -3421,17 +3544,17 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3421
3544
  ]);
3422
3545
  };
3423
3546
  }
3424
- }, $r = { class: "h-full grid place-content-center relative" }, Tr = { class: "absolute top-8 left-8" }, Pr = ["src"], Lr = {
3547
+ }, Hr = { class: "h-full grid place-content-center relative" }, Vr = { class: "absolute top-8 left-8" }, Rr = ["src"], Er = {
3425
3548
  key: 1,
3426
3549
  width: "59",
3427
3550
  height: "23",
3428
3551
  viewBox: "0 0 59 23",
3429
3552
  fill: "none",
3430
3553
  xmlns: "http://www.w3.org/2000/svg"
3431
- }, Mr = { class: "max-w-sm grid gap-y-1 -mt-8" }, Hr = {
3554
+ }, Ar = { class: "max-w-sm grid gap-y-1 -mt-8" }, Fr = {
3432
3555
  key: 0,
3433
3556
  class: "text-red-600 text-sm mb-2"
3434
- }, Vr = { key: 0 }, Rr = { key: 1 }, Ar = {
3557
+ }, Or = { key: 0 }, Br = { key: 1 }, Dr = {
3435
3558
  __name: "SparkResetPasswordView",
3436
3559
  props: {
3437
3560
  logo: {
@@ -3444,7 +3567,7 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3444
3567
  }
3445
3568
  },
3446
3569
  setup(e) {
3447
- const s = Q(), t = le(), o = K(), l = e, n = F(!1), a = F(""), c = async ({ password: r, password_confirmation: i }) => {
3570
+ const s = W(), t = le(), o = G(), l = e, n = E(!1), a = E(""), c = async ({ password: r, password_confirmation: i }) => {
3448
3571
  n.value = !0, a.value = "";
3449
3572
  try {
3450
3573
  await ne.post(o.state.endpoints.passwordReset, {
@@ -3461,14 +3584,14 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3461
3584
  };
3462
3585
  return (r, i) => {
3463
3586
  const u = O("FormKit");
3464
- return m(), h("div", $r, [
3465
- f("div", Tr, [
3587
+ return m(), h("div", Hr, [
3588
+ f("div", Vr, [
3466
3589
  l.logo ? (m(), h("img", {
3467
3590
  key: 0,
3468
3591
  src: l.logo,
3469
3592
  alt: "Logo",
3470
3593
  class: "h-[23px] w-auto"
3471
- }, null, 8, Pr)) : (m(), h("svg", Lr, [...i[0] || (i[0] = [
3594
+ }, null, 8, Rr)) : (m(), h("svg", Er, [...i[0] || (i[0] = [
3472
3595
  f("path", {
3473
3596
  d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
3474
3597
  fill: "#1C64F2"
@@ -3487,7 +3610,7 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3487
3610
  }, null, -1)
3488
3611
  ])]))
3489
3612
  ]),
3490
- f("div", Mr, [
3613
+ f("div", Ar, [
3491
3614
  i[1] || (i[1] = f("div", { class: "mb-7" }, [
3492
3615
  f("h1", { class: "text-4xl text-gray-900 semibold tracking-tight mb-3" }, "Set new password"),
3493
3616
  f("p", { class: "text-gray-600" }, " Enter your new password below. ")
@@ -3514,15 +3637,15 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3514
3637
  validation: "required|confirm:password",
3515
3638
  "outer-class": "max-w-full"
3516
3639
  }),
3517
- a.value ? (m(), h("div", Hr, L(a.value), 1)) : P("", !0),
3518
- b(x(G), {
3640
+ a.value ? (m(), h("div", Fr, M(a.value), 1)) : L("", !0),
3641
+ b(k(Y), {
3519
3642
  type: "submit",
3520
3643
  size: "xl",
3521
3644
  disabled: n.value,
3522
3645
  "button-class": "w-full mb-2"
3523
3646
  }, {
3524
3647
  default: T(() => [
3525
- n.value ? (m(), h("span", Rr, "Resetting...")) : (m(), h("span", Vr, "Reset password"))
3648
+ n.value ? (m(), h("span", Br, "Resetting...")) : (m(), h("span", Or, "Reset password"))
3526
3649
  ]),
3527
3650
  _: 1
3528
3651
  }, 8, ["disabled"])
@@ -3533,14 +3656,14 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3533
3656
  ]);
3534
3657
  };
3535
3658
  }
3536
- }, Er = { class: "h-full grid place-content-center relative" }, Fr = { class: "absolute top-8 left-8" }, Or = ["src"], Br = {
3659
+ }, zr = { class: "h-full grid place-content-center relative" }, jr = { class: "absolute top-8 left-8" }, Ir = ["src"], Nr = {
3537
3660
  key: 1,
3538
3661
  width: "59",
3539
3662
  height: "23",
3540
3663
  viewBox: "0 0 59 23",
3541
3664
  fill: "none",
3542
3665
  xmlns: "http://www.w3.org/2000/svg"
3543
- }, Dr = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, zr = { class: "flex gap-4 justify-center" }, jr = {
3666
+ }, Zr = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, qr = { class: "flex gap-4 justify-center" }, Ur = {
3544
3667
  __name: "SparkError403View",
3545
3668
  props: {
3546
3669
  logo: {
@@ -3553,17 +3676,17 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3553
3676
  }
3554
3677
  },
3555
3678
  setup(e) {
3556
- const s = Q(), t = e, o = () => {
3679
+ const s = W(), t = e, o = () => {
3557
3680
  s.push(t.homeRoute);
3558
3681
  };
3559
- return (l, n) => (m(), h("div", Er, [
3560
- f("div", Fr, [
3682
+ return (l, n) => (m(), h("div", zr, [
3683
+ f("div", jr, [
3561
3684
  t.logo ? (m(), h("img", {
3562
3685
  key: 0,
3563
3686
  src: t.logo,
3564
3687
  alt: "Logo",
3565
3688
  class: "h-[23px] w-auto"
3566
- }, null, 8, Or)) : (m(), h("svg", Br, [...n[0] || (n[0] = [
3689
+ }, null, 8, Ir)) : (m(), h("svg", Nr, [...n[0] || (n[0] = [
3567
3690
  f("path", {
3568
3691
  d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
3569
3692
  fill: "#1C64F2"
@@ -3582,23 +3705,23 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3582
3705
  }, null, -1)
3583
3706
  ])]))
3584
3707
  ]),
3585
- f("div", Dr, [
3708
+ f("div", Zr, [
3586
3709
  n[2] || (n[2] = f("div", null, [
3587
3710
  f("div", { class: "text-primary-600 text-7xl font-bold mb-4" }, "403"),
3588
3711
  f("h1", { class: "text-3xl text-gray-900 font-semibold tracking-tight mb-3" }, " Access Forbidden "),
3589
3712
  f("p", { class: "text-gray-600" }, [
3590
- E(" You don't have permission to access this resource."),
3713
+ F(" You don't have permission to access this resource."),
3591
3714
  f("br"),
3592
- E(" If you believe this is an error, please contact your administrator. ")
3715
+ F(" If you believe this is an error, please contact your administrator. ")
3593
3716
  ])
3594
3717
  ], -1)),
3595
- f("div", zr, [
3596
- b(x(G), {
3718
+ f("div", qr, [
3719
+ b(k(Y), {
3597
3720
  onClick: o,
3598
3721
  size: "lg"
3599
3722
  }, {
3600
3723
  default: T(() => [...n[1] || (n[1] = [
3601
- E(" Go to Home ", -1)
3724
+ F(" Go to Home ", -1)
3602
3725
  ])]),
3603
3726
  _: 1
3604
3727
  })
@@ -3606,14 +3729,14 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3606
3729
  ])
3607
3730
  ]));
3608
3731
  }
3609
- }, Ir = { class: "h-full grid place-content-center relative" }, Nr = { class: "absolute top-8 left-8" }, Zr = ["src"], qr = {
3732
+ }, Kr = { class: "h-full grid place-content-center relative" }, Gr = { class: "absolute top-8 left-8" }, Wr = ["src"], Yr = {
3610
3733
  key: 1,
3611
3734
  width: "59",
3612
3735
  height: "23",
3613
3736
  viewBox: "0 0 59 23",
3614
3737
  fill: "none",
3615
3738
  xmlns: "http://www.w3.org/2000/svg"
3616
- }, Ur = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, Kr = { class: "flex gap-4 justify-center" }, Gr = {
3739
+ }, Xr = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, Jr = { class: "flex gap-4 justify-center" }, Qr = {
3617
3740
  __name: "SparkError404View",
3618
3741
  props: {
3619
3742
  logo: {
@@ -3626,17 +3749,17 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3626
3749
  }
3627
3750
  },
3628
3751
  setup(e) {
3629
- const s = Q(), t = e, o = () => {
3752
+ const s = W(), t = e, o = () => {
3630
3753
  s.push(t.homeRoute);
3631
3754
  };
3632
- return (l, n) => (m(), h("div", Ir, [
3633
- f("div", Nr, [
3755
+ return (l, n) => (m(), h("div", Kr, [
3756
+ f("div", Gr, [
3634
3757
  t.logo ? (m(), h("img", {
3635
3758
  key: 0,
3636
3759
  src: t.logo,
3637
3760
  alt: "Logo",
3638
3761
  class: "h-[23px] w-auto"
3639
- }, null, 8, Zr)) : (m(), h("svg", qr, [...n[0] || (n[0] = [
3762
+ }, null, 8, Wr)) : (m(), h("svg", Yr, [...n[0] || (n[0] = [
3640
3763
  f("path", {
3641
3764
  d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
3642
3765
  fill: "#1C64F2"
@@ -3655,19 +3778,19 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3655
3778
  }, null, -1)
3656
3779
  ])]))
3657
3780
  ]),
3658
- f("div", Ur, [
3781
+ f("div", Xr, [
3659
3782
  n[2] || (n[2] = f("div", null, [
3660
3783
  f("div", { class: "text-primary-600 text-7xl font-bold mb-4" }, "404"),
3661
3784
  f("h1", { class: "text-3xl text-gray-900 font-semibold tracking-tight mb-3" }, " Page Not Found "),
3662
3785
  f("p", { class: "text-gray-600" }, " The page you're looking for doesn't exist or has been moved. ")
3663
3786
  ], -1)),
3664
- f("div", Kr, [
3665
- b(x(G), {
3787
+ f("div", Jr, [
3788
+ b(k(Y), {
3666
3789
  onClick: o,
3667
3790
  size: "lg"
3668
3791
  }, {
3669
3792
  default: T(() => [...n[1] || (n[1] = [
3670
- E(" Go to Home ", -1)
3793
+ F(" Go to Home ", -1)
3671
3794
  ])]),
3672
3795
  _: 1
3673
3796
  })
@@ -3675,14 +3798,14 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3675
3798
  ])
3676
3799
  ]));
3677
3800
  }
3678
- }, Wr = { class: "h-full grid place-content-center relative" }, Yr = { class: "absolute top-8 left-8" }, Xr = ["src"], Jr = {
3801
+ }, en = { class: "h-full grid place-content-center relative" }, tn = { class: "absolute top-8 left-8" }, sn = ["src"], on = {
3679
3802
  key: 1,
3680
3803
  width: "59",
3681
3804
  height: "23",
3682
3805
  viewBox: "0 0 59 23",
3683
3806
  fill: "none",
3684
3807
  xmlns: "http://www.w3.org/2000/svg"
3685
- }, Qr = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, en = { class: "text-primary-600 text-7xl font-bold mb-4" }, tn = { class: "text-3xl text-gray-900 font-semibold tracking-tight mb-3" }, sn = { class: "text-gray-600" }, on = { class: "flex gap-4 justify-center" }, On = {
3808
+ }, an = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, rn = { class: "text-primary-600 text-7xl font-bold mb-4" }, nn = { class: "text-3xl text-gray-900 font-semibold tracking-tight mb-3" }, ln = { class: "text-gray-600" }, cn = { class: "flex gap-4 justify-center" }, Nn = {
3686
3809
  __name: "SparkErrorGeneralView",
3687
3810
  props: {
3688
3811
  logo: {
@@ -3707,17 +3830,17 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3707
3830
  }
3708
3831
  },
3709
3832
  setup(e) {
3710
- const s = Q(), t = e, o = () => {
3833
+ const s = W(), t = e, o = () => {
3711
3834
  s.push(t.homeRoute);
3712
3835
  };
3713
- return (l, n) => (m(), h("div", Wr, [
3714
- f("div", Yr, [
3836
+ return (l, n) => (m(), h("div", en, [
3837
+ f("div", tn, [
3715
3838
  t.logo ? (m(), h("img", {
3716
3839
  key: 0,
3717
3840
  src: t.logo,
3718
3841
  alt: "Logo",
3719
3842
  class: "h-[23px] w-auto"
3720
- }, null, 8, Xr)) : (m(), h("svg", Jr, [...n[0] || (n[0] = [
3843
+ }, null, 8, sn)) : (m(), h("svg", on, [...n[0] || (n[0] = [
3721
3844
  f("path", {
3722
3845
  d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
3723
3846
  fill: "#1C64F2"
@@ -3736,19 +3859,19 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3736
3859
  }, null, -1)
3737
3860
  ])]))
3738
3861
  ]),
3739
- f("div", Qr, [
3862
+ f("div", an, [
3740
3863
  f("div", null, [
3741
- f("div", en, L(t.errorCode || "Error"), 1),
3742
- f("h1", tn, L(t.title || "Something went wrong"), 1),
3743
- f("p", sn, L(t.message || "An unexpected error occurred. Please try again later."), 1)
3864
+ f("div", rn, M(t.errorCode || "Error"), 1),
3865
+ f("h1", nn, M(t.title || "Something went wrong"), 1),
3866
+ f("p", ln, M(t.message || "An unexpected error occurred. Please try again later."), 1)
3744
3867
  ]),
3745
- f("div", on, [
3746
- b(x(G), {
3868
+ f("div", cn, [
3869
+ b(k(Y), {
3747
3870
  onClick: o,
3748
3871
  size: "lg"
3749
3872
  }, {
3750
3873
  default: T(() => [...n[1] || (n[1] = [
3751
- E(" Go to Home ", -1)
3874
+ F(" Go to Home ", -1)
3752
3875
  ])]),
3753
3876
  _: 1
3754
3877
  })
@@ -3757,7 +3880,7 @@ const ve = "bolt-next-token", K = ue("auth", () => {
3757
3880
  ]));
3758
3881
  }
3759
3882
  };
3760
- function Bn(e = {}) {
3883
+ function Zn(e = {}) {
3761
3884
  const {
3762
3885
  loginPath: s = "/login",
3763
3886
  logoutPath: t = "/logout",
@@ -3770,41 +3893,41 @@ function Bn(e = {}) {
3770
3893
  {
3771
3894
  path: s,
3772
3895
  name: "login",
3773
- component: mr,
3896
+ component: br,
3774
3897
  props: { logo: n, defaultRedirect: a },
3775
3898
  meta: { auth: !1 }
3776
3899
  },
3777
3900
  {
3778
3901
  path: t,
3779
3902
  name: "logout",
3780
- component: hr,
3903
+ component: xr,
3781
3904
  props: { defaultRedirect: s },
3782
3905
  meta: { auth: !1 }
3783
3906
  },
3784
3907
  {
3785
3908
  path: o,
3786
3909
  name: "forgot-password",
3787
- component: Cr,
3910
+ component: Mr,
3788
3911
  props: { logo: n, loginRoute: s },
3789
3912
  meta: { auth: !1 }
3790
3913
  },
3791
3914
  {
3792
3915
  path: l,
3793
3916
  name: "password-reset",
3794
- component: Ar,
3917
+ component: Dr,
3795
3918
  props: { logo: n, loginRoute: s },
3796
3919
  meta: { auth: !1 }
3797
3920
  }
3798
3921
  ];
3799
3922
  }
3800
- function Dn(e, s = {}) {
3923
+ function qn(e, s = {}) {
3801
3924
  const { defaultAuthenticatedRoute: t = "/dashboard" } = s;
3802
3925
  e.beforeEach(async (o, l, n) => {
3803
- const a = K();
3804
- a.state.ready || await a.fetchUser(), an(o, n, a, t);
3926
+ const a = G();
3927
+ a.state.ready || await a.fetchUser(), un(o, n, a, t);
3805
3928
  });
3806
3929
  }
3807
- function an(e, s, t, o) {
3930
+ function un(e, s, t, o) {
3808
3931
  const l = e.meta.auth !== !1, n = t.check;
3809
3932
  if (t.state.overrideToken && e.path === "/logout") {
3810
3933
  s({ path: o });
@@ -3842,7 +3965,7 @@ function an(e, s, t, o) {
3842
3965
  s();
3843
3966
  }
3844
3967
  }
3845
- function zn(e = {}) {
3968
+ function Un(e = {}) {
3846
3969
  const {
3847
3970
  forbiddenPath: s = "/error/403",
3848
3971
  logo: t = "",
@@ -3851,12 +3974,12 @@ function zn(e = {}) {
3851
3974
  return {
3852
3975
  path: s,
3853
3976
  name: "error-403",
3854
- component: jr,
3977
+ component: Ur,
3855
3978
  props: { logo: t, homeRoute: o },
3856
3979
  meta: { auth: !1 }
3857
3980
  };
3858
3981
  }
3859
- function jn(e = {}) {
3982
+ function Kn(e = {}) {
3860
3983
  const {
3861
3984
  logo: s = "",
3862
3985
  homeRoute: t = "/dashboard"
@@ -3864,74 +3987,25 @@ function jn(e = {}) {
3864
3987
  return {
3865
3988
  path: "/:pathMatch(.*)*",
3866
3989
  name: "error-404",
3867
- component: Gr,
3990
+ component: Qr,
3868
3991
  props: { logo: s, homeRoute: t },
3869
3992
  meta: { auth: !1 }
3870
3993
  };
3871
3994
  }
3872
- function In(e, s) {
3995
+ function Gn(e, s) {
3873
3996
  e.beforeResolve(async (t) => {
3874
3997
  if (t.meta.auth !== !1) {
3875
- const o = K();
3998
+ const o = G();
3876
3999
  o.state.ready && o.check && await s();
3877
4000
  }
3878
4001
  });
3879
4002
  }
3880
- function rn(e = {}) {
3881
- const s = ne.create({
3882
- baseURL: e.baseURL || "",
3883
- timeout: e.timeout || 3e4,
3884
- headers: {
3885
- "Content-Type": "application/json",
3886
- ...e.headers
3887
- }
3888
- });
3889
- return s.interceptors.request.use(
3890
- (t) => {
3891
- try {
3892
- const o = K();
3893
- o.state.overrideToken ? t.headers.Authorization = `Bearer ${o.state.overrideToken}` : o.state.token && (t.headers.Authorization = `Bearer ${o.state.token}`);
3894
- } catch {
3895
- }
3896
- return t;
3897
- },
3898
- (t) => Promise.reject(t)
3899
- ), s.interceptors.response.use(
3900
- (t) => t,
3901
- async (t) => {
3902
- if (t.response?.status === 401)
3903
- try {
3904
- const o = K();
3905
- await o.logout(), window.location.href = o.state.routes.auth;
3906
- } catch (o) {
3907
- console.error("Error during auto-logout:", o), window.location.href = "/login";
3908
- }
3909
- if (t.response?.status === 403)
3910
- try {
3911
- const o = K();
3912
- window.location.href = o.state.routes.forbidden;
3913
- } catch (o) {
3914
- console.error("Error during 403 redirect:", o), window.location.href = "/error/403";
3915
- }
3916
- return Promise.reject(t);
3917
- }
3918
- ), s;
3919
- }
3920
- let re = null;
3921
- function Nn(e, s = {}) {
3922
- return re = rn(s), e.provide("axios", re), e.config.globalProperties.$axios = re, re;
3923
- }
3924
- function Zn() {
3925
- if (!re)
3926
- throw new Error("Axios instance not initialized. Call setupAxios() first.");
3927
- return re;
3928
- }
3929
- const qn = ue("sparkNav", () => {
3930
- const e = q({
4003
+ const Wn = ue("sparkNav", () => {
4004
+ const e = U({
3931
4005
  menu: [],
3932
4006
  collapsed: !1,
3933
4007
  hidden: !1
3934
- }), s = Q(), t = le(), o = (i = []) => {
4008
+ }), s = W(), t = le(), o = (i = []) => {
3935
4009
  e.menu = i, r();
3936
4010
  }, l = (i, u) => {
3937
4011
  for (const d of i) {
@@ -3985,64 +4059,68 @@ export {
3985
4059
  A as Icons,
3986
4060
  oe as SparkAlert,
3987
4061
  As as SparkAppSelector,
3988
- oo as SparkBrandSelector,
3989
- G as SparkButton,
3990
- ro as SparkButtonGroup,
3991
- Vn as SparkCard,
3992
- An as SparkDefaultContainer,
3993
- jr as SparkError403View,
3994
- Gr as SparkError404View,
3995
- On as SparkErrorGeneralView,
3996
- Cr as SparkForgotPasswordView,
3997
- mr as SparkLoginView,
3998
- hr as SparkLogoutView,
3999
- go as SparkModalContainer,
4000
- po as SparkModalDialog,
4001
- Mn as SparkNotificationOutlet,
4062
+ ao as SparkBrandSelector,
4063
+ Y as SparkButton,
4064
+ no as SparkButtonGroup,
4065
+ Fn as SparkCard,
4066
+ jn as SparkDefaultContainer,
4067
+ Ur as SparkError403View,
4068
+ Qr as SparkError404View,
4069
+ Nn as SparkErrorGeneralView,
4070
+ Mr as SparkForgotPasswordView,
4071
+ br as SparkLoginView,
4072
+ xr as SparkLogoutView,
4073
+ yo as SparkModalContainer,
4074
+ fo as SparkModalDialog,
4075
+ En as SparkNotificationOutlet,
4002
4076
  Te as SparkOverlay,
4003
- En as SparkPublicContainer,
4004
- Ar as SparkResetPasswordView,
4005
- Rn as SparkTable,
4006
- ba as SparkTableDatePicker,
4007
- ga as SparkTableFilterButtons,
4008
- pa as SparkTableFilterSelect,
4009
- oa as SparkTablePaginationPaging,
4010
- na as SparkTablePaginationPerPage,
4011
- _a as SparkTableReset,
4012
- ca as SparkTableSearch,
4077
+ In as SparkPublicContainer,
4078
+ Dr as SparkResetPasswordView,
4079
+ On as SparkTable,
4080
+ xa as SparkTableDatePicker,
4081
+ ya as SparkTableFilterButtons,
4082
+ fa as SparkTableFilterSelect,
4083
+ aa as SparkTablePaginationPaging,
4084
+ la as SparkTablePaginationPerPage,
4085
+ Sa as SparkTableReset,
4086
+ ua as SparkTableSearch,
4013
4087
  Ve as SparkTableToolbar,
4014
- Hn as SparkToastContainer,
4015
- Pn as addIcons,
4016
- zn as create403Route,
4017
- jn as create404Route,
4018
- Bn as createAuthRoutes,
4019
- rn as createAxiosInstance,
4020
- Fn as createBootstrapService,
4021
- wo as customiseHeader,
4022
- er as deleteCookie,
4023
- $n as formKitGenesisOverride,
4024
- Tn as formKitIconLoader,
4025
- Cn as formKitIcons,
4026
- Do as formatTemporal,
4027
- Zn as getAxiosInstance,
4028
- Ja as getCookie,
4029
- it as getDomain,
4030
- zo as parseDatetime,
4031
- vo as renderHeaderTitle,
4032
- Qa as setCookie,
4033
- Dn as setupAuthGuards,
4034
- Nn as setupAxios,
4035
- In as setupBootstrapGuard,
4036
- Ln as setupFontAwesome,
4088
+ An as SparkToastContainer,
4089
+ Vn as addIcons,
4090
+ Un as create403Route,
4091
+ Kn as create404Route,
4092
+ Zn as createAuthRoutes,
4093
+ Fa as createAxiosInstance,
4094
+ Bn as createBootstrapService,
4095
+ _o as customiseHeader,
4096
+ Ra as deleteCookie,
4097
+ Mn as formKitGenesisOverride,
4098
+ Hn as formKitIconLoader,
4099
+ Ln as formKitIcons,
4100
+ zo as formatTemporal,
4101
+ Oa as getAxiosInstance,
4102
+ Ha as getCookie,
4103
+ ct as getDomain,
4104
+ Ae as getFormLevelMessage,
4105
+ Da as isValidationError,
4106
+ jo as parseDatetime,
4107
+ Ba as parseLaravelErrors,
4108
+ bo as renderHeaderTitle,
4109
+ Va as setCookie,
4110
+ qn as setupAuthGuards,
4111
+ Dn as setupAxios,
4112
+ Gn as setupBootstrapGuard,
4113
+ Rn as setupFontAwesome,
4037
4114
  ae as sparkModalService,
4038
- X as sparkNotificationService,
4115
+ q as sparkNotificationService,
4039
4116
  se as sparkOverlayService,
4040
- Zo as updateRow,
4041
- at as useSparkAppSelectorStore,
4042
- rt as useSparkAppStore,
4043
- K as useSparkAuthStore,
4044
- lt as useSparkBrandFilterStore,
4045
- qn as useSparkNavStore,
4046
- Ae as useSparkOverlay,
4047
- qo as useSparkTableRouteSync
4117
+ qo as updateRow,
4118
+ zn as useFormSubmission,
4119
+ rt as useSparkAppSelectorStore,
4120
+ nt as useSparkAppStore,
4121
+ G as useSparkAuthStore,
4122
+ it as useSparkBrandFilterStore,
4123
+ Wn as useSparkNavStore,
4124
+ Ee as useSparkOverlay,
4125
+ Uo as useSparkTableRouteSync
4048
4126
  };