vlite3 1.4.28 → 1.4.30
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/Carousel/Carousel.vue.d.ts +23 -23
- package/components/CommandPalette/CommandPaletteContent.vue2.js +1 -1
- package/components/CommandPalette/{CommandPaletteItem.vue2.js → CommandPaletteItem.vue.js} +1 -1
- package/components/Form/index.vue.d.ts +1 -1
- package/components/GoogleMap.vue.d.ts +48 -0
- package/components/GoogleMap.vue.js +7 -0
- package/components/GoogleMap.vue2.js +164 -0
- package/components/NavbarCommandPalette.vue.js +1 -1
- package/components/Workbook/Workbook.vue.d.ts +1 -1
- package/core/config.d.ts +6 -0
- package/core/index.js +13 -9
- package/index.d.ts +1 -0
- package/index.js +76 -74
- package/package.json +1 -1
- package/style.css +1 -1
- package/types/GoogleMap.type.d.ts +50 -0
- package/types/config.type.d.ts +3 -0
- package/types/index.d.ts +1 -0
- package/utils/GoogleMapLoader.d.ts +41 -0
- package/utils/GoogleMapLoader.js +47 -0
|
@@ -29,8 +29,8 @@ declare function __VLS_template(): {
|
|
|
29
29
|
maxDomElements: number;
|
|
30
30
|
}> & Omit<{
|
|
31
31
|
readonly data: any[];
|
|
32
|
-
readonly direction: "horizontal" | "vertical";
|
|
33
32
|
readonly draggable: boolean;
|
|
33
|
+
readonly direction: "horizontal" | "vertical";
|
|
34
34
|
readonly easing: string;
|
|
35
35
|
readonly gap: number;
|
|
36
36
|
readonly pagination: import('vue-carousel-lite').PaginationType | import('vue-carousel-lite').PaginationType[];
|
|
@@ -53,7 +53,7 @@ declare function __VLS_template(): {
|
|
|
53
53
|
readonly paginationPosition?: import('vue-carousel-lite').PaginationPosition | import('vue-carousel-lite').PaginationPosition[];
|
|
54
54
|
readonly updateKey?: string | number;
|
|
55
55
|
readonly "onSlide-change"?: ((index: number) => any) | undefined;
|
|
56
|
-
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "
|
|
56
|
+
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "draggable" | "direction" | "easing" | "gap" | "pagination" | "loop" | "speed" | "autoPlay" | "mousewheel" | "autoFocus" | "autoPlayInterval" | "currentItem" | "paginationSize" | "itemsToShow" | "paginationVisibility" | "paginationHoverEdgeThreshold" | "paginationHoverInitialTimeout" | "wheelOptions" | "bufferSize" | "maxDomElements">;
|
|
57
57
|
$attrs: {
|
|
58
58
|
[x: string]: unknown;
|
|
59
59
|
};
|
|
@@ -73,14 +73,14 @@ declare function __VLS_template(): {
|
|
|
73
73
|
type: import('vue').PropType<any[]>;
|
|
74
74
|
required: true;
|
|
75
75
|
};
|
|
76
|
-
direction: {
|
|
77
|
-
type: import('vue').PropType<"horizontal" | "vertical">;
|
|
78
|
-
default: string;
|
|
79
|
-
};
|
|
80
76
|
draggable: {
|
|
81
77
|
type: import('vue').PropType<boolean>;
|
|
82
78
|
default: boolean;
|
|
83
79
|
};
|
|
80
|
+
direction: {
|
|
81
|
+
type: import('vue').PropType<"horizontal" | "vertical">;
|
|
82
|
+
default: string;
|
|
83
|
+
};
|
|
84
84
|
easing: {
|
|
85
85
|
type: import('vue').PropType<string>;
|
|
86
86
|
default: string;
|
|
@@ -254,14 +254,14 @@ declare function __VLS_template(): {
|
|
|
254
254
|
type: import('vue').PropType<any[]>;
|
|
255
255
|
required: true;
|
|
256
256
|
};
|
|
257
|
-
direction: {
|
|
258
|
-
type: import('vue').PropType<"horizontal" | "vertical">;
|
|
259
|
-
default: string;
|
|
260
|
-
};
|
|
261
257
|
draggable: {
|
|
262
258
|
type: import('vue').PropType<boolean>;
|
|
263
259
|
default: boolean;
|
|
264
260
|
};
|
|
261
|
+
direction: {
|
|
262
|
+
type: import('vue').PropType<"horizontal" | "vertical">;
|
|
263
|
+
default: string;
|
|
264
|
+
};
|
|
265
265
|
easing: {
|
|
266
266
|
type: import('vue').PropType<string>;
|
|
267
267
|
default: string;
|
|
@@ -352,7 +352,7 @@ declare function __VLS_template(): {
|
|
|
352
352
|
};
|
|
353
353
|
}>> & Readonly<{
|
|
354
354
|
"onSlide-change"?: ((index: number) => any) | undefined;
|
|
355
|
-
}>, "state" | "focus" | "
|
|
355
|
+
}>, "state" | "focus" | "draggable" | "direction" | "easing" | "gap" | "goNext" | "pagination" | "loop" | "speed" | "autoPlay" | "mousewheel" | "autoFocus" | "autoPlayInterval" | "currentItem" | "paginationSize" | "itemsToShow" | "paginationVisibility" | "paginationHoverEdgeThreshold" | "paginationHoverInitialTimeout" | "wheelOptions" | "bufferSize" | "maxDomElements" | "goToSlide" | "goPrev" | "canGoNext" | "canGoPrev"> & import('vue').ShallowUnwrapRef<{
|
|
356
356
|
goToSlide: (index: number, smooth?: boolean) => void;
|
|
357
357
|
goNext: (smooth?: boolean) => void;
|
|
358
358
|
goPrev: (smooth?: boolean) => void;
|
|
@@ -392,8 +392,8 @@ declare const __VLS_component: import('vue').DefineComponent<CarouselProps, {
|
|
|
392
392
|
"onSlide-change"?: (index: number) => any;
|
|
393
393
|
}>, {
|
|
394
394
|
data: any[];
|
|
395
|
-
direction: "horizontal" | "vertical";
|
|
396
395
|
draggable: boolean;
|
|
396
|
+
direction: "horizontal" | "vertical";
|
|
397
397
|
easing: string;
|
|
398
398
|
gap: number;
|
|
399
399
|
pagination: import('./types').PaginationType | import('./types').PaginationType[];
|
|
@@ -442,8 +442,8 @@ declare const __VLS_component: import('vue').DefineComponent<CarouselProps, {
|
|
|
442
442
|
maxDomElements: number;
|
|
443
443
|
}> & Omit<{
|
|
444
444
|
readonly data: any[];
|
|
445
|
-
readonly direction: "horizontal" | "vertical";
|
|
446
445
|
readonly draggable: boolean;
|
|
446
|
+
readonly direction: "horizontal" | "vertical";
|
|
447
447
|
readonly easing: string;
|
|
448
448
|
readonly gap: number;
|
|
449
449
|
readonly pagination: import('vue-carousel-lite').PaginationType | import('vue-carousel-lite').PaginationType[];
|
|
@@ -466,7 +466,7 @@ declare const __VLS_component: import('vue').DefineComponent<CarouselProps, {
|
|
|
466
466
|
readonly paginationPosition?: import('vue-carousel-lite').PaginationPosition | import('vue-carousel-lite').PaginationPosition[];
|
|
467
467
|
readonly updateKey?: string | number;
|
|
468
468
|
readonly "onSlide-change"?: ((index: number) => any) | undefined;
|
|
469
|
-
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "
|
|
469
|
+
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "draggable" | "direction" | "easing" | "gap" | "pagination" | "loop" | "speed" | "autoPlay" | "mousewheel" | "autoFocus" | "autoPlayInterval" | "currentItem" | "paginationSize" | "itemsToShow" | "paginationVisibility" | "paginationHoverEdgeThreshold" | "paginationHoverInitialTimeout" | "wheelOptions" | "bufferSize" | "maxDomElements">;
|
|
470
470
|
$attrs: {
|
|
471
471
|
[x: string]: unknown;
|
|
472
472
|
};
|
|
@@ -486,14 +486,14 @@ declare const __VLS_component: import('vue').DefineComponent<CarouselProps, {
|
|
|
486
486
|
type: import('vue').PropType<any[]>;
|
|
487
487
|
required: true;
|
|
488
488
|
};
|
|
489
|
-
direction: {
|
|
490
|
-
type: import('vue').PropType<"horizontal" | "vertical">;
|
|
491
|
-
default: string;
|
|
492
|
-
};
|
|
493
489
|
draggable: {
|
|
494
490
|
type: import('vue').PropType<boolean>;
|
|
495
491
|
default: boolean;
|
|
496
492
|
};
|
|
493
|
+
direction: {
|
|
494
|
+
type: import('vue').PropType<"horizontal" | "vertical">;
|
|
495
|
+
default: string;
|
|
496
|
+
};
|
|
497
497
|
easing: {
|
|
498
498
|
type: import('vue').PropType<string>;
|
|
499
499
|
default: string;
|
|
@@ -667,14 +667,14 @@ declare const __VLS_component: import('vue').DefineComponent<CarouselProps, {
|
|
|
667
667
|
type: import('vue').PropType<any[]>;
|
|
668
668
|
required: true;
|
|
669
669
|
};
|
|
670
|
-
direction: {
|
|
671
|
-
type: import('vue').PropType<"horizontal" | "vertical">;
|
|
672
|
-
default: string;
|
|
673
|
-
};
|
|
674
670
|
draggable: {
|
|
675
671
|
type: import('vue').PropType<boolean>;
|
|
676
672
|
default: boolean;
|
|
677
673
|
};
|
|
674
|
+
direction: {
|
|
675
|
+
type: import('vue').PropType<"horizontal" | "vertical">;
|
|
676
|
+
default: string;
|
|
677
|
+
};
|
|
678
678
|
easing: {
|
|
679
679
|
type: import('vue').PropType<string>;
|
|
680
680
|
default: string;
|
|
@@ -765,7 +765,7 @@ declare const __VLS_component: import('vue').DefineComponent<CarouselProps, {
|
|
|
765
765
|
};
|
|
766
766
|
}>> & Readonly<{
|
|
767
767
|
"onSlide-change"?: ((index: number) => any) | undefined;
|
|
768
|
-
}>, "state" | "focus" | "
|
|
768
|
+
}>, "state" | "focus" | "draggable" | "direction" | "easing" | "gap" | "goNext" | "pagination" | "loop" | "speed" | "autoPlay" | "mousewheel" | "autoFocus" | "autoPlayInterval" | "currentItem" | "paginationSize" | "itemsToShow" | "paginationVisibility" | "paginationHoverEdgeThreshold" | "paginationHoverInitialTimeout" | "wheelOptions" | "bufferSize" | "maxDomElements" | "goToSlide" | "goPrev" | "canGoNext" | "canGoPrev"> & import('vue').ShallowUnwrapRef<{
|
|
769
769
|
goToSlide: (index: number, smooth?: boolean) => void;
|
|
770
770
|
goNext: (smooth?: boolean) => void;
|
|
771
771
|
goPrev: (smooth?: boolean) => void;
|
|
@@ -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",
|
|
@@ -35,11 +35,11 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
35
35
|
size: InputSize;
|
|
36
36
|
rounded: InputRounded;
|
|
37
37
|
readonly: boolean;
|
|
38
|
+
draggable: boolean;
|
|
38
39
|
disabled: boolean;
|
|
39
40
|
layout: "table" | "accordion";
|
|
40
41
|
isUpdate: boolean;
|
|
41
42
|
modelValue: Record<string, any>[];
|
|
42
|
-
draggable: boolean;
|
|
43
43
|
errors: Record<string, string>;
|
|
44
44
|
showRowNumbers: boolean;
|
|
45
45
|
accordionTitleKey: string;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { GoogleMapClickEvent, GoogleMapCoordinate, GoogleMapError, GoogleMapMarker, GoogleMapMarkerClickEvent, GoogleMapProps, GoogleMapReadyEvent } from '../types/GoogleMap.type';
|
|
2
|
+
declare function __VLS_template(): {
|
|
3
|
+
attrs: Partial<{}>;
|
|
4
|
+
slots: {
|
|
5
|
+
loading?(_: {}): any;
|
|
6
|
+
error?(_: {
|
|
7
|
+
error: GoogleMapError;
|
|
8
|
+
}): any;
|
|
9
|
+
};
|
|
10
|
+
refs: {
|
|
11
|
+
mapElement: HTMLDivElement;
|
|
12
|
+
};
|
|
13
|
+
rootEl: HTMLDivElement;
|
|
14
|
+
};
|
|
15
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
16
|
+
declare const __VLS_component: import('vue').DefineComponent<GoogleMapProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
17
|
+
error: (error: GoogleMapError) => any;
|
|
18
|
+
click: (event: GoogleMapClickEvent) => any;
|
|
19
|
+
ready: (event: GoogleMapReadyEvent) => any;
|
|
20
|
+
"center-changed": (center: GoogleMapCoordinate) => any;
|
|
21
|
+
"zoom-changed": (zoom: number) => any;
|
|
22
|
+
"marker-click": (event: GoogleMapMarkerClickEvent) => any;
|
|
23
|
+
}, string, import('vue').PublicProps, Readonly<GoogleMapProps> & Readonly<{
|
|
24
|
+
onError?: (error: GoogleMapError) => any;
|
|
25
|
+
onClick?: (event: GoogleMapClickEvent) => any;
|
|
26
|
+
onReady?: (event: GoogleMapReadyEvent) => any;
|
|
27
|
+
"onCenter-changed"?: (center: GoogleMapCoordinate) => any;
|
|
28
|
+
"onZoom-changed"?: (zoom: number) => any;
|
|
29
|
+
"onMarker-click"?: (event: GoogleMapMarkerClickEvent) => any;
|
|
30
|
+
}>, {
|
|
31
|
+
width: string | number;
|
|
32
|
+
height: string | number;
|
|
33
|
+
options: import('..').GoogleMapOptions;
|
|
34
|
+
zoom: number;
|
|
35
|
+
markers: GoogleMapMarker[];
|
|
36
|
+
ariaLabel: string;
|
|
37
|
+
loadingText: string;
|
|
38
|
+
errorText: string;
|
|
39
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
40
|
+
mapElement: HTMLDivElement;
|
|
41
|
+
}, HTMLDivElement>;
|
|
42
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
43
|
+
export default _default;
|
|
44
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
45
|
+
new (): {
|
|
46
|
+
$slots: S;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { defineComponent as P, shallowRef as i, computed as u, watch as f, onMounted as Z, onBeforeUnmount as j, openBlock as h, createElementBlock as k, normalizeStyle as q, createElementVNode as D, renderSlot as N, createTextVNode as S, toDisplayString as c, createCommentVNode as L, markRaw as M, nextTick as H } from "vue";
|
|
2
|
+
import { useVLiteConfig as U } from "../core/config.js";
|
|
3
|
+
import { onGoogleMapsAuthFailure as J, loadGoogleMaps as Q } from "../utils/GoogleMapLoader.js";
|
|
4
|
+
const W = ["aria-label", "aria-busy"], X = {
|
|
5
|
+
key: 0,
|
|
6
|
+
class: "vlite-google-map__state",
|
|
7
|
+
role: "status",
|
|
8
|
+
"aria-live": "polite"
|
|
9
|
+
}, Y = {
|
|
10
|
+
key: 1,
|
|
11
|
+
class: "vlite-google-map__state vlite-google-map__state--error",
|
|
12
|
+
role: "alert"
|
|
13
|
+
}, ee = {
|
|
14
|
+
key: 2,
|
|
15
|
+
class: "vlite-google-map__notice",
|
|
16
|
+
"aria-live": "polite"
|
|
17
|
+
}, oe = /* @__PURE__ */ P({
|
|
18
|
+
__name: "GoogleMap",
|
|
19
|
+
props: {
|
|
20
|
+
apiKey: {},
|
|
21
|
+
center: {},
|
|
22
|
+
markers: { default: () => [] },
|
|
23
|
+
zoom: { default: 12 },
|
|
24
|
+
height: { default: "400px" },
|
|
25
|
+
width: { default: "100%" },
|
|
26
|
+
options: { default: () => ({}) },
|
|
27
|
+
ariaLabel: { default: "Interactive Google map" },
|
|
28
|
+
loadingText: { default: "Loading map…" },
|
|
29
|
+
errorText: { default: "The map is unavailable." }
|
|
30
|
+
},
|
|
31
|
+
emits: ["ready", "click", "center-changed", "zoom-changed", "marker-click", "error"],
|
|
32
|
+
setup(d, { emit: F }) {
|
|
33
|
+
const l = d, n = F, K = U(), v = i(null), a = i(null), o = i(null), y = i([]), w = [], x = [], s = i(!0), r = i(null);
|
|
34
|
+
let b = null, _ = !1;
|
|
35
|
+
const O = J((e) => {
|
|
36
|
+
_ || g(e);
|
|
37
|
+
}), C = u(() => l.apiKey?.trim() || K.components?.googleMap?.apiKey?.trim()), R = u(() => ({
|
|
38
|
+
height: A(l.height),
|
|
39
|
+
width: A(l.width)
|
|
40
|
+
}));
|
|
41
|
+
function A(e) {
|
|
42
|
+
return typeof e == "number" ? `${e}px` : e;
|
|
43
|
+
}
|
|
44
|
+
function E(e) {
|
|
45
|
+
if (!e || typeof e != "object") return !1;
|
|
46
|
+
const t = e;
|
|
47
|
+
return Number.isFinite(t.lat) && Number.isFinite(t.lng) && t.lat >= -90 && t.lat <= 90 && t.lng >= -180 && t.lng <= 180;
|
|
48
|
+
}
|
|
49
|
+
const m = u(
|
|
50
|
+
() => l.markers.filter((e) => E(e))
|
|
51
|
+
), z = u(() => l.markers.length - m.value.length), p = u(() => E(l.center) ? l.center : m.value[0] ?? null);
|
|
52
|
+
function g(e) {
|
|
53
|
+
r.value = e, s.value = !1, n("error", e);
|
|
54
|
+
}
|
|
55
|
+
function T() {
|
|
56
|
+
x.splice(0).forEach((e) => e.remove()), y.value.forEach((e) => {
|
|
57
|
+
o.value?.maps.event.clearInstanceListeners(e), e.setMap(null);
|
|
58
|
+
}), y.value = [];
|
|
59
|
+
}
|
|
60
|
+
function G() {
|
|
61
|
+
!a.value || !o.value || (T(), y.value = m.value.map((e, t) => {
|
|
62
|
+
const I = M(
|
|
63
|
+
new o.value.maps.Marker({
|
|
64
|
+
map: a.value,
|
|
65
|
+
position: { lat: e.lat, lng: e.lng },
|
|
66
|
+
title: e.title,
|
|
67
|
+
label: e.label
|
|
68
|
+
})
|
|
69
|
+
);
|
|
70
|
+
return x.push(
|
|
71
|
+
I.addListener(
|
|
72
|
+
"click",
|
|
73
|
+
($) => n("marker-click", { marker: e, index: t, nativeEvent: $ })
|
|
74
|
+
)
|
|
75
|
+
), I;
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
function V() {
|
|
79
|
+
a.value && w.push(
|
|
80
|
+
a.value.addListener("click", (e) => {
|
|
81
|
+
const t = e?.latLng;
|
|
82
|
+
n("click", {
|
|
83
|
+
coordinate: t ? { lat: t.lat(), lng: t.lng() } : null,
|
|
84
|
+
nativeEvent: e
|
|
85
|
+
});
|
|
86
|
+
}),
|
|
87
|
+
a.value.addListener("center_changed", () => {
|
|
88
|
+
const e = a.value?.getCenter();
|
|
89
|
+
e && n("center-changed", { lat: e.lat(), lng: e.lng() });
|
|
90
|
+
}),
|
|
91
|
+
a.value.addListener("zoom_changed", () => {
|
|
92
|
+
const e = a.value?.getZoom();
|
|
93
|
+
typeof e == "number" && n("zoom-changed", e);
|
|
94
|
+
})
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
async function B() {
|
|
98
|
+
if (!C.value) {
|
|
99
|
+
g({ code: "invalid-api-key", message: "A Google Maps API key is required." });
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (!p.value) {
|
|
103
|
+
g({
|
|
104
|
+
code: l.center == null ? "invalid-markers" : "invalid-center",
|
|
105
|
+
message: "Provide a valid center or at least one valid marker coordinate."
|
|
106
|
+
});
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
s.value = !0, r.value = null;
|
|
110
|
+
try {
|
|
111
|
+
const e = await Q(C.value);
|
|
112
|
+
if (await H(), _ || !v.value || !p.value) return;
|
|
113
|
+
o.value = M(e), a.value = M(
|
|
114
|
+
new e.maps.Map(v.value, {
|
|
115
|
+
...l.options,
|
|
116
|
+
center: p.value,
|
|
117
|
+
zoom: l.zoom
|
|
118
|
+
})
|
|
119
|
+
), V(), G(), s.value = !1, n("ready", { map: a.value }), typeof ResizeObserver < "u" && (b = new ResizeObserver(() => {
|
|
120
|
+
a.value && o.value && o.value.maps.event.trigger(a.value, "resize");
|
|
121
|
+
}), b.observe(v.value));
|
|
122
|
+
} catch (e) {
|
|
123
|
+
const t = e;
|
|
124
|
+
g(
|
|
125
|
+
t?.code ? t : { code: "load-failed", message: "Google Maps could not be initialized.", cause: e }
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return f(p, (e) => {
|
|
130
|
+
e && a.value && a.value.setCenter(e);
|
|
131
|
+
}), f(() => l.zoom, (e) => a.value?.setZoom(e)), f(() => l.options, (e) => a.value?.setOptions(e), {
|
|
132
|
+
deep: !0
|
|
133
|
+
}), f(m, G, { deep: !0 }), Z(B), j(() => {
|
|
134
|
+
_ = !0, O(), b?.disconnect(), T(), w.splice(0).forEach((e) => e.remove()), a.value && o.value?.maps.event.clearInstanceListeners(a.value), a.value = null, o.value = null;
|
|
135
|
+
}), (e, t) => (h(), k("div", {
|
|
136
|
+
class: "vlite-google-map",
|
|
137
|
+
style: q(R.value),
|
|
138
|
+
"aria-label": d.ariaLabel,
|
|
139
|
+
"aria-busy": s.value,
|
|
140
|
+
role: "region"
|
|
141
|
+
}, [
|
|
142
|
+
D("div", {
|
|
143
|
+
ref_key: "mapElement",
|
|
144
|
+
ref: v,
|
|
145
|
+
class: "vlite-google-map__canvas",
|
|
146
|
+
tabindex: "0"
|
|
147
|
+
}, null, 512),
|
|
148
|
+
s.value && !r.value ? (h(), k("div", X, [
|
|
149
|
+
N(e.$slots, "loading", {}, () => [
|
|
150
|
+
S(c(d.loadingText), 1)
|
|
151
|
+
], !0)
|
|
152
|
+
])) : L("", !0),
|
|
153
|
+
r.value ? (h(), k("div", Y, [
|
|
154
|
+
N(e.$slots, "error", { error: r.value }, () => [
|
|
155
|
+
S(c(d.errorText) + " " + c(r.value.message), 1)
|
|
156
|
+
], !0)
|
|
157
|
+
])) : L("", !0),
|
|
158
|
+
z.value ? (h(), k("p", ee, c(z.value) + " invalid marker" + c(z.value === 1 ? "" : "s") + " omitted. ", 1)) : L("", !0)
|
|
159
|
+
], 12, W));
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
export {
|
|
163
|
+
oe as default
|
|
164
|
+
};
|
|
@@ -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: "ml-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 ml-1" }, A = /* @__PURE__ */ x({
|
|
8
8
|
__name: "NavbarCommandPalette",
|
|
9
9
|
props: {
|
|
@@ -33,9 +33,9 @@ declare const __VLS_component: import('vue').DefineComponent<WorkbookProps, {},
|
|
|
33
33
|
}>, {
|
|
34
34
|
variant: "chrome" | "folder" | "simple" | "card";
|
|
35
35
|
itemClass: string;
|
|
36
|
+
draggable: boolean;
|
|
36
37
|
modelValue: string;
|
|
37
38
|
editable: boolean;
|
|
38
|
-
draggable: boolean;
|
|
39
39
|
confirmDelete: boolean;
|
|
40
40
|
allowIconChange: boolean;
|
|
41
41
|
activeItemClass: string;
|
package/core/config.d.ts
CHANGED
|
@@ -38,6 +38,9 @@ export declare const configState: {
|
|
|
38
38
|
datetime?: {
|
|
39
39
|
format?: string;
|
|
40
40
|
};
|
|
41
|
+
googleMap?: {
|
|
42
|
+
apiKey?: string;
|
|
43
|
+
};
|
|
41
44
|
empty?: {
|
|
42
45
|
variant?: import('..').EmptyVariant;
|
|
43
46
|
};
|
|
@@ -217,6 +220,9 @@ export declare function useVLiteConfig(): {
|
|
|
217
220
|
datetime?: {
|
|
218
221
|
format?: string;
|
|
219
222
|
};
|
|
223
|
+
googleMap?: {
|
|
224
|
+
apiKey?: string;
|
|
225
|
+
};
|
|
220
226
|
empty?: {
|
|
221
227
|
variant?: import('..').EmptyVariant;
|
|
222
228
|
};
|
package/core/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { configState as t, VLITE_CONFIG_KEY as
|
|
2
|
-
import { updateConfig as
|
|
3
|
-
function
|
|
1
|
+
import { configState as t, VLITE_CONFIG_KEY as m } from "./config.js";
|
|
2
|
+
import { updateConfig as p, useVLiteConfig as i } from "./config.js";
|
|
3
|
+
function c(e = {}) {
|
|
4
4
|
return {
|
|
5
|
-
install(
|
|
5
|
+
install(o) {
|
|
6
6
|
e && (e.services && (t.services = { ...t.services, ...e.services }), e.importData && (t.importData = { ...t.importData, ...e.importData }), e.exportData && (t.exportData = { ...t.exportData, ...e.exportData }), e.components && (t.components = {
|
|
7
7
|
...t.components,
|
|
8
8
|
...e.components,
|
|
@@ -18,6 +18,10 @@ function n(e = {}) {
|
|
|
18
18
|
...t.components?.datetime || {},
|
|
19
19
|
...e.components.datetime || {}
|
|
20
20
|
},
|
|
21
|
+
googleMap: {
|
|
22
|
+
...t.components?.googleMap || {},
|
|
23
|
+
...e.components.googleMap || {}
|
|
24
|
+
},
|
|
21
25
|
empty: {
|
|
22
26
|
...t.components?.empty || {},
|
|
23
27
|
...e.components.empty || {}
|
|
@@ -42,14 +46,14 @@ function n(e = {}) {
|
|
|
42
46
|
...t.components?.invoice || {},
|
|
43
47
|
...e.components.invoice || {}
|
|
44
48
|
}
|
|
45
|
-
})),
|
|
49
|
+
})), o.provide(m, t), o.config.globalProperties.$vlite = t;
|
|
46
50
|
}
|
|
47
51
|
};
|
|
48
52
|
}
|
|
49
53
|
export {
|
|
50
|
-
|
|
54
|
+
m as VLITE_CONFIG_KEY,
|
|
51
55
|
t as configState,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
c as createVLite,
|
|
57
|
+
p as updateConfig,
|
|
58
|
+
i as useVLiteConfig
|
|
55
59
|
};
|
package/index.d.ts
CHANGED
|
@@ -94,6 +94,7 @@ export { default as ButtonGroup } from './components/ButtonGroup.vue';
|
|
|
94
94
|
export { default as NumberInput } from './components/NumberInput.vue';
|
|
95
95
|
export { default as ThemeToggle } from './components/ThemeToggle.vue';
|
|
96
96
|
export { default as GoogleLogin } from './components/GoogleLogin.vue';
|
|
97
|
+
export { default as GoogleMap } from './components/GoogleMap.vue';
|
|
97
98
|
export { default as ColorPicker } from './components/ColorPicker/ColorPicker.vue';
|
|
98
99
|
export { default as ConfirmationModal } from './components/ConfirmationModal.vue';
|
|
99
100
|
export { default as ToastNotification } from './components/ToastNotification.vue';
|
package/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { default as p } from "vue3-google-signin";
|
|
2
2
|
import { deepMerge as u } from "./utils/object.js";
|
|
3
|
-
import { camelCase as x, capitalize as i, copyToClipboard as n, debounce as c, delay as C, downloadFile as S, flattenArray as T, formatAmPm as g, formatCurrency as h, formatDate as I, formatNumber as b, formatSchedule as P, getDefaultDateRange as v, getNextMonth as y, getNextYear as D, getPrevMonth as E, getPrevYear as F, getToday as A, getTomorrow as B, getUniqueId as R, getUpcoming as k, getYear as
|
|
3
|
+
import { camelCase as x, capitalize as i, copyToClipboard as n, debounce as c, delay as C, downloadFile as S, flattenArray as T, formatAmPm as g, formatCurrency as h, formatDate as I, formatNumber as b, formatSchedule as P, getDefaultDateRange as v, getNextMonth as y, getNextYear as D, getPrevMonth as E, getPrevYear as F, getToday as A, getTomorrow as B, getUniqueId as R, getUpcoming as k, getYear as M, getYesterday as N, isAppleDevice as L, isEmpty as O, isPureTimeString as w, isValidTimeRange as G, parseDateTime as _, randomNumber as K, removeExtraProperties as Y, slugify as H, throttle as z, toISO as U, toLocalISO as V, truncate as X } from "./utils/functions.js";
|
|
4
4
|
import { lazySearch as W, resetSearchIndex as j, search as q } from "./utils/search.util.js";
|
|
5
5
|
import { env as J } from "./utils/env.js";
|
|
6
6
|
import { $t as ee, resolveI18nText as oe } from "./utils/i18n.js";
|
|
@@ -19,10 +19,10 @@ import { default as Ee } from "./components/Stats/Stats.vue.js";
|
|
|
19
19
|
/* empty css */
|
|
20
20
|
import { default as Ae } from "./components/Kanban/Kanban.vue.js";
|
|
21
21
|
import { default as Re } from "./components/Kanban/KanbanBoard.vue.js";
|
|
22
|
-
import { useKanbanBoard as
|
|
23
|
-
import { default as
|
|
22
|
+
import { useKanbanBoard as Me } from "./components/Kanban/useKanbanBoard.js";
|
|
23
|
+
import { default as Le } from "./components/Navbar/Navbar.vue.js";
|
|
24
24
|
import { default as we } from "./components/Navbar/NavbarItem.vue.js";
|
|
25
|
-
import { default as
|
|
25
|
+
import { default as _e } from "./components/Navbar/NavbarGroup.vue.js";
|
|
26
26
|
import { default as Ye } from "./components/Navbar/NavbarTabs.vue.js";
|
|
27
27
|
/* empty css */
|
|
28
28
|
import { default as ze } from "./components/QRCode/QRCode.vue.js";
|
|
@@ -43,10 +43,10 @@ import { default as To } from "./components/Cart/CartCouponInput.vue.js";
|
|
|
43
43
|
import { default as ho } from "./components/Cart/CartEmptyState.vue.js";
|
|
44
44
|
import { useCart as bo } from "./components/Cart/composables/useCart.js";
|
|
45
45
|
import { calculateCartTotals as vo, computeCouponDiscount as yo, computeShipping as Do, computeTax as Eo, sumItemCount as Fo, sumLineTotals as Ao, sumSavings as Bo, useCartCalculation as Ro } from "./components/Cart/composables/useCartCalculation.js";
|
|
46
|
-
import { default as
|
|
47
|
-
import { default as
|
|
46
|
+
import { default as Mo } from "./components/Dropdown/Dropdown.vue.js";
|
|
47
|
+
import { default as Lo } from "./components/Dropdown/DropdownMenu.vue.js";
|
|
48
48
|
import { default as wo } from "./components/Dropdown/DropdownTrigger.vue.js";
|
|
49
|
-
import { default as
|
|
49
|
+
import { default as _o } from "./components/Dropdown/DropdownItem.vue.js";
|
|
50
50
|
import { useDropdownSelection as Yo } from "./components/Dropdown/composables/useDropdownSelection.js";
|
|
51
51
|
import { useDropdownIds as zo } from "./components/Dropdown/composables/useDropdownIds.js";
|
|
52
52
|
import { default as Vo } from "./components/Breadcrumb/Breadcrumb.vue.js";
|
|
@@ -71,9 +71,9 @@ import { default as Dr } from "./components/Comment/CommentThread.vue.js";
|
|
|
71
71
|
import { default as Fr } from "./components/Comment/CommentEditor.vue.js";
|
|
72
72
|
import { default as Br } from "./components/Accordion/Accordion.vue.js";
|
|
73
73
|
import { default as kr } from "./components/Accordion/AccordionItem.vue.js";
|
|
74
|
-
import { default as
|
|
74
|
+
import { default as Nr } from "./components/Accordion/AccordionTrigger.vue.js";
|
|
75
75
|
import { default as Or } from "./components/Accordion/AccordionContent.vue.js";
|
|
76
|
-
import { default as
|
|
76
|
+
import { default as Gr } from "./components/ChoiceBox/ChoiceBox.vue.js";
|
|
77
77
|
import { default as Kr } from "./components/DataTable/DataTable.vue.js";
|
|
78
78
|
import { default as Hr } from "./components/DataTable/DataTableHeader.vue.js";
|
|
79
79
|
import { default as Ur } from "./components/DataTable/DataTableRow.vue.js";
|
|
@@ -99,8 +99,8 @@ import { default as yt } from "./components/PermissionMatrix/PermissionEditor.vu
|
|
|
99
99
|
import { useAdvancedKeyStroke as Et, useKeyStroke as Ft } from "./composables/useKeyStroke.js";
|
|
100
100
|
import { vScrollReveal as Bt } from "./directives/vScrollReveal.js";
|
|
101
101
|
import { default as kt } from "./components/AvatarUploader/AvatarUploader.vue.js";
|
|
102
|
-
import { default as
|
|
103
|
-
import { configure as Ot, pauseTimers as wt, removeToast as
|
|
102
|
+
import { default as Nt } from "./components/AvatarGroup/AvatarGroup.vue.js";
|
|
103
|
+
import { configure as Ot, pauseTimers as wt, removeToast as Gt, resumeTimers as _t, showToast as Kt, toast as Yt, useNotifications as Ht } from "./composables/useNotifications.js";
|
|
104
104
|
import { default as Ut } from "./components/Timeline/Timeline.vue.js";
|
|
105
105
|
import { default as Xt } from "./components/Timeline/TimelineItem.vue.js";
|
|
106
106
|
import { default as Wt } from "./components/Timeline/TimelineIndicator.vue.js";
|
|
@@ -122,9 +122,9 @@ import { snapshotBones as va } from "./components/Skeleton/extract.js";
|
|
|
122
122
|
import { configureSkeleton as Da, getGlobalConfig as Ea, registerBones as Fa } from "./components/Skeleton/shared.js";
|
|
123
123
|
import { default as Ba } from "./components/Chart/LineChart.vue.js";
|
|
124
124
|
import { default as ka } from "./components/Chart/BarChart.vue.js";
|
|
125
|
-
import { default as
|
|
125
|
+
import { default as Na } from "./components/Chart/PieChart.vue.js";
|
|
126
126
|
import { default as Oa } from "./components/Chart/CircleChart.vue.js";
|
|
127
|
-
import { default as
|
|
127
|
+
import { default as Ga } from "./components/Chart/GaugeChart.vue.js";
|
|
128
128
|
import { default as Ka } from "./components/Chart/SpeedometerChart.vue.js";
|
|
129
129
|
import { default as Ha } from "./components/Chart/TimelineChart.vue.js";
|
|
130
130
|
import { default as Ua } from "./components/Chart/SegmentBarChart.vue.js";
|
|
@@ -145,10 +145,10 @@ import { noopSeoAdapter as If, normalizeSeo as bf, replaceSeoTokens as Pf } from
|
|
|
145
145
|
import { createDomSeoAdapter as yf } from "./components/SeoProvider/domAdapter.js";
|
|
146
146
|
import { default as Ef } from "./components/ScaleGenerator/ScaleGenerator.vue.js";
|
|
147
147
|
import { THEME_STYLES_KEY as Af, useThemeStyles as Bf } from "./composables/useThemeStyles.js";
|
|
148
|
-
import { SEO_CONTEXT_KEY as kf, useSeo as
|
|
149
|
-
import { default as
|
|
148
|
+
import { SEO_CONTEXT_KEY as kf, useSeo as Mf } from "./composables/useSeo.js";
|
|
149
|
+
import { default as Lf } from "./components/Icon.vue.js";
|
|
150
150
|
import { default as wf } from "./components/Logo.vue.js";
|
|
151
|
-
import { default as
|
|
151
|
+
import { default as _f } from "./components/Alert.vue.js";
|
|
152
152
|
import { default as Yf } from "./components/Badge.vue.js";
|
|
153
153
|
import { default as zf } from "./components/Input.vue.js";
|
|
154
154
|
/* empty css */
|
|
@@ -173,33 +173,34 @@ import { default as ym } from "./components/IconPicker.vue.js";
|
|
|
173
173
|
import { default as Em } from "./components/ButtonGroup.vue.js";
|
|
174
174
|
import { default as Am } from "./components/NumberInput.vue.js";
|
|
175
175
|
import { default as Rm } from "./components/ThemeToggle.vue.js";
|
|
176
|
-
import { default as
|
|
177
|
-
import { default as
|
|
178
|
-
import { default as wm } from "./components/
|
|
179
|
-
import { default as
|
|
180
|
-
import { default as Ym } from "./components/
|
|
181
|
-
import { default as zm } from "./components/
|
|
182
|
-
import { default as Vm } from "./components/
|
|
183
|
-
import {
|
|
184
|
-
import {
|
|
185
|
-
import {
|
|
186
|
-
import {
|
|
187
|
-
import { default as tl } from "./components/
|
|
188
|
-
import { default as fl } from "./components/
|
|
189
|
-
import { default as ll } from "./components/
|
|
190
|
-
import {
|
|
191
|
-
import {
|
|
176
|
+
import { default as Mm } from "./components/GoogleLogin.vue.js";
|
|
177
|
+
import { default as Lm } from "./components/GoogleMap.vue.js";
|
|
178
|
+
import { default as wm } from "./components/ColorPicker/ColorPicker.vue.js";
|
|
179
|
+
import { default as _m } from "./components/ConfirmationModal.vue.js";
|
|
180
|
+
import { default as Ym } from "./components/ToastNotification.vue.js";
|
|
181
|
+
import { default as zm } from "./components/CommandPalette/CommandPaletteContent.vue.js";
|
|
182
|
+
import { default as Vm } from "./components/NavbarCommandPalette.vue.js";
|
|
183
|
+
import { default as Qm } from "./components/DateRangePicker.vue.js";
|
|
184
|
+
import { createVLite as jm } from "./core/index.js";
|
|
185
|
+
import { default as $m } from "./components/StatusChip/StatusChip.vue.js";
|
|
186
|
+
import { STATUS_MAP as Zm, normalizeStatus as el, resolveStatus as ol } from "./components/StatusChip/status-map.js";
|
|
187
|
+
import { default as tl } from "./components/Price/Price.vue.js";
|
|
188
|
+
import { default as fl } from "./components/DateTime/DateTime.vue.js";
|
|
189
|
+
import { default as ll } from "./components/Clock/Clock.vue.js";
|
|
190
|
+
import { default as sl } from "./components/Chat/ChatInterface.vue.js";
|
|
191
|
+
import { VLITE_CONFIG_KEY as dl, configState as xl, updateConfig as il, useVLiteConfig as nl } from "./core/config.js";
|
|
192
|
+
import { getStatusColorClass as Cl } from "./utils/status.js";
|
|
192
193
|
export {
|
|
193
194
|
ee as $t,
|
|
194
195
|
Br as Accordion,
|
|
195
196
|
Or as AccordionContent,
|
|
196
197
|
kr as AccordionItem,
|
|
197
|
-
|
|
198
|
-
|
|
198
|
+
Nr as AccordionTrigger,
|
|
199
|
+
_f as Alert,
|
|
199
200
|
ef as AppShell,
|
|
200
201
|
Jt as AttachmentsList,
|
|
201
202
|
jf as Avatar,
|
|
202
|
-
|
|
203
|
+
Nt as AvatarGroup,
|
|
203
204
|
kt as AvatarUploader,
|
|
204
205
|
om as BackButton,
|
|
205
206
|
Yf as Badge,
|
|
@@ -220,19 +221,19 @@ export {
|
|
|
220
221
|
pa as CategoryManager,
|
|
221
222
|
ua as CategoryMenu,
|
|
222
223
|
Ja as ChartLegend,
|
|
223
|
-
|
|
224
|
+
sl as ChatInterface,
|
|
224
225
|
dm as CheckBox,
|
|
225
226
|
se as Chip,
|
|
226
|
-
|
|
227
|
+
Gr as ChoiceBox,
|
|
227
228
|
Oa as CircleChart,
|
|
228
229
|
tm as Clipboard,
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
230
|
+
ll as Clock,
|
|
231
|
+
wm as ColorPicker,
|
|
232
|
+
zm as CommandPaletteContent,
|
|
232
233
|
Fr as CommentEditor,
|
|
233
234
|
vr as CommentItem,
|
|
234
235
|
Dr as CommentThread,
|
|
235
|
-
|
|
236
|
+
_m as ConfirmationModal,
|
|
236
237
|
Se as CustomFields,
|
|
237
238
|
ra as CustomFieldsDisplay,
|
|
238
239
|
nr as DataList,
|
|
@@ -240,11 +241,11 @@ export {
|
|
|
240
241
|
Hr as DataTableHeader,
|
|
241
242
|
Ur as DataTableRow,
|
|
242
243
|
Pm as DatePicker,
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
244
|
+
Qm as DateRangePicker,
|
|
245
|
+
fl as DateTime,
|
|
246
|
+
Mo as Dropdown,
|
|
247
|
+
_o as DropdownItem,
|
|
248
|
+
Lo as DropdownMenu,
|
|
248
249
|
wo as DropdownTrigger,
|
|
249
250
|
br as Empty,
|
|
250
251
|
ft as ExportData,
|
|
@@ -259,11 +260,12 @@ export {
|
|
|
259
260
|
ce as FormFields,
|
|
260
261
|
ge as FormSkeleton,
|
|
261
262
|
qa as GanttChart,
|
|
262
|
-
|
|
263
|
-
|
|
263
|
+
Ga as GaugeChart,
|
|
264
|
+
Mm as GoogleLogin,
|
|
265
|
+
Lm as GoogleMap,
|
|
264
266
|
p as GoogleSignInPlugin,
|
|
265
267
|
$e as Heatmap,
|
|
266
|
-
|
|
268
|
+
Lf as Icon,
|
|
267
269
|
ym as IconPicker,
|
|
268
270
|
pf as ImageComparison,
|
|
269
271
|
uf as ImageMagnifier,
|
|
@@ -282,9 +284,9 @@ export {
|
|
|
282
284
|
Ze as Masonry,
|
|
283
285
|
Qf as Modal,
|
|
284
286
|
st as MultiSelect,
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
287
|
+
Le as Navbar,
|
|
288
|
+
Vm as NavbarCommandPalette,
|
|
289
|
+
_e as NavbarGroup,
|
|
288
290
|
we as NavbarItem,
|
|
289
291
|
Ye as NavbarTabs,
|
|
290
292
|
Am as NumberInput,
|
|
@@ -293,8 +295,8 @@ export {
|
|
|
293
295
|
yt as PermissionEditor,
|
|
294
296
|
Pt as PermissionMatrix,
|
|
295
297
|
$f as Persona,
|
|
296
|
-
|
|
297
|
-
|
|
298
|
+
Na as PieChart,
|
|
299
|
+
tl as Price,
|
|
298
300
|
it as PricingPlan,
|
|
299
301
|
ct as PricingPlanItem,
|
|
300
302
|
It as ProgressBar,
|
|
@@ -308,7 +310,7 @@ export {
|
|
|
308
310
|
tr as RichTextReader,
|
|
309
311
|
Xr as SCREEN_CONTEXT_KEY,
|
|
310
312
|
kf as SEO_CONTEXT_KEY,
|
|
311
|
-
|
|
313
|
+
Zm as STATUS_MAP,
|
|
312
314
|
Ef as ScaleGenerator,
|
|
313
315
|
Ve as Screen,
|
|
314
316
|
Qe as ScreenFilter,
|
|
@@ -326,7 +328,7 @@ export {
|
|
|
326
328
|
Wr as Splitter,
|
|
327
329
|
Xa as StatCardChart,
|
|
328
330
|
Ee as Stats,
|
|
329
|
-
|
|
331
|
+
$m as StatusChip,
|
|
330
332
|
lm as Switch,
|
|
331
333
|
Af as THEME_STYLES_KEY,
|
|
332
334
|
ye as Tabes,
|
|
@@ -339,9 +341,9 @@ export {
|
|
|
339
341
|
Ha as TimelineChart,
|
|
340
342
|
Wt as TimelineIndicator,
|
|
341
343
|
Xt as TimelineItem,
|
|
342
|
-
|
|
344
|
+
Ym as ToastNotification,
|
|
343
345
|
sm as Tooltip,
|
|
344
|
-
|
|
346
|
+
dl as VLITE_CONFIG_KEY,
|
|
345
347
|
Wa as WaffleChart,
|
|
346
348
|
ur as Workbook,
|
|
347
349
|
lo as barcodesConstants,
|
|
@@ -354,13 +356,13 @@ export {
|
|
|
354
356
|
yo as computeCouponDiscount,
|
|
355
357
|
Do as computeShipping,
|
|
356
358
|
Eo as computeTax,
|
|
357
|
-
|
|
359
|
+
xl as configState,
|
|
358
360
|
Ot as configure,
|
|
359
361
|
Da as configureSkeleton,
|
|
360
362
|
n as copyToClipboard,
|
|
361
363
|
mf as createAsyncSelect,
|
|
362
364
|
yf as createDomSeoAdapter,
|
|
363
|
-
|
|
365
|
+
jm as createVLite,
|
|
364
366
|
c as debounce,
|
|
365
367
|
u as deepMerge,
|
|
366
368
|
C as delay,
|
|
@@ -381,38 +383,38 @@ export {
|
|
|
381
383
|
hr as getObjectValue,
|
|
382
384
|
E as getPrevMonth,
|
|
383
385
|
F as getPrevYear,
|
|
384
|
-
|
|
386
|
+
Cl as getStatusColorClass,
|
|
385
387
|
A as getToday,
|
|
386
388
|
B as getTomorrow,
|
|
387
389
|
R as getUniqueId,
|
|
388
390
|
k as getUpcoming,
|
|
389
|
-
|
|
390
|
-
|
|
391
|
+
M as getYear,
|
|
392
|
+
N as getYesterday,
|
|
391
393
|
fe as hexToHSL,
|
|
392
394
|
Jr as initializeTheme,
|
|
393
|
-
|
|
395
|
+
L as isAppleDevice,
|
|
394
396
|
me as isDarkColor,
|
|
395
397
|
O as isEmpty,
|
|
396
398
|
w as isPureTimeString,
|
|
397
|
-
|
|
399
|
+
G as isValidTimeRange,
|
|
398
400
|
W as lazySearch,
|
|
399
401
|
le as mixColorHex,
|
|
400
402
|
If as noopSeoAdapter,
|
|
401
403
|
ba as normalizeBone,
|
|
402
404
|
bf as normalizeSeo,
|
|
403
|
-
|
|
404
|
-
|
|
405
|
+
el as normalizeStatus,
|
|
406
|
+
_ as parseDateTime,
|
|
405
407
|
wt as pauseTimers,
|
|
406
408
|
K as randomNumber,
|
|
407
409
|
Fa as registerBones,
|
|
408
410
|
Y as removeExtraProperties,
|
|
409
|
-
|
|
411
|
+
Gt as removeToast,
|
|
410
412
|
Pf as replaceSeoTokens,
|
|
411
413
|
j as resetSearchIndex,
|
|
412
414
|
oe as resolveI18nText,
|
|
413
415
|
mr as resolveRichTextTools,
|
|
414
|
-
|
|
415
|
-
|
|
416
|
+
ol as resolveStatus,
|
|
417
|
+
_t as resumeTimers,
|
|
416
418
|
q as search,
|
|
417
419
|
Kt as showToast,
|
|
418
420
|
H as slugify,
|
|
@@ -425,7 +427,7 @@ export {
|
|
|
425
427
|
V as toLocalISO,
|
|
426
428
|
Yt as toast,
|
|
427
429
|
X as truncate,
|
|
428
|
-
|
|
430
|
+
il as updateConfig,
|
|
429
431
|
Et as useAdvancedKeyStroke,
|
|
430
432
|
bo as useCart,
|
|
431
433
|
Ro as useCartCalculation,
|
|
@@ -433,14 +435,14 @@ export {
|
|
|
433
435
|
Yo as useDropdownSelection,
|
|
434
436
|
Pe as useFileUpload,
|
|
435
437
|
Ie as useForm,
|
|
436
|
-
|
|
438
|
+
Me as useKanbanBoard,
|
|
437
439
|
Ft as useKeyStroke,
|
|
438
440
|
dt as useMultiSelectHydration,
|
|
439
441
|
Ht as useNotifications,
|
|
440
|
-
|
|
442
|
+
Mf as useSeo,
|
|
441
443
|
Zr as useTheme,
|
|
442
444
|
Bf as useThemeStyles,
|
|
443
445
|
Zo as useTreeSelection,
|
|
444
|
-
|
|
446
|
+
nl as useVLiteConfig,
|
|
445
447
|
Bt as vScrollReveal
|
|
446
448
|
};
|
package/package.json
CHANGED
package/style.css
CHANGED
|
@@ -1797,5 +1797,5 @@ html {
|
|
|
1797
1797
|
}
|
|
1798
1798
|
|
|
1799
1799
|
/* --- Vite Generated CSS --- */
|
|
1800
|
-
input[data-v-ea76c92c]::-webkit-outer-spin-button,input[data-v-ea76c92c]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-ea76c92c]{-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}}[data-v-a8f85730] .date-picker-content.dates{min-height:245px}.IroBox{border-radius:8px!important}.accordion-enter-active[data-v-0075dffb],.accordion-leave-active[data-v-0075dffb]{transition:height .3s ease-in-out;will-change:height}.content-wrapper[data-v-0075dffb]{contain:paint}.custom-fields-table[data-v-0138ffcc]{will-change:transform;contain:layout style}.custom-fields-table[data-v-0138ffcc] .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-0138ffcc] input,.custom-fields-table[data-v-0138ffcc] textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-0138ffcc] input,.custom-fields-table[data-v-0138ffcc] textarea,.custom-fields-table[data-v-0138ffcc] select,.custom-fields-table[data-v-0138ffcc] .input-wrapper,.custom-fields-table[data-v-0138ffcc] .tooltip-trigger button,.custom-fields-table[data-v-0138ffcc] .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-0138ffcc] input:focus,.custom-fields-table[data-v-0138ffcc] textarea:focus,.custom-fields-table[data-v-0138ffcc] select:focus,.custom-fields-table[data-v-0138ffcc] .input-wrapper:focus-within,.custom-fields-table[data-v-0138ffcc] .tooltip-trigger button:focus,.custom-fields-table[data-v-0138ffcc] .tooltip-trigger>div:focus,.custom-fields-table[data-v-0138ffcc] .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-0138ffcc] .w-full{width:100%;height:100%}.custom-fields-table[data-v-0138ffcc] .vl-file-picker{height:100%!important;min-height:40px;padding:0;min-width:0!important}.custom-fields-table[data-v-0138ffcc] .vl-file-picker--input>.relative{height:100%;min-width:0}.custom-fields-table[data-v-0138ffcc] .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-0138ffcc] .vl-file-picker--input [role=button]:focus,.custom-fields-table[data-v-0138ffcc] .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-0138ffcc] .vl-file-picker__dropzone{min-height:96px;padding:1rem;border-radius:.5rem!important}.custom-fields-table[data-v-0138ffcc] .vl-file-picker__file{min-height:72px;border-radius:.5rem!important;background:hsl(var(--background))!important}.custom-fields-table[data-v-0138ffcc] .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-0138ffcc] .vl-file-picker__file input:hover{border-bottom-color:hsl(var(--border))!important}.custom-fields-table[data-v-0138ffcc] .vl-file-picker__file input:focus{background-color:transparent!important;border-bottom-color:hsl(var(--primary))!important;box-shadow:none!important}.list-enter-active[data-v-0138ffcc]{transition:all .15s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-0138ffcc]{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-d4db8f9b]{display:flex;flex-direction:column;min-width:0}.form-field-item[data-v-d4db8f9b]:has([role=checkbox]){flex-direction:row;align-items:center;justify-content:flex-start}.form-container[data-v-b84399b6]{width:100%}[data-tabes][data-v-2e086e79]:not(.inline-flex):not([class*=gap-6])>:where(button,a,[role=tab]){flex:1 0 0%;min-width:max-content}.scrollbar-hide[data-v-2e086e79]{-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.scrollbar-hide[data-v-2e086e79]::-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-38015ba3]{will-change:transform;contain:layout style}.kanban-board--disabled[data-v-38015ba3]{opacity:.75;background-color:color-mix(in srgb,var(--color-card) 85%,var(--color-muted) 15%)}.kanban-lock-badge[data-v-38015ba3]{font-size:.75rem;line-height:1;-webkit-user-select:none;user-select:none}.scrollable-container[data-v-52c07c6d]{will-change:transform;contain:layout style}.v-sidepanel-overlay[data-v-69e4da90]{background-color:#00000069}.slide-right-enter-active[data-v-69e4da90],.slide-left-enter-active[data-v-69e4da90]{transition:opacity 80ms ease-out}.slide-right-leave-active[data-v-69e4da90],.slide-left-leave-active[data-v-69e4da90]{transition:opacity .12s ease-in}.slide-right-enter-from[data-v-69e4da90],.slide-right-leave-to[data-v-69e4da90],.slide-left-enter-from[data-v-69e4da90],.slide-left-leave-to[data-v-69e4da90]{opacity:0}.sidepanel-body[data-v-69e4da90]{will-change:transform,opacity;contain:layout style}.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}.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-62b1cddc]{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}.sidebar-manu-item .tooltip-trigger{width:100%!important}.sidebar-menu-tooltip{margin-left:4px!important}[dir=rtl] .sidebar-menu-tooltip{margin-right: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;left:0;right: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;left:0;right:0}.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}.attached-group[data-v-298c3d8a] button{position:relative}.attached-group[data-v-298c3d8a] button:focus-visible,.attached-group[data-v-298c3d8a] button:hover{z-index:10}.attached-group[data-v-298c3d8a]:not(.vertical-group) button:not(:first-child){margin-inline-start:-1px}.attached-group[data-v-298c3d8a]:not(.vertical-group) button:first-child{border-start-end-radius:0!important;border-end-end-radius:0!important}.attached-group[data-v-298c3d8a]:not(.vertical-group) button:not(:first-child):not(:last-child){border-radius:0!important}.attached-group[data-v-298c3d8a]:not(.vertical-group) button:last-child{border-start-start-radius:0!important;border-end-start-radius:0!important}.vertical-group[data-v-298c3d8a] button:not(:first-child){margin-block-start:-1px}.vertical-group[data-v-298c3d8a] button:first-child{border-end-start-radius:0!important;border-end-end-radius:0!important}.vertical-group[data-v-298c3d8a] button:not(:first-child):not(:last-child){border-radius:0!important}.vertical-group[data-v-298c3d8a] button:last-child{border-start-start-radius:0!important;border-start-end-radius:0!important}.attached-group[data-v-298c3d8a]: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-298c3d8a] button:not(:first-child):not(.border):before{content:"";position:absolute;top:0;left:0;right:0;height:1px;width:100%;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none}[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-ebb84e3d]{font-family:inherit}.vlite-gantt-toolbar[data-v-ebb84e3d]{display:flex;justify-content:flex-end;margin-bottom:8px;gap:6px}.vlite-gantt-btn[data-v-ebb84e3d]{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-ebb84e3d]:hover:not(:disabled){background:var(--color-accent);color:var(--color-foreground)}.vlite-gantt-btn[data-v-ebb84e3d]:disabled{opacity:.5;cursor:not-allowed}.vlite-gantt-zoom-controls[data-v-ebb84e3d]{display:flex;gap:6px}.vlite-gantt-wrapper[data-v-ebb84e3d]{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-background)}.vlite-gantt-sidebar[data-v-ebb84e3d]{flex-shrink:0;border-right:1px solid var(--color-border);background:var(--color-background);z-index:2}.vlite-gantt-sidebar-header[data-v-ebb84e3d]{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-ebb84e3d]{overflow-y:hidden;overflow-x:hidden}.vlite-gantt-sidebar-row[data-v-ebb84e3d]{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-ebb84e3d]{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-ebb84e3d]:hover{opacity:.8}.vlite-gantt-chevron[data-v-ebb84e3d]{transition:transform .2s ease;color:var(--color-muted-foreground);flex-shrink:0}.vlite-gantt-chevron-collapsed[data-v-ebb84e3d]{transform:rotate(-90deg)}.vlite-gantt-group-count[data-v-ebb84e3d]{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-ebb84e3d]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:0 4px;width:100%;transition:all .15s}.vlite-gantt-task-name[data-v-ebb84e3d]:hover{opacity:.75}.vlite-gantt-task-name-grouped[data-v-ebb84e3d]{padding-left:20px}.vlite-gantt-task-name-dragging[data-v-ebb84e3d]{background:color-mix(in oklab,var(--color-primary) 8%,transparent);border-radius:4px}.vlite-gantt-task-dot[data-v-ebb84e3d]{width:7px;height:7px;border-radius:2px;flex-shrink:0}.vlite-gantt-progress-badge[data-v-ebb84e3d]{font-size:10px;font-weight:700;color:var(--color-muted-foreground);margin-left:auto;flex-shrink:0}.vlite-gantt-timeline[data-v-ebb84e3d]{flex:1;overflow-x:auto;overflow-y:auto;position:relative}.vlite-gantt-timeline-header[data-v-ebb84e3d]{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-ebb84e3d]{position:relative}.vlite-gantt-bar-dragging[data-v-ebb84e3d]{filter:drop-shadow(0 2px 8px rgba(0,0,0,.15));z-index:10}.vlite-gantt-dep-group[data-v-ebb84e3d]{transition:opacity .2s}.vlite-gantt-dep-group[data-v-ebb84e3d]:hover{opacity:1!important}.vlite-gantt-tooltip-progress-track[data-v-ebb84e3d]{width:60px;height:4px;border-radius:2px;background:var(--color-muted);overflow:hidden}.vlite-gantt-tooltip-progress-fill[data-v-ebb84e3d]{height:100%;border-radius:2px;transition:width .3s ease}.vlite-gantt-timeline[data-v-ebb84e3d]::-webkit-scrollbar{height:6px;width:6px}.vlite-gantt-timeline[data-v-ebb84e3d]::-webkit-scrollbar-track{background:transparent}.vlite-gantt-timeline[data-v-ebb84e3d]::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:3px}.vlite-gantt-timeline[data-v-ebb84e3d]::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar-hover)}.vlite-gantt-sidebar-body[data-v-ebb84e3d]::-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}.toast-item[data-v-9c775c23]{will-change:transform,opacity;contain:layout style}.first-toast-enter-active[data-v-9c775c23]{animation:first-toast-in-9c775c23 .45s cubic-bezier(.23,1,.32,1) forwards}.first-toast-leave-active[data-v-9c775c23]{transition:all .25s ease-in}.first-toast-leave-to[data-v-9c775c23]{opacity:0;transform:scale(.98)}@keyframes first-toast-in-9c775c23{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-9c775c23],.stack-toast-leave-active[data-v-9c775c23]{transition:all .3s cubic-bezier(.16,1,.3,1)}.stack-toast-enter-from[data-v-9c775c23]{opacity:0;transform:scale(.95) translateY(10px)}.stack-toast-leave-to[data-v-9c775c23]{opacity:0;transform:scale(.95)}.stack-toast-move[data-v-9c775c23]{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}
|
|
1800
|
+
input[data-v-ea76c92c]::-webkit-outer-spin-button,input[data-v-ea76c92c]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}input[type=number][data-v-ea76c92c]{-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}}[data-v-a8f85730] .date-picker-content.dates{min-height:245px}.IroBox{border-radius:8px!important}.accordion-enter-active[data-v-0075dffb],.accordion-leave-active[data-v-0075dffb]{transition:height .3s ease-in-out;will-change:height}.content-wrapper[data-v-0075dffb]{contain:paint}.custom-fields-table[data-v-0138ffcc]{will-change:transform;contain:layout style}.custom-fields-table[data-v-0138ffcc] .form-field-item{margin-bottom:0!important;height:100%}.custom-fields-table[data-v-0138ffcc] input,.custom-fields-table[data-v-0138ffcc] textarea{padding-left:1em;padding-right:.5em}.custom-fields-table[data-v-0138ffcc] input,.custom-fields-table[data-v-0138ffcc] textarea,.custom-fields-table[data-v-0138ffcc] select,.custom-fields-table[data-v-0138ffcc] .input-wrapper,.custom-fields-table[data-v-0138ffcc] .tooltip-trigger button,.custom-fields-table[data-v-0138ffcc] .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-0138ffcc] input:focus,.custom-fields-table[data-v-0138ffcc] textarea:focus,.custom-fields-table[data-v-0138ffcc] select:focus,.custom-fields-table[data-v-0138ffcc] .input-wrapper:focus-within,.custom-fields-table[data-v-0138ffcc] .tooltip-trigger button:focus,.custom-fields-table[data-v-0138ffcc] .tooltip-trigger>div:focus,.custom-fields-table[data-v-0138ffcc] .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-0138ffcc] .w-full{width:100%;height:100%}.custom-fields-table[data-v-0138ffcc] .vl-file-picker{height:100%!important;min-height:40px;padding:0;min-width:0!important}.custom-fields-table[data-v-0138ffcc] .vl-file-picker--input>.relative{height:100%;min-width:0}.custom-fields-table[data-v-0138ffcc] .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-0138ffcc] .vl-file-picker--input [role=button]:focus,.custom-fields-table[data-v-0138ffcc] .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-0138ffcc] .vl-file-picker__dropzone{min-height:96px;padding:1rem;border-radius:.5rem!important}.custom-fields-table[data-v-0138ffcc] .vl-file-picker__file{min-height:72px;border-radius:.5rem!important;background:hsl(var(--background))!important}.custom-fields-table[data-v-0138ffcc] .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-0138ffcc] .vl-file-picker__file input:hover{border-bottom-color:hsl(var(--border))!important}.custom-fields-table[data-v-0138ffcc] .vl-file-picker__file input:focus{background-color:transparent!important;border-bottom-color:hsl(var(--primary))!important;box-shadow:none!important}.list-enter-active[data-v-0138ffcc]{transition:all .15s cubic-bezier(.16,1,.3,1)}.list-enter-from[data-v-0138ffcc]{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-d4db8f9b]{display:flex;flex-direction:column;min-width:0}.form-field-item[data-v-d4db8f9b]:has([role=checkbox]){flex-direction:row;align-items:center;justify-content:flex-start}.form-container[data-v-b84399b6]{width:100%}[data-tabes][data-v-2e086e79]:not(.inline-flex):not([class*=gap-6])>:where(button,a,[role=tab]){flex:1 0 0%;min-width:max-content}.scrollbar-hide[data-v-2e086e79]{-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}.scrollbar-hide[data-v-2e086e79]::-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-38015ba3]{will-change:transform;contain:layout style}.kanban-board--disabled[data-v-38015ba3]{opacity:.75;background-color:color-mix(in srgb,var(--color-card) 85%,var(--color-muted) 15%)}.kanban-lock-badge[data-v-38015ba3]{font-size:.75rem;line-height:1;-webkit-user-select:none;user-select:none}.scrollable-container[data-v-52c07c6d]{will-change:transform;contain:layout style}.v-sidepanel-overlay[data-v-69e4da90]{background-color:#00000069}.slide-right-enter-active[data-v-69e4da90],.slide-left-enter-active[data-v-69e4da90]{transition:opacity 80ms ease-out}.slide-right-leave-active[data-v-69e4da90],.slide-left-leave-active[data-v-69e4da90]{transition:opacity .12s ease-in}.slide-right-enter-from[data-v-69e4da90],.slide-right-leave-to[data-v-69e4da90],.slide-left-enter-from[data-v-69e4da90],.slide-left-leave-to[data-v-69e4da90]{opacity:0}.sidepanel-body[data-v-69e4da90]{will-change:transform,opacity;contain:layout style}.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}.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-62b1cddc]{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}.sidebar-manu-item .tooltip-trigger{width:100%!important}.sidebar-menu-tooltip{margin-left:4px!important}[dir=rtl] .sidebar-menu-tooltip{margin-right: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;left:0;right: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;left:0;right:0}.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}.attached-group[data-v-298c3d8a] button{position:relative}.attached-group[data-v-298c3d8a] button:focus-visible,.attached-group[data-v-298c3d8a] button:hover{z-index:10}.attached-group[data-v-298c3d8a]:not(.vertical-group) button:not(:first-child){margin-inline-start:-1px}.attached-group[data-v-298c3d8a]:not(.vertical-group) button:first-child{border-start-end-radius:0!important;border-end-end-radius:0!important}.attached-group[data-v-298c3d8a]:not(.vertical-group) button:not(:first-child):not(:last-child){border-radius:0!important}.attached-group[data-v-298c3d8a]:not(.vertical-group) button:last-child{border-start-start-radius:0!important;border-end-start-radius:0!important}.vertical-group[data-v-298c3d8a] button:not(:first-child){margin-block-start:-1px}.vertical-group[data-v-298c3d8a] button:first-child{border-end-start-radius:0!important;border-end-end-radius:0!important}.vertical-group[data-v-298c3d8a] button:not(:first-child):not(:last-child){border-radius:0!important}.vertical-group[data-v-298c3d8a] button:last-child{border-start-start-radius:0!important;border-start-end-radius:0!important}.attached-group[data-v-298c3d8a]: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-298c3d8a] button:not(:first-child):not(.border):before{content:"";position:absolute;top:0;left:0;right:0;height:1px;width:100%;background-color:currentColor;opacity:.15;z-index:5;pointer-events:none}[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-ebb84e3d]{font-family:inherit}.vlite-gantt-toolbar[data-v-ebb84e3d]{display:flex;justify-content:flex-end;margin-bottom:8px;gap:6px}.vlite-gantt-btn[data-v-ebb84e3d]{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-ebb84e3d]:hover:not(:disabled){background:var(--color-accent);color:var(--color-foreground)}.vlite-gantt-btn[data-v-ebb84e3d]:disabled{opacity:.5;cursor:not-allowed}.vlite-gantt-zoom-controls[data-v-ebb84e3d]{display:flex;gap:6px}.vlite-gantt-wrapper[data-v-ebb84e3d]{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-background)}.vlite-gantt-sidebar[data-v-ebb84e3d]{flex-shrink:0;border-right:1px solid var(--color-border);background:var(--color-background);z-index:2}.vlite-gantt-sidebar-header[data-v-ebb84e3d]{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-ebb84e3d]{overflow-y:hidden;overflow-x:hidden}.vlite-gantt-sidebar-row[data-v-ebb84e3d]{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-ebb84e3d]{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-ebb84e3d]:hover{opacity:.8}.vlite-gantt-chevron[data-v-ebb84e3d]{transition:transform .2s ease;color:var(--color-muted-foreground);flex-shrink:0}.vlite-gantt-chevron-collapsed[data-v-ebb84e3d]{transform:rotate(-90deg)}.vlite-gantt-group-count[data-v-ebb84e3d]{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-ebb84e3d]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:0 4px;width:100%;transition:all .15s}.vlite-gantt-task-name[data-v-ebb84e3d]:hover{opacity:.75}.vlite-gantt-task-name-grouped[data-v-ebb84e3d]{padding-left:20px}.vlite-gantt-task-name-dragging[data-v-ebb84e3d]{background:color-mix(in oklab,var(--color-primary) 8%,transparent);border-radius:4px}.vlite-gantt-task-dot[data-v-ebb84e3d]{width:7px;height:7px;border-radius:2px;flex-shrink:0}.vlite-gantt-progress-badge[data-v-ebb84e3d]{font-size:10px;font-weight:700;color:var(--color-muted-foreground);margin-left:auto;flex-shrink:0}.vlite-gantt-timeline[data-v-ebb84e3d]{flex:1;overflow-x:auto;overflow-y:auto;position:relative}.vlite-gantt-timeline-header[data-v-ebb84e3d]{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-ebb84e3d]{position:relative}.vlite-gantt-bar-dragging[data-v-ebb84e3d]{filter:drop-shadow(0 2px 8px rgba(0,0,0,.15));z-index:10}.vlite-gantt-dep-group[data-v-ebb84e3d]{transition:opacity .2s}.vlite-gantt-dep-group[data-v-ebb84e3d]:hover{opacity:1!important}.vlite-gantt-tooltip-progress-track[data-v-ebb84e3d]{width:60px;height:4px;border-radius:2px;background:var(--color-muted);overflow:hidden}.vlite-gantt-tooltip-progress-fill[data-v-ebb84e3d]{height:100%;border-radius:2px;transition:width .3s ease}.vlite-gantt-timeline[data-v-ebb84e3d]::-webkit-scrollbar{height:6px;width:6px}.vlite-gantt-timeline[data-v-ebb84e3d]::-webkit-scrollbar-track{background:transparent}.vlite-gantt-timeline[data-v-ebb84e3d]::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:3px}.vlite-gantt-timeline[data-v-ebb84e3d]::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar-hover)}.vlite-gantt-sidebar-body[data-v-ebb84e3d]::-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-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-9c775c23]{will-change:transform,opacity;contain:layout style}.first-toast-enter-active[data-v-9c775c23]{animation:first-toast-in-9c775c23 .45s cubic-bezier(.23,1,.32,1) forwards}.first-toast-leave-active[data-v-9c775c23]{transition:all .25s ease-in}.first-toast-leave-to[data-v-9c775c23]{opacity:0;transform:scale(.98)}@keyframes first-toast-in-9c775c23{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-9c775c23],.stack-toast-leave-active[data-v-9c775c23]{transition:all .3s cubic-bezier(.16,1,.3,1)}.stack-toast-enter-from[data-v-9c775c23]{opacity:0;transform:scale(.95) translateY(10px)}.stack-toast-leave-to[data-v-9c775c23]{opacity:0;transform:scale(.95)}.stack-toast-move[data-v-9c775c23]{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}
|
|
1801
1801
|
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export interface GoogleMapCoordinate {
|
|
2
|
+
lat: number;
|
|
3
|
+
lng: number;
|
|
4
|
+
}
|
|
5
|
+
export interface GoogleMapMarker extends GoogleMapCoordinate {
|
|
6
|
+
id?: string | number;
|
|
7
|
+
title?: string;
|
|
8
|
+
label?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface GoogleMapOptions {
|
|
11
|
+
disableDefaultUI?: boolean;
|
|
12
|
+
draggable?: boolean;
|
|
13
|
+
fullscreenControl?: boolean;
|
|
14
|
+
mapId?: string;
|
|
15
|
+
mapTypeControl?: boolean;
|
|
16
|
+
scrollwheel?: boolean;
|
|
17
|
+
streetViewControl?: boolean;
|
|
18
|
+
zoomControl?: boolean;
|
|
19
|
+
[key: string]: unknown;
|
|
20
|
+
}
|
|
21
|
+
export interface GoogleMapProps {
|
|
22
|
+
apiKey?: string;
|
|
23
|
+
center?: GoogleMapCoordinate | null;
|
|
24
|
+
markers?: GoogleMapMarker[];
|
|
25
|
+
zoom?: number;
|
|
26
|
+
height?: string | number;
|
|
27
|
+
width?: string | number;
|
|
28
|
+
options?: GoogleMapOptions;
|
|
29
|
+
ariaLabel?: string;
|
|
30
|
+
loadingText?: string;
|
|
31
|
+
errorText?: string;
|
|
32
|
+
}
|
|
33
|
+
export type GoogleMapErrorCode = 'invalid-api-key' | 'invalid-center' | 'invalid-markers' | 'loader-conflict' | 'load-failed' | 'ssr-unavailable';
|
|
34
|
+
export interface GoogleMapError {
|
|
35
|
+
code: GoogleMapErrorCode;
|
|
36
|
+
message: string;
|
|
37
|
+
cause?: unknown;
|
|
38
|
+
}
|
|
39
|
+
export interface GoogleMapReadyEvent {
|
|
40
|
+
map: unknown;
|
|
41
|
+
}
|
|
42
|
+
export interface GoogleMapClickEvent {
|
|
43
|
+
coordinate: GoogleMapCoordinate | null;
|
|
44
|
+
nativeEvent: unknown;
|
|
45
|
+
}
|
|
46
|
+
export interface GoogleMapMarkerClickEvent {
|
|
47
|
+
marker: GoogleMapMarker;
|
|
48
|
+
index: number;
|
|
49
|
+
nativeEvent: unknown;
|
|
50
|
+
}
|
package/types/config.type.d.ts
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { GoogleMapError } from '../types/GoogleMap.type';
|
|
2
|
+
interface GoogleMapsApi {
|
|
3
|
+
maps: {
|
|
4
|
+
Map: new (element: HTMLElement, options: Record<string, unknown>) => GoogleMapInstance;
|
|
5
|
+
Marker: new (options: Record<string, unknown>) => GoogleMapMarkerInstance;
|
|
6
|
+
event: {
|
|
7
|
+
clearInstanceListeners(instance: unknown): void;
|
|
8
|
+
trigger(instance: unknown, eventName: string): void;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export interface GoogleMapListener {
|
|
13
|
+
remove(): void;
|
|
14
|
+
}
|
|
15
|
+
export interface GoogleMapInstance {
|
|
16
|
+
addListener(eventName: string, handler: (event?: any) => void): GoogleMapListener;
|
|
17
|
+
getCenter(): {
|
|
18
|
+
lat(): number;
|
|
19
|
+
lng(): number;
|
|
20
|
+
} | undefined;
|
|
21
|
+
getZoom(): number | undefined;
|
|
22
|
+
setCenter(center: {
|
|
23
|
+
lat: number;
|
|
24
|
+
lng: number;
|
|
25
|
+
}): void;
|
|
26
|
+
setOptions(options: Record<string, unknown>): void;
|
|
27
|
+
setZoom(zoom: number): void;
|
|
28
|
+
}
|
|
29
|
+
export interface GoogleMapMarkerInstance {
|
|
30
|
+
addListener(eventName: string, handler: (event?: any) => void): GoogleMapListener;
|
|
31
|
+
setLabel(label: string | null): void;
|
|
32
|
+
setMap(map: GoogleMapInstance | null): void;
|
|
33
|
+
setPosition(position: {
|
|
34
|
+
lat: number;
|
|
35
|
+
lng: number;
|
|
36
|
+
}): void;
|
|
37
|
+
setTitle(title: string | null): void;
|
|
38
|
+
}
|
|
39
|
+
export declare function onGoogleMapsAuthFailure(handler: (error: GoogleMapError) => void): () => void;
|
|
40
|
+
export declare function loadGoogleMaps(apiKey: string): Promise<GoogleMapsApi>;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
let t = null, d = null;
|
|
2
|
+
const s = /* @__PURE__ */ new Set();
|
|
3
|
+
let p = !1;
|
|
4
|
+
function l(e, n, a) {
|
|
5
|
+
return { code: e, message: n, cause: a };
|
|
6
|
+
}
|
|
7
|
+
function f() {
|
|
8
|
+
if (p || typeof window > "u") return;
|
|
9
|
+
p = !0;
|
|
10
|
+
const e = window.gm_authFailure;
|
|
11
|
+
window.gm_authFailure = () => {
|
|
12
|
+
const n = l(
|
|
13
|
+
"invalid-api-key",
|
|
14
|
+
"Google Maps rejected the API key. Check its validity and Maps JavaScript API restrictions."
|
|
15
|
+
);
|
|
16
|
+
s.forEach((a) => a(n)), typeof e == "function" && e();
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function g(e) {
|
|
20
|
+
return f(), s.add(e), () => s.delete(e);
|
|
21
|
+
}
|
|
22
|
+
function w(e) {
|
|
23
|
+
if (typeof window > "u" || typeof document > "u")
|
|
24
|
+
return Promise.reject(
|
|
25
|
+
l("ssr-unavailable", "Google Maps can only be initialized in a browser.")
|
|
26
|
+
);
|
|
27
|
+
const n = window.google;
|
|
28
|
+
return n?.maps?.Map ? Promise.resolve(n) : t ? d !== e ? Promise.reject(
|
|
29
|
+
l(
|
|
30
|
+
"loader-conflict",
|
|
31
|
+
"Google Maps is already loading with a different API key on this page."
|
|
32
|
+
)
|
|
33
|
+
) : t : (d = e, f(), t = new Promise((a, u) => {
|
|
34
|
+
const r = `__vliteGoogleMapsReady_${Date.now()}`, o = document.createElement("script"), c = () => delete window[r];
|
|
35
|
+
window[r] = () => {
|
|
36
|
+
c();
|
|
37
|
+
const i = window.google;
|
|
38
|
+
i?.maps?.Map ? a(i) : u(l("load-failed", "Google Maps loaded without the Maps API."));
|
|
39
|
+
}, o.id = "vlite3-google-maps-script", o.async = !0, o.defer = !0, o.src = `https://maps.googleapis.com/maps/api/js?key=${encodeURIComponent(e)}&callback=${r}&loading=async`, o.onerror = (i) => {
|
|
40
|
+
c(), t = null, d = null, o.remove(), u(l("load-failed", "Google Maps could not be loaded.", i));
|
|
41
|
+
}, document.head.appendChild(o);
|
|
42
|
+
}), t);
|
|
43
|
+
}
|
|
44
|
+
export {
|
|
45
|
+
w as loadGoogleMaps,
|
|
46
|
+
g as onGoogleMapsAuthFailure
|
|
47
|
+
};
|