vlite3 0.2.11 → 0.2.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,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",
@@ -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"]))
@@ -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 s = /* @__PURE__ */ t(o, [["__scopeId", "data-v-79b7dd60"]]);
4
+ const r = /* @__PURE__ */ t(o, [["__scopeId", "data-v-ce6a94e8"]]);
5
5
  export {
6
- s as default
6
+ r as default
7
7
  };
@@ -1,5 +1,5 @@
1
- import { defineComponent as z, ref as j, computed as i, openBlock as n, createBlock as m, unref as y, withCtx as f, createVNode as v, createElementVNode as d, normalizeClass as V, createElementBlock as p, toDisplayString as b, Fragment as w, renderList as E, withModifiers as k, createCommentVNode as h, createTextVNode as L } from "vue";
2
- import g from "../Icon.vue.js";
1
+ import { defineComponent as z, ref as j, computed as i, openBlock as n, createBlock as m, unref as y, withCtx as f, createVNode as v, createElementVNode as d, normalizeClass as V, createElementBlock as p, toDisplayString as b, Fragment as w, renderList as E, withModifiers as k, createCommentVNode as g, createTextVNode as L } from "vue";
2
+ import h from "../Icon.vue.js";
3
3
  import A from "../Dropdown/Dropdown.vue.js";
4
4
  import D from "../Dropdown/DropdownMenu.vue.js";
5
5
  import C from "../Badge.vue.js";
@@ -37,9 +37,9 @@ const F = { class: "flex flex-wrap gap-1.5 items-center flex-1 min-w-0 py-0.5" }
37
37
  s("update:modelValue", []), s("change", []);
38
38
  }, N = i(() => [
39
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",
40
- o.disabled ? "opacity-50 cursor-not-allowed bg-muted" : "bg-background hover:bg-accent",
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
- u.value ? "border-primary" : ""
42
+ u.value ? "border-primary/20" : ""
43
43
  ].join(" "));
44
44
  return i(() => o.size === "sm" ? "xs" : "sm"), (a, e) => (n(), m(y(A), {
45
45
  isOpen: u.value,
@@ -61,12 +61,13 @@ const F = { class: "flex flex-wrap gap-1.5 items-center flex-1 min-w-0 py-0.5" }
61
61
  }, {
62
62
  default: f(() => [
63
63
  d("span", U, b(r.label), 1),
64
- l.disabled ? h("", !0) : (n(), p("button", {
64
+ l.disabled ? g("", !0) : (n(), p("button", {
65
65
  key: 0,
66
+ type: "button",
66
67
  onClick: k((H) => M(r.value), ["stop"]),
67
68
  class: "hover:bg-destructive/10 hover:text-destructive rounded-full p-0.5 transition-colors"
68
69
  }, [
69
- v(g, {
70
+ v(h, {
70
71
  icon: "lucide:x",
71
72
  class: "w-3 h-3"
72
73
  })
@@ -83,18 +84,18 @@ const F = { class: "flex flex-wrap gap-1.5 items-center flex-1 min-w-0 py-0.5" }
83
84
  L(" +" + b(x.value), 1)
84
85
  ]),
85
86
  _: 1
86
- })) : h("", !0)
87
+ })) : g("", !0)
87
88
  ], 64))
88
89
  ]),
89
90
  d("div", G, [
90
- c.value.length > 0 && !l.disabled ? (n(), m(g, {
91
+ c.value.length > 0 && !l.disabled ? (n(), m(h, {
91
92
  key: 0,
92
93
  icon: "lucide:x",
93
94
  class: "w-4 h-4 hover:text-foreground transition-colors",
94
95
  onClick: k(S, ["stop"])
95
- })) : h("", !0),
96
+ })) : g("", !0),
96
97
  e[4] || (e[4] = d("div", { class: "w-px h-4 bg-border mx-0.5" }, null, -1)),
97
- v(g, {
98
+ v(h, {
98
99
  icon: "lucide:chevron-down",
99
100
  class: V(["w-4 h-4 transition-transform duration-200", { "rotate-180": t }])
100
101
  }, null, 8, ["class"])
@@ -13,6 +13,7 @@ interface Props {
13
13
  bodyClass?: string;
14
14
  headerClass?: string;
15
15
  triggerClass?: string;
16
+ footerClass?: string;
16
17
  backdrop?: boolean;
17
18
  body?: Component;
18
19
  bodyProps?: Record<string, any>;
@@ -50,10 +51,13 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
50
51
  class: string;
51
52
  size: SidePanelSize;
52
53
  triggerClass: string;
54
+ headerClass: string;
53
55
  position: SidePanelPosition;
54
56
  show: boolean;
55
57
  closeOutside: boolean;
56
58
  backdrop: boolean;
59
+ bodyClass: string;
60
+ footerClass: string;
57
61
  hideCloseButton: boolean;
58
62
  overlayClass: string;
59
63
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -1,7 +1,7 @@
1
1
  import o from "./SidePanel.vue2.js";
2
2
  /* empty css */
3
- import t from "../_virtual/_plugin-vue_export-helper.js";
4
- const f = /* @__PURE__ */ t(o, [["__scopeId", "data-v-016e19f6"]]);
3
+ import a from "../_virtual/_plugin-vue_export-helper.js";
4
+ const f = /* @__PURE__ */ a(o, [["__scopeId", "data-v-495f8aa0"]]);
5
5
  export {
6
6
  f as default
7
7
  };
@@ -1,13 +1,10 @@
1
- import { defineComponent as S, ref as E, watch as y, onUnmounted as N, computed as b, openBlock as o, createElementBlock as r, Fragment as P, createElementVNode as u, mergeProps as v, withModifiers as V, renderSlot as i, createCommentVNode as s, createBlock as m, Teleport as D, createVNode as p, Transition as h, withCtx as C, normalizeClass as f, toDisplayString as g, resolveDynamicComponent as K } from "vue";
1
+ import { defineComponent as S, ref as E, watch as y, onUnmounted as N, computed as v, openBlock as o, createElementBlock as r, Fragment as P, createElementVNode as f, mergeProps as b, withModifiers as V, renderSlot as i, createCommentVNode as s, createBlock as m, Teleport as D, createVNode as p, Transition as C, withCtx as h, normalizeClass as d, toDisplayString as k, resolveDynamicComponent as K } from "vue";
2
2
  import T from "./Button.vue.js";
3
3
  import { useKeyStroke as j } from "../composables/useKeyStroke.js";
4
4
  const F = { class: "text-lg font-bold text-foreground" }, L = {
5
5
  key: 0,
6
6
  class: "mt-1 text-sm text-muted-foreground"
7
- }, M = {
8
- key: 1,
9
- class: "flex-none px-6 py-4 border-t border-border bg-muted-light"
10
- }, H = /* @__PURE__ */ S({
7
+ }, G = /* @__PURE__ */ S({
11
8
  inheritAttrs: !1,
12
9
  __name: "SidePanel",
13
10
  props: {
@@ -20,16 +17,17 @@ const F = { class: "text-lg font-bold text-foreground" }, L = {
20
17
  hideCloseButton: { type: Boolean, default: !1 },
21
18
  class: { default: "" },
22
19
  overlayClass: { default: "" },
23
- bodyClass: {},
24
- headerClass: {},
20
+ bodyClass: { default: "" },
21
+ headerClass: { default: "" },
25
22
  triggerClass: { default: "" },
23
+ footerClass: { default: "" },
26
24
  backdrop: { type: Boolean, default: !0 },
27
25
  body: {},
28
26
  bodyProps: {}
29
27
  },
30
28
  emits: ["close", "update:show", "onOpen", "onAfterOpen", "onAfterClose"],
31
- setup(e, { emit: k }) {
32
- const l = e, c = k, a = E(l.show);
29
+ setup(e, { emit: g }) {
30
+ const l = e, c = g, a = E(l.show);
33
31
  y(
34
32
  () => l.show,
35
33
  (t) => {
@@ -54,9 +52,9 @@ const F = { class: "text-lg font-bold text-foreground" }, L = {
54
52
  lg: "max-w-lg",
55
53
  xl: "max-w-xl",
56
54
  full: "max-w-full"
57
- }, z = b(() => l.position === "left" ? "left-0" : "right-0"), A = b(() => l.position === "left" ? "slide-left" : "slide-right");
58
- return (t, d) => (o(), r(P, null, [
59
- u("span", v({
55
+ }, z = v(() => l.position === "left" ? "left-0" : "right-0"), A = v(() => l.position === "left" ? "slide-left" : "slide-right");
56
+ return (t, u) => (o(), r(P, null, [
57
+ f("span", b({
60
58
  onClick: V(w, ["stop"]),
61
59
  class: `${e.triggerClass}`
62
60
  }, t.$attrs), [
@@ -65,7 +63,7 @@ const F = { class: "text-lg font-bold text-foreground" }, L = {
65
63
  ], !0)
66
64
  ], 16),
67
65
  (o(), m(D, { to: "body" }, [
68
- p(h, {
66
+ p(C, {
69
67
  "enter-active-class": "transition-opacity duration-300 ease-out",
70
68
  "enter-from-class": "opacity-0",
71
69
  "enter-to-class": "opacity-100",
@@ -73,33 +71,33 @@ const F = { class: "text-lg font-bold text-foreground" }, L = {
73
71
  "leave-from-class": "opacity-100",
74
72
  "leave-to-class": "opacity-0"
75
73
  }, {
76
- default: C(() => [
74
+ default: h(() => [
77
75
  a.value ? (o(), r("div", {
78
76
  key: 0,
79
- class: f(["fixed inset-0 z-50 bg-[#00000033]", [e.overlayClass, { "backdrop-blur-[2px]": e.backdrop }]]),
77
+ class: d(["fixed inset-0 z-50 bg-[#00000033]", [e.overlayClass, { "backdrop-blur-[2px]": e.backdrop }]]),
80
78
  onClick: x
81
79
  }, null, 2)) : s("", !0)
82
80
  ]),
83
81
  _: 1
84
82
  }),
85
- p(h, {
83
+ p(C, {
86
84
  name: A.value,
87
- onAfterEnter: d[0] || (d[0] = (O) => t.$emit("onAfterOpen")),
88
- onAfterLeave: d[1] || (d[1] = (O) => t.$emit("onAfterClose"))
85
+ onAfterEnter: u[0] || (u[0] = (O) => t.$emit("onAfterOpen")),
86
+ onAfterLeave: u[1] || (u[1] = (O) => t.$emit("onAfterClose"))
89
87
  }, {
90
- default: C(() => [
88
+ default: h(() => [
91
89
  a.value ? (o(), r("div", {
92
90
  key: 0,
93
- class: f(["sidepanel-body fixed inset-y-0 z-50 flex flex-col bg-body shadow-sm border transition-transform duration-300 ease-in-out w-full", [B[e.size], z.value, l.class]])
91
+ class: d(["sidepanel-body fixed inset-y-0 z-50 flex flex-col bg-body shadow-sm border transition-transform duration-300 ease-in-out w-full", [B[e.size], z.value, l.class]])
94
92
  }, [
95
93
  e.title || t.$slots.header ? (o(), r("div", {
96
94
  key: 0,
97
- class: f([e.headerClass, "flex-none flex items-center justify-between px-6 py-2 border-b border-border"])
95
+ class: d([e.headerClass, "flex-none flex items-center justify-between px-6 py-2 border-b border-border"])
98
96
  }, [
99
97
  i(t.$slots, "header", {}, () => [
100
- u("div", null, [
101
- u("h3", F, g(e.title), 1),
102
- e.description ? (o(), r("p", L, g(e.description), 1)) : s("", !0)
98
+ f("div", null, [
99
+ f("h3", F, k(e.title), 1),
100
+ e.description ? (o(), r("p", L, k(e.description), 1)) : s("", !0)
103
101
  ])
104
102
  ], !0),
105
103
  e.hideCloseButton ? s("", !0) : (o(), m(T, {
@@ -112,17 +110,20 @@ const F = { class: "text-lg font-bold text-foreground" }, L = {
112
110
  class: "-mr-2"
113
111
  }))
114
112
  ], 2)) : s("", !0),
115
- u("div", {
116
- class: f(["flex-1 overflow-y-auto px-6 py-4", e.bodyClass])
113
+ f("div", {
114
+ class: d(["flex-1 overflow-y-auto px-6 py-4", e.bodyClass])
117
115
  }, [
118
- e.body ? (o(), m(K(e.body), v({ key: 0 }, { ...e.bodyProps, ...t.$attrs }, { close: n }), null, 16)) : i(t.$slots, "default", {
116
+ e.body ? (o(), m(K(e.body), b({ key: 0 }, { ...e.bodyProps, ...t.$attrs }, { close: n }), null, 16)) : i(t.$slots, "default", {
119
117
  key: 1,
120
118
  close: n
121
119
  }, void 0, !0)
122
120
  ], 2),
123
- t.$slots.footer ? (o(), r("div", M, [
121
+ t.$slots.footer ? (o(), r("div", {
122
+ key: 1,
123
+ class: d(["flex-none px-6 py-3 border-t border-border", e.footerClass])
124
+ }, [
124
125
  i(t.$slots, "footer", { close: n }, void 0, !0)
125
- ])) : s("", !0)
126
+ ], 2)) : s("", !0)
126
127
  ], 2)) : s("", !0)
127
128
  ]),
128
129
  _: 3
@@ -132,5 +133,5 @@ const F = { class: "text-lg font-bold text-foreground" }, L = {
132
133
  }
133
134
  });
134
135
  export {
135
- H as default
136
+ G as default
136
137
  };
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.11",
6
+ "version": "0.2.13",
7
7
  "type": "module",
8
8
  "main": "index.js",
9
9
  "module": "index.js",
package/style.css CHANGED
@@ -169,15 +169,15 @@
169
169
  var(--color-mixture-2, #000000));
170
170
 
171
171
  --color-gray-500: color-mix(in oklab,
172
- var(--color-mixture-1, #ffffff) 50%,
172
+ var(--color-mixture-1, #ffffff) 49%,
173
173
  var(--color-mixture-2, #000000));
174
174
 
175
175
  --color-gray-600: color-mix(in oklab,
176
- var(--color-mixture-1, #ffffff) 38%,
176
+ var(--color-mixture-1, #ffffff) 39%,
177
177
  var(--color-mixture-2, #000000));
178
178
 
179
179
  --color-gray-700: color-mix(in oklab,
180
- var(--color-mixture-1, #ffffff) 26%,
180
+ var(--color-mixture-1, #ffffff) 27%,
181
181
  var(--color-mixture-2, #000000));
182
182
 
183
183
  --color-gray-800: color-mix(in oklab,
@@ -189,14 +189,14 @@
189
189
  var(--color-mixture-2, #000000));
190
190
 
191
191
  --color-gray-900: color-mix(in oklab,
192
- var(--color-mixture-1, #ffffff) 5%,
192
+ var(--color-mixture-1, #ffffff) 6%,
193
193
  var(--color-mixture-2, #000000));
194
194
 
195
195
  --color-gray-950: var(--color-mixture-2, #000000);
196
196
 
197
197
  --color-body: var(--color-white);
198
198
  --color-background: var(--color-body);
199
- --color-foreground: var(--color-gray-900);
199
+ --color-foreground: var(--color-gray-850);
200
200
 
201
201
  --color-border: color-mix(in oklab, var(--color-mixture-1) 92%, var(--color-mixture-2));
202
202
  --color-input: color-mix(in oklab, var(--color-mixture-1) 90%, var(--color-mixture-2));
@@ -260,7 +260,7 @@
260
260
  var(--color-mixture-2, #000000));
261
261
 
262
262
  --color-secondary: color-mix(in oklab, var(--color-mixture-1) 89%, var(--color-mixture-2));
263
-
263
+ --color-muted: var(--color-gray-50);
264
264
  --color-destructive: #7f1d1d;
265
265
  --color-destructive-foreground: #fafafa;
266
266
 
@@ -355,6 +355,10 @@
355
355
  --color-mixture-2: #ffffff !important;
356
356
  }
357
357
 
358
+ .dark .hover\:bg-card:hover {
359
+ background-color: var(--color-gray-50);
360
+ }
361
+
358
362
  .bg-card {
359
363
  --color-mixture-1: #FAFAFA !important;
360
364
  --color-mixture-2: #000000 !important;
@@ -418,6 +422,10 @@
418
422
  color: var(--color-gray-600) !important;
419
423
  }
420
424
 
425
+ .dark .text-destructive {
426
+ color: rgb(187, 1, 1) !important
427
+ }
428
+
421
429
  /* --- base.css --- */
422
430
  *,
423
431
  *::before,
@@ -463,15 +471,18 @@ html {
463
471
  h3,
464
472
  .h3,
465
473
  h4,
474
+ bold,
475
+ b,
476
+ strong,
466
477
  .h4 {
467
- @apply font-bold text-foreground;
478
+ @apply font-bold text-gray-900;
468
479
  }
469
480
 
470
481
  h5,
471
482
  .h5,
472
483
  h6,
473
484
  .h6 {
474
- @apply font-sans text-foreground;
485
+ @apply font-sans text-gray-900;
475
486
  }
476
487
 
477
488
  h1,
@@ -593,14 +604,14 @@ html {
593
604
 
594
605
  .data-table tr td:first-child,
595
606
  .data-table tr th:first-child {
596
- padding-left: 16px !important;
597
- padding-right: 16px !important;
607
+ padding-left: 18px !important;
608
+ padding-right: 18px !important;
598
609
  }
599
610
 
600
611
  .data-table tr td:last-child,
601
612
  .data-table tr th:last-child {
602
613
  padding-left: 6px !important;
603
- padding-right: 16px !important;
614
+ padding-right: 18px !important;
604
615
  }
605
616
 
606
617
  .data-table tr td,
@@ -672,5 +683,5 @@ textarea::-webkit-scrollbar-thumb {
672
683
  }
673
684
 
674
685
  /* --- Vite Generated CSS --- */
675
- .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-79b7dd60] .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-79b7dd60] input,.custom-fields-table[data-v-79b7dd60] textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-79b7dd60] input,.custom-fields-table[data-v-79b7dd60] textarea,.custom-fields-table[data-v-79b7dd60] select,.custom-fields-table[data-v-79b7dd60] .input-wrapper,.custom-fields-table[data-v-79b7dd60] .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-79b7dd60] .tooltip-trigger button{justify-content:space-between!important}.custom-fields-table[data-v-79b7dd60] input:focus,.custom-fields-table[data-v-79b7dd60] textarea:focus,.custom-fields-table[data-v-79b7dd60] select:focus,.custom-fields-table[data-v-79b7dd60] .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-79b7dd60] .w-full{width:100%;height:100%}.list-move[data-v-79b7dd60],.list-enter-active[data-v-79b7dd60],.list-leave-active[data-v-79b7dd60]{transition:all .3s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-79b7dd60],.list-leave-to[data-v-79b7dd60]{opacity:0;transform:translateY(-10px)}.list-leave-active[data-v-79b7dd60]{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-016e19f6],.slide-right-leave-active[data-v-016e19f6],.slide-left-enter-active[data-v-016e19f6],.slide-left-leave-active[data-v-016e19f6]{transition:transform .3s ease-in-out}.slide-right-enter-from[data-v-016e19f6],.slide-right-leave-to[data-v-016e19f6]{transform:translate(100%)}.slide-left-enter-from[data-v-016e19f6],.slide-left-leave-to[data-v-016e19f6]{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)}}
686
+ .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-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)}}
676
687