appsalutely 0.1.5 → 0.1.6

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.
@@ -1,39 +1,39 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("html{overflow:auto}html[data-theme=dark]{color-scheme:dark}html[data-theme=light]{color-scheme:light}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
- import { ref as b, watch as C, computed as O, defineComponent as x, useModel as B, useSlots as A, onBeforeMount as E, createBlock as c, openBlock as m, unref as t, withCtx as s, createCommentVNode as w, createVNode as d, createElementBlock as $, renderSlot as h, createElementVNode as g, normalizeClass as z, toDisplayString as P, Fragment as S, renderList as L, normalizeStyle as q, mergeModels as T, withModifiers as U } from "vue";
3
- import { useRouter as R, RouterView as j } from "vue-router";
4
- import { VApp as G, VProgressLinear as H, VAppBar as D, VMain as J, VFooter as K, VBtn as V, VNavigationDrawer as Q, VList as X, VSnackbar as Y, VContainer as Z, VBreadcrumbs as ee, VCard as W, VForm as I, VCardText as N, VTextField as F, VListItem as te, VIcon as le, VOtpInput as oe } from "vuetify/components";
5
- import { defineStore as M } from "pinia";
6
- const ae = M("colorMode", () => {
2
+ import { ref as b, watch as M, computed as F, defineComponent as x, useModel as $, useSlots as A, onBeforeMount as E, createBlock as c, openBlock as m, unref as t, withCtx as s, createCommentVNode as g, createVNode as d, createElementBlock as S, renderSlot as h, createElementVNode as w, normalizeClass as z, toDisplayString as P, Fragment as T, renderList as L, normalizeStyle as j, mergeModels as B, withModifiers as N } from "vue";
3
+ import { useRouter as q, RouterView as R } from "vue-router";
4
+ import { VApp as J, VProgressLinear as G, VAppBar as O, VMain as H, VFooter as K, VBtn as V, VNavigationDrawer as Q, VList as X, VSnackbar as Y, VContainer as Z, VBreadcrumbs as ee, VCard as U, VForm as W, VCardText as I, VTextField as D, VListItem as te, VIcon as le, VOtpInput as oe } from "vuetify/components";
5
+ import { defineStore as C } from "pinia";
6
+ const ne = C("colorMode", () => {
7
7
  const l = b(localStorage.getItem("colorMode") == "dark" ? "dark" : "light");
8
8
  function r() {
9
9
  l.value = l.value === "dark" ? "light" : "dark";
10
10
  }
11
- function o(a) {
12
- localStorage.setItem("colorMode", a), document.documentElement.setAttribute("data-theme", a);
13
- }
14
- return C(l, (a) => o(a)), o(l.value), { mode: l, toggle: r };
15
- }), ne = M("footer", () => {
16
- const l = b([]), r = O(() => l.value.length > 0 ? l.value[l.value.length - 1] : null);
17
11
  function o(n) {
18
- return n.id || (n.id = (/* @__PURE__ */ new Date()).getTime().toString()), n.timeout === void 0 && (n.timeout = 5e3), l.value.push(n), n.timeout && setTimeout(() => {
19
- a(n.id);
20
- }, n.timeout), n.id;
12
+ localStorage.setItem("colorMode", n), document.documentElement.setAttribute("data-theme", n);
21
13
  }
22
- function a(n) {
23
- l.value = l.value.filter((f) => f.id !== n);
14
+ return M(l, (n) => o(n)), o(l.value), { mode: l, toggle: r };
15
+ }), ae = C("footer", () => {
16
+ const l = b([]), r = F(() => l.value.length > 0 ? l.value[l.value.length - 1] : null);
17
+ function o(a) {
18
+ return a.id || (a.id = (/* @__PURE__ */ new Date()).getTime().toString()), a.timeout === void 0 && (a.timeout = 5e3), l.value.push(a), a.timeout && setTimeout(() => {
19
+ n(a.id);
20
+ }, a.timeout), a.id;
24
21
  }
25
- return { messages: l, current: r, addMessage: o, removeMessage: a };
26
- }), re = M("notify", () => {
22
+ function n(a) {
23
+ l.value = l.value.filter((f) => f.id !== a);
24
+ }
25
+ return { messages: l, current: r, addMessage: o, removeMessage: n };
26
+ }), re = C("notify", () => {
27
27
  const l = b([]), r = b({});
28
28
  function o(e) {
29
- return e.id ? a(e.id) : e.id = (/* @__PURE__ */ new Date()).getTime().toString(), e.timeout === void 0 && (e.timeout = 5e3), l.value.push(e), e.timeout && (r.value[e.id] = setTimeout(() => {
30
- a(e.id);
29
+ return e.id ? n(e.id) : e.id = (/* @__PURE__ */ new Date()).getTime().toString(), e.timeout === void 0 && (e.timeout = 5e3), l.value.push(e), e.timeout && (r.value[e.id] = setTimeout(() => {
30
+ n(e.id);
31
31
  }, e.timeout)), e.id;
32
32
  }
33
- function a(e) {
33
+ function n(e) {
34
34
  l.value = l.value.filter((k) => k.id !== e), r.value[e] && (clearTimeout(r.value[e]), delete r.value[e]);
35
35
  }
36
- function n(e) {
36
+ function a(e) {
37
37
  return o({ text: e, type: "info" });
38
38
  }
39
39
  function f(e) {
@@ -45,8 +45,8 @@ const ae = M("colorMode", () => {
45
45
  function i(e) {
46
46
  return o({ text: e, type: "error" });
47
47
  }
48
- return { messages: l, add: o, remove: a, info: n, success: f, warning: u, error: i };
49
- }), ue = { class: "d-flex flex-column pa-4 h-100" }, ie = ["textContent"], ge = /* @__PURE__ */ x({
48
+ return { messages: l, add: o, remove: n, info: a, success: f, warning: u, error: i };
49
+ }), ue = { class: "d-flex flex-column pa-4 h-100" }, ie = ["textContent"], ye = /* @__PURE__ */ x({
50
50
  __name: "AppBase",
51
51
  props: {
52
52
  drawerOpen: { type: Boolean, default: !1 },
@@ -54,8 +54,8 @@ const ae = M("colorMode", () => {
54
54
  },
55
55
  emits: ["update:drawerOpen"],
56
56
  setup(l) {
57
- const r = ae(), o = B(l, "drawerOpen"), a = b(!1), n = ne(), f = b(!1), u = b(null), i = re(), e = R(), k = A();
58
- return C(a, (y) => {
57
+ const r = ne(), o = $(l, "drawerOpen"), n = b(!1), a = ae(), f = b(!1), u = b(null), i = re(), e = q(), k = A();
58
+ return M(n, (y) => {
59
59
  localStorage.setItem("drawerDocked", String(y));
60
60
  }), E(() => {
61
61
  e.beforeEach(() => {
@@ -64,33 +64,33 @@ const ae = M("colorMode", () => {
64
64
  }, 300);
65
65
  }), e.afterEach(() => {
66
66
  u.value && (clearTimeout(u.value), u.value = null), f.value = !1;
67
- }), a.value = localStorage.getItem("drawerDocked") === "true", o.value = a.value;
68
- }), (y, v) => (m(), c(t(G), {
67
+ }), n.value = localStorage.getItem("drawerDocked") === "true", o.value = n.value;
68
+ }), (y, v) => (m(), c(t(J), {
69
69
  theme: t(r).mode
70
70
  }, {
71
71
  default: s(() => [
72
- f.value ? (m(), c(t(H), {
72
+ f.value ? (m(), c(t(G), {
73
73
  key: 0,
74
74
  indeterminate: "",
75
75
  class: "mb-n1",
76
76
  style: { "z-index": "100000", opacity: "0.5" },
77
77
  height: "1"
78
- })) : w("", !0),
79
- d(t(D), { height: "64" }, {
78
+ })) : g("", !0),
79
+ d(t(O), { height: "64" }, {
80
80
  default: s(() => [
81
81
  h(y.$slots, "header")
82
82
  ]),
83
83
  _: 3
84
84
  }),
85
- d(t(J), { class: "bg-surface-light" }, {
85
+ d(t(H), { class: "bg-surface-light" }, {
86
86
  default: s(() => [
87
- g("div", ue, [
88
- d(t(j))
87
+ w("div", ue, [
88
+ d(t(R))
89
89
  ])
90
90
  ]),
91
91
  _: 1
92
92
  }),
93
- t(k).footer ? (m(), c(t(D), {
93
+ t(k).footer ? (m(), c(t(O), {
94
94
  key: 1,
95
95
  height: "40",
96
96
  location: "bottom"
@@ -98,22 +98,22 @@ const ae = M("colorMode", () => {
98
98
  default: s(() => [
99
99
  d(t(K), { class: "py-0 w-100 d-flex align-center" }, {
100
100
  default: s(() => [
101
- t(n).current ? (m(), $("span", {
101
+ t(a).current ? (m(), S("span", {
102
102
  key: 0,
103
- textContent: P(t(n).current.text),
104
- class: z([t(n).current.type ? {} : { ["text-" + t(n).current.type]: !0 }, "overflow-hidden text-no-wrap"]),
103
+ textContent: P(t(a).current.text),
104
+ class: z([t(a).current.type ? {} : { ["text-" + t(a).current.type]: !0 }, "overflow-hidden text-no-wrap"]),
105
105
  style: { "text-overflow": "ellipsis" }
106
- }, null, 10, ie)) : w("", !0),
107
- t(n).current && t(n).current.actions ? (m(!0), $(S, { key: 1 }, L(Object.entries(t(n).current.actions), (p, _) => (m(), c(t(V), {
106
+ }, null, 10, ie)) : g("", !0),
107
+ t(a).current && t(a).current.actions ? (m(!0), S(T, { key: 1 }, L(Object.entries(t(a).current.actions), (p, _) => (m(), c(t(V), {
108
108
  text: p[0],
109
109
  onClick: p[1],
110
110
  key: _,
111
111
  density: "comfortable",
112
112
  variant: "tonal",
113
113
  class: "mx-2 px-2 text-none",
114
- color: t(n).current.type
115
- }, null, 8, ["text", "onClick", "color"]))), 128)) : w("", !0),
116
- v[2] || (v[2] = g("div", { class: "me-auto" }, null, -1)),
114
+ color: t(a).current.type
115
+ }, null, 8, ["text", "onClick", "color"]))), 128)) : g("", !0),
116
+ v[2] || (v[2] = w("div", { class: "me-auto" }, null, -1)),
117
117
  h(y.$slots, "footer")
118
118
  ]),
119
119
  _: 3,
@@ -121,15 +121,15 @@ const ae = M("colorMode", () => {
121
121
  })
122
122
  ]),
123
123
  _: 3
124
- })) : w("", !0),
124
+ })) : g("", !0),
125
125
  t(k).drawer ? (m(), c(t(Q), {
126
126
  key: 2,
127
127
  modelValue: o.value,
128
128
  "onUpdate:modelValue": v[1] || (v[1] = (p) => o.value = p),
129
129
  width: "250",
130
130
  "rail-width": "58",
131
- rail: a.value,
132
- mobile: a.value ? !1 : void 0
131
+ rail: n.value,
132
+ mobile: n.value ? !1 : void 0
133
133
  }, {
134
134
  default: s(() => [
135
135
  d(t(X), {
@@ -138,15 +138,15 @@ const ae = M("colorMode", () => {
138
138
  }, {
139
139
  default: s(() => [
140
140
  h(y.$slots, "drawer"),
141
- v[3] || (v[3] = g("div", { class: "flex-grow-1" }, null, -1)),
141
+ v[3] || (v[3] = w("div", { class: "flex-grow-1" }, null, -1)),
142
142
  d(t(V), {
143
- onClick: v[0] || (v[0] = (p) => a.value = !a.value),
143
+ onClick: v[0] || (v[0] = (p) => n.value = !n.value),
144
144
  icon: "mdi-pin-outline",
145
145
  rounded: "rounded",
146
146
  density: "comfortable",
147
- title: a.value ? "Undock sidebar" : "Dock sidebar",
147
+ title: n.value ? "Undock sidebar" : "Dock sidebar",
148
148
  class: "ma-1 ms-auto",
149
- variant: a.value ? "tonal" : "text"
149
+ variant: n.value ? "tonal" : "text"
150
150
  }, null, 8, ["title", "variant"])
151
151
  ]),
152
152
  _: 3,
@@ -154,20 +154,20 @@ const ae = M("colorMode", () => {
154
154
  })
155
155
  ]),
156
156
  _: 3
157
- }, 8, ["modelValue", "rail", "mobile"])) : w("", !0),
158
- (m(!0), $(S, null, L(t(i).messages, (p, _) => (m(), c(t(Y), {
157
+ }, 8, ["modelValue", "rail", "mobile"])) : g("", !0),
158
+ (m(!0), S(T, null, L(t(i).messages, (p, _) => (m(), c(t(Y), {
159
159
  key: _,
160
160
  "model-value": !0,
161
161
  text: p.text,
162
162
  color: p.type,
163
163
  location: "bottom end",
164
- style: q({ bottom: `${_ * 56}px` }),
164
+ style: j({ bottom: `${_ * 56}px` }),
165
165
  timeout: -1
166
166
  }, {
167
167
  actions: s(() => [
168
168
  d(t(V), {
169
169
  icon: "mdi-close",
170
- onClick: (pe) => t(i).remove(p.id)
170
+ onClick: (ve) => t(i).remove(p.id)
171
171
  }, null, 8, ["onClick"])
172
172
  ]),
173
173
  _: 2
@@ -176,7 +176,7 @@ const ae = M("colorMode", () => {
176
176
  _: 3
177
177
  }, 8, ["theme"]));
178
178
  }
179
- }), ye = /* @__PURE__ */ x({
179
+ }), Ve = /* @__PURE__ */ x({
180
180
  __name: "DashboardPage",
181
181
  props: {
182
182
  breadcrumbs: {},
@@ -193,7 +193,7 @@ const ae = M("colorMode", () => {
193
193
  items: r.breadcrumbs,
194
194
  density: "comfortable",
195
195
  class: "pa-0 flex-wrap"
196
- }, null, 8, ["items"])) : w("", !0),
196
+ }, null, 8, ["items"])) : g("", !0),
197
197
  h(r.$slots, "default")
198
198
  ]),
199
199
  _: 3
@@ -201,24 +201,24 @@ const ae = M("colorMode", () => {
201
201
  }
202
202
  }), se = (l, r) => {
203
203
  const o = l.__vccOpts || l;
204
- for (const [a, n] of r)
205
- o[a] = n;
204
+ for (const [n, a] of r)
205
+ o[n] = a;
206
206
  return o;
207
207
  }, de = {}, me = { class: "h-100 d-flex align-center" };
208
208
  function fe(l, r) {
209
- return m(), $(S, null, [
210
- r[0] || (r[0] = g("span", {
209
+ return m(), S(T, null, [
210
+ r[0] || (r[0] = w("span", {
211
211
  class: "border-s mx-3",
212
212
  style: { height: "32px" }
213
213
  }, null, -1)),
214
- g("span", me, [
214
+ w("span", me, [
215
215
  h(l.$slots, "default")
216
216
  ])
217
217
  ], 64);
218
218
  }
219
- const Ve = /* @__PURE__ */ se(de, [["render", fe]]), xe = /* @__PURE__ */ x({
219
+ const xe = /* @__PURE__ */ se(de, [["render", fe]]), ke = /* @__PURE__ */ x({
220
220
  __name: "LoginForm",
221
- props: /* @__PURE__ */ T({
221
+ props: /* @__PURE__ */ B({
222
222
  title: { default: "Log in" },
223
223
  submitButtonText: { default: "Log in" },
224
224
  minWidth: {},
@@ -232,24 +232,24 @@ const Ve = /* @__PURE__ */ se(de, [["render", fe]]), xe = /* @__PURE__ */ x({
232
232
  password: { default: "" },
233
233
  passwordModifiers: {}
234
234
  }),
235
- emits: /* @__PURE__ */ T(["submit"], ["update:username", "update:password"]),
235
+ emits: /* @__PURE__ */ B(["submit"], ["update:username", "update:password"]),
236
236
  setup(l, { emit: r }) {
237
- const o = B(l, "username"), a = B(l, "password"), n = r, f = b(!1);
238
- return (u, i) => (m(), c(t(W), {
237
+ const o = $(l, "username"), n = $(l, "password"), a = r, f = b(!1);
238
+ return (u, i) => (m(), c(t(U), {
239
239
  title: u.title,
240
240
  "min-width": u.minWidth,
241
241
  "max-width": u.maxWidth
242
242
  }, {
243
243
  default: s(() => [
244
- d(t(I), {
245
- onSubmit: i[2] || (i[2] = U((e) => n("submit", o.value, a.value), ["prevent"])),
244
+ d(t(W), {
245
+ onSubmit: i[2] || (i[2] = N((e) => a("submit", o.value, n.value), ["prevent"])),
246
246
  modelValue: f.value,
247
247
  "onUpdate:modelValue": i[3] || (i[3] = (e) => f.value = e)
248
248
  }, {
249
249
  default: s(() => [
250
- d(t(N), { class: "d-flex flex-column" }, {
250
+ d(t(I), { class: "d-flex flex-column" }, {
251
251
  default: s(() => [
252
- d(t(F), {
252
+ d(t(D), {
253
253
  modelValue: o.value,
254
254
  "onUpdate:modelValue": i[0] || (i[0] = (e) => o.value = e),
255
255
  label: u.usernameLabel,
@@ -257,9 +257,9 @@ const Ve = /* @__PURE__ */ se(de, [["render", fe]]), xe = /* @__PURE__ */ x({
257
257
  "persistent-placeholder": "",
258
258
  autofocus: ""
259
259
  }, null, 8, ["modelValue", "label", "rules"]),
260
- d(t(F), {
261
- modelValue: a.value,
262
- "onUpdate:modelValue": i[1] || (i[1] = (e) => a.value = e),
260
+ d(t(D), {
261
+ modelValue: n.value,
262
+ "onUpdate:modelValue": i[1] || (i[1] = (e) => n.value = e),
263
263
  label: u.passwordLabel,
264
264
  type: "password",
265
265
  rules: [(e) => !!e || "Password is required"],
@@ -285,7 +285,7 @@ const Ve = /* @__PURE__ */ se(de, [["render", fe]]), xe = /* @__PURE__ */ x({
285
285
  _: 3
286
286
  }, 8, ["title", "min-width", "max-width"]));
287
287
  }
288
- }), ce = { class: "text-no-wrap overflow-hidden" }, ke = /* @__PURE__ */ x({
288
+ }), ce = { class: "text-no-wrap overflow-hidden" }, _e = /* @__PURE__ */ x({
289
289
  __name: "NavDrawerLink",
290
290
  props: {
291
291
  to: {},
@@ -302,14 +302,14 @@ const Ve = /* @__PURE__ */ se(de, [["render", fe]]), xe = /* @__PURE__ */ x({
302
302
  d(t(le), { icon: r.icon }, null, 8, ["icon"])
303
303
  ]),
304
304
  default: s(() => [
305
- g("span", ce, P(r.text), 1)
305
+ w("span", ce, P(r.text), 1)
306
306
  ]),
307
307
  _: 1
308
308
  }, 8, ["to"]));
309
309
  }
310
- }), _e = /* @__PURE__ */ x({
310
+ }), Se = /* @__PURE__ */ x({
311
311
  __name: "OTPForm",
312
- props: /* @__PURE__ */ T({
312
+ props: /* @__PURE__ */ B({
313
313
  title: { default: "2FA Verification" },
314
314
  subtitle: { default: "Enter the code from your authenticator app" },
315
315
  submitButtonText: { default: "Verify" },
@@ -322,24 +322,24 @@ const Ve = /* @__PURE__ */ se(de, [["render", fe]]), xe = /* @__PURE__ */ x({
322
322
  otp: { default: "" },
323
323
  otpModifiers: {}
324
324
  }),
325
- emits: /* @__PURE__ */ T(["submit"], ["update:otp"]),
325
+ emits: /* @__PURE__ */ B(["submit"], ["update:otp"]),
326
326
  setup(l, { emit: r }) {
327
- const o = B(l, "otp"), a = r, n = l, f = O(() => o.value.length === n.length);
328
- return C(o, () => {
329
- n.autosubmit && o.value.length === n.length && a("submit", o.value);
330
- }), (u, i) => (m(), c(t(W), {
327
+ const o = $(l, "otp"), n = r, a = l, f = F(() => o.value.length === a.length);
328
+ return M(o, () => {
329
+ a.autosubmit && o.value.length === a.length && n("submit", o.value);
330
+ }), (u, i) => (m(), c(t(U), {
331
331
  title: u.title,
332
332
  subtitle: u.subtitle,
333
333
  "min-width": u.minWidth,
334
334
  "max-width": u.maxWidth
335
335
  }, {
336
336
  default: s(() => [
337
- d(t(I), {
338
- onSubmit: i[1] || (i[1] = U((e) => a("submit", o.value), ["prevent"])),
337
+ d(t(W), {
338
+ onSubmit: i[1] || (i[1] = N((e) => n("submit", o.value), ["prevent"])),
339
339
  "model-value": f.value
340
340
  }, {
341
341
  default: s(() => [
342
- d(t(N), { class: "d-flex flex-column" }, {
342
+ d(t(I), { class: "d-flex flex-column" }, {
343
343
  default: s(() => [
344
344
  d(t(oe), {
345
345
  modelValue: o.value,
@@ -370,14 +370,24 @@ const Ve = /* @__PURE__ */ se(de, [["render", fe]]), xe = /* @__PURE__ */ x({
370
370
  }, 8, ["title", "subtitle", "min-width", "max-width"]));
371
371
  }
372
372
  });
373
+ function pe(l) {
374
+ return !l || l.length === 0 ? {} : {
375
+ filter: JSON.stringify(l)
376
+ };
377
+ }
378
+ const $e = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
379
+ __proto__: null,
380
+ asParams: pe
381
+ }, Symbol.toStringTag, { value: "Module" }));
373
382
  export {
374
- ge as AppBase,
375
- ye as DashboardPage,
376
- Ve as FooterSection,
377
- xe as LoginForm,
378
- ke as NavDrawerLink,
379
- _e as OTPForm,
380
- ae as useColorMode,
381
- ne as useFooter,
383
+ ye as AppBase,
384
+ Ve as DashboardPage,
385
+ xe as FooterSection,
386
+ ke as LoginForm,
387
+ _e as NavDrawerLink,
388
+ Se as OTPForm,
389
+ $e as filters,
390
+ ne as useColorMode,
391
+ ae as useFooter,
382
392
  re as useNotify
383
393
  };
@@ -1,2 +1,2 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("html{overflow:auto}html[data-theme=dark]{color-scheme:dark}html[data-theme=light]{color-scheme:light}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
- (function(s,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vue-router"),require("vuetify/components"),require("pinia")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router","vuetify/components","pinia"],e):(s=typeof globalThis<"u"?globalThis:s||self,e(s.appsalutely={},s.Vue,s.VueRouter,s.VuetifyComponents,s.Pinia))})(this,function(s,e,b,i,w){"use strict";const k=w.defineStore("colorMode",()=>{const r=e.ref(localStorage.getItem("colorMode")=="dark"?"dark":"light");function a(){r.value=r.value==="dark"?"light":"dark"}function l(o){localStorage.setItem("colorMode",o),document.documentElement.setAttribute("data-theme",o)}return e.watch(r,o=>l(o)),l(r.value),{mode:r,toggle:a}}),y=w.defineStore("footer",()=>{const r=e.ref([]),a=e.computed(()=>r.value.length>0?r.value[r.value.length-1]:null);function l(n){return n.id||(n.id=new Date().getTime().toString()),n.timeout===void 0&&(n.timeout=5e3),r.value.push(n),n.timeout&&setTimeout(()=>{o(n.id)},n.timeout),n.id}function o(n){r.value=r.value.filter(f=>f.id!==n)}return{messages:r,current:a,addMessage:l,removeMessage:o}}),g=w.defineStore("notify",()=>{const r=e.ref([]),a=e.ref({});function l(t){return t.id?o(t.id):t.id=new Date().getTime().toString(),t.timeout===void 0&&(t.timeout=5e3),r.value.push(t),t.timeout&&(a.value[t.id]=setTimeout(()=>{o(t.id)},t.timeout)),t.id}function o(t){r.value=r.value.filter(V=>V.id!==t),a.value[t]&&(clearTimeout(a.value[t]),delete a.value[t])}function n(t){return l({text:t,type:"info"})}function f(t){return l({text:t,type:"success"})}function d(t){return l({text:t,type:"warning"})}function u(t){return l({text:t,type:"error"})}return{messages:r,add:l,remove:o,info:n,success:f,warning:d,error:u}}),B={class:"d-flex flex-column pa-4 h-100"},x=["textContent"],C=e.defineComponent({__name:"AppBase",props:{drawerOpen:{type:Boolean,default:!1},drawerOpenModifiers:{}},emits:["update:drawerOpen"],setup(r){const a=k(),l=e.useModel(r,"drawerOpen"),o=e.ref(!1),n=y(),f=e.ref(!1),d=e.ref(null),u=g(),t=b.useRouter(),V=e.useSlots();return e.watch(o,p=>{localStorage.setItem("drawerDocked",String(p))}),e.onBeforeMount(()=>{t.beforeEach(()=>{d.value=setTimeout(()=>{f.value=!0},300)}),t.afterEach(()=>{d.value&&(clearTimeout(d.value),d.value=null),f.value=!1}),o.value=localStorage.getItem("drawerDocked")==="true",l.value=o.value}),(p,m)=>(e.openBlock(),e.createBlock(e.unref(i.VApp),{theme:e.unref(a).mode},{default:e.withCtx(()=>[f.value?(e.openBlock(),e.createBlock(e.unref(i.VProgressLinear),{key:0,indeterminate:"",class:"mb-n1",style:{"z-index":"100000",opacity:"0.5"},height:"1"})):e.createCommentVNode("",!0),e.createVNode(e.unref(i.VAppBar),{height:"64"},{default:e.withCtx(()=>[e.renderSlot(p.$slots,"header")]),_:3}),e.createVNode(e.unref(i.VMain),{class:"bg-surface-light"},{default:e.withCtx(()=>[e.createElementVNode("div",B,[e.createVNode(e.unref(b.RouterView))])]),_:1}),e.unref(V).footer?(e.openBlock(),e.createBlock(e.unref(i.VAppBar),{key:1,height:"40",location:"bottom"},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VFooter),{class:"py-0 w-100 d-flex align-center"},{default:e.withCtx(()=>[e.unref(n).current?(e.openBlock(),e.createElementBlock("span",{key:0,textContent:e.toDisplayString(e.unref(n).current.text),class:e.normalizeClass([e.unref(n).current.type?{}:{["text-"+e.unref(n).current.type]:!0},"overflow-hidden text-no-wrap"]),style:{"text-overflow":"ellipsis"}},null,10,x)):e.createCommentVNode("",!0),e.unref(n).current&&e.unref(n).current.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(Object.entries(e.unref(n).current.actions),(c,h)=>(e.openBlock(),e.createBlock(e.unref(i.VBtn),{text:c[0],onClick:c[1],key:h,density:"comfortable",variant:"tonal",class:"mx-2 px-2 text-none",color:e.unref(n).current.type},null,8,["text","onClick","color"]))),128)):e.createCommentVNode("",!0),m[2]||(m[2]=e.createElementVNode("div",{class:"me-auto"},null,-1)),e.renderSlot(p.$slots,"footer")]),_:3,__:[2]})]),_:3})):e.createCommentVNode("",!0),e.unref(V).drawer?(e.openBlock(),e.createBlock(e.unref(i.VNavigationDrawer),{key:2,modelValue:l.value,"onUpdate:modelValue":m[1]||(m[1]=c=>l.value=c),width:"250","rail-width":"58",rail:o.value,mobile:o.value?!1:void 0},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VList),{class:"h-100 d-flex flex-column",nav:""},{default:e.withCtx(()=>[e.renderSlot(p.$slots,"drawer"),m[3]||(m[3]=e.createElementVNode("div",{class:"flex-grow-1"},null,-1)),e.createVNode(e.unref(i.VBtn),{onClick:m[0]||(m[0]=c=>o.value=!o.value),icon:"mdi-pin-outline",rounded:"rounded",density:"comfortable",title:o.value?"Undock sidebar":"Dock sidebar",class:"ma-1 ms-auto",variant:o.value?"tonal":"text"},null,8,["title","variant"])]),_:3,__:[3]})]),_:3},8,["modelValue","rail","mobile"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(u).messages,(c,h)=>(e.openBlock(),e.createBlock(e.unref(i.VSnackbar),{key:h,"model-value":!0,text:c.text,color:c.type,location:"bottom end",style:e.normalizeStyle({bottom:`${h*56}px`}),timeout:-1},{actions:e.withCtx(()=>[e.createVNode(e.unref(i.VBtn),{icon:"mdi-close",onClick:O=>e.unref(u).remove(c.id)},null,8,["onClick"])]),_:2},1032,["text","color","style"]))),128))]),_:3},8,["theme"]))}}),N=e.defineComponent({__name:"DashboardPage",props:{breadcrumbs:{},fluid:{type:Boolean,default:!0}},setup(r){return(a,l)=>(e.openBlock(),e.createBlock(e.unref(i.VContainer),{fluid:a.fluid,class:"h-100 d-flex flex-column py-0 h-100"},{default:e.withCtx(()=>[a.breadcrumbs?(e.openBlock(),e.createBlock(e.unref(i.VBreadcrumbs),{key:0,items:a.breadcrumbs,density:"comfortable",class:"pa-0 flex-wrap"},null,8,["items"])):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default")]),_:3},8,["fluid"]))}}),S=(r,a)=>{const l=r.__vccOpts||r;for(const[o,n]of a)l[o]=n;return l},M={},T={class:"h-100 d-flex align-center"};function _(r,a){return e.openBlock(),e.createElementBlock(e.Fragment,null,[a[0]||(a[0]=e.createElementVNode("span",{class:"border-s mx-3",style:{height:"32px"}},null,-1)),e.createElementVNode("span",T,[e.renderSlot(r.$slots,"default")])],64)}const $=S(M,[["render",_]]),F=e.defineComponent({__name:"LoginForm",props:e.mergeModels({title:{default:"Log in"},submitButtonText:{default:"Log in"},minWidth:{},maxWidth:{},loading:{type:Boolean},usernameLabel:{default:"Username"},passwordLabel:{default:"Password"}},{username:{default:""},usernameModifiers:{},password:{default:""},passwordModifiers:{}}),emits:e.mergeModels(["submit"],["update:username","update:password"]),setup(r,{emit:a}){const l=e.useModel(r,"username"),o=e.useModel(r,"password"),n=a,f=e.ref(!1);return(d,u)=>(e.openBlock(),e.createBlock(e.unref(i.VCard),{title:d.title,"min-width":d.minWidth,"max-width":d.maxWidth},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VForm),{onSubmit:u[2]||(u[2]=e.withModifiers(t=>n("submit",l.value,o.value),["prevent"])),modelValue:f.value,"onUpdate:modelValue":u[3]||(u[3]=t=>f.value=t)},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VCardText),{class:"d-flex flex-column"},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VTextField),{modelValue:l.value,"onUpdate:modelValue":u[0]||(u[0]=t=>l.value=t),label:d.usernameLabel,rules:[t=>!!t||"Username is required"],"persistent-placeholder":"",autofocus:""},null,8,["modelValue","label","rules"]),e.createVNode(e.unref(i.VTextField),{modelValue:o.value,"onUpdate:modelValue":u[1]||(u[1]=t=>o.value=t),label:d.passwordLabel,type:"password",rules:[t=>!!t||"Password is required"],"persistent-placeholder":""},null,8,["modelValue","label","rules"]),e.createVNode(e.unref(i.VBtn),{disabled:!f.value,type:"submit",color:"primary",variant:"flat",text:d.submitButtonText,loading:d.loading,class:"align-self-center"},null,8,["disabled","text","loading"]),e.renderSlot(d.$slots,"beneath")]),_:3})]),_:3},8,["modelValue"])]),_:3},8,["title","min-width","max-width"]))}}),L={class:"text-no-wrap overflow-hidden"},E=e.defineComponent({__name:"NavDrawerLink",props:{to:{},icon:{},text:{}},setup(r){return(a,l)=>(e.openBlock(),e.createBlock(e.unref(i.VListItem),{role:"option",to:a.to,slim:""},{prepend:e.withCtx(()=>[e.createVNode(e.unref(i.VIcon),{icon:a.icon},null,8,["icon"])]),default:e.withCtx(()=>[e.createElementVNode("span",L,e.toDisplayString(a.text),1)]),_:1},8,["to"]))}}),D=e.defineComponent({__name:"OTPForm",props:e.mergeModels({title:{default:"2FA Verification"},subtitle:{default:"Enter the code from your authenticator app"},submitButtonText:{default:"Verify"},minWidth:{},maxWidth:{},loading:{type:Boolean},length:{default:6},autosubmit:{type:Boolean,default:!0}},{otp:{default:""},otpModifiers:{}}),emits:e.mergeModels(["submit"],["update:otp"]),setup(r,{emit:a}){const l=e.useModel(r,"otp"),o=a,n=r,f=e.computed(()=>l.value.length===n.length);return e.watch(l,()=>{n.autosubmit&&l.value.length===n.length&&o("submit",l.value)}),(d,u)=>(e.openBlock(),e.createBlock(e.unref(i.VCard),{title:d.title,subtitle:d.subtitle,"min-width":d.minWidth,"max-width":d.maxWidth},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VForm),{onSubmit:u[1]||(u[1]=e.withModifiers(t=>o("submit",l.value),["prevent"])),"model-value":f.value},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VCardText),{class:"d-flex flex-column"},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VOtpInput),{modelValue:l.value,"onUpdate:modelValue":u[0]||(u[0]=t=>l.value=t),label:"OTP","persistent-placeholder":"",autofocus:"",length:d.length},null,8,["modelValue","length"]),e.createVNode(e.unref(i.VBtn),{disabled:!f.value,type:"submit",color:"primary",variant:"flat",text:d.submitButtonText,loading:d.loading,class:"align-self-center"},null,8,["disabled","text","loading"]),e.renderSlot(d.$slots,"beneath")]),_:3})]),_:3},8,["model-value"])]),_:3},8,["title","subtitle","min-width","max-width"]))}});s.AppBase=C,s.DashboardPage=N,s.FooterSection=$,s.LoginForm=F,s.NavDrawerLink=E,s.OTPForm=D,s.useColorMode=k,s.useFooter=y,s.useNotify=g,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
2
+ (function(s,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vue-router"),require("vuetify/components"),require("pinia")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router","vuetify/components","pinia"],e):(s=typeof globalThis<"u"?globalThis:s||self,e(s.appsalutely={},s.Vue,s.VueRouter,s.VuetifyComponents,s.Pinia))})(this,function(s,e,b,i,w){"use strict";const y=w.defineStore("colorMode",()=>{const r=e.ref(localStorage.getItem("colorMode")=="dark"?"dark":"light");function a(){r.value=r.value==="dark"?"light":"dark"}function l(o){localStorage.setItem("colorMode",o),document.documentElement.setAttribute("data-theme",o)}return e.watch(r,o=>l(o)),l(r.value),{mode:r,toggle:a}}),k=w.defineStore("footer",()=>{const r=e.ref([]),a=e.computed(()=>r.value.length>0?r.value[r.value.length-1]:null);function l(n){return n.id||(n.id=new Date().getTime().toString()),n.timeout===void 0&&(n.timeout=5e3),r.value.push(n),n.timeout&&setTimeout(()=>{o(n.id)},n.timeout),n.id}function o(n){r.value=r.value.filter(f=>f.id!==n)}return{messages:r,current:a,addMessage:l,removeMessage:o}}),g=w.defineStore("notify",()=>{const r=e.ref([]),a=e.ref({});function l(t){return t.id?o(t.id):t.id=new Date().getTime().toString(),t.timeout===void 0&&(t.timeout=5e3),r.value.push(t),t.timeout&&(a.value[t.id]=setTimeout(()=>{o(t.id)},t.timeout)),t.id}function o(t){r.value=r.value.filter(h=>h.id!==t),a.value[t]&&(clearTimeout(a.value[t]),delete a.value[t])}function n(t){return l({text:t,type:"info"})}function f(t){return l({text:t,type:"success"})}function d(t){return l({text:t,type:"warning"})}function u(t){return l({text:t,type:"error"})}return{messages:r,add:l,remove:o,info:n,success:f,warning:d,error:u}}),B={class:"d-flex flex-column pa-4 h-100"},x=["textContent"],C=e.defineComponent({__name:"AppBase",props:{drawerOpen:{type:Boolean,default:!1},drawerOpenModifiers:{}},emits:["update:drawerOpen"],setup(r){const a=y(),l=e.useModel(r,"drawerOpen"),o=e.ref(!1),n=k(),f=e.ref(!1),d=e.ref(null),u=g(),t=b.useRouter(),h=e.useSlots();return e.watch(o,p=>{localStorage.setItem("drawerDocked",String(p))}),e.onBeforeMount(()=>{t.beforeEach(()=>{d.value=setTimeout(()=>{f.value=!0},300)}),t.afterEach(()=>{d.value&&(clearTimeout(d.value),d.value=null),f.value=!1}),o.value=localStorage.getItem("drawerDocked")==="true",l.value=o.value}),(p,m)=>(e.openBlock(),e.createBlock(e.unref(i.VApp),{theme:e.unref(a).mode},{default:e.withCtx(()=>[f.value?(e.openBlock(),e.createBlock(e.unref(i.VProgressLinear),{key:0,indeterminate:"",class:"mb-n1",style:{"z-index":"100000",opacity:"0.5"},height:"1"})):e.createCommentVNode("",!0),e.createVNode(e.unref(i.VAppBar),{height:"64"},{default:e.withCtx(()=>[e.renderSlot(p.$slots,"header")]),_:3}),e.createVNode(e.unref(i.VMain),{class:"bg-surface-light"},{default:e.withCtx(()=>[e.createElementVNode("div",B,[e.createVNode(e.unref(b.RouterView))])]),_:1}),e.unref(h).footer?(e.openBlock(),e.createBlock(e.unref(i.VAppBar),{key:1,height:"40",location:"bottom"},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VFooter),{class:"py-0 w-100 d-flex align-center"},{default:e.withCtx(()=>[e.unref(n).current?(e.openBlock(),e.createElementBlock("span",{key:0,textContent:e.toDisplayString(e.unref(n).current.text),class:e.normalizeClass([e.unref(n).current.type?{}:{["text-"+e.unref(n).current.type]:!0},"overflow-hidden text-no-wrap"]),style:{"text-overflow":"ellipsis"}},null,10,x)):e.createCommentVNode("",!0),e.unref(n).current&&e.unref(n).current.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(Object.entries(e.unref(n).current.actions),(c,V)=>(e.openBlock(),e.createBlock(e.unref(i.VBtn),{text:c[0],onClick:c[1],key:V,density:"comfortable",variant:"tonal",class:"mx-2 px-2 text-none",color:e.unref(n).current.type},null,8,["text","onClick","color"]))),128)):e.createCommentVNode("",!0),m[2]||(m[2]=e.createElementVNode("div",{class:"me-auto"},null,-1)),e.renderSlot(p.$slots,"footer")]),_:3,__:[2]})]),_:3})):e.createCommentVNode("",!0),e.unref(h).drawer?(e.openBlock(),e.createBlock(e.unref(i.VNavigationDrawer),{key:2,modelValue:l.value,"onUpdate:modelValue":m[1]||(m[1]=c=>l.value=c),width:"250","rail-width":"58",rail:o.value,mobile:o.value?!1:void 0},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VList),{class:"h-100 d-flex flex-column",nav:""},{default:e.withCtx(()=>[e.renderSlot(p.$slots,"drawer"),m[3]||(m[3]=e.createElementVNode("div",{class:"flex-grow-1"},null,-1)),e.createVNode(e.unref(i.VBtn),{onClick:m[0]||(m[0]=c=>o.value=!o.value),icon:"mdi-pin-outline",rounded:"rounded",density:"comfortable",title:o.value?"Undock sidebar":"Dock sidebar",class:"ma-1 ms-auto",variant:o.value?"tonal":"text"},null,8,["title","variant"])]),_:3,__:[3]})]),_:3},8,["modelValue","rail","mobile"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(u).messages,(c,V)=>(e.openBlock(),e.createBlock(e.unref(i.VSnackbar),{key:V,"model-value":!0,text:c.text,color:c.type,location:"bottom end",style:e.normalizeStyle({bottom:`${V*56}px`}),timeout:-1},{actions:e.withCtx(()=>[e.createVNode(e.unref(i.VBtn),{icon:"mdi-close",onClick:U=>e.unref(u).remove(c.id)},null,8,["onClick"])]),_:2},1032,["text","color","style"]))),128))]),_:3},8,["theme"]))}}),N=e.defineComponent({__name:"DashboardPage",props:{breadcrumbs:{},fluid:{type:Boolean,default:!0}},setup(r){return(a,l)=>(e.openBlock(),e.createBlock(e.unref(i.VContainer),{fluid:a.fluid,class:"h-100 d-flex flex-column py-0 h-100"},{default:e.withCtx(()=>[a.breadcrumbs?(e.openBlock(),e.createBlock(e.unref(i.VBreadcrumbs),{key:0,items:a.breadcrumbs,density:"comfortable",class:"pa-0 flex-wrap"},null,8,["items"])):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default")]),_:3},8,["fluid"]))}}),S=(r,a)=>{const l=r.__vccOpts||r;for(const[o,n]of a)l[o]=n;return l},M={},T={class:"h-100 d-flex align-center"};function _(r,a){return e.openBlock(),e.createElementBlock(e.Fragment,null,[a[0]||(a[0]=e.createElementVNode("span",{class:"border-s mx-3",style:{height:"32px"}},null,-1)),e.createElementVNode("span",T,[e.renderSlot(r.$slots,"default")])],64)}const $=S(M,[["render",_]]),F=e.defineComponent({__name:"LoginForm",props:e.mergeModels({title:{default:"Log in"},submitButtonText:{default:"Log in"},minWidth:{},maxWidth:{},loading:{type:Boolean},usernameLabel:{default:"Username"},passwordLabel:{default:"Password"}},{username:{default:""},usernameModifiers:{},password:{default:""},passwordModifiers:{}}),emits:e.mergeModels(["submit"],["update:username","update:password"]),setup(r,{emit:a}){const l=e.useModel(r,"username"),o=e.useModel(r,"password"),n=a,f=e.ref(!1);return(d,u)=>(e.openBlock(),e.createBlock(e.unref(i.VCard),{title:d.title,"min-width":d.minWidth,"max-width":d.maxWidth},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VForm),{onSubmit:u[2]||(u[2]=e.withModifiers(t=>n("submit",l.value,o.value),["prevent"])),modelValue:f.value,"onUpdate:modelValue":u[3]||(u[3]=t=>f.value=t)},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VCardText),{class:"d-flex flex-column"},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VTextField),{modelValue:l.value,"onUpdate:modelValue":u[0]||(u[0]=t=>l.value=t),label:d.usernameLabel,rules:[t=>!!t||"Username is required"],"persistent-placeholder":"",autofocus:""},null,8,["modelValue","label","rules"]),e.createVNode(e.unref(i.VTextField),{modelValue:o.value,"onUpdate:modelValue":u[1]||(u[1]=t=>o.value=t),label:d.passwordLabel,type:"password",rules:[t=>!!t||"Password is required"],"persistent-placeholder":""},null,8,["modelValue","label","rules"]),e.createVNode(e.unref(i.VBtn),{disabled:!f.value,type:"submit",color:"primary",variant:"flat",text:d.submitButtonText,loading:d.loading,class:"align-self-center"},null,8,["disabled","text","loading"]),e.renderSlot(d.$slots,"beneath")]),_:3})]),_:3},8,["modelValue"])]),_:3},8,["title","min-width","max-width"]))}}),L={class:"text-no-wrap overflow-hidden"},O=e.defineComponent({__name:"NavDrawerLink",props:{to:{},icon:{},text:{}},setup(r){return(a,l)=>(e.openBlock(),e.createBlock(e.unref(i.VListItem),{role:"option",to:a.to,slim:""},{prepend:e.withCtx(()=>[e.createVNode(e.unref(i.VIcon),{icon:a.icon},null,8,["icon"])]),default:e.withCtx(()=>[e.createElementVNode("span",L,e.toDisplayString(a.text),1)]),_:1},8,["to"]))}}),E=e.defineComponent({__name:"OTPForm",props:e.mergeModels({title:{default:"2FA Verification"},subtitle:{default:"Enter the code from your authenticator app"},submitButtonText:{default:"Verify"},minWidth:{},maxWidth:{},loading:{type:Boolean},length:{default:6},autosubmit:{type:Boolean,default:!0}},{otp:{default:""},otpModifiers:{}}),emits:e.mergeModels(["submit"],["update:otp"]),setup(r,{emit:a}){const l=e.useModel(r,"otp"),o=a,n=r,f=e.computed(()=>l.value.length===n.length);return e.watch(l,()=>{n.autosubmit&&l.value.length===n.length&&o("submit",l.value)}),(d,u)=>(e.openBlock(),e.createBlock(e.unref(i.VCard),{title:d.title,subtitle:d.subtitle,"min-width":d.minWidth,"max-width":d.maxWidth},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VForm),{onSubmit:u[1]||(u[1]=e.withModifiers(t=>o("submit",l.value),["prevent"])),"model-value":f.value},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VCardText),{class:"d-flex flex-column"},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VOtpInput),{modelValue:l.value,"onUpdate:modelValue":u[0]||(u[0]=t=>l.value=t),label:"OTP","persistent-placeholder":"",autofocus:"",length:d.length},null,8,["modelValue","length"]),e.createVNode(e.unref(i.VBtn),{disabled:!f.value,type:"submit",color:"primary",variant:"flat",text:d.submitButtonText,loading:d.loading,class:"align-self-center"},null,8,["disabled","text","loading"]),e.renderSlot(d.$slots,"beneath")]),_:3})]),_:3},8,["model-value"])]),_:3},8,["title","subtitle","min-width","max-width"]))}});function D(r){return!r||r.length===0?{}:{filter:JSON.stringify(r)}}const P=Object.freeze(Object.defineProperty({__proto__:null,asParams:D},Symbol.toStringTag,{value:"Module"}));s.AppBase=C,s.DashboardPage=N,s.FooterSection=$,s.LoginForm=F,s.NavDrawerLink=O,s.OTPForm=E,s.filters=P,s.useColorMode=y,s.useFooter=k,s.useNotify=g,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
@@ -7,3 +7,4 @@ export { default as OTPForm } from './components/OTPForm.vue';
7
7
  export { default as useColorMode } from './stores/colorMode';
8
8
  export { default as useFooter } from './stores/footer';
9
9
  export { default as useNotify } from './stores/notify';
10
+ export * as filters from './utils/filters';
@@ -0,0 +1,5 @@
1
+ export type Filter = [string, string, unknown];
2
+ export type Filters = Filter[];
3
+ export declare function asParams(filters: Filters): {
4
+ filter?: string;
5
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appsalutely",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"