vlite3 1.4.41 → 1.5.0
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/components/CategoryManager/CategoryManager.vue.d.ts +2 -2
- package/components/CategoryManager/CategoryManager.vue2.js +1 -1
- package/components/CommandPalette/CommandPaletteContent.vue2.js +1 -1
- package/components/CommandPalette/{CommandPaletteItem.vue2.js → CommandPaletteItem.vue.js} +1 -1
- package/components/DataTable/DataTable.vue.d.ts +1 -1
- package/components/Form/{AccordionView.vue2.js → AccordionView.vue.js} +1 -1
- package/components/Form/index.vue2.js +1 -1
- package/components/NavbarCommandPalette.vue.js +1 -1
- package/components/Screen/ScreenFilter.vue.js +1 -1
- package/components/Tabes/Tabes.vue.d.ts +17 -1
- package/components/Tabes/Tabes.vue.js +3 -3
- package/components/Tabes/Tabes.vue2.js +243 -189
- package/components/Tabes/tabes.utils.d.ts +7 -0
- package/components/Tabes/tabes.utils.js +30 -22
- package/components/Tabes/types.d.ts +7 -0
- package/package.json +5 -4
- package/style.css +1 -1
|
@@ -18,22 +18,22 @@ declare const __VLS_component: import('vue').DefineComponent<CategoryManagerProp
|
|
|
18
18
|
onDelete: (item: CategoryItem) => any;
|
|
19
19
|
"update:modelValue": (val: CategoryItem[]) => any;
|
|
20
20
|
onAdd: (item: CategoryItem) => any;
|
|
21
|
-
onEdit: (item: CategoryItem) => any;
|
|
22
21
|
onReorder: (val: {
|
|
23
22
|
id: string | number;
|
|
24
23
|
parentId: string | number | null;
|
|
25
24
|
position: number;
|
|
26
25
|
}) => any;
|
|
26
|
+
onEdit: (item: CategoryItem) => any;
|
|
27
27
|
}, string, import('vue').PublicProps, Readonly<CategoryManagerProps> & Readonly<{
|
|
28
28
|
onOnDelete?: (item: CategoryItem) => any;
|
|
29
29
|
"onUpdate:modelValue"?: (val: CategoryItem[]) => any;
|
|
30
30
|
onOnAdd?: (item: CategoryItem) => any;
|
|
31
|
-
onOnEdit?: (item: CategoryItem) => any;
|
|
32
31
|
onOnReorder?: (val: {
|
|
33
32
|
id: string | number;
|
|
34
33
|
parentId: string | number | null;
|
|
35
34
|
position: number;
|
|
36
35
|
}) => any;
|
|
36
|
+
onOnEdit?: (item: CategoryItem) => any;
|
|
37
37
|
}>, {
|
|
38
38
|
size: "sm" | "md" | "lg";
|
|
39
39
|
loading: boolean;
|
|
@@ -4,7 +4,7 @@ import k from "../Icon.vue.js";
|
|
|
4
4
|
import { $t as E } from "../../utils/i18n.js";
|
|
5
5
|
import { useCommandPaletteItems as Y } from "./useCommandPaletteItems.js";
|
|
6
6
|
import { useCommandPaletteNav as Z } from "./useCommandPaletteNav.js";
|
|
7
|
-
import ee from "./CommandPaletteItem.
|
|
7
|
+
import ee from "./CommandPaletteItem.vue.js";
|
|
8
8
|
const te = { class: "command-palette-content flex flex-col w-full h-full max-h-[70vh]" }, oe = { class: "flex items-center gap-3 px-4 py-3 border-b border-border/80 shrink-0" }, se = ["placeholder"], ne = ["aria-label"], re = {
|
|
9
9
|
key: 0,
|
|
10
10
|
class: "flex flex-col items-center justify-center py-14 px-6 text-center select-none",
|
|
@@ -46,6 +46,7 @@ declare const __VLS_component: import('vue').DefineComponent<DataTableProps, {},
|
|
|
46
46
|
striped: boolean;
|
|
47
47
|
rows: any[];
|
|
48
48
|
headers: TableHeader[];
|
|
49
|
+
sortable: boolean;
|
|
49
50
|
emptyIcon: string;
|
|
50
51
|
selectedRows: any[];
|
|
51
52
|
hideSelectable: boolean;
|
|
@@ -57,7 +58,6 @@ declare const __VLS_component: import('vue').DefineComponent<DataTableProps, {},
|
|
|
57
58
|
keyField: string;
|
|
58
59
|
hoverable: boolean;
|
|
59
60
|
treeIndent: number;
|
|
60
|
-
sortable: boolean;
|
|
61
61
|
headerVariant: "default" | "minimal";
|
|
62
62
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
63
63
|
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as g, computed as d, openBlock as n, createElementBlock as R, createElementVNode as x, createBlock as s, withCtx as k, createTextVNode as B, toDisplayString as I, createCommentVNode as y, unref as l } from "vue";
|
|
2
2
|
import T from "./TableView.vue.js";
|
|
3
|
-
import C from "./AccordionView.
|
|
3
|
+
import C from "./AccordionView.vue.js";
|
|
4
4
|
import U from "../Label.vue.js";
|
|
5
5
|
import z from "../Button.vue.js";
|
|
6
6
|
import { useCustomFieldRows as N } from "./composables/useCustomFieldRows.js";
|
|
@@ -3,7 +3,7 @@ import L from "./Icon.vue.js";
|
|
|
3
3
|
import v from "./Modal.vue.js";
|
|
4
4
|
import N from "./CommandPalette/CommandPaletteContent.vue.js";
|
|
5
5
|
import { $t as U } from "../utils/i18n.js";
|
|
6
|
-
/* empty css
|
|
6
|
+
/* empty css */
|
|
7
7
|
const V = { class: "block truncate -text-fs-1.5" }, S = { class: "ms-auto inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded text-[10px] font-mono font-medium border border-border/80 bg-background text-muted-foreground ms-1" }, A = /* @__PURE__ */ x({
|
|
8
8
|
__name: "NavbarCommandPalette",
|
|
9
9
|
props: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TabesMenuSelectPayload, TabesOption, TabesSize, TabesVariant } from './types';
|
|
1
|
+
import { TabesMenuSelectPayload, TabesOption, TabesReorderPayload, TabesSize, TabesVariant } from './types';
|
|
2
2
|
interface Props {
|
|
3
3
|
options: TabesOption[];
|
|
4
4
|
modelValue: string | number;
|
|
@@ -18,6 +18,17 @@ interface Props {
|
|
|
18
18
|
* — matching Dropdown — instead of pinning LTR.
|
|
19
19
|
*/
|
|
20
20
|
direction?: 'ltr' | 'rtl' | 'auto';
|
|
21
|
+
/**
|
|
22
|
+
* Opt-in: let the user drag tabs into a new order. Off by default.
|
|
23
|
+
* The new order is persisted to localStorage and restored on reload.
|
|
24
|
+
*/
|
|
25
|
+
sortable?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* localStorage slot for the persisted order (prefixed `builto-tabes-order-`).
|
|
28
|
+
* When omitted, a stable key is derived from the tab value set. Only used
|
|
29
|
+
* when `sortable` is on.
|
|
30
|
+
*/
|
|
31
|
+
storageKey?: string;
|
|
21
32
|
}
|
|
22
33
|
declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
23
34
|
change: (value: string | number) => any;
|
|
@@ -25,18 +36,23 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
25
36
|
"menu-select": (payload: TabesMenuSelectPayload) => any;
|
|
26
37
|
"menu-open": (tab: TabesOption) => any;
|
|
27
38
|
"menu-close": (tab: TabesOption) => any;
|
|
39
|
+
reorder: (payload: TabesReorderPayload) => any;
|
|
40
|
+
"update:options": (options: TabesOption[]) => any;
|
|
28
41
|
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
29
42
|
onChange?: (value: string | number) => any;
|
|
30
43
|
"onUpdate:modelValue"?: (value: string | number) => any;
|
|
31
44
|
"onMenu-select"?: (payload: TabesMenuSelectPayload) => any;
|
|
32
45
|
"onMenu-open"?: (tab: TabesOption) => any;
|
|
33
46
|
"onMenu-close"?: (tab: TabesOption) => any;
|
|
47
|
+
onReorder?: (payload: TabesReorderPayload) => any;
|
|
48
|
+
"onUpdate:options"?: (options: TabesOption[]) => any;
|
|
34
49
|
}>, {
|
|
35
50
|
variant: TabesVariant;
|
|
36
51
|
size: TabesSize;
|
|
37
52
|
block: boolean;
|
|
38
53
|
direction: "ltr" | "rtl" | "auto";
|
|
39
54
|
wrap: boolean;
|
|
55
|
+
sortable: boolean;
|
|
40
56
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
41
57
|
rootRef: HTMLDivElement;
|
|
42
58
|
scrollRef: HTMLDivElement;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import o from "./Tabes.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
4
|
-
const
|
|
3
|
+
import a from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const f = /* @__PURE__ */ a(o, [["__scopeId", "data-v-de4ab2fa"]]);
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
f as default
|
|
7
7
|
};
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { useResizeObserver as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
|
|
1
|
+
import { defineComponent as qe, ref as d, computed as l, watch as b, onMounted as Ke, onBeforeUnmount as Ne, openBlock as h, createElementBlock as M, normalizeClass as i, withDirectives as D, createVNode as C, vShow as A, createElementVNode as g, normalizeStyle as He, createCommentVNode as N, Fragment as ne, renderList as We, unref as se, createBlock as F, withCtx as oe, toDisplayString as le, withMemo as Ge, resolveDynamicComponent as Qe, mergeProps as Ue, nextTick as Je } from "vue";
|
|
2
|
+
import { useResizeObserver as ie } from "@vueuse/core";
|
|
3
|
+
import { useDraggable as Xe } from "vue-draggable-plus";
|
|
4
|
+
import { hashTabesValues as Ye, getActiveMarkerKey as Ze, isMenuTab as ce, isTabActive as ue, scrollTabesStrip as de, getTabesScrollOverflow as _e } from "./tabes.utils.js";
|
|
5
|
+
import { measureTabesMarkerGeometry as et, toTabesLocalScrollDelta as fe } from "./TabesMarkerGeometry.js";
|
|
6
|
+
import S from "../Icon.vue.js";
|
|
7
|
+
import me from "../FadeOverlay/FadeOverlay.vue.js";
|
|
8
|
+
import tt from "../Dropdown/Dropdown.vue.js";
|
|
9
|
+
import { $t as rt } from "../../utils/i18n.js";
|
|
10
|
+
import { useRtl as at, resolveDirFromAncestors as nt } from "../../composables/useRtl.js";
|
|
11
|
+
import { usePersistentState as st } from "../../utils/usePersistentState.js";
|
|
12
|
+
const ot = ["dir"], lt = ["data-variant"], it = ["aria-selected", "aria-expanded", "disabled"], ve = 200, yt = /* @__PURE__ */ qe({
|
|
11
13
|
__name: "Tabes",
|
|
12
14
|
props: {
|
|
13
15
|
options: {},
|
|
@@ -18,135 +20,183 @@ const Ze = ["dir"], _e = ["data-variant"], et = ["aria-selected", "aria-expanded
|
|
|
18
20
|
textClass: {},
|
|
19
21
|
wrap: { type: Boolean, default: !1 },
|
|
20
22
|
tabClass: {},
|
|
21
|
-
direction: { default: "auto" }
|
|
23
|
+
direction: { default: "auto" },
|
|
24
|
+
sortable: { type: Boolean, default: !1 },
|
|
25
|
+
storageKey: {}
|
|
22
26
|
},
|
|
23
|
-
emits: ["update:modelValue", "change", "menu-select", "menu-open", "menu-close"],
|
|
24
|
-
setup(
|
|
25
|
-
const r =
|
|
26
|
-
|
|
27
|
-
},
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
emits: ["update:modelValue", "change", "menu-select", "menu-open", "menu-close", "reorder", "update:options"],
|
|
28
|
+
setup(o, { emit: be }) {
|
|
29
|
+
const r = o, f = be, H = d(null), k = d(null), p = d(null), y = /* @__PURE__ */ new Map(), W = at(), E = d(null), V = l(() => r.direction === "rtl" ? "rtl" : r.direction === "ltr" ? "ltr" : E.value ? E.value : W.value ? "rtl" : "ltr"), z = l(() => V.value === "rtl"), G = () => {
|
|
30
|
+
E.value = nt(H.value);
|
|
31
|
+
}, Q = r.sortable ? st(
|
|
32
|
+
`tabes-order-${r.storageKey ?? `auto-${Ye(r.options)}`}`,
|
|
33
|
+
[],
|
|
34
|
+
{ writeDefaults: !1 }
|
|
35
|
+
) : d([]), L = (e) => {
|
|
36
|
+
if (!r.sortable) return [...e];
|
|
37
|
+
const a = Q.value;
|
|
38
|
+
if (!a?.length) return [...e];
|
|
39
|
+
const t = new Map(e.map((s) => [s.value, s])), n = [];
|
|
40
|
+
for (const s of a) {
|
|
41
|
+
const u = t.get(s);
|
|
42
|
+
u && (n.push(u), t.delete(s));
|
|
43
|
+
}
|
|
44
|
+
for (const s of e) t.has(s.value) && n.push(s);
|
|
45
|
+
return n;
|
|
46
|
+
}, m = d(L(r.options)), ge = () => {
|
|
47
|
+
const e = m.value.map((a) => a.value);
|
|
48
|
+
Q.value = e, f("reorder", { options: [...m.value], order: e }), f("update:options", [...m.value]), c({ ensureVisible: !0 });
|
|
49
|
+
}, pe = (e) => {
|
|
50
|
+
const { item: a, from: t, oldIndex: n, oldDraggableIndex: s, newDraggableIndex: u } = e;
|
|
51
|
+
a.parentNode?.removeChild(a);
|
|
52
|
+
const K = typeof n == "number" ? t.children[n] ?? null : null;
|
|
53
|
+
if (t.insertBefore(a, K), s == null || u == null || s === u)
|
|
54
|
+
return;
|
|
55
|
+
const v = [...m.value], [x] = v.splice(s, 1);
|
|
56
|
+
x && (v.splice(u, 0, x), m.value = v, ge());
|
|
57
|
+
}, B = d(!1), $ = d(!1);
|
|
58
|
+
let T = 0, U = 0, R = !1, O = !1, I = 0;
|
|
59
|
+
const J = () => {
|
|
60
|
+
if (!p.value) return;
|
|
61
|
+
const { canScrollStart: e, canScrollEnd: a } = _e(
|
|
62
|
+
p.value
|
|
33
63
|
);
|
|
34
|
-
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
|
|
64
|
+
B.value !== e && (B.value = e), $.value !== a && ($.value = a);
|
|
65
|
+
}, he = () => {
|
|
66
|
+
O || (O = !0, U = requestAnimationFrame(() => {
|
|
67
|
+
O = !1, J();
|
|
38
68
|
}));
|
|
39
|
-
},
|
|
40
|
-
if (!
|
|
41
|
-
const e =
|
|
69
|
+
}, xe = () => de(p.value, "start", ve), ye = () => de(p.value, "end", ve), X = l(() => Ze(r.options, r.modelValue)), we = () => {
|
|
70
|
+
if (!p.value || !k.value) return;
|
|
71
|
+
const e = X.value;
|
|
42
72
|
if (e === void 0) return;
|
|
43
|
-
const
|
|
44
|
-
if (!
|
|
45
|
-
const t =
|
|
46
|
-
|
|
47
|
-
left:
|
|
73
|
+
const a = y.get(e);
|
|
74
|
+
if (!a) return;
|
|
75
|
+
const t = p.value, n = a.getBoundingClientRect(), s = t.getBoundingClientRect(), u = 40;
|
|
76
|
+
n.left < s.left + u ? t.scrollBy({
|
|
77
|
+
left: fe(
|
|
48
78
|
t,
|
|
49
|
-
|
|
79
|
+
n.left - s.left - u
|
|
50
80
|
),
|
|
51
81
|
behavior: "smooth"
|
|
52
|
-
}) :
|
|
53
|
-
left:
|
|
82
|
+
}) : n.right > s.right - u && t.scrollBy({
|
|
83
|
+
left: fe(
|
|
54
84
|
t,
|
|
55
|
-
|
|
85
|
+
n.right - s.right + u
|
|
56
86
|
),
|
|
57
87
|
behavior: "smooth"
|
|
58
88
|
});
|
|
59
|
-
},
|
|
60
|
-
e instanceof HTMLElement ?
|
|
61
|
-
},
|
|
89
|
+
}, Y = (e, a) => {
|
|
90
|
+
e instanceof HTMLElement ? y.set(a, e) : e && typeof e == "object" && "$el" in e && e.$el instanceof HTMLElement ? y.set(a, e.$el) : y.delete(a);
|
|
91
|
+
}, w = d({
|
|
62
92
|
width: "0px",
|
|
63
93
|
height: "0px",
|
|
64
94
|
left: "0px",
|
|
65
95
|
top: "0px",
|
|
66
96
|
transform: "translate(0px, 0px)",
|
|
67
97
|
opacity: 0
|
|
68
|
-
}),
|
|
69
|
-
|
|
70
|
-
...
|
|
98
|
+
}), j = d(!1), P = () => {
|
|
99
|
+
w.value.opacity !== 0 && (w.value = {
|
|
100
|
+
...w.value,
|
|
71
101
|
opacity: 0
|
|
72
102
|
});
|
|
73
|
-
},
|
|
74
|
-
await
|
|
75
|
-
const e = k.value,
|
|
103
|
+
}, ke = async () => {
|
|
104
|
+
await Je();
|
|
105
|
+
const e = k.value, a = X.value, t = a !== void 0 ? y.get(a) : void 0;
|
|
76
106
|
if (!e || !t) {
|
|
77
|
-
|
|
107
|
+
P();
|
|
78
108
|
return;
|
|
79
109
|
}
|
|
80
110
|
if (e.offsetWidth <= 0 || t.offsetWidth <= 0) {
|
|
81
|
-
|
|
111
|
+
P();
|
|
82
112
|
return;
|
|
83
113
|
}
|
|
84
|
-
const { width:
|
|
85
|
-
width: `${
|
|
86
|
-
height: `${
|
|
114
|
+
const { width: n, height: s, left: u, top: K } = et(e, t), v = {
|
|
115
|
+
width: `${n}px`,
|
|
116
|
+
height: `${s}px`,
|
|
87
117
|
left: "0px",
|
|
88
118
|
top: "0px",
|
|
89
|
-
transform: `translate(${
|
|
119
|
+
transform: `translate(${u}px, ${K}px)`,
|
|
90
120
|
opacity: 1
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
|
|
121
|
+
}, x = w.value;
|
|
122
|
+
x.width === v.width && x.height === v.height && x.transform === v.transform && x.opacity === v.opacity || (w.value = v, j.value || (cancelAnimationFrame(I), I = requestAnimationFrame(() => {
|
|
123
|
+
j.value = !0;
|
|
94
124
|
})));
|
|
95
125
|
};
|
|
96
|
-
let
|
|
97
|
-
const
|
|
98
|
-
await
|
|
126
|
+
let q = !1;
|
|
127
|
+
const Z = async (e) => {
|
|
128
|
+
await ke(), J(), e?.ensureVisible && we();
|
|
99
129
|
}, c = (e) => {
|
|
100
|
-
e?.ensureVisible && (
|
|
101
|
-
|
|
102
|
-
const
|
|
103
|
-
|
|
130
|
+
e?.ensureVisible && (q = !0), !R && (R = !0, cancelAnimationFrame(T), T = requestAnimationFrame(() => {
|
|
131
|
+
R = !1;
|
|
132
|
+
const a = q;
|
|
133
|
+
q = !1, Z({ ensureVisible: a });
|
|
104
134
|
}));
|
|
105
135
|
};
|
|
106
|
-
|
|
136
|
+
ie(p, () => c()), ie(k, () => c()), b(
|
|
107
137
|
() => r.modelValue,
|
|
108
138
|
() => c({ ensureVisible: !0 })
|
|
109
|
-
),
|
|
139
|
+
), b(
|
|
110
140
|
() => r.options,
|
|
111
|
-
() =>
|
|
112
|
-
|
|
141
|
+
(e) => {
|
|
142
|
+
m.value = L(e), c();
|
|
143
|
+
}
|
|
144
|
+
), b(
|
|
145
|
+
() => r.sortable,
|
|
146
|
+
() => {
|
|
147
|
+
m.value = L(r.options), c();
|
|
148
|
+
}
|
|
149
|
+
), b(
|
|
113
150
|
() => r.size,
|
|
114
151
|
() => c()
|
|
115
|
-
),
|
|
152
|
+
), b(
|
|
116
153
|
() => r.block,
|
|
117
154
|
() => c()
|
|
118
|
-
),
|
|
155
|
+
), b(
|
|
119
156
|
() => r.wrap,
|
|
120
157
|
() => c()
|
|
121
|
-
),
|
|
158
|
+
), b(
|
|
122
159
|
() => r.variant,
|
|
123
160
|
() => c()
|
|
124
|
-
),
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
161
|
+
), b(W, () => G()), b(V, () => c({ ensureVisible: !0 })), r.sortable && Xe(k, m, {
|
|
162
|
+
animation: 150,
|
|
163
|
+
draggable: "[data-tabes-sortable]",
|
|
164
|
+
filter: "[data-tabes-disabled]",
|
|
165
|
+
ghostClass: "tabes-drag-ghost",
|
|
166
|
+
chosenClass: "tabes-drag-chosen",
|
|
167
|
+
dragClass: "tabes-drag-active",
|
|
168
|
+
// Hide the marker while dragging (it can't track a moving target), then
|
|
169
|
+
// re-measure on drop so it lands on the active tab's new position.
|
|
170
|
+
onStart: () => P(),
|
|
171
|
+
onEnd: () => c(),
|
|
172
|
+
// Own the reorder so the marker child can't skew the list indices.
|
|
173
|
+
customUpdate: (e) => pe(e)
|
|
174
|
+
}), Ke(() => {
|
|
175
|
+
G(), Z({ ensureVisible: !0 });
|
|
176
|
+
}), Ne(() => {
|
|
177
|
+
cancelAnimationFrame(T), cancelAnimationFrame(U), cancelAnimationFrame(I), R = !1, O = !1, y.clear();
|
|
128
178
|
});
|
|
129
|
-
const
|
|
179
|
+
const Ce = l(() => {
|
|
130
180
|
const e = r.variant === "line";
|
|
131
181
|
return r.block || e ? "flex w-full relative" : "inline-flex max-w-full relative";
|
|
132
|
-
}),
|
|
182
|
+
}), _ = l(() => [
|
|
133
183
|
"absolute top-0 bottom-0 z-20 flex items-center pointer-events-none transition-opacity duration-200",
|
|
134
184
|
r.variant === "line" ? "pb-[10px]" : ""
|
|
135
|
-
]),
|
|
136
|
-
e.disabled ||
|
|
137
|
-
},
|
|
185
|
+
]), Se = (e) => {
|
|
186
|
+
e.disabled || ce(e) || (f("update:modelValue", e.value), f("change", e.value));
|
|
187
|
+
}, Ve = (e, a) => {
|
|
138
188
|
if (e.disabled) return;
|
|
139
|
-
const t =
|
|
140
|
-
t != null && (
|
|
141
|
-
},
|
|
142
|
-
|
|
143
|
-
},
|
|
144
|
-
|
|
145
|
-
},
|
|
189
|
+
const t = a.value;
|
|
190
|
+
t != null && (f("update:modelValue", t), f("change", t), f("menu-select", { value: t, option: a.option, tab: e }));
|
|
191
|
+
}, ze = (e) => {
|
|
192
|
+
f("menu-open", e);
|
|
193
|
+
}, Be = (e) => {
|
|
194
|
+
f("menu-close", e), c();
|
|
195
|
+
}, $e = l(() => {
|
|
146
196
|
const e = r.variant === "line";
|
|
147
197
|
return (r.block || r.wrap) && !e ? "flex-1 min-w-max" : "shrink-0";
|
|
148
|
-
}),
|
|
149
|
-
const e = r.variant === "line",
|
|
198
|
+
}), Re = (e) => e.dropdown?.direction ?? V.value, Oe = l(() => z.value ? "right" : "left"), Me = l(() => z.value ? "left" : "right"), De = l(() => z.value ? "lucide:chevron-right" : "lucide:chevron-left"), Ae = l(() => z.value ? "lucide:chevron-left" : "lucide:chevron-right"), Fe = l(() => {
|
|
199
|
+
const e = r.variant === "line", a = {
|
|
150
200
|
surface: "bg-secondary/80 p-1",
|
|
151
201
|
primary: "bg-secondary p-1",
|
|
152
202
|
secondary: "bg-secondary p-1",
|
|
@@ -155,51 +205,51 @@ const Ze = ["dir"], _e = ["data-variant"], et = ["aria-selected", "aria-expanded
|
|
|
155
205
|
outline: "bg-transparent border border-border p-1",
|
|
156
206
|
line: "bg-transparent gap-6 rounded-none p-0 border-b border-border"
|
|
157
207
|
}, t = r.wrap && !e ? "flex-wrap" : "";
|
|
158
|
-
return [`${r.block || e ? "flex min-w-full w-max" : "inline-flex"} rounded-lg relative isolate ${t}`,
|
|
159
|
-
}),
|
|
208
|
+
return [`${r.block || e ? "flex min-w-full w-max" : "inline-flex"} rounded-lg relative isolate ${t}`, a[r.variant], r.sortable ? "is-sortable" : ""];
|
|
209
|
+
}), ee = l(() => r.variant === "surface" || r.variant === "primary" || r.variant === "secondary" ? "var(--color-secondary)" : r.variant === "danger" ? "color-mix(in srgb, var(--color-danger) 10%, transparent)" : r.variant === "success" ? "color-mix(in srgb, var(--color-success) 10%, transparent)" : "var(--color-background)"), te = {
|
|
160
210
|
sm: "text-xs px-2.5 py-1",
|
|
161
211
|
md: "-text-fs-2 px-3 py-1",
|
|
162
212
|
lg: "-text-fs-1 px-4 py-1"
|
|
163
|
-
},
|
|
164
|
-
const e = r.variant === "line",
|
|
165
|
-
return [
|
|
166
|
-
}),
|
|
167
|
-
const
|
|
168
|
-
let
|
|
169
|
-
if (
|
|
213
|
+
}, Ee = l(() => {
|
|
214
|
+
const e = r.variant === "line", a = e ? "relative z-10 flex items-center justify-center gap-2 font-medium transition-colors duration-50 ease-out cursor-pointer select-none outline-none pb-3 border-b-2 border-transparent hover:text-foreground shrink-0" : "relative z-10 flex items-center justify-center gap-2 font-medium transition-colors duration-50 ease-out cursor-pointer select-none rounded-md outline-none shrink-0", t = (r.block || r.wrap) && !e ? "flex-1" : "";
|
|
215
|
+
return [a, t];
|
|
216
|
+
}), re = (e) => {
|
|
217
|
+
const a = ue(e, r.modelValue), t = r.variant === "line";
|
|
218
|
+
let n = "";
|
|
219
|
+
if (a)
|
|
170
220
|
if (t)
|
|
171
|
-
|
|
221
|
+
n = r.wrap ? "text-primary !border-primary" : "text-primary";
|
|
172
222
|
else
|
|
173
223
|
switch (r.variant) {
|
|
174
224
|
case "surface":
|
|
175
|
-
|
|
225
|
+
n = r.wrap ? "text-foreground bg-[#ffff] dark:bg-[#0B0B0B] shadow-sm" : "text-foreground";
|
|
176
226
|
break;
|
|
177
227
|
case "primary":
|
|
178
|
-
|
|
228
|
+
n = r.wrap ? "text-primary-foreground bg-primary" : "text-primary-foreground";
|
|
179
229
|
break;
|
|
180
230
|
case "secondary":
|
|
181
|
-
|
|
231
|
+
n = r.wrap ? "text-secondary bg-secondary-foreground" : "text-secondary";
|
|
182
232
|
break;
|
|
183
233
|
case "danger":
|
|
184
|
-
|
|
234
|
+
n = r.wrap ? "text-danger-fg bg-danger" : "text-danger-fg";
|
|
185
235
|
break;
|
|
186
236
|
case "success":
|
|
187
|
-
|
|
237
|
+
n = r.wrap ? "text-success-fg bg-success" : "text-success-fg";
|
|
188
238
|
break;
|
|
189
239
|
case "outline":
|
|
190
|
-
|
|
240
|
+
n = r.wrap ? "text-accent-foreground bg-accent/50 ring-1 ring-border" : "text-accent-foreground";
|
|
191
241
|
break;
|
|
192
242
|
default:
|
|
193
|
-
|
|
243
|
+
n = "text-foreground";
|
|
194
244
|
}
|
|
195
245
|
else
|
|
196
|
-
|
|
197
|
-
const
|
|
198
|
-
return [
|
|
199
|
-
},
|
|
200
|
-
const
|
|
201
|
-
return r.variant === "line" ? `${
|
|
202
|
-
}),
|
|
246
|
+
n = t ? "text-muted-foreground" : "text-muted-foreground hover:text-foreground/80";
|
|
247
|
+
const s = e.disabled ? "opacity-50 cursor-not-allowed" : "";
|
|
248
|
+
return [Ee.value, n, r?.tabClass, s].join(" ");
|
|
249
|
+
}, Le = l(() => {
|
|
250
|
+
const a = `absolute z-0 pointer-events-none ${j.value ? "transition-all duration-300 ease-[cubic-bezier(0.25,0.1,0.25,1)]" : ""}`;
|
|
251
|
+
return r.variant === "line" ? `${a} !h-[2px] !top-auto bottom-0` : `${a} rounded-md shadow-sm`;
|
|
252
|
+
}), Te = () => ({
|
|
203
253
|
surface: "bg-[#ffff] dark:bg-[#0B0B0B]",
|
|
204
254
|
primary: "bg-primary",
|
|
205
255
|
secondary: "bg-secondary-foreground",
|
|
@@ -207,72 +257,74 @@ const Ze = ["dir"], _e = ["data-variant"], et = ["aria-selected", "aria-expanded
|
|
|
207
257
|
success: "bg-success",
|
|
208
258
|
outline: "bg-accent/50 ring-1 ring-border",
|
|
209
259
|
line: "bg-primary"
|
|
210
|
-
})[r.variant],
|
|
260
|
+
})[r.variant], ae = (e) => e.labelI18n ? rt(e.labelI18n) : e.label, Ie = (e) => e.to ? "router-link" : e.href ? "a" : "button", je = (e) => e.to ? { to: e.to } : e.href ? { href: e.href, target: "_blank", rel: "noopener noreferrer" } : { type: "button" }, Pe = (e) => [
|
|
211
261
|
r.size === "sm" ? "w-3 h-3" : "w-3.5 h-3.5",
|
|
212
262
|
"opacity-70 shrink-0 transition-transform duration-200",
|
|
213
263
|
e ? "rotate-180" : ""
|
|
214
264
|
].join(" ");
|
|
215
|
-
return (e,
|
|
265
|
+
return (e, a) => (h(), M("div", {
|
|
216
266
|
ref_key: "rootRef",
|
|
217
|
-
ref:
|
|
218
|
-
class:
|
|
219
|
-
dir:
|
|
267
|
+
ref: H,
|
|
268
|
+
class: i([Ce.value, "group"]),
|
|
269
|
+
dir: V.value
|
|
220
270
|
}, [
|
|
221
|
-
|
|
222
|
-
direction:
|
|
223
|
-
color:
|
|
271
|
+
D(C(me, {
|
|
272
|
+
direction: Oe.value,
|
|
273
|
+
color: ee.value,
|
|
224
274
|
coverage: "100px",
|
|
225
275
|
blur: "40px",
|
|
226
276
|
easing: "smooth",
|
|
227
277
|
tintOpacity: 1,
|
|
228
|
-
class:
|
|
278
|
+
class: i(["z-10 pointer-events-none", r.variant === "line" ? "" : "rounded-s-lg"])
|
|
229
279
|
}, null, 8, ["direction", "color", "class"]), [
|
|
230
|
-
[
|
|
280
|
+
[A, B.value]
|
|
231
281
|
]),
|
|
232
|
-
|
|
233
|
-
class:
|
|
282
|
+
D(g("div", {
|
|
283
|
+
class: i(["start-0 ps-1", _.value])
|
|
234
284
|
}, [
|
|
235
|
-
|
|
236
|
-
onClick:
|
|
285
|
+
g("button", {
|
|
286
|
+
onClick: xe,
|
|
237
287
|
class: "pointer-events-auto h-full px-1 flex items-center justify-center text-muted-foreground hover:text-foreground transition-colors focus:outline-none",
|
|
238
288
|
"aria-label": "Scroll backward"
|
|
239
289
|
}, [
|
|
240
|
-
|
|
241
|
-
icon:
|
|
290
|
+
C(S, {
|
|
291
|
+
icon: De.value,
|
|
242
292
|
class: "w-5 h-5"
|
|
243
293
|
}, null, 8, ["icon"])
|
|
244
294
|
])
|
|
245
295
|
], 2), [
|
|
246
|
-
[
|
|
296
|
+
[A, B.value]
|
|
247
297
|
]),
|
|
248
|
-
|
|
298
|
+
g("div", {
|
|
249
299
|
ref_key: "scrollRef",
|
|
250
|
-
ref:
|
|
300
|
+
ref: p,
|
|
251
301
|
class: "tabes-scroll flex-1 min-w-0 max-w-full overflow-x-auto scrollbar-hide scroll-smooth",
|
|
252
|
-
onScroll:
|
|
302
|
+
onScroll: he
|
|
253
303
|
}, [
|
|
254
|
-
|
|
304
|
+
g("div", {
|
|
255
305
|
ref_key: "containerRef",
|
|
256
306
|
ref: k,
|
|
257
|
-
class:
|
|
307
|
+
class: i([Fe.value, "tabes-container"]),
|
|
258
308
|
role: "tablist",
|
|
259
309
|
"data-variant": r.variant,
|
|
260
310
|
"data-tabes": ""
|
|
261
311
|
}, [
|
|
262
|
-
|
|
312
|
+
o.modelValue !== void 0 && !o.wrap ? (h(), M("div", {
|
|
263
313
|
key: 0,
|
|
264
|
-
class:
|
|
265
|
-
style:
|
|
266
|
-
}, null, 6)) :
|
|
267
|
-
(
|
|
314
|
+
class: i(["tabes-marker", [Le.value, Te()]]),
|
|
315
|
+
style: He(w.value)
|
|
316
|
+
}, null, 6)) : N("", !0),
|
|
317
|
+
(h(!0), M(ne, null, We(m.value, (t) => (h(), M(ne, {
|
|
268
318
|
key: t.value
|
|
269
319
|
}, [
|
|
270
|
-
|
|
320
|
+
se(ce)(t) ? (h(), F(tt, {
|
|
271
321
|
key: 0,
|
|
272
322
|
options: t.menu,
|
|
273
|
-
selected:
|
|
323
|
+
selected: o.modelValue,
|
|
274
324
|
disabled: t.disabled,
|
|
275
|
-
|
|
325
|
+
"data-tabes-sortable": "",
|
|
326
|
+
"data-tabes-disabled": t.disabled || void 0,
|
|
327
|
+
direction: Re(t),
|
|
276
328
|
position: t.dropdown?.position,
|
|
277
329
|
offset: t.dropdown?.offset ?? [0, 8],
|
|
278
330
|
searchable: t.dropdown?.searchable ?? !1,
|
|
@@ -286,98 +338,100 @@ const Ze = ["dir"], _e = ["data-variant"], et = ["aria-selected", "aria-expanded
|
|
|
286
338
|
"show-selected-icon": !1,
|
|
287
339
|
"toggle-selection": !1,
|
|
288
340
|
selectable: !0,
|
|
289
|
-
class:
|
|
290
|
-
onOnSelect: (
|
|
291
|
-
onOnOpen: () =>
|
|
292
|
-
onOnClose: () =>
|
|
341
|
+
class: i(["tabes-menu", "inline-flex!", $e.value]),
|
|
342
|
+
onOnSelect: (n) => Ve(t, n),
|
|
343
|
+
onOnOpen: () => ze(t),
|
|
344
|
+
onOnClose: () => Be(t)
|
|
293
345
|
}, {
|
|
294
|
-
trigger:
|
|
295
|
-
|
|
346
|
+
trigger: oe(({ isOpen: n }) => [
|
|
347
|
+
g("button", {
|
|
296
348
|
ref_for: !0,
|
|
297
|
-
ref: (
|
|
349
|
+
ref: (s) => Y(s, t.value),
|
|
298
350
|
type: "button",
|
|
299
351
|
role: "tab",
|
|
300
352
|
"data-tabes-item": "",
|
|
301
353
|
"data-tabes-menu-trigger": "",
|
|
302
|
-
"aria-selected":
|
|
354
|
+
"aria-selected": se(ue)(t, o.modelValue),
|
|
303
355
|
"aria-haspopup": !0,
|
|
304
|
-
"aria-expanded":
|
|
356
|
+
"aria-expanded": n,
|
|
305
357
|
disabled: t.disabled,
|
|
306
|
-
class:
|
|
358
|
+
class: i([re(t), te[r.size], "w-full"])
|
|
307
359
|
}, [
|
|
308
|
-
t.icon ? (
|
|
360
|
+
t.icon ? (h(), F(S, {
|
|
309
361
|
key: 0,
|
|
310
362
|
icon: t.icon,
|
|
311
|
-
class:
|
|
312
|
-
}, null, 8, ["icon", "class"])) :
|
|
313
|
-
|
|
314
|
-
class:
|
|
315
|
-
},
|
|
316
|
-
|
|
363
|
+
class: i(o.size === "sm" ? "w-3.5 h-3.5" : "w-4 h-4")
|
|
364
|
+
}, null, 8, ["icon", "class"])) : N("", !0),
|
|
365
|
+
g("span", {
|
|
366
|
+
class: i(["whitespace-nowrap z-20 relative", o.textClass])
|
|
367
|
+
}, le(ae(t)), 3),
|
|
368
|
+
C(S, {
|
|
317
369
|
icon: "lucide:chevron-down",
|
|
318
|
-
class:
|
|
370
|
+
class: i(Pe(n)),
|
|
319
371
|
"aria-hidden": "true"
|
|
320
372
|
}, null, 8, ["class"])
|
|
321
|
-
], 10,
|
|
373
|
+
], 10, it)
|
|
322
374
|
]),
|
|
323
375
|
_: 2
|
|
324
|
-
}, 1032, ["options", "selected", "disabled", "direction", "position", "offset", "searchable", "close-on-select", "max-height", "min-width", "width", "menu-id", "teleport", "class", "onOnSelect", "onOnOpen", "onOnClose"])) :
|
|
376
|
+
}, 1032, ["options", "selected", "disabled", "data-tabes-disabled", "direction", "position", "offset", "searchable", "close-on-select", "max-height", "min-width", "width", "menu-id", "teleport", "class", "onOnSelect", "onOnOpen", "onOnClose"])) : Ge([t, o.modelValue === t.value, o.size, o.variant, o.block, o.wrap, o.tabClass, o.textClass, o.sortable], () => (h(), F(Qe(Ie(t)), Ue({
|
|
325
377
|
key: 1,
|
|
326
378
|
ref_for: !0,
|
|
327
|
-
ref: (
|
|
379
|
+
ref: (n) => Y(n, t.value),
|
|
328
380
|
role: "tab",
|
|
329
381
|
"data-tabes-item": "",
|
|
330
|
-
"
|
|
382
|
+
"data-tabes-sortable": "",
|
|
383
|
+
"data-tabes-disabled": t.disabled || void 0,
|
|
384
|
+
"aria-selected": o.modelValue === t.value,
|
|
331
385
|
disabled: t.disabled,
|
|
332
|
-
class: [
|
|
333
|
-
}, { ref_for: !0 },
|
|
334
|
-
onClick: (
|
|
386
|
+
class: [re(t), te[r.size]]
|
|
387
|
+
}, { ref_for: !0 }, je(t), {
|
|
388
|
+
onClick: (n) => Se(t)
|
|
335
389
|
}), {
|
|
336
|
-
default:
|
|
337
|
-
t.icon ? (
|
|
390
|
+
default: oe(() => [
|
|
391
|
+
t.icon ? (h(), F(S, {
|
|
338
392
|
key: 0,
|
|
339
393
|
icon: t.icon,
|
|
340
|
-
class:
|
|
341
|
-
}, null, 8, ["icon", "class"])) :
|
|
342
|
-
|
|
343
|
-
class:
|
|
344
|
-
},
|
|
394
|
+
class: i(o.size === "sm" ? "w-3.5 h-3.5" : "w-4 h-4")
|
|
395
|
+
}, null, 8, ["icon", "class"])) : N("", !0),
|
|
396
|
+
g("span", {
|
|
397
|
+
class: i(["whitespace-nowrap z-20 relative", o.textClass])
|
|
398
|
+
}, le(ae(t)), 3)
|
|
345
399
|
]),
|
|
346
400
|
_: 2
|
|
347
|
-
}, 1040, ["aria-selected", "disabled", "class", "onClick"])),
|
|
401
|
+
}, 1040, ["data-tabes-disabled", "aria-selected", "disabled", "class", "onClick"])), a, 0)
|
|
348
402
|
], 64))), 128))
|
|
349
|
-
], 10,
|
|
403
|
+
], 10, lt)
|
|
350
404
|
], 544),
|
|
351
|
-
|
|
352
|
-
direction:
|
|
353
|
-
color:
|
|
405
|
+
D(C(me, {
|
|
406
|
+
direction: Me.value,
|
|
407
|
+
color: ee.value,
|
|
354
408
|
coverage: "100px",
|
|
355
409
|
blur: "40",
|
|
356
410
|
easing: "smooth",
|
|
357
411
|
tintOpacity: 1,
|
|
358
|
-
class:
|
|
412
|
+
class: i(["z-10 pointer-events-none", r.variant === "line" ? "" : "rounded-e-lg"])
|
|
359
413
|
}, null, 8, ["direction", "color", "class"]), [
|
|
360
|
-
[
|
|
414
|
+
[A, $.value]
|
|
361
415
|
]),
|
|
362
|
-
|
|
363
|
-
class:
|
|
416
|
+
D(g("div", {
|
|
417
|
+
class: i(["end-0 pe-1", _.value])
|
|
364
418
|
}, [
|
|
365
|
-
|
|
366
|
-
onClick:
|
|
419
|
+
g("button", {
|
|
420
|
+
onClick: ye,
|
|
367
421
|
class: "pointer-events-auto h-full px-1 flex items-center justify-center text-muted-foreground hover:text-foreground transition-colors focus:outline-none",
|
|
368
422
|
"aria-label": "Scroll forward"
|
|
369
423
|
}, [
|
|
370
|
-
|
|
371
|
-
icon:
|
|
424
|
+
C(S, {
|
|
425
|
+
icon: Ae.value,
|
|
372
426
|
class: "w-5 h-5"
|
|
373
427
|
}, null, 8, ["icon"])
|
|
374
428
|
])
|
|
375
429
|
], 2), [
|
|
376
|
-
[
|
|
430
|
+
[A, $.value]
|
|
377
431
|
])
|
|
378
|
-
], 10,
|
|
432
|
+
], 10, ot));
|
|
379
433
|
}
|
|
380
434
|
});
|
|
381
435
|
export {
|
|
382
|
-
|
|
436
|
+
yt as default
|
|
383
437
|
};
|
|
@@ -12,6 +12,13 @@ export declare function isTabActive(option: TabesOption, modelValue: string | nu
|
|
|
12
12
|
* For menu tabs, returns the parent tab's value when a child is selected.
|
|
13
13
|
*/
|
|
14
14
|
export declare function getActiveMarkerKey(options: TabesOption[], modelValue: string | number): string | number | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Stable, order-independent signature for a set of tabs (djb2 over the sorted
|
|
17
|
+
* option values). Used to derive a default localStorage slot for persisted
|
|
18
|
+
* ordering when no explicit `storageKey` is supplied — so a given tab set maps
|
|
19
|
+
* to one saved order, and a membership change gets a fresh slot.
|
|
20
|
+
*/
|
|
21
|
+
export declare function hashTabesValues(options: TabesOption[]): string;
|
|
15
22
|
/** Start/end (inline-edge) scroll overflow of a horizontal tab strip. */
|
|
16
23
|
export interface TabesScrollOverflow {
|
|
17
24
|
/** More content is hidden past the inline-start edge. */
|
|
@@ -1,49 +1,57 @@
|
|
|
1
|
-
function
|
|
1
|
+
function c(r) {
|
|
2
2
|
return Array.isArray(r.menu) && r.menu.length > 0;
|
|
3
3
|
}
|
|
4
|
-
function
|
|
4
|
+
function i(r) {
|
|
5
5
|
return r.value !== void 0 && r.value !== null ? r.value : r.label;
|
|
6
6
|
}
|
|
7
|
-
function
|
|
7
|
+
function u(r, t) {
|
|
8
8
|
if (!r?.length) return !1;
|
|
9
|
-
for (const
|
|
10
|
-
if (
|
|
9
|
+
for (const n of r)
|
|
10
|
+
if (i(n) === t || n.children?.length && u(n.children, t)) return !0;
|
|
11
11
|
return !1;
|
|
12
12
|
}
|
|
13
|
-
function
|
|
14
|
-
return
|
|
13
|
+
function f(r, t) {
|
|
14
|
+
return c(r) ? r.value === t || u(r.menu, t) : r.value === t;
|
|
15
15
|
}
|
|
16
|
-
function o(r,
|
|
17
|
-
for (const
|
|
18
|
-
if (
|
|
16
|
+
function o(r, t) {
|
|
17
|
+
for (const n of r)
|
|
18
|
+
if (f(n, t)) return n.value;
|
|
19
|
+
}
|
|
20
|
+
function h(r) {
|
|
21
|
+
const t = r.map((e) => String(e.value)).sort().join("|");
|
|
22
|
+
let n = 5381;
|
|
23
|
+
for (let e = 0; e < t.length; e++)
|
|
24
|
+
n = (n << 5) + n + t.charCodeAt(e) | 0;
|
|
25
|
+
return (n >>> 0).toString(36);
|
|
19
26
|
}
|
|
20
27
|
function s(r) {
|
|
21
28
|
return typeof window > "u" ? !1 : window.getComputedStyle(r).direction === "rtl";
|
|
22
29
|
}
|
|
23
|
-
function S(r,
|
|
30
|
+
function S(r, t) {
|
|
24
31
|
if (!r) return { canScrollStart: !1, canScrollEnd: !1 };
|
|
25
|
-
if (
|
|
32
|
+
if (t && r.querySelector(t) === null)
|
|
26
33
|
return { canScrollStart: !1, canScrollEnd: !1 };
|
|
27
|
-
const { scrollLeft:
|
|
34
|
+
const { scrollLeft: n, scrollWidth: e, clientWidth: l } = r;
|
|
28
35
|
if (e - l <= 1)
|
|
29
36
|
return { canScrollStart: !1, canScrollEnd: !1 };
|
|
30
|
-
const
|
|
37
|
+
const a = Math.abs(n);
|
|
31
38
|
return {
|
|
32
|
-
canScrollStart:
|
|
33
|
-
canScrollEnd: Math.ceil(
|
|
39
|
+
canScrollStart: a > 1,
|
|
40
|
+
canScrollEnd: Math.ceil(a + l) < e - 1
|
|
34
41
|
};
|
|
35
42
|
}
|
|
36
|
-
function d(r,
|
|
43
|
+
function d(r, t, n) {
|
|
37
44
|
if (!r) return;
|
|
38
|
-
const e =
|
|
45
|
+
const e = t === "start" ? -1 : 1, l = (s(r) ? -e : e) * Math.abs(n);
|
|
39
46
|
r.scrollBy({ left: l, behavior: "smooth" });
|
|
40
47
|
}
|
|
41
48
|
export {
|
|
42
49
|
o as getActiveMarkerKey,
|
|
43
|
-
|
|
50
|
+
i as getMenuOptionValue,
|
|
44
51
|
S as getTabesScrollOverflow,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
52
|
+
h as hashTabesValues,
|
|
53
|
+
c as isMenuTab,
|
|
54
|
+
f as isTabActive,
|
|
55
|
+
u as menuContainsValue,
|
|
48
56
|
d as scrollTabesStrip
|
|
49
57
|
};
|
|
@@ -44,3 +44,10 @@ export type TabesMenuSelectPayload = {
|
|
|
44
44
|
option?: IDropdownOption;
|
|
45
45
|
tab: TabesOption;
|
|
46
46
|
};
|
|
47
|
+
/** Emitted after the user drags tabs into a new order (`sortable`). */
|
|
48
|
+
export type TabesReorderPayload = {
|
|
49
|
+
/** Tabs in their new order. */
|
|
50
|
+
options: TabesOption[];
|
|
51
|
+
/** New order as a list of option values (the shape persisted to storage). */
|
|
52
|
+
order: (string | number)[];
|
|
53
|
+
};
|
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": "1.
|
|
6
|
+
"version": "1.5.0",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "index.js",
|
|
9
9
|
"module": "index.js",
|
|
@@ -18,9 +18,10 @@
|
|
|
18
18
|
"postbuild": "node scripts/bundle-css.js",
|
|
19
19
|
"preview": "vite preview",
|
|
20
20
|
"prepare:dist": "npm run build && cp package.json README.md dist/",
|
|
21
|
-
"release:patch": "
|
|
22
|
-
"release:minor": "
|
|
23
|
-
"release:major": "
|
|
21
|
+
"release:patch": "node scripts/release.js patch",
|
|
22
|
+
"release:minor": "node scripts/release.js minor",
|
|
23
|
+
"release:major": "node scripts/release.js major",
|
|
24
|
+
"release": "node scripts/release.js",
|
|
24
25
|
"publish:dist": "npm run prepare:dist && cd dist && npm publish"
|
|
25
26
|
},
|
|
26
27
|
"exports": {
|
package/style.css
CHANGED
|
@@ -1896,5 +1896,5 @@ html {
|
|
|
1896
1896
|
}
|
|
1897
1897
|
|
|
1898
1898
|
/* --- Vite Generated CSS --- */
|
|
1899
|
-
.v-btn-horizontal[data-v-dc9b3674]{flex-direction:row}.chip.scrollbar-hide,.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chip.scrollbar-hide::-webkit-scrollbar,.scrollbar-hide::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}input[data-v-3e1eac3e]::-webkit-outer-spin-button,input[data-v-3e1eac3e]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-3e1eac3e]{-moz-appearance:textfield;appearance:textfield}@keyframes onAutoFillStart{0%{opacity:1}to{opacity:1}}@keyframes onAutoFillCancel{0%{opacity:1}to{opacity:1}}input.autofill-detect:-webkit-autofill{animation-name:onAutoFillStart;animation-duration:1ms;animation-fill-mode:both}input.autofill-detect:not(:-webkit-autofill){animation-name:onAutoFillCancel;animation-duration:1ms;animation-fill-mode:both}.vl-thumbnail-selector__filepicker-inline[data-v-470fec5b]{display:contents}.vl-thumbnail-selector__card:hover .vl-thumbnail-selector__delete[data-v-470fec5b],.vl-thumbnail-selector__card:hover .vl-thumbnail-selector__drag-handle[data-v-470fec5b]{opacity:1}.vl-thumbnail-selector__card[data-v-470fec5b]:not(.border-primary):hover{border-color:color-mix(in sRGB,var(--color-primary, currentColor) 40%,transparent)}.mega-menu-grid[data-v-512aa158]{display:grid;grid-template-columns:repeat(var(--mega-cols, 3),minmax(0,1fr))}@media(max-width:768px){.mega-menu-grid[data-v-512aa158]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.mega-menu-grid[data-v-512aa158]{grid-template-columns:1fr}}.dropdown-menu[data-v-173c7a02]{will-change:transform;contain:layout style}.v-modal-overlay[data-v-208854bc]{background-color:#00000085}.v-modal-backdrop[data-v-208854bc]{transform:translateZ(0)}.modal-dialog-enter-active[data-v-208854bc]{transition:opacity 80ms ease-out}.modal-dialog-leave-active[data-v-208854bc]{transition:opacity .12s ease-in}.modal-dialog-enter-from[data-v-208854bc],.modal-dialog-leave-to[data-v-208854bc]{opacity:0}.modal-body[data-v-208854bc]{will-change:opacity;contain:layout style}.blink-bg[data-v-208854bc]{animation:blink-animation-208854bc 1s infinite}@keyframes blink-animation-208854bc{0%{background-color:inherit}15%{background-color:var(--color-gray-250)}35%{background-color:inherit}75%{background-color:var(--color-gray-250)}to{background-color:inherit}}.badge.scrollbar-hide,.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.badge.scrollbar-hide::-webkit-scrollbar,.scrollbar-hide::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}[data-v-a8f85730] .date-picker-content.dates{min-height:245px}.IroBox{border-radius:8px!important}.accordion-enter-active[data-v-d1f2e7f8],.accordion-leave-active[data-v-d1f2e7f8]{transition:height .3s ease-in-out;will-change:height}.content-wrapper[data-v-d1f2e7f8],.custom-fields-accordion[data-v-52660f5b],.custom-fields-table[data-v-63b24d19]{will-change:transform;contain:layout style}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) input,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) textarea{resize:none}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) input,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) textarea,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) select,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .input-wrapper,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .tooltip-trigger button,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .tooltip-trigger>div{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-63b24d19]:not(.is-stacked) input:focus,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) textarea:focus,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) select:focus,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .input-wrapper:focus-within,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .tooltip-trigger button:focus,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .tooltip-trigger>div:focus,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .tooltip-trigger>div: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-63b24d19]:not(.is-stacked) .w-full{width:100%;height:100%}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker{height:100%!important;min-height:40px;padding:0;min-width:0!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker--input>.relative{height:100%;min-width:0}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker--input [role=button]{height:100%!important;min-height:40px!important;border:none!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding-left:.75rem!important;padding-right:2.5rem!important;min-width:0!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker--input [role=button]:focus,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker--input [role=button]:focus-visible{background-color:hsla(var(--primary) / .03)!important;box-shadow:inset 0 0 0 2px hsla(var(--primary) / .1)!important;outline:none!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker__dropzone{min-height:96px;padding:1rem;border-radius:.5rem!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker__file{min-height:72px;border-radius:.5rem!important;background:hsl(var(--background))!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker__file input{height:auto!important;min-height:0;padding:.125rem .25rem!important;border-bottom:1px solid transparent!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker__file input:hover{border-bottom-color:hsl(var(--border))!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker__file input:focus{background-color:transparent!important;border-bottom-color:hsl(var(--primary))!important;box-shadow:none!important}.custom-fields-table.is-stacked[data-v-63b24d19] .vl-file-picker{min-width:0!important;width:100%}.list-enter-active[data-v-63b24d19]{transition:all .15s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-63b24d19]{opacity:0;transform:translateY(-5px)}:where(.rte-editor,.rte-reader) h1{display:block;font-size:1.5rem!important;font-weight:700!important;margin:.5em 0 .2em!important;line-height:1.3}:where(.rte-editor,.rte-reader) h2{display:block;font-size:1.2rem!important;font-weight:600!important;margin:.45em 0 .2em!important;line-height:1.35}:where(.rte-editor,.rte-reader) p{display:block;margin:.2em 0!important}:where(.rte-editor,.rte-reader) div{margin:.1em 0}:where(.rte-editor,.rte-reader) blockquote{display:block;border-left:3px solid var(--color-primary);margin:.6em 0!important;padding:.35em 1em!important;color:var(--color-muted-foreground);font-style:italic;background:color-mix(in oklab,var(--color-primary) 6%,transparent);border-radius:0 var(--radius-sm) var(--radius-sm) 0}:where(.rte-editor,.rte-reader) ul{display:block!important;list-style-type:disc!important;list-style-position:inside!important;padding-left:1.6em!important;margin:.35em 0!important}:where(.rte-editor,.rte-reader) ol{display:block!important;list-style-type:decimal!important;list-style-position:inside!important;padding-left:1.6em!important;margin:.35em 0!important}:where(.rte-editor,.rte-reader) li{display:list-item!important;margin:.15em 0!important;padding-left:.15em}:where(.rte-editor,.rte-reader) ul ul,:where(.rte-editor,.rte-reader) ol ul{list-style-type:circle!important}:where(.rte-editor,.rte-reader) ul ul ul,:where(.rte-editor,.rte-reader) ol ol ul{list-style-type:square!important}:where(.rte-editor,.rte-reader) ol ol{list-style-type:lower-alpha!important}:where(.rte-editor,.rte-reader) ol ol ol{list-style-type:lower-roman!important}:where(.rte-editor,.rte-reader) hr{display:block!important;border:0!important;border-top:1px solid var(--color-border)!important;margin:1.5em 0!important}:where(.rte-editor,.rte-reader) a{color:var(--color-info);text-decoration:underline;text-underline-offset:2px;cursor:pointer;transition:color .12s ease}:where(.rte-editor,.rte-reader) a:hover{color:var(--color-info-dark, var(--color-info));text-decoration-thickness:2px}:where(.rte-editor,.rte-reader) code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.85em;background:var(--color-muted);color:var(--color-foreground);padding:.2em .4em;border-radius:var(--radius-sm);border:none}:where(.rte-editor,.rte-reader) img{max-width:100%;height:auto;border-radius:var(--radius-sm);margin:1em 0;display:block;box-shadow:0 0 0 1px var(--color-border);transition:filter .2s,opacity .2s}.rte-editor img.rte-image-uploading{opacity:.6;filter:grayscale(100%) blur(2px);cursor:wait}:where(.rte-editor,.rte-reader) strong,:where(.rte-editor,.rte-reader) b{font-weight:700!important}:where(.rte-editor,.rte-reader) em,:where(.rte-editor,.rte-reader) i{font-style:italic!important}:where(.rte-editor,.rte-reader) u{text-decoration:underline!important;text-decoration-thickness:1.5px;text-underline-offset:2px}:where(.rte-editor,.rte-reader) s,:where(.rte-editor,.rte-reader) strike{text-decoration:line-through!important}.rte-editor ::selection{background:color-mix(in oklab,var(--color-primary) 22%,transparent)}.rte-toolbar{display:flex;flex-wrap:wrap;padding:6px 8px;gap:2px;border-bottom:1px solid var(--color-border);background:var(--color-background);border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;align-items:center}.rte-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--color-muted-foreground);cursor:pointer;transition:all .1s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.rte-btn:hover:not(:disabled){background:var(--color-accent);color:var(--color-foreground)}.rte-btn--active{background:var(--color-accent);color:var(--color-foreground)}.rte-btn--text{font-size:.75rem;font-weight:700;width:auto;min-width:28px;padding:0 6px}.rte-icon{width:1.1rem;height:1.1rem;stroke-width:2.5}.rte-btn:disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.rte-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.rte-sep{width:1px;height:18px;background:var(--color-border);margin:0 3px;flex-shrink:0}.rte-link-popover{position:absolute;top:0;left:0;z-index:60;width:300px;max-width:min(300px,calc(100vw - 24px));background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 2px 4px #0000000f,0 8px 24px #0000001a;padding:8px;display:flex;flex-direction:column;gap:6px;will-change:transform,opacity}.rte-link-input-row{display:flex;align-items:center;gap:6px;background:var(--color-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 8px;transition:border-color .15s ease,box-shadow .15s ease}.rte-link-input-row:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in oklab,var(--color-primary) 12%,transparent)}.rte-link-icon-prefix{width:.875rem;height:.875rem;color:var(--color-muted-foreground);flex-shrink:0}.rte-link-input{flex:1;background:transparent;border:none;outline:none;font-size:.8rem;color:var(--color-foreground);padding:7px 0;min-width:0;font-family:JetBrains Mono,Fira Code,ui-monospace,monospace}.rte-link-input::placeholder{color:var(--color-muted-foreground);font-family:inherit}.rte-link-actions-row{display:flex;align-items:center;gap:3px}.rte-link-action-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:none;border-radius:var(--radius-sm);background:transparent;font-size:.75rem;font-weight:500;cursor:pointer;color:var(--color-muted-foreground);transition:background .12s ease,color .12s ease}.rte-link-action-btn:hover{background:var(--color-accent);color:var(--color-foreground)}.rte-link-action-btn--danger{color:var(--color-destructive)}.rte-link-action-btn--danger:hover{background:color-mix(in oklab,var(--color-destructive) 10%,transparent);color:var(--color-destructive)}.rte-link-apply-btn{background:var(--color-primary);color:var(--color-primary-foreground);width:24px;height:24px;padding:4px;cursor:pointer}.rte-link-apply-btn:disabled{opacity:.5;cursor:not-allowed}.rte-link-apply-btn:hover:not(:disabled){background:color-mix(in oklab,var(--color-primary) 88%,var(--color-primary-foreground));color:var(--color-primary-foreground)}.rte-root{display:flex;flex-direction:column;gap:6px;width:100%}.rte-label{font-size:.825rem;font-weight:500;color:var(--color-foreground);margin-bottom:2px}.rte-wrapper{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius);position:relative;transition:border-color .15s ease,box-shadow .15s ease;display:flex;flex-direction:column}.rte-root.rte-focused .rte-wrapper{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in oklab,var(--color-primary) 12%,transparent)}.rte-root.rte-disabled .rte-wrapper{background:var(--color-muted);opacity:.6}.rte-root.rte-error .rte-wrapper{border-color:var(--color-destructive)}.rte-root.rte-error.rte-focused .rte-wrapper{box-shadow:0 0 0 2px color-mix(in oklab,var(--color-destructive) 15%,transparent)}.rte-body-wrap{position:relative;overflow:visible}.rte-editor{outline:none;padding:14px 16px;color:var(--color-foreground);font-size:.9rem;line-height:1.7;width:100%;box-sizing:border-box;overflow-y:auto;border-radius:0 0 var(--radius) var(--radius);word-break:break-word;overflow-wrap:break-word;will-change:transform;contain:layout style}.rte-editor[contenteditable=true]{caret-color:var(--color-primary)}.rte-placeholder{position:absolute;top:14px;left:16px;color:var(--color-muted-foreground);font-size:.9rem;pointer-events:none;-webkit-user-select:none;user-select:none;line-height:1.7}.rte-error-msg{font-size:.78rem;color:var(--color-destructive);margin:0;line-height:1.4}.form-field-item[data-v-eef10419]{display:flex;flex-direction:column;min-width:0}.form-field-item[data-v-eef10419]:has([role=checkbox]){flex-direction:row;align-items:center;justify-content:flex-start}.status-chip.scrollbar-hide,.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.status-chip.scrollbar-hide::-webkit-scrollbar,.scrollbar-hide::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.form-container[data-v-91b9b05d]{width:100%;will-change:transform;contain:layout style}[data-tabes][data-v-7f8e99f2]:not(.inline-flex):not([class*=gap-6])>:where(button,a,[role=tab],.tabes-menu){flex:1 0 0%;min-width:max-content}[data-v-7f8e99f2] .tabes-menu{display:inline-flex;vertical-align:middle;max-width:100%}.tabes-scroll[data-v-7f8e99f2],.tabes-marker[data-v-7f8e99f2]{will-change:transform;contain:layout style}.scrollbar-hide[data-v-7f8e99f2]{-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.scrollbar-hide[data-v-7f8e99f2]::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.vlite-line-chart[data-v-044e962d]{position:relative}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.scrollbar-hide::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.scrollable-container[data-v-d505482b]{will-change:transform;contain:layout style}.kanban-board--disabled[data-v-d505482b]{opacity:.75;background-color:color-mix(in srgb,var(--color-card) 85%,var(--color-muted) 15%)}.kanban-lock-badge[data-v-d505482b]{font-size:.75rem;line-height:1;-webkit-user-select:none;user-select:none}.scrollable-container[data-v-2dd0633e]{will-change:transform;contain:layout style}.v-sidepanel-overlay[data-v-10bfdf18]{background-color:#00000069}.slide-right-enter-active[data-v-10bfdf18],.slide-left-enter-active[data-v-10bfdf18]{transition:opacity 80ms ease-out}.slide-right-leave-active[data-v-10bfdf18],.slide-left-leave-active[data-v-10bfdf18]{transition:opacity .12s ease-in}.slide-right-enter-from[data-v-10bfdf18],.slide-right-leave-to[data-v-10bfdf18],.slide-left-enter-from[data-v-10bfdf18],.slide-left-leave-to[data-v-10bfdf18]{opacity:0}.sidepanel-body[data-v-10bfdf18]{will-change:transform,opacity;contain:layout style}.navbar-tabs-edge--start[data-v-b4a2c569]{inset-inline-start:0}.navbar-tabs-edge--end[data-v-b4a2c569]{inset-inline-end:0}.fade-x-enter-active,.fade-x-leave-active{transition:opacity .15s ease}.fade-x-enter-from,.fade-x-leave-to{opacity:0}.navbar-tabs-no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.navbar-tabs-no-scrollbar::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}@media(min-width:768px){.pagination[data-v-6c562c38]{flex-direction:row}}.heatmap-container[data-v-00476f00]{width:100%;height:100%;display:flex;flex-direction:column;min-height:0}.heatmap-wrapper[data-v-00476f00]{width:100%;height:100%;overflow:auto;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;position:relative}.heatmap-grid[data-v-00476f00]{width:fit-content;height:fit-content;transition:all .2s ease-in-out}.heatmap-cell[data-v-00476f00]{aspect-ratio:1 / 1;border-radius:2px;transition:all .15s ease-in-out;border:1px solid transparent;box-sizing:border-box}.heatmap-cell-interactive[data-v-00476f00]{cursor:pointer}.heatmap-cell-interactive[data-v-00476f00]:hover{transform:scale(1.1);border-color:var(--border);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;z-index:10;position:relative}.heatmap-cell-empty[data-v-00476f00]{opacity:.6}.heatmap-cell-hovered[data-v-00476f00]{outline:2px solid var(--primary);outline-offset:1px}.heatmap-cell-label[data-v-00476f00]{font-size:8px;font-weight:500;color:var(--foreground);opacity:.8;display:flex;align-items:center;justify-content:center;height:100%;width:100%;pointer-events:none}.heatmap-legend[data-v-00476f00]{display:flex;align-items:center;gap:.5rem;margin-top:1rem;font-size:.75rem;color:var(--muted-foreground);flex-shrink:0}.heatmap-legend-label[data-v-00476f00]{font-weight:500}.heatmap-legend-colors[data-v-00476f00]{display:flex;gap:.125rem}.heatmap-legend-item[data-v-00476f00]{width:.75rem;height:.75rem;border-radius:.375rem;border:1px solid var(--border)}@media(max-width:640px){.heatmap-wrapper[data-v-00476f00]{padding:12px}.heatmap-cell[data-v-00476f00]{border-radius:2px}.heatmap-cell-label[data-v-00476f00]{font-size:7px}}@media(min-width:641px)and (max-width:1023px){.heatmap-wrapper[data-v-00476f00]{padding:14px}.heatmap-cell[data-v-00476f00]{border-radius:2px}}@media(min-width:1024px){.heatmap-wrapper[data-v-00476f00]{padding:16px}.heatmap-cell[data-v-00476f00]{border-radius:3px}}.masonry-item[data-v-c29d0159]{content-visibility:auto;contain-intrinsic-size:1px 200px}.carousel-wrapper[data-v-4d544a95]{width:100%;position:relative;will-change:transform;contain:layout style}.breadcrumb-item[data-v-ecb5df7c]{display:inline-flex;align-items:center;cursor:pointer}.breadcrumb-link[data-v-ecb5df7c]{display:inline-flex;align-items:center;gap:.35em;color:var(--color-muted-foreground);text-decoration:none;transition:color .15s ease,background-color .15s ease;border-radius:var(--radius-sm)}.breadcrumb-link[data-v-ecb5df7c]:not(.current):not(.disabled):hover{color:var(--color-foreground)}.breadcrumb-link.current[data-v-ecb5df7c]{color:var(--color-foreground);font-weight:600;cursor:default}.breadcrumb-link.disabled[data-v-ecb5df7c]{opacity:.45;cursor:not-allowed;pointer-events:none}.breadcrumb-icon[data-v-ecb5df7c]{flex-shrink:0}.breadcrumb-list[data-v-d1e90135]{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0;gap:.38em}.breadcrumb--sm[data-v-d1e90135]{font-size:var(--text--fs-2)}.breadcrumb--md[data-v-d1e90135]{font-size:var(--text-fs-0.5, 1em)}.breadcrumb--lg[data-v-d1e90135]{font-size:var(--text-fs-2)}.breadcrumb-separator[data-v-d1e90135]{display:inline-flex;align-items:center;color:var(--color-gray-500);-webkit-user-select:none;user-select:none;font-size:.9em;line-height:1;padding:0 .1em}.breadcrumb-ellipsis[data-v-d1e90135]{display:inline-flex;align-items:center}.breadcrumb-ellipsis-btn[data-v-d1e90135]{display:inline-flex;align-items:center;justify-content:center;width:1.6em;height:1.6em;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:transparent;color:var(--color-muted-foreground);cursor:pointer;font-size:.9em;line-height:1;letter-spacing:.05em;transition:all .15s ease}.breadcrumb-ellipsis-btn[data-v-d1e90135]:hover{background:var(--color-accent);color:var(--color-foreground);border-color:var(--color-gray-350)}.breadcrumb--contained[data-v-d1e90135]{background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.45em 1em}.breadcrumb--pills[data-v-d1e90135] .breadcrumb-link{padding:.2em .7em;border-radius:9999px;background:var(--color-secondary);border:1px solid var(--color-border)}.breadcrumb--pills[data-v-d1e90135] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent);border-color:var(--color-gray-350)}.breadcrumb--pills[data-v-d1e90135] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.breadcrumb--arrow .breadcrumb-list[data-v-d1e90135]{gap:0}.breadcrumb--arrow[data-v-d1e90135] .breadcrumb-link{padding:.35em .9em .35em 1.4em;background:var(--color-secondary);clip-path:polygon(0 0,calc(100% - .6em) 0,100% 50%,calc(100% - .6em) 100%,0 100%,.6em 50%);border:none;margin-left:-.3em}.breadcrumb--arrow[data-v-d1e90135] .breadcrumb-item:first-child .breadcrumb-link{padding-left:.9em;clip-path:polygon(0 0,calc(100% - .6em) 0,100% 50%,calc(100% - .6em) 100%,0 100%);border-radius:var(--radius-sm) 0 0 var(--radius-sm);margin-left:0}.breadcrumb--arrow[data-v-d1e90135] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent)}.breadcrumb--arrow[data-v-d1e90135] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground)}.breadcrumb--arrow .breadcrumb-separator[data-v-d1e90135]{display:none}.file-tree-container[data-v-06de722e]{will-change:transform;contain:layout style}.rte-reader[data-v-55b9fd8b]{font-family:inherit;color:var(--color-foreground);font-size:.9rem;line-height:1.7;word-break:break-word;overflow-wrap:break-word;padding:0;margin:0}.sheet-container[data-v-e674bcbc]{will-change:transform;contain:layout style}.vl-comment-actions[data-v-446c60ad]{opacity:0;transition:opacity .15s ease}.vl-comment:hover:not(:has(.vl-comment:hover))>div>.vl-comment-header>.vl-comment-actions[data-v-446c60ad]{opacity:1}.vl-comment-actions[data-v-446c60ad]:focus-within{opacity:1}.vl-comment:has(.vl-comment-actions button[aria-label="Confirm delete"]) .vl-comment-actions[data-v-446c60ad]{opacity:1}.stacked-cell-value[data-v-af551256],.stacked-cell-value[data-v-af551256] *{white-space:normal!important;overflow:visible!important;text-overflow:unset!important;overflow-wrap:anywhere;word-break:break-word;max-width:100%}.sidebar-manu-item .tooltip-trigger{width:100%!important}.sidebar-menu-tooltip{margin-inline-start:4px!important}.drill-forward-enter-active,.drill-forward-leave-active{transition:all .28s cubic-bezier(.4,0,.2,1)}.drill-forward-enter-from{opacity:0;transform:translate(40%)}.drill-forward-enter-to,.drill-forward-leave-from{opacity:1;transform:translate(0)}.drill-forward-leave-to{opacity:0;transform:translate(-40%)}.drill-forward-leave-active{position:absolute;top:0;inset-inline:0}.drill-backward-enter-active,.drill-backward-leave-active{transition:all .28s cubic-bezier(.4,0,.2,1)}.drill-backward-enter-from{opacity:0;transform:translate(-40%)}.drill-backward-enter-to,.drill-backward-leave-from{opacity:1;transform:translate(0)}.drill-backward-leave-to{opacity:0;transform:translate(40%)}.drill-backward-leave-active{position:absolute;top:0;inset-inline:0}.sidebar-drilldown--rtl .drill-forward-enter-from{transform:translate(-40%)}.sidebar-drilldown--rtl .drill-forward-leave-to,.sidebar-drilldown--rtl .drill-backward-enter-from{transform:translate(40%)}.sidebar-drilldown--rtl .drill-backward-leave-to{transform:translate(-40%)}.sidebar-drilldown-container{min-height:0}.bg-stripe[data-v-454a1505]{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.animate-progress-stripe[data-v-454a1505]{animation:progress-stripe-454a1505 1s linear infinite}@keyframes progress-stripe-454a1505{0%{background-position:1rem 0}to{background-position:0 0}}.animate-progress-indeterminate[data-v-454a1505]{animation:progress-indeterminate-454a1505 1.5s infinite cubic-bezier(.65,.815,.735,.395)}@keyframes progress-indeterminate-454a1505{0%{transform:translate(-100%) scaleX(.2)}50%{transform:translate(0) scaleX(.5)}to{transform:translate(100%) scaleX(.2)}}.permission-matrix-wrapper[data-v-f4695eed]{max-height:70vh;will-change:transform;contain:layout style}.permission-list-wrapper[data-v-a42b2fb0]{border:1px solid var(--color-border);border-radius:.5rem;overflow:hidden;background-color:var(--color-background);will-change:transform;contain:layout style}.custom-list-header[data-v-a42b2fb0]{background-color:var(--color-muted);border-bottom:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px)}.custom-list-group-content .custom-list-item[data-v-a42b2fb0]{border-bottom:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px);background-color:var(--color-background)}.custom-list-group-content .custom-list-item[data-v-a42b2fb0]:hover{background-color:var(--color-accent)}.custom-list-group-content .custom-list-item[data-v-a42b2fb0]:last-child{border-bottom:none}.custom-list-group-content+.custom-list-header[data-v-a42b2fb0],.custom-list-header+.custom-list-header[data-v-a42b2fb0]{border-top:1px solid var(--color-border)}.permission-list-wrapper>.custom-list-header[data-v-a42b2fb0]:last-child{border-bottom:none}.permission-matrix-wrapper[data-v-e8bfdc18]{border:1px solid var(--color-border);background-color:var(--color-gray-100);border-radius:.5rem;overflow:auto;max-height:65vh;position:relative;will-change:transform;contain:layout style}.custom-table[data-v-e8bfdc18]{width:100%;border-collapse:collapse}.custom-sticky-header th[data-v-e8bfdc18]{position:sticky;top:0;z-index:20;box-shadow:0 1px 0 var(--color-border)}.custom-th[data-v-e8bfdc18]{background-color:var(--color-gray-150);color:var(--color-foreground);background-clip:padding-box;border-bottom:none;border-left:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px);text-align:left;font-weight:600;min-width:200px}thead:not(.custom-sticky-header) .custom-th[data-v-e8bfdc18]{border-bottom:1px solid var(--color-border)}.custom-th.text-center[data-v-e8bfdc18]{text-align:center;min-width:100px}.custom-th[data-v-e8bfdc18]:first-child{border-left:none}.custom-td[data-v-e8bfdc18]{border-bottom:1px solid var(--color-border);border-left:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px)}.custom-td.text-center[data-v-e8bfdc18]{text-align:center}.custom-td[data-v-e8bfdc18]:first-child{border-left:none}.custom-group-row td[data-v-e8bfdc18]{background-color:var(--color-gray-100);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.custom-entity-row[data-v-e8bfdc18]{background-color:var(--color-background);transition:background-color .1s ease}.custom-entity-row[data-v-e8bfdc18]:hover{background-color:var(--color-gray-50)}.custom-entity-row:last-child td[data-v-e8bfdc18]{border-bottom:none}.custom-active-cell[data-v-e8bfdc18]{cursor:pointer}.custom-active-cell[data-v-e8bfdc18]:hover{background-color:var(--color-accent)}.category-manager--loading[data-v-0e426dc4]{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-fade-enter-active[data-v-0e426dc4],.cm-fade-leave-active[data-v-0e426dc4]{transition:opacity .2s ease}.cm-fade-enter-from[data-v-0e426dc4],.cm-fade-leave-to[data-v-0e426dc4]{opacity:0}.category-tabs-no-scrollbar[data-v-4d803b88]{-ms-overflow-style:none;scrollbar-width:none}.category-tabs-no-scrollbar[data-v-4d803b88]::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.fade-x-enter-active[data-v-4d803b88],.fade-x-leave-active[data-v-4d803b88]{transition:opacity .15s ease}.fade-x-enter-from[data-v-4d803b88],.fade-x-leave-to[data-v-4d803b88]{opacity:0}.category-mega-no-scrollbar[data-v-5a117002]{-ms-overflow-style:none;scrollbar-width:none}.category-mega-no-scrollbar[data-v-5a117002]::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.fade-x-enter-active[data-v-5a117002],.fade-x-leave-active[data-v-5a117002]{transition:opacity .15s ease}.fade-x-enter-from[data-v-5a117002],.fade-x-leave-to[data-v-5a117002]{opacity:0}.button-group[data-v-ae9bcc76]:not(.vertical-group){flex-direction:row}.attached-group[data-v-ae9bcc76] button{position:relative}.attached-group[data-v-ae9bcc76] button:focus-visible,.attached-group[data-v-ae9bcc76] button:hover{z-index:10}.attached-group[data-v-ae9bcc76]:not(.vertical-group) button:not(:first-child){margin-inline-start:-1px}.attached-group[data-v-ae9bcc76]:not(.vertical-group) button:first-child{border-start-end-radius:0!important;border-end-end-radius:0!important}.attached-group[data-v-ae9bcc76]:not(.vertical-group) button:not(:first-child):not(:last-child){border-radius:0!important}.attached-group[data-v-ae9bcc76]:not(.vertical-group) button:last-child{border-start-start-radius:0!important;border-end-start-radius:0!important}.vertical-group[data-v-ae9bcc76] button:not(:first-child){margin-block-start:-1px}.vertical-group[data-v-ae9bcc76] button:first-child{border-end-start-radius:0!important;border-end-end-radius:0!important}.vertical-group[data-v-ae9bcc76] button:not(:first-child):not(:last-child){border-radius:0!important}.vertical-group[data-v-ae9bcc76] button:last-child{border-start-start-radius:0!important;border-start-end-radius:0!important}.attached-group[data-v-ae9bcc76]:not(.vertical-group) button:not(:first-child):not(.border):before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:1px;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none;height:100%}.vertical-group[data-v-ae9bcc76] button:not(:first-child):not(.border):before{content:"";position:absolute;inset-inline:0;top:0;height:1px;width:100%;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none}[data-v-63e46f6b] .calendar-view{--calendar-primary-color: var(--color-primary);--calendar-bg-color: transparent !important;--calendar-border-color: var(--color-border);--calendar-text-color: var(--color-foreground);--calendar-hover-color: var(--color-accent)}[data-v-63e46f6b] .v-event-calendar .add-event-icon,[data-v-63e46f6b] .v-event-calendar .add-event-icon svg{color:var(--color-primary-fg)!important}.vlite-scc-grid[data-v-e6172e07]{display:flex;width:100%}.vlite-scc-card[data-v-e6172e07]{flex:1;position:relative;display:flex;align-items:stretch}.vlite-scc-separator[data-v-e6172e07]{width:1px;align-self:stretch;background:var(--color-border, #e4e4e7);opacity:.3;margin:8px 0;flex-shrink:0;background-image:repeating-linear-gradient(to bottom,var(--color-border, #e4e4e7) 0px,var(--color-border, #e4e4e7) 4px,transparent 4px,transparent 8px);background-color:transparent}.vlite-scc-content[data-v-e6172e07]{display:flex;flex-direction:column;align-items:flex-start;padding:16px 20px;flex:1;min-height:200px}.vlite-scc-label[data-v-e6172e07]{font-size:13px;font-weight:500;color:var(--color-muted-foreground, #71717a);margin:0 0 6px}.vlite-scc-pct[data-v-e6172e07]{font-size:36px;font-weight:800;color:var(--color-foreground, #09090b);margin:0;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.vlite-scc-spacer[data-v-e6172e07]{flex:1}.vlite-scc-indicator[data-v-e6172e07]{border-radius:10px;margin-bottom:14px;transition:width .6s ease,height .6s ease}.vlite-scc-footer[data-v-e6172e07]{display:flex;align-items:center;gap:8px}.vlite-scc-value[data-v-e6172e07]{font-size:14px;font-weight:600;color:var(--color-foreground, #09090b);font-variant-numeric:tabular-nums}.vlite-scc-trend-icon[data-v-e6172e07]{width:14px;height:14px}.vlite-scc-trend-up[data-v-e6172e07]{color:var(--color-success, #22c55e);transform:rotate(25deg)}.vlite-scc-trend-down[data-v-e6172e07]{color:var(--color-danger, #ef4444);transform:rotate(-25deg)}.vlite-gantt-chart[data-v-94a48eeb]{font-family:inherit}.vlite-gantt-toolbar[data-v-94a48eeb]{display:flex;justify-content:flex-end;align-items:center;margin-bottom:8px;gap:6px}.vlite-gantt-legend-blocked[data-v-94a48eeb]{display:inline-flex;align-items:center;gap:4px;margin-right:auto;padding:3px 8px;border-radius:6px;font-size:10px;font-weight:600;color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 10%,transparent);border:1px dashed color-mix(in srgb,var(--color-danger) 45%,transparent)}.vlite-gantt-tooltip-blocked[data-v-94a48eeb]{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:600;color:var(--color-danger)}.vlite-gantt-btn[data-v-94a48eeb]{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;font-size:11px;font-weight:600;color:var(--color-muted-foreground);background:var(--color-muted);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:all .15s}.vlite-gantt-btn[data-v-94a48eeb]:hover:not(:disabled){background:var(--color-accent);color:var(--color-foreground)}.vlite-gantt-btn[data-v-94a48eeb]:disabled{opacity:.5;cursor:not-allowed}.vlite-gantt-zoom-controls[data-v-94a48eeb]{display:flex;gap:6px}.vlite-gantt-wrapper[data-v-94a48eeb]{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-background)}.vlite-gantt-sidebar[data-v-94a48eeb]{flex-shrink:0;border-right:1px solid var(--color-border);background:var(--color-background);z-index:2}.vlite-gantt-sidebar-header[data-v-94a48eeb]{display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--color-border);background:color-mix(in oklab,var(--color-background) 97%,var(--color-foreground))}.vlite-gantt-sidebar-body[data-v-94a48eeb]{overflow-y:hidden;overflow-x:hidden}.vlite-gantt-sidebar-row[data-v-94a48eeb]{display:flex;align-items:center;padding:0 12px;border-bottom:1px solid color-mix(in oklab,var(--color-border) 50%,transparent)}.vlite-gantt-group-toggle[data-v-94a48eeb]{display:flex;align-items:center;gap:6px;width:100%;padding:0 4px;background:none;border:none;cursor:pointer;color:inherit;text-align:left}.vlite-gantt-group-toggle[data-v-94a48eeb]:hover{opacity:.8}.vlite-gantt-chevron[data-v-94a48eeb]{transition:transform .2s ease;color:var(--color-muted-foreground);flex-shrink:0}.vlite-gantt-chevron-collapsed[data-v-94a48eeb]{transform:rotate(-90deg)}.vlite-gantt-group-count[data-v-94a48eeb]{font-size:10px;font-weight:600;color:var(--color-muted-foreground);background:var(--color-muted);padding:1px 6px;border-radius:99px;margin-left:auto}.vlite-gantt-task-name[data-v-94a48eeb]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:0 4px;width:100%;transition:all .15s}.vlite-gantt-task-name[data-v-94a48eeb]:hover{opacity:.75}.vlite-gantt-task-name-grouped[data-v-94a48eeb]{padding-left:20px}.vlite-gantt-task-name-dragging[data-v-94a48eeb]{background:color-mix(in oklab,var(--color-primary) 8%,transparent);border-radius:4px}.vlite-gantt-task-dot[data-v-94a48eeb]{width:7px;height:7px;border-radius:2px;flex-shrink:0}.vlite-gantt-progress-badge[data-v-94a48eeb]{font-size:10px;font-weight:700;color:var(--color-muted-foreground);margin-left:auto;flex-shrink:0}.vlite-gantt-timeline[data-v-94a48eeb]{flex:1;overflow-x:auto;overflow-y:auto;position:relative}.vlite-gantt-timeline-header[data-v-94a48eeb]{position:sticky;top:0;z-index:1;border-bottom:1px solid var(--color-border);background:color-mix(in oklab,var(--color-background) 97%,var(--color-foreground))}.vlite-gantt-timeline-body[data-v-94a48eeb]{position:relative}.vlite-gantt-bar-dragging[data-v-94a48eeb]{filter:drop-shadow(0 2px 8px rgba(0,0,0,.15));z-index:10}.vlite-gantt-dep-group[data-v-94a48eeb]{transition:opacity .15s,filter .15s}.vlite-gantt-dep-group[data-v-94a48eeb]:hover{opacity:1!important}.vlite-gantt-dep-selectable .vlite-gantt-dep-hit[data-v-94a48eeb]{cursor:pointer}.vlite-gantt-dep-hit[data-v-94a48eeb]{outline:none}.vlite-gantt-dep-line[data-v-94a48eeb],.vlite-gantt-dep-arrowhead[data-v-94a48eeb]{transition:stroke .15s,fill .15s,stroke-opacity .15s,fill-opacity .15s}.vlite-gantt-dep-hovered .vlite-gantt-dep-line[data-v-94a48eeb]{stroke:var(--color-foreground);stroke-opacity:.9}.vlite-gantt-dep-hovered .vlite-gantt-dep-arrowhead[data-v-94a48eeb]{fill:var(--color-foreground);fill-opacity:.9}.vlite-gantt-dep-delete[data-v-94a48eeb]{cursor:pointer;outline:none}.vlite-gantt-dep-delete:focus-visible circle[data-v-94a48eeb]:nth-of-type(2){stroke:var(--color-foreground);stroke-width:2}.vlite-gantt-linking[data-v-94a48eeb]{cursor:crosshair}.vlite-gantt-dep-connector[data-v-94a48eeb]{cursor:grab;outline:none}.vlite-gantt-dep-connector:focus-visible .vlite-gantt-dep-connector-disc[data-v-94a48eeb]{stroke:var(--color-primary);stroke-width:2.5;filter:drop-shadow(0 0 0 2px color-mix(in oklab,var(--color-primary) 35%,transparent))}.vlite-gantt-dep-connector-disc[data-v-94a48eeb]{transition:stroke .15s,fill .15s}.vlite-gantt-link-source[data-v-94a48eeb]{filter:drop-shadow(0 0 0 1px color-mix(in oklab,var(--color-primary) 40%,transparent))}.vlite-gantt-link-candidate[data-v-94a48eeb]{opacity:.92}.vlite-gantt-link-target-valid[data-v-94a48eeb]{filter:drop-shadow(0 0 6px color-mix(in oklab,var(--color-success, #16a34a) 55%,transparent))}.vlite-gantt-link-target-invalid[data-v-94a48eeb]{filter:drop-shadow(0 0 6px color-mix(in oklab,var(--color-danger) 55%,transparent))}.vlite-gantt-link-preview[data-v-94a48eeb]{z-index:20}.sr-only[data-v-94a48eeb]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.vlite-gantt-tooltip-progress-track[data-v-94a48eeb]{width:60px;height:4px;border-radius:2px;background:var(--color-muted);overflow:hidden}.vlite-gantt-tooltip-progress-fill[data-v-94a48eeb]{height:100%;border-radius:2px;transition:width .3s ease}.vlite-gantt-timeline[data-v-94a48eeb]::-webkit-scrollbar{height:6px;width:6px}.vlite-gantt-timeline[data-v-94a48eeb]::-webkit-scrollbar-track{background:transparent}.vlite-gantt-timeline[data-v-94a48eeb]::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:3px}.vlite-gantt-timeline[data-v-94a48eeb]::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar-hover)}.vlite-gantt-sidebar-body[data-v-94a48eeb]::-webkit-scrollbar{width:0;display:none}.is-solid[data-v-33afc5cb] path,.is-solid[data-v-33afc5cb] polygon,.is-solid[data-v-33afc5cb] circle,.is-solid[data-v-33afc5cb] rect{fill:currentColor!important}.vlite-scale-generator-frame[data-v-eec3ef03]{contain:layout style;will-change:transform}.vlite-scale-generator-content[data-v-eec3ef03]{will-change:transform;contain:layout style}.vlite-pan-zoom-viewport[data-v-9dc36c93]{position:relative;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;will-change:transform;contain:layout style}.vlite-pan-zoom-viewport[data-v-9dc36c93]:focus-visible{outline:2px solid var(--color-primary, currentColor);outline-offset:-2px}.vlite-pan-zoom-viewport-content[data-v-9dc36c93]{position:absolute;top:0;left:0;transform-origin:top left;will-change:transform;contain:layout style;backface-visibility:hidden}.vlite-google-map[data-v-0cfbb6c9]{position:relative;min-height:1px;overflow:hidden;border-radius:var(--radius, .5rem);background:var(--color-muted, #f3f4f6);contain:layout style}.vlite-google-map__canvas[data-v-0cfbb6c9]{width:100%;height:100%;outline:none}.vlite-google-map__canvas[data-v-0cfbb6c9]:focus-visible{box-shadow:inset 0 0 0 3px var(--color-primary, #2563eb)}.vlite-google-map__state[data-v-0cfbb6c9]{position:absolute;inset:0;display:grid;place-items:center;padding:1rem;color:var(--color-muted-foreground, #4b5563);background:var(--color-muted, #f3f4f6);text-align:center}.vlite-google-map__state--error[data-v-0cfbb6c9]{color:var(--color-danger, #b91c1c)}.vlite-google-map__notice[data-v-0cfbb6c9]{position:absolute;right:.5rem;bottom:.5rem;margin:0;padding:.35rem .5rem;border-radius:var(--radius-sm, .25rem);color:var(--color-foreground, #111827);background:var(--color-background, #fff);font-size:.75rem}.toast-item[data-v-b3a7f1a6]{will-change:transform,opacity;contain:layout style}.first-toast-enter-active[data-v-b3a7f1a6]{animation:first-toast-in-b3a7f1a6 .45s cubic-bezier(.23,1,.32,1) forwards}.first-toast-leave-active[data-v-b3a7f1a6]{transition:all .25s ease-in}.first-toast-leave-to[data-v-b3a7f1a6]{opacity:0;transform:scale(.98)}@keyframes first-toast-in-b3a7f1a6{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-b3a7f1a6],.stack-toast-leave-active[data-v-b3a7f1a6]{transition:all .3s cubic-bezier(.16,1,.3,1)}.stack-toast-enter-from[data-v-b3a7f1a6]{opacity:0;transform:scale(.95) translateY(10px)}.stack-toast-leave-to[data-v-b3a7f1a6]{opacity:0;transform:scale(.95)}.stack-toast-move[data-v-b3a7f1a6]{transition:transform .4s cubic-bezier(.16,1,.3,1)}.cp-item-transition[data-v-66b1ae06]{transition:background-color 80ms ease,color 80ms ease}.command-palette-content[data-v-aa0dbb48] ::-webkit-scrollbar{width:4px}.command-palette-content[data-v-aa0dbb48] ::-webkit-scrollbar-track{background:transparent}.command-palette-content[data-v-aa0dbb48] ::-webkit-scrollbar-thumb{background:var(--border);border-radius:9999px}.cp-scroll-container[data-v-aa0dbb48]{transform:translateZ(0);will-change:transform;touch-action:pan-y;backface-visibility:hidden}
|
|
1899
|
+
.v-btn-horizontal[data-v-dc9b3674]{flex-direction:row}.chip.scrollbar-hide,.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chip.scrollbar-hide::-webkit-scrollbar,.scrollbar-hide::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}input[data-v-3e1eac3e]::-webkit-outer-spin-button,input[data-v-3e1eac3e]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-3e1eac3e]{-moz-appearance:textfield;appearance:textfield}@keyframes onAutoFillStart{0%{opacity:1}to{opacity:1}}@keyframes onAutoFillCancel{0%{opacity:1}to{opacity:1}}input.autofill-detect:-webkit-autofill{animation-name:onAutoFillStart;animation-duration:1ms;animation-fill-mode:both}input.autofill-detect:not(:-webkit-autofill){animation-name:onAutoFillCancel;animation-duration:1ms;animation-fill-mode:both}.vl-thumbnail-selector__filepicker-inline[data-v-470fec5b]{display:contents}.vl-thumbnail-selector__card:hover .vl-thumbnail-selector__delete[data-v-470fec5b],.vl-thumbnail-selector__card:hover .vl-thumbnail-selector__drag-handle[data-v-470fec5b]{opacity:1}.vl-thumbnail-selector__card[data-v-470fec5b]:not(.border-primary):hover{border-color:color-mix(in sRGB,var(--color-primary, currentColor) 40%,transparent)}.mega-menu-grid[data-v-512aa158]{display:grid;grid-template-columns:repeat(var(--mega-cols, 3),minmax(0,1fr))}@media(max-width:768px){.mega-menu-grid[data-v-512aa158]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.mega-menu-grid[data-v-512aa158]{grid-template-columns:1fr}}.dropdown-menu[data-v-173c7a02]{will-change:transform;contain:layout style}.v-modal-overlay[data-v-208854bc]{background-color:#00000085}.v-modal-backdrop[data-v-208854bc]{transform:translateZ(0)}.modal-dialog-enter-active[data-v-208854bc]{transition:opacity 80ms ease-out}.modal-dialog-leave-active[data-v-208854bc]{transition:opacity .12s ease-in}.modal-dialog-enter-from[data-v-208854bc],.modal-dialog-leave-to[data-v-208854bc]{opacity:0}.modal-body[data-v-208854bc]{will-change:opacity;contain:layout style}.blink-bg[data-v-208854bc]{animation:blink-animation-208854bc 1s infinite}@keyframes blink-animation-208854bc{0%{background-color:inherit}15%{background-color:var(--color-gray-250)}35%{background-color:inherit}75%{background-color:var(--color-gray-250)}to{background-color:inherit}}.badge.scrollbar-hide,.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.badge.scrollbar-hide::-webkit-scrollbar,.scrollbar-hide::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}[data-v-a8f85730] .date-picker-content.dates{min-height:245px}.IroBox{border-radius:8px!important}.accordion-enter-active[data-v-d1f2e7f8],.accordion-leave-active[data-v-d1f2e7f8]{transition:height .3s ease-in-out;will-change:height}.content-wrapper[data-v-d1f2e7f8],.custom-fields-accordion[data-v-52660f5b],.custom-fields-table[data-v-63b24d19]{will-change:transform;contain:layout style}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) input,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) textarea{resize:none}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) input,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) textarea,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) select,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .input-wrapper,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .tooltip-trigger button,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .tooltip-trigger>div{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-63b24d19]:not(.is-stacked) input:focus,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) textarea:focus,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) select:focus,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .input-wrapper:focus-within,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .tooltip-trigger button:focus,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .tooltip-trigger>div:focus,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .tooltip-trigger>div: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-63b24d19]:not(.is-stacked) .w-full{width:100%;height:100%}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker{height:100%!important;min-height:40px;padding:0;min-width:0!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker--input>.relative{height:100%;min-width:0}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker--input [role=button]{height:100%!important;min-height:40px!important;border:none!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding-left:.75rem!important;padding-right:2.5rem!important;min-width:0!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker--input [role=button]:focus,.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker--input [role=button]:focus-visible{background-color:hsla(var(--primary) / .03)!important;box-shadow:inset 0 0 0 2px hsla(var(--primary) / .1)!important;outline:none!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker__dropzone{min-height:96px;padding:1rem;border-radius:.5rem!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker__file{min-height:72px;border-radius:.5rem!important;background:hsl(var(--background))!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker__file input{height:auto!important;min-height:0;padding:.125rem .25rem!important;border-bottom:1px solid transparent!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker__file input:hover{border-bottom-color:hsl(var(--border))!important}.custom-fields-table[data-v-63b24d19]:not(.is-stacked) .vl-file-picker__file input:focus{background-color:transparent!important;border-bottom-color:hsl(var(--primary))!important;box-shadow:none!important}.custom-fields-table.is-stacked[data-v-63b24d19] .vl-file-picker{min-width:0!important;width:100%}.list-enter-active[data-v-63b24d19]{transition:all .15s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-63b24d19]{opacity:0;transform:translateY(-5px)}:where(.rte-editor,.rte-reader) h1{display:block;font-size:1.5rem!important;font-weight:700!important;margin:.5em 0 .2em!important;line-height:1.3}:where(.rte-editor,.rte-reader) h2{display:block;font-size:1.2rem!important;font-weight:600!important;margin:.45em 0 .2em!important;line-height:1.35}:where(.rte-editor,.rte-reader) p{display:block;margin:.2em 0!important}:where(.rte-editor,.rte-reader) div{margin:.1em 0}:where(.rte-editor,.rte-reader) blockquote{display:block;border-left:3px solid var(--color-primary);margin:.6em 0!important;padding:.35em 1em!important;color:var(--color-muted-foreground);font-style:italic;background:color-mix(in oklab,var(--color-primary) 6%,transparent);border-radius:0 var(--radius-sm) var(--radius-sm) 0}:where(.rte-editor,.rte-reader) ul{display:block!important;list-style-type:disc!important;list-style-position:inside!important;padding-left:1.6em!important;margin:.35em 0!important}:where(.rte-editor,.rte-reader) ol{display:block!important;list-style-type:decimal!important;list-style-position:inside!important;padding-left:1.6em!important;margin:.35em 0!important}:where(.rte-editor,.rte-reader) li{display:list-item!important;margin:.15em 0!important;padding-left:.15em}:where(.rte-editor,.rte-reader) ul ul,:where(.rte-editor,.rte-reader) ol ul{list-style-type:circle!important}:where(.rte-editor,.rte-reader) ul ul ul,:where(.rte-editor,.rte-reader) ol ol ul{list-style-type:square!important}:where(.rte-editor,.rte-reader) ol ol{list-style-type:lower-alpha!important}:where(.rte-editor,.rte-reader) ol ol ol{list-style-type:lower-roman!important}:where(.rte-editor,.rte-reader) hr{display:block!important;border:0!important;border-top:1px solid var(--color-border)!important;margin:1.5em 0!important}:where(.rte-editor,.rte-reader) a{color:var(--color-info);text-decoration:underline;text-underline-offset:2px;cursor:pointer;transition:color .12s ease}:where(.rte-editor,.rte-reader) a:hover{color:var(--color-info-dark, var(--color-info));text-decoration-thickness:2px}:where(.rte-editor,.rte-reader) code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.85em;background:var(--color-muted);color:var(--color-foreground);padding:.2em .4em;border-radius:var(--radius-sm);border:none}:where(.rte-editor,.rte-reader) img{max-width:100%;height:auto;border-radius:var(--radius-sm);margin:1em 0;display:block;box-shadow:0 0 0 1px var(--color-border);transition:filter .2s,opacity .2s}.rte-editor img.rte-image-uploading{opacity:.6;filter:grayscale(100%) blur(2px);cursor:wait}:where(.rte-editor,.rte-reader) strong,:where(.rte-editor,.rte-reader) b{font-weight:700!important}:where(.rte-editor,.rte-reader) em,:where(.rte-editor,.rte-reader) i{font-style:italic!important}:where(.rte-editor,.rte-reader) u{text-decoration:underline!important;text-decoration-thickness:1.5px;text-underline-offset:2px}:where(.rte-editor,.rte-reader) s,:where(.rte-editor,.rte-reader) strike{text-decoration:line-through!important}.rte-editor ::selection{background:color-mix(in oklab,var(--color-primary) 22%,transparent)}.rte-toolbar{display:flex;flex-wrap:wrap;padding:6px 8px;gap:2px;border-bottom:1px solid var(--color-border);background:var(--color-background);border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;align-items:center}.rte-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--color-muted-foreground);cursor:pointer;transition:all .1s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.rte-btn:hover:not(:disabled){background:var(--color-accent);color:var(--color-foreground)}.rte-btn--active{background:var(--color-accent);color:var(--color-foreground)}.rte-btn--text{font-size:.75rem;font-weight:700;width:auto;min-width:28px;padding:0 6px}.rte-icon{width:1.1rem;height:1.1rem;stroke-width:2.5}.rte-btn:disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.rte-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.rte-sep{width:1px;height:18px;background:var(--color-border);margin:0 3px;flex-shrink:0}.rte-link-popover{position:absolute;top:0;left:0;z-index:60;width:300px;max-width:min(300px,calc(100vw - 24px));background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 2px 4px #0000000f,0 8px 24px #0000001a;padding:8px;display:flex;flex-direction:column;gap:6px;will-change:transform,opacity}.rte-link-input-row{display:flex;align-items:center;gap:6px;background:var(--color-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 8px;transition:border-color .15s ease,box-shadow .15s ease}.rte-link-input-row:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in oklab,var(--color-primary) 12%,transparent)}.rte-link-icon-prefix{width:.875rem;height:.875rem;color:var(--color-muted-foreground);flex-shrink:0}.rte-link-input{flex:1;background:transparent;border:none;outline:none;font-size:.8rem;color:var(--color-foreground);padding:7px 0;min-width:0;font-family:JetBrains Mono,Fira Code,ui-monospace,monospace}.rte-link-input::placeholder{color:var(--color-muted-foreground);font-family:inherit}.rte-link-actions-row{display:flex;align-items:center;gap:3px}.rte-link-action-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:none;border-radius:var(--radius-sm);background:transparent;font-size:.75rem;font-weight:500;cursor:pointer;color:var(--color-muted-foreground);transition:background .12s ease,color .12s ease}.rte-link-action-btn:hover{background:var(--color-accent);color:var(--color-foreground)}.rte-link-action-btn--danger{color:var(--color-destructive)}.rte-link-action-btn--danger:hover{background:color-mix(in oklab,var(--color-destructive) 10%,transparent);color:var(--color-destructive)}.rte-link-apply-btn{background:var(--color-primary);color:var(--color-primary-foreground);width:24px;height:24px;padding:4px;cursor:pointer}.rte-link-apply-btn:disabled{opacity:.5;cursor:not-allowed}.rte-link-apply-btn:hover:not(:disabled){background:color-mix(in oklab,var(--color-primary) 88%,var(--color-primary-foreground));color:var(--color-primary-foreground)}.rte-root{display:flex;flex-direction:column;gap:6px;width:100%}.rte-label{font-size:.825rem;font-weight:500;color:var(--color-foreground);margin-bottom:2px}.rte-wrapper{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius);position:relative;transition:border-color .15s ease,box-shadow .15s ease;display:flex;flex-direction:column}.rte-root.rte-focused .rte-wrapper{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in oklab,var(--color-primary) 12%,transparent)}.rte-root.rte-disabled .rte-wrapper{background:var(--color-muted);opacity:.6}.rte-root.rte-error .rte-wrapper{border-color:var(--color-destructive)}.rte-root.rte-error.rte-focused .rte-wrapper{box-shadow:0 0 0 2px color-mix(in oklab,var(--color-destructive) 15%,transparent)}.rte-body-wrap{position:relative;overflow:visible}.rte-editor{outline:none;padding:14px 16px;color:var(--color-foreground);font-size:.9rem;line-height:1.7;width:100%;box-sizing:border-box;overflow-y:auto;border-radius:0 0 var(--radius) var(--radius);word-break:break-word;overflow-wrap:break-word;will-change:transform;contain:layout style}.rte-editor[contenteditable=true]{caret-color:var(--color-primary)}.rte-placeholder{position:absolute;top:14px;left:16px;color:var(--color-muted-foreground);font-size:.9rem;pointer-events:none;-webkit-user-select:none;user-select:none;line-height:1.7}.rte-error-msg{font-size:.78rem;color:var(--color-destructive);margin:0;line-height:1.4}.form-field-item[data-v-eef10419]{display:flex;flex-direction:column;min-width:0}.form-field-item[data-v-eef10419]:has([role=checkbox]){flex-direction:row;align-items:center;justify-content:flex-start}.status-chip.scrollbar-hide,.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.status-chip.scrollbar-hide::-webkit-scrollbar,.scrollbar-hide::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.form-container[data-v-91b9b05d]{width:100%;will-change:transform;contain:layout style}[data-tabes][data-v-de4ab2fa]:not(.inline-flex):not([class*=gap-6])>:where(button,a,[role=tab],.tabes-menu){flex:1 0 0%;min-width:max-content}[data-v-de4ab2fa] .tabes-menu{display:inline-flex;vertical-align:middle;max-width:100%}.tabes-scroll[data-v-de4ab2fa],.tabes-marker[data-v-de4ab2fa]{will-change:transform;contain:layout style}.scrollbar-hide[data-v-de4ab2fa]{-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.scrollbar-hide[data-v-de4ab2fa]::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.tabes-container.is-sortable [data-tabes-item][data-v-de4ab2fa],.tabes-container.is-sortable[data-v-de4ab2fa] .tabes-menu{cursor:grab}.tabes-container.is-sortable [data-tabes-item][data-v-de4ab2fa]:active,.tabes-container.is-sortable[data-v-de4ab2fa] .tabes-menu:active{cursor:grabbing}.tabes-container.is-sortable [data-tabes-disabled][data-v-de4ab2fa]{cursor:default}.tabes-drag-ghost[data-v-de4ab2fa]{opacity:.5}.tabes-drag-chosen[data-v-de4ab2fa]{cursor:grabbing}.vlite-line-chart[data-v-044e962d]{position:relative}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.scrollbar-hide::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.scrollable-container[data-v-d505482b]{will-change:transform;contain:layout style}.kanban-board--disabled[data-v-d505482b]{opacity:.75;background-color:color-mix(in srgb,var(--color-card) 85%,var(--color-muted) 15%)}.kanban-lock-badge[data-v-d505482b]{font-size:.75rem;line-height:1;-webkit-user-select:none;user-select:none}.scrollable-container[data-v-2dd0633e]{will-change:transform;contain:layout style}.v-sidepanel-overlay[data-v-10bfdf18]{background-color:#00000069}.slide-right-enter-active[data-v-10bfdf18],.slide-left-enter-active[data-v-10bfdf18]{transition:opacity 80ms ease-out}.slide-right-leave-active[data-v-10bfdf18],.slide-left-leave-active[data-v-10bfdf18]{transition:opacity .12s ease-in}.slide-right-enter-from[data-v-10bfdf18],.slide-right-leave-to[data-v-10bfdf18],.slide-left-enter-from[data-v-10bfdf18],.slide-left-leave-to[data-v-10bfdf18]{opacity:0}.sidepanel-body[data-v-10bfdf18]{will-change:transform,opacity;contain:layout style}.navbar-tabs-edge--start[data-v-b4a2c569]{inset-inline-start:0}.navbar-tabs-edge--end[data-v-b4a2c569]{inset-inline-end:0}.fade-x-enter-active,.fade-x-leave-active{transition:opacity .15s ease}.fade-x-enter-from,.fade-x-leave-to{opacity:0}.navbar-tabs-no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.navbar-tabs-no-scrollbar::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}@media(min-width:768px){.pagination[data-v-6c562c38]{flex-direction:row}}.heatmap-container[data-v-00476f00]{width:100%;height:100%;display:flex;flex-direction:column;min-height:0}.heatmap-wrapper[data-v-00476f00]{width:100%;height:100%;overflow:auto;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;position:relative}.heatmap-grid[data-v-00476f00]{width:fit-content;height:fit-content;transition:all .2s ease-in-out}.heatmap-cell[data-v-00476f00]{aspect-ratio:1 / 1;border-radius:2px;transition:all .15s ease-in-out;border:1px solid transparent;box-sizing:border-box}.heatmap-cell-interactive[data-v-00476f00]{cursor:pointer}.heatmap-cell-interactive[data-v-00476f00]:hover{transform:scale(1.1);border-color:var(--border);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;z-index:10;position:relative}.heatmap-cell-empty[data-v-00476f00]{opacity:.6}.heatmap-cell-hovered[data-v-00476f00]{outline:2px solid var(--primary);outline-offset:1px}.heatmap-cell-label[data-v-00476f00]{font-size:8px;font-weight:500;color:var(--foreground);opacity:.8;display:flex;align-items:center;justify-content:center;height:100%;width:100%;pointer-events:none}.heatmap-legend[data-v-00476f00]{display:flex;align-items:center;gap:.5rem;margin-top:1rem;font-size:.75rem;color:var(--muted-foreground);flex-shrink:0}.heatmap-legend-label[data-v-00476f00]{font-weight:500}.heatmap-legend-colors[data-v-00476f00]{display:flex;gap:.125rem}.heatmap-legend-item[data-v-00476f00]{width:.75rem;height:.75rem;border-radius:.375rem;border:1px solid var(--border)}@media(max-width:640px){.heatmap-wrapper[data-v-00476f00]{padding:12px}.heatmap-cell[data-v-00476f00]{border-radius:2px}.heatmap-cell-label[data-v-00476f00]{font-size:7px}}@media(min-width:641px)and (max-width:1023px){.heatmap-wrapper[data-v-00476f00]{padding:14px}.heatmap-cell[data-v-00476f00]{border-radius:2px}}@media(min-width:1024px){.heatmap-wrapper[data-v-00476f00]{padding:16px}.heatmap-cell[data-v-00476f00]{border-radius:3px}}.masonry-item[data-v-c29d0159]{content-visibility:auto;contain-intrinsic-size:1px 200px}.carousel-wrapper[data-v-4d544a95]{width:100%;position:relative;will-change:transform;contain:layout style}.breadcrumb-item[data-v-ecb5df7c]{display:inline-flex;align-items:center;cursor:pointer}.breadcrumb-link[data-v-ecb5df7c]{display:inline-flex;align-items:center;gap:.35em;color:var(--color-muted-foreground);text-decoration:none;transition:color .15s ease,background-color .15s ease;border-radius:var(--radius-sm)}.breadcrumb-link[data-v-ecb5df7c]:not(.current):not(.disabled):hover{color:var(--color-foreground)}.breadcrumb-link.current[data-v-ecb5df7c]{color:var(--color-foreground);font-weight:600;cursor:default}.breadcrumb-link.disabled[data-v-ecb5df7c]{opacity:.45;cursor:not-allowed;pointer-events:none}.breadcrumb-icon[data-v-ecb5df7c]{flex-shrink:0}.breadcrumb-list[data-v-d1e90135]{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0;gap:.38em}.breadcrumb--sm[data-v-d1e90135]{font-size:var(--text--fs-2)}.breadcrumb--md[data-v-d1e90135]{font-size:var(--text-fs-0.5, 1em)}.breadcrumb--lg[data-v-d1e90135]{font-size:var(--text-fs-2)}.breadcrumb-separator[data-v-d1e90135]{display:inline-flex;align-items:center;color:var(--color-gray-500);-webkit-user-select:none;user-select:none;font-size:.9em;line-height:1;padding:0 .1em}.breadcrumb-ellipsis[data-v-d1e90135]{display:inline-flex;align-items:center}.breadcrumb-ellipsis-btn[data-v-d1e90135]{display:inline-flex;align-items:center;justify-content:center;width:1.6em;height:1.6em;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:transparent;color:var(--color-muted-foreground);cursor:pointer;font-size:.9em;line-height:1;letter-spacing:.05em;transition:all .15s ease}.breadcrumb-ellipsis-btn[data-v-d1e90135]:hover{background:var(--color-accent);color:var(--color-foreground);border-color:var(--color-gray-350)}.breadcrumb--contained[data-v-d1e90135]{background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.45em 1em}.breadcrumb--pills[data-v-d1e90135] .breadcrumb-link{padding:.2em .7em;border-radius:9999px;background:var(--color-secondary);border:1px solid var(--color-border)}.breadcrumb--pills[data-v-d1e90135] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent);border-color:var(--color-gray-350)}.breadcrumb--pills[data-v-d1e90135] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.breadcrumb--arrow .breadcrumb-list[data-v-d1e90135]{gap:0}.breadcrumb--arrow[data-v-d1e90135] .breadcrumb-link{padding:.35em .9em .35em 1.4em;background:var(--color-secondary);clip-path:polygon(0 0,calc(100% - .6em) 0,100% 50%,calc(100% - .6em) 100%,0 100%,.6em 50%);border:none;margin-left:-.3em}.breadcrumb--arrow[data-v-d1e90135] .breadcrumb-item:first-child .breadcrumb-link{padding-left:.9em;clip-path:polygon(0 0,calc(100% - .6em) 0,100% 50%,calc(100% - .6em) 100%,0 100%);border-radius:var(--radius-sm) 0 0 var(--radius-sm);margin-left:0}.breadcrumb--arrow[data-v-d1e90135] .breadcrumb-link:not(.current):not(.disabled):hover{background:var(--color-accent)}.breadcrumb--arrow[data-v-d1e90135] .breadcrumb-link.current{background:var(--color-primary);color:var(--color-primary-foreground)}.breadcrumb--arrow .breadcrumb-separator[data-v-d1e90135]{display:none}.file-tree-container[data-v-06de722e]{will-change:transform;contain:layout style}.rte-reader[data-v-55b9fd8b]{font-family:inherit;color:var(--color-foreground);font-size:.9rem;line-height:1.7;word-break:break-word;overflow-wrap:break-word;padding:0;margin:0}.sheet-container[data-v-e674bcbc]{will-change:transform;contain:layout style}.vl-comment-actions[data-v-446c60ad]{opacity:0;transition:opacity .15s ease}.vl-comment:hover:not(:has(.vl-comment:hover))>div>.vl-comment-header>.vl-comment-actions[data-v-446c60ad]{opacity:1}.vl-comment-actions[data-v-446c60ad]:focus-within{opacity:1}.vl-comment:has(.vl-comment-actions button[aria-label="Confirm delete"]) .vl-comment-actions[data-v-446c60ad]{opacity:1}.stacked-cell-value[data-v-af551256],.stacked-cell-value[data-v-af551256] *{white-space:normal!important;overflow:visible!important;text-overflow:unset!important;overflow-wrap:anywhere;word-break:break-word;max-width:100%}.sidebar-manu-item .tooltip-trigger{width:100%!important}.sidebar-menu-tooltip{margin-inline-start:4px!important}.drill-forward-enter-active,.drill-forward-leave-active{transition:all .28s cubic-bezier(.4,0,.2,1)}.drill-forward-enter-from{opacity:0;transform:translate(40%)}.drill-forward-enter-to,.drill-forward-leave-from{opacity:1;transform:translate(0)}.drill-forward-leave-to{opacity:0;transform:translate(-40%)}.drill-forward-leave-active{position:absolute;top:0;inset-inline:0}.drill-backward-enter-active,.drill-backward-leave-active{transition:all .28s cubic-bezier(.4,0,.2,1)}.drill-backward-enter-from{opacity:0;transform:translate(-40%)}.drill-backward-enter-to,.drill-backward-leave-from{opacity:1;transform:translate(0)}.drill-backward-leave-to{opacity:0;transform:translate(40%)}.drill-backward-leave-active{position:absolute;top:0;inset-inline:0}.sidebar-drilldown--rtl .drill-forward-enter-from{transform:translate(-40%)}.sidebar-drilldown--rtl .drill-forward-leave-to,.sidebar-drilldown--rtl .drill-backward-enter-from{transform:translate(40%)}.sidebar-drilldown--rtl .drill-backward-leave-to{transform:translate(-40%)}.sidebar-drilldown-container{min-height:0}.bg-stripe[data-v-454a1505]{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.animate-progress-stripe[data-v-454a1505]{animation:progress-stripe-454a1505 1s linear infinite}@keyframes progress-stripe-454a1505{0%{background-position:1rem 0}to{background-position:0 0}}.animate-progress-indeterminate[data-v-454a1505]{animation:progress-indeterminate-454a1505 1.5s infinite cubic-bezier(.65,.815,.735,.395)}@keyframes progress-indeterminate-454a1505{0%{transform:translate(-100%) scaleX(.2)}50%{transform:translate(0) scaleX(.5)}to{transform:translate(100%) scaleX(.2)}}.permission-matrix-wrapper[data-v-f4695eed]{max-height:70vh;will-change:transform;contain:layout style}.permission-list-wrapper[data-v-a42b2fb0]{border:1px solid var(--color-border);border-radius:.5rem;overflow:hidden;background-color:var(--color-background);will-change:transform;contain:layout style}.custom-list-header[data-v-a42b2fb0]{background-color:var(--color-muted);border-bottom:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px)}.custom-list-group-content .custom-list-item[data-v-a42b2fb0]{border-bottom:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px);background-color:var(--color-background)}.custom-list-group-content .custom-list-item[data-v-a42b2fb0]:hover{background-color:var(--color-accent)}.custom-list-group-content .custom-list-item[data-v-a42b2fb0]:last-child{border-bottom:none}.custom-list-group-content+.custom-list-header[data-v-a42b2fb0],.custom-list-header+.custom-list-header[data-v-a42b2fb0]{border-top:1px solid var(--color-border)}.permission-list-wrapper>.custom-list-header[data-v-a42b2fb0]:last-child{border-bottom:none}.permission-matrix-wrapper[data-v-e8bfdc18]{border:1px solid var(--color-border);background-color:var(--color-gray-100);border-radius:.5rem;overflow:auto;max-height:65vh;position:relative;will-change:transform;contain:layout style}.custom-table[data-v-e8bfdc18]{width:100%;border-collapse:collapse}.custom-sticky-header th[data-v-e8bfdc18]{position:sticky;top:0;z-index:20;box-shadow:0 1px 0 var(--color-border)}.custom-th[data-v-e8bfdc18]{background-color:var(--color-gray-150);color:var(--color-foreground);background-clip:padding-box;border-bottom:none;border-left:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px);text-align:left;font-weight:600;min-width:200px}thead:not(.custom-sticky-header) .custom-th[data-v-e8bfdc18]{border-bottom:1px solid var(--color-border)}.custom-th.text-center[data-v-e8bfdc18]{text-align:center;min-width:100px}.custom-th[data-v-e8bfdc18]:first-child{border-left:none}.custom-td[data-v-e8bfdc18]{border-bottom:1px solid var(--color-border);border-left:1px solid var(--color-border);padding:var(--cell-py) var(--cell-px)}.custom-td.text-center[data-v-e8bfdc18]{text-align:center}.custom-td[data-v-e8bfdc18]:first-child{border-left:none}.custom-group-row td[data-v-e8bfdc18]{background-color:var(--color-gray-100);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.custom-entity-row[data-v-e8bfdc18]{background-color:var(--color-background);transition:background-color .1s ease}.custom-entity-row[data-v-e8bfdc18]:hover{background-color:var(--color-gray-50)}.custom-entity-row:last-child td[data-v-e8bfdc18]{border-bottom:none}.custom-active-cell[data-v-e8bfdc18]{cursor:pointer}.custom-active-cell[data-v-e8bfdc18]:hover{background-color:var(--color-accent)}.category-manager--loading[data-v-0e426dc4]{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-fade-enter-active[data-v-0e426dc4],.cm-fade-leave-active[data-v-0e426dc4]{transition:opacity .2s ease}.cm-fade-enter-from[data-v-0e426dc4],.cm-fade-leave-to[data-v-0e426dc4]{opacity:0}.category-tabs-no-scrollbar[data-v-4d803b88]{-ms-overflow-style:none;scrollbar-width:none}.category-tabs-no-scrollbar[data-v-4d803b88]::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.fade-x-enter-active[data-v-4d803b88],.fade-x-leave-active[data-v-4d803b88]{transition:opacity .15s ease}.fade-x-enter-from[data-v-4d803b88],.fade-x-leave-to[data-v-4d803b88]{opacity:0}.category-mega-no-scrollbar[data-v-5a117002]{-ms-overflow-style:none;scrollbar-width:none}.category-mega-no-scrollbar[data-v-5a117002]::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.fade-x-enter-active[data-v-5a117002],.fade-x-leave-active[data-v-5a117002]{transition:opacity .15s ease}.fade-x-enter-from[data-v-5a117002],.fade-x-leave-to[data-v-5a117002]{opacity:0}.button-group[data-v-ae9bcc76]:not(.vertical-group){flex-direction:row}.attached-group[data-v-ae9bcc76] button{position:relative}.attached-group[data-v-ae9bcc76] button:focus-visible,.attached-group[data-v-ae9bcc76] button:hover{z-index:10}.attached-group[data-v-ae9bcc76]:not(.vertical-group) button:not(:first-child){margin-inline-start:-1px}.attached-group[data-v-ae9bcc76]:not(.vertical-group) button:first-child{border-start-end-radius:0!important;border-end-end-radius:0!important}.attached-group[data-v-ae9bcc76]:not(.vertical-group) button:not(:first-child):not(:last-child){border-radius:0!important}.attached-group[data-v-ae9bcc76]:not(.vertical-group) button:last-child{border-start-start-radius:0!important;border-end-start-radius:0!important}.vertical-group[data-v-ae9bcc76] button:not(:first-child){margin-block-start:-1px}.vertical-group[data-v-ae9bcc76] button:first-child{border-end-start-radius:0!important;border-end-end-radius:0!important}.vertical-group[data-v-ae9bcc76] button:not(:first-child):not(:last-child){border-radius:0!important}.vertical-group[data-v-ae9bcc76] button:last-child{border-start-start-radius:0!important;border-start-end-radius:0!important}.attached-group[data-v-ae9bcc76]:not(.vertical-group) button:not(:first-child):not(.border):before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:1px;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none;height:100%}.vertical-group[data-v-ae9bcc76] button:not(:first-child):not(.border):before{content:"";position:absolute;inset-inline:0;top:0;height:1px;width:100%;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none}[data-v-63e46f6b] .calendar-view{--calendar-primary-color: var(--color-primary);--calendar-bg-color: transparent !important;--calendar-border-color: var(--color-border);--calendar-text-color: var(--color-foreground);--calendar-hover-color: var(--color-accent)}[data-v-63e46f6b] .v-event-calendar .add-event-icon,[data-v-63e46f6b] .v-event-calendar .add-event-icon svg{color:var(--color-primary-fg)!important}.vlite-scc-grid[data-v-e6172e07]{display:flex;width:100%}.vlite-scc-card[data-v-e6172e07]{flex:1;position:relative;display:flex;align-items:stretch}.vlite-scc-separator[data-v-e6172e07]{width:1px;align-self:stretch;background:var(--color-border, #e4e4e7);opacity:.3;margin:8px 0;flex-shrink:0;background-image:repeating-linear-gradient(to bottom,var(--color-border, #e4e4e7) 0px,var(--color-border, #e4e4e7) 4px,transparent 4px,transparent 8px);background-color:transparent}.vlite-scc-content[data-v-e6172e07]{display:flex;flex-direction:column;align-items:flex-start;padding:16px 20px;flex:1;min-height:200px}.vlite-scc-label[data-v-e6172e07]{font-size:13px;font-weight:500;color:var(--color-muted-foreground, #71717a);margin:0 0 6px}.vlite-scc-pct[data-v-e6172e07]{font-size:36px;font-weight:800;color:var(--color-foreground, #09090b);margin:0;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.vlite-scc-spacer[data-v-e6172e07]{flex:1}.vlite-scc-indicator[data-v-e6172e07]{border-radius:10px;margin-bottom:14px;transition:width .6s ease,height .6s ease}.vlite-scc-footer[data-v-e6172e07]{display:flex;align-items:center;gap:8px}.vlite-scc-value[data-v-e6172e07]{font-size:14px;font-weight:600;color:var(--color-foreground, #09090b);font-variant-numeric:tabular-nums}.vlite-scc-trend-icon[data-v-e6172e07]{width:14px;height:14px}.vlite-scc-trend-up[data-v-e6172e07]{color:var(--color-success, #22c55e);transform:rotate(25deg)}.vlite-scc-trend-down[data-v-e6172e07]{color:var(--color-danger, #ef4444);transform:rotate(-25deg)}.vlite-gantt-chart[data-v-94a48eeb]{font-family:inherit}.vlite-gantt-toolbar[data-v-94a48eeb]{display:flex;justify-content:flex-end;align-items:center;margin-bottom:8px;gap:6px}.vlite-gantt-legend-blocked[data-v-94a48eeb]{display:inline-flex;align-items:center;gap:4px;margin-right:auto;padding:3px 8px;border-radius:6px;font-size:10px;font-weight:600;color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 10%,transparent);border:1px dashed color-mix(in srgb,var(--color-danger) 45%,transparent)}.vlite-gantt-tooltip-blocked[data-v-94a48eeb]{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:600;color:var(--color-danger)}.vlite-gantt-btn[data-v-94a48eeb]{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;font-size:11px;font-weight:600;color:var(--color-muted-foreground);background:var(--color-muted);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:all .15s}.vlite-gantt-btn[data-v-94a48eeb]:hover:not(:disabled){background:var(--color-accent);color:var(--color-foreground)}.vlite-gantt-btn[data-v-94a48eeb]:disabled{opacity:.5;cursor:not-allowed}.vlite-gantt-zoom-controls[data-v-94a48eeb]{display:flex;gap:6px}.vlite-gantt-wrapper[data-v-94a48eeb]{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-background)}.vlite-gantt-sidebar[data-v-94a48eeb]{flex-shrink:0;border-right:1px solid var(--color-border);background:var(--color-background);z-index:2}.vlite-gantt-sidebar-header[data-v-94a48eeb]{display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--color-border);background:color-mix(in oklab,var(--color-background) 97%,var(--color-foreground))}.vlite-gantt-sidebar-body[data-v-94a48eeb]{overflow-y:hidden;overflow-x:hidden}.vlite-gantt-sidebar-row[data-v-94a48eeb]{display:flex;align-items:center;padding:0 12px;border-bottom:1px solid color-mix(in oklab,var(--color-border) 50%,transparent)}.vlite-gantt-group-toggle[data-v-94a48eeb]{display:flex;align-items:center;gap:6px;width:100%;padding:0 4px;background:none;border:none;cursor:pointer;color:inherit;text-align:left}.vlite-gantt-group-toggle[data-v-94a48eeb]:hover{opacity:.8}.vlite-gantt-chevron[data-v-94a48eeb]{transition:transform .2s ease;color:var(--color-muted-foreground);flex-shrink:0}.vlite-gantt-chevron-collapsed[data-v-94a48eeb]{transform:rotate(-90deg)}.vlite-gantt-group-count[data-v-94a48eeb]{font-size:10px;font-weight:600;color:var(--color-muted-foreground);background:var(--color-muted);padding:1px 6px;border-radius:99px;margin-left:auto}.vlite-gantt-task-name[data-v-94a48eeb]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:0 4px;width:100%;transition:all .15s}.vlite-gantt-task-name[data-v-94a48eeb]:hover{opacity:.75}.vlite-gantt-task-name-grouped[data-v-94a48eeb]{padding-left:20px}.vlite-gantt-task-name-dragging[data-v-94a48eeb]{background:color-mix(in oklab,var(--color-primary) 8%,transparent);border-radius:4px}.vlite-gantt-task-dot[data-v-94a48eeb]{width:7px;height:7px;border-radius:2px;flex-shrink:0}.vlite-gantt-progress-badge[data-v-94a48eeb]{font-size:10px;font-weight:700;color:var(--color-muted-foreground);margin-left:auto;flex-shrink:0}.vlite-gantt-timeline[data-v-94a48eeb]{flex:1;overflow-x:auto;overflow-y:auto;position:relative}.vlite-gantt-timeline-header[data-v-94a48eeb]{position:sticky;top:0;z-index:1;border-bottom:1px solid var(--color-border);background:color-mix(in oklab,var(--color-background) 97%,var(--color-foreground))}.vlite-gantt-timeline-body[data-v-94a48eeb]{position:relative}.vlite-gantt-bar-dragging[data-v-94a48eeb]{filter:drop-shadow(0 2px 8px rgba(0,0,0,.15));z-index:10}.vlite-gantt-dep-group[data-v-94a48eeb]{transition:opacity .15s,filter .15s}.vlite-gantt-dep-group[data-v-94a48eeb]:hover{opacity:1!important}.vlite-gantt-dep-selectable .vlite-gantt-dep-hit[data-v-94a48eeb]{cursor:pointer}.vlite-gantt-dep-hit[data-v-94a48eeb]{outline:none}.vlite-gantt-dep-line[data-v-94a48eeb],.vlite-gantt-dep-arrowhead[data-v-94a48eeb]{transition:stroke .15s,fill .15s,stroke-opacity .15s,fill-opacity .15s}.vlite-gantt-dep-hovered .vlite-gantt-dep-line[data-v-94a48eeb]{stroke:var(--color-foreground);stroke-opacity:.9}.vlite-gantt-dep-hovered .vlite-gantt-dep-arrowhead[data-v-94a48eeb]{fill:var(--color-foreground);fill-opacity:.9}.vlite-gantt-dep-delete[data-v-94a48eeb]{cursor:pointer;outline:none}.vlite-gantt-dep-delete:focus-visible circle[data-v-94a48eeb]:nth-of-type(2){stroke:var(--color-foreground);stroke-width:2}.vlite-gantt-linking[data-v-94a48eeb]{cursor:crosshair}.vlite-gantt-dep-connector[data-v-94a48eeb]{cursor:grab;outline:none}.vlite-gantt-dep-connector:focus-visible .vlite-gantt-dep-connector-disc[data-v-94a48eeb]{stroke:var(--color-primary);stroke-width:2.5;filter:drop-shadow(0 0 0 2px color-mix(in oklab,var(--color-primary) 35%,transparent))}.vlite-gantt-dep-connector-disc[data-v-94a48eeb]{transition:stroke .15s,fill .15s}.vlite-gantt-link-source[data-v-94a48eeb]{filter:drop-shadow(0 0 0 1px color-mix(in oklab,var(--color-primary) 40%,transparent))}.vlite-gantt-link-candidate[data-v-94a48eeb]{opacity:.92}.vlite-gantt-link-target-valid[data-v-94a48eeb]{filter:drop-shadow(0 0 6px color-mix(in oklab,var(--color-success, #16a34a) 55%,transparent))}.vlite-gantt-link-target-invalid[data-v-94a48eeb]{filter:drop-shadow(0 0 6px color-mix(in oklab,var(--color-danger) 55%,transparent))}.vlite-gantt-link-preview[data-v-94a48eeb]{z-index:20}.sr-only[data-v-94a48eeb]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.vlite-gantt-tooltip-progress-track[data-v-94a48eeb]{width:60px;height:4px;border-radius:2px;background:var(--color-muted);overflow:hidden}.vlite-gantt-tooltip-progress-fill[data-v-94a48eeb]{height:100%;border-radius:2px;transition:width .3s ease}.vlite-gantt-timeline[data-v-94a48eeb]::-webkit-scrollbar{height:6px;width:6px}.vlite-gantt-timeline[data-v-94a48eeb]::-webkit-scrollbar-track{background:transparent}.vlite-gantt-timeline[data-v-94a48eeb]::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:3px}.vlite-gantt-timeline[data-v-94a48eeb]::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar-hover)}.vlite-gantt-sidebar-body[data-v-94a48eeb]::-webkit-scrollbar{width:0;display:none}.is-solid[data-v-33afc5cb] path,.is-solid[data-v-33afc5cb] polygon,.is-solid[data-v-33afc5cb] circle,.is-solid[data-v-33afc5cb] rect{fill:currentColor!important}.vlite-scale-generator-frame[data-v-eec3ef03]{contain:layout style;will-change:transform}.vlite-scale-generator-content[data-v-eec3ef03]{will-change:transform;contain:layout style}.vlite-pan-zoom-viewport[data-v-9dc36c93]{position:relative;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;will-change:transform;contain:layout style}.vlite-pan-zoom-viewport[data-v-9dc36c93]:focus-visible{outline:2px solid var(--color-primary, currentColor);outline-offset:-2px}.vlite-pan-zoom-viewport-content[data-v-9dc36c93]{position:absolute;top:0;left:0;transform-origin:top left;will-change:transform;contain:layout style;backface-visibility:hidden}.vlite-google-map[data-v-0cfbb6c9]{position:relative;min-height:1px;overflow:hidden;border-radius:var(--radius, .5rem);background:var(--color-muted, #f3f4f6);contain:layout style}.vlite-google-map__canvas[data-v-0cfbb6c9]{width:100%;height:100%;outline:none}.vlite-google-map__canvas[data-v-0cfbb6c9]:focus-visible{box-shadow:inset 0 0 0 3px var(--color-primary, #2563eb)}.vlite-google-map__state[data-v-0cfbb6c9]{position:absolute;inset:0;display:grid;place-items:center;padding:1rem;color:var(--color-muted-foreground, #4b5563);background:var(--color-muted, #f3f4f6);text-align:center}.vlite-google-map__state--error[data-v-0cfbb6c9]{color:var(--color-danger, #b91c1c)}.vlite-google-map__notice[data-v-0cfbb6c9]{position:absolute;right:.5rem;bottom:.5rem;margin:0;padding:.35rem .5rem;border-radius:var(--radius-sm, .25rem);color:var(--color-foreground, #111827);background:var(--color-background, #fff);font-size:.75rem}.toast-item[data-v-b3a7f1a6]{will-change:transform,opacity;contain:layout style}.first-toast-enter-active[data-v-b3a7f1a6]{animation:first-toast-in-b3a7f1a6 .45s cubic-bezier(.23,1,.32,1) forwards}.first-toast-leave-active[data-v-b3a7f1a6]{transition:all .25s ease-in}.first-toast-leave-to[data-v-b3a7f1a6]{opacity:0;transform:scale(.98)}@keyframes first-toast-in-b3a7f1a6{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-b3a7f1a6],.stack-toast-leave-active[data-v-b3a7f1a6]{transition:all .3s cubic-bezier(.16,1,.3,1)}.stack-toast-enter-from[data-v-b3a7f1a6]{opacity:0;transform:scale(.95) translateY(10px)}.stack-toast-leave-to[data-v-b3a7f1a6]{opacity:0;transform:scale(.95)}.stack-toast-move[data-v-b3a7f1a6]{transition:transform .4s cubic-bezier(.16,1,.3,1)}.cp-item-transition[data-v-66b1ae06]{transition:background-color 80ms ease,color 80ms ease}.command-palette-content[data-v-aa0dbb48] ::-webkit-scrollbar{width:4px}.command-palette-content[data-v-aa0dbb48] ::-webkit-scrollbar-track{background:transparent}.command-palette-content[data-v-aa0dbb48] ::-webkit-scrollbar-thumb{background:var(--border);border-radius:9999px}.cp-scroll-container[data-v-aa0dbb48]{transform:translateZ(0);will-change:transform;touch-action:pan-y;backface-visibility:hidden}
|
|
1900
1900
|
|