vlite3 0.6.3 → 0.6.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.
@@ -1,5 +1,5 @@
1
- import o from "./ColorIro.vue.js";
2
- /* empty css */
1
+ import o from "./ColorIro.vue2.js";
2
+ /* empty css */
3
3
  export {
4
4
  o as default
5
5
  };
@@ -5,8 +5,8 @@ import O from "../Input.vue.js";
5
5
  /* empty css */
6
6
  import "../../core/config.js";
7
7
  import y from "../Button.vue.js";
8
- import E from "./ColorIro.vue.js";
9
- /* empty css */
8
+ import E from "./ColorIro.vue2.js";
9
+ /* empty css */
10
10
  import { useEyeDropper as P } from "@vueuse/core";
11
11
  const I = {
12
12
  key: 0,
@@ -1,12 +1,12 @@
1
- import { defineComponent as G, ref as r, computed as h, watch as $, reactive as J, toRefs as K, openBlock as x, createElementBlock as Q, normalizeStyle as W, createVNode as k, unref as b, withCtx as u, renderSlot as f, createBlock as X, normalizeClass as Y, createSlots as Z, normalizeProps as H, guardReactiveProps as M, createCommentVNode as _ } from "vue";
2
- import ee from "v-tooltip-lite";
1
+ import { defineComponent as J, ref as s, computed as h, watch as $, provide as K, reactive as Q, toRefs as W, openBlock as A, createElementBlock as X, normalizeStyle as Y, createVNode as T, unref as O, withCtx as u, renderSlot as d, createBlock as Z, normalizeClass as _, createSlots as ee, normalizeProps as M, guardReactiveProps as H, createCommentVNode as te } from "vue";
2
+ import le from "v-tooltip-lite";
3
3
  import "v-tooltip-lite/style.css";
4
- import te from "./DropdownMenu.vue.js";
5
- import ne from "./DropdownTrigger.vue.js";
6
- import le from "../ConfirmationModal.vue.js";
7
- import { useDropdownIds as oe } from "./composables/useDropdownIds.js";
8
- import { useDropdownSelection as ae } from "./composables/useDropdownSelection.js";
9
- const ve = /* @__PURE__ */ G({
4
+ import ne from "./DropdownMenu.vue.js";
5
+ import oe from "./DropdownTrigger.vue.js";
6
+ import ae from "../ConfirmationModal.vue.js";
7
+ import { useDropdownIds as ie } from "./composables/useDropdownIds.js";
8
+ import { useDropdownSelection as se } from "./composables/useDropdownSelection.js";
9
+ const pe = /* @__PURE__ */ J({
10
10
  __name: "Dropdown",
11
11
  props: {
12
12
  selected: {},
@@ -45,47 +45,56 @@ const ve = /* @__PURE__ */ G({
45
45
  isNested: { type: Boolean, default: !1 }
46
46
  },
47
47
  emits: ["onSelect", "update:modelValue", "onOpen", "onClose", "update:isOpen", "load-more", "search"],
48
- setup(l, { emit: V }) {
49
- const o = l, p = V, g = r(!1), d = r(null), s = r({
48
+ setup(n, { emit: V }) {
49
+ const o = n, p = V, g = s(!1), f = s(null), r = s({
50
50
  title: "Confirm Selection",
51
51
  description: "Are you sure you want to select this option?",
52
52
  confirmText: "Confirm",
53
53
  cancelText: "Cancel",
54
54
  variant: "primary"
55
- }), A = h(() => o.position ? o.position : o.direction === "rtl" ? "bottom-end" : "bottom-start"), E = h(() => o.nestedPosition ? o.nestedPosition : o.direction === "rtl" ? "left-start" : "right-start"), O = r(o.isOpen || !1);
55
+ }), E = h(() => o.position ? o.position : o.direction === "rtl" ? "bottom-end" : "bottom-start"), L = h(() => o.nestedPosition ? o.nestedPosition : o.direction === "rtl" ? "left-start" : "right-start"), S = s(o.isOpen || !1), b = s(0);
56
56
  $(
57
57
  () => o.isOpen,
58
58
  (e) => {
59
- e !== void 0 && (O.value = e);
59
+ e !== void 0 && (S.value = e);
60
60
  }
61
61
  );
62
62
  const B = (e) => {
63
- O.value = e, p("update:isOpen", e), p(e ? "onOpen" : "onClose");
64
- }, C = h(() => o.options ? o.options.map((e) => typeof e == "string" || typeof e == "number" ? { label: String(e), value: String(e) } : e) : []), m = r([]);
63
+ S.value = e, p("update:isOpen", e), p(e ? "onOpen" : "onClose");
64
+ }, C = () => {
65
+ B(!1);
66
+ };
67
+ K("dropdown-context", {
68
+ close: C,
69
+ onChildToggle: (e) => {
70
+ e ? b.value++ : b.value = Math.max(0, b.value - 1);
71
+ }
72
+ });
73
+ const w = h(() => o.options ? o.options.map((e) => typeof e == "string" || typeof e == "number" ? { label: String(e), value: String(e) } : e) : []), m = s([]);
65
74
  $(
66
- C,
75
+ w,
67
76
  (e) => {
68
77
  if (e)
69
78
  if (o.remote) {
70
- const n = [...m.value];
79
+ const l = [...m.value];
71
80
  e.forEach((t) => {
72
- n.some((a) => a.value !== void 0 && t.value !== void 0 ? typeof a.value == "object" && a.key && t.key ? a.key === t.key && a.value[a.key] === t.value[t.key] : a.value === t.value : a.label === t.label) || n.push(t);
73
- }), m.value = n;
81
+ l.some((a) => a.value !== void 0 && t.value !== void 0 ? typeof a.value == "object" && a.key && t.key ? a.key === t.key && a.value[a.key] === t.value[t.key] : a.value === t.value : a.label === t.label) || l.push(t);
82
+ }), m.value = l;
74
83
  } else
75
84
  m.value = e;
76
85
  },
77
86
  { immediate: !0, deep: !0 }
78
87
  );
79
- const v = r(/* @__PURE__ */ new Map()), S = r(!1), L = async (e) => {
88
+ const v = s(/* @__PURE__ */ new Map()), k = s(!1), j = async (e) => {
80
89
  if (!o.fetchSelected || e === void 0 || e === null) return;
81
- let n = [];
82
- Array.isArray(e) ? n = e : typeof e == "object" ? n = Object.values(e) : n = [e];
83
- const t = n.filter((i) => {
84
- const a = v.value.has(i), N = m.value.some((c) => (c.value ?? c.label) === i);
85
- return !a && !N;
90
+ let l = [];
91
+ Array.isArray(e) ? l = e : typeof e == "object" ? l = Object.values(e) : l = [e];
92
+ const t = l.filter((i) => {
93
+ const a = v.value.has(i), x = m.value.some((c) => (c.value ?? c.label) === i);
94
+ return !a && !x;
86
95
  });
87
96
  if (t.length) {
88
- S.value = !0;
97
+ k.value = !0;
89
98
  try {
90
99
  (await o.fetchSelected(t)).forEach((a) => {
91
100
  v.value.set(a.value ?? a.label, a);
@@ -93,49 +102,58 @@ const ve = /* @__PURE__ */ G({
93
102
  } catch (i) {
94
103
  console.error("[Dropdown] Hydration failed:", i);
95
104
  } finally {
96
- S.value = !1;
105
+ k.value = !1;
97
106
  }
98
107
  }
99
108
  }, y = h(() => {
100
- const e = [...m.value], n = new Set(e.map((t) => t.value ?? t.label));
109
+ const e = [...m.value], l = new Set(e.map((t) => t.value ?? t.label));
101
110
  return v.value.forEach((t, i) => {
102
- n.has(i) || (e.unshift(t), n.add(i));
111
+ l.has(i) || (e.unshift(t), l.add(i));
103
112
  }), e;
104
- }), { getAllRecursiveIds: j } = oe(), z = J({
105
- ...K(o),
113
+ }), { getAllRecursiveIds: z } = ie(), D = Q({
114
+ ...W(o),
106
115
  options: y
107
- }), { currentValue: T, selectedLabel: P, selectOption: D } = ae(
108
- z,
116
+ }), { currentValue: P, selectedLabel: I, selectOption: R } = se(
117
+ D,
109
118
  p
110
- );
119
+ ), F = h(() => {
120
+ const e = o.ignoreClickOutside || [], l = z(y.value);
121
+ return [
122
+ .../* @__PURE__ */ new Set([
123
+ ...e,
124
+ ...l,
125
+ ".modal-body",
126
+ ".v-modal-overlay",
127
+ ".sidepanel-body",
128
+ ".v-sidepanel-overlay"
129
+ ])
130
+ ];
131
+ });
111
132
  $(
112
- () => T.value,
133
+ () => P.value,
113
134
  (e) => {
114
- L(e);
135
+ j(e);
115
136
  },
116
137
  { immediate: !0, deep: !0 }
117
138
  );
118
- const R = h(() => {
119
- const e = o.ignoreClickOutside || [], n = j(y.value);
120
- return [.../* @__PURE__ */ new Set([...e, ...n])];
121
- }), F = (e) => {
122
- o.doubleConfirmation || !!e.confirmation ? (d.value = e, typeof e.confirmation == "object" ? s.value = {
139
+ const U = (e) => {
140
+ o.doubleConfirmation || !!e.confirmation ? (f.value = e, typeof e.confirmation == "object" ? r.value = {
123
141
  title: e.confirmation.title || "Confirm Selection",
124
142
  description: e.confirmation.description || "Are you sure you want to select this option?",
125
143
  confirmText: e.confirmation.confirmText || "Confirm",
126
144
  cancelText: e.confirmation.cancelText || "Cancel",
127
145
  variant: e.confirmation.variant || "primary"
128
- } : s.value = {
146
+ } : r.value = {
129
147
  title: "Confirm Selection",
130
148
  description: `Are you sure you want to select "${e.label}"?`,
131
149
  confirmText: "Confirm",
132
150
  cancelText: "Cancel",
133
151
  variant: "primary"
134
- }, g.value = !0, w()) : (I(e), o.closeOnSelect && w());
135
- }, I = (e) => {
136
- const n = e.value ?? e.label;
137
- v.value.has(n) || v.value.set(n, e);
138
- const t = D(e);
152
+ }, g.value = !0, C()) : (N(e), o.closeOnSelect && C());
153
+ }, N = (e) => {
154
+ const l = e.value ?? e.label;
155
+ v.value.has(l) || v.value.set(l, e);
156
+ const t = R(e);
139
157
  if (!o.isNested) {
140
158
  const i = e._originalOption || e, a = i.value ?? i.label;
141
159
  (e._path || [i]).forEach((c) => {
@@ -147,117 +165,116 @@ const ve = /* @__PURE__ */ G({
147
165
  });
148
166
  });
149
167
  }
150
- }, U = () => {
151
- d.value && (I(d.value), d.value = null, g.value = !1);
152
168
  }, q = () => {
153
- d.value = null, g.value = !1;
154
- }, w = () => {
155
- B(!1);
169
+ f.value && (N(f.value), f.value = null, g.value = !1);
170
+ }, G = () => {
171
+ f.value = null, g.value = !1;
156
172
  };
157
- return (e, n) => (x(), Q("div", {
173
+ return (e, l) => (A(), X("div", {
158
174
  class: "relative inline-block text-left",
159
- style: W({ direction: l.direction })
175
+ style: Y({ direction: n.direction })
160
176
  }, [
161
- k(b(ee), {
177
+ T(O(le), {
162
178
  content: "",
163
179
  trigger: "click",
164
180
  arrow: !1,
165
- teleport: l.teleport,
166
- offset: l.offset,
167
- placement: A.value,
168
- isOpen: O.value,
169
- menuId: l.menuId,
170
- ignoreClickOutside: R.value,
181
+ teleport: n.teleport,
182
+ offset: n.offset,
183
+ placement: E.value,
184
+ isOpen: S.value,
185
+ keepAlive: b.value > 0,
186
+ menuId: n.menuId,
187
+ ignoreClickOutside: F.value,
171
188
  class: "w-full",
172
- className: "dropdown " + (l.className || ""),
173
- onOnShow: n[2] || (n[2] = (t) => e.$emit("onOpen")),
174
- onOnHide: n[3] || (n[3] = (t) => e.$emit("onClose")),
189
+ className: "dropdown " + (n.className || ""),
190
+ onOnShow: l[2] || (l[2] = (t) => e.$emit("onOpen")),
191
+ onOnHide: l[3] || (l[3] = (t) => e.$emit("onClose")),
175
192
  "onUpdate:isOpen": B,
176
193
  triggerClass: "w-full",
177
194
  styles: { padding: "0" }
178
195
  }, {
179
196
  trigger: u(({ isOpen: t }) => [
180
- f(e.$slots, "trigger", H(M({ selectedLabel: b(P), isOpen: t })), () => [
181
- k(ne, {
182
- "selected-label": b(P),
197
+ d(e.$slots, "trigger", M(H({ selectedLabel: O(I), isOpen: t })), () => [
198
+ T(oe, {
199
+ "selected-label": O(I),
183
200
  "is-open": t,
184
- direction: l.direction,
185
- triggerProps: l.triggerProps,
201
+ direction: n.direction,
202
+ triggerProps: n.triggerProps,
186
203
  class: "w-full"
187
204
  }, null, 8, ["selected-label", "is-open", "direction", "triggerProps"])
188
205
  ])
189
206
  ]),
190
207
  default: u(() => [
191
- f(e.$slots, "default"),
192
- C.value.length || y.value.length || e.$slots.menu || e.$slots.item || l.remote || l.searchable ? (x(), X(te, {
208
+ d(e.$slots, "default"),
209
+ w.value.length || y.value.length || e.$slots.menu || e.$slots.item || n.remote || n.searchable ? (A(), Z(ne, {
193
210
  key: 0,
194
- options: C.value,
211
+ options: w.value,
195
212
  cachedOptions: y.value,
196
- class: Y(l.className),
197
- selected: b(T),
198
- selectedIndex: l.selectedIndex,
199
- maxHeight: l.maxHeight,
200
- nestedPosition: E.value,
201
- nestedOffset: l.nestedOffset,
202
- selectable: l.selectable,
203
- direction: l.direction,
204
- layout: l.layout,
205
- columns: l.columns,
206
- loading: l.loading || S.value,
207
- hasMore: l.hasMore,
208
- searchable: l.searchable,
209
- remote: l.remote,
210
- debounceTime: l.debounceTime,
211
- onSelect: F,
212
- onClose: w,
213
- onLoadMore: n[0] || (n[0] = (t) => e.$emit("load-more")),
214
- onSearch: n[1] || (n[1] = (t) => e.$emit("search", t))
215
- }, Z({ _: 2 }, [
213
+ class: _(n.className),
214
+ selected: O(P),
215
+ selectedIndex: n.selectedIndex,
216
+ maxHeight: n.maxHeight,
217
+ nestedPosition: L.value,
218
+ nestedOffset: n.nestedOffset,
219
+ selectable: n.selectable,
220
+ direction: n.direction,
221
+ layout: n.layout,
222
+ columns: n.columns,
223
+ loading: n.loading || k.value,
224
+ hasMore: n.hasMore,
225
+ searchable: n.searchable,
226
+ remote: n.remote,
227
+ debounceTime: n.debounceTime,
228
+ onSelect: U,
229
+ onClose: C,
230
+ onLoadMore: l[0] || (l[0] = (t) => e.$emit("load-more")),
231
+ onSearch: l[1] || (l[1] = (t) => e.$emit("search", t))
232
+ }, ee({ _: 2 }, [
216
233
  e.$slots.menu ? {
217
234
  name: "menu",
218
235
  fn: u(() => [
219
- f(e.$slots, "menu")
236
+ d(e.$slots, "menu")
220
237
  ]),
221
238
  key: "0"
222
239
  } : void 0,
223
240
  e.$slots.item ? {
224
241
  name: "item",
225
242
  fn: u((t) => [
226
- f(e.$slots, "item", H(M(t)))
243
+ d(e.$slots, "item", M(H(t)))
227
244
  ]),
228
245
  key: "1"
229
246
  } : void 0,
230
247
  e.$slots.header ? {
231
248
  name: "header",
232
249
  fn: u(() => [
233
- f(e.$slots, "header")
250
+ d(e.$slots, "header")
234
251
  ]),
235
252
  key: "2"
236
253
  } : void 0,
237
254
  e.$slots.footer ? {
238
255
  name: "footer",
239
256
  fn: u(() => [
240
- f(e.$slots, "footer")
257
+ d(e.$slots, "footer")
241
258
  ]),
242
259
  key: "3"
243
260
  } : void 0
244
- ]), 1032, ["options", "cachedOptions", "class", "selected", "selectedIndex", "maxHeight", "nestedPosition", "nestedOffset", "selectable", "direction", "layout", "columns", "loading", "hasMore", "searchable", "remote", "debounceTime"])) : _("", !0)
261
+ ]), 1032, ["options", "cachedOptions", "class", "selected", "selectedIndex", "maxHeight", "nestedPosition", "nestedOffset", "selectable", "direction", "layout", "columns", "loading", "hasMore", "searchable", "remote", "debounceTime"])) : te("", !0)
245
262
  ]),
246
263
  _: 3
247
- }, 8, ["teleport", "offset", "placement", "isOpen", "menuId", "ignoreClickOutside", "className"]),
248
- k(le, {
264
+ }, 8, ["teleport", "offset", "placement", "isOpen", "keepAlive", "menuId", "ignoreClickOutside", "className"]),
265
+ T(ae, {
249
266
  show: g.value,
250
- title: s.value.title,
251
- description: s.value.description,
252
- "confirm-text": s.value.confirmText,
253
- "cancel-text": s.value.cancelText,
254
- variant: s.value.variant,
255
- onConfirm: U,
256
- onCancel: q
267
+ title: r.value.title,
268
+ description: r.value.description,
269
+ "confirm-text": r.value.confirmText,
270
+ "cancel-text": r.value.cancelText,
271
+ variant: r.value.variant,
272
+ onConfirm: q,
273
+ onCancel: G
257
274
  }, null, 8, ["show", "title", "description", "confirm-text", "cancel-text", "variant"])
258
275
  ], 4));
259
276
  }
260
277
  });
261
278
  export {
262
- ve as default
279
+ pe as default
263
280
  };
@@ -1,7 +1,7 @@
1
1
  import o from "./Modal.vue2.js";
2
2
  /* empty css */
3
3
  import t from "../_virtual/_plugin-vue_export-helper.js";
4
- const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-b4f8e934"]]);
4
+ const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-c26acbd9"]]);
5
5
  export {
6
6
  m as default
7
7
  };
@@ -1,14 +1,14 @@
1
- import { defineComponent as N, ref as u, watch as g, provide as P, nextTick as V, onUnmounted as j, computed as x, openBlock as s, createElementBlock as r, Fragment as K, createElementVNode as d, mergeProps as C, withModifiers as w, renderSlot as f, createCommentVNode as c, createBlock as $, Teleport as M, createVNode as B, Transition as R, withCtx as W, normalizeClass as a, toDisplayString as T, resolveDynamicComponent as A } from "vue";
2
- import F from "./Button.vue.js";
3
- import { useKeyStroke as U } from "../composables/useKeyStroke.js";
4
- import { $t as I } from "../utils/i18n.js";
5
- const q = {
1
+ import { defineComponent as M, ref as f, inject as N, watch as x, provide as P, nextTick as V, onMounted as K, onUnmounted as R, computed as C, openBlock as n, createElementBlock as d, Fragment as W, createElementVNode as c, mergeProps as w, withModifiers as T, renderSlot as m, createCommentVNode as u, createBlock as $, Teleport as A, createVNode as B, Transition as F, withCtx as U, normalizeClass as a, toDisplayString as I, resolveDynamicComponent as q } from "vue";
2
+ import G from "./Button.vue.js";
3
+ import { useKeyStroke as H } from "../composables/useKeyStroke.js";
4
+ import { $t as S } from "../utils/i18n.js";
5
+ const J = {
6
6
  key: 0,
7
7
  class: "flex-none flex flex-col space-y-1.5 pb-0 border-b border-border/90"
8
- }, G = { class: "text-lg font-semibold leading-none tracking-tight" }, H = {
8
+ }, L = { class: "text-lg font-semibold leading-none tracking-tight" }, Q = {
9
9
  key: 0,
10
10
  class: "text-sm text-muted-foreground mb-6.5"
11
- }, Y = /* @__PURE__ */ N({
11
+ }, ee = /* @__PURE__ */ M({
12
12
  inheritAttrs: !1,
13
13
  __name: "Modal",
14
14
  props: {
@@ -28,51 +28,54 @@ const q = {
28
28
  bodyProps: {}
29
29
  },
30
30
  emits: ["close", "update:show", "onOpen"],
31
- setup(t, { emit: S }) {
32
- const o = t, m = S, n = u(o.show), b = u(!1), y = u(!1), p = u(null);
31
+ setup(o, { emit: O }) {
32
+ const t = o, y = O, l = f(t.show), p = f(!1), b = f(!1), v = f(null);
33
33
  let i = null;
34
- g(
35
- () => o.show,
34
+ const r = N("dropdown-context", null);
35
+ x(
36
+ () => t.show,
36
37
  (e) => {
37
- n.value = e, e && m("onOpen");
38
+ l.value = e, e && (y("onOpen"), r?.close());
38
39
  }
39
40
  );
40
- const O = () => {
41
- n.value = !0;
41
+ const j = () => {
42
+ l.value = !0, r?.close();
42
43
  }, z = (e) => {
43
- b.value = e;
44
- }, l = () => {
45
- if (b.value) {
46
- y.value = !0, i && clearTimeout(i), i = setTimeout(() => {
47
- y.value = !1;
44
+ p.value = e;
45
+ }, s = () => {
46
+ if (p.value) {
47
+ b.value = !0, i && clearTimeout(i), i = setTimeout(() => {
48
+ b.value = !1;
48
49
  }, 1e3);
49
50
  return;
50
51
  }
51
- n.value = !1, m("update:show", !1), m("close");
52
+ l.value = !1, y("update:show", !1), y("close");
52
53
  };
53
- P("modal-context", { close: l, setSubmitting: z });
54
+ P("modal-context", { close: s, setSubmitting: z });
54
55
  const D = () => {
55
- o.closeOutside && l();
56
- }, { onKeyStroke: E } = U();
57
- E("Escape", l), g(n, async (e) => {
58
- e ? (document.body.style.overflow = "hidden", await V(), p.value?.focus()) : document.body.style.overflow = "";
59
- }), j(() => {
60
- document.body.style.overflow = "", i && clearTimeout(i);
56
+ t.closeOutside && s();
57
+ }, { onKeyStroke: E } = H();
58
+ E("Escape", s), x(l, async (e) => {
59
+ r?.onChildToggle?.(e), e ? (document.body.style.overflow = "hidden", await V(), v.value?.focus()) : document.body.style.overflow = "";
60
+ }), K(() => {
61
+ l.value && r?.onChildToggle?.(!0);
62
+ }), R(() => {
63
+ l.value && r?.onChildToggle?.(!1), document.body.style.overflow = "", i && clearTimeout(i);
61
64
  });
62
- const v = x(() => o.titleI18n ? I(o.titleI18n) : o.title), h = x(
63
- () => o.descriptionI18n ? I(o.descriptionI18n) : o.description
65
+ const h = C(() => t.titleI18n ? S(t.titleI18n) : t.title), g = C(
66
+ () => t.descriptionI18n ? S(t.descriptionI18n) : t.description
64
67
  );
65
- return (e, k) => (s(), r(K, null, [
66
- d("span", C({
67
- onClick: w(O, ["stop"]),
68
- class: `${t.triggerClass}`
68
+ return (e, k) => (n(), d(W, null, [
69
+ c("span", w({
70
+ onClick: T(j, ["stop"]),
71
+ class: `${o.triggerClass}`
69
72
  }, e.$attrs), [
70
- f(e.$slots, "trigger", {}, () => [
71
- t.body ? f(e.$slots, "default", { key: 0 }, void 0, !0) : c("", !0)
73
+ m(e.$slots, "trigger", {}, () => [
74
+ o.body ? m(e.$slots, "default", { key: 0 }, void 0, !0) : u("", !0)
72
75
  ], !0)
73
76
  ], 16),
74
- (s(), $(M, { to: "body" }, [
75
- B(R, {
77
+ (n(), $(A, { to: "body" }, [
78
+ B(F, {
76
79
  "enter-active-class": "transition duration-200 ease-out",
77
80
  "enter-from-class": "opacity-0",
78
81
  "enter-to-class": "opacity-100",
@@ -80,52 +83,52 @@ const q = {
80
83
  "leave-from-class": "opacity-100",
81
84
  "leave-to-class": "opacity-0"
82
85
  }, {
83
- default: W(() => [
84
- n.value ? (s(), r("div", {
86
+ default: U(() => [
87
+ l.value ? (n(), d("div", {
85
88
  key: 0,
86
- class: a(["fixed inset-0 z-50 flex items-center justify-center bg-[#00000051] p-4", t.backdrop && "backdrop-blur-[2px]"]),
89
+ class: a(["fixed inset-0 z-50 flex items-center justify-center bg-[#00000051] p-4 v-modal-overlay", o.backdrop && "backdrop-blur-[2px]"]),
87
90
  onClick: D
88
91
  }, [
89
- d("div", {
92
+ c("div", {
90
93
  ref_key: "modalRef",
91
- ref: p,
94
+ ref: v,
92
95
  tabindex: "-1",
93
- class: a(["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]]),
94
- onClick: k[0] || (k[0] = w(() => {
96
+ class: a(["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", [o.maxWidth]]),
97
+ onClick: k[0] || (k[0] = T(() => {
95
98
  }, ["stop"]))
96
99
  }, [
97
- v.value ? (s(), r("div", q, [
98
- d("div", {
99
- class: a(["flex items-center justify-between py-2 px-4 rounded-t-md", t.headerClass])
100
+ h.value ? (n(), d("div", J, [
101
+ c("div", {
102
+ class: a(["flex items-center justify-between py-2 px-4 rounded-t-md", o.headerClass])
100
103
  }, [
101
- d("h3", G, T(v.value), 1),
102
- B(F, {
104
+ c("h3", L, I(h.value), 1),
105
+ B(G, {
103
106
  rounded: "full",
104
107
  size: "sm",
105
108
  icon: "lucide:x",
106
109
  variant: "ghost",
107
- class: a(["hover:bg-gray-250/25! transition-all", { "blink-bg": y.value }]),
108
- onClick: l
110
+ class: a(["hover:bg-gray-250/25! transition-all", { "blink-bg": b.value }]),
111
+ onClick: s
109
112
  }, null, 8, ["class"])
110
113
  ], 2)
111
- ])) : c("", !0),
112
- d("div", {
113
- class: a(["flex-1 overflow-y-auto px-4 pt-4 pb-3.5 min-h-0", t.bodyClass])
114
+ ])) : u("", !0),
115
+ c("div", {
116
+ class: a(["flex-1 overflow-y-auto px-4 pt-4 pb-3.5 min-h-0", o.bodyClass])
114
117
  }, [
115
- h.value ? (s(), r("p", H, T(h.value), 1)) : c("", !0),
116
- t.body ? (s(), $(A(t.body), C({ key: 1 }, { ...t.bodyProps, ...e.$attrs }, { close: l }), null, 16)) : f(e.$slots, "default", {
118
+ g.value ? (n(), d("p", Q, I(g.value), 1)) : u("", !0),
119
+ o.body ? (n(), $(q(o.body), w({ key: 1 }, { ...o.bodyProps, ...e.$attrs }, { close: s }), null, 16)) : m(e.$slots, "default", {
117
120
  key: 2,
118
- close: l
121
+ close: s
119
122
  }, void 0, !0)
120
123
  ], 2),
121
- e.$slots.footer ? (s(), r("div", {
124
+ e.$slots.footer ? (n(), d("div", {
122
125
  key: 1,
123
- class: a([t.footerClass, "flex-none flex items-center px-4 py-3 border-t border-border/75 rounded-b-xl bg-body"])
126
+ class: a([o.footerClass, "flex-none flex items-center px-4 py-3 border-t border-border/75 rounded-b-xl bg-body"])
124
127
  }, [
125
- f(e.$slots, "footer", { close: l }, void 0, !0)
126
- ], 2)) : c("", !0)
128
+ m(e.$slots, "footer", { close: s }, void 0, !0)
129
+ ], 2)) : u("", !0)
127
130
  ], 2)
128
- ], 2)) : c("", !0)
131
+ ], 2)) : u("", !0)
129
132
  ]),
130
133
  _: 3
131
134
  })
@@ -134,5 +137,5 @@ const q = {
134
137
  }
135
138
  });
136
139
  export {
137
- Y as default
140
+ ee as default
138
141
  };
@@ -11,7 +11,7 @@ import "v-datepicker-lite";
11
11
  import "v-datepicker-lite/style.css";
12
12
  import "@jaames/iro";
13
13
  import "@vueuse/core";
14
- /* empty css */
14
+ /* empty css */
15
15
  import "iconify-icon-picker";
16
16
  import "iconify-icon-picker/style.css";
17
17
  /* empty css */
@@ -1,11 +1,11 @@
1
- import { defineComponent as N, ref as P, watch as b, onUnmounted as D, computed as f, openBlock as s, createElementBlock as r, Fragment as T, createElementVNode as c, mergeProps as C, withModifiers as V, renderSlot as i, createCommentVNode as l, createBlock as y, Teleport as K, createVNode as h, Transition as k, withCtx as g, normalizeClass as d, toDisplayString as w, resolveDynamicComponent as j } from "vue";
2
- import F from "./Button.vue.js";
3
- import { useKeyStroke as L } from "../composables/useKeyStroke.js";
4
- import { $t as x } from "../utils/i18n.js";
5
- const M = { class: "text-lg font-bold text-foreground" }, U = {
1
+ import { defineComponent as N, ref as P, inject as D, watch as C, onMounted as V, onUnmounted as j, computed as c, openBlock as l, createElementBlock as i, Fragment as K, createElementVNode as m, mergeProps as g, withModifiers as M, renderSlot as d, createCommentVNode as n, createBlock as p, Teleport as F, createVNode as h, Transition as k, withCtx as w, normalizeClass as u, toDisplayString as x, resolveDynamicComponent as L } from "vue";
2
+ import U from "./Button.vue.js";
3
+ import { useKeyStroke as q } from "../composables/useKeyStroke.js";
4
+ import { $t as $ } from "../utils/i18n.js";
5
+ const G = { class: "text-lg font-bold text-foreground" }, H = {
6
6
  key: 0,
7
7
  class: "mt-1 text-sm text-muted-foreground"
8
- }, Q = /* @__PURE__ */ N({
8
+ }, X = /* @__PURE__ */ N({
9
9
  inheritAttrs: !1,
10
10
  __name: "SidePanel",
11
11
  props: {
@@ -29,45 +29,47 @@ const M = { class: "text-lg font-bold text-foreground" }, U = {
29
29
  bodyProps: {}
30
30
  },
31
31
  emits: ["close", "update:show", "onOpen", "onAfterOpen", "onAfterClose"],
32
- setup(t, { emit: $ }) {
33
- const o = t, m = $, a = P(o.show);
34
- b(
32
+ setup(t, { emit: B }) {
33
+ const o = t, y = B, s = P(o.show), r = D("dropdown-context", null);
34
+ C(
35
35
  () => o.show,
36
36
  (e) => {
37
- a.value = e, e && m("onOpen");
37
+ s.value = e, e && (y("onOpen"), r?.close());
38
38
  }
39
39
  );
40
- const B = () => {
41
- a.value = !0;
42
- }, n = () => {
43
- a.value = !1, m("update:show", !1), m("close");
44
- }, z = () => {
45
- o.closeOutside && n();
46
- }, { onKeyStroke: A } = L();
47
- A("Escape", n), b(a, (e) => {
48
- e ? document.body.style.overflow = "hidden" : document.body.style.overflow = "";
49
- }), D(() => {
50
- document.body.style.overflow = "";
40
+ const z = () => {
41
+ s.value = !0, r?.close();
42
+ }, a = () => {
43
+ s.value = !1, y("update:show", !1), y("close");
44
+ }, A = () => {
45
+ o.closeOutside && a();
46
+ }, { onKeyStroke: O } = q();
47
+ O("Escape", a), C(s, (e) => {
48
+ r?.onChildToggle?.(e), e ? document.body.style.overflow = "hidden" : document.body.style.overflow = "";
49
+ }), V(() => {
50
+ s.value && r?.onChildToggle?.(!0);
51
+ }), j(() => {
52
+ s.value && r?.onChildToggle?.(!1), document.body.style.overflow = "";
51
53
  });
52
- const O = {
54
+ const I = {
53
55
  sm: "max-w-sm",
54
56
  md: "max-w-md",
55
57
  lg: "max-w-lg",
56
58
  xl: "max-w-xl",
57
59
  full: "max-w-full"
58
- }, I = f(() => o.position === "left" ? "left-0" : "right-0"), S = f(() => o.position === "left" ? "slide-left" : "slide-right"), p = f(() => o.titleI18n ? x(o.titleI18n) : o.title), v = f(
59
- () => o.descriptionI18n ? x(o.descriptionI18n) : o.description
60
+ }, T = c(() => o.position === "left" ? "left-0" : "right-0"), S = c(() => o.position === "left" ? "slide-left" : "slide-right"), v = c(() => o.titleI18n ? $(o.titleI18n) : o.title), b = c(
61
+ () => o.descriptionI18n ? $(o.descriptionI18n) : o.description
60
62
  );
61
- return (e, u) => (s(), r(T, null, [
62
- c("span", C({
63
- onClick: V(B, ["stop"]),
63
+ return (e, f) => (l(), i(K, null, [
64
+ m("span", g({
65
+ onClick: M(z, ["stop"]),
64
66
  class: `${t.triggerClass}`
65
67
  }, e.$attrs), [
66
- i(e.$slots, "trigger", {}, () => [
67
- t.body ? i(e.$slots, "default", { key: 0 }) : l("", !0)
68
+ d(e.$slots, "trigger", {}, () => [
69
+ t.body ? d(e.$slots, "default", { key: 0 }) : n("", !0)
68
70
  ])
69
71
  ], 16),
70
- (s(), y(K, { to: "body" }, [
72
+ (l(), p(F, { to: "body" }, [
71
73
  h(k, {
72
74
  "enter-active-class": "transition-opacity duration-300 ease-out",
73
75
  "enter-from-class": "opacity-0",
@@ -76,60 +78,60 @@ const M = { class: "text-lg font-bold text-foreground" }, U = {
76
78
  "leave-from-class": "opacity-100",
77
79
  "leave-to-class": "opacity-0"
78
80
  }, {
79
- default: g(() => [
80
- a.value ? (s(), r("div", {
81
+ default: w(() => [
82
+ s.value ? (l(), i("div", {
81
83
  key: 0,
82
- class: d(["fixed inset-0 z-50 bg-[#00000033]", [t.overlayClass, { "backdrop-blur-[2px]": t.backdrop }]]),
83
- onClick: z
84
- }, null, 2)) : l("", !0)
84
+ class: u(["fixed inset-0 z-50 bg-[#00000033] v-sidepanel-overlay", [t.overlayClass, { "backdrop-blur-[2px]": t.backdrop }]]),
85
+ onClick: A
86
+ }, null, 2)) : n("", !0)
85
87
  ]),
86
88
  _: 1
87
89
  }),
88
90
  h(k, {
89
91
  name: S.value,
90
- onAfterEnter: u[0] || (u[0] = (E) => e.$emit("onAfterOpen")),
91
- onAfterLeave: u[1] || (u[1] = (E) => e.$emit("onAfterClose"))
92
+ onAfterEnter: f[0] || (f[0] = (E) => e.$emit("onAfterOpen")),
93
+ onAfterLeave: f[1] || (f[1] = (E) => e.$emit("onAfterClose"))
92
94
  }, {
93
- default: g(() => [
94
- a.value ? (s(), r("div", {
95
+ default: w(() => [
96
+ s.value ? (l(), i("div", {
95
97
  key: 0,
96
- class: d(["sidepanel-body fixed inset-y-0 z-50 flex flex-col bg-body shadow-sm border transition-transform duration-300 ease-in-out w-full", [O[t.size], I.value, o.class]])
98
+ class: u(["sidepanel-body fixed inset-y-0 z-50 flex flex-col bg-body shadow-sm border transition-transform duration-300 ease-in-out w-full", [I[t.size], T.value, o.class]])
97
99
  }, [
98
- p.value || e.$slots.header ? (s(), r("div", {
100
+ v.value || e.$slots.header ? (l(), i("div", {
99
101
  key: 0,
100
- class: d([t.headerClass, "flex-none flex items-center justify-between px-6 py-2 border-b border-border"])
102
+ class: u([t.headerClass, "flex-none flex items-center justify-between px-6 py-2 border-b border-border"])
101
103
  }, [
102
- i(e.$slots, "header", {}, () => [
103
- c("div", null, [
104
- c("h3", M, w(p.value), 1),
105
- v.value ? (s(), r("p", U, w(v.value), 1)) : l("", !0)
104
+ d(e.$slots, "header", {}, () => [
105
+ m("div", null, [
106
+ m("h3", G, x(v.value), 1),
107
+ b.value ? (l(), i("p", H, x(b.value), 1)) : n("", !0)
106
108
  ])
107
109
  ]),
108
- t.hideCloseButton ? l("", !0) : (s(), y(F, {
110
+ t.hideCloseButton ? n("", !0) : (l(), p(U, {
109
111
  key: 0,
110
112
  rounded: "full",
111
113
  size: "sm",
112
114
  variant: "ghost",
113
115
  icon: "lucide:x",
114
- onClick: n,
116
+ onClick: a,
115
117
  class: "-mr-2"
116
118
  }))
117
- ], 2)) : l("", !0),
118
- c("div", {
119
- class: d(["flex-1 overflow-y-auto px-6 py-4", t.bodyClass])
119
+ ], 2)) : n("", !0),
120
+ m("div", {
121
+ class: u(["flex-1 overflow-y-auto px-6 py-4", t.bodyClass])
120
122
  }, [
121
- t.body ? (s(), y(j(t.body), C({ key: 0 }, { ...t.bodyProps, ...e.$attrs }, { close: n }), null, 16)) : i(e.$slots, "default", {
123
+ t.body ? (l(), p(L(t.body), g({ key: 0 }, { ...t.bodyProps, ...e.$attrs }, { close: a }), null, 16)) : d(e.$slots, "default", {
122
124
  key: 1,
123
- close: n
125
+ close: a
124
126
  })
125
127
  ], 2),
126
- e.$slots.footer ? (s(), r("div", {
128
+ e.$slots.footer ? (l(), i("div", {
127
129
  key: 1,
128
- class: d(["flex-none px-6 py-3 border-t border-border", t.footerClass])
130
+ class: u(["flex-none px-6 py-3 border-t border-border", t.footerClass])
129
131
  }, [
130
- i(e.$slots, "footer", { close: n })
131
- ], 2)) : l("", !0)
132
- ], 2)) : l("", !0)
132
+ d(e.$slots, "footer", { close: a })
133
+ ], 2)) : n("", !0)
134
+ ], 2)) : n("", !0)
133
135
  ]),
134
136
  _: 3
135
137
  }, 8, ["name"])
@@ -138,5 +140,5 @@ const M = { class: "text-lg font-bold text-foreground" }, U = {
138
140
  }
139
141
  });
140
142
  export {
141
- Q as default
143
+ X as default
142
144
  };
@@ -1,8 +1,8 @@
1
- import { defineComponent as r, computed as c, openBlock as l, createElementBlock as i, renderSlot as n, createBlock as d, unref as p, mergeProps as u, withCtx as a } from "vue";
1
+ import { defineComponent as r, computed as c, openBlock as l, createElementBlock as i, renderSlot as n, createBlock as p, unref as d, mergeProps as u, withCtx as a } from "vue";
2
2
  import f from "v-tooltip-lite";
3
3
  import "v-tooltip-lite/style.css";
4
4
  import { $t as m } from "../utils/i18n.js";
5
- const g = {
5
+ const y = {
6
6
  key: 0,
7
7
  class: "contents"
8
8
  }, b = /* @__PURE__ */ r({
@@ -22,13 +22,14 @@ const g = {
22
22
  styles: {},
23
23
  ignoreClickOutside: {},
24
24
  isOpen: { type: Boolean },
25
+ keepAlive: { type: Boolean },
25
26
  menuId: {}
26
27
  },
27
28
  setup(t) {
28
29
  const e = t, s = c(() => e.contentI18n ? m(e.contentI18n) : e.content);
29
- return (o, y) => t.disabled ? (l(), i("div", g, [
30
+ return (o, g) => t.disabled ? (l(), i("div", y, [
30
31
  n(o.$slots, "default")
31
- ])) : (l(), d(p(f), u({ key: 1 }, { ...e, content: s.value }, {
32
+ ])) : (l(), p(d(f), u({ key: 1 }, { ...e, content: s.value }, {
32
33
  class: "inline-block",
33
34
  "class-name": `basic-tooltip ${t.className}`
34
35
  }), {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "private": false,
4
4
  "description": "A Vue 3 UI component library built with Tailwind CSS.",
5
5
  "license": "MIT",
6
- "version": "0.6.3",
6
+ "version": "0.6.4",
7
7
  "type": "module",
8
8
  "main": "index.js",
9
9
  "module": "index.js",
@@ -47,7 +47,7 @@
47
47
  "scrollreveal": "^4.0.9",
48
48
  "tailwindcss": "^4.1.18",
49
49
  "v-datepicker-lite": "^0.1.6",
50
- "v-tooltip-lite": "^0.2.3",
50
+ "v-tooltip-lite": "^0.2.5",
51
51
  "vue-carousel-lite": "^0.2.7",
52
52
  "vue-draggable-plus": "^0.5.3",
53
53
  "vue3-google-signin": "^2.1.1",
package/style.css CHANGED
@@ -894,5 +894,5 @@ textarea::-webkit-scrollbar-thumb {
894
894
  }
895
895
 
896
896
  /* --- Vite Generated CSS --- */
897
- input[data-v-e7171c4f]::-webkit-outer-spin-button,input[data-v-e7171c4f]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-e7171c4f]{-moz-appearance:textfield;appearance:textfield}@keyframes onAutoFillStart{0%{opacity:1}to{opacity:1}}@keyframes onAutoFillCancel{0%{opacity:1}to{opacity:1}}input.autofill-detect:-webkit-autofill{animation-name:onAutoFillStart;animation-duration:1ms;animation-fill-mode:both}input.autofill-detect:not(:-webkit-autofill){animation-name:onAutoFillCancel;animation-duration:1ms;animation-fill-mode:both}.blink-bg[data-v-b4f8e934]{animation:blink-animation-b4f8e934 1s infinite}@keyframes blink-animation-b4f8e934{0%{background-color:inherit}15%{background-color:var(--color-gray-250)}35%{background-color:inherit}75%{background-color:var(--color-gray-250)}to{background-color:inherit}}.IroBox{border-radius:8px!important}.custom-fields-table[data-v-c9831df1] .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-c9831df1] input,.custom-fields-table[data-v-c9831df1] textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-c9831df1] input,.custom-fields-table[data-v-c9831df1] textarea,.custom-fields-table[data-v-c9831df1] select,.custom-fields-table[data-v-c9831df1] .input-wrapper,.custom-fields-table[data-v-c9831df1] .tooltip-trigger button{border:none!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;height:100%!important;min-height:40px}.custom-fields-table[data-v-c9831df1] .tooltip-trigger button{justify-content:space-between!important}.custom-fields-table[data-v-c9831df1] input:focus,.custom-fields-table[data-v-c9831df1] textarea:focus,.custom-fields-table[data-v-c9831df1] select:focus,.custom-fields-table[data-v-c9831df1] .input-wrapper:focus-within{background-color:hsla(var(--primary) / .03)!important;box-shadow:inset 0 0 0 2px hsla(var(--primary) / .1)!important}.custom-fields-table[data-v-c9831df1] .w-full{width:100%;height:100%}.list-enter-active[data-v-c9831df1]{transition:all .15s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-c9831df1]{opacity:0;transform:translateY(-5px)}.form-field-item[data-v-0fe8a23f]{display:flex;flex-direction:column}.form-field-item[data-v-0fe8a23f]:has([role=switch]),.form-field-item[data-v-0fe8a23f]:has([role=checkbox]){flex-direction:row;align-items:center;justify-content:flex-start}.form-container[data-v-78f87e2c]{width:100%}.custom-scrollbar[data-v-3849c10a]::-webkit-scrollbar{width:0px}.custom-scrollbar[data-v-3849c10a]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-3849c10a]::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:10px}.custom-scrollbar-x[data-v-11bc76c9]::-webkit-scrollbar{height:8px}.custom-scrollbar-x[data-v-11bc76c9]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar-x[data-v-11bc76c9]::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:10px}.navbar-tabs-no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.navbar-tabs-no-scrollbar::-webkit-scrollbar{display:none}.fade-x-enter-active,.fade-x-leave-active{transition:opacity .15s ease}.fade-x-enter-from,.fade-x-leave-to{opacity:0}.breadcrumb-item[data-v-0b2efcbc]{display:inline-flex;align-items:center}.breadcrumb-link[data-v-0b2efcbc]{display:inline-flex;align-items:center;gap:.35em;color:var(--color-muted-foreground);text-decoration:none;transition:color .15s ease,background-color .15s ease;border-radius:var(--radius-sm)}.breadcrumb-link[data-v-0b2efcbc]:not(.current):not(.disabled):hover{color:var(--color-foreground)}.breadcrumb-link.current[data-v-0b2efcbc]{color:var(--color-foreground);font-weight:600;cursor:default}.breadcrumb-link.disabled[data-v-0b2efcbc]{opacity:.45;cursor:not-allowed;pointer-events:none}.breadcrumb-icon[data-v-0b2efcbc]{flex-shrink:0}.breadcrumb-list[data-v-ae18a95c]{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0;gap:.45em}.breadcrumb--sm[data-v-ae18a95c]{font-size:var(--text--fs-2)}.breadcrumb--md[data-v-ae18a95c]{font-size:var(--text-fs-0.5, 1em)}.breadcrumb--lg[data-v-ae18a95c]{font-size:var(--text-fs-2)}.breadcrumb-separator[data-v-ae18a95c]{display:inline-flex;align-items:center;color:var(--color-gray-400);-webkit-user-select:none;user-select:none;font-size:.9em;line-height:1;padding:0 .1em}.breadcrumb-ellipsis[data-v-ae18a95c]{display:inline-flex;align-items:center}.breadcrumb-ellipsis-btn[data-v-ae18a95c]{display:inline-flex;align-items:center;justify-content:center;width:1.6em;height:1.6em;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:transparent;color:var(--color-muted-foreground);cursor:pointer;font-size:.9em;line-height:1;letter-spacing:.05em;transition:all .15s ease}.breadcrumb-ellipsis-btn[data-v-ae18a95c]:hover{background:var(--color-accent);color:var(--color-foreground);border-color:var(--color-gray-350)}.breadcrumb--contained[data-v-ae18a95c]{background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.45em 1em}.breadcrumb--pills[data-v-ae18a95c] .breadcrumb-link{padding:.2em .7em;border-radius:9999px;background:var(--color-secondary);border:1px solid var(--color-border)}.breadcrumb--pills[data-v-ae18a95c] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent);border-color:var(--color-gray-350)}.breadcrumb--pills[data-v-ae18a95c] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.breadcrumb--arrow .breadcrumb-list[data-v-ae18a95c]{gap:0}.breadcrumb--arrow[data-v-ae18a95c] .breadcrumb-link{padding:.35em .9em .35em 1.4em;background:var(--color-secondary);clip-path:polygon(0 0,calc(100% - .6em) 0,100% 50%,calc(100% - .6em) 100%,0 100%,.6em 50%);border:none;margin-left:-.3em}.breadcrumb--arrow[data-v-ae18a95c] .breadcrumb-item:first-child .breadcrumb-link{padding-left:.9em;clip-path:polygon(0 0,calc(100% - .6em) 0,100% 50%,calc(100% - .6em) 100%,0 100%);border-radius:var(--radius-sm) 0 0 var(--radius-sm);margin-left:0}.breadcrumb--arrow[data-v-ae18a95c] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent)}.breadcrumb--arrow[data-v-ae18a95c] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground)}.breadcrumb--arrow .breadcrumb-separator[data-v-ae18a95c]{display:none}.heatmap-container[data-v-00476f00]{width:100%;height:100%;display:flex;flex-direction:column;min-height:0}.heatmap-wrapper[data-v-00476f00]{width:100%;height:100%;overflow:auto;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;position:relative}.heatmap-grid[data-v-00476f00]{width:fit-content;height:fit-content;transition:all .2s ease-in-out}.heatmap-cell[data-v-00476f00]{aspect-ratio:1 / 1;border-radius:2px;transition:all .15s ease-in-out;border:1px solid transparent;box-sizing:border-box}.heatmap-cell-interactive[data-v-00476f00]{cursor:pointer}.heatmap-cell-interactive[data-v-00476f00]:hover{transform:scale(1.1);border-color:var(--border);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;z-index:10;position:relative}.heatmap-cell-empty[data-v-00476f00]{opacity:.6}.heatmap-cell-hovered[data-v-00476f00]{outline:2px solid var(--primary);outline-offset:1px}.heatmap-cell-label[data-v-00476f00]{font-size:8px;font-weight:500;color:var(--foreground);opacity:.8;display:flex;align-items:center;justify-content:center;height:100%;width:100%;pointer-events:none}.heatmap-legend[data-v-00476f00]{display:flex;align-items:center;gap:.5rem;margin-top:1rem;font-size:.75rem;color:var(--muted-foreground);flex-shrink:0}.heatmap-legend-label[data-v-00476f00]{font-weight:500}.heatmap-legend-colors[data-v-00476f00]{display:flex;gap:.125rem}.heatmap-legend-item[data-v-00476f00]{width:.75rem;height:.75rem;border-radius:.375rem;border:1px solid var(--border)}@media(max-width:640px){.heatmap-wrapper[data-v-00476f00]{padding:12px}.heatmap-cell[data-v-00476f00]{border-radius:2px}.heatmap-cell-label[data-v-00476f00]{font-size:7px}}@media(min-width:641px)and (max-width:1023px){.heatmap-wrapper[data-v-00476f00]{padding:14px}.heatmap-cell[data-v-00476f00]{border-radius:2px}}@media(min-width:1024px){.heatmap-wrapper[data-v-00476f00]{padding:16px}.heatmap-cell[data-v-00476f00]{border-radius:3px}}.masonry-item[data-v-c29d0159]{content-visibility:auto;contain-intrinsic-size:1px 200px}.carousel-wrapper[data-v-655a78c8]{width:100%;position:relative}.accordion-enter-active[data-v-aa189e08],.accordion-leave-active[data-v-aa189e08]{transition:height .3s ease-in-out}.sidebar-manu-item .tooltip-trigger{width:100%!important}.sidebar-menu-tooltip{margin-left:4px!important}[dir=rtl] .sidebar-menu-tooltip{margin-right:4px!important}.bg-stripe[data-v-454a1505]{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.animate-progress-stripe[data-v-454a1505]{animation:progress-stripe-454a1505 1s linear infinite}@keyframes progress-stripe-454a1505{0%{background-position:1rem 0}to{background-position:0 0}}.animate-progress-indeterminate[data-v-454a1505]{animation:progress-indeterminate-454a1505 1.5s infinite cubic-bezier(.65,.815,.735,.395)}@keyframes progress-indeterminate-454a1505{0%{transform:translate(-100%) scaleX(.2)}50%{transform:translate(0) scaleX(.5)}to{transform:translate(100%) scaleX(.2)}}.permission-matrix-wrapper[data-v-c5641678]{max-height:70vh}.permission-matrix-wrapper[data-v-c5641678]::-webkit-scrollbar{width:6px;height:6px}.permission-matrix-wrapper[data-v-c5641678]::-webkit-scrollbar-track{background:transparent}.permission-matrix-wrapper[data-v-c5641678]::-webkit-scrollbar-thumb{background:var(--color-gray-350);border-radius:3px}.permission-matrix-wrapper[data-v-c5641678]::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}.button-group[data-v-ba735fac] button{align-self:stretch;height:auto!important;min-height:unset!important;min-width:unset!important;width:auto!important}.button-group[data-v-ba735fac]:not(.vertical-group) button{aspect-ratio:unset}.attached-group[data-v-ba735fac] button{position:relative;--radius: .375rem}.attached-group[data-v-ba735fac] button:focus-visible,.attached-group[data-v-ba735fac] button:hover{z-index:10}.attached-group[data-v-ba735fac]:not(.vertical-group) button:not(:first-child){margin-left:-1px}.attached-group[data-v-ba735fac]:not(.vertical-group) button:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius);border-top-right-radius:0;border-bottom-right-radius:0}.attached-group[data-v-ba735fac]:not(.vertical-group) button:not(:first-child):not(:last-child){border-radius:0}.attached-group[data-v-ba735fac]:not(.vertical-group) button:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius);border-top-left-radius:0;border-bottom-left-radius:0}.vertical-group[data-v-ba735fac] button:not(:first-child){margin-top:-1px}.vertical-group[data-v-ba735fac] button:first-child{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.vertical-group[data-v-ba735fac] button:not(:first-child):not(:last-child){border-radius:0}.vertical-group[data-v-ba735fac] button:last-child{border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);border-top-left-radius:0;border-top-right-radius:0}.attached-group[data-v-ba735fac]:not(.vertical-group) button:not(:first-child):not(.border):before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none;height:100%}.vertical-group[data-v-ba735fac] button:not(:first-child):not(.border):before{content:"";position:absolute;top:0;left:0;right:0;height:1px;width:100%;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none}.first-toast-enter-active[data-v-dc3a3b49]{animation:first-toast-in-dc3a3b49 .45s cubic-bezier(.23,1,.32,1) forwards}.first-toast-leave-active[data-v-dc3a3b49]{transition:all .25s ease-in}.first-toast-leave-to[data-v-dc3a3b49]{opacity:0;transform:scale(.98)}@keyframes first-toast-in-dc3a3b49{0%{opacity:var(--entrance-opacity, .6);transform:translateY(var(--entrance-offset, 25px)) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.stack-toast-enter-active[data-v-dc3a3b49],.stack-toast-leave-active[data-v-dc3a3b49]{transition:all .3s cubic-bezier(.16,1,.3,1)}.stack-toast-enter-from[data-v-dc3a3b49]{opacity:0;transform:scale(.95) translateY(10px)}.stack-toast-leave-to[data-v-dc3a3b49]{opacity:0;transform:scale(.95)}.stack-toast-move[data-v-dc3a3b49]{transition:transform .4s cubic-bezier(.16,1,.3,1)}.command-palette-content[data-v-e919f56b] ::-webkit-scrollbar{width:4px}.command-palette-content[data-v-e919f56b] ::-webkit-scrollbar-track{background:transparent}.command-palette-content[data-v-e919f56b] ::-webkit-scrollbar-thumb{background:var(--border);border-radius:9999px}
897
+ input[data-v-e7171c4f]::-webkit-outer-spin-button,input[data-v-e7171c4f]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-e7171c4f]{-moz-appearance:textfield;appearance:textfield}@keyframes onAutoFillStart{0%{opacity:1}to{opacity:1}}@keyframes onAutoFillCancel{0%{opacity:1}to{opacity:1}}input.autofill-detect:-webkit-autofill{animation-name:onAutoFillStart;animation-duration:1ms;animation-fill-mode:both}input.autofill-detect:not(:-webkit-autofill){animation-name:onAutoFillCancel;animation-duration:1ms;animation-fill-mode:both}.blink-bg[data-v-c26acbd9]{animation:blink-animation-c26acbd9 1s infinite}@keyframes blink-animation-c26acbd9{0%{background-color:inherit}15%{background-color:var(--color-gray-250)}35%{background-color:inherit}75%{background-color:var(--color-gray-250)}to{background-color:inherit}}.IroBox{border-radius:8px!important}.custom-fields-table[data-v-c9831df1] .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-c9831df1] input,.custom-fields-table[data-v-c9831df1] textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-c9831df1] input,.custom-fields-table[data-v-c9831df1] textarea,.custom-fields-table[data-v-c9831df1] select,.custom-fields-table[data-v-c9831df1] .input-wrapper,.custom-fields-table[data-v-c9831df1] .tooltip-trigger button{border:none!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;height:100%!important;min-height:40px}.custom-fields-table[data-v-c9831df1] .tooltip-trigger button{justify-content:space-between!important}.custom-fields-table[data-v-c9831df1] input:focus,.custom-fields-table[data-v-c9831df1] textarea:focus,.custom-fields-table[data-v-c9831df1] select:focus,.custom-fields-table[data-v-c9831df1] .input-wrapper:focus-within{background-color:hsla(var(--primary) / .03)!important;box-shadow:inset 0 0 0 2px hsla(var(--primary) / .1)!important}.custom-fields-table[data-v-c9831df1] .w-full{width:100%;height:100%}.list-enter-active[data-v-c9831df1]{transition:all .15s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-c9831df1]{opacity:0;transform:translateY(-5px)}.form-field-item[data-v-0fe8a23f]{display:flex;flex-direction:column}.form-field-item[data-v-0fe8a23f]:has([role=switch]),.form-field-item[data-v-0fe8a23f]:has([role=checkbox]){flex-direction:row;align-items:center;justify-content:flex-start}.form-container[data-v-78f87e2c]{width:100%}.custom-scrollbar[data-v-3849c10a]::-webkit-scrollbar{width:0px}.custom-scrollbar[data-v-3849c10a]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-3849c10a]::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:10px}.custom-scrollbar-x[data-v-11bc76c9]::-webkit-scrollbar{height:8px}.custom-scrollbar-x[data-v-11bc76c9]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar-x[data-v-11bc76c9]::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:10px}.navbar-tabs-no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.navbar-tabs-no-scrollbar::-webkit-scrollbar{display:none}.fade-x-enter-active,.fade-x-leave-active{transition:opacity .15s ease}.fade-x-enter-from,.fade-x-leave-to{opacity:0}.breadcrumb-item[data-v-0b2efcbc]{display:inline-flex;align-items:center}.breadcrumb-link[data-v-0b2efcbc]{display:inline-flex;align-items:center;gap:.35em;color:var(--color-muted-foreground);text-decoration:none;transition:color .15s ease,background-color .15s ease;border-radius:var(--radius-sm)}.breadcrumb-link[data-v-0b2efcbc]:not(.current):not(.disabled):hover{color:var(--color-foreground)}.breadcrumb-link.current[data-v-0b2efcbc]{color:var(--color-foreground);font-weight:600;cursor:default}.breadcrumb-link.disabled[data-v-0b2efcbc]{opacity:.45;cursor:not-allowed;pointer-events:none}.breadcrumb-icon[data-v-0b2efcbc]{flex-shrink:0}.breadcrumb-list[data-v-ae18a95c]{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0;gap:.45em}.breadcrumb--sm[data-v-ae18a95c]{font-size:var(--text--fs-2)}.breadcrumb--md[data-v-ae18a95c]{font-size:var(--text-fs-0.5, 1em)}.breadcrumb--lg[data-v-ae18a95c]{font-size:var(--text-fs-2)}.breadcrumb-separator[data-v-ae18a95c]{display:inline-flex;align-items:center;color:var(--color-gray-400);-webkit-user-select:none;user-select:none;font-size:.9em;line-height:1;padding:0 .1em}.breadcrumb-ellipsis[data-v-ae18a95c]{display:inline-flex;align-items:center}.breadcrumb-ellipsis-btn[data-v-ae18a95c]{display:inline-flex;align-items:center;justify-content:center;width:1.6em;height:1.6em;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:transparent;color:var(--color-muted-foreground);cursor:pointer;font-size:.9em;line-height:1;letter-spacing:.05em;transition:all .15s ease}.breadcrumb-ellipsis-btn[data-v-ae18a95c]:hover{background:var(--color-accent);color:var(--color-foreground);border-color:var(--color-gray-350)}.breadcrumb--contained[data-v-ae18a95c]{background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.45em 1em}.breadcrumb--pills[data-v-ae18a95c] .breadcrumb-link{padding:.2em .7em;border-radius:9999px;background:var(--color-secondary);border:1px solid var(--color-border)}.breadcrumb--pills[data-v-ae18a95c] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent);border-color:var(--color-gray-350)}.breadcrumb--pills[data-v-ae18a95c] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.breadcrumb--arrow .breadcrumb-list[data-v-ae18a95c]{gap:0}.breadcrumb--arrow[data-v-ae18a95c] .breadcrumb-link{padding:.35em .9em .35em 1.4em;background:var(--color-secondary);clip-path:polygon(0 0,calc(100% - .6em) 0,100% 50%,calc(100% - .6em) 100%,0 100%,.6em 50%);border:none;margin-left:-.3em}.breadcrumb--arrow[data-v-ae18a95c] .breadcrumb-item:first-child .breadcrumb-link{padding-left:.9em;clip-path:polygon(0 0,calc(100% - .6em) 0,100% 50%,calc(100% - .6em) 100%,0 100%);border-radius:var(--radius-sm) 0 0 var(--radius-sm);margin-left:0}.breadcrumb--arrow[data-v-ae18a95c] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent)}.breadcrumb--arrow[data-v-ae18a95c] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground)}.breadcrumb--arrow .breadcrumb-separator[data-v-ae18a95c]{display:none}.heatmap-container[data-v-00476f00]{width:100%;height:100%;display:flex;flex-direction:column;min-height:0}.heatmap-wrapper[data-v-00476f00]{width:100%;height:100%;overflow:auto;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;position:relative}.heatmap-grid[data-v-00476f00]{width:fit-content;height:fit-content;transition:all .2s ease-in-out}.heatmap-cell[data-v-00476f00]{aspect-ratio:1 / 1;border-radius:2px;transition:all .15s ease-in-out;border:1px solid transparent;box-sizing:border-box}.heatmap-cell-interactive[data-v-00476f00]{cursor:pointer}.heatmap-cell-interactive[data-v-00476f00]:hover{transform:scale(1.1);border-color:var(--border);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;z-index:10;position:relative}.heatmap-cell-empty[data-v-00476f00]{opacity:.6}.heatmap-cell-hovered[data-v-00476f00]{outline:2px solid var(--primary);outline-offset:1px}.heatmap-cell-label[data-v-00476f00]{font-size:8px;font-weight:500;color:var(--foreground);opacity:.8;display:flex;align-items:center;justify-content:center;height:100%;width:100%;pointer-events:none}.heatmap-legend[data-v-00476f00]{display:flex;align-items:center;gap:.5rem;margin-top:1rem;font-size:.75rem;color:var(--muted-foreground);flex-shrink:0}.heatmap-legend-label[data-v-00476f00]{font-weight:500}.heatmap-legend-colors[data-v-00476f00]{display:flex;gap:.125rem}.heatmap-legend-item[data-v-00476f00]{width:.75rem;height:.75rem;border-radius:.375rem;border:1px solid var(--border)}@media(max-width:640px){.heatmap-wrapper[data-v-00476f00]{padding:12px}.heatmap-cell[data-v-00476f00]{border-radius:2px}.heatmap-cell-label[data-v-00476f00]{font-size:7px}}@media(min-width:641px)and (max-width:1023px){.heatmap-wrapper[data-v-00476f00]{padding:14px}.heatmap-cell[data-v-00476f00]{border-radius:2px}}@media(min-width:1024px){.heatmap-wrapper[data-v-00476f00]{padding:16px}.heatmap-cell[data-v-00476f00]{border-radius:3px}}.masonry-item[data-v-c29d0159]{content-visibility:auto;contain-intrinsic-size:1px 200px}.carousel-wrapper[data-v-655a78c8]{width:100%;position:relative}.accordion-enter-active[data-v-aa189e08],.accordion-leave-active[data-v-aa189e08]{transition:height .3s ease-in-out}.sidebar-manu-item .tooltip-trigger{width:100%!important}.sidebar-menu-tooltip{margin-left:4px!important}[dir=rtl] .sidebar-menu-tooltip{margin-right:4px!important}.bg-stripe[data-v-454a1505]{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.animate-progress-stripe[data-v-454a1505]{animation:progress-stripe-454a1505 1s linear infinite}@keyframes progress-stripe-454a1505{0%{background-position:1rem 0}to{background-position:0 0}}.animate-progress-indeterminate[data-v-454a1505]{animation:progress-indeterminate-454a1505 1.5s infinite cubic-bezier(.65,.815,.735,.395)}@keyframes progress-indeterminate-454a1505{0%{transform:translate(-100%) scaleX(.2)}50%{transform:translate(0) scaleX(.5)}to{transform:translate(100%) scaleX(.2)}}.permission-matrix-wrapper[data-v-c5641678]{max-height:70vh}.permission-matrix-wrapper[data-v-c5641678]::-webkit-scrollbar{width:6px;height:6px}.permission-matrix-wrapper[data-v-c5641678]::-webkit-scrollbar-track{background:transparent}.permission-matrix-wrapper[data-v-c5641678]::-webkit-scrollbar-thumb{background:var(--color-gray-350);border-radius:3px}.permission-matrix-wrapper[data-v-c5641678]::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}.button-group[data-v-ba735fac] button{align-self:stretch;height:auto!important;min-height:unset!important;min-width:unset!important;width:auto!important}.button-group[data-v-ba735fac]:not(.vertical-group) button{aspect-ratio:unset}.attached-group[data-v-ba735fac] button{position:relative;--radius: .375rem}.attached-group[data-v-ba735fac] button:focus-visible,.attached-group[data-v-ba735fac] button:hover{z-index:10}.attached-group[data-v-ba735fac]:not(.vertical-group) button:not(:first-child){margin-left:-1px}.attached-group[data-v-ba735fac]:not(.vertical-group) button:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius);border-top-right-radius:0;border-bottom-right-radius:0}.attached-group[data-v-ba735fac]:not(.vertical-group) button:not(:first-child):not(:last-child){border-radius:0}.attached-group[data-v-ba735fac]:not(.vertical-group) button:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius);border-top-left-radius:0;border-bottom-left-radius:0}.vertical-group[data-v-ba735fac] button:not(:first-child){margin-top:-1px}.vertical-group[data-v-ba735fac] button:first-child{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.vertical-group[data-v-ba735fac] button:not(:first-child):not(:last-child){border-radius:0}.vertical-group[data-v-ba735fac] button:last-child{border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);border-top-left-radius:0;border-top-right-radius:0}.attached-group[data-v-ba735fac]:not(.vertical-group) button:not(:first-child):not(.border):before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none;height:100%}.vertical-group[data-v-ba735fac] button:not(:first-child):not(.border):before{content:"";position:absolute;top:0;left:0;right:0;height:1px;width:100%;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none}.first-toast-enter-active[data-v-dc3a3b49]{animation:first-toast-in-dc3a3b49 .45s cubic-bezier(.23,1,.32,1) forwards}.first-toast-leave-active[data-v-dc3a3b49]{transition:all .25s ease-in}.first-toast-leave-to[data-v-dc3a3b49]{opacity:0;transform:scale(.98)}@keyframes first-toast-in-dc3a3b49{0%{opacity:var(--entrance-opacity, .6);transform:translateY(var(--entrance-offset, 25px)) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.stack-toast-enter-active[data-v-dc3a3b49],.stack-toast-leave-active[data-v-dc3a3b49]{transition:all .3s cubic-bezier(.16,1,.3,1)}.stack-toast-enter-from[data-v-dc3a3b49]{opacity:0;transform:scale(.95) translateY(10px)}.stack-toast-leave-to[data-v-dc3a3b49]{opacity:0;transform:scale(.95)}.stack-toast-move[data-v-dc3a3b49]{transition:transform .4s cubic-bezier(.16,1,.3,1)}.command-palette-content[data-v-e919f56b] ::-webkit-scrollbar{width:4px}.command-palette-content[data-v-e919f56b] ::-webkit-scrollbar-track{background:transparent}.command-palette-content[data-v-e919f56b] ::-webkit-scrollbar-thumb{background:var(--border);border-radius:9999px}
898
898