vlite3 1.1.11 → 1.2.1

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.
@@ -0,0 +1,165 @@
1
+ import { defineComponent as V, inject as _, openBlock as o, createElementBlock as a, createVNode as m, Transition as z, withCtx as h, withDirectives as N, createElementVNode as n, normalizeClass as b, unref as e, renderSlot as s, createCommentVNode as t, vShow as R, isRef as v, createTextVNode as B } from "vue";
2
+ import E from "../SidePanel.vue.js";
3
+ import L from "../Navbar/NavbarTabs.vue.js";
4
+ /* empty css */
5
+ import M from "../Breadcrumb/Breadcrumb.vue.js";
6
+ import "@iconify/vue";
7
+ /* empty css */
8
+ import { APPSHELL_LAYOUT_KEY as P } from "./useAppShell.js";
9
+ const A = { class: "vlite-app-layout flex flex-row w-full h-full bg-background p-0 sm:p-2 gap-0 sm:gap-2 overflow-hidden items-stretch" }, D = {
10
+ key: 0,
11
+ class: "flex items-center justify-center mb-1.5 pb-2 border-b border-border/40 w-full"
12
+ }, O = { class: "flex flex-col flex-1 min-w-0 h-full overflow-hidden bg-background rounded-xl max-sm:rounded-none border border-border/70 max-sm:border-0 shadow-sm" }, U = {
13
+ key: 0,
14
+ class: "w-full shrink-0 z-20 bg-background border-b border-border/50"
15
+ }, j = {
16
+ key: 0,
17
+ class: "shrink-0 w-full border-b border-border/50"
18
+ }, H = { class: "flex flex-col h-full" }, I = {
19
+ class: "flex-1 overflow-y-auto px-3.5 pt-4 scrollbar-thin scrollbar-stable",
20
+ style: { "will-change": "transform", contain: "layout style" }
21
+ }, Y = {
22
+ key: 0,
23
+ class: "mt-auto pt-2 border-t border-border px-3 py-2"
24
+ }, ee = /* @__PURE__ */ V({
25
+ __name: "AppShellLayoutDock",
26
+ setup(K) {
27
+ const y = _(P), {
28
+ props: l,
29
+ sidebarHidden: w,
30
+ isMobileMenuOpen: i,
31
+ isSidebarVisible: k,
32
+ toggleSidebar: x,
33
+ pageTitle: $,
34
+ breadcrumbData: u,
35
+ breakpointClasses: c,
36
+ nestedTabsItems: g,
37
+ activeNestedTab: f,
38
+ handleNestedTabClick: C,
39
+ mainScrollRef: S,
40
+ layoutMainRef: T
41
+ } = y;
42
+ return (r, d) => (o(), a("div", A, [
43
+ m(z, {
44
+ "enter-active-class": "transition-all duration-300 ease-in-out",
45
+ "leave-active-class": "transition-all duration-300 ease-in-out",
46
+ "enter-from-class": "opacity-0 -translate-x-2 scale-95",
47
+ "enter-to-class": "opacity-100 translate-x-0 scale-100",
48
+ "leave-from-class": "opacity-100 translate-x-0 scale-100",
49
+ "leave-to-class": "opacity-0 -translate-x-2 scale-95"
50
+ }, {
51
+ default: h(() => [
52
+ N(n("nav", {
53
+ class: b([
54
+ "shrink-0 self-center flex flex-col items-center bg-background rounded-2xl max-sm:rounded-none border border-border/70 max-sm:border-0 shadow-sm overflow-hidden z-30 py-3 px-2 gap-0.5",
55
+ e(c).mobileTrigger === "md:hidden" ? "max-md:hidden" : "",
56
+ e(l).class
57
+ ]),
58
+ role: "navigation",
59
+ "aria-label": "Sidebar dock"
60
+ }, [
61
+ r.$slots["sidebar-header"] ? (o(), a("div", D, [
62
+ s(r.$slots, "sidebar-header")
63
+ ])) : t("", !0),
64
+ n("div", {
65
+ class: b(["flex flex-col items-center gap-0.5 w-full", e(l).contentClass])
66
+ }, [
67
+ s(r.$slots, "sidebar")
68
+ ], 2),
69
+ r.$slots["sidebar-footer"] ? (o(), a("div", {
70
+ key: 1,
71
+ class: b(["flex flex-col items-center mt-1.5 pt-2 border-t border-border/40 w-full", e(l).rightClass])
72
+ }, [
73
+ s(r.$slots, "sidebar-footer")
74
+ ], 2)) : t("", !0)
75
+ ], 2), [
76
+ [R, !e(w)]
77
+ ])
78
+ ]),
79
+ _: 3
80
+ }),
81
+ n("div", O, [
82
+ r.$slots.header ? (o(), a("header", U, [
83
+ s(r.$slots, "header", {
84
+ isOpen: e(i),
85
+ toggle: () => i.value = !e(i),
86
+ sidebarVisible: e(k),
87
+ toggleSidebar: e(x),
88
+ breadcrumbItems: e(u).items.value,
89
+ pageTitle: e($)
90
+ })
91
+ ])) : t("", !0),
92
+ r.$slots.main ? (o(), a("main", {
93
+ key: 1,
94
+ ref_key: "layoutMainRef",
95
+ ref: T,
96
+ class: "flex-1 overflow-y-auto w-full relative h-full flex flex-col min-h-0 scrollbar-thin scrollbar-stable"
97
+ }, [
98
+ e(l).renderNestedTabs && e(g).length > 0 ? (o(), a("div", j, [
99
+ m(L, {
100
+ modelValue: e(f),
101
+ "onUpdate:modelValue": d[0] || (d[0] = (p) => v(f) ? f.value = p : null),
102
+ onChange: e(C),
103
+ items: e(g)
104
+ }, null, 8, ["modelValue", "onChange", "items"])
105
+ ])) : t("", !0),
106
+ e(l).breadcrumb && e(l).breadcrumbPosition === "main" && e(u).items.value.length > 1 ? (o(), a("div", {
107
+ key: 1,
108
+ class: b(["shrink-0 w-full px-6 py-2 border-b border-border/50", e(l).breadcrumbClass])
109
+ }, [
110
+ m(e(M), {
111
+ items: e(u).items.value,
112
+ variant: e(l).breadcrumbVariant,
113
+ separator: e(l).breadcrumbSeparator,
114
+ size: e(l).breadcrumbSize
115
+ }, null, 8, ["items", "variant", "separator", "size"])
116
+ ], 2)) : t("", !0),
117
+ n("div", {
118
+ ref_key: "mainScrollRef",
119
+ ref: S,
120
+ style: { "will-change": "transform", contain: "layout style" },
121
+ class: "flex-1 overflow-y-auto w-full relative h-full scrollbar-thin scrollbar-stable"
122
+ }, [
123
+ s(r.$slots, "main")
124
+ ], 512)
125
+ ], 512)) : t("", !0)
126
+ ]),
127
+ m(E, {
128
+ show: e(i),
129
+ "onUpdate:show": d[1] || (d[1] = (p) => v(i) ? i.value = p : null),
130
+ position: "left",
131
+ size: "sm",
132
+ triggerClass: e(c).mobileTrigger,
133
+ class: b(["z-60", e(c).mobileTrigger]),
134
+ headerClass: "pl-3! pr-4.5! py-3!",
135
+ bodyClass: "p-0!"
136
+ }, {
137
+ header: h(() => [
138
+ s(r.$slots, "mobile-sidebar-header", {}, () => [
139
+ s(r.$slots, "sidebar-header", {}, () => [
140
+ d[2] || (d[2] = B("Brand", -1))
141
+ ])
142
+ ])
143
+ ]),
144
+ default: h(() => [
145
+ n("div", H, [
146
+ n("div", I, [
147
+ s(r.$slots, "mobile-sidebar", {}, () => [
148
+ s(r.$slots, "sidebar")
149
+ ])
150
+ ]),
151
+ r.$slots["mobile-sidebar-footer"] || r.$slots["sidebar-footer"] ? (o(), a("div", Y, [
152
+ s(r.$slots, "mobile-sidebar-footer", {}, () => [
153
+ s(r.$slots, "sidebar-footer")
154
+ ])
155
+ ])) : t("", !0)
156
+ ])
157
+ ]),
158
+ _: 3
159
+ }, 8, ["show", "triggerClass", "class"])
160
+ ]));
161
+ }
162
+ });
163
+ export {
164
+ ee as default
165
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./AppShellLayoutDock.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,168 @@
1
+ import { defineComponent as _, inject as V, openBlock as a, createElementBlock as o, createVNode as m, Transition as z, withCtx as h, withDirectives as N, createElementVNode as t, normalizeClass as b, unref as e, renderSlot as r, createCommentVNode as i, vShow as R, isRef as g, createTextVNode as B } from "vue";
2
+ import E from "../SidePanel.vue.js";
3
+ import L from "../Navbar/NavbarTabs.vue.js";
4
+ /* empty css */
5
+ import M from "../Breadcrumb/Breadcrumb.vue.js";
6
+ import "@iconify/vue";
7
+ /* empty css */
8
+ import { APPSHELL_LAYOUT_KEY as P } from "./useAppShell.js";
9
+ const A = { class: "vlite-app-layout flex flex-row w-full h-full bg-background overflow-hidden" }, H = {
10
+ key: 0,
11
+ class: "flex items-center px-4 py-3"
12
+ }, O = { class: "flex flex-col flex-1 min-w-0 h-full overflow-hidden gap-2 max-sm:p-0 max-sm:gap-0" }, U = {
13
+ key: 0,
14
+ class: "w-full shrink-0 z-20 px-5 pt-2"
15
+ }, D = { class: "w-full shrink-0 z-20 bg-background rounded-xl max-sm:rounded-none border border-border/70 max-sm:border-0 shadow-sm" }, I = {
16
+ key: 0,
17
+ class: "shrink-0 w-full px-6"
18
+ }, Y = { class: "flex flex-col h-full" }, j = {
19
+ class: "flex-1 overflow-y-auto px-3.5 pt-4 scrollbar-thin scrollbar-stable",
20
+ style: { "will-change": "transform", contain: "layout style" }
21
+ }, K = {
22
+ key: 0,
23
+ class: "mt-auto pt-2 border-t border-border px-3 py-2"
24
+ }, se = /* @__PURE__ */ _({
25
+ __name: "AppShellLayoutHeaderShell",
26
+ setup(q) {
27
+ const y = V(P), {
28
+ props: l,
29
+ sidebarHidden: w,
30
+ isMobileMenuOpen: d,
31
+ isSidebarVisible: k,
32
+ toggleSidebar: x,
33
+ pageTitle: $,
34
+ breadcrumbData: u,
35
+ breakpointClasses: f,
36
+ nestedTabsItems: v,
37
+ activeNestedTab: c,
38
+ handleNestedTabClick: C,
39
+ mainScrollRef: S,
40
+ layoutMainRef: T
41
+ } = y;
42
+ return (s, n) => (a(), o("div", A, [
43
+ m(z, {
44
+ "enter-active-class": "transition-all duration-300 ease-in-out",
45
+ "leave-active-class": "transition-all duration-300 ease-in-out",
46
+ "enter-from-class": "opacity-0 -translate-x-2",
47
+ "enter-to-class": "opacity-100 translate-x-0",
48
+ "leave-from-class": "opacity-100 translate-x-0",
49
+ "leave-to-class": "opacity-0 -translate-x-2"
50
+ }, {
51
+ default: h(() => [
52
+ N(t("nav", {
53
+ class: b([
54
+ "shrink-0 h-full flex flex-col bg-background border-r border-border overflow-hidden z-30",
55
+ e(f).mobileTrigger === "md:hidden" ? "max-md:hidden" : "",
56
+ e(l).class
57
+ ]),
58
+ role: "navigation",
59
+ "aria-label": "Sidebar"
60
+ }, [
61
+ s.$slots["sidebar-header"] ? (a(), o("div", H, [
62
+ r(s.$slots, "sidebar-header")
63
+ ])) : i("", !0),
64
+ t("div", {
65
+ class: b(["flex-1 overflow-y-auto overflow-x-hidden scrollbar-thin scrollbar-stable", e(l).contentClass]),
66
+ style: { "will-change": "transform", contain: "layout style" }
67
+ }, [
68
+ r(s.$slots, "sidebar")
69
+ ], 2),
70
+ s.$slots["sidebar-footer"] ? (a(), o("div", {
71
+ key: 1,
72
+ class: b(["shrink-0 border-t border-border bg-background", e(l).rightClass])
73
+ }, [
74
+ r(s.$slots, "sidebar-footer")
75
+ ], 2)) : i("", !0)
76
+ ], 2), [
77
+ [R, !e(w)]
78
+ ])
79
+ ]),
80
+ _: 3
81
+ }),
82
+ t("div", O, [
83
+ s.$slots.header ? (a(), o("header", U, [
84
+ t("div", D, [
85
+ r(s.$slots, "header", {
86
+ isOpen: e(d),
87
+ toggle: () => d.value = !e(d),
88
+ sidebarVisible: e(k),
89
+ toggleSidebar: e(x),
90
+ breadcrumbItems: e(u).items.value,
91
+ pageTitle: e($)
92
+ })
93
+ ])
94
+ ])) : i("", !0),
95
+ s.$slots.main ? (a(), o("main", {
96
+ key: 1,
97
+ ref_key: "layoutMainRef",
98
+ ref: T,
99
+ class: "flex-1 overflow-hidden w-full relative flex flex-col min-h-0 bg-background"
100
+ }, [
101
+ e(l).renderNestedTabs && e(v).length > 0 ? (a(), o("div", I, [
102
+ m(L, {
103
+ modelValue: e(c),
104
+ "onUpdate:modelValue": n[0] || (n[0] = (p) => g(c) ? c.value = p : null),
105
+ onChange: e(C),
106
+ items: e(v)
107
+ }, null, 8, ["modelValue", "onChange", "items"])
108
+ ])) : i("", !0),
109
+ e(l).breadcrumb && e(l).breadcrumbPosition === "main" && e(u).items.value.length > 1 ? (a(), o("div", {
110
+ key: 1,
111
+ class: b(["shrink-0 w-full border-b border-border/50 px-6 py-2", e(l).breadcrumbClass])
112
+ }, [
113
+ m(e(M), {
114
+ items: e(u).items.value,
115
+ variant: e(l).breadcrumbVariant,
116
+ separator: e(l).breadcrumbSeparator,
117
+ size: e(l).breadcrumbSize
118
+ }, null, 8, ["items", "variant", "separator", "size"])
119
+ ], 2)) : i("", !0),
120
+ t("div", {
121
+ ref_key: "mainScrollRef",
122
+ ref: S,
123
+ style: { "will-change": "transform", contain: "layout style" },
124
+ class: "flex-1 overflow-y-auto w-full relative h-full scrollbar-thin scrollbar-stable px-6 pb-4 mt-4"
125
+ }, [
126
+ r(s.$slots, "main")
127
+ ], 512)
128
+ ], 512)) : i("", !0)
129
+ ]),
130
+ m(E, {
131
+ show: e(d),
132
+ "onUpdate:show": n[1] || (n[1] = (p) => g(d) ? d.value = p : null),
133
+ position: "left",
134
+ size: "sm",
135
+ triggerClass: e(f).mobileTrigger,
136
+ class: b(["z-60", e(f).mobileTrigger]),
137
+ headerClass: "pl-3! pr-4.5! py-3!",
138
+ bodyClass: "p-0!"
139
+ }, {
140
+ header: h(() => [
141
+ r(s.$slots, "mobile-sidebar-header", {}, () => [
142
+ r(s.$slots, "sidebar-header", {}, () => [
143
+ n[2] || (n[2] = B("Brand", -1))
144
+ ])
145
+ ])
146
+ ]),
147
+ default: h(() => [
148
+ t("div", Y, [
149
+ t("div", j, [
150
+ r(s.$slots, "mobile-sidebar", {}, () => [
151
+ r(s.$slots, "sidebar")
152
+ ])
153
+ ]),
154
+ s.$slots["mobile-sidebar-footer"] || s.$slots["sidebar-footer"] ? (a(), o("div", K, [
155
+ r(s.$slots, "mobile-sidebar-footer", {}, () => [
156
+ r(s.$slots, "sidebar-footer")
157
+ ])
158
+ ])) : i("", !0)
159
+ ])
160
+ ]),
161
+ _: 3
162
+ }, 8, ["show", "triggerClass", "class"])
163
+ ]));
164
+ }
165
+ });
166
+ export {
167
+ se as default
168
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./AppShellLayoutHeaderShell.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,166 @@
1
+ import { defineComponent as V, inject as _, openBlock as a, createElementBlock as o, createVNode as f, Transition as z, withCtx as p, withDirectives as N, createElementVNode as d, normalizeClass as b, unref as e, renderSlot as s, createCommentVNode as t, vShow as R, isRef as y, createTextVNode as B } from "vue";
2
+ import E from "../SidePanel.vue.js";
3
+ import L from "../Navbar/NavbarTabs.vue.js";
4
+ /* empty css */
5
+ import M from "../Breadcrumb/Breadcrumb.vue.js";
6
+ import "@iconify/vue";
7
+ /* empty css */
8
+ import { APPSHELL_LAYOUT_KEY as P } from "./useAppShell.js";
9
+ const A = { class: "vlite-app-layout flex flex-row w-full h-full bg-body overflow-hidden" }, O = {
10
+ key: 0,
11
+ class: "flex items-center px-4 py-3"
12
+ }, U = { class: "flex flex-col flex-1 min-w-0 h-full overflow-hidden" }, D = {
13
+ key: 0,
14
+ class: "w-full shrink-0 z-20 bg-background"
15
+ }, H = {
16
+ key: 0,
17
+ class: "shrink-0 w-full"
18
+ }, I = { class: "flex flex-col h-full" }, Y = {
19
+ class: "flex-1 overflow-y-auto px-3.5 pt-4 scrollbar-thin scrollbar-stable",
20
+ style: { "will-change": "transform", contain: "layout style" }
21
+ }, j = {
22
+ key: 0,
23
+ class: "mt-auto pt-2 border-t border-border px-3 py-2"
24
+ }, ee = /* @__PURE__ */ V({
25
+ __name: "AppShellLayoutSidebarFirst",
26
+ setup(F) {
27
+ const g = _(P), {
28
+ props: r,
29
+ sidebarHidden: w,
30
+ isMobileMenuOpen: i,
31
+ isSidebarVisible: k,
32
+ toggleSidebar: $,
33
+ pageTitle: C,
34
+ breadcrumbData: m,
35
+ breakpointClasses: u,
36
+ nestedTabsItems: v,
37
+ activeNestedTab: c,
38
+ handleNestedTabClick: x,
39
+ mainScrollRef: S,
40
+ layoutMainRef: T
41
+ } = g;
42
+ return (l, n) => (a(), o("div", A, [
43
+ f(z, {
44
+ "enter-active-class": "transition-all duration-300 ease-in-out",
45
+ "leave-active-class": "transition-all duration-300 ease-in-out",
46
+ "enter-from-class": "opacity-0 -translate-x-2",
47
+ "enter-to-class": "opacity-100 translate-x-0",
48
+ "leave-from-class": "opacity-100 translate-x-0",
49
+ "leave-to-class": "opacity-0 -translate-x-2"
50
+ }, {
51
+ default: p(() => [
52
+ N(d("nav", {
53
+ class: b([
54
+ "shrink-0 h-full flex flex-col bg-background border-r border-border overflow-hidden z-30",
55
+ e(u).mobileTrigger === "md:hidden" ? "max-md:hidden" : "",
56
+ e(r).class
57
+ ]),
58
+ role: "navigation",
59
+ "aria-label": "Sidebar"
60
+ }, [
61
+ l.$slots["sidebar-header"] ? (a(), o("div", O, [
62
+ s(l.$slots, "sidebar-header")
63
+ ])) : t("", !0),
64
+ d("div", {
65
+ class: b(["flex-1 overflow-y-auto overflow-x-hidden scrollbar-thin scrollbar-stable", e(r).contentClass]),
66
+ style: { "will-change": "transform", contain: "layout style" }
67
+ }, [
68
+ s(l.$slots, "sidebar")
69
+ ], 2),
70
+ l.$slots["sidebar-footer"] ? (a(), o("div", {
71
+ key: 1,
72
+ class: b(["shrink-0 border-t border-border bg-background", e(r).rightClass])
73
+ }, [
74
+ s(l.$slots, "sidebar-footer")
75
+ ], 2)) : t("", !0)
76
+ ], 2), [
77
+ [R, !e(w)]
78
+ ])
79
+ ]),
80
+ _: 3
81
+ }),
82
+ d("div", U, [
83
+ l.$slots.header ? (a(), o("header", D, [
84
+ s(l.$slots, "header", {
85
+ isOpen: e(i),
86
+ toggle: () => i.value = !e(i),
87
+ sidebarVisible: e(k),
88
+ toggleSidebar: e($),
89
+ breadcrumbItems: e(m).items.value,
90
+ pageTitle: e(C)
91
+ })
92
+ ])) : t("", !0),
93
+ l.$slots.main ? (a(), o("main", {
94
+ key: 1,
95
+ ref_key: "layoutMainRef",
96
+ ref: T,
97
+ class: "flex-1 overflow-y-auto w-full relative h-full flex flex-col min-h-0 scrollbar-thin scrollbar-stable"
98
+ }, [
99
+ e(r).renderNestedTabs && e(v).length > 0 ? (a(), o("div", H, [
100
+ f(L, {
101
+ modelValue: e(c),
102
+ "onUpdate:modelValue": n[0] || (n[0] = (h) => y(c) ? c.value = h : null),
103
+ onChange: e(x),
104
+ items: e(v)
105
+ }, null, 8, ["modelValue", "onChange", "items"])
106
+ ])) : t("", !0),
107
+ e(r).breadcrumb && e(r).breadcrumbPosition === "main" && e(m).items.value.length > 1 ? (a(), o("div", {
108
+ key: 1,
109
+ class: b(["shrink-0 w-full border-b border-border px-6 py-2", e(r).breadcrumbClass])
110
+ }, [
111
+ f(e(M), {
112
+ items: e(m).items.value,
113
+ variant: e(r).breadcrumbVariant,
114
+ separator: e(r).breadcrumbSeparator,
115
+ size: e(r).breadcrumbSize
116
+ }, null, 8, ["items", "variant", "separator", "size"])
117
+ ], 2)) : t("", !0),
118
+ d("div", {
119
+ ref_key: "mainScrollRef",
120
+ ref: S,
121
+ style: { "will-change": "transform", contain: "layout style" },
122
+ class: "flex-1 overflow-y-auto w-full relative h-full scrollbar-thin scrollbar-stable"
123
+ }, [
124
+ s(l.$slots, "main")
125
+ ], 512)
126
+ ], 512)) : t("", !0)
127
+ ]),
128
+ f(E, {
129
+ show: e(i),
130
+ "onUpdate:show": n[1] || (n[1] = (h) => y(i) ? i.value = h : null),
131
+ position: "left",
132
+ size: "sm",
133
+ triggerClass: e(u).mobileTrigger,
134
+ class: b(["z-60", e(u).mobileTrigger]),
135
+ headerClass: "pl-3! pr-4.5! py-3!",
136
+ bodyClass: "p-0!"
137
+ }, {
138
+ header: p(() => [
139
+ s(l.$slots, "mobile-sidebar-header", {}, () => [
140
+ s(l.$slots, "sidebar-header", {}, () => [
141
+ n[2] || (n[2] = B("Brand", -1))
142
+ ])
143
+ ])
144
+ ]),
145
+ default: p(() => [
146
+ d("div", I, [
147
+ d("div", Y, [
148
+ s(l.$slots, "mobile-sidebar", {}, () => [
149
+ s(l.$slots, "sidebar")
150
+ ])
151
+ ]),
152
+ l.$slots["mobile-sidebar-footer"] || l.$slots["sidebar-footer"] ? (a(), o("div", j, [
153
+ s(l.$slots, "mobile-sidebar-footer", {}, () => [
154
+ s(l.$slots, "sidebar-footer")
155
+ ])
156
+ ])) : t("", !0)
157
+ ])
158
+ ]),
159
+ _: 3
160
+ }, 8, ["show", "triggerClass", "class"])
161
+ ]));
162
+ }
163
+ });
164
+ export {
165
+ ee as default
166
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./AppShellLayoutSidebarFirst.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,134 @@
1
+ import { computed as t, shallowRef as $, ref as i, provide as C, onMounted as z, onUnmounted as R, watch as S, nextTick as A } from "vue";
2
+ import { useRoute as I } from "vue-router";
3
+ import { useLocalStorage as P, useBreakpoints as Y, breakpointsTailwind as D } from "@vueuse/core";
4
+ import { useBreadcrumb as U } from "../../composables/useBreadcrumb.js";
5
+ const _ = /* @__PURE__ */ Symbol("appshell-layout-ctx");
6
+ function G(e, v) {
7
+ const p = e.breadcrumb ? U({
8
+ homeIcon: e.breadcrumbHomeIcon,
9
+ labelMap: e.breadcrumbLabels || {}
10
+ }) : { items: t(() => []) }, c = $([]), m = i("");
11
+ C("navbar-context", {
12
+ compact: t(() => e.compact),
13
+ renderNestedTabs: t(() => e.renderNestedTabs),
14
+ setNestedTabs: (l, n) => {
15
+ c.value = l, m.value = n;
16
+ }
17
+ });
18
+ const u = i(!1), o = i(!1), a = i(null), f = i(null), d = P("vlite-appshell-sidebar-visible", !0), L = t(() => e.sidebarToggle && v), E = () => {
19
+ d.value = !d.value;
20
+ }, N = t(() => L.value && !d.value), j = (l) => {
21
+ c.value.find((s) => s.value === l) && (typeof l == "string" && l.startsWith("/") ? import("vue-router").then(({ useRouter: s }) => {
22
+ s().push(l).catch(() => {
23
+ });
24
+ }) : m.value = l);
25
+ }, w = () => {
26
+ o.value = window.scrollY > 10;
27
+ };
28
+ z(() => {
29
+ window.addEventListener("scroll", w, { passive: !0 });
30
+ }), R(() => {
31
+ window.removeEventListener("scroll", w);
32
+ });
33
+ const k = t(() => {
34
+ const l = e.mobileBreakpoint || "md", n = {
35
+ sm: "sm:hidden",
36
+ md: "md:hidden",
37
+ lg: "lg:hidden",
38
+ xl: "xl:hidden"
39
+ }, s = {
40
+ sm: "hidden sm:flex",
41
+ md: "hidden md:flex",
42
+ lg: "hidden lg:flex",
43
+ xl: "hidden xl:flex"
44
+ }, r = {
45
+ sm: `flex flex-col max-sm:w-full ${e.compact ? "w-20" : ""} h-auto sm:h-full sm:max-h-screen shrink-0`,
46
+ md: `flex flex-col max-md:w-full ${e.compact ? "w-20" : ""} h-auto md:h-full md:max-h-screen shrink-0`,
47
+ lg: `flex flex-col max-lg:w-full ${e.compact ? "w-20" : ""} h-auto lg:h-full lg:max-h-screen shrink-0`,
48
+ xl: `flex flex-col max-xl:w-full ${e.compact ? "w-20" : ""} h-auto xl:h-full xl:max-h-screen shrink-0`
49
+ }, h = {
50
+ sm: "sm:hidden flex items-center justify-between px-4 py-3 shrink-0 bg-background",
51
+ md: "md:hidden flex items-center justify-between px-4 py-3 shrink-0 bg-background",
52
+ lg: "lg:hidden flex items-center justify-between px-4 py-3 shrink-0 bg-background",
53
+ xl: "xl:hidden flex items-center justify-between px-4 py-3 shrink-0 bg-background"
54
+ }, T = {
55
+ sm: "hidden sm:flex flex-col h-full w-full overflow-hidden",
56
+ md: "hidden md:flex flex-col h-full w-full overflow-hidden",
57
+ lg: "hidden lg:flex flex-col h-full w-full overflow-hidden",
58
+ xl: "hidden xl:flex flex-col h-full w-full overflow-hidden"
59
+ }, x = {
60
+ sm: "hidden sm:flex",
61
+ md: "hidden md:flex",
62
+ lg: "hidden lg:flex",
63
+ xl: "hidden xl:flex"
64
+ };
65
+ return {
66
+ mobileTrigger: n[l],
67
+ desktopContent: s[l],
68
+ sidebarLayout: r[l],
69
+ mobileHeader: h[l],
70
+ desktopSidebar: T[l],
71
+ desktopOnly: x[l]
72
+ };
73
+ }), B = t(() => {
74
+ const l = e.variant === "sidebar", n = {
75
+ fixed: "relative z-40",
76
+ sticky: "relative z-40",
77
+ relative: "relative z-10",
78
+ absolute: "relative z-40"
79
+ }, s = "bg-body", r = [
80
+ e.glass && (o.value || l || e.floating) ? "bg-background/95" : "bg-background",
81
+ e.border && !e.floating ? l ? "border-r border-border" : "border-b border-border" : "",
82
+ e.floating ? "m-4 rounded shadow-lg border border-border/50" : "",
83
+ o.value && !e.floating && !l && e.position === "sticky" ? "shadow-sm" : ""
84
+ ], h = e.mobileBreakpoint || "md", x = l ? {
85
+ sm: "max-sm:hidden",
86
+ md: "max-md:hidden",
87
+ lg: "max-lg:hidden",
88
+ xl: "max-xl:hidden"
89
+ }[h] : "";
90
+ let g = "";
91
+ return l ? g = k.value.sidebarLayout : g = `flex items-center gap-4 w-full px-4 sm:px-6 lg:px-8 ${e.height}`, [s, n[e.position], ...r, g, x, e.class].filter(Boolean).join(" ");
92
+ }), H = t(() => {
93
+ if (e.variant === "sidebar")
94
+ return "flex-1 py-4 overflow-y-auto scrollbar-thin scrollbar-stable";
95
+ if (e.centerPosition === "left")
96
+ return "flex items-center justify-start";
97
+ }), b = I();
98
+ S(
99
+ () => b.path,
100
+ () => {
101
+ u.value = !1, A(() => {
102
+ a.value && (a.value.scrollTop = 0, a.value.firstElementChild && (a.value.firstElementChild.scrollTop = 0)), f.value && (f.value.scrollTop = 0);
103
+ });
104
+ }
105
+ );
106
+ const M = Y(D).greater(e.mobileBreakpoint);
107
+ S(M, (l) => {
108
+ l && (u.value = !1);
109
+ });
110
+ const O = t(() => b.meta?.title || b.name || ""), y = {
111
+ props: e,
112
+ isLayoutMode: v,
113
+ isMobileMenuOpen: u,
114
+ isSidebarVisible: d,
115
+ sidebarHidden: N,
116
+ pageTitle: O,
117
+ isScrolled: o,
118
+ mainScrollRef: a,
119
+ layoutMainRef: f,
120
+ toggleSidebar: E,
121
+ handleNestedTabClick: j,
122
+ breakpointClasses: k,
123
+ containerClasses: B,
124
+ centerClasses: H,
125
+ breadcrumbData: p,
126
+ nestedTabsItems: c,
127
+ activeNestedTab: m
128
+ };
129
+ return C(_, y), y;
130
+ }
131
+ export {
132
+ _ as APPSHELL_LAYOUT_KEY,
133
+ G as useAppShell
134
+ };
@@ -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.vue2.js";
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",
@@ -1,5 +1,5 @@
1
1
  import t from "./CommandPaletteItem.vue3.js";
2
- /* empty css */
2
+ /* empty css */
3
3
  import o from "../../_virtual/_plugin-vue_export-helper.js";
4
4
  const r = /* @__PURE__ */ o(t, [["__scopeId", "data-v-66b1ae06"]]);
5
5
  export {