vlite3 0.0.4 → 0.0.7
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.
- package/README.md +4 -16
- package/components/Avatar.vue.js +3 -3
- package/components/AvatarUploader/AvatarUploader.vue.d.ts +1 -0
- package/components/AvatarUploader/AvatarUploader.vue.js +26 -25
- package/components/Dropdown/DropdownBooleanItem.vue.d.ts +12 -0
- package/components/Dropdown/DropdownBooleanItem.vue.js +41 -0
- package/components/Dropdown/DropdownBooleanItem.vue2.js +4 -0
- package/components/Dropdown/DropdownMenu.vue.js +109 -92
- package/components/Masonry/Masonry.vue.d.ts +1 -1
- package/components/Masonry/Masonry.vue.js +1 -1
- package/components/Masonry/Masonry.vue2.js +47 -41
- package/package.json +5 -12
- package/style.css +545 -0
- package/index.css +0 -1
package/README.md
CHANGED
|
@@ -30,28 +30,16 @@ import 'vlite3/style.css'
|
|
|
30
30
|
|
|
31
31
|
This library relies on Tailwind CSS for utility classes. You must configure your project to scan the library's files so that the necessary classes are generated.
|
|
32
32
|
|
|
33
|
-
#### Tailwind CSS v3 (`tailwind.config.js`)
|
|
34
|
-
|
|
35
|
-
Add the library path to your `content` array:
|
|
36
|
-
|
|
37
|
-
```js
|
|
38
|
-
module.exports = {
|
|
39
|
-
content: [
|
|
40
|
-
'./index.html',
|
|
41
|
-
'./src/**/*.{vue,js,ts,jsx,tsx}',
|
|
42
|
-
'./node_modules/vlite3/dist/**/*.{js,vue}', // <--- Add this line
|
|
43
|
-
],
|
|
44
|
-
// ...
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
33
|
#### Tailwind CSS v4
|
|
49
34
|
|
|
50
35
|
If you are using the new CSS-first configuration, add the source path:
|
|
51
36
|
|
|
52
37
|
```css
|
|
53
38
|
@import 'tailwindcss';
|
|
54
|
-
@
|
|
39
|
+
@layer theme, base, components, utilities;
|
|
40
|
+
|
|
41
|
+
@import 'vlite3/style.css';
|
|
42
|
+
@source "../node_modules/vlite3";
|
|
55
43
|
```
|
|
56
44
|
|
|
57
45
|
## Usage
|
package/components/Avatar.vue.js
CHANGED
|
@@ -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-
|
|
35
|
-
xl: "h-
|
|
36
|
-
"2xl": "h-
|
|
34
|
+
lg: "h-14 w-14 text-base",
|
|
35
|
+
xl: "h-20 w-20 text-lg",
|
|
36
|
+
"2xl": "h-22 w-22 text-xl"
|
|
37
37
|
}, h = {
|
|
38
38
|
none: "rounded-none",
|
|
39
39
|
sm: "rounded-sm",
|
|
@@ -10,6 +10,7 @@ export interface Props {
|
|
|
10
10
|
fallback?: string;
|
|
11
11
|
alt?: string;
|
|
12
12
|
maxSize?: number;
|
|
13
|
+
className?: string;
|
|
13
14
|
}
|
|
14
15
|
declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
15
16
|
"update:modelValue": (value: string) => any;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as w, ref as z, computed as f, openBlock as r, createElementBlock as
|
|
1
|
+
import { defineComponent as w, ref as z, computed as f, openBlock as r, createElementBlock as n, normalizeClass as l, createVNode as o, unref as C, withCtx as A, createElementVNode as B, createCommentVNode as g, withModifiers as N } from "vue";
|
|
2
2
|
import u from "../Icon.vue.js";
|
|
3
3
|
import j from "../FilePicker/FilePicker.vue.js";
|
|
4
4
|
import E from "../Avatar.vue.js";
|
|
@@ -13,69 +13,70 @@ const $ = ["onClick"], I = /* @__PURE__ */ w({
|
|
|
13
13
|
disabled: { type: Boolean, default: !1 },
|
|
14
14
|
fallback: {},
|
|
15
15
|
alt: { default: "Avatar" },
|
|
16
|
-
maxSize: {}
|
|
16
|
+
maxSize: {},
|
|
17
|
+
className: {}
|
|
17
18
|
},
|
|
18
19
|
emits: ["update:modelValue", "change", "error"],
|
|
19
20
|
setup(e, { emit: v }) {
|
|
20
|
-
const s = e, t = v,
|
|
21
|
+
const s = e, t = v, d = z(null), c = f(() => d.value || s.modelValue), h = (a) => {
|
|
21
22
|
if (!a || Array.isArray(a)) {
|
|
22
23
|
Array.isArray(a) && a.length === 0 && m();
|
|
23
24
|
return;
|
|
24
25
|
}
|
|
25
|
-
a.base64 && (
|
|
26
|
+
a.base64 && (d.value = a.base64, t("update:modelValue", a.base64)), t("change", a);
|
|
26
27
|
}, y = (a) => {
|
|
27
28
|
t("error", a);
|
|
28
29
|
}, m = () => {
|
|
29
|
-
|
|
30
|
+
d.value = null, t("update:modelValue", null), t("change", null);
|
|
30
31
|
}, k = f(() => [
|
|
31
32
|
"group relative inline-block",
|
|
32
33
|
// If rounded is full, we need overflow hidden on the container to clip the overlay
|
|
33
34
|
s.rounded === "full" ? "rounded-full" : ""
|
|
34
35
|
].join(" "));
|
|
35
|
-
return (a, b) => (r(),
|
|
36
|
-
class:
|
|
36
|
+
return (a, b) => (r(), n("div", {
|
|
37
|
+
class: l(k.value)
|
|
37
38
|
}, [
|
|
38
|
-
|
|
39
|
+
o(C(j), {
|
|
39
40
|
disabled: !e.editable || e.disabled || e.loading,
|
|
40
41
|
"return-format": "base64",
|
|
41
42
|
"file-types": ["image/jpeg", "image/png", "image/webp", "image/gif"],
|
|
42
43
|
"max-size": e.maxSize,
|
|
43
44
|
class: "w-auto h-auto block",
|
|
44
|
-
onChange: b[0] || (b[0] = (
|
|
45
|
+
onChange: b[0] || (b[0] = (i) => h(i)),
|
|
45
46
|
onError: y
|
|
46
47
|
}, {
|
|
47
|
-
trigger:
|
|
48
|
-
|
|
49
|
-
class:
|
|
50
|
-
onClick: (
|
|
48
|
+
trigger: A(({ trigger: i, isLoading: x }) => [
|
|
49
|
+
B("div", {
|
|
50
|
+
class: l(["relative cursor-pointer transition-transform active:scale-95", { "cursor-default": !e.editable || e.disabled }]),
|
|
51
|
+
onClick: (R) => e.editable && !e.disabled ? i() : null
|
|
51
52
|
}, [
|
|
52
|
-
|
|
53
|
+
o(E, {
|
|
53
54
|
src: c.value || void 0,
|
|
54
55
|
fallback: e.fallback,
|
|
55
56
|
alt: e.alt,
|
|
56
57
|
size: e.size,
|
|
57
58
|
rounded: e.rounded,
|
|
58
|
-
class:
|
|
59
|
-
}, null, 8, ["src", "fallback", "alt", "size", "rounded"]),
|
|
60
|
-
e.loading || x ? (r(),
|
|
59
|
+
class: l(e.className)
|
|
60
|
+
}, null, 8, ["src", "fallback", "alt", "size", "rounded", "class"]),
|
|
61
|
+
e.loading || x ? (r(), n("div", {
|
|
61
62
|
key: 0,
|
|
62
|
-
class:
|
|
63
|
+
class: l([
|
|
63
64
|
"absolute inset-0 flex items-center justify-center bg-black/40 backdrop-blur-[1px] text-white transition-opacity",
|
|
64
65
|
e.rounded === "full" ? "rounded-full" : "rounded-md"
|
|
65
66
|
])
|
|
66
67
|
}, [
|
|
67
|
-
|
|
68
|
+
o(u, {
|
|
68
69
|
icon: "lucide:loader-2",
|
|
69
70
|
class: "animate-spin w-1/3 h-1/3"
|
|
70
71
|
})
|
|
71
|
-
], 2)) : e.editable && !e.disabled ? (r(),
|
|
72
|
+
], 2)) : e.editable && !e.disabled ? (r(), n("div", {
|
|
72
73
|
key: 1,
|
|
73
|
-
class:
|
|
74
|
+
class: l([
|
|
74
75
|
"absolute inset-0 flex items-center justify-center bg-black/40 text-white opacity-0 transition-opacity duration-200 group-hover:opacity-100",
|
|
75
76
|
e.rounded === "full" ? "rounded-full" : "rounded-md"
|
|
76
77
|
])
|
|
77
78
|
}, [
|
|
78
|
-
|
|
79
|
+
o(u, {
|
|
79
80
|
icon: "lucide:camera",
|
|
80
81
|
class: "w-1/3 h-1/3"
|
|
81
82
|
})
|
|
@@ -84,14 +85,14 @@ const $ = ["onClick"], I = /* @__PURE__ */ w({
|
|
|
84
85
|
]),
|
|
85
86
|
_: 1
|
|
86
87
|
}, 8, ["disabled", "max-size"]),
|
|
87
|
-
c.value && e.editable && !e.disabled && !e.loading ? (r(),
|
|
88
|
+
c.value && e.editable && !e.disabled && !e.loading ? (r(), n("button", {
|
|
88
89
|
key: 0,
|
|
89
90
|
type: "button",
|
|
90
91
|
class: "absolute -top-1 -right-1 z-10 p-1 bg-background border border-border rounded-full text-muted-foreground shadow-sm hover:text-destructive hover:border-destructive transition-colors opacity-0 group-hover:opacity-100 scale-75 group-hover:scale-100 duration-200 transform",
|
|
91
|
-
onClick:
|
|
92
|
+
onClick: N(m, ["stop"]),
|
|
92
93
|
title: "Remove image"
|
|
93
94
|
}, [
|
|
94
|
-
|
|
95
|
+
o(u, {
|
|
95
96
|
icon: "lucide:x",
|
|
96
97
|
class: "w-3 h-3"
|
|
97
98
|
})
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IDropdownOption } from '../../types';
|
|
2
|
+
interface Props {
|
|
3
|
+
option: IDropdownOption;
|
|
4
|
+
value: boolean;
|
|
5
|
+
focused?: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
8
|
+
change: (value: boolean, option: IDropdownOption) => any;
|
|
9
|
+
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
10
|
+
onChange?: (value: boolean, option: IDropdownOption) => any;
|
|
11
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
12
|
+
export default _default;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { defineComponent as r, openBlock as i, createElementBlock as m, withModifiers as d, normalizeClass as u, createElementVNode as c, createBlock as f, createCommentVNode as p, toDisplayString as g, createVNode as h } from "vue";
|
|
2
|
+
import v from "../Switch.vue.js";
|
|
3
|
+
import x from "../Icon.vue.js";
|
|
4
|
+
const k = { class: "flex items-center gap-2 flex-1 min-w-0" }, y = { class: "truncate font-medium" }, V = /* @__PURE__ */ r({
|
|
5
|
+
__name: "DropdownBooleanItem",
|
|
6
|
+
props: {
|
|
7
|
+
option: {},
|
|
8
|
+
value: { type: Boolean },
|
|
9
|
+
focused: { type: Boolean }
|
|
10
|
+
},
|
|
11
|
+
emits: ["change"],
|
|
12
|
+
setup(e, { emit: a }) {
|
|
13
|
+
const l = e, s = a, o = (t) => {
|
|
14
|
+
s("change", t, l.option);
|
|
15
|
+
};
|
|
16
|
+
return (t, n) => (i(), m("div", {
|
|
17
|
+
"data-dropdown-item": "",
|
|
18
|
+
class: u(["relative flex cursor-pointer select-none items-center justify-between rounded-sm px-2 py-1.5 text-sm outline-none transition-colors", [
|
|
19
|
+
e.focused ? "bg-accent text-accent-foreground" : "hover:bg-accent hover:text-accent-foreground"
|
|
20
|
+
]]),
|
|
21
|
+
onClick: n[0] || (n[0] = d((w) => o(!e.value), ["stop"]))
|
|
22
|
+
}, [
|
|
23
|
+
c("div", k, [
|
|
24
|
+
e.option.icon ? (i(), f(x, {
|
|
25
|
+
key: 0,
|
|
26
|
+
icon: e.option.icon,
|
|
27
|
+
class: "h-4 w-4 shrink-0 opacity-70"
|
|
28
|
+
}, null, 8, ["icon"])) : p("", !0),
|
|
29
|
+
c("span", y, g(e.option.label), 1)
|
|
30
|
+
]),
|
|
31
|
+
h(v, {
|
|
32
|
+
"model-value": e.value,
|
|
33
|
+
class: "ml-3 shrink-0 scale-75 origin-right",
|
|
34
|
+
"onUpdate:modelValue": o
|
|
35
|
+
}, null, 8, ["model-value"])
|
|
36
|
+
], 2));
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
export {
|
|
40
|
+
V as default
|
|
41
|
+
};
|
|
@@ -1,29 +1,30 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
|
|
1
|
+
import { defineComponent as G, defineAsyncComponent as J, ref as B, computed as I, watch as _, toRef as Q, onMounted as W, onBeforeUnmount as X, openBlock as o, createElementBlock as c, createVNode as x, createCommentVNode as u, renderSlot as v, createElementVNode as g, unref as n, normalizeStyle as Y, normalizeClass as C, createBlock as m, Fragment as T, renderList as Z, withCtx as N, toDisplayString as ee, mergeProps as te, nextTick as le } from "vue";
|
|
2
|
+
import M from "../Icon.vue.js";
|
|
3
|
+
import se from "../Input.vue.js";
|
|
4
|
+
import oe from "./DropdownItem.vue.js";
|
|
5
|
+
import ne from "./DropdownBooleanItem.vue.js";
|
|
6
|
+
import re from "./DropdownGroupedLayout.vue.js";
|
|
7
|
+
import { useDropdownNavigation as ae } from "./composables/useDropdownNavigation.js";
|
|
8
|
+
import { useDropdownIds as ce } from "./composables/useDropdownIds.js";
|
|
9
|
+
const de = { class: "w-full min-w-[150px] flex flex-col" }, ie = {
|
|
9
10
|
key: 0,
|
|
10
11
|
class: "bg-body border-b mb-1 z-10 rounded-t-md shrink-0"
|
|
11
|
-
},
|
|
12
|
+
}, ue = {
|
|
12
13
|
key: 1,
|
|
13
14
|
class: "shrink-0"
|
|
14
|
-
},
|
|
15
|
+
}, fe = {
|
|
15
16
|
key: 0,
|
|
16
17
|
class: "px-2 py-6 text-center text-sm text-muted-foreground"
|
|
17
|
-
},
|
|
18
|
+
}, me = {
|
|
18
19
|
key: 0,
|
|
19
20
|
class: "h-px bg-border my-1 mx-1"
|
|
20
|
-
},
|
|
21
|
+
}, he = ["onMouseenter"], ye = { class: "flex items-center gap-2 flex-1 min-w-0" }, ve = { class: "truncate" }, ge = {
|
|
21
22
|
key: 3,
|
|
22
23
|
class: "flex justify-center py-2"
|
|
23
|
-
},
|
|
24
|
+
}, ke = {
|
|
24
25
|
key: 2,
|
|
25
26
|
class: "shrink-0 border-t mt-1 pt-1"
|
|
26
|
-
},
|
|
27
|
+
}, Be = /* @__PURE__ */ G({
|
|
27
28
|
__name: "DropdownMenu",
|
|
28
29
|
props: {
|
|
29
30
|
options: { default: () => [] },
|
|
@@ -43,66 +44,75 @@ const re = { class: "w-full min-w-[150px] flex flex-col" }, de = {
|
|
|
43
44
|
remote: { type: Boolean, default: !1 }
|
|
44
45
|
},
|
|
45
46
|
emits: ["select", "close", "load-more", "search"],
|
|
46
|
-
setup(
|
|
47
|
-
const
|
|
48
|
-
let
|
|
49
|
-
|
|
50
|
-
t.remote && (
|
|
51
|
-
e &&
|
|
47
|
+
setup(a, { emit: V }) {
|
|
48
|
+
const j = J(() => import("./Dropdown.vue2.js")), t = a, i = V, S = B(null), f = B(""), { getMenuId: D, getAllRecursiveIds: E } = ce(), P = I(() => t.remote ? t.searchable : t.searchable && (t.options?.length || 0) > 9);
|
|
49
|
+
let k = null;
|
|
50
|
+
_(f, (e) => {
|
|
51
|
+
t.remote && (k && clearTimeout(k), k = setTimeout(() => {
|
|
52
|
+
e && i("search", e);
|
|
52
53
|
}, 100));
|
|
53
54
|
});
|
|
54
55
|
const H = (e) => {
|
|
55
56
|
const s = e.target;
|
|
56
|
-
s.scrollTop + s.clientHeight >= s.scrollHeight - 50 && t.hasMore && !t.loading &&
|
|
57
|
+
s.scrollTop + s.clientHeight >= s.scrollHeight - 50 && t.hasMore && !t.loading && i("load-more");
|
|
57
58
|
}, b = (e, s) => {
|
|
58
|
-
e.disabled ||
|
|
59
|
+
e.disabled || i("select", e);
|
|
59
60
|
}, {
|
|
60
|
-
focusedIndex:
|
|
61
|
-
isKeyboardMode:
|
|
61
|
+
focusedIndex: h,
|
|
62
|
+
isKeyboardMode: p,
|
|
62
63
|
filteredOptions: R,
|
|
63
64
|
// rename
|
|
64
|
-
handleKeyDown:
|
|
65
|
-
handleMouseMove:
|
|
66
|
-
onMouseEnterItem:
|
|
65
|
+
handleKeyDown: O,
|
|
66
|
+
handleMouseMove: $,
|
|
67
|
+
onMouseEnterItem: w,
|
|
67
68
|
scrollToIndex: z
|
|
68
|
-
} =
|
|
69
|
-
options:
|
|
69
|
+
} = ae({
|
|
70
|
+
options: Q(t, "options"),
|
|
70
71
|
searchQuery: f,
|
|
71
|
-
containerRef:
|
|
72
|
-
emit: (e, ...s) =>
|
|
72
|
+
containerRef: S,
|
|
73
|
+
emit: (e, ...s) => i(e, ...s),
|
|
73
74
|
handleSelect: (e, s) => b(e)
|
|
74
|
-
}),
|
|
75
|
+
}), y = I(() => t.remote ? f.value ? t.options : t.cachedOptions.length ? t.cachedOptions : t.options : R.value), A = (e) => {
|
|
75
76
|
if (!(!t.selected || typeof t.selected != "object") && e.key && e.key in t.selected)
|
|
76
77
|
return t.selected[e.key];
|
|
77
|
-
}, L = (e) => e.disabled ? !1 : Array.isArray(t.selected) ? t.selected.includes(e.value) : t.selected && typeof t.selected == "object" && e.key ? t.selected[e.key] === e.value : t.selected === e.value, F = (e, s) => {
|
|
78
|
+
}, L = (e) => e.disabled ? !1 : Array.isArray(t.selected) ? t.selected.includes(e.value) : t.selected && typeof t.selected == "object" && e.key ? t.selected[e.key] === e.value : t.selected === e.value, F = (e) => !e.key || !t.selected || typeof t.selected != "object" ? !1 : !!t.selected[e.key], K = (e, s) => {
|
|
79
|
+
if (!s.key) return;
|
|
80
|
+
const l = {
|
|
81
|
+
label: s.label,
|
|
82
|
+
value: e,
|
|
83
|
+
key: s.key,
|
|
84
|
+
data: s.data
|
|
85
|
+
};
|
|
86
|
+
i("select", l);
|
|
87
|
+
}, U = (e, s) => {
|
|
78
88
|
let l = s.value;
|
|
79
89
|
e.key && (l = { [e.key]: l });
|
|
80
|
-
const
|
|
90
|
+
const r = {
|
|
81
91
|
label: e.label,
|
|
82
92
|
value: l,
|
|
83
93
|
data: s.data,
|
|
84
94
|
key: e.key
|
|
85
95
|
};
|
|
86
|
-
|
|
87
|
-
},
|
|
88
|
-
await
|
|
96
|
+
i("select", r);
|
|
97
|
+
}, q = async () => {
|
|
98
|
+
await le();
|
|
89
99
|
let e = -1;
|
|
90
100
|
t.layout !== "grouped" && (t.selectedIndex !== null && t.selectedIndex >= 0 ? e = t.selectedIndex : t.selected !== void 0 && typeof t.selected != "object" && (e = t.options.findIndex(
|
|
91
101
|
(s) => s.value === t.selected
|
|
92
102
|
)), e !== -1 && z(e));
|
|
93
103
|
};
|
|
94
|
-
return
|
|
95
|
-
() =>
|
|
104
|
+
return _(
|
|
105
|
+
() => y.value,
|
|
96
106
|
() => {
|
|
97
|
-
|
|
107
|
+
h.value = -1;
|
|
98
108
|
}
|
|
99
|
-
),
|
|
100
|
-
|
|
101
|
-
}),
|
|
102
|
-
window.removeEventListener("keydown",
|
|
103
|
-
}), (e, s) => (o(), c("div",
|
|
104
|
-
|
|
105
|
-
|
|
109
|
+
), W(() => {
|
|
110
|
+
q(), window.addEventListener("keydown", O);
|
|
111
|
+
}), X(() => {
|
|
112
|
+
window.removeEventListener("keydown", O);
|
|
113
|
+
}), (e, s) => (o(), c("div", de, [
|
|
114
|
+
P.value ? (o(), c("div", ie, [
|
|
115
|
+
x(se, {
|
|
106
116
|
modelValue: f.value,
|
|
107
117
|
"onUpdate:modelValue": s[0] || (s[0] = (l) => f.value = l),
|
|
108
118
|
placeholder: "Search...",
|
|
@@ -111,101 +121,108 @@ const re = { class: "w-full min-w-[150px] flex flex-col" }, de = {
|
|
|
111
121
|
variant: "transparent",
|
|
112
122
|
"show-clear-button": !1
|
|
113
123
|
}, null, 8, ["modelValue"])
|
|
114
|
-
])) :
|
|
115
|
-
e.$slots.header ? (o(), c("div",
|
|
116
|
-
|
|
117
|
-
])) :
|
|
118
|
-
|
|
124
|
+
])) : u("", !0),
|
|
125
|
+
e.$slots.header ? (o(), c("div", ue, [
|
|
126
|
+
v(e.$slots, "header")
|
|
127
|
+
])) : u("", !0),
|
|
128
|
+
g("div", {
|
|
119
129
|
ref_key: "containerRef",
|
|
120
|
-
ref:
|
|
130
|
+
ref: S,
|
|
121
131
|
tabindex: "0",
|
|
122
132
|
role: "menu",
|
|
123
133
|
class: C([
|
|
124
134
|
"w-full p-1 space-y-0.5 overflow-y-auto overflow-x-hidden focus:outline-none flex-1",
|
|
125
135
|
t.class
|
|
126
136
|
]),
|
|
127
|
-
style:
|
|
137
|
+
style: Y({ maxHeight: t.maxHeight }),
|
|
128
138
|
onMousemove: s[1] || (s[1] = //@ts-ignore
|
|
129
|
-
(...l) => n(
|
|
139
|
+
(...l) => n($) && n($)(...l)),
|
|
130
140
|
onScroll: H
|
|
131
141
|
}, [
|
|
132
|
-
|
|
133
|
-
|
|
142
|
+
y.value.length === 0 && a.options?.length > 0 && !a.loading ? (o(), c("div", fe, " No options found ")) : u("", !0),
|
|
143
|
+
a.layout === "grouped" ? (o(), m(re, {
|
|
134
144
|
key: 1,
|
|
135
|
-
options:
|
|
136
|
-
selected:
|
|
137
|
-
selectable:
|
|
138
|
-
columns:
|
|
145
|
+
options: y.value,
|
|
146
|
+
selected: a.selected,
|
|
147
|
+
selectable: a.selectable,
|
|
148
|
+
columns: a.columns,
|
|
139
149
|
onSelect: b
|
|
140
|
-
}, null, 8, ["options", "selected", "selectable", "columns"])) : (o(!0), c(T, { key: 2 },
|
|
141
|
-
l.label === "---" ? (o(), c("div",
|
|
150
|
+
}, null, 8, ["options", "selected", "selectable", "columns"])) : (o(!0), c(T, { key: 2 }, Z(y.value, (l, r) => (o(), c(T, { key: r }, [
|
|
151
|
+
l.label === "---" ? (o(), c("div", me)) : l.data?.isBoolean ? (o(), m(ne, {
|
|
142
152
|
key: 1,
|
|
153
|
+
option: l,
|
|
154
|
+
value: F(l),
|
|
155
|
+
focused: n(p) && n(h) === r,
|
|
156
|
+
onChange: K,
|
|
157
|
+
onMouseenter: (d) => n(w)(r)
|
|
158
|
+
}, null, 8, ["option", "value", "focused", "onMouseenter"])) : l.children && l.children.length > 0 ? (o(), m(n(j), {
|
|
159
|
+
key: 2,
|
|
143
160
|
position: l.position || t.nestedPosition,
|
|
144
161
|
offset: l.offset || t.nestedOffset,
|
|
145
162
|
class: "w-full",
|
|
146
163
|
options: l.children,
|
|
147
164
|
selected: A(l),
|
|
148
|
-
menuId: n(
|
|
165
|
+
menuId: n(D)(l),
|
|
149
166
|
nestedPosition: t.nestedPosition,
|
|
150
167
|
nestedOffset: t.nestedOffset,
|
|
151
168
|
selectable: t.selectable,
|
|
152
|
-
ignoreClickOutside: n(
|
|
153
|
-
onOnSelect: (
|
|
169
|
+
ignoreClickOutside: n(E)(l.children),
|
|
170
|
+
onOnSelect: (d) => U(l, d)
|
|
154
171
|
}, {
|
|
155
172
|
trigger: N(() => [
|
|
156
|
-
|
|
173
|
+
g("div", {
|
|
157
174
|
"data-dropdown-item": "",
|
|
158
175
|
class: C(["relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors justify-between w-full", [
|
|
159
|
-
n(
|
|
176
|
+
n(p) && n(h) === r ? "bg-accent text-accent-foreground" : "hover:bg-accent hover:text-accent-foreground",
|
|
160
177
|
l.disabled ? "opacity-50 cursor-not-allowed" : ""
|
|
161
178
|
]]),
|
|
162
|
-
onMouseenter: (
|
|
179
|
+
onMouseenter: (d) => n(w)(r)
|
|
163
180
|
}, [
|
|
164
|
-
|
|
165
|
-
l.icon ? (o(),
|
|
181
|
+
g("div", ye, [
|
|
182
|
+
l.icon ? (o(), m(M, {
|
|
166
183
|
key: 0,
|
|
167
184
|
icon: l.icon,
|
|
168
185
|
class: "h-4 w-4 shrink-0 opacity-70"
|
|
169
|
-
}, null, 8, ["icon"])) :
|
|
170
|
-
|
|
186
|
+
}, null, 8, ["icon"])) : u("", !0),
|
|
187
|
+
g("span", ve, ee(l.label), 1)
|
|
171
188
|
]),
|
|
172
|
-
|
|
189
|
+
x(M, {
|
|
173
190
|
icon: "lucide:chevron-right",
|
|
174
191
|
class: "h-4 w-4 text-muted-foreground shrink-0 ml-2"
|
|
175
192
|
})
|
|
176
|
-
], 42,
|
|
193
|
+
], 42, he)
|
|
177
194
|
]),
|
|
178
195
|
_: 2
|
|
179
|
-
}, 1032, ["position", "offset", "options", "selected", "menuId", "nestedPosition", "nestedOffset", "selectable", "ignoreClickOutside", "onOnSelect"])) : (o(),
|
|
180
|
-
key:
|
|
196
|
+
}, 1032, ["position", "offset", "options", "selected", "menuId", "nestedPosition", "nestedOffset", "selectable", "ignoreClickOutside", "onOnSelect"])) : (o(), m(oe, {
|
|
197
|
+
key: 3,
|
|
181
198
|
option: l,
|
|
182
|
-
index:
|
|
199
|
+
index: r,
|
|
183
200
|
selected: L(l),
|
|
184
|
-
focused: n(
|
|
185
|
-
selectable:
|
|
186
|
-
onClick: (
|
|
187
|
-
onMouseenter: (
|
|
201
|
+
focused: n(p) && n(h) === r,
|
|
202
|
+
selectable: a.selectable,
|
|
203
|
+
onClick: (d) => b(l),
|
|
204
|
+
onMouseenter: (d) => n(w)(r)
|
|
188
205
|
}, {
|
|
189
|
-
default: N((
|
|
190
|
-
|
|
206
|
+
default: N((d) => [
|
|
207
|
+
v(e.$slots, "item", te({ ref_for: !0 }, d))
|
|
191
208
|
]),
|
|
192
209
|
_: 3
|
|
193
210
|
}, 8, ["option", "index", "selected", "focused", "selectable", "onClick", "onMouseenter"]))
|
|
194
211
|
], 64))), 128)),
|
|
195
|
-
|
|
196
|
-
|
|
212
|
+
a.loading ? (o(), c("div", ge, [
|
|
213
|
+
x(M, {
|
|
197
214
|
icon: "lucide:loader-2",
|
|
198
215
|
class: "w-4 h-4 animate-spin text-muted-foreground"
|
|
199
216
|
})
|
|
200
|
-
])) :
|
|
201
|
-
|
|
217
|
+
])) : u("", !0),
|
|
218
|
+
v(e.$slots, "menu")
|
|
202
219
|
], 38),
|
|
203
|
-
e.$slots.footer ? (o(), c("div",
|
|
204
|
-
|
|
205
|
-
])) :
|
|
220
|
+
e.$slots.footer ? (o(), c("div", ke, [
|
|
221
|
+
v(e.$slots, "footer")
|
|
222
|
+
])) : u("", !0)
|
|
206
223
|
]));
|
|
207
224
|
}
|
|
208
225
|
});
|
|
209
226
|
export {
|
|
210
|
-
|
|
227
|
+
Be as default
|
|
211
228
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import o from "./Masonry.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import r from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const m = /* @__PURE__ */ r(o, [["__scopeId", "data-v-
|
|
4
|
+
const m = /* @__PURE__ */ r(o, [["__scopeId", "data-v-314f8a7f"]]);
|
|
5
5
|
export {
|
|
6
6
|
m as default
|
|
7
7
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { MASONRY_BREAKPOINTS as
|
|
1
|
+
import { defineComponent as B, ref as d, computed as m, onMounted as K, onUnmounted as O, openBlock as u, createBlock as w, resolveDynamicComponent as z, normalizeStyle as v, withCtx as C, createElementBlock as c, Fragment as p, renderList as y, renderSlot as S } from "vue";
|
|
2
|
+
import { MASONRY_BREAKPOINTS as x } from "./types.js";
|
|
3
3
|
import { debounce as A } from "../../utils/functions.js";
|
|
4
|
-
const j = /* @__PURE__ */
|
|
4
|
+
const j = /* @__PURE__ */ B({
|
|
5
5
|
__name: "Masonry",
|
|
6
6
|
props: {
|
|
7
7
|
data: {},
|
|
@@ -10,59 +10,65 @@ const j = /* @__PURE__ */ N({
|
|
|
10
10
|
tag: { default: "div" },
|
|
11
11
|
itemKey: { default: "id" }
|
|
12
12
|
},
|
|
13
|
-
setup(
|
|
14
|
-
const l =
|
|
15
|
-
|
|
16
|
-
},
|
|
13
|
+
setup(i) {
|
|
14
|
+
const l = i, r = d(null), f = d(0), s = d(null), g = () => {
|
|
15
|
+
r.value && (f.value = r.value.clientWidth);
|
|
16
|
+
}, b = m(() => {
|
|
17
17
|
if (typeof l.cols == "number") return l.cols;
|
|
18
|
-
const
|
|
19
|
-
if (!
|
|
20
|
-
let
|
|
21
|
-
const
|
|
22
|
-
let
|
|
23
|
-
return typeof e == "number" || !isNaN(Number(e)) ?
|
|
24
|
-
}).filter((e) => e.val !== void 0).sort((e,
|
|
25
|
-
for (const e of
|
|
26
|
-
|
|
27
|
-
return
|
|
28
|
-
}),
|
|
29
|
-
const
|
|
30
|
-
for (let e = 0; e <
|
|
31
|
-
|
|
32
|
-
|
|
18
|
+
const n = f.value;
|
|
19
|
+
if (!n) return l.cols.default || 1;
|
|
20
|
+
let o = l.cols.default || 1;
|
|
21
|
+
const t = Object.keys(l.cols).map((e) => {
|
|
22
|
+
let a = 0;
|
|
23
|
+
return typeof e == "number" || !isNaN(Number(e)) ? a = Number(e) : e in x && (a = x[e]), { k: e, px: a, val: l.cols[e] };
|
|
24
|
+
}).filter((e) => e.val !== void 0).sort((e, a) => e.px - a.px);
|
|
25
|
+
for (const e of t)
|
|
26
|
+
n >= e.px && (o = e.val);
|
|
27
|
+
return o || 1;
|
|
28
|
+
}), h = m(() => {
|
|
29
|
+
const n = b.value, o = Array.from({ length: n }, () => []), t = l.data.length;
|
|
30
|
+
for (let e = 0; e < t; e++)
|
|
31
|
+
o[e % n].push({
|
|
32
|
+
data: l.data[e],
|
|
33
|
+
index: e
|
|
34
|
+
});
|
|
35
|
+
return o;
|
|
33
36
|
});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
|
|
37
|
+
K(() => {
|
|
38
|
+
g();
|
|
39
|
+
const n = A((o) => {
|
|
40
|
+
const t = o[0];
|
|
41
|
+
t && (f.value = t.contentRect.width);
|
|
39
42
|
}, 100);
|
|
40
|
-
|
|
41
|
-
}),
|
|
42
|
-
|
|
43
|
+
s.value = new ResizeObserver(n), r.value && s.value.observe(r.value);
|
|
44
|
+
}), O(() => {
|
|
45
|
+
s.value && (s.value.disconnect(), s.value = null);
|
|
43
46
|
});
|
|
44
|
-
const
|
|
45
|
-
|
|
47
|
+
const R = (n, o) => {
|
|
48
|
+
const t = n.data;
|
|
49
|
+
return t && typeof t == "object" && l.itemKey in t ? t[l.itemKey] : o;
|
|
50
|
+
};
|
|
51
|
+
return (n, o) => (u(), w(z(i.tag), {
|
|
46
52
|
ref_key: "containerRef",
|
|
47
|
-
ref:
|
|
53
|
+
ref: r,
|
|
48
54
|
class: "flex w-full",
|
|
49
|
-
style: v({ gap: `${
|
|
55
|
+
style: v({ gap: `${i.gap}px` })
|
|
50
56
|
}, {
|
|
51
57
|
default: C(() => [
|
|
52
|
-
(
|
|
58
|
+
(u(!0), c(p, null, y(h.value, (t, e) => (u(), c("div", {
|
|
53
59
|
key: e,
|
|
54
60
|
class: "flex flex-col flex-1 min-w-0",
|
|
55
|
-
style: v({ gap: `${
|
|
61
|
+
style: v({ gap: `${i.gap}px` }),
|
|
56
62
|
role: "list"
|
|
57
63
|
}, [
|
|
58
|
-
(
|
|
59
|
-
key:
|
|
64
|
+
(u(!0), c(p, null, y(t, (a, N) => (u(), c("div", {
|
|
65
|
+
key: R(a, N),
|
|
60
66
|
class: "masonry-item",
|
|
61
67
|
role: "listitem"
|
|
62
68
|
}, [
|
|
63
|
-
S(
|
|
64
|
-
data:
|
|
65
|
-
index:
|
|
69
|
+
S(n.$slots, "default", {
|
|
70
|
+
data: a.data,
|
|
71
|
+
index: a.index,
|
|
66
72
|
colIndex: e
|
|
67
73
|
}, void 0, !0)
|
|
68
74
|
]))), 128))
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vlite3",
|
|
3
3
|
"private": false,
|
|
4
|
+
"author": "safdar-azeem",
|
|
4
5
|
"description": "A lightweight Vue 3 UI component library built with Tailwind CSS.",
|
|
5
6
|
"license": "MIT",
|
|
6
|
-
"version": "0.0.
|
|
7
|
+
"version": "0.0.7",
|
|
7
8
|
"type": "module",
|
|
8
9
|
"main": "index.js",
|
|
9
|
-
"module": "index.js",
|
|
10
|
-
"types": "index.d.ts",
|
|
11
10
|
"scripts": {
|
|
12
11
|
"dev": "vite",
|
|
13
12
|
"build": "vue-tsc -b && vite build",
|
|
13
|
+
"postbuild": "node scripts/bundle-css.js",
|
|
14
14
|
"preview": "vite preview",
|
|
15
15
|
"prepare:dist": "npm run build && cp package.json README.md dist/",
|
|
16
16
|
"release:patch": "npm version patch && npm run prepare:dist && cd dist && npm publish",
|
|
@@ -18,14 +18,6 @@
|
|
|
18
18
|
"release:major": "npm version major && npm run prepare:dist && cd dist && npm publish",
|
|
19
19
|
"publish:dist": "npm run prepare:dist && cd dist && npm publish"
|
|
20
20
|
},
|
|
21
|
-
"exports": {
|
|
22
|
-
".": {
|
|
23
|
-
"types": "./index.d.ts",
|
|
24
|
-
"import": "./index.js",
|
|
25
|
-
"require": "./index.js"
|
|
26
|
-
},
|
|
27
|
-
"./style.css": "./index.css"
|
|
28
|
-
},
|
|
29
21
|
"dependencies": {
|
|
30
22
|
"@formkit/drag-and-drop": "^0.5.3",
|
|
31
23
|
"@iconify/vue": "5.0.0",
|
|
@@ -50,6 +42,7 @@
|
|
|
50
42
|
"vite": "^7.2.4",
|
|
51
43
|
"vite-plugin-dts": "^4.5.4",
|
|
52
44
|
"vue-tsc": "^3.1.4",
|
|
53
|
-
"vue": "^3.5.24"
|
|
45
|
+
"vue": "^3.5.24",
|
|
46
|
+
"vue-router": "^4.0.0"
|
|
54
47
|
}
|
|
55
48
|
}
|
package/style.css
ADDED
|
@@ -0,0 +1,545 @@
|
|
|
1
|
+
@import 'tailwindcss';
|
|
2
|
+
@layer theme, base, components, utilities;
|
|
3
|
+
|
|
4
|
+
/* --- theme.css --- */
|
|
5
|
+
@layer base {
|
|
6
|
+
:root {
|
|
7
|
+
/* Base Colors */
|
|
8
|
+
--color-white: #ffffff;
|
|
9
|
+
--color-black: #000000;
|
|
10
|
+
|
|
11
|
+
--color-gray-50: #FAFAFA;
|
|
12
|
+
--color-gray-100: #F6F5F6;
|
|
13
|
+
--color-gray-150: #F5F5F5;
|
|
14
|
+
--color-gray-200: #EFEFEF;
|
|
15
|
+
--color-gray-250: #d1d1d6;
|
|
16
|
+
--color-gray-300: #c7c7cc;
|
|
17
|
+
--color-gray-350: #aeaeb2;
|
|
18
|
+
--color-gray-400: #8e8e93;
|
|
19
|
+
--color-gray-450: #636366;
|
|
20
|
+
--color-gray-500: #636366;
|
|
21
|
+
--color-gray-550: #48484a;
|
|
22
|
+
--color-gray-600: #48484a;
|
|
23
|
+
--color-gray-650: #3a3a3c;
|
|
24
|
+
--color-gray-700: #3a3a3c;
|
|
25
|
+
--color-gray-750: #2c2c2e;
|
|
26
|
+
--color-gray-800: #1c1c1e;
|
|
27
|
+
--color-gray-850: #000000;
|
|
28
|
+
--color-gray-900: #000000;
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
--color-body: var(--color-white);
|
|
32
|
+
--border: var(--color-gray-250);
|
|
33
|
+
|
|
34
|
+
/* NEW SEMANTIC TOKENS (shadcn/ui style) */
|
|
35
|
+
--background: var(--color-white);
|
|
36
|
+
--foreground: var(--color-gray-900);
|
|
37
|
+
|
|
38
|
+
--card: var(--color-gray-50);
|
|
39
|
+
--card-foreground: var(--color-gray-900);
|
|
40
|
+
|
|
41
|
+
--popover: var(--color-white);
|
|
42
|
+
--popover-foreground: var(--color-gray-900);
|
|
43
|
+
|
|
44
|
+
--primary: #18181b;
|
|
45
|
+
--primary-foreground: var(--color-white);
|
|
46
|
+
|
|
47
|
+
/* Secondary: Slightly darker than muted for actions (Buttons) */
|
|
48
|
+
--secondary: var(--color-gray-200);
|
|
49
|
+
--secondary-foreground: var(--color-gray-900);
|
|
50
|
+
|
|
51
|
+
/* Muted: Subtle backgrounds (Cards, Inputs) */
|
|
52
|
+
--muted: var(--color-gray-100);
|
|
53
|
+
--muted-foreground: var(--color-gray-500);
|
|
54
|
+
|
|
55
|
+
/* Accent: Interactive hover states (Dropdown items, etc) */
|
|
56
|
+
--accent: var(--color-gray-150);
|
|
57
|
+
--accent-foreground: var(--color-gray-900);
|
|
58
|
+
|
|
59
|
+
--destructive: #ff3b30;
|
|
60
|
+
--destructive-foreground: var(--color-white);
|
|
61
|
+
|
|
62
|
+
--border: var(--color-gray-250);
|
|
63
|
+
--input: var(--color-gray-250);
|
|
64
|
+
--ring: var(--color-gray-900);
|
|
65
|
+
/* END NEW SEMANTIC TOKENS */
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
/* Primary - Refined Dark Zinc/Black */
|
|
69
|
+
--color-primary-light: #f4f4f5;
|
|
70
|
+
--color-primary: #18181b;
|
|
71
|
+
--color-primary-dark: #3f3f46;
|
|
72
|
+
--color-primary-fg: var(--color-white);
|
|
73
|
+
--color-primary-fg-light: #18181b;
|
|
74
|
+
|
|
75
|
+
/* Semantics - Apple-like Human Interface Colors */
|
|
76
|
+
|
|
77
|
+
/* Danger (System Red) */
|
|
78
|
+
--color-danger-light: #fff2f2;
|
|
79
|
+
--color-danger: #ff3b30;
|
|
80
|
+
--color-danger-dark: #d70015;
|
|
81
|
+
--color-danger-fg: var(--color-white);
|
|
82
|
+
--color-danger-fg-light: #d70015;
|
|
83
|
+
|
|
84
|
+
/* Warning (System Orange/Yellow) */
|
|
85
|
+
--color-warning-light: #fff9e6;
|
|
86
|
+
--color-warning: #ff9500;
|
|
87
|
+
--color-warning-dark: #c95100;
|
|
88
|
+
--color-warning-fg: var(--color-white);
|
|
89
|
+
--color-warning-fg-light: #c95100;
|
|
90
|
+
|
|
91
|
+
/* Info (System Blue) */
|
|
92
|
+
--color-info-light: #f0f8ff;
|
|
93
|
+
--color-info: #007aff;
|
|
94
|
+
--color-info-dark: #0051a8;
|
|
95
|
+
--color-info-fg: var(--color-white);
|
|
96
|
+
--color-info-fg-light: #0051a8;
|
|
97
|
+
|
|
98
|
+
/* Success (System Green) */
|
|
99
|
+
--color-success-light: #f2fffa;
|
|
100
|
+
--color-success: #34c759;
|
|
101
|
+
--color-success-dark: #248a3d;
|
|
102
|
+
--color-success-fg: var(--color-white);
|
|
103
|
+
--color-success-fg-light: #248a3d;
|
|
104
|
+
|
|
105
|
+
/* v-tooltip-lite variables */
|
|
106
|
+
--tooltip-bg: var(--popover) !important;
|
|
107
|
+
--tooltip-text: var(--popover-foreground) !important;
|
|
108
|
+
--tooltip-border: var(--border) !important;
|
|
109
|
+
|
|
110
|
+
--tooltip-radius: var(--radius) !important;
|
|
111
|
+
--tooltip-shadow: var(--shadow-dropdown) !important;
|
|
112
|
+
--tooltip-arrow-size: 0.5em !important;
|
|
113
|
+
--tooltip-z-index: 50;
|
|
114
|
+
--tooltip-font-size: unset !important;
|
|
115
|
+
--date-picker-border: var(--border) !important;
|
|
116
|
+
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.dark {
|
|
120
|
+
/* Dark Mode Overrides */
|
|
121
|
+
--color-white: #000000;
|
|
122
|
+
--color-black: #ffffff;
|
|
123
|
+
|
|
124
|
+
/* Notion Dark Background + Apple Grays */
|
|
125
|
+
--color-body: oklch(0.145 0 0);
|
|
126
|
+
--border: #2c2c2e;
|
|
127
|
+
|
|
128
|
+
--color-gray-50: #161616;
|
|
129
|
+
--color-gray-100: #161616;
|
|
130
|
+
--color-gray-150: #3d3d3f;
|
|
131
|
+
--color-gray-200: #262626;
|
|
132
|
+
--color-gray-250: #2d2d2d;
|
|
133
|
+
--color-gray-300: #545456;
|
|
134
|
+
--color-gray-350: #636366;
|
|
135
|
+
--color-gray-400: #8e8e93;
|
|
136
|
+
--color-gray-450: #aeaeb2;
|
|
137
|
+
--color-gray-500: #aeaeb2;
|
|
138
|
+
--color-gray-550: #c7c7cc;
|
|
139
|
+
--color-gray-600: #c7c7cc;
|
|
140
|
+
--color-gray-650: #d1d1d6;
|
|
141
|
+
--color-gray-700: #e5e5ea;
|
|
142
|
+
--color-gray-750: #f2f2f7;
|
|
143
|
+
--color-gray-800: #f2f2f7;
|
|
144
|
+
--color-gray-850: #ffffff;
|
|
145
|
+
--color-gray-900: #ffffff;
|
|
146
|
+
|
|
147
|
+
/* NEW SEMANTIC TOKENS (Dark Mode) */
|
|
148
|
+
--background: var(--color-body);
|
|
149
|
+
--foreground: var(--color-gray-900);
|
|
150
|
+
|
|
151
|
+
--card: #181818;
|
|
152
|
+
/* Adjusted: using darker context */
|
|
153
|
+
--card-foreground: var(--color-900);
|
|
154
|
+
|
|
155
|
+
--popover: var(--color-body);
|
|
156
|
+
--popover-foreground: var(--color-gray-900);
|
|
157
|
+
|
|
158
|
+
--primary: #f4f4f5;
|
|
159
|
+
--primary-foreground: #18181b;
|
|
160
|
+
|
|
161
|
+
--secondary: var(--color-gray-200);
|
|
162
|
+
--secondary-foreground: var(--color-gray-900);
|
|
163
|
+
|
|
164
|
+
--muted: var(--color-gray-50);
|
|
165
|
+
--muted-foreground: var(--color-gray-600);
|
|
166
|
+
|
|
167
|
+
--accent: var(--color-gray-100);
|
|
168
|
+
--accent-foreground: var(--color-gray-900);
|
|
169
|
+
|
|
170
|
+
--destructive: #bf2625;
|
|
171
|
+
--destructive-foreground: var(--color-black);
|
|
172
|
+
|
|
173
|
+
--border: var(--color-gray-200);
|
|
174
|
+
--input: var(--color-gray-200);
|
|
175
|
+
--ring: var(--color-gray-300);
|
|
176
|
+
/* END NEW SEMANTIC TOKENS */
|
|
177
|
+
|
|
178
|
+
/* Primary */
|
|
179
|
+
--color-primary-light: #2c2c2e;
|
|
180
|
+
--color-primary: #f4f4f5;
|
|
181
|
+
/* High Contrast White/Gray */
|
|
182
|
+
--color-primary-dark: #d4d4d8;
|
|
183
|
+
--color-primary-fg: #191919;
|
|
184
|
+
--color-primary-fg-light: #f4f4f5;
|
|
185
|
+
|
|
186
|
+
/* Semantics - Dark Mode High Contrast */
|
|
187
|
+
|
|
188
|
+
/* Danger */
|
|
189
|
+
--color-danger-light: #4E1D1A;
|
|
190
|
+
--color-danger-fg-light: #FCFCFC;
|
|
191
|
+
--color-danger: #BF2625;
|
|
192
|
+
--color-danger-fg: #ffffff;
|
|
193
|
+
--color-danger-dark: #D72627;
|
|
194
|
+
|
|
195
|
+
/* Warning */
|
|
196
|
+
--color-warning-light: #3a1e00;
|
|
197
|
+
--color-warning-fg-light: #ff9f0a;
|
|
198
|
+
--color-warning: #ff9f0a;
|
|
199
|
+
--color-warning-fg: #ffffff;
|
|
200
|
+
--color-warning-dark: #ffb340;
|
|
201
|
+
|
|
202
|
+
/* Info */
|
|
203
|
+
--color-info-light: #001a33;
|
|
204
|
+
--color-info-fg-light: #0a84ff;
|
|
205
|
+
--color-info: #0a84ff;
|
|
206
|
+
--color-info-fg: #ffffff;
|
|
207
|
+
--color-info-dark: #409cff;
|
|
208
|
+
|
|
209
|
+
/* Success */
|
|
210
|
+
--color-success-light: #1B3419;
|
|
211
|
+
--color-success-fg-light: #ffffff;
|
|
212
|
+
--color-success: #007E51;
|
|
213
|
+
--color-success-fg: #ffffff;
|
|
214
|
+
--color-success-dark: #00613f;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
@theme {
|
|
219
|
+
/* Map Utilities to CSS Variables */
|
|
220
|
+
--color-white: var(--color-white);
|
|
221
|
+
--color-black: var(--color-black);
|
|
222
|
+
|
|
223
|
+
--color-gray-50: var(--color-gray-50);
|
|
224
|
+
--color-gray-100: var(--color-gray-100);
|
|
225
|
+
--color-gray-150: var(--color-gray-150);
|
|
226
|
+
--color-gray-200: var(--color-gray-200);
|
|
227
|
+
--color-gray-250: var(--color-gray-250);
|
|
228
|
+
--color-gray-300: var(--color-gray-300);
|
|
229
|
+
--color-gray-350: var(--color-gray-350);
|
|
230
|
+
--color-gray-400: var(--color-gray-400);
|
|
231
|
+
--color-gray-450: var(--color-gray-450);
|
|
232
|
+
--color-gray-500: var(--color-gray-500);
|
|
233
|
+
--color-gray-550: var(--color-gray-550);
|
|
234
|
+
--color-gray-600: var(--color-gray-600);
|
|
235
|
+
--color-gray-650: var(--color-gray-650);
|
|
236
|
+
--color-gray-700: var(--color-gray-700);
|
|
237
|
+
--color-gray-750: var(--color-gray-750);
|
|
238
|
+
--color-gray-800: var(--color-gray-800);
|
|
239
|
+
--color-gray-850: var(--color-gray-850);
|
|
240
|
+
--color-gray-900: var(--color-gray-900);
|
|
241
|
+
|
|
242
|
+
--color-body: var(--color-body);
|
|
243
|
+
--border: var(--border);
|
|
244
|
+
|
|
245
|
+
/* NEW SEMANTIC COLORS */
|
|
246
|
+
--color-background: var(--background);
|
|
247
|
+
--color-foreground: var(--foreground);
|
|
248
|
+
|
|
249
|
+
--color-card: var(--card);
|
|
250
|
+
--color-card-foreground: var(--card-foreground);
|
|
251
|
+
|
|
252
|
+
--color-popover: var(--popover);
|
|
253
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
254
|
+
|
|
255
|
+
--color-primary: var(--primary);
|
|
256
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
257
|
+
|
|
258
|
+
--color-secondary: var(--secondary);
|
|
259
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
260
|
+
|
|
261
|
+
--color-muted: var(--muted);
|
|
262
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
263
|
+
|
|
264
|
+
--color-accent: var(--accent);
|
|
265
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
266
|
+
|
|
267
|
+
--color-destructive: var(--destructive);
|
|
268
|
+
--color-destructive-foreground: var(--destructive-foreground);
|
|
269
|
+
|
|
270
|
+
--color-border: var(--border);
|
|
271
|
+
--color-input: var(--input);
|
|
272
|
+
--color-ring: var(--ring);
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
--color-primary-light: var(--color-primary-light);
|
|
276
|
+
/* --color-primary: var(--color-primary); -> Overridden/merged above */
|
|
277
|
+
--color-primary-dark: var(--color-primary-dark);
|
|
278
|
+
--color-primary-fg: var(--color-primary-fg);
|
|
279
|
+
--color-primary-fg-light: var(--color-primary-fg-light);
|
|
280
|
+
|
|
281
|
+
--color-danger-light: var(--color-danger-light);
|
|
282
|
+
--color-danger: var(--color-danger);
|
|
283
|
+
--color-danger-dark: var(--color-danger-dark);
|
|
284
|
+
--color-danger-fg: var(--color-danger-fg);
|
|
285
|
+
--color-danger-fg-light: var(--color-danger-fg-light);
|
|
286
|
+
|
|
287
|
+
--color-warning-light: var(--color-warning-light);
|
|
288
|
+
--color-warning: var(--color-warning);
|
|
289
|
+
--color-warning-dark: var(--color-warning-dark);
|
|
290
|
+
--color-warning-fg: var(--color-warning-fg);
|
|
291
|
+
--color-warning-fg-light: var(--color-warning-fg-light);
|
|
292
|
+
|
|
293
|
+
--color-info-light: var(--color-info-light);
|
|
294
|
+
--color-info: var(--color-info);
|
|
295
|
+
--color-info-dark: var(--color-info-dark);
|
|
296
|
+
--color-info-fg: var(--color-info-fg);
|
|
297
|
+
--color-info-fg-light: var(--color-info-fg-light);
|
|
298
|
+
|
|
299
|
+
--color-success-light: var(--color-success-light);
|
|
300
|
+
--color-success: var(--color-success);
|
|
301
|
+
--color-success-dark: var(--color-success-dark);
|
|
302
|
+
--color-success-fg: var(--color-success-fg);
|
|
303
|
+
--color-success-fg-light: var(--color-success-fg-light);
|
|
304
|
+
|
|
305
|
+
/* Shadows */
|
|
306
|
+
--shadow-dropdown: 0 3px 4px -3px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 3%);
|
|
307
|
+
--shadow-offcanvas: 0 10px 15px -3px rgb(0 0 0 / 0.1),
|
|
308
|
+
0 4px 6px -4px rgb(0 0 0 / 0.1);
|
|
309
|
+
--shadow-card: 0 1px 3px 0 rgb(0 0 0 / 0.1),
|
|
310
|
+
0 1px 2px -1px rgb(0 0 0 / 0.1);
|
|
311
|
+
--shadow-DEFAULT: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
|
312
|
+
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1),
|
|
313
|
+
0 4px 6px -4px rgb(0 0 0 / 0.1);
|
|
314
|
+
--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1),
|
|
315
|
+
0 8px 10px -6px rgb(0 0 0 / 0.1);
|
|
316
|
+
|
|
317
|
+
/* Radii */
|
|
318
|
+
--radius: 0.5rem;
|
|
319
|
+
--radius-sm: calc(var(--radius) - 2px);
|
|
320
|
+
--radius-md: var(--radius);
|
|
321
|
+
--radius-lg: calc(var(--radius) + 3px);
|
|
322
|
+
--radius-xl: calc(var(--radius) + 5px);
|
|
323
|
+
--radius-2xl: calc(var(--radius) + 7px);
|
|
324
|
+
|
|
325
|
+
/* Animations */
|
|
326
|
+
--animate-accordion-down: accordion-down 0.2s ease-out;
|
|
327
|
+
--animate-accordion-up: accordion-up 0.2s ease-out;
|
|
328
|
+
--animate-ripple: ripple 600ms linear;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/* --- base.css --- */
|
|
332
|
+
*,
|
|
333
|
+
*::before,
|
|
334
|
+
*::after {
|
|
335
|
+
box-sizing: border-box;
|
|
336
|
+
letter-spacing: -0.01px;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
html {
|
|
340
|
+
scroll-behavior: smooth;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
@layer components {
|
|
345
|
+
body {
|
|
346
|
+
@apply bg-background text-foreground;
|
|
347
|
+
font-feature-settings: "rlig" 1, "calt" 1;
|
|
348
|
+
font-family: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji',
|
|
349
|
+
'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
/* Ripple */
|
|
354
|
+
span.ripple {
|
|
355
|
+
position: absolute;
|
|
356
|
+
border-radius: 50%;
|
|
357
|
+
transform: scale(0);
|
|
358
|
+
animation: ripple 600ms linear;
|
|
359
|
+
background-color: rgba(255, 255, 255, 0.094);
|
|
360
|
+
pointer-events: none;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
*,
|
|
364
|
+
::before,
|
|
365
|
+
::after {
|
|
366
|
+
@apply border-border;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
h1,
|
|
370
|
+
.h1,
|
|
371
|
+
h2,
|
|
372
|
+
.h2,
|
|
373
|
+
h3,
|
|
374
|
+
.h3,
|
|
375
|
+
h4,
|
|
376
|
+
.h4 {
|
|
377
|
+
@apply font-bold text-gray-900;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
h5,
|
|
381
|
+
.h5,
|
|
382
|
+
h6,
|
|
383
|
+
.h6 {
|
|
384
|
+
@apply font-sans text-gray-900;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
h1,
|
|
388
|
+
.h1 {
|
|
389
|
+
@apply text-3xl;
|
|
390
|
+
line-height: 1.3em;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
h2,
|
|
394
|
+
.h2 {
|
|
395
|
+
@apply text-2xl;
|
|
396
|
+
line-height: 1.3em;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
h3,
|
|
400
|
+
.h3 {
|
|
401
|
+
@apply text-xl;
|
|
402
|
+
line-height: 1.25em;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
h4,
|
|
406
|
+
.h4 {
|
|
407
|
+
@apply text-lg;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
h5,
|
|
411
|
+
.h5 {
|
|
412
|
+
@apply font-semibold;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
h6,
|
|
416
|
+
.h6 {
|
|
417
|
+
@apply font-medium;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
small {
|
|
421
|
+
@apply text-sm;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
:root {
|
|
425
|
+
scroll-behavior: smooth;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
.dropdown .tooltip-content {
|
|
429
|
+
padding: 0 !important;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
.basic-tooltip .tooltip-content {
|
|
433
|
+
padding: 0.3em 0.7em !important;
|
|
434
|
+
font-size: 0.8em
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
@keyframes accordion-down {
|
|
440
|
+
from {
|
|
441
|
+
height: 0;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
to {
|
|
445
|
+
height: var(--radix-accordion-content-height);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
@keyframes accordion-up {
|
|
450
|
+
from {
|
|
451
|
+
height: var(--radix-accordion-content-height);
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
to {
|
|
455
|
+
height: 0;
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
@keyframes ripple {
|
|
460
|
+
to {
|
|
461
|
+
transform: scale(4);
|
|
462
|
+
opacity: 0;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
#icon-picker {
|
|
467
|
+
--iconPicker-text: theme('colors.gray.700');
|
|
468
|
+
--iconPicker-border: theme('colors.gray.250');
|
|
469
|
+
--iconPicker-primary: theme('colors.primary.DEFAULT');
|
|
470
|
+
--iconPicker-primary-fg: theme('colors.primary.fg');
|
|
471
|
+
--iconPicker-primary-hover: theme('colors.primary.dark');
|
|
472
|
+
--iconPicker-radius: 0.375em;
|
|
473
|
+
--iconPicker-gap: 0.25em;
|
|
474
|
+
--iconPicker-input-height: 2.125em;
|
|
475
|
+
--iconPicker-selected-bg: theme('colors.gray.100');
|
|
476
|
+
--iconPicker-font-base: 15.5px;
|
|
477
|
+
--iconPicker-transition: all 0.2s ease;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
/* --- input.css --- */
|
|
481
|
+
input[type='number']::-webkit-inner-spin-button,
|
|
482
|
+
input[type='number']::-webkit-outer-spin-button {
|
|
483
|
+
-webkit-appearance: none;
|
|
484
|
+
margin: 0;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
/* Firefox */
|
|
488
|
+
input[type='number'] {
|
|
489
|
+
-moz-appearance: textfield;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
/* Hide the stepper controls */
|
|
493
|
+
input[type='number']::-webkit-inner-spin-button,
|
|
494
|
+
input[type='number']::-webkit-outer-spin-button {
|
|
495
|
+
-webkit-appearance: none;
|
|
496
|
+
margin: 0;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
input:-webkit-autofill,
|
|
500
|
+
input:-webkit-autofill:hover,
|
|
501
|
+
input:-webkit-autofill:focus,
|
|
502
|
+
textarea:-webkit-autofill,
|
|
503
|
+
textarea:-webkit-autofill:hover,
|
|
504
|
+
textarea:-webkit-autofill:focus,
|
|
505
|
+
select:-webkit-autofill,
|
|
506
|
+
select:-webkit-autofill:hover,
|
|
507
|
+
select:-webkit-autofill:focus {
|
|
508
|
+
-webkit-text-fill-color: theme('colors.gray.900');
|
|
509
|
+
-webkit-box-shadow: 0 0 0px 1000px theme('colors.body') inset;
|
|
510
|
+
transition: background-color 5000s ease-in-out 0s;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
input[type='number']::-webkit-inner-spin-button,
|
|
514
|
+
input[type='number']::-webkit-outer-spin-button {
|
|
515
|
+
opacity: 0;
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
input[type='date']::-webkit-inner-spin-button,
|
|
519
|
+
input[type='date']::-webkit-calendar-picker-indicator {
|
|
520
|
+
display: none;
|
|
521
|
+
-webkit-appearance: none;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
textarea {
|
|
525
|
+
scrollbar-width: thin !important;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
textarea::-webkit-scrollbar {
|
|
529
|
+
width: 6px !important;
|
|
530
|
+
height: 6px !important;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
textarea::-webkit-scrollbar-track {
|
|
534
|
+
border-radius: 10px !important;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
textarea::-webkit-scrollbar-thumb {
|
|
538
|
+
border-radius: 10px !important;
|
|
539
|
+
border: 1px solid transparent !important;
|
|
540
|
+
background-clip: padding-box !important;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
/* --- Vite Generated CSS --- */
|
|
544
|
+
.accordion-enter-active[data-v-d71e56f7],.accordion-leave-active[data-v-d71e56f7]{transition:height .3s ease-in-out}.attached-group[data-v-1a20a82d]:not(.vertical-group) button{border-radius:0}.attached-group[data-v-1a20a82d] button{position:relative;--radius: .375rem}.attached-group[data-v-1a20a82d] button:focus-visible,.attached-group[data-v-1a20a82d] button:hover{z-index:10}.attached-group[data-v-1a20a82d]:not(.vertical-group) button:not(:first-child){margin-left:-1px}.attached-group[data-v-1a20a82d]: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-1a20a82d]:not(.vertical-group) button:not(:first-child):not(:last-child){border-radius:0}.attached-group[data-v-1a20a82d]: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-1a20a82d] button:not(:first-child){margin-top:-1px}.vertical-group[data-v-1a20a82d] 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-1a20a82d] button:not(:first-child):not(:last-child){border-radius:0}.vertical-group[data-v-1a20a82d] 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-1a20a82d]: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-1a20a82d] 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-1a20a82d] button:not(:first-child):not(.border):before{width:100%}.attached-group[data-v-1a20a82d]:not(.vertical-group) button:not(:first-child):not(.border):before{height:100%}.IroBox{border-radius:8px!important}.heatmap-container[data-v-7e3a425e]{width:100%;height:100%;display:flex;flex-direction:column;min-height:0}.heatmap-wrapper[data-v-7e3a425e]{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-7e3a425e]{width:fit-content;height:fit-content;transition:all .2s ease-in-out}.heatmap-cell[data-v-7e3a425e]{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-7e3a425e]{cursor:pointer}.heatmap-cell-interactive[data-v-7e3a425e]: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-7e3a425e]{opacity:.6}.heatmap-cell-hovered[data-v-7e3a425e]{outline:2px solid var(--primary);outline-offset:1px}.heatmap-cell-label[data-v-7e3a425e]{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-7e3a425e]{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-7e3a425e]{font-weight:500}.heatmap-legend-colors[data-v-7e3a425e]{display:flex;gap:.125rem}.heatmap-legend-item[data-v-7e3a425e]{width:.75rem;height:.75rem;border-radius:.375rem;border:1px solid var(--border)}@media(max-width:640px){.heatmap-wrapper[data-v-7e3a425e]{padding:12px}.heatmap-cell[data-v-7e3a425e]{border-radius:2px}.heatmap-cell-label[data-v-7e3a425e]{font-size:7px}}@media(min-width:641px)and (max-width:1023px){.heatmap-wrapper[data-v-7e3a425e]{padding:14px}.heatmap-cell[data-v-7e3a425e]{border-radius:2px}}@media(min-width:1024px){.heatmap-wrapper[data-v-7e3a425e]{padding:16px}.heatmap-cell[data-v-7e3a425e]{border-radius:3px}}.masonry-item[data-v-314f8a7f]{content-visibility:auto;contain-intrinsic-size:1px 200px}.slide-right-enter-active[data-v-fe22a19d],.slide-right-leave-active[data-v-fe22a19d],.slide-left-enter-active[data-v-fe22a19d],.slide-left-leave-active[data-v-fe22a19d]{transition:transform .3s ease-in-out}.slide-right-enter-from[data-v-fe22a19d],.slide-right-leave-to[data-v-fe22a19d]{transform:translate(100%)}.slide-left-enter-from[data-v-fe22a19d],.slide-left-leave-to[data-v-fe22a19d]{transform:translate(-100%)}.ease-out-spring[data-v-aa299289],.ease-spring[data-v-aa299289]{transition-timing-function:cubic-bezier(.16,1,.3,1)}
|
|
545
|
+
|
package/index.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.accordion-enter-active[data-v-d71e56f7],.accordion-leave-active[data-v-d71e56f7]{transition:height .3s ease-in-out}.attached-group[data-v-1a20a82d]:not(.vertical-group) button{border-radius:0}.attached-group[data-v-1a20a82d] button{position:relative;--radius: .375rem}.attached-group[data-v-1a20a82d] button:focus-visible,.attached-group[data-v-1a20a82d] button:hover{z-index:10}.attached-group[data-v-1a20a82d]:not(.vertical-group) button:not(:first-child){margin-left:-1px}.attached-group[data-v-1a20a82d]: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-1a20a82d]:not(.vertical-group) button:not(:first-child):not(:last-child){border-radius:0}.attached-group[data-v-1a20a82d]: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-1a20a82d] button:not(:first-child){margin-top:-1px}.vertical-group[data-v-1a20a82d] 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-1a20a82d] button:not(:first-child):not(:last-child){border-radius:0}.vertical-group[data-v-1a20a82d] 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-1a20a82d]: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-1a20a82d] 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-1a20a82d] button:not(:first-child):not(.border):before{width:100%}.attached-group[data-v-1a20a82d]:not(.vertical-group) button:not(:first-child):not(.border):before{height:100%}.IroBox{border-radius:8px!important}.heatmap-container[data-v-7e3a425e]{width:100%;height:100%;display:flex;flex-direction:column;min-height:0}.heatmap-wrapper[data-v-7e3a425e]{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-7e3a425e]{width:fit-content;height:fit-content;transition:all .2s ease-in-out}.heatmap-cell[data-v-7e3a425e]{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-7e3a425e]{cursor:pointer}.heatmap-cell-interactive[data-v-7e3a425e]: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-7e3a425e]{opacity:.6}.heatmap-cell-hovered[data-v-7e3a425e]{outline:2px solid var(--primary);outline-offset:1px}.heatmap-cell-label[data-v-7e3a425e]{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-7e3a425e]{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-7e3a425e]{font-weight:500}.heatmap-legend-colors[data-v-7e3a425e]{display:flex;gap:.125rem}.heatmap-legend-item[data-v-7e3a425e]{width:.75rem;height:.75rem;border-radius:.375rem;border:1px solid var(--border)}@media(max-width:640px){.heatmap-wrapper[data-v-7e3a425e]{padding:12px}.heatmap-cell[data-v-7e3a425e]{border-radius:2px}.heatmap-cell-label[data-v-7e3a425e]{font-size:7px}}@media(min-width:641px)and (max-width:1023px){.heatmap-wrapper[data-v-7e3a425e]{padding:14px}.heatmap-cell[data-v-7e3a425e]{border-radius:2px}}@media(min-width:1024px){.heatmap-wrapper[data-v-7e3a425e]{padding:16px}.heatmap-cell[data-v-7e3a425e]{border-radius:3px}}.masonry-item[data-v-5c6cb3dc]{content-visibility:auto;contain-intrinsic-size:1px 200px}.slide-right-enter-active[data-v-fe22a19d],.slide-right-leave-active[data-v-fe22a19d],.slide-left-enter-active[data-v-fe22a19d],.slide-left-leave-active[data-v-fe22a19d]{transition:transform .3s ease-in-out}.slide-right-enter-from[data-v-fe22a19d],.slide-right-leave-to[data-v-fe22a19d]{transform:translate(100%)}.slide-left-enter-from[data-v-fe22a19d],.slide-left-leave-to[data-v-fe22a19d]{transform:translate(-100%)}.ease-out-spring[data-v-aa299289],.ease-spring[data-v-aa299289]{transition-timing-function:cubic-bezier(.16,1,.3,1)}
|