vlite3 0.2.12 → 0.2.14

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.
@@ -31,9 +31,9 @@ const y = ["src", "alt"], z = { key: 0 }, A = /* @__PURE__ */ k({
31
31
  xs: "h-6 w-6 text-[10px]",
32
32
  sm: "h-8 w-8 text-xs",
33
33
  md: "h-10 w-10 text-sm",
34
- lg: "h-14 w-14 text-base",
35
- xl: "h-20 w-20 text-lg",
36
- "2xl": "h-22 w-22 text-xl"
34
+ lg: "h-12 w-12 text-base",
35
+ xl: "h-15 w-15 text-lg",
36
+ "2xl": "h-21 w-21 text-xl"
37
37
  }, h = {
38
38
  none: "rounded-none",
39
39
  sm: "rounded-sm",
@@ -1,7 +1,10 @@
1
- import { defineComponent as v, useSlots as x, computed as c, withDirectives as w, openBlock as i, createElementBlock as y, normalizeClass as o, createBlock as l, createCommentVNode as u, renderSlot as p, createTextVNode as z, toDisplayString as k, unref as B } from "vue";
2
- import d from "./Icon.vue.js";
1
+ import { defineComponent as x, useSlots as w, computed as l, withDirectives as y, openBlock as i, createElementBlock as g, normalizeClass as r, createBlock as c, createCommentVNode as d, renderSlot as p, createTextVNode as k, toDisplayString as z, unref as B } from "vue";
2
+ import u from "./Icon.vue.js";
3
3
  import { vRipple as C } from "../directives/vRipple.js";
4
- const S = ["type", "disabled"], D = /* @__PURE__ */ v({
4
+ const S = ["type", "disabled"], R = {
5
+ key: 2,
6
+ class: "-text-fs-1.5!"
7
+ }, D = /* @__PURE__ */ x({
5
8
  __name: "Button",
6
9
  props: {
7
10
  variant: { default: "primary" },
@@ -16,8 +19,8 @@ const S = ["type", "disabled"], D = /* @__PURE__ */ v({
16
19
  rounded: { default: "md" }
17
20
  },
18
21
  setup(e) {
19
- const t = e, g = x(), s = c(() => t.icon && !t.text && !g.default), h = c(() => {
20
- 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 = {
22
+ const t = e, h = w(), s = l(() => t.icon && !t.text && !h.default), f = l(() => {
23
+ const n = "inline-flex items-center justify-center whitespace-nowrap -text-fs-0.5 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", o = {
21
24
  primary: "bg-primary text-primary-foreground hover:bg-primary/90",
22
25
  "primary-light": "bg-primary-light text-primary-fg-light hover:bg-primary/20",
23
26
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
@@ -37,7 +40,7 @@ const S = ["type", "disabled"], D = /* @__PURE__ */ v({
37
40
  "outline-success": "border border-success text-success hover:bg-success/10",
38
41
  ghost: "hover:bg-accent hover:text-accent-foreground text-foreground",
39
42
  link: "text-primary underline-offset-4 hover:underline"
40
- }, f = {
43
+ }, b = {
41
44
  xs: "h-6.5 px-2",
42
45
  sm: "h-7.5 px-3",
43
46
  md: "h-9 px-4 py-2",
@@ -49,7 +52,7 @@ const S = ["type", "disabled"], D = /* @__PURE__ */ v({
49
52
  md: "h-7.5 w-7.5 min-h-7.5 min-w-7.5",
50
53
  lg: "h-8 w-8 min-h-8 min-w-8",
51
54
  xl: "h-8.5 w-8.5 min-h-8.5 min-w-8.5"
52
- }, b = {
55
+ }, v = {
53
56
  none: "rounded-none",
54
57
  sm: "rounded-sm",
55
58
  md: "rounded",
@@ -60,52 +63,51 @@ const S = ["type", "disabled"], D = /* @__PURE__ */ v({
60
63
  };
61
64
  return [
62
65
  n,
63
- r[t.variant],
64
- b[t.rounded],
65
- s.value ? m[t.size] : f[t.size],
66
+ o[t.variant],
67
+ v[t.rounded],
68
+ s.value ? m[t.size] : b[t.size],
66
69
  t.class
67
70
  ].join(" ");
68
- }), a = c(() => {
71
+ }), a = l(() => {
69
72
  const n = {
70
73
  xs: "w-3 h-3",
71
74
  sm: "w-4 h-4",
72
75
  md: "w-4 h-4",
73
76
  lg: "w-4 h-4",
74
77
  xl: "w-4 h-4"
75
- }, r = {
78
+ }, o = {
76
79
  xs: "w-3 h-3",
77
80
  sm: "w-3.5 h-3.5",
78
81
  md: "w-3.5 h-3.5",
79
82
  lg: "w-4 h-4",
80
83
  xl: "w-4 h-4"
81
84
  };
82
- return s.value ? r[t.size] : n[t.size];
85
+ return s.value ? o[t.size] : n[t.size];
83
86
  });
84
- return (n, r) => w((i(), y("button", {
87
+ return (n, o) => y((i(), g("button", {
85
88
  type: e.type,
86
- class: o(h.value),
89
+ class: r(f.value),
87
90
  disabled: e.disabled || e.loading
88
91
  }, [
89
- e.loading ? (i(), l(d, {
92
+ e.loading ? (i(), c(u, {
90
93
  key: 0,
91
94
  icon: "lucide:loader-2",
92
- class: o(["animate-spin", { [a.value]: !0 }])
93
- }, null, 8, ["class"])) : e.icon ? (i(), l(d, {
95
+ class: r(["animate-spin pointer-events-none", a.value])
96
+ }, null, 8, ["class"])) : e.icon ? (i(), c(u, {
94
97
  key: 1,
95
98
  icon: e.icon,
96
- class: o({
97
- "mx-auto": s.value,
98
- [a.value]: !0
99
- })
100
- }, null, 8, ["icon", "class"])) : u("", !0),
101
- p(n.$slots, "default", {}, () => [
102
- z(k(e.text), 1)
103
- ]),
104
- e.iconRight && !e.loading ? (i(), l(d, {
105
- key: 2,
99
+ class: r(["pointer-events-none", [a.value, s.value ? "mx-auto" : ""]])
100
+ }, null, 8, ["icon", "class"])) : d("", !0),
101
+ n.$slots?.default || e.text ? (i(), g("span", R, [
102
+ p(n.$slots, "default", {}, () => [
103
+ k(z(e.text), 1)
104
+ ])
105
+ ])) : d("", !0),
106
+ e.iconRight && !e.loading ? (i(), c(u, {
107
+ key: 3,
106
108
  icon: e.iconRight,
107
- class: o([a.value, "h-4 w-4"])
108
- }, null, 8, ["icon", "class"])) : u("", !0)
109
+ class: r([a.value, "h-4 w-4 pointer-events-none"])
110
+ }, null, 8, ["icon", "class"])) : d("", !0)
109
111
  ], 10, S)), [
110
112
  [B(C)]
111
113
  ]);
@@ -1,4 +1,4 @@
1
- import { defineComponent as ee, ref as g, computed as b, watch as p, onMounted as te, openBlock as n, createElementBlock as i, createVNode as C, createSlots as j, withCtx as T, renderSlot as S, createBlock as D, createCommentVNode as I, createElementVNode as r, normalizeClass as B, Fragment as R, renderList as $, normalizeStyle as A, mergeProps as le, toDisplayString as M, createTextVNode as ae, unref as se } from "vue";
1
+ import { defineComponent as ee, ref as v, computed as b, watch as p, onMounted as te, openBlock as n, createElementBlock as i, createVNode as C, createSlots as j, withCtx as B, renderSlot as S, createBlock as D, createCommentVNode as I, createElementVNode as r, normalizeClass as R, Fragment as F, renderList as $, normalizeStyle as A, mergeProps as le, toDisplayString as M, createTextVNode as ae, unref as se } from "vue";
2
2
  import oe from "../Icon.vue.js";
3
3
  import ne from "../CheckBox.vue.js";
4
4
  import re from "../Button.vue.js";
@@ -7,12 +7,12 @@ import de from "../Pagination/Pagination.vue.js";
7
7
  import ue from "./DataTableHeader.vue.js";
8
8
  import ce from "./DataTableRow.vue.js";
9
9
  import me from "./DataTableToolbar.vue.js";
10
- const fe = { class: "space-y-4" }, he = { class: "overflow-x-auto w-full" }, ve = { class: "hover:bg-transparent" }, ge = {
10
+ const fe = { class: "space-y-4" }, he = { class: "overflow-x-auto w-full" }, ge = { class: "hover:bg-transparent" }, ve = {
11
11
  key: 0,
12
12
  scope: "col",
13
13
  class: "w-[48px] px-0 text-center font-medium text-muted-foreground",
14
14
  style: { width: "48px" }
15
- }, pe = { class: "flex items-center justify-center" }, we = { class: "[&_tr:last-child]:border-0" }, ye = {
15
+ }, pe = { class: "flex items-center justify-center" }, ye = { class: "[&_tr:last-child]:border-0" }, we = {
16
16
  key: 0,
17
17
  class: "w-[48px] px-0 py-4 align-middle text-center",
18
18
  style: { width: "48px" }
@@ -54,22 +54,22 @@ const fe = { class: "space-y-4" }, he = { class: "overflow-x-auto w-full" }, ve
54
54
  const O = (e, t) => {
55
55
  if (!(!e || !t))
56
56
  return t.includes(".") ? t.split(".").reduce((s, c) => s?.[c], e) : e[t];
57
- }, u = (e, t) => O(e, t), l = a, w = U, d = g({ field: "", order: "" }), k = g(l.itemsPerPage), h = g(l.pageInfo?.currentPage || 1), y = g(l.search || ""), P = g(!1), v = g("initial"), L = b(() => l.loading && (v.value === "initial" || v.value === "page"));
57
+ }, u = (e, t) => O(e, t), l = a, y = U, d = v({ field: "", order: "" }), k = v(l.itemsPerPage), h = v(l.pageInfo?.currentPage || 1), w = v(l.search || ""), P = v(!1), g = v("initial"), L = b(() => l.loading && (g.value === "initial" || g.value === "page"));
58
58
  p(
59
59
  () => l.loading,
60
60
  (e, t) => {
61
- !e && t && (v.value = "idle");
61
+ !e && t && (g.value = "idle");
62
62
  }
63
63
  ), p(
64
64
  () => l.search,
65
65
  (e) => {
66
- e !== void 0 && e !== y.value && (y.value = e);
66
+ e !== void 0 && e !== w.value && (w.value = e);
67
67
  }
68
68
  );
69
- let F = null;
70
- p(y, (e) => {
71
- F && clearTimeout(F), F = setTimeout(() => {
72
- h.value = 1, v.value = "search", x();
69
+ let z = null;
70
+ p(w, (e) => {
71
+ z && clearTimeout(z), z = setTimeout(() => {
72
+ h.value = 1, g.value = "search", x();
73
73
  }, 300);
74
74
  }), p(
75
75
  () => l.itemsPerPage,
@@ -82,7 +82,7 @@ const fe = { class: "space-y-4" }, he = { class: "overflow-x-auto w-full" }, ve
82
82
  e && (h.value = e);
83
83
  }
84
84
  );
85
- const E = (e) => u(e, l.keyField), o = g(/* @__PURE__ */ new Set());
85
+ const E = (e) => u(e, l.keyField), o = v(/* @__PURE__ */ new Set());
86
86
  p(
87
87
  () => l.selectedRows,
88
88
  (e) => {
@@ -91,7 +91,7 @@ const fe = { class: "space-y-4" }, he = { class: "overflow-x-auto w-full" }, ve
91
91
  },
92
92
  { immediate: !0, deep: !0 }
93
93
  );
94
- const z = b(() => l.rows.length === 0 ? !1 : l.rows.every((e) => o.value.has(u(e, l.keyField)))), N = b(() => o.value.size > 0 && !z.value), W = b(() => {
94
+ const T = b(() => l.rows.length === 0 ? !1 : l.rows.every((e) => o.value.has(u(e, l.keyField)))), N = b(() => o.value.size > 0 && !T.value), W = b(() => {
95
95
  const e = [...l.selectedRows || [], ...l.rows], t = /* @__PURE__ */ new Map();
96
96
  return e.forEach((s) => t.set(u(s, l.keyField), s)), Array.from(o.value).map((s) => t.get(s)).filter(Boolean);
97
97
  }), q = (e) => {
@@ -109,29 +109,29 @@ const fe = { class: "space-y-4" }, he = { class: "overflow-x-auto w-full" }, ve
109
109
  });
110
110
  const c = {
111
111
  selected: s,
112
- all: z.value,
112
+ all: T.value,
113
113
  indeterminate: N.value
114
114
  };
115
- w("select", c), w("update:selectedRows", s);
115
+ y("select", c), y("update:selectedRows", s);
116
116
  }, H = (e) => {
117
- d.value.field === e ? d.value.order === "asc" ? d.value.order = "desc" : d.value.order === "desc" ? (d.value.order = "", d.value.field = "") : d.value.order = "asc" : (d.value.field = e, d.value.order = "asc"), h.value = 1, v.value = "sort", x();
117
+ d.value.field === e ? d.value.order === "asc" ? d.value.order = "desc" : d.value.order === "desc" ? (d.value.order = "", d.value.field = "") : d.value.order = "asc" : (d.value.field = e, d.value.order = "asc"), h.value = 1, g.value = "sort", x();
118
118
  }, J = (e) => {
119
- h.value = e, v.value = "page", x();
119
+ h.value = e, g.value = "page", x();
120
120
  }, K = (e) => {
121
- k.value = e, h.value = 1, v.value = "limit", w("update:itemsPerPage", e), x();
121
+ k.value = e, h.value = 1, g.value = "limit", y("update:itemsPerPage", e), x();
122
122
  }, Q = (e) => {
123
- w("rowClick", e);
123
+ y("rowClick", e);
124
124
  }, X = () => {
125
125
  const e = W.value;
126
- w("delete", e), P.value = !1;
126
+ y("delete", e), P.value = !1;
127
127
  }, x = () => {
128
- w("change", {
128
+ y("change", {
129
129
  pagination: {
130
130
  page: h.value,
131
131
  limit: k.value
132
132
  },
133
133
  sorting: { ...d.value },
134
- search: y.value
134
+ search: w.value
135
135
  });
136
136
  }, Y = b(() => [
137
137
  "w-full flex flex-col",
@@ -139,7 +139,7 @@ const fe = { class: "space-y-4" }, he = { class: "overflow-x-auto w-full" }, ve
139
139
  "overflow-hidden",
140
140
  l.bordered ? "border border-border/60" : "",
141
141
  l.class
142
- ].join(" ")), Z = b(() => ["w-full caption-bottom text-sm", l.tableClass].join(" ")), _ = (e) => e.width ? e.width : "auto";
142
+ ].join(" ")), Z = b(() => ["w-full caption-bottom", l.tableClass].join(" ")), _ = (e) => e.width ? e.width : "auto";
143
143
  return p(
144
144
  () => l.rows,
145
145
  () => {
@@ -150,59 +150,65 @@ const fe = { class: "space-y-4" }, he = { class: "overflow-x-auto w-full" }, ve
150
150
  x();
151
151
  }), (e, t) => (n(), i("div", fe, [
152
152
  C(me, {
153
- modelValue: y.value,
154
- "onUpdate:modelValue": t[1] || (t[1] = (s) => y.value = s),
153
+ modelValue: w.value,
154
+ "onUpdate:modelValue": t[1] || (t[1] = (s) => w.value = s),
155
155
  "show-search": a.showSearch,
156
156
  placeholder: a.searchPlaceholder
157
157
  }, j({ _: 2 }, [
158
158
  e.$slots?.["toolbar-left"] ? {
159
159
  name: "left",
160
- fn: T(() => [
160
+ fn: B(() => [
161
161
  S(e.$slots, "toolbar-left")
162
162
  ]),
163
163
  key: "0"
164
164
  } : void 0,
165
- e.$slots?.["toolbar-right"] || o.value.size > 0 ? {
166
- name: "right",
167
- fn: T(() => [
165
+ o.value.size > 0 ? {
166
+ name: "delete",
167
+ fn: B(() => [
168
168
  o.value.size > 0 ? (n(), D(re, {
169
169
  key: 0,
170
170
  rounded: "full",
171
- variant: "ghost",
171
+ variant: "outline",
172
+ size: "lg",
172
173
  icon: "lucide:trash-2",
173
- class: "text-destructive! bg-destructive/10 hover:bg-destructive/15",
174
174
  onClick: t[0] || (t[0] = (s) => P.value = !0)
175
- })) : I("", !0),
176
- S(e.$slots, "toolbar-right")
175
+ })) : I("", !0)
177
176
  ]),
178
177
  key: "1"
178
+ } : void 0,
179
+ e.$slots?.["toolbar-right"] ? {
180
+ name: "right",
181
+ fn: B(() => [
182
+ S(e.$slots, "toolbar-right")
183
+ ]),
184
+ key: "2"
179
185
  } : void 0
180
186
  ]), 1032, ["modelValue", "show-search", "placeholder"]),
181
187
  r("div", {
182
- class: B(Y.value)
188
+ class: R(Y.value)
183
189
  }, [
184
190
  r("div", he, [
185
191
  r("table", {
186
- class: B([Z.value, "data-table"])
192
+ class: R([Z.value, "data-table"])
187
193
  }, [
188
194
  r("thead", {
189
- class: B([
195
+ class: R([
190
196
  "[&_tr]:border-b [&_tr]:border-border/70! bg-muted",
191
197
  a.variant === "raised" ? "[&_th:first-child]:rounded-tl-lg [&_th:last-child]:rounded-tr-lg" : ""
192
198
  ])
193
199
  }, [
194
- r("tr", ve, [
195
- a.selectable ? (n(), i("th", ge, [
200
+ r("tr", ge, [
201
+ a.selectable ? (n(), i("th", ve, [
196
202
  r("div", pe, [
197
203
  C(ne, {
198
- "model-value": z.value,
204
+ "model-value": T.value,
199
205
  indeterminate: N.value,
200
206
  size: "xs",
201
207
  "onUpdate:modelValue": q
202
208
  }, null, 8, ["model-value", "indeterminate"])
203
209
  ])
204
210
  ])) : I("", !0),
205
- (n(!0), i(R, null, $(a.headers, (s) => (n(), D(ue, {
211
+ (n(!0), i(F, null, $(a.headers, (s) => (n(), D(ue, {
206
212
  key: s.field,
207
213
  header: s,
208
214
  "sort-config": d.value,
@@ -216,19 +222,19 @@ const fe = { class: "space-y-4" }, he = { class: "overflow-x-auto w-full" }, ve
216
222
  }, null, 8, ["header", "sort-config", "compact", "table-sortable", "style"]))), 128))
217
223
  ])
218
224
  ], 2),
219
- r("tbody", we, [
220
- L.value ? (n(!0), i(R, { key: 0 }, $(Math.min(k.value, 15), (s) => (n(), i("tr", {
225
+ r("tbody", ye, [
226
+ L.value ? (n(!0), i(F, { key: 0 }, $(Math.min(k.value, 15), (s) => (n(), i("tr", {
221
227
  key: "skeleton-" + s,
222
228
  class: "border-b border-border/50 bg-background transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"
223
229
  }, [
224
- a.selectable ? (n(), i("td", ye, [...t[4] || (t[4] = [
230
+ a.selectable ? (n(), i("td", we, [...t[4] || (t[4] = [
225
231
  r("div", { class: "flex items-center justify-center" }, [
226
232
  r("div", { class: "h-4 w-4 rounded-[4px] bg-muted/50 animate-pulse" })
227
233
  ], -1)
228
234
  ])])) : I("", !0),
229
- (n(!0), i(R, null, $(a.headers, (c) => (n(), i("td", {
235
+ (n(!0), i(F, null, $(a.headers, (c) => (n(), i("td", {
230
236
  key: c.field,
231
- class: B(["p-5! align-middle last:pr-6!", [c.hideOnMobile ? "hidden md:table-cell" : ""]])
237
+ class: R(["p-5! align-middle last:pr-6!", [c.hideOnMobile ? "hidden md:table-cell" : ""]])
232
238
  }, [
233
239
  r("div", {
234
240
  class: "rounded-md bg-muted/50 animate-pulse h-4 w-full",
@@ -237,7 +243,7 @@ const fe = { class: "space-y-4" }, he = { class: "overflow-x-auto w-full" }, ve
237
243
  })
238
244
  }, null, 4)
239
245
  ], 2))), 128))
240
- ]))), 128)) : a.rows.length > 0 ? (n(!0), i(R, { key: 1 }, $(a.rows, (s, c) => (n(), D(ce, {
246
+ ]))), 128)) : a.rows.length > 0 ? (n(!0), i(F, { key: 1 }, $(a.rows, (s, c) => (n(), D(ce, {
241
247
  key: E(s),
242
248
  row: s,
243
249
  headers: a.headers,
@@ -254,7 +260,7 @@ const fe = { class: "space-y-4" }, he = { class: "overflow-x-auto w-full" }, ve
254
260
  }, j({ _: 2 }, [
255
261
  $(a.headers, (m) => ({
256
262
  name: m.field,
257
- fn: T((f) => [
263
+ fn: B((f) => [
258
264
  S(e.$slots, m.field, le({ ref_for: !0 }, f))
259
265
  ])
260
266
  }))
@@ -64,7 +64,7 @@ const L = ["data-state"], U = { class: "flex items-center justify-center" }, h =
64
64
  };
65
65
  return (e, t) => (c(), d("tr", {
66
66
  class: u(["border-b border-border/70 transition-colors data-[state=selected]:bg-muted h-full", [
67
- i.hoverable ? "hover:bg-muted/50" : "",
67
+ i.hoverable ? "hover:bg-muted/20" : "",
68
68
  i.striped && i.index % 2 === 1 ? "bg-muted/20" : "bg-background",
69
69
  i.isSelected ? "bg-muted! hover:bg-muted/30" : "",
70
70
  "group"
@@ -74,7 +74,7 @@ const L = ["data-state"], U = { class: "flex items-center justify-center" }, h =
74
74
  }, [
75
75
  i.selectable ? (c(), d("td", {
76
76
  key: 0,
77
- class: "w-[48px] px-0 py-3 align-middle text-center",
77
+ class: "w-[48px] px-0 py-6! align-middle text-center",
78
78
  style: { width: "48px" },
79
79
  onClick: t[0] || (t[0] = v(() => {
80
80
  }, ["stop"]))
@@ -90,7 +90,7 @@ const L = ["data-state"], U = { class: "flex items-center justify-center" }, h =
90
90
  (c(!0), d(M, null, V(i.headers, (n) => (c(), d("td", {
91
91
  key: n.field,
92
92
  class: u(["align-middle overflow-hidden", [
93
- i.compact ? "p-2 text-xs" : "py-3! px-3 text-sm",
93
+ i.compact ? "p-2" : "py-3! px-3 -text-fs-1.5!",
94
94
  y(n),
95
95
  n.hideOnMobile ? "hidden md:table-cell" : "",
96
96
  x(n, o(i.row, n.field), i.row)
@@ -7,6 +7,7 @@ declare function __VLS_template(): {
7
7
  attrs: Partial<{}>;
8
8
  slots: {
9
9
  left?(_: {}): any;
10
+ delete?(_: {}): any;
10
11
  right?(_: {}): any;
11
12
  };
12
13
  refs: {};
@@ -1,12 +1,12 @@
1
- import { defineComponent as i, computed as p, openBlock as l, createElementBlock as o, renderSlot as r, createCommentVNode as c, createVNode as f, createElementVNode as h } from "vue";
1
+ import { defineComponent as p, computed as f, openBlock as l, createElementBlock as o, renderSlot as a, createCommentVNode as d, createElementVNode as c, createVNode as h } from "vue";
2
2
  import V from "../Input.vue.js";
3
- const g = { class: "flex flex-col sm:flex-row items-center gap-4 p-1" }, v = {
3
+ const v = { class: "flex flex-col sm:flex-row items-center gap-4 p-1" }, _ = {
4
4
  key: 0,
5
- class: "flex items-center gap-3"
6
- }, _ = {
5
+ class: "flex items-center gap-3 mr-auto"
6
+ }, g = { class: "ml-auto" }, w = {
7
7
  key: 1,
8
- class: "w-full sm:w-72! mr-auto!"
9
- }, w = { class: "ml-auto flex items-center gap-3" }, x = /* @__PURE__ */ i({
8
+ class: "w-full sm:w-72!"
9
+ }, b = { class: "flex items-center gap-3" }, S = /* @__PURE__ */ p({
10
10
  __name: "DataTableToolbar",
11
11
  props: {
12
12
  modelValue: { default: "" },
@@ -14,32 +14,35 @@ const g = { class: "flex flex-col sm:flex-row items-center gap-4 p-1" }, v = {
14
14
  placeholder: { default: "Search..." }
15
15
  },
16
16
  emits: ["update:modelValue"],
17
- setup(t, { emit: d }) {
18
- const n = t, u = d, a = p({
19
- get: () => n.modelValue,
20
- set: (e) => u("update:modelValue", e)
17
+ setup(t, { emit: n }) {
18
+ const u = t, m = n, s = f({
19
+ get: () => u.modelValue,
20
+ set: (e) => m("update:modelValue", e)
21
21
  });
22
- return (e, s) => (l(), o("div", g, [
23
- e.$slots?.left ? (l(), o("div", v, [
24
- r(e.$slots, "left")
25
- ])) : c("", !0),
26
- t.showSearch ? (l(), o("div", _, [
27
- f(V, {
28
- modelValue: a.value,
29
- "onUpdate:modelValue": s[0] || (s[0] = (m) => a.value = m),
22
+ return (e, r) => (l(), o("div", v, [
23
+ e.$slots?.left ? (l(), o("div", _, [
24
+ a(e.$slots, "left")
25
+ ])) : d("", !0),
26
+ c("div", g, [
27
+ a(e.$slots, "delete")
28
+ ]),
29
+ t.showSearch ? (l(), o("div", w, [
30
+ h(V, {
31
+ modelValue: s.value,
32
+ "onUpdate:modelValue": r[0] || (r[0] = (i) => s.value = i),
30
33
  placeholder: t.placeholder,
31
34
  icon: "lucide:search",
32
35
  variant: "outline",
33
36
  class: "bg-background",
34
37
  "show-clear-button": !0
35
38
  }, null, 8, ["modelValue", "placeholder"])
36
- ])) : c("", !0),
37
- h("div", w, [
38
- r(e.$slots, "right")
39
+ ])) : d("", !0),
40
+ c("div", b, [
41
+ a(e.$slots, "right")
39
42
  ])
40
43
  ]));
41
44
  }
42
45
  });
43
46
  export {
44
- x as default
47
+ S as default
45
48
  };
@@ -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 r = /* @__PURE__ */ t(o, [["__scopeId", "data-v-ed01b0e1"]]);
4
+ const r = /* @__PURE__ */ t(o, [["__scopeId", "data-v-ce6a94e8"]]);
5
5
  export {
6
6
  r as default
7
7
  };
@@ -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-67eb0c47"]]);
4
+ const _ = /* @__PURE__ */ r(o, [["__scopeId", "data-v-5766d177"]]);
5
5
  export {
6
6
  _ as default
7
7
  };
@@ -207,7 +207,7 @@ const ne = {
207
207
  class: h([
208
208
  "form-footer flex items-center justify-end gap-3",
209
209
  e.footerClass,
210
- $.value ? "sticky bottom-0 z-20 bg-body pt-4 border-t border-border/40 -mx-4 px-4 mt-4" : "mt-6"
210
+ $.value ? "sticky bottom-0 z-20 bg-body pt-4 border-t border-border/75 -mx-4 px-4 mt-4" : "mt-6"
211
211
  ])
212
212
  }, [
213
213
  G.value ? (l(), p(A, {
@@ -1,4 +1,4 @@
1
- import { defineComponent as N, computed as n, markRaw as P, openBlock as r, createBlock as u, mergeProps as f, toHandlers as R, createSlots as B, unref as C, withCtx as o, createVNode as L, createTextVNode as c, toDisplayString as m, createCommentVNode as $, resolveDynamicComponent as O } from "vue";
1
+ import { defineComponent as N, computed as n, markRaw as P, openBlock as r, createBlock as u, mergeProps as f, toHandlers as R, createSlots as B, unref as $, withCtx as o, createVNode as C, createTextVNode as c, toDisplayString as m, createCommentVNode as L, resolveDynamicComponent as O } from "vue";
2
2
  import { isComponent as h, isAddonObject as p } from "./utils/form.utils.js";
3
3
  import I from "../NumberInput.vue.js";
4
4
  import v from "../Button.vue.js";
@@ -97,7 +97,7 @@ const fe = /* @__PURE__ */ N({
97
97
  min: e.field.min,
98
98
  // kept for validation attributes if needed
99
99
  max: e.field.max,
100
- class: e.field.className
100
+ class: `${e.field.className}`
101
101
  } : t === "number" ? {
102
102
  ...a,
103
103
  modelValue: e.value ?? void 0,
@@ -227,7 +227,7 @@ const fe = /* @__PURE__ */ N({
227
227
  ...V.value,
228
228
  ...l.field?.props || {}
229
229
  }, R(b.value)), B({ _: 2 }, [
230
- C(p)(l.field.addonLeft) ? {
230
+ $(p)(l.field.addonLeft) ? {
231
231
  name: "addon-left",
232
232
  fn: o(() => [
233
233
  l.field.addonLeft.type === "select" ? (r(), u(y, f({
@@ -238,7 +238,7 @@ const fe = /* @__PURE__ */ N({
238
238
  onOnSelect: a[0] || (a[0] = (i) => k(l.field.addonLeft, i))
239
239
  }), {
240
240
  trigger: o(({ selectedLabel: i }) => [
241
- L(v, { variant: "outline" }, {
241
+ C(v, { variant: "outline" }, {
242
242
  default: o(() => [
243
243
  c(m(i), 1)
244
244
  ]),
@@ -256,11 +256,11 @@ const fe = /* @__PURE__ */ N({
256
256
  c(m(l.field.addonLeft.text), 1)
257
257
  ]),
258
258
  _: 1
259
- }, 16)) : $("", !0)
259
+ }, 16)) : L("", !0)
260
260
  ]),
261
261
  key: "0"
262
262
  } : void 0,
263
- C(p)(l.field.addonRight) ? {
263
+ $(p)(l.field.addonRight) ? {
264
264
  name: "addon-right",
265
265
  fn: o(() => [
266
266
  l.field.addonRight.type === "select" ? (r(), u(y, f({
@@ -271,7 +271,7 @@ const fe = /* @__PURE__ */ N({
271
271
  onOnSelect: a[2] || (a[2] = (i) => k(l.field.addonRight, i))
272
272
  }), {
273
273
  trigger: o(({ selectedLabel: i }) => [
274
- L(v, { variant: "outline" }, {
274
+ C(v, { variant: "outline" }, {
275
275
  default: o(() => [
276
276
  c(m(i), 1)
277
277
  ]),
@@ -289,7 +289,7 @@ const fe = /* @__PURE__ */ N({
289
289
  c(m(l.field.addonRight.text), 1)
290
290
  ]),
291
291
  _: 1
292
- }, 16)) : $("", !0)
292
+ }, 16)) : L("", !0)
293
293
  ]),
294
294
  key: "1"
295
295
  } : void 0
@@ -2,7 +2,7 @@ import { defineComponent as G, useSlots as J, ref as v, computed as r, onMounted
2
2
  import f from "./Icon.vue.js";
3
3
  import Q from "./Label.vue.js";
4
4
  import X from "./Textarea.vue.js";
5
- const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { class: "absolute right-3 top-1/2 -translate-y-1/2 flex items-center justify-center gap-2 z-20" }, le = /* @__PURE__ */ G({
5
+ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { class: "absolute right-3 top-1/2 -translate-y-1/2 flex items-center justify-center gap-2 z-20" }, te = /* @__PURE__ */ G({
6
6
  __name: "Input",
7
7
  props: {
8
8
  modelValue: { default: "" },
@@ -41,17 +41,17 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
41
41
  ].join(" ")), T = r(() => ["relative flex w-full items-stretch", e.labelPosition !== "top" ? "flex-1" : ""].join(
42
42
  " "
43
43
  )), j = r(() => {
44
- const t = "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/50 disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none relative focus:z-10", o = {
44
+ const o = "block w-full bg-background px-3 py-2 ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground/50 disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none relative focus:z-10", l = {
45
45
  solid: "bg-muted border-transparent focus-visible:border-primary",
46
46
  outline: "border border-input focus-visible:border-primary",
47
47
  "outline-b": "border-b border-input bg-transparent rounded-none focus-visible:border-primary",
48
48
  transparent: "border-none bg-transparent shadow-none"
49
49
  }, i = {
50
- sm: "h-7.5 text-xs",
51
- md: "h-9 text-sm",
52
- lg: "h-10 text-base"
50
+ sm: "h-7.5",
51
+ md: "h-9",
52
+ lg: "h-10"
53
53
  };
54
- let l = {
54
+ let t = {
55
55
  none: "rounded-none",
56
56
  sm: "rounded-sm",
57
57
  md: "rounded-md",
@@ -60,41 +60,41 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
60
60
  "2xl": "rounded-2xl",
61
61
  full: "rounded-full"
62
62
  }[e.rounded];
63
- g.value && (e.rounded === "md" ? l = "rounded-r-md rounded-l-none" : e.rounded === "sm" ? l = "rounded-r-sm rounded-l-none" : e.rounded === "lg" ? l = "rounded-r-lg rounded-l-none" : e.rounded === "full" ? l = "rounded-r-full rounded-l-none" : e.rounded !== "none" && (l = l.replace("rounded-", "rounded-r-").replace("rounded-l-", ""))), p.value && (g.value ? l = "rounded-none" : e.rounded === "md" ? l = "rounded-l-md rounded-r-none" : e.rounded === "sm" ? l = "rounded-l-sm rounded-r-none" : e.rounded === "lg" ? l = "rounded-l-lg rounded-r-none" : e.rounded === "full" ? l = "rounded-l-full rounded-r-none" : e.rounded !== "none" && (l = l.replace("rounded-", "rounded-l-").replace("rounded-r-", ""))), e.variant === "outline-b" && (l = "rounded-none");
63
+ g.value && (e.rounded === "md" ? t = "rounded-r-md rounded-l-none" : e.rounded === "sm" ? t = "rounded-r-sm rounded-l-none" : e.rounded === "lg" ? t = "rounded-r-lg rounded-l-none" : e.rounded === "full" ? t = "rounded-r-full rounded-l-none" : e.rounded !== "none" && (t = t.replace("rounded-", "rounded-r-").replace("rounded-l-", ""))), p.value && (g.value ? t = "rounded-none" : e.rounded === "md" ? t = "rounded-l-md rounded-r-none" : e.rounded === "sm" ? t = "rounded-l-sm rounded-r-none" : e.rounded === "lg" ? t = "rounded-l-lg rounded-r-none" : e.rounded === "full" ? t = "rounded-l-full rounded-r-none" : e.rounded !== "none" && (t = t.replace("rounded-", "rounded-l-").replace("rounded-r-", ""))), e.variant === "outline-b" && (t = "rounded-none");
64
64
  const P = e.variant === "outline-b" || e.variant === "transparent";
65
65
  return [
66
- t,
67
- o[e.variant],
66
+ o,
67
+ l[e.variant],
68
68
  i[e.size],
69
- l,
69
+ t,
70
70
  e.error ? "border-destructive focus-visible:ring-destructive" : "",
71
71
  e.icon ? "pl-9" : P && !g.value ? "pl-0" : "",
72
72
  e.showClearButton && B.value || e.type === "password" || e.loading || e.iconRight ? "pr-9" : P && !p.value ? "pr-0" : "",
73
73
  e.inputClass
74
74
  ].join(" ");
75
75
  }), R = {
76
- sm: "text-xs",
77
- md: "text-sm",
76
+ sm: "text-base",
77
+ md: "text-base",
78
78
  lg: "text-base"
79
- }, $ = (t) => {
80
- const o = t === "left";
79
+ }, $ = (o) => {
80
+ const l = o === "left";
81
81
  return [
82
82
  // Ensure height matches
83
83
  "[&_button]:w-full [&_a]:w-full! [&_.v-btn]:w-full! [&_.tooltip-trigger]:w-full",
84
84
  // Handle borders (Connect sides)
85
- o ? "[&_button]:rounded-r-none [&_a]:rounded-r-none [&_.v-btn]:rounded-r-none" : "[&_button]:rounded-l-none [&_a]:rounded-l-none [&_.v-btn]:rounded-l-none",
85
+ l ? "[&_button]:rounded-r-none [&_a]:rounded-r-none [&_.v-btn]:rounded-r-none" : "[&_button]:rounded-l-none [&_a]:rounded-l-none [&_.v-btn]:rounded-l-none",
86
86
  // Ensure focus ring appears on top
87
87
  "[&_button]:relative [&_button]:focus:z-20",
88
88
  // Merge borders (Negative margin to overlap single pixels)
89
- o ? "-mr-px" : "-ml-px",
89
+ l ? "-mr-px" : "-ml-px",
90
90
  "z-10"
91
91
  // Ensure addons sit visually above input border if needed
92
92
  ].join(" ");
93
93
  }, E = r(() => {
94
- const t = !!m["addon-left"];
94
+ const o = !!m["addon-left"];
95
95
  return [
96
96
  "flex items-center justify-center whitespace-nowrap",
97
- t ? `border-none ${$("left")}` : `bg-muted border border-input border-r-0! px-3 text-muted-foreground ${{
97
+ o ? `border-none ${$("left")}` : `bg-muted border border-input border-r-0! px-3 text-muted-foreground ${{
98
98
  sm: "rounded-l-sm",
99
99
  md: "rounded-l-md",
100
100
  lg: "rounded-l-lg",
@@ -103,15 +103,15 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
103
103
  xl: "rounded-l-xl",
104
104
  "2xl": "rounded-l-2xl"
105
105
  }[e.rounded] || "rounded-l-md"}`,
106
- t ? "" : R[e.size],
106
+ o ? "" : R[e.size],
107
107
  e.addonLeftClass,
108
108
  e.disabled ? "opacity-50 cursor-not-allowed" : ""
109
109
  ].join(" ");
110
110
  }), D = r(() => {
111
- const t = !!m["addon-right"];
111
+ const o = !!m["addon-right"];
112
112
  return [
113
113
  "flex items-center justify-center whitespace-nowrap",
114
- t ? `border-none ${$("right")}` : `bg-muted border border-input border-l-0! px-3 text-muted-foreground ${{
114
+ o ? `border-none ${$("right")}` : `bg-muted border border-input border-l-0! px-3 text-muted-foreground ${{
115
115
  sm: "rounded-r-sm",
116
116
  md: "rounded-r-md",
117
117
  lg: "rounded-r-lg",
@@ -120,33 +120,33 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
120
120
  xl: "rounded-r-xl",
121
121
  "2xl": "rounded-r-2xl"
122
122
  }[e.rounded] || "rounded-r-md"}`,
123
- t ? "" : R[e.size],
123
+ o ? "" : R[e.size],
124
124
  e.addonRightClass,
125
125
  e.disabled ? "opacity-50 cursor-not-allowed" : ""
126
126
  ].join(" ");
127
- }), H = (t) => {
127
+ }), H = (o) => {
128
128
  if (e.lazy) return;
129
- const o = t.target;
130
- u("update:modelValue", o.value);
131
- }, U = (t) => {
132
- const o = t.target;
133
- e.lazy && u("update:modelValue", o.value), u("change", o.value);
129
+ const l = o.target;
130
+ u("update:modelValue", l.value);
131
+ }, U = (o) => {
132
+ const l = o.target;
133
+ e.lazy && u("update:modelValue", l.value), u("change", l.value);
134
134
  }, W = () => {
135
135
  b.value = !b.value;
136
136
  }, q = () => {
137
137
  u("update:modelValue", ""), A(() => {
138
138
  y.value?.focus();
139
139
  });
140
- }, h = v(!1), w = v(!1), S = (t) => {
141
- h.value = !0, u("focus", t);
142
- }, L = (t) => {
143
- h.value = !1, u("blur", t);
140
+ }, h = v(!1), w = v(!1), S = (o) => {
141
+ h.value = !0, u("focus", o);
142
+ }, L = (o) => {
143
+ h.value = !1, u("blur", o);
144
144
  };
145
145
  return K(() => {
146
146
  e.autofocus && A(() => {
147
147
  y.value?.focus();
148
148
  });
149
- }), (t, o) => (d(), s("div", {
149
+ }), (o, l) => (d(), s("div", {
150
150
  class: a(N.value)
151
151
  }, [
152
152
  n.label ? (d(), C(Q, {
@@ -166,14 +166,14 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
166
166
  key: 0,
167
167
  class: a(E.value)
168
168
  }, [
169
- F(t.$slots, "addon-left", {}, () => [
169
+ F(o.$slots, "addon-left", {}, () => [
170
170
  k(V(n.addonLeft), 1)
171
171
  ])
172
172
  ], 2)) : c("", !0),
173
173
  z("div", {
174
174
  class: "relative w-full",
175
- onMouseenter: o[2] || (o[2] = (i) => w.value = !0),
176
- onMouseleave: o[3] || (o[3] = (i) => w.value = !1)
175
+ onMouseenter: l[2] || (l[2] = (i) => w.value = !0),
176
+ onMouseleave: l[3] || (l[3] = (i) => w.value = !1)
177
177
  }, [
178
178
  n.type === "textarea" ? (d(), C(X, {
179
179
  key: 0,
@@ -182,7 +182,7 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
182
182
  disabled: n.disabled,
183
183
  rows: n.rows,
184
184
  class: a(j.value),
185
- "onUpdate:modelValue": o[0] || (o[0] = (i) => u("update:modelValue", i)),
185
+ "onUpdate:modelValue": l[0] || (l[0] = (i) => u("update:modelValue", i)),
186
186
  onBlur: L,
187
187
  onFocus: S
188
188
  }, null, 8, ["model-value", "placeholder", "disabled", "rows", "class"])) : (d(), s("input", {
@@ -226,7 +226,7 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
226
226
  "flex items-center justify-center text-muted-foreground",
227
227
  n.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer hover:text-foreground"
228
228
  ]),
229
- onClick: o[1] || (o[1] = (i) => !n.disabled && u("click:icon-right", i))
229
+ onClick: l[1] || (l[1] = (i) => !n.disabled && u("click:icon-right", i))
230
230
  }, [
231
231
  x(f, {
232
232
  icon: n.iconRight,
@@ -263,7 +263,7 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
263
263
  key: 1,
264
264
  class: a(D.value)
265
265
  }, [
266
- F(t.$slots, "addon-right", {}, () => [
266
+ F(o.$slots, "addon-right", {}, () => [
267
267
  k(V(n.addonRight), 1)
268
268
  ])
269
269
  ], 2)) : c("", !0)
@@ -272,5 +272,5 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
272
272
  }
273
273
  });
274
274
  export {
275
- le as default
275
+ te as default
276
276
  };
@@ -1,16 +1,16 @@
1
- import { defineComponent as l, computed as r, openBlock as a, createElementBlock as n, normalizeClass as c, renderSlot as d } from "vue";
2
- const p = ["for"], m = /* @__PURE__ */ l({
1
+ import { defineComponent as r, computed as a, openBlock as l, createElementBlock as n, normalizeClass as c, renderSlot as d } from "vue";
2
+ const p = ["for"], u = /* @__PURE__ */ r({
3
3
  __name: "Label",
4
4
  props: {
5
5
  for: {},
6
6
  class: { default: "" }
7
7
  },
8
8
  setup(o) {
9
- const e = o, s = r(() => [
10
- "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
9
+ const e = o, s = a(() => [
10
+ "text-sm leading-none text-gray-800 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
11
11
  e.class
12
12
  ].join(" "));
13
- return (t, f) => (a(), n("label", {
13
+ return (t, f) => (l(), n("label", {
14
14
  for: e.for,
15
15
  class: c(s.value)
16
16
  }, [
@@ -19,5 +19,5 @@ const p = ["for"], m = /* @__PURE__ */ l({
19
19
  }
20
20
  });
21
21
  export {
22
- m as default
22
+ u as default
23
23
  };
@@ -6,7 +6,7 @@ const D = {
6
6
  class: "flex-none flex flex-col space-y-1.5 pb-0 border-b border-border/90"
7
7
  }, K = { class: "text-lg font-semibold leading-none tracking-tight" }, M = {
8
8
  key: 0,
9
- class: "text-sm text-muted-foreground mb-2"
9
+ class: "text-sm text-muted-foreground mb-6.5"
10
10
  }, F = /* @__PURE__ */ w({
11
11
  inheritAttrs: !1,
12
12
  __name: "Modal",
@@ -71,13 +71,13 @@ const D = {
71
71
  onClick: k
72
72
  }, [
73
73
  r("div", {
74
- class: d(["modal-body relative w-full rounded border border-border bg-body shadow-lg text-foreground flex flex-col max-h-[85vh] sm:max-h-[90vh]", [e.maxWidth]]),
74
+ class: d(["modal-body relative w-full rounded border border-border/60 bg-body shadow-lg text-foreground flex flex-col max-h-[85vh] sm:max-h-[90vh]", [e.maxWidth]]),
75
75
  onClick: u[0] || (u[0] = b(() => {
76
76
  }, ["stop"]))
77
77
  }, [
78
78
  e.title ? (s(), a("div", D, [
79
79
  r("div", {
80
- class: d(["flex items-center justify-between py-1.5 px-4 rounded-t-md", e.headerClass])
80
+ class: d(["flex items-center justify-between py-2 px-4 rounded-t-md", e.headerClass])
81
81
  }, [
82
82
  r("h3", K, p(e.title), 1),
83
83
  v(V, {
@@ -101,7 +101,7 @@ const D = {
101
101
  ], 2),
102
102
  t.$slots.footer ? (s(), a("div", {
103
103
  key: 1,
104
- class: d([e.footerClass, "flex-none flex items-center px-4 py-3 border-t border-border/60 rounded-b-xl bg"])
104
+ class: d([e.footerClass, "flex-none flex items-center px-4 py-3 border-t border-border/75 rounded-b-xl bg"])
105
105
  }, [
106
106
  i(t.$slots, "footer", { close: o })
107
107
  ], 2)) : n("", !0)
@@ -36,7 +36,7 @@ const F = { class: "flex flex-wrap gap-1.5 items-center flex-1 min-w-0 py-0.5" }
36
36
  }, S = () => {
37
37
  s("update:modelValue", []), s("change", []);
38
38
  }, N = i(() => [
39
- "flex items-center justify-between w-full min-h-[40px] px-3 py-1.5 rounded-md border text-sm transition-colors cursor-pointer",
39
+ "flex items-center justify-between w-full px-3 py-1.5 rounded-md border text-sm transition-colors cursor-pointer",
40
40
  o.disabled ? "opacity-50 cursor-not-allowed bg-muted" : "bg-background hover:bg-gray-50/70",
41
41
  o.variant === "outline" ? "border-input" : "border-transparent bg-muted",
42
42
  u.value ? "border-primary/20" : ""
@@ -1,7 +1,7 @@
1
1
  import { ref as p } from "vue";
2
2
  const u = p({
3
3
  position: "bottom-right",
4
- duration: 4e3,
4
+ duration: 1e3,
5
5
  expand: !1,
6
6
  variant: "default"
7
7
  }), a = p([]), g = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map();
@@ -1,4 +1,8 @@
1
+ interface RippleElement extends HTMLElement {
2
+ _rippleHandler?: (ev: MouseEvent) => void;
3
+ }
1
4
  export declare const vRipple: {
2
- mounted(el: HTMLElement): void;
3
- unmounted(el: HTMLElement): void;
5
+ mounted(el: RippleElement): void;
6
+ unmounted(el: RippleElement): void;
4
7
  };
8
+ export {};
@@ -1,15 +1,14 @@
1
- const d = (e, n) => {
2
- const i = n.getBoundingClientRect(), c = e.clientX - i.left, p = e.clientY - i.top, t = document.createElement("span"), s = Math.max(i.width, i.height), o = s / 2;
3
- t.style.width = t.style.height = `${s}px`, t.style.left = `${c - o}px`, t.style.top = `${p - o}px`, t.classList.add("ripple");
4
- const l = document.getElementsByClassName("ripple")[0];
5
- l && l.remove(), n.appendChild(t), setTimeout(() => {
6
- t.remove();
1
+ const c = (e, i) => {
2
+ const n = i.getBoundingClientRect(), s = e.clientX - n.left, l = e.clientY - n.top, t = document.createElement("span"), p = Math.max(n.width, n.height), o = p / 2;
3
+ t.style.width = t.style.height = `${p}px`, t.style.left = `${s - o}px`, t.style.top = `${l - o}px`, t.style.position = "absolute", t.style.pointerEvents = "none", t.classList.add("ripple"), i.querySelectorAll(".ripple").forEach((r) => r.remove()), i.appendChild(t), setTimeout(() => {
4
+ t && t.parentNode && t.remove();
7
5
  }, 600);
8
6
  }, a = {
9
7
  mounted(e) {
10
- e.style.position = "relative", e.style.overflow = "hidden", e.addEventListener("click", (n) => d(n, e));
8
+ window.getComputedStyle(e).position === "static" && (e.style.position = "relative"), e.style.overflow = "hidden", e._rippleHandler = (i) => c(i, e), e.addEventListener("click", e._rippleHandler);
11
9
  },
12
10
  unmounted(e) {
11
+ e._rippleHandler && e.removeEventListener("click", e._rippleHandler), e.querySelectorAll(".ripple").forEach((n) => n.remove());
13
12
  }
14
13
  };
15
14
  export {
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.2.12",
6
+ "version": "0.2.14",
7
7
  "type": "module",
8
8
  "main": "index.js",
9
9
  "module": "index.js",
package/style.css CHANGED
@@ -80,13 +80,16 @@
80
80
  --animate-ripple: ripple 600ms linear;
81
81
 
82
82
  --text--fs-1: 0.95em;
83
- --text--fs-2: 0.8em;
83
+ --text--fs-1.5: 0.91em;
84
+ --text--fs-2: 0.85em;
85
+ --text--fs-2.5: 0.8em;
84
86
  --text--fs-3: 0.75em;
85
- --text--fs-4: 0.7em;
86
- --text--fs-5: 0.65em;
87
- --text--fs-6: 0.6em;
88
- --text--fs-7: 0.55em;
89
- --text--fs-8: 0.5em;
87
+ --text--fs-3.5: 0.7em;
88
+ --text--fs-4: 0.65em;
89
+ --text--fs-5: 0.6em;
90
+ --text--fs-6: 0.55em;
91
+ --text--fs-7: 0.5em;
92
+ --text--fs-8: 0.45em;
90
93
  --text-fs-0.5: 1em;
91
94
  --text-fs-1: 1.03030303em;
92
95
  --text-fs-1.5: 1.06060606em;
@@ -107,6 +110,42 @@
107
110
  --text-fs-9: 1.93939394em;
108
111
  --text-fs-9.5: 2em;
109
112
  --text-fs-10: 2.06060606em;
113
+ --text-fs-10.5: 2.1;
114
+ --text-fs-11: 2.15;
115
+ --text-fs-11.5: 2.2;
116
+ --text-fs-12: 2.25;
117
+ --text-fs-12.5: 2.3;
118
+ --text-fs-13: 2.35;
119
+ --text-fs-13.5: 2.4;
120
+ --text-fs-14: 2.45;
121
+ --text-fs-14.5: 2.5;
122
+ --text-fs-15: 2.55;
123
+ --text-fs-15.5: 2.6;
124
+ --text-fs-16: 2.65;
125
+ --text-fs-16.5: 2.7;
126
+ --text-fs-17: 2.75;
127
+ --text-fs-17.5: 2.8;
128
+ --text-fs-18: 2.85;
129
+ --text-fs-18.5: 2.9;
130
+ --text-fs-19: 2.95;
131
+ --text-fs-19.5: 3;
132
+ --text-fs-20: 3.05;
133
+
134
+ --spacing: 0.25em;
135
+
136
+ --text-xs: 0.75em;
137
+ --text-sm: 0.875em;
138
+ --text-base: 1em;
139
+ --text-md2: 1.1em;
140
+ --text-lg: 1.125em;
141
+ --text-lg2: 1.2em;
142
+ --text-xl: 1.25em;
143
+ --text-xl2: 1.3em;
144
+ --text-2xl: 1.5em;
145
+ --text-3xl: 1.875em;
146
+ --text-4xl: 2.25em;
147
+ --text-5xl: 3em;
148
+ --text-6xl: 3.75em;
110
149
  }
111
150
  }
112
151
 
@@ -169,15 +208,15 @@
169
208
  var(--color-mixture-2, #000000));
170
209
 
171
210
  --color-gray-500: color-mix(in oklab,
172
- var(--color-mixture-1, #ffffff) 50%,
211
+ var(--color-mixture-1, #ffffff) 49%,
173
212
  var(--color-mixture-2, #000000));
174
213
 
175
214
  --color-gray-600: color-mix(in oklab,
176
- var(--color-mixture-1, #ffffff) 38%,
215
+ var(--color-mixture-1, #ffffff) 39%,
177
216
  var(--color-mixture-2, #000000));
178
217
 
179
218
  --color-gray-700: color-mix(in oklab,
180
- var(--color-mixture-1, #ffffff) 26%,
219
+ var(--color-mixture-1, #ffffff) 27%,
181
220
  var(--color-mixture-2, #000000));
182
221
 
183
222
  --color-gray-800: color-mix(in oklab,
@@ -189,14 +228,14 @@
189
228
  var(--color-mixture-2, #000000));
190
229
 
191
230
  --color-gray-900: color-mix(in oklab,
192
- var(--color-mixture-1, #ffffff) 5%,
231
+ var(--color-mixture-1, #ffffff) 6%,
193
232
  var(--color-mixture-2, #000000));
194
233
 
195
234
  --color-gray-950: var(--color-mixture-2, #000000);
196
235
 
197
236
  --color-body: var(--color-white);
198
237
  --color-background: var(--color-body);
199
- --color-foreground: var(--color-gray-900);
238
+ --color-foreground: var(--color-gray-850);
200
239
 
201
240
  --color-border: color-mix(in oklab, var(--color-mixture-1) 92%, var(--color-mixture-2));
202
241
  --color-input: color-mix(in oklab, var(--color-mixture-1) 90%, var(--color-mixture-2));
@@ -260,7 +299,7 @@
260
299
  var(--color-mixture-2, #000000));
261
300
 
262
301
  --color-secondary: color-mix(in oklab, var(--color-mixture-1) 89%, var(--color-mixture-2));
263
-
302
+ --color-muted: var(--color-gray-50);
264
303
  --color-destructive: #7f1d1d;
265
304
  --color-destructive-foreground: #fafafa;
266
305
 
@@ -322,8 +361,8 @@
322
361
 
323
362
  .dark .modal-body,
324
363
  .dark .sidepanel-body {
325
- --color-white: #141414 !important;
326
- --color-mixture-1: #151515 !important;
364
+ --color-white: #101010 !important;
365
+ --color-mixture-1: #161616 !important;
327
366
  --color-mixture-2: #ffffff !important;
328
367
  --color-input: color-mix(in oklab, var(--color-mixture-1) 92%, var(--color-mixture-2));
329
368
  }
@@ -453,9 +492,9 @@ html {
453
492
  position: absolute;
454
493
  border-radius: 50%;
455
494
  transform: scale(0);
456
- animation: ripple 600ms linear;
495
+ animation: ripple 600ms linear forwards;
457
496
  background-color: rgba(255, 255, 255, 0.094);
458
- pointer-events: none;
497
+ pointer-events: none !important;
459
498
  }
460
499
 
461
500
  *,
@@ -471,15 +510,18 @@ html {
471
510
  h3,
472
511
  .h3,
473
512
  h4,
513
+ bold,
514
+ b,
515
+ strong,
474
516
  .h4 {
475
- @apply font-bold text-foreground;
517
+ @apply font-bold text-gray-900;
476
518
  }
477
519
 
478
520
  h5,
479
521
  .h5,
480
522
  h6,
481
523
  .h6 {
482
- @apply font-sans text-foreground;
524
+ @apply font-sans text-gray-900;
483
525
  }
484
526
 
485
527
  h1,
@@ -601,14 +643,14 @@ html {
601
643
 
602
644
  .data-table tr td:first-child,
603
645
  .data-table tr th:first-child {
604
- padding-left: 16px !important;
605
- padding-right: 16px !important;
646
+ padding-left: 18px !important;
647
+ padding-right: 18px !important;
606
648
  }
607
649
 
608
650
  .data-table tr td:last-child,
609
651
  .data-table tr th:last-child {
610
652
  padding-left: 6px !important;
611
- padding-right: 16px !important;
653
+ padding-right: 18px !important;
612
654
  }
613
655
 
614
656
  .data-table tr td,
@@ -616,6 +658,7 @@ html {
616
658
  padding-right: 10px !important;
617
659
  }
618
660
 
661
+
619
662
  /* --- input.css --- */
620
663
  input[type='number']::-webkit-inner-spin-button,
621
664
  input[type='number']::-webkit-outer-spin-button {
@@ -680,5 +723,5 @@ textarea::-webkit-scrollbar-thumb {
680
723
  }
681
724
 
682
725
  /* --- Vite Generated CSS --- */
683
- .accordion-enter-active[data-v-aa189e08],.accordion-leave-active[data-v-aa189e08]{transition:height .3s ease-in-out}.attached-group[data-v-8c9add3e]:not(.vertical-group) button{border-radius:0}.attached-group[data-v-8c9add3e] button{position:relative;--radius: .375rem}.attached-group[data-v-8c9add3e] button:focus-visible,.attached-group[data-v-8c9add3e] button:hover{z-index:10}.attached-group[data-v-8c9add3e]:not(.vertical-group) button:not(:first-child){margin-left:-1px}.attached-group[data-v-8c9add3e]: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-8c9add3e]:not(.vertical-group) button:not(:first-child):not(:last-child){border-radius:0}.attached-group[data-v-8c9add3e]: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-8c9add3e] button:not(:first-child){margin-top:-1px}.vertical-group[data-v-8c9add3e] 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-8c9add3e] button:not(:first-child):not(:last-child){border-radius:0}.vertical-group[data-v-8c9add3e] 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-8c9add3e]: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}.vertical-group[data-v-8c9add3e] button:not(:first-child):not(.border):before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none;width:auto}.vertical-group[data-v-8c9add3e] button:not(:first-child):not(.border):before{width:100%}.attached-group[data-v-8c9add3e]:not(.vertical-group) button:not(:first-child):not(.border):before{height:100%}.carousel-wrapper[data-v-655a78c8]{width:100%;position:relative}.IroBox{border-radius:8px!important}input[data-v-e7171c4f]::-webkit-outer-spin-button,input[data-v-e7171c4f]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-e7171c4f]{-moz-appearance:textfield;appearance:textfield}.custom-fields-table[data-v-ed01b0e1] .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-ed01b0e1] input,.custom-fields-table[data-v-ed01b0e1] textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-ed01b0e1] input,.custom-fields-table[data-v-ed01b0e1] textarea,.custom-fields-table[data-v-ed01b0e1] select,.custom-fields-table[data-v-ed01b0e1] .input-wrapper,.custom-fields-table[data-v-ed01b0e1] .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-ed01b0e1] .tooltip-trigger button{justify-content:space-between!important}.custom-fields-table[data-v-ed01b0e1] input:focus,.custom-fields-table[data-v-ed01b0e1] textarea:focus,.custom-fields-table[data-v-ed01b0e1] select:focus,.custom-fields-table[data-v-ed01b0e1] .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-ed01b0e1] .w-full{width:100%;height:100%}.list-move[data-v-ed01b0e1],.list-enter-active[data-v-ed01b0e1],.list-leave-active[data-v-ed01b0e1]{transition:all .1s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-ed01b0e1],.list-leave-to[data-v-ed01b0e1]{opacity:0;transform:translateY(-10px)}.list-leave-active[data-v-ed01b0e1]{position:absolute;width:100%;z-index:0}.form-field-item[data-v-47af145c]{display:flex;flex-direction:column}.form-field-item[data-v-47af145c]:has([role=switch]),.form-field-item[data-v-47af145c]:has([role=checkbox]){flex-direction:row;align-items:center}.form-container[data-v-67eb0c47]{width:100%}.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}}.custom-scrollbar[data-v-9ac38977]::-webkit-scrollbar{width:0px}.custom-scrollbar[data-v-9ac38977]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-9ac38977]::-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}.masonry-item[data-v-c29d0159]{content-visibility:auto;contain-intrinsic-size:1px 200px}.slide-right-enter-active[data-v-495f8aa0],.slide-right-leave-active[data-v-495f8aa0],.slide-left-enter-active[data-v-495f8aa0],.slide-left-leave-active[data-v-495f8aa0]{transition:transform .3s ease-in-out}.slide-right-enter-from[data-v-495f8aa0],.slide-right-leave-to[data-v-495f8aa0]{transform:translate(100%)}.slide-left-enter-from[data-v-495f8aa0],.slide-left-leave-to[data-v-495f8aa0]{transform:translate(-100%)}.sidebar-manu-item .tooltip-trigger{width:100%!important}.sidebar-menu-tooltip{margin-left:4px!important}[dir=rtl] .sidebar-menu-tooltip{margin-right:4px!important}.first-toast-enter-active[data-v-6b631840]{animation:first-toast-in-6b631840 .45s cubic-bezier(.23,1,.32,1) forwards}.first-toast-leave-active[data-v-6b631840]{transition:all .25s ease-in}.first-toast-leave-to[data-v-6b631840]{opacity:0;transform:scale(.98)}@keyframes first-toast-in-6b631840{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-6b631840],.stack-toast-leave-active[data-v-6b631840]{transition:all .3s cubic-bezier(.16,1,.3,1)}.stack-toast-enter-from[data-v-6b631840]{opacity:0;transform:scale(.95) translateY(10px)}.stack-toast-leave-to[data-v-6b631840]{opacity:0;transform:scale(.95)}.stack-toast-move[data-v-6b631840]{transition:transform .4s cubic-bezier(.16,1,.3,1)}.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)}}
726
+ .accordion-enter-active[data-v-aa189e08],.accordion-leave-active[data-v-aa189e08]{transition:height .3s ease-in-out}.attached-group[data-v-8c9add3e]:not(.vertical-group) button{border-radius:0}.attached-group[data-v-8c9add3e] button{position:relative;--radius: .375rem}.attached-group[data-v-8c9add3e] button:focus-visible,.attached-group[data-v-8c9add3e] button:hover{z-index:10}.attached-group[data-v-8c9add3e]:not(.vertical-group) button:not(:first-child){margin-left:-1px}.attached-group[data-v-8c9add3e]: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-8c9add3e]:not(.vertical-group) button:not(:first-child):not(:last-child){border-radius:0}.attached-group[data-v-8c9add3e]: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-8c9add3e] button:not(:first-child){margin-top:-1px}.vertical-group[data-v-8c9add3e] 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-8c9add3e] button:not(:first-child):not(:last-child){border-radius:0}.vertical-group[data-v-8c9add3e] 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-8c9add3e]: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}.vertical-group[data-v-8c9add3e] button:not(:first-child):not(.border):before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none;width:auto}.vertical-group[data-v-8c9add3e] button:not(:first-child):not(.border):before{width:100%}.attached-group[data-v-8c9add3e]:not(.vertical-group) button:not(:first-child):not(.border):before{height:100%}.carousel-wrapper[data-v-655a78c8]{width:100%;position:relative}.IroBox{border-radius:8px!important}input[data-v-e7171c4f]::-webkit-outer-spin-button,input[data-v-e7171c4f]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-e7171c4f]{-moz-appearance:textfield;appearance:textfield}.custom-fields-table[data-v-ce6a94e8] .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-ce6a94e8] input,.custom-fields-table[data-v-ce6a94e8] textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-ce6a94e8] input,.custom-fields-table[data-v-ce6a94e8] textarea,.custom-fields-table[data-v-ce6a94e8] select,.custom-fields-table[data-v-ce6a94e8] .input-wrapper,.custom-fields-table[data-v-ce6a94e8] .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-ce6a94e8] .tooltip-trigger button{justify-content:space-between!important}.custom-fields-table[data-v-ce6a94e8] input:focus,.custom-fields-table[data-v-ce6a94e8] textarea:focus,.custom-fields-table[data-v-ce6a94e8] select:focus,.custom-fields-table[data-v-ce6a94e8] .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-ce6a94e8] .w-full{width:100%;height:100%}.list-enter-active[data-v-ce6a94e8]{transition:all .15s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-ce6a94e8]{opacity:0;transform:translateY(-5px)}.form-field-item[data-v-47af145c]{display:flex;flex-direction:column}.form-field-item[data-v-47af145c]:has([role=switch]),.form-field-item[data-v-47af145c]:has([role=checkbox]){flex-direction:row;align-items:center}.form-container[data-v-5766d177]{width:100%}.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}}.custom-scrollbar[data-v-9ac38977]::-webkit-scrollbar{width:0px}.custom-scrollbar[data-v-9ac38977]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-9ac38977]::-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}.masonry-item[data-v-c29d0159]{content-visibility:auto;contain-intrinsic-size:1px 200px}.slide-right-enter-active[data-v-495f8aa0],.slide-right-leave-active[data-v-495f8aa0],.slide-left-enter-active[data-v-495f8aa0],.slide-left-leave-active[data-v-495f8aa0]{transition:transform .3s ease-in-out}.slide-right-enter-from[data-v-495f8aa0],.slide-right-leave-to[data-v-495f8aa0]{transform:translate(100%)}.slide-left-enter-from[data-v-495f8aa0],.slide-left-leave-to[data-v-495f8aa0]{transform:translate(-100%)}.sidebar-manu-item .tooltip-trigger{width:100%!important}.sidebar-menu-tooltip{margin-left:4px!important}[dir=rtl] .sidebar-menu-tooltip{margin-right:4px!important}.first-toast-enter-active[data-v-6b631840]{animation:first-toast-in-6b631840 .45s cubic-bezier(.23,1,.32,1) forwards}.first-toast-leave-active[data-v-6b631840]{transition:all .25s ease-in}.first-toast-leave-to[data-v-6b631840]{opacity:0;transform:scale(.98)}@keyframes first-toast-in-6b631840{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-6b631840],.stack-toast-leave-active[data-v-6b631840]{transition:all .3s cubic-bezier(.16,1,.3,1)}.stack-toast-enter-from[data-v-6b631840]{opacity:0;transform:scale(.95) translateY(10px)}.stack-toast-leave-to[data-v-6b631840]{opacity:0;transform:scale(.95)}.stack-toast-move[data-v-6b631840]{transition:transform .4s cubic-bezier(.16,1,.3,1)}.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)}}
684
727