vlite3 0.8.11 → 0.9.2
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/AttachmentsList/AttachmentsList.vue.d.ts +6 -0
- package/components/AttachmentsList/AttachmentsList.vue.js +82 -0
- package/components/AttachmentsList/AttachmentsList.vue2.js +4 -0
- package/components/AttachmentsList/index.d.ts +2 -0
- package/components/AttachmentsList/types.d.ts +11 -0
- package/components/Button.vue.js +6 -6
- package/components/Chat/ChatBubble.vue.d.ts +18 -0
- package/components/Chat/ChatInterface.vue.d.ts +45 -0
- package/components/Chat/index.d.ts +2 -0
- package/components/DataList/DataList.vue.d.ts +1 -1
- package/components/DataTable/DataTable.vue.d.ts +3 -3
- package/components/DataTable/DataTable.vue.js +22 -22
- package/components/DataTable/types.d.ts +1 -1
- package/components/DatePicker.vue.d.ts +3 -2
- package/components/DatePicker.vue.js +1 -1
- package/components/Dropdown/Dropdown.vue.d.ts +2 -0
- package/components/Dropdown/Dropdown.vue.js +106 -90
- package/components/Dropdown/DropdownItem.vue.js +8 -8
- package/components/Dropdown/DropdownMenu.vue.js +2 -2
- package/components/Dropdown/DropdownMenu.vue2.js +1 -1
- package/components/ExportData/ExportData.vue.d.ts +1 -1
- package/components/FilePicker/FilePicker.vue.d.ts +4 -1
- package/components/FilePicker/FilePicker.vue.js +189 -139
- package/components/FilePreview/FilePreview.vue.d.ts +5 -0
- package/components/FilePreview/FilePreview.vue.js +27 -0
- package/components/FilePreview/FilePreview.vue2.js +4 -0
- package/components/FilePreview/index.d.ts +2 -0
- package/components/FilePreview/types.d.ts +5 -0
- package/components/Form/FormField.vue.js +3 -1
- package/components/Form/composables/useForm.js +50 -47
- package/components/Input.vue.d.ts +1 -0
- package/components/Input.vue.js +18 -15
- package/components/Modal.vue.js +2 -2
- package/components/Modal.vue2.js +31 -31
- package/components/MultiSelect/MultiSelect.vue.js +92 -84
- package/components/Navbar/Navbar.vue.js +61 -60
- package/components/Screen/Screen.vue.d.ts +200 -7
- package/components/Screen/Screen.vue.js +306 -502
- package/components/Screen/ScreenFilter.vue.js +45 -42
- package/components/Screen/components/ScreenAddAction.vue.d.ts +15 -0
- package/components/Screen/components/ScreenAddAction.vue.js +107 -0
- package/components/Screen/components/ScreenAddAction.vue2.js +4 -0
- package/components/Screen/components/ScreenEmptyState.vue.d.ts +14 -0
- package/components/Screen/components/ScreenEmptyState.vue.js +105 -0
- package/components/Screen/components/ScreenEmptyState.vue2.js +4 -0
- package/components/Screen/components/ScreenExportModal.vue.d.ts +49 -0
- package/components/Screen/components/ScreenExportModal.vue.js +83 -0
- package/components/Screen/components/ScreenExportModal.vue2.js +4 -0
- package/components/Screen/components/ScreenHeaderTitle.vue.d.ts +28 -0
- package/components/Screen/components/ScreenHeaderTitle.vue.js +57 -0
- package/components/Screen/components/ScreenHeaderTitle.vue2.js +4 -0
- package/components/Screen/components/ScreenOptionsDropdown.vue.d.ts +10 -0
- package/components/Screen/components/ScreenOptionsDropdown.vue.js +43 -0
- package/components/Screen/components/ScreenOptionsDropdown.vue2.js +4 -0
- package/components/Screen/components/ScreenQuickFilters.vue.d.ts +15 -0
- package/components/Screen/components/ScreenQuickFilters.vue.js +36 -0
- package/components/Screen/components/ScreenQuickFilters.vue2.js +4 -0
- package/components/Screen/components/ScreenViewToggle.vue.d.ts +9 -0
- package/components/Screen/components/ScreenViewToggle.vue.js +48 -0
- package/components/Screen/components/ScreenViewToggle.vue2.js +4 -0
- package/components/Screen/index.d.ts +1 -0
- package/components/Screen/types.d.ts +41 -2
- package/components/SidePanel.vue.js +1 -1
- package/components/SidePanel.vue2.js +7 -7
- package/components/SidebarMenu/SidebarMenu.vue.js +1 -1
- package/components/Stats/Stats.vue.js +50 -49
- package/components/StatusChip/StatusChip.vue.d.ts +2 -2
- package/components/StatusChip/StatusChip.vue.js +15 -14
- package/components/StatusChip/status-map.d.ts +2 -1
- package/components/StatusChip/status-map.js +16 -6
- package/components/Tabes/Tabes.vue.d.ts +1 -1
- package/components/Tabes/Tabes.vue.js +5 -143
- package/components/Tabes/Tabes.vue2.js +144 -2
- package/components/Timeline/TimelineIndicator.vue.js +6 -6
- package/components/Workbook/Sheet.vue.d.ts +1 -1
- package/core/config.d.ts +8 -0
- package/core/config.js +10 -6
- package/core/index.js +28 -20
- package/index.d.ts +2 -0
- package/index.js +209 -203
- package/package.json +3 -2
- package/style.css +80 -6
- package/types/config.type.d.ts +10 -0
- package/types/form.type.d.ts +1 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { defineComponent as p, computed as c, openBlock as n, createElementBlock as o, renderSlot as a, createElementVNode as u, normalizeClass as d, toDisplayString as m, createBlock as x, withCtx as h, createVNode as I, createCommentVNode as i } from "vue";
|
|
2
|
+
import C from "../../Icon.vue.js";
|
|
3
|
+
import g from "../../Tooltip.vue.js";
|
|
4
|
+
import { $t as f } from "../../../utils/i18n.js";
|
|
5
|
+
const k = { class: "flex flex-col shrink-0" }, v = {
|
|
6
|
+
key: 0,
|
|
7
|
+
class: "flex items-center! gap-2"
|
|
8
|
+
}, S = /* @__PURE__ */ p({
|
|
9
|
+
__name: "ScreenHeaderTitle",
|
|
10
|
+
props: {
|
|
11
|
+
title: {},
|
|
12
|
+
titleI18n: {},
|
|
13
|
+
description: {},
|
|
14
|
+
descriptionI18n: {},
|
|
15
|
+
info: {},
|
|
16
|
+
infoI18n: {},
|
|
17
|
+
titleClass: {},
|
|
18
|
+
descriptionClass: {}
|
|
19
|
+
},
|
|
20
|
+
setup(t) {
|
|
21
|
+
const e = t, s = c(() => e.titleI18n ? f(e.titleI18n) : e.title), r = c(
|
|
22
|
+
() => e.descriptionI18n ? f(e.descriptionI18n) : e.description
|
|
23
|
+
);
|
|
24
|
+
return (l, y) => (n(), o("div", k, [
|
|
25
|
+
a(l.$slots, "title", {}, () => [
|
|
26
|
+
s.value ? (n(), o("div", v, [
|
|
27
|
+
u("h1", {
|
|
28
|
+
class: d(["text-fs-7.5 font-bold text-foreground", t.titleClass])
|
|
29
|
+
}, m(s.value), 3),
|
|
30
|
+
t.info || t.infoI18n ? (n(), x(g, {
|
|
31
|
+
key: 0,
|
|
32
|
+
content: t.info,
|
|
33
|
+
"content-i18n": t.infoI18n,
|
|
34
|
+
placement: "right"
|
|
35
|
+
}, {
|
|
36
|
+
default: h(() => [
|
|
37
|
+
I(C, {
|
|
38
|
+
icon: "lucide:info",
|
|
39
|
+
class: "w-[18px] h-[18px] mt-3! text-muted-foreground hover:text-foreground cursor-pointer transition-colors outline-none"
|
|
40
|
+
})
|
|
41
|
+
]),
|
|
42
|
+
_: 1
|
|
43
|
+
}, 8, ["content", "content-i18n"])) : i("", !0)
|
|
44
|
+
])) : i("", !0)
|
|
45
|
+
]),
|
|
46
|
+
a(l.$slots, "description", {}, () => [
|
|
47
|
+
r.value ? (n(), o("p", {
|
|
48
|
+
key: 0,
|
|
49
|
+
class: d(["text-sm text-gray-700 mt-1 md:max-w-[450px]", t.descriptionClass])
|
|
50
|
+
}, m(r.value), 3)) : i("", !0)
|
|
51
|
+
])
|
|
52
|
+
]));
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
export {
|
|
56
|
+
S as default
|
|
57
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
exportProps?: Record<string, any> | boolean;
|
|
3
|
+
importProps?: Record<string, any> | boolean;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
6
|
+
select: (payload: any) => any;
|
|
7
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
8
|
+
onSelect?: (payload: any) => any;
|
|
9
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { defineComponent as d, computed as o, openBlock as f, createBlock as v, withCtx as x, createVNode as O, unref as p } from "vue";
|
|
2
|
+
import D from "../../Button.vue.js";
|
|
3
|
+
import _ from "../../Dropdown/Dropdown.vue.js";
|
|
4
|
+
import { $t as e } from "../../../utils/i18n.js";
|
|
5
|
+
const S = /* @__PURE__ */ d({
|
|
6
|
+
__name: "ScreenOptionsDropdown",
|
|
7
|
+
props: {
|
|
8
|
+
exportProps: { type: [Object, Boolean] },
|
|
9
|
+
importProps: { type: [Object, Boolean] }
|
|
10
|
+
},
|
|
11
|
+
emits: ["select"],
|
|
12
|
+
setup(i, { emit: s }) {
|
|
13
|
+
const r = i, a = s, l = o(() => {
|
|
14
|
+
const t = e("vlite.screen.exportData");
|
|
15
|
+
return t !== "vlite.screen.exportData" ? t : "Export Data";
|
|
16
|
+
}), c = o(() => {
|
|
17
|
+
const t = e("vlite.screen.importData");
|
|
18
|
+
return t !== "vlite.screen.importData" ? t : "Import Data";
|
|
19
|
+
}), m = o(() => {
|
|
20
|
+
const t = [];
|
|
21
|
+
return r.exportProps !== !1 && t.push({ value: "export", label: l.value, icon: "lucide:download" }), r.importProps !== !1 && t.push({ value: "import", label: c.value, icon: "lucide:upload" }), t;
|
|
22
|
+
});
|
|
23
|
+
return (t, n) => (f(), v(_, {
|
|
24
|
+
closeOnSelect: "",
|
|
25
|
+
position: "bottom-end",
|
|
26
|
+
options: m.value,
|
|
27
|
+
onOnSelect: n[0] || (n[0] = (u) => a("select", u))
|
|
28
|
+
}, {
|
|
29
|
+
trigger: x(() => [
|
|
30
|
+
O(D, {
|
|
31
|
+
variant: "outline",
|
|
32
|
+
icon: "lucide:more-vertical",
|
|
33
|
+
class: "px-2!",
|
|
34
|
+
title: p(e)("vlite.screen.moreOptions") !== "vlite.screen.moreOptions" ? p(e)("vlite.screen.moreOptions") : "More Options"
|
|
35
|
+
}, null, 8, ["title"])
|
|
36
|
+
]),
|
|
37
|
+
_: 1
|
|
38
|
+
}, 8, ["options"]));
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
export {
|
|
42
|
+
S as default
|
|
43
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ScreenQuickFilter } from '../types';
|
|
2
|
+
import { TabesVariant } from '../../Tabes/types';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
modelValue: string | number;
|
|
5
|
+
options: ScreenQuickFilter[];
|
|
6
|
+
variant?: TabesVariant;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
9
|
+
change: (val: string | number) => any;
|
|
10
|
+
"update:modelValue": (val: string | number) => any;
|
|
11
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
12
|
+
onChange?: (val: string | number) => any;
|
|
13
|
+
"onUpdate:modelValue"?: (val: string | number) => any;
|
|
14
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
15
|
+
export default _default;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { defineComponent as i, computed as s, openBlock as r, createElementBlock as u, createVNode as m, unref as d } from "vue";
|
|
2
|
+
import b from "../../Tabes/Tabes.vue.js";
|
|
3
|
+
const p = { class: "w-max" }, V = /* @__PURE__ */ i({
|
|
4
|
+
__name: "ScreenQuickFilters",
|
|
5
|
+
props: {
|
|
6
|
+
modelValue: {},
|
|
7
|
+
options: {},
|
|
8
|
+
variant: {}
|
|
9
|
+
},
|
|
10
|
+
emits: ["update:modelValue", "change"],
|
|
11
|
+
setup(a, { emit: o }) {
|
|
12
|
+
const l = a, n = o, t = s(
|
|
13
|
+
() => l.options.map((e) => ({
|
|
14
|
+
value: e.value,
|
|
15
|
+
icon: e.icon,
|
|
16
|
+
labelI18n: e.labelI18n,
|
|
17
|
+
// Append count badge inline in the label string when provided
|
|
18
|
+
label: e.count !== void 0 ? `${e.label} (${e.count})` : e.label
|
|
19
|
+
}))
|
|
20
|
+
), c = (e) => {
|
|
21
|
+
n("update:modelValue", e), n("change", e);
|
|
22
|
+
};
|
|
23
|
+
return (e, v) => (r(), u("div", p, [
|
|
24
|
+
m(d(b), {
|
|
25
|
+
class: "border-b-0! border-0! pb-0",
|
|
26
|
+
"model-value": a.modelValue,
|
|
27
|
+
options: t.value,
|
|
28
|
+
variant: a.variant || "line",
|
|
29
|
+
onChange: c
|
|
30
|
+
}, null, 8, ["model-value", "options", "variant"])
|
|
31
|
+
]));
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
export {
|
|
35
|
+
V as default
|
|
36
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
modelValue: 'table' | 'list';
|
|
3
|
+
};
|
|
4
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
5
|
+
"update:modelValue": (val: "table" | "list") => any;
|
|
6
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
7
|
+
"onUpdate:modelValue"?: (val: "table" | "list") => any;
|
|
8
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { defineComponent as b, computed as l, openBlock as f, createElementBlock as p, createElementVNode as n, normalizeClass as s, createVNode as d } from "vue";
|
|
2
|
+
import i from "../../Icon.vue.js";
|
|
3
|
+
import { $t as a } from "../../../utils/i18n.js";
|
|
4
|
+
const g = { class: "flex items-center p-1 rounded-md border border-border shrink-0" }, w = ["title"], v = ["title"], k = /* @__PURE__ */ b({
|
|
5
|
+
__name: "ScreenViewToggle",
|
|
6
|
+
props: {
|
|
7
|
+
modelValue: {}
|
|
8
|
+
},
|
|
9
|
+
emits: ["update:modelValue"],
|
|
10
|
+
setup(o, { emit: u }) {
|
|
11
|
+
const r = u, c = l(() => {
|
|
12
|
+
const e = a("vlite.screen.listView");
|
|
13
|
+
return e !== "vlite.screen.listView" ? e : "List View";
|
|
14
|
+
}), m = l(() => {
|
|
15
|
+
const e = a("vlite.screen.tableView");
|
|
16
|
+
return e !== "vlite.screen.tableView" ? e : "Table View";
|
|
17
|
+
});
|
|
18
|
+
return (e, t) => (f(), p("div", g, [
|
|
19
|
+
n("button", {
|
|
20
|
+
onClick: t[0] || (t[0] = (V) => r("update:modelValue", "table")),
|
|
21
|
+
class: s(["p-1.5 rounded", [
|
|
22
|
+
o.modelValue === "table" ? "bg-secondary/85 dark:bg-secondary shadow-sm text-foreground" : "text-muted-foreground hover:text-foreground"
|
|
23
|
+
]]),
|
|
24
|
+
title: m.value
|
|
25
|
+
}, [
|
|
26
|
+
d(i, {
|
|
27
|
+
icon: "lucide:list",
|
|
28
|
+
class: "w-4 h-4"
|
|
29
|
+
})
|
|
30
|
+
], 10, w),
|
|
31
|
+
n("button", {
|
|
32
|
+
onClick: t[1] || (t[1] = (V) => r("update:modelValue", "list")),
|
|
33
|
+
class: s(["p-1.5 rounded", [
|
|
34
|
+
o.modelValue === "list" ? "bg-secondary/85 dark:bg-secondary shadow-sm text-foreground" : "text-muted-foreground hover:text-foreground"
|
|
35
|
+
]]),
|
|
36
|
+
title: c.value
|
|
37
|
+
}, [
|
|
38
|
+
d(i, {
|
|
39
|
+
icon: "lucide:layout-grid",
|
|
40
|
+
class: "w-4 h-4"
|
|
41
|
+
})
|
|
42
|
+
], 10, v)
|
|
43
|
+
]));
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
export {
|
|
47
|
+
k as default
|
|
48
|
+
};
|
|
@@ -4,6 +4,7 @@ import { ButtonVariant } from '../../types';
|
|
|
4
4
|
import { IForm } from '../Form';
|
|
5
5
|
import { ExportField } from '../ExportData/types';
|
|
6
6
|
import { ImportField } from '../ImportData/types';
|
|
7
|
+
import { TabesVariant } from '../Tabes';
|
|
7
8
|
export interface ScreenPaginationProps extends Omit<PaginationProps, 'currentPage' | 'totalPages'> {
|
|
8
9
|
}
|
|
9
10
|
export interface AddBtnConfig {
|
|
@@ -19,6 +20,19 @@ export interface AddBtnConfig {
|
|
|
19
20
|
modalProps?: Record<string, any>;
|
|
20
21
|
buttonProps?: Record<string, any>;
|
|
21
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* A single quick-filter tab option.
|
|
25
|
+
* `value` is what gets emitted in the refetch payload.
|
|
26
|
+
* Use `value: ''` (or `value: 'all'`) for the "All" tab — it resets the quick filter.
|
|
27
|
+
*/
|
|
28
|
+
export interface ScreenQuickFilter {
|
|
29
|
+
label: string;
|
|
30
|
+
labelI18n?: string;
|
|
31
|
+
value: string | number;
|
|
32
|
+
icon?: string;
|
|
33
|
+
/** Optional badge/count displayed next to the label */
|
|
34
|
+
count?: number;
|
|
35
|
+
}
|
|
22
36
|
export interface ScreenProps {
|
|
23
37
|
name?: string;
|
|
24
38
|
title?: string;
|
|
@@ -31,7 +45,7 @@ export interface ScreenProps {
|
|
|
31
45
|
data?: any[];
|
|
32
46
|
loading?: boolean;
|
|
33
47
|
/**
|
|
34
|
-
* Called on every search, filter, pagination, or
|
|
48
|
+
* Called on every search, filter, pagination, sort, or quick-filter change.
|
|
35
49
|
* Standard payload shape: { pagination, search, sort, filter }
|
|
36
50
|
*/
|
|
37
51
|
refetch?: (payload: {
|
|
@@ -70,6 +84,31 @@ export interface ScreenProps {
|
|
|
70
84
|
showRefresh?: boolean;
|
|
71
85
|
containerClass?: string;
|
|
72
86
|
headerClass?: string;
|
|
87
|
+
titleClass?: string;
|
|
88
|
+
descriptionClass?: string;
|
|
73
89
|
viewProps?: Record<string, any>;
|
|
74
|
-
|
|
90
|
+
hideSelectable?: boolean;
|
|
91
|
+
hideDeleteBtn?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Quick-filter tabs rendered below the header (above the content).
|
|
94
|
+
* Inspired by modern dashboards (Shopify, Linear, Vercel).
|
|
95
|
+
* Example:
|
|
96
|
+
* [
|
|
97
|
+
* { label: 'All', value: '' },
|
|
98
|
+
* { label: 'Active', value: 'active' },
|
|
99
|
+
* { label: 'Draft', value: 'draft' },
|
|
100
|
+
* { label: 'Archived', value: 'archived' },
|
|
101
|
+
* ]
|
|
102
|
+
*/
|
|
103
|
+
quickFilters?: ScreenQuickFilter[];
|
|
104
|
+
/**
|
|
105
|
+
* The key used to inject the active quick filter into the refetch filter payload.
|
|
106
|
+
* Defaults to 'status'.
|
|
107
|
+
*/
|
|
108
|
+
quickFilterKey?: string;
|
|
109
|
+
/**
|
|
110
|
+
* Default selected quick-filter value. Defaults to the first tab's value.
|
|
111
|
+
*/
|
|
112
|
+
defaultQuickFilter?: string | number;
|
|
113
|
+
quickFilterVariant?: TabesVariant;
|
|
75
114
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import o from "./SidePanel.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import t from "../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const a = /* @__PURE__ */ t(o, [["__scopeId", "data-v-
|
|
4
|
+
const a = /* @__PURE__ */ t(o, [["__scopeId", "data-v-ff2923de"]]);
|
|
5
5
|
export {
|
|
6
6
|
a as default
|
|
7
7
|
};
|
|
@@ -32,7 +32,7 @@ const J = { class: "text-lg font-bold text-foreground" }, Q = {
|
|
|
32
32
|
setup(o, { emit: z }) {
|
|
33
33
|
const t = o, p = z, s = V(t.show);
|
|
34
34
|
let d = null;
|
|
35
|
-
const n = j("dropdown-context", null),
|
|
35
|
+
const n = j("dropdown-context", null), b = u(() => t.body ? K(t.body) : void 0);
|
|
36
36
|
h(
|
|
37
37
|
() => t.show,
|
|
38
38
|
(e) => {
|
|
@@ -61,7 +61,7 @@ const J = { class: "text-lg font-bold text-foreground" }, Q = {
|
|
|
61
61
|
lg: "max-w-lg",
|
|
62
62
|
xl: "max-w-xl",
|
|
63
63
|
full: "max-w-full"
|
|
64
|
-
}, E = u(() => t.position === "left" ? "left-0" : "right-0"), N = u(() => t.position === "left" ? "slide-left" : "slide-right"),
|
|
64
|
+
}, E = u(() => t.position === "left" ? "left-0" : "right-0"), N = u(() => t.position === "left" ? "slide-left" : "slide-right"), C = u(() => t.titleI18n ? T(t.titleI18n) : t.title), g = u(
|
|
65
65
|
() => t.descriptionI18n ? T(t.descriptionI18n) : t.description
|
|
66
66
|
);
|
|
67
67
|
return (e, m) => (l(), r(L, null, [
|
|
@@ -101,14 +101,14 @@ const J = { class: "text-lg font-bold text-foreground" }, Q = {
|
|
|
101
101
|
key: 0,
|
|
102
102
|
class: c(["sidepanel-body fixed inset-y-0 z-50 flex flex-col bg-body shadow-sm border transition-transform duration-300 ease-in-out w-full", [S[o.size], E.value, t.class]])
|
|
103
103
|
}, [
|
|
104
|
-
|
|
104
|
+
C.value || e.$slots.header ? (l(), r("div", {
|
|
105
105
|
key: 0,
|
|
106
106
|
class: c([o.headerClass, "flex-none flex items-center justify-between px-6 py-2 border-b border-border"])
|
|
107
107
|
}, [
|
|
108
108
|
f(e.$slots, "header", {}, () => [
|
|
109
109
|
y("div", null, [
|
|
110
|
-
y("h3", J, B(
|
|
111
|
-
|
|
110
|
+
y("h3", J, B(C.value), 1),
|
|
111
|
+
g.value ? (l(), r("p", Q, B(g.value), 1)) : a("", !0)
|
|
112
112
|
])
|
|
113
113
|
], !0),
|
|
114
114
|
o.hideCloseButton ? a("", !0) : (l(), v(G, {
|
|
@@ -122,9 +122,9 @@ const J = { class: "text-lg font-bold text-foreground" }, Q = {
|
|
|
122
122
|
}))
|
|
123
123
|
], 2)) : a("", !0),
|
|
124
124
|
y("div", {
|
|
125
|
-
class: c(["flex-1 overflow-y-auto px-6 py-4", o.bodyClass])
|
|
125
|
+
class: c(["flex-1 overflow-y-auto px-6 py-4 scrollbar-thin scrollbar-stable", o.bodyClass])
|
|
126
126
|
}, [
|
|
127
|
-
|
|
127
|
+
b.value ? (l(), v(q(b.value), w({ key: 0 }, { ...o.bodyProps, ...e.$attrs }, { close: i }), null, 16)) : f(e.$slots, "default", {
|
|
128
128
|
key: 1,
|
|
129
129
|
close: i
|
|
130
130
|
}, void 0, !0)
|
|
@@ -26,7 +26,7 @@ const U = /* @__PURE__ */ P({
|
|
|
26
26
|
menuOffset: { default: () => [0, 10] },
|
|
27
27
|
orientation: { default: "vertical" },
|
|
28
28
|
mobileBreakpoint: { default: "none" },
|
|
29
|
-
showTooltip: { type: Boolean, default: !
|
|
29
|
+
showTooltip: { type: Boolean, default: !1 },
|
|
30
30
|
forceTreeView: { type: Boolean, default: !1 }
|
|
31
31
|
},
|
|
32
32
|
setup(m) {
|