@vanjana/vue-ui 0.1.59

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 (108) hide show
  1. package/dist/theme-light.css +1 -0
  2. package/dist/theme-light.js +1 -0
  3. package/dist/types/components/button-bar.vue.d.ts +15 -0
  4. package/dist/types/components/button.vue.d.ts +11 -0
  5. package/dist/types/components/card.vue.d.ts +21 -0
  6. package/dist/types/components/carousel.vue.d.ts +21 -0
  7. package/dist/types/components/checkbox.vue.d.ts +15 -0
  8. package/dist/types/components/data/data.vue.d.ts +7 -0
  9. package/dist/types/components/dialog.vue.d.ts +47 -0
  10. package/dist/types/components/dot-menu.vue.d.ts +16 -0
  11. package/dist/types/components/form/form-field.vue.d.ts +33 -0
  12. package/dist/types/components/form/form-layout.vue.d.ts +34 -0
  13. package/dist/types/components/form/form-section.vue.d.ts +16 -0
  14. package/dist/types/components/form/index.d.ts +10 -0
  15. package/dist/types/components/form/input-select.vue.d.ts +34 -0
  16. package/dist/types/components/form/input-slider.vue.d.ts +19 -0
  17. package/dist/types/components/form/input-text-area.vue.d.ts +17 -0
  18. package/dist/types/components/form/input-text.vue.d.ts +14 -0
  19. package/dist/types/components/form/input.vue.d.ts +23 -0
  20. package/dist/types/components/form/select.vue.d.ts +43 -0
  21. package/dist/types/components/form/textarea.vue.d.ts +23 -0
  22. package/dist/types/components/icon.vue.d.ts +8 -0
  23. package/dist/types/components/index.d.ts +20 -0
  24. package/dist/types/components/link-button.vue.d.ts +13 -0
  25. package/dist/types/components/menu-action.vue.d.ts +8 -0
  26. package/dist/types/components/menu.vue.d.ts +13 -0
  27. package/dist/types/components/nav-bar.vue.d.ts +3 -0
  28. package/dist/types/components/page.vue.d.ts +28 -0
  29. package/dist/types/components/paginator.vue.d.ts +36 -0
  30. package/dist/types/components/search-field.vue.d.ts +17 -0
  31. package/dist/types/components/separator.vue.d.ts +6 -0
  32. package/dist/types/components/shell/index.d.ts +4 -0
  33. package/dist/types/components/shell/shell-navigation-item.vue.d.ts +8 -0
  34. package/dist/types/components/shell/shell-navigation.vue.d.ts +13 -0
  35. package/dist/types/components/shell/shell.vue.d.ts +20 -0
  36. package/dist/types/components/slider.vue.d.ts +22 -0
  37. package/dist/types/components/tab-view.vue.d.ts +20 -0
  38. package/dist/types/components/tab.vue.d.ts +17 -0
  39. package/dist/types/directives/focus.directive.d.ts +28 -0
  40. package/dist/types/directives/index.d.ts +1 -0
  41. package/dist/types/index.d.ts +1 -0
  42. package/dist/types/model/FormFieldProps.d.ts +11 -0
  43. package/dist/types/model/IconSize.d.ts +5 -0
  44. package/dist/types/model/Icons.d.ts +39 -0
  45. package/dist/types/model/VjRouteRecord.d.ts +12 -0
  46. package/dist/types/model/index.d.ts +4 -0
  47. package/dist/types/provider/index.d.ts +2 -0
  48. package/dist/types/provider/router-navigation-provider.d.ts +19 -0
  49. package/dist/types/provider/static-navigation-provider.d.ts +26 -0
  50. package/dist/types/public-api.d.ts +9 -0
  51. package/dist/types/services/aside.service.d.ts +247 -0
  52. package/dist/types/services/aside.store.d.ts +257 -0
  53. package/dist/types/services/debounce.d.ts +1 -0
  54. package/dist/types/services/dialog.service.d.ts +31 -0
  55. package/dist/types/services/index.d.ts +3 -0
  56. package/dist/types/stories/components/AsideDemo.vue.d.ts +8 -0
  57. package/dist/types/stories/components/button.stories.d.ts +77 -0
  58. package/dist/types/stories/components/card.stories.d.ts +49 -0
  59. package/dist/types/stories/components/carousel.stories.d.ts +122 -0
  60. package/dist/types/stories/components/checkbox.stories.d.ts +68 -0
  61. package/dist/types/stories/components/data.stories.d.ts +10 -0
  62. package/dist/types/stories/components/dialog.stories.d.ts +116 -0
  63. package/dist/types/stories/components/dot-menu.stories.d.ts +67 -0
  64. package/dist/types/stories/components/form-field.stories.d.ts +28 -0
  65. package/dist/types/stories/components/form-layout.stories.d.ts +87 -0
  66. package/dist/types/stories/components/icon.stories.d.ts +42 -0
  67. package/dist/types/stories/components/input-slider.stories.d.ts +6 -0
  68. package/dist/types/stories/components/input-text.stories.d.ts +12 -0
  69. package/dist/types/stories/components/input.stories.d.ts +62 -0
  70. package/dist/types/stories/components/menu-action.stories.d.ts +60 -0
  71. package/dist/types/stories/components/page.stories.d.ts +103 -0
  72. package/dist/types/stories/components/paginator.stories.d.ts +11 -0
  73. package/dist/types/stories/components/search-field.stories.d.ts +48 -0
  74. package/dist/types/stories/components/select.stories.d.ts +13 -0
  75. package/dist/types/stories/components/shell.stories.d.ts +96 -0
  76. package/dist/types/stories/components/slider.stories.d.ts +10 -0
  77. package/dist/types/stories/components/tab-view.stories.d.ts +118 -0
  78. package/dist/types/stories/components/textarea.stories.d.ts +62 -0
  79. package/dist/types/stories/router.d.ts +2 -0
  80. package/dist/types/theme-light.d.ts +2 -0
  81. package/dist/vanjana-vue-ui.es.js +2862 -0
  82. package/dist/vanjana-vue-ui.umd.js +1 -0
  83. package/dist/vue-ui.css +1 -0
  84. package/package.json +79 -0
  85. package/themes/common/_components.scss +19 -0
  86. package/themes/common/_mixins.scss +78 -0
  87. package/themes/common/components/_button-bar.scss +8 -0
  88. package/themes/common/components/_button.scss +44 -0
  89. package/themes/common/components/_card.scss +21 -0
  90. package/themes/common/components/_checkbox.scss +26 -0
  91. package/themes/common/components/_dialog.scss +15 -0
  92. package/themes/common/components/_dot-menu.scss +10 -0
  93. package/themes/common/components/_icon.scss +11 -0
  94. package/themes/common/components/_menu-action.scss +10 -0
  95. package/themes/common/components/_menu.scss +6 -0
  96. package/themes/common/components/_page.scss +21 -0
  97. package/themes/common/components/_search-field.scss +34 -0
  98. package/themes/common/components/_shell.scss +101 -0
  99. package/themes/common/components/_tab-view.scss +40 -0
  100. package/themes/common/components/_tab.scss +12 -0
  101. package/themes/common/components/form/_form-field.scss +32 -0
  102. package/themes/common/components/form/_input.scss +40 -0
  103. package/themes/common/components/form/_select.scss +60 -0
  104. package/themes/common/components/form/_textarea.scss +38 -0
  105. package/themes/default.scss +12 -0
  106. package/themes/light/_shell.scss +56 -0
  107. package/themes/light/theme.scss +51 -0
  108. package/themes/mixins.scss +1 -0
@@ -0,0 +1,2862 @@
1
+ import { createElementBlock as x, openBlock as v, createElementVNode as k, renderSlot as B, defineComponent as T, computed as C, normalizeClass as H, createBlock as P, createCommentVNode as L, createTextVNode as je, unref as E, toDisplayString as I, useSlots as Yt, mergeModels as ue, useModel as ye, ref as R, onMounted as Le, nextTick as he, onBeforeUnmount as Ae, watch as q, resolveComponent as W, createVNode as D, normalizeStyle as Z, Fragment as ge, renderList as We, Teleport as Ze, Transition as Ie, withCtx as K, withModifiers as de, createSlots as Jt, resolveDynamicComponent as Vt, mergeProps as Qt, shallowRef as Zt, getCurrentScope as en, onScopeDispose as tn, shallowReadonly as _e, withKeys as nn, provide as on, inject as kt, toRef as Ge, normalizeProps as ln, guardReactiveProps as an, isRef as sn, createApp as rn, h as cn } from "vue";
2
+ import { useRouter as un, useRoute as dn } from "vue-router";
3
+ const M = (e, n) => {
4
+ const t = e.__vccOpts || e;
5
+ for (const [o, l] of n)
6
+ t[o] = l;
7
+ return t;
8
+ }, fn = {}, mn = { class: "button-bar" }, vn = { class: "left" }, pn = { class: "right" };
9
+ function hn(e, n) {
10
+ return v(), x("div", mn, [
11
+ k("div", vn, [
12
+ B(e.$slots, "left", {}, void 0, !0)
13
+ ]),
14
+ k("div", pn, [
15
+ B(e.$slots, "default", {}, void 0, !0)
16
+ ])
17
+ ]);
18
+ }
19
+ const gn = /* @__PURE__ */ M(fn, [["render", hn], ["__scopeId", "data-v-45a6ed1a"]]);
20
+ var N = /* @__PURE__ */ ((e) => (e.HOME = "fa-regular fa-house", e.DASHBOARD = "fa-solid fa-gauge", e.MENU = "fa-solid fa-bars", e.DOT_MENU = "fa-solid fa-ellipsis-vertical", e.BACK = "fa-regular fa-hand-point-left", e.CHEVRON_LEFT = "fa-solid fa-chevron-left", e.CHEVRON_RIGHT = "fa-solid fa-chevron-right", e.CHEVRON_UP = "fa-solid fa-chevron-up", e.CHEVRON_DOWN = "fa-solid fa-chevron-down", e.PREVIOUS = "fa-solid fa-angle-left", e.FIRST = "fa-solid fa-angles-left", e.NEXT = "fa-solid fa-angle-right", e.LAST = "fa-solid fa-angles-right", e.USER = "fa-regular fa-user", e.CHARACTER = "fa-solid fa-person", e.SETTINGS = "fa-solid fa-gear", e.ADD = "fa-regular fa-plus", e.EDIT = "fa-solid fa-pen", e.REMOVE = "fa-regular fa-trash-can", e.DELETE = "fa-regular fa-trash-can", e.SHARE = "fa-solid fa-share-nodes", e.SORT = "fa-regular fa-arrow-up-arrow-down", e.CLOSE = "fa-regular fa-circle-xmark", e.INFO = "fa-regular fa-circle-info", e.WARNING = "fa-regular fa-triangle-exclamation", e.ERROR = "fa-regular fa-circle-xmark", e.CHECK = "fa-regular fa-circle-check", e.LOVE = "fa-regular fa-heart", e.PROJECT = "fa-regular fa-folder-open", e.FOLDER = "fa-regular fa-folder", e.FILE_TEXT = "fa-regular fa-file-lines", e.UPLOAD = "fa-solid fa-cloud-arrow-up", e.DOWNLOAD = "fa-solid fa-cloud-arrow-down", e.SEARCH = "fa-solid fa-magnifying-glass", e.MESSAGE_SQUARE = "fa-regular fa-message", e.MAIL = "fa-regular fa-envelope", e.SHOPPING_BAG = "fa-regular fa-bag-shopping", e))(N || {}), U = /* @__PURE__ */ ((e) => (e.S = "icon-size-s", e.M = "icon-size-m", e.L = "icon-size-l", e))(U || {});
21
+ const Oe = /* @__PURE__ */ T({
22
+ __name: "icon",
23
+ props: {
24
+ icon: {},
25
+ size: {}
26
+ },
27
+ setup(e) {
28
+ const n = e, t = U.M, o = C(() => `${n.icon} ${n.size ?? t}`);
29
+ return (l, a) => (v(), x("i", {
30
+ class: H(o.value)
31
+ }, null, 2));
32
+ }
33
+ }), bn = ["disabled"], yn = /* @__PURE__ */ T({
34
+ __name: "button",
35
+ props: {
36
+ label: {},
37
+ icon: {},
38
+ primary: { type: Boolean },
39
+ secondary: { type: Boolean },
40
+ tertiary: { type: Boolean },
41
+ disabled: { type: Boolean }
42
+ },
43
+ setup(e) {
44
+ const n = e, t = U.S, o = C(() => n.primary ? "primary" : n.secondary ? "secondary" : n.tertiary ? "tertiary" : "primary"), l = C(() => !n.label && !!n.icon);
45
+ return (a, s) => (v(), x("button", {
46
+ class: H(["button", o.value, { "icon-only": l.value }]),
47
+ disabled: e.disabled
48
+ }, [
49
+ e.icon ? (v(), P(Oe, {
50
+ key: 0,
51
+ icon: e.icon,
52
+ size: E(t)
53
+ }, null, 8, ["icon", "size"])) : L("", !0),
54
+ je(" " + I(e.label), 1)
55
+ ], 10, bn));
56
+ }
57
+ }), Ct = /* @__PURE__ */ M(yn, [["__scopeId", "data-v-f31c33cf"]]), wn = {
58
+ key: 0,
59
+ class: "header-actions"
60
+ }, xn = { key: 0 }, _n = /* @__PURE__ */ T({
61
+ __name: "card",
62
+ props: {
63
+ header: {},
64
+ scrollable: { type: Boolean }
65
+ },
66
+ setup(e) {
67
+ const n = Yt();
68
+ return (t, o) => (v(), x("div", {
69
+ class: H(["card", { scrollable: e.scrollable }])
70
+ }, [
71
+ k("header", null, [
72
+ k("h3", null, I(e.header), 1),
73
+ E(n).headerActions ? (v(), x("span", wn, [
74
+ B(t.$slots, "headerActions", {}, void 0, !0)
75
+ ])) : L("", !0)
76
+ ]),
77
+ k("main", null, [
78
+ B(t.$slots, "default", {}, void 0, !0)
79
+ ]),
80
+ E(n).footer ? (v(), x("footer", xn, [
81
+ B(t.$slots, "footer", {}, void 0, !0)
82
+ ])) : L("", !0)
83
+ ], 2));
84
+ }
85
+ }), Rt = /* @__PURE__ */ M(_n, [["__scopeId", "data-v-ec6ab562"]]), Vn = { class: "checkbox" }, kn = ["checked", "disabled"], Cn = {
86
+ key: 0,
87
+ class: "checkbox-label"
88
+ }, Rn = /* @__PURE__ */ T({
89
+ __name: "checkbox",
90
+ props: /* @__PURE__ */ ue({
91
+ label: {},
92
+ disabled: { type: Boolean }
93
+ }, {
94
+ modelValue: { type: Boolean },
95
+ modelModifiers: {}
96
+ }),
97
+ emits: ["update:modelValue"],
98
+ setup(e) {
99
+ const n = ye(e, "modelValue"), t = (o) => {
100
+ const l = o.target;
101
+ n.value = l.checked;
102
+ };
103
+ return (o, l) => (v(), x("label", Vn, [
104
+ k("input", {
105
+ type: "checkbox",
106
+ checked: n.value,
107
+ onChange: t,
108
+ disabled: e.disabled,
109
+ class: "checkbox-input"
110
+ }, null, 40, kn),
111
+ l[0] || (l[0] = k("span", { class: "checkbox-box" }, [
112
+ k("svg", {
113
+ class: "checkbox-icon",
114
+ viewBox: "0 0 24 24",
115
+ fill: "none",
116
+ xmlns: "http://www.w3.org/2000/svg"
117
+ }, [
118
+ k("path", {
119
+ class: "checkbox-check",
120
+ d: "M5 12L10 17L20 7",
121
+ stroke: "currentColor",
122
+ "stroke-width": "2.5",
123
+ "stroke-linecap": "round",
124
+ "stroke-linejoin": "round"
125
+ })
126
+ ])
127
+ ], -1)),
128
+ e.label ? (v(), x("span", Cn, I(e.label), 1)) : L("", !0)
129
+ ]));
130
+ }
131
+ }), ga = /* @__PURE__ */ M(Rn, [["__scopeId", "data-v-e2d27ecb"]]), En = ["aria-label"], Sn = {
132
+ key: 0,
133
+ class: "carousel-indicators"
134
+ }, $n = /* @__PURE__ */ T({
135
+ __name: "carousel",
136
+ props: {
137
+ autoplay: { type: Boolean },
138
+ interval: {},
139
+ loop: { type: Boolean },
140
+ pauseOnHover: { type: Boolean },
141
+ startIndex: {},
142
+ ariaLabel: {}
143
+ },
144
+ setup(e) {
145
+ const n = e, t = n.autoplay ?? !1, o = n.interval ?? 4e3, l = n.loop ?? !0, a = n.pauseOnHover ?? !0, s = n.startIndex ?? 0, u = n.ariaLabel ?? "Carousel", c = R(Math.max(0, s)), r = R(null), i = R(null), d = R(0), f = R(0);
146
+ let m = !1;
147
+ const p = R(0), y = R(!1);
148
+ let V = null, w = null;
149
+ const _ = R(null), h = R(null), O = () => {
150
+ p.value = r.value ? r.value.children.length : 0, p.value === 0 ? c.value = 0 : c.value >= p.value && (c.value = l ? 0 : p.value - 1), F();
151
+ }, A = C(() => d.value > 0 ? { transform: `translateX(${-c.value * d.value + f.value}px)` } : { transform: `translateX(-${c.value * 100}%)` }), F = () => {
152
+ r.value && Array.from(r.value.children).forEach((S, ve) => {
153
+ try {
154
+ ve === c.value ? S.removeAttribute("aria-hidden") : S.setAttribute("aria-hidden", "true");
155
+ } catch {
156
+ }
157
+ });
158
+ }, g = () => {
159
+ b(), !(!t || p.value <= 1) && (a && y.value || (V = setTimeout(() => {
160
+ j(), g();
161
+ }, o)));
162
+ }, b = () => {
163
+ V && (clearTimeout(V), V = null);
164
+ }, $ = () => {
165
+ p.value !== 0 && (c.value <= 0 ? c.value = l ? p.value - 1 : 0 : c.value--);
166
+ }, j = () => {
167
+ p.value !== 0 && (c.value >= p.value - 1 ? c.value = l ? 0 : p.value - 1 : c.value++);
168
+ }, z = (S) => {
169
+ S < 0 || S >= p.value || (c.value = S);
170
+ }, se = () => {
171
+ y.value = !0, a && b();
172
+ }, ie = () => {
173
+ y.value = !1, g();
174
+ }, re = (S) => {
175
+ S.key === "ArrowLeft" ? $() : S.key === "ArrowRight" && j();
176
+ };
177
+ let xe = 0, J = 0;
178
+ const ne = (S) => {
179
+ xe = S.touches[0].clientX, J = 0;
180
+ }, X = (S) => {
181
+ J = S.touches[0].clientX - xe;
182
+ }, Q = () => {
183
+ J > 50 ? $() : J < -50 && j(), J = 0;
184
+ };
185
+ let Fe = 0;
186
+ const rt = (S) => {
187
+ if (S.isPrimary !== !1 && !(S.pointerType === "mouse" && S.button !== 0)) {
188
+ m = !0, Fe = S.clientX, f.value = 0, b();
189
+ try {
190
+ S.target?.setPointerCapture?.(S.pointerId);
191
+ } catch {
192
+ }
193
+ }
194
+ }, ct = (S) => {
195
+ m && (f.value = S.clientX - Fe, S.preventDefault());
196
+ }, ut = () => {
197
+ if (!m) return;
198
+ m = !1;
199
+ const S = Math.max(50, d.value * 0.15);
200
+ f.value > S ? $() : f.value < -S && j(), f.value = 0, g();
201
+ }, dt = (S) => {
202
+ try {
203
+ S.target?.releasePointerCapture?.(S.pointerId);
204
+ } catch {
205
+ }
206
+ ut();
207
+ }, ft = () => ut();
208
+ return Le(() => {
209
+ he(() => {
210
+ if (O(), r.value && (w = new MutationObserver(O), w.observe(r.value, { childList: !0 }), r.value.addEventListener("touchstart", ne, { passive: !0 }), r.value.addEventListener("touchmove", X, { passive: !0 }), r.value.addEventListener("touchend", Q)), i.value) {
211
+ const S = () => {
212
+ d.value = i.value ? i.value.clientWidth : 0;
213
+ };
214
+ S();
215
+ const ve = window.ResizeObserver;
216
+ if (ve && i.value) {
217
+ const pe = new ve(() => S());
218
+ pe.observe(i.value), _.value = pe;
219
+ } else
220
+ window.addEventListener("resize", S), h.value = S;
221
+ i.value && (i.value.addEventListener("pointerdown", rt), i.value.addEventListener("pointermove", ct), i.value.addEventListener("pointerup", dt), i.value.addEventListener("pointercancel", ft));
222
+ }
223
+ F(), g();
224
+ });
225
+ }), Ae(() => {
226
+ b(), w && r.value && w.disconnect(), r.value && (r.value.removeEventListener("touchstart", ne), r.value.removeEventListener("touchmove", X), r.value.removeEventListener("touchend", Q)), i.value && (_.value && _.value.disconnect && _.value.disconnect(), h.value && window.removeEventListener("resize", h.value), i.value.removeEventListener("pointerdown", rt), i.value.removeEventListener("pointermove", ct), i.value.removeEventListener("pointerup", dt), i.value.removeEventListener("pointercancel", ft));
227
+ }), q([c, () => p.value], () => {
228
+ F();
229
+ }), q([() => y.value, c], () => {
230
+ g();
231
+ }), (S, ve) => {
232
+ const pe = W("VjButton");
233
+ return v(), x("div", {
234
+ class: "carousel",
235
+ role: "region",
236
+ "aria-roledescription": "carousel",
237
+ "aria-label": E(u),
238
+ tabindex: "0",
239
+ onKeydown: re,
240
+ onMouseenter: se,
241
+ onMouseleave: ie
242
+ }, [
243
+ k("div", {
244
+ class: "carousel-window",
245
+ ref_key: "windowRef",
246
+ ref: i
247
+ }, [
248
+ k("div", {
249
+ class: "carousel-track",
250
+ ref_key: "track",
251
+ ref: r,
252
+ style: Z(A.value)
253
+ }, [
254
+ B(S.$slots, "default", {}, void 0, !0)
255
+ ], 4)
256
+ ], 512),
257
+ D(pe, {
258
+ class: "carousel-btn prev",
259
+ icon: E(N).PREVIOUS,
260
+ onClick: $,
261
+ type: "button",
262
+ "aria-label": "Previous slide"
263
+ }, null, 8, ["icon"]),
264
+ D(pe, {
265
+ class: "carousel-btn next",
266
+ icon: E(N).NEXT,
267
+ onClick: j,
268
+ type: "button",
269
+ "aria-label": "Next slide"
270
+ }, null, 8, ["icon"]),
271
+ p.value > 1 ? (v(), x("div", Sn, [
272
+ (v(!0), x(ge, null, We(p.value, (Ee) => (v(), P(pe, {
273
+ key: Ee - 1,
274
+ class: H(["indicator", { active: Ee - 1 === c.value }]),
275
+ onClick: (va) => z(Ee - 1),
276
+ "aria-current": Ee - 1 === c.value,
277
+ "aria-label": `Go to slide ${Ee}`,
278
+ type: "button"
279
+ }, null, 8, ["class", "onClick", "aria-current", "aria-label"]))), 128))
280
+ ])) : L("", !0)
281
+ ], 40, En);
282
+ };
283
+ }
284
+ }), Ln = /* @__PURE__ */ M($n, [["__scopeId", "data-v-232abca2"]]), An = { class: "dialog-content" }, On = { key: 1 }, Tn = { class: "dialog-footer" }, Bn = /* @__PURE__ */ T({
285
+ __name: "dialog",
286
+ props: {
287
+ modelValue: { type: Boolean, default: !1 },
288
+ title: {},
289
+ message: {},
290
+ component: {},
291
+ componentProps: {},
292
+ showFooter: { type: Boolean, default: !1 },
293
+ showCancel: { type: Boolean, default: !0 },
294
+ confirmText: { default: "OK" },
295
+ cancelText: { default: "Abbrechen" },
296
+ closeOnBackdrop: { type: Boolean, default: !1 },
297
+ closeOnEscape: { type: Boolean, default: !0 }
298
+ },
299
+ emits: ["update:modelValue", "confirm", "cancel", "close"],
300
+ setup(e, { emit: n }) {
301
+ const t = e, o = n, l = R(t.modelValue);
302
+ q(
303
+ () => t.modelValue,
304
+ (i) => l.value = i
305
+ );
306
+ const a = () => {
307
+ l.value = !1, o("update:modelValue", !1), o("close");
308
+ }, s = () => {
309
+ o("confirm"), a();
310
+ }, u = () => {
311
+ o("cancel"), a();
312
+ }, c = () => {
313
+ t.closeOnBackdrop && a();
314
+ }, r = (i) => {
315
+ i.key === "Escape" && t.closeOnEscape && l.value && a();
316
+ };
317
+ return Le(() => {
318
+ document.addEventListener("keydown", r);
319
+ }), Ae(() => {
320
+ document.removeEventListener("keydown", r);
321
+ }), (i, d) => {
322
+ const f = W("VjIcon"), m = W("VjButton"), p = W("VjCard");
323
+ return v(), P(Ze, { to: "body" }, [
324
+ D(Ie, { name: "dialog-fade" }, {
325
+ default: K(() => [
326
+ l.value ? (v(), x("div", {
327
+ key: 0,
328
+ class: "dialog-backdrop",
329
+ onClick: c
330
+ }, [
331
+ D(Ie, { name: "dialog-scale" }, {
332
+ default: K(() => [
333
+ l.value ? (v(), x("div", {
334
+ key: 0,
335
+ class: "dialog-wrapper",
336
+ onClick: d[0] || (d[0] = de(() => {
337
+ }, ["stop"]))
338
+ }, [
339
+ D(p, {
340
+ class: "dialog-card",
341
+ header: e.title || ""
342
+ }, Jt({
343
+ headerActions: K(() => [
344
+ D(f, {
345
+ icon: E(N).CLOSE,
346
+ size: E(U).S,
347
+ class: "dialog-close",
348
+ onClick: a
349
+ }, null, 8, ["icon", "size"])
350
+ ]),
351
+ default: K(() => [
352
+ k("div", An, [
353
+ e.component ? (v(), P(Vt(e.component), Qt({ key: 0 }, e.componentProps, { onClose: a }), null, 16)) : e.message ? (v(), x("div", On, I(e.message), 1)) : B(i.$slots, "default", { key: 2 }, void 0, !0)
354
+ ])
355
+ ]),
356
+ _: 2
357
+ }, [
358
+ e.showFooter ? {
359
+ name: "footer",
360
+ fn: K(() => [
361
+ k("div", Tn, [
362
+ B(i.$slots, "footer", {}, () => [
363
+ e.showCancel ? (v(), P(m, {
364
+ key: 0,
365
+ secondary: "",
366
+ onClick: u,
367
+ label: e.cancelText
368
+ }, null, 8, ["label"])) : L("", !0),
369
+ D(m, {
370
+ primary: "",
371
+ onClick: s,
372
+ label: e.confirmText
373
+ }, null, 8, ["label"])
374
+ ], !0)
375
+ ])
376
+ ]),
377
+ key: "0"
378
+ } : void 0
379
+ ]), 1032, ["header"])
380
+ ])) : L("", !0)
381
+ ]),
382
+ _: 3
383
+ })
384
+ ])) : L("", !0)
385
+ ]),
386
+ _: 3
387
+ })
388
+ ]);
389
+ };
390
+ }
391
+ }), Et = /* @__PURE__ */ M(Bn, [["__scopeId", "data-v-6af510b3"]]), Ce = Math.min, G = Math.max, ze = Math.round, De = Math.floor, oe = (e) => ({
392
+ x: e,
393
+ y: e
394
+ }), Mn = {
395
+ left: "right",
396
+ right: "left",
397
+ bottom: "top",
398
+ top: "bottom"
399
+ }, Pn = {
400
+ start: "end",
401
+ end: "start"
402
+ };
403
+ function mt(e, n, t) {
404
+ return G(e, Ce(n, t));
405
+ }
406
+ function Te(e, n) {
407
+ return typeof e == "function" ? e(n) : e;
408
+ }
409
+ function fe(e) {
410
+ return e.split("-")[0];
411
+ }
412
+ function Be(e) {
413
+ return e.split("-")[1];
414
+ }
415
+ function St(e) {
416
+ return e === "x" ? "y" : "x";
417
+ }
418
+ function $t(e) {
419
+ return e === "y" ? "height" : "width";
420
+ }
421
+ const Fn = /* @__PURE__ */ new Set(["top", "bottom"]);
422
+ function ce(e) {
423
+ return Fn.has(fe(e)) ? "y" : "x";
424
+ }
425
+ function Lt(e) {
426
+ return St(ce(e));
427
+ }
428
+ function Dn(e, n, t) {
429
+ t === void 0 && (t = !1);
430
+ const o = Be(e), l = Lt(e), a = $t(l);
431
+ let s = l === "x" ? o === (t ? "end" : "start") ? "right" : "left" : o === "start" ? "bottom" : "top";
432
+ return n.reference[a] > n.floating[a] && (s = He(s)), [s, He(s)];
433
+ }
434
+ function jn(e) {
435
+ const n = He(e);
436
+ return [Je(e), n, Je(n)];
437
+ }
438
+ function Je(e) {
439
+ return e.replace(/start|end/g, (n) => Pn[n]);
440
+ }
441
+ const vt = ["left", "right"], pt = ["right", "left"], In = ["top", "bottom"], zn = ["bottom", "top"];
442
+ function Hn(e, n, t) {
443
+ switch (e) {
444
+ case "top":
445
+ case "bottom":
446
+ return t ? n ? pt : vt : n ? vt : pt;
447
+ case "left":
448
+ case "right":
449
+ return n ? In : zn;
450
+ default:
451
+ return [];
452
+ }
453
+ }
454
+ function Nn(e, n, t, o) {
455
+ const l = Be(e);
456
+ let a = Hn(fe(e), t === "start", o);
457
+ return l && (a = a.map((s) => s + "-" + l), n && (a = a.concat(a.map(Je)))), a;
458
+ }
459
+ function He(e) {
460
+ return e.replace(/left|right|bottom|top/g, (n) => Mn[n]);
461
+ }
462
+ function Wn(e) {
463
+ return {
464
+ top: 0,
465
+ right: 0,
466
+ bottom: 0,
467
+ left: 0,
468
+ ...e
469
+ };
470
+ }
471
+ function Un(e) {
472
+ return typeof e != "number" ? Wn(e) : {
473
+ top: e,
474
+ right: e,
475
+ bottom: e,
476
+ left: e
477
+ };
478
+ }
479
+ function Ne(e) {
480
+ const {
481
+ x: n,
482
+ y: t,
483
+ width: o,
484
+ height: l
485
+ } = e;
486
+ return {
487
+ width: o,
488
+ height: l,
489
+ top: t,
490
+ left: n,
491
+ right: n + o,
492
+ bottom: t + l,
493
+ x: n,
494
+ y: t
495
+ };
496
+ }
497
+ function ht(e, n, t) {
498
+ let {
499
+ reference: o,
500
+ floating: l
501
+ } = e;
502
+ const a = ce(n), s = Lt(n), u = $t(s), c = fe(n), r = a === "y", i = o.x + o.width / 2 - l.width / 2, d = o.y + o.height / 2 - l.height / 2, f = o[u] / 2 - l[u] / 2;
503
+ let m;
504
+ switch (c) {
505
+ case "top":
506
+ m = {
507
+ x: i,
508
+ y: o.y - l.height
509
+ };
510
+ break;
511
+ case "bottom":
512
+ m = {
513
+ x: i,
514
+ y: o.y + o.height
515
+ };
516
+ break;
517
+ case "right":
518
+ m = {
519
+ x: o.x + o.width,
520
+ y: d
521
+ };
522
+ break;
523
+ case "left":
524
+ m = {
525
+ x: o.x - l.width,
526
+ y: d
527
+ };
528
+ break;
529
+ default:
530
+ m = {
531
+ x: o.x,
532
+ y: o.y
533
+ };
534
+ }
535
+ switch (Be(n)) {
536
+ case "start":
537
+ m[s] -= f * (t && r ? -1 : 1);
538
+ break;
539
+ case "end":
540
+ m[s] += f * (t && r ? -1 : 1);
541
+ break;
542
+ }
543
+ return m;
544
+ }
545
+ const Xn = async (e, n, t) => {
546
+ const {
547
+ placement: o = "bottom",
548
+ strategy: l = "absolute",
549
+ middleware: a = [],
550
+ platform: s
551
+ } = t, u = a.filter(Boolean), c = await (s.isRTL == null ? void 0 : s.isRTL(n));
552
+ let r = await s.getElementRects({
553
+ reference: e,
554
+ floating: n,
555
+ strategy: l
556
+ }), {
557
+ x: i,
558
+ y: d
559
+ } = ht(r, o, c), f = o, m = {}, p = 0;
560
+ for (let y = 0; y < u.length; y++) {
561
+ const {
562
+ name: V,
563
+ fn: w
564
+ } = u[y], {
565
+ x: _,
566
+ y: h,
567
+ data: O,
568
+ reset: A
569
+ } = await w({
570
+ x: i,
571
+ y: d,
572
+ initialPlacement: o,
573
+ placement: f,
574
+ strategy: l,
575
+ middlewareData: m,
576
+ rects: r,
577
+ platform: s,
578
+ elements: {
579
+ reference: e,
580
+ floating: n
581
+ }
582
+ });
583
+ i = _ ?? i, d = h ?? d, m = {
584
+ ...m,
585
+ [V]: {
586
+ ...m[V],
587
+ ...O
588
+ }
589
+ }, A && p <= 50 && (p++, typeof A == "object" && (A.placement && (f = A.placement), A.rects && (r = A.rects === !0 ? await s.getElementRects({
590
+ reference: e,
591
+ floating: n,
592
+ strategy: l
593
+ }) : A.rects), {
594
+ x: i,
595
+ y: d
596
+ } = ht(r, f, c)), y = -1);
597
+ }
598
+ return {
599
+ x: i,
600
+ y: d,
601
+ placement: f,
602
+ strategy: l,
603
+ middlewareData: m
604
+ };
605
+ };
606
+ async function et(e, n) {
607
+ var t;
608
+ n === void 0 && (n = {});
609
+ const {
610
+ x: o,
611
+ y: l,
612
+ platform: a,
613
+ rects: s,
614
+ elements: u,
615
+ strategy: c
616
+ } = e, {
617
+ boundary: r = "clippingAncestors",
618
+ rootBoundary: i = "viewport",
619
+ elementContext: d = "floating",
620
+ altBoundary: f = !1,
621
+ padding: m = 0
622
+ } = Te(n, e), p = Un(m), V = u[f ? d === "floating" ? "reference" : "floating" : d], w = Ne(await a.getClippingRect({
623
+ element: (t = await (a.isElement == null ? void 0 : a.isElement(V))) == null || t ? V : V.contextElement || await (a.getDocumentElement == null ? void 0 : a.getDocumentElement(u.floating)),
624
+ boundary: r,
625
+ rootBoundary: i,
626
+ strategy: c
627
+ })), _ = d === "floating" ? {
628
+ x: o,
629
+ y: l,
630
+ width: s.floating.width,
631
+ height: s.floating.height
632
+ } : s.reference, h = await (a.getOffsetParent == null ? void 0 : a.getOffsetParent(u.floating)), O = await (a.isElement == null ? void 0 : a.isElement(h)) ? await (a.getScale == null ? void 0 : a.getScale(h)) || {
633
+ x: 1,
634
+ y: 1
635
+ } : {
636
+ x: 1,
637
+ y: 1
638
+ }, A = Ne(a.convertOffsetParentRelativeRectToViewportRelativeRect ? await a.convertOffsetParentRelativeRectToViewportRelativeRect({
639
+ elements: u,
640
+ rect: _,
641
+ offsetParent: h,
642
+ strategy: c
643
+ }) : _);
644
+ return {
645
+ top: (w.top - A.top + p.top) / O.y,
646
+ bottom: (A.bottom - w.bottom + p.bottom) / O.y,
647
+ left: (w.left - A.left + p.left) / O.x,
648
+ right: (A.right - w.right + p.right) / O.x
649
+ };
650
+ }
651
+ const Kn = function(e) {
652
+ return e === void 0 && (e = {}), {
653
+ name: "flip",
654
+ options: e,
655
+ async fn(n) {
656
+ var t, o;
657
+ const {
658
+ placement: l,
659
+ middlewareData: a,
660
+ rects: s,
661
+ initialPlacement: u,
662
+ platform: c,
663
+ elements: r
664
+ } = n, {
665
+ mainAxis: i = !0,
666
+ crossAxis: d = !0,
667
+ fallbackPlacements: f,
668
+ fallbackStrategy: m = "bestFit",
669
+ fallbackAxisSideDirection: p = "none",
670
+ flipAlignment: y = !0,
671
+ ...V
672
+ } = Te(e, n);
673
+ if ((t = a.arrow) != null && t.alignmentOffset)
674
+ return {};
675
+ const w = fe(l), _ = ce(u), h = fe(u) === u, O = await (c.isRTL == null ? void 0 : c.isRTL(r.floating)), A = f || (h || !y ? [He(u)] : jn(u)), F = p !== "none";
676
+ !f && F && A.push(...Nn(u, y, p, O));
677
+ const g = [u, ...A], b = await et(n, V), $ = [];
678
+ let j = ((o = a.flip) == null ? void 0 : o.overflows) || [];
679
+ if (i && $.push(b[w]), d) {
680
+ const re = Dn(l, s, O);
681
+ $.push(b[re[0]], b[re[1]]);
682
+ }
683
+ if (j = [...j, {
684
+ placement: l,
685
+ overflows: $
686
+ }], !$.every((re) => re <= 0)) {
687
+ var z, se;
688
+ const re = (((z = a.flip) == null ? void 0 : z.index) || 0) + 1, xe = g[re];
689
+ if (xe && (!(d === "alignment" ? _ !== ce(xe) : !1) || // We leave the current main axis only if every placement on that axis
690
+ // overflows the main axis.
691
+ j.every((X) => ce(X.placement) === _ ? X.overflows[0] > 0 : !0)))
692
+ return {
693
+ data: {
694
+ index: re,
695
+ overflows: j
696
+ },
697
+ reset: {
698
+ placement: xe
699
+ }
700
+ };
701
+ let J = (se = j.filter((ne) => ne.overflows[0] <= 0).sort((ne, X) => ne.overflows[1] - X.overflows[1])[0]) == null ? void 0 : se.placement;
702
+ if (!J)
703
+ switch (m) {
704
+ case "bestFit": {
705
+ var ie;
706
+ const ne = (ie = j.filter((X) => {
707
+ if (F) {
708
+ const Q = ce(X.placement);
709
+ return Q === _ || // Create a bias to the `y` side axis due to horizontal
710
+ // reading directions favoring greater width.
711
+ Q === "y";
712
+ }
713
+ return !0;
714
+ }).map((X) => [X.placement, X.overflows.filter((Q) => Q > 0).reduce((Q, Fe) => Q + Fe, 0)]).sort((X, Q) => X[1] - Q[1])[0]) == null ? void 0 : ie[0];
715
+ ne && (J = ne);
716
+ break;
717
+ }
718
+ case "initialPlacement":
719
+ J = u;
720
+ break;
721
+ }
722
+ if (l !== J)
723
+ return {
724
+ reset: {
725
+ placement: J
726
+ }
727
+ };
728
+ }
729
+ return {};
730
+ }
731
+ };
732
+ }, qn = /* @__PURE__ */ new Set(["left", "top"]);
733
+ async function Gn(e, n) {
734
+ const {
735
+ placement: t,
736
+ platform: o,
737
+ elements: l
738
+ } = e, a = await (o.isRTL == null ? void 0 : o.isRTL(l.floating)), s = fe(t), u = Be(t), c = ce(t) === "y", r = qn.has(s) ? -1 : 1, i = a && c ? -1 : 1, d = Te(n, e);
739
+ let {
740
+ mainAxis: f,
741
+ crossAxis: m,
742
+ alignmentAxis: p
743
+ } = typeof d == "number" ? {
744
+ mainAxis: d,
745
+ crossAxis: 0,
746
+ alignmentAxis: null
747
+ } : {
748
+ mainAxis: d.mainAxis || 0,
749
+ crossAxis: d.crossAxis || 0,
750
+ alignmentAxis: d.alignmentAxis
751
+ };
752
+ return u && typeof p == "number" && (m = u === "end" ? p * -1 : p), c ? {
753
+ x: m * i,
754
+ y: f * r
755
+ } : {
756
+ x: f * r,
757
+ y: m * i
758
+ };
759
+ }
760
+ const Yn = function(e) {
761
+ return e === void 0 && (e = 0), {
762
+ name: "offset",
763
+ options: e,
764
+ async fn(n) {
765
+ var t, o;
766
+ const {
767
+ x: l,
768
+ y: a,
769
+ placement: s,
770
+ middlewareData: u
771
+ } = n, c = await Gn(n, e);
772
+ return s === ((t = u.offset) == null ? void 0 : t.placement) && (o = u.arrow) != null && o.alignmentOffset ? {} : {
773
+ x: l + c.x,
774
+ y: a + c.y,
775
+ data: {
776
+ ...c,
777
+ placement: s
778
+ }
779
+ };
780
+ }
781
+ };
782
+ }, Jn = function(e) {
783
+ return e === void 0 && (e = {}), {
784
+ name: "shift",
785
+ options: e,
786
+ async fn(n) {
787
+ const {
788
+ x: t,
789
+ y: o,
790
+ placement: l
791
+ } = n, {
792
+ mainAxis: a = !0,
793
+ crossAxis: s = !1,
794
+ limiter: u = {
795
+ fn: (V) => {
796
+ let {
797
+ x: w,
798
+ y: _
799
+ } = V;
800
+ return {
801
+ x: w,
802
+ y: _
803
+ };
804
+ }
805
+ },
806
+ ...c
807
+ } = Te(e, n), r = {
808
+ x: t,
809
+ y: o
810
+ }, i = await et(n, c), d = ce(fe(l)), f = St(d);
811
+ let m = r[f], p = r[d];
812
+ if (a) {
813
+ const V = f === "y" ? "top" : "left", w = f === "y" ? "bottom" : "right", _ = m + i[V], h = m - i[w];
814
+ m = mt(_, m, h);
815
+ }
816
+ if (s) {
817
+ const V = d === "y" ? "top" : "left", w = d === "y" ? "bottom" : "right", _ = p + i[V], h = p - i[w];
818
+ p = mt(_, p, h);
819
+ }
820
+ const y = u.fn({
821
+ ...n,
822
+ [f]: m,
823
+ [d]: p
824
+ });
825
+ return {
826
+ ...y,
827
+ data: {
828
+ x: y.x - t,
829
+ y: y.y - o,
830
+ enabled: {
831
+ [f]: a,
832
+ [d]: s
833
+ }
834
+ }
835
+ };
836
+ }
837
+ };
838
+ }, Qn = function(e) {
839
+ return e === void 0 && (e = {}), {
840
+ name: "size",
841
+ options: e,
842
+ async fn(n) {
843
+ var t, o;
844
+ const {
845
+ placement: l,
846
+ rects: a,
847
+ platform: s,
848
+ elements: u
849
+ } = n, {
850
+ apply: c = () => {
851
+ },
852
+ ...r
853
+ } = Te(e, n), i = await et(n, r), d = fe(l), f = Be(l), m = ce(l) === "y", {
854
+ width: p,
855
+ height: y
856
+ } = a.floating;
857
+ let V, w;
858
+ d === "top" || d === "bottom" ? (V = d, w = f === (await (s.isRTL == null ? void 0 : s.isRTL(u.floating)) ? "start" : "end") ? "left" : "right") : (w = d, V = f === "end" ? "top" : "bottom");
859
+ const _ = y - i.top - i.bottom, h = p - i.left - i.right, O = Ce(y - i[V], _), A = Ce(p - i[w], h), F = !n.middlewareData.shift;
860
+ let g = O, b = A;
861
+ if ((t = n.middlewareData.shift) != null && t.enabled.x && (b = h), (o = n.middlewareData.shift) != null && o.enabled.y && (g = _), F && !f) {
862
+ const j = G(i.left, 0), z = G(i.right, 0), se = G(i.top, 0), ie = G(i.bottom, 0);
863
+ m ? b = p - 2 * (j !== 0 || z !== 0 ? j + z : G(i.left, i.right)) : g = y - 2 * (se !== 0 || ie !== 0 ? se + ie : G(i.top, i.bottom));
864
+ }
865
+ await c({
866
+ ...n,
867
+ availableWidth: b,
868
+ availableHeight: g
869
+ });
870
+ const $ = await s.getDimensions(u.floating);
871
+ return p !== $.width || y !== $.height ? {
872
+ reset: {
873
+ rects: !0
874
+ }
875
+ } : {};
876
+ }
877
+ };
878
+ };
879
+ function Ue() {
880
+ return typeof window < "u";
881
+ }
882
+ function we(e) {
883
+ return tt(e) ? (e.nodeName || "").toLowerCase() : "#document";
884
+ }
885
+ function Y(e) {
886
+ var n;
887
+ return (e == null || (n = e.ownerDocument) == null ? void 0 : n.defaultView) || window;
888
+ }
889
+ function ae(e) {
890
+ var n;
891
+ return (n = (tt(e) ? e.ownerDocument : e.document) || window.document) == null ? void 0 : n.documentElement;
892
+ }
893
+ function tt(e) {
894
+ return Ue() ? e instanceof Node || e instanceof Y(e).Node : !1;
895
+ }
896
+ function ee(e) {
897
+ return Ue() ? e instanceof Element || e instanceof Y(e).Element : !1;
898
+ }
899
+ function le(e) {
900
+ return Ue() ? e instanceof HTMLElement || e instanceof Y(e).HTMLElement : !1;
901
+ }
902
+ function gt(e) {
903
+ return !Ue() || typeof ShadowRoot > "u" ? !1 : e instanceof ShadowRoot || e instanceof Y(e).ShadowRoot;
904
+ }
905
+ const Zn = /* @__PURE__ */ new Set(["inline", "contents"]);
906
+ function Me(e) {
907
+ const {
908
+ overflow: n,
909
+ overflowX: t,
910
+ overflowY: o,
911
+ display: l
912
+ } = te(e);
913
+ return /auto|scroll|overlay|hidden|clip/.test(n + o + t) && !Zn.has(l);
914
+ }
915
+ const eo = /* @__PURE__ */ new Set(["table", "td", "th"]);
916
+ function to(e) {
917
+ return eo.has(we(e));
918
+ }
919
+ const no = [":popover-open", ":modal"];
920
+ function Xe(e) {
921
+ return no.some((n) => {
922
+ try {
923
+ return e.matches(n);
924
+ } catch {
925
+ return !1;
926
+ }
927
+ });
928
+ }
929
+ const oo = ["transform", "translate", "scale", "rotate", "perspective"], lo = ["transform", "translate", "scale", "rotate", "perspective", "filter"], ao = ["paint", "layout", "strict", "content"];
930
+ function nt(e) {
931
+ const n = ot(), t = ee(e) ? te(e) : e;
932
+ return oo.some((o) => t[o] ? t[o] !== "none" : !1) || (t.containerType ? t.containerType !== "normal" : !1) || !n && (t.backdropFilter ? t.backdropFilter !== "none" : !1) || !n && (t.filter ? t.filter !== "none" : !1) || lo.some((o) => (t.willChange || "").includes(o)) || ao.some((o) => (t.contain || "").includes(o));
933
+ }
934
+ function so(e) {
935
+ let n = me(e);
936
+ for (; le(n) && !Re(n); ) {
937
+ if (nt(n))
938
+ return n;
939
+ if (Xe(n))
940
+ return null;
941
+ n = me(n);
942
+ }
943
+ return null;
944
+ }
945
+ function ot() {
946
+ return typeof CSS > "u" || !CSS.supports ? !1 : CSS.supports("-webkit-backdrop-filter", "none");
947
+ }
948
+ const io = /* @__PURE__ */ new Set(["html", "body", "#document"]);
949
+ function Re(e) {
950
+ return io.has(we(e));
951
+ }
952
+ function te(e) {
953
+ return Y(e).getComputedStyle(e);
954
+ }
955
+ function Ke(e) {
956
+ return ee(e) ? {
957
+ scrollLeft: e.scrollLeft,
958
+ scrollTop: e.scrollTop
959
+ } : {
960
+ scrollLeft: e.scrollX,
961
+ scrollTop: e.scrollY
962
+ };
963
+ }
964
+ function me(e) {
965
+ if (we(e) === "html")
966
+ return e;
967
+ const n = (
968
+ // Step into the shadow DOM of the parent of a slotted node.
969
+ e.assignedSlot || // DOM Element detected.
970
+ e.parentNode || // ShadowRoot detected.
971
+ gt(e) && e.host || // Fallback.
972
+ ae(e)
973
+ );
974
+ return gt(n) ? n.host : n;
975
+ }
976
+ function At(e) {
977
+ const n = me(e);
978
+ return Re(n) ? e.ownerDocument ? e.ownerDocument.body : e.body : le(n) && Me(n) ? n : At(n);
979
+ }
980
+ function $e(e, n, t) {
981
+ var o;
982
+ n === void 0 && (n = []), t === void 0 && (t = !0);
983
+ const l = At(e), a = l === ((o = e.ownerDocument) == null ? void 0 : o.body), s = Y(l);
984
+ if (a) {
985
+ const u = Qe(s);
986
+ return n.concat(s, s.visualViewport || [], Me(l) ? l : [], u && t ? $e(u) : []);
987
+ }
988
+ return n.concat(l, $e(l, [], t));
989
+ }
990
+ function Qe(e) {
991
+ return e.parent && Object.getPrototypeOf(e.parent) ? e.frameElement : null;
992
+ }
993
+ function Ot(e) {
994
+ const n = te(e);
995
+ let t = parseFloat(n.width) || 0, o = parseFloat(n.height) || 0;
996
+ const l = le(e), a = l ? e.offsetWidth : t, s = l ? e.offsetHeight : o, u = ze(t) !== a || ze(o) !== s;
997
+ return u && (t = a, o = s), {
998
+ width: t,
999
+ height: o,
1000
+ $: u
1001
+ };
1002
+ }
1003
+ function lt(e) {
1004
+ return ee(e) ? e : e.contextElement;
1005
+ }
1006
+ function Ve(e) {
1007
+ const n = lt(e);
1008
+ if (!le(n))
1009
+ return oe(1);
1010
+ const t = n.getBoundingClientRect(), {
1011
+ width: o,
1012
+ height: l,
1013
+ $: a
1014
+ } = Ot(n);
1015
+ let s = (a ? ze(t.width) : t.width) / o, u = (a ? ze(t.height) : t.height) / l;
1016
+ return (!s || !Number.isFinite(s)) && (s = 1), (!u || !Number.isFinite(u)) && (u = 1), {
1017
+ x: s,
1018
+ y: u
1019
+ };
1020
+ }
1021
+ const ro = /* @__PURE__ */ oe(0);
1022
+ function Tt(e) {
1023
+ const n = Y(e);
1024
+ return !ot() || !n.visualViewport ? ro : {
1025
+ x: n.visualViewport.offsetLeft,
1026
+ y: n.visualViewport.offsetTop
1027
+ };
1028
+ }
1029
+ function co(e, n, t) {
1030
+ return n === void 0 && (n = !1), !t || n && t !== Y(e) ? !1 : n;
1031
+ }
1032
+ function be(e, n, t, o) {
1033
+ n === void 0 && (n = !1), t === void 0 && (t = !1);
1034
+ const l = e.getBoundingClientRect(), a = lt(e);
1035
+ let s = oe(1);
1036
+ n && (o ? ee(o) && (s = Ve(o)) : s = Ve(e));
1037
+ const u = co(a, t, o) ? Tt(a) : oe(0);
1038
+ let c = (l.left + u.x) / s.x, r = (l.top + u.y) / s.y, i = l.width / s.x, d = l.height / s.y;
1039
+ if (a) {
1040
+ const f = Y(a), m = o && ee(o) ? Y(o) : o;
1041
+ let p = f, y = Qe(p);
1042
+ for (; y && o && m !== p; ) {
1043
+ const V = Ve(y), w = y.getBoundingClientRect(), _ = te(y), h = w.left + (y.clientLeft + parseFloat(_.paddingLeft)) * V.x, O = w.top + (y.clientTop + parseFloat(_.paddingTop)) * V.y;
1044
+ c *= V.x, r *= V.y, i *= V.x, d *= V.y, c += h, r += O, p = Y(y), y = Qe(p);
1045
+ }
1046
+ }
1047
+ return Ne({
1048
+ width: i,
1049
+ height: d,
1050
+ x: c,
1051
+ y: r
1052
+ });
1053
+ }
1054
+ function qe(e, n) {
1055
+ const t = Ke(e).scrollLeft;
1056
+ return n ? n.left + t : be(ae(e)).left + t;
1057
+ }
1058
+ function Bt(e, n) {
1059
+ const t = e.getBoundingClientRect(), o = t.left + n.scrollLeft - qe(e, t), l = t.top + n.scrollTop;
1060
+ return {
1061
+ x: o,
1062
+ y: l
1063
+ };
1064
+ }
1065
+ function uo(e) {
1066
+ let {
1067
+ elements: n,
1068
+ rect: t,
1069
+ offsetParent: o,
1070
+ strategy: l
1071
+ } = e;
1072
+ const a = l === "fixed", s = ae(o), u = n ? Xe(n.floating) : !1;
1073
+ if (o === s || u && a)
1074
+ return t;
1075
+ let c = {
1076
+ scrollLeft: 0,
1077
+ scrollTop: 0
1078
+ }, r = oe(1);
1079
+ const i = oe(0), d = le(o);
1080
+ if ((d || !d && !a) && ((we(o) !== "body" || Me(s)) && (c = Ke(o)), le(o))) {
1081
+ const m = be(o);
1082
+ r = Ve(o), i.x = m.x + o.clientLeft, i.y = m.y + o.clientTop;
1083
+ }
1084
+ const f = s && !d && !a ? Bt(s, c) : oe(0);
1085
+ return {
1086
+ width: t.width * r.x,
1087
+ height: t.height * r.y,
1088
+ x: t.x * r.x - c.scrollLeft * r.x + i.x + f.x,
1089
+ y: t.y * r.y - c.scrollTop * r.y + i.y + f.y
1090
+ };
1091
+ }
1092
+ function fo(e) {
1093
+ return Array.from(e.getClientRects());
1094
+ }
1095
+ function mo(e) {
1096
+ const n = ae(e), t = Ke(e), o = e.ownerDocument.body, l = G(n.scrollWidth, n.clientWidth, o.scrollWidth, o.clientWidth), a = G(n.scrollHeight, n.clientHeight, o.scrollHeight, o.clientHeight);
1097
+ let s = -t.scrollLeft + qe(e);
1098
+ const u = -t.scrollTop;
1099
+ return te(o).direction === "rtl" && (s += G(n.clientWidth, o.clientWidth) - l), {
1100
+ width: l,
1101
+ height: a,
1102
+ x: s,
1103
+ y: u
1104
+ };
1105
+ }
1106
+ const bt = 25;
1107
+ function vo(e, n) {
1108
+ const t = Y(e), o = ae(e), l = t.visualViewport;
1109
+ let a = o.clientWidth, s = o.clientHeight, u = 0, c = 0;
1110
+ if (l) {
1111
+ a = l.width, s = l.height;
1112
+ const i = ot();
1113
+ (!i || i && n === "fixed") && (u = l.offsetLeft, c = l.offsetTop);
1114
+ }
1115
+ const r = qe(o);
1116
+ if (r <= 0) {
1117
+ const i = o.ownerDocument, d = i.body, f = getComputedStyle(d), m = i.compatMode === "CSS1Compat" && parseFloat(f.marginLeft) + parseFloat(f.marginRight) || 0, p = Math.abs(o.clientWidth - d.clientWidth - m);
1118
+ p <= bt && (a -= p);
1119
+ } else r <= bt && (a += r);
1120
+ return {
1121
+ width: a,
1122
+ height: s,
1123
+ x: u,
1124
+ y: c
1125
+ };
1126
+ }
1127
+ const po = /* @__PURE__ */ new Set(["absolute", "fixed"]);
1128
+ function ho(e, n) {
1129
+ const t = be(e, !0, n === "fixed"), o = t.top + e.clientTop, l = t.left + e.clientLeft, a = le(e) ? Ve(e) : oe(1), s = e.clientWidth * a.x, u = e.clientHeight * a.y, c = l * a.x, r = o * a.y;
1130
+ return {
1131
+ width: s,
1132
+ height: u,
1133
+ x: c,
1134
+ y: r
1135
+ };
1136
+ }
1137
+ function yt(e, n, t) {
1138
+ let o;
1139
+ if (n === "viewport")
1140
+ o = vo(e, t);
1141
+ else if (n === "document")
1142
+ o = mo(ae(e));
1143
+ else if (ee(n))
1144
+ o = ho(n, t);
1145
+ else {
1146
+ const l = Tt(e);
1147
+ o = {
1148
+ x: n.x - l.x,
1149
+ y: n.y - l.y,
1150
+ width: n.width,
1151
+ height: n.height
1152
+ };
1153
+ }
1154
+ return Ne(o);
1155
+ }
1156
+ function Mt(e, n) {
1157
+ const t = me(e);
1158
+ return t === n || !ee(t) || Re(t) ? !1 : te(t).position === "fixed" || Mt(t, n);
1159
+ }
1160
+ function go(e, n) {
1161
+ const t = n.get(e);
1162
+ if (t)
1163
+ return t;
1164
+ let o = $e(e, [], !1).filter((u) => ee(u) && we(u) !== "body"), l = null;
1165
+ const a = te(e).position === "fixed";
1166
+ let s = a ? me(e) : e;
1167
+ for (; ee(s) && !Re(s); ) {
1168
+ const u = te(s), c = nt(s);
1169
+ !c && u.position === "fixed" && (l = null), (a ? !c && !l : !c && u.position === "static" && !!l && po.has(l.position) || Me(s) && !c && Mt(e, s)) ? o = o.filter((i) => i !== s) : l = u, s = me(s);
1170
+ }
1171
+ return n.set(e, o), o;
1172
+ }
1173
+ function bo(e) {
1174
+ let {
1175
+ element: n,
1176
+ boundary: t,
1177
+ rootBoundary: o,
1178
+ strategy: l
1179
+ } = e;
1180
+ const s = [...t === "clippingAncestors" ? Xe(n) ? [] : go(n, this._c) : [].concat(t), o], u = s[0], c = s.reduce((r, i) => {
1181
+ const d = yt(n, i, l);
1182
+ return r.top = G(d.top, r.top), r.right = Ce(d.right, r.right), r.bottom = Ce(d.bottom, r.bottom), r.left = G(d.left, r.left), r;
1183
+ }, yt(n, u, l));
1184
+ return {
1185
+ width: c.right - c.left,
1186
+ height: c.bottom - c.top,
1187
+ x: c.left,
1188
+ y: c.top
1189
+ };
1190
+ }
1191
+ function yo(e) {
1192
+ const {
1193
+ width: n,
1194
+ height: t
1195
+ } = Ot(e);
1196
+ return {
1197
+ width: n,
1198
+ height: t
1199
+ };
1200
+ }
1201
+ function wo(e, n, t) {
1202
+ const o = le(n), l = ae(n), a = t === "fixed", s = be(e, !0, a, n);
1203
+ let u = {
1204
+ scrollLeft: 0,
1205
+ scrollTop: 0
1206
+ };
1207
+ const c = oe(0);
1208
+ function r() {
1209
+ c.x = qe(l);
1210
+ }
1211
+ if (o || !o && !a)
1212
+ if ((we(n) !== "body" || Me(l)) && (u = Ke(n)), o) {
1213
+ const m = be(n, !0, a, n);
1214
+ c.x = m.x + n.clientLeft, c.y = m.y + n.clientTop;
1215
+ } else l && r();
1216
+ a && !o && l && r();
1217
+ const i = l && !o && !a ? Bt(l, u) : oe(0), d = s.left + u.scrollLeft - c.x - i.x, f = s.top + u.scrollTop - c.y - i.y;
1218
+ return {
1219
+ x: d,
1220
+ y: f,
1221
+ width: s.width,
1222
+ height: s.height
1223
+ };
1224
+ }
1225
+ function Ye(e) {
1226
+ return te(e).position === "static";
1227
+ }
1228
+ function wt(e, n) {
1229
+ if (!le(e) || te(e).position === "fixed")
1230
+ return null;
1231
+ if (n)
1232
+ return n(e);
1233
+ let t = e.offsetParent;
1234
+ return ae(e) === t && (t = t.ownerDocument.body), t;
1235
+ }
1236
+ function Pt(e, n) {
1237
+ const t = Y(e);
1238
+ if (Xe(e))
1239
+ return t;
1240
+ if (!le(e)) {
1241
+ let l = me(e);
1242
+ for (; l && !Re(l); ) {
1243
+ if (ee(l) && !Ye(l))
1244
+ return l;
1245
+ l = me(l);
1246
+ }
1247
+ return t;
1248
+ }
1249
+ let o = wt(e, n);
1250
+ for (; o && to(o) && Ye(o); )
1251
+ o = wt(o, n);
1252
+ return o && Re(o) && Ye(o) && !nt(o) ? t : o || so(e) || t;
1253
+ }
1254
+ const xo = async function(e) {
1255
+ const n = this.getOffsetParent || Pt, t = this.getDimensions, o = await t(e.floating);
1256
+ return {
1257
+ reference: wo(e.reference, await n(e.floating), e.strategy),
1258
+ floating: {
1259
+ x: 0,
1260
+ y: 0,
1261
+ width: o.width,
1262
+ height: o.height
1263
+ }
1264
+ };
1265
+ };
1266
+ function _o(e) {
1267
+ return te(e).direction === "rtl";
1268
+ }
1269
+ const Vo = {
1270
+ convertOffsetParentRelativeRectToViewportRelativeRect: uo,
1271
+ getDocumentElement: ae,
1272
+ getClippingRect: bo,
1273
+ getOffsetParent: Pt,
1274
+ getElementRects: xo,
1275
+ getClientRects: fo,
1276
+ getDimensions: yo,
1277
+ getScale: Ve,
1278
+ isElement: ee,
1279
+ isRTL: _o
1280
+ };
1281
+ function Ft(e, n) {
1282
+ return e.x === n.x && e.y === n.y && e.width === n.width && e.height === n.height;
1283
+ }
1284
+ function ko(e, n) {
1285
+ let t = null, o;
1286
+ const l = ae(e);
1287
+ function a() {
1288
+ var u;
1289
+ clearTimeout(o), (u = t) == null || u.disconnect(), t = null;
1290
+ }
1291
+ function s(u, c) {
1292
+ u === void 0 && (u = !1), c === void 0 && (c = 1), a();
1293
+ const r = e.getBoundingClientRect(), {
1294
+ left: i,
1295
+ top: d,
1296
+ width: f,
1297
+ height: m
1298
+ } = r;
1299
+ if (u || n(), !f || !m)
1300
+ return;
1301
+ const p = De(d), y = De(l.clientWidth - (i + f)), V = De(l.clientHeight - (d + m)), w = De(i), h = {
1302
+ rootMargin: -p + "px " + -y + "px " + -V + "px " + -w + "px",
1303
+ threshold: G(0, Ce(1, c)) || 1
1304
+ };
1305
+ let O = !0;
1306
+ function A(F) {
1307
+ const g = F[0].intersectionRatio;
1308
+ if (g !== c) {
1309
+ if (!O)
1310
+ return s();
1311
+ g ? s(!1, g) : o = setTimeout(() => {
1312
+ s(!1, 1e-7);
1313
+ }, 1e3);
1314
+ }
1315
+ g === 1 && !Ft(r, e.getBoundingClientRect()) && s(), O = !1;
1316
+ }
1317
+ try {
1318
+ t = new IntersectionObserver(A, {
1319
+ ...h,
1320
+ // Handle <iframe>s
1321
+ root: l.ownerDocument
1322
+ });
1323
+ } catch {
1324
+ t = new IntersectionObserver(A, h);
1325
+ }
1326
+ t.observe(e);
1327
+ }
1328
+ return s(!0), a;
1329
+ }
1330
+ function Dt(e, n, t, o) {
1331
+ o === void 0 && (o = {});
1332
+ const {
1333
+ ancestorScroll: l = !0,
1334
+ ancestorResize: a = !0,
1335
+ elementResize: s = typeof ResizeObserver == "function",
1336
+ layoutShift: u = typeof IntersectionObserver == "function",
1337
+ animationFrame: c = !1
1338
+ } = o, r = lt(e), i = l || a ? [...r ? $e(r) : [], ...$e(n)] : [];
1339
+ i.forEach((w) => {
1340
+ l && w.addEventListener("scroll", t, {
1341
+ passive: !0
1342
+ }), a && w.addEventListener("resize", t);
1343
+ });
1344
+ const d = r && u ? ko(r, t) : null;
1345
+ let f = -1, m = null;
1346
+ s && (m = new ResizeObserver((w) => {
1347
+ let [_] = w;
1348
+ _ && _.target === r && m && (m.unobserve(n), cancelAnimationFrame(f), f = requestAnimationFrame(() => {
1349
+ var h;
1350
+ (h = m) == null || h.observe(n);
1351
+ })), t();
1352
+ }), r && !c && m.observe(r), m.observe(n));
1353
+ let p, y = c ? be(e) : null;
1354
+ c && V();
1355
+ function V() {
1356
+ const w = be(e);
1357
+ y && !Ft(y, w) && t(), y = w, p = requestAnimationFrame(V);
1358
+ }
1359
+ return t(), () => {
1360
+ var w;
1361
+ i.forEach((_) => {
1362
+ l && _.removeEventListener("scroll", t), a && _.removeEventListener("resize", t);
1363
+ }), d?.(), (w = m) == null || w.disconnect(), m = null, c && cancelAnimationFrame(p);
1364
+ };
1365
+ }
1366
+ const jt = Yn, It = Jn, zt = Kn, Co = Qn, Ro = (e, n, t) => {
1367
+ const o = /* @__PURE__ */ new Map(), l = {
1368
+ platform: Vo,
1369
+ ...t
1370
+ }, a = {
1371
+ ...l.platform,
1372
+ _c: o
1373
+ };
1374
+ return Xn(e, n, {
1375
+ ...l,
1376
+ platform: a
1377
+ });
1378
+ };
1379
+ function Eo(e) {
1380
+ return e != null && typeof e == "object" && "$el" in e;
1381
+ }
1382
+ function xt(e) {
1383
+ if (Eo(e)) {
1384
+ const n = e.$el;
1385
+ return tt(n) && we(n) === "#comment" ? null : n;
1386
+ }
1387
+ return e;
1388
+ }
1389
+ function Se(e) {
1390
+ return typeof e == "function" ? e() : E(e);
1391
+ }
1392
+ function Ht(e) {
1393
+ return typeof window > "u" ? 1 : (e.ownerDocument.defaultView || window).devicePixelRatio || 1;
1394
+ }
1395
+ function _t(e, n) {
1396
+ const t = Ht(e);
1397
+ return Math.round(n * t) / t;
1398
+ }
1399
+ function Nt(e, n, t) {
1400
+ t === void 0 && (t = {});
1401
+ const o = t.whileElementsMounted, l = C(() => {
1402
+ var g;
1403
+ return (g = Se(t.open)) != null ? g : !0;
1404
+ }), a = C(() => Se(t.middleware)), s = C(() => {
1405
+ var g;
1406
+ return (g = Se(t.placement)) != null ? g : "bottom";
1407
+ }), u = C(() => {
1408
+ var g;
1409
+ return (g = Se(t.strategy)) != null ? g : "absolute";
1410
+ }), c = C(() => {
1411
+ var g;
1412
+ return (g = Se(t.transform)) != null ? g : !0;
1413
+ }), r = C(() => xt(e.value)), i = C(() => xt(n.value)), d = R(0), f = R(0), m = R(u.value), p = R(s.value), y = Zt({}), V = R(!1), w = C(() => {
1414
+ const g = {
1415
+ position: m.value,
1416
+ left: "0",
1417
+ top: "0"
1418
+ };
1419
+ if (!i.value)
1420
+ return g;
1421
+ const b = _t(i.value, d.value), $ = _t(i.value, f.value);
1422
+ return c.value ? {
1423
+ ...g,
1424
+ transform: "translate(" + b + "px, " + $ + "px)",
1425
+ ...Ht(i.value) >= 1.5 && {
1426
+ willChange: "transform"
1427
+ }
1428
+ } : {
1429
+ position: m.value,
1430
+ left: b + "px",
1431
+ top: $ + "px"
1432
+ };
1433
+ });
1434
+ let _;
1435
+ function h() {
1436
+ if (r.value == null || i.value == null)
1437
+ return;
1438
+ const g = l.value;
1439
+ Ro(r.value, i.value, {
1440
+ middleware: a.value,
1441
+ placement: s.value,
1442
+ strategy: u.value
1443
+ }).then((b) => {
1444
+ d.value = b.x, f.value = b.y, m.value = b.strategy, p.value = b.placement, y.value = b.middlewareData, V.value = g !== !1;
1445
+ });
1446
+ }
1447
+ function O() {
1448
+ typeof _ == "function" && (_(), _ = void 0);
1449
+ }
1450
+ function A() {
1451
+ if (O(), o === void 0) {
1452
+ h();
1453
+ return;
1454
+ }
1455
+ if (r.value != null && i.value != null) {
1456
+ _ = o(r.value, i.value, h);
1457
+ return;
1458
+ }
1459
+ }
1460
+ function F() {
1461
+ l.value || (V.value = !1);
1462
+ }
1463
+ return q([a, s, u, l], h, {
1464
+ flush: "sync"
1465
+ }), q([r, i], A, {
1466
+ flush: "sync"
1467
+ }), q(l, F, {
1468
+ flush: "sync"
1469
+ }), en() && tn(O), {
1470
+ x: _e(d),
1471
+ y: _e(f),
1472
+ strategy: _e(m),
1473
+ placement: _e(p),
1474
+ middlewareData: _e(y),
1475
+ isPositioned: _e(V),
1476
+ floatingStyles: w,
1477
+ update: h
1478
+ };
1479
+ }
1480
+ const So = /* @__PURE__ */ T({
1481
+ inheritAttrs: !1,
1482
+ __name: "dot-menu",
1483
+ props: {
1484
+ icon: {}
1485
+ },
1486
+ setup(e) {
1487
+ const n = e, t = R(!1), o = R(null), l = R(null), a = C(() => n.icon ?? N.DOT_MENU), { floatingStyles: s } = Nt(o, l, {
1488
+ placement: "bottom-end",
1489
+ middleware: [jt(8), zt(), It({ padding: 8 })],
1490
+ whileElementsMounted: Dt
1491
+ }), u = () => {
1492
+ t.value = !t.value;
1493
+ }, c = () => {
1494
+ t.value = !1;
1495
+ };
1496
+ return (r, i) => {
1497
+ const d = W("VjButton"), f = W("VjMenu");
1498
+ return v(), x(ge, null, [
1499
+ k("div", {
1500
+ class: H(["dot-menu-container", r.$attrs.class])
1501
+ }, [
1502
+ D(d, {
1503
+ ref_key: "buttonRef",
1504
+ ref: o,
1505
+ class: "dot-menu",
1506
+ tertiary: "",
1507
+ icon: a.value,
1508
+ onClick: u
1509
+ }, null, 8, ["icon"]),
1510
+ D(Ie, { name: "menu" }, {
1511
+ default: K(() => [
1512
+ t.value ? (v(), P(f, {
1513
+ key: 0,
1514
+ ref_key: "floatingRef",
1515
+ ref: l,
1516
+ style: Z(E(s)),
1517
+ class: "menu-dropdown",
1518
+ onClose: c
1519
+ }, {
1520
+ default: K(() => [
1521
+ B(r.$slots, "default", {}, void 0, !0)
1522
+ ]),
1523
+ _: 3
1524
+ }, 8, ["style"])) : L("", !0)
1525
+ ]),
1526
+ _: 3
1527
+ })
1528
+ ], 2),
1529
+ (v(), P(Ze, { to: "body" }, [
1530
+ t.value ? (v(), x("div", {
1531
+ key: 0,
1532
+ class: "menu-backdrop",
1533
+ onClick: c
1534
+ })) : L("", !0)
1535
+ ]))
1536
+ ], 64);
1537
+ };
1538
+ }
1539
+ }), $o = /* @__PURE__ */ M(So, [["__scopeId", "data-v-f853b4ab"]]), Lo = /* @__PURE__ */ T({
1540
+ __name: "link-button",
1541
+ props: {
1542
+ label: {},
1543
+ icon: {},
1544
+ to: {},
1545
+ primary: { type: Boolean },
1546
+ secondary: { type: Boolean },
1547
+ tertiary: { type: Boolean },
1548
+ disabled: { type: Boolean }
1549
+ },
1550
+ setup(e) {
1551
+ const n = e, t = U.S, o = C(() => n.primary ? "primary" : n.secondary ? "secondary" : n.tertiary ? "tertiary" : "primary");
1552
+ return (l, a) => {
1553
+ const s = W("router-link");
1554
+ return v(), P(s, {
1555
+ to: e.to,
1556
+ class: H(["button", o.value]),
1557
+ disabled: e.disabled
1558
+ }, {
1559
+ default: K(() => [
1560
+ e.icon ? (v(), P(Oe, {
1561
+ key: 0,
1562
+ icon: e.icon,
1563
+ size: E(t)
1564
+ }, null, 8, ["icon", "size"])) : L("", !0),
1565
+ je(" " + I(e.label), 1)
1566
+ ]),
1567
+ _: 1
1568
+ }, 8, ["to", "class", "disabled"]);
1569
+ };
1570
+ }
1571
+ }), Ao = /* @__PURE__ */ M(Lo, [["__scopeId", "data-v-bd3cf2f5"]]), Oo = ["disabled"], To = { class: "menu-action--icon" }, Bo = /* @__PURE__ */ T({
1572
+ __name: "menu-action",
1573
+ props: {
1574
+ label: {},
1575
+ icon: {},
1576
+ disabled: { type: Boolean }
1577
+ },
1578
+ setup(e) {
1579
+ const n = U.S;
1580
+ return (t, o) => (v(), x("button", {
1581
+ class: "menu-action button tertiary",
1582
+ disabled: e.disabled
1583
+ }, [
1584
+ k("span", To, [
1585
+ e.icon ? (v(), P(Oe, {
1586
+ key: 0,
1587
+ icon: e.icon,
1588
+ size: E(n)
1589
+ }, null, 8, ["icon", "size"])) : L("", !0)
1590
+ ]),
1591
+ k("span", null, I(e.label), 1)
1592
+ ], 8, Oo));
1593
+ }
1594
+ }), Mo = /* @__PURE__ */ M(Bo, [["__scopeId", "data-v-07850995"]]), Po = {}, Fo = { class: "menu" };
1595
+ function Do(e, n) {
1596
+ return v(), x("div", Fo, [
1597
+ B(e.$slots, "default", {}, void 0, !0)
1598
+ ]);
1599
+ }
1600
+ const jo = /* @__PURE__ */ M(Po, [["render", Do], ["__scopeId", "data-v-259fec08"]]), Io = { class: "page" }, zo = {
1601
+ key: 0,
1602
+ class: "page-error"
1603
+ }, Ho = {
1604
+ key: 1,
1605
+ class: "contents"
1606
+ }, No = {
1607
+ key: 2,
1608
+ class: "actions"
1609
+ }, Wo = { key: 3 }, Uo = { key: 0 }, Xo = /* @__PURE__ */ T({
1610
+ __name: "page",
1611
+ props: {
1612
+ title: {},
1613
+ scrollable: { type: Boolean },
1614
+ errorMessage: {}
1615
+ },
1616
+ setup(e) {
1617
+ return (n, t) => (v(), x("div", Io, [
1618
+ k("header", null, [
1619
+ k("h2", null, I(e.title), 1),
1620
+ k("span", null, [
1621
+ B(n.$slots, "headerActions", {}, void 0, !0)
1622
+ ])
1623
+ ]),
1624
+ k("main", {
1625
+ class: H({ scrollable: e.scrollable })
1626
+ }, [
1627
+ e.errorMessage ? (v(), x("div", zo, [
1628
+ B(n.$slots, "error", {}, void 0, !0)
1629
+ ])) : L("", !0),
1630
+ e.errorMessage ? L("", !0) : (v(), x("div", Ho, [
1631
+ B(n.$slots, "default", {}, void 0, !0)
1632
+ ])),
1633
+ e.errorMessage ? L("", !0) : (v(), x("div", No, [
1634
+ B(n.$slots, "actions", {}, void 0, !0)
1635
+ ])),
1636
+ n.$slots.flexFooter ? (v(), x("footer", Wo, [
1637
+ B(n.$slots, "flexFooter", {}, void 0, !0)
1638
+ ])) : L("", !0)
1639
+ ], 2),
1640
+ n.$slots.footer ? (v(), x("footer", Uo, [
1641
+ B(n.$slots, "footer", {}, void 0, !0)
1642
+ ])) : L("", !0)
1643
+ ]));
1644
+ }
1645
+ }), Ko = /* @__PURE__ */ M(Xo, [["__scopeId", "data-v-1618f861"]]), qo = {
1646
+ class: "paginator-info",
1647
+ "aria-live": "polite"
1648
+ }, Go = /* @__PURE__ */ T({
1649
+ __name: "paginator",
1650
+ props: /* @__PURE__ */ ue({
1651
+ totalItems: {},
1652
+ pageSize: {},
1653
+ labels: {}
1654
+ }, {
1655
+ modelValue: { required: !0 },
1656
+ modelModifiers: {}
1657
+ }),
1658
+ emits: /* @__PURE__ */ ue(["change"], ["update:modelValue"]),
1659
+ setup(e, { emit: n }) {
1660
+ const t = e, o = ye(e, "modelValue"), l = n, a = C(() => Math.max(1, Math.ceil((t.totalItems ?? 0) / t.pageSize))), s = C(() => Math.min(Math.max(1, o.value ?? 1), a.value)), u = C(() => s.value), c = C(() => s.value <= 1), r = C(() => s.value >= a.value), i = C(() => t.labels?.item ?? "Eintrag"), d = C(() => t.labels?.of ?? "von"), f = (w) => {
1661
+ const _ = Math.min(Math.max(1, Math.floor(w)), a.value);
1662
+ _ !== o.value && (o.value = _, l("change", _));
1663
+ }, m = () => f(1), p = () => f(s.value - 1), y = () => f(s.value + 1), V = () => f(a.value);
1664
+ return q([() => t.totalItems, () => t.pageSize], () => {
1665
+ o.value > a.value && f(a.value);
1666
+ }), (w, _) => {
1667
+ const h = W("VjButton");
1668
+ return v(), x("nav", {
1669
+ class: "paginator",
1670
+ "aria-label": "Pagination",
1671
+ onKeydown: _[0] || (_[0] = nn(de(() => {
1672
+ }, ["prevent"]), ["enter"]))
1673
+ }, [
1674
+ D(h, {
1675
+ tertiary: "",
1676
+ class: "paginator-btn",
1677
+ icon: E(N).FIRST,
1678
+ disabled: c.value,
1679
+ onClick: m,
1680
+ "aria-label": "First page"
1681
+ }, null, 8, ["icon", "disabled"]),
1682
+ D(h, {
1683
+ tertiary: "",
1684
+ class: "paginator-btn",
1685
+ icon: E(N).PREVIOUS,
1686
+ disabled: c.value,
1687
+ onClick: p,
1688
+ "aria-label": "Previous page"
1689
+ }, null, 8, ["icon", "disabled"]),
1690
+ B(w.$slots, "info", {
1691
+ current: s.value,
1692
+ totalPages: a.value,
1693
+ goTo: f
1694
+ }, () => [
1695
+ k("div", qo, I(i.value) + " " + I(u.value) + " " + I(d.value) + " " + I(a.value), 1)
1696
+ ], !0),
1697
+ D(h, {
1698
+ tertiary: "",
1699
+ class: "paginator-btn",
1700
+ icon: E(N).NEXT,
1701
+ disabled: r.value,
1702
+ onClick: y,
1703
+ "aria-label": "Next page"
1704
+ }, null, 8, ["icon", "disabled"]),
1705
+ D(h, {
1706
+ tertiary: "",
1707
+ class: "paginator-btn",
1708
+ icon: E(N).LAST,
1709
+ disabled: r.value,
1710
+ onClick: V,
1711
+ "aria-label": "Last page"
1712
+ }, null, 8, ["icon", "disabled"])
1713
+ ], 32);
1714
+ };
1715
+ }
1716
+ }), Yo = /* @__PURE__ */ M(Go, [["__scopeId", "data-v-b6fa8efe"]]), Jo = { class: "search-field" }, Qo = ["value", "placeholder"], Zo = /* @__PURE__ */ T({
1717
+ __name: "search-field",
1718
+ props: /* @__PURE__ */ ue({
1719
+ placeholder: { default: "Search..." }
1720
+ }, {
1721
+ modelValue: {},
1722
+ modelModifiers: {}
1723
+ }),
1724
+ emits: ["update:modelValue"],
1725
+ setup(e) {
1726
+ const n = ye(e, "modelValue"), t = (a) => {
1727
+ n.value = a.target.value;
1728
+ }, o = () => {
1729
+ n.value = "";
1730
+ }, l = C(() => !n.value);
1731
+ return (a, s) => {
1732
+ const u = W("VjIcon");
1733
+ return v(), x("div", Jo, [
1734
+ D(u, {
1735
+ icon: E(N).SEARCH,
1736
+ size: E(U).S
1737
+ }, null, 8, ["icon", "size"]),
1738
+ k("input", {
1739
+ value: n.value,
1740
+ onInput: t,
1741
+ type: "text",
1742
+ placeholder: e.placeholder
1743
+ }, null, 40, Qo),
1744
+ D(u, {
1745
+ class: H(["reset", { invisible: l.value }]),
1746
+ icon: E(N).CLOSE,
1747
+ size: E(U).S,
1748
+ onClick: o
1749
+ }, null, 8, ["class", "icon", "size"])
1750
+ ]);
1751
+ };
1752
+ }
1753
+ }), el = /* @__PURE__ */ M(Zo, [["__scopeId", "data-v-2771c8ed"]]), tl = /* @__PURE__ */ T({
1754
+ __name: "separator",
1755
+ props: {
1756
+ vertical: { type: Boolean }
1757
+ },
1758
+ setup(e) {
1759
+ return (n, t) => (v(), x("div", {
1760
+ class: H(["separator", { vertical: e.vertical }])
1761
+ }, null, 2));
1762
+ }
1763
+ }), nl = /* @__PURE__ */ M(tl, [["__scopeId", "data-v-e354bb4e"]]), ol = { class: "tab-view" }, ll = {
1764
+ ref: "headerRef",
1765
+ class: "tab-view-header"
1766
+ }, al = ["onClick"], sl = { class: "tab-view-content" }, il = /* @__PURE__ */ T({
1767
+ __name: "tab-view",
1768
+ props: {
1769
+ modelValue: {},
1770
+ modelModifiers: {}
1771
+ },
1772
+ emits: ["update:modelValue"],
1773
+ setup(e) {
1774
+ const n = ye(e, "modelValue"), t = R([]), o = R([]), l = R({
1775
+ width: "0px",
1776
+ transform: "translateX(0px)"
1777
+ }), a = (r, i) => {
1778
+ r && (o.value[i] = r);
1779
+ }, s = () => {
1780
+ const r = t.value.findIndex((i) => i.name === n.value);
1781
+ if (r >= 0 && o.value[r]) {
1782
+ const i = o.value[r], d = i.offsetWidth, f = i.offsetLeft;
1783
+ l.value = {
1784
+ width: `${d}px`,
1785
+ transform: `translateX(${f}px)`
1786
+ };
1787
+ }
1788
+ }, u = (r, i) => {
1789
+ t.value.find((d) => d.name === r) || (t.value.push({ name: r, label: i }), he(() => {
1790
+ !n.value && t.value.length === 1 && (n.value = r), s();
1791
+ }));
1792
+ }, c = (r) => {
1793
+ n.value = r;
1794
+ };
1795
+ return q(n, () => {
1796
+ he(() => {
1797
+ s();
1798
+ });
1799
+ }), on("tabView", {
1800
+ activeTab: () => n.value,
1801
+ registerTab: u
1802
+ }), (r, i) => (v(), x("div", ol, [
1803
+ k("div", ll, [
1804
+ (v(!0), x(ge, null, We(t.value, (d, f) => (v(), x("div", {
1805
+ key: d.name,
1806
+ ref_for: !0,
1807
+ ref: (m) => a(m, f),
1808
+ class: H(["tab-button", { active: n.value === d.name }]),
1809
+ onClick: (m) => c(d.name)
1810
+ }, I(d.label), 11, al))), 128)),
1811
+ i[0] || (i[0] = k("div", { class: "tab-line" }, null, -1)),
1812
+ k("div", {
1813
+ class: "tab-indicator",
1814
+ style: Z(l.value)
1815
+ }, null, 4)
1816
+ ], 512),
1817
+ k("div", sl, [
1818
+ B(r.$slots, "default", {}, void 0, !0)
1819
+ ])
1820
+ ]));
1821
+ }
1822
+ }), rl = /* @__PURE__ */ M(il, [["__scopeId", "data-v-3d4ee454"]]), cl = {
1823
+ key: 0,
1824
+ class: "tab"
1825
+ }, ul = /* @__PURE__ */ T({
1826
+ __name: "tab",
1827
+ props: {
1828
+ name: {},
1829
+ label: {}
1830
+ },
1831
+ setup(e) {
1832
+ const n = e, t = kt("tabView"), o = C(() => t?.activeTab() === n.name);
1833
+ return Le(() => {
1834
+ t?.registerTab(n.name, n.label);
1835
+ }), (l, a) => o.value ? (v(), x("div", cl, [
1836
+ B(l.$slots, "default")
1837
+ ])) : L("", !0);
1838
+ }
1839
+ }), dl = ["data-colspan", "data-newline"], fl = { class: "form-field__wrapper" }, ml = ["for"], vl = {
1840
+ key: 0,
1841
+ class: "form-field__error"
1842
+ }, pl = /* @__PURE__ */ T({
1843
+ __name: "form-field",
1844
+ props: {
1845
+ modelValue: {},
1846
+ label: {},
1847
+ id: {},
1848
+ placeholder: {},
1849
+ disabled: { type: Boolean },
1850
+ colspan: {},
1851
+ newLine: { type: Boolean },
1852
+ spanRow: { type: Boolean },
1853
+ error: {}
1854
+ },
1855
+ emits: ["update:modelValue", "focus", "blur"],
1856
+ setup(e, { emit: n }) {
1857
+ const t = e, o = n, l = R(t.modelValue), a = R(!1), s = C(() => `form-field-${t.id ?? Math.random().toString(36).slice(2)}`);
1858
+ q(
1859
+ () => t.modelValue,
1860
+ (f) => l.value = f
1861
+ );
1862
+ const u = C(() => a.value || !!l.value || !!t.placeholder), c = C(() => u.value ? t.placeholder : "");
1863
+ function r(f) {
1864
+ const p = f.target.value;
1865
+ l.value = p, o("update:modelValue", p);
1866
+ }
1867
+ function i(f) {
1868
+ a.value = !0, o("focus", f);
1869
+ }
1870
+ function d(f) {
1871
+ a.value = !1, o("blur", f);
1872
+ }
1873
+ return (f, m) => (v(), x("div", {
1874
+ class: H(["form-field", { disabled: e.disabled }, { labelless: !e.label }, { error: !!e.error }]),
1875
+ "data-colspan": t.spanRow ? void 0 : t.colspan,
1876
+ "data-newline": t.spanRow || t.newLine ? "true" : void 0,
1877
+ style: Z(t.spanRow ? { gridColumn: "1 / -1" } : void 0)
1878
+ }, [
1879
+ k("div", fl, [
1880
+ B(f.$slots, "control", {
1881
+ id: s.value,
1882
+ value: l.value,
1883
+ onInput: r,
1884
+ onFocus: i,
1885
+ onBlur: d,
1886
+ disabled: e.disabled,
1887
+ placeholder: c.value
1888
+ }, void 0, !0),
1889
+ e.label ? (v(), x("label", {
1890
+ key: 0,
1891
+ for: s.value,
1892
+ class: H(["form-field__label", { "form-field__label--float": u.value }])
1893
+ }, I(e.label), 11, ml)) : L("", !0)
1894
+ ]),
1895
+ e.error ? (v(), x("div", vl, I(e.error), 1)) : L("", !0)
1896
+ ], 14, dl));
1897
+ }
1898
+ }), Pe = /* @__PURE__ */ M(pl, [["__scopeId", "data-v-b37aee00"]]), hl = /* @__PURE__ */ T({
1899
+ __name: "form-layout",
1900
+ props: {
1901
+ columns: { type: Number, default: 4 },
1902
+ gap: { type: String, default: "0.75rem" }
1903
+ },
1904
+ setup(e) {
1905
+ const n = e, t = R(null);
1906
+ let o = null;
1907
+ function l() {
1908
+ if (!t.value) return;
1909
+ Array.from(t.value.children).forEach((s) => {
1910
+ const u = s.getAttribute("data-colspan"), c = u ? Math.max(1, Number(u) || 1) : 1, r = s.getAttribute("data-newline");
1911
+ r !== null && r !== "false" ? s.style.gridColumn = "1 / -1" : s.style.gridColumn = `span ${c}`;
1912
+ });
1913
+ }
1914
+ return Le(() => {
1915
+ he(() => {
1916
+ l(), t.value && (o = new MutationObserver(() => l()), o.observe(t.value, { childList: !0, subtree: !1, attributes: !0, attributeFilter: ["data-colspan", "data-newline"] }));
1917
+ });
1918
+ }), Ae(() => {
1919
+ o?.disconnect();
1920
+ }), q(
1921
+ () => n.columns,
1922
+ () => he(l)
1923
+ ), q(
1924
+ () => n.gap,
1925
+ () => he(l)
1926
+ ), (a, s) => (v(), x("div", {
1927
+ ref_key: "container",
1928
+ ref: t,
1929
+ class: "form-layout",
1930
+ style: Z({ gridTemplateColumns: `repeat(${e.columns}, minmax(0, 1fr))`, gap: e.gap })
1931
+ }, [
1932
+ B(a.$slots, "default", {}, void 0, !0)
1933
+ ], 4));
1934
+ }
1935
+ }), gl = /* @__PURE__ */ M(hl, [["__scopeId", "data-v-96f62ab7"]]), bl = {
1936
+ key: 0,
1937
+ class: "form-section__title",
1938
+ "data-newline": ""
1939
+ }, yl = /* @__PURE__ */ T({
1940
+ __name: "form-section",
1941
+ props: {
1942
+ title: {}
1943
+ },
1944
+ setup(e) {
1945
+ return (n, t) => (v(), x(ge, null, [
1946
+ e.title ? (v(), x("h3", bl, I(e.title), 1)) : L("", !0),
1947
+ B(n.$slots, "default", {}, void 0, !0)
1948
+ ], 64));
1949
+ }
1950
+ }), wl = /* @__PURE__ */ M(yl, [["__scopeId", "data-v-69cff1d0"]]), xl = ["id", "disabled"], _l = { class: "select-value" }, Vl = {
1951
+ key: 1,
1952
+ class: "select-placeholder"
1953
+ }, kl = { class: "select-options" }, Cl = ["onClick", "onMouseenter"], Rl = /* @__PURE__ */ T({
1954
+ inheritAttrs: !1,
1955
+ __name: "select",
1956
+ props: /* @__PURE__ */ ue({
1957
+ options: {},
1958
+ placeholder: {},
1959
+ disabled: { type: Boolean },
1960
+ optionLabel: { type: Function },
1961
+ id: {},
1962
+ optionValue: { type: Function },
1963
+ icon: {},
1964
+ clearable: { type: Boolean }
1965
+ }, {
1966
+ modelValue: {},
1967
+ modelModifiers: {}
1968
+ }),
1969
+ emits: ["update:modelValue"],
1970
+ setup(e, { expose: n }) {
1971
+ const t = e, o = ye(e, "modelValue"), l = R(!1), a = R(-1), s = R(null), u = R(null), c = R(null), { floatingStyles: r } = Nt(u, c, {
1972
+ placement: "bottom-start",
1973
+ middleware: [
1974
+ jt(4),
1975
+ zt(),
1976
+ It({ padding: 8 }),
1977
+ Co({
1978
+ apply({ rects: h, elements: O }) {
1979
+ Object.assign(O.floating.style, {
1980
+ minWidth: `${h.reference.width}px`
1981
+ });
1982
+ }
1983
+ })
1984
+ ],
1985
+ whileElementsMounted: Dt
1986
+ }), i = (h) => t.optionLabel ? typeof t.optionLabel == "function" ? t.optionLabel(h) : String(h[t.optionLabel]) : String(h), d = (h) => t.optionValue ? typeof t.optionValue == "function" ? t.optionValue(h) : h[t.optionValue] : h, f = C(() => t.options.find((h) => d(h) === o.value)), m = (h) => d(h) === o.value, p = () => {
1987
+ t.disabled || (l.value = !l.value);
1988
+ }, y = () => {
1989
+ l.value = !1, a.value = -1;
1990
+ }, V = (h) => {
1991
+ o.value = d(h), y();
1992
+ }, w = () => {
1993
+ o.value = void 0;
1994
+ }, _ = (h) => {
1995
+ l.value && s.value && !s.value.contains(h.target) && y();
1996
+ };
1997
+ return Le(() => {
1998
+ document.addEventListener("click", _);
1999
+ }), Ae(() => {
2000
+ document.removeEventListener("click", _);
2001
+ }), q(l, (h) => {
2002
+ h && f.value && (a.value = t.options.findIndex((O) => m(O)));
2003
+ }), n({
2004
+ focus: () => u.value?.focus(),
2005
+ blur: () => u.value?.blur()
2006
+ }), (h, O) => {
2007
+ const A = W("VjIcon");
2008
+ return v(), x(ge, null, [
2009
+ k("div", {
2010
+ ref_key: "selectRef",
2011
+ ref: s,
2012
+ class: H(["select", h.$attrs.class])
2013
+ }, [
2014
+ k("button", {
2015
+ ref_key: "buttonRef",
2016
+ ref: u,
2017
+ type: "button",
2018
+ class: "select-trigger",
2019
+ id: t.id,
2020
+ onClick: p,
2021
+ disabled: e.disabled
2022
+ }, [
2023
+ t.icon ? (v(), P(A, {
2024
+ key: 0,
2025
+ icon: t.icon,
2026
+ size: E(U).S,
2027
+ class: "select-icon-left"
2028
+ }, null, 8, ["icon", "size"])) : L("", !0),
2029
+ k("span", _l, [
2030
+ f.value ? B(h.$slots, "selected", {
2031
+ key: 0,
2032
+ option: f.value
2033
+ }, () => [
2034
+ je(I(i(f.value)), 1)
2035
+ ], !0) : (v(), x("span", Vl, I(e.placeholder), 1))
2036
+ ]),
2037
+ t.clearable && f.value && !e.disabled ? (v(), P(A, {
2038
+ key: 1,
2039
+ icon: E(N).CLOSE,
2040
+ size: E(U).S,
2041
+ class: "select-clear-icon",
2042
+ onClick: de(w, ["stop"])
2043
+ }, null, 8, ["icon", "size"])) : L("", !0),
2044
+ D(A, {
2045
+ icon: E(N).CHEVRON_DOWN,
2046
+ size: E(U).S,
2047
+ class: H(["select-icon-right", { open: l.value }])
2048
+ }, null, 8, ["icon", "size", "class"])
2049
+ ], 8, xl),
2050
+ D(Ie, { name: "dropdown" }, {
2051
+ default: K(() => [
2052
+ l.value ? (v(), x("div", {
2053
+ key: 0,
2054
+ ref_key: "floatingRef",
2055
+ ref: c,
2056
+ style: Z(E(r)),
2057
+ class: "select-dropdown"
2058
+ }, [
2059
+ k("div", kl, [
2060
+ (v(!0), x(ge, null, We(e.options, (F, g) => (v(), x("div", {
2061
+ key: String(d(F)),
2062
+ class: H(["select-option", { selected: m(F), highlighted: a.value === g }]),
2063
+ onClick: (b) => V(F),
2064
+ onMouseenter: (b) => a.value = g
2065
+ }, [
2066
+ B(h.$slots, "option", {
2067
+ option: F,
2068
+ selected: m(F)
2069
+ }, () => [
2070
+ je(I(i(F)), 1)
2071
+ ], !0)
2072
+ ], 42, Cl))), 128))
2073
+ ])
2074
+ ], 4)) : L("", !0)
2075
+ ]),
2076
+ _: 3
2077
+ })
2078
+ ], 2),
2079
+ (v(), P(Ze, { to: "body" }, [
2080
+ l.value ? (v(), x("div", {
2081
+ key: 0,
2082
+ class: "select-backdrop",
2083
+ onClick: y
2084
+ })) : L("", !0)
2085
+ ]))
2086
+ ], 64);
2087
+ };
2088
+ }
2089
+ }), Wt = /* @__PURE__ */ M(Rl, [["__scopeId", "data-v-fc22f0e9"]]), El = /* @__PURE__ */ T({
2090
+ __name: "input-select",
2091
+ props: {
2092
+ modelValue: {},
2093
+ label: {},
2094
+ id: {},
2095
+ placeholder: {},
2096
+ disabled: { type: Boolean },
2097
+ colspan: {},
2098
+ newLine: { type: Boolean },
2099
+ spanRow: { type: Boolean },
2100
+ error: {},
2101
+ options: {}
2102
+ },
2103
+ emits: ["update:modelValue", "input", "focus", "blur"],
2104
+ setup(e, { emit: n }) {
2105
+ const t = e, o = n, l = R(t.modelValue), a = (s) => {
2106
+ l.value = s, o("update:modelValue", s);
2107
+ };
2108
+ return (s, u) => (v(), P(Pe, {
2109
+ modelValue: l.value,
2110
+ "onUpdate:modelValue": a,
2111
+ label: t.label,
2112
+ id: t.id,
2113
+ placeholder: t.placeholder,
2114
+ disabled: t.disabled,
2115
+ colspan: t.colspan,
2116
+ newLine: t.newLine,
2117
+ spanRow: t.spanRow,
2118
+ error: t.error
2119
+ }, {
2120
+ control: K(({ id: c, disabled: r, placeholder: i }) => [
2121
+ D(Wt, {
2122
+ id: c,
2123
+ modelValue: l.value,
2124
+ "onUpdate:modelValue": [
2125
+ u[0] || (u[0] = (d) => l.value = d),
2126
+ a
2127
+ ],
2128
+ options: t.options,
2129
+ placeholder: i,
2130
+ disabled: r,
2131
+ "option-label": (d) => d.label,
2132
+ "option-value": (d) => d.value,
2133
+ clearable: ""
2134
+ }, null, 8, ["id", "modelValue", "options", "placeholder", "disabled", "option-label", "option-value"])
2135
+ ]),
2136
+ _: 1
2137
+ }, 8, ["modelValue", "label", "id", "placeholder", "disabled", "colspan", "newLine", "spanRow", "error"]));
2138
+ }
2139
+ }), Sl = { class: "textarea" }, $l = ["value", "placeholder", "disabled", "rows"], Ll = /* @__PURE__ */ T({
2140
+ __name: "textarea",
2141
+ props: /* @__PURE__ */ ue({
2142
+ icon: {},
2143
+ placeholder: {},
2144
+ disabled: { type: Boolean },
2145
+ clearable: { type: Boolean },
2146
+ rows: {}
2147
+ }, {
2148
+ modelValue: {},
2149
+ modelModifiers: {}
2150
+ }),
2151
+ emits: /* @__PURE__ */ ue(["focus", "blur"], ["update:modelValue"]),
2152
+ setup(e, { emit: n }) {
2153
+ const t = n, o = ye(e, "modelValue"), l = (r) => {
2154
+ o.value = r.target.value;
2155
+ }, a = () => {
2156
+ o.value = "";
2157
+ }, s = (r) => {
2158
+ t("focus", r);
2159
+ }, u = (r) => {
2160
+ t("blur", r);
2161
+ }, c = C(() => !o.value);
2162
+ return (r, i) => {
2163
+ const d = W("VjIcon");
2164
+ return v(), x("div", Sl, [
2165
+ e.icon ? (v(), P(d, {
2166
+ key: 0,
2167
+ icon: e.icon,
2168
+ size: E(U).S,
2169
+ class: "textarea-icon"
2170
+ }, null, 8, ["icon", "size"])) : L("", !0),
2171
+ k("textarea", {
2172
+ value: o.value,
2173
+ onInput: l,
2174
+ onFocus: s,
2175
+ onBlur: u,
2176
+ placeholder: e.placeholder,
2177
+ disabled: e.disabled,
2178
+ rows: e.rows
2179
+ }, null, 40, $l),
2180
+ e.clearable && !e.disabled ? (v(), P(d, {
2181
+ key: 1,
2182
+ class: H(["clear-icon", { invisible: c.value }]),
2183
+ icon: E(N).CLOSE,
2184
+ size: E(U).S,
2185
+ onClick: a
2186
+ }, null, 8, ["class", "icon", "size"])) : L("", !0)
2187
+ ]);
2188
+ };
2189
+ }
2190
+ }), Ut = /* @__PURE__ */ M(Ll, [["__scopeId", "data-v-2ea43716"]]), Al = /* @__PURE__ */ T({
2191
+ __name: "input-text-area",
2192
+ props: {
2193
+ modelValue: {},
2194
+ label: {},
2195
+ id: {},
2196
+ placeholder: {},
2197
+ disabled: { type: Boolean },
2198
+ colspan: {},
2199
+ newLine: { type: Boolean },
2200
+ spanRow: { type: Boolean },
2201
+ error: {},
2202
+ rows: {}
2203
+ },
2204
+ emits: ["update:modelValue", "input", "focus", "blur"],
2205
+ setup(e, { emit: n }) {
2206
+ const t = e, o = n, l = (i) => o("update:modelValue", i), a = (i) => o("input", i), s = (i) => o("focus", i), u = (i) => o("blur", i), c = (i) => {
2207
+ l(i ?? "");
2208
+ }, r = C(() => {
2209
+ const i = t.modelValue;
2210
+ return i == null ? "" : String(i);
2211
+ });
2212
+ return (i, d) => (v(), P(Pe, {
2213
+ modelValue: t.modelValue,
2214
+ "onUpdate:modelValue": l,
2215
+ onInput: a,
2216
+ onFocus: s,
2217
+ onBlur: u,
2218
+ label: t.label,
2219
+ id: t.id,
2220
+ placeholder: t.placeholder,
2221
+ disabled: t.disabled,
2222
+ colspan: t.colspan,
2223
+ newLine: t.newLine,
2224
+ spanRow: t.spanRow,
2225
+ error: t.error
2226
+ }, {
2227
+ control: K(({ id: f, disabled: m, placeholder: p, onFocus: y, onBlur: V }) => [
2228
+ D(Ut, {
2229
+ id: f,
2230
+ modelValue: r.value,
2231
+ "onUpdate:modelValue": c,
2232
+ onFocus: (w) => {
2233
+ y(w), s(w);
2234
+ },
2235
+ onBlur: (w) => {
2236
+ V(w), u(w);
2237
+ },
2238
+ placeholder: p,
2239
+ disabled: m,
2240
+ rows: t.rows,
2241
+ clearable: ""
2242
+ }, null, 8, ["id", "modelValue", "onFocus", "onBlur", "placeholder", "disabled", "rows"])
2243
+ ]),
2244
+ _: 1
2245
+ }, 8, ["modelValue", "label", "id", "placeholder", "disabled", "colspan", "newLine", "spanRow", "error"]));
2246
+ }
2247
+ }), Ol = { class: "input" }, Tl = ["value", "type", "placeholder", "disabled"], Bl = /* @__PURE__ */ T({
2248
+ __name: "input",
2249
+ props: /* @__PURE__ */ ue({
2250
+ icon: {},
2251
+ type: {},
2252
+ placeholder: {},
2253
+ disabled: { type: Boolean },
2254
+ clearable: { type: Boolean }
2255
+ }, {
2256
+ modelValue: {},
2257
+ modelModifiers: {}
2258
+ }),
2259
+ emits: /* @__PURE__ */ ue(["focus", "blur"], ["update:modelValue"]),
2260
+ setup(e, { emit: n }) {
2261
+ const t = n, o = ye(e, "modelValue"), l = (r) => {
2262
+ o.value = r.target.value;
2263
+ }, a = () => {
2264
+ o.value = "";
2265
+ }, s = (r) => {
2266
+ t("focus", r);
2267
+ }, u = (r) => {
2268
+ t("blur", r);
2269
+ }, c = C(() => !o.value);
2270
+ return (r, i) => {
2271
+ const d = W("VjIcon");
2272
+ return v(), x("div", Ol, [
2273
+ e.icon ? (v(), P(d, {
2274
+ key: 0,
2275
+ icon: e.icon,
2276
+ size: E(U).S
2277
+ }, null, 8, ["icon", "size"])) : L("", !0),
2278
+ k("input", {
2279
+ value: o.value,
2280
+ onInput: l,
2281
+ onFocus: s,
2282
+ onBlur: u,
2283
+ type: e.type,
2284
+ placeholder: e.placeholder,
2285
+ disabled: e.disabled
2286
+ }, null, 40, Tl),
2287
+ e.clearable && !e.disabled ? (v(), P(d, {
2288
+ key: 1,
2289
+ class: H(["clear-icon", { invisible: c.value }]),
2290
+ icon: E(N).CLOSE,
2291
+ size: E(U).S,
2292
+ onClick: a
2293
+ }, null, 8, ["class", "icon", "size"])) : L("", !0)
2294
+ ]);
2295
+ };
2296
+ }
2297
+ }), Xt = /* @__PURE__ */ M(Bl, [["__scopeId", "data-v-be574bc7"]]), Ml = /* @__PURE__ */ T({
2298
+ __name: "input-text",
2299
+ props: {
2300
+ modelValue: {},
2301
+ label: {},
2302
+ id: {},
2303
+ placeholder: {},
2304
+ disabled: { type: Boolean },
2305
+ colspan: {},
2306
+ newLine: { type: Boolean },
2307
+ spanRow: { type: Boolean },
2308
+ error: {}
2309
+ },
2310
+ emits: ["update:modelValue", "input", "focus", "blur"],
2311
+ setup(e, { emit: n }) {
2312
+ const t = n, o = (c) => t("update:modelValue", c), l = (c) => t("input", c), a = (c) => t("focus", c), s = (c) => t("blur", c), u = (c) => {
2313
+ o(c ?? "");
2314
+ };
2315
+ return (c, r) => (v(), P(Pe, {
2316
+ modelValue: e.modelValue,
2317
+ "onUpdate:modelValue": o,
2318
+ onInput: l,
2319
+ onFocus: a,
2320
+ onBlur: s,
2321
+ label: e.label,
2322
+ id: e.id,
2323
+ placeholder: e.placeholder,
2324
+ disabled: e.disabled,
2325
+ colspan: e.colspan,
2326
+ newLine: e.newLine,
2327
+ spanRow: e.spanRow,
2328
+ error: e.error
2329
+ }, {
2330
+ control: K(({ id: i, disabled: d, placeholder: f, onFocus: m, onBlur: p }) => [
2331
+ D(Xt, {
2332
+ id: i,
2333
+ modelValue: e.modelValue,
2334
+ "onUpdate:modelValue": u,
2335
+ onFocus: (y) => {
2336
+ m(y), a(y);
2337
+ },
2338
+ onBlur: (y) => {
2339
+ p(y), s(y);
2340
+ },
2341
+ placeholder: f,
2342
+ disabled: d,
2343
+ clearable: ""
2344
+ }, null, 8, ["id", "modelValue", "onFocus", "onBlur", "placeholder", "disabled"])
2345
+ ]),
2346
+ _: 1
2347
+ }, 8, ["modelValue", "label", "id", "placeholder", "disabled", "colspan", "newLine", "spanRow", "error"]));
2348
+ }
2349
+ }), Pl = { class: "shell-navigation-item" }, Fl = { class: "shell-navigation-item-label" }, Dl = /* @__PURE__ */ T({
2350
+ __name: "shell-navigation-item",
2351
+ props: {
2352
+ label: {},
2353
+ icon: {},
2354
+ to: {}
2355
+ },
2356
+ setup(e) {
2357
+ return (n, t) => {
2358
+ const o = W("VjIcon"), l = W("RouterLink");
2359
+ return v(), x("li", Pl, [
2360
+ D(l, {
2361
+ to: e.to,
2362
+ class: "shell-navigation-item-link"
2363
+ }, {
2364
+ default: K(() => [
2365
+ D(o, {
2366
+ icon: e.icon,
2367
+ class: "shell-navigation-item-icon"
2368
+ }, null, 8, ["icon"]),
2369
+ k("label", Fl, I(e.label), 1)
2370
+ ]),
2371
+ _: 1
2372
+ }, 8, ["to"])
2373
+ ]);
2374
+ };
2375
+ }
2376
+ }), jl = /* @__PURE__ */ M(Dl, [["__scopeId", "data-v-d5c087be"]]), Il = { class: "navigation-top" }, zl = { class: "navigation-bottom" }, Hl = /* @__PURE__ */ T({
2377
+ __name: "shell-navigation",
2378
+ setup(e) {
2379
+ const n = kt(la, sa());
2380
+ console.log("navigationProvider", n);
2381
+ const t = C(() => n.showLabels);
2382
+ return (o, l) => {
2383
+ const a = W("VjShellNavigationItem");
2384
+ return v(), x("nav", {
2385
+ class: H(["shell-navigation", { "with-labels": t.value }])
2386
+ }, [
2387
+ k("ul", Il, [
2388
+ E(n).hasParent && E(n).backRoute.value ? (v(), P(a, {
2389
+ key: 0,
2390
+ to: E(n).backRoute.value,
2391
+ label: "BACK",
2392
+ icon: E(N).HOME
2393
+ }, null, 8, ["to", "icon"])) : L("", !0),
2394
+ (v(!0), x(ge, null, We(E(n).childRoutes.value, (s) => (v(), P(a, {
2395
+ key: s.name,
2396
+ to: { name: s.name },
2397
+ label: s.meta.label,
2398
+ icon: s.meta.icon ?? E(N).HOME
2399
+ }, null, 8, ["to", "label", "icon"]))), 128))
2400
+ ]),
2401
+ k("ul", zl, [
2402
+ B(o.$slots, "fixed", {}, void 0, !0)
2403
+ ])
2404
+ ], 2);
2405
+ };
2406
+ }
2407
+ }), Kt = /* @__PURE__ */ M(Hl, [["__scopeId", "data-v-0f990f5b"]]), Nl = { class: "shell" }, Wl = { class: "shell-title" }, Ul = ["src"], Xl = { class: "header-actions" }, Kl = /* @__PURE__ */ T({
2408
+ __name: "shell",
2409
+ props: {
2410
+ title: {},
2411
+ icon: {},
2412
+ showNavigation: { type: Boolean }
2413
+ },
2414
+ setup(e) {
2415
+ const n = da(), t = Ge(n, "asideComponent"), o = Ge(n, "hasAside"), l = Ge(n, "asideData"), a = C(() => {
2416
+ const s = l.value;
2417
+ return s && typeof s == "object" ? s : {};
2418
+ });
2419
+ return (s, u) => {
2420
+ const c = W("router-view");
2421
+ return v(), x("div", Nl, [
2422
+ k("header", null, [
2423
+ k("span", Wl, [
2424
+ e.icon ? (v(), x("img", {
2425
+ key: 0,
2426
+ src: e.icon,
2427
+ alt: "Shell Icon"
2428
+ }, null, 8, Ul)) : L("", !0),
2429
+ k("h1", null, I(e.title), 1)
2430
+ ]),
2431
+ k("div", Xl, [
2432
+ B(s.$slots, "header-actions", {}, void 0, !0)
2433
+ ])
2434
+ ]),
2435
+ k("div", {
2436
+ class: H(["shell-content", { "with-navigation": e.showNavigation }])
2437
+ }, [
2438
+ e.showNavigation ? (v(), P(E(Kt), { key: 0 })) : L("", !0),
2439
+ k("main", null, [
2440
+ B(s.$slots, "default", {}, () => [
2441
+ D(c)
2442
+ ], !0)
2443
+ ]),
2444
+ k("aside", {
2445
+ class: H({ "aside-visible": o.value })
2446
+ }, [
2447
+ (v(), P(Vt(t.value), ln(an(a.value)), null, 16))
2448
+ ], 2)
2449
+ ], 2),
2450
+ u[0] || (u[0] = k("footer", null, null, -1))
2451
+ ]);
2452
+ };
2453
+ }
2454
+ }), ql = /* @__PURE__ */ M(Kl, [["__scopeId", "data-v-336560c3"]]), Gl = ["aria-valuemin", "aria-valuemax", "aria-valuenow", "aria-label"], Yl = ["aria-valuemin", "aria-valuemax", "aria-valuenow"], Jl = /* @__PURE__ */ T({
2455
+ __name: "slider",
2456
+ props: {
2457
+ modelValue: { default: void 0 },
2458
+ min: { default: 0 },
2459
+ max: { default: 100 },
2460
+ step: { default: 1 },
2461
+ range: { type: Boolean, default: !1 }
2462
+ },
2463
+ emits: ["update:modelValue", "change"],
2464
+ setup(e, { emit: n }) {
2465
+ const t = e, o = n, l = R(null), a = R(!1), s = R(!1), u = (g, b, $) => Math.min(Math.max(g, b), $), c = R(
2466
+ t.range ? Array.isArray(t.modelValue) ? t.modelValue[0] : t.min : typeof t.modelValue == "number" ? t.modelValue : t.min
2467
+ ), r = R(t.range && Array.isArray(t.modelValue) ? t.modelValue[1] : t.max);
2468
+ q(
2469
+ () => t.modelValue,
2470
+ (g) => {
2471
+ t.range ? Array.isArray(g) && (c.value = u(g[0], t.min, t.max), r.value = u(g[1], t.min, t.max)) : typeof g == "number" && (c.value = u(g, t.min, t.max));
2472
+ },
2473
+ { immediate: !0 }
2474
+ );
2475
+ const i = (g) => (g - t.min) / (t.max - t.min) * 100, d = C(() => ({ left: `${i(c.value)}%` })), f = C(() => ({ left: `${i(r.value)}%` })), m = C(() => {
2476
+ if (!t.range) return { width: `${i(c.value)}%`, left: "0%" };
2477
+ const g = i(c.value), b = i(r.value);
2478
+ return { left: `${g}%`, width: `${Math.max(0, b - g)}%` };
2479
+ });
2480
+ let p = null, y = null;
2481
+ const V = async (g, b) => {
2482
+ p = g, y = b.pointerId, g === "low" ? a.value = !0 : s.value = !0;
2483
+ try {
2484
+ b.target.setPointerCapture(b.pointerId);
2485
+ } catch {
2486
+ }
2487
+ window.addEventListener("pointermove", _), window.addEventListener("pointerup", w);
2488
+ }, w = (g) => {
2489
+ if (y != null && g)
2490
+ try {
2491
+ g.target.releasePointerCapture(g.pointerId);
2492
+ } catch {
2493
+ }
2494
+ p = null, y = null, a.value = !1, s.value = !1, window.removeEventListener("pointermove", _), window.removeEventListener("pointerup", w), A();
2495
+ }, _ = (g) => {
2496
+ if (!p || !l.value) return;
2497
+ const b = l.value.getBoundingClientRect(), $ = u(g.clientX - b.left, 0, b.width), j = t.min + $ / b.width * (t.max - t.min), z = Math.round(j / t.step) * t.step;
2498
+ p === "low" ? t.range ? c.value = Math.min(z, r.value) : c.value = u(z, t.min, t.max) : p === "high" && (r.value = Math.max(z, c.value));
2499
+ }, h = (g) => {
2500
+ if (!l.value) return;
2501
+ const b = l.value.getBoundingClientRect(), $ = u(g.clientX - b.left, 0, b.width), j = t.min + $ / b.width * (t.max - t.min), z = Math.round(j / t.step) * t.step;
2502
+ if (t.range) {
2503
+ const se = Math.abs(z - c.value), ie = Math.abs(z - r.value);
2504
+ se <= ie ? c.value = Math.min(z, r.value) : r.value = Math.max(z, c.value);
2505
+ } else
2506
+ c.value = u(z, t.min, t.max);
2507
+ A();
2508
+ }, O = (g, b) => {
2509
+ const $ = t.step, j = b.key === "ArrowLeft" || b.key === "ArrowDown" ? -1 : b.key === "ArrowRight" || b.key === "ArrowUp" ? 1 : 0;
2510
+ if (j) {
2511
+ if (g === "low") {
2512
+ const z = u(c.value + j * $, t.min, t.range ? r.value : t.max);
2513
+ c.value = z, a.value = !0, setTimeout(() => a.value = !1, 800);
2514
+ } else {
2515
+ const z = u(r.value + j * $, t.range ? c.value : t.max, t.max);
2516
+ r.value = z, s.value = !0, setTimeout(() => s.value = !1, 800);
2517
+ }
2518
+ A();
2519
+ }
2520
+ }, A = () => {
2521
+ t.range ? (o("update:modelValue", [c.value, r.value]), o("change", [c.value, r.value])) : (o("update:modelValue", c.value), o("change", c.value));
2522
+ };
2523
+ Ae(() => {
2524
+ window.removeEventListener("pointermove", _), window.removeEventListener("pointerup", w);
2525
+ }), q([() => t.min, () => t.max], () => {
2526
+ c.value = u(c.value, t.min, t.max), r.value = u(r.value, t.min, t.max);
2527
+ });
2528
+ const F = C(() => t.range);
2529
+ return he(() => {
2530
+ t.modelValue === void 0 && (t.range ? o("update:modelValue", [c.value, r.value]) : o("update:modelValue", c.value));
2531
+ }), (g, b) => (v(), x("div", {
2532
+ class: "vj-slider",
2533
+ onPointerdown: b[8] || (b[8] = de(() => {
2534
+ }, ["stop"]))
2535
+ }, [
2536
+ k("div", {
2537
+ class: "track",
2538
+ ref_key: "track",
2539
+ ref: l,
2540
+ onClick: h
2541
+ }, [
2542
+ k("div", {
2543
+ class: "range",
2544
+ style: Z(m.value)
2545
+ }, null, 4),
2546
+ a.value ? (v(), x("div", {
2547
+ key: 0,
2548
+ class: "tooltip",
2549
+ style: Z({ left: d.value.left })
2550
+ }, I(c.value), 5)) : L("", !0),
2551
+ k("button", {
2552
+ class: "handle low",
2553
+ style: Z(d.value),
2554
+ "aria-valuemin": e.min,
2555
+ "aria-valuemax": e.max,
2556
+ "aria-valuenow": c.value,
2557
+ "aria-label": F.value ? "Lower value" : "Value",
2558
+ onPointerdown: b[0] || (b[0] = de(($) => V("low", $), ["prevent"])),
2559
+ onFocus: b[1] || (b[1] = ($) => a.value = !0),
2560
+ onBlur: b[2] || (b[2] = ($) => a.value = !1),
2561
+ onKeydown: b[3] || (b[3] = de(($) => O("low", $), ["stop", "prevent"])),
2562
+ role: "slider",
2563
+ tabindex: "0"
2564
+ }, null, 44, Gl),
2565
+ F.value && s.value ? (v(), x("div", {
2566
+ key: 1,
2567
+ class: "tooltip",
2568
+ style: Z({ left: f.value.left })
2569
+ }, I(r.value), 5)) : L("", !0),
2570
+ F.value ? (v(), x("button", {
2571
+ key: 2,
2572
+ class: "handle high",
2573
+ style: Z(f.value),
2574
+ "aria-valuemin": e.min,
2575
+ "aria-valuemax": e.max,
2576
+ "aria-valuenow": r.value,
2577
+ "aria-label": "Upper value",
2578
+ onPointerdown: b[4] || (b[4] = de(($) => V("high", $), ["prevent"])),
2579
+ onFocus: b[5] || (b[5] = ($) => s.value = !0),
2580
+ onBlur: b[6] || (b[6] = ($) => s.value = !1),
2581
+ onKeydown: b[7] || (b[7] = de(($) => O("high", $), ["stop", "prevent"])),
2582
+ role: "slider",
2583
+ tabindex: "0"
2584
+ }, null, 44, Yl)) : L("", !0)
2585
+ ], 512)
2586
+ ], 32));
2587
+ }
2588
+ }), Ql = /* @__PURE__ */ M(Jl, [["__scopeId", "data-v-d47c7475"]]), Zl = ["onFocusin", "onFocusout"], ea = /* @__PURE__ */ T({
2589
+ __name: "input-slider",
2590
+ props: {
2591
+ modelValue: {},
2592
+ label: {},
2593
+ id: {},
2594
+ placeholder: {},
2595
+ disabled: { type: Boolean },
2596
+ colspan: {},
2597
+ newLine: { type: Boolean },
2598
+ spanRow: { type: Boolean },
2599
+ error: {},
2600
+ min: {},
2601
+ max: {},
2602
+ step: {}
2603
+ },
2604
+ emits: ["update:modelValue", "input", "focus", "blur"],
2605
+ setup(e, { emit: n }) {
2606
+ const t = e, o = n, l = t.modelValue === void 0 ? 0 : Number(t.modelValue), a = R(Number.isNaN(l) ? 0 : l), s = (u) => {
2607
+ const c = typeof u == "number" ? u : Number(u ?? 0);
2608
+ a.value = Number.isNaN(c) ? 0 : c, o("update:modelValue", a.value), o("input", a.value);
2609
+ };
2610
+ return (u, c) => (v(), P(Pe, {
2611
+ modelValue: a.value,
2612
+ "onUpdate:modelValue": s,
2613
+ label: t.label,
2614
+ id: t.id,
2615
+ placeholder: " ",
2616
+ disabled: t.disabled,
2617
+ colspan: t.colspan,
2618
+ newLine: t.newLine,
2619
+ spanRow: t.spanRow,
2620
+ error: t.error
2621
+ }, {
2622
+ control: K(({ id: r, disabled: i, placeholder: d, onFocus: f, onBlur: m }) => [
2623
+ k("div", {
2624
+ class: "input-slider__control",
2625
+ onFocusin: f,
2626
+ onFocusout: m
2627
+ }, [
2628
+ D(Ql, {
2629
+ id: r,
2630
+ modelValue: a.value,
2631
+ "onUpdate:modelValue": c[0] || (c[0] = (p) => a.value = p),
2632
+ min: t.min,
2633
+ max: t.max,
2634
+ step: t.step,
2635
+ range: !1,
2636
+ disabled: i
2637
+ }, null, 8, ["id", "modelValue", "min", "max", "step", "disabled"])
2638
+ ], 40, Zl)
2639
+ ]),
2640
+ _: 1
2641
+ }, 8, ["modelValue", "label", "id", "disabled", "colspan", "newLine", "spanRow", "error"]));
2642
+ }
2643
+ }), ta = /* @__PURE__ */ M(ea, [["__scopeId", "data-v-051e6d17"]]), qt = [
2644
+ 'input:not([disabled]):not([type="hidden"])',
2645
+ "select:not([disabled])",
2646
+ "textarea:not([disabled])",
2647
+ "button:not([disabled])",
2648
+ "a[href]",
2649
+ '[tabindex]:not([tabindex="-1"])',
2650
+ '[contenteditable="true"]'
2651
+ ].join(", ");
2652
+ function na(e) {
2653
+ const n = e.querySelectorAll(qt);
2654
+ for (const t of Array.from(n))
2655
+ if (t.offsetParent !== null || t.getClientRects().length > 0)
2656
+ return t;
2657
+ return null;
2658
+ }
2659
+ const oa = {
2660
+ mounted(e, n) {
2661
+ const t = typeof n.value == "number" ? n.value : 0, o = () => {
2662
+ if (e.matches(qt)) {
2663
+ e.focus();
2664
+ return;
2665
+ }
2666
+ const l = na(e);
2667
+ l && l.focus();
2668
+ };
2669
+ t > 0 ? setTimeout(o, t) : requestAnimationFrame(o);
2670
+ }
2671
+ }, la = "navigationProvider";
2672
+ function aa(e) {
2673
+ return !!e.meta && "icon" in e.meta && "label" in e.meta;
2674
+ }
2675
+ const sa = () => {
2676
+ const e = un(), n = dn(), t = !0, o = C(() => {
2677
+ const i = e.getRoutes();
2678
+ return i.filter((d) => d.path !== "/" && !i.some((f) => f.children?.some((m) => m.name === d.name)));
2679
+ }), l = C(() => {
2680
+ const i = n.matched;
2681
+ return i.length ? i[i.length - 1] : null;
2682
+ }), a = C(() => {
2683
+ const i = n.matched;
2684
+ return i.length > 1 ? i[i.length - 2] : null;
2685
+ }), s = C(() => !!(l.value?.children?.length || a.value)), u = C(() => l.value?.children?.length ? l.value : a.value?.children?.length ? a.value : null), c = C(() => {
2686
+ if (!u.value) return null;
2687
+ const d = e.getRoutes().find((f) => f.children?.some((m) => m.name === u.value.name));
2688
+ return d ? { name: d.name } : { path: "/" };
2689
+ }), r = C(() => {
2690
+ let i = [];
2691
+ return n.path === "/" ? i = o.value : l.value?.children?.length ? i = l.value.children : a.value?.children?.length ? i = a.value.children : i = o.value, i.filter(aa);
2692
+ });
2693
+ return {
2694
+ hasParent: s,
2695
+ backRoute: c,
2696
+ childRoutes: r,
2697
+ showLabels: t
2698
+ };
2699
+ }, ba = (e, n = !0, t = void 0) => {
2700
+ const o = sn(e) ? e : R(e), l = !!t, a = R(t || null);
2701
+ return {
2702
+ hasParent: l,
2703
+ backRoute: a,
2704
+ childRoutes: o,
2705
+ showLabels: n
2706
+ };
2707
+ }, at = R(!1), st = R(null), it = R(null);
2708
+ let ke = [];
2709
+ const Gt = (e) => (ke.push(e), () => {
2710
+ ke = ke.filter((n) => n !== e);
2711
+ }), ia = (e, n) => (ke = [], st.value = e, it.value = n ?? null, at.value = !0, {
2712
+ onClose: (t) => Gt(t)
2713
+ }), ra = (e) => {
2714
+ try {
2715
+ ke.forEach((n) => {
2716
+ try {
2717
+ n(e);
2718
+ } catch (t) {
2719
+ console.error("aside onClose callback error", t);
2720
+ }
2721
+ });
2722
+ } finally {
2723
+ at.value = !1, setTimeout(ca, 1e3);
2724
+ }
2725
+ }, ca = () => {
2726
+ ke = [], st.value = null, it.value = null;
2727
+ }, ua = {
2728
+ asideComponent: st,
2729
+ asideData: it,
2730
+ showAside: ia,
2731
+ closeAside: ra,
2732
+ onAsideClose: Gt,
2733
+ hasAside: at
2734
+ }, da = () => ua, ya = (e, n) => {
2735
+ let t = null;
2736
+ return (...l) => {
2737
+ t && clearTimeout(t), t = setTimeout(() => {
2738
+ e(...l);
2739
+ }, n);
2740
+ };
2741
+ };
2742
+ class fa {
2743
+ containerElement = null;
2744
+ apps = [];
2745
+ ensureContainer() {
2746
+ return this.containerElement || (this.containerElement = document.createElement("div"), this.containerElement.id = "vj-dialog-container", document.body.appendChild(this.containerElement)), this.containerElement;
2747
+ }
2748
+ open(n) {
2749
+ return new Promise((t) => {
2750
+ const o = this.ensureContainer(), l = document.createElement("div");
2751
+ o.appendChild(l);
2752
+ let a = !1;
2753
+ const s = () => {
2754
+ a || (a = !0, setTimeout(() => {
2755
+ const c = this.apps.find((r) => r.element === l);
2756
+ c && (c.app.unmount(), this.apps = this.apps.filter((r) => r !== c)), l.remove();
2757
+ }, 300));
2758
+ }, u = rn({
2759
+ setup() {
2760
+ return () => cn(Et, {
2761
+ modelValue: !0,
2762
+ title: n.title,
2763
+ message: n.message,
2764
+ component: n.component,
2765
+ componentProps: n.componentProps,
2766
+ showFooter: n.showFooter ?? !0,
2767
+ showCancel: n.showCancel ?? !0,
2768
+ confirmText: n.confirmText,
2769
+ cancelText: n.cancelText,
2770
+ closeOnBackdrop: n.closeOnBackdrop ?? !1,
2771
+ closeOnEscape: n.closeOnEscape ?? !0,
2772
+ onConfirm: () => {
2773
+ t(!0), s();
2774
+ },
2775
+ onCancel: () => {
2776
+ t(!1), s();
2777
+ },
2778
+ onClose: () => {
2779
+ a || t(!1), s();
2780
+ }
2781
+ });
2782
+ }
2783
+ });
2784
+ u.component("VjCard", Rt), u.component("VjIcon", Oe), u.component("VjButton", Ct), u.mount(l), this.apps.push({ app: u, element: l });
2785
+ });
2786
+ }
2787
+ confirm(n) {
2788
+ return this.open({
2789
+ title: n.title,
2790
+ message: n.message,
2791
+ showFooter: !0,
2792
+ showCancel: !0,
2793
+ confirmText: n.confirmText ?? "OK",
2794
+ cancelText: n.cancelText ?? "Abbrechen"
2795
+ });
2796
+ }
2797
+ alert(n, t) {
2798
+ return this.open({
2799
+ title: n,
2800
+ message: t,
2801
+ showFooter: !0,
2802
+ showCancel: !1,
2803
+ confirmText: "OK"
2804
+ });
2805
+ }
2806
+ closeAll() {
2807
+ this.apps.forEach(({ app: n, element: t }) => {
2808
+ n.unmount(), t.remove();
2809
+ }), this.apps = [];
2810
+ }
2811
+ }
2812
+ const ma = new fa();
2813
+ function wa() {
2814
+ return ma;
2815
+ }
2816
+ const xa = {
2817
+ install(e) {
2818
+ e.component("VjButton", Ct), e.component("VjButtonBar", gn), e.component("VjCard", Rt), e.component("VjCarousel", Ln), e.component("VjDotMenu", $o), e.component("VjIcon", Oe), e.component("VjLinkButton", Ao), e.component("VjMenu", jo), e.component("VjMenuAction", Mo), e.component("VjPage", Ko), e.component("VjPaginator", Yo), e.component("VjTab", ul), e.component("VjTabView", rl), e.component("VjDialog", Et), e.component("VjInput", Xt), e.component("VjSelect", Wt), e.component("VjTextArea", Ut), e.component("VjFormField", Pe), e.component("VjFormLayout", gl), e.component("VjFormSection", wl), e.component("VjInputText", Ml), e.component("VjInputTextArea", Al), e.component("VjInputSelect", El), e.component("VjInputSlider", ta), e.component("VjShellNavigation", Kt), e.component("VjShellNavigationItem", jl), e.component("VjShell", ql), e.component("VjSearchField", el), e.component("VjSeparator", nl), e.directive("focus", oa);
2819
+ }
2820
+ };
2821
+ export {
2822
+ Ct as Button,
2823
+ gn as ButtonBar,
2824
+ Rt as Card,
2825
+ Ln as Carousel,
2826
+ ga as Checkbox,
2827
+ Et as Dialog,
2828
+ $o as DotMenu,
2829
+ Pe as FormField,
2830
+ gl as FormLayout,
2831
+ wl as FormSection,
2832
+ Oe as Icon,
2833
+ N as IconNames,
2834
+ U as IconSize,
2835
+ Xt as Input,
2836
+ El as InputSelect,
2837
+ Ml as InputText,
2838
+ Al as InputTextArea,
2839
+ Ao as LinkButton,
2840
+ jo as Menu,
2841
+ Mo as MenuAction,
2842
+ Ko as Page,
2843
+ Yo as Paginator,
2844
+ el as SearchField,
2845
+ Wt as Select,
2846
+ nl as Separator,
2847
+ ql as Shell,
2848
+ Kt as ShellNavigation,
2849
+ jl as ShellNavigationItem,
2850
+ ul as Tab,
2851
+ rl as TabView,
2852
+ Ut as TextArea,
2853
+ xa as VjComponents,
2854
+ la as VjNavigationProviderKey,
2855
+ ma as dialogService,
2856
+ da as useAsideService,
2857
+ ya as useDebounce,
2858
+ wa as useDialog,
2859
+ sa as useRouterNavigationProvider,
2860
+ ba as useStaticNavigationProvider,
2861
+ oa as vFocusFirst
2862
+ };