vlite3 0.7.12 → 0.7.13

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,7 +1,9 @@
1
1
  export type BadgeVariant = 'default' | 'secondary' | 'danger' | 'outline' | 'warning' | 'info' | 'success' | 'purple' | 'teal' | 'indigo' | 'orange' | 'pink' | 'cyan';
2
2
  interface Props {
3
3
  variant?: BadgeVariant | string;
4
- class?: string;
4
+ size?: 'xs' | 'sm' | 'md' | 'lg';
5
+ rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | string;
6
+ class?: any;
5
7
  }
6
8
  declare function __VLS_template(): {
7
9
  attrs: Partial<{}>;
@@ -14,7 +16,9 @@ declare function __VLS_template(): {
14
16
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
15
17
  declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
16
18
  variant: BadgeVariant | string;
17
- class: string;
19
+ size: "xs" | "sm" | "md" | "lg";
20
+ rounded: "none" | "sm" | "md" | "lg" | "xl" | "2xl" | "full" | string;
21
+ class: any;
18
22
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
19
23
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
20
24
  export default _default;
@@ -1,13 +1,20 @@
1
- import { defineComponent as b, computed as n, openBlock as a, createElementBlock as l, normalizeClass as u, renderSlot as d } from "vue";
2
- const c = /* @__PURE__ */ b({
1
+ import { defineComponent as b, computed as d, openBlock as a, createElementBlock as u, normalizeClass as i, renderSlot as c } from "vue";
2
+ const p = /* @__PURE__ */ b({
3
3
  __name: "Badge",
4
4
  props: {
5
5
  variant: { default: "default" },
6
+ size: { default: "md" },
7
+ rounded: { default: "full" },
6
8
  class: { default: "" }
7
9
  },
8
10
  setup(o) {
9
- const t = o, s = n(() => {
10
- const e = "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", r = {
11
+ const e = o, s = d(() => {
12
+ const r = {
13
+ xs: "px-1.5 h-5 text-[10.5px] leading-none",
14
+ sm: "px-2 h-6 text-xs font-medium",
15
+ md: "px-2.5 h-7 text-xs font-semibold",
16
+ lg: "px-3 h-8 text-sm font-semibold"
17
+ }, l = `inline-flex items-center ${e.rounded === "none" ? "rounded-none" : `rounded-${e.rounded}`} border ${r[e.size] || r.md} focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`, t = {
11
18
  default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
12
19
  outline: "text-foreground border-border",
13
20
  /* Base Semantics */
@@ -24,15 +31,15 @@ const c = /* @__PURE__ */ b({
24
31
  pink: "border-pink-subtle-border bg-pink-subtle text-pink-subtle-fg hover:opacity-80",
25
32
  cyan: "border-cyan-subtle-border bg-cyan-subtle text-cyan-subtle-fg hover:opacity-80"
26
33
  };
27
- return [e, r[t.variant] || r.default, t.class].join(" ");
34
+ return [l, t[e.variant] || t.default, e.class].join(" ");
28
35
  });
29
- return (e, r) => (a(), l("div", {
30
- class: u(s.value)
36
+ return (r, n) => (a(), u("div", {
37
+ class: i(s.value)
31
38
  }, [
32
- d(e.$slots, "default")
39
+ c(r.$slots, "default")
33
40
  ], 2));
34
41
  }
35
42
  });
36
43
  export {
37
- c as default
44
+ p as default
38
45
  };
@@ -1,7 +1,7 @@
1
1
  import o from "./CustomFields.vue2.js";
2
2
  /* empty css */
3
3
  import t from "../../_virtual/_plugin-vue_export-helper.js";
4
- const s = /* @__PURE__ */ t(o, [["__scopeId", "data-v-c9831df1"]]);
4
+ const s = /* @__PURE__ */ t(o, [["__scopeId", "data-v-112b16b5"]]);
5
5
  export {
6
6
  s as default
7
7
  };
@@ -1,4 +1,4 @@
1
- import { defineComponent as I, computed as u, ref as L, watch as S, openBlock as o, createElementBlock as n, createElementVNode as f, createBlock as G, withCtx as k, createTextVNode as H, toDisplayString as m, createCommentVNode as i, createVNode as v, Fragment as p, renderList as w, normalizeClass as C, TransitionGroup as M } from "vue";
1
+ import { defineComponent as I, computed as c, ref as S, watch as L, openBlock as o, createElementBlock as r, createElementVNode as f, createBlock as G, withCtx as k, createTextVNode as H, toDisplayString as m, createCommentVNode as u, createVNode as v, Fragment as h, renderList as w, normalizeClass as C, TransitionGroup as M } from "vue";
2
2
  import q from "./FormField.vue.js";
3
3
  import V from "../Button.vue.js";
4
4
  import J from "../Label.vue.js";
@@ -21,7 +21,7 @@ const K = { class: "custom-fields-wrapper" }, O = { class: "flex justify-between
21
21
  }, ee = {
22
22
  key: 1,
23
23
  class: "flex flex-col items-center justify-center py-6 text-center bg-muted/5"
24
- }, te = { class: "text-sm font-medium text-foreground" }, le = { class: "text-xs text-muted-foreground mt-1" }, de = /* @__PURE__ */ I({
24
+ }, te = { class: "text-sm font-medium text-foreground" }, se = { class: "text-xs text-muted-foreground mt-1" }, de = /* @__PURE__ */ I({
25
25
  __name: "CustomFields",
26
26
  props: {
27
27
  modelValue: { default: () => [] },
@@ -43,62 +43,62 @@ const K = { class: "custom-fields-wrapper" }, O = { class: "flex justify-between
43
43
  },
44
44
  emits: ["update:modelValue", "change"],
45
45
  setup(d, { emit: F }) {
46
- const t = d, x = F, g = u(() => t.labelI18n ? b(t.labelI18n) : t.label), N = u(() => {
46
+ const t = d, x = F, y = c(() => t.labelI18n ? b(t.labelI18n) : t.label), N = c(() => {
47
47
  const e = b("vlite.customFields.emptyTitle");
48
48
  return e !== "vlite.customFields.emptyTitle" ? e : "No items added";
49
- }), B = u(() => {
49
+ }), B = c(() => {
50
50
  const e = b("vlite.customFields.emptyDescription");
51
51
  return e !== "vlite.customFields.emptyDescription" ? e : "Add a new item to get started";
52
- }), s = L([]), y = () => `row_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
53
- S(
52
+ }), l = S([]), g = () => `row_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
53
+ L(
54
54
  () => t.modelValue,
55
55
  (e) => {
56
- Array.isArray(e) ? s.value = e.map((l, r) => {
57
- const a = s.value[r];
56
+ Array.isArray(e) ? l.value = e.map((s, n) => {
57
+ const a = l.value[n];
58
58
  return {
59
- ...l,
60
- _id: a?._id || y()
59
+ ...s,
60
+ _id: a?._id || g()
61
61
  };
62
- }) : s.value = [];
62
+ }) : l.value = [];
63
63
  },
64
64
  { immediate: !0, deep: !0 }
65
65
  );
66
66
  const $ = () => {
67
67
  const e = {};
68
- for (const l of t.schema) {
69
- const r = typeof l.value == "function" ? l.value() : l.value;
70
- e[l.name] = r ?? null;
68
+ for (const s of t.schema) {
69
+ const n = typeof s.value == "function" ? s.value() : s.value;
70
+ e[s.name] = n ?? null;
71
71
  }
72
- return { ...e, _id: y() };
72
+ return { ...e, _id: g() };
73
73
  }, T = () => {
74
- if (t.disabled || t.maxRows && s.value.length >= t.maxRows) return;
75
- const e = [...s.value, $()];
76
- s.value = e, h(e);
74
+ if (t.disabled || t.maxRows && l.value.length >= t.maxRows) return;
75
+ const e = [...l.value, $()];
76
+ l.value = e, p(e);
77
77
  }, z = (e) => {
78
- if (t.disabled || s.value.length <= t.minRows) return;
79
- const l = [...s.value];
80
- l.splice(e, 1), s.value = l, h(l);
81
- }, A = (e, l, r) => {
82
- const a = [...s.value];
78
+ if (t.disabled || l.value.length <= t.minRows) return;
79
+ const s = [...l.value];
80
+ s.splice(e, 1), l.value = s, p(s);
81
+ }, A = (e, s, n) => {
82
+ const a = [...l.value];
83
83
  a[e] = {
84
84
  ...a[e],
85
- [l]: r.value
86
- }, s.value = a, h(a);
87
- }, h = (e) => {
88
- const l = e.map(({ _id: r, ...a }) => a);
89
- x("update:modelValue", l), x("change", l);
90
- }, D = (e, l) => s.value[e]?.[l], E = u(() => !(t.disabled || t.maxRows && s.value.length >= t.maxRows)), _ = u(() => t.disabled ? !1 : s.value.length > t.minRows), R = u(() => t.headers && t.headers.length > 0 ? t.headers : t.schema.map((e) => e.labelI18n ? b(e.labelI18n) : e.label || e.name));
91
- return (e, l) => (o(), n("div", K, [
85
+ [s]: n.value
86
+ }, l.value = a, p(a);
87
+ }, p = (e) => {
88
+ const s = e.map(({ _id: n, ...a }) => a);
89
+ x("update:modelValue", s), x("change", s);
90
+ }, D = (e, s) => l.value[e]?.[s], E = c(() => !(t.disabled || t.maxRows && l.value.length >= t.maxRows)), _ = c(() => t.disabled ? !1 : l.value.length > t.minRows), R = c(() => t.headers && t.headers.length > 0 ? t.headers : t.schema.map((e) => e.labelI18n ? b(e.labelI18n) : e.label || e.name));
91
+ return (e, s) => (o(), r("div", K, [
92
92
  f("div", O, [
93
- g.value ? (o(), G(J, {
93
+ y.value ? (o(), G(J, {
94
94
  key: 0,
95
95
  class: "text-sm font-medium text-foreground"
96
96
  }, {
97
97
  default: k(() => [
98
- H(m(g.value), 1)
98
+ H(m(y.value), 1)
99
99
  ]),
100
100
  _: 1
101
- })) : i("", !0),
101
+ })) : u("", !0),
102
102
  v(V, {
103
103
  type: "button",
104
104
  variant: "outline",
@@ -110,32 +110,39 @@ const K = { class: "custom-fields-wrapper" }, O = { class: "flex justify-between
110
110
  }, null, 8, ["disabled"])
111
111
  ]),
112
112
  f("div", P, [
113
- R.value.length > 0 ? (o(), n("div", Q, [
114
- d.showRowNumbers ? (o(), n("div", W, " # ")) : i("", !0),
115
- (o(!0), n(p, null, w(R.value, (r, a) => (o(), n("div", {
113
+ R.value.length > 0 ? (o(), r("div", Q, [
114
+ d.showRowNumbers ? (o(), r("div", W, " # ")) : u("", !0),
115
+ (o(!0), r(h, null, w(R.value, (n, a) => (o(), r("div", {
116
116
  key: a,
117
117
  class: C(["flex-1 p-3 min-w-0 truncate", { "border-l border-border": a > 0 }])
118
- }, m(r), 3))), 128)),
119
- _.value ? (o(), n("div", X)) : i("", !0)
120
- ])) : i("", !0),
118
+ }, m(n), 3))), 128)),
119
+ _.value ? (o(), r("div", X)) : u("", !0)
120
+ ])) : u("", !0),
121
121
  v(M, {
122
122
  name: "list",
123
123
  tag: "div",
124
124
  class: "divide-y divide-border"
125
125
  }, {
126
126
  default: k(() => [
127
- (o(!0), n(p, null, w(s.value, (r, a) => (o(), n("div", {
128
- key: r._id,
127
+ (o(!0), r(h, null, w(l.value, (n, a) => (o(), r("div", {
128
+ key: n._id,
129
129
  class: "flex group bg-white transition-colors"
130
130
  }, [
131
- d.showRowNumbers ? (o(), n("div", Y, m(a + 1), 1)) : i("", !0),
132
- (o(!0), n(p, null, w(d.schema, (c, j) => (o(), n("div", {
133
- key: c.name,
131
+ d.showRowNumbers ? (o(), r("div", Y, m(a + 1), 1)) : u("", !0),
132
+ (o(!0), r(h, null, w(d.schema, (i, j) => (o(), r("div", {
133
+ key: i.name,
134
134
  class: C(["flex-1 min-w-0 relative", { "border-l border-border": j > 0 }])
135
135
  }, [
136
136
  v(q, {
137
- field: { ...c, label: void 0 },
138
- value: D(a, c.name),
137
+ field: {
138
+ ...i,
139
+ props: {
140
+ ...i.type === "multiSelect" ? { showControls: !1, wrap: !1 } : {},
141
+ ...i.props || {}
142
+ },
143
+ label: void 0
144
+ },
145
+ value: D(a, i.name),
139
146
  values: d.values || {},
140
147
  variant: "transparent",
141
148
  size: "sm",
@@ -143,27 +150,27 @@ const K = { class: "custom-fields-wrapper" }, O = { class: "flex justify-between
143
150
  disabled: d.disabled,
144
151
  isUpdate: d.isUpdate,
145
152
  class: "w-full h-full min-h-[40px]",
146
- onChange: (U) => A(a, c.name, U)
153
+ onChange: (U) => A(a, i.name, U)
147
154
  }, null, 8, ["field", "value", "values", "disabled", "isUpdate", "onChange"])
148
155
  ], 2))), 128)),
149
- _.value ? (o(), n("div", Z, [
156
+ _.value ? (o(), r("div", Z, [
150
157
  v(V, {
151
158
  type: "button",
152
159
  variant: "ghost",
153
160
  size: "xs",
154
161
  icon: "lucide:trash-2",
155
162
  disabled: d.disabled,
156
- onClick: (c) => z(a)
163
+ onClick: (i) => z(a)
157
164
  }, null, 8, ["disabled", "onClick"])
158
- ])) : i("", !0)
165
+ ])) : u("", !0)
159
166
  ]))), 128))
160
167
  ]),
161
168
  _: 1
162
169
  }),
163
- s.value.length === 0 ? (o(), n("div", ee, [
170
+ l.value.length === 0 ? (o(), r("div", ee, [
164
171
  f("p", te, m(N.value), 1),
165
- f("p", le, m(B.value), 1)
166
- ])) : i("", !0)
172
+ f("p", se, m(B.value), 1)
173
+ ])) : u("", !0)
167
174
  ])
168
175
  ]));
169
176
  }
@@ -145,7 +145,9 @@ const me = /* @__PURE__ */ B({
145
145
  modelValue: Array.isArray(e.value) ? e.value : [],
146
146
  options: e.field.options || [],
147
147
  placeholder: i,
148
- variant: e.variant
148
+ variant: e.variant,
149
+ size: e.size,
150
+ rounded: e.rounded
149
151
  } : t === "date" || t === "time" ? {
150
152
  ...a,
151
153
  modelValue: e.value,
@@ -15,6 +15,9 @@ interface Props {
15
15
  debounceTime?: number;
16
16
  fetchSelected?: (ids: any[]) => Promise<IDropdownOption[]>;
17
17
  layout?: 'default' | 'grouped';
18
+ showControls?: boolean;
19
+ wrap?: boolean;
20
+ rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | string;
18
21
  }
19
22
  declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
20
23
  search: (query: string) => any;
@@ -29,6 +32,7 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
29
32
  }>, {
30
33
  variant: "default" | "outline" | "solid" | "floating" | string;
31
34
  size: "sm" | "md" | "lg";
35
+ rounded: "none" | "sm" | "md" | "lg" | "xl" | "2xl" | "full" | string;
32
36
  disabled: boolean;
33
37
  loading: boolean;
34
38
  modelValue: any[];
@@ -39,5 +43,7 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
39
43
  remote: boolean;
40
44
  debounceTime: number;
41
45
  maxVisible: number;
46
+ showControls: boolean;
47
+ wrap: boolean;
42
48
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
43
49
  export default _default;
@@ -1,14 +1,17 @@
1
- import { defineComponent as F, ref as x, computed as r, watch as $, openBlock as s, createBlock as f, unref as v, withCtx as p, createVNode as V, createElementVNode as d, normalizeClass as M, createElementBlock as h, toDisplayString as w, Fragment as I, renderList as P, withModifiers as T, createCommentVNode as S, createTextVNode as R } from "vue";
2
- import k from "../Icon.vue.js";
3
- import U from "../Dropdown/Dropdown.vue.js";
4
- import q from "../Dropdown/DropdownMenu.vue.js";
1
+ import { defineComponent as P, ref as V, computed as s, watch as M, openBlock as o, createBlock as v, unref as h, withCtx as p, createVNode as k, createElementVNode as g, normalizeClass as u, createElementBlock as c, toDisplayString as S, Fragment as I, renderList as R, withModifiers as T, createCommentVNode as b, createTextVNode as U } from "vue";
2
+ import C from "../Icon.vue.js";
3
+ import q from "../Dropdown/Dropdown.vue.js";
4
+ import G from "../Dropdown/DropdownMenu.vue.js";
5
5
  import { $t as O } from "../../utils/i18n.js";
6
- import z from "../Badge.vue.js";
7
- import { useMultiSelectHydration as G } from "./composables/useMultiSelectHydration.js";
8
- const J = { class: "flex flex-wrap gap-1.5 items-center flex-1 min-w-0 py-0.5" }, K = {
6
+ import L from "../Badge.vue.js";
7
+ import { useMultiSelectHydration as J } from "./composables/useMultiSelectHydration.js";
8
+ const K = {
9
9
  key: 0,
10
- class: "text-muted-foreground pl-1"
11
- }, Q = { class: "truncate" }, W = ["onClick"], X = { class: "flex items-center gap-2 pl-2 shrink-0 text-muted-foreground" }, oe = /* @__PURE__ */ F({
10
+ class: "text-muted-foreground pl-1 truncate"
11
+ }, Q = { class: "truncate min-w-0" }, W = ["onClick"], X = {
12
+ key: 0,
13
+ class: "flex items-center gap-2 pl-2 shrink-0 text-muted-foreground"
14
+ }, re = /* @__PURE__ */ P({
12
15
  __name: "MultiSelect",
13
16
  props: {
14
17
  modelValue: { default: () => [] },
@@ -25,139 +28,154 @@ const J = { class: "flex flex-wrap gap-1.5 items-center flex-1 min-w-0 py-0.5" }
25
28
  remote: { type: Boolean, default: !1 },
26
29
  debounceTime: { default: 300 },
27
30
  fetchSelected: {},
28
- layout: { default: "default" }
31
+ layout: { default: "default" },
32
+ showControls: { type: Boolean, default: !0 },
33
+ wrap: { type: Boolean, default: !0 },
34
+ rounded: { default: "md" }
29
35
  },
30
36
  emits: ["update:modelValue", "change", "load-more", "search"],
31
- setup(n, { emit: L }) {
32
- const l = n, i = L, c = x(!1), N = r(() => {
33
- if (l.placeholderI18n) return O(l.placeholderI18n);
34
- if (l.placeholder) return l.placeholder;
37
+ setup(l, { emit: N }) {
38
+ const t = l, i = N, m = V(!1), j = s(() => {
39
+ if (t.placeholderI18n) return O(t.placeholderI18n);
40
+ if (t.placeholder) return t.placeholder;
35
41
  const e = O("vlite.multiSelect.placeholder");
36
42
  return e !== "vlite.multiSelect.placeholder" ? e : "Select items...";
37
- }), b = r(() => l.options ? l.options.map((e) => typeof e == "string" || typeof e == "number" ? { label: String(e), value: String(e) } : e) : []), B = x(!1), g = x(!1);
38
- $(
39
- b,
43
+ }), y = s(() => t.options ? t.options.map((e) => typeof e == "string" || typeof e == "number" ? { label: String(e), value: String(e) } : e) : []), $ = V(!1), x = V(!1);
44
+ M(
45
+ y,
40
46
  (e) => {
41
- !B.value && e.length > 0 && (B.value = !0, setTimeout(() => {
42
- g.value = !0, u.hydrateSelected(l.modelValue || []);
47
+ !$.value && e.length > 0 && ($.value = !0, setTimeout(() => {
48
+ x.value = !0, d.hydrateSelected(t.modelValue || []);
43
49
  }, 10));
44
50
  },
45
51
  { immediate: !0 }
46
52
  );
47
- const y = r(() => {
48
- const e = [...b.value], t = new Set(e.map((a) => a.value ?? a.label));
49
- return u.selectedBuffer.value.forEach((a, o) => {
50
- t.has(o) || (e.unshift(a), t.add(o));
53
+ const w = s(() => {
54
+ const e = [...y.value], a = new Set(e.map((n) => n.value ?? n.label));
55
+ return d.selectedBuffer.value.forEach((n, r) => {
56
+ a.has(r) || (e.unshift(n), a.add(r));
51
57
  }), e;
52
- }), u = G({
53
- fetchSelected: l.fetchSelected,
54
- getValues: () => l.modelValue || [],
55
- getOptions: () => y.value,
56
- isInitialLoadDone: () => g.value
58
+ }), d = J({
59
+ fetchSelected: t.fetchSelected,
60
+ getValues: () => t.modelValue || [],
61
+ getOptions: () => w.value,
62
+ isInitialLoadDone: () => x.value
57
63
  });
58
- $(
59
- () => l.modelValue,
64
+ M(
65
+ () => t.modelValue,
60
66
  (e) => {
61
- g.value && u.hydrateSelected(e || []);
67
+ x.value && d.hydrateSelected(e || []);
62
68
  },
63
69
  { deep: !0 }
64
70
  );
65
- const m = r(() => y.value.filter((e) => {
66
- const t = e.value ?? e.label;
67
- return l.modelValue.includes(t);
68
- })), E = r(() => m.value.slice(0, l.maxVisible)), C = r(() => m.value.length - l.maxVisible), j = (e) => {
69
- const t = e.value ?? e.label;
70
- u.selectedBuffer.value.has(t) || u.selectedBuffer.value.set(t, e);
71
- const a = [...l.modelValue], o = a.indexOf(t);
72
- o === -1 ? a.push(t) : a.splice(o, 1), i("update:modelValue", a), i("change", a);
73
- }, D = (e) => {
74
- const t = l.modelValue.filter((a) => a !== e);
75
- i("update:modelValue", t), i("change", t);
76
- }, H = () => {
71
+ const f = s(() => w.value.filter((e) => {
72
+ const a = e.value ?? e.label;
73
+ return t.modelValue.includes(a);
74
+ })), E = s(() => f.value.slice(0, t.maxVisible)), B = s(() => f.value.length - t.maxVisible), D = (e) => {
75
+ const a = e.value ?? e.label;
76
+ d.selectedBuffer.value.has(a) || d.selectedBuffer.value.set(a, e);
77
+ const n = [...t.modelValue], r = n.indexOf(a);
78
+ r === -1 ? n.push(a) : n.splice(r, 1), i("update:modelValue", n), i("change", n);
79
+ }, H = (e) => {
80
+ const a = t.modelValue.filter((n) => n !== e);
81
+ i("update:modelValue", a), i("change", a);
82
+ }, A = () => {
77
83
  i("update:modelValue", []), i("change", []);
78
- }, A = r(() => [
79
- "flex items-center justify-between w-full px-3 py-1.5 rounded-md border text-sm transition-colors cursor-pointer",
80
- l.disabled ? "opacity-50 cursor-not-allowed bg-muted" : l.variant === "floating" ? "bg-transparent text-foreground" : "bg-background hover:bg-gray-50/70",
81
- l.variant === "outline" || l.variant === "floating" ? "border-input" : "border-transparent bg-muted",
82
- c.value ? "border-primary/20" : ""
83
- ].join(" "));
84
- return r(() => l.size === "sm" ? "xs" : "sm"), (e, t) => (s(), f(v(U), {
85
- isOpen: c.value,
86
- "onUpdate:isOpen": t[3] || (t[3] = (a) => c.value = a),
84
+ }, F = s(() => {
85
+ const e = t.rounded === "none" ? "rounded-none" : `rounded-${t.rounded}`, a = t.variant === "transparent" ? "px-2 py-0" : "px-3 py-1.5", n = t.variant === "transparent" ? "h-full min-h-[40px]" : "min-h-[40px]";
86
+ return [
87
+ `flex items-center justify-between w-full ${a} ${n} ${e} border text-sm transition-colors cursor-pointer`,
88
+ t.disabled ? "opacity-50 cursor-not-allowed bg-muted" : t.variant === "floating" || t.variant === "transparent" ? "bg-transparent text-foreground" : "bg-background hover:bg-gray-50/70",
89
+ t.variant === "outline" || t.variant === "floating" ? "border-input" : t.variant === "transparent" ? "border-transparent" : "border-transparent bg-muted",
90
+ m.value && t.variant !== "transparent" ? "border-primary/20" : ""
91
+ ].join(" ");
92
+ }), z = s(() => t.size === "sm" ? "xs" : "sm");
93
+ return (e, a) => (o(), v(h(q), {
94
+ isOpen: m.value,
95
+ "onUpdate:isOpen": a[3] || (a[3] = (n) => m.value = n),
87
96
  "close-on-select": !1,
88
97
  selectable: !0,
89
- disabled: n.disabled
98
+ disabled: l.disabled
90
99
  }, {
91
- trigger: p(({ isOpen: a }) => [
92
- d("div", {
93
- class: M(A.value)
100
+ trigger: p(({ isOpen: n }) => [
101
+ g("div", {
102
+ class: u(F.value)
94
103
  }, [
95
- d("div", J, [
96
- m.value.length === 0 ? (s(), h("span", K, w(N.value), 1)) : (s(), h(I, { key: 1 }, [
97
- (s(!0), h(I, null, P(E.value, (o) => (s(), f(z, {
98
- key: o.value,
99
- variant: "secondary",
100
- class: "gap-1 pr-1 truncate max-w-[150px]"
104
+ g("div", {
105
+ class: u(["flex gap-1.5 items-center flex-1 min-w-0", [l.wrap ? "flex-wrap py-0.5" : "flex-nowrap overflow-hidden py-1"]])
106
+ }, [
107
+ f.value.length === 0 ? (o(), c("span", K, S(j.value), 1)) : (o(), c(I, { key: 1 }, [
108
+ (o(!0), c(I, null, R(E.value, (r) => (o(), v(L, {
109
+ key: r.value,
110
+ variant: l.variant === "transparent" ? "outline" : "secondary",
111
+ size: z.value,
112
+ rounded: l.rounded === "none" ? "sm" : "full",
113
+ class: u(["gap-1 pr-1 truncate min-w-0 shrink", [
114
+ l.wrap ? "max-w-[150px]" : "",
115
+ l.variant === "transparent" ? "border-transparent bg-muted/50 text-foreground font-medium shadow-none" : ""
116
+ ]])
101
117
  }, {
102
118
  default: p(() => [
103
- d("span", Q, w(o.labelI18n ? v(O)(o.labelI18n) : o.label), 1),
104
- n.disabled ? S("", !0) : (s(), h("button", {
119
+ g("span", Q, S(r.labelI18n ? h(O)(r.labelI18n) : r.label), 1),
120
+ l.disabled ? b("", !0) : (o(), c("button", {
105
121
  key: 0,
106
122
  type: "button",
107
- onClick: T((Y) => D(o.value), ["stop"]),
108
- class: "hover:bg-destructive/10 hover:text-destructive rounded-full p-0.5 transition-colors"
123
+ onClick: T((Y) => H(r.value), ["stop"]),
124
+ class: u(["rounded transition-colors shrink-0 flex items-center justify-center p-px", l.variant === "transparent" ? "text-muted-foreground hover:bg-black/10 hover:text-foreground" : "hover:bg-destructive/10 hover:text-destructive p-0.5 rounded-full"])
109
125
  }, [
110
- V(k, {
126
+ k(C, {
111
127
  icon: "lucide:x",
112
128
  class: "w-3 h-3"
113
129
  })
114
- ], 8, W))
130
+ ], 10, W))
115
131
  ]),
116
132
  _: 2
117
- }, 1024))), 128)),
118
- C.value > 0 ? (s(), f(z, {
133
+ }, 1032, ["variant", "size", "rounded", "class"]))), 128)),
134
+ B.value > 0 ? (o(), v(L, {
119
135
  key: 0,
120
- variant: "secondary",
121
- class: "font-normal text-muted-foreground"
136
+ variant: l.variant === "transparent" ? "outline" : "secondary",
137
+ size: z.value,
138
+ rounded: l.rounded === "none" ? "sm" : "full",
139
+ class: u(["shrink-0", l.variant === "transparent" ? "border-transparent bg-muted/50 text-muted-foreground font-medium shadow-none" : ""])
122
140
  }, {
123
141
  default: p(() => [
124
- R(" +" + w(C.value), 1)
142
+ U(" +" + S(B.value), 1)
125
143
  ]),
126
144
  _: 1
127
- })) : S("", !0)
145
+ }, 8, ["variant", "size", "rounded", "class"])) : b("", !0)
128
146
  ], 64))
129
- ]),
130
- d("div", X, [
131
- m.value.length > 0 && !n.disabled ? (s(), f(k, {
147
+ ], 2),
148
+ l.showControls ? (o(), c("div", X, [
149
+ f.value.length > 0 && !l.disabled ? (o(), v(C, {
132
150
  key: 0,
133
151
  icon: "lucide:x",
134
152
  class: "w-4 h-4 hover:text-foreground transition-colors",
135
- onClick: T(H, ["stop"])
136
- })) : S("", !0),
137
- t[4] || (t[4] = d("div", { class: "w-px h-4 bg-border mx-0.5" }, null, -1)),
138
- V(k, {
153
+ onClick: T(A, ["stop"])
154
+ })) : b("", !0),
155
+ a[4] || (a[4] = g("div", { class: "w-px h-4 bg-border mx-0.5" }, null, -1)),
156
+ k(C, {
139
157
  icon: "lucide:chevron-down",
140
- class: M(["w-4 h-4 transition-transform duration-200", { "rotate-180": a }])
158
+ class: u(["w-4 h-4 transition-transform duration-200", { "rotate-180": n }])
141
159
  }, null, 8, ["class"])
142
- ])
160
+ ])) : b("", !0)
143
161
  ], 2)
144
162
  ]),
145
163
  default: p(() => [
146
- V(v(q), {
147
- options: b.value,
148
- cachedOptions: y.value,
149
- selected: n.modelValue,
164
+ k(h(G), {
165
+ options: y.value,
166
+ cachedOptions: w.value,
167
+ selected: l.modelValue,
150
168
  class: "min-w-[300px]",
151
- loading: n.loading || v(u).isHydrating.value,
152
- hasMore: n.hasMore,
153
- searchable: n.searchable,
154
- remote: n.remote,
155
- debounceTime: n.debounceTime,
156
- layout: n.layout,
157
- onSelect: j,
158
- onClose: t[0] || (t[0] = (a) => c.value = !1),
159
- onLoadMore: t[1] || (t[1] = (a) => e.$emit("load-more")),
160
- onSearch: t[2] || (t[2] = (a) => e.$emit("search", a))
169
+ loading: l.loading || h(d).isHydrating.value,
170
+ hasMore: l.hasMore,
171
+ searchable: l.searchable,
172
+ remote: l.remote,
173
+ debounceTime: l.debounceTime,
174
+ layout: l.layout,
175
+ onSelect: D,
176
+ onClose: a[0] || (a[0] = (n) => m.value = !1),
177
+ onLoadMore: a[1] || (a[1] = (n) => e.$emit("load-more")),
178
+ onSearch: a[2] || (a[2] = (n) => e.$emit("search", n))
161
179
  }, null, 8, ["options", "cachedOptions", "selected", "loading", "hasMore", "searchable", "remote", "debounceTime", "layout"])
162
180
  ]),
163
181
  _: 1
@@ -165,5 +183,5 @@ const J = { class: "flex flex-wrap gap-1.5 items-center flex-1 min-w-0 py-0.5" }
165
183
  }
166
184
  });
167
185
  export {
168
- oe as default
186
+ re as default
169
187
  };
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.7.12",
6
+ "version": "0.7.13",
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-66452678]::-webkit-outer-spin-button,input[data-v-66452678]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-66452678]{-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-d2085008]{animation:blink-animation-d2085008 1s infinite}@keyframes blink-animation-d2085008{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-a86554e2]{display:flex;flex-direction:column}.form-field-item[data-v-a86554e2]:has([role=switch]),.form-field-item[data-v-a86554e2]:has([role=checkbox]){flex-direction:row;align-items:center;justify-content:flex-start}.form-container[data-v-1a2b21d0]{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-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-12cf2491]{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0;gap:.45em}.breadcrumb--sm[data-v-12cf2491]{font-size:var(--text--fs-2)}.breadcrumb--md[data-v-12cf2491]{font-size:var(--text-fs-0.5, 1em)}.breadcrumb--lg[data-v-12cf2491]{font-size:var(--text-fs-2)}.breadcrumb-separator[data-v-12cf2491]{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-12cf2491]{display:inline-flex;align-items:center}.breadcrumb-ellipsis-btn[data-v-12cf2491]{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-12cf2491]:hover{background:var(--color-accent);color:var(--color-foreground);border-color:var(--color-gray-350)}.breadcrumb--contained[data-v-12cf2491]{background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.45em 1em}.breadcrumb--pills[data-v-12cf2491] .breadcrumb-link{padding:.2em .7em;border-radius:9999px;background:var(--color-secondary);border:1px solid var(--color-border)}.breadcrumb--pills[data-v-12cf2491] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent);border-color:var(--color-gray-350)}.breadcrumb--pills[data-v-12cf2491] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.breadcrumb--arrow .breadcrumb-list[data-v-12cf2491]{gap:0}.breadcrumb--arrow[data-v-12cf2491] .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-12cf2491] .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-12cf2491] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent)}.breadcrumb--arrow[data-v-12cf2491] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground)}.breadcrumb--arrow .breadcrumb-separator[data-v-12cf2491]{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-09b401c2]{max-height:70vh}.permission-matrix-wrapper[data-v-09b401c2]::-webkit-scrollbar{width:6px;height:6px}.permission-matrix-wrapper[data-v-09b401c2]::-webkit-scrollbar-track{background:transparent}.permission-matrix-wrapper[data-v-09b401c2]::-webkit-scrollbar-thumb{background:var(--color-gray-350);border-radius:3px}.permission-matrix-wrapper[data-v-09b401c2]::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}.permission-list-wrapper[data-v-fc14e574]{border:1px solid var(--color-border);border-radius:.5rem;overflow:hidden;background-color:var(--color-background)}.custom-list-header[data-v-fc14e574]{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-fc14e574]{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-fc14e574]:hover{background-color:var(--color-accent)}.custom-list-group-content .custom-list-item[data-v-fc14e574]:last-child{border-bottom:none}.custom-list-group-content+.custom-list-header[data-v-fc14e574],.custom-list-header+.custom-list-header[data-v-fc14e574]{border-top:1px solid var(--color-border)}.permission-list-wrapper>.custom-list-header[data-v-fc14e574]:last-child{border-bottom:none}.permission-matrix-wrapper[data-v-e9fed8ed]{border:1px solid var(--color-border);background-color:var(--color-gray-100);border-radius:.5rem;overflow:auto}.custom-table[data-v-e9fed8ed]{width:100%;border-collapse:collapse}.custom-th[data-v-e9fed8ed]{background-color:var(--color-gray-150);color:var(--color-foreground);border-bottom:1px solid var(--color-border);border-left:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px);text-align:left;font-weight:600;min-width:200px}.custom-th.text-center[data-v-e9fed8ed]{text-align:center;min-width:100px}.custom-th[data-v-e9fed8ed]:first-child{border-left:none}.custom-td[data-v-e9fed8ed]{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-e9fed8ed]{text-align:center}.custom-td[data-v-e9fed8ed]:first-child{border-left:none}.custom-group-row td[data-v-e9fed8ed]{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-e9fed8ed]{background-color:var(--color-background);transition:background-color .1s ease}.custom-entity-row[data-v-e9fed8ed]:hover{background-color:var(--color-gray-50)}.custom-entity-row:last-child td[data-v-e9fed8ed]{border-bottom:none}.custom-active-cell[data-v-e9fed8ed]{cursor:pointer}.custom-active-cell[data-v-e9fed8ed]: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}.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-66452678]::-webkit-outer-spin-button,input[data-v-66452678]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-66452678]{-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-d2085008]{animation:blink-animation-d2085008 1s infinite}@keyframes blink-animation-d2085008{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-112b16b5] .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-112b16b5] input,.custom-fields-table[data-v-112b16b5] textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-112b16b5] input,.custom-fields-table[data-v-112b16b5] textarea,.custom-fields-table[data-v-112b16b5] select,.custom-fields-table[data-v-112b16b5] .input-wrapper,.custom-fields-table[data-v-112b16b5] .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-112b16b5] .tooltip-trigger button{justify-content:space-between!important}.custom-fields-table[data-v-112b16b5] input:focus,.custom-fields-table[data-v-112b16b5] textarea:focus,.custom-fields-table[data-v-112b16b5] select:focus,.custom-fields-table[data-v-112b16b5] .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-112b16b5] .w-full{width:100%;height:100%}.list-enter-active[data-v-112b16b5]{transition:all .15s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-112b16b5]{opacity:0;transform:translateY(-5px)}.form-field-item[data-v-a86554e2]{display:flex;flex-direction:column}.form-field-item[data-v-a86554e2]:has([role=switch]),.form-field-item[data-v-a86554e2]:has([role=checkbox]){flex-direction:row;align-items:center;justify-content:flex-start}.form-container[data-v-1a2b21d0]{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-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-12cf2491]{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0;gap:.45em}.breadcrumb--sm[data-v-12cf2491]{font-size:var(--text--fs-2)}.breadcrumb--md[data-v-12cf2491]{font-size:var(--text-fs-0.5, 1em)}.breadcrumb--lg[data-v-12cf2491]{font-size:var(--text-fs-2)}.breadcrumb-separator[data-v-12cf2491]{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-12cf2491]{display:inline-flex;align-items:center}.breadcrumb-ellipsis-btn[data-v-12cf2491]{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-12cf2491]:hover{background:var(--color-accent);color:var(--color-foreground);border-color:var(--color-gray-350)}.breadcrumb--contained[data-v-12cf2491]{background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.45em 1em}.breadcrumb--pills[data-v-12cf2491] .breadcrumb-link{padding:.2em .7em;border-radius:9999px;background:var(--color-secondary);border:1px solid var(--color-border)}.breadcrumb--pills[data-v-12cf2491] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent);border-color:var(--color-gray-350)}.breadcrumb--pills[data-v-12cf2491] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.breadcrumb--arrow .breadcrumb-list[data-v-12cf2491]{gap:0}.breadcrumb--arrow[data-v-12cf2491] .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-12cf2491] .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-12cf2491] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent)}.breadcrumb--arrow[data-v-12cf2491] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground)}.breadcrumb--arrow .breadcrumb-separator[data-v-12cf2491]{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-09b401c2]{max-height:70vh}.permission-matrix-wrapper[data-v-09b401c2]::-webkit-scrollbar{width:6px;height:6px}.permission-matrix-wrapper[data-v-09b401c2]::-webkit-scrollbar-track{background:transparent}.permission-matrix-wrapper[data-v-09b401c2]::-webkit-scrollbar-thumb{background:var(--color-gray-350);border-radius:3px}.permission-matrix-wrapper[data-v-09b401c2]::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}.permission-list-wrapper[data-v-fc14e574]{border:1px solid var(--color-border);border-radius:.5rem;overflow:hidden;background-color:var(--color-background)}.custom-list-header[data-v-fc14e574]{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-fc14e574]{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-fc14e574]:hover{background-color:var(--color-accent)}.custom-list-group-content .custom-list-item[data-v-fc14e574]:last-child{border-bottom:none}.custom-list-group-content+.custom-list-header[data-v-fc14e574],.custom-list-header+.custom-list-header[data-v-fc14e574]{border-top:1px solid var(--color-border)}.permission-list-wrapper>.custom-list-header[data-v-fc14e574]:last-child{border-bottom:none}.permission-matrix-wrapper[data-v-e9fed8ed]{border:1px solid var(--color-border);background-color:var(--color-gray-100);border-radius:.5rem;overflow:auto}.custom-table[data-v-e9fed8ed]{width:100%;border-collapse:collapse}.custom-th[data-v-e9fed8ed]{background-color:var(--color-gray-150);color:var(--color-foreground);border-bottom:1px solid var(--color-border);border-left:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px);text-align:left;font-weight:600;min-width:200px}.custom-th.text-center[data-v-e9fed8ed]{text-align:center;min-width:100px}.custom-th[data-v-e9fed8ed]:first-child{border-left:none}.custom-td[data-v-e9fed8ed]{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-e9fed8ed]{text-align:center}.custom-td[data-v-e9fed8ed]:first-child{border-left:none}.custom-group-row td[data-v-e9fed8ed]{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-e9fed8ed]{background-color:var(--color-background);transition:background-color .1s ease}.custom-entity-row[data-v-e9fed8ed]:hover{background-color:var(--color-gray-50)}.custom-entity-row:last-child td[data-v-e9fed8ed]{border-bottom:none}.custom-active-cell[data-v-e9fed8ed]{cursor:pointer}.custom-active-cell[data-v-e9fed8ed]: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}.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