@aerogel/core 0.0.0-next.e4c0d5bd2801fbe93545477ea515af53df69b522 → 0.0.0-next.eb6fcafb87cdccbc72933f616799ca3124d1eca8

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.
Files changed (37) hide show
  1. package/dist/aerogel-core.d.ts +257 -83
  2. package/dist/aerogel-core.js +1607 -1230
  3. package/dist/aerogel-core.js.map +1 -1
  4. package/package.json +2 -1
  5. package/src/components/contracts/AlertModal.ts +1 -1
  6. package/src/components/contracts/DropdownMenu.ts +2 -2
  7. package/src/components/contracts/Select.ts +2 -2
  8. package/src/components/headless/HeadlessInputInput.vue +16 -5
  9. package/src/components/headless/HeadlessSwitch.vue +96 -0
  10. package/src/components/headless/index.ts +1 -0
  11. package/src/components/ui/Button.vue +15 -0
  12. package/src/components/ui/Input.vue +2 -2
  13. package/src/components/ui/Modal.vue +12 -4
  14. package/src/components/ui/SelectLabel.vue +5 -1
  15. package/src/components/ui/Setting.vue +31 -0
  16. package/src/components/ui/StartupCrash.vue +51 -6
  17. package/src/components/ui/Switch.vue +11 -0
  18. package/src/components/ui/TextArea.vue +56 -0
  19. package/src/components/ui/index.ts +3 -0
  20. package/src/errors/Errors.state.ts +1 -0
  21. package/src/errors/Errors.ts +27 -6
  22. package/src/errors/index.ts +6 -2
  23. package/src/errors/settings/Debug.vue +14 -0
  24. package/src/errors/settings/index.ts +10 -0
  25. package/src/forms/FormController.test.ts +3 -0
  26. package/src/forms/FormController.ts +25 -16
  27. package/src/forms/utils.ts +25 -0
  28. package/src/forms/validation.ts +31 -0
  29. package/src/index.css +3 -0
  30. package/src/lang/index.ts +1 -1
  31. package/src/lang/settings/Language.vue +1 -1
  32. package/src/services/Service.ts +11 -6
  33. package/src/services/index.ts +2 -2
  34. package/src/testing/index.ts +4 -0
  35. package/src/ui/UI.ts +20 -4
  36. package/src/utils/app.ts +7 -0
  37. package/src/utils/index.ts +1 -0
@@ -1,39 +1,42 @@
1
- var xt = Object.defineProperty;
2
- var Ct = (t, s, e) => s in t ? xt(t, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[s] = e;
3
- var w = (t, s, e) => Ct(t, typeof s != "symbol" ? s + "" : s, e);
4
- import { markRaw as R, Comment as St, Text as kt, Static as Mt, inject as le, reactive as de, nextTick as qe, defineComponent as g, useAttrs as Fe, useSlots as Me, computed as u, createBlock as f, openBlock as i, h as Et, unref as o, mergeProps as I, withCtx as m, renderSlot as _, createPropsRestProxy as J, onUnmounted as me, ref as F, readonly as Ee, onMounted as Ht, watch as He, toRaw as Lt, watchEffect as ie, createVNode as p, normalizeProps as ee, guardReactiveProps as te, createTextVNode as P, toDisplayString as C, normalizeClass as k, createElementBlock as b, Fragment as B, renderList as q, provide as se, resolveDynamicComponent as N, createCommentVNode as M, createElementVNode as y, toRef as Ve, useTemplateRef as re, withModifiers as Ue, withDirectives as Oe, vModelCheckbox as It, normalizeStyle as Tt, createApp as Vt, vModelText as Rt } from "vue";
5
- import { JSError as fe, tap as Z, MagicObject as Ne, PromisedValue as W, Storage as U, objectOnly as ne, arrayFrom as We, isEmpty as ye, objectDeepClone as Pt, fail as K, facade as G, arrayRemove as $e, getEnv as At, updateLocationQueryParameters as zt, forever as jt, toString as D, isDevelopment as Y, isTesting as Le, after as xe, uuid as oe, required as Bt, isObject as ce, objectWithoutEmpty as Ke, stringMatchAll as Qe, isInstanceOf as Re, objectWithout as Dt, noop as qt, debounce as Ft, value as Ut, stringExcerpt as Ot, arraySorted as Nt, ListenersManager as Wt, toError as Kt, round as Qt } from "@noeldemartin/utils";
6
- import O from "virtual:aerogel";
7
- import { createPinia as Jt, setActivePinia as Zt, defineStore as Gt } from "pinia";
8
- import Xt from "dompurify";
9
- import { marked as Yt, Renderer as Pe } from "marked";
10
- import { Primitive as es, SelectValue as Ae, SelectTrigger as ts, SelectIcon as ss, SelectItem as rs, SelectItemText as ns, SelectPortal as as, SelectContent as os, SelectViewport as ls, SelectRoot as is, Label as cs, useForwardExpose as Ie, DialogRoot as us, DialogPortal as ds, DialogContent as ps, DialogDescription as ms, DialogOverlay as fs, DialogTitle as hs, ToastClose as gs, ToastRoot as vs, ToastProvider as bs, ToastViewport as ys, DropdownMenuItem as _s, DropdownMenuContent as ws, DropdownMenuRoot as $s, DropdownMenuTrigger as xs, DropdownMenuPortal as Cs } from "reka-ui";
11
- import Ss from "clsx";
12
- import { cva as ks } from "class-variance-authority";
13
- import { twMerge as Ms } from "tailwind-merge";
14
- class Ce extends fe {
1
+ var kt = Object.defineProperty;
2
+ var St = (t, s, e) => s in t ? kt(t, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[s] = e;
3
+ var _ = (t, s, e) => St(t, typeof s != "symbol" ? s + "" : s, e);
4
+ import { markRaw as E, Comment as Tt, Text as Mt, Static as Ht, inject as X, reactive as pe, nextTick as Oe, unref as l, watchEffect as Y, defineComponent as g, computed as c, createBlock as h, openBlock as u, mergeProps as H, withCtx as f, renderSlot as w, createPropsRestProxy as N, onUnmounted as ge, ref as U, readonly as ve, useAttrs as Ne, onMounted as Et, watch as Me, toRaw as Vt, createVNode as p, normalizeProps as ne, guardReactiveProps as ae, createTextVNode as I, toDisplayString as x, normalizeClass as k, createElementBlock as b, Fragment as D, renderList as F, provide as le, resolveDynamicComponent as W, useSlots as He, createCommentVNode as T, createElementVNode as y, h as Lt, toRef as Re, useTemplateRef as G, withModifiers as We, withDirectives as Ke, vModelCheckbox as It, normalizeStyle as qt, resolveComponent as zt, createApp as Rt, vModelText as Pt } from "vue";
5
+ import { JSError as be, stringToSlug as At, tap as ee, MagicObject as Qe, PromisedValue as K, Storage as O, objectOnly as oe, arrayFrom as Je, isEmpty as xe, objectDeepClone as Dt, fail as Q, facade as te, arrayRemove as Se, getEnv as jt, updateLocationQueryParameters as Bt, forever as Ft, toString as B, isDevelopment as J, isTesting as Ee, after as ue, uuid as re, required as Ut, isObject as ce, objectWithoutEmpty as Ze, stringMatchAll as Xe, objectWithout as Ot, noop as Nt, debounce as Wt, value as Kt, isInstanceOf as Pe, stringExcerpt as Qt, arraySorted as Jt, ListenersManager as Zt, toError as Xt, round as Yt } from "@noeldemartin/utils";
6
+ import j from "virtual:aerogel";
7
+ import { createPinia as Gt, setActivePinia as es, defineStore as ts } from "pinia";
8
+ import ss from "dompurify";
9
+ import { marked as rs, Renderer as Ae } from "marked";
10
+ import ns from "clsx";
11
+ import { cva as as } from "class-variance-authority";
12
+ import { twMerge as ls } from "tailwind-merge";
13
+ import { Primitive as os, SelectValue as De, SelectTrigger as is, SelectIcon as us, SelectItem as cs, SelectItemText as ds, SelectPortal as ps, SelectContent as ms, SelectViewport as fs, SelectRoot as hs, Label as gs, useForwardExpose as Ve, SwitchRoot as vs, SwitchThumb as bs, DialogRoot as ys, DialogPortal as ws, DialogContent as $s, DialogDescription as _s, DialogOverlay as xs, DialogTitle as Cs, ToastClose as ks, ToastRoot as Ss, ToastProvider as Ts, ToastViewport as Ms, DropdownMenuItem as Hs, DropdownMenuContent as Es, DropdownMenuRoot as Vs, DropdownMenuTrigger as Ls, DropdownMenuPortal as Is } from "reka-ui";
14
+ class Te extends be {
15
15
  constructor(s, e) {
16
16
  super(`Service '${s}' failed booting`, { cause: e });
17
17
  }
18
18
  }
19
- let Te = null;
20
- function Je() {
21
- return Te ?? Es();
19
+ function qs() {
20
+ return j.namespace ?? At(j.name);
22
21
  }
23
- function Es() {
24
- return Z(Jt(), (t) => {
25
- Te = t, Zt(t);
22
+ let Le = null;
23
+ function Ye() {
24
+ return Le ?? zs();
25
+ }
26
+ function zs() {
27
+ return ee(Gt(), (t) => {
28
+ Le = t, es(t);
26
29
  });
27
30
  }
28
- function Hs() {
29
- return Te ?? Je();
31
+ function Rs() {
32
+ return Le ?? Ye();
30
33
  }
31
- function Ls(t, s) {
32
- return Je(), Gt(t, s)();
34
+ function Ps(t, s) {
35
+ return Ye(), ts(t, s)();
33
36
  }
34
- function he(t) {
37
+ function ye(t) {
35
38
  var s;
36
- return s = class extends ge {
39
+ return s = class extends we {
37
40
  usesStore() {
38
41
  return !0;
39
42
  }
@@ -67,19 +70,19 @@ To fix this problem, declare your initialState as a function instead.`
67
70
  var r;
68
71
  return ((r = t.restore) == null ? void 0 : r.call(t, e)) ?? e;
69
72
  }
70
- }, w(s, "persist", t.persist ?? []), s;
73
+ }, _(s, "persist", t.persist ?? []), s;
71
74
  }
72
- var we;
73
- let ge = (we = class extends Ne {
75
+ var ke;
76
+ let we = (ke = class extends Qe {
74
77
  constructor() {
75
78
  super();
76
- w(this, "_name");
77
- w(this, "_booted");
78
- w(this, "_computedStateKeys");
79
- w(this, "_watchers");
80
- w(this, "_store");
79
+ _(this, "_name");
80
+ _(this, "_booted");
81
+ _(this, "_computedStateKeys");
82
+ _(this, "_watchers");
83
+ _(this, "_store");
81
84
  const e = this.getComputedStateDefinition();
82
- this._name = this.getName() ?? new.target.name, this._booted = new W(), this._computedStateKeys = new Set(Object.keys(e)), this._watchers = this.getStateWatchers(), this._store = this.usesStore() && Ls(this._name, {
85
+ this._name = this.getName() ?? new.target.name, this._booted = new K(), this._computedStateKeys = new Set(Object.keys(e)), this._watchers = this.getStateWatchers(), this._store = this.usesStore() && Ps(this._name, {
83
86
  state: () => this.getInitialState(),
84
87
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
85
88
  getters: e
@@ -92,7 +95,7 @@ let ge = (we = class extends Ne {
92
95
  return super.static(e);
93
96
  }
94
97
  launch() {
95
- const e = (r) => this._booted.reject(new Ce(this._name, r));
98
+ const e = (r) => this._booted.reject(new Te(this._name, r));
96
99
  try {
97
100
  this.frameworkBoot().then(() => this.boot()).then(() => this._booted.resolve()).catch(e);
98
101
  } catch (r) {
@@ -101,7 +104,7 @@ let ge = (we = class extends Ne {
101
104
  return this._booted;
102
105
  }
103
106
  hasPersistedState() {
104
- return U.has(this._name);
107
+ return O.has(this.storageKey);
105
108
  }
106
109
  hasState(e) {
107
110
  return this._store ? e in this._store.$state || this._computedStateKeys.has(e) : !1;
@@ -113,14 +116,14 @@ let ge = (we = class extends Ne {
113
116
  setState(e, r) {
114
117
  if (!this._store)
115
118
  return;
116
- const n = typeof e == "string" ? { [e]: r } : e, a = ne(this._store.$state, Object.keys(n));
119
+ const n = typeof e == "string" ? { [e]: r } : e, a = oe(this._store.$state, Object.keys(n));
117
120
  Object.assign(this._store.$state, n), this.onStateUpdated(n, a);
118
121
  }
119
122
  updatePersistedState(e) {
120
123
  if (!this._store)
121
124
  return;
122
- const r = We(e), n = ne(this._store.$state, r);
123
- ye(n) || this.onPersistentStateUpdated(n);
125
+ const r = Je(e), n = oe(this._store.$state, r);
126
+ xe(n) || this.onPersistentStateUpdated(n);
124
127
  }
125
128
  __get(e) {
126
129
  return this.hasState(e) ? this.getState(e) : super.__get(e);
@@ -128,19 +131,22 @@ let ge = (we = class extends Ne {
128
131
  __set(e, r) {
129
132
  this.setState({ [e]: r });
130
133
  }
134
+ get storageKey() {
135
+ return `${qs()}:${this._name}`;
136
+ }
131
137
  onStateUpdated(e, r) {
132
- const n = ne(e, this.static("persist"));
133
- ye(n) || this.onPersistentStateUpdated(n);
138
+ const n = oe(e, this.static("persist"));
139
+ xe(n) || this.onPersistentStateUpdated(n);
134
140
  for (const a in e) {
135
- const l = this._watchers[a];
136
- !l || e[a] === r[a] || l.call(this, e[a], r[a]);
141
+ const i = this._watchers[a];
142
+ !i || e[a] === r[a] || i.call(this, e[a], r[a]);
137
143
  }
138
144
  }
139
145
  onPersistentStateUpdated(e) {
140
- const r = U.get(this._name);
141
- r && U.set(this._name, {
146
+ const r = O.get(this.storageKey);
147
+ r && O.set(this.storageKey, {
142
148
  ...r,
143
- ...this.serializePersistedState(Pt(e))
149
+ ...this.serializePersistedState(Dt(e))
144
150
  });
145
151
  }
146
152
  usesStore() {
@@ -170,28 +176,28 @@ let ge = (we = class extends Ne {
170
176
  async boot() {
171
177
  }
172
178
  restorePersistedState() {
173
- if (!(!this.usesStore() || ye(this.static("persist")))) {
174
- if (U.has(this._name)) {
175
- const e = U.require(this._name);
179
+ if (!(!this.usesStore() || xe(this.static("persist")))) {
180
+ if (O.has(this.storageKey)) {
181
+ const e = O.require(this.storageKey);
176
182
  this.setState(this.deserializePersistedState(e));
177
183
  return;
178
184
  }
179
- U.set(this._name, ne(this.getState(), this.static("persist")));
185
+ O.set(this.storageKey, oe(this.getState(), this.static("persist")));
180
186
  }
181
187
  }
182
188
  requireStore() {
183
- return this._store ? this._store : K(`Failed getting '${this._name}' store`);
189
+ return this._store ? this._store : Q(`Failed getting '${this._name}' store`);
184
190
  }
185
- }, w(we, "persist", []), we);
186
- const Ia = {
191
+ }, _(ke, "persist", []), ke);
192
+ const ll = {
187
193
  Low: -256,
188
194
  Default: 0,
189
195
  High: 256
190
196
  };
191
- class Is extends ge {
197
+ class As extends we {
192
198
  constructor() {
193
199
  super(...arguments);
194
- w(this, "listeners", {});
200
+ _(this, "listeners", {});
195
201
  }
196
202
  async boot() {
197
203
  Object.entries(globalThis.__aerogelEvents__ ?? {}).forEach(([e, r]) => (
@@ -202,57 +208,57 @@ class Is extends ge {
202
208
  async emit(e, r) {
203
209
  var a;
204
210
  const n = this.listeners[e] ?? { priorities: [], handlers: {} };
205
- for (const l of n.priorities)
206
- await Promise.all(((a = n.handlers[l]) == null ? void 0 : a.map((c) => c(r))) ?? []);
211
+ for (const i of n.priorities)
212
+ await Promise.all(((a = n.handlers[i]) == null ? void 0 : a.map((o) => o(r))) ?? []);
207
213
  }
208
214
  // prettier-ignore
209
215
  /* eslint-enable max-len */
210
216
  on(e, r, n) {
211
- const a = typeof r == "function" ? {} : typeof r == "number" ? { priority: r } : r, l = typeof r == "function" ? r : n;
212
- return this.registerListener(e, a, l), () => this.off(e, l);
217
+ const a = typeof r == "function" ? {} : typeof r == "number" ? { priority: r } : r, i = typeof r == "function" ? r : n;
218
+ return this.registerListener(e, a, i), () => this.off(e, i);
213
219
  }
214
220
  // prettier-ignore
215
221
  /* eslint-enable max-len */
216
222
  once(e, r, n) {
217
223
  let a = null;
218
- const l = typeof r == "function" ? {} : r, c = typeof r == "function" ? r : n;
219
- return Z(
224
+ const i = typeof r == "function" ? {} : r, o = typeof r == "function" ? r : n;
225
+ return ee(
220
226
  () => a && this.off(e, a),
221
227
  (d) => {
222
- a = (...v) => (d(), c(...v)), this.registerListener(e, l, c);
228
+ a = (...v) => (d(), o(...v)), this.registerListener(e, i, o);
223
229
  }
224
230
  );
225
231
  }
226
232
  off(e, r) {
227
- var l;
233
+ var i;
228
234
  const n = this.listeners[e];
229
235
  if (!n)
230
236
  return;
231
237
  const a = [...n.priorities];
232
- for (const c of a)
233
- $e(n.handlers[c] ?? [], r), ((l = n.handlers[c]) == null ? void 0 : l.length) === 0 && (delete n.handlers[c], $e(n.priorities, c));
238
+ for (const o of a)
239
+ Se(n.handlers[o] ?? [], r), ((i = n.handlers[o]) == null ? void 0 : i.length) === 0 && (delete n.handlers[o], Se(n.priorities, o));
234
240
  n.priorities.length === 0 && delete this.listeners[e];
235
241
  }
236
242
  registerListener(e, r, n) {
237
- var d, v, x;
243
+ var d, v, $;
238
244
  const a = r.priority ?? 0;
239
245
  e in this.listeners || (this.listeners[e] = { priorities: [], handlers: {} });
240
- const l = ((d = this.listeners[e]) == null ? void 0 : d.priorities) ?? K(`priorities missing for event '${e}'`), c = ((v = this.listeners[e]) == null ? void 0 : v.handlers) ?? K(`handlers missing for event '${e}'`);
241
- l.includes(a) || (l.push(a), l.sort((h, $) => $ - h), c[a] = []), (x = c[a]) == null || x.push(n);
246
+ const i = ((d = this.listeners[e]) == null ? void 0 : d.priorities) ?? Q(`priorities missing for event '${e}'`), o = ((v = this.listeners[e]) == null ? void 0 : v.handlers) ?? Q(`handlers missing for event '${e}'`);
247
+ i.includes(a) || (i.push(a), i.sort((m, C) => C - m), o[a] = []), ($ = o[a]) == null || $.push(n);
242
248
  }
243
249
  }
244
- const T = G(Is);
245
- function Ta(t) {
250
+ const R = te(As);
251
+ function ol(t) {
246
252
  return t;
247
253
  }
248
- const Ts = he({
254
+ const Ds = ye({
249
255
  name: "app",
250
256
  initialState: {
251
257
  plugins: {},
252
258
  instance: null,
253
- environment: At() ?? "development",
254
- version: O.version,
255
- sourceUrl: O.sourceUrl,
259
+ environment: jt() ?? "development",
260
+ version: j.version,
261
+ sourceUrl: j.sourceUrl,
256
262
  settings: []
257
263
  },
258
264
  computed: {
@@ -260,19 +266,19 @@ const Ts = he({
260
266
  staging: (t) => t.environment === "staging",
261
267
  testing: (t) => t.environment === "test" || t.environment === "testing",
262
268
  versionName(t) {
263
- return this.development ? "dev." + O.sourceHash.toString().substring(0, 7) : this.staging ? "staging." + O.sourceHash.toString().substring(0, 7) : `v${t.version}`;
269
+ return this.development ? "dev." + j.sourceHash.toString().substring(0, 7) : this.staging ? "staging." + j.sourceHash.toString().substring(0, 7) : `v${t.version}`;
264
270
  },
265
271
  versionUrl(t) {
266
- return t.sourceUrl + (this.development || this.staging ? `/tree/${O.sourceHash}` : `/releases/tag/${this.versionName}`);
272
+ return t.sourceUrl + (this.development || this.staging ? `/tree/${j.sourceHash}` : `/releases/tag/${this.versionName}`);
267
273
  }
268
274
  }
269
275
  });
270
- class Vs extends Ts {
276
+ class js extends Ds {
271
277
  constructor() {
272
278
  super(...arguments);
273
- w(this, "name", O.name);
274
- w(this, "ready", new W());
275
- w(this, "mounted", new W());
279
+ _(this, "name", j.name);
280
+ _(this, "ready", new K());
281
+ _(this, "mounted", new K());
276
282
  }
277
283
  isReady() {
278
284
  return this.ready.isResolved();
@@ -281,13 +287,13 @@ class Vs extends Ts {
281
287
  return this.mounted.isResolved();
282
288
  }
283
289
  addSetting(e) {
284
- this.settings.push(R(e));
290
+ this.settings.push(E(e));
285
291
  }
286
292
  async whenReady(e) {
287
293
  return await this.ready.then(e);
288
294
  }
289
295
  async reload(e) {
290
- e && zt(e), location.reload(), await jt();
296
+ e && Bt(e), location.reload(), await Ft();
291
297
  }
292
298
  plugin(e) {
293
299
  return this.plugins[e] ?? null;
@@ -297,15 +303,15 @@ class Vs extends Ts {
297
303
  return ((r = this.instance) == null ? void 0 : r.config.globalProperties[e]) ?? null;
298
304
  }
299
305
  async boot() {
300
- T.once("application-ready", () => this.ready.resolve()), T.once("application-mounted", () => this.mounted.resolve());
306
+ R.once("application-ready", () => this.ready.resolve()), R.once("application-mounted", () => this.mounted.resolve());
301
307
  }
302
308
  }
303
- const j = G(Vs);
304
- function Va(t) {
309
+ const A = te(js);
310
+ function il(t) {
305
311
  return t;
306
312
  }
307
- async function Rs(t, ...s) {
308
- j.setState(
313
+ async function Bs(t, ...s) {
314
+ A.setState(
309
315
  "plugins",
310
316
  t.reduce(
311
317
  (e, r) => (r.name && (e[r.name] = r), e),
@@ -313,55 +319,55 @@ async function Rs(t, ...s) {
313
319
  )
314
320
  ), await Promise.all(t.map((e) => e.install(...s)) ?? []);
315
321
  }
316
- function Ps(t) {
317
- return Object.entries(t.props ?? {}).reduce((s, [e, r]) => s + `${e}="${D(r)}"`, "");
322
+ function Fs(t) {
323
+ return Object.entries(t.props ?? {}).reduce((s, [e, r]) => s + `${e}="${B(r)}"`, "");
318
324
  }
319
- function Ra(t) {
325
+ function ul(t) {
320
326
  return t;
321
327
  }
322
- function As(t) {
323
- const s = le(t);
324
- return s ? de(s) : void 0;
328
+ function Us(t) {
329
+ const s = X(t);
330
+ return s ? pe(s) : void 0;
325
331
  }
326
- function H(t, s) {
327
- return As(t) ?? K(s ?? `Could not resolve '${D(t)}' injection key`);
332
+ function V(t, s) {
333
+ return Us(t) ?? Q(s ?? `Could not resolve '${B(t)}' injection key`);
328
334
  }
329
- function zs(t, s) {
330
- return le(t) ?? K(s ?? `Could not resolve '${D(t)}' injection key`);
335
+ function Os(t, s) {
336
+ return X(t) ?? Q(s ?? `Could not resolve '${B(t)}' injection key`);
331
337
  }
332
- function Ze(t) {
333
- return typeof t == "string" ? t : t.type === St ? "" : t.type === kt || t.type === Mt ? t.children : t.type === "br" ? `
338
+ function Ge(t) {
339
+ return typeof t == "string" ? t : t.type === Tt ? "" : t.type === Mt || t.type === Ht ? t.children : t.type === "br" ? `
334
340
 
335
- ` : `<${t.type} ${Ps(t)}>${Array.from(t.children).map(Ze).join("")}</${t.type}>`;
341
+ ` : `<${t.type} ${Fs(t)}>${Array.from(t.children).map(Ge).join("")}</${t.type}>`;
336
342
  }
337
- const _e = /* @__PURE__ */ new WeakMap(), js = {
343
+ const Ce = /* @__PURE__ */ new WeakMap(), Ns = {
338
344
  mounted(t, { value: s, modifiers: e }) {
339
345
  const r = typeof s == "function" ? s : null, n = () => {
340
346
  const a = t.getBoundingClientRect();
341
347
  e.css && (t.style.setProperty("--width", `${a.width}px`), t.style.setProperty("--height", `${a.height}px`)), r == null || r({ width: a.width, height: a.height });
342
348
  };
343
- e.watch && _e.set(t, Z(new ResizeObserver(n)).observe(t)), n();
349
+ e.watch && Ce.set(t, ee(new ResizeObserver(n)).observe(t)), n();
344
350
  },
345
351
  unmounted(t) {
346
352
  var s;
347
- (s = _e.get(t)) == null || s.unobserve(t), _e.delete(t);
353
+ (s = Ce.get(t)) == null || s.unobserve(t), Ce.delete(t);
348
354
  }
349
- }, Bs = {
350
- measure: js
351
- }, Ds = {
355
+ }, Ws = {
356
+ measure: Ns
357
+ }, Ks = {
352
358
  install(t, s) {
353
359
  const e = {
354
- ...Bs,
360
+ ...Ws,
355
361
  ...s.directives
356
362
  };
357
363
  for (const [r, n] of Object.entries(e))
358
364
  t.directive(r, n);
359
365
  }
360
366
  };
361
- class qs extends ge {
367
+ class Qs extends we {
362
368
  constructor() {
363
369
  super(...arguments);
364
- w(this, "cache");
370
+ _(this, "cache");
365
371
  }
366
372
  async get(e) {
367
373
  return await (await this.open()).match(e) ?? null;
@@ -374,73 +380,73 @@ class qs extends ge {
374
380
  (await n.keys(e)).length !== 0 && await n.put(e, r);
375
381
  }
376
382
  async open() {
377
- return this.cache = this.cache ?? Z(new W(), (e) => {
383
+ return this.cache = this.cache ?? ee(new K(), (e) => {
378
384
  caches.open("app").then((r) => e.resolve(r));
379
385
  });
380
386
  }
381
387
  }
382
- const Pa = G(qs);
383
- class Fs extends ge {
388
+ const cl = te(Qs);
389
+ class Js extends we {
384
390
  async purge() {
385
- await T.emit("purge-storage");
391
+ await R.emit("purge-storage");
386
392
  }
387
393
  }
388
- const Us = G(Fs);
389
- function Aa(t, s) {
394
+ const et = te(Js);
395
+ function dl(t, s) {
390
396
  return {
391
397
  ...t,
392
- ...ne(s, Object.keys(t))
398
+ ...oe(s, Object.keys(t))
393
399
  };
394
400
  }
395
- const Os = {
396
- $app: j,
397
- $events: T,
398
- $storage: Us
401
+ const Zs = {
402
+ $app: A,
403
+ $events: R,
404
+ $storage: et
399
405
  };
400
- async function ve(t, s) {
406
+ async function $e(t, s) {
401
407
  await Promise.all(
402
408
  Object.entries(s).map(async ([e, r]) => {
403
409
  await r.launch().catch((n) => {
404
- var a, l;
405
- return (l = (a = t.config).errorHandler) == null ? void 0 : l.call(a, n, null, `Failed launching ${e}.`);
410
+ var a, i;
411
+ return (i = (a = t.config).errorHandler) == null ? void 0 : i.call(a, n, null, `Failed launching ${e}.`);
406
412
  });
407
413
  })
408
- ), Object.assign(t.config.globalProperties, s), (Y() || Le()) && Object.assign(globalThis, s);
414
+ ), Object.assign(t.config.globalProperties, s), (J() || Ee()) && Object.assign(globalThis, s);
409
415
  }
410
- const Ns = {
416
+ const Xs = {
411
417
  async install(t, s) {
412
418
  var r;
413
419
  const e = {
414
- ...Os,
420
+ ...Zs,
415
421
  ...s.services
416
422
  };
417
- t.use(Hs()), (r = s.settings) == null || r.forEach((n) => j.addSetting(n)), await ve(t, e);
423
+ t.use(Rs()), (r = s.settings) == null || r.forEach((n) => A.addSetting(n)), await $e(t, e);
418
424
  }
419
- }, Ge = 768, pe = {
425
+ }, tt = 768, me = {
420
426
  Mobile: "mobile",
421
427
  Desktop: "desktop"
422
428
  };
423
- function Xe() {
424
- return globalThis.innerWidth > Ge ? pe.Desktop : pe.Mobile;
429
+ function st() {
430
+ return globalThis.innerWidth > tt ? me.Desktop : me.Mobile;
425
431
  }
426
- const Ws = he({
432
+ const Ys = ye({
427
433
  name: "ui",
428
434
  initialState: {
429
435
  modals: [],
430
436
  toasts: [],
431
- layout: Xe()
437
+ layout: st()
432
438
  },
433
439
  computed: {
434
- desktop: ({ layout: t }) => t === pe.Desktop,
435
- mobile: ({ layout: t }) => t === pe.Mobile,
440
+ desktop: ({ layout: t }) => t === me.Desktop,
441
+ mobile: ({ layout: t }) => t === me.Mobile,
436
442
  openModals: ({ modals: t }) => t.filter(({ closing: s }) => !s)
437
443
  }
438
444
  });
439
- class Ks extends Ws {
445
+ class Gs extends Ys {
440
446
  constructor() {
441
447
  super(...arguments);
442
- w(this, "modalCallbacks", {});
443
- w(this, "components", {});
448
+ _(this, "modalCallbacks", {});
449
+ _(this, "components", {});
444
450
  }
445
451
  registerComponent(e, r) {
446
452
  this.components[e] = r;
@@ -449,7 +455,7 @@ class Ks extends Ws {
449
455
  return this.components[e] ?? null;
450
456
  }
451
457
  requireComponent(e) {
452
- return this.resolveComponent(e) ?? K(`UI Component '${e}' is not defined!`);
458
+ return this.resolveComponent(e) ?? Q(`UI Component '${e}' is not defined!`);
453
459
  }
454
460
  alert(e, r) {
455
461
  const n = () => typeof r != "string" ? { message: e } : {
@@ -461,7 +467,7 @@ class Ks extends Ws {
461
467
  // prettier-ignore
462
468
  /* eslint-enable max-len */
463
469
  async confirm(e, r, n) {
464
- const l = typeof r != "string" ? {
470
+ const i = typeof r != "string" ? {
465
471
  ...r ?? {},
466
472
  message: e,
467
473
  required: !!(r != null && r.required)
@@ -470,76 +476,89 @@ class Ks extends Ws {
470
476
  title: e,
471
477
  message: r,
472
478
  required: !!(n != null && n.required)
473
- }, c = await this.modalForm(this.requireComponent("confirm-modal"), l), d = typeof c == "object" ? c[0] : c ?? !1, v = typeof c == "object" ? c[1] : Object.entries(l.checkboxes ?? {}).reduce(
474
- (x, [h, { default: $ }]) => ({
475
- [h]: $ ?? !1,
476
- ...x
479
+ }, o = await this.modalForm(this.requireComponent("confirm-modal"), i), d = typeof o == "object" ? o[0] : o ?? !1, v = typeof o == "object" ? o[1] : Object.entries(i.checkboxes ?? {}).reduce(
480
+ ($, [m, { default: C }]) => ({
481
+ [m]: C ?? !1,
482
+ ...$
477
483
  }),
478
484
  {}
479
485
  );
480
- for (const [x, h] of Object.entries(l.checkboxes ?? {}))
481
- if (!(!h.required || v[x]))
482
- return d && Y() && console.warn(`Confirmed confirm modal was suppressed because required '${x}' checkbox was missing`), [!1, v];
483
- return "checkboxes" in l ? [d, v] : d;
486
+ for (const [$, m] of Object.entries(i.checkboxes ?? {}))
487
+ if (!(!m.required || v[$]))
488
+ return d && J() && console.warn(`Confirmed confirm modal was suppressed because required '${$}' checkbox was missing`), [!1, v];
489
+ return "checkboxes" in i ? [d, v] : d;
484
490
  }
485
491
  async prompt(e, r, n) {
486
- const a = (n == null ? void 0 : n.trim) ?? !0, l = () => typeof r != "string" ? {
492
+ const a = (n == null ? void 0 : n.trim) ?? !0, i = () => typeof r != "string" ? {
487
493
  message: e,
488
494
  ...r ?? {}
489
495
  } : {
490
496
  title: e,
491
497
  message: r,
492
498
  ...n ?? {}
493
- }, c = await this.modalForm(this.requireComponent("prompt-modal"), l());
494
- return (a && typeof c == "string" ? c == null ? void 0 : c.trim() : c) ?? null;
499
+ }, o = await this.modalForm(this.requireComponent("prompt-modal"), i());
500
+ return (a && typeof o == "string" ? o == null ? void 0 : o.trim() : o) ?? null;
495
501
  }
496
502
  async loading(e, r) {
497
- const n = (v) => typeof v == "function" ? Promise.resolve(v()) : v, a = () => typeof e == "string" ? {
498
- props: { message: e },
499
- operationPromise: n(r)
500
- } : typeof e == "function" || e instanceof Promise ? { operationPromise: n(e) } : {
501
- props: e,
502
- operationPromise: n(r)
503
- }, { operationPromise: l, props: c } = a(), d = await this.modal(this.requireComponent("loading-modal"), c);
503
+ const n = (m) => typeof m == "function" ? Promise.resolve(m()) : m, a = () => {
504
+ if (typeof e == "string")
505
+ return {
506
+ props: { message: e },
507
+ operationPromise: n(r)
508
+ };
509
+ if (typeof e == "function" || e instanceof Promise)
510
+ return { operationPromise: n(e) };
511
+ const { delay: m, ...C } = e;
512
+ return {
513
+ props: C,
514
+ delay: l(m),
515
+ operationPromise: n(r)
516
+ };
517
+ };
518
+ let i = !1;
519
+ const { operationPromise: o, props: d, delay: v } = a();
520
+ if (v && await Promise.race([ue({ ms: v }).then(() => i = !0), o]), v && !i)
521
+ return o;
522
+ const $ = await this.modal(this.requireComponent("loading-modal"), d);
504
523
  try {
505
- const v = await l;
506
- return await xe({ ms: 500 }), v;
524
+ const m = await o;
525
+ return await ue({ ms: 500 }), m;
507
526
  } finally {
508
- await this.closeModal(d.id);
527
+ await this.closeModal($.id);
509
528
  }
510
529
  }
511
530
  toast(e, r = {}) {
512
- const { component: n, ...a } = r, l = {
513
- id: oe(),
531
+ const { component: n, ...a } = r, i = {
532
+ id: re(),
514
533
  properties: { message: e, ...a },
515
- component: R(n ?? this.requireComponent("toast"))
534
+ component: E(n ?? this.requireComponent("toast"))
516
535
  };
517
- this.setState("toasts", this.toasts.concat(l));
536
+ this.setState("toasts", this.toasts.concat(i));
518
537
  }
519
538
  async modal(e, r) {
520
- const n = oe(), a = {}, l = {
539
+ const n = re(), a = {}, i = {
521
540
  id: n,
522
541
  closing: !1,
523
542
  properties: r ?? {},
524
- component: R(e),
543
+ component: E(e),
525
544
  beforeClose: new Promise((d) => a.willClose = d),
526
545
  afterClose: new Promise((d) => a.hasClosed = d)
527
- }, c = this.modals.concat(l);
528
- return this.modalCallbacks[l.id] = a, this.setState({ modals: c }), await qe(), l;
546
+ }, o = this.modals.concat(i);
547
+ return this.modalCallbacks[i.id] = a, this.setState({ modals: o }), await Oe(), i;
529
548
  }
530
549
  async modalForm(e, r) {
531
550
  return await (await this.modal(e, r)).beforeClose;
532
551
  }
533
552
  async closeModal(e, r) {
534
- if (!j.isMounted()) {
553
+ if (!A.isMounted()) {
535
554
  await this.removeModal(e, r);
536
555
  return;
537
556
  }
538
- await T.emit("close-modal", { id: e, result: r });
557
+ await R.emit("close-modal", { id: e, result: r });
539
558
  }
540
559
  async closeAllModals() {
541
560
  for (; this.modals.length > 0; )
542
- await this.closeModal(Bt(this.modals[this.modals.length - 1]).id);
561
+ await this.closeModal(Ut(this.modals[this.modals.length - 1]).id);
543
562
  }
544
563
  async boot() {
545
564
  this.watchModalEvents(), this.watchMountedEvent(), this.watchViewportBreakpoints();
@@ -548,34 +567,34 @@ class Ks extends Ws {
548
567
  var n, a;
549
568
  this.setState(
550
569
  "modals",
551
- this.modals.filter((l) => l.id !== e)
570
+ this.modals.filter((i) => i.id !== e)
552
571
  ), (a = (n = this.modalCallbacks[e]) == null ? void 0 : n.hasClosed) == null || a.call(n, r), delete this.modalCallbacks[e];
553
572
  }
554
573
  watchModalEvents() {
555
- T.on("modal-will-close", ({ modal: { id: e }, result: r }) => {
556
- var a, l;
557
- const n = this.modals.find((c) => e === c.id);
558
- n && (n.closing = !0), (l = (a = this.modalCallbacks[e]) == null ? void 0 : a.willClose) == null || l.call(a, r);
559
- }), T.on("modal-has-closed", async ({ modal: { id: e }, result: r }) => {
574
+ R.on("modal-will-close", ({ modal: { id: e }, result: r }) => {
575
+ var a, i;
576
+ const n = this.modals.find((o) => e === o.id);
577
+ n && (n.closing = !0), (i = (a = this.modalCallbacks[e]) == null ? void 0 : a.willClose) == null || i.call(a, r);
578
+ }), R.on("modal-has-closed", async ({ modal: { id: e }, result: r }) => {
560
579
  await this.removeModal(e, r);
561
580
  });
562
581
  }
563
582
  watchMountedEvent() {
564
- T.once("application-mounted", async () => {
583
+ R.once("application-mounted", async () => {
565
584
  if (!globalThis.document || !globalThis.getComputedStyle)
566
585
  return;
567
586
  const e = globalThis.document.getElementById("splash");
568
- e && (globalThis.getComputedStyle(e).opacity !== "0" && (e.style.opacity = "0", await xe({ ms: 600 })), e.remove());
587
+ e && (globalThis.getComputedStyle(e).opacity !== "0" && (e.style.opacity = "0", await ue({ ms: 600 })), e.remove());
569
588
  });
570
589
  }
571
590
  watchViewportBreakpoints() {
572
591
  if (!globalThis.matchMedia)
573
592
  return;
574
- globalThis.matchMedia(`(min-width: ${Ge}px)`).addEventListener("change", () => this.setState({ layout: Xe() }));
593
+ globalThis.matchMedia(`(min-width: ${tt}px)`).addEventListener("change", () => this.setState({ layout: st() }));
575
594
  }
576
595
  }
577
- const V = G(Ks);
578
- class Qs {
596
+ const z = te(Gs);
597
+ class er {
579
598
  constructor(s, e) {
580
599
  this.locale = s, this.fallbackLocale = e;
581
600
  }
@@ -595,13 +614,13 @@ class Qs {
595
614
  return ["en"];
596
615
  }
597
616
  translate(s) {
598
- return Y() && console.warn("Lang provider is missing"), s;
617
+ return J() && console.warn("Lang provider is missing"), s;
599
618
  }
600
619
  translateWithDefault(s, e) {
601
- return Y() && console.warn("Lang provider is missing"), e;
620
+ return J() && console.warn("Lang provider is missing"), e;
602
621
  }
603
622
  }
604
- const Js = he({
623
+ const tr = ye({
605
624
  name: "lang",
606
625
  persist: ["locale", "fallbackLocale"],
607
626
  initialState: {
@@ -610,11 +629,11 @@ const Js = he({
610
629
  fallbackLocale: "en"
611
630
  }
612
631
  });
613
- class Zs extends Js {
632
+ class sr extends tr {
614
633
  constructor() {
615
634
  super();
616
- w(this, "provider");
617
- this.provider = new Qs(
635
+ _(this, "provider");
636
+ this.provider = new er(
618
637
  this.getState("locale") ?? this.getBrowserLocale(),
619
638
  this.getState("fallbackLocale")
620
639
  );
@@ -642,11 +661,12 @@ class Zs extends Js {
642
661
  );
643
662
  }
644
663
  }
645
- const Q = G(Zs), Ye = Q.translate.bind(Q), S = Q.translateWithDefault.bind(Q), Gs = he({
664
+ const Z = te(sr), rt = Z.translate.bind(Z), S = Z.translateWithDefault.bind(Z), rr = ye({
646
665
  name: "errors",
647
666
  initialState: {
648
667
  logs: [],
649
- startupErrors: []
668
+ startupErrors: [],
669
+ debug: !1
650
670
  },
651
671
  computed: {
652
672
  hasErrors: ({ logs: t }) => t.length > 0,
@@ -654,11 +674,12 @@ const Q = G(Zs), Ye = Q.translate.bind(Q), S = Q.translateWithDefault.bind(Q), G
654
674
  hasStartupErrors: ({ startupErrors: t }) => t.length > 0
655
675
  }
656
676
  });
657
- class Xs extends Gs {
677
+ class nr extends rr {
658
678
  constructor() {
659
679
  super(...arguments);
660
- w(this, "forceReporting", !1);
661
- w(this, "enabled", !0);
680
+ _(this, "forceReporting", !1);
681
+ _(this, "enabled", !0);
682
+ _(this, "eruda", null);
662
683
  }
663
684
  enable() {
664
685
  this.enabled = !0;
@@ -668,18 +689,18 @@ class Xs extends Gs {
668
689
  }
669
690
  async inspect(e, r) {
670
691
  if (Array.isArray(e) && e.length === 0) {
671
- V.alert(S("errors.inspectEmpty", "Nothing to inspect!"));
692
+ z.alert(S("errors.inspectEmpty", "Nothing to inspect!"));
672
693
  return;
673
694
  }
674
695
  const n = Array.isArray(e) ? e[0] : this.isErrorReport(e) ? e : await this.createErrorReport(e), a = Array.isArray(e) ? e : r ?? [n];
675
- V.modal(V.requireComponent("error-report-modal"), { report: n, reports: a });
696
+ z.modal(z.requireComponent("error-report-modal"), { report: n, reports: a });
676
697
  }
677
698
  async report(e, r) {
678
- if (await T.emit("error", { error: e, message: r }), Le("unit") || (Y() && this.logError(e), !this.enabled))
699
+ if (await R.emit("error", { error: e, message: r }), Ee("unit") || (J() && this.logError(e), !this.enabled))
679
700
  throw e;
680
- if (!j.isMounted()) {
681
- const l = await this.createStartupErrorReport(e);
682
- l && this.setState({ startupErrors: this.startupErrors.concat(l) });
701
+ if (!A.isMounted()) {
702
+ const i = await this.createStartupErrorReport(e);
703
+ i && this.setState({ startupErrors: this.startupErrors.concat(i) });
683
704
  return;
684
705
  }
685
706
  const n = await this.createErrorReport(e), a = {
@@ -687,7 +708,7 @@ class Xs extends Gs {
687
708
  seen: !1,
688
709
  date: /* @__PURE__ */ new Date()
689
710
  };
690
- V.toast(
711
+ z.toast(
691
712
  r ?? S("errors.notice", "Something went wrong, but it's not your fault. Try again!"),
692
713
  {
693
714
  variant: "danger",
@@ -695,12 +716,15 @@ class Xs extends Gs {
695
716
  {
696
717
  label: S("errors.viewDetails", "View details"),
697
718
  dismiss: !0,
698
- click: () => V.modal(V.requireComponent("error-report-modal"), { report: n, reports: [n] })
719
+ click: () => z.modal(z.requireComponent("error-report-modal"), { report: n, reports: [n] })
699
720
  }
700
721
  ]
701
722
  }
702
723
  ), this.setState({ logs: [a].concat(this.logs) });
703
724
  }
725
+ reportDevelopmentError(e, r) {
726
+ J() && (r && console.warn(r), this.logError(e));
727
+ }
704
728
  see(e) {
705
729
  this.setState({
706
730
  logs: this.logs.map((r) => r.report !== e ? r : {
@@ -709,12 +733,14 @@ class Xs extends Gs {
709
733
  })
710
734
  });
711
735
  }
712
- seeAll() {
713
- this.setState({
714
- logs: this.logs.map((e) => ({
715
- ...e,
716
- seen: !0
717
- }))
736
+ async boot() {
737
+ Y(async () => {
738
+ var e;
739
+ if (!this.debug) {
740
+ (e = this.eruda) == null || e.destroy();
741
+ return;
742
+ }
743
+ this.eruda ?? (this.eruda = (await import("eruda")).default), this.eruda.init();
718
744
  });
719
745
  }
720
746
  logError(e) {
@@ -724,11 +750,11 @@ class Xs extends Gs {
724
750
  return ce(e) && "title" in e;
725
751
  }
726
752
  async createErrorReport(e) {
727
- return typeof e == "string" ? { title: e } : e instanceof Error || e instanceof fe ? this.createErrorReportFromError(e) : ce(e) ? Ke({
728
- title: D(
753
+ return typeof e == "string" ? { title: e } : e instanceof Error || e instanceof be ? this.createErrorReportFromError(e) : ce(e) ? Ze({
754
+ title: B(
729
755
  e.name ?? e.title ?? S("errors.unknown", "Unknown Error")
730
756
  ),
731
- description: D(
757
+ description: B(
732
758
  e.message ?? e.description ?? S("errors.unknownDescription", "Unknown error object")
733
759
  ),
734
760
  error: e
@@ -738,7 +764,7 @@ class Xs extends Gs {
738
764
  };
739
765
  }
740
766
  async createStartupErrorReport(e) {
741
- return e instanceof Ce ? e.cause instanceof Ce ? null : this.createErrorReport(e.cause) : this.createErrorReport(e);
767
+ return e instanceof Te ? e.cause instanceof Te ? null : this.createErrorReport(e.cause) : this.createErrorReport(e);
742
768
  }
743
769
  createErrorReportFromError(e, r = {}) {
744
770
  return {
@@ -750,110 +776,44 @@ class Xs extends Gs {
750
776
  };
751
777
  }
752
778
  }
753
- const et = G(Xs), tt = [];
754
- function za(t) {
755
- tt.push(t);
756
- }
757
- function st(t) {
758
- for (const s of tt) {
759
- const e = s(t);
760
- if (e)
761
- return e;
762
- }
763
- return typeof t == "string" ? t : t instanceof Error || t instanceof fe ? t.message : ce(t) ? D(t.message ?? t.description ?? "Unknown error object") : S("errors.unknown", "Unknown Error");
764
- }
765
- class ze extends fe {
766
- }
767
- const Ys = { $errors: et }, er = (t) => (et.report(t), !0);
768
- function tr(t, s = () => !1) {
769
- const e = (r) => s(r) || er(r);
770
- t.config.errorHandler = e, globalThis.onerror = (r, n, a, l, c) => e(c ?? r), globalThis.onunhandledrejection = (r) => e(r.reason);
771
- }
772
- const sr = {
773
- async install(t, s) {
774
- tr(t, s.handleError), await ve(t, Ys);
775
- }
776
- };
777
- let ae = null;
778
- function rr() {
779
- return Z(new Pe(), (t) => {
779
+ const nt = te(nr);
780
+ let ie = null;
781
+ function ar() {
782
+ return ee(new Ae(), (t) => {
780
783
  t.link = function(s) {
781
- const e = Pe.prototype.link.apply(this, [s]);
784
+ const e = Ae.prototype.link.apply(this, [s]);
782
785
  return s.href.startsWith("#") ? e : e.replace("<a", '<a target="_blank"');
783
786
  };
784
787
  });
785
788
  }
786
- function nr(t) {
787
- const s = Qe(t, /<a[^>]*href="#action:([^"]+)"[^>]*>([^<]+)<\/a>/g);
789
+ function lr(t) {
790
+ const s = Xe(t, /<a[^>]*href="#action:([^"]+)"[^>]*>([^<]+)<\/a>/g);
788
791
  for (const [e, r, n] of s)
789
792
  t = t.replace(e, `<button type="button" data-markdown-action="${r}">${n}</button>`);
790
793
  return t;
791
794
  }
792
- function ar(t) {
793
- const s = Qe(t, /<a[^>]*href="#route:([^"]+)"[^>]*>([^<]+)<\/a>/g);
795
+ function or(t) {
796
+ const s = Xe(t, /<a[^>]*href="#route:([^"]+)"[^>]*>([^<]+)<\/a>/g);
794
797
  for (const [e, r, n] of s) {
795
- const a = (ae == null ? void 0 : ae.resolve(r)) ?? r;
798
+ const a = (ie == null ? void 0 : ie.resolve(r)) ?? r;
796
799
  t = t.replace(e, `<a data-markdown-route="${r}" href="${a}">${n}</a>`);
797
800
  }
798
801
  return t;
799
802
  }
800
- function or() {
801
- return ae;
803
+ function ir() {
804
+ return ie;
802
805
  }
803
- function ja(t) {
804
- ae = t;
806
+ function pl(t) {
807
+ ie = t;
805
808
  }
806
- function lr(t) {
807
- let s = Yt(t, { renderer: rr(), async: !1 });
808
- return s = ir(s), s = nr(s), s = ar(s), s;
809
+ function ur(t) {
810
+ let s = rs(t, { renderer: ar(), async: !1 });
811
+ return s = cr(s), s = lr(s), s = or(s), s;
809
812
  }
810
- function ir(t) {
811
- return Xt.sanitize(t, { ADD_ATTR: ["target"] });
813
+ function cr(t) {
814
+ return ss.sanitize(t, { ADD_ATTR: ["target"] });
812
815
  }
813
- const cr = /* @__PURE__ */ g({
814
- __name: "Markdown",
815
- props: {
816
- as: {},
817
- inline: { type: Boolean },
818
- langKey: {},
819
- langParams: {},
820
- langDefault: {},
821
- text: {},
822
- actions: {}
823
- },
824
- setup(t) {
825
- const s = Fe(), e = Me(), r = u(() => e.default ? e.default().map(Ze).join("") : t.text ?? (t.langKey && (t.langDefault ? S(t.langKey, t.langDefault, t.langParams ?? {}) : Ye(t.langKey, t.langParams ?? {})))), n = u(() => {
826
- if (!r.value)
827
- return null;
828
- let c = lr(r.value);
829
- return t.inline && (c = c.replace("<p>", "<span>").replace("</p>", "</span>")), c;
830
- }), a = () => Et(t.as ?? (t.inline ? "span" : "div"), {
831
- innerHTML: n.value,
832
- onClick: l,
833
- ...s,
834
- class: `${s.class ?? ""} ${t.inline ? "" : "prose"}`
835
- });
836
- async function l(c) {
837
- var v, x;
838
- const { target: d } = c;
839
- if (Re(d, HTMLElement) && d.dataset.markdownAction) {
840
- (x = (v = t.actions) == null ? void 0 : v[d.dataset.markdownAction]) == null || x.call(v);
841
- return;
842
- }
843
- if (Re(d, HTMLAnchorElement) && d.dataset.markdownRoute) {
844
- const h = or();
845
- h && (c.preventDefault(), h.visit(d.dataset.markdownRoute));
846
- return;
847
- }
848
- }
849
- return (c, d) => (i(), f(a));
850
- }
851
- }), ur = (t, s) => {
852
- const e = t.__vccOpts || t;
853
- for (const [r, n] of s)
854
- e[r] = n;
855
- return e;
856
- }, A = /* @__PURE__ */ ur(cr, [["__scopeId", "data-v-8b211cfb"]]), rt = /* @__PURE__ */ g({
816
+ const at = /* @__PURE__ */ g({
857
817
  __name: "HeadlessButton",
858
818
  props: {
859
819
  class: {},
@@ -869,9 +829,9 @@ const cr = /* @__PURE__ */ g({
869
829
  as: {}
870
830
  },
871
831
  setup(t) {
872
- const s = u(() => t.as ? { as: t.as } : t.route ? {
873
- as: V.resolveComponent("router-link") ?? "a",
874
- to: Ke({
832
+ const s = c(() => t.as ? { as: t.as } : t.route ? {
833
+ as: z.resolveComponent("router-link") ?? "a",
834
+ to: Ze({
875
835
  name: t.route,
876
836
  params: t.routeParams,
877
837
  query: t.routeQuery
@@ -884,26 +844,26 @@ const cr = /* @__PURE__ */ g({
884
844
  as: "button",
885
845
  type: t.submit ? "submit" : "button"
886
846
  });
887
- return (e, r) => (i(), f(o(es), I({
847
+ return (e, r) => (u(), h(l(os), H({
888
848
  class: t.class,
889
849
  "as-child": e.asChild,
890
850
  disabled: e.disabled
891
851
  }, s.value), {
892
- default: m(() => [
893
- _(e.$slots, "default")
852
+ default: f(() => [
853
+ w(e.$slots, "default")
894
854
  ]),
895
855
  _: 3
896
856
  }, 16, ["class", "as-child", "disabled"]));
897
857
  }
898
858
  });
899
- function nt(t, s) {
900
- const { baseClasses: e, ...r } = t, { baseClasses: n, ...a } = s, l = ks(n, a);
901
- return E(l(r), o(e));
859
+ function lt(t, s) {
860
+ const { baseClasses: e, ...r } = t, { baseClasses: n, ...a } = s, i = as(n, a);
861
+ return M(i(r), l(e));
902
862
  }
903
- function E(...t) {
904
- return Ms(Ss(t));
863
+ function M(...t) {
864
+ return ls(ns(t));
905
865
  }
906
- const z = /* @__PURE__ */ g({
866
+ const q = /* @__PURE__ */ g({
907
867
  __name: "Button",
908
868
  props: {
909
869
  class: {},
@@ -919,7 +879,7 @@ const z = /* @__PURE__ */ g({
919
879
  as: {}
920
880
  },
921
881
  setup(t) {
922
- const s = J(t, ["class", "size", "variant", "disabled"]), e = u(() => nt(
882
+ const s = N(t, ["class", "size", "variant", "disabled"]), e = c(() => lt(
923
883
  { baseClasses: t.class, variant: t.variant, size: t.size, disabled: t.disabled },
924
884
  {
925
885
  baseClasses: "focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2",
@@ -990,6 +950,21 @@ const z = /* @__PURE__ */ g({
990
950
  variant: "link",
991
951
  disabled: !1,
992
952
  class: "hover:underline"
953
+ },
954
+ {
955
+ variant: "link",
956
+ size: "small",
957
+ class: "leading-6"
958
+ },
959
+ {
960
+ variant: "link",
961
+ size: "default",
962
+ class: "leading-8"
963
+ },
964
+ {
965
+ variant: "link",
966
+ size: "large",
967
+ class: "leading-10"
993
968
  }
994
969
  ],
995
970
  defaultVariants: {
@@ -999,12 +974,12 @@ const z = /* @__PURE__ */ g({
999
974
  }
1000
975
  }
1001
976
  ));
1002
- return (r, n) => (i(), f(rt, I({
977
+ return (r, n) => (u(), h(at, H({
1003
978
  class: e.value,
1004
979
  disabled: r.disabled
1005
980
  }, s), {
1006
- default: m(() => [
1007
- _(r.$slots, "default")
981
+ default: f(() => [
982
+ w(r.$slots, "default")
1008
983
  ]),
1009
984
  _: 3
1010
985
  }, 16, ["class", "disabled"]));
@@ -1013,35 +988,58 @@ const z = /* @__PURE__ */ g({
1013
988
  function dr(t) {
1014
989
  return typeof t == "object" && t !== null && "label" in t;
1015
990
  }
1016
- function at(t, s) {
1017
- const e = T.on(t, s);
1018
- me(() => e());
991
+ function ot(t, s) {
992
+ const e = R.on(t, s);
993
+ ge(() => e());
1019
994
  }
1020
995
  const pr = {
1021
996
  required: (t) => t ? void 0 : "required"
1022
- }, ue = { ...pr };
1023
- function Ba(t, s) {
1024
- ue[t] = s;
1025
- }
997
+ };
1026
998
  function mr(t, s) {
999
+ var e;
1000
+ if (t == null)
1001
+ return !0;
1002
+ switch (s.type) {
1003
+ case "string":
1004
+ return typeof t == "string";
1005
+ case "enum":
1006
+ return !!((e = s.values) != null && e.includes(t));
1007
+ case "number":
1008
+ return typeof t == "number";
1009
+ case "boolean":
1010
+ return typeof t == "boolean";
1011
+ case "date":
1012
+ return t instanceof Date;
1013
+ case "object":
1014
+ return typeof t == "object";
1015
+ }
1016
+ }
1017
+ const de = { ...pr };
1018
+ function ml(t, s) {
1019
+ de[t] = s;
1020
+ }
1021
+ function fr(t, s) {
1022
+ return mr(t, s) ? [] : ["invalid_value"];
1023
+ }
1024
+ function hr(t, s) {
1027
1025
  var r;
1028
- const e = (r = ue[s]) == null ? void 0 : r.call(ue, t);
1029
- return e ? We(e) : [];
1026
+ const e = (r = de[s]) == null ? void 0 : r.call(de, t);
1027
+ return e ? Je(e) : [];
1030
1028
  }
1031
- const Da = Symbol(), je = /* @__PURE__ */ new WeakMap();
1032
- class fr extends Ne {
1029
+ const fl = Symbol(), je = /* @__PURE__ */ new WeakMap();
1030
+ class gr extends Qe {
1033
1031
  constructor(e) {
1034
1032
  super();
1035
- w(this, "errors");
1036
- w(this, "_fields");
1037
- w(this, "_data");
1038
- w(this, "_submitted");
1039
- w(this, "_errors");
1040
- w(this, "_listeners", {});
1041
- this._fields = e, this._submitted = F(!1), this._data = this.getInitialData(e), this._errors = this.getInitialErrors(e), je.set(
1033
+ _(this, "errors");
1034
+ _(this, "_fields");
1035
+ _(this, "_data");
1036
+ _(this, "_submitted");
1037
+ _(this, "_errors");
1038
+ _(this, "_listeners", {});
1039
+ this._fields = e, this._submitted = U(!1), this._data = this.getInitialData(e), this._errors = this.getInitialErrors(e), je.set(
1042
1040
  this,
1043
- u(() => !Object.values(this._errors).some((r) => r !== null))
1044
- ), this.errors = Ee(this._errors);
1041
+ c(() => !Object.values(this._errors).some((r) => r !== null))
1042
+ ), this.errors = ve(this._errors);
1045
1043
  }
1046
1044
  get valid() {
1047
1045
  var e;
@@ -1051,8 +1049,8 @@ class fr extends Ne {
1051
1049
  return this._submitted.value;
1052
1050
  }
1053
1051
  setFieldValue(e, r) {
1054
- const n = this._fields[e] ?? K(`Trying to set undefined '${D(e)}' field`);
1055
- this._data[e] = n.type === "string" && (n.trim ?? !0) ? D(r).trim() : r, this._submitted.value && this.validate();
1052
+ const n = this._fields[e] ?? Q(`Trying to set undefined '${B(e)}' field`);
1053
+ this._data[e] = n.type === "string" && (n.trim ?? !0) ? B(r).trim() : r, this._submitted.value && this.validate();
1056
1054
  }
1057
1055
  getFieldValue(e) {
1058
1056
  return this._data[e];
@@ -1061,6 +1059,10 @@ class fr extends Ne {
1061
1059
  var r, n;
1062
1060
  return ((n = (r = this._fields[e]) == null ? void 0 : r.rules) == null ? void 0 : n.split("|")) ?? [];
1063
1061
  }
1062
+ getFieldType(e) {
1063
+ var r;
1064
+ return ((r = this._fields[e]) == null ? void 0 : r.type) ?? null;
1065
+ }
1064
1066
  data() {
1065
1067
  return { ...this._data };
1066
1068
  }
@@ -1085,11 +1087,11 @@ class fr extends Ne {
1085
1087
  return (n = this._listeners)[e] ?? (n[e] = []), (a = this._listeners[e]) == null || a.push(r), () => this.off(e, r);
1086
1088
  }
1087
1089
  off(e, r) {
1088
- $e(this._listeners[e] ?? [], r);
1090
+ Se(this._listeners[e] ?? [], r);
1089
1091
  }
1090
1092
  async focus(e) {
1091
1093
  var r;
1092
- await qe(), (r = this._listeners.focus) == null || r.forEach((n) => n(e));
1094
+ await Oe(), (r = this._listeners.focus) == null || r.forEach((n) => n(e));
1093
1095
  }
1094
1096
  __get(e) {
1095
1097
  return e in this._fields ? this.getFieldValue(e) : super.__get(e);
@@ -1102,23 +1104,24 @@ class fr extends Ne {
1102
1104
  this.setFieldValue(e, r);
1103
1105
  }
1104
1106
  getFieldErrors(e, r) {
1105
- var c;
1106
- const n = [], a = this._data[e], l = ((c = r.rules) == null ? void 0 : c.split("|")) ?? [];
1107
- for (const d of l)
1108
- d !== "required" && a == null || n.push(...mr(a, d));
1107
+ var o;
1108
+ const n = [], a = this._data[e], i = ((o = r.rules) == null ? void 0 : o.split("|")) ?? [];
1109
+ n.push(...fr(a, r));
1110
+ for (const d of i)
1111
+ d !== "required" && a == null || n.push(...hr(a, d));
1109
1112
  return n.length > 0 ? n : null;
1110
1113
  }
1111
1114
  getInitialData(e) {
1112
1115
  if (this.static().isConjuring())
1113
1116
  return {};
1114
- const r = Object.entries(e).reduce((n, [a, l]) => (n[a] = l.default ?? null, n), {});
1115
- return de(r);
1117
+ const r = Object.entries(e).reduce((n, [a, i]) => (n[a] = i.default ?? null, n), {});
1118
+ return pe(r);
1116
1119
  }
1117
1120
  getInitialErrors(e) {
1118
1121
  if (this.static().isConjuring())
1119
1122
  return {};
1120
1123
  const r = Object.keys(e).reduce((n, a) => (n[a] = null, n), {});
1121
- return de(r);
1124
+ return pe(r);
1122
1125
  }
1123
1126
  resetData() {
1124
1127
  for (const [e, r] of Object.entries(this._fields))
@@ -1128,75 +1131,75 @@ class fr extends Ne {
1128
1131
  Object.keys(this._errors).forEach((r) => delete this._errors[r]), e && Object.assign(this._errors, e);
1129
1132
  }
1130
1133
  }
1131
- function ot(t, s) {
1132
- const e = le("form", null), r = e == null ? void 0 : e.on("focus", (n) => t.name === n && s());
1133
- me(() => r == null ? void 0 : r());
1134
+ function it(t, s) {
1135
+ const e = X("form", null), r = e == null ? void 0 : e.on("focus", (n) => t.name === n && s());
1136
+ ge(() => r == null ? void 0 : r());
1134
1137
  }
1135
- function lt(t) {
1136
- return new fr(t);
1138
+ function ut(t) {
1139
+ return new gr(t);
1137
1140
  }
1138
- function it() {
1139
- const t = Fe(), s = u(() => t.class);
1140
- return [u(() => Dt(t, "class")), s];
1141
+ function Ie() {
1142
+ const t = Ne(), s = c(() => t.class);
1143
+ return [c(() => Ot(t, "class")), s];
1141
1144
  }
1142
- function qa(t) {
1143
- let s = qt;
1144
- Ht(() => s = t()), me(() => s());
1145
+ function hl(t) {
1146
+ let s = Nt;
1147
+ Et(() => s = t()), ge(() => s());
1145
1148
  }
1146
- function Fa(t, s) {
1147
- const e = de(U.get(t) ?? s);
1148
- return He(e, () => U.set(t, Lt(e))), e;
1149
+ function gl(t, s) {
1150
+ const e = pe(O.get(t) ?? s);
1151
+ return Me(e, () => O.set(t, Vt(e))), e;
1149
1152
  }
1150
- function Ua(t) {
1151
- const s = F(), e = u(t);
1152
- return He(e, async () => s.value = await e.value, { immediate: !0 }), s;
1153
+ function vl(t) {
1154
+ const s = U(), e = c(t);
1155
+ return Me(e, async () => s.value = await e.value, { immediate: !0 }), s;
1153
1156
  }
1154
- function Oa(t, s) {
1155
- const e = s ? t : {}, r = s ?? t, n = F(e.initial ?? null), a = Ft((l) => n.value = l, e.delay ?? 300);
1156
- return ie(() => a(r())), n;
1157
+ function bl(t, s) {
1158
+ const e = s ? t : {}, r = s ?? t, n = U(e.initial ?? null), a = Wt((i) => n.value = i, e.delay ?? 300);
1159
+ return Y(() => a(r())), n;
1157
1160
  }
1158
1161
  const ct = /* @__PURE__ */ g({
1159
1162
  __name: "HeadlessSelectValue",
1160
1163
  setup(t) {
1161
- const s = H(
1164
+ const s = V(
1162
1165
  "select",
1163
1166
  "<HeadlessSelectValue> must be a child of a <HeadlessSelect>"
1164
1167
  );
1165
- return (e, r) => e.$slots.default ? (i(), f(o(Ae), {
1168
+ return (e, r) => e.$slots.default ? (u(), h(l(De), {
1166
1169
  key: 0,
1167
- placeholder: o(s).placeholder
1170
+ placeholder: l(s).placeholder
1168
1171
  }, {
1169
- default: m(() => [
1170
- _(e.$slots, "default")
1172
+ default: f(() => [
1173
+ w(e.$slots, "default")
1171
1174
  ]),
1172
1175
  _: 3
1173
- }, 8, ["placeholder"])) : (i(), f(o(Ae), {
1176
+ }, 8, ["placeholder"])) : (u(), h(l(De), {
1174
1177
  key: 1,
1175
- placeholder: o(s).placeholder
1178
+ placeholder: l(s).placeholder
1176
1179
  }, null, 8, ["placeholder"]));
1177
1180
  }
1178
- }), ut = /* @__PURE__ */ g({
1181
+ }), dt = /* @__PURE__ */ g({
1179
1182
  __name: "HeadlessSelectTrigger",
1180
1183
  setup(t) {
1181
- const s = H(
1184
+ const s = V(
1182
1185
  "select",
1183
1186
  "<HeadlessSelectTrigger> must be a child of a <HeadlessSelect>"
1184
1187
  );
1185
- return (e, r) => (i(), f(o(ts), {
1186
- id: o(s).id
1188
+ return (e, r) => (u(), h(l(is), {
1189
+ id: l(s).id
1187
1190
  }, {
1188
- default: m(() => [
1189
- _(e.$slots, "default", {}, () => [
1191
+ default: f(() => [
1192
+ w(e.$slots, "default", {}, () => [
1190
1193
  p(ct, {
1191
- placeholder: o(s).placeholder
1194
+ placeholder: l(s).placeholder
1192
1195
  }, null, 8, ["placeholder"]),
1193
- p(o(ss))
1196
+ p(l(us))
1194
1197
  ])
1195
1198
  ]),
1196
1199
  _: 3
1197
1200
  }, 8, ["id"]));
1198
1201
  }
1199
- }), dt = /* @__PURE__ */ g({
1202
+ }), pt = /* @__PURE__ */ g({
1200
1203
  __name: "HeadlessSelectOption",
1201
1204
  props: {
1202
1205
  value: {},
@@ -1206,20 +1209,20 @@ const ct = /* @__PURE__ */ g({
1206
1209
  as: {}
1207
1210
  },
1208
1211
  setup(t) {
1209
- const s = H(
1212
+ const s = V(
1210
1213
  "select",
1211
1214
  "<HeadlessSelectOption> must be a child of a <HeadlessSelect>"
1212
- ), e = u(() => {
1215
+ ), e = c(() => {
1213
1216
  var n;
1214
1217
  const r = (n = s.options) == null ? void 0 : n.find((a) => a.value === t.value);
1215
- return r ? r.label : D(t.value);
1218
+ return r ? r.label : B(t.value);
1216
1219
  });
1217
- return (r, n) => (i(), f(o(rs), ee(te(r.$props)), {
1218
- default: m(() => [
1219
- p(o(ns), null, {
1220
- default: m(() => [
1221
- _(r.$slots, "default", {}, () => [
1222
- P(C(e.value), 1)
1220
+ return (r, n) => (u(), h(l(cs), ne(ae(r.$props)), {
1221
+ default: f(() => [
1222
+ p(l(ds), null, {
1223
+ default: f(() => [
1224
+ w(r.$slots, "default", {}, () => [
1225
+ I(x(e.value), 1)
1223
1226
  ])
1224
1227
  ]),
1225
1228
  _: 3
@@ -1228,33 +1231,33 @@ const ct = /* @__PURE__ */ g({
1228
1231
  _: 3
1229
1232
  }, 16));
1230
1233
  }
1231
- }), pt = /* @__PURE__ */ g({
1234
+ }), mt = /* @__PURE__ */ g({
1232
1235
  __name: "HeadlessSelectOptions",
1233
1236
  props: {
1234
1237
  class: {},
1235
1238
  innerClass: {}
1236
1239
  },
1237
1240
  setup(t) {
1238
- const s = H(
1241
+ const s = V(
1239
1242
  "select",
1240
1243
  "<HeadlessSelectOptions> must be a child of a <HeadlessSelect>"
1241
- ), e = u(() => E("min-w-(--reka-select-trigger-width) max-h-(--reka-select-content-available-height)", t.class));
1242
- return (r, n) => (i(), f(o(as), null, {
1243
- default: m(() => [
1244
- p(o(os), {
1244
+ ), e = c(() => M("min-w-(--reka-select-trigger-width) max-h-(--reka-select-content-available-height)", t.class));
1245
+ return (r, n) => (u(), h(l(ps), null, {
1246
+ default: f(() => [
1247
+ p(l(ms), {
1245
1248
  position: "popper",
1246
1249
  class: k(e.value),
1247
- align: o(s).align,
1248
- side: o(s).side,
1250
+ align: l(s).align,
1251
+ side: l(s).side,
1249
1252
  "side-offset": 4
1250
1253
  }, {
1251
- default: m(() => [
1252
- p(o(ls), {
1254
+ default: f(() => [
1255
+ p(l(fs), {
1253
1256
  class: k(r.innerClass)
1254
1257
  }, {
1255
- default: m(() => [
1256
- _(r.$slots, "default", {}, () => [
1257
- (i(!0), b(B, null, q(o(s).options ?? [], (a) => (i(), f(dt, {
1258
+ default: f(() => [
1259
+ w(r.$slots, "default", {}, () => [
1260
+ (u(!0), b(D, null, F(l(s).options ?? [], (a) => (u(), h(pt, {
1258
1261
  key: a.key,
1259
1262
  value: a.value
1260
1263
  }, null, 8, ["value"]))), 128))
@@ -1269,7 +1272,7 @@ const ct = /* @__PURE__ */ g({
1269
1272
  _: 3
1270
1273
  }));
1271
1274
  }
1272
- }), hr = /* @__PURE__ */ g({
1275
+ }), vr = /* @__PURE__ */ g({
1273
1276
  inheritAttrs: !1,
1274
1277
  __name: "HeadlessSelect",
1275
1278
  props: {
@@ -1289,56 +1292,56 @@ const ct = /* @__PURE__ */ g({
1289
1292
  },
1290
1293
  emits: ["update:modelValue"],
1291
1294
  setup(t, { expose: s, emit: e }) {
1292
- const r = e, n = le("form", null), a = u(() => n && t.name ? n.getFieldValue(t.name) : t.modelValue), l = u(() => a.value), c = u(() => !n || !t.name ? null : n.errors[t.name] ?? null), d = u(() => t.options ? t.options.map((h) => ({
1293
- key: oe(),
1294
- label: t.renderOption ? t.renderOption(h) : dr(h) ? Ut(h.label) : D(h),
1295
- value: h
1295
+ const r = e, n = X("form", null), a = c(() => n && t.name ? n.getFieldValue(t.name) : t.modelValue), i = c(() => a.value), o = c(() => !n || !t.name ? null : n.errors[t.name] ?? null), d = c(() => t.options ? t.options.map((m) => ({
1296
+ key: re(),
1297
+ label: t.renderOption ? t.renderOption(m) : dr(m) ? Kt(m.label) : B(m),
1298
+ value: m
1296
1299
  })) : null), v = {
1297
1300
  labelClass: t.labelClass,
1298
1301
  optionsClass: t.optionsClass,
1299
1302
  align: t.align,
1300
1303
  side: t.side,
1301
1304
  value: a,
1302
- id: `select-${oe()}`,
1303
- name: u(() => t.name),
1304
- label: u(() => t.label),
1305
- description: u(() => t.description),
1306
- placeholder: u(() => t.placeholder ?? S("ui.select", "Select an option")),
1305
+ id: `select-${re()}`,
1306
+ name: c(() => t.name),
1307
+ label: c(() => t.label),
1308
+ description: c(() => t.description),
1309
+ placeholder: c(() => t.placeholder ?? S("ui.select", "Select an option")),
1307
1310
  options: d,
1308
- selectedOption: u(() => {
1309
- var h;
1310
- return (h = d.value) == null ? void 0 : h.find(($) => $.value === t.modelValue);
1311
+ selectedOption: c(() => {
1312
+ var m;
1313
+ return (m = d.value) == null ? void 0 : m.find((C) => C.value === t.modelValue);
1311
1314
  }),
1312
- errors: Ee(c),
1313
- required: u(() => {
1315
+ errors: ve(o),
1316
+ required: c(() => {
1314
1317
  if (!(!t.name || !n))
1315
1318
  return n.getFieldRules(t.name).includes("required");
1316
1319
  }),
1317
- update(h) {
1320
+ update(m) {
1318
1321
  if (n && t.name) {
1319
- n.setFieldValue(t.name, h);
1322
+ n.setFieldValue(t.name, m);
1320
1323
  return;
1321
1324
  }
1322
- r("update:modelValue", h);
1325
+ r("update:modelValue", m);
1323
1326
  }
1324
1327
  };
1325
- function x(h) {
1326
- v.update(h);
1328
+ function $(m) {
1329
+ v.update(m);
1327
1330
  }
1328
- return se("select", v), s(v), (h, $) => (i(), f(o(is), {
1329
- "model-value": l.value,
1330
- by: h.compareOptions,
1331
- "onUpdate:modelValue": $[0] || ($[0] = (L) => x(L))
1331
+ return le("select", v), s(v), (m, C) => (u(), h(l(hs), {
1332
+ "model-value": i.value,
1333
+ by: m.compareOptions,
1334
+ "onUpdate:modelValue": C[0] || (C[0] = (L) => $(L))
1332
1335
  }, {
1333
- default: m(({ open: L }) => [
1334
- (i(), f(N(h.as), ee(te(h.$attrs)), {
1335
- default: m(() => [
1336
- _(h.$slots, "default", {
1337
- modelValue: h.modelValue,
1336
+ default: f(({ open: L }) => [
1337
+ (u(), h(W(m.as), ne(ae(m.$attrs)), {
1338
+ default: f(() => [
1339
+ w(m.$slots, "default", {
1340
+ modelValue: m.modelValue,
1338
1341
  open: L
1339
1342
  }, () => [
1340
- p(ut),
1341
- p(pt)
1343
+ p(dt),
1344
+ p(mt)
1342
1345
  ])
1343
1346
  ]),
1344
1347
  _: 2
@@ -1354,40 +1357,43 @@ const ct = /* @__PURE__ */ g({
1354
1357
  as: {}
1355
1358
  },
1356
1359
  setup(t) {
1357
- const s = H(
1360
+ const s = V(
1358
1361
  "select",
1359
1362
  "<HeadlessSelectLabel> must be a child of a <HeadlessSelect>"
1360
- ), e = Me(), r = u(() => !!(s.label || e.default));
1361
- return (n, a) => r.value ? (i(), f(o(cs), I({
1363
+ ), e = He(), r = c(() => !!(s.label || e.default));
1364
+ return (n, a) => r.value ? (u(), h(l(gs), H({
1362
1365
  key: 0,
1363
- for: o(s).id
1366
+ for: l(s).id
1364
1367
  }, n.$props), {
1365
- default: m(() => [
1366
- _(n.$slots, "default", {}, () => [
1367
- P(C(o(s).label), 1)
1368
+ default: f(() => [
1369
+ w(n.$slots, "default", {}, () => [
1370
+ I(x(l(s).label), 1)
1368
1371
  ])
1369
1372
  ]),
1370
1373
  _: 3
1371
- }, 16, ["for"])) : M("", !0);
1374
+ }, 16, ["for"])) : T("", !0);
1372
1375
  }
1373
- }), mt = /* @__PURE__ */ g({
1376
+ }), ft = /* @__PURE__ */ g({
1374
1377
  __name: "SelectLabel",
1378
+ props: {
1379
+ class: {}
1380
+ },
1375
1381
  setup(t) {
1376
- const s = H("select", "<SelectLabel> must be a child of a <Select>"), e = u(() => E("block text-sm leading-6 font-medium text-gray-900", s.labelClass));
1377
- return (r, n) => r.$slots.default ? (i(), f(Be, {
1382
+ const s = V("select", "<SelectLabel> must be a child of a <Select>"), e = c(() => M("block text-sm leading-6 font-medium text-gray-900", s.labelClass, t.class));
1383
+ return (r, n) => r.$slots.default ? (u(), h(Be, {
1378
1384
  key: 0,
1379
1385
  class: k(e.value)
1380
1386
  }, {
1381
- default: m(() => [
1382
- _(r.$slots, "default")
1387
+ default: f(() => [
1388
+ w(r.$slots, "default")
1383
1389
  ]),
1384
1390
  _: 3
1385
- }, 8, ["class"])) : (i(), f(Be, {
1391
+ }, 8, ["class"])) : (u(), h(Be, {
1386
1392
  key: 1,
1387
1393
  class: k(e.value)
1388
1394
  }, null, 8, ["class"]));
1389
1395
  }
1390
- }), De = /* @__PURE__ */ g({
1396
+ }), Fe = /* @__PURE__ */ g({
1391
1397
  __name: "SelectOption",
1392
1398
  props: {
1393
1399
  value: {},
@@ -1395,62 +1401,62 @@ const ct = /* @__PURE__ */ g({
1395
1401
  innerClass: {}
1396
1402
  },
1397
1403
  setup(t) {
1398
- const s = u(() => E("group p-1 outline-none", t.class)), e = u(() => E(
1404
+ const s = c(() => M("group p-1 outline-none", t.class)), e = c(() => M(
1399
1405
  // eslint-disable-next-line vue/max-len
1400
1406
  "relative flex max-w-[calc(100vw-2rem)] cursor-pointer items-center truncate rounded-md gap-2 px-2 py-1 text-sm select-none *:truncate group-data-[highlighted]:bg-gray-100 group-data-[state=checked]:font-semibold group-data-[state=unchecked]:opacity-50",
1401
1407
  t.innerClass
1402
1408
  ));
1403
- return (r, n) => (i(), f(dt, {
1409
+ return (r, n) => (u(), h(pt, {
1404
1410
  class: k(s.value),
1405
1411
  value: r.value
1406
1412
  }, {
1407
- default: m(() => [
1413
+ default: f(() => [
1408
1414
  y("div", {
1409
1415
  class: k(e.value)
1410
1416
  }, [
1411
- _(r.$slots, "default")
1417
+ w(r.$slots, "default")
1412
1418
  ], 2)
1413
1419
  ]),
1414
1420
  _: 3
1415
1421
  }, 8, ["class", "value"]));
1416
1422
  }
1417
- }), ft = /* @__PURE__ */ g({
1423
+ }), ht = /* @__PURE__ */ g({
1418
1424
  __name: "SelectOptions",
1419
1425
  props: {
1420
1426
  class: {}
1421
1427
  },
1422
1428
  setup(t) {
1423
- const s = H("select", "<SelectOptions> must be a child of a <Select>"), e = u(() => E(
1429
+ const s = V("select", "<SelectOptions> must be a child of a <Select>"), e = c(() => M(
1424
1430
  "z-50 overflow-auto rounded-lg bg-white text-base shadow-lg ring-1 ring-black/5 focus:outline-hidden",
1425
1431
  s.optionsClass,
1426
1432
  t.class
1427
1433
  ));
1428
- return (r, n) => (i(), f(pt, {
1434
+ return (r, n) => (u(), h(mt, {
1429
1435
  class: k(e.value)
1430
1436
  }, {
1431
- default: m(() => {
1437
+ default: f(() => {
1432
1438
  var a;
1433
1439
  return [
1434
- (a = o(s).options) != null && a.length ? _(r.$slots, "default", { key: 0 }, () => {
1435
- var l;
1440
+ (a = l(s).options) != null && a.length ? w(r.$slots, "default", { key: 0 }, () => {
1441
+ var i;
1436
1442
  return [
1437
- (i(!0), b(B, null, q(((l = o(s)) == null ? void 0 : l.options) ?? [], (c) => (i(), f(De, {
1438
- key: c.key,
1439
- value: c.value
1443
+ (u(!0), b(D, null, F(((i = l(s)) == null ? void 0 : i.options) ?? [], (o) => (u(), h(Fe, {
1444
+ key: o.key,
1445
+ value: o.value
1440
1446
  }, {
1441
- default: m(() => [
1442
- P(C(c.label), 1)
1447
+ default: f(() => [
1448
+ I(x(o.label), 1)
1443
1449
  ]),
1444
1450
  _: 2
1445
1451
  }, 1032, ["value"]))), 128))
1446
1452
  ];
1447
- }) : _(r.$slots, "default", { key: 1 }, () => [
1448
- p(De, {
1453
+ }) : w(r.$slots, "default", { key: 1 }, () => [
1454
+ p(Fe, {
1449
1455
  disabled: "",
1450
1456
  value: null
1451
1457
  }, {
1452
- default: m(() => [
1453
- P(C(r.$td("ui.selectEmpty", "No options available")), 1)
1458
+ default: f(() => [
1459
+ I(x(r.$td("ui.selectEmpty", "No options available")), 1)
1454
1460
  ]),
1455
1461
  _: 1
1456
1462
  })
@@ -1460,42 +1466,42 @@ const ct = /* @__PURE__ */ g({
1460
1466
  _: 3
1461
1467
  }, 8, ["class"]));
1462
1468
  }
1463
- }), gr = {
1469
+ }), br = {
1464
1470
  viewBox: "0 0 20 20",
1465
1471
  width: "1.2em",
1466
1472
  height: "1.2em"
1467
1473
  };
1468
- function vr(t, s) {
1469
- return i(), b("svg", gr, s[0] || (s[0] = [
1474
+ function yr(t, s) {
1475
+ return u(), b("svg", br, s[0] || (s[0] = [
1470
1476
  y("path", {
1471
1477
  fill: "currentColor",
1472
1478
  d: "m9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828L5.757 6.586L4.343 8z"
1473
1479
  }, null, -1)
1474
1480
  ]));
1475
1481
  }
1476
- const br = R({ name: "zondicons-cheveron-down", render: vr }), ht = /* @__PURE__ */ g({
1482
+ const wr = E({ name: "zondicons-cheveron-down", render: yr }), gt = /* @__PURE__ */ g({
1477
1483
  __name: "SelectTrigger",
1478
1484
  props: {
1479
1485
  class: {}
1480
1486
  },
1481
1487
  setup(t) {
1482
- const s = H("select", "<SelectTrigger> must be a child of a <Select>"), e = u(() => E(
1488
+ const s = V("select", "<SelectTrigger> must be a child of a <Select>"), e = c(() => M(
1483
1489
  // eslint-disable-next-line vue/max-len
1484
1490
  "focus:outline-primary-600 data-[state=open]:outline-primary-600 grid w-full cursor-default grid-cols-1 rounded-md bg-white py-1.5 pr-2 pl-3 text-left text-gray-900 outline-1 -outline-offset-1 outline-gray-300 focus:outline-2 focus:-outline-offset-2 sm:text-sm/6",
1485
1491
  { "mt-1": s.label },
1486
1492
  t.class
1487
1493
  ));
1488
- return (r, n) => (i(), f(ut, {
1494
+ return (r, n) => (u(), h(dt, {
1489
1495
  class: k(e.value)
1490
1496
  }, {
1491
- default: m(() => [
1497
+ default: f(() => [
1492
1498
  p(ct, { class: "col-start-1 row-start-1 truncate pr-6" }),
1493
- p(o(br), { class: "col-start-1 row-start-1 size-5 self-center justify-self-end text-gray-500 sm:size-4" })
1499
+ p(l(wr), { class: "col-start-1 row-start-1 size-5 self-center justify-self-end text-gray-500 sm:size-4" })
1494
1500
  ]),
1495
1501
  _: 1
1496
1502
  }, 8, ["class"]));
1497
1503
  }
1498
- }), yr = /* @__PURE__ */ g({
1504
+ }), $r = /* @__PURE__ */ g({
1499
1505
  __name: "Select",
1500
1506
  props: {
1501
1507
  as: {},
@@ -1514,91 +1520,283 @@ const br = R({ name: "zondicons-cheveron-down", render: vr }), ht = /* @__PURE__
1514
1520
  },
1515
1521
  emits: ["update:modelValue"],
1516
1522
  setup(t) {
1517
- const { forwardRef: s } = Ie();
1518
- return (e, r) => (i(), f(hr, I({ ref: o(s) }, e.$props, {
1523
+ const { forwardRef: s } = Ve();
1524
+ return (e, r) => (u(), h(vr, H({ ref: l(s) }, e.$props, {
1519
1525
  "onUpdate:modelValue": r[0] || (r[0] = (n) => e.$emit("update:modelValue", n))
1520
1526
  }), {
1521
- default: m(() => [
1522
- p(mt),
1523
- _(e.$slots, "default", {}, () => [
1524
- p(ht),
1525
- p(ft)
1527
+ default: f(() => [
1528
+ p(ft),
1529
+ w(e.$slots, "default", {}, () => [
1530
+ p(gt),
1531
+ p(ht)
1526
1532
  ])
1527
1533
  ]),
1528
1534
  _: 3
1529
1535
  }, 16));
1530
1536
  }
1531
- }), _r = { class: "grow" }, wr = /* @__PURE__ */ g({
1537
+ }), _r = { class: "grow" }, xr = /* @__PURE__ */ g({
1532
1538
  __name: "Language",
1533
1539
  setup(t) {
1534
- const s = Q.getBrowserLocale(), e = u(() => [null, ...Q.locales]);
1540
+ const s = Z.getBrowserLocale(), e = c(() => [null, ...Z.locales]);
1535
1541
  function r(n) {
1536
- return (n && O.locales[n]) ?? S("settings.localeDefault", "{locale} (default)", {
1537
- locale: O.locales[s] ?? s
1542
+ return (n && j.locales[n]) ?? S("settings.localeDefault", "{locale} (default)", {
1543
+ locale: j.locales[s] ?? s
1538
1544
  });
1539
1545
  }
1540
- return (n, a) => (i(), f(yr, {
1546
+ return (n, a) => (u(), h($r, {
1541
1547
  modelValue: n.$lang.locale,
1542
- "onUpdate:modelValue": a[0] || (a[0] = (l) => n.$lang.locale = l),
1548
+ "onUpdate:modelValue": a[0] || (a[0] = (i) => n.$lang.locale = i),
1543
1549
  class: "flex flex-col items-start md:flex-row",
1544
1550
  as: "div",
1545
1551
  options: e.value,
1546
1552
  "render-option": r
1547
1553
  }, {
1548
- default: m(() => [
1554
+ default: f(() => [
1549
1555
  y("div", _r, [
1550
- p(mt, null, {
1551
- default: m(() => [
1552
- P(C(n.$td("settings.locale", "Language")), 1)
1556
+ p(ft, { class: "text-base font-semibold" }, {
1557
+ default: f(() => [
1558
+ I(x(n.$td("settings.locale", "Language")), 1)
1553
1559
  ]),
1554
1560
  _: 1
1555
1561
  }),
1556
- p(A, {
1562
+ p(P, {
1557
1563
  "lang-key": "settings.localeDescription",
1558
1564
  "lang-default": "Choose the application's language.",
1559
1565
  class: "mt-1 text-sm text-gray-500"
1560
1566
  })
1561
1567
  ]),
1562
- p(z, {
1568
+ p(q, {
1563
1569
  variant: "ghost",
1564
- as: ht,
1570
+ as: gt,
1565
1571
  class: "grid w-auto outline-none"
1566
1572
  }),
1567
- p(ft)
1573
+ p(ht)
1568
1574
  ]),
1569
1575
  _: 1
1570
1576
  }, 8, ["modelValue", "options"]));
1571
1577
  }
1572
- }), $r = [
1578
+ }), Cr = [
1573
1579
  {
1574
1580
  priority: 100,
1575
- component: wr
1581
+ component: xr
1576
1582
  }
1577
- ], xr = { $lang: Q }, Cr = {
1583
+ ], kr = { $lang: Z }, Sr = {
1578
1584
  async install(t) {
1579
1585
  var s;
1580
- (s = t.config.globalProperties).$t ?? (s.$t = Ye), t.config.globalProperties.$td = S, $r.forEach((e) => j.addSetting(e)), await ve(t, xr);
1586
+ (s = t.config.globalProperties).$t ?? (s.$t = rt), t.config.globalProperties.$td = S, Cr.forEach((e) => A.addSetting(e)), await $e(t, kr);
1587
+ }
1588
+ }, Tr = /* @__PURE__ */ g({
1589
+ __name: "Markdown",
1590
+ props: {
1591
+ as: {},
1592
+ inline: { type: Boolean },
1593
+ langKey: {},
1594
+ langParams: {},
1595
+ langDefault: {},
1596
+ text: {},
1597
+ actions: {}
1598
+ },
1599
+ setup(t) {
1600
+ const s = Ne(), e = He(), r = c(() => e.default ? e.default().map(Ge).join("") : t.text ?? (t.langKey && (t.langDefault ? S(t.langKey, t.langDefault, t.langParams ?? {}) : rt(t.langKey, t.langParams ?? {})))), n = c(() => {
1601
+ if (!r.value)
1602
+ return null;
1603
+ let o = ur(r.value);
1604
+ return t.inline && (o = o.replace("<p>", "<span>").replace("</p>", "</span>")), o;
1605
+ }), a = () => Lt(t.as ?? (t.inline ? "span" : "div"), {
1606
+ innerHTML: n.value,
1607
+ onClick: i,
1608
+ ...s,
1609
+ class: `${s.class ?? ""} ${t.inline ? "" : "prose"}`
1610
+ });
1611
+ async function i(o) {
1612
+ var v, $;
1613
+ const { target: d } = o;
1614
+ if (Pe(d, HTMLElement) && d.dataset.markdownAction) {
1615
+ ($ = (v = t.actions) == null ? void 0 : v[d.dataset.markdownAction]) == null || $.call(v);
1616
+ return;
1617
+ }
1618
+ if (Pe(d, HTMLAnchorElement) && d.dataset.markdownRoute) {
1619
+ const m = ir();
1620
+ m && (o.preventDefault(), m.visit(d.dataset.markdownRoute));
1621
+ return;
1622
+ }
1623
+ }
1624
+ return (o, d) => (u(), h(a));
1581
1625
  }
1582
- }, Sr = {
1626
+ }), Mr = (t, s) => {
1627
+ const e = t.__vccOpts || t;
1628
+ for (const [r, n] of s)
1629
+ e[r] = n;
1630
+ return e;
1631
+ }, P = /* @__PURE__ */ Mr(Tr, [["__scopeId", "data-v-8b211cfb"]]), Hr = { class: "flex-grow" }, Er = ["id"], Vr = /* @__PURE__ */ g({
1632
+ __name: "Setting",
1633
+ props: {
1634
+ title: {},
1635
+ titleId: {},
1636
+ description: {},
1637
+ class: {},
1638
+ layout: { default: "horizontal" }
1639
+ },
1640
+ setup(t) {
1641
+ const s = c(() => M(t.class, "flex flex-col justify-center gap-1"));
1642
+ return (e, r) => (u(), b("div", {
1643
+ class: k(["mt-4 flex", { "flex-col": e.layout === "vertical" }])
1644
+ }, [
1645
+ y("div", Hr, [
1646
+ y("h3", {
1647
+ id: e.titleId,
1648
+ class: "text-base font-semibold"
1649
+ }, x(e.title), 9, Er),
1650
+ e.description ? (u(), h(P, {
1651
+ key: 0,
1652
+ text: e.description,
1653
+ class: "mt-1 text-sm text-gray-500"
1654
+ }, null, 8, ["text"])) : T("", !0)
1655
+ ]),
1656
+ y("div", {
1657
+ class: k(s.value)
1658
+ }, [
1659
+ w(e.$slots, "default")
1660
+ ], 2)
1661
+ ], 2));
1662
+ }
1663
+ }), Lr = ["for"], Ir = /* @__PURE__ */ g({
1664
+ inheritAttrs: !1,
1665
+ __name: "HeadlessSwitch",
1666
+ props: {
1667
+ name: {},
1668
+ label: {},
1669
+ description: {},
1670
+ modelValue: {},
1671
+ class: {},
1672
+ labelClass: {},
1673
+ inputClass: {},
1674
+ thumbClass: {}
1675
+ },
1676
+ emits: ["update:modelValue"],
1677
+ setup(t, { expose: s, emit: e }) {
1678
+ const r = e, n = X("form", null), a = c(() => !n || !t.name ? null : n.errors[t.name] ?? null), i = {
1679
+ id: `switch-${re()}`,
1680
+ name: c(() => t.name),
1681
+ label: c(() => t.label),
1682
+ description: c(() => t.description),
1683
+ value: c(() => n && t.name ? n.getFieldValue(t.name) : t.modelValue),
1684
+ errors: ve(a),
1685
+ required: c(() => {
1686
+ if (!(!t.name || !n))
1687
+ return n.getFieldRules(t.name).includes("required");
1688
+ }),
1689
+ update(o) {
1690
+ if (n && t.name) {
1691
+ n.setFieldValue(t.name, o);
1692
+ return;
1693
+ }
1694
+ r("update:modelValue", o);
1695
+ }
1696
+ };
1697
+ return s(i), Y(() => {
1698
+ !t.description && !a.value || console.warn("Errors and description not implemented in <HeadlessSwitch>");
1699
+ }), (o, d) => (u(), b("div", {
1700
+ class: k(t.class)
1701
+ }, [
1702
+ o.label ? (u(), b("label", {
1703
+ key: 0,
1704
+ for: i.id,
1705
+ class: k(o.labelClass)
1706
+ }, x(o.label), 11, Lr)) : T("", !0),
1707
+ p(l(vs), H({
1708
+ id: i.id,
1709
+ name: o.name,
1710
+ "model-value": i.value.value
1711
+ }, o.$attrs, {
1712
+ class: o.inputClass,
1713
+ "onUpdate:modelValue": d[0] || (d[0] = (v) => o.$emit("update:modelValue", v))
1714
+ }), {
1715
+ default: f(() => [
1716
+ p(l(bs), {
1717
+ class: k(o.thumbClass)
1718
+ }, null, 8, ["class"])
1719
+ ]),
1720
+ _: 1
1721
+ }, 16, ["id", "name", "model-value", "class"])
1722
+ ], 2));
1723
+ }
1724
+ }), qr = /* @__PURE__ */ g({
1725
+ __name: "Switch",
1726
+ setup(t) {
1727
+ return (s, e) => (u(), h(Ir, {
1728
+ class: "flex flex-row items-center gap-1",
1729
+ "input-class": "disabled:opacity-50 disabled:cursor-not-allowed data-[state=checked]:bg-primary-600 data-[state=unchecked]:bg-gray-200 relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focusdisabled:opacity-50 disabled:cursor-not-allowed :ring-2 focus:ring-primary-600 focus:ring-offset-2 focus:outline-hidden",
1730
+ "thumb-class": "data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0 pointer-events-none inline-block size-5 transform rounded-full bg-white shadow-sm ring-0 transition duration-200 ease-in-out"
1731
+ }));
1732
+ }
1733
+ }), zr = /* @__PURE__ */ g({
1734
+ __name: "Debug",
1735
+ setup(t) {
1736
+ return (s, e) => (u(), h(Vr, {
1737
+ "title-id": "debug-setting",
1738
+ title: s.$td("settings.debug", "Debugging"),
1739
+ description: s.$td("settings.debugDescription", "Enable debugging with [Eruda](https://eruda.liriliri.io/).")
1740
+ }, {
1741
+ default: f(() => [
1742
+ p(qr, {
1743
+ modelValue: s.$errors.debug,
1744
+ "onUpdate:modelValue": e[0] || (e[0] = (r) => s.$errors.debug = r),
1745
+ "aria-labelledby": "debug-setting"
1746
+ }, null, 8, ["modelValue"])
1747
+ ]),
1748
+ _: 1
1749
+ }, 8, ["title", "description"]));
1750
+ }
1751
+ }), Rr = [
1752
+ {
1753
+ priority: 10,
1754
+ component: zr
1755
+ }
1756
+ ], vt = [];
1757
+ function yl(t) {
1758
+ vt.push(t);
1759
+ }
1760
+ function bt(t) {
1761
+ for (const s of vt) {
1762
+ const e = s(t);
1763
+ if (e)
1764
+ return e;
1765
+ }
1766
+ return typeof t == "string" ? t : t instanceof Error || t instanceof be ? t.message : ce(t) ? B(t.message ?? t.description ?? "Unknown error object") : S("errors.unknown", "Unknown Error");
1767
+ }
1768
+ class Ue extends be {
1769
+ }
1770
+ const Pr = { $errors: nt }, Ar = (t) => (nt.report(t), !0);
1771
+ function Dr(t, s = () => !1) {
1772
+ const e = (r) => s(r) || Ar(r);
1773
+ t.config.errorHandler = e, globalThis.onerror = (r, n, a, i, o) => e(o ?? r), globalThis.onunhandledrejection = (r) => e(r.reason);
1774
+ }
1775
+ const jr = {
1776
+ async install(t, s) {
1777
+ Dr(t, s.handleError), Rr.forEach((e) => A.addSetting(e)), await $e(t, Pr);
1778
+ }
1779
+ }, Br = {
1583
1780
  async install() {
1584
- Le() && (globalThis.testingRuntime = {
1585
- on: (...t) => T.on(...t)
1781
+ Ee() && (globalThis.testingRuntime = {
1782
+ on: (...t) => R.on(...t),
1783
+ service: (t) => A.service(t)
1586
1784
  });
1587
1785
  }
1588
- }, kr = {
1786
+ }, Fr = {
1589
1787
  viewBox: "0 0 20 20",
1590
1788
  width: "1.2em",
1591
1789
  height: "1.2em"
1592
1790
  };
1593
- function Mr(t, s) {
1594
- return i(), b("svg", kr, s[0] || (s[0] = [
1791
+ function Ur(t, s) {
1792
+ return u(), b("svg", Fr, s[0] || (s[0] = [
1595
1793
  y("path", {
1596
1794
  fill: "currentColor",
1597
1795
  d: "M10 8.586L2.929 1.515L1.515 2.929L8.586 10l-7.071 7.071l1.414 1.414L10 11.414l7.071 7.071l1.414-1.414L11.414 10l7.071-7.071l-1.414-1.414z"
1598
1796
  }, null, -1)
1599
1797
  ]));
1600
1798
  }
1601
- const Er = R({ name: "zondicons-close", render: Mr }), Hr = /* @__PURE__ */ g({
1799
+ const Or = E({ name: "zondicons-close", render: Ur }), Nr = /* @__PURE__ */ g({
1602
1800
  __name: "HeadlessModal",
1603
1801
  props: {
1604
1802
  persistent: { type: Boolean },
@@ -1608,27 +1806,27 @@ const Er = R({ name: "zondicons-close", render: Mr }), Hr = /* @__PURE__ */ g({
1608
1806
  descriptionHidden: { type: Boolean }
1609
1807
  },
1610
1808
  setup(t, { expose: s }) {
1611
- const e = F(null), { modal: r } = H(
1809
+ const e = U(null), { modal: r } = V(
1612
1810
  "modal",
1613
1811
  "could not obtain modal reference from <HeadlessModal>, did you render this component manually? Show it using $ui.modal() instead"
1614
1812
  );
1615
- s({ close: l, $content: e });
1616
- const { forwardRef: n } = Ie(), a = F(!1);
1617
- se("$modalContentRef", e), at("close-modal", async ({ id: c, result: d }) => {
1618
- c === r.id && await l(d);
1813
+ s({ close: i, $content: e });
1814
+ const { forwardRef: n } = Ve(), a = U(!1);
1815
+ le("$modalContentRef", e), ot("close-modal", async ({ id: o, result: d }) => {
1816
+ o === r.id && await i(d);
1619
1817
  });
1620
- async function l(c) {
1621
- a.value || (await T.emit("modal-will-close", { modal: r, result: c }), a.value = !0, await T.emit("modal-has-closed", { modal: r, result: c }));
1818
+ async function i(o) {
1819
+ a.value || (await R.emit("modal-will-close", { modal: r, result: o }), a.value = !0, await R.emit("modal-has-closed", { modal: r, result: o }));
1622
1820
  }
1623
- return (c, d) => (i(), f(o(us), {
1624
- ref: o(n),
1821
+ return (o, d) => (u(), h(l(ys), {
1822
+ ref: l(n),
1625
1823
  open: "",
1626
- "onUpdate:open": d[0] || (d[0] = (v) => c.persistent || l())
1824
+ "onUpdate:open": d[0] || (d[0] = (v) => o.persistent || i())
1627
1825
  }, {
1628
- default: m(() => [
1629
- p(o(ds), null, {
1630
- default: m(() => [
1631
- _(c.$slots, "default", { close: l })
1826
+ default: f(() => [
1827
+ p(l(ws), null, {
1828
+ default: f(() => [
1829
+ w(o.$slots, "default", { close: i })
1632
1830
  ]),
1633
1831
  _: 3
1634
1832
  })
@@ -1636,58 +1834,58 @@ const Er = R({ name: "zondicons-close", render: Mr }), Hr = /* @__PURE__ */ g({
1636
1834
  _: 3
1637
1835
  }, 512));
1638
1836
  }
1639
- }), gt = /* @__PURE__ */ g({
1837
+ }), yt = /* @__PURE__ */ g({
1640
1838
  __name: "ModalContext",
1641
1839
  props: {
1642
1840
  modal: {},
1643
1841
  childIndex: {}
1644
1842
  },
1645
1843
  setup(t) {
1646
- const s = t, e = u(() => {
1844
+ const s = t, e = c(() => {
1647
1845
  const r = {};
1648
1846
  for (const n in s.modal.properties)
1649
- r[n] = o(s.modal.properties[n]);
1847
+ r[n] = l(s.modal.properties[n]);
1650
1848
  return r;
1651
1849
  });
1652
- return se("modal", {
1653
- modal: Ve(s, "modal"),
1654
- childIndex: Ve(s, "childIndex")
1655
- }), (r, n) => (i(), f(N(r.modal.component), ee(te(e.value)), null, 16));
1850
+ return le("modal", {
1851
+ modal: Re(s, "modal"),
1852
+ childIndex: Re(s, "childIndex")
1853
+ }), (r, n) => (u(), h(W(r.modal.component), ne(ae(e.value)), null, 16));
1656
1854
  }
1657
- }), Lr = /* @__PURE__ */ g({
1855
+ }), Wr = /* @__PURE__ */ g({
1658
1856
  __name: "HeadlessModalContent",
1659
1857
  setup(t) {
1660
- const { childIndex: s = 0 } = H(
1858
+ const { childIndex: s = 0 } = V(
1661
1859
  "modal",
1662
1860
  "could not obtain modal reference from <HeadlessModalContent>, did you render this component manually? Show it using $ui.modal() instead"
1663
- ), e = zs("$modalContentRef"), r = re("$contentRef"), n = u(() => V.modals[s] ?? null);
1664
- return ie(() => e.value = r.value), (a, l) => (i(), f(o(ps), { ref: "$contentRef" }, {
1665
- default: m(() => [
1666
- _(a.$slots, "default"),
1667
- n.value ? (i(), f(gt, {
1861
+ ), e = Os("$modalContentRef"), r = G("$contentRef"), n = c(() => z.modals[s] ?? null);
1862
+ return Y(() => e.value = r.value), (a, i) => (u(), h(l($s), { ref: "$contentRef" }, {
1863
+ default: f(() => [
1864
+ w(a.$slots, "default"),
1865
+ n.value ? (u(), h(yt, {
1668
1866
  key: 0,
1669
- "child-index": o(s) + 1,
1867
+ "child-index": l(s) + 1,
1670
1868
  modal: n.value
1671
- }, null, 8, ["child-index", "modal"])) : M("", !0)
1869
+ }, null, 8, ["child-index", "modal"])) : T("", !0)
1672
1870
  ]),
1673
1871
  _: 3
1674
1872
  }, 512));
1675
1873
  }
1676
- }), Ir = /* @__PURE__ */ g({
1874
+ }), Kr = /* @__PURE__ */ g({
1677
1875
  __name: "HeadlessModalDescription",
1678
1876
  props: {
1679
1877
  asChild: { type: Boolean },
1680
1878
  as: {}
1681
1879
  },
1682
1880
  setup(t) {
1683
- return (s, e) => (i(), f(o(ms), ee(te(s.$props)), {
1684
- default: m(() => [
1685
- _(s.$slots, "default")
1881
+ return (s, e) => (u(), h(l(_s), ne(ae(s.$props)), {
1882
+ default: f(() => [
1883
+ w(s.$slots, "default")
1686
1884
  ]),
1687
1885
  _: 3
1688
1886
  }, 16));
1689
1887
  }
1690
- }), Tr = /* @__PURE__ */ g({
1888
+ }), Qr = /* @__PURE__ */ g({
1691
1889
  __name: "HeadlessModalOverlay",
1692
1890
  props: {
1693
1891
  forceMount: { type: Boolean },
@@ -1695,31 +1893,31 @@ const Er = R({ name: "zondicons-close", render: Mr }), Hr = /* @__PURE__ */ g({
1695
1893
  as: {}
1696
1894
  },
1697
1895
  setup(t) {
1698
- return (s, e) => (i(), f(o(fs), ee(te(s.$props)), {
1699
- default: m(() => [
1700
- _(s.$slots, "default")
1896
+ return (s, e) => (u(), h(l(xs), ne(ae(s.$props)), {
1897
+ default: f(() => [
1898
+ w(s.$slots, "default")
1701
1899
  ]),
1702
1900
  _: 3
1703
1901
  }, 16));
1704
1902
  }
1705
- }), Vr = /* @__PURE__ */ g({
1903
+ }), Jr = /* @__PURE__ */ g({
1706
1904
  __name: "HeadlessModalTitle",
1707
1905
  props: {
1708
1906
  asChild: { type: Boolean },
1709
1907
  as: {}
1710
1908
  },
1711
1909
  setup(t) {
1712
- return (s, e) => (i(), f(o(hs), ee(te(s.$props)), {
1713
- default: m(() => [
1714
- _(s.$slots, "default")
1910
+ return (s, e) => (u(), h(l(Cs), ne(ae(s.$props)), {
1911
+ default: f(() => [
1912
+ w(s.$slots, "default")
1715
1913
  ]),
1716
1914
  _: 3
1717
1915
  }, 16));
1718
1916
  }
1719
- }), Rr = {
1917
+ }), Zr = {
1720
1918
  key: 0,
1721
1919
  class: "absolute top-0 right-0 hidden pt-3.5 pr-2.5 sm:block"
1722
- }, Pr = ["onClick"], Ar = { class: "sr-only" }, X = /* @__PURE__ */ g({
1920
+ }, Xr = ["onClick"], Yr = { class: "sr-only" }, se = /* @__PURE__ */ g({
1723
1921
  __name: "Modal",
1724
1922
  props: {
1725
1923
  persistent: { type: Boolean },
@@ -1732,81 +1930,85 @@ const Er = R({ name: "zondicons-close", render: Mr }), Hr = /* @__PURE__ */ g({
1732
1930
  closeHidden: { type: Boolean }
1733
1931
  },
1734
1932
  setup(t, { expose: s }) {
1735
- const e = J(t, ["class", "wrapperClass", "title", "titleHidden", "description", "persistent", "closeHidden"]);
1933
+ const e = N(t, ["class", "wrapperClass", "title", "titleHidden", "description", "persistent", "closeHidden"]);
1736
1934
  s({
1737
- close: async (h) => {
1738
- var $;
1739
- return ($ = a.value) == null ? void 0 : $.close(h);
1935
+ close: async (m) => {
1936
+ var C;
1937
+ return (C = a.value) == null ? void 0 : C.close(m);
1740
1938
  },
1741
- $content: u(() => {
1742
- var h;
1743
- return (h = a.value) == null ? void 0 : h.$content;
1939
+ $content: c(() => {
1940
+ var m;
1941
+ return (m = a.value) == null ? void 0 : m.$content;
1744
1942
  })
1745
1943
  });
1746
- const { forwardRef: r, currentRef: n } = Ie(), a = n, l = H("modal"), c = u(() => !l.modal.closing && l.childIndex === V.openModals.length), d = u(() => t.description ? {} : { "aria-describedby": void 0 }), v = u(() => E("max-h-[90vh] overflow-auto px-4 pb-4", { "pt-4": !t.title || t.titleHidden }, t.class)), x = u(() => E(
1944
+ const { forwardRef: r, currentRef: n } = Ve(), a = n, i = V("modal"), o = c(() => !i.modal.closing && i.childIndex === z.openModals.length), d = c(() => t.description ? {} : { "aria-describedby": void 0 }), v = c(() => M("max-h-[90vh] overflow-auto px-4 pb-4", { "pt-4": !t.title || t.titleHidden }, t.class)), $ = c(() => M(
1747
1945
  "isolate fixed top-1/2 left-1/2 z-50 w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2",
1748
1946
  "overflow-hidden rounded-lg bg-white text-left shadow-xl sm:max-w-lg",
1749
1947
  "animate-[fade-in_var(--tw-duration)_ease-in-out,grow_var(--tw-duration)_ease-in-out]",
1750
1948
  "transition-[scale,opacity] will-change-[scale,opacity] duration-300",
1751
1949
  {
1752
- "scale-50 opacity-0": !c.value,
1753
- "scale-100 opacity-100": c.value
1950
+ "scale-50 opacity-0": !o.value,
1951
+ "scale-100 opacity-100": o.value
1754
1952
  },
1755
1953
  t.wrapperClass
1756
1954
  ));
1757
- return at("modal-will-close", async ({ modal: { id: h } }) => {
1758
- h === l.modal.id && await xe({ ms: 300 });
1759
- }), (h, $) => (i(), f(Hr, I(e, {
1760
- ref: (L) => o(r)(L),
1761
- persistent: h.persistent
1955
+ return ot("modal-will-close", async ({ modal: { id: m } }) => {
1956
+ m === i.modal.id && await ue({ ms: 300 });
1957
+ }), (m, C) => (u(), h(Nr, H(e, {
1958
+ ref: (L) => l(r)(L),
1959
+ persistent: m.persistent
1762
1960
  }), {
1763
- default: m(({ close: L }) => [
1764
- p(Tr, {
1961
+ default: f(({ close: L }) => [
1962
+ p(Qr, {
1765
1963
  class: k(["fixed inset-0 animate-[fade-in_var(--tw-duration)_ease-in-out] transition-opacity duration-300 will-change-[opacity]", {
1766
- "bg-black/30": o(l).childIndex === 1,
1767
- "opacity-0": o(l).childIndex === 1 && o(l).modal.closing
1964
+ "bg-black/30": l(i).childIndex === 1,
1965
+ "opacity-0": l(i).childIndex === 1 && l(i).modal.closing
1768
1966
  }])
1769
1967
  }, null, 8, ["class"]),
1770
- p(Lr, I(d.value, { class: x.value }), {
1771
- default: m(() => [
1772
- !h.persistent && !h.closeHidden ? (i(), b("div", Rr, [
1968
+ p(Wr, H(d.value, { class: $.value }), {
1969
+ default: f(() => [
1970
+ !m.persistent && !m.closeHidden ? (u(), b("div", Zr, [
1773
1971
  y("button", {
1774
1972
  type: "button",
1775
1973
  class: "clickable z-10 rounded-full p-2.5 text-gray-400 hover:text-gray-500",
1776
- onClick: (be) => L()
1974
+ onClick: (_e) => L()
1777
1975
  }, [
1778
- y("span", Ar, C(h.$td("ui.close", "Close")), 1),
1779
- p(o(Er), { class: "size-4" })
1780
- ], 8, Pr)
1781
- ])) : M("", !0),
1782
- h.title ? (i(), f(Vr, {
1976
+ y("span", Yr, x(m.$td("ui.close", "Close")), 1),
1977
+ p(l(Or), { class: "size-4" })
1978
+ ], 8, Xr)
1979
+ ])) : T("", !0),
1980
+ m.title ? (u(), h(Jr, {
1783
1981
  key: 1,
1784
- class: k(["px-4 pt-5 pb-2 text-base font-semibold text-gray-900", { "sr-only": h.titleHidden }])
1982
+ class: k(["px-4 pt-5 text-base font-semibold text-gray-900", {
1983
+ "sr-only": m.titleHidden,
1984
+ "pb-0": m.description && !m.descriptionHidden,
1985
+ "pb-2": !m.description || m.descriptionHidden
1986
+ }])
1785
1987
  }, {
1786
- default: m(() => [
1787
- p(A, {
1788
- text: h.title,
1988
+ default: f(() => [
1989
+ p(P, {
1990
+ text: m.title,
1789
1991
  inline: ""
1790
1992
  }, null, 8, ["text"])
1791
1993
  ]),
1792
1994
  _: 1
1793
- }, 8, ["class"])) : M("", !0),
1794
- h.description ? (i(), f(Ir, {
1995
+ }, 8, ["class"])) : T("", !0),
1996
+ m.description ? (u(), h(Kr, {
1795
1997
  key: 2,
1796
- class: k({ "sr-only": h.descriptionHidden })
1998
+ class: k(["px-4 pt-1 pb-2", { "sr-only": m.descriptionHidden }])
1797
1999
  }, {
1798
- default: m(() => [
1799
- p(A, {
1800
- text: h.description,
1801
- class: "mt-1 text-sm leading-6 text-gray-500"
2000
+ default: f(() => [
2001
+ p(P, {
2002
+ text: m.description,
2003
+ class: "text-sm leading-6 text-gray-500"
1802
2004
  }, null, 8, ["text"])
1803
2005
  ]),
1804
2006
  _: 1
1805
- }, 8, ["class"])) : M("", !0),
2007
+ }, 8, ["class"])) : T("", !0),
1806
2008
  y("div", {
1807
2009
  class: k(v.value)
1808
2010
  }, [
1809
- _(h.$slots, "default", { close: L })
2011
+ w(m.$slots, "default", { close: L })
1810
2012
  ], 2)
1811
2013
  ]),
1812
2014
  _: 2
@@ -1816,29 +2018,29 @@ const Er = R({ name: "zondicons-close", render: Mr }), Hr = /* @__PURE__ */ g({
1816
2018
  }, 16, ["persistent"]));
1817
2019
  }
1818
2020
  });
1819
- function zr(t) {
1820
- const s = u(() => t.title ?? S("ui.alert", "Alert")), e = u(() => !t.title);
2021
+ function Gr(t) {
2022
+ const s = c(() => t.title ?? S("ui.alert", "Alert")), e = c(() => !t.title);
1821
2023
  return { renderedTitle: s, titleHidden: e };
1822
2024
  }
1823
- const jr = /* @__PURE__ */ g({
2025
+ const en = /* @__PURE__ */ g({
1824
2026
  __name: "AlertModal",
1825
2027
  props: {
1826
2028
  title: {},
1827
2029
  message: {}
1828
2030
  },
1829
2031
  setup(t, { expose: s }) {
1830
- const e = t, { renderedTitle: r, titleHidden: n } = zr(e);
1831
- return s(), (a, l) => (i(), f(X, {
1832
- title: o(r),
1833
- "title-hidden": o(n)
2032
+ const e = t, { renderedTitle: r, titleHidden: n } = Gr(e);
2033
+ return s(), (a, i) => (u(), h(se, {
2034
+ title: l(r),
2035
+ "title-hidden": l(n)
1834
2036
  }, {
1835
- default: m(() => [
1836
- p(A, { text: a.message }, null, 8, ["text"])
2037
+ default: f(() => [
2038
+ p(P, { text: a.message }, null, 8, ["text"])
1837
2039
  ]),
1838
2040
  _: 1
1839
2041
  }, 8, ["title", "title-hidden"]));
1840
2042
  }
1841
- }), vt = /* @__PURE__ */ g({
2043
+ }), wt = /* @__PURE__ */ g({
1842
2044
  __name: "Form",
1843
2045
  props: {
1844
2046
  form: {}
@@ -1847,39 +2049,39 @@ const jr = /* @__PURE__ */ g({
1847
2049
  setup(t, { emit: s }) {
1848
2050
  let e;
1849
2051
  const r = s;
1850
- return ie((n) => {
2052
+ return Y((n) => {
1851
2053
  var a;
1852
2054
  e == null || e(), e = (a = t.form) == null ? void 0 : a.on("submit", () => r("submit")), n(() => e == null ? void 0 : e());
1853
- }), se("form", t.form), (n, a) => (i(), b("form", {
1854
- onSubmit: a[0] || (a[0] = Ue((l) => {
1855
- var c;
1856
- return (c = n.form) == null ? void 0 : c.submit();
2055
+ }), le("form", t.form), (n, a) => (u(), b("form", {
2056
+ onSubmit: a[0] || (a[0] = We((i) => {
2057
+ var o;
2058
+ return (o = n.form) == null ? void 0 : o.submit();
1857
2059
  }, ["prevent"]))
1858
2060
  }, [
1859
- _(n.$slots, "default")
2061
+ w(n.$slots, "default")
1860
2062
  ], 32));
1861
2063
  }
1862
2064
  });
1863
- function Br(t) {
1864
- const s = lt(
2065
+ function tn(t) {
2066
+ const s = ut(
1865
2067
  Object.entries(t.checkboxes ?? {}).reduce(
1866
- (l, [c, d]) => ({
1867
- [c]: {
2068
+ (i, [o, d]) => ({
2069
+ [o]: {
1868
2070
  type: "boolean",
1869
2071
  default: d.default,
1870
2072
  required: d.required ? "required" : void 0
1871
2073
  },
1872
- ...l
2074
+ ...i
1873
2075
  }),
1874
2076
  {}
1875
2077
  )
1876
- ), e = u(() => t.title ?? S("ui.confirm", "Confirm")), r = u(() => !t.title), n = u(() => t.acceptText ?? S("ui.accept", "Ok")), a = u(() => t.cancelText ?? S("ui.cancel", "Cancel"));
2078
+ ), e = c(() => t.title ?? S("ui.confirm", "Confirm")), r = c(() => !t.title), n = c(() => t.acceptText ?? S("ui.accept", "Ok")), a = c(() => t.cancelText ?? S("ui.cancel", "Cancel"));
1877
2079
  return { form: s, renderedTitle: e, titleHidden: r, renderedAcceptText: n, renderedCancelText: a };
1878
2080
  }
1879
- const Dr = {
2081
+ const sn = {
1880
2082
  key: 0,
1881
2083
  class: "mt-4 flex flex-col text-sm text-gray-600"
1882
- }, qr = { class: "flex items-center" }, Fr = ["onUpdate:modelValue", "required"], Ur = { class: "ml-1.5" }, Or = { class: "mt-4 flex flex-row-reverse gap-2" }, Nr = /* @__PURE__ */ g({
2084
+ }, rn = { class: "flex items-center" }, nn = ["onUpdate:modelValue", "required"], an = { class: "ml-1.5" }, ln = { class: "mt-4 flex flex-row-reverse gap-2" }, on = /* @__PURE__ */ g({
1883
2085
  __name: "ConfirmModal",
1884
2086
  props: {
1885
2087
  title: {},
@@ -1893,54 +2095,54 @@ const Dr = {
1893
2095
  required: { type: Boolean }
1894
2096
  },
1895
2097
  setup(t, { expose: s }) {
1896
- const e = J(t, ["cancelVariant"]), { form: r, renderedTitle: n, titleHidden: a, renderedAcceptText: l, renderedCancelText: c } = Br(e);
1897
- return s(), (d, v) => (i(), f(X, {
1898
- title: o(n),
1899
- "title-hidden": o(a),
2098
+ const e = N(t, ["cancelVariant"]), { form: r, renderedTitle: n, titleHidden: a, renderedAcceptText: i, renderedCancelText: o } = tn(e);
2099
+ return s(), (d, v) => (u(), h(se, {
2100
+ title: l(n),
2101
+ "title-hidden": l(a),
1900
2102
  persistent: ""
1901
2103
  }, {
1902
- default: m(({ close: x }) => [
1903
- p(vt, {
1904
- form: o(r),
1905
- onSubmit: (h) => x([!0, o(r).data()])
2104
+ default: f(({ close: $ }) => [
2105
+ p(wt, {
2106
+ form: l(r),
2107
+ onSubmit: (m) => $([!0, l(r).data()])
1906
2108
  }, {
1907
- default: m(() => [
1908
- p(A, {
2109
+ default: f(() => [
2110
+ p(P, {
1909
2111
  text: d.message,
1910
2112
  actions: d.actions
1911
2113
  }, null, 8, ["text", "actions"]),
1912
- d.checkboxes ? (i(), b("ul", Dr, [
1913
- (i(!0), b(B, null, q(d.checkboxes, (h, $) => (i(), b("li", { key: $ }, [
1914
- y("label", qr, [
1915
- Oe(y("input", {
1916
- "onUpdate:modelValue": (L) => o(r)[$] = L,
2114
+ d.checkboxes ? (u(), b("ul", sn, [
2115
+ (u(!0), b(D, null, F(d.checkboxes, (m, C) => (u(), b("li", { key: C }, [
2116
+ y("label", rn, [
2117
+ Ke(y("input", {
2118
+ "onUpdate:modelValue": (L) => l(r)[C] = L,
1917
2119
  type: "checkbox",
1918
- required: h.required,
2120
+ required: m.required,
1919
2121
  class: "border-primary-600 text-primary-600 hover:bg-primary-50 hover:checked:bg-primary-500 focus:ring-primary-600 focus-visible:ring-primary-600 rounded border-2"
1920
- }, null, 8, Fr), [
1921
- [It, o(r)[$]]
2122
+ }, null, 8, nn), [
2123
+ [It, l(r)[C]]
1922
2124
  ]),
1923
- y("span", Ur, C(h.label), 1)
2125
+ y("span", an, x(m.label), 1)
1924
2126
  ])
1925
2127
  ]))), 128))
1926
- ])) : M("", !0),
1927
- y("div", Or, [
1928
- p(z, {
2128
+ ])) : T("", !0),
2129
+ y("div", ln, [
2130
+ p(q, {
1929
2131
  variant: d.acceptVariant,
1930
2132
  submit: ""
1931
2133
  }, {
1932
- default: m(() => [
1933
- P(C(o(l)), 1)
2134
+ default: f(() => [
2135
+ I(x(l(i)), 1)
1934
2136
  ]),
1935
2137
  _: 1
1936
2138
  }, 8, ["variant"]),
1937
- d.required ? M("", !0) : (i(), f(z, {
2139
+ d.required ? T("", !0) : (u(), h(q, {
1938
2140
  key: 0,
1939
2141
  variant: d.cancelVariant,
1940
- onClick: (h) => x(!1)
2142
+ onClick: (m) => $(!1)
1941
2143
  }, {
1942
- default: m(() => [
1943
- P(C(o(c)), 1)
2144
+ default: f(() => [
2145
+ I(x(l(o)), 1)
1944
2146
  ]),
1945
2147
  _: 2
1946
2148
  }, 1032, ["variant", "onClick"]))
@@ -1952,127 +2154,127 @@ const Dr = {
1952
2154
  _: 1
1953
2155
  }, 8, ["title", "title-hidden"]));
1954
2156
  }
1955
- }), Wr = {
2157
+ }), un = {
1956
2158
  viewBox: "0 0 20 20",
1957
2159
  width: "1.2em",
1958
2160
  height: "1.2em"
1959
2161
  };
1960
- function Kr(t, s) {
1961
- return i(), b("svg", Wr, s[0] || (s[0] = [
2162
+ function cn(t, s) {
2163
+ return u(), b("svg", un, s[0] || (s[0] = [
1962
2164
  y("path", {
1963
2165
  fill: "currentColor",
1964
2166
  d: "M7.05 9.293L6.343 10L12 15.657l1.414-1.414L9.172 10l4.242-4.243L12 4.343z"
1965
2167
  }, null, -1)
1966
2168
  ]));
1967
2169
  }
1968
- const Qr = R({ name: "zondicons-cheveron-left", render: Kr }), Jr = {
2170
+ const dn = E({ name: "zondicons-cheveron-left", render: cn }), pn = {
1969
2171
  viewBox: "0 0 20 20",
1970
2172
  width: "1.2em",
1971
2173
  height: "1.2em"
1972
2174
  };
1973
- function Zr(t, s) {
1974
- return i(), b("svg", Jr, s[0] || (s[0] = [
2175
+ function mn(t, s) {
2176
+ return u(), b("svg", pn, s[0] || (s[0] = [
1975
2177
  y("path", {
1976
2178
  fill: "currentColor",
1977
2179
  d: "m12.95 10.707l.707-.707L8 4.343L6.586 5.757L10.828 10l-4.242 4.243L8 15.657z"
1978
2180
  }, null, -1)
1979
2181
  ]));
1980
2182
  }
1981
- const bt = R({ name: "zondicons-cheveron-right", render: Zr }), Gr = {
2183
+ const $t = E({ name: "zondicons-cheveron-right", render: mn }), fn = {
1982
2184
  viewBox: "0 0 20 20",
1983
2185
  width: "1.2em",
1984
2186
  height: "1.2em"
1985
2187
  };
1986
- function Xr(t, s) {
1987
- return i(), b("svg", Gr, s[0] || (s[0] = [
2188
+ function hn(t, s) {
2189
+ return u(), b("svg", fn, s[0] || (s[0] = [
1988
2190
  y("path", {
1989
2191
  fill: "currentColor",
1990
2192
  d: "M2.93 17.07A10 10 0 1 1 17.07 2.93A10 10 0 0 1 2.93 17.07M9 5v6h2V5zm0 8v2h2v-2z"
1991
2193
  }, null, -1)
1992
2194
  ]));
1993
2195
  }
1994
- const yt = R({ name: "zondicons-exclamation-solid", render: Xr }), Yr = {
2196
+ const qe = E({ name: "zondicons-exclamation-solid", render: hn }), gn = {
1995
2197
  viewBox: "0 0 24 24",
1996
2198
  width: "1.2em",
1997
2199
  height: "1.2em"
1998
2200
  };
1999
- function en(t, s) {
2000
- return i(), b("svg", Yr, s[0] || (s[0] = [
2201
+ function vn(t, s) {
2202
+ return u(), b("svg", gn, s[0] || (s[0] = [
2001
2203
  y("path", {
2002
2204
  fill: "currentColor",
2003
2205
  d: "M20 19V7H4v12zm0-16a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm-7 14v-2h5v2zm-3.42-4L5.57 9H8.4l3.3 3.3c.39.39.39 1.03 0 1.42L8.42 17H5.59z"
2004
2206
  }, null, -1)
2005
2207
  ]));
2006
2208
  }
2007
- const tn = R({ name: "mdi-console", render: en }), sn = {
2209
+ const bn = E({ name: "mdi-console", render: vn }), yn = {
2008
2210
  viewBox: "0 0 20 20",
2009
2211
  width: "1.2em",
2010
2212
  height: "1.2em"
2011
2213
  };
2012
- function rn(t, s) {
2013
- return i(), b("svg", sn, s[0] || (s[0] = [
2214
+ function wn(t, s) {
2215
+ return u(), b("svg", yn, s[0] || (s[0] = [
2014
2216
  y("path", {
2015
2217
  fill: "currentColor",
2016
2218
  d: "M6 6V2c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-4v4a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V8c0-1.1.9-2 2-2zm2 0h4a2 2 0 0 1 2 2v4h4V2H8zM2 8v10h10V8z"
2017
2219
  }, null, -1)
2018
2220
  ]));
2019
2221
  }
2020
- const nn = R({ name: "zondicons-copy", render: rn }), an = {
2222
+ const $n = E({ name: "zondicons-copy", render: wn }), _n = {
2021
2223
  viewBox: "0 0 24 24",
2022
2224
  width: "1.2em",
2023
2225
  height: "1.2em"
2024
2226
  };
2025
- function on(t, s) {
2026
- return i(), b("svg", an, s[0] || (s[0] = [
2227
+ function xn(t, s) {
2228
+ return u(), b("svg", _n, s[0] || (s[0] = [
2027
2229
  y("path", {
2028
2230
  fill: "currentColor",
2029
2231
  d: "M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33s1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2"
2030
2232
  }, null, -1)
2031
2233
  ]));
2032
2234
  }
2033
- const ln = R({ name: "mdi-github", render: on }), cn = { class: "flex" }, un = { class: "sr-only" }, dn = /* @__PURE__ */ g({
2235
+ const Cn = E({ name: "mdi-github", render: xn }), kn = { class: "flex" }, Sn = { class: "sr-only" }, Tn = /* @__PURE__ */ g({
2034
2236
  __name: "ErrorReportModalButtons",
2035
2237
  props: {
2036
2238
  report: {}
2037
2239
  },
2038
2240
  setup(t) {
2039
- const s = t, e = u(() => s.report.description ? `${s.report.title}: ${s.report.description}` : s.report.title), r = u(() => {
2040
- if (!j.sourceUrl)
2241
+ const s = t, e = c(() => s.report.description ? `${s.report.title}: ${s.report.description}` : s.report.title), r = c(() => {
2242
+ if (!A.sourceUrl)
2041
2243
  return !1;
2042
- const a = encodeURIComponent(e.value), l = encodeURIComponent(
2244
+ const a = encodeURIComponent(e.value), i = encodeURIComponent(
2043
2245
  [
2044
2246
  "[Please, explain here what you were trying to do when this error appeared]",
2045
2247
  "",
2046
2248
  "Error details:",
2047
2249
  "```",
2048
- Ot(
2250
+ Qt(
2049
2251
  s.report.details ?? "Details missing from report",
2050
- 1800 - a.length - j.sourceUrl.length
2252
+ 1800 - a.length - A.sourceUrl.length
2051
2253
  ).trim(),
2052
2254
  "```"
2053
2255
  ].join(`
2054
2256
  `)
2055
2257
  );
2056
- return `${j.sourceUrl}/issues/new?title=${a}&body=${l}`;
2057
- }), n = u(() => Z(
2258
+ return `${A.sourceUrl}/issues/new?title=${a}&body=${i}`;
2259
+ }), n = c(() => ee(
2058
2260
  [
2059
2261
  {
2060
2262
  id: "clipboard",
2061
2263
  description: "Copy to clipboard",
2062
- iconComponent: nn,
2264
+ iconComponent: $n,
2063
2265
  async click() {
2064
2266
  await navigator.clipboard.writeText(`${e.value}
2065
2267
 
2066
- ${s.report.details}`), V.toast(S("errors.copiedToClipboard", "Debug information copied to clipboard"));
2268
+ ${s.report.details}`), z.toast(S("errors.copiedToClipboard", "Debug information copied to clipboard"));
2067
2269
  }
2068
2270
  },
2069
2271
  {
2070
2272
  id: "console",
2071
2273
  description: "Log to console",
2072
- iconComponent: tn,
2274
+ iconComponent: bn,
2073
2275
  click() {
2074
2276
  const a = s.report.error ?? s.report;
2075
- window.error = a, console.error(a), V.toast(
2277
+ window.error = a, console.error(a), z.toast(
2076
2278
  S(
2077
2279
  "errors.addedToConsole",
2078
2280
  "You can now use the **error** variable in the console"
@@ -2085,24 +2287,24 @@ ${s.report.details}`), V.toast(S("errors.copiedToClipboard", "Debug information
2085
2287
  r.value && a.push({
2086
2288
  id: "github",
2087
2289
  description: "Report in GitHub",
2088
- iconComponent: ln,
2290
+ iconComponent: Cn,
2089
2291
  url: r.value
2090
2292
  });
2091
2293
  }
2092
2294
  ));
2093
- return (a, l) => (i(), b("div", cn, [
2094
- (i(!0), b(B, null, q(n.value, (c) => _(a.$slots, "default", I({ ref_for: !0 }, c), () => [
2095
- p(z, {
2295
+ return (a, i) => (u(), b("div", kn, [
2296
+ (u(!0), b(D, null, F(n.value, (o) => w(a.$slots, "default", H({ ref_for: !0 }, o), () => [
2297
+ p(q, {
2096
2298
  size: "icon",
2097
2299
  variant: "ghost",
2098
2300
  class: "group whitespace-nowrap",
2099
- href: c.url,
2100
- title: a.$td(`errors.report_${c.id}`, c.description),
2101
- onClick: c.click
2301
+ href: o.url,
2302
+ title: a.$td(`errors.report_${o.id}`, o.description),
2303
+ onClick: o.click
2102
2304
  }, {
2103
- default: m(() => [
2104
- y("span", un, C(a.$td(`errors.report_${c.id}`, c.description)), 1),
2105
- (i(), f(N(c.iconComponent), {
2305
+ default: f(() => [
2306
+ y("span", Sn, x(a.$td(`errors.report_${o.id}`, o.description)), 1),
2307
+ (u(), h(W(o.iconComponent), {
2106
2308
  class: "size-4",
2107
2309
  "aria-hidden": "true"
2108
2310
  }))
@@ -2112,7 +2314,7 @@ ${s.report.details}`), V.toast(S("errors.copiedToClipboard", "Debug information
2112
2314
  ])), 256))
2113
2315
  ]));
2114
2316
  }
2115
- }), pn = /* @__PURE__ */ g({
2317
+ }), Mn = /* @__PURE__ */ g({
2116
2318
  __name: "ErrorReportModalTitle",
2117
2319
  props: {
2118
2320
  report: {},
@@ -2120,18 +2322,18 @@ ${s.report.details}`), V.toast(S("errors.copiedToClipboard", "Debug information
2120
2322
  totalReports: {}
2121
2323
  },
2122
2324
  setup(t) {
2123
- const s = u(() => !t.totalReports || t.totalReports <= 1 ? t.report.title : `${t.report.title} (${t.currentReport}/${t.totalReports})`);
2124
- return (e, r) => (i(), f(A, {
2325
+ const s = c(() => !t.totalReports || t.totalReports <= 1 ? t.report.title : `${t.report.title} (${t.currentReport}/${t.totalReports})`);
2326
+ return (e, r) => (u(), h(P, {
2125
2327
  text: s.value,
2126
2328
  inline: ""
2127
2329
  }, null, 8, ["text"]));
2128
2330
  }
2129
2331
  });
2130
- function mn(t) {
2131
- const s = F(t.reports.includes(t.report) ? t.reports.indexOf(t.report) : 0), e = u(() => t.reports[s.value]), r = u(
2332
+ function Hn(t) {
2333
+ const s = U(t.reports.includes(t.report) ? t.reports.indexOf(t.report) : 0), e = c(() => t.reports[s.value]), r = c(
2132
2334
  () => {
2133
- var l;
2134
- return ((l = e.value.details) == null ? void 0 : l.trim()) || S("errors.detailsEmpty", "This error is missing a stacktrace.");
2335
+ var i;
2336
+ return ((i = e.value.details) == null ? void 0 : i.trim()) || S("errors.detailsEmpty", "This error is missing a stacktrace.");
2135
2337
  }
2136
2338
  ), n = S("errors.previousReport", "Show previous report"), a = S("errors.nextReport", "Show next report");
2137
2339
  return {
@@ -2142,92 +2344,92 @@ function mn(t) {
2142
2344
  activeReport: e
2143
2345
  };
2144
2346
  }
2145
- const fn = { class: "px-4 pt-5 pb-4" }, hn = { class: "flex justify-between gap-4" }, gn = { class: "flex items-center gap-2" }, vn = {
2347
+ const En = { class: "px-4 pt-5 pb-4" }, Vn = { class: "flex justify-between gap-4" }, Ln = { class: "flex items-center gap-2" }, In = {
2146
2348
  key: 0,
2147
2349
  class: "flex gap-0.5"
2148
- }, bn = { class: "-mt-2 max-h-[75vh] overflow-auto bg-red-800/10" }, yn = ["textContent"], _n = /* @__PURE__ */ g({
2350
+ }, qn = { class: "-mt-2 max-h-[75vh] overflow-auto bg-red-800/10" }, zn = ["textContent"], Rn = /* @__PURE__ */ g({
2149
2351
  __name: "ErrorReportModal",
2150
2352
  props: {
2151
2353
  report: {},
2152
2354
  reports: {}
2153
2355
  },
2154
2356
  setup(t, { expose: s }) {
2155
- const e = t, { activeReportIndex: r, details: n, nextReportText: a, previousReportText: l, activeReport: c } = mn(e);
2156
- return s(), (d, v) => (i(), f(X, {
2357
+ const e = t, { activeReportIndex: r, details: n, nextReportText: a, previousReportText: i, activeReport: o } = Hn(e);
2358
+ return s(), (d, v) => (u(), h(se, {
2157
2359
  title: d.$td("errors.report", "Error report"),
2158
2360
  "title-hidden": "",
2159
2361
  "close-hidden": "",
2160
2362
  class: "p-0",
2161
2363
  "wrapper-class": "sm:w-auto sm:min-w-lg sm:max-w-[80vw]"
2162
2364
  }, {
2163
- default: m(() => [
2164
- y("div", fn, [
2165
- y("h2", hn, [
2166
- y("div", gn, [
2167
- p(o(yt), { class: "size-5 text-red-600" }),
2168
- p(pn, {
2365
+ default: f(() => [
2366
+ y("div", En, [
2367
+ y("h2", Vn, [
2368
+ y("div", Ln, [
2369
+ p(l(qe), { class: "size-5 text-red-600" }),
2370
+ p(Mn, {
2169
2371
  class: "text-lg leading-6 font-semibold text-gray-900",
2170
- report: o(c),
2171
- "current-report": o(r) + 1,
2372
+ report: l(o),
2373
+ "current-report": l(r) + 1,
2172
2374
  "total-reports": d.reports.length
2173
2375
  }, null, 8, ["report", "current-report", "total-reports"]),
2174
- d.reports.length > 1 ? (i(), b("span", vn, [
2175
- p(z, {
2376
+ d.reports.length > 1 ? (u(), b("span", In, [
2377
+ p(q, {
2176
2378
  size: "icon",
2177
2379
  variant: "ghost",
2178
- disabled: o(r) === 0,
2179
- "aria-label": o(l),
2180
- title: o(l),
2181
- onClick: v[0] || (v[0] = (x) => r.value--)
2380
+ disabled: l(r) === 0,
2381
+ "aria-label": l(i),
2382
+ title: l(i),
2383
+ onClick: v[0] || (v[0] = ($) => r.value--)
2182
2384
  }, {
2183
- default: m(() => [
2184
- p(o(Qr), { class: "size-4" })
2385
+ default: f(() => [
2386
+ p(l(dn), { class: "size-4" })
2185
2387
  ]),
2186
2388
  _: 1
2187
2389
  }, 8, ["disabled", "aria-label", "title"]),
2188
- p(z, {
2390
+ p(q, {
2189
2391
  size: "icon",
2190
2392
  variant: "ghost",
2191
- disabled: o(r) === d.reports.length - 1,
2192
- "aria-label": o(a),
2193
- title: o(a),
2194
- onClick: v[1] || (v[1] = (x) => r.value++)
2393
+ disabled: l(r) === d.reports.length - 1,
2394
+ "aria-label": l(a),
2395
+ title: l(a),
2396
+ onClick: v[1] || (v[1] = ($) => r.value++)
2195
2397
  }, {
2196
- default: m(() => [
2197
- p(o(bt), { class: "size-4" })
2398
+ default: f(() => [
2399
+ p(l($t), { class: "size-4" })
2198
2400
  ]),
2199
2401
  _: 1
2200
2402
  }, 8, ["disabled", "aria-label", "title"])
2201
- ])) : M("", !0)
2403
+ ])) : T("", !0)
2202
2404
  ]),
2203
- p(dn, {
2204
- report: o(c),
2405
+ p(Tn, {
2406
+ report: l(o),
2205
2407
  class: "gap-0.5"
2206
2408
  }, null, 8, ["report"])
2207
2409
  ]),
2208
- o(c).description ? (i(), f(A, {
2410
+ l(o).description ? (u(), h(P, {
2209
2411
  key: 0,
2210
- text: o(c).description,
2412
+ text: l(o).description,
2211
2413
  class: "text-gray-600"
2212
- }, null, 8, ["text"])) : M("", !0)
2414
+ }, null, 8, ["text"])) : T("", !0)
2213
2415
  ]),
2214
- y("div", bn, [
2416
+ y("div", qn, [
2215
2417
  y("pre", {
2216
2418
  class: "p-4 text-xs text-red-800",
2217
- textContent: C(o(n))
2218
- }, null, 8, yn)
2419
+ textContent: x(l(n))
2420
+ }, null, 8, zn)
2219
2421
  ])
2220
2422
  ]),
2221
2423
  _: 1
2222
2424
  }, 8, ["title"]));
2223
2425
  }
2224
- }), wn = {
2426
+ }), Pn = {
2225
2427
  viewBox: "0 0 24 24",
2226
2428
  width: "1.2em",
2227
2429
  height: "1.2em"
2228
2430
  };
2229
- function $n(t, s) {
2230
- return i(), b("svg", wn, s[0] || (s[0] = [
2431
+ function An(t, s) {
2432
+ return u(), b("svg", Pn, s[0] || (s[0] = [
2231
2433
  y("path", {
2232
2434
  fill: "currentColor",
2233
2435
  d: "M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z",
@@ -2247,7 +2449,7 @@ function $n(t, s) {
2247
2449
  ], -1)
2248
2450
  ]));
2249
2451
  }
2250
- const xn = R({ name: "svg-spinners-90-ring-with-bg", render: $n }), Cn = { class: "mt-1 h-2 w-full overflow-hidden rounded-full bg-gray-200" }, Sn = { class: "sr-only" }, kn = /* @__PURE__ */ g({
2452
+ const Dn = E({ name: "svg-spinners-90-ring-with-bg", render: An }), jn = { class: "mt-1 h-2 w-full overflow-hidden rounded-full bg-gray-200" }, Bn = { class: "sr-only" }, Fn = /* @__PURE__ */ g({
2251
2453
  __name: "ProgressBar",
2252
2454
  props: {
2253
2455
  filledClass: {},
@@ -2256,31 +2458,31 @@ const xn = R({ name: "svg-spinners-90-ring-with-bg", render: $n }), Cn = { class
2256
2458
  },
2257
2459
  setup(t) {
2258
2460
  let s;
2259
- const e = F(0), r = u(() => E("size-full transition-transform duration-500 rounded-r-full ease-linear bg-primary-600", t.filledClass)), n = u(() => typeof t.progress == "number" ? t.progress : e.value);
2260
- return He(
2461
+ const e = U(0), r = c(() => M("size-full transition-transform duration-500 rounded-r-full ease-linear bg-primary-600", t.filledClass)), n = c(() => typeof t.progress == "number" ? t.progress : e.value);
2462
+ return Me(
2261
2463
  () => t.job,
2262
2464
  () => {
2263
2465
  s && s(), e.value = t.job ? t.job.progress : 0, s = t.job && t.job.listeners.add({ onUpdated: (a) => e.value = a });
2264
2466
  },
2265
2467
  { immediate: !0 }
2266
- ), me(() => s && s()), (a, l) => (i(), b("div", Cn, [
2468
+ ), ge(() => s && s()), (a, i) => (u(), b("div", jn, [
2267
2469
  y("div", {
2268
2470
  class: k(r.value),
2269
- style: Tt(`transform:translateX(-${(1 - n.value) * 100}%)`)
2471
+ style: qt(`transform:translateX(-${(1 - n.value) * 100}%)`)
2270
2472
  }, null, 6),
2271
- y("span", Sn, C(a.$td("ui.progress", "{progress}% complete", {
2473
+ y("span", Bn, x(a.$td("ui.progress", "{progress}% complete", {
2272
2474
  progress: n.value * 100
2273
2475
  })), 1)
2274
2476
  ]));
2275
2477
  }
2276
2478
  });
2277
- function Mn(t) {
2278
- const s = u(() => t.title ?? S("ui.loading", "Loading")), e = u(
2479
+ function Un(t) {
2480
+ const s = c(() => t.title ?? S("ui.loading", "Loading")), e = c(
2279
2481
  () => t.message ?? S("ui.loadingInProgress", "Loading in progress...")
2280
- ), r = u(() => typeof t.progress == "number" || !!t.job), n = u(() => !t.title);
2482
+ ), r = c(() => typeof t.progress == "number" || !!t.job), n = c(() => !t.title);
2281
2483
  return { renderedTitle: s, renderedMessage: e, titleHidden: n, showProgress: r };
2282
2484
  }
2283
- const En = /* @__PURE__ */ g({
2485
+ const On = /* @__PURE__ */ g({
2284
2486
  __name: "LoadingModal",
2285
2487
  props: {
2286
2488
  title: {},
@@ -2289,30 +2491,30 @@ const En = /* @__PURE__ */ g({
2289
2491
  job: {}
2290
2492
  },
2291
2493
  setup(t, { expose: s }) {
2292
- const e = t, { renderedTitle: r, renderedMessage: n, titleHidden: a, showProgress: l } = Mn(e);
2293
- return s(), (c, d) => (i(), f(X, {
2494
+ const e = t, { renderedTitle: r, renderedMessage: n, titleHidden: a, showProgress: i } = Un(e);
2495
+ return s(), (o, d) => (u(), h(se, {
2294
2496
  persistent: "",
2295
- class: k(["flex", { "flex-col-reverse": o(l), "items-center justify-center gap-2": !o(l) }]),
2497
+ class: k(["flex", { "flex-col-reverse": l(i), "items-center justify-center gap-2": !l(i) }]),
2296
2498
  "wrapper-class": "w-auto",
2297
- title: o(r),
2298
- "title-hidden": o(a)
2499
+ title: l(r),
2500
+ "title-hidden": l(a)
2299
2501
  }, {
2300
- default: m(() => [
2301
- o(l) ? (i(), f(kn, {
2502
+ default: f(() => [
2503
+ l(i) ? (u(), h(Fn, {
2302
2504
  key: 0,
2303
- progress: c.progress,
2304
- job: c.job,
2505
+ progress: o.progress,
2506
+ job: o.job,
2305
2507
  class: "min-w-[min(400px,80vw)]"
2306
- }, null, 8, ["progress", "job"])) : (i(), f(o(xn), {
2508
+ }, null, 8, ["progress", "job"])) : (u(), h(l(Dn), {
2307
2509
  key: 1,
2308
2510
  class: "text-primary-600 mr-1 size-6"
2309
2511
  })),
2310
- p(A, { text: o(n) }, null, 8, ["text"])
2512
+ p(P, { text: l(n) }, null, 8, ["text"])
2311
2513
  ]),
2312
2514
  _: 1
2313
2515
  }, 8, ["title", "title-hidden", "class"]));
2314
2516
  }
2315
- }), _t = /* @__PURE__ */ g({
2517
+ }), ze = /* @__PURE__ */ g({
2316
2518
  __name: "HeadlessInput",
2317
2519
  props: {
2318
2520
  name: {},
@@ -2323,59 +2525,64 @@ const En = /* @__PURE__ */ g({
2323
2525
  },
2324
2526
  emits: ["update:modelValue"],
2325
2527
  setup(t, { expose: s, emit: e }) {
2326
- const r = e, n = le("form", null), a = u(() => !n || !t.name ? null : n.errors[t.name] ?? null), l = {
2327
- id: `input-${oe()}`,
2328
- name: u(() => t.name),
2329
- label: u(() => t.label),
2330
- description: u(() => t.description),
2331
- value: u(() => n && t.name ? n.getFieldValue(t.name) : t.modelValue),
2332
- errors: Ee(a),
2333
- required: u(() => {
2528
+ const r = e, n = X("form", null), a = c(() => !n || !t.name ? null : n.errors[t.name] ?? null), i = {
2529
+ id: `input-${re()}`,
2530
+ name: c(() => t.name),
2531
+ label: c(() => t.label),
2532
+ description: c(() => t.description),
2533
+ value: c(() => n && t.name ? n.getFieldValue(t.name) : t.modelValue),
2534
+ errors: ve(a),
2535
+ required: c(() => {
2334
2536
  if (!(!t.name || !n))
2335
2537
  return n.getFieldRules(t.name).includes("required");
2336
2538
  }),
2337
- update(c) {
2539
+ update(o) {
2338
2540
  if (n && t.name) {
2339
- n.setFieldValue(t.name, c);
2541
+ n.setFieldValue(t.name, o);
2340
2542
  return;
2341
2543
  }
2342
- r("update:modelValue", c);
2544
+ r("update:modelValue", o);
2343
2545
  }
2344
2546
  };
2345
- return se("input", l), s(l), (c, d) => (i(), f(N(c.as), null, {
2346
- default: m(() => [
2347
- _(c.$slots, "default")
2547
+ return le("input", i), s(i), (o, d) => (u(), h(W(o.as), null, {
2548
+ default: f(() => [
2549
+ w(o.$slots, "default")
2348
2550
  ]),
2349
2551
  _: 3
2350
2552
  }));
2351
2553
  }
2352
- }), Hn = ["for"], Se = /* @__PURE__ */ g({
2554
+ }), Nn = ["for"], fe = /* @__PURE__ */ g({
2353
2555
  __name: "HeadlessInputLabel",
2354
2556
  setup(t) {
2355
- const s = H("input", "<HeadlessInputLabel> must be a child of a <HeadlessInput>"), e = Me(), r = u(() => !!(s.label || e.default));
2356
- return (n, a) => r.value ? (i(), b("label", {
2557
+ const s = V("input", "<HeadlessInputLabel> must be a child of a <HeadlessInput>"), e = He(), r = c(() => !!(s.label || e.default));
2558
+ return (n, a) => r.value ? (u(), b("label", {
2357
2559
  key: 0,
2358
- for: o(s).id
2560
+ for: l(s).id
2359
2561
  }, [
2360
- _(n.$slots, "default", {}, () => [
2361
- P(C(o(s).label), 1)
2562
+ w(n.$slots, "default", {}, () => [
2563
+ I(x(l(s).label), 1)
2362
2564
  ])
2363
- ], 8, Hn)) : M("", !0);
2565
+ ], 8, Nn)) : T("", !0);
2364
2566
  }
2365
- }), Ln = ["id", "name", "type", "checked", "required", "aria-invalid", "aria-describedby"], wt = /* @__PURE__ */ g({
2567
+ }), Wn = ["id", "name", "checked", "type", "required", "aria-invalid", "aria-describedby"], _t = /* @__PURE__ */ g({
2366
2568
  __name: "HeadlessInputInput",
2367
2569
  props: {
2368
- type: { default: "text" }
2570
+ type: {}
2369
2571
  },
2370
2572
  setup(t) {
2371
- const s = re("$inputRef"), e = H("input", "<HeadlessInputInput> must be a child of a <HeadlessInput>"), r = u(() => e.name ?? void 0), n = u(() => e.value), a = u(() => {
2573
+ const s = G("$inputRef"), e = V("input", "<HeadlessInputInput> must be a child of a <HeadlessInput>"), r = X("form", null), n = c(() => e.name ?? void 0), a = c(() => e.value), i = c(() => {
2574
+ if (t.type)
2575
+ return t.type;
2576
+ const $ = (n.value && (r == null ? void 0 : r.getFieldType(n.value))) ?? "";
2577
+ return ["text", "email", "number", "tel", "url"].includes($) ? $ : "text";
2578
+ }), o = c(() => {
2372
2579
  if (t.type === "checkbox")
2373
- return !!n.value;
2580
+ return !!a.value;
2374
2581
  });
2375
- function l() {
2376
- s.value && e.update(c());
2582
+ function d() {
2583
+ s.value && e.update(v());
2377
2584
  }
2378
- function c() {
2585
+ function v() {
2379
2586
  if (!s.value)
2380
2587
  return null;
2381
2588
  switch (t.type) {
@@ -2387,59 +2594,59 @@ const En = /* @__PURE__ */ g({
2387
2594
  return s.value.value;
2388
2595
  }
2389
2596
  }
2390
- return ot(e, () => {
2391
- var d;
2392
- return (d = s.value) == null ? void 0 : d.focus();
2393
- }), ie(() => {
2597
+ return it(e, () => {
2598
+ var $;
2599
+ return ($ = s.value) == null ? void 0 : $.focus();
2600
+ }), Y(() => {
2394
2601
  if (s.value) {
2395
- if (t.type === "date") {
2396
- s.value.valueAsDate = n.value;
2602
+ if (t.type === "date" && a.value instanceof Date) {
2603
+ s.value.valueAsDate = a.value;
2397
2604
  return;
2398
2605
  }
2399
- s.value.value = n.value ?? null;
2606
+ s.value.value = a.value ?? null;
2400
2607
  }
2401
- }), (d, v) => (i(), b("input", {
2402
- id: o(e).id,
2608
+ }), ($, m) => (u(), b("input", {
2609
+ id: l(e).id,
2403
2610
  ref: "$inputRef",
2404
- name: r.value,
2405
- type: d.type,
2406
- checked: a.value,
2407
- required: o(e).required ?? void 0,
2408
- "aria-invalid": o(e).errors ? "true" : "false",
2409
- "aria-describedby": o(e).errors ? `${o(e).id}-error` : o(e).description ? `${o(e).id}-description` : void 0,
2410
- onInput: l
2411
- }, null, 40, Ln));
2412
- }
2413
- }), In = /* @__PURE__ */ g({
2611
+ name: n.value,
2612
+ checked: o.value,
2613
+ type: i.value,
2614
+ required: l(e).required ?? void 0,
2615
+ "aria-invalid": l(e).errors ? "true" : "false",
2616
+ "aria-describedby": l(e).errors ? `${l(e).id}-error` : l(e).description ? `${l(e).id}-description` : void 0,
2617
+ onInput: d
2618
+ }, null, 40, Wn));
2619
+ }
2620
+ }), xt = /* @__PURE__ */ g({
2414
2621
  inheritAttrs: !1,
2415
2622
  __name: "HeadlessInputDescription",
2416
2623
  setup(t) {
2417
- const s = H(
2624
+ const s = V(
2418
2625
  "input",
2419
2626
  "<HeadlessInputDescription> must be a child of a <HeadlessInput>"
2420
- ), e = u(() => typeof s.description == "string" ? s.description : ""), r = u(() => !!s.description);
2421
- return (n, a) => _(n.$slots, "default", {
2422
- id: `${o(s).id}-description`
2627
+ ), e = c(() => typeof s.description == "string" ? s.description : ""), r = c(() => !!s.description);
2628
+ return (n, a) => w(n.$slots, "default", {
2629
+ id: `${l(s).id}-description`
2423
2630
  }, () => [
2424
- r.value ? (i(), f(A, I({ key: 0 }, n.$attrs, {
2425
- id: `${o(s).id}-description`,
2631
+ r.value ? (u(), h(P, H({ key: 0 }, n.$attrs, {
2632
+ id: `${l(s).id}-description`,
2426
2633
  text: e.value
2427
- }), null, 16, ["id", "text"])) : M("", !0)
2634
+ }), null, 16, ["id", "text"])) : T("", !0)
2428
2635
  ]);
2429
2636
  }
2430
- }), Tn = ["id"], ke = /* @__PURE__ */ g({
2637
+ }), Kn = ["id"], he = /* @__PURE__ */ g({
2431
2638
  __name: "HeadlessInputError",
2432
2639
  setup(t) {
2433
- const s = H("input", "<HeadlessInputError> must be a child of a <HeadlessInput>"), e = u(() => s.errors ? S(`errors.${s.errors[0]}`, `Error: ${s.errors[0]}`) : null);
2434
- return (r, n) => e.value ? (i(), b("p", {
2640
+ const s = V("input", "<HeadlessInputError> must be a child of a <HeadlessInput>"), e = c(() => s.errors ? S(`errors.${s.errors[0]}`, `Error: ${s.errors[0]}`) : null);
2641
+ return (r, n) => e.value ? (u(), b("p", {
2435
2642
  key: 0,
2436
- id: `${o(s).id}-error`
2437
- }, C(e.value), 9, Tn)) : M("", !0);
2643
+ id: `${l(s).id}-error`
2644
+ }, x(e.value), 9, Kn)) : T("", !0);
2438
2645
  }
2439
- }), Vn = {
2646
+ }), Qn = {
2440
2647
  key: 0,
2441
2648
  class: "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3"
2442
- }, Rn = /* @__PURE__ */ g({
2649
+ }, Jn = /* @__PURE__ */ g({
2443
2650
  inheritAttrs: !1,
2444
2651
  __name: "Input",
2445
2652
  props: {
@@ -2452,123 +2659,139 @@ const En = /* @__PURE__ */ g({
2452
2659
  },
2453
2660
  emits: ["update:modelValue"],
2454
2661
  setup(t) {
2455
- const s = J(t, ["label", "inputClass", "wrapperClass"]), e = re("$inputRef"), [r, n] = it(), a = u(() => E("relative rounded-md shadow-2xs", { "mt-1": t.label }, t.wrapperClass)), l = u(() => {
2456
- var c, d, v;
2457
- return E(
2662
+ const s = N(t, ["label", "inputClass", "wrapperClass"]), e = G("$inputRef"), [r, n] = Ie(), a = c(() => M("relative rounded-md shadow-2xs", { "mt-1": t.label }, t.wrapperClass)), i = c(() => {
2663
+ var o, d, v;
2664
+ return M(
2458
2665
  // eslint-disable-next-line vue/max-len
2459
2666
  "block w-full rounded-md border-0 py-1.5 ring-1 ring-inset focus:ring-2 focus:ring-inset sm:text-sm sm:leading-6",
2460
2667
  {
2461
- "focus:ring-primary-600": !((c = e.value) != null && c.errors),
2462
- "text-gray-900 shadow-2xs ring-gray-300 placeholder:text-gray-400": !((d = e.value) != null && d.errors),
2463
- "pr-10 text-red-900 ring-red-300 placeholder:text-red-300 focus:ring-red-500": (v = e.value) == null ? void 0 : v.errors
2668
+ "focus:ring-primary-600": !((o = e.value) != null && o.errors),
2669
+ "text-gray-900 shadow-2xs ring-gray-900/10 placeholder:text-gray-400": !((d = e.value) != null && d.errors),
2670
+ "pr-10 text-red-900 ring-red-900/10 placeholder:text-red-300 focus:ring-red-500": (v = e.value) == null ? void 0 : v.errors
2464
2671
  },
2465
2672
  t.inputClass
2466
2673
  );
2467
2674
  });
2468
- return (c, d) => (i(), f(_t, I({
2675
+ return (o, d) => (u(), h(ze, H({
2469
2676
  ref: "$inputRef",
2470
- label: c.label,
2471
- class: o(n)
2677
+ label: o.label,
2678
+ class: l(n)
2472
2679
  }, s, {
2473
- "onUpdate:modelValue": d[0] || (d[0] = (v) => c.$emit("update:modelValue", v))
2680
+ "onUpdate:modelValue": d[0] || (d[0] = (v) => o.$emit("update:modelValue", v))
2474
2681
  }), {
2475
- default: m(() => {
2682
+ default: f(() => {
2476
2683
  var v;
2477
2684
  return [
2478
- p(Se, { class: "block text-sm leading-6 font-medium text-gray-900" }),
2685
+ p(fe, { class: "block text-sm leading-6 font-medium text-gray-900" }),
2479
2686
  y("div", {
2480
2687
  class: k(a.value)
2481
2688
  }, [
2482
- p(wt, I(o(r), { class: l.value }), null, 16, ["class"]),
2483
- (v = o(e)) != null && v.errors ? (i(), b("div", Vn, [
2484
- p(o(yt), { class: "size-5 text-red-500" })
2485
- ])) : M("", !0)
2689
+ p(_t, H(l(r), { class: i.value }), null, 16, ["class"]),
2690
+ (v = l(e)) != null && v.errors ? (u(), b("div", Qn, [
2691
+ p(l(qe), { class: "size-5 text-red-500" })
2692
+ ])) : T("", !0)
2486
2693
  ], 2),
2487
- p(In, { class: "mt-2 text-sm text-gray-600" }),
2488
- p(ke, { class: "mt-2 text-sm text-red-600" })
2694
+ p(xt, { class: "mt-2 text-sm text-gray-600" }),
2695
+ p(he, { class: "mt-2 text-sm text-red-600" })
2489
2696
  ];
2490
2697
  }),
2491
2698
  _: 1
2492
2699
  }, 16, ["label", "class"]));
2493
2700
  }
2494
2701
  });
2495
- function Na(t, s = {}) {
2702
+ function wl(t, s = {}) {
2496
2703
  return {
2497
2704
  default: t,
2498
2705
  type: "boolean",
2499
2706
  rules: s.rules
2500
2707
  };
2501
2708
  }
2502
- function Wa(t, s = {}) {
2709
+ function $l(t, s = {}) {
2503
2710
  return {
2504
2711
  default: t,
2505
2712
  type: "date",
2506
2713
  rules: s.rules
2507
2714
  };
2508
2715
  }
2509
- function Ka(t) {
2716
+ function _l(t, s, e = {}) {
2717
+ return {
2718
+ default: s,
2719
+ type: "enum",
2720
+ rules: e.rules,
2721
+ values: t
2722
+ };
2723
+ }
2724
+ function xl(t) {
2510
2725
  return {
2511
2726
  default: t,
2512
2727
  type: "boolean",
2513
2728
  rules: "required"
2514
2729
  };
2515
2730
  }
2516
- function Qa(t) {
2731
+ function Cl(t) {
2517
2732
  return {
2518
2733
  default: t,
2519
2734
  type: "date",
2520
2735
  rules: "required"
2521
2736
  };
2522
2737
  }
2523
- function Ja(t) {
2738
+ function kl(t, s) {
2739
+ return {
2740
+ default: s,
2741
+ type: "enum",
2742
+ rules: "required",
2743
+ values: t
2744
+ };
2745
+ }
2746
+ function Sl(t) {
2524
2747
  return {
2525
2748
  default: t,
2526
2749
  type: "number",
2527
2750
  rules: "required"
2528
2751
  };
2529
2752
  }
2530
- function Za(t) {
2753
+ function Tl(t) {
2531
2754
  return {
2532
2755
  default: t,
2533
2756
  type: "object",
2534
2757
  rules: "required"
2535
2758
  };
2536
2759
  }
2537
- function Pn(t) {
2760
+ function Zn(t) {
2538
2761
  return {
2539
2762
  default: t,
2540
2763
  type: "string",
2541
2764
  rules: "required"
2542
2765
  };
2543
2766
  }
2544
- function Ga(t, s = {}) {
2767
+ function Ml(t, s = {}) {
2545
2768
  return {
2546
2769
  default: t,
2547
2770
  type: "number",
2548
2771
  rules: s.rules
2549
2772
  };
2550
2773
  }
2551
- function Xa(t, s = {}) {
2774
+ function Hl(t, s = {}) {
2552
2775
  return {
2553
2776
  default: t,
2554
2777
  type: "object",
2555
2778
  rules: s.rules
2556
2779
  };
2557
2780
  }
2558
- function Ya(t, s = {}) {
2781
+ function El(t, s = {}) {
2559
2782
  return {
2560
2783
  default: t,
2561
2784
  type: "string",
2562
2785
  rules: s.rules
2563
2786
  };
2564
2787
  }
2565
- function An(t) {
2566
- const s = lt({
2567
- draft: Pn(t.defaultValue ?? "")
2568
- }), e = u(() => t.title ?? t.message), r = u(() => t.title ? t.message : null), n = u(() => t.acceptText ?? S("ui.accept", "Ok")), a = u(() => t.cancelText ?? S("ui.cancel", "Cancel"));
2788
+ function Xn(t) {
2789
+ const s = ut({
2790
+ draft: Zn(t.defaultValue ?? "")
2791
+ }), e = c(() => t.title ?? t.message), r = c(() => t.title ? t.message : null), n = c(() => t.acceptText ?? S("ui.accept", "Ok")), a = c(() => t.cancelText ?? S("ui.cancel", "Cancel"));
2569
2792
  return { form: s, renderedTitle: e, renderedMessage: r, renderedAcceptText: n, renderedCancelText: a };
2570
2793
  }
2571
- const zn = { class: "mt-4 flex flex-row-reverse gap-2" }, jn = /* @__PURE__ */ g({
2794
+ const Yn = { class: "mt-4 flex flex-row-reverse gap-2" }, Gn = /* @__PURE__ */ g({
2572
2795
  __name: "PromptModal",
2573
2796
  props: {
2574
2797
  title: {},
@@ -2582,43 +2805,43 @@ const zn = { class: "mt-4 flex flex-row-reverse gap-2" }, jn = /* @__PURE__ */ g
2582
2805
  cancelVariant: { default: "secondary" }
2583
2806
  },
2584
2807
  setup(t, { expose: s }) {
2585
- const e = J(t, ["cancelVariant"]), { form: r, renderedTitle: n, renderedMessage: a, renderedAcceptText: l, renderedCancelText: c } = An(e);
2586
- return s(), (d, v) => (i(), f(X, {
2587
- title: o(n),
2808
+ const e = N(t, ["cancelVariant"]), { form: r, renderedTitle: n, renderedMessage: a, renderedAcceptText: i, renderedCancelText: o } = Xn(e);
2809
+ return s(), (d, v) => (u(), h(se, {
2810
+ title: l(n),
2588
2811
  persistent: ""
2589
2812
  }, {
2590
- default: m(({ close: x }) => [
2591
- p(vt, {
2592
- form: o(r),
2593
- onSubmit: (h) => x(o(r).draft)
2813
+ default: f(({ close: $ }) => [
2814
+ p(wt, {
2815
+ form: l(r),
2816
+ onSubmit: (m) => $(l(r).draft)
2594
2817
  }, {
2595
- default: m(() => [
2596
- o(a) ? (i(), f(A, {
2818
+ default: f(() => [
2819
+ l(a) ? (u(), h(P, {
2597
2820
  key: 0,
2598
- text: o(a)
2599
- }, null, 8, ["text"])) : M("", !0),
2600
- p(Rn, {
2821
+ text: l(a)
2822
+ }, null, 8, ["text"])) : T("", !0),
2823
+ p(Jn, {
2601
2824
  name: "draft",
2602
2825
  class: "mt-2",
2603
2826
  placeholder: d.placeholder,
2604
2827
  label: d.label
2605
2828
  }, null, 8, ["placeholder", "label"]),
2606
- y("div", zn, [
2607
- p(z, {
2829
+ y("div", Yn, [
2830
+ p(q, {
2608
2831
  variant: d.acceptVariant,
2609
2832
  submit: ""
2610
2833
  }, {
2611
- default: m(() => [
2612
- P(C(o(l)), 1)
2834
+ default: f(() => [
2835
+ I(x(l(i)), 1)
2613
2836
  ]),
2614
2837
  _: 1
2615
2838
  }, 8, ["variant"]),
2616
- p(z, {
2839
+ p(q, {
2617
2840
  variant: d.cancelVariant,
2618
- onClick: (h) => x()
2841
+ onClick: (m) => $()
2619
2842
  }, {
2620
- default: m(() => [
2621
- P(C(o(c)), 1)
2843
+ default: f(() => [
2844
+ I(x(l(o)), 1)
2622
2845
  ]),
2623
2846
  _: 2
2624
2847
  }, 1032, ["variant", "onClick"])
@@ -2630,61 +2853,152 @@ const zn = { class: "mt-4 flex flex-row-reverse gap-2" }, jn = /* @__PURE__ */ g
2630
2853
  _: 1
2631
2854
  }, 8, ["title"]));
2632
2855
  }
2633
- }), Bn = { class: "grid grow place-items-center" }, Dn = { class: "flex flex-col items-center space-y-6 p-8" }, qn = { class: "mt-2 text-center text-4xl font-medium text-red-600" }, Fn = { class: "mt-4 flex flex-col space-y-4" }, Un = /* @__PURE__ */ g({
2856
+ }), ea = {
2857
+ viewBox: "0 0 24 24",
2858
+ width: "1.2em",
2859
+ height: "1.2em"
2860
+ };
2861
+ function ta(t, s) {
2862
+ return u(), b("svg", ea, s[0] || (s[0] = [
2863
+ y("path", {
2864
+ fill: "currentColor",
2865
+ d: "M12 21q-1.625 0-3.012-.8T6.8 18H4v-2h2.1q-.075-.5-.088-1T6 14H4v-2h2q0-.5.012-1t.088-1H4V8h2.8q.35-.575.788-1.075T8.6 6.05L7 4.4L8.4 3l2.15 2.15q.7-.225 1.425-.225t1.425.225L15.6 3L17 4.4l-1.65 1.65q.575.375 1.038.862T17.2 8H20v2h-2.1q.075.5.088 1T18 12h2v2h-2q0 .5-.013 1t-.087 1H20v2h-2.8q-.8 1.4-2.187 2.2T12 21m-2-5h4v-2h-4zm0-4h4v-2h-4z"
2866
+ }, null, -1)
2867
+ ]));
2868
+ }
2869
+ const sa = E({ name: "material-symbols-bug-report", render: ta }), ra = {
2870
+ viewBox: "0 0 24 24",
2871
+ width: "1.2em",
2872
+ height: "1.2em"
2873
+ };
2874
+ function na(t, s) {
2875
+ return u(), b("svg", ra, s[0] || (s[0] = [
2876
+ y("path", {
2877
+ fill: "currentColor",
2878
+ d: "M7 21q-.825 0-1.412-.587T5 19V6q-.425 0-.712-.288T4 5t.288-.712T5 4h4q0-.425.288-.712T10 3h4q.425 0 .713.288T15 4h4q.425 0 .713.288T20 5t-.288.713T19 6v13q0 .825-.587 1.413T17 21zm5-7.1l1.9 1.9q.275.275.7.275t.7-.275t.275-.7t-.275-.7l-1.9-1.9l1.9-1.9q.275-.275.275-.7t-.275-.7t-.7-.275t-.7.275L12 11.1l-1.9-1.9q-.275-.275-.7-.275t-.7.275t-.275.7t.275.7l1.9 1.9l-1.9 1.9q-.275.275-.275.7t.275.7t.7.275t.7-.275z"
2879
+ }, null, -1)
2880
+ ]));
2881
+ }
2882
+ const aa = E({ name: "material-symbols-delete-forever-rounded", render: na }), la = {
2883
+ viewBox: "0 0 24 24",
2884
+ width: "1.2em",
2885
+ height: "1.2em"
2886
+ };
2887
+ function oa(t, s) {
2888
+ return u(), b("svg", la, s[0] || (s[0] = [
2889
+ y("path", {
2890
+ fill: "currentColor",
2891
+ d: "M11.25 13.5q.95 0 1.6-.65t.65-1.6t-.65-1.6t-1.6-.65t-1.6.65t-.65 1.6t.65 1.6t1.6.65m4.825 4l-2.625-2.625q-.5.325-1.062.475t-1.138.15q-1.775 0-3.012-1.237T7 11.25t1.238-3.012T11.25 7t3.013 1.238T15.5 11.25q0 .575-.162 1.138t-.488 1.062l2.65 2.65zM5 21q-.825 0-1.412-.587T3 19v-4h2v4h4v2zm10 0v-2h4v-4h2v4q0 .825-.587 1.413T19 21zM3 9V5q0-.825.588-1.412T5 3h4v2H5v4zm16 0V5h-4V3h4q.825 0 1.413.588T21 5v4z"
2892
+ }, null, -1)
2893
+ ]));
2894
+ }
2895
+ const ia = E({ name: "material-symbols-frame-inspect", render: oa }), ua = {
2896
+ viewBox: "0 0 24 24",
2897
+ width: "1.2em",
2898
+ height: "1.2em"
2899
+ };
2900
+ function ca(t, s) {
2901
+ return u(), b("svg", ua, s[0] || (s[0] = [
2902
+ y("path", {
2903
+ fill: "currentColor",
2904
+ d: "M12 20q-3.35 0-5.675-2.325T4 12t2.325-5.675T12 4q1.725 0 3.3.712T18 6.75V5q0-.425.288-.712T19 4t.713.288T20 5v5q0 .425-.288.713T19 11h-5q-.425 0-.712-.288T13 10t.288-.712T14 9h3.2q-.8-1.4-2.187-2.2T12 6Q9.5 6 7.75 7.75T6 12t1.75 4.25T12 18q1.7 0 3.113-.862t2.187-2.313q.2-.35.563-.487t.737-.013q.4.125.575.525t-.025.75q-1.025 2-2.925 3.2T12 20"
2905
+ }, null, -1)
2906
+ ]));
2907
+ }
2908
+ const da = E({ name: "material-symbols-refresh-rounded", render: ca }), pa = { class: "grid grow place-items-center" }, ma = { class: "flex flex-col items-center p-8" }, fa = { class: "mt-0 mb-0 text-center text-4xl font-medium text-red-600" }, ha = { class: "mt-4 grid grid-cols-1 gap-2 sm:grid-cols-2 [&_button]:justify-start sm:[&_button]:size-32 sm:[&_button]:flex-col sm:[&_button]:justify-center [&_svg]:size-6 sm:[&_svg]:size-8" }, ga = /* @__PURE__ */ g({
2634
2909
  __name: "StartupCrash",
2635
2910
  setup(t) {
2636
- return (s, e) => (i(), b("div", Bn, [
2637
- y("div", Dn, [
2638
- y("h1", qn, C(s.$td("startupCrash.title", "Something went wrong!")), 1),
2639
- p(A, {
2640
- text: s.$td(
2641
- "startupCrash.message",
2642
- `Something failed trying to start the application.
2911
+ async function s() {
2912
+ await z.confirm(
2913
+ S("startupCrash.purgeConfirmTitle", "Delete everything?"),
2914
+ S(
2915
+ "startupCrash.purgeConfirmMessage",
2916
+ `If the problem persists, one drastic solution may be to wipe the storage in this device to start from scratch. However, keep in mind that **all the data that you haven't synchronized will be deleted forever**.
2643
2917
 
2644
- Here's some things you can do:`
2645
- ),
2646
- class: "mt-4 text-center"
2647
- }, null, 8, ["text"]),
2648
- y("div", Fn, [
2649
- p(z, {
2650
- variant: "danger",
2651
- onClick: e[0] || (e[0] = (r) => s.$app.reload())
2652
- }, {
2653
- default: m(() => [
2654
- P(C(s.$td("startupCrash.reload", "Try again")), 1)
2655
- ]),
2656
- _: 1
2657
- }),
2658
- p(z, {
2659
- variant: "danger",
2660
- onClick: e[1] || (e[1] = (r) => s.$errors.inspect(s.$errors.startupErrors))
2661
- }, {
2662
- default: m(() => [
2663
- P(C(s.$td("startupCrash.inspect", "View error details")), 1)
2664
- ]),
2665
- _: 1
2666
- })
2918
+ Do you still want to proceed?`
2919
+ ),
2920
+ {
2921
+ acceptVariant: "danger",
2922
+ acceptText: S("startupCrash.purgeConfirmAccept", "Purge device")
2923
+ }
2924
+ ) && (await et.purge(), await A.reload());
2925
+ }
2926
+ return (e, r) => {
2927
+ const n = zt("i-majesticons-exclamation");
2928
+ return u(), b("div", pa, [
2929
+ y("div", ma, [
2930
+ p(n, { class: "size-20 text-red-600" }),
2931
+ y("h1", fa, x(e.$td("startupCrash.title", "Oops, something went wrong!")), 1),
2932
+ p(P, {
2933
+ text: e.$td(
2934
+ "startupCrash.message",
2935
+ "There was a problem starting the application, but here's some things you can do:"
2936
+ ),
2937
+ class: "mt-4 text-center"
2938
+ }, null, 8, ["text"]),
2939
+ y("div", ha, [
2940
+ p(q, {
2941
+ variant: "danger",
2942
+ onClick: r[0] || (r[0] = (a) => e.$app.reload())
2943
+ }, {
2944
+ default: f(() => [
2945
+ p(l(da)),
2946
+ I(" " + x(e.$td("startupCrash.reload", "Try again")), 1)
2947
+ ]),
2948
+ _: 1
2949
+ }),
2950
+ p(q, {
2951
+ variant: "danger",
2952
+ onClick: r[1] || (r[1] = (a) => e.$errors.inspect(e.$errors.startupErrors))
2953
+ }, {
2954
+ default: f(() => [
2955
+ p(l(sa)),
2956
+ I(" " + x(e.$td("startupCrash.inspect", "View error details")), 1)
2957
+ ]),
2958
+ _: 1
2959
+ }),
2960
+ p(q, {
2961
+ variant: "danger",
2962
+ onClick: r[2] || (r[2] = (a) => s())
2963
+ }, {
2964
+ default: f(() => [
2965
+ p(l(aa)),
2966
+ I(" " + x(e.$td("startupCrash.purge", "Purge device")), 1)
2967
+ ]),
2968
+ _: 1
2969
+ }),
2970
+ p(q, {
2971
+ variant: "danger",
2972
+ onClick: r[3] || (r[3] = (a) => e.$errors.debug = !e.$errors.debug)
2973
+ }, {
2974
+ default: f(() => [
2975
+ p(l(ia)),
2976
+ I(" " + x(e.$td("startupCrash.debug", "Toggle debugging")), 1)
2977
+ ]),
2978
+ _: 1
2979
+ })
2980
+ ])
2667
2981
  ])
2668
- ])
2669
- ]));
2982
+ ]);
2983
+ };
2670
2984
  }
2671
- }), $t = /* @__PURE__ */ g({
2985
+ }), Ct = /* @__PURE__ */ g({
2672
2986
  __name: "HeadlessToastAction",
2673
2987
  props: {
2674
2988
  action: {}
2675
2989
  },
2676
2990
  setup(t) {
2677
- return (s, e) => (i(), f(N(s.action.dismiss ? o(gs) : "button"), {
2991
+ return (s, e) => (u(), h(W(s.action.dismiss ? l(ks) : "button"), {
2678
2992
  type: "button",
2679
2993
  onClick: s.action.click
2680
2994
  }, {
2681
- default: m(() => [
2682
- P(C(s.action.label), 1)
2995
+ default: f(() => [
2996
+ I(x(s.action.label), 1)
2683
2997
  ]),
2684
2998
  _: 1
2685
2999
  }, 8, ["onClick"]));
2686
3000
  }
2687
- }), On = { key: 0 }, Nn = /* @__PURE__ */ g({
3001
+ }), va = { key: 0 }, ba = /* @__PURE__ */ g({
2688
3002
  __name: "HeadlessToast",
2689
3003
  props: {
2690
3004
  message: {},
@@ -2692,11 +3006,11 @@ Here's some things you can do:`
2692
3006
  variant: {}
2693
3007
  },
2694
3008
  setup(t) {
2695
- return (s, e) => (i(), f(o(vs), null, {
2696
- default: m(() => [
2697
- _(s.$slots, "default", {}, () => [
2698
- s.message ? (i(), b("span", On, C(s.message), 1)) : M("", !0),
2699
- (i(!0), b(B, null, q(s.actions, (r, n) => (i(), f($t, {
3009
+ return (s, e) => (u(), h(l(Ss), null, {
3010
+ default: f(() => [
3011
+ w(s.$slots, "default", {}, () => [
3012
+ s.message ? (u(), b("span", va, x(s.message), 1)) : T("", !0),
3013
+ (u(!0), b(D, null, F(s.actions, (r, n) => (u(), h(Ct, {
2700
3014
  key: n,
2701
3015
  action: r
2702
3016
  }, null, 8, ["action"]))), 128))
@@ -2705,7 +3019,7 @@ Here's some things you can do:`
2705
3019
  _: 3
2706
3020
  }));
2707
3021
  }
2708
- }), Wn = /* @__PURE__ */ g({
3022
+ }), ya = /* @__PURE__ */ g({
2709
3023
  __name: "Toast",
2710
3024
  props: {
2711
3025
  message: {},
@@ -2714,7 +3028,7 @@ Here's some things you can do:`
2714
3028
  class: {}
2715
3029
  },
2716
3030
  setup(t, { expose: s }) {
2717
- const e = u(() => nt(
3031
+ const e = c(() => lt(
2718
3032
  { baseClasses: t.class, variant: t.variant },
2719
3033
  {
2720
3034
  baseClasses: "flex items-center gap-2 rounded-md p-2 ring-1 shadow-lg border-gray-200",
@@ -2729,134 +3043,134 @@ Here's some things you can do:`
2729
3043
  }
2730
3044
  }
2731
3045
  ));
2732
- return s(), (r, n) => (i(), f(Nn, {
3046
+ return s(), (r, n) => (u(), h(ba, {
2733
3047
  class: k(e.value)
2734
3048
  }, {
2735
- default: m(() => [
2736
- r.message ? (i(), f(A, {
3049
+ default: f(() => [
3050
+ r.message ? (u(), h(P, {
2737
3051
  key: 0,
2738
3052
  text: r.message,
2739
3053
  inline: ""
2740
- }, null, 8, ["text"])) : M("", !0),
2741
- (i(!0), b(B, null, q(r.actions, (a, l) => (i(), f(z, {
2742
- key: l,
3054
+ }, null, 8, ["text"])) : T("", !0),
3055
+ (u(!0), b(D, null, F(r.actions, (a, i) => (u(), h(q, {
3056
+ key: i,
2743
3057
  action: a,
2744
3058
  variant: r.variant,
2745
- as: $t
3059
+ as: Ct
2746
3060
  }, null, 8, ["action", "variant"]))), 128))
2747
3061
  ]),
2748
3062
  _: 1
2749
3063
  }, 8, ["class"]));
2750
3064
  }
2751
- }), Kn = { $ui: V }, Qn = {
3065
+ }), wa = { $ui: z }, $a = {
2752
3066
  async install(t, s) {
2753
3067
  const e = {
2754
- "alert-modal": jr,
2755
- "confirm-modal": Nr,
2756
- "error-report-modal": _n,
2757
- "loading-modal": En,
2758
- "prompt-modal": jn,
2759
- "startup-crash": Un,
2760
- toast: Wn,
3068
+ "alert-modal": en,
3069
+ "confirm-modal": on,
3070
+ "error-report-modal": Rn,
3071
+ "loading-modal": On,
3072
+ "prompt-modal": Gn,
3073
+ "startup-crash": ga,
3074
+ toast: ya,
2761
3075
  ...s.components
2762
3076
  };
2763
3077
  for (const [r, n] of Object.entries(e))
2764
- V.registerComponent(r, n);
2765
- await ve(t, Kn);
3078
+ z.registerComponent(r, n);
3079
+ await $e(t, wa);
2766
3080
  }
2767
3081
  };
2768
- async function Jn(t, s = {}) {
3082
+ async function _a(t, s = {}) {
2769
3083
  var r;
2770
- const e = [Sr, Ds, sr, Cr, Ns, Qn, ...s.plugins ?? []];
2771
- j.instance = t, await Rs(e, t, s), await ((r = s.install) == null ? void 0 : r.call(s, t)), await T.emit("application-ready");
3084
+ const e = [Br, Ks, jr, Sr, Xs, $a, ...s.plugins ?? []];
3085
+ A.instance = t, await Bs(e, t, s), await ((r = s.install) == null ? void 0 : r.call(s, t)), await R.emit("application-ready");
2772
3086
  }
2773
- async function eo(t, s = {}) {
3087
+ async function Vl(t, s = {}) {
2774
3088
  var r;
2775
- const e = Vt(t);
2776
- Y() && (window.$aerogel = e), await Jn(e, s), e.mount("#app"), (r = e._container) == null || r.classList.remove("loading"), await T.emit("application-mounted");
3089
+ const e = Rt(t);
3090
+ J() && (window.$aerogel = e), await _a(e, s), e.mount("#app"), (r = e._container) == null || r.classList.remove("loading"), await R.emit("application-mounted");
2777
3091
  }
2778
- const Zn = { key: 0 }, Gn = /* @__PURE__ */ g({
3092
+ const xa = { key: 0 }, Ca = /* @__PURE__ */ g({
2779
3093
  __name: "AppModals",
2780
3094
  setup(t) {
2781
- const s = u(() => V.modals[0] ?? null);
2782
- return (e, r) => s.value ? (i(), b("aside", Zn, [
2783
- p(gt, {
3095
+ const s = c(() => z.modals[0] ?? null);
3096
+ return (e, r) => s.value ? (u(), b("aside", xa, [
3097
+ p(yt, {
2784
3098
  "child-index": 1,
2785
3099
  modal: s.value
2786
3100
  }, null, 8, ["modal"])
2787
- ])) : M("", !0);
3101
+ ])) : T("", !0);
2788
3102
  }
2789
- }), Xn = /* @__PURE__ */ g({
3103
+ }), ka = /* @__PURE__ */ g({
2790
3104
  __name: "AppToasts",
2791
3105
  setup(t) {
2792
- return (s, e) => (i(), f(o(bs), null, {
2793
- default: m(() => [
2794
- (i(!0), b(B, null, q(s.$ui.toasts, (r) => (i(), f(N(r.component), I({
3106
+ return (s, e) => (u(), h(l(Ts), null, {
3107
+ default: f(() => [
3108
+ (u(!0), b(D, null, F(s.$ui.toasts, (r) => (u(), h(W(r.component), H({
2795
3109
  id: r.id,
2796
3110
  key: r.id,
2797
3111
  ref_for: !0
2798
3112
  }, r.properties), null, 16, ["id"]))), 128)),
2799
- p(o(ys), { class: "fixed right-0 bottom-0 z-50 flex flex-col items-end space-y-4 px-4 py-6 sm:p-6" })
3113
+ p(l(Ms), { class: "fixed right-0 bottom-0 z-50 flex flex-col items-end space-y-4 px-4 py-6 sm:p-6" })
2800
3114
  ]),
2801
3115
  _: 1
2802
3116
  }));
2803
3117
  }
2804
- }), Yn = /* @__PURE__ */ g({
3118
+ }), Sa = /* @__PURE__ */ g({
2805
3119
  __name: "AppOverlays",
2806
3120
  setup(t) {
2807
- return (s, e) => (i(), b(B, null, [
2808
- p(Gn),
2809
- p(Xn)
3121
+ return (s, e) => (u(), b(D, null, [
3122
+ p(Ca),
3123
+ p(ka)
2810
3124
  ], 64));
2811
3125
  }
2812
- }), ea = { class: "flex min-h-full flex-col text-base leading-tight font-normal text-gray-900 antialiased" }, to = /* @__PURE__ */ g({
3126
+ }), Ta = { class: "flex min-h-full flex-col text-base leading-tight font-normal text-gray-900 antialiased" }, Ll = /* @__PURE__ */ g({
2813
3127
  __name: "AppLayout",
2814
3128
  setup(t) {
2815
- return (s, e) => (i(), b("div", ea, [
2816
- s.$errors.hasStartupErrors ? _(s.$slots, "startup-crash", { key: 0 }, () => [
2817
- (i(), f(N(s.$ui.requireComponent("startup-crash"))))
2818
- ]) : _(s.$slots, "default", { key: 1 }),
2819
- p(Yn)
3129
+ return (s, e) => (u(), b("div", Ta, [
3130
+ s.$errors.hasStartupErrors ? w(s.$slots, "startup-crash", { key: 0 }, () => [
3131
+ (u(), h(W(s.$ui.requireComponent("startup-crash"))))
3132
+ ]) : w(s.$slots, "default", { key: 1 }),
3133
+ p(Sa)
2820
3134
  ]));
2821
3135
  }
2822
- }), ta = ["id", "name", "value", "required", "aria-invalid", "aria-describedby"], so = /* @__PURE__ */ g({
3136
+ }), Ma = ["id", "name", "value", "required", "aria-invalid", "aria-describedby"], Ha = /* @__PURE__ */ g({
2823
3137
  __name: "HeadlessInputTextArea",
2824
3138
  setup(t) {
2825
- const s = re("$textAreaRef"), e = H(
3139
+ const s = G("$textAreaRef"), e = V(
2826
3140
  "input",
2827
3141
  "<HeadlessInputTextArea> must be a child of a <HeadlessInput>"
2828
- ), r = u(() => e.name ?? void 0), n = u(() => e.value);
3142
+ ), r = c(() => e.name ?? void 0), n = c(() => e.value);
2829
3143
  function a() {
2830
3144
  s.value && e.update(s.value.value);
2831
3145
  }
2832
- return ot(e, () => {
2833
- var l;
2834
- return (l = s.value) == null ? void 0 : l.focus();
2835
- }), (l, c) => (i(), b("textarea", {
2836
- id: o(e).id,
3146
+ return it(e, () => {
3147
+ var i;
3148
+ return (i = s.value) == null ? void 0 : i.focus();
3149
+ }), (i, o) => (u(), b("textarea", {
3150
+ id: l(e).id,
2837
3151
  ref: "$textAreaRef",
2838
3152
  name: r.value,
2839
3153
  value: n.value,
2840
- required: o(e).required ?? void 0,
2841
- "aria-invalid": o(e).errors ? "true" : "false",
2842
- "aria-describedby": o(e).errors ? `${o(e).id}-error` : o(e).description ? `${o(e).id}-description` : void 0,
3154
+ required: l(e).required ?? void 0,
3155
+ "aria-invalid": l(e).errors ? "true" : "false",
3156
+ "aria-describedby": l(e).errors ? `${l(e).id}-error` : l(e).description ? `${l(e).id}-description` : void 0,
2843
3157
  onInput: a
2844
- }, null, 40, ta));
3158
+ }, null, 40, Ma));
2845
3159
  }
2846
- }), sa = { class: "group" }, ra = { class: "-ml-2 flex w-[max-content] items-center rounded-lg py-2 pr-3 pl-1 hover:bg-gray-100 focus-visible:outline focus-visible:outline-gray-700" }, na = { class: "pt-2 pl-4" }, ro = /* @__PURE__ */ g({
3160
+ }), Ea = { class: "group" }, Va = { class: "-ml-2 flex w-[max-content] items-center rounded-lg py-2 pr-3 pl-1 hover:bg-gray-100 focus-visible:outline focus-visible:outline-gray-700" }, La = { class: "pt-2 pl-4" }, Il = /* @__PURE__ */ g({
2847
3161
  __name: "AdvancedOptions",
2848
3162
  setup(t) {
2849
- return (s, e) => (i(), b("details", sa, [
2850
- y("summary", ra, [
2851
- p(o(bt), { class: "size-6 transition-transform group-open:rotate-90" }),
2852
- y("span", null, C(s.$td("ui.advancedOptions", "Advanced options")), 1)
3163
+ return (s, e) => (u(), b("details", Ea, [
3164
+ y("summary", Va, [
3165
+ p(l($t), { class: "size-6 transition-transform group-open:rotate-90" }),
3166
+ y("span", null, x(s.$td("ui.advancedOptions", "Advanced options")), 1)
2853
3167
  ]),
2854
- y("div", na, [
2855
- _(s.$slots, "default")
3168
+ y("div", La, [
3169
+ w(s.$slots, "default")
2856
3170
  ])
2857
3171
  ]));
2858
3172
  }
2859
- }), aa = { class: "flex h-6 items-center" }, no = /* @__PURE__ */ g({
3173
+ }), Ia = { class: "flex h-6 items-center" }, ql = /* @__PURE__ */ g({
2860
3174
  inheritAttrs: !1,
2861
3175
  __name: "Checkbox",
2862
3176
  props: {
@@ -2869,9 +3183,9 @@ const Zn = { key: 0 }, Gn = /* @__PURE__ */ g({
2869
3183
  },
2870
3184
  emits: ["update:modelValue"],
2871
3185
  setup(t) {
2872
- const s = J(t, ["inputClass", "labelClass"]), e = re("$inputRef"), [r, n] = it(), a = u(() => E("relative flex items-start", n.value)), l = u(() => {
3186
+ const s = N(t, ["inputClass", "labelClass"]), e = G("$inputRef"), [r, n] = Ie(), a = c(() => M("relative flex items-start", n.value)), i = c(() => {
2873
3187
  var d, v;
2874
- return E(
3188
+ return M(
2875
3189
  "size-4 rounded text-primary-600 not-checked:hover:bg-gray-200 checked:hover:text-primary-500 checked:border-0",
2876
3190
  {
2877
3191
  "border-gray-300 focus:ring-primary-600": !((d = e.value) != null && d.errors),
@@ -2879,43 +3193,43 @@ const Zn = { key: 0 }, Gn = /* @__PURE__ */ g({
2879
3193
  },
2880
3194
  t.inputClass
2881
3195
  );
2882
- }), c = u(() => E("ml-2 text-sm leading-6", t.labelClass));
2883
- return (d, v) => (i(), f(_t, I({
3196
+ }), o = c(() => M("ml-2 text-sm leading-6", t.labelClass));
3197
+ return (d, v) => (u(), h(ze, H({
2884
3198
  ref: "$inputRef",
2885
3199
  class: a.value
2886
3200
  }, s, {
2887
- "onUpdate:modelValue": v[0] || (v[0] = (x) => d.$emit("update:modelValue", x))
3201
+ "onUpdate:modelValue": v[0] || (v[0] = ($) => d.$emit("update:modelValue", $))
2888
3202
  }), {
2889
- default: m(() => [
2890
- y("div", aa, [
2891
- p(wt, I(o(r), {
3203
+ default: f(() => [
3204
+ y("div", Ia, [
3205
+ p(_t, H(l(r), {
2892
3206
  type: "checkbox",
2893
- class: l.value
3207
+ class: i.value
2894
3208
  }), null, 16, ["class"])
2895
3209
  ]),
2896
- d.$slots.default ? (i(), b("div", {
3210
+ d.$slots.default ? (u(), b("div", {
2897
3211
  key: 0,
2898
- class: k(c.value)
3212
+ class: k(o.value)
2899
3213
  }, [
2900
- p(Se, { class: "text-gray-900" }, {
2901
- default: m(() => [
2902
- _(d.$slots, "default")
3214
+ p(fe, { class: "text-gray-900" }, {
3215
+ default: f(() => [
3216
+ w(d.$slots, "default")
2903
3217
  ]),
2904
3218
  _: 3
2905
3219
  }),
2906
- p(ke, { class: "text-red-600" })
2907
- ], 2)) : d.label ? (i(), b("div", {
3220
+ p(he, { class: "text-red-600" })
3221
+ ], 2)) : d.label ? (u(), b("div", {
2908
3222
  key: 1,
2909
- class: k(c.value)
3223
+ class: k(o.value)
2910
3224
  }, [
2911
- p(Se, { class: "text-gray-900" }),
2912
- p(ke, { class: "text-red-600" })
2913
- ], 2)) : M("", !0)
3225
+ p(fe, { class: "text-gray-900" }),
3226
+ p(he, { class: "text-red-600" })
3227
+ ], 2)) : T("", !0)
2914
3228
  ]),
2915
3229
  _: 3
2916
3230
  }, 16, ["class"]));
2917
3231
  }
2918
- }), oa = /* @__PURE__ */ g({
3232
+ }), qa = /* @__PURE__ */ g({
2919
3233
  __name: "DropdownMenuOption",
2920
3234
  props: {
2921
3235
  class: {},
@@ -2924,37 +3238,37 @@ const Zn = { key: 0 }, Gn = /* @__PURE__ */ g({
2924
3238
  },
2925
3239
  emits: ["select"],
2926
3240
  setup(t) {
2927
- const s = J(t, ["class"]), e = u(() => E(
3241
+ const s = N(t, ["class"]), e = c(() => M(
2928
3242
  "flex w-full items-center gap-2 rounded-lg px-2 py-2 text-sm text-gray-900 data-[highlighted]:bg-gray-100",
2929
3243
  t.class
2930
3244
  ));
2931
- return (r, n) => (i(), f(o(_s), I({ class: e.value }, s, {
3245
+ return (r, n) => (u(), h(l(Hs), H({ class: e.value }, s, {
2932
3246
  onSelect: n[0] || (n[0] = (a) => r.$emit("select"))
2933
3247
  }), {
2934
- default: m(() => [
2935
- _(r.$slots, "default")
3248
+ default: f(() => [
3249
+ w(r.$slots, "default")
2936
3250
  ]),
2937
3251
  _: 3
2938
3252
  }, 16, ["class"]));
2939
3253
  }
2940
- }), la = /* @__PURE__ */ g({
3254
+ }), za = /* @__PURE__ */ g({
2941
3255
  __name: "DropdownMenuOptions",
2942
3256
  setup(t) {
2943
- const s = H(
3257
+ const s = V(
2944
3258
  "dropdown-menu",
2945
3259
  "<DropdownMenuOptions> must be a child of a <DropdownMenu>"
2946
3260
  );
2947
- return (e, r) => (i(), f(o(ws), {
3261
+ return (e, r) => (u(), h(l(Es), {
2948
3262
  class: "gap-y-0.5 rounded-lg bg-white p-1.5 shadow-lg ring-1 ring-black/5",
2949
- align: o(s).align,
2950
- side: o(s).side
3263
+ align: l(s).align,
3264
+ side: l(s).side
2951
3265
  }, {
2952
- default: m(() => [
2953
- _(e.$slots, "default", {}, () => [
2954
- (i(!0), b(B, null, q(o(s).options, (n, a) => (i(), f(oa, I(
3266
+ default: f(() => [
3267
+ w(e.$slots, "default", {}, () => [
3268
+ (u(!0), b(D, null, F(l(s).options, (n, a) => (u(), h(qa, H(
2955
3269
  {
2956
3270
  key: a,
2957
- as: n.route || n.href ? rt : void 0,
3271
+ as: n.route || n.href ? at : void 0,
2958
3272
  class: n.class,
2959
3273
  ref_for: !0
2960
3274
  },
@@ -2965,14 +3279,14 @@ const Zn = { key: 0 }, Gn = /* @__PURE__ */ g({
2965
3279
  routeQuery: n.routeQuery
2966
3280
  } : {},
2967
3281
  {
2968
- onSelect: (l) => {
2969
- var c;
2970
- return (c = n.click) == null ? void 0 : c.call(n);
3282
+ onSelect: (i) => {
3283
+ var o;
3284
+ return (o = n.click) == null ? void 0 : o.call(n);
2971
3285
  }
2972
3286
  }
2973
3287
  ), {
2974
- default: m(() => [
2975
- P(C(n.label), 1)
3288
+ default: f(() => [
3289
+ I(x(n.label), 1)
2976
3290
  ]),
2977
3291
  _: 2
2978
3292
  }, 1040, ["as", "class", "onSelect"]))), 128))
@@ -2981,7 +3295,7 @@ const Zn = { key: 0 }, Gn = /* @__PURE__ */ g({
2981
3295
  _: 3
2982
3296
  }, 8, ["align", "side"]));
2983
3297
  }
2984
- }), ao = /* @__PURE__ */ g({
3298
+ }), zl = /* @__PURE__ */ g({
2985
3299
  __name: "DropdownMenu",
2986
3300
  props: {
2987
3301
  align: {},
@@ -2992,23 +3306,23 @@ const Zn = { key: 0 }, Gn = /* @__PURE__ */ g({
2992
3306
  const e = {
2993
3307
  align: t.align,
2994
3308
  side: t.side,
2995
- options: u(() => {
3309
+ options: c(() => {
2996
3310
  var r;
2997
3311
  return (r = t.options) == null ? void 0 : r.filter(Boolean);
2998
3312
  })
2999
3313
  };
3000
- return se("dropdown-menu", e), s(e), (r, n) => (i(), f(o($s), null, {
3001
- default: m(() => [
3002
- p(o(xs), null, {
3003
- default: m(() => [
3004
- _(r.$slots, "default")
3314
+ return le("dropdown-menu", e), s(e), (r, n) => (u(), h(l(Vs), null, {
3315
+ default: f(() => [
3316
+ p(l(Ls), null, {
3317
+ default: f(() => [
3318
+ w(r.$slots, "default")
3005
3319
  ]),
3006
3320
  _: 3
3007
3321
  }),
3008
- p(o(Cs), null, {
3009
- default: m(() => [
3010
- _(r.$slots, "options", {}, () => [
3011
- p(la)
3322
+ p(l(Is), null, {
3323
+ default: f(() => [
3324
+ w(r.$slots, "options", {}, () => [
3325
+ p(za)
3012
3326
  ])
3013
3327
  ]),
3014
3328
  _: 3
@@ -3017,7 +3331,7 @@ const Zn = { key: 0 }, Gn = /* @__PURE__ */ g({
3017
3331
  _: 3
3018
3332
  }));
3019
3333
  }
3020
- }), ia = ["aria-hidden"], ca = ["tabindex", "aria-label", "type"], oo = /* @__PURE__ */ g({
3334
+ }), Ra = ["aria-hidden"], Pa = ["tabindex", "aria-label", "type"], Rl = /* @__PURE__ */ g({
3021
3335
  __name: "EditableContent",
3022
3336
  props: {
3023
3337
  type: { default: "text" },
@@ -3030,106 +3344,106 @@ const Zn = { key: 0 }, Gn = /* @__PURE__ */ g({
3030
3344
  },
3031
3345
  emits: ["update", "save"],
3032
3346
  setup(t, { emit: s }) {
3033
- const e = s, r = re("$inputRef"), n = F(null), a = F(t.text), l = u(() => E("inline whitespace-pre", t.contentClass)), c = u(() => E("invisible whitespace-pre", t.contentClass)), d = u(() => E("absolute inset-0 h-full w-full resize-none border-0 bg-transparent p-0 focus:ring-0", t.contentClass));
3347
+ const e = s, r = G("$inputRef"), n = U(null), a = U(t.text), i = c(() => M("inline whitespace-pre", t.contentClass)), o = c(() => M("invisible whitespace-pre", t.contentClass)), d = c(() => M("absolute inset-0 h-full w-full resize-none border-0 bg-transparent p-0 focus:ring-0", t.contentClass));
3034
3348
  function v() {
3035
3349
  n.value = t.text;
3036
3350
  }
3037
- function x() {
3351
+ function $() {
3038
3352
  n.value && (t.type !== "number" && a.value.trim().length === 0 && (a.value = n.value, e("update", a.value)), n.value = null, e("save"));
3039
3353
  }
3040
- return ie(() => a.value = t.text), (h, $) => (i(), b("div", {
3041
- class: k(["relative", { "pointer-events-none!": h.disabled && !n.value }])
3354
+ return Y(() => a.value = t.text), (m, C) => (u(), b("div", {
3355
+ class: k(["relative", { "pointer-events-none!": m.disabled && !n.value }])
3042
3356
  }, [
3043
- n.value ? (i(), b("span", {
3357
+ n.value ? (u(), b("span", {
3044
3358
  key: 1,
3045
- class: k(c.value)
3046
- }, C(a.value), 3)) : (i(), b("div", {
3359
+ class: k(o.value)
3360
+ }, x(a.value), 3)) : (u(), b("div", {
3047
3361
  key: 0,
3048
- class: k(l.value)
3362
+ class: k(i.value)
3049
3363
  }, [
3050
- _(h.$slots, "default")
3364
+ w(m.$slots, "default")
3051
3365
  ], 2)),
3052
- h.type === "number" ? (i(), b("span", {
3366
+ m.type === "number" ? (u(), b("span", {
3053
3367
  key: 2,
3054
3368
  class: k(["inline-block transition-[width]", n.value ? "w-5" : "w-0"])
3055
- }, null, 2)) : M("", !0),
3369
+ }, null, 2)) : T("", !0),
3056
3370
  y("form", {
3057
3371
  class: "w-full",
3058
- "aria-hidden": h.formAriaHidden,
3059
- onSubmit: $[4] || ($[4] = Ue((L) => {
3060
- var be;
3061
- return (be = o(r)) == null ? void 0 : be.blur();
3372
+ "aria-hidden": m.formAriaHidden,
3373
+ onSubmit: C[4] || (C[4] = We((L) => {
3374
+ var _e;
3375
+ return (_e = l(r)) == null ? void 0 : _e.blur();
3062
3376
  }, ["prevent"]))
3063
3377
  }, [
3064
- Oe(y("input", {
3378
+ Ke(y("input", {
3065
3379
  ref: "$inputRef",
3066
- "onUpdate:modelValue": $[0] || ($[0] = (L) => a.value = L),
3067
- tabindex: h.tabindex ?? void 0,
3068
- "aria-label": h.ariaLabel ?? void 0,
3069
- type: h.type,
3380
+ "onUpdate:modelValue": C[0] || (C[0] = (L) => a.value = L),
3381
+ tabindex: m.tabindex ?? void 0,
3382
+ "aria-label": m.ariaLabel ?? void 0,
3383
+ type: m.type,
3070
3384
  class: k([
3071
3385
  d.value,
3072
- { "opacity-0": !n.value, "appearance-textfield": !n.value && h.type === "number" }
3386
+ { "opacity-0": !n.value, "appearance-textfield": !n.value && m.type === "number" }
3073
3387
  ]),
3074
- onKeyup: $[1] || ($[1] = (L) => h.$emit("update", a.value)),
3075
- onFocus: $[2] || ($[2] = (L) => v()),
3076
- onBlur: $[3] || ($[3] = (L) => x())
3077
- }, null, 42, ca), [
3078
- [Rt, a.value]
3388
+ onKeyup: C[1] || (C[1] = (L) => m.$emit("update", a.value)),
3389
+ onFocus: C[2] || (C[2] = (L) => v()),
3390
+ onBlur: C[3] || (C[3] = (L) => $())
3391
+ }, null, 42, Pa), [
3392
+ [Pt, a.value]
3079
3393
  ])
3080
- ], 40, ia)
3394
+ ], 40, Ra)
3081
3395
  ], 2));
3082
3396
  }
3083
- }), ua = {
3397
+ }), Aa = {
3084
3398
  viewBox: "0 0 512 512",
3085
3399
  width: "1.2em",
3086
3400
  height: "1.2em"
3087
3401
  };
3088
- function da(t, s) {
3089
- return i(), b("svg", ua, s[0] || (s[0] = [
3402
+ function Da(t, s) {
3403
+ return u(), b("svg", Aa, s[0] || (s[0] = [
3090
3404
  y("path", {
3091
3405
  fill: "currentColor",
3092
3406
  d: "M449.07 399.08L278.64 82.58c-12.08-22.44-44.26-22.44-56.35 0L51.87 399.08A32 32 0 0 0 80 446.25h340.89a32 32 0 0 0 28.18-47.17m-198.6-1.83a20 20 0 1 1 20-20a20 20 0 0 1-20 20m21.72-201.15l-5.74 122a16 16 0 0 1-32 0l-5.74-121.95a21.73 21.73 0 0 1 21.5-22.69h.21a21.74 21.74 0 0 1 21.73 22.7Z"
3093
3407
  }, null, -1)
3094
3408
  ]));
3095
3409
  }
3096
- const pa = R({ name: "ion-warning", render: da }), ma = {
3410
+ const ja = E({ name: "ion-warning", render: Da }), Ba = {
3097
3411
  viewBox: "0 0 20 20",
3098
3412
  width: "1.2em",
3099
3413
  height: "1.2em"
3100
3414
  };
3101
- function fa(t, s) {
3102
- return i(), b("svg", ma, s[0] || (s[0] = [
3415
+ function Fa(t, s) {
3416
+ return u(), b("svg", Ba, s[0] || (s[0] = [
3103
3417
  y("path", {
3104
3418
  fill: "currentColor",
3105
3419
  d: "M.2 10a11 11 0 0 1 19.6 0A11 11 0 0 1 .2 10m9.8 4a4 4 0 1 0 0-8a4 4 0 0 0 0 8m0-2a2 2 0 1 1 0-4a2 2 0 0 1 0 4"
3106
3420
  }, null, -1)
3107
3421
  ]));
3108
3422
  }
3109
- const ha = R({ name: "zondicons-view-show", render: fa }), ga = { class: "font-medium" }, va = ["datetime"], ba = /* @__PURE__ */ g({
3423
+ const Ua = E({ name: "zondicons-view-show", render: Fa }), Oa = { class: "font-medium" }, Na = ["datetime"], Wa = /* @__PURE__ */ g({
3110
3424
  __name: "ErrorLogsModal",
3111
3425
  setup(t) {
3112
- return (s, e) => (i(), f(X, {
3426
+ return (s, e) => (u(), h(se, {
3113
3427
  title: s.$td("errors.report", "Errors ({count})", { count: s.$errors.logs.length })
3114
3428
  }, {
3115
- default: m(() => [
3429
+ default: f(() => [
3116
3430
  y("ol", null, [
3117
- (i(!0), b(B, null, q(s.$errors.logs, (r, n) => (i(), b("li", {
3431
+ (u(!0), b(D, null, F(s.$errors.logs, (r, n) => (u(), b("li", {
3118
3432
  key: n,
3119
3433
  class: "mb-2 flex max-w-prose min-w-56 justify-between py-2 last:mb-0"
3120
3434
  }, [
3121
3435
  y("div", null, [
3122
- y("h3", ga, C(r.report.title), 1),
3436
+ y("h3", Oa, x(r.report.title), 1),
3123
3437
  y("time", {
3124
3438
  datetime: r.date.toISOString(),
3125
3439
  class: "text-xs text-gray-700"
3126
- }, C(r.date.toLocaleTimeString()), 9, va),
3127
- p(A, {
3440
+ }, x(r.date.toLocaleTimeString()), 9, Na),
3441
+ p(P, {
3128
3442
  class: "text-sm text-gray-500",
3129
- text: r.report.description ?? o(st)(r.report)
3443
+ text: r.report.description ?? l(bt)(r.report)
3130
3444
  }, null, 8, ["text"])
3131
3445
  ]),
3132
- p(z, {
3446
+ p(q, {
3133
3447
  size: "icon",
3134
3448
  variant: "ghost",
3135
3449
  "aria-label": s.$td("errors.viewDetails", "View details"),
@@ -3137,11 +3451,11 @@ const ha = R({ name: "zondicons-view-show", render: fa }), ga = { class: "font-m
3137
3451
  class: "self-center",
3138
3452
  onClick: (a) => s.$errors.inspect(
3139
3453
  r.report,
3140
- s.$errors.logs.map(({ report: l }) => l)
3454
+ s.$errors.logs.map(({ report: i }) => i)
3141
3455
  )
3142
3456
  }, {
3143
- default: m(() => [
3144
- p(o(ha), {
3457
+ default: f(() => [
3458
+ p(l(Ua), {
3145
3459
  class: "size-4",
3146
3460
  "aria-hidden": "true"
3147
3461
  })
@@ -3154,36 +3468,36 @@ const ha = R({ name: "zondicons-view-show", render: fa }), ga = { class: "font-m
3154
3468
  _: 1
3155
3469
  }, 8, ["title"]));
3156
3470
  }
3157
- }), lo = /* @__PURE__ */ g({
3471
+ }), Pl = /* @__PURE__ */ g({
3158
3472
  __name: "ErrorLogs",
3159
3473
  setup(t) {
3160
- return (s, e) => s.$errors.logs.length > 0 ? (i(), f(z, {
3474
+ return (s, e) => s.$errors.logs.length > 0 ? (u(), h(q, {
3161
3475
  key: 0,
3162
3476
  size: "icon",
3163
3477
  variant: "ghost",
3164
3478
  title: s.$td("errors.viewLogs", "View error logs"),
3165
3479
  "aria-label": s.$td("errors.viewLogs", "View error logs"),
3166
- onClick: e[0] || (e[0] = (r) => s.$ui.modal(ba))
3480
+ onClick: e[0] || (e[0] = (r) => s.$ui.modal(Wa))
3167
3481
  }, {
3168
- default: m(() => [
3169
- p(o(pa), { class: "size-6 text-red-500" })
3482
+ default: f(() => [
3483
+ p(l(ja), { class: "size-6 text-red-500" })
3170
3484
  ]),
3171
3485
  _: 1
3172
- }, 8, ["title", "aria-label"])) : M("", !0);
3486
+ }, 8, ["title", "aria-label"])) : T("", !0);
3173
3487
  }
3174
- }), io = /* @__PURE__ */ g({
3488
+ }), Al = /* @__PURE__ */ g({
3175
3489
  __name: "ErrorMessage",
3176
3490
  props: {
3177
3491
  error: {}
3178
3492
  },
3179
3493
  setup(t) {
3180
- const s = u(() => st(t.error));
3181
- return (e, r) => (i(), f(A, {
3494
+ const s = c(() => bt(t.error));
3495
+ return (e, r) => (u(), h(P, {
3182
3496
  text: s.value,
3183
3497
  inline: ""
3184
3498
  }, null, 8, ["text"]));
3185
3499
  }
3186
- }), co = /* @__PURE__ */ g({
3500
+ }), Dl = /* @__PURE__ */ g({
3187
3501
  __name: "Link",
3188
3502
  props: {
3189
3503
  class: {},
@@ -3198,51 +3512,106 @@ const ha = R({ name: "zondicons-view-show", render: fa }), ga = { class: "font-m
3198
3512
  as: {}
3199
3513
  },
3200
3514
  setup(t) {
3201
- return (s, e) => (i(), f(z, I({ variant: "link" }, s.$props), {
3202
- default: m(() => [
3203
- _(s.$slots, "default")
3515
+ return (s, e) => (u(), h(q, H({ variant: "link" }, s.$props), {
3516
+ default: f(() => [
3517
+ w(s.$slots, "default")
3204
3518
  ]),
3205
3519
  _: 3
3206
3520
  }, 16));
3207
3521
  }
3208
- }), uo = /* @__PURE__ */ g({
3522
+ }), jl = /* @__PURE__ */ g({
3209
3523
  __name: "SettingsModal",
3210
3524
  setup(t) {
3211
- const s = u(() => Nt(j.settings, "priority", "desc"));
3212
- return (e, r) => (i(), f(X, {
3525
+ const s = c(() => Jt(A.settings, "priority", "desc"));
3526
+ return (e, r) => (u(), h(se, {
3213
3527
  title: e.$td("settings.title", "Settings")
3214
3528
  }, {
3215
- default: m(() => [
3216
- (i(!0), b(B, null, q(s.value, (n, a) => (i(), f(N(n.component), { key: a }))), 128))
3529
+ default: f(() => [
3530
+ (u(!0), b(D, null, F(s.value, (n, a) => (u(), h(W(n.component), { key: a }))), 128))
3217
3531
  ]),
3218
3532
  _: 1
3219
3533
  }, 8, ["title"]));
3220
3534
  }
3535
+ }), Ka = {
3536
+ key: 0,
3537
+ class: "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3"
3538
+ }, Bl = /* @__PURE__ */ g({
3539
+ inheritAttrs: !1,
3540
+ __name: "TextArea",
3541
+ props: {
3542
+ name: {},
3543
+ label: {},
3544
+ description: {},
3545
+ modelValue: {},
3546
+ inputClass: {},
3547
+ wrapperClass: {}
3548
+ },
3549
+ emits: ["update:modelValue"],
3550
+ setup(t) {
3551
+ const s = N(t, ["label", "inputClass", "wrapperClass"]), e = G("$inputRef"), [r, n] = Ie(), a = c(() => M("relative rounded-md shadow-2xs", { "mt-1": t.label }, t.wrapperClass)), i = c(() => {
3552
+ var o, d, v;
3553
+ return M(
3554
+ // eslint-disable-next-line vue/max-len
3555
+ "block w-full rounded-md border-0 py-1.5 ring-1 ring-inset focus:ring-2 focus:ring-inset sm:text-sm sm:leading-6",
3556
+ {
3557
+ "focus:ring-primary-600": !((o = e.value) != null && o.errors),
3558
+ "text-gray-900 shadow-2xs ring-gray-900/10 placeholder:text-gray-400": !((d = e.value) != null && d.errors),
3559
+ "pr-10 text-red-900 ring-red-900/10 placeholder:text-red-300 focus:ring-red-500": (v = e.value) == null ? void 0 : v.errors
3560
+ },
3561
+ t.inputClass
3562
+ );
3563
+ });
3564
+ return (o, d) => (u(), h(ze, H({
3565
+ ref: "$inputRef",
3566
+ label: o.label,
3567
+ class: l(n)
3568
+ }, s, {
3569
+ "onUpdate:modelValue": d[0] || (d[0] = (v) => o.$emit("update:modelValue", v))
3570
+ }), {
3571
+ default: f(() => {
3572
+ var v;
3573
+ return [
3574
+ p(fe, { class: "block text-sm leading-6 font-medium text-gray-900" }),
3575
+ y("div", {
3576
+ class: k(a.value)
3577
+ }, [
3578
+ p(Ha, H(l(r), { class: i.value }), null, 16, ["class"]),
3579
+ (v = l(e)) != null && v.errors ? (u(), b("div", Ka, [
3580
+ p(l(qe), { class: "size-5 text-red-500" })
3581
+ ])) : T("", !0)
3582
+ ], 2),
3583
+ p(xt, { class: "mt-2 text-sm text-gray-600" }),
3584
+ p(he, { class: "mt-2 text-sm text-red-600" })
3585
+ ];
3586
+ }),
3587
+ _: 1
3588
+ }, 16, ["label", "class"]));
3589
+ }
3221
3590
  });
3222
- class po {
3591
+ class Fl {
3223
3592
  constructor() {
3224
- w(this, "status");
3225
- w(this, "_listeners");
3226
- w(this, "_progress");
3227
- w(this, "_cancelled");
3228
- w(this, "_started");
3229
- w(this, "_completed");
3230
- this.status = this.getInitialStatus(), this._listeners = new Wt(), this._started = new W(), this._completed = new W();
3593
+ _(this, "status");
3594
+ _(this, "_listeners");
3595
+ _(this, "_progress");
3596
+ _(this, "_cancelled");
3597
+ _(this, "_started");
3598
+ _(this, "_completed");
3599
+ this.status = this.getInitialStatus(), this._listeners = new Zt(), this._started = new K(), this._completed = new K();
3231
3600
  }
3232
3601
  async start() {
3233
3602
  this.beforeStart(), this._started.resolve();
3234
3603
  try {
3235
3604
  await this.updateProgress(), await this.run(), await this.updateProgress(), this._completed.resolve();
3236
3605
  } catch (s) {
3237
- if (s instanceof ze)
3606
+ if (s instanceof Ue)
3238
3607
  return;
3239
- throw Z(Kt(s), (e) => {
3608
+ throw ee(Xt(s), (e) => {
3240
3609
  this._completed.reject(e);
3241
3610
  });
3242
3611
  }
3243
3612
  }
3244
3613
  async cancel() {
3245
- this._cancelled = new W(), await this._cancelled;
3614
+ this._cancelled = new K(), await this._cancelled;
3246
3615
  }
3247
3616
  serialize() {
3248
3617
  return this.serializeStatus(this.status);
@@ -3277,10 +3646,10 @@ class po {
3277
3646
  }
3278
3647
  assertNotCancelled() {
3279
3648
  if (this._cancelled)
3280
- throw this._cancelled.resolve(), new ze();
3649
+ throw this._cancelled.resolve(), new Ue();
3281
3650
  }
3282
3651
  calculateCurrentProgress(s) {
3283
- return s ?? (s = this.status), s.completed ? 1 : s.children ? Qt(
3652
+ return s ?? (s = this.status), s.completed ? 1 : s.children ? Yt(
3284
3653
  s.children.reduce((e, r) => e + this.calculateCurrentProgress(r), 0) / s.children.length,
3285
3654
  2
3286
3655
  ) : 0;
@@ -3294,139 +3663,147 @@ class po {
3294
3663
  return { ...s };
3295
3664
  }
3296
3665
  }
3297
- async function mo(t) {
3666
+ async function Ul(t) {
3298
3667
  await t.start();
3299
3668
  }
3300
3669
  export {
3301
- ro as AdvancedOptions,
3302
- jr as AlertModal,
3303
- j as App,
3304
- to as AppLayout,
3305
- Gn as AppModals,
3306
- Yn as AppOverlays,
3307
- Vs as AppService,
3308
- Xn as AppToasts,
3309
- z as Button,
3310
- Pa as Cache,
3311
- qs as CacheService,
3312
- no as Checkbox,
3313
- Nr as ConfirmModal,
3314
- ao as DropdownMenu,
3315
- oa as DropdownMenuOption,
3316
- la as DropdownMenuOptions,
3317
- oo as EditableContent,
3318
- lo as ErrorLogs,
3319
- ba as ErrorLogsModal,
3320
- io as ErrorMessage,
3321
- _n as ErrorReportModal,
3322
- dn as ErrorReportModalButtons,
3323
- pn as ErrorReportModalTitle,
3324
- et as Errors,
3325
- Ia as EventListenerPriorities,
3326
- T as Events,
3327
- Is as EventsService,
3328
- vt as Form,
3329
- fr as FormController,
3330
- rt as HeadlessButton,
3331
- _t as HeadlessInput,
3332
- In as HeadlessInputDescription,
3333
- ke as HeadlessInputError,
3334
- wt as HeadlessInputInput,
3335
- Se as HeadlessInputLabel,
3336
- so as HeadlessInputTextArea,
3337
- Hr as HeadlessModal,
3338
- Lr as HeadlessModalContent,
3339
- Ir as HeadlessModalDescription,
3340
- Tr as HeadlessModalOverlay,
3341
- Vr as HeadlessModalTitle,
3342
- hr as HeadlessSelect,
3670
+ Il as AdvancedOptions,
3671
+ en as AlertModal,
3672
+ A as App,
3673
+ Ll as AppLayout,
3674
+ Ca as AppModals,
3675
+ Sa as AppOverlays,
3676
+ js as AppService,
3677
+ ka as AppToasts,
3678
+ q as Button,
3679
+ cl as Cache,
3680
+ Qs as CacheService,
3681
+ ql as Checkbox,
3682
+ on as ConfirmModal,
3683
+ zl as DropdownMenu,
3684
+ qa as DropdownMenuOption,
3685
+ za as DropdownMenuOptions,
3686
+ Rl as EditableContent,
3687
+ Pl as ErrorLogs,
3688
+ Wa as ErrorLogsModal,
3689
+ Al as ErrorMessage,
3690
+ Rn as ErrorReportModal,
3691
+ Tn as ErrorReportModalButtons,
3692
+ Mn as ErrorReportModalTitle,
3693
+ nt as Errors,
3694
+ ll as EventListenerPriorities,
3695
+ R as Events,
3696
+ As as EventsService,
3697
+ wt as Form,
3698
+ gr as FormController,
3699
+ at as HeadlessButton,
3700
+ ze as HeadlessInput,
3701
+ xt as HeadlessInputDescription,
3702
+ he as HeadlessInputError,
3703
+ _t as HeadlessInputInput,
3704
+ fe as HeadlessInputLabel,
3705
+ Ha as HeadlessInputTextArea,
3706
+ Nr as HeadlessModal,
3707
+ Wr as HeadlessModalContent,
3708
+ Kr as HeadlessModalDescription,
3709
+ Qr as HeadlessModalOverlay,
3710
+ Jr as HeadlessModalTitle,
3711
+ vr as HeadlessSelect,
3343
3712
  Be as HeadlessSelectLabel,
3344
- dt as HeadlessSelectOption,
3345
- pt as HeadlessSelectOptions,
3346
- ut as HeadlessSelectTrigger,
3713
+ pt as HeadlessSelectOption,
3714
+ mt as HeadlessSelectOptions,
3715
+ dt as HeadlessSelectTrigger,
3347
3716
  ct as HeadlessSelectValue,
3348
- Nn as HeadlessToast,
3349
- Rn as Input,
3350
- po as Job,
3351
- ze as JobCancelledError,
3352
- Q as Lang,
3353
- pe as Layouts,
3354
- co as Link,
3355
- En as LoadingModal,
3356
- Ge as MOBILE_BREAKPOINT,
3357
- A as Markdown,
3358
- X as Modal,
3359
- gt as ModalContext,
3360
- kn as ProgressBar,
3361
- jn as PromptModal,
3362
- yr as Select,
3363
- mt as SelectLabel,
3364
- De as SelectOption,
3365
- ft as SelectOptions,
3366
- ht as SelectTrigger,
3367
- ge as Service,
3368
- Ce as ServiceBootError,
3369
- uo as SettingsModal,
3370
- Un as StartupCrash,
3371
- Us as Storage,
3372
- Wn as Toast,
3373
- V as UI,
3374
- Ks as UIService,
3375
- Da as __objectType,
3376
- Na as booleanInput,
3377
- ve as bootServices,
3378
- eo as bootstrap,
3379
- Jn as bootstrapApplication,
3380
- E as classes,
3381
- Ua as computedAsync,
3382
- Oa as computedDebounce,
3383
- Wa as dateInput,
3384
- Ra as defineDirective,
3385
- Ba as defineFormValidationRule,
3386
- Va as definePlugin,
3387
- he as defineServiceState,
3388
- Ls as defineServiceStore,
3389
- Ta as defineSettings,
3390
- mo as dispatch,
3391
- Xe as getCurrentLayout,
3392
- st as getErrorMessage,
3393
- or as getMarkdownRouter,
3394
- Hs as getPiniaStore,
3717
+ Ir as HeadlessSwitch,
3718
+ ba as HeadlessToast,
3719
+ Jn as Input,
3720
+ Fl as Job,
3721
+ Ue as JobCancelledError,
3722
+ Z as Lang,
3723
+ me as Layouts,
3724
+ Dl as Link,
3725
+ On as LoadingModal,
3726
+ tt as MOBILE_BREAKPOINT,
3727
+ P as Markdown,
3728
+ se as Modal,
3729
+ yt as ModalContext,
3730
+ Fn as ProgressBar,
3731
+ Gn as PromptModal,
3732
+ $r as Select,
3733
+ ft as SelectLabel,
3734
+ Fe as SelectOption,
3735
+ ht as SelectOptions,
3736
+ gt as SelectTrigger,
3737
+ we as Service,
3738
+ Te as ServiceBootError,
3739
+ Vr as Setting,
3740
+ jl as SettingsModal,
3741
+ ga as StartupCrash,
3742
+ et as Storage,
3743
+ qr as Switch,
3744
+ Bl as TextArea,
3745
+ ya as Toast,
3746
+ z as UI,
3747
+ Gs as UIService,
3748
+ fl as __valueType,
3749
+ qs as appNamespace,
3750
+ wl as booleanInput,
3751
+ $e as bootServices,
3752
+ Vl as bootstrap,
3753
+ _a as bootstrapApplication,
3754
+ M as classes,
3755
+ vl as computedAsync,
3756
+ bl as computedDebounce,
3757
+ $l as dateInput,
3758
+ ul as defineDirective,
3759
+ ml as defineFormValidationRule,
3760
+ il as definePlugin,
3761
+ ye as defineServiceState,
3762
+ Ps as defineServiceStore,
3763
+ ol as defineSettings,
3764
+ Ul as dispatch,
3765
+ _l as enumInput,
3766
+ st as getCurrentLayout,
3767
+ bt as getErrorMessage,
3768
+ ir as getMarkdownRouter,
3769
+ Rs as getPiniaStore,
3395
3770
  dr as hasSelectOptionLabel,
3396
- zs as injectOrFail,
3397
- As as injectReactive,
3398
- H as injectReactiveOrFail,
3399
- Rs as installPlugins,
3400
- Ga as numberInput,
3401
- Xa as objectInput,
3402
- qa as onCleanMounted,
3403
- ot as onFormFocus,
3404
- Fa as persistent,
3405
- za as registerErrorHandler,
3406
- lr as renderMarkdown,
3407
- Ze as renderVNode,
3408
- Aa as replaceExisting,
3409
- Ka as requiredBooleanInput,
3410
- Qa as requiredDateInput,
3411
- Ja as requiredNumberInput,
3412
- Za as requiredObjectInput,
3413
- Pn as requiredStringInput,
3414
- Es as resetPiniaStore,
3415
- ir as safeHtml,
3416
- ja as setMarkdownRouter,
3417
- Ya as stringInput,
3418
- Ye as translate,
3771
+ Os as injectOrFail,
3772
+ Us as injectReactive,
3773
+ V as injectReactiveOrFail,
3774
+ Bs as installPlugins,
3775
+ Ml as numberInput,
3776
+ Hl as objectInput,
3777
+ hl as onCleanMounted,
3778
+ it as onFormFocus,
3779
+ gl as persistent,
3780
+ yl as registerErrorHandler,
3781
+ ur as renderMarkdown,
3782
+ Ge as renderVNode,
3783
+ dl as replaceExisting,
3784
+ xl as requiredBooleanInput,
3785
+ Cl as requiredDateInput,
3786
+ kl as requiredEnumInput,
3787
+ Sl as requiredNumberInput,
3788
+ Tl as requiredObjectInput,
3789
+ Zn as requiredStringInput,
3790
+ zs as resetPiniaStore,
3791
+ cr as safeHtml,
3792
+ pl as setMarkdownRouter,
3793
+ El as stringInput,
3794
+ rt as translate,
3419
3795
  S as translateWithDefault,
3420
- zr as useAlertModal,
3421
- Br as useConfirmModal,
3422
- mn as useErrorReportModal,
3423
- at as useEvent,
3424
- lt as useForm,
3425
- it as useInputAttrs,
3426
- Mn as useLoadingModal,
3427
- An as usePromptModal,
3428
- mr as validate,
3429
- ue as validators,
3430
- nt as variantClasses
3796
+ Gr as useAlertModal,
3797
+ tn as useConfirmModal,
3798
+ Hn as useErrorReportModal,
3799
+ ot as useEvent,
3800
+ ut as useForm,
3801
+ Ie as useInputAttrs,
3802
+ Un as useLoadingModal,
3803
+ Xn as usePromptModal,
3804
+ hr as validate,
3805
+ fr as validateType,
3806
+ de as validators,
3807
+ lt as variantClasses
3431
3808
  };
3432
3809
  //# sourceMappingURL=aerogel-core.js.map