vlite3 0.8.7 → 0.8.8

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,14 +1,14 @@
1
- import { defineComponent as b, computed as d, openBlock as a, createElementBlock as u, normalizeClass as i, renderSlot as c } from "vue";
1
+ import { defineComponent as b, computed as a, openBlock as d, createElementBlock as u, normalizeClass as i, renderSlot as c } from "vue";
2
2
  const p = /* @__PURE__ */ b({
3
3
  __name: "Badge",
4
4
  props: {
5
5
  variant: { default: "default" },
6
- size: { default: "md" },
6
+ size: { default: "sm" },
7
7
  rounded: { default: "full" },
8
8
  class: { default: "" }
9
9
  },
10
10
  setup(o) {
11
- const e = o, s = d(() => {
11
+ const e = o, s = a(() => {
12
12
  const r = {
13
13
  xs: "px-1.5 h-5 text-[10.5px] leading-none",
14
14
  sm: "px-2 h-6 text-xs font-medium",
@@ -33,7 +33,7 @@ const p = /* @__PURE__ */ b({
33
33
  };
34
34
  return [l, t[e.variant] || t.default, e.class].join(" ");
35
35
  });
36
- return (r, n) => (a(), u("div", {
36
+ return (r, n) => (d(), u("div", {
37
37
  class: i(s.value)
38
38
  }, [
39
39
  c(r.$slots, "default")
@@ -1,4 +1,4 @@
1
- import { defineComponent as B, computed as o, useSlots as R, inject as S, withDirectives as G, openBlock as s, createElementBlock as h, normalizeClass as i, createBlock as d, createCommentVNode as m, renderSlot as f, createTextVNode as b, toDisplayString as x, unref as $ } from "vue";
1
+ import { defineComponent as B, computed as o, useSlots as R, inject as S, withDirectives as G, openBlock as s, createElementBlock as h, normalizeClass as r, createBlock as u, createCommentVNode as m, renderSlot as b, createTextVNode as f, toDisplayString as x, unref as $ } from "vue";
2
2
  import g from "./Icon.vue.js";
3
3
  import { vRipple as j } from "../directives/vRipple.js";
4
4
  import { $t as V } from "../utils/i18n.js";
@@ -25,7 +25,7 @@ const D = ["type", "disabled"], q = /* @__PURE__ */ B({
25
25
  const t = e, a = o(() => t.textI18n ? V(t.textI18n) : t.text), v = R(), l = o(
26
26
  () => t?.asIcon || t.icon && !a.value && !v.default
27
27
  ), p = S("buttonGroup", null), w = o(() => !!p?.isInGroup), y = o(() => {
28
- const n = "inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 active:scale-[0.98] cursor-pointer gap-2", r = {
28
+ const n = "inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background focus-visible:outline-none focus:border focus:border-primary disabled:pointer-events-none disabled:opacity-50 active:scale-[0.98] cursor-pointer gap-2", i = {
29
29
  primary: "bg-primary text-primary-foreground hover:bg-primary/90",
30
30
  "primary-light": "bg-primary-light text-primary-fg-light hover:bg-primary/20",
31
31
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
@@ -77,12 +77,12 @@ const D = ["type", "disabled"], q = /* @__PURE__ */ B({
77
77
  "2xl": "rounded-2xl",
78
78
  full: "rounded-full"
79
79
  };
80
- let u;
81
- return l.value ? u = w.value ? k[t.size] : C[t.size] : u = z[t.size], [
80
+ let d;
81
+ return l.value ? d = w.value ? k[t.size] : C[t.size] : d = z[t.size], [
82
82
  n,
83
- r[t.variant],
83
+ i[t.variant],
84
84
  I[t.rounded],
85
- u,
85
+ d,
86
86
  t.class
87
87
  ].join(" ");
88
88
  }), c = o(() => {
@@ -93,7 +93,7 @@ const D = ["type", "disabled"], q = /* @__PURE__ */ B({
93
93
  md: "w-4 h-4",
94
94
  lg: "w-4 h-4",
95
95
  xl: "w-4 h-4"
96
- }, r = {
96
+ }, i = {
97
97
  xs: "w-3 h-3",
98
98
  sm: "w-4 h-4",
99
99
  sm2: "w-4 h-4",
@@ -101,36 +101,36 @@ const D = ["type", "disabled"], q = /* @__PURE__ */ B({
101
101
  lg: "w-4 h-4",
102
102
  xl: "w-4 h-4"
103
103
  };
104
- return l.value ? r[t.size] : n[t.size];
104
+ return l.value ? i[t.size] : n[t.size];
105
105
  });
106
- return (n, r) => G((s(), h("button", {
106
+ return (n, i) => G((s(), h("button", {
107
107
  type: e.type,
108
- class: i([y.value, "cursor-pointer"]),
108
+ class: r([y.value, "cursor-pointer"]),
109
109
  disabled: e.disabled || e.loading
110
110
  }, [
111
- e.loading ? (s(), d(g, {
111
+ e.loading ? (s(), u(g, {
112
112
  key: 0,
113
113
  icon: "lucide:loader-2",
114
- class: i(["animate-spin pointer-events-none", c.value])
115
- }, null, 8, ["class"])) : e.icon ? (s(), d(g, {
114
+ class: r(["animate-spin pointer-events-none", c.value])
115
+ }, null, 8, ["class"])) : e.icon ? (s(), u(g, {
116
116
  key: 1,
117
117
  icon: e.icon,
118
- class: i(["pointer-events-none", [e.iconClass, c.value, l.value ? "mx-auto" : ""]])
118
+ class: r(["pointer-events-none", [e.iconClass, c.value, l.value ? "mx-auto" : ""]])
119
119
  }, null, 8, ["icon", "class"])) : m("", !0),
120
120
  e.textClass ? (s(), h("span", {
121
121
  key: 2,
122
- class: i(e.textClass)
122
+ class: r(e.textClass)
123
123
  }, [
124
- f(n.$slots, "default", {}, () => [
125
- b(x(a.value), 1)
124
+ b(n.$slots, "default", {}, () => [
125
+ f(x(a.value), 1)
126
126
  ])
127
- ], 2)) : f(n.$slots, "default", { key: 3 }, () => [
128
- b(x(a.value), 1)
127
+ ], 2)) : b(n.$slots, "default", { key: 3 }, () => [
128
+ f(x(a.value), 1)
129
129
  ]),
130
- e.iconRight && !e.loading ? (s(), d(g, {
130
+ e.iconRight && !e.loading ? (s(), u(g, {
131
131
  key: 4,
132
132
  icon: e.iconRight,
133
- class: i([[e.iconRightClass, c.value], "h-4 w-4 pointer-events-none"])
133
+ class: r([[e.iconRightClass, c.value], "h-4 w-4 pointer-events-none"])
134
134
  }, null, 8, ["icon", "class"])) : m("", !0)
135
135
  ], 10, D)), [
136
136
  [$(j)]
@@ -4,7 +4,7 @@ import k from "../Icon.vue.js";
4
4
  import { $t as E } from "../../utils/i18n.js";
5
5
  import { useCommandPaletteItems as Y } from "./useCommandPaletteItems.js";
6
6
  import { useCommandPaletteNav as Z } from "./useCommandPaletteNav.js";
7
- import ee from "./CommandPaletteItem.vue2.js";
7
+ import ee from "./CommandPaletteItem.vue.js";
8
8
  const te = { class: "command-palette-content flex flex-col w-full h-full max-h-[70vh]" }, oe = { class: "flex items-center gap-3 px-4 py-3 border-b border-border/60 shrink-0" }, se = ["placeholder"], ne = ["aria-label"], re = {
9
9
  key: 0,
10
10
  class: "flex flex-col items-center justify-center py-14 px-6 text-center select-none",
@@ -1,5 +1,5 @@
1
1
  import t from "./CommandPaletteItem.vue3.js";
2
- /* empty css */
2
+ /* empty css */
3
3
  import o from "../../_virtual/_plugin-vue_export-helper.js";
4
4
  const r = /* @__PURE__ */ o(t, [["__scopeId", "data-v-66b1ae06"]]);
5
5
  export {
@@ -24,7 +24,7 @@ const $e = { class: "space-y-6.5" }, Be = { class: "overflow-x-auto w-full" }, E
24
24
  rows: { default: () => [] },
25
25
  selectedRows: { default: () => [] },
26
26
  search: { default: "" },
27
- showSearch: { type: Boolean, default: !0 },
27
+ showSearch: { type: Boolean, default: !1 },
28
28
  searchPlaceholder: {},
29
29
  searchPlaceholderI18n: {},
30
30
  toolbarClass: {},
@@ -83,13 +83,22 @@ const $e = { class: "space-y-6.5" }, Be = { class: "overflow-x-auto w-full" }, E
83
83
  V && clearTimeout(V), V = setTimeout(() => {
84
84
  h.value = 1, R();
85
85
  }, 300);
86
- }), g(() => a.pageInfo?.itemsPerPage, (e) => {
87
- e !== void 0 && (P.value = e);
88
- }), g(() => a.paginationProps?.itemsPerPage, (e) => {
89
- e !== void 0 && (P.value = e);
90
- }), g(() => a.pageInfo?.currentPage, (e) => {
91
- e && (h.value = e);
92
- });
86
+ }), g(
87
+ () => a.pageInfo?.itemsPerPage,
88
+ (e) => {
89
+ e !== void 0 && (P.value = e);
90
+ }
91
+ ), g(
92
+ () => a.paginationProps?.itemsPerPage,
93
+ (e) => {
94
+ e !== void 0 && (P.value = e);
95
+ }
96
+ ), g(
97
+ () => a.pageInfo?.currentPage,
98
+ (e) => {
99
+ e && (h.value = e);
100
+ }
101
+ );
93
102
  const s = y(/* @__PURE__ */ new Set());
94
103
  g(
95
104
  () => a.selectedRows,
@@ -118,7 +127,11 @@ const $e = { class: "space-y-6.5" }, Be = { class: "overflow-x-auto w-full" }, E
118
127
  }), (a.selectedRows || []).forEach((l) => {
119
128
  const n = c(l, d.value);
120
129
  !e.has(n) && s.value.has(n) && (t.push(l), e.add(n));
121
- }), b("select", { selected: t, all: M.value, indeterminate: O.value }), b("update:selectedRows", t);
130
+ }), b("select", {
131
+ selected: t,
132
+ all: M.value,
133
+ indeterminate: O.value
134
+ }), b("update:selectedRows", t);
122
135
  }, le = (e) => {
123
136
  const t = a.headers.find((n) => n.field === e), l = t ? Q(t) : e;
124
137
  u.value.field === l ? u.value.order === "asc" ? u.value.order = "desc" : u.value.order === "desc" ? (u.value.order = "", u.value.field = "") : u.value.order = "asc" : (u.value.field = l, u.value.order = "asc"), h.value = 1, R();
@@ -154,7 +167,11 @@ const $e = { class: "space-y-6.5" }, Be = { class: "overflow-x-auto w-full" }, E
154
167
  "overflow-hidden",
155
168
  a.bordered ? "border border-border" : "",
156
169
  a.class
157
- ].join(" ")), ie = r(() => ["w-full caption-bottom -text-fs-1", a.tableClass].join(" ")), de = (e) => e.width || "auto", ce = r(() => a.emptyTitleI18n ? w(a.emptyTitleI18n) : a.emptyTitle), ue = r(() => a.emptyDescriptionI18n ? w(a.emptyDescriptionI18n) : a.emptyDescription), me = r(() => {
170
+ ].join(" ")), ie = r(() => ["w-full caption-bottom -text-fs-1", a.tableClass].join(" ")), de = (e) => e.width || "auto", ce = r(
171
+ () => a.emptyTitleI18n ? w(a.emptyTitleI18n) : a.emptyTitle
172
+ ), ue = r(
173
+ () => a.emptyDescriptionI18n ? w(a.emptyDescriptionI18n) : a.emptyDescription
174
+ ), me = r(() => {
158
175
  const e = w("vlite.dataTable.confirmDeleteTitle");
159
176
  return e !== "vlite.dataTable.confirmDeleteTitle" ? e : "Confirm Deletion";
160
177
  }), fe = r(() => {
@@ -267,7 +284,13 @@ const $e = { class: "space-y-6.5" }, Be = { class: "overflow-x-auto w-full" }, E
267
284
  ]));
268
285
  return S.memo = C, S;
269
286
  }, t, 2), 128)) : o.rows.length > 0 ? (i(!0), m(A, { key: 1 }, B(o.rows, (l, n, ge, v) => {
270
- const C = [l, s.value.has(c(l, d.value)), o.compact, o.striped, o.hoverable];
287
+ const C = [
288
+ l,
289
+ s.value.has(c(l, d.value)),
290
+ o.compact,
291
+ o.striped,
292
+ o.hoverable
293
+ ];
271
294
  if (v && v.key === c(l, d.value) && W(v, C)) return v;
272
295
  const S = (i(), F(Te, {
273
296
  key: c(l, d.value),
@@ -1,4 +1,4 @@
1
- import { defineComponent as Y, computed as f, ref as S, useSlots as Z, openBlock as r, createElementBlock as c, createElementVNode as n, renderSlot as _, normalizeClass as C, createBlock as x, withModifiers as M, createVNode as V, toDisplayString as b, createTextVNode as ee, createCommentVNode as F, Fragment as le, renderList as te } from "vue";
1
+ import { defineComponent as Y, computed as f, ref as S, useSlots as Z, openBlock as r, createElementBlock as c, createElementVNode as n, renderSlot as _, normalizeClass as C, createBlock as x, withModifiers as M, createVNode as w, toDisplayString as b, createTextVNode as ee, createCommentVNode as F, Fragment as le, renderList as te } from "vue";
2
2
  import p from "../Icon.vue.js";
3
3
  import P from "../Button.vue.js";
4
4
  import { $t as k } from "../../utils/i18n.js";
@@ -14,7 +14,7 @@ const ie = { class: "w-full" }, oe = ["multiple", "accept"], ae = ["value", "pla
14
14
  }, be = {
15
15
  key: 2,
16
16
  class: "absolute inset-0 bg-white/80 flex items-center justify-center rounded-lg z-10"
17
- }, ke = { class: "bg-white p-2 rounded-full shadow-lg" }, Se = /* @__PURE__ */ Y({
17
+ }, ke = { class: "bg-white p-2 rounded-full" }, Se = /* @__PURE__ */ Y({
18
18
  name: "FilePicker",
19
19
  __name: "FilePicker",
20
20
  props: {
@@ -49,7 +49,7 @@ const ie = { class: "w-full" }, oe = ["multiple", "accept"], ae = ["value", "pla
49
49
  return l !== "vlite.filePicker.addMore" ? l : "Add more";
50
50
  }), z = S(null), h = S(!1), u = S(!1);
51
51
  Z();
52
- const U = f(() => e.fileTypes.join(",")), A = f(() => Array.isArray(e.modelValue) ? e.modelValue.length > 0 : e.modelValue !== null), w = f(() => {
52
+ const U = f(() => e.fileTypes.join(",")), A = f(() => Array.isArray(e.modelValue) ? e.modelValue.length > 0 : e.modelValue !== null), V = f(() => {
53
53
  let l = [];
54
54
  return Array.isArray(e.modelValue) ? l = e.modelValue : e.modelValue && (l = [e.modelValue]), l.map((t) => {
55
55
  if (typeof t == "string") {
@@ -153,7 +153,7 @@ const ie = { class: "w-full" }, oe = ["multiple", "accept"], ae = ["value", "pla
153
153
  d("update:modelValue", null), d("change", null);
154
154
  }, H = () => {
155
155
  e.disabled || e.loading || (d("update:modelValue", null), d("change", null));
156
- }, J = f(() => A.value ? w.value.map((t) => t.fileName).join(", ") : ""), Q = f(() => {
156
+ }, J = f(() => A.value ? V.value.map((t) => t.fileName).join(", ") : ""), Q = f(() => {
157
157
  const l = "block w-full bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 transition-all focus-visible:outline-none cursor-pointer", t = {
158
158
  sm: "h-8 text-xs",
159
159
  md: "h-10 text-sm",
@@ -192,7 +192,7 @@ const ie = { class: "w-full" }, oe = ["multiple", "accept"], ae = ["value", "pla
192
192
  trigger: v,
193
193
  isDragging: h.value,
194
194
  isLoading: i.loading || u.value,
195
- files: w.value
195
+ files: V.value
196
196
  }, () => [
197
197
  i.variant === "input" ? (r(), c("div", {
198
198
  key: 0,
@@ -218,7 +218,7 @@ const ie = { class: "w-full" }, oe = ["multiple", "accept"], ae = ["value", "pla
218
218
  class: "text-muted-foreground hover:text-foreground focus:outline-none",
219
219
  onClick: M(H, ["stop"])
220
220
  }, [
221
- V(p, {
221
+ w(p, {
222
222
  icon: "lucide:x-circle",
223
223
  class: "h-4 w-4"
224
224
  })
@@ -236,14 +236,14 @@ const ie = { class: "w-full" }, oe = ["multiple", "accept"], ae = ["value", "pla
236
236
  onDrop: R
237
237
  }, [
238
238
  A.value ? (r(), c("div", fe, [
239
- (r(!0), c(le, null, te(w.value, (a, s) => (r(), c("div", {
239
+ (r(!0), c(le, null, te(V.value, (a, s) => (r(), c("div", {
240
240
  key: s,
241
- class: C(["relative flex items-center p-3 border border-border rounded-lg bg-body shadow-sm transition-colors group", [!i.multiSelect && !i.disabled ? "cursor-pointer hover:border-primary/50" : ""]]),
241
+ class: C(["relative flex items-center p-3 border border-border rounded-lg bg-body transition-colors group", [!i.multiSelect && !i.disabled ? "cursor-pointer hover:border-primary/50" : ""]]),
242
242
  onClick: t[0] || (t[0] = (m) => !i.multiSelect && !i.disabled ? v() : null)
243
243
  }, [
244
244
  n("div", me, [
245
245
  n("div", ge, [
246
- V(p, {
246
+ w(p, {
247
247
  icon: "lucide:file-text",
248
248
  class: "w-5 h-5"
249
249
  })
@@ -265,8 +265,8 @@ const ie = { class: "w-full" }, oe = ["multiple", "accept"], ae = ["value", "pla
265
265
  }, null, 8, ["onClick"])) : F("", !0)
266
266
  ])
267
267
  ], 2))), 128)),
268
- i.multiSelect && (!i.maxFiles || w.value.length < i.maxFiles) ? (r(), c("div", xe, [
269
- V(P, {
268
+ i.multiSelect && (!i.maxFiles || V.value.length < i.maxFiles) ? (r(), c("div", xe, [
269
+ w(P, {
270
270
  size: "sm",
271
271
  variant: "outline",
272
272
  icon: "lucide:plus",
@@ -304,7 +304,7 @@ const ie = { class: "w-full" }, oe = ["multiple", "accept"], ae = ["value", "pla
304
304
  ], 2)),
305
305
  i.loading || u.value ? (r(), c("div", be, [
306
306
  n("div", ke, [
307
- V(p, {
307
+ w(p, {
308
308
  icon: "lucide:loader-2",
309
309
  class: "w-6 h-6 animate-spin text-primary"
310
310
  })
@@ -1,7 +1,7 @@
1
1
  import o from "./Form.vue2.js";
2
2
  /* empty css */
3
3
  import r from "../../_virtual/_plugin-vue_export-helper.js";
4
- const _ = /* @__PURE__ */ r(o, [["__scopeId", "data-v-8eb29b35"]]);
4
+ const a = /* @__PURE__ */ r(o, [["__scopeId", "data-v-d7b4ffda"]]);
5
5
  export {
6
- _ as default
6
+ a as default
7
7
  };
@@ -319,7 +319,7 @@ const Re = ["onKeydown"], Pe = { class: "flex items-center gap-3" }, Ne = { clas
319
319
  ref_key: "footerRef",
320
320
  ref: oe,
321
321
  class: f([
322
- "form-footer items-center gap-3 z-20",
322
+ "form-footer items-center gap-3 z-20 rounded-b!",
323
323
  e.isPage ? "flex sm:hidden" : "flex",
324
324
  e.footerClass,
325
325
  r.value ? "justify-between" : "justify-end",
@@ -331,7 +331,7 @@ const Re = ["onKeydown"], Pe = { class: "flex items-center gap-3" }, Ne = { clas
331
331
  // Show a subtle top shadow while content is scrolling beneath the sticky footer
332
332
  (S.value && J.value, ""),
333
333
  // Inside modal: extend footer flush to modal edge padding
334
- x.value ? "-mx-4 px-4 pb-3!" : "",
334
+ x.value ? "-mx-4 px-4 pb-3! mt-4.5!" : "",
335
335
  // Non-sticky inside modal keeps the original border styling
336
336
  !S.value && x.value ? "border-t border-border/75 mt-5" : "",
337
337
  !S.value && !x.value ? "mt-6" : ""
@@ -1,7 +1,7 @@
1
1
  import o from "./FormFields.vue2.js";
2
2
  /* empty css */
3
3
  import r from "../../_virtual/_plugin-vue_export-helper.js";
4
- const e = /* @__PURE__ */ r(o, [["__scopeId", "data-v-df08a3e5"]]);
4
+ const s = /* @__PURE__ */ r(o, [["__scopeId", "data-v-1139135c"]]);
5
5
  export {
6
- e as default
6
+ s as default
7
7
  };
@@ -14,7 +14,7 @@ const Z = {
14
14
  class: "text-destructive ml-0.5"
15
15
  }, ae = {
16
16
  key: 2,
17
- class: "mt-1 text-sm text-destructive"
17
+ class: "mt-1 -text-fs-2.5 text-destructive"
18
18
  }, ie = /* @__PURE__ */ M({
19
19
  __name: "FormFields",
20
20
  props: {
@@ -39,9 +39,9 @@ const Z = {
39
39
  }), F = (t) => W(o.values, t.name), l = (t) => o.errors[t.name] || "", $ = (t) => o.isFieldVisible ? o.isFieldVisible(t) : !0, x = (t) => o.isFieldDisabled ? o.isFieldDisabled(t) : t.disabled === !0, A = (t) => o.isFieldReadonly ? o.isFieldReadonly(t) : t.readonly === !0, u = (t) => t.labelI18n ? Y(t.labelI18n) : t.label, w = (t) => {
40
40
  if (t)
41
41
  return v(t) ? Q(t) : t;
42
- }, B = (t, n) => {
42
+ }, f = (t, n) => {
43
43
  g("change", t.name, n);
44
- }, I = (t) => t.itemClass || "", f = (t, n) => {
44
+ }, B = (t) => t.itemClass || "", I = (t, n) => {
45
45
  g("change", t, n);
46
46
  }, E = (t) => {
47
47
  g("addonAction", t);
@@ -92,7 +92,7 @@ const Z = {
92
92
  a.fieldLoading[e.name]
93
93
  ], () => (s(), r("div", {
94
94
  key: 0,
95
- class: d(["max-md:col-span-full! form-field-item", I(e)])
95
+ class: d(["max-md:col-span-full! form-field-item", B(e)])
96
96
  }, [
97
97
  u(e) && e.type !== "switch" && e.type !== "check" && e.type !== "customFields" && !b(e) ? (s(), h(U, {
98
98
  key: 0,
@@ -144,8 +144,8 @@ const Z = {
144
144
  error: l(e),
145
145
  isUpdate: a.isUpdate,
146
146
  loading: a.fieldLoading[e.name],
147
- onChange: (i) => B(e, i),
148
- onAddonChange: f,
147
+ onChange: (i) => f(e, i),
148
+ onAddonChange: I,
149
149
  onAddonAction: E
150
150
  }, null, 8, ["field", "value", "floatingActive", "label", "values", "variant", "size", "rounded", "disabled", "readonly", "error", "isUpdate", "loading", "onChange"])
151
151
  ], 42, _),
@@ -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 R } from "../utils/i18n.js";
6
- /* empty css */
6
+ /* empty css */
7
7
  const U = { class: "block truncate -text-fs-1.5" }, V = { 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" }, q = /* @__PURE__ */ x({
8
8
  __name: "NavbarCommandPalette",
9
9
  props: {
@@ -1,7 +1,7 @@
1
- import { defineComponent as Re, useSlots as Ee, computed as i, ref as y, markRaw as H, provide as K, watch as J, resolveComponent as je, openBlock as a, createElementBlock as d, normalizeClass as N, createElementVNode as p, renderSlot as w, toDisplayString as m, createBlock as c, withCtx as s, createVNode as u, createCommentVNode as f, unref as x, resolveDynamicComponent as Q, Fragment as S, mergeProps as v, createTextVNode as k, renderList as Ae } from "vue";
1
+ import { defineComponent as Re, useSlots as Ee, computed as n, ref as h, markRaw as H, provide as K, watch as J, resolveComponent as je, openBlock as a, createElementBlock as s, normalizeClass as N, createElementVNode as g, renderSlot as y, toDisplayString as p, createBlock as f, withCtx as u, createVNode as c, createCommentVNode as d, unref as x, resolveDynamicComponent as Q, Fragment as C, mergeProps as v, createTextVNode as S, renderList as Ae } from "vue";
2
2
  import Oe from "../Input.vue.js";
3
3
  /* empty css */
4
- import h from "../Button.vue.js";
4
+ import w from "../Button.vue.js";
5
5
  import F from "../Icon.vue.js";
6
6
  import Ne from "../Tooltip.vue.js";
7
7
  import X from "../Modal.vue.js";
@@ -28,10 +28,10 @@ const Xe = { class: "flex flex-col w-full space-y-8" }, Ye = { class: "flex flex
28
28
  }, lt = ["title"], at = ["title"], nt = {
29
29
  key: 4,
30
30
  class: "w-full md:w-60! max-sm:order-last"
31
- }, ot = { class: "flex items-center gap-3 max-sm:w-full sm:w-auto max-sm:order-last" }, it = ["href", "target"], rt = ["href", "target"], dt = {
31
+ }, ot = { class: "flex items-center gap-3 max-sm:w-full sm:w-auto max-sm:order-last" }, it = ["href", "target"], rt = ["href", "target"], st = {
32
32
  key: 4,
33
33
  class: "p-8 text-center text-muted-foreground border border-dashed border-border rounded-lg"
34
- }, st = {
34
+ }, dt = {
35
35
  key: 2,
36
36
  class: "-mt-2"
37
37
  }, ct = { class: "px-1 py-1 text-sm" }, ut = { class: "font-medium mb-3 text-muted-foreground" }, ft = { class: "space-y-3" }, mt = { key: 4 }, Et = /* @__PURE__ */ Re({
@@ -84,32 +84,32 @@ const Xe = { class: "flex flex-col w-full space-y-8" }, Ye = { class: "flex flex
84
84
  },
85
85
  emits: ["add", "delete"],
86
86
  setup(t, { emit: ne }) {
87
- const l = t, I = Je(), Y = ne, R = Ee(), oe = i(() => l.name || l.title || "default-screen"), C = Ke(
87
+ const l = t, $ = Je(), Y = ne, R = Ee(), oe = n(() => l.name || l.title || "default-screen"), B = Ke(
88
88
  `view-mode-${oe.value}`,
89
89
  l.table || R.table ? "table" : "list"
90
- ), D = y(""), b = y({}), G = y({ field: "", order: "" }), T = y(l.pageInfo?.currentPage || 1), M = y(l.pageInfo?.itemsPerPage || l.paginationProps?.itemsPerPage || 10), g = y([]), E = y([]), V = y(!1), j = i(
90
+ ), k = h(""), b = h({}), G = h({ field: "", order: "" }), T = h(l.pageInfo?.currentPage || 1), M = h(l.pageInfo?.itemsPerPage || l.paginationProps?.itemsPerPage || 10), m = h([]), E = h([]), V = h(!1), j = n(
91
91
  () => l.addComponent ? H(l.addComponent) : void 0
92
- ), W = i(
92
+ ), W = n(
93
93
  () => l.addBtn?.modal ? H(l.addBtn.modal) : void 0
94
- ), Z = i(() => {
94
+ ), Z = n(() => {
95
95
  let e;
96
- return C.value === "table" ? e = l.table || !!R.table : e = l.list || !!R.list || !!R.grid, typeof e == "object" && e !== null ? H(e) : e;
97
- }), ie = i(() => D.value && D.value.trim() !== "" ? !0 : b.value ? Object.keys(b.value).some(
96
+ return B.value === "table" ? e = l.table || !!R.table : e = l.list || !!R.list || !!R.grid, typeof e == "object" && e !== null ? H(e) : e;
97
+ }), ie = n(() => k.value && k.value.trim() !== "" ? !0 : b.value ? Object.keys(b.value).some(
98
98
  (e) => b.value[e] !== "" && b.value[e] !== null && b.value[e] !== void 0
99
99
  ) : !1), re = {
100
100
  disableSearch: !0,
101
101
  forceSelectable: l.canSelectRows,
102
102
  onTableChange: (e) => {
103
- G.value = { field: e.sort.field, order: e.sort.order }, P();
103
+ G.value = { field: e.sort.field, order: e.sort.order }, D();
104
104
  }
105
105
  };
106
- K(Qe, re), K("screen-selected-rows", g), K("screen-request-delete", (e) => $(e));
107
- const $ = (e) => {
106
+ K(Qe, re), K("screen-selected-rows", m), K("screen-request-delete", (e) => I(e));
107
+ const I = (e) => {
108
108
  E.value = e, V.value = !0;
109
- }, de = () => {
110
- Y("delete", E.value), V.value = !1, g.value = [];
111
- }, se = (e) => {
112
- Y("delete", e), g.value = [];
109
+ }, se = () => {
110
+ Y("delete", E.value), V.value = !1, m.value = [];
111
+ }, de = (e) => {
112
+ Y("delete", e), m.value = [];
113
113
  };
114
114
  J(
115
115
  () => l.pageInfo?.currentPage,
@@ -123,84 +123,84 @@ const Xe = { class: "flex flex-col w-full space-y-8" }, Ye = { class: "flex flex
123
123
  }
124
124
  );
125
125
  let L = null;
126
- J(D, () => {
126
+ J(k, () => {
127
127
  L && clearTimeout(L), L = setTimeout(() => {
128
- T.value = 1, P();
128
+ T.value = 1, D();
129
129
  }, 300);
130
130
  });
131
131
  const ce = (e) => {
132
- T.value = e, P();
132
+ T.value = e, D();
133
133
  }, ue = (e) => {
134
- M.value = e, T.value = 1, P();
135
- }, P = () => {
134
+ M.value = e, T.value = 1, D();
135
+ }, D = () => {
136
136
  l.refetch && l.refetch({
137
137
  pagination: { page: T.value, limit: M.value },
138
- search: D.value,
138
+ search: k.value,
139
139
  sort: { ...G.value },
140
140
  filter: { ...b.value }
141
141
  });
142
- }, fe = i(() => l.data && l.data.length > 0), _ = i(() => l.titleI18n ? r(l.titleI18n) : l.title), ee = i(
142
+ }, fe = n(() => l.data && l.data.length > 0), _ = n(() => l.titleI18n ? r(l.titleI18n) : l.title), ee = n(
143
143
  () => l.descriptionI18n ? r(l.descriptionI18n) : l.description
144
- ), me = i(() => {
144
+ ), me = n(() => {
145
145
  const e = r("vlite.screen.deleteSelected");
146
146
  return e !== "vlite.screen.deleteSelected" ? e : "Delete Selected";
147
- }), ve = i(() => {
147
+ }), ve = n(() => {
148
148
  const e = r("vlite.screen.listView");
149
149
  return e !== "vlite.screen.listView" ? e : "List View";
150
- }), ge = i(() => {
150
+ }), he = n(() => {
151
151
  const e = r("vlite.screen.tableView");
152
152
  return e !== "vlite.screen.tableView" ? e : "Table View";
153
- }), he = i(() => {
153
+ }), ge = n(() => {
154
154
  const e = r("vlite.screen.refresh");
155
155
  return e !== "vlite.screen.refresh" ? e : "Refresh";
156
- }), ye = i(() => {
156
+ }), pe = n(() => {
157
157
  const e = r("vlite.screen.searchPlaceholder");
158
158
  return e !== "vlite.screen.searchPlaceholder" ? e : "Search...";
159
- }), pe = i(() => {
159
+ }), ye = n(() => {
160
160
  const e = r("vlite.screen.confirmDeleteTitle");
161
161
  return e !== "vlite.screen.confirmDeleteTitle" ? e : "Confirm Deletion";
162
- }), we = i(() => {
162
+ }), xe = n(() => {
163
163
  const e = r("vlite.screen.confirmDeleteDesc", { count: E.value.length });
164
164
  return e !== "vlite.screen.confirmDeleteDesc" ? e : `Are you sure you want to delete the selected ${E.value.length > 1 ? "items" : "item"}?`;
165
- }), xe = i(() => {
165
+ }), we = n(() => {
166
166
  const e = r("vlite.screen.confirmDeleteBtn");
167
167
  return e !== "vlite.screen.confirmDeleteBtn" ? e : "Delete";
168
- }), be = i(() => {
168
+ }), be = n(() => {
169
169
  const e = r("vlite.screen.cancelBtn");
170
170
  return e !== "vlite.screen.cancelBtn" ? e : "Cancel";
171
- }), Be = i(() => {
171
+ }), Be = n(() => {
172
172
  const e = r("vlite.screen.missingView");
173
173
  return e !== "vlite.screen.missingView" ? e : "Please provide a `:list` or `:table` component or slot.";
174
- }), B = i(() => {
174
+ }), P = n(() => {
175
175
  if (l.addBtn?.labelI18n) return r(l.addBtn.labelI18n);
176
176
  if (l.addBtn?.label) return l.addBtn.label;
177
177
  const e = r("vlite.screen.addNew");
178
178
  return e !== "vlite.screen.addNew" ? e : "Add New";
179
- }), te = i(
179
+ }), te = n(
180
180
  () => l.exportSchema && l.exportSchema.length > 0 && l.exportProps !== !1 || l.importSchema && l.importSchema.length > 0 && l.importProps !== !1
181
- ), U = i(() => {
181
+ ), U = n(() => {
182
182
  const e = r("vlite.screen.exportData");
183
183
  return e !== "vlite.screen.exportData" ? e : "Export Data";
184
- }), le = i(() => {
184
+ }), le = n(() => {
185
185
  const e = r("vlite.screen.importData");
186
186
  return e !== "vlite.screen.importData" ? e : "Import Data";
187
- }), ke = i(() => {
187
+ }), ke = n(() => {
188
188
  const e = [];
189
189
  return l.exportProps !== !1 && e.push({ value: "export", label: U.value, icon: "lucide:download" }), l.importProps !== !1 && e.push({ value: "import", label: le.value, icon: "lucide:upload" }), e;
190
- }), q = y(null), Ce = y(null), A = y(!1), z = y(!1), De = (e) => {
190
+ }), q = h(null), De = h(null), A = h(!1), z = h(!1), Pe = (e) => {
191
191
  e.value === "export" ? A.value = !0 : e.value === "import" && (z.value = !0);
192
- }, Pe = i(
192
+ }, Ce = n(
193
193
  () => (l.exportSchema || []).map((e) => ({
194
194
  field: e.name || e.field,
195
195
  title: e.label || e.title || e.name || e.field
196
196
  }))
197
- ), Se = i(
197
+ ), Se = n(
198
198
  () => (l.importSchema || []).map((e) => ({
199
199
  field: e.name || e.field,
200
200
  title: e.label || e.title || e.name || e.field,
201
201
  required: e.required || !1
202
202
  }))
203
- ), $e = async (e) => I?.services?.importApi && l.importType ? await I.services.importApi(l.importType, e) : (console.warn(
203
+ ), Ie = async (e) => $?.services?.importApi && l.importType ? await $.services.importApi(l.importType, e) : (console.warn(
204
204
  "VLite Screen: No importApi configured or no importType provided for generic import."
205
205
  ), {
206
206
  processed: e.data.length,
@@ -209,121 +209,121 @@ const Xe = { class: "flex flex-col w-full space-y-8" }, Ye = { class: "flex flex
209
209
  skipped: 0,
210
210
  failed: 0,
211
211
  errors: []
212
- }), Ie = () => P(), Te = i(
213
- () => l.exportMode || I?.exportData?.mode || "frontend"
212
+ }), $e = () => D(), Te = n(
213
+ () => l.exportMode || $?.exportData?.mode || "frontend"
214
214
  ), Ve = async (e) => {
215
- I?.services?.exportApi && l.exportType ? await I.services.exportApi(l.exportType, {
215
+ $?.services?.exportApi && l.exportType ? await $.services.exportApi(l.exportType, {
216
216
  format: e,
217
- search: D.value,
217
+ search: k.value,
218
218
  filter: b.value
219
219
  }) : console.warn(
220
220
  "VLite Screen: No exportApi configured or no exportType provided for generic backend export."
221
221
  );
222
222
  };
223
- return (e, n) => {
223
+ return (e, i) => {
224
224
  const ae = je("router-link");
225
- return a(), d("div", Xe, [
226
- t.customHeader ? w(e.$slots, "custom-header", { key: 1 }) : (a(), d("div", {
225
+ return a(), s("div", Xe, [
226
+ t.customHeader ? y(e.$slots, "custom-header", { key: 1 }) : (a(), s("div", {
227
227
  key: 0,
228
228
  class: N([t.headerClass, "flex flex-col md:flex-row sm:items-start md:items-center justify-between gap-4"])
229
229
  }, [
230
- p("div", Ye, [
231
- w(e.$slots, "title", {}, () => [
232
- _.value ? (a(), d("div", Ge, [
233
- p("h1", We, m(_.value), 1),
234
- t.info || t.infoI18n ? (a(), c(Ne, {
230
+ g("div", Ye, [
231
+ y(e.$slots, "title", {}, () => [
232
+ _.value ? (a(), s("div", Ge, [
233
+ g("h1", We, p(_.value), 1),
234
+ t.info || t.infoI18n ? (a(), f(Ne, {
235
235
  key: 0,
236
236
  content: t.info,
237
237
  "content-i18n": t.infoI18n,
238
238
  placement: "right"
239
239
  }, {
240
- default: s(() => [
241
- u(F, {
240
+ default: u(() => [
241
+ c(F, {
242
242
  icon: "lucide:info",
243
243
  class: "w-[18px] h-[18px] mt-3! text-muted-foreground hover:text-foreground cursor-pointer transition-colors outline-none"
244
244
  })
245
245
  ]),
246
246
  _: 1
247
- }, 8, ["content", "content-i18n"])) : f("", !0)
248
- ])) : f("", !0)
247
+ }, 8, ["content", "content-i18n"])) : d("", !0)
248
+ ])) : d("", !0)
249
249
  ]),
250
- w(e.$slots, "description", {}, () => [
251
- ee.value ? (a(), d("p", Ze, m(ee.value), 1)) : f("", !0)
250
+ y(e.$slots, "description", {}, () => [
251
+ ee.value ? (a(), s("p", Ze, p(ee.value), 1)) : d("", !0)
252
252
  ])
253
253
  ]),
254
- p("div", _e, [
255
- p("div", et, [
256
- g.value.length > 0 && t.canSelectRows ? (a(), c(h, {
254
+ g("div", _e, [
255
+ g("div", et, [
256
+ m.value.length > 0 && t.canSelectRows ? (a(), f(w, {
257
257
  key: 0,
258
258
  variant: "outline",
259
259
  class: "hover:bg-destructive/10 shrink-0 h-9! w-9!",
260
260
  icon: "lucide:trash-2",
261
261
  title: me.value,
262
- onClick: n[0] || (n[0] = (o) => $(g.value))
263
- }, null, 8, ["title"])) : f("", !0),
264
- (t.table || e.$slots.table) && (t.list || e.$slots.list || e.$slots.grid) ? (a(), d("div", tt, [
265
- p("button", {
266
- onClick: n[1] || (n[1] = (o) => C.value = "list"),
262
+ onClick: i[0] || (i[0] = (o) => I(m.value))
263
+ }, null, 8, ["title"])) : d("", !0),
264
+ (t.table || e.$slots.table) && (t.list || e.$slots.list || e.$slots.grid) ? (a(), s("div", tt, [
265
+ g("button", {
266
+ onClick: i[1] || (i[1] = (o) => B.value = "list"),
267
267
  class: N(["p-1.5 rounded", [
268
- x(C) === "list" ? "bg-secondary/85 dark:bg-secondary shadow-sm text-foreground" : "text-muted-foreground hover:text-foreground"
268
+ x(B) === "list" ? "bg-secondary/85 dark:bg-secondary shadow-sm text-foreground" : "text-muted-foreground hover:text-foreground"
269
269
  ]]),
270
270
  title: ve.value
271
271
  }, [
272
- u(F, {
272
+ c(F, {
273
273
  icon: "lucide:layout-grid",
274
274
  class: "w-4 h-4"
275
275
  })
276
276
  ], 10, lt),
277
- p("button", {
278
- onClick: n[2] || (n[2] = (o) => C.value = "table"),
277
+ g("button", {
278
+ onClick: i[2] || (i[2] = (o) => B.value = "table"),
279
279
  class: N(["p-1.5 rounded", [
280
- x(C) === "table" ? "bg-secondary/85 dark:bg-secondary shadow-sm text-foreground" : "text-muted-foreground hover:text-foreground"
280
+ x(B) === "table" ? "bg-secondary/85 dark:bg-secondary shadow-sm text-foreground" : "text-muted-foreground hover:text-foreground"
281
281
  ]]),
282
- title: ge.value
282
+ title: he.value
283
283
  }, [
284
- u(F, {
284
+ c(F, {
285
285
  icon: "lucide:list",
286
286
  class: "w-4 h-4"
287
287
  })
288
288
  ], 10, at)
289
- ])) : f("", !0),
290
- w(e.$slots, "before-search"),
291
- t.showRefresh ? (a(), c(h, {
289
+ ])) : d("", !0),
290
+ y(e.$slots, "before-search"),
291
+ t.showRefresh ? (a(), f(w, {
292
292
  key: 2,
293
293
  variant: "outline",
294
294
  icon: "lucide:refresh-cw",
295
295
  size: "lg",
296
296
  class: "shrink-0 h-9! w-9!",
297
- title: he.value,
297
+ title: ge.value,
298
298
  disabled: t.loading,
299
- onClick: P
300
- }, null, 8, ["title", "disabled"])) : f("", !0),
301
- t.filterSchema && t.filterSchema.length > 0 ? (a(), c(Ue, {
299
+ onClick: D
300
+ }, null, 8, ["title", "disabled"])) : d("", !0),
301
+ t.filterSchema && t.filterSchema.length > 0 ? (a(), f(Ue, {
302
302
  key: 3,
303
303
  schema: t.filterSchema,
304
304
  type: t.filterType,
305
305
  modelValue: b.value,
306
- "onUpdate:modelValue": n[3] || (n[3] = (o) => b.value = o),
307
- onChange: P
308
- }, null, 8, ["schema", "type", "modelValue"])) : f("", !0),
309
- t.canSearch ? (a(), d("div", nt, [
310
- u(Oe, {
306
+ "onUpdate:modelValue": i[3] || (i[3] = (o) => b.value = o),
307
+ onChange: D
308
+ }, null, 8, ["schema", "type", "modelValue"])) : d("", !0),
309
+ t.canSearch ? (a(), s("div", nt, [
310
+ c(Oe, {
311
311
  lazy: "",
312
- modelValue: D.value,
313
- "onUpdate:modelValue": n[4] || (n[4] = (o) => D.value = o),
312
+ modelValue: k.value,
313
+ "onUpdate:modelValue": i[4] || (i[4] = (o) => k.value = o),
314
314
  icon: "lucide:search",
315
- placeholder: ye.value,
315
+ placeholder: pe.value,
316
316
  variant: "outline",
317
317
  class: "bg-background w-full",
318
318
  "show-clear-button": !0
319
319
  }, null, 8, ["modelValue", "placeholder"])
320
- ])) : f("", !0)
320
+ ])) : d("", !0)
321
321
  ]),
322
- p("div", ot, [
323
- w(e.$slots, "actions", {}, () => [
324
- j.value ? (a(), c(Q(j.value), { key: 0 })) : t.canAdd ? (a(), d(S, { key: 1 }, [
325
- t.addBtn ? (a(), d(S, { key: 0 }, [
326
- t.addBtn.modal ? (a(), c(X, v({
322
+ g("div", ot, [
323
+ y(e.$slots, "actions", {}, () => [
324
+ j.value ? (a(), f(Q(j.value), { key: 0 })) : t.canAdd ? (a(), s(C, { key: 1 }, [
325
+ t.addBtn ? (a(), s(C, { key: 0 }, [
326
+ t.addBtn.modal ? (a(), f(X, v({
327
327
  key: 0,
328
328
  body: W.value
329
329
  }, t.addBtn.modalProps, {
@@ -332,78 +332,78 @@ const Xe = { class: "flex flex-col w-full space-y-8" }, Ye = { class: "flex flex
332
332
  triggerClass: "w-full",
333
333
  loading: t.loading
334
334
  }), {
335
- trigger: s(() => [
336
- u(h, v({
335
+ trigger: u(() => [
336
+ c(w, v({
337
337
  class: "w-full",
338
338
  icon: t.addBtn.icon || "fluent:add-16-filled",
339
339
  variant: t.addBtn.variant || "primary"
340
340
  }, t.addBtn.buttonProps), {
341
- default: s(() => [
342
- k(m(B.value), 1)
341
+ default: u(() => [
342
+ S(p(P.value), 1)
343
343
  ]),
344
344
  _: 1
345
345
  }, 16, ["icon", "variant"])
346
346
  ]),
347
347
  _: 1
348
- }, 16, ["body", "refetch", "data", "loading"])) : t.addBtn.to ? (a(), c(ae, {
348
+ }, 16, ["body", "refetch", "data", "loading"])) : t.addBtn.to ? (a(), f(ae, {
349
349
  key: 1,
350
350
  to: t.addBtn.to,
351
351
  class: "inline-flex w-full sm:w-auto"
352
352
  }, {
353
- default: s(() => [
354
- u(h, v({
353
+ default: u(() => [
354
+ c(w, v({
355
355
  class: "w-full",
356
356
  icon: t.addBtn.icon || "fluent:add-16-filled",
357
357
  variant: t.addBtn.variant || "primary"
358
358
  }, t.addBtn.buttonProps), {
359
- default: s(() => [
360
- k(m(B.value), 1)
359
+ default: u(() => [
360
+ S(p(P.value), 1)
361
361
  ]),
362
362
  _: 1
363
363
  }, 16, ["icon", "variant"])
364
364
  ]),
365
365
  _: 1
366
- }, 8, ["to"])) : t.addBtn.href ? (a(), d("a", {
366
+ }, 8, ["to"])) : t.addBtn.href ? (a(), s("a", {
367
367
  key: 2,
368
368
  href: t.addBtn.href,
369
369
  target: t.addBtn.target,
370
370
  class: "inline-flex w-full sm:w-auto"
371
371
  }, [
372
- u(h, v({
372
+ c(w, v({
373
373
  class: "w-full",
374
374
  icon: t.addBtn.icon || "fluent:add-16-filled",
375
375
  variant: t.addBtn.variant || "primary"
376
376
  }, t.addBtn.buttonProps), {
377
- default: s(() => [
378
- k(m(B.value), 1)
377
+ default: u(() => [
378
+ S(p(P.value), 1)
379
379
  ]),
380
380
  _: 1
381
381
  }, 16, ["icon", "variant"])
382
- ], 8, it)) : (a(), c(h, v({
382
+ ], 8, it)) : (a(), f(w, v({
383
383
  key: 3,
384
384
  class: "w-full sm:w-auto",
385
385
  icon: t.addBtn.icon || "fluent:add-16-filled",
386
386
  variant: t.addBtn.variant || "primary"
387
387
  }, t.addBtn.buttonProps, {
388
- onClick: n[5] || (n[5] = (o) => t.addBtn.onClick ? t.addBtn.onClick() : e.$emit("add"))
388
+ onClick: i[5] || (i[5] = (o) => t.addBtn.onClick ? t.addBtn.onClick() : e.$emit("add"))
389
389
  }), {
390
- default: s(() => [
391
- k(m(B.value), 1)
390
+ default: u(() => [
391
+ S(p(P.value), 1)
392
392
  ]),
393
393
  _: 1
394
394
  }, 16, ["icon", "variant"]))
395
- ], 64)) : f("", !0)
396
- ], 64)) : f("", !0)
395
+ ], 64)) : d("", !0)
396
+ ], 64)) : d("", !0)
397
397
  ]),
398
- te.value ? (a(), c(qe, {
398
+ te.value ? (a(), f(qe, {
399
399
  key: 0,
400
400
  closeOnSelect: "",
401
401
  position: "bottom-end",
402
402
  options: ke.value,
403
- onOnSelect: De
403
+ onOnSelect: Pe
404
404
  }, {
405
- trigger: s(() => [
406
- u(h, {
405
+ trigger: u(() => [
406
+ c(w, {
407
407
  variant: "outline",
408
408
  icon: "lucide:more-vertical",
409
409
  class: "px-2!",
@@ -411,141 +411,120 @@ const Xe = { class: "flex flex-col w-full space-y-8" }, Ye = { class: "flex flex
411
411
  }, null, 8, ["title"])
412
412
  ]),
413
413
  _: 1
414
- }, 8, ["options"])) : f("", !0),
415
- w(e.$slots, "after-add")
414
+ }, 8, ["options"])) : d("", !0),
415
+ y(e.$slots, "after-add")
416
416
  ])
417
417
  ])
418
418
  ], 2)),
419
- w(e.$slots, "sub-header"),
420
- p("div", {
419
+ y(e.$slots, "sub-header"),
420
+ g("div", {
421
421
  class: N(["flex-1 w-full relative", t.containerClass])
422
422
  }, [
423
- !fe.value && !t.loading ? w(e.$slots, "empty", { key: 0 }, () => [
424
- u(x(Le), {
423
+ !fe.value && !t.loading ? y(e.$slots, "empty", { key: 0 }, () => [
424
+ c(x(Le), {
425
425
  title: t.emptyTitle,
426
426
  titleI18n: t.emptyTitleI18n,
427
427
  description: t.emptyDescription,
428
428
  descriptionI18n: t.emptyDescriptionI18n,
429
429
  icon: t.emptyIcon
430
430
  }, {
431
- action: s(() => [
432
- ie.value ? f("", !0) : (a(), d(S, { key: 0 }, [
433
- j.value ? (a(), c(Q(j.value), { key: 0 })) : t.canAdd ? (a(), d(S, { key: 1 }, [
434
- t.addBtn ? (a(), d(S, { key: 0 }, [
435
- t.addBtn.modal ? (a(), c(X, v({
431
+ action: u(() => [
432
+ ie.value ? d("", !0) : (a(), s(C, { key: 0 }, [
433
+ j.value ? (a(), f(Q(j.value), { key: 0 })) : t.canAdd ? (a(), s(C, { key: 1 }, [
434
+ t.addBtn ? (a(), s(C, { key: 0 }, [
435
+ t.addBtn.modal ? (a(), f(X, v({
436
436
  key: 0,
437
437
  body: W.value
438
438
  }, t.addBtn.modalProps), {
439
- trigger: s(() => [
440
- u(h, v({
439
+ trigger: u(() => [
440
+ c(w, v({
441
441
  icon: t.addBtn.icon || "fluent:add-16-filled",
442
442
  variant: "secondary",
443
443
  rounded: "full",
444
444
  class: "px-6!"
445
445
  }, t.addBtn.buttonProps), {
446
- default: s(() => [
447
- k(m(B.value), 1)
446
+ default: u(() => [
447
+ S(p(P.value), 1)
448
448
  ]),
449
449
  _: 1
450
450
  }, 16, ["icon"])
451
451
  ]),
452
452
  _: 1
453
- }, 16, ["body"])) : t.addBtn.to ? (a(), c(ae, {
453
+ }, 16, ["body"])) : t.addBtn.to ? (a(), f(ae, {
454
454
  key: 1,
455
455
  to: t.addBtn.to,
456
456
  class: "inline-flex"
457
457
  }, {
458
- default: s(() => [
459
- u(h, v({
458
+ default: u(() => [
459
+ c(w, v({
460
460
  icon: t.addBtn.icon || "fluent:add-16-filled",
461
461
  variant: "secondary"
462
462
  }, t.addBtn.buttonProps), {
463
- default: s(() => [
464
- k(m(B.value), 1)
463
+ default: u(() => [
464
+ S(p(P.value), 1)
465
465
  ]),
466
466
  _: 1
467
467
  }, 16, ["icon"])
468
468
  ]),
469
469
  _: 1
470
- }, 8, ["to"])) : t.addBtn.href ? (a(), d("a", {
470
+ }, 8, ["to"])) : t.addBtn.href ? (a(), s("a", {
471
471
  key: 2,
472
472
  href: t.addBtn.href,
473
473
  target: t.addBtn.target,
474
474
  class: "inline-flex"
475
475
  }, [
476
- u(h, v({
476
+ c(w, v({
477
477
  icon: t.addBtn.icon || "lucide:plus",
478
478
  variant: "secondary"
479
479
  }, t.addBtn.buttonProps), {
480
- default: s(() => [
481
- k(m(B.value), 1)
480
+ default: u(() => [
481
+ S(p(P.value), 1)
482
482
  ]),
483
483
  _: 1
484
484
  }, 16, ["icon"])
485
- ], 8, rt)) : (a(), c(h, v({
486
- key: 3,
487
- icon: t.addBtn.icon || "lucide:plus",
488
- variant: "secondary"
489
- }, t.addBtn.buttonProps, {
490
- onClick: n[6] || (n[6] = (o) => t.addBtn.onClick ? t.addBtn.onClick() : e.$emit("add"))
491
- }), {
492
- default: s(() => [
493
- k(m(B.value), 1)
494
- ]),
495
- _: 1
496
- }, 16, ["icon"]))
497
- ], 64)) : (a(), c(h, {
498
- key: 1,
499
- icon: "lucide:plus",
500
- variant: "secondary",
501
- onClick: n[7] || (n[7] = (o) => e.$emit("add"))
502
- }, {
503
- default: s(() => [
504
- k(m(B.value), 1)
505
- ]),
506
- _: 1
507
- }))
508
- ], 64)) : f("", !0)
485
+ ], 8, rt)) : d("", !0)
486
+ ], 64)) : d("", !0)
487
+ ], 64)) : d("", !0)
509
488
  ], 64))
510
489
  ]),
511
490
  _: 1
512
491
  }, 8, ["title", "titleI18n", "description", "descriptionI18n", "icon"])
513
- ]) : (a(), d(S, { key: 1 }, [
514
- x(C) === "table" && e.$slots.table ? w(e.$slots, "table", {
492
+ ]) : (a(), s(C, { key: 1 }, [
493
+ x(B) === "table" && e.$slots.table ? y(e.$slots, "table", {
515
494
  key: 0,
516
495
  data: t.data,
517
496
  loading: t.loading,
518
- selectedRows: g.value,
519
- delete: $,
520
- updateSelectedRows: (o) => g.value = o
521
- }) : x(C) === "list" && e.$slots.list ? w(e.$slots, "list", {
497
+ selectedRows: m.value,
498
+ delete: I,
499
+ updateSelectedRows: (o) => m.value = o
500
+ }) : x(B) === "list" && e.$slots.list ? y(e.$slots, "list", {
522
501
  key: 1,
523
502
  data: t.data,
524
503
  loading: t.loading,
525
- selectedRows: g.value,
526
- delete: $,
527
- updateSelectedRows: (o) => g.value = o
528
- }) : x(C) === "list" && e.$slots.grid ? w(e.$slots, "grid", {
504
+ selectedRows: m.value,
505
+ delete: I,
506
+ updateSelectedRows: (o) => m.value = o
507
+ }) : x(B) === "list" && e.$slots.grid ? y(e.$slots, "grid", {
529
508
  key: 2,
530
509
  data: t.data,
531
510
  loading: t.loading,
532
- selectedRows: g.value,
533
- delete: $,
534
- updateSelectedRows: (o) => g.value = o
535
- }) : Z.value ? (a(), c(Q(Z.value), v({
511
+ selectedRows: m.value,
512
+ delete: I,
513
+ updateSelectedRows: (o) => m.value = o
514
+ }) : Z.value ? (a(), f(Q(Z.value), v({
536
515
  key: 3,
537
516
  data: t.data,
538
517
  loading: t.loading,
539
518
  refetch: t.refetch,
540
- selectedRows: g.value,
541
- "onUpdate:selectedRows": n[8] || (n[8] = (o) => g.value = o),
542
- delete: $,
543
- onDelete: se
544
- }, t.viewProps), null, 16, ["data", "loading", "refetch", "selectedRows"])) : (a(), d("div", dt, m(Be.value), 1))
519
+ selectedRows: m.value,
520
+ "onUpdate:selectedRows": i[6] || (i[6] = (o) => m.value = o),
521
+ delete: I,
522
+ onDelete: de
523
+ }, t.viewProps), null, 16, ["data", "loading", "refetch", "selectedRows"])) : (a(), s("div", st, p(Be.value), 1))
545
524
  ], 64))
546
525
  ], 2),
547
- t.pagination && t.pageInfo && t.pageInfo.totalPages > 1 ? (a(), d("div", st, [
548
- u(x(Me), v({
526
+ t.pagination && t.pageInfo && t.pageInfo.totalPages > 1 ? (a(), s("div", dt, [
527
+ c(x(Me), v({
549
528
  "current-page": t.pageInfo.currentPage,
550
529
  "total-pages": t.pageInfo.totalPages,
551
530
  "total-items": t.pageInfo.totalItems
@@ -553,56 +532,56 @@ const Xe = { class: "flex flex-col w-full space-y-8" }, Ye = { class: "flex flex
553
532
  onChange: ce,
554
533
  "onUpdate:itemsPerPage": ue
555
534
  }), null, 16, ["current-page", "total-pages", "total-items"])
556
- ])) : f("", !0),
557
- u(Fe, {
535
+ ])) : d("", !0),
536
+ c(Fe, {
558
537
  show: V.value,
559
- "onUpdate:show": n[9] || (n[9] = (o) => V.value = o),
560
- title: pe.value,
561
- description: we.value,
562
- "confirm-text": xe.value,
538
+ "onUpdate:show": i[7] || (i[7] = (o) => V.value = o),
539
+ title: ye.value,
540
+ description: xe.value,
541
+ "confirm-text": we.value,
563
542
  "cancel-text": be.value,
564
543
  variant: "danger",
565
- onConfirm: de,
566
- onCancel: n[10] || (n[10] = (o) => V.value = !1)
544
+ onConfirm: se,
545
+ onCancel: i[8] || (i[8] = (o) => V.value = !1)
567
546
  }, null, 8, ["show", "title", "description", "confirm-text", "cancel-text"]),
568
- A.value ? (a(), c(X, {
547
+ A.value ? (a(), f(X, {
569
548
  key: 3,
570
549
  show: A.value,
571
- "onUpdate:show": n[11] || (n[11] = (o) => A.value = o),
550
+ "onUpdate:show": i[9] || (i[9] = (o) => A.value = o),
572
551
  title: U.value,
573
552
  "max-width": "sm:max-w-[400px]"
574
553
  }, {
575
- default: s(({ close: o }) => [
576
- u(ze, v({
554
+ default: u(({ close: o }) => [
555
+ c(ze, v({
577
556
  ref_key: "exportDataRef",
578
557
  ref: q,
579
558
  data: t.data || [],
580
- fields: Pe.value,
559
+ fields: Ce.value,
581
560
  mode: Te.value,
582
561
  "on-export": Ve
583
562
  }, typeof t.exportProps == "object" ? t.exportProps : {}, {
584
563
  title: U.value,
585
564
  class: "hidden!"
586
565
  }), null, 16, ["data", "fields", "mode", "title"]),
587
- p("div", ct, [
588
- p("h6", ut, m(x(r)("vlite.exportData.selectFormat") !== "vlite.exportData.selectFormat" ? x(r)("vlite.exportData.selectFormat") : "Select Export Format"), 1),
589
- p("div", ft, [
590
- (a(!0), d(S, null, Ae(q.value?.availableFormats || [
566
+ g("div", ct, [
567
+ g("h6", ut, p(x(r)("vlite.exportData.selectFormat") !== "vlite.exportData.selectFormat" ? x(r)("vlite.exportData.selectFormat") : "Select Export Format"), 1),
568
+ g("div", ft, [
569
+ (a(!0), s(C, null, Ae(q.value?.availableFormats || [
591
570
  { value: "excel", label: "Excel (.xlsx)", icon: "lucide:file-spreadsheet" },
592
571
  { value: "csv", label: "CSV (.csv)", icon: "lucide:file-text" },
593
572
  { value: "json", label: "JSON (.json)", icon: "lucide:file-json" }
594
- ], (O) => (a(), c(h, {
573
+ ], (O) => (a(), f(w, {
595
574
  key: O.value,
596
575
  variant: "outline",
597
576
  class: "w-full flex items-center justify-start gap-3 h-12",
598
577
  onClick: (vt) => q.value?.exportData(O.value, o)
599
578
  }, {
600
- default: s(() => [
601
- u(F, {
579
+ default: u(() => [
580
+ c(F, {
602
581
  icon: O.icon,
603
582
  class: "text-muted-foreground h-5 w-5"
604
583
  }, null, 8, ["icon"]),
605
- p("span", null, m(O.label), 1)
584
+ g("span", null, p(O.label), 1)
606
585
  ]),
607
586
  _: 2
608
587
  }, 1032, ["onClick"]))), 128))
@@ -610,21 +589,21 @@ const Xe = { class: "flex flex-col w-full space-y-8" }, Ye = { class: "flex flex
610
589
  ])
611
590
  ]),
612
591
  _: 1
613
- }, 8, ["show", "title"])) : f("", !0),
614
- te.value ? (a(), d("div", mt, [
615
- u(He, v({
592
+ }, 8, ["show", "title"])) : d("", !0),
593
+ te.value ? (a(), s("div", mt, [
594
+ c(He, v({
616
595
  show: z.value,
617
- "onUpdate:show": n[12] || (n[12] = (o) => z.value = o),
596
+ "onUpdate:show": i[10] || (i[10] = (o) => z.value = o),
618
597
  ref_key: "importDataRef",
619
- ref: Ce,
598
+ ref: De,
620
599
  fields: Se.value,
621
- processBatch: $e,
622
- onComplete: Ie
600
+ processBatch: Ie,
601
+ onComplete: $e
623
602
  }, typeof t.importProps == "object" ? t.importProps : {}, {
624
603
  title: le.value,
625
604
  class: "hidden!"
626
605
  }), null, 16, ["show", "fields", "title"])
627
- ])) : f("", !0)
606
+ ])) : d("", !0)
628
607
  ]);
629
608
  };
630
609
  }
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.8.7",
6
+ "version": "0.8.8",
7
7
  "type": "module",
8
8
  "main": "index.js",
9
9
  "module": "index.js",
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-a8237529]::-webkit-outer-spin-button,input[data-v-a8237529]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-a8237529]{-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}.dropdown-menu[data-v-55a6a43e]{will-change:transform;contain:layout style}.v-modal-overlay[data-v-7572bc5b]{background-color:#00000052}.v-modal-backdrop[data-v-7572bc5b]{transform:translateZ(0);will-change:opacity}.modal-body[data-v-7572bc5b]{will-change:transform;contain:layout style}.blink-bg[data-v-7572bc5b]{animation:blink-animation-7572bc5b 1s infinite}@keyframes blink-animation-7572bc5b{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-0cced8cd]{will-change:transform;contain:layout style}.custom-fields-table[data-v-0cced8cd] .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-0cced8cd] input,.custom-fields-table[data-v-0cced8cd] textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-0cced8cd] input,.custom-fields-table[data-v-0cced8cd] textarea,.custom-fields-table[data-v-0cced8cd] select,.custom-fields-table[data-v-0cced8cd] .input-wrapper,.custom-fields-table[data-v-0cced8cd] .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-0cced8cd] .tooltip-trigger button{justify-content:space-between!important}.custom-fields-table[data-v-0cced8cd] input:focus,.custom-fields-table[data-v-0cced8cd] textarea:focus,.custom-fields-table[data-v-0cced8cd] select:focus,.custom-fields-table[data-v-0cced8cd] .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-0cced8cd] .w-full{width:100%;height:100%}.list-enter-active[data-v-0cced8cd]{transition:all .15s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-0cced8cd]{opacity:0;transform:translateY(-5px)}.form-field-item[data-v-df08a3e5]{display:flex;flex-direction:column}.form-field-item[data-v-df08a3e5]:has([role=switch]),.form-field-item[data-v-df08a3e5]:has([role=checkbox]){flex-direction:row;align-items:center;justify-content:flex-start}.form-container[data-v-8eb29b35]{width:100%}.custom-scrollbar[data-v-3a733454]::-webkit-scrollbar{width:0px}.custom-scrollbar[data-v-3a733454]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-3a733454]::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:10px}.scrollable-container[data-v-3a733454]{will-change:transform;contain:layout style}.custom-scrollbar-x[data-v-1285df4f]::-webkit-scrollbar{height:8px}.custom-scrollbar-x[data-v-1285df4f]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar-x[data-v-1285df4f]::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:10px}.scrollable-container[data-v-1285df4f]{will-change:transform;contain:layout style}.v-sidepanel-overlay[data-v-d572f4ef]{background-color:#0003}.sidepanel-body[data-v-d572f4ef]{will-change:transform;contain:layout style}.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-ecb5df7c]{display:inline-flex;align-items:center;cursor:pointer}.breadcrumb-link[data-v-ecb5df7c]{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-ecb5df7c]:not(.current):not(.disabled):hover{color:var(--color-foreground)}.breadcrumb-link.current[data-v-ecb5df7c]{color:var(--color-foreground);font-weight:600;cursor:default}.breadcrumb-link.disabled[data-v-ecb5df7c]{opacity:.45;cursor:not-allowed;pointer-events:none}.breadcrumb-icon[data-v-ecb5df7c]{flex-shrink:0}.breadcrumb-list[data-v-d1e90135]{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0;gap:.38em}.breadcrumb--sm[data-v-d1e90135]{font-size:var(--text--fs-2)}.breadcrumb--md[data-v-d1e90135]{font-size:var(--text-fs-0.5, 1em)}.breadcrumb--lg[data-v-d1e90135]{font-size:var(--text-fs-2)}.breadcrumb-separator[data-v-d1e90135]{display:inline-flex;align-items:center;color:var(--color-gray-500);-webkit-user-select:none;user-select:none;font-size:.9em;line-height:1;padding:0 .1em}.breadcrumb-ellipsis[data-v-d1e90135]{display:inline-flex;align-items:center}.breadcrumb-ellipsis-btn[data-v-d1e90135]{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-d1e90135]:hover{background:var(--color-accent);color:var(--color-foreground);border-color:var(--color-gray-350)}.breadcrumb--contained[data-v-d1e90135]{background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.45em 1em}.breadcrumb--pills[data-v-d1e90135] .breadcrumb-link{padding:.2em .7em;border-radius:9999px;background:var(--color-secondary);border:1px solid var(--color-border)}.breadcrumb--pills[data-v-d1e90135] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent);border-color:var(--color-gray-350)}.breadcrumb--pills[data-v-d1e90135] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.breadcrumb--arrow .breadcrumb-list[data-v-d1e90135]{gap:0}.breadcrumb--arrow[data-v-d1e90135] .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-d1e90135] .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-d1e90135] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent)}.breadcrumb--arrow[data-v-d1e90135] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground)}.breadcrumb--arrow .breadcrumb-separator[data-v-d1e90135]{display:none}.import-table[data-v-cfd99cc9]{width:100%;font-size:.875rem;text-align:left;border-collapse:collapse}.import-thead[data-v-cfd99cc9]{font-size:.75rem;color:var(--color-muted-foreground, #6b7280);text-transform:uppercase;background-color:var(--color-muted, #f3f4f6);position:sticky;top:0;z-index:10}.import-th[data-v-cfd99cc9]{padding:.75rem 1rem;font-weight:500}.import-th-center[data-v-cfd99cc9]{text-align:center;width:4rem}.import-tbody .import-tr[data-v-cfd99cc9]{border-bottom:1px solid var(--color-border, #e5e7eb)}.import-tbody .import-tr[data-v-cfd99cc9]:last-child{border-bottom:none}.import-tr-active[data-v-cfd99cc9]{transition:background-color .2s ease-in-out}.import-tr-active[data-v-cfd99cc9]:hover{background-color:var(--color-muted, #f3f4f6);opacity:.85}.import-tr-ignored[data-v-cfd99cc9]{background-color:var(--color-muted, #f3f4f6);opacity:.6}.import-td-header[data-v-cfd99cc9]{padding:.75rem 1rem;font-weight:500;color:var(--color-foreground, #111827);white-space:nowrap}.import-td-dropdown[data-v-cfd99cc9]{padding:.5rem 1rem;min-width:200px}.import-td-preview[data-v-cfd99cc9]{padding:.75rem 1rem;color:var(--color-muted-foreground, #6b7280);min-width:200px;max-width:300px}.import-td-action[data-v-cfd99cc9]{padding:.75rem 1rem;text-align:center;vertical-align:middle}.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-4034dab4]{width:100%;position:relative;will-change:transform;contain:layout style}.file-tree-container[data-v-91337be9],.sheet-container[data-v-a5e9ca6f]{will-change:transform;contain:layout style}.accordion-enter-active[data-v-0075dffb],.accordion-leave-active[data-v-0075dffb]{transition:height .3s ease-in-out;will-change:height}.content-wrapper[data-v-0075dffb]{contain:paint}.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-ba68e64a]{max-height:70vh;will-change:transform;contain:layout style}.permission-matrix-wrapper[data-v-ba68e64a]::-webkit-scrollbar{width:6px;height:6px}.permission-matrix-wrapper[data-v-ba68e64a]::-webkit-scrollbar-track{background:transparent}.permission-matrix-wrapper[data-v-ba68e64a]::-webkit-scrollbar-thumb{background:var(--color-gray-350);border-radius:3px}.permission-matrix-wrapper[data-v-ba68e64a]::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}.permission-list-wrapper[data-v-a42b2fb0]{border:1px solid var(--color-border);border-radius:.5rem;overflow:hidden;background-color:var(--color-background);will-change:transform;contain:layout style}.custom-list-header[data-v-a42b2fb0]{background-color:var(--color-muted);border-bottom:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px)}.custom-list-group-content .custom-list-item[data-v-a42b2fb0]{border-bottom:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px);background-color:var(--color-background)}.custom-list-group-content .custom-list-item[data-v-a42b2fb0]:hover{background-color:var(--color-accent)}.custom-list-group-content .custom-list-item[data-v-a42b2fb0]:last-child{border-bottom:none}.custom-list-group-content+.custom-list-header[data-v-a42b2fb0],.custom-list-header+.custom-list-header[data-v-a42b2fb0]{border-top:1px solid var(--color-border)}.permission-list-wrapper>.custom-list-header[data-v-a42b2fb0]:last-child{border-bottom:none}.permission-matrix-wrapper[data-v-0b1ab970]{border:1px solid var(--color-border);background-color:var(--color-gray-100);border-radius:.5rem;overflow:auto;max-height:65vh;position:relative;will-change:transform;contain:layout style}.permission-matrix-wrapper[data-v-0b1ab970]::-webkit-scrollbar{width:6px;height:6px}.permission-matrix-wrapper[data-v-0b1ab970]::-webkit-scrollbar-track{background:transparent}.permission-matrix-wrapper[data-v-0b1ab970]::-webkit-scrollbar-thumb{background:var(--color-gray-350);border-radius:3px}.permission-matrix-wrapper[data-v-0b1ab970]::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}.custom-table[data-v-0b1ab970]{width:100%;border-collapse:collapse}.custom-sticky-header th[data-v-0b1ab970]{position:sticky;top:0;z-index:20;box-shadow:0 1px 0 var(--color-border)}.custom-th[data-v-0b1ab970]{background-color:var(--color-gray-150);color:var(--color-foreground);background-clip:padding-box;border-bottom:none;border-left:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px);text-align:left;font-weight:600;min-width:200px}thead:not(.custom-sticky-header) .custom-th[data-v-0b1ab970]{border-bottom:1px solid var(--color-border)}.custom-th.text-center[data-v-0b1ab970]{text-align:center;min-width:100px}.custom-th[data-v-0b1ab970]:first-child{border-left:none}.custom-td[data-v-0b1ab970]{border-bottom:1px solid var(--color-border);border-left:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px)}.custom-td.text-center[data-v-0b1ab970]{text-align:center}.custom-td[data-v-0b1ab970]:first-child{border-left:none}.custom-group-row td[data-v-0b1ab970]{background-color:var(--color-gray-100);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.custom-entity-row[data-v-0b1ab970]{background-color:var(--color-background);transition:background-color .1s ease}.custom-entity-row[data-v-0b1ab970]:hover{background-color:var(--color-gray-50)}.custom-entity-row:last-child td[data-v-0b1ab970]{border-bottom:none}.custom-active-cell[data-v-0b1ab970]{cursor:pointer}.custom-active-cell[data-v-0b1ab970]:hover{background-color:var(--color-accent)}.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}.toast-item[data-v-9c775c23]{will-change:transform,opacity;contain:layout style}.first-toast-enter-active[data-v-9c775c23]{animation:first-toast-in-9c775c23 .45s cubic-bezier(.23,1,.32,1) forwards}.first-toast-leave-active[data-v-9c775c23]{transition:all .25s ease-in}.first-toast-leave-to[data-v-9c775c23]{opacity:0;transform:scale(.98)}@keyframes first-toast-in-9c775c23{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-9c775c23],.stack-toast-leave-active[data-v-9c775c23]{transition:all .3s cubic-bezier(.16,1,.3,1)}.stack-toast-enter-from[data-v-9c775c23]{opacity:0;transform:scale(.95) translateY(10px)}.stack-toast-leave-to[data-v-9c775c23]{opacity:0;transform:scale(.95)}.stack-toast-move[data-v-9c775c23]{transition:transform .4s cubic-bezier(.16,1,.3,1)}.cp-item-transition[data-v-66b1ae06]{transition:background-color 80ms ease,color 80ms ease}.command-palette-content[data-v-1bae4c0f] ::-webkit-scrollbar{width:4px}.command-palette-content[data-v-1bae4c0f] ::-webkit-scrollbar-track{background:transparent}.command-palette-content[data-v-1bae4c0f] ::-webkit-scrollbar-thumb{background:var(--border);border-radius:9999px}.cp-scroll-container[data-v-1bae4c0f]{transform:translateZ(0);will-change:transform;touch-action:pan-y;backface-visibility:hidden}
897
+ input[data-v-a8237529]::-webkit-outer-spin-button,input[data-v-a8237529]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-a8237529]{-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}.dropdown-menu[data-v-55a6a43e]{will-change:transform;contain:layout style}.v-modal-overlay[data-v-7572bc5b]{background-color:#00000052}.v-modal-backdrop[data-v-7572bc5b]{transform:translateZ(0);will-change:opacity}.modal-body[data-v-7572bc5b]{will-change:transform;contain:layout style}.blink-bg[data-v-7572bc5b]{animation:blink-animation-7572bc5b 1s infinite}@keyframes blink-animation-7572bc5b{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-0cced8cd]{will-change:transform;contain:layout style}.custom-fields-table[data-v-0cced8cd] .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-0cced8cd] input,.custom-fields-table[data-v-0cced8cd] textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-0cced8cd] input,.custom-fields-table[data-v-0cced8cd] textarea,.custom-fields-table[data-v-0cced8cd] select,.custom-fields-table[data-v-0cced8cd] .input-wrapper,.custom-fields-table[data-v-0cced8cd] .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-0cced8cd] .tooltip-trigger button{justify-content:space-between!important}.custom-fields-table[data-v-0cced8cd] input:focus,.custom-fields-table[data-v-0cced8cd] textarea:focus,.custom-fields-table[data-v-0cced8cd] select:focus,.custom-fields-table[data-v-0cced8cd] .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-0cced8cd] .w-full{width:100%;height:100%}.list-enter-active[data-v-0cced8cd]{transition:all .15s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-0cced8cd]{opacity:0;transform:translateY(-5px)}.form-field-item[data-v-1139135c]{display:flex;flex-direction:column}.form-field-item[data-v-1139135c]:has([role=switch]),.form-field-item[data-v-1139135c]:has([role=checkbox]){flex-direction:row;align-items:center;justify-content:flex-start}.form-container[data-v-d7b4ffda]{width:100%}.custom-scrollbar[data-v-3a733454]::-webkit-scrollbar{width:0px}.custom-scrollbar[data-v-3a733454]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-3a733454]::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:10px}.scrollable-container[data-v-3a733454]{will-change:transform;contain:layout style}.custom-scrollbar-x[data-v-1285df4f]::-webkit-scrollbar{height:8px}.custom-scrollbar-x[data-v-1285df4f]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar-x[data-v-1285df4f]::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:10px}.scrollable-container[data-v-1285df4f]{will-change:transform;contain:layout style}.v-sidepanel-overlay[data-v-d572f4ef]{background-color:#0003}.sidepanel-body[data-v-d572f4ef]{will-change:transform;contain:layout style}.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-ecb5df7c]{display:inline-flex;align-items:center;cursor:pointer}.breadcrumb-link[data-v-ecb5df7c]{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-ecb5df7c]:not(.current):not(.disabled):hover{color:var(--color-foreground)}.breadcrumb-link.current[data-v-ecb5df7c]{color:var(--color-foreground);font-weight:600;cursor:default}.breadcrumb-link.disabled[data-v-ecb5df7c]{opacity:.45;cursor:not-allowed;pointer-events:none}.breadcrumb-icon[data-v-ecb5df7c]{flex-shrink:0}.breadcrumb-list[data-v-d1e90135]{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0;gap:.38em}.breadcrumb--sm[data-v-d1e90135]{font-size:var(--text--fs-2)}.breadcrumb--md[data-v-d1e90135]{font-size:var(--text-fs-0.5, 1em)}.breadcrumb--lg[data-v-d1e90135]{font-size:var(--text-fs-2)}.breadcrumb-separator[data-v-d1e90135]{display:inline-flex;align-items:center;color:var(--color-gray-500);-webkit-user-select:none;user-select:none;font-size:.9em;line-height:1;padding:0 .1em}.breadcrumb-ellipsis[data-v-d1e90135]{display:inline-flex;align-items:center}.breadcrumb-ellipsis-btn[data-v-d1e90135]{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-d1e90135]:hover{background:var(--color-accent);color:var(--color-foreground);border-color:var(--color-gray-350)}.breadcrumb--contained[data-v-d1e90135]{background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.45em 1em}.breadcrumb--pills[data-v-d1e90135] .breadcrumb-link{padding:.2em .7em;border-radius:9999px;background:var(--color-secondary);border:1px solid var(--color-border)}.breadcrumb--pills[data-v-d1e90135] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent);border-color:var(--color-gray-350)}.breadcrumb--pills[data-v-d1e90135] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.breadcrumb--arrow .breadcrumb-list[data-v-d1e90135]{gap:0}.breadcrumb--arrow[data-v-d1e90135] .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-d1e90135] .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-d1e90135] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent)}.breadcrumb--arrow[data-v-d1e90135] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground)}.breadcrumb--arrow .breadcrumb-separator[data-v-d1e90135]{display:none}.import-table[data-v-cfd99cc9]{width:100%;font-size:.875rem;text-align:left;border-collapse:collapse}.import-thead[data-v-cfd99cc9]{font-size:.75rem;color:var(--color-muted-foreground, #6b7280);text-transform:uppercase;background-color:var(--color-muted, #f3f4f6);position:sticky;top:0;z-index:10}.import-th[data-v-cfd99cc9]{padding:.75rem 1rem;font-weight:500}.import-th-center[data-v-cfd99cc9]{text-align:center;width:4rem}.import-tbody .import-tr[data-v-cfd99cc9]{border-bottom:1px solid var(--color-border, #e5e7eb)}.import-tbody .import-tr[data-v-cfd99cc9]:last-child{border-bottom:none}.import-tr-active[data-v-cfd99cc9]{transition:background-color .2s ease-in-out}.import-tr-active[data-v-cfd99cc9]:hover{background-color:var(--color-muted, #f3f4f6);opacity:.85}.import-tr-ignored[data-v-cfd99cc9]{background-color:var(--color-muted, #f3f4f6);opacity:.6}.import-td-header[data-v-cfd99cc9]{padding:.75rem 1rem;font-weight:500;color:var(--color-foreground, #111827);white-space:nowrap}.import-td-dropdown[data-v-cfd99cc9]{padding:.5rem 1rem;min-width:200px}.import-td-preview[data-v-cfd99cc9]{padding:.75rem 1rem;color:var(--color-muted-foreground, #6b7280);min-width:200px;max-width:300px}.import-td-action[data-v-cfd99cc9]{padding:.75rem 1rem;text-align:center;vertical-align:middle}.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-4034dab4]{width:100%;position:relative;will-change:transform;contain:layout style}.file-tree-container[data-v-91337be9],.sheet-container[data-v-a5e9ca6f]{will-change:transform;contain:layout style}.accordion-enter-active[data-v-0075dffb],.accordion-leave-active[data-v-0075dffb]{transition:height .3s ease-in-out;will-change:height}.content-wrapper[data-v-0075dffb]{contain:paint}.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-ba68e64a]{max-height:70vh;will-change:transform;contain:layout style}.permission-matrix-wrapper[data-v-ba68e64a]::-webkit-scrollbar{width:6px;height:6px}.permission-matrix-wrapper[data-v-ba68e64a]::-webkit-scrollbar-track{background:transparent}.permission-matrix-wrapper[data-v-ba68e64a]::-webkit-scrollbar-thumb{background:var(--color-gray-350);border-radius:3px}.permission-matrix-wrapper[data-v-ba68e64a]::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}.permission-list-wrapper[data-v-a42b2fb0]{border:1px solid var(--color-border);border-radius:.5rem;overflow:hidden;background-color:var(--color-background);will-change:transform;contain:layout style}.custom-list-header[data-v-a42b2fb0]{background-color:var(--color-muted);border-bottom:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px)}.custom-list-group-content .custom-list-item[data-v-a42b2fb0]{border-bottom:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px);background-color:var(--color-background)}.custom-list-group-content .custom-list-item[data-v-a42b2fb0]:hover{background-color:var(--color-accent)}.custom-list-group-content .custom-list-item[data-v-a42b2fb0]:last-child{border-bottom:none}.custom-list-group-content+.custom-list-header[data-v-a42b2fb0],.custom-list-header+.custom-list-header[data-v-a42b2fb0]{border-top:1px solid var(--color-border)}.permission-list-wrapper>.custom-list-header[data-v-a42b2fb0]:last-child{border-bottom:none}.permission-matrix-wrapper[data-v-0b1ab970]{border:1px solid var(--color-border);background-color:var(--color-gray-100);border-radius:.5rem;overflow:auto;max-height:65vh;position:relative;will-change:transform;contain:layout style}.permission-matrix-wrapper[data-v-0b1ab970]::-webkit-scrollbar{width:6px;height:6px}.permission-matrix-wrapper[data-v-0b1ab970]::-webkit-scrollbar-track{background:transparent}.permission-matrix-wrapper[data-v-0b1ab970]::-webkit-scrollbar-thumb{background:var(--color-gray-350);border-radius:3px}.permission-matrix-wrapper[data-v-0b1ab970]::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}.custom-table[data-v-0b1ab970]{width:100%;border-collapse:collapse}.custom-sticky-header th[data-v-0b1ab970]{position:sticky;top:0;z-index:20;box-shadow:0 1px 0 var(--color-border)}.custom-th[data-v-0b1ab970]{background-color:var(--color-gray-150);color:var(--color-foreground);background-clip:padding-box;border-bottom:none;border-left:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px);text-align:left;font-weight:600;min-width:200px}thead:not(.custom-sticky-header) .custom-th[data-v-0b1ab970]{border-bottom:1px solid var(--color-border)}.custom-th.text-center[data-v-0b1ab970]{text-align:center;min-width:100px}.custom-th[data-v-0b1ab970]:first-child{border-left:none}.custom-td[data-v-0b1ab970]{border-bottom:1px solid var(--color-border);border-left:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px)}.custom-td.text-center[data-v-0b1ab970]{text-align:center}.custom-td[data-v-0b1ab970]:first-child{border-left:none}.custom-group-row td[data-v-0b1ab970]{background-color:var(--color-gray-100);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.custom-entity-row[data-v-0b1ab970]{background-color:var(--color-background);transition:background-color .1s ease}.custom-entity-row[data-v-0b1ab970]:hover{background-color:var(--color-gray-50)}.custom-entity-row:last-child td[data-v-0b1ab970]{border-bottom:none}.custom-active-cell[data-v-0b1ab970]{cursor:pointer}.custom-active-cell[data-v-0b1ab970]:hover{background-color:var(--color-accent)}.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}.toast-item[data-v-9c775c23]{will-change:transform,opacity;contain:layout style}.first-toast-enter-active[data-v-9c775c23]{animation:first-toast-in-9c775c23 .45s cubic-bezier(.23,1,.32,1) forwards}.first-toast-leave-active[data-v-9c775c23]{transition:all .25s ease-in}.first-toast-leave-to[data-v-9c775c23]{opacity:0;transform:scale(.98)}@keyframes first-toast-in-9c775c23{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-9c775c23],.stack-toast-leave-active[data-v-9c775c23]{transition:all .3s cubic-bezier(.16,1,.3,1)}.stack-toast-enter-from[data-v-9c775c23]{opacity:0;transform:scale(.95) translateY(10px)}.stack-toast-leave-to[data-v-9c775c23]{opacity:0;transform:scale(.95)}.stack-toast-move[data-v-9c775c23]{transition:transform .4s cubic-bezier(.16,1,.3,1)}.cp-item-transition[data-v-66b1ae06]{transition:background-color 80ms ease,color 80ms ease}.command-palette-content[data-v-1bae4c0f] ::-webkit-scrollbar{width:4px}.command-palette-content[data-v-1bae4c0f] ::-webkit-scrollbar-track{background:transparent}.command-palette-content[data-v-1bae4c0f] ::-webkit-scrollbar-thumb{background:var(--border);border-radius:9999px}.cp-scroll-container[data-v-1bae4c0f]{transform:translateZ(0);will-change:transform;touch-action:pan-y;backface-visibility:hidden}
898
898