vlite3 1.1.2 → 1.1.4

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 (87) hide show
  1. package/components/AttachmentsList/AttachmentsList.vue.d.ts +1 -1
  2. package/components/AttachmentsList/AttachmentsList.vue.js +237 -163
  3. package/components/Avatar.vue.js +1 -1
  4. package/components/AvatarUploader/AvatarUploader.vue.js +40 -37
  5. package/components/Button.vue.js +30 -28
  6. package/components/Carousel/Carousel.vue.d.ts +2 -2
  7. package/components/CategoryManager/CategoryManager.vue.d.ts +10 -2
  8. package/components/CategoryManager/CategoryManager.vue.js +137 -118
  9. package/components/CategoryManager/CategoryNode.vue.d.ts +2 -0
  10. package/components/CategoryManager/CategoryNode.vue.js +93 -88
  11. package/components/Chat/ChatBubble.vue.js +22 -22
  12. package/components/CheckBox.vue.js +29 -28
  13. package/components/CommandPalette/CommandPaletteContent.vue2.js +1 -1
  14. package/components/CommandPalette/{CommandPaletteItem.vue.js → CommandPaletteItem.vue2.js} +1 -1
  15. package/components/ConfirmationModal.vue.js +30 -28
  16. package/components/CopyButton.vue.d.ts +50 -0
  17. package/components/CopyButton.vue.js +69 -0
  18. package/components/CopyButton.vue2.js +4 -0
  19. package/components/DataTable/DataTable.vue.js +44 -44
  20. package/components/DatePicker.vue.js +41 -35
  21. package/components/DateRangePicker.vue.js +18 -17
  22. package/components/Dropdown/Dropdown.vue.d.ts +3 -0
  23. package/components/Dropdown/Dropdown.vue.js +117 -115
  24. package/components/Dropdown/DropdownBooleanItem.vue.js +16 -15
  25. package/components/Dropdown/DropdownItem.vue.js +21 -20
  26. package/components/Dropdown/DropdownMenu.vue.js +1 -1
  27. package/components/Dropdown/DropdownMenu.vue2.js +13 -12
  28. package/components/Dropdown/DropdownTrigger.vue.d.ts +2 -0
  29. package/components/Dropdown/DropdownTrigger.vue.js +10 -6
  30. package/components/Dropdown/composables/useDropdownHydration.d.ts +2 -0
  31. package/components/Dropdown/composables/useDropdownSelection.d.ts +1 -0
  32. package/components/Dropdown/composables/useDropdownSelection.js +46 -31
  33. package/components/FilePicker/FilePicker.vue.js +93 -90
  34. package/components/Form/CustomFields.vue.js +2 -2
  35. package/components/Form/Form.vue.js +2 -2
  36. package/components/Form/Form.vue2.js +68 -64
  37. package/components/Form/FormField.vue.js +204 -148
  38. package/components/Form/FormFields.vue.js +2 -2
  39. package/components/Form/FormFields.vue2.js +28 -27
  40. package/components/Form/types.d.ts +2 -2
  41. package/components/Form/utils/form.utils.d.ts +3 -3
  42. package/components/Form/utils/form.utils.js +37 -37
  43. package/components/Input.vue.js +64 -62
  44. package/components/Invoice/Invoice.vue.js +9 -7
  45. package/components/Invoice/InvoiceTotals.vue.d.ts +14 -0
  46. package/components/Invoice/InvoiceTotals.vue.js +86 -0
  47. package/components/Invoice/InvoiceTotals.vue2.js +4 -0
  48. package/components/Invoice/InvoiceVariant1.vue.d.ts +3 -1
  49. package/components/Invoice/InvoiceVariant1.vue.js +194 -207
  50. package/components/Invoice/InvoiceVariant2.vue.d.ts +3 -1
  51. package/components/Invoice/InvoiceVariant2.vue.js +109 -118
  52. package/components/Invoice/InvoiceVariant3.vue.d.ts +3 -1
  53. package/components/Invoice/InvoiceVariant3.vue.js +157 -167
  54. package/components/Invoice/InvoiceVariant4.vue.d.ts +3 -1
  55. package/components/Invoice/InvoiceVariant4.vue.js +192 -202
  56. package/components/Invoice/index.d.ts +1 -0
  57. package/components/Invoice/types.d.ts +22 -0
  58. package/components/Masonry/Masonry.vue.d.ts +1 -1
  59. package/components/Modal.vue.js +1 -1
  60. package/components/Modal.vue2.js +60 -54
  61. package/components/MultiSelect/MultiSelect.vue.js +47 -46
  62. package/components/MultiSelect/composables/useMultiSelectHydration.d.ts +2 -0
  63. package/components/NavbarCommandPalette.vue.js +1 -1
  64. package/components/NumberInput.vue.js +2 -2
  65. package/components/NumberInput.vue2.js +121 -116
  66. package/components/PricingPlan/PricingPlan.vue.d.ts +1 -1
  67. package/components/SidePanel.vue.js +2 -2
  68. package/components/SidePanel.vue2.js +58 -52
  69. package/components/Stats/StatItem.vue.js +96 -91
  70. package/components/Stats/types.d.ts +1 -0
  71. package/components/Switch.vue.d.ts +6 -1
  72. package/components/Switch.vue.js +61 -24
  73. package/components/TagInput/TagInput.vue.d.ts +187 -0
  74. package/components/TagInput/TagInput.vue.js +113 -0
  75. package/components/TagInput/TagInput.vue2.js +4 -0
  76. package/components/TagInput/index.d.ts +1 -0
  77. package/components/Textarea.vue.js +19 -18
  78. package/components/ThumbnailSelector/ThumbnailSelector.vue.js +2 -2
  79. package/components/ThumbnailSelector/ThumbnailSelector.vue2.js +19 -16
  80. package/core/config.d.ts +36 -0
  81. package/index.d.ts +2 -0
  82. package/index.js +130 -124
  83. package/package.json +1 -1
  84. package/style.css +616 -1
  85. package/types/button.d.ts +1 -1
  86. package/types/styles.d.ts +1 -0
  87. package/utils/functions.js +9 -9
@@ -1,14 +1,14 @@
1
- import { defineComponent as P, ref as c, inject as R, computed as h, markRaw as V, watch as T, provide as W, nextTick as K, onMounted as A, onUnmounted as U, openBlock as s, createElementBlock as r, Fragment as q, mergeProps as B, withModifiers as I, renderSlot as m, createCommentVNode as a, createBlock as S, Teleport as G, normalizeClass as i, createElementVNode as b, toDisplayString as F, createVNode as H, resolveDynamicComponent as J } from "vue";
2
- import L from "./Button.vue.js";
1
+ import { defineComponent as P, ref as f, inject as R, computed as h, markRaw as V, watch as T, provide as W, nextTick as K, onMounted as L, onUnmounted as A, openBlock as s, createElementBlock as d, Fragment as U, mergeProps as B, withModifiers as S, renderSlot as v, createCommentVNode as n, createBlock as I, Teleport as q, normalizeClass as i, createElementVNode as b, toDisplayString as z, createVNode as G, resolveDynamicComponent as H } from "vue";
2
+ import J from "./Button.vue.js";
3
3
  import { useKeyStroke as Q } from "../composables/useKeyStroke.js";
4
- import { $t as O } from "../utils/i18n.js";
5
- const X = {
4
+ import { $t as F } from "../utils/i18n.js";
5
+ const X = ["data-testid"], Y = ["data-testid"], Z = {
6
6
  key: 0,
7
7
  class: "flex-none flex flex-col space-y-1.5 pb-0 border-b border-border/90"
8
- }, Y = { class: "text-lg font-semibold leading-none tracking-tight" }, Z = {
8
+ }, _ = { class: "text-lg font-semibold leading-none tracking-tight" }, ee = {
9
9
  key: 0,
10
10
  class: "text-sm text-muted-foreground mb-3.5"
11
- }, le = /* @__PURE__ */ P({
11
+ }, ae = /* @__PURE__ */ P({
12
12
  inheritAttrs: !1,
13
13
  __name: "Modal",
14
14
  props: {
@@ -28,107 +28,113 @@ const X = {
28
28
  bodyProps: {}
29
29
  },
30
30
  emits: ["close", "update:show", "onOpen"],
31
- setup(t, { emit: j }) {
32
- const o = t, d = j, l = c(o.show), g = c(!1), v = c(!1), k = c(null);
33
- let u = null;
34
- const y = c(!1), n = R("dropdown-context", null), C = h(() => o.body ? V(o.body) : void 0);
31
+ setup(t, { emit: O }) {
32
+ const o = t, u = O, l = f(o.show), k = f(!1), g = f(!1), C = f(null);
33
+ let c = null;
34
+ const y = f(!1), a = R("dropdown-context", null), w = h(() => o.body ? V(o.body) : void 0);
35
35
  T(
36
36
  () => o.show,
37
37
  (e) => {
38
- l.value = e, e && (d("onOpen"), n?.close());
38
+ l.value = e, e && (u("onOpen"), a?.close());
39
39
  }
40
40
  );
41
- const z = () => {
42
- l.value = !0, n?.close();
41
+ const j = () => {
42
+ l.value = !0, a?.close();
43
43
  }, D = (e) => {
44
- g.value = e;
44
+ k.value = e;
45
45
  }, E = (e) => {
46
46
  y.value = e;
47
- }, f = () => {
48
- if (g.value) {
49
- v.value = !0, u && clearTimeout(u), u = setTimeout(() => {
50
- v.value = !1;
47
+ }, m = () => {
48
+ if (k.value) {
49
+ g.value = !0, c && clearTimeout(c), c = setTimeout(() => {
50
+ g.value = !1;
51
51
  }, 1e3);
52
52
  return;
53
53
  }
54
- l.value = !1, d("update:show", !1), d("close");
54
+ l.value = !1, u("update:show", !1), u("close");
55
55
  }, p = () => {
56
- l.value = !1, d("update:show", !1), d("close");
56
+ l.value = !1, u("update:show", !1), u("close");
57
57
  };
58
- W("modal-context", { close: f, setSubmitting: D, registerFormFooter: E });
58
+ W("modal-context", { close: m, setSubmitting: D, registerFormFooter: E });
59
59
  const M = () => {
60
- o.closeOutside && f();
60
+ o.closeOutside && m();
61
61
  }, { onKeyStroke: N } = Q();
62
- N("Escape", f), T(l, async (e) => {
63
- e ? (n?.onChildToggle?.(!0), document.body.style.overflow = "hidden", await K(), k.value?.focus()) : (document.body.style.overflow = "", n?.onChildToggle?.(!1), y.value = !1);
62
+ N("Escape", m), T(l, async (e) => {
63
+ e ? (a?.onChildToggle?.(!0), document.body.style.overflow = "hidden", await K(), C.value?.focus()) : (document.body.style.overflow = "", a?.onChildToggle?.(!1), y.value = !1);
64
+ }), L(() => {
65
+ l.value && a?.onChildToggle?.(!0);
64
66
  }), A(() => {
65
- l.value && n?.onChildToggle?.(!0);
66
- }), U(() => {
67
- l.value && n?.onChildToggle?.(!1), document.body.style.overflow = "", u && clearTimeout(u);
67
+ l.value && a?.onChildToggle?.(!1), document.body.style.overflow = "", c && clearTimeout(c);
68
68
  });
69
- const x = h(() => o.titleI18n ? O(o.titleI18n) : o.title), w = h(
70
- () => o.descriptionI18n ? O(o.descriptionI18n) : o.description
69
+ const r = h(() => o.titleI18n ? F(o.titleI18n) : o.title), x = h(
70
+ () => o.descriptionI18n ? F(o.descriptionI18n) : o.description
71
71
  );
72
- return (e, $) => (s(), r(q, null, [
73
- e.$slots?.trigger || e.$slots?.default ? (s(), r("span", B({
72
+ return (e, $) => (s(), d(U, null, [
73
+ e.$slots?.trigger || e.$slots?.default ? (s(), d("span", B({
74
74
  key: 0,
75
- onClick: I(z, ["stop"]),
75
+ onClick: S(j, ["stop"]),
76
76
  class: `${t.triggerClass}`
77
- }, e.$attrs), [
78
- m(e.$slots, "trigger", {}, () => [
79
- t.body ? m(e.$slots, "default", { key: 0 }, void 0, !0) : a("", !0)
77
+ }, e.$attrs, {
78
+ "data-testid": e.$attrs["data-testid"] ? `${e.$attrs["data-testid"]}-trigger` : r.value ? `modal-trigger-${r.value.toString().toLowerCase().replace(/[^a-z0-9]+/g, "-")}` : "modal-trigger"
79
+ }), [
80
+ v(e.$slots, "trigger", {}, () => [
81
+ t.body ? v(e.$slots, "default", { key: 0 }, void 0, !0) : n("", !0)
80
82
  ], !0)
81
- ], 16)) : a("", !0),
82
- (s(), S(G, { to: "body" }, [
83
- l.value ? (s(), r("div", {
83
+ ], 16, X)) : n("", !0),
84
+ (s(), I(q, { to: "body" }, [
85
+ l.value ? (s(), d("div", {
84
86
  key: 0,
85
87
  class: i(["fixed inset-0 z-50 flex items-center justify-center p-4 v-modal-overlay", t.backdrop ? "v-modal-backdrop" : ""]),
86
88
  onClick: M
87
89
  }, [
88
90
  b("div", {
89
91
  ref_key: "modalRef",
90
- ref: k,
92
+ ref: C,
91
93
  tabindex: "-1",
94
+ role: "dialog",
95
+ "aria-modal": "true",
92
96
  class: i(["modal-body relative w-full rounded border border-border/60 bg-body shadow-lg text-foreground flex flex-col max-h-[85vh] sm:max-h-[90vh] focus:outline-none", [t.maxWidth]]),
93
- onClick: $[0] || ($[0] = I(() => {
97
+ "data-testid": e.$attrs["data-testid"] || (r.value ? `modal-${r.value.toString().toLowerCase().replace(/[^a-z0-9]+/g, "-")}` : "modal"),
98
+ onClick: $[0] || ($[0] = S(() => {
94
99
  }, ["stop"]))
95
100
  }, [
96
- x.value ? (s(), r("div", X, [
101
+ r.value ? (s(), d("div", Z, [
97
102
  b("div", {
98
103
  class: i(["flex items-center justify-between py-2 px-4 rounded-t-md", t.headerClass])
99
104
  }, [
100
- b("h3", Y, F(x.value), 1),
101
- H(L, {
105
+ b("h3", _, z(r.value), 1),
106
+ G(J, {
102
107
  rounded: "full",
103
108
  size: "sm",
104
109
  icon: "lucide:x",
105
110
  variant: "ghost",
106
- class: i(["hover:bg-gray-250/25!", { "blink-bg": v.value }]),
107
- onClick: f
111
+ class: i(["hover:bg-gray-250/25!", { "blink-bg": g.value }]),
112
+ "data-testid": "modal-close-btn",
113
+ onClick: m
108
114
  }, null, 8, ["class"])
109
115
  ], 2)
110
- ])) : a("", !0),
116
+ ])) : n("", !0),
111
117
  b("div", {
112
118
  class: i(["flex-1 overflow-y-auto px-4 pt-4 min-h-0 scrollbar-thin scrollbar-stable", [y.value ? "pb-0" : "pb-3.5", t.bodyClass]])
113
119
  }, [
114
- w.value ? (s(), r("p", Z, F(w.value), 1)) : a("", !0),
115
- C.value ? (s(), S(J(C.value), B({ key: 1 }, { ...t.bodyProps, ...e.$attrs }, { close: p }), null, 16)) : m(e.$slots, "default", {
120
+ x.value ? (s(), d("p", ee, z(x.value), 1)) : n("", !0),
121
+ w.value ? (s(), I(H(w.value), B({ key: 1 }, { ...t.bodyProps, ...e.$attrs }, { close: p }), null, 16)) : v(e.$slots, "default", {
116
122
  key: 2,
117
123
  close: p
118
124
  }, void 0, !0)
119
125
  ], 2),
120
- e.$slots.footer ? (s(), r("div", {
126
+ e.$slots.footer ? (s(), d("div", {
121
127
  key: 1,
122
128
  class: i([t.footerClass, "flex-none flex items-center px-4 py-3 border-t border-border/75 rounded-b-xl bg-body"])
123
129
  }, [
124
- m(e.$slots, "footer", { close: p }, void 0, !0)
125
- ], 2)) : a("", !0)
126
- ], 2)
127
- ], 2)) : a("", !0)
130
+ v(e.$slots, "footer", { close: p }, void 0, !0)
131
+ ], 2)) : n("", !0)
132
+ ], 10, Y)
133
+ ], 2)) : n("", !0)
128
134
  ]))
129
135
  ], 64));
130
136
  }
131
137
  });
132
138
  export {
133
- le as default
139
+ ae as default
134
140
  };
@@ -1,11 +1,11 @@
1
1
  import { defineComponent as P, ref as k, computed as s, watch as M, openBlock as r, createBlock as m, unref as h, withCtx as p, createCommentVNode as f, createElementVNode as g, withKeys as I, withModifiers as y, normalizeClass as c, createElementBlock as v, toDisplayString as S, Fragment as T, renderList as R, createVNode as L, createTextVNode as U } from "vue";
2
- import C from "../Icon.vue.js";
2
+ import $ from "../Icon.vue.js";
3
3
  import q from "../Dropdown/Dropdown.vue.js";
4
4
  import G from "../Dropdown/DropdownMenu.vue.js";
5
- import { $t as $ } from "../../utils/i18n.js";
5
+ import { $t as C } from "../../utils/i18n.js";
6
6
  import N from "../Badge.vue.js";
7
7
  import { useMultiSelectHydration as J } from "./composables/useMultiSelectHydration.js";
8
- const Q = ["tabindex"], W = {
8
+ const Q = ["tabindex", "data-testid"], W = {
9
9
  key: 0,
10
10
  class: "text-muted-foreground pl-0.5 truncate"
11
11
  }, X = { class: "truncate min-w-0" }, Y = ["onClick"], Z = {
@@ -35,64 +35,64 @@ const Q = ["tabindex"], W = {
35
35
  },
36
36
  emits: ["update:modelValue", "change", "load-more", "search"],
37
37
  setup(l, { emit: j }) {
38
- const e = l, i = j, o = k(!1), D = s(() => {
39
- if (e.placeholderI18n) return $(e.placeholderI18n);
40
- if (e.placeholder) return e.placeholder;
41
- const t = $("vlite.multiSelect.placeholder");
42
- return t !== "vlite.multiSelect.placeholder" ? t : "Select items...";
43
- }), x = s(() => e.options ? e.options.map((t) => typeof t == "string" || typeof t == "number" ? { label: String(t), value: String(t) } : t) : []), B = k(!1), w = k(!1);
38
+ const t = l, i = j, o = k(!1), D = s(() => {
39
+ if (t.placeholderI18n) return C(t.placeholderI18n);
40
+ if (t.placeholder) return t.placeholder;
41
+ const e = C("vlite.multiSelect.placeholder");
42
+ return e !== "vlite.multiSelect.placeholder" ? e : "Select items...";
43
+ }), x = s(() => t.options ? t.options.map((e) => typeof e == "string" || typeof e == "number" ? { label: String(e), value: String(e) } : e) : []), B = k(!1), w = k(!1);
44
44
  M(
45
45
  x,
46
- (t) => {
47
- !B.value && t.length > 0 && (B.value = !0, setTimeout(() => {
48
- w.value = !0, d.hydrateSelected(e.modelValue || []);
46
+ (e) => {
47
+ !B.value && e.length > 0 && (B.value = !0, setTimeout(() => {
48
+ w.value = !0, d.hydrateSelected(t.modelValue || []);
49
49
  }, 10));
50
50
  },
51
51
  { immediate: !0 }
52
52
  );
53
53
  const V = s(() => {
54
- const t = [...x.value], a = new Set(t.map((n) => n.value ?? n.label));
54
+ const e = [...x.value], a = new Set(e.map((n) => n.value ?? n.label));
55
55
  return d.selectedBuffer.value.forEach((n, u) => {
56
- a.has(u) || (t.unshift(n), a.add(u));
57
- }), t;
56
+ a.has(u) || (e.unshift(n), a.add(u));
57
+ }), e;
58
58
  }), d = J({
59
- fetchSelected: e.fetchSelected,
60
- getValues: () => e.modelValue || [],
59
+ fetchSelected: t.fetchSelected,
60
+ getValues: () => t.modelValue || [],
61
61
  getOptions: () => V.value,
62
62
  isInitialLoadDone: () => w.value
63
63
  });
64
64
  M(
65
- () => e.modelValue,
66
- (t) => {
67
- w.value && d.hydrateSelected(t || []);
65
+ () => t.modelValue,
66
+ (e) => {
67
+ w.value && d.hydrateSelected(e || []);
68
68
  },
69
69
  { deep: !0 }
70
70
  );
71
- const b = s(() => V.value.filter((t) => {
72
- const a = t.value ?? t.label;
73
- return e.modelValue.includes(a);
74
- })), E = s(() => b.value.slice(0, e.maxVisible)), O = s(() => b.value.length - e.maxVisible), H = (t) => {
75
- if (e.disabled) return;
76
- const a = t.value ?? t.label;
77
- d.selectedBuffer.value.has(a) || d.selectedBuffer.value.set(a, t);
78
- const n = [...e.modelValue], u = n.indexOf(a);
71
+ const b = s(() => V.value.filter((e) => {
72
+ const a = e.value ?? e.label;
73
+ return t.modelValue.includes(a);
74
+ })), E = s(() => b.value.slice(0, t.maxVisible)), O = s(() => b.value.length - t.maxVisible), H = (e) => {
75
+ if (t.disabled) return;
76
+ const a = e.value ?? e.label;
77
+ d.selectedBuffer.value.has(a) || d.selectedBuffer.value.set(a, e);
78
+ const n = [...t.modelValue], u = n.indexOf(a);
79
79
  u === -1 ? n.push(a) : n.splice(u, 1), i("update:modelValue", n), i("change", n);
80
- }, K = (t) => {
81
- if (e.disabled) return;
82
- const a = e.modelValue.filter((n) => n !== t);
80
+ }, K = (e) => {
81
+ if (t.disabled) return;
82
+ const a = t.modelValue.filter((n) => n !== e);
83
83
  i("update:modelValue", a), i("change", a);
84
84
  }, A = () => {
85
- e.disabled || (i("update:modelValue", []), i("change", []));
85
+ t.disabled || (i("update:modelValue", []), i("change", []));
86
86
  }, F = s(() => {
87
- const t = e.rounded === "none" ? "rounded-none" : `rounded-${e.rounded}`, a = e.variant === "transparent" ? "px-2 py-0" : "px-3 py-1.5", n = e.variant === "transparent" ? "h-full min-h-[40px]" : "min-h-[40px]";
87
+ const e = t.rounded === "none" ? "rounded-none" : `rounded-${t.rounded}`, a = t.variant === "transparent" ? "px-2 py-0" : "px-3 py-1.5", n = t.variant === "transparent" ? "h-full min-h-[40px]" : "min-h-[40px]";
88
88
  return [
89
- `flex items-center justify-between w-full ${a} ${n} ${t} border text-sm transition-colors cursor-pointer outline-none`,
90
- e.disabled ? "opacity-50 cursor-not-allowed bg-muted" : e.variant === "floating" || e.variant === "transparent" ? "bg-transparent text-foreground" : "bg-background hover:bg-gray-50/70",
91
- e.variant === "outline" || e.variant === "floating" ? "border-input focus-visible:ring-1 focus-visible:ring-primary" : e.variant === "transparent" ? "border-transparent" : "border-transparent bg-muted",
92
- o.value && e.variant !== "transparent" ? "border-primary/20 ring-1 ring-primary/20" : ""
89
+ `flex items-center justify-between w-full ${a} ${n} ${e} border text-sm transition-colors cursor-pointer outline-none`,
90
+ t.disabled ? "opacity-50 cursor-not-allowed bg-muted" : t.variant === "floating" || t.variant === "transparent" ? "bg-transparent text-foreground" : "bg-background hover:bg-gray-50/70",
91
+ t.variant === "outline" || t.variant === "floating" ? "border-input focus-visible:ring-1 focus-visible:ring-primary" : t.variant === "transparent" ? "border-transparent" : "border-transparent bg-muted",
92
+ o.value && t.variant !== "transparent" ? "border-primary/20 ring-1 ring-primary/20" : ""
93
93
  ].join(" ");
94
- }), z = s(() => e.size === "sm" ? "xs" : "sm");
95
- return (t, a) => (r(), m(h(q), {
94
+ }), z = s(() => t.size === "sm" ? "xs" : "sm");
95
+ return (e, a) => (r(), m(h(q), {
96
96
  isOpen: o.value,
97
97
  "onUpdate:isOpen": a[5] || (a[5] = (n) => o.value = n),
98
98
  "close-on-select": !1,
@@ -106,7 +106,8 @@ const Q = ["tabindex"], W = {
106
106
  onKeydown: [
107
107
  a[0] || (a[0] = I(y((n) => !l.disabled && (o.value = !o.value), ["prevent"]), ["enter"])),
108
108
  a[1] || (a[1] = I(y((n) => !l.disabled && (o.value = !o.value), ["prevent"]), ["space"]))
109
- ]
109
+ ],
110
+ "data-testid": e.$attrs["data-testid"] || (e.$attrs.name ? `multiselect-${e.$attrs.name}` : "multiselect")
110
111
  }, [
111
112
  g("div", {
112
113
  class: c(["flex gap-1.5 items-center flex-1 min-w-0", [l.wrap ? "flex-wrap py-0.5" : "flex-nowrap overflow-hidden py-1"]])
@@ -123,7 +124,7 @@ const Q = ["tabindex"], W = {
123
124
  ]])
124
125
  }, {
125
126
  default: p(() => [
126
- g("span", X, S(n.labelI18n ? h($)(n.labelI18n) : n.label), 1),
127
+ g("span", X, S(n.labelI18n ? h(C)(n.labelI18n) : n.label), 1),
127
128
  l.disabled ? f("", !0) : (r(), v("button", {
128
129
  key: 0,
129
130
  type: "button",
@@ -133,7 +134,7 @@ const Q = ["tabindex"], W = {
133
134
  l.variant === "transparent" ? "text-muted-foreground hover:bg-black/10 hover:text-foreground" : "hover:bg-destructive/10 hover:text-destructive p-0.5 rounded-full"
134
135
  ])
135
136
  }, [
136
- L(C, {
137
+ L($, {
137
138
  icon: "lucide:x",
138
139
  class: "w-3 h-3"
139
140
  })
@@ -159,14 +160,14 @@ const Q = ["tabindex"], W = {
159
160
  ], 64))
160
161
  ], 2),
161
162
  l.showControls ? (r(), v("div", Z, [
162
- b.value.length > 0 && !l.disabled ? (r(), m(C, {
163
+ b.value.length > 0 && !l.disabled ? (r(), m($, {
163
164
  key: 0,
164
165
  icon: "lucide:x",
165
166
  class: "w-4 h-4 hover:text-foreground transition-colors",
166
167
  onClick: y(A, ["stop"])
167
168
  })) : f("", !0),
168
169
  a[6] || (a[6] = g("div", { class: "w-px h-4 bg-border mx-0.5" }, null, -1)),
169
- L(C, {
170
+ L($, {
170
171
  icon: "lucide:chevron-down",
171
172
  class: c(["w-4 h-4 transition-transform duration-200", { "rotate-180": o.value }])
172
173
  }, null, 8, ["class"])
@@ -188,8 +189,8 @@ const Q = ["tabindex"], W = {
188
189
  layout: l.layout,
189
190
  onSelect: H,
190
191
  onClose: a[2] || (a[2] = (n) => o.value = !1),
191
- onLoadMore: a[3] || (a[3] = (n) => t.$emit("load-more")),
192
- onSearch: a[4] || (a[4] = (n) => t.$emit("search", n))
192
+ onLoadMore: a[3] || (a[3] = (n) => e.$emit("load-more")),
193
+ onSearch: a[4] || (a[4] = (n) => e.$emit("search", n))
193
194
  }, null, 8, ["options", "cachedOptions", "selected", "loading", "hasMore", "searchable", "remote", "debounceTime", "layout"]))
194
195
  ]),
195
196
  _: 1
@@ -19,6 +19,7 @@ export declare function useMultiSelectHydration(opts: UseMultiSelectHydrationOpt
19
19
  description?: string;
20
20
  descriptionI18n?: string;
21
21
  icon?: string;
22
+ badge?: string;
22
23
  emoji?: string;
23
24
  disabled?: {
24
25
  valueOf: () => boolean;
@@ -59,6 +60,7 @@ export declare function useMultiSelectHydration(opts: UseMultiSelectHydrationOpt
59
60
  description?: string;
60
61
  descriptionI18n?: string;
61
62
  icon?: string;
63
+ badge?: string;
62
64
  emoji?: string;
63
65
  disabled?: {
64
66
  valueOf: () => boolean;
@@ -3,7 +3,7 @@ import L from "./Icon.vue.js";
3
3
  import v from "./Modal.vue.js";
4
4
  import N from "./CommandPalette/CommandPaletteContent.vue.js";
5
5
  import { $t as U } from "../utils/i18n.js";
6
- /* empty css */
6
+ /* empty css */
7
7
  const V = { class: "block truncate -text-fs-1.5" }, S = { class: "ml-auto inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded text-[10px] font-mono font-medium border border-border/80 bg-background text-muted-foreground ml-1" }, A = /* @__PURE__ */ x({
8
8
  __name: "NavbarCommandPalette",
9
9
  props: {
@@ -1,7 +1,7 @@
1
1
  import o from "./NumberInput.vue2.js";
2
2
  /* empty css */
3
3
  import t from "../_virtual/_plugin-vue_export-helper.js";
4
- const a = /* @__PURE__ */ t(o, [["__scopeId", "data-v-651a2b21"]]);
4
+ const c = /* @__PURE__ */ t(o, [["__scopeId", "data-v-dc6c26b4"]]);
5
5
  export {
6
- a as default
6
+ c as default
7
7
  };