@maltjoy/core-vue 1.0.0-beta.1 → 1.0.0-beta.3

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 (33) hide show
  1. package/README.md +1 -0
  2. package/dist/components/JoyBadge/JoyBadge.types.d.ts +2 -0
  3. package/dist/components/JoyBadge/VJoyBadge.vue.d.ts +43 -0
  4. package/dist/components/JoyButton/JoyButton.types.d.ts +0 -4
  5. package/dist/components/JoyButton/VJoyButton.vue.d.ts +2 -15
  6. package/dist/components/JoyCheckbox/VJoyCheckbox.vue.d.ts +24 -1
  7. package/dist/components/JoyCounter/VJoyCounter.vue.d.ts +6 -6
  8. package/dist/components/JoyDropdown/JoyDropdown.types.d.ts +4 -0
  9. package/dist/components/JoyDropdown/VJoyDropdown.vue.d.ts +180 -0
  10. package/dist/components/JoyDropdownList/JoyDropdownList.types.d.ts +3 -0
  11. package/dist/components/JoyDropdownList/VJoyDropdownList.vue.d.ts +84 -0
  12. package/dist/components/JoyHighlight/JoyHighlight.types.d.ts +1 -1
  13. package/dist/components/JoyHighlight/VJoyHighlight.vue.d.ts +3 -3
  14. package/dist/components/JoyInput/VJoyInput.vue.d.ts +4 -4
  15. package/dist/components/JoyLabel/VJoyLabel.vue.d.ts +3 -3
  16. package/dist/components/JoyMultiCheckbox/VJoyMultiCheckbox.vue.d.ts +11 -4
  17. package/dist/components/JoySelect/VJoySelect.vue.d.ts +4 -4
  18. package/dist/components/JoySelectableItem/VJoySelectableItem.vue.d.ts +2 -2
  19. package/dist/components/JoySelectableItemGroup/VJoySelectableItemGroup.vue.d.ts +4 -4
  20. package/dist/components/JoyTextarea/VJoyTextarea.vue.d.ts +4 -4
  21. package/dist/components/JoyToggle/VJoyToggle.vue.d.ts +1 -1
  22. package/dist/components/JoyWrapper/VJoyWrapper.vue.d.ts +2 -2
  23. package/dist/components/index.d.ts +4 -1
  24. package/dist/composables/events.d.ts +5 -0
  25. package/dist/composables/index.d.ts +1 -0
  26. package/dist/composables/props.d.ts +1 -1
  27. package/dist/joy-vue.js +1627 -599
  28. package/dist/joy-vue.umd.cjs +1 -1
  29. package/dist/style.css +1 -1
  30. package/dist/tests/composables/test-components/CheckboxFormProps.vue.d.ts +1 -1
  31. package/dist/tests/composables/test-components/GenericFormPropsWithLabel.vue.d.ts +3 -3
  32. package/joy-components.d.ts +27 -24
  33. package/package.json +19 -15
package/dist/joy-vue.js CHANGED
@@ -1,26 +1,57 @@
1
- import { defineComponent as p, openBlock as o, createElementBlock as d, normalizeClass as b, useAttrs as O, computed as J, createBlock as B, resolveDynamicComponent as E, unref as m, withCtx as I, createCommentVNode as y, createElementVNode as u, renderSlot as c, ref as S, createTextVNode as q, toDisplayString as $, mergeProps as L, createVNode as R, pushScopeId as z, popScopeId as M, useSlots as w, onBeforeMount as W, Fragment as A, renderList as F, normalizeStyle as D, onMounted as N, watch as Z, createSlots as K } from "vue";
2
- const Q = ["teal", "white"], X = /* @__PURE__ */ p({
1
+ import { defineComponent as $, openBlock as m, createElementBlock as p, normalizeClass as k, renderSlot as g, createTextVNode as J, toDisplayString as I, useAttrs as Re, computed as x, createBlock as q, resolveDynamicComponent as ce, unref as _, withCtx as L, createCommentVNode as w, createElementVNode as h, ref as b, mergeProps as Q, createVNode as fe, pushScopeId as te, popScopeId as le, getCurrentScope as ot, onScopeDispose as nt, getCurrentInstance as at, onMounted as Z, nextTick as Me, watch as B, h as it, reactive as X, onBeforeUnmount as Ne, normalizeStyle as K, Fragment as ye, renderList as ve, normalizeProps as me, guardReactiveProps as pe, Teleport as rt, useSlots as W, onBeforeMount as st, createSlots as ut } from "vue";
2
+ const dt = ["info", "gray", "green", "orange", "red", "teal", "turquoise", "pink", "dark-blue", "yellow"], ct = /* @__PURE__ */ $({
3
+ __name: "VJoyBadge",
4
+ props: {
5
+ /**
6
+ * Use label or slot in order to inject the text.
7
+ */
8
+ label: {
9
+ type: String,
10
+ default: ""
11
+ },
12
+ /**
13
+ * Color of the badge. Override the color with `--badge-bg-color` and `--badge-circle-color` if needed
14
+ */
15
+ variant: {
16
+ type: String,
17
+ validator(e) {
18
+ return dt.includes(e);
19
+ }
20
+ }
21
+ },
22
+ setup(e) {
23
+ return (t, l) => (m(), p("span", {
24
+ class: k(["joy-badge", `joy-badge__${e.variant}`]),
25
+ role: "status"
26
+ }, [
27
+ g(t.$slots, "default", {}, () => [
28
+ J(I(e.label), 1)
29
+ ], !0)
30
+ ], 2));
31
+ }
32
+ });
33
+ const V = (e, t) => {
34
+ const l = e.__vccOpts || e;
35
+ for (const [o, n] of t)
36
+ l[o] = n;
37
+ return l;
38
+ }, ft = /* @__PURE__ */ V(ct, [["__scopeId", "data-v-c0310e42"]]), yt = ["teal", "white"], vt = /* @__PURE__ */ $({
3
39
  __name: "VJoySpinner",
4
40
  props: {
5
41
  color: {
6
42
  type: String,
7
43
  validator(e) {
8
- return Q.includes(e);
44
+ return yt.includes(e);
9
45
  }
10
46
  }
11
47
  },
12
48
  setup(e) {
13
- return (a, l) => (o(), d("div", {
14
- class: b(["joy-spinner", `joy-spinner_${e.color}`])
49
+ return (t, l) => (m(), p("div", {
50
+ class: k(["joy-spinner", `joy-spinner_${e.color}`])
15
51
  }, null, 2));
16
52
  }
17
53
  });
18
- const _ = (e, a) => {
19
- const l = e.__vccOpts || e;
20
- for (const [t, i] of a)
21
- l[t] = i;
22
- return l;
23
- }, P = /* @__PURE__ */ _(X, [["__scopeId", "data-v-616a29d0"]]), Y = ["primary", "secondary"], ee = ["neutral", "success", "info", "warning", "error"], te = ["main", "admin", "ghost"], le = [...Y, ...te], ae = ["large", "medium", "small", "xsmall", "xxsmall"], ne = ["xxsmall", "xsmall", "small"], oe = ["name", "size"], ie = { class: "joy-button--slot" }, de = /* @__PURE__ */ p({
54
+ const He = /* @__PURE__ */ V(vt, [["__scopeId", "data-v-616a29d0"]]), mt = ["primary", "secondary"], pt = ["neutral", "success", "info", "warning", "error"], ht = ["main", "admin", "ghost"], bt = [...mt, ...ht], gt = ["large", "medium", "small", "xsmall", "xxsmall"], _t = ["name", "size"], wt = { class: "joy-button--slot" }, St = /* @__PURE__ */ $({
24
55
  __name: "VJoyButton",
25
56
  props: {
26
57
  /**
@@ -43,7 +74,7 @@ const _ = (e, a) => {
43
74
  type: String,
44
75
  default: "primary",
45
76
  validator(e) {
46
- return le.includes(e);
77
+ return bt.includes(e);
47
78
  }
48
79
  },
49
80
  /** Button or Link size */
@@ -51,23 +82,26 @@ const _ = (e, a) => {
51
82
  type: String,
52
83
  default: "medium",
53
84
  validator(e) {
54
- return ae.includes(e);
55
- }
56
- },
57
- /** Override the icon size. Default to xsmall */
58
- iconSize: {
59
- type: String,
60
- default: "xsmall",
61
- validator(e) {
62
- return ne.includes(e);
85
+ return gt.includes(e);
63
86
  }
64
87
  }
65
88
  },
66
89
  setup(e) {
67
- const a = e, l = O(), t = J(() => ["white", "ghost", "secondary"].includes(a.variant) ? "teal" : "white");
68
- return (i, s) => (o(), B(E(m(l).href ? "a" : "button"), {
69
- disabled: e.loading || m(l).disabled,
70
- class: b([
90
+ const t = e, l = Re(), o = x(() => {
91
+ switch (t.size) {
92
+ case "xxsmall":
93
+ return "xsmall";
94
+ case "xsmall":
95
+ return "xxsmall";
96
+ case "small":
97
+ return "xsmall";
98
+ default:
99
+ return "small";
100
+ }
101
+ }), n = x(() => ["white", "ghost", "secondary"].includes(t.variant) ? "teal" : "white");
102
+ return (r, s) => (m(), q(ce(_(l).href ? "a" : "button"), {
103
+ disabled: e.loading || _(l).disabled,
104
+ class: k([
71
105
  "joy-button",
72
106
  `joy-button_${e.variant}`,
73
107
  `joy-button_${e.size}`,
@@ -77,26 +111,26 @@ const _ = (e, a) => {
77
111
  }
78
112
  ])
79
113
  }, {
80
- default: I(() => [
81
- e.icon ? (o(), d("joy-icon", {
114
+ default: L(() => [
115
+ e.icon ? (m(), p("joy-icon", {
82
116
  key: 0,
83
117
  name: e.icon,
84
- size: e.iconSize,
118
+ size: _(o),
85
119
  lazy: !1
86
- }, null, 8, oe)) : y("", !0),
87
- e.loading ? (o(), B(P, {
120
+ }, null, 8, _t)) : w("", !0),
121
+ e.loading ? (m(), q(He, {
88
122
  key: 1,
89
- color: m(t)
90
- }, null, 8, ["color"])) : y("", !0),
91
- u("span", ie, [
92
- c(i.$slots, "default", {}, void 0, !0)
123
+ color: _(n)
124
+ }, null, 8, ["color"])) : w("", !0),
125
+ h("span", wt, [
126
+ g(r.$slots, "default", {}, void 0, !0)
93
127
  ])
94
128
  ]),
95
129
  _: 3
96
130
  }, 8, ["disabled", "class"]));
97
131
  }
98
132
  });
99
- const ue = /* @__PURE__ */ _(de, [["__scopeId", "data-v-638792d7"]]), se = ["aria-checked", "aria-hidden"], re = ["id", "name", "disabled", "checked", "required", "aria-checked", "value", "indeterminate"], ce = { class: "joy-checkbox__content-wrapper" }, ye = { class: "joy-checkbox__content" }, me = /* @__PURE__ */ p({
133
+ const jt = /* @__PURE__ */ V(St, [["__scopeId", "data-v-ff4bd9af"]]), kt = ["aria-checked", "aria-hidden"], $t = { class: "joy-checkbox__input-wrapper" }, Vt = ["id", "name", "disabled", "checked", "required", "aria-checked", "value", "indeterminate"], xt = { class: "joy-checkbox__content-wrapper" }, Ot = { class: "joy-checkbox__content" }, It = /* @__PURE__ */ $({
100
134
  __name: "VJoyCheckbox",
101
135
  props: {
102
136
  /** Can't be used in addition of v-model. See usage : https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#indeterminate_state_checkboxes */
@@ -104,6 +138,14 @@ const ue = /* @__PURE__ */ _(de, [["__scopeId", "data-v-638792d7"]]), se = ["ari
104
138
  type: Boolean,
105
139
  default: !1
106
140
  },
141
+ /**
142
+ * Internal purpose in order to prevent double focus mark on selectable-item
143
+ * @internal
144
+ */
145
+ displayFocus: {
146
+ type: Boolean,
147
+ default: !0
148
+ },
107
149
  /** Use it to replace the default slot */
108
150
  label: {
109
151
  type: String
@@ -134,74 +176,87 @@ const ue = /* @__PURE__ */ _(de, [["__scopeId", "data-v-638792d7"]]), se = ["ari
134
176
  default: !1
135
177
  }
136
178
  },
137
- emits: ["update:checked"],
138
- setup(e, { expose: a, emit: l }) {
139
- const t = e, i = S(), s = S(t.indeterminate), f = {
140
- onChange: (n) => {
141
- const r = n.target.checked;
142
- s.value = !1, l("update:checked", r);
179
+ emits: ["update:checked", "focus", "blur"],
180
+ setup(e, { expose: t, emit: l }) {
181
+ const o = e, n = b(), r = b(o.indeterminate), s = b(!1), a = {
182
+ onChange: (c) => {
183
+ const f = c.target.checked;
184
+ r.value = !1, l("update:checked", f);
185
+ },
186
+ onFocus: () => {
187
+ s.value = !0, l("focus");
188
+ },
189
+ onBlur: () => {
190
+ s.value = !1, l("blur");
143
191
  }
144
192
  };
145
- return a({
146
- isIndeterminate: s
147
- }), (n, r) => (o(), d("div", {
193
+ return t({
194
+ isIndeterminate: r
195
+ }), (c, f) => (m(), p("div", {
148
196
  "aria-checked": e.checked,
149
197
  "aria-hidden": e.disabled
150
198
  }, [
151
- u("label", {
152
- class: b([
199
+ h("label", {
200
+ class: k([
153
201
  "joy-checkbox",
154
202
  {
155
203
  "joy-checkbox__checked": e.checked,
156
- "joy-checkbox__indeterminate": s.value
204
+ "joy-checkbox__indeterminate": r.value,
205
+ "joy-checkbox__focusing": s.value && e.displayFocus
157
206
  }
158
207
  ])
159
208
  }, [
160
- u("input", {
161
- id: e.id,
162
- ref_key: "input",
163
- ref: i,
164
- type: "checkbox",
165
- class: "joy-checkbox__input",
166
- role: "checkbox",
167
- name: e.name,
168
- disabled: e.disabled,
169
- checked: e.checked,
170
- required: e.required,
171
- "aria-checked": e.checked,
172
- value: e.value,
173
- indeterminate: s.value,
174
- onChange: r[0] || (r[0] = //@ts-ignore
175
- (...g) => f.onChange && f.onChange(...g))
176
- }, null, 40, re),
177
- u("div", ce, [
178
- c(n.$slots, "default", {}, () => [
179
- q($(e.label), 1)
209
+ h("div", $t, [
210
+ h("input", {
211
+ id: e.id,
212
+ ref_key: "input",
213
+ ref: n,
214
+ type: "checkbox",
215
+ class: "joy-checkbox__input",
216
+ role: "checkbox",
217
+ name: e.name,
218
+ disabled: e.disabled,
219
+ checked: e.checked,
220
+ required: e.required,
221
+ "aria-checked": e.checked,
222
+ value: e.value,
223
+ indeterminate: r.value,
224
+ onChange: f[0] || (f[0] = //@ts-ignore
225
+ (...u) => a.onChange && a.onChange(...u)),
226
+ onFocus: f[1] || (f[1] = //@ts-ignore
227
+ (...u) => a.onFocus && a.onFocus(...u)),
228
+ onBlur: f[2] || (f[2] = //@ts-ignore
229
+ (...u) => a.onBlur && a.onBlur(...u))
230
+ }, null, 40, Vt)
231
+ ]),
232
+ h("div", xt, [
233
+ g(c.$slots, "default", {}, () => [
234
+ J(I(e.label), 1)
180
235
  ], !0),
181
- u("div", ye, [
182
- c(n.$slots, "checkbox-content", {}, void 0, !0)
236
+ h("div", Ot, [
237
+ g(c.$slots, "checkbox-content", {}, void 0, !0)
183
238
  ])
184
239
  ])
185
240
  ], 2)
186
- ], 8, se));
241
+ ], 8, kt));
187
242
  }
188
243
  });
189
- const T = /* @__PURE__ */ _(me, [["__scopeId", "data-v-d6496829"]]), H = (e) => (z("data-v-01418e7e"), e = e(), M(), e), fe = { class: "joy-counter" }, ve = { class: "joy-counter__wrapper" }, be = ["aria-label", "disabled"], ge = /* @__PURE__ */ H(() => /* @__PURE__ */ u("joy-icon", {
244
+ const he = /* @__PURE__ */ V(It, [["__scopeId", "data-v-a39797a6"]]), We = (e) => (te("data-v-0d1ab3f2"), e = e(), le(), e), Bt = { class: "joy-counter" }, Lt = ["aria-label", "disabled"], Et = /* @__PURE__ */ We(() => /* @__PURE__ */ h("joy-icon", {
190
245
  name: "minus",
191
246
  color: "teal",
192
247
  lazy: !1
193
- }, null, -1)), he = [
194
- ge
195
- ], pe = ["id", "min", "max", "aria-invalid", "name", "required", "value"], _e = ["aria-label", "disabled"], ke = /* @__PURE__ */ H(() => /* @__PURE__ */ u("joy-icon", {
248
+ }, null, -1)), Ct = [
249
+ Et
250
+ ], Pt = { class: "joy-counter__input-wrapper" }, Jt = ["id", "min", "max", "aria-invalid", "name", "required", "value"], qt = ["aria-label", "disabled"], Tt = /* @__PURE__ */ We(() => /* @__PURE__ */ h("joy-icon", {
196
251
  name: "add",
197
252
  lazy: !1,
198
253
  color: "teal"
199
- }, null, -1)), je = [
200
- ke
201
- ], Se = {
254
+ }, null, -1)), zt = [
255
+ Tt
256
+ ], At = {
202
257
  key: 0,
203
258
  class: "joy-counter_error"
204
- }, $e = /* @__PURE__ */ p({
259
+ }, Ft = /* @__PURE__ */ $({
205
260
  __name: "VJoyCounter",
206
261
  props: {
207
262
  /** Removes any interactivity */
@@ -267,101 +322,1014 @@ const T = /* @__PURE__ */ _(me, [["__scopeId", "data-v-d6496829"]]), H = (e) =>
267
322
  }
268
323
  },
269
324
  emits: ["update:modelValue"],
270
- setup(e, { expose: a, emit: l }) {
271
- const t = e, i = S(!1);
325
+ setup(e, { expose: t, emit: l }) {
326
+ const o = e, n = b(!1), r = b(!1);
272
327
  function s() {
273
- const v = r(!1);
274
- v >= 0 ? l("update:modelValue", v <= t.min ? t.min : v) : l("update:modelValue", 0), n();
328
+ const d = f(!1);
329
+ d >= 0 ? l("update:modelValue", d <= o.min ? o.min : d) : l("update:modelValue", 0), c();
275
330
  }
276
- function f() {
277
- const v = r();
278
- t.max && v <= t.max ? l("update:modelValue", v >= t.max ? t.max : v) : t.max && v > t.max ? l("update:modelValue", t.max) : l("update:modelValue", v), n();
331
+ function a() {
332
+ const d = f();
333
+ o.max && d <= o.max ? l("update:modelValue", d >= o.max ? o.max : d) : o.max && d > o.max ? l("update:modelValue", o.max) : l("update:modelValue", d), c();
279
334
  }
280
- function n() {
281
- i.value = !g();
335
+ function c() {
336
+ n.value = !u();
282
337
  }
283
- function r(v = !0) {
284
- const h = t.step.toString().split("."), V = h.length === 2 ? h[1].length : 0;
285
- return parseFloat(v ? (t.modelValue + t.step).toFixed(V) : (t.modelValue - t.step).toFixed(V));
338
+ function f(d = !0) {
339
+ const j = o.step.toString().split("."), S = j.length === 2 ? j[1].length : 0;
340
+ return parseFloat(d ? (o.modelValue + o.step).toFixed(S) : (o.modelValue - o.step).toFixed(S));
286
341
  }
287
- function g() {
288
- return k() && x();
342
+ function u() {
343
+ return v() && i();
289
344
  }
290
- function k() {
291
- return !t.max || t.modelValue <= t.max;
345
+ function v() {
346
+ return !o.max || o.modelValue <= o.max;
292
347
  }
293
- function x() {
294
- return t.min <= t.modelValue;
348
+ function i() {
349
+ return o.min <= o.modelValue;
295
350
  }
296
- const j = {
297
- onInput: (v) => {
298
- l("update:modelValue", +v.target.value || 0), i.value = !1;
351
+ const y = {
352
+ onInput: (d) => {
353
+ l("update:modelValue", +d.target.value || 0), n.value = !1;
354
+ },
355
+ onFocus: () => {
356
+ r.value = !0;
299
357
  },
300
358
  onBlur: () => {
301
- n();
359
+ r.value = !1, c();
302
360
  }
303
361
  };
304
- return a({
305
- props: t
306
- }), (v, h) => (o(), d("div", fe, [
307
- e.label ? (o(), B(m(C), {
362
+ return t({
363
+ props: o
364
+ }), (d, j) => (m(), p("div", Bt, [
365
+ e.label ? (m(), q(_(N), {
308
366
  key: 0,
309
367
  for: e.id,
310
368
  required: e.required && e.requiredMark,
311
369
  "optional-label": e.optionalLabel,
312
370
  size: e.labelSize
313
371
  }, {
314
- default: I(() => [
315
- c(v.$slots, "default", {}, () => [
316
- q($(e.label), 1)
372
+ default: L(() => [
373
+ g(d.$slots, "default", {}, () => [
374
+ J(I(e.label), 1)
317
375
  ], !0)
318
376
  ]),
319
377
  _: 3
320
- }, 8, ["for", "required", "optional-label", "size"])) : y("", !0),
321
- u("div", ve, [
322
- u("button", {
378
+ }, 8, ["for", "required", "optional-label", "size"])) : w("", !0),
379
+ h("div", {
380
+ class: k(["joy-counter__wrapper", { "joy-counter--focusing": r.value }])
381
+ }, [
382
+ h("button", {
323
383
  class: "joy-counter__decrement",
324
384
  type: "button",
325
385
  "aria-label": e.labelDecrement,
326
386
  disabled: e.modelValue <= e.min,
327
387
  onClick: s
328
- }, he, 8, be),
329
- u("input", L({
330
- id: e.id,
331
- ref: "input",
332
- type: "number",
333
- class: { "joy-counter__invalid": e.invalid || i.value },
334
- min: e.min,
335
- max: e.max,
336
- "aria-invalid": e.invalid || i.value,
337
- name: e.name,
338
- required: e.required,
339
- step: "any",
340
- value: e.modelValue
341
- }, v.$attrs, {
342
- onInput: h[0] || (h[0] = //@ts-ignore
343
- (...V) => j.onInput && j.onInput(...V)),
344
- onBlur: h[1] || (h[1] = //@ts-ignore
345
- (...V) => j.onBlur && j.onBlur(...V))
346
- }), null, 16, pe),
347
- u("button", {
388
+ }, Ct, 8, Lt),
389
+ h("div", Pt, [
390
+ h("input", Q({
391
+ id: e.id,
392
+ ref: "input",
393
+ type: "number",
394
+ class: { "joy-counter__invalid": e.invalid || n.value },
395
+ min: e.min,
396
+ max: e.max,
397
+ "aria-invalid": e.invalid || n.value,
398
+ name: e.name,
399
+ required: e.required,
400
+ step: "any",
401
+ value: e.modelValue
402
+ }, d.$attrs, {
403
+ onInput: j[0] || (j[0] = //@ts-ignore
404
+ (...S) => y.onInput && y.onInput(...S)),
405
+ onBlur: j[1] || (j[1] = //@ts-ignore
406
+ (...S) => y.onBlur && y.onBlur(...S)),
407
+ onFocus: j[2] || (j[2] = //@ts-ignore
408
+ (...S) => y.onFocus && y.onFocus(...S))
409
+ }), null, 16, Jt)
410
+ ]),
411
+ h("button", {
348
412
  class: "joy-counter__increment",
349
413
  type: "button",
350
414
  "aria-label": e.labelIncrement,
351
415
  disabled: e.max ? e.modelValue >= e.max : !1,
352
- onClick: f
353
- }, je, 8, _e),
354
- e.invalid && e.errorMessage ? (o(), d("div", Se, [
355
- R(m(G), { "no-html-error-text": e.errorMessage }, null, 8, ["no-html-error-text"])
356
- ])) : y("", !0)
357
- ])
416
+ onClick: a
417
+ }, zt, 8, qt),
418
+ e.invalid && e.errorMessage ? (m(), p("div", At, [
419
+ fe(_(et), { "no-html-error-text": e.errorMessage }, null, 8, ["no-html-error-text"])
420
+ ])) : w("", !0)
421
+ ], 2)
358
422
  ]));
359
423
  }
360
424
  });
361
- const Ve = /* @__PURE__ */ _($e, [["__scopeId", "data-v-01418e7e"]]), xe = (e) => (z("data-v-50e209d6"), e = e(), M(), e), Ie = ["aria-hidden"], qe = /* @__PURE__ */ xe(() => /* @__PURE__ */ u("joy-icon", {
425
+ const Dt = /* @__PURE__ */ V(Ft, [["__scopeId", "data-v-0d1ab3f2"]]);
426
+ var _e;
427
+ const U = typeof window < "u", Ue = (e) => typeof e == "string", z = () => {
428
+ }, ee = U && ((_e = window == null ? void 0 : window.navigator) == null ? void 0 : _e.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);
429
+ function C(e) {
430
+ return typeof e == "function" ? e() : _(e);
431
+ }
432
+ function Ge(e, t) {
433
+ function l(...o) {
434
+ return new Promise((n, r) => {
435
+ Promise.resolve(e(() => t.apply(this, o), { fn: t, thisArg: this, args: o })).then(n).catch(r);
436
+ });
437
+ }
438
+ return l;
439
+ }
440
+ function Rt(e, t = {}) {
441
+ let l, o, n = z;
442
+ const r = (a) => {
443
+ clearTimeout(a), n(), n = z;
444
+ };
445
+ return (a) => {
446
+ const c = C(e), f = C(t.maxWait);
447
+ return l && r(l), c <= 0 || f !== void 0 && f <= 0 ? (o && (r(o), o = null), Promise.resolve(a())) : new Promise((u, v) => {
448
+ n = t.rejectOnCancel ? v : u, f && !o && (o = setTimeout(() => {
449
+ l && r(l), o = null, u(a());
450
+ }, f)), l = setTimeout(() => {
451
+ o && r(o), o = null, u(a());
452
+ }, c);
453
+ });
454
+ };
455
+ }
456
+ function Mt(e, t = !0, l = !0, o = !1) {
457
+ let n = 0, r, s = !0, a = z, c;
458
+ const f = () => {
459
+ r && (clearTimeout(r), r = void 0, a(), a = z);
460
+ };
461
+ return (v) => {
462
+ const i = C(e), y = Date.now() - n, d = () => c = v();
463
+ return f(), i <= 0 ? (n = Date.now(), d()) : (y > i && (l || !s) ? (n = Date.now(), d()) : t && (c = new Promise((j, S) => {
464
+ a = o ? S : j, r = setTimeout(() => {
465
+ n = Date.now(), s = !0, j(d()), f();
466
+ }, Math.max(0, i - y));
467
+ })), !l && !r && (r = setTimeout(() => s = !0, i)), s = !1, c);
468
+ };
469
+ }
470
+ const R = {
471
+ mounted: "mounted",
472
+ updated: "updated",
473
+ unmounted: "unmounted"
474
+ };
475
+ function Nt(e) {
476
+ return e;
477
+ }
478
+ function G(e) {
479
+ return ot() ? (nt(e), !0) : !1;
480
+ }
481
+ function Ht(e, t = 200, l = {}) {
482
+ return Ge(Rt(t, l), e);
483
+ }
484
+ function Wt(e, t = 200, l = !1, o = !0, n = !1) {
485
+ return Ge(Mt(t, l, o, n), e);
486
+ }
487
+ function Ut(e) {
488
+ return typeof e == "function" ? x(e) : b(e);
489
+ }
490
+ function Ke(e, t = !0) {
491
+ at() ? Z(e) : t ? e() : Me(e);
492
+ }
493
+ function H(e) {
494
+ var t;
495
+ const l = C(e);
496
+ return (t = l == null ? void 0 : l.$el) != null ? t : l;
497
+ }
498
+ const be = U ? window : void 0;
499
+ U && window.document;
500
+ U && window.navigator;
501
+ U && window.location;
502
+ function ae(...e) {
503
+ let t, l, o, n;
504
+ if (Ue(e[0]) || Array.isArray(e[0]) ? ([l, o, n] = e, t = be) : [t, l, o, n] = e, !t)
505
+ return z;
506
+ Array.isArray(l) || (l = [l]), Array.isArray(o) || (o = [o]);
507
+ const r = [], s = () => {
508
+ r.forEach((u) => u()), r.length = 0;
509
+ }, a = (u, v, i, y) => (u.addEventListener(v, i, y), () => u.removeEventListener(v, i, y)), c = B(() => [H(t), C(n)], ([u, v]) => {
510
+ s(), u && r.push(...l.flatMap((i) => o.map((y) => a(u, i, y, v))));
511
+ }, { immediate: !0, flush: "post" }), f = () => {
512
+ c(), s();
513
+ };
514
+ return G(f), f;
515
+ }
516
+ let we = !1;
517
+ function Gt(e, t, l = {}) {
518
+ const { window: o = be, ignore: n = [], capture: r = !0, detectIframe: s = !1 } = l;
519
+ if (!o)
520
+ return;
521
+ ee && !we && (we = !0, Array.from(o.document.body.children).forEach((i) => i.addEventListener("click", z)));
522
+ let a = !0;
523
+ const c = (i) => n.some((y) => {
524
+ if (typeof y == "string")
525
+ return Array.from(o.document.querySelectorAll(y)).some((d) => d === i.target || i.composedPath().includes(d));
526
+ {
527
+ const d = H(y);
528
+ return d && (i.target === d || i.composedPath().includes(d));
529
+ }
530
+ }), u = [
531
+ ae(o, "click", (i) => {
532
+ const y = H(e);
533
+ if (!(!y || y === i.target || i.composedPath().includes(y))) {
534
+ if (i.detail === 0 && (a = !c(i)), !a) {
535
+ a = !0;
536
+ return;
537
+ }
538
+ t(i);
539
+ }
540
+ }, { passive: !0, capture: r }),
541
+ ae(o, "pointerdown", (i) => {
542
+ const y = H(e);
543
+ y && (a = !i.composedPath().includes(y) && !c(i));
544
+ }, { passive: !0 }),
545
+ s && ae(o, "blur", (i) => {
546
+ var y;
547
+ const d = H(e);
548
+ ((y = o.document.activeElement) == null ? void 0 : y.tagName) === "IFRAME" && !(d != null && d.contains(o.document.activeElement)) && t(i);
549
+ })
550
+ ].filter(Boolean);
551
+ return () => u.forEach((i) => i());
552
+ }
553
+ function Kt(e, t = !1) {
554
+ const l = b(), o = () => l.value = Boolean(e());
555
+ return o(), Ke(o, t), l;
556
+ }
557
+ const ie = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, re = "__vueuse_ssr_handlers__";
558
+ ie[re] = ie[re] || {};
559
+ ie[re];
560
+ var Se = Object.getOwnPropertySymbols, Qt = Object.prototype.hasOwnProperty, Zt = Object.prototype.propertyIsEnumerable, Yt = (e, t) => {
561
+ var l = {};
562
+ for (var o in e)
563
+ Qt.call(e, o) && t.indexOf(o) < 0 && (l[o] = e[o]);
564
+ if (e != null && Se)
565
+ for (var o of Se(e))
566
+ t.indexOf(o) < 0 && Zt.call(e, o) && (l[o] = e[o]);
567
+ return l;
568
+ };
569
+ function Xt(e, t, l = {}) {
570
+ const o = l, { window: n = be } = o, r = Yt(o, ["window"]);
571
+ let s;
572
+ const a = Kt(() => n && "ResizeObserver" in n), c = () => {
573
+ s && (s.disconnect(), s = void 0);
574
+ }, f = B(() => H(e), (v) => {
575
+ c(), a.value && n && v && (s = new ResizeObserver(t), s.observe(v, r));
576
+ }, { immediate: !0, flush: "post" }), u = () => {
577
+ c(), f();
578
+ };
579
+ return G(u), {
580
+ isSupported: a,
581
+ stop: u
582
+ };
583
+ }
584
+ var je;
585
+ (function(e) {
586
+ e.UP = "UP", e.RIGHT = "RIGHT", e.DOWN = "DOWN", e.LEFT = "LEFT", e.NONE = "NONE";
587
+ })(je || (je = {}));
588
+ function el(e) {
589
+ const t = b(e == null ? void 0 : e.element), l = b(e == null ? void 0 : e.input);
590
+ function o() {
591
+ var n, r;
592
+ t.value && (t.value.style.height = "1px", t.value.style.height = `${(n = t.value) == null ? void 0 : n.scrollHeight}px`, (r = e == null ? void 0 : e.onResize) == null || r.call(e));
593
+ }
594
+ return B([l, t], o, { immediate: !0 }), Xt(t, () => o()), e != null && e.watch && B(e.watch, o, { immediate: !0, deep: !0 }), {
595
+ textarea: t,
596
+ input: l,
597
+ triggerResize: o
598
+ };
599
+ }
600
+ var tl = Object.defineProperty, ke = Object.getOwnPropertySymbols, ll = Object.prototype.hasOwnProperty, ol = Object.prototype.propertyIsEnumerable, $e = (e, t, l) => t in e ? tl(e, t, { enumerable: !0, configurable: !0, writable: !0, value: l }) : e[t] = l, nl = (e, t) => {
601
+ for (var l in t || (t = {}))
602
+ ll.call(t, l) && $e(e, l, t[l]);
603
+ if (ke)
604
+ for (var l of ke(t))
605
+ ol.call(t, l) && $e(e, l, t[l]);
606
+ return e;
607
+ };
608
+ const al = {
609
+ easeInSine: [0.12, 0, 0.39, 0],
610
+ easeOutSine: [0.61, 1, 0.88, 1],
611
+ easeInOutSine: [0.37, 0, 0.63, 1],
612
+ easeInQuad: [0.11, 0, 0.5, 0],
613
+ easeOutQuad: [0.5, 1, 0.89, 1],
614
+ easeInOutQuad: [0.45, 0, 0.55, 1],
615
+ easeInCubic: [0.32, 0, 0.67, 0],
616
+ easeOutCubic: [0.33, 1, 0.68, 1],
617
+ easeInOutCubic: [0.65, 0, 0.35, 1],
618
+ easeInQuart: [0.5, 0, 0.75, 0],
619
+ easeOutQuart: [0.25, 1, 0.5, 1],
620
+ easeInOutQuart: [0.76, 0, 0.24, 1],
621
+ easeInQuint: [0.64, 0, 0.78, 0],
622
+ easeOutQuint: [0.22, 1, 0.36, 1],
623
+ easeInOutQuint: [0.83, 0, 0.17, 1],
624
+ easeInExpo: [0.7, 0, 0.84, 0],
625
+ easeOutExpo: [0.16, 1, 0.3, 1],
626
+ easeInOutExpo: [0.87, 0, 0.13, 1],
627
+ easeInCirc: [0.55, 0, 1, 0.45],
628
+ easeOutCirc: [0, 0.55, 0.45, 1],
629
+ easeInOutCirc: [0.85, 0, 0.15, 1],
630
+ easeInBack: [0.36, 0, 0.66, -0.56],
631
+ easeOutBack: [0.34, 1.56, 0.64, 1],
632
+ easeInOutBack: [0.68, -0.6, 0.32, 1.6]
633
+ };
634
+ nl({
635
+ linear: Nt
636
+ }, al);
637
+ const il = /* @__PURE__ */ $({
638
+ name: "OnClickOutside",
639
+ props: ["as", "options"],
640
+ emits: ["trigger"],
641
+ setup(e, { slots: t, emit: l }) {
642
+ const o = b();
643
+ return Gt(o, (n) => {
644
+ l("trigger", n);
645
+ }, e.options), () => {
646
+ if (t.default)
647
+ return it(e.as || "div", { ref: o }, t.default());
648
+ };
649
+ }
650
+ });
651
+ function P(e) {
652
+ var t;
653
+ const l = C(e);
654
+ return (t = l == null ? void 0 : l.$el) != null ? t : l;
655
+ }
656
+ const M = U ? window : void 0;
657
+ function A(...e) {
658
+ let t, l, o, n;
659
+ if (Ue(e[0]) || Array.isArray(e[0]) ? ([l, o, n] = e, t = M) : [t, l, o, n] = e, !t)
660
+ return z;
661
+ Array.isArray(l) || (l = [l]), Array.isArray(o) || (o = [o]);
662
+ const r = [], s = () => {
663
+ r.forEach((u) => u()), r.length = 0;
664
+ }, a = (u, v, i, y) => (u.addEventListener(v, i, y), () => u.removeEventListener(v, i, y)), c = B(() => [P(t), C(n)], ([u, v]) => {
665
+ s(), u && r.push(...l.flatMap((i) => o.map((y) => a(u, i, y, v))));
666
+ }, { immediate: !0, flush: "post" }), f = () => {
667
+ c(), s();
668
+ };
669
+ return G(f), f;
670
+ }
671
+ let Ve = !1;
672
+ function xe(e, t, l = {}) {
673
+ const { window: o = M, ignore: n = [], capture: r = !0, detectIframe: s = !1 } = l;
674
+ if (!o)
675
+ return;
676
+ ee && !Ve && (Ve = !0, Array.from(o.document.body.children).forEach((i) => i.addEventListener("click", z)));
677
+ let a = !0;
678
+ const c = (i) => n.some((y) => {
679
+ if (typeof y == "string")
680
+ return Array.from(o.document.querySelectorAll(y)).some((d) => d === i.target || i.composedPath().includes(d));
681
+ {
682
+ const d = P(y);
683
+ return d && (i.target === d || i.composedPath().includes(d));
684
+ }
685
+ }), u = [
686
+ A(o, "click", (i) => {
687
+ const y = P(e);
688
+ if (!(!y || y === i.target || i.composedPath().includes(y))) {
689
+ if (i.detail === 0 && (a = !c(i)), !a) {
690
+ a = !0;
691
+ return;
692
+ }
693
+ t(i);
694
+ }
695
+ }, { passive: !0, capture: r }),
696
+ A(o, "pointerdown", (i) => {
697
+ const y = P(e);
698
+ y && (a = !i.composedPath().includes(y) && !c(i));
699
+ }, { passive: !0 }),
700
+ s && A(o, "blur", (i) => {
701
+ var y;
702
+ const d = P(e);
703
+ ((y = o.document.activeElement) == null ? void 0 : y.tagName) === "IFRAME" && !(d != null && d.contains(o.document.activeElement)) && t(i);
704
+ })
705
+ ].filter(Boolean);
706
+ return () => u.forEach((i) => i());
707
+ }
708
+ R.mounted + "", R.unmounted + "";
709
+ const rl = (e) => typeof e == "function" ? e : typeof e == "string" ? (t) => t.key === e : Array.isArray(e) ? (t) => e.includes(t.key) : () => !0;
710
+ function Oe(...e) {
711
+ let t, l, o = {};
712
+ e.length === 3 ? (t = e[0], l = e[1], o = e[2]) : e.length === 2 ? typeof e[1] == "object" ? (t = !0, l = e[0], o = e[1]) : (t = e[0], l = e[1]) : (t = !0, l = e[0]);
713
+ const { target: n = M, eventName: r = "keydown", passive: s = !1 } = o, a = rl(t);
714
+ return A(n, r, (f) => {
715
+ a(f) && l(f);
716
+ }, s);
717
+ }
718
+ var sl = Object.defineProperty, Ie = Object.getOwnPropertySymbols, ul = Object.prototype.hasOwnProperty, dl = Object.prototype.propertyIsEnumerable, Be = (e, t, l) => t in e ? sl(e, t, { enumerable: !0, configurable: !0, writable: !0, value: l }) : e[t] = l, cl = (e, t) => {
719
+ for (var l in t || (t = {}))
720
+ ul.call(t, l) && Be(e, l, t[l]);
721
+ if (Ie)
722
+ for (var l of Ie(t))
723
+ dl.call(t, l) && Be(e, l, t[l]);
724
+ return e;
725
+ };
726
+ R.mounted + "";
727
+ const fl = 500;
728
+ function Le(e, t, l) {
729
+ var o, n;
730
+ const r = x(() => P(e));
731
+ let s;
732
+ function a() {
733
+ s && (clearTimeout(s), s = void 0);
734
+ }
735
+ function c(u) {
736
+ var v, i, y, d;
737
+ (v = l == null ? void 0 : l.modifiers) != null && v.self && u.target !== r.value || (a(), (i = l == null ? void 0 : l.modifiers) != null && i.prevent && u.preventDefault(), (y = l == null ? void 0 : l.modifiers) != null && y.stop && u.stopPropagation(), s = setTimeout(() => t(u), (d = l == null ? void 0 : l.delay) != null ? d : fl));
738
+ }
739
+ const f = {
740
+ capture: (o = l == null ? void 0 : l.modifiers) == null ? void 0 : o.capture,
741
+ once: (n = l == null ? void 0 : l.modifiers) == null ? void 0 : n.once
742
+ };
743
+ A(r, "pointerdown", c, f), A(r, "pointerup", a, f), A(r, "pointerleave", a, f);
744
+ }
745
+ R.mounted + "";
746
+ const se = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, ue = "__vueuse_ssr_handlers__";
747
+ se[ue] = se[ue] || {};
748
+ se[ue];
749
+ function Qe(e, t = !1) {
750
+ const l = b(), o = () => l.value = Boolean(e());
751
+ return o(), Ke(o, t), l;
752
+ }
753
+ function yl(e, t = {}) {
754
+ const l = t ? t.delayEnter : 0, o = t ? t.delayLeave : 0, n = b(!1);
755
+ let r;
756
+ const s = (a) => {
757
+ const c = a ? l : o;
758
+ r && (clearTimeout(r), r = void 0), c ? r = setTimeout(() => n.value = a, c) : n.value = a;
759
+ };
760
+ return window && (A(e, "mouseenter", () => s(!0), { passive: !0 }), A(e, "mouseleave", () => s(!1), { passive: !0 })), n;
761
+ }
762
+ R.mounted + "";
763
+ var Ee = Object.getOwnPropertySymbols, vl = Object.prototype.hasOwnProperty, ml = Object.prototype.propertyIsEnumerable, pl = (e, t) => {
764
+ var l = {};
765
+ for (var o in e)
766
+ vl.call(e, o) && t.indexOf(o) < 0 && (l[o] = e[o]);
767
+ if (e != null && Ee)
768
+ for (var o of Ee(e))
769
+ t.indexOf(o) < 0 && ml.call(e, o) && (l[o] = e[o]);
770
+ return l;
771
+ };
772
+ function hl(e, t, l = {}) {
773
+ const o = l, { window: n = M } = o, r = pl(o, ["window"]);
774
+ let s;
775
+ const a = Qe(() => n && "ResizeObserver" in n), c = () => {
776
+ s && (s.disconnect(), s = void 0);
777
+ }, f = B(() => P(e), (v) => {
778
+ c(), a.value && n && v && (s = new ResizeObserver(t), s.observe(v, r));
779
+ }, { immediate: !0, flush: "post" }), u = () => {
780
+ c(), f();
781
+ };
782
+ return G(u), {
783
+ isSupported: a,
784
+ stop: u
785
+ };
786
+ }
787
+ function bl(e, t = { width: 0, height: 0 }, l = {}) {
788
+ const { window: o = M, box: n = "content-box" } = l, r = x(() => {
789
+ var c, f;
790
+ return (f = (c = P(e)) == null ? void 0 : c.namespaceURI) == null ? void 0 : f.includes("svg");
791
+ }), s = b(t.width), a = b(t.height);
792
+ return hl(e, ([c]) => {
793
+ const f = n === "border-box" ? c.borderBoxSize : n === "content-box" ? c.contentBoxSize : c.devicePixelContentBoxSize;
794
+ if (o && r.value) {
795
+ const u = P(e);
796
+ if (u) {
797
+ const v = o.getComputedStyle(u);
798
+ s.value = parseFloat(v.width), a.value = parseFloat(v.height);
799
+ }
800
+ } else if (f) {
801
+ const u = Array.isArray(f) ? f : [f];
802
+ s.value = u.reduce((v, { inlineSize: i }) => v + i, 0), a.value = u.reduce((v, { blockSize: i }) => v + i, 0);
803
+ } else
804
+ s.value = c.contentRect.width, a.value = c.contentRect.height;
805
+ }, l), B(() => P(e), (c) => {
806
+ s.value = c ? t.width : 0, a.value = c ? t.height : 0;
807
+ }), {
808
+ width: s,
809
+ height: a
810
+ };
811
+ }
812
+ R.mounted + "";
813
+ function Ce(e, { window: t = M, scrollTarget: l } = {}) {
814
+ const o = b(!1), n = () => {
815
+ if (!t)
816
+ return;
817
+ const r = t.document, s = P(e);
818
+ if (!s)
819
+ o.value = !1;
820
+ else {
821
+ const a = s.getBoundingClientRect();
822
+ o.value = a.top <= (t.innerHeight || r.documentElement.clientHeight) && a.left <= (t.innerWidth || r.documentElement.clientWidth) && a.bottom >= 0 && a.right >= 0;
823
+ }
824
+ };
825
+ return B(() => P(e), () => n(), { immediate: !0, flush: "post" }), t && A(l || t, "scroll", n, {
826
+ capture: !1,
827
+ passive: !0
828
+ }), o;
829
+ }
830
+ R.mounted + "";
831
+ const Pe = 1;
832
+ function de(e, t = {}) {
833
+ const {
834
+ throttle: l = 0,
835
+ idle: o = 200,
836
+ onStop: n = z,
837
+ onScroll: r = z,
838
+ offset: s = {
839
+ left: 0,
840
+ right: 0,
841
+ top: 0,
842
+ bottom: 0
843
+ },
844
+ eventListenerOptions: a = {
845
+ capture: !1,
846
+ passive: !0
847
+ },
848
+ behavior: c = "auto"
849
+ } = t, f = b(0), u = b(0), v = x({
850
+ get() {
851
+ return f.value;
852
+ },
853
+ set(O) {
854
+ y(O, void 0);
855
+ }
856
+ }), i = x({
857
+ get() {
858
+ return u.value;
859
+ },
860
+ set(O) {
861
+ y(void 0, O);
862
+ }
863
+ });
864
+ function y(O, T) {
865
+ var D, F, ge;
866
+ const ne = C(e);
867
+ ne && ((ge = ne instanceof Document ? document.body : ne) == null || ge.scrollTo({
868
+ top: (D = C(T)) != null ? D : i.value,
869
+ left: (F = C(O)) != null ? F : v.value,
870
+ behavior: C(c)
871
+ }));
872
+ }
873
+ const d = b(!1), j = X({
874
+ left: !0,
875
+ right: !1,
876
+ top: !0,
877
+ bottom: !1
878
+ }), S = X({
879
+ left: !1,
880
+ right: !1,
881
+ top: !1,
882
+ bottom: !1
883
+ }), Y = (O) => {
884
+ d.value && (d.value = !1, S.left = !1, S.right = !1, S.top = !1, S.bottom = !1, n(O));
885
+ }, oe = Ht(Y, l + o), E = (O) => {
886
+ const T = O.target === document ? O.target.documentElement : O.target, D = T.scrollLeft;
887
+ S.left = D < f.value, S.right = D > u.value, j.left = D <= 0 + (s.left || 0), j.right = D + T.clientWidth >= T.scrollWidth - (s.right || 0) - Pe, f.value = D;
888
+ let F = T.scrollTop;
889
+ O.target === document && !F && (F = document.body.scrollTop), S.top = F < u.value, S.bottom = F > u.value, j.top = F <= 0 + (s.top || 0), j.bottom = F + T.clientHeight >= T.scrollHeight - (s.bottom || 0) - Pe, u.value = F, d.value = !0, oe(O), r(O);
890
+ };
891
+ return A(e, "scroll", l ? Wt(E, l, !0, !1) : E, a), A(e, "scrollend", Y, a), {
892
+ x: v,
893
+ y: i,
894
+ isScrolling: d,
895
+ arrivedState: j,
896
+ directions: S
897
+ };
898
+ }
899
+ var gl = Object.defineProperty, _l = Object.defineProperties, wl = Object.getOwnPropertyDescriptors, Je = Object.getOwnPropertySymbols, Sl = Object.prototype.hasOwnProperty, jl = Object.prototype.propertyIsEnumerable, qe = (e, t, l) => t in e ? gl(e, t, { enumerable: !0, configurable: !0, writable: !0, value: l }) : e[t] = l, Te = (e, t) => {
900
+ for (var l in t || (t = {}))
901
+ Sl.call(t, l) && qe(e, l, t[l]);
902
+ if (Je)
903
+ for (var l of Je(t))
904
+ jl.call(t, l) && qe(e, l, t[l]);
905
+ return e;
906
+ }, kl = (e, t) => _l(e, wl(t));
907
+ function ze(e, t, l = {}) {
908
+ var o, n;
909
+ const r = (o = l.direction) != null ? o : "bottom", s = X(de(e, kl(Te({}, l), {
910
+ offset: Te({
911
+ [r]: (n = l.distance) != null ? n : 0
912
+ }, l.offset)
913
+ })));
914
+ B(() => s.arrivedState[r], async (a) => {
915
+ var c, f;
916
+ if (a) {
917
+ const u = C(e), v = {
918
+ height: (c = u == null ? void 0 : u.scrollHeight) != null ? c : 0,
919
+ width: (f = u == null ? void 0 : u.scrollWidth) != null ? f : 0
920
+ };
921
+ await t(s), l.preserveScrollPosition && u && Me(() => {
922
+ u.scrollTo({
923
+ top: u.scrollHeight - v.height,
924
+ left: u.scrollWidth - v.width
925
+ });
926
+ });
927
+ }
928
+ });
929
+ }
930
+ R.mounted + "";
931
+ function Ae(e, t, l = {}) {
932
+ const {
933
+ root: o,
934
+ rootMargin: n = "0px",
935
+ threshold: r = 0.1,
936
+ window: s = M
937
+ } = l, a = Qe(() => s && "IntersectionObserver" in s);
938
+ let c = z;
939
+ const f = a.value ? B(() => ({
940
+ el: P(e),
941
+ root: P(o)
942
+ }), ({ el: v, root: i }) => {
943
+ if (c(), !v)
944
+ return;
945
+ const y = new IntersectionObserver(t, {
946
+ root: i,
947
+ rootMargin: n,
948
+ threshold: r
949
+ });
950
+ y.observe(v), c = () => {
951
+ y.disconnect(), c = z;
952
+ };
953
+ }, { immediate: !0, flush: "post" }) : z, u = () => {
954
+ c(), f();
955
+ };
956
+ return G(u), {
957
+ isSupported: a,
958
+ stop: u
959
+ };
960
+ }
961
+ R.mounted + "";
962
+ var $l = Object.defineProperty, Vl = Object.defineProperties, xl = Object.getOwnPropertyDescriptors, Fe = Object.getOwnPropertySymbols, Ol = Object.prototype.hasOwnProperty, Il = Object.prototype.propertyIsEnumerable, De = (e, t, l) => t in e ? $l(e, t, { enumerable: !0, configurable: !0, writable: !0, value: l }) : e[t] = l, Bl = (e, t) => {
963
+ for (var l in t || (t = {}))
964
+ Ol.call(t, l) && De(e, l, t[l]);
965
+ if (Fe)
966
+ for (var l of Fe(t))
967
+ Il.call(t, l) && De(e, l, t[l]);
968
+ return e;
969
+ }, Ll = (e, t) => Vl(e, xl(t));
970
+ R.mounted + "";
971
+ function Ze(e) {
972
+ const t = window.getComputedStyle(e);
973
+ if (t.overflowX === "scroll" || t.overflowY === "scroll" || t.overflowX === "auto" && e.clientHeight < e.scrollHeight || t.overflowY === "auto" && e.clientWidth < e.scrollWidth)
974
+ return !0;
975
+ {
976
+ const l = e.parentNode;
977
+ return !l || l.tagName === "BODY" ? !1 : Ze(l);
978
+ }
979
+ }
980
+ function El(e) {
981
+ const t = e || window.event, l = t.target;
982
+ return Ze(l) ? !1 : t.touches.length > 1 ? !0 : (t.preventDefault && t.preventDefault(), !1);
983
+ }
984
+ function Cl(e, t = !1) {
985
+ const l = b(t);
986
+ let o = null, n;
987
+ B(Ut(e), (a) => {
988
+ if (a) {
989
+ const c = a;
990
+ n = c.style.overflow, l.value && (c.style.overflow = "hidden");
991
+ }
992
+ }, {
993
+ immediate: !0
994
+ });
995
+ const r = () => {
996
+ const a = C(e);
997
+ !a || l.value || (ee && (o = A(a, "touchmove", (c) => {
998
+ El(c);
999
+ }, { passive: !1 })), a.style.overflow = "hidden", l.value = !0);
1000
+ }, s = () => {
1001
+ const a = C(e);
1002
+ !a || !l.value || (ee && (o == null || o()), a.style.overflow = n, l.value = !1);
1003
+ };
1004
+ return G(s), x({
1005
+ get() {
1006
+ return l.value;
1007
+ },
1008
+ set(a) {
1009
+ a ? r() : s();
1010
+ }
1011
+ });
1012
+ }
1013
+ const Pl = () => {
1014
+ let e = !1;
1015
+ const t = b(!1);
1016
+ return (l, o) => {
1017
+ if (t.value = o.value, e)
1018
+ return;
1019
+ e = !0;
1020
+ const n = Cl(l, o.value);
1021
+ B(t, (r) => n.value = r);
1022
+ };
1023
+ };
1024
+ Pl();
1025
+ const Ye = ["medium", "small"], Jl = ["id", "tabindex", "aria-disabled", "aria-selected", "title", "aria-label", ".dataLabel", "onClick"], ql = {
1026
+ key: 0,
1027
+ class: "joy-dropdown-list__footer"
1028
+ }, Tl = /* @__PURE__ */ $({
1029
+ __name: "VJoyDropdownList",
1030
+ props: {
1031
+ options: {
1032
+ type: Array,
1033
+ validator(e) {
1034
+ return e.every((l) => Object.keys(l).includes("label"));
1035
+ },
1036
+ default() {
1037
+ return [];
1038
+ }
1039
+ },
1040
+ size: {
1041
+ type: String,
1042
+ default: "medium",
1043
+ validator(e) {
1044
+ return Ye.includes(e);
1045
+ }
1046
+ },
1047
+ modelValue: {
1048
+ type: String
1049
+ },
1050
+ width: {
1051
+ type: String,
1052
+ default: "300"
1053
+ },
1054
+ height: {
1055
+ type: String,
1056
+ default: "300"
1057
+ }
1058
+ },
1059
+ emits: ["update:modelValue", "close:dropdownList"],
1060
+ setup(e, { expose: t, emit: l }) {
1061
+ const o = e, n = b(), r = x(() => (i) => !o.modelValue && !i.value ? !1 : o.modelValue === i.label || o.modelValue === i.value);
1062
+ function s(i) {
1063
+ i.disabled || l("update:modelValue", i.label);
1064
+ }
1065
+ function a() {
1066
+ var i;
1067
+ return Array.from(((i = n.value) == null ? void 0 : i.querySelectorAll("li")) || []);
1068
+ }
1069
+ function c() {
1070
+ const i = a().find((y) => y.getAttribute("aria-selected") === "true");
1071
+ i && (i.focus(), n.value.scrollTo({
1072
+ top: i.offsetTop
1073
+ }));
1074
+ }
1075
+ function f() {
1076
+ return a().find((i) => i === document.activeElement);
1077
+ }
1078
+ function u(i) {
1079
+ var y;
1080
+ if ((i.key === "Escape" || i.key === "Tab") && l("close:dropdownList"), (i.key === "Enter" || i.key === "enter") && (i.preventDefault(), f() && ((y = n.value) != null && y.contains(f())))) {
1081
+ const d = f();
1082
+ if (!d)
1083
+ return;
1084
+ if (d.querySelector("a"))
1085
+ return d.querySelector("a").click();
1086
+ l("update:modelValue", d.dataLabel);
1087
+ }
1088
+ if (i.key === " " && i.preventDefault(), ["ArrowDown", "ArrowUp", "Home", "End"].includes(i.key)) {
1089
+ const d = a(), j = f();
1090
+ let S = d.indexOf(j);
1091
+ if (d.length) {
1092
+ i.preventDefault(), i.key === "ArrowDown" ? S++ : i.key === "ArrowUp" ? S-- : i.key === "Home" ? S = 0 : i.key === "End" && (S = d.length - 1), S < 0 && (S = 0), S > d.length - 1 && (S = 0), v(d[S]);
1093
+ return;
1094
+ }
1095
+ }
1096
+ }
1097
+ function v(i) {
1098
+ i.focus();
1099
+ }
1100
+ return Z(() => {
1101
+ window.addEventListener("keydown", u), c();
1102
+ }), Ne(() => {
1103
+ window.removeEventListener("keydown", u);
1104
+ }), t({
1105
+ isSelected: r
1106
+ }), (i, y) => (m(), p("div", {
1107
+ class: "joy-dropdown-list",
1108
+ style: K({ "max-width": `${e.width}px`, "max-height": `${e.height}px` })
1109
+ }, [
1110
+ h("ul", {
1111
+ ref_key: "listbox",
1112
+ ref: n,
1113
+ role: "listbox",
1114
+ class: "joy-dropdown-list__items",
1115
+ style: K({ "max-height": `${e.height}px` })
1116
+ }, [
1117
+ (m(!0), p(ye, null, ve(e.options, (d) => (m(), p("li", {
1118
+ id: d.id,
1119
+ key: d.label,
1120
+ style: K({ "max-width": `${e.width}px` }),
1121
+ class: k([
1122
+ "joy-dropdown-list__item",
1123
+ `joy-dropdown-list__item--${e.size}`,
1124
+ {
1125
+ "joy-dropdown-list__item--selected": _(r)(d),
1126
+ "joy-dropdown-list__item--disabled": d.disabled
1127
+ }
1128
+ ]),
1129
+ tabindex: d.disabled ? void 0 : 0,
1130
+ "aria-disabled": d.disabled,
1131
+ "aria-selected": _(r)(d),
1132
+ title: d.label,
1133
+ "aria-label": d.label,
1134
+ ".dataLabel": d.value || d.label,
1135
+ role: "option",
1136
+ onClick: (j) => s(d)
1137
+ }, [
1138
+ g(i.$slots, "label", me(pe(d)), () => [
1139
+ h("span", null, I(d.label), 1)
1140
+ ], !0)
1141
+ ], 14, Jl))), 128))
1142
+ ], 4),
1143
+ i.$slots.footer ? (m(), p("footer", ql, [
1144
+ g(i.$slots, "footer", {}, void 0, !0)
1145
+ ])) : w("", !0)
1146
+ ], 4));
1147
+ }
1148
+ });
1149
+ const Xe = /* @__PURE__ */ V(Tl, [["__scopeId", "data-v-5ab31622"]]);
1150
+ function zl(e) {
1151
+ const t = () => e();
1152
+ Z(() => {
1153
+ window.addEventListener("resize", t);
1154
+ }), Ne(() => {
1155
+ window.removeEventListener("resize", t);
1156
+ });
1157
+ }
1158
+ const Al = /* @__PURE__ */ $({
1159
+ __name: "VJoyDropdown",
1160
+ props: {
1161
+ /** DOM valid selector to give to Vue3 Teleport "to" property */
1162
+ appendTo: {
1163
+ type: String,
1164
+ default: "body"
1165
+ },
1166
+ /**
1167
+ * Disable teleport for testing purpose mostly.
1168
+ */
1169
+ disableTeleport: {
1170
+ type: Boolean,
1171
+ default: !1
1172
+ },
1173
+ /** close the dropdown list when clicking on any item. Default to false */
1174
+ closeOnSelect: {
1175
+ type: Boolean,
1176
+ default: !0
1177
+ },
1178
+ /** Dropdown vertical position according to the trigger */
1179
+ direction: {
1180
+ type: String,
1181
+ default: "down"
1182
+ },
1183
+ /** Dropdown horizontal justify according to the trigger */
1184
+ justify: {
1185
+ type: String,
1186
+ default: "left"
1187
+ },
1188
+ /**
1189
+ * ```
1190
+ * interface Option {id?: string; value?: string; label: string; href?: string; disabled?:boolean; checked?:boolean}
1191
+ * ```
1192
+ */
1193
+ options: {
1194
+ type: Array,
1195
+ validator(e) {
1196
+ return e.every((l) => Object.keys(l).includes("label"));
1197
+ },
1198
+ default() {
1199
+ return [];
1200
+ }
1201
+ },
1202
+ size: {
1203
+ type: String,
1204
+ default: "medium",
1205
+ validator(e) {
1206
+ return Ye.includes(e);
1207
+ }
1208
+ },
1209
+ modelValue: {
1210
+ type: String,
1211
+ default: ""
1212
+ },
1213
+ /**
1214
+ * Space between the trigger and the list
1215
+ */
1216
+ dropdownGap: {
1217
+ type: String,
1218
+ default: "16"
1219
+ },
1220
+ /**
1221
+ * Max-width of the dropdown list
1222
+ */
1223
+ width: {
1224
+ type: String,
1225
+ default: "300"
1226
+ },
1227
+ /**
1228
+ * Max-height of the dropdown list
1229
+ */
1230
+ height: {
1231
+ type: String,
1232
+ default: "300"
1233
+ }
1234
+ },
1235
+ emits: ["update:modelValue"],
1236
+ setup(e, { expose: t, emit: l }) {
1237
+ const o = e, n = b(!1), r = b(null), s = b(), a = b(null), c = b(null), f = b(!1), u = {
1238
+ ignore: [s, ".joy-dropdown__list"]
1239
+ };
1240
+ let v = null;
1241
+ const i = X({
1242
+ left: "auto",
1243
+ top: "0px",
1244
+ right: "auto"
1245
+ });
1246
+ function y() {
1247
+ v && clearTimeout(v), f.value = !0, v = setTimeout(() => {
1248
+ n.value = !1, f.value = !1;
1249
+ }, 300);
1250
+ }
1251
+ function d(E) {
1252
+ f.value = !1, v && clearTimeout(v), Y(), c.value = E.target, n.value = !0;
1253
+ }
1254
+ function j() {
1255
+ y(), S();
1256
+ }
1257
+ function S() {
1258
+ c.value && c.value.focus();
1259
+ }
1260
+ function Y() {
1261
+ const E = s.value.getBoundingClientRect(), O = document.documentElement.scrollTop + E.top, T = E.height, D = E.left, F = E.width;
1262
+ o.justify === "left" ? i.left = D + "px" : i.left = D + F - parseInt(o.width) + "px", o.direction === "down" ? i.top = O + T + parseInt(o.dropdownGap) + "px" : i.top = O - (parseInt(o.height) + parseInt(o.dropdownGap)) + "px";
1263
+ }
1264
+ function oe(E) {
1265
+ l("update:modelValue", E), o.closeOnSelect && (y(), S());
1266
+ }
1267
+ return zl(y), t({
1268
+ showDropdownList: n
1269
+ }), (E, O) => (m(), q(_(il), {
1270
+ ref_key: "dropdown",
1271
+ ref: r,
1272
+ options: u,
1273
+ class: "joy-dropdown",
1274
+ onTrigger: y
1275
+ }, {
1276
+ default: L(() => [
1277
+ h("div", {
1278
+ ref_key: "button",
1279
+ ref: s,
1280
+ class: "joy-dropdown__button",
1281
+ onClick: d
1282
+ }, [
1283
+ g(E.$slots, "dropdown-button", {}, void 0, !0)
1284
+ ], 512),
1285
+ (m(), q(rt, {
1286
+ to: e.appendTo,
1287
+ disabled: e.disableTeleport
1288
+ }, [
1289
+ n.value ? (m(), p("div", {
1290
+ key: 0,
1291
+ ref_key: "list",
1292
+ ref: a,
1293
+ class: k([
1294
+ "joy-dropdown__list",
1295
+ `joy-dropdown__list--${e.direction}`,
1296
+ {
1297
+ "joy-dropdown__list--visible": !f.value,
1298
+ "joy-dropdown__list--hiding": f.value
1299
+ }
1300
+ ]),
1301
+ style: K({
1302
+ top: i.top,
1303
+ left: i.left
1304
+ })
1305
+ }, [
1306
+ fe(Xe, {
1307
+ "model-value": e.modelValue,
1308
+ options: e.options,
1309
+ size: e.size,
1310
+ width: e.width,
1311
+ height: e.height,
1312
+ "onUpdate:modelValue": oe,
1313
+ "onClose:dropdownList": j
1314
+ }, {
1315
+ label: L((T) => [
1316
+ g(E.$slots, "dropdown-item", me(pe(T)), () => [
1317
+ h("span", null, I(T.label), 1)
1318
+ ], !0)
1319
+ ]),
1320
+ _: 3
1321
+ }, 8, ["model-value", "options", "size", "width", "height"])
1322
+ ], 6)) : w("", !0)
1323
+ ], 8, ["to", "disabled"]))
1324
+ ]),
1325
+ _: 3
1326
+ }, 512));
1327
+ }
1328
+ });
1329
+ const Fl = /* @__PURE__ */ V(Al, [["__scopeId", "data-v-49159b35"]]), Dl = (e) => (te("data-v-50e209d6"), e = e(), le(), e), Rl = ["aria-hidden"], Ml = /* @__PURE__ */ Dl(() => /* @__PURE__ */ h("joy-icon", {
362
1330
  "custom-class": "joy-icon-error",
363
1331
  name: "warning-triangle"
364
- }, null, -1)), Be = /* @__PURE__ */ p({
1332
+ }, null, -1)), Nl = /* @__PURE__ */ $({
365
1333
  __name: "VJoyFormError",
366
1334
  props: {
367
1335
  /** In some cases you'll need to inject the error in the DOM but hide it. Visible by default */
@@ -373,36 +1341,36 @@ const Ve = /* @__PURE__ */ _($e, [["__scopeId", "data-v-01418e7e"]]), xe = (e) =
373
1341
  noHtmlErrorText: String
374
1342
  },
375
1343
  setup(e) {
376
- return (a, l) => (o(), d("div", {
1344
+ return (t, l) => (m(), p("div", {
377
1345
  "aria-hidden": e.visible,
378
- class: b(["joy-form-error", { "joy-has-error": e.visible }]),
1346
+ class: k(["joy-form-error", { "joy-has-error": e.visible }]),
379
1347
  role: "alert"
380
1348
  }, [
381
- qe,
382
- u("div", null, [
383
- c(a.$slots, "default", {}, () => [
384
- q($(e.noHtmlErrorText), 1)
1349
+ Ml,
1350
+ h("div", null, [
1351
+ g(t.$slots, "default", {}, () => [
1352
+ J(I(e.noHtmlErrorText), 1)
385
1353
  ], !0)
386
1354
  ])
387
- ], 10, Ie));
1355
+ ], 10, Rl));
388
1356
  }
389
1357
  });
390
- const G = /* @__PURE__ */ _(Be, [["__scopeId", "data-v-50e209d6"]]);
391
- function Je(e) {
392
- let a;
1358
+ const et = /* @__PURE__ */ V(Nl, [["__scopeId", "data-v-50e209d6"]]);
1359
+ function Hl(e) {
1360
+ let t;
393
1361
  switch (e) {
394
1362
  case "error":
395
- a = "warning-triangle";
1363
+ t = "warning-triangle";
396
1364
  break;
397
1365
  case "success":
398
- a = "check";
1366
+ t = "check";
399
1367
  break;
400
1368
  default:
401
- a = "info-circle";
1369
+ t = "info-circle";
402
1370
  }
403
- return a;
1371
+ return t;
404
1372
  }
405
- const Ce = [...ee], we = ["name"], Le = { class: "joy-highlight--text" }, ze = /* @__PURE__ */ p({
1373
+ const Wl = [...pt], Ul = ["name"], Gl = { class: "joy-highlight--text" }, Kl = /* @__PURE__ */ $({
406
1374
  __name: "VJoyHighlight",
407
1375
  props: {
408
1376
  accent: {
@@ -418,51 +1386,51 @@ const Ce = [...ee], we = ["name"], Le = { class: "joy-highlight--text" }, ze = /
418
1386
  type: String,
419
1387
  default: "neutral",
420
1388
  validator(e) {
421
- return Ce.includes(e);
1389
+ return Wl.includes(e);
422
1390
  }
423
1391
  }
424
1392
  },
425
- setup(e, { expose: a }) {
426
- const l = e, t = J(() => l.icon ? l.icon : Je(l.level));
427
- return a({
428
- getRelevantIcon: t
429
- }), (i, s) => (o(), d("div", {
430
- class: b([
1393
+ setup(e, { expose: t }) {
1394
+ const l = e, o = x(() => l.icon ? l.icon : Hl(l.level));
1395
+ return t({
1396
+ getRelevantIcon: o
1397
+ }), (n, r) => (m(), p("div", {
1398
+ class: k([
431
1399
  "joy-highlight",
432
1400
  `joy-highlight_${e.level}`,
433
1401
  {
434
1402
  "joy-highlight__accent": e.accent,
435
- "joy-highlight__titled": i.$slots["highlight-title"]
1403
+ "joy-highlight__titled": n.$slots["highlight-title"]
436
1404
  }
437
1405
  ])
438
1406
  }, [
439
- e.displayIcon ? (o(), d("joy-icon", {
1407
+ e.displayIcon ? (m(), p("joy-icon", {
440
1408
  key: 0,
441
- name: m(t)
442
- }, null, 8, we)) : y("", !0),
443
- u("div", Le, [
444
- u("strong", null, [
445
- c(i.$slots, "highlight-title", {}, void 0, !0)
1409
+ name: _(o)
1410
+ }, null, 8, Ul)) : w("", !0),
1411
+ h("div", Gl, [
1412
+ h("strong", null, [
1413
+ g(n.$slots, "highlight-title", {}, void 0, !0)
446
1414
  ]),
447
- c(i.$slots, "default", {}, void 0, !0)
1415
+ g(n.$slots, "default", {}, void 0, !0)
448
1416
  ])
449
1417
  ], 2));
450
1418
  }
451
1419
  });
452
- const Me = /* @__PURE__ */ _(ze, [["__scopeId", "data-v-a0ff7a60"]]), Ee = ["small", "medium", "large"], Ne = {
1420
+ const Ql = /* @__PURE__ */ V(Kl, [["__scopeId", "data-v-a0ff7a60"]]), Zl = ["small", "medium", "large"], Yl = {
453
1421
  key: 0,
454
1422
  class: "joy-label-required"
455
- }, Te = {
1423
+ }, Xl = {
456
1424
  key: 1,
457
1425
  class: "joy-label-optional"
458
- }, Oe = /* @__PURE__ */ p({
1426
+ }, eo = /* @__PURE__ */ $({
459
1427
  __name: "VJoyLabel",
460
1428
  props: {
461
1429
  size: {
462
1430
  type: String,
463
1431
  default: "medium",
464
1432
  validator(e) {
465
- return Ee.includes(e);
1433
+ return Zl.includes(e);
466
1434
  }
467
1435
  },
468
1436
  tagName: {
@@ -478,19 +1446,19 @@ const Me = /* @__PURE__ */ _(ze, [["__scopeId", "data-v-a0ff7a60"]]), Ee = ["sma
478
1446
  }
479
1447
  },
480
1448
  setup(e) {
481
- return (a, l) => (o(), B(E(e.tagName), L({
1449
+ return (t, l) => (m(), q(ce(e.tagName), Q({
482
1450
  class: ["joy-label", `joy-label--${e.size}`]
483
- }, a.$attrs), {
484
- default: I(() => [
485
- c(a.$slots, "default", {}, void 0, !0),
486
- e.required ? (o(), d("span", Ne, "*")) : y("", !0),
487
- e.optionalLabel ? (o(), d("span", Te, "- " + $(e.optionalLabel), 1)) : y("", !0)
1451
+ }, t.$attrs), {
1452
+ default: L(() => [
1453
+ g(t.$slots, "default", {}, void 0, !0),
1454
+ e.required ? (m(), p("span", Yl, "*")) : w("", !0),
1455
+ e.optionalLabel ? (m(), p("span", Xl, "- " + I(e.optionalLabel), 1)) : w("", !0)
488
1456
  ]),
489
1457
  _: 3
490
1458
  }, 16, ["class"]));
491
1459
  }
492
1460
  });
493
- const C = /* @__PURE__ */ _(Oe, [["__scopeId", "data-v-1e682734"]]), Re = ["large", "medium", "small"], Ae = ["id", "disabled", "type", "value"], Fe = ["name"], Pe = ["data-unit"], He = /* @__PURE__ */ p({
1461
+ const N = /* @__PURE__ */ V(eo, [["__scopeId", "data-v-1e682734"]]), to = ["large", "medium", "small"], lo = ["id", "disabled", "type", "value"], oo = ["name"], no = ["data-unit"], ao = /* @__PURE__ */ $({
494
1462
  __name: "VJoyInput",
495
1463
  props: {
496
1464
  disabled: {
@@ -541,7 +1509,7 @@ const C = /* @__PURE__ */ _(Oe, [["__scopeId", "data-v-1e682734"]]), Re = ["larg
541
1509
  type: String,
542
1510
  default: "medium",
543
1511
  validator(e) {
544
- return Re.includes(e);
1512
+ return to.includes(e);
545
1513
  }
546
1514
  },
547
1515
  type: String,
@@ -549,74 +1517,74 @@ const C = /* @__PURE__ */ _(Oe, [["__scopeId", "data-v-1e682734"]]), Re = ["larg
549
1517
  unit: String
550
1518
  },
551
1519
  emits: ["update:modelValue"],
552
- setup(e, { emit: a }) {
553
- const l = e, t = S(), i = S(), s = O(), f = w(), n = S(!1), r = J(() => l.clearable && l.modelValue.length > 0 && !l.unit), g = J(() => f.default && f.default()), k = J(() => {
554
- var v, h;
555
- return !!((v = i.value) != null && v.closest("joy-wrapper")) || !!((h = i.value) != null && h.closest(".joy-wrapper"));
556
- }), x = S(l.type);
557
- W(() => {
558
- x.value = l.unit ? "number" : l.unit || "text";
1520
+ setup(e, { emit: t }) {
1521
+ const l = e, o = b(), n = b(), r = Re(), s = W(), a = b(!1), c = x(() => l.clearable && l.modelValue.length > 0 && !l.unit), f = x(() => s.default && s.default()), u = x(() => {
1522
+ var y, d;
1523
+ return !!((y = n.value) != null && y.closest("joy-wrapper")) || !!((d = n.value) != null && d.closest(".joy-wrapper"));
1524
+ }), v = b(l.type);
1525
+ st(() => {
1526
+ v.value = l.unit ? "number" : l.unit || "text";
559
1527
  });
560
- const j = {
1528
+ const i = {
561
1529
  onFocus: () => {
562
- n.value = !0;
1530
+ a.value = !0;
563
1531
  },
564
1532
  onBlur: () => {
565
- n.value = !1;
1533
+ a.value = !1;
566
1534
  },
567
- onInput: (v) => {
568
- let h = v.target.value;
569
- a("update:modelValue", h);
1535
+ onInput: (y) => {
1536
+ let d = y.target.value;
1537
+ t("update:modelValue", d);
570
1538
  },
571
1539
  clearValue: () => {
572
- l.disabled || a("update:modelValue", "");
1540
+ l.disabled || t("update:modelValue", "");
573
1541
  }
574
1542
  };
575
- return (v, h) => (o(), d("div", {
1543
+ return (y, d) => (m(), p("div", {
576
1544
  ref_key: "root",
577
- ref: i,
578
- class: b([`joy-input--${l.size}`])
1545
+ ref: n,
1546
+ class: k([`joy-input--${l.size}`])
579
1547
  }, [
580
- u("div", {
581
- class: b([
1548
+ h("div", {
1549
+ class: k([
582
1550
  "joy-input",
583
1551
  {
584
- "joy-input--focusing": n.value,
1552
+ "joy-input--focusing": a.value,
585
1553
  "joy-input--disabled": e.disabled,
586
1554
  "joy-input--invalid": e.invalid,
587
- "joy-input--valid": !e.invalid && !m(s).disabled
1555
+ "joy-input--valid": !e.invalid && !_(r).disabled
588
1556
  }
589
1557
  ])
590
1558
  }, [
591
- m(g) || e.label ? (o(), B(C, {
1559
+ _(f) || e.label ? (m(), q(N, {
592
1560
  key: 0,
593
1561
  for: e.name,
594
1562
  required: e.required && e.requiredMark,
595
1563
  "optional-label": e.optionalLabel,
596
1564
  size: e.labelSize
597
1565
  }, {
598
- default: I(() => [
599
- c(v.$slots, "default", {}, () => [
600
- q($(e.label), 1)
1566
+ default: L(() => [
1567
+ g(y.$slots, "default", {}, () => [
1568
+ J(I(e.label), 1)
601
1569
  ], !0)
602
1570
  ]),
603
1571
  _: 3
604
- }, 8, ["for", "required", "optional-label", "size"])) : y("", !0),
605
- u("div", {
606
- class: b([
1572
+ }, 8, ["for", "required", "optional-label", "size"])) : w("", !0),
1573
+ h("div", {
1574
+ class: k([
607
1575
  "joy-input--wrapper",
608
1576
  {
609
1577
  "joy-input--wrapper-has-icon": !!e.icon,
610
1578
  "joy-input--wrapper---clearable": e.clearable,
611
1579
  "joy-input--wrapper-unit": !!e.unit,
612
- "joy-input--wrapper-margin": !m(k)
1580
+ "joy-input--wrapper-margin": !_(u)
613
1581
  }
614
1582
  ])
615
1583
  }, [
616
- u("input", L(v.$attrs, {
1584
+ h("input", Q(y.$attrs, {
617
1585
  id: l.name,
618
1586
  ref_key: "input",
619
- ref: t,
1587
+ ref: o,
620
1588
  disabled: e.disabled,
621
1589
  class: [
622
1590
  {
@@ -624,40 +1592,40 @@ const C = /* @__PURE__ */ _(Oe, [["__scopeId", "data-v-1e682734"]]), Re = ["larg
624
1592
  "joy-input--field-invalid": e.invalid
625
1593
  }
626
1594
  ],
627
- type: x.value,
1595
+ type: v.value,
628
1596
  value: e.modelValue,
629
- onFocus: h[0] || (h[0] = //@ts-ignore
630
- (...V) => j.onFocus && j.onFocus(...V)),
631
- onBlur: h[1] || (h[1] = //@ts-ignore
632
- (...V) => j.onBlur && j.onBlur(...V)),
633
- onInput: h[2] || (h[2] = //@ts-ignore
634
- (...V) => j.onInput && j.onInput(...V))
635
- }), null, 16, Ae),
636
- m(r) ? (o(), d("joy-icon", {
1597
+ onFocus: d[0] || (d[0] = //@ts-ignore
1598
+ (...j) => i.onFocus && i.onFocus(...j)),
1599
+ onBlur: d[1] || (d[1] = //@ts-ignore
1600
+ (...j) => i.onBlur && i.onBlur(...j)),
1601
+ onInput: d[2] || (d[2] = //@ts-ignore
1602
+ (...j) => i.onInput && i.onInput(...j))
1603
+ }), null, 16, lo),
1604
+ _(c) ? (m(), p("joy-icon", {
637
1605
  key: 0,
638
1606
  size: "xxsmall",
639
1607
  name: "cross",
640
1608
  class: "joy-input--clear",
641
- onClick: h[3] || (h[3] = //@ts-ignore
642
- (...V) => j.clearValue && j.clearValue(...V))
643
- })) : y("", !0),
644
- e.icon && !e.clearable ? (o(), d("joy-icon", {
1609
+ onClick: d[3] || (d[3] = //@ts-ignore
1610
+ (...j) => i.clearValue && i.clearValue(...j))
1611
+ })) : w("", !0),
1612
+ e.icon && !e.clearable ? (m(), p("joy-icon", {
645
1613
  key: 1,
646
1614
  role: "img",
647
1615
  class: "joy-input--decorative-icon",
648
1616
  name: e.icon
649
- }, null, 8, Fe)) : y("", !0),
650
- e.unit ? (o(), d("div", {
1617
+ }, null, 8, oo)) : w("", !0),
1618
+ e.unit ? (m(), p("div", {
651
1619
  key: 2,
652
1620
  "data-unit": e.unit,
653
1621
  class: "joy-input--unit"
654
- }, null, 8, Pe)) : y("", !0)
1622
+ }, null, 8, no)) : w("", !0)
655
1623
  ], 2)
656
1624
  ], 2)
657
1625
  ], 2));
658
1626
  }
659
1627
  });
660
- const Ge = /* @__PURE__ */ _(He, [["__scopeId", "data-v-8258d6d7"]]), Ue = ["teal", "white"], We = ["href"], De = ["color", "name"], Ze = /* @__PURE__ */ p({
1628
+ const io = /* @__PURE__ */ V(ao, [["__scopeId", "data-v-8258d6d7"]]), ro = ["teal", "white"], so = ["href"], uo = ["color", "name"], co = /* @__PURE__ */ $({
661
1629
  __name: "VJoyLink",
662
1630
  props: {
663
1631
  href: {
@@ -668,36 +1636,36 @@ const Ge = /* @__PURE__ */ _(He, [["__scopeId", "data-v-8258d6d7"]]), Ue = ["tea
668
1636
  type: String,
669
1637
  default: "teal",
670
1638
  validator(e) {
671
- return Ue.includes(e);
1639
+ return ro.includes(e);
672
1640
  }
673
1641
  },
674
1642
  icon: String
675
1643
  },
676
1644
  setup(e) {
677
- const a = e, l = J(() => a.color === "white" ? "white" : "teal");
678
- return (t, i) => (o(), d("a", L({ href: e.href }, t.$attrs, {
1645
+ const t = e, l = x(() => t.color === "white" ? "white" : "teal");
1646
+ return (o, n) => (m(), p("a", Q({ href: e.href }, o.$attrs, {
679
1647
  class: ["joy-link", `joy-link_${e.color}`]
680
1648
  }), [
681
- e.icon ? (o(), d("joy-icon", {
1649
+ e.icon ? (m(), p("joy-icon", {
682
1650
  key: 0,
683
- color: m(l),
1651
+ color: _(l),
684
1652
  name: e.icon
685
- }, null, 8, De)) : y("", !0),
686
- c(t.$slots, "default", {}, void 0, !0)
687
- ], 16, We));
1653
+ }, null, 8, uo)) : w("", !0),
1654
+ g(o.$slots, "default", {}, void 0, !0)
1655
+ ], 16, so));
688
1656
  }
689
1657
  });
690
- const Ke = /* @__PURE__ */ _(Ze, [["__scopeId", "data-v-7ef59bc8"]]), Qe = ["id"], Xe = {
691
- class: /* @__PURE__ */ b(["joy-multi-checkbox"])
692
- }, Ye = /* @__PURE__ */ p({
1658
+ const fo = /* @__PURE__ */ V(co, [["__scopeId", "data-v-7ef59bc8"]]), yo = ["id"], vo = {
1659
+ class: /* @__PURE__ */ k(["joy-multi-checkbox"])
1660
+ }, mo = /* @__PURE__ */ $({
693
1661
  __name: "VJoyMultiCheckbox",
694
1662
  props: {
695
1663
  options: {
696
1664
  type: Array,
697
1665
  required: !0,
698
1666
  validator(e) {
699
- const a = e.every((t) => Object.keys(t).includes("value")), l = e.every((t) => Object.keys(t).includes("label"));
700
- return a && l;
1667
+ const t = e.every((o) => Object.keys(o).includes("value")), l = e.every((o) => Object.keys(o).includes("label"));
1668
+ return t && l;
701
1669
  }
702
1670
  },
703
1671
  id: String,
@@ -727,61 +1695,63 @@ const Ke = /* @__PURE__ */ _(Ze, [["__scopeId", "data-v-7ef59bc8"]]), Qe = ["id"
727
1695
  }
728
1696
  },
729
1697
  emits: ["update:value"],
730
- setup(e, { emit: a }) {
1698
+ setup(e, { emit: t }) {
731
1699
  const l = e;
732
- function t(s) {
733
- return l.value.includes(s.value);
1700
+ function o(r) {
1701
+ return l.value.includes(r.value);
734
1702
  }
735
- function i(s, f) {
736
- let n = [...l.value || []];
737
- f ? n.push(s) : n.splice(n.indexOf(s), 1), a("update:value", n);
1703
+ function n(r, s) {
1704
+ let a = [...l.value || []];
1705
+ s ? a.push(r) : a.splice(a.indexOf(r), 1), t("update:value", a);
738
1706
  }
739
- return (s, f) => (o(), d("fieldset", {
1707
+ return (r, s) => (m(), p("fieldset", {
740
1708
  id: e.id,
741
1709
  class: "joy-multi-checkbox__wrapper"
742
1710
  }, [
743
- e.label ? (o(), B(m(C), {
1711
+ e.label ? (m(), q(_(N), {
744
1712
  key: 0,
745
1713
  "tag-name": "legend",
746
1714
  required: e.required && e.requiredMark,
747
1715
  "optional-label": e.optionalLabel,
748
1716
  size: e.labelSize
749
1717
  }, {
750
- default: I(() => [
751
- q($(e.label), 1)
1718
+ default: L(() => [
1719
+ J(I(e.label), 1)
752
1720
  ]),
753
1721
  _: 1
754
- }, 8, ["required", "optional-label", "size"])) : y("", !0),
755
- u("div", Xe, [
756
- (o(!0), d(A, null, F(e.options, (n) => (o(), B(m(T), {
757
- id: n.id,
758
- key: n.id,
759
- name: n.name,
760
- value: n.value,
761
- checked: t(n),
762
- "onUpdate:checked": (r) => i(n.value, r)
1722
+ }, 8, ["required", "optional-label", "size"])) : w("", !0),
1723
+ h("div", vo, [
1724
+ (m(!0), p(ye, null, ve(e.options, (a) => (m(), q(_(he), {
1725
+ id: a.id,
1726
+ key: a.id,
1727
+ name: a.name,
1728
+ value: a.value,
1729
+ checked: o(a),
1730
+ "onUpdate:checked": (c) => n(a.value, c)
763
1731
  }, {
764
- default: I(() => [
765
- q($(n.label), 1)
1732
+ default: L(() => [
1733
+ g(r.$slots, "checkbox", me(pe(a)), () => [
1734
+ J(I(a.label), 1)
1735
+ ], !0)
766
1736
  ]),
767
1737
  _: 2
768
1738
  }, 1032, ["id", "name", "value", "checked", "onUpdate:checked"]))), 128))
769
1739
  ])
770
- ], 8, Qe));
1740
+ ], 8, yo));
771
1741
  }
772
1742
  });
773
- const et = /* @__PURE__ */ _(Ye, [["__scopeId", "data-v-b2679b58"]]), tt = ["small", "medium", "large"], lt = {
774
- class: /* @__PURE__ */ b(["joy-panel__header"])
775
- }, at = {
1743
+ const po = /* @__PURE__ */ V(mo, [["__scopeId", "data-v-f4301a1f"]]), ho = ["small", "medium", "large"], bo = {
1744
+ class: /* @__PURE__ */ k(["joy-panel__header"])
1745
+ }, go = {
776
1746
  key: 0,
777
1747
  class: "joy-panel__header-title"
778
- }, nt = {
1748
+ }, _o = {
779
1749
  key: 1,
780
1750
  class: "joy-panel__header-action"
781
- }, ot = {
1751
+ }, wo = {
782
1752
  key: 2,
783
1753
  class: "joy-panel__header-subtitle"
784
- }, it = { class: "joy-panel__body" }, dt = { class: "joy-panel__footer" }, ut = /* @__PURE__ */ p({
1754
+ }, So = { class: "joy-panel__body" }, jo = { class: "joy-panel__footer" }, ko = /* @__PURE__ */ $({
785
1755
  __name: "VJoyPanel",
786
1756
  props: {
787
1757
  flex: {
@@ -795,62 +1765,62 @@ const et = /* @__PURE__ */ _(Ye, [["__scopeId", "data-v-b2679b58"]]), tt = ["sma
795
1765
  type: String,
796
1766
  defaut: "medium",
797
1767
  validator(e) {
798
- return tt.includes(e);
1768
+ return ho.includes(e);
799
1769
  }
800
1770
  }
801
1771
  },
802
1772
  setup(e) {
803
- const a = w(), l = S(), t = J(() => {
804
- var i;
805
- return (i = l.value) == null ? void 0 : i.closest(".joy-wrapper");
1773
+ const t = W(), l = b(), o = x(() => {
1774
+ var n;
1775
+ return (n = l.value) == null ? void 0 : n.closest(".joy-wrapper");
806
1776
  });
807
- return (i, s) => (o(), d("section", {
1777
+ return (n, r) => (m(), p("section", {
808
1778
  ref_key: "panel",
809
1779
  ref: l,
810
- style: D({ flex: e.flex }),
811
- class: b(["joy-panel", `joy-panel--${e.padding}`, { "joy-panel--no-margin": e.noMargin || m(t) }])
1780
+ style: K({ flex: e.flex }),
1781
+ class: k(["joy-panel", `joy-panel--${e.padding}`, { "joy-panel--no-margin": e.noMargin || _(o) }])
812
1782
  }, [
813
- u("header", lt, [
814
- m(a)["panel-title"] ? (o(), d("div", at, [
815
- c(i.$slots, "panel-title", {}, void 0, !0)
816
- ])) : y("", !0),
817
- m(a)["panel-action"] ? (o(), d("div", nt, [
818
- c(i.$slots, "panel-title-action", {}, void 0, !0)
819
- ])) : y("", !0),
820
- m(a)["panel-subtitle"] ? (o(), d("div", ot, [
821
- c(i.$slots, "panel-subtitle", {}, void 0, !0)
822
- ])) : y("", !0)
1783
+ h("header", bo, [
1784
+ _(t)["panel-title"] ? (m(), p("div", go, [
1785
+ g(n.$slots, "panel-title", {}, void 0, !0)
1786
+ ])) : w("", !0),
1787
+ _(t)["panel-action"] ? (m(), p("div", _o, [
1788
+ g(n.$slots, "panel-title-action", {}, void 0, !0)
1789
+ ])) : w("", !0),
1790
+ _(t)["panel-subtitle"] ? (m(), p("div", wo, [
1791
+ g(n.$slots, "panel-subtitle", {}, void 0, !0)
1792
+ ])) : w("", !0)
823
1793
  ]),
824
- u("div", it, [
825
- c(i.$slots, "panel-body", {}, void 0, !0)
1794
+ h("div", So, [
1795
+ g(n.$slots, "panel-body", {}, void 0, !0)
826
1796
  ]),
827
- u("footer", dt, [
828
- c(i.$slots, "panel-action", {}, void 0, !0)
1797
+ h("footer", jo, [
1798
+ g(n.$slots, "panel-action", {}, void 0, !0)
829
1799
  ])
830
1800
  ], 6));
831
1801
  }
832
1802
  });
833
- const st = /* @__PURE__ */ _(ut, [["__scopeId", "data-v-2e2ef043"]]), rt = { class: "joy-panel-section" }, ct = {
1803
+ const $o = /* @__PURE__ */ V(ko, [["__scopeId", "data-v-2e2ef043"]]), Vo = { class: "joy-panel-section" }, xo = {
834
1804
  key: 0,
835
1805
  class: "joy-panel-section__title"
836
- }, yt = {
1806
+ }, Oo = {
837
1807
  key: 1,
838
1808
  class: "joy-panel-section__content"
839
- }, mt = /* @__PURE__ */ p({
1809
+ }, Io = /* @__PURE__ */ $({
840
1810
  __name: "VJoyPanelSection",
841
1811
  setup(e) {
842
- const a = w();
843
- return (l, t) => (o(), d("div", rt, [
844
- m(a)["panel-section-title"] ? (o(), d("div", ct, [
845
- c(l.$slots, "panel-section-title", {}, void 0, !0)
846
- ])) : y("", !0),
847
- m(a)["panel-section-content"] ? (o(), d("div", yt, [
848
- c(l.$slots, "panel-section-content", {}, void 0, !0)
849
- ])) : y("", !0)
1812
+ const t = W();
1813
+ return (l, o) => (m(), p("div", Vo, [
1814
+ _(t)["panel-section-title"] ? (m(), p("div", xo, [
1815
+ g(l.$slots, "panel-section-title", {}, void 0, !0)
1816
+ ])) : w("", !0),
1817
+ _(t)["panel-section-content"] ? (m(), p("div", Oo, [
1818
+ g(l.$slots, "panel-section-content", {}, void 0, !0)
1819
+ ])) : w("", !0)
850
1820
  ]));
851
1821
  }
852
1822
  });
853
- const ft = /* @__PURE__ */ _(mt, [["__scopeId", "data-v-d88510ab"]]), vt = ["id", "value", "checked", "disabled", "required", "name"], bt = { class: "joy-radio-label" }, gt = { class: "joy-radio-content__wrapper" }, ht = { class: "joy-radio-content" }, pt = /* @__PURE__ */ p({
1823
+ const Bo = /* @__PURE__ */ V(Io, [["__scopeId", "data-v-d88510ab"]]), Lo = ["id", "value", "checked", "disabled", "required", "name"], Eo = { class: "joy-radio-label" }, Co = { class: "joy-radio-content__wrapper" }, Po = { class: "joy-radio-content" }, Jo = /* @__PURE__ */ $({
854
1824
  __name: "VJoyRadio",
855
1825
  props: {
856
1826
  disabled: {
@@ -885,66 +1855,77 @@ const ft = /* @__PURE__ */ _(mt, [["__scopeId", "data-v-d88510ab"]]), vt = ["id"
885
1855
  }
886
1856
  },
887
1857
  emits: ["update:modelValue"],
888
- setup(e, { expose: a, emit: l }) {
889
- const t = e, i = S(!1), s = S(null), f = S(null), n = w(), r = J(() => !t.modelValue || !t.value ? !1 : t.modelValue === t.value);
890
- function g() {
891
- i.value = !!n["expandable-content"] && r.value;
1858
+ setup(e, { expose: t, emit: l }) {
1859
+ const o = e, n = b(!1), r = b(!1), s = b(null), a = b(null), c = W(), f = x(() => !o.modelValue || !o.value ? !1 : o.modelValue === o.value);
1860
+ function u() {
1861
+ n.value = !!c["expandable-content"] && f.value;
892
1862
  }
893
- function k() {
894
- l("update:modelValue", t.value), g();
1863
+ function v() {
1864
+ l("update:modelValue", o.value), u();
1865
+ }
1866
+ Z(() => {
1867
+ o.theme === "outline" && u();
1868
+ });
1869
+ function i() {
1870
+ r.value = !0;
895
1871
  }
896
- return N(() => {
897
- t.theme === "outline" && g();
898
- }), Z(
899
- () => t.modelValue,
1872
+ function y() {
1873
+ r.value = !1;
1874
+ }
1875
+ return B(
1876
+ () => o.modelValue,
900
1877
  () => {
901
- g();
1878
+ u();
902
1879
  }
903
- ), a({
904
- checked: r,
905
- isExpanded: i
906
- }), (x, j) => (o(), d("label", {
1880
+ ), t({
1881
+ checked: f,
1882
+ isExpanded: n
1883
+ }), (d, j) => (m(), p("label", {
907
1884
  ref_key: "root",
908
1885
  ref: s,
909
- class: b([
1886
+ class: k([
910
1887
  "joy-radio",
911
1888
  `joy-radio--${e.theme}`,
912
1889
  {
913
- "joy-radio--checked": m(r),
1890
+ "joy-radio--checked": _(f),
914
1891
  "joy-radio--disabled": e.disabled,
915
- "joy-radio--invalid": e.invalid
1892
+ "joy-radio--invalid": e.invalid,
1893
+ "joy-radio--outline-focus": r.value && e.theme === "outline",
1894
+ "joy-radio--focus": r.value && e.theme === "default"
916
1895
  }
917
1896
  ])
918
1897
  }, [
919
- u("input", {
1898
+ h("input", {
920
1899
  id: e.id,
921
1900
  type: "radio",
922
1901
  value: e.value,
923
- checked: m(r),
1902
+ checked: _(f),
924
1903
  disabled: e.disabled,
925
1904
  required: e.required,
926
1905
  name: e.name,
927
- onChange: k
928
- }, null, 40, vt),
929
- u("span", bt, [
930
- c(x.$slots, "default", {}, void 0, !0)
1906
+ onChange: v,
1907
+ onFocus: i,
1908
+ onBlur: y
1909
+ }, null, 40, Lo),
1910
+ h("span", Eo, [
1911
+ g(d.$slots, "default", {}, void 0, !0)
931
1912
  ]),
932
- u("div", gt, [
933
- u("div", ht, [
934
- c(x.$slots, "radio-content", {}, void 0, !0)
1913
+ h("div", Co, [
1914
+ h("div", Po, [
1915
+ g(d.$slots, "radio-content", {}, void 0, !0)
935
1916
  ]),
936
- u("div", {
1917
+ h("div", {
937
1918
  ref_key: "expandableElement",
938
- ref: f,
939
- class: b(["joy-radio-expandable", { "joy-radio-expandable--expanded": i.value }])
1919
+ ref: a,
1920
+ class: k(["joy-radio-expandable", { "joy-radio-expandable--expanded": n.value }])
940
1921
  }, [
941
- c(x.$slots, "expandable-content", {}, void 0, !0)
1922
+ g(d.$slots, "expandable-content", {}, void 0, !0)
942
1923
  ], 2)
943
1924
  ])
944
1925
  ], 2));
945
1926
  }
946
1927
  });
947
- const _t = /* @__PURE__ */ _(pt, [["__scopeId", "data-v-d5988486"]]), kt = ["form", "name"], jt = /* @__PURE__ */ p({
1928
+ const qo = /* @__PURE__ */ V(Jo, [["__scopeId", "data-v-24cea99b"]]), To = ["form", "name"], zo = /* @__PURE__ */ $({
948
1929
  __name: "VJoyRadioGroup",
949
1930
  props: {
950
1931
  direction: {
@@ -959,26 +1940,26 @@ const _t = /* @__PURE__ */ _(pt, [["__scopeId", "data-v-d5988486"]]), kt = ["for
959
1940
  }
960
1941
  },
961
1942
  setup(e) {
962
- return (a, l) => (o(), d("fieldset", {
1943
+ return (t, l) => (m(), p("fieldset", {
963
1944
  ref: "root",
964
1945
  class: "joy-radio-group-fieldset",
965
1946
  role: "radiogroup",
966
1947
  form: e.form,
967
1948
  name: e.name
968
1949
  }, [
969
- c(a.$slots, "radio-group-legend", {}, void 0, !0),
970
- u("div", {
971
- class: b(["joy-radio-group-container", `joy-radio-group-${e.direction}`])
1950
+ g(t.$slots, "radio-group-legend", {}, void 0, !0),
1951
+ h("div", {
1952
+ class: k(["joy-radio-group-container", `joy-radio-group-${e.direction}`])
972
1953
  }, [
973
- c(a.$slots, "default", {}, void 0, !0)
1954
+ g(t.$slots, "default", {}, void 0, !0)
974
1955
  ], 2)
975
- ], 8, kt));
1956
+ ], 8, To));
976
1957
  }
977
1958
  });
978
- const St = /* @__PURE__ */ _(jt, [["__scopeId", "data-v-de56c3c4"]]), $t = (e) => (z("data-v-e856916f"), e = e(), M(), e), Vt = ["id", "name", "aria-invalid", "required", "disabled", "value"], xt = /* @__PURE__ */ $t(() => /* @__PURE__ */ u("joy-icon", {
1959
+ const Ao = /* @__PURE__ */ V(zo, [["__scopeId", "data-v-de56c3c4"]]), Fo = (e) => (te("data-v-d251a432"), e = e(), le(), e), Do = ["id", "name", "aria-invalid", "required", "disabled", "value"], Ro = /* @__PURE__ */ Fo(() => /* @__PURE__ */ h("joy-icon", {
979
1960
  class: "joy-select__chevron",
980
1961
  name: "chevron-down"
981
- }, null, -1)), It = /* @__PURE__ */ p({
1962
+ }, null, -1)), Mo = /* @__PURE__ */ $({
982
1963
  __name: "VJoySelect",
983
1964
  props: {
984
1965
  disabled: {
@@ -1018,72 +1999,81 @@ const St = /* @__PURE__ */ _(jt, [["__scopeId", "data-v-de56c3c4"]]), $t = (e) =
1018
1999
  // ...TEXT_BASED_PROPS,
1019
2000
  },
1020
2001
  emits: ["update:modelValue"],
1021
- setup(e, { emit: a }) {
1022
- const l = e, t = S(), i = S(), s = w();
1023
- N(() => {
1024
- var g;
1025
- const n = s.label && s.label();
1026
- if (!n || !n.length)
2002
+ setup(e, { emit: t }) {
2003
+ const l = e, o = b(), n = b(), r = W(), s = b(!1);
2004
+ Z(() => {
2005
+ var i;
2006
+ const u = r.label && r.label();
2007
+ if (!u || !u.length)
1027
2008
  return;
1028
- const r = n[0];
1029
- if (r.type === "JoyLabel") {
1030
- const k = (g = r.props) == null ? void 0 : g.for;
1031
- if (!k) {
2009
+ const v = u[0];
2010
+ if (v.type === "JoyLabel") {
2011
+ const y = (i = v.props) == null ? void 0 : i.for;
2012
+ if (!y) {
1032
2013
  console.warn("JoyLabel for attribute is missing");
1033
2014
  return;
1034
2015
  }
1035
- k !== l.id && console.warn("JoyLabel for attribute does not match with JoySelect id");
2016
+ y !== l.id && console.warn("JoyLabel for attribute does not match with JoySelect id");
1036
2017
  }
1037
2018
  });
1038
- function f(n) {
1039
- const r = n.target.value;
1040
- a("update:modelValue", r);
2019
+ function a(u) {
2020
+ const v = u.target.value;
2021
+ t("update:modelValue", v);
2022
+ }
2023
+ function c() {
2024
+ s.value = !0;
1041
2025
  }
1042
- return (n, r) => (o(), d("div", {
2026
+ function f() {
2027
+ s.value = !1;
2028
+ }
2029
+ return (u, v) => (m(), p("div", {
1043
2030
  ref_key: "root",
1044
- ref: t
2031
+ ref: o
1045
2032
  }, [
1046
- c(n.$slots, "label", {}, () => [
1047
- e.label ? (o(), B(C, {
2033
+ g(u.$slots, "label", {}, () => [
2034
+ e.label ? (m(), q(N, {
1048
2035
  key: 0,
1049
2036
  required: e.required && e.requiredMark,
1050
2037
  "optional-label": e.optionalLabel,
1051
2038
  for: e.id || e.name,
1052
2039
  size: e.labelSize
1053
2040
  }, {
1054
- default: I(() => [
1055
- q($(e.label), 1)
2041
+ default: L(() => [
2042
+ J(I(e.label), 1)
1056
2043
  ]),
1057
2044
  _: 1
1058
- }, 8, ["required", "optional-label", "for", "size"])) : y("", !0)
2045
+ }, 8, ["required", "optional-label", "for", "size"])) : w("", !0)
1059
2046
  ], !0),
1060
- u("div", {
1061
- class: b({
2047
+ h("div", {
2048
+ class: k({
1062
2049
  "joy-select__wrapper": !0,
1063
2050
  "joy-select--invalid": e.invalid,
1064
- "joy-select--disabled": e.disabled
2051
+ "joy-select--disabled": e.disabled,
2052
+ "joy-select--focusing": s.value
1065
2053
  })
1066
2054
  }, [
1067
- u("select", {
2055
+ h("select", {
1068
2056
  id: e.id || e.name,
1069
2057
  ref_key: "select",
1070
- ref: i,
2058
+ ref: n,
1071
2059
  class: "joy-select",
1072
2060
  name: e.name,
1073
2061
  "aria-invalid": e.invalid,
1074
2062
  required: e.required,
1075
2063
  disabled: e.disabled,
1076
2064
  value: e.modelValue,
1077
- onInput: f
2065
+ onInput: a,
2066
+ onFocus: c,
2067
+ onBlur: f
1078
2068
  }, [
1079
- c(n.$slots, "default", {}, void 0, !0)
1080
- ], 40, Vt),
1081
- xt
2069
+ g(u.$slots, "default", {}, void 0, !0)
2070
+ ], 40, Do),
2071
+ Ro
1082
2072
  ], 2)
1083
2073
  ], 512));
1084
2074
  }
1085
2075
  });
1086
- const qt = /* @__PURE__ */ _(It, [["__scopeId", "data-v-e856916f"]]), Bt = ["aria-disabled"], Jt = ["id", "value", "checked", "disabled", "required", "name"], Ct = /* @__PURE__ */ p({
2076
+ const No = /* @__PURE__ */ V(Mo, [["__scopeId", "data-v-d251a432"]]), Ho = ["aria-disabled"], Wo = ["id", "value", "checked", "disabled", "required", "name"], Uo = /* @__PURE__ */ $({
1087
2077
  __name: "VJoySelectableItem",
1088
2078
  props: {
1089
2079
  disabled: {
@@ -1119,44 +2109,59 @@ const qt = /* @__PURE__ */ _(It, [["__scopeId", "data-v-e856916f"]]), Bt = ["ari
1119
2109
  }
1120
2110
  },
1121
2111
  emits: ["update:checked"],
1122
- setup(e, { emit: a }) {
1123
- const l = e, t = S(l.checked), i = S(), s = l.multiple ? "div" : "label", f = {
2112
+ setup(e, { emit: t }) {
2113
+ const l = e, o = b(l.checked), n = b(), r = b(!1), s = l.multiple ? "div" : "label", a = {
1124
2114
  onRadioChange: () => {
1125
- a("update:checked", l.value);
2115
+ t("update:checked", l.value);
1126
2116
  },
1127
2117
  onClick: () => {
1128
- l.checked && !l.multiple && a("update:checked", "");
2118
+ l.checked && !l.multiple && t("update:checked", "");
2119
+ },
2120
+ onLabelClick: (f) => {
2121
+ l.multiple || f.stopPropagation();
2122
+ },
2123
+ onFocus: () => {
2124
+ r.value = !0;
1129
2125
  },
1130
- onLabelClick: (r) => {
1131
- l.multiple || r.stopPropagation();
2126
+ onBlur: () => {
2127
+ r.value = !1;
1132
2128
  }
1133
2129
  };
1134
- function n(r) {
1135
- a("update:checked", r);
2130
+ function c(f) {
2131
+ t("update:checked", f);
1136
2132
  }
1137
- return (r, g) => (o(), d("div", {
1138
- class: "joy-selectable-item__wrapper",
2133
+ return (f, u) => (m(), p("div", {
2134
+ class: k([
2135
+ "joy-selectable-item__wrapper",
2136
+ {
2137
+ "joy-selectable-item--focusing": r.value
2138
+ }
2139
+ ]),
1139
2140
  "aria-disabled": e.disabled,
1140
- onClick: g[2] || (g[2] = //@ts-ignore
1141
- (...k) => f.onClick && f.onClick(...k))
2141
+ onClick: u[4] || (u[4] = //@ts-ignore
2142
+ (...v) => a.onClick && a.onClick(...v))
1142
2143
  }, [
1143
- e.multiple ? y("", !0) : (o(), d("input", {
2144
+ e.multiple ? w("", !0) : (m(), p("input", {
1144
2145
  key: 0,
1145
2146
  id: e.id,
1146
2147
  ref_key: "inputRadio",
1147
- ref: i,
2148
+ ref: n,
1148
2149
  type: "radio",
1149
2150
  value: e.value,
1150
2151
  checked: e.checked,
1151
2152
  disabled: e.disabled,
1152
2153
  required: e.required,
1153
2154
  name: e.name,
1154
- onChange: g[0] || (g[0] = //@ts-ignore
1155
- (...k) => f.onRadioChange && f.onRadioChange(...k))
1156
- }, null, 40, Jt)),
1157
- (o(), B(E(m(s)), {
2155
+ onChange: u[0] || (u[0] = //@ts-ignore
2156
+ (...v) => a.onRadioChange && a.onRadioChange(...v)),
2157
+ onFocus: u[1] || (u[1] = //@ts-ignore
2158
+ (...v) => a.onFocus && a.onFocus(...v)),
2159
+ onBlur: u[2] || (u[2] = //@ts-ignore
2160
+ (...v) => a.onBlur && a.onBlur(...v))
2161
+ }, null, 40, Wo)),
2162
+ (m(), q(ce(_(s)), {
1158
2163
  for: e.id,
1159
- class: b([
2164
+ class: k([
1160
2165
  "joy-selectable-item",
1161
2166
  {
1162
2167
  "joy-selectable-item--disabled": e.disabled,
@@ -1165,48 +2170,51 @@ const qt = /* @__PURE__ */ _(It, [["__scopeId", "data-v-e856916f"]]), Bt = ["ari
1165
2170
  "joy-selectable-item--single": !e.multiple
1166
2171
  }
1167
2172
  ]),
1168
- onClick: f.onLabelClick
2173
+ onClick: a.onLabelClick
1169
2174
  }, {
1170
- default: I(() => [
1171
- e.multiple ? (o(), B(m(T), {
2175
+ default: L(() => [
2176
+ e.multiple ? (m(), q(_(he), {
1172
2177
  key: 0,
1173
2178
  id: e.id,
1174
- checked: t.value,
2179
+ checked: o.value,
1175
2180
  "onUpdate:checked": [
1176
- g[1] || (g[1] = (k) => t.value = k),
1177
- n
2181
+ u[3] || (u[3] = (v) => o.value = v),
2182
+ c
1178
2183
  ],
1179
2184
  disabled: e.disabled,
1180
2185
  value: e.value,
1181
2186
  name: e.name,
1182
- required: e.required
2187
+ "display-focus": !1,
2188
+ required: e.required,
2189
+ onFocus: a.onFocus,
2190
+ onBlur: a.onBlur
1183
2191
  }, {
1184
- default: I(() => [
1185
- c(r.$slots, "default", {}, void 0, !0)
2192
+ default: L(() => [
2193
+ g(f.$slots, "default", {}, void 0, !0)
1186
2194
  ]),
1187
2195
  _: 3
1188
- }, 8, ["id", "checked", "disabled", "value", "name", "required"])) : y("", !0),
1189
- e.multiple ? y("", !0) : c(r.$slots, "default", { key: 1 }, void 0, !0),
1190
- u("div", {
1191
- class: b([{ "joy-selectable-item__sublabel": r.$slots["selectable-item-sublabel"] }])
2196
+ }, 8, ["id", "checked", "disabled", "value", "name", "required", "onFocus", "onBlur"])) : w("", !0),
2197
+ e.multiple ? w("", !0) : g(f.$slots, "default", { key: 1 }, void 0, !0),
2198
+ h("div", {
2199
+ class: k([{ "joy-selectable-item__sublabel": f.$slots["selectable-item-sublabel"] }])
1192
2200
  }, [
1193
- c(r.$slots, "selectable-item-sublabel", {}, void 0, !0)
2201
+ g(f.$slots, "selectable-item-sublabel", {}, void 0, !0)
1194
2202
  ], 2)
1195
2203
  ]),
1196
2204
  _: 3
1197
2205
  }, 8, ["for", "class", "onClick"]))
1198
- ], 8, Bt));
2206
+ ], 10, Ho));
1199
2207
  }
1200
2208
  });
1201
- const U = /* @__PURE__ */ _(Ct, [["__scopeId", "data-v-c40bf83e"]]), wt = ["id"], Lt = /* @__PURE__ */ p({
2209
+ const tt = /* @__PURE__ */ V(Uo, [["__scopeId", "data-v-cb2531c0"]]), Go = ["id"], Ko = /* @__PURE__ */ $({
1202
2210
  __name: "VJoySelectableItemGroup",
1203
2211
  props: {
1204
2212
  options: {
1205
2213
  type: Array,
1206
2214
  required: !0,
1207
2215
  validator(e) {
1208
- const a = e.every((t) => Object.keys(t).includes("value")), l = e.every((t) => Object.keys(t).includes("label"));
1209
- return a && l;
2216
+ const t = e.every((o) => Object.keys(o).includes("value")), l = e.every((o) => Object.keys(o).includes("label"));
2217
+ return t && l;
1210
2218
  }
1211
2219
  },
1212
2220
  id: String,
@@ -1238,35 +2246,35 @@ const U = /* @__PURE__ */ _(Ct, [["__scopeId", "data-v-c40bf83e"]]), wt = ["id"]
1238
2246
  }
1239
2247
  },
1240
2248
  emits: ["update:value"],
1241
- setup(e, { emit: a }) {
2249
+ setup(e, { emit: t }) {
1242
2250
  const l = e;
1243
- function t(s) {
1244
- return typeof l.value == "string" ? l.value === s.value : (l.value || []).includes(s.value);
2251
+ function o(r) {
2252
+ return typeof l.value == "string" ? l.value === r.value : (l.value || []).includes(r.value);
1245
2253
  }
1246
- function i(s, f) {
2254
+ function n(r, s) {
1247
2255
  if (!l.multiple)
1248
- return a("update:value", f);
1249
- let n = [...l.value || []];
1250
- f && typeof f == "boolean" ? n.push(s) : n.splice(n.indexOf(s), 1), a("update:value", n);
2256
+ return t("update:value", s);
2257
+ let a = [...l.value || []];
2258
+ s && typeof s == "boolean" ? a.push(r) : a.splice(a.indexOf(r), 1), t("update:value", a);
1251
2259
  }
1252
- return (s, f) => (o(), d("fieldset", {
2260
+ return (r, s) => (m(), p("fieldset", {
1253
2261
  id: e.id,
1254
2262
  class: "joy-selectable-item-group__wrapper"
1255
2263
  }, [
1256
- e.label ? (o(), B(m(C), {
2264
+ e.label ? (m(), q(_(N), {
1257
2265
  key: 0,
1258
2266
  "tag-name": "legend",
1259
2267
  required: e.required && e.requiredMark,
1260
2268
  "optional-label": e.optionalLabel,
1261
2269
  size: e.labelSize
1262
2270
  }, {
1263
- default: I(() => [
1264
- q($(e.label), 1)
2271
+ default: L(() => [
2272
+ J(I(e.label), 1)
1265
2273
  ]),
1266
2274
  _: 1
1267
- }, 8, ["required", "optional-label", "size"])) : y("", !0),
1268
- u("div", {
1269
- class: b([
2275
+ }, 8, ["required", "optional-label", "size"])) : w("", !0),
2276
+ h("div", {
2277
+ class: k([
1270
2278
  "joy-selectable-item-group",
1271
2279
  {
1272
2280
  "joy-selectable-item-group--multiple": e.multiple,
@@ -1275,33 +2283,33 @@ const U = /* @__PURE__ */ _(Ct, [["__scopeId", "data-v-c40bf83e"]]), wt = ["id"]
1275
2283
  }
1276
2284
  ])
1277
2285
  }, [
1278
- (o(!0), d(A, null, F(e.options, (n) => (o(), B(m(U), {
1279
- id: n.id,
1280
- key: n.id,
1281
- name: n.name,
1282
- value: n.value,
2286
+ (m(!0), p(ye, null, ve(e.options, (a) => (m(), q(_(tt), {
2287
+ id: a.id,
2288
+ key: a.id,
2289
+ name: a.name,
2290
+ value: a.value,
1283
2291
  multiple: e.multiple,
1284
- checked: t(n),
1285
- "onUpdate:checked": (r) => i(n.value, r)
1286
- }, K({
1287
- default: I(() => [
1288
- q($(n.label) + " ", 1)
2292
+ checked: o(a),
2293
+ "onUpdate:checked": (c) => n(a.value, c)
2294
+ }, ut({
2295
+ default: L(() => [
2296
+ J(I(a.label) + " ", 1)
1289
2297
  ]),
1290
2298
  _: 2
1291
2299
  }, [
1292
- n.subLabel ? {
2300
+ a.subLabel ? {
1293
2301
  name: "selectable-item-sublabel",
1294
- fn: I(() => [
1295
- q($(n.subLabel), 1)
2302
+ fn: L(() => [
2303
+ J(I(a.subLabel), 1)
1296
2304
  ]),
1297
2305
  key: "0"
1298
2306
  } : void 0
1299
2307
  ]), 1032, ["id", "name", "value", "multiple", "checked", "onUpdate:checked"]))), 128))
1300
2308
  ], 2)
1301
- ], 8, wt));
2309
+ ], 8, Go));
1302
2310
  }
1303
2311
  });
1304
- const zt = /* @__PURE__ */ _(Lt, [["__scopeId", "data-v-3ba17434"]]), Mt = /* @__PURE__ */ p({
2312
+ const Qo = /* @__PURE__ */ V(Ko, [["__scopeId", "data-v-3ba17434"]]), Zo = /* @__PURE__ */ $({
1305
2313
  __name: "VJoyWrapper",
1306
2314
  props: {
1307
2315
  justify: {
@@ -1322,79 +2330,84 @@ const zt = /* @__PURE__ */ _(Lt, [["__scopeId", "data-v-3ba17434"]]), Mt = /* @_
1322
2330
  }
1323
2331
  },
1324
2332
  setup(e) {
1325
- return (a, l) => (o(), d("div", {
1326
- class: b(["joy-wrapper", `joy-wrapper--justify-${e.justify}`, `joy-wrapper--align-${e.align}`, `joy-wrapper--direction-${e.direction}`, `joy-wrapper--wrap-${e.wrap}`])
2333
+ return (t, l) => (m(), p("div", {
2334
+ class: k(["joy-wrapper", `joy-wrapper--justify-${e.justify}`, `joy-wrapper--align-${e.align}`, `joy-wrapper--direction-${e.direction}`, `joy-wrapper--wrap-${e.wrap}`])
1327
2335
  }, [
1328
- c(a.$slots, "default", {}, void 0, !0)
2336
+ g(t.$slots, "default", {}, void 0, !0)
1329
2337
  ], 2));
1330
2338
  }
1331
2339
  });
1332
- const Et = /* @__PURE__ */ _(Mt, [["__scopeId", "data-v-319d995e"]]), Nt = { class: "joy-template__heading" }, Tt = {
2340
+ const Yo = /* @__PURE__ */ V(Zo, [["__scopeId", "data-v-319d995e"]]), Xo = { class: "joy-template__wrapper" }, en = {
2341
+ key: 0,
2342
+ class: "joy-template__heading"
2343
+ }, tn = {
1333
2344
  key: 0,
1334
2345
  class: "joy-template-slot-back"
1335
- }, Ot = { class: "joy-template__heading___headings" }, Rt = {
2346
+ }, ln = { class: "joy-template__heading___headings" }, on = {
1336
2347
  key: 0,
1337
2348
  class: "joy-template-slot-title"
1338
- }, At = {
2349
+ }, nn = {
1339
2350
  key: 1,
1340
2351
  class: "joy-template-slot-subtitle"
1341
- }, Ft = {
2352
+ }, an = {
1342
2353
  key: 0,
1343
2354
  class: "joy-template-slot-main"
1344
- }, Pt = {
2355
+ }, rn = {
1345
2356
  key: 1,
1346
2357
  class: "joy-template-slot-sidebar"
1347
- }, Ht = /* @__PURE__ */ p({
2358
+ }, sn = /* @__PURE__ */ $({
1348
2359
  __name: "VJoyTemplate",
1349
2360
  props: {
1350
2361
  full: { type: Boolean, default: !1 },
1351
2362
  sidebar: { type: String, default: "right" }
1352
2363
  },
1353
2364
  setup(e) {
1354
- const a = e, l = w();
1355
- return (t, i) => (o(), d("main", {
1356
- class: b(["joy-template", { "joy-template--full": a.full }])
2365
+ const t = e, l = W(), o = x(() => !!l["template-back"] || !!l["template-title"] || !!l["template-subtitle"]);
2366
+ return (n, r) => (m(), p("main", {
2367
+ class: k(["joy-template", { "joy-template--full": t.full }])
1357
2368
  }, [
1358
- u("div", Nt, [
1359
- m(l)["template-back"] ? (o(), d("div", Tt, [
1360
- c(t.$slots, "template-back", {}, void 0, !0)
1361
- ])) : y("", !0),
1362
- u("div", Ot, [
1363
- m(l)["template-title"] ? (o(), d("div", Rt, [
1364
- c(t.$slots, "template-title", {}, void 0, !0)
1365
- ])) : y("", !0),
1366
- m(l)["template-subtitle"] ? (o(), d("div", At, [
1367
- c(t.$slots, "template-subtitle", {}, void 0, !0)
1368
- ])) : y("", !0)
1369
- ])
1370
- ]),
1371
- u("div", {
1372
- class: b([
1373
- "joy-template__content",
1374
- {
1375
- "joy-template__content--reverse": a.sidebar === "left"
1376
- }
1377
- ])
1378
- }, [
1379
- t.$slots["template-main"] ? (o(), d("div", Ft, [
1380
- c(t.$slots, "template-main", {}, void 0, !0)
1381
- ])) : y("", !0),
1382
- t.$slots["template-sidebar"] ? (o(), d("div", Pt, [
1383
- c(t.$slots, "template-sidebar", {}, void 0, !0)
1384
- ])) : y("", !0)
1385
- ], 2)
2369
+ h("div", Xo, [
2370
+ _(o) ? (m(), p("div", en, [
2371
+ _(l)["template-back"] ? (m(), p("div", tn, [
2372
+ g(n.$slots, "template-back", {}, void 0, !0)
2373
+ ])) : w("", !0),
2374
+ h("div", ln, [
2375
+ _(l)["template-title"] ? (m(), p("div", on, [
2376
+ g(n.$slots, "template-title", {}, void 0, !0)
2377
+ ])) : w("", !0),
2378
+ _(l)["template-subtitle"] ? (m(), p("div", nn, [
2379
+ g(n.$slots, "template-subtitle", {}, void 0, !0)
2380
+ ])) : w("", !0)
2381
+ ])
2382
+ ])) : w("", !0),
2383
+ h("div", {
2384
+ class: k([
2385
+ "joy-template__content",
2386
+ {
2387
+ "joy-template__content--reverse": t.sidebar === "left"
2388
+ }
2389
+ ])
2390
+ }, [
2391
+ n.$slots["template-main"] ? (m(), p("div", an, [
2392
+ g(n.$slots, "template-main", {}, void 0, !0)
2393
+ ])) : w("", !0),
2394
+ n.$slots["template-sidebar"] ? (m(), p("div", rn, [
2395
+ g(n.$slots, "template-sidebar", {}, void 0, !0)
2396
+ ])) : w("", !0)
2397
+ ], 2)
2398
+ ])
1386
2399
  ], 2));
1387
2400
  }
1388
2401
  });
1389
- const Gt = /* @__PURE__ */ _(Ht, [["__scopeId", "data-v-a03bc629"]]), Ut = ["aria-disabled"], Wt = ["id", "disabled", "name", "required", "minlength", "value"], Dt = {
2402
+ const un = /* @__PURE__ */ V(sn, [["__scopeId", "data-v-f891bd85"]]), dn = ["aria-disabled"], cn = { class: "joy-textarea_wrapper" }, fn = ["id", "disabled", "name", "required", "minlength", "value"], yn = {
1390
2403
  key: 0,
1391
2404
  class: "joy-textarea_helpers"
1392
- }, Zt = {
2405
+ }, vn = {
1393
2406
  key: 0,
1394
2407
  name: "check",
1395
2408
  color: "grey",
1396
2409
  size: "xxsmall"
1397
- }, Kt = /* @__PURE__ */ p({
2410
+ }, mn = /* @__PURE__ */ $({
1398
2411
  __name: "VJoyTextarea",
1399
2412
  props: {
1400
2413
  disabled: {
@@ -1442,101 +2455,98 @@ const Gt = /* @__PURE__ */ _(Ht, [["__scopeId", "data-v-a03bc629"]]), Ut = ["ari
1442
2455
  }
1443
2456
  },
1444
2457
  emits: ["update:modelValue"],
1445
- setup(e, { expose: a, emit: l }) {
1446
- const t = e, i = S(), s = S(), f = S(!1), n = J(() => t.maxlength ? t.modelValue.length > t.maxlength : !1), r = J(() => t.minlength ? t.modelValue.length < t.minlength : !1);
1447
- function g() {
1448
- i.value && t.autogrow && (i.value.style.height = "auto", i.value.style.height = i.value.scrollHeight + "px", s.value && (s.value.style.height = i.value.scrollHeight + "px"));
1449
- }
1450
- N(() => {
1451
- g();
1452
- });
1453
- const k = {
1454
- onInput: (x) => {
1455
- l("update:modelValue", x.target.value), g();
2458
+ setup(e, { expose: t, emit: l }) {
2459
+ const o = e, n = b(), { triggerResize: r } = el({
2460
+ element: o.autogrow ? n : void 0
2461
+ }), s = b(!1), a = b(!1), c = x(() => o.maxlength ? o.modelValue.length > o.maxlength : !1), f = x(() => o.minlength ? o.modelValue.length < o.minlength : !1), u = {
2462
+ onInput: (v) => {
2463
+ l("update:modelValue", v.target.value), r();
1456
2464
  },
1457
2465
  onBlur: () => {
1458
- f.value = n.value || r.value;
2466
+ a.value = !1, s.value = c.value || f.value;
2467
+ },
2468
+ onFocus: () => {
2469
+ a.value = !0;
1459
2470
  }
1460
2471
  };
1461
- return a({
1462
- isInvalid: f,
1463
- valueOverMaxlength: n,
1464
- valueUnderMinlength: r
1465
- }), (x, j) => (o(), d("div", {
2472
+ return t({
2473
+ isInvalid: s,
2474
+ valueOverMaxlength: c,
2475
+ valueUnderMinlength: f
2476
+ }), (v, i) => (m(), p("div", {
1466
2477
  "aria-disabled": e.disabled,
1467
- class: b([
2478
+ class: k([
1468
2479
  "joy-textarea",
1469
2480
  {
1470
- "joy-textarea_invalid": f.value || e.invalid,
2481
+ "joy-textarea_invalid": s.value || e.invalid,
1471
2482
  "joy-textarea_disabled": e.disabled,
1472
- "joy-textarea_autogrow": e.autogrow
2483
+ "joy-textarea_autogrow": e.autogrow,
2484
+ "joy-textarea_focusing": a.value
1473
2485
  }
1474
2486
  ])
1475
2487
  }, [
1476
- R(m(C), {
2488
+ fe(_(N), {
1477
2489
  for: e.id,
1478
2490
  required: e.required && e.requiredMark,
1479
2491
  "optional-label": e.optionalLabel,
1480
2492
  size: e.labelSize
1481
2493
  }, {
1482
- default: I(() => [
1483
- c(x.$slots, "default", {}, () => [
1484
- q($(e.label), 1)
2494
+ default: L(() => [
2495
+ g(v.$slots, "default", {}, () => [
2496
+ J(I(e.label), 1)
1485
2497
  ], !0)
1486
2498
  ]),
1487
2499
  _: 3
1488
2500
  }, 8, ["for", "required", "optional-label", "size"]),
1489
- u("div", {
1490
- ref_key: "textareaWrapper",
1491
- ref: s,
1492
- class: "joy-textarea_wrapper"
1493
- }, [
1494
- u("textarea", L(x.$attrs, {
2501
+ h("div", cn, [
2502
+ h("textarea", Q(v.$attrs, {
1495
2503
  id: e.id,
1496
2504
  ref_key: "textarea",
1497
- ref: i,
2505
+ ref: n,
1498
2506
  class: "joy-native-textarea",
1499
2507
  disabled: e.disabled,
1500
2508
  name: e.name,
1501
2509
  required: e.required,
1502
2510
  minlength: e.minlength,
1503
2511
  value: e.modelValue,
1504
- onInput: j[0] || (j[0] = //@ts-ignore
1505
- (...v) => k.onInput && k.onInput(...v)),
1506
- onBlur: j[1] || (j[1] = //@ts-ignore
1507
- (...v) => k.onBlur && k.onBlur(...v))
1508
- }), null, 16, Wt)
1509
- ], 512),
1510
- e.minlength || e.maxlength ? (o(), d("div", Dt, [
1511
- e.minlength ? (o(), d("p", {
2512
+ onInput: i[0] || (i[0] = //@ts-ignore
2513
+ (...y) => u.onInput && u.onInput(...y)),
2514
+ onFocus: i[1] || (i[1] = //@ts-ignore
2515
+ (...y) => u.onFocus && u.onFocus(...y)),
2516
+ onBlur: i[2] || (i[2] = //@ts-ignore
2517
+ (...y) => u.onBlur && u.onBlur(...y))
2518
+ }), null, 16, fn)
2519
+ ]),
2520
+ e.minlength || e.maxlength ? (m(), p("div", yn, [
2521
+ e.minlength ? (m(), p("p", {
1512
2522
  key: 0,
1513
- class: b(["joy-textarea-min", { "joy-textarea-min-invalid": e.invalid }])
2523
+ class: k(["joy-textarea-min", { "joy-textarea-min-invalid": e.invalid }])
1514
2524
  }, [
1515
- m(r) ? y("", !0) : (o(), d("joy-icon", Zt)),
1516
- q(" " + $(e.minlengthLabel || `Minimum ${e.minlength} characters`), 1)
1517
- ], 2)) : y("", !0),
1518
- e.maxlength ? (o(), d("p", {
2525
+ _(f) ? w("", !0) : (m(), p("joy-icon", vn)),
2526
+ J(" " + I(e.minlengthLabel || `Minimum ${e.minlength} characters`), 1)
2527
+ ], 2)) : w("", !0),
2528
+ e.maxlength ? (m(), p("p", {
1519
2529
  key: 1,
1520
- class: b(["joy-textarea-count", { "joy-textarea-count-invalid": m(n) }])
1521
- }, $(e.modelValue.length + "/" + e.maxlength), 3)) : y("", !0)
1522
- ])) : y("", !0)
1523
- ], 10, Ut));
2530
+ class: k(["joy-textarea-count", { "joy-textarea-count-invalid": _(c) }])
2531
+ }, I(e.modelValue.length + "/" + e.maxlength), 3)) : w("", !0)
2532
+ ])) : w("", !0)
2533
+ ], 10, dn));
1524
2534
  }
1525
2535
  });
1526
- const Qt = /* @__PURE__ */ _(Kt, [["__scopeId", "data-v-650f33d9"]]), Xt = (e) => (z("data-v-79792513"), e = e(), M(), e), Yt = ["name", "disabled", "checked", "required", "aria-checked", "value"], el = { class: "joy-toggle__content" }, tl = { class: "joy-toggle__content-label" }, ll = /* @__PURE__ */ Xt(() => /* @__PURE__ */ u("span", { class: "joy-toggle__smile" }, [
1527
- /* @__PURE__ */ u("svg", {
2536
+ const pn = /* @__PURE__ */ V(mn, [["__scopeId", "data-v-1496c389"]]), lt = (e) => (te("data-v-cf79d999"), e = e(), le(), e), hn = { class: "joy-toggle__wrapper" }, bn = ["name", "disabled", "checked", "required", "aria-checked", "value"], gn = { class: "joy-toggle__content" }, _n = /* @__PURE__ */ lt(() => /* @__PURE__ */ h("span", { class: "joy-toggle__symbol" }, null, -1)), wn = { class: "joy-toggle__content-label" }, Sn = /* @__PURE__ */ lt(() => /* @__PURE__ */ h("span", { class: "joy-toggle__smile" }, [
2537
+ /* @__PURE__ */ h("svg", {
1528
2538
  width: "18",
1529
2539
  height: "10",
1530
2540
  viewBox: "0 0 18 10",
1531
2541
  fill: "currentColor",
1532
2542
  xmlns: "http://www.w3.org/2000/svg"
1533
2543
  }, [
1534
- /* @__PURE__ */ u("path", {
2544
+ /* @__PURE__ */ h("path", {
1535
2545
  d: "M9.0237 9.14856C15.7144 9.14856 17.8736 2.22231 17.9649 1.91853L17.9345 1.94891C18.1778 1.15908 17.7216 0.308485 16.9309 0.0654591C16.1402 -0.177566 15.2886 0.278108 15.0453 1.06794C14.9845 1.25021 13.5551 6.11073 8.99328 6.11073C4.43147 6.11073 3.03249 1.43248 2.97167 1.21983C2.75878 0.399622 1.90724 -0.0560541 1.11652 0.156593C0.295397 0.369241 -0.160787 1.18945 0.0520982 2.00967C0.721165 4.4703 3.48869 9.14856 9.0237 9.14856Z",
1536
2546
  fill: "currentColor"
1537
2547
  })
1538
2548
  ])
1539
- ], -1)), al = /* @__PURE__ */ p({
2549
+ ], -1)), jn = /* @__PURE__ */ $({
1540
2550
  __name: "VJoyToggle",
1541
2551
  props: {
1542
2552
  modelValue: {
@@ -1569,24 +2579,31 @@ const Qt = /* @__PURE__ */ _(Kt, [["__scopeId", "data-v-650f33d9"]]), Xt = (e) =
1569
2579
  label: String
1570
2580
  },
1571
2581
  emits: ["update:modelValue"],
1572
- setup(e, { emit: a }) {
1573
- const l = {
1574
- onChange: (t) => {
1575
- const i = t.target.checked;
1576
- a("update:modelValue", i);
2582
+ setup(e, { emit: t }) {
2583
+ const l = b(!1), o = {
2584
+ onChange: (n) => {
2585
+ const r = n.target.checked;
2586
+ t("update:modelValue", r);
2587
+ },
2588
+ onFocus: () => {
2589
+ l.value = !0;
2590
+ },
2591
+ onBlur: () => {
2592
+ l.value = !1;
1577
2593
  }
1578
2594
  };
1579
- return (t, i) => (o(), d("div", null, [
1580
- u("label", {
1581
- class: b([
2595
+ return (n, r) => (m(), p("div", hn, [
2596
+ h("label", {
2597
+ class: k([
1582
2598
  "joy-toggle",
1583
2599
  {
1584
2600
  "joy-toggle__checked": e.modelValue,
1585
- "joy-toggle__disabled": e.disabled
2601
+ "joy-toggle__disabled": e.disabled,
2602
+ "joy-toggle__focusing": l.value
1586
2603
  }
1587
2604
  ])
1588
2605
  }, [
1589
- u("input", {
2606
+ h("input", {
1590
2607
  ref: "input",
1591
2608
  type: "checkbox",
1592
2609
  class: "joy-toggle__input",
@@ -1597,72 +2614,83 @@ const Qt = /* @__PURE__ */ _(Kt, [["__scopeId", "data-v-650f33d9"]]), Xt = (e) =
1597
2614
  required: e.required,
1598
2615
  "aria-checked": e.modelValue,
1599
2616
  value: e.value,
1600
- onChange: i[0] || (i[0] = //@ts-ignore
1601
- (...s) => l.onChange && l.onChange(...s))
1602
- }, null, 40, Yt),
1603
- u("p", el, [
1604
- u("span", tl, [
1605
- c(t.$slots, "default", {}, () => [
1606
- q($(e.label), 1)
2617
+ onChange: r[0] || (r[0] = //@ts-ignore
2618
+ (...s) => o.onChange && o.onChange(...s)),
2619
+ onFocus: r[1] || (r[1] = //@ts-ignore
2620
+ (...s) => o.onFocus && o.onFocus(...s)),
2621
+ onBlur: r[2] || (r[2] = //@ts-ignore
2622
+ (...s) => o.onBlur && o.onBlur(...s))
2623
+ }, null, 40, bn),
2624
+ h("p", gn, [
2625
+ _n,
2626
+ h("span", wn, [
2627
+ g(n.$slots, "default", {}, () => [
2628
+ J(I(e.label), 1)
1607
2629
  ], !0)
1608
2630
  ]),
1609
- ll
2631
+ Sn
1610
2632
  ])
1611
2633
  ], 2)
1612
2634
  ]));
1613
2635
  }
1614
2636
  });
1615
- const nl = /* @__PURE__ */ _(al, [["__scopeId", "data-v-79792513"]]), ol = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2637
+ const kn = /* @__PURE__ */ V(jn, [["__scopeId", "data-v-cf79d999"]]), $n = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1616
2638
  __proto__: null,
1617
- VJoyButton: ue,
1618
- VJoyCheckbox: T,
1619
- VJoyCounter: Ve,
1620
- VJoyFormError: G,
1621
- VJoyHighlight: Me,
1622
- VJoyInput: Ge,
1623
- VJoyLabel: C,
1624
- VJoyLink: Ke,
1625
- VJoyMultiCheckbox: et,
1626
- VJoyPanel: st,
1627
- VJoyPanelSection: ft,
1628
- VJoyRadio: _t,
1629
- VJoyRadioGroup: St,
1630
- VJoySelect: qt,
1631
- VJoySelectableItem: U,
1632
- VJoySelectableItemGroup: zt,
1633
- VJoySpinner: P,
1634
- VJoyTemplate: Gt,
1635
- VJoyTextarea: Qt,
1636
- VJoyToggle: nl,
1637
- VJoyWrapper: Et
1638
- }, Symbol.toStringTag, { value: "Module" })), dl = {
2639
+ VJoyBadge: ft,
2640
+ VJoyButton: jt,
2641
+ VJoyCheckbox: he,
2642
+ VJoyCounter: Dt,
2643
+ VJoyDropdown: Fl,
2644
+ VJoyDropdownList: Xe,
2645
+ VJoyFormError: et,
2646
+ VJoyHighlight: Ql,
2647
+ VJoyInput: io,
2648
+ VJoyLabel: N,
2649
+ VJoyLink: fo,
2650
+ VJoyMultiCheckbox: po,
2651
+ VJoyPanel: $o,
2652
+ VJoyPanelSection: Bo,
2653
+ VJoyRadio: qo,
2654
+ VJoyRadioGroup: Ao,
2655
+ VJoySelect: No,
2656
+ VJoySelectableItem: tt,
2657
+ VJoySelectableItemGroup: Qo,
2658
+ VJoySpinner: He,
2659
+ VJoyTemplate: un,
2660
+ VJoyTextarea: pn,
2661
+ VJoyToggle: kn,
2662
+ VJoyWrapper: Yo
2663
+ }, Symbol.toStringTag, { value: "Module" })), xn = {
1639
2664
  install: (e) => {
1640
- Object.entries(ol).forEach(([a, l]) => {
1641
- e.component(a, l);
2665
+ Object.entries($n).forEach(([t, l]) => {
2666
+ e.component(t, l);
1642
2667
  });
1643
2668
  }
1644
2669
  };
1645
2670
  export {
1646
- dl as JoyVuePlugin,
1647
- ue as VJoyButton,
1648
- T as VJoyCheckbox,
1649
- Ve as VJoyCounter,
1650
- G as VJoyFormError,
1651
- Me as VJoyHighlight,
1652
- Ge as VJoyInput,
1653
- C as VJoyLabel,
1654
- Ke as VJoyLink,
1655
- et as VJoyMultiCheckbox,
1656
- st as VJoyPanel,
1657
- ft as VJoyPanelSection,
1658
- _t as VJoyRadio,
1659
- St as VJoyRadioGroup,
1660
- qt as VJoySelect,
1661
- U as VJoySelectableItem,
1662
- zt as VJoySelectableItemGroup,
1663
- P as VJoySpinner,
1664
- Gt as VJoyTemplate,
1665
- Qt as VJoyTextarea,
1666
- nl as VJoyToggle,
1667
- Et as VJoyWrapper
2671
+ xn as JoyVuePlugin,
2672
+ ft as VJoyBadge,
2673
+ jt as VJoyButton,
2674
+ he as VJoyCheckbox,
2675
+ Dt as VJoyCounter,
2676
+ Fl as VJoyDropdown,
2677
+ Xe as VJoyDropdownList,
2678
+ et as VJoyFormError,
2679
+ Ql as VJoyHighlight,
2680
+ io as VJoyInput,
2681
+ N as VJoyLabel,
2682
+ fo as VJoyLink,
2683
+ po as VJoyMultiCheckbox,
2684
+ $o as VJoyPanel,
2685
+ Bo as VJoyPanelSection,
2686
+ qo as VJoyRadio,
2687
+ Ao as VJoyRadioGroup,
2688
+ No as VJoySelect,
2689
+ tt as VJoySelectableItem,
2690
+ Qo as VJoySelectableItemGroup,
2691
+ He as VJoySpinner,
2692
+ un as VJoyTemplate,
2693
+ pn as VJoyTextarea,
2694
+ kn as VJoyToggle,
2695
+ Yo as VJoyWrapper
1668
2696
  };