vlite3 1.4.39 → 1.4.41
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/AppShell/AppShellLayoutClassic.vue.js +27 -28
- package/components/AppShell/AppShellLayoutDashboard.vue.js +48 -48
- package/components/AppShell/AppShellLayoutDock.vue.js +51 -51
- package/components/AppShell/AppShellLayoutHeaderShell.vue.js +69 -69
- package/components/AppShell/AppShellLayoutSidebarFirst.vue.d.ts +2 -2
- package/components/AppShell/AppShellLayoutSidebarFirst.vue.js +78 -78
- package/components/AppShell/AppShellLayoutStorefront.vue.js +14 -15
- package/components/AppShell/useAppShell.d.ts +4 -0
- package/components/AppShell/useAppShell.js +45 -40
- package/components/AsyncSelect/createAsyncSelect.js +10 -10
- package/components/AttachmentsList/AttachmentsList.vue.d.ts +50 -2
- package/components/AttachmentsList/AttachmentsList.vue.js +289 -272
- package/components/AttachmentsList/types.d.ts +37 -0
- package/components/BackButton.vue.js +2 -2
- package/components/Button.vue.d.ts +1 -0
- package/components/Button.vue.js +5 -241
- package/components/Button.vue2.js +245 -2
- package/components/ButtonGroup.vue.js +2 -2
- package/components/ButtonGroup.vue2.js +4 -1
- package/components/Calendar/Calendar.vue2.js +16 -16
- package/components/Cart/CartCouponInput.vue.js +24 -24
- package/components/Cart/CartEmptyState.vue.js +4 -4
- package/components/Cart/CartLineItem.vue.js +33 -33
- package/components/Cart/CartVariant1.vue.js +3 -3
- package/components/Cart/CartVariant2.vue.js +5 -5
- package/components/Cart/CartVariant3.vue.js +25 -25
- package/components/Cart/CartVariant4.vue.js +9 -9
- package/components/CategoryManager/CategoryManager.vue2.js +18 -18
- package/components/CategoryManager/CategoryNode.vue.js +4 -4
- package/components/CategoryMenu/CategoryMenu.vue.js +3 -2
- package/components/CategoryMenu/CategoryMenuVariant1.vue2.js +3 -2
- package/components/Chat/ChatInterface.vue.js +23 -23
- package/components/Clipboard.vue.d.ts +7 -1
- package/components/Clipboard.vue.js +19 -17
- package/components/ColorPicker/{ColorIro.vue.js → ColorIro.vue2.js} +22 -22
- package/components/ColorPicker/ColorIro.vue3.js +2 -2
- package/components/ColorPicker/ColorPicker.vue.js +8 -8
- package/components/Comment/CommentEditor.vue.js +14 -14
- package/components/Comment/CommentItem.vue2.js +6 -6
- package/components/Comment/CommentThread.vue.js +4 -4
- package/components/DataList/DataList.vue.js +7 -7
- package/components/DataTable/DataTable.vue.d.ts +9 -0
- package/components/DataTable/DataTable.vue.js +380 -265
- package/components/DataTable/DataTableRow.vue.d.ts +23 -2
- package/components/DataTable/DataTableRow.vue.js +5 -198
- package/components/DataTable/DataTableRow.vue2.js +360 -2
- package/components/DataTable/dataTableHeaders.d.ts +18 -0
- package/components/DataTable/dataTableHeaders.js +9 -0
- package/components/DataTable/types.d.ts +11 -0
- package/components/DatePicker.vue.js +8 -9
- package/components/DateRangePicker.vue2.js +34 -34
- package/components/Dropdown/Dropdown.vue.d.ts +7 -2
- package/components/Dropdown/Dropdown.vue.js +146 -139
- package/components/Dropdown/DropdownTrigger.vue.js +6 -6
- package/components/ExportData/ExportData.vue.js +15 -15
- package/components/FilePicker/FilePickerDropzone.vue.js +16 -16
- package/components/FilePicker/FilePickerInput.vue.js +3 -2
- package/components/FilePicker/FilePreview.vue.js +3 -3
- package/components/FileTree/FileTree.vue.js +4 -4
- package/components/FileTree/FileTree.vue2.js +9 -9
- package/components/FileTree/FileTreeNode.vue.js +76 -72
- package/components/Footer/Variant1.vue.js +48 -48
- package/components/Footer/Variant2.vue.js +42 -42
- package/components/Form/AccordionView.vue.d.ts +1 -1
- package/components/Form/AccordionView.vue2.js +2 -2
- package/components/Form/AccordionView.vue3.js +61 -57
- package/components/Form/Form.vue2.js +41 -41
- package/components/Form/TableRow.vue.d.ts +7 -0
- package/components/Form/TableRow.vue.js +187 -41
- package/components/Form/TableView.vue.d.ts +11 -1
- package/components/Form/TableView.vue.js +71 -49
- package/components/Form/composables/useForm.js +146 -142
- package/components/Form/index.vue.d.ts +5 -1
- package/components/Form/index.vue.js +2 -2
- package/components/Form/index.vue2.js +44 -37
- package/components/Form/rowHelpers.d.ts +20 -0
- package/components/Form/rowHelpers.js +76 -28
- package/components/Form/types.d.ts +11 -0
- package/components/GoogleLogin.vue.js +4 -4
- package/components/IconPicker.vue.js +9 -9
- package/components/ImportData/ImportData.vue.js +11 -11
- package/components/ImportData/ImportStep1.vue.js +10 -10
- package/components/ImportData/ImportStep2.vue.js +15 -14
- package/components/Input.vue.js +133 -129
- package/components/Kanban/KanbanBoard.vue.js +1 -1
- package/components/Kanban/KanbanBoard.vue2.js +9 -9
- package/components/MultiSelect/MultiSelect.vue.js +3 -2
- package/components/Navbar/Navbar.vue.js +17 -17
- package/components/Navbar/NavbarGroup.vue.js +8 -7
- package/components/Navbar/NavbarItem.vue.js +40 -39
- package/components/Navbar/NavbarTabs.vue.js +6 -184
- package/components/Navbar/NavbarTabs.vue2.js +204 -0
- package/components/Navbar/useNavbar.js +3 -3
- package/components/NavbarCommandPalette.vue.js +1 -1
- package/components/NumberInput.vue.js +2 -2
- package/components/NumberInput.vue2.js +81 -77
- package/components/OTPInput/OTPInput.vue.js +24 -23
- package/components/Pagination/Pagination.vue.d.ts +1 -1
- package/components/Pagination/Pagination.vue.js +5 -274
- package/components/Pagination/Pagination.vue2.js +283 -2
- package/components/PermissionMatrix/PermissionTopBar.vue.js +19 -18
- package/components/PricingPlan/PricingPlanItem.vue.js +7 -7
- package/components/Screen/Screen.vue.d.ts +1 -1
- package/components/Screen/Screen.vue.js +21 -21
- package/components/Screen/ScreenFilter.vue.js +5 -5
- package/components/Screen/components/ScreenAddAction.vue.js +3 -3
- package/components/Screen/components/ScreenEmptyState.vue.js +10 -10
- package/components/Screen/components/ScreenExportModal.vue.js +12 -12
- package/components/Screen/components/ScreenOptionsDropdown.vue.js +5 -5
- package/components/Screen/components/ScreenToolbar.vue.js +15 -15
- package/components/SidePanel.vue.js +2 -2
- package/components/SidePanel.vue2.js +6 -6
- package/components/SidebarMenu/SidebarMenu.vue.js +77 -72
- package/components/SidebarMenu/SidebarMenuItem.vue.js +172 -168
- package/components/Slider.vue.js +123 -108
- package/components/Tabes/Tabes.vue.d.ts +8 -3
- package/components/Tabes/Tabes.vue.js +2 -2
- package/components/Tabes/Tabes.vue2.js +209 -200
- package/components/Tabes/tabes.utils.d.ts +23 -0
- package/components/Tabes/tabes.utils.js +39 -16
- package/components/Textarea.vue.d.ts +2 -0
- package/components/Textarea.vue.js +19 -16
- package/components/ThemeToggle.vue.js +8 -8
- package/components/ToastNotification.vue2.js +10 -10
- package/components/TreeConnectors/TreeConnectors.vue.d.ts +1 -1
- package/components/TreeConnectors/TreeConnectors.vue.js +13 -8
- package/components/TreeConnectors/geometry.js +77 -69
- package/components/Workbook/WorkbookAddButton.vue.js +2 -2
- package/composables/useRtl.d.ts +14 -0
- package/composables/useRtl.js +33 -0
- package/index.js +470 -471
- package/package.json +1 -1
- package/style.css +86 -1
- package/types/button.d.ts +8 -0
- package/components/Navbar/NavbarTabs.vue3.js +0 -5
|
@@ -9,7 +9,7 @@ const z = { class: "relative" }, C = ["aria-disabled", "aria-label", "data-testi
|
|
|
9
9
|
class: "flex min-w-0 flex-1 items-center gap-2 text-muted-foreground"
|
|
10
10
|
}, j = { class: "truncate min-w-0 flex-1" }, $ = {
|
|
11
11
|
key: 0,
|
|
12
|
-
class: "absolute
|
|
12
|
+
class: "absolute end-3 top-1/2 -translate-y-1/2 flex items-center justify-center gap-2 bg-background"
|
|
13
13
|
}, K = /* @__PURE__ */ w({
|
|
14
14
|
__name: "FilePickerInput",
|
|
15
15
|
props: {
|
|
@@ -50,7 +50,8 @@ const z = { class: "relative" }, C = ["aria-disabled", "aria-label", "data-testi
|
|
|
50
50
|
"border border-input focus-visible:border-primary",
|
|
51
51
|
t[n.size],
|
|
52
52
|
l[n.rounded],
|
|
53
|
-
|
|
53
|
+
// Logical padding / align so clear affordance + placeholder mirror under RTL
|
|
54
|
+
"pe-10 text-start",
|
|
54
55
|
n.disabled ? "cursor-not-allowed opacity-50" : ""
|
|
55
56
|
].join(" ");
|
|
56
57
|
}), f = o(() => ({
|
|
@@ -8,7 +8,7 @@ const N = { class: "shrink-0 mr-3" }, B = { class: "p-2 bg-primary-light rounded
|
|
|
8
8
|
}, P = { class: "grid relative w-fit max-w-full items-center -ml-1" }, S = { class: "invisible whitespace-pre col-start-1 row-start-1 text-sm font-medium px-1 py-0.5 max-w-full overflow-hidden text-ellipsis" }, z = ["value", "placeholder"], L = ["title"], I = {
|
|
9
9
|
key: 1,
|
|
10
10
|
class: "text-sm font-medium text-foreground truncate w-full min-w-0"
|
|
11
|
-
},
|
|
11
|
+
}, V = { class: "text-xs text-muted-foreground -mt-1" }, $ = { class: "shrink-0 ml-3 flex gap-2 items-center" }, q = /* @__PURE__ */ b({
|
|
12
12
|
__name: "FilePreview",
|
|
13
13
|
props: {
|
|
14
14
|
file: {},
|
|
@@ -70,9 +70,9 @@ const N = { class: "shrink-0 mr-3" }, B = { class: "p-2 bg-primary-light rounded
|
|
|
70
70
|
})
|
|
71
71
|
], 8, L)
|
|
72
72
|
])) : (n(), r("p", I, s(e.file.fileName), 1)),
|
|
73
|
-
t("p",
|
|
73
|
+
t("p", V, s(w(F)(e.file.fileSize)), 1)
|
|
74
74
|
]),
|
|
75
|
-
t("div",
|
|
75
|
+
t("div", $, [
|
|
76
76
|
e.loading || e.isProcessing ? (n(), g(d, {
|
|
77
77
|
key: 0,
|
|
78
78
|
icon: "lucide:loader-2",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from "./FileTree.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
4
|
-
const
|
|
3
|
+
import o from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const p = /* @__PURE__ */ o(e, [["__scopeId", "data-v-06de722e"]]);
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
p as default
|
|
7
7
|
};
|
|
@@ -24,12 +24,12 @@ const Z = {
|
|
|
24
24
|
},
|
|
25
25
|
emits: ["update:modelValue", "select", "expand", "node-click"],
|
|
26
26
|
setup(o, { emit: K }) {
|
|
27
|
-
const s = o, p = K, h = x(new Set(s.defaultExpandedKeys)), f = x(/* @__PURE__ */ new Set()), y = x(/* @__PURE__ */ new Map()),
|
|
27
|
+
const s = o, p = K, h = x(new Set(s.defaultExpandedKeys)), f = x(/* @__PURE__ */ new Set()), y = x(/* @__PURE__ */ new Map()), L = x(/* @__PURE__ */ new Map()), P = (t) => !!(t.isFolder || t.children && t.children.length > 0), E = (t) => {
|
|
28
28
|
const l = /* @__PURE__ */ new Map(), e = /* @__PURE__ */ new Map(), a = (n, d) => {
|
|
29
29
|
for (const i of n)
|
|
30
30
|
l.set(i.id, i), d && e.set(i.id, d), i.children && a(i.children, i.id);
|
|
31
31
|
};
|
|
32
|
-
a(t), y.value = l,
|
|
32
|
+
a(t), y.value = l, L.value = e;
|
|
33
33
|
};
|
|
34
34
|
F(
|
|
35
35
|
() => s.data,
|
|
@@ -93,11 +93,11 @@ const Z = {
|
|
|
93
93
|
i(t.id, d), n.forEach((c) => i(c, d));
|
|
94
94
|
let r = l;
|
|
95
95
|
for (; ; ) {
|
|
96
|
-
const c =
|
|
96
|
+
const c = L.value.get(r.id);
|
|
97
97
|
if (!c) break;
|
|
98
98
|
const u = y.value.get(c);
|
|
99
99
|
if (!u?.children) break;
|
|
100
|
-
u.children.every((
|
|
100
|
+
u.children.every((S) => e.has(S.id)) ? e.add(u.id) : e.delete(u.id), r = u;
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
p("update:modelValue", Array.from(e)), p("select", l, !a);
|
|
@@ -113,16 +113,16 @@ const Z = {
|
|
|
113
113
|
const t = [], l = (e, a, n) => {
|
|
114
114
|
const d = e.length - 1;
|
|
115
115
|
for (let i = 0; i < e.length; i++) {
|
|
116
|
-
const r = e[i], c = i === d, u = P(r),
|
|
116
|
+
const r = e[i], c = i === d, u = P(r), S = h.value.has(r.id), $ = f.value.has(r.id);
|
|
117
117
|
if (t.push({
|
|
118
118
|
node: r,
|
|
119
119
|
depth: a,
|
|
120
120
|
isLast: c,
|
|
121
121
|
ancestorLastFlags: n,
|
|
122
122
|
isFolder: u
|
|
123
|
-
}),
|
|
124
|
-
const
|
|
125
|
-
|
|
123
|
+
}), S && u && !$) {
|
|
124
|
+
const b = r.children;
|
|
125
|
+
b && b.length > 0 ? l(b, a + 1, D(n, c)) : t.push({
|
|
126
126
|
node: r,
|
|
127
127
|
depth: a + 1,
|
|
128
128
|
isLast: !0,
|
|
@@ -168,7 +168,7 @@ const Z = {
|
|
|
168
168
|
e.showEmptyPlaceholder ? N([e.depth, e.node.id], () => (m(), v("div", {
|
|
169
169
|
key: 0,
|
|
170
170
|
class: "py-0.5 text-xs text-muted-foreground italic",
|
|
171
|
-
style: G({
|
|
171
|
+
style: G({ paddingInlineStart: e.depth * 20 + 26 + "px" })
|
|
172
172
|
}, null, 4)), l, 0) : N([
|
|
173
173
|
e.node,
|
|
174
174
|
w.value.has(e.node.id),
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { EMPTY_ANCESTOR_LAST_FLAGS as
|
|
6
|
-
import { $t as
|
|
7
|
-
|
|
1
|
+
import { defineComponent as D, computed as d, openBlock as i, createElementBlock as a, createElementVNode as c, normalizeClass as g, normalizeStyle as b, createCommentVNode as f, createVNode as v, unref as R, withModifiers as y, createBlock as m, Fragment as L, renderList as S, toDisplayString as k, renderSlot as A } from "vue";
|
|
2
|
+
import r from "../Icon.vue.js";
|
|
3
|
+
import O from "../CheckBox.vue.js";
|
|
4
|
+
import Q from "../TreeConnectors/TreeConnectors.vue.js";
|
|
5
|
+
import { EMPTY_ANCESTOR_LAST_FLAGS as V } from "../TreeConnectors/geometry.js";
|
|
6
|
+
import { $t as j } from "../../utils/i18n.js";
|
|
7
|
+
import { useRtl as q } from "../../composables/useRtl.js";
|
|
8
|
+
const G = { class: "flex flex-col select-none" }, U = ["title"], Y = ["aria-expanded"], H = {
|
|
8
9
|
key: 1,
|
|
9
|
-
class: "relative z-
|
|
10
|
-
},
|
|
10
|
+
class: "relative z-20 w-6 me-1 shrink-0"
|
|
11
|
+
}, J = { class: "relative z-20 me-2 text-muted-foreground shrink-0" }, K = { class: "relative z-20 flex-1 truncate text-sm font-medium min-w-0" }, W = { class: "me-2 text-gray-400 select-none shrink-0" }, X = { class: "truncate" }, x = 20, ie = /* @__PURE__ */ D({
|
|
11
12
|
name: "FileTreeNode",
|
|
12
13
|
__name: "FileTreeNode",
|
|
13
14
|
props: {
|
|
@@ -24,24 +25,24 @@ const R = { class: "flex flex-col select-none" }, j = ["title"], q = {
|
|
|
24
25
|
variant: { default: "default" },
|
|
25
26
|
maxLabelLength: { default: 35 },
|
|
26
27
|
isLast: { type: Boolean, default: !0 },
|
|
27
|
-
ancestorLastFlags: { default: () =>
|
|
28
|
+
ancestorLastFlags: { default: () => V }
|
|
28
29
|
},
|
|
29
30
|
emits: ["toggle-expand", "toggle-select", "click-node"],
|
|
30
|
-
setup(e, { emit:
|
|
31
|
-
const s = e,
|
|
31
|
+
setup(e, { emit: C }) {
|
|
32
|
+
const E = q(), s = e, h = C, u = d(
|
|
32
33
|
() => !!(s.node.isFolder || s.node.children && s.node.children.length > 0)
|
|
33
|
-
),
|
|
34
|
-
() => s.node.labelI18n ?
|
|
35
|
-
),
|
|
36
|
-
const t =
|
|
34
|
+
), I = d(() => `${s.depth * x}px`), p = d(
|
|
35
|
+
() => s.node.labelI18n ? j(s.node.labelI18n) : s.node.label
|
|
36
|
+
), M = d(() => {
|
|
37
|
+
const t = p.value, l = s.maxLabelLength;
|
|
37
38
|
if (t.length <= l) return t;
|
|
38
39
|
const n = t.lastIndexOf(".");
|
|
39
40
|
if (n === -1 || t.length - n > 10)
|
|
40
41
|
return t.substring(0, l) + "...";
|
|
41
|
-
const
|
|
42
|
-
return
|
|
43
|
-
}),
|
|
44
|
-
const t =
|
|
42
|
+
const o = t.substring(n), $ = t.substring(0, n), P = Math.max(0, l - o.length - 3);
|
|
43
|
+
return $.substring(0, P) + "..." + o;
|
|
44
|
+
}), z = d(() => {
|
|
45
|
+
const t = M.value;
|
|
45
46
|
if (!s.highlightSearch || !s.searchQuery)
|
|
46
47
|
return [{ text: t, highlight: !1 }];
|
|
47
48
|
const l = s.searchQuery.toLowerCase(), n = t.toLowerCase().indexOf(l);
|
|
@@ -53,69 +54,72 @@ const R = { class: "flex flex-col select-none" }, j = ["title"], q = {
|
|
|
53
54
|
},
|
|
54
55
|
{ text: t.slice(n + l.length), highlight: !1 }
|
|
55
56
|
];
|
|
56
|
-
}),
|
|
57
|
+
}), B = d(() => {
|
|
57
58
|
const t = s.node.searchMatch;
|
|
58
59
|
if (!t) return [];
|
|
59
|
-
const l = t.line_content, n = t.match_start,
|
|
60
|
+
const l = t.line_content, n = t.match_start, o = t.match_length;
|
|
60
61
|
return n < 0 || n >= l.length ? [{ text: l, highlight: !1 }] : [
|
|
61
62
|
{ text: l.substring(0, n), highlight: !1 },
|
|
62
|
-
{ text: l.substring(n, n +
|
|
63
|
-
{ text: l.substring(n +
|
|
63
|
+
{ text: l.substring(n, n + o), highlight: !0 },
|
|
64
|
+
{ text: l.substring(n + o), highlight: !1 }
|
|
64
65
|
];
|
|
65
|
-
}),
|
|
66
|
-
t
|
|
67
|
-
},
|
|
68
|
-
|
|
66
|
+
}), w = (t) => {
|
|
67
|
+
t?.stopPropagation(), t?.preventDefault(), h("toggle-expand", s.node);
|
|
68
|
+
}, F = d(
|
|
69
|
+
() => E.value ? "lucide:chevron-left" : "lucide:chevron-right"
|
|
70
|
+
), N = () => {
|
|
71
|
+
h("toggle-select", s.node);
|
|
69
72
|
}, T = (t) => {
|
|
70
|
-
t.stopPropagation(),
|
|
73
|
+
t.stopPropagation(), u.value ? w() : s.selectionMode !== "none" && h("toggle-select", s.node), h("click-node", s.node);
|
|
71
74
|
};
|
|
72
|
-
return (t, l) => (
|
|
75
|
+
return (t, l) => (i(), a("div", G, [
|
|
73
76
|
c("div", {
|
|
74
|
-
class:
|
|
77
|
+
class: g(["group flex flex-col transition-colors cursor-pointer relative", {
|
|
75
78
|
"bg-accent/50 text-accent-foreground": e.isSelected && e.selectionMode === "single" && !e.showCheckboxes,
|
|
76
79
|
"hover:bg-accent/50": !e.isSelected || e.selectionMode !== "single",
|
|
77
80
|
"opacity-50 pointer-events-none": e.node.disabled,
|
|
78
81
|
"rounded-none": e.variant === "bordered",
|
|
79
82
|
"rounded-md": e.variant === "default"
|
|
80
83
|
}]),
|
|
81
|
-
title:
|
|
84
|
+
title: p.value,
|
|
82
85
|
onClick: T
|
|
83
86
|
}, [
|
|
84
|
-
e.variant === "bordered" ? (
|
|
87
|
+
e.variant === "bordered" ? (i(), a("div", {
|
|
85
88
|
key: 0,
|
|
86
|
-
class: "absolute bottom-0
|
|
87
|
-
style: b({
|
|
89
|
+
class: "absolute bottom-0 h-[1px] bg-border pointer-events-none",
|
|
90
|
+
style: b({ insetInlineStart: e.depth * x + "px", insetInlineEnd: "0" })
|
|
88
91
|
}, null, 4)) : f("", !0),
|
|
89
92
|
c("div", {
|
|
90
|
-
class:
|
|
91
|
-
style: b({
|
|
93
|
+
class: g(["tree-row-content relative z-10 flex items-center pe-2", e.variant === "bordered" ? "py-2 min-h-[40px]" : "py-1 min-h-[32px]"]),
|
|
94
|
+
style: b({ paddingInlineStart: I.value })
|
|
92
95
|
}, [
|
|
93
|
-
|
|
96
|
+
v(R(Q), {
|
|
94
97
|
depth: e.depth,
|
|
95
98
|
"is-last-sibling": e.isLast,
|
|
96
99
|
"ancestor-last-flags": e.ancestorLastFlags,
|
|
97
|
-
"has-toggle":
|
|
100
|
+
"has-toggle": u.value,
|
|
98
101
|
indent: x,
|
|
99
102
|
"line-class": "bg-border"
|
|
100
103
|
}, null, 8, ["depth", "is-last-sibling", "ancestor-last-flags", "has-toggle"]),
|
|
101
|
-
|
|
104
|
+
u.value ? (i(), a("button", {
|
|
102
105
|
key: 0,
|
|
103
106
|
type: "button",
|
|
104
|
-
class:
|
|
105
|
-
|
|
107
|
+
class: "tree-expand-toggle relative z-20 p-1 me-1 rounded-sm hover:bg-muted text-muted-foreground transition-colors focus:outline-none shrink-0",
|
|
108
|
+
"aria-expanded": e.isExpanded,
|
|
109
|
+
onClick: y(w, ["stop"])
|
|
106
110
|
}, [
|
|
107
|
-
|
|
108
|
-
icon: "lucide:chevron-
|
|
111
|
+
v(r, {
|
|
112
|
+
icon: e.isExpanded ? "lucide:chevron-down" : F.value,
|
|
109
113
|
class: "w-4 h-4"
|
|
110
|
-
})
|
|
111
|
-
],
|
|
112
|
-
e.showCheckboxes && e.selectionMode !== "none" ? (
|
|
114
|
+
}, null, 8, ["icon"])
|
|
115
|
+
], 8, Y)) : (i(), a("div", H)),
|
|
116
|
+
e.showCheckboxes && e.selectionMode !== "none" ? (i(), a("div", {
|
|
113
117
|
key: 2,
|
|
114
|
-
class: "
|
|
115
|
-
onClick: l[0] || (l[0] =
|
|
118
|
+
class: "relative z-20 me-2 flex items-center justify-center bg-transparent shrink-0",
|
|
119
|
+
onClick: l[0] || (l[0] = y(() => {
|
|
116
120
|
}, ["stop"]))
|
|
117
121
|
}, [
|
|
118
|
-
|
|
122
|
+
v(O, {
|
|
119
123
|
checked: e.isSelected,
|
|
120
124
|
indeterminate: e.isIndeterminate,
|
|
121
125
|
disabled: e.node.disabled,
|
|
@@ -124,61 +128,61 @@ const R = { class: "flex flex-col select-none" }, j = ["title"], q = {
|
|
|
124
128
|
"onUpdate:checked": N
|
|
125
129
|
}, null, 8, ["checked", "indeterminate", "disabled"])
|
|
126
130
|
])) : f("", !0),
|
|
127
|
-
c("div",
|
|
128
|
-
e.isLoading ? (
|
|
131
|
+
c("div", J, [
|
|
132
|
+
e.isLoading ? (i(), m(r, {
|
|
129
133
|
key: 0,
|
|
130
134
|
icon: "lucide:loader-2",
|
|
131
135
|
class: "w-4 h-4 animate-spin"
|
|
132
|
-
})) : e.node.icon ? (
|
|
136
|
+
})) : e.node.icon ? (i(), m(r, {
|
|
133
137
|
key: 1,
|
|
134
138
|
icon: e.node.icon,
|
|
135
139
|
class: "w-4 h-4"
|
|
136
|
-
}, null, 8, ["icon"])) :
|
|
140
|
+
}, null, 8, ["icon"])) : u.value ? (i(), m(r, {
|
|
137
141
|
key: 2,
|
|
138
142
|
icon: e.isExpanded ? "lucide:folder-open" : "lucide:folder",
|
|
139
143
|
class: "w-4 h-4"
|
|
140
|
-
}, null, 8, ["icon"])) : (
|
|
144
|
+
}, null, 8, ["icon"])) : (i(), m(r, {
|
|
141
145
|
key: 3,
|
|
142
146
|
icon: "lucide:file",
|
|
143
147
|
class: "w-4 h-4"
|
|
144
148
|
}))
|
|
145
149
|
]),
|
|
146
|
-
c("div",
|
|
147
|
-
(
|
|
148
|
-
key:
|
|
149
|
-
class:
|
|
150
|
+
c("div", K, [
|
|
151
|
+
(i(!0), a(L, null, S(z.value, (n, o) => (i(), a("span", {
|
|
152
|
+
key: o,
|
|
153
|
+
class: g({
|
|
150
154
|
"bg-yellow-100 text-yellow-900 rounded-sm px-0.5": n.highlight
|
|
151
155
|
})
|
|
152
156
|
}, k(n.text), 3))), 128))
|
|
153
157
|
]),
|
|
154
|
-
t.$slots.actions ? (
|
|
158
|
+
t.$slots.actions ? (i(), a("div", {
|
|
155
159
|
key: 3,
|
|
156
|
-
class: "
|
|
157
|
-
onClick: l[1] || (l[1] =
|
|
160
|
+
class: "relative z-20 ms-2 flex items-center shrink-0",
|
|
161
|
+
onClick: l[1] || (l[1] = y(() => {
|
|
158
162
|
}, ["stop"]))
|
|
159
163
|
}, [
|
|
160
164
|
A(t.$slots, "actions", { node: e.node })
|
|
161
165
|
])) : f("", !0)
|
|
162
166
|
], 6),
|
|
163
|
-
e.node.searchMatch ? (
|
|
167
|
+
e.node.searchMatch ? (i(), a("div", {
|
|
164
168
|
key: 1,
|
|
165
|
-
class: "flex items-center text-[11px] text-gray-500 font-mono
|
|
166
|
-
style: b({
|
|
169
|
+
class: "flex items-center text-[11px] text-gray-500 font-mono pe-2 pb-1.5 truncate",
|
|
170
|
+
style: b({ paddingInlineStart: e.depth * x + 28 + "px" })
|
|
167
171
|
}, [
|
|
168
|
-
c("span",
|
|
169
|
-
c("div",
|
|
170
|
-
(
|
|
171
|
-
key:
|
|
172
|
-
class:
|
|
172
|
+
c("span", W, "L" + k(e.node.searchMatch.line_number), 1),
|
|
173
|
+
c("div", X, [
|
|
174
|
+
(i(!0), a(L, null, S(B.value, (n, o) => (i(), a("span", {
|
|
175
|
+
key: o,
|
|
176
|
+
class: g({
|
|
173
177
|
"bg-yellow-500/20 text-gray-900 px-0.5 rounded-[1px] font-medium border border-yellow-600/30": n.highlight
|
|
174
178
|
})
|
|
175
179
|
}, k(n.text), 3))), 128))
|
|
176
180
|
])
|
|
177
181
|
], 4)) : f("", !0)
|
|
178
|
-
], 10,
|
|
182
|
+
], 10, U)
|
|
179
183
|
]));
|
|
180
184
|
}
|
|
181
185
|
});
|
|
182
186
|
export {
|
|
183
|
-
|
|
187
|
+
ie as default
|
|
184
188
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as M, computed as i, useModel as
|
|
1
|
+
import { defineComponent as M, computed as i, useModel as T, openBlock as t, createElementBlock as l, normalizeClass as v, createElementVNode as n, createCommentVNode as r, toDisplayString as s, withModifiers as $, createVNode as x, withCtx as z, createTextVNode as F, Fragment as g, renderList as m, createBlock as U, mergeModels as C } from "vue";
|
|
2
2
|
import N from "../Icon.vue.js";
|
|
3
3
|
import q from "../Input.vue.js";
|
|
4
4
|
/* empty css */
|
|
@@ -30,7 +30,7 @@ const H = { class: "v-footer-top" }, I = { class: "flex flex-col lg:flex-row gap
|
|
|
30
30
|
}, Z = {
|
|
31
31
|
key: 3,
|
|
32
32
|
class: "flex items-center gap-1 pt-1"
|
|
33
|
-
}, ee = ["href", "aria-label", "onClick"], te = { class: "text-sm font-semibold text-foreground mb-4 tracking-wide" }, le = { class: "space-y-3" },
|
|
33
|
+
}, ee = ["href", "aria-label", "onClick"], te = { class: "text-sm font-semibold text-foreground mb-4 tracking-wide" }, le = { class: "space-y-3" }, oe = ["href", "target", "rel", "onClick"], re = {
|
|
34
34
|
key: 0,
|
|
35
35
|
class: "v-footer-bottom border-t border-border/50"
|
|
36
36
|
}, ae = { class: "mx-auto w-full max-w-7xl px-6 lg:px-8 py-6 flex flex-col sm:flex-row items-center justify-between gap-3 text-center sm:text-left" }, se = {
|
|
@@ -39,7 +39,7 @@ const H = { class: "v-footer-top" }, I = { class: "flex flex-col lg:flex-row gap
|
|
|
39
39
|
}, ne = {
|
|
40
40
|
key: 1,
|
|
41
41
|
class: "flex flex-wrap items-center justify-center sm:justify-end gap-x-5 gap-y-2 w-full sm:w-auto"
|
|
42
|
-
}, ie = ["href", "target", "rel", "onClick"],
|
|
42
|
+
}, ie = ["href", "target", "rel", "onClick"], pe = /* @__PURE__ */ M({
|
|
43
43
|
__name: "Variant1",
|
|
44
44
|
props: /* @__PURE__ */ C({
|
|
45
45
|
data: {},
|
|
@@ -50,44 +50,44 @@ const H = { class: "v-footer-top" }, I = { class: "flex flex-col lg:flex-row gap
|
|
|
50
50
|
newsletterEmailModifiers: {}
|
|
51
51
|
}),
|
|
52
52
|
emits: /* @__PURE__ */ C(["subscribe", "link-click"], ["update:newsletterEmail"]),
|
|
53
|
-
setup(
|
|
54
|
-
const h =
|
|
53
|
+
setup(p, { emit: B }) {
|
|
54
|
+
const h = p, b = B, e = i(() => h.data), E = i(() => h.labels || {}), c = T(p, "newsletterEmail"), _ = i(() => e.value.linkGroups && e.value.linkGroups.length > 0), k = i(() => e.value.socialLinks && e.value.socialLinks.length > 0), y = i(() => e.value.legalLinks && e.value.legalLinks.length > 0), w = i(() => !!e.value.newsletter), V = i(() => e.value.brandName || e.value.brandLogo || e.value.brandDescription), G = i(() => e.value.copyright || y.value);
|
|
55
55
|
function S() {
|
|
56
|
-
c.value.trim() &&
|
|
56
|
+
c.value.trim() && b("subscribe", c.value.trim());
|
|
57
57
|
}
|
|
58
|
-
function
|
|
59
|
-
|
|
58
|
+
function f(L, d) {
|
|
59
|
+
b("link-click", L, d);
|
|
60
60
|
}
|
|
61
61
|
return (L, d) => (t(), l("footer", {
|
|
62
|
-
class: v(["v-footer v-footer-v1 w-full bg-background text-foreground",
|
|
62
|
+
class: v(["v-footer v-footer-v1 w-full bg-background text-foreground", p.containerClass])
|
|
63
63
|
}, [
|
|
64
64
|
n("div", H, [
|
|
65
65
|
n("div", {
|
|
66
|
-
class: v(["mx-auto w-full max-w-7xl px-6 lg:px-8",
|
|
66
|
+
class: v(["mx-auto w-full max-w-7xl px-6 lg:px-8", _.value ? "py-12 lg:py-16" : "py-8 lg:py-10"])
|
|
67
67
|
}, [
|
|
68
68
|
n("div", I, [
|
|
69
|
-
|
|
69
|
+
V.value || k.value || w.value ? (t(), l("div", J, [
|
|
70
70
|
e.value.brandLogo || e.value.brandName ? (t(), l("div", K, [
|
|
71
71
|
e.value.brandLogo ? (t(), l("img", {
|
|
72
72
|
key: 0,
|
|
73
73
|
src: e.value.brandLogo,
|
|
74
74
|
alt: e.value.brandName || "Brand logo",
|
|
75
75
|
class: "h-8 w-8 object-contain rounded"
|
|
76
|
-
}, null, 8, O)) :
|
|
77
|
-
e.value.brandName ? (t(), l("span", P, s(e.value.brandName), 1)) :
|
|
78
|
-
e.value.badge ? (t(), l("span", Q, s(e.value.badge), 1)) :
|
|
79
|
-
])) :
|
|
80
|
-
e.value.brandDescription ? (t(), l("p", R, s(e.value.brandDescription), 1)) :
|
|
76
|
+
}, null, 8, O)) : r("", !0),
|
|
77
|
+
e.value.brandName ? (t(), l("span", P, s(e.value.brandName), 1)) : r("", !0),
|
|
78
|
+
e.value.badge ? (t(), l("span", Q, s(e.value.badge), 1)) : r("", !0)
|
|
79
|
+
])) : r("", !0),
|
|
80
|
+
e.value.brandDescription ? (t(), l("p", R, s(e.value.brandDescription), 1)) : r("", !0),
|
|
81
81
|
w.value ? (t(), l("div", W, [
|
|
82
|
-
e.value.newsletter?.title ? (t(), l("p", X, s(e.value.newsletter.title), 1)) :
|
|
83
|
-
e.value.newsletter?.description ? (t(), l("p", Y, s(e.value.newsletter.description), 1)) :
|
|
82
|
+
e.value.newsletter?.title ? (t(), l("p", X, s(e.value.newsletter.title), 1)) : r("", !0),
|
|
83
|
+
e.value.newsletter?.description ? (t(), l("p", Y, s(e.value.newsletter.description), 1)) : r("", !0),
|
|
84
84
|
n("form", {
|
|
85
85
|
class: "flex gap-2 w-full",
|
|
86
|
-
onSubmit:
|
|
86
|
+
onSubmit: $(S, ["prevent"])
|
|
87
87
|
}, [
|
|
88
88
|
x(q, {
|
|
89
89
|
modelValue: c.value,
|
|
90
|
-
"onUpdate:modelValue": d[0] || (d[0] = (
|
|
90
|
+
"onUpdate:modelValue": d[0] || (d[0] = (o) => c.value = o),
|
|
91
91
|
type: "email",
|
|
92
92
|
placeholder: e.value.newsletter?.placeholder || "Enter your email",
|
|
93
93
|
class: "flex-1 min-w-0",
|
|
@@ -101,78 +101,78 @@ const H = { class: "v-footer-top" }, I = { class: "flex flex-col lg:flex-row gap
|
|
|
101
101
|
class: "whitespace-nowrap"
|
|
102
102
|
}, {
|
|
103
103
|
default: z(() => [
|
|
104
|
-
F(s(e.value.newsletter?.buttonText ||
|
|
104
|
+
F(s(e.value.newsletter?.buttonText || E.value.subscribe || "Subscribe"), 1)
|
|
105
105
|
]),
|
|
106
106
|
_: 1
|
|
107
107
|
})
|
|
108
108
|
], 32)
|
|
109
|
-
])) :
|
|
109
|
+
])) : r("", !0),
|
|
110
110
|
k.value ? (t(), l("div", Z, [
|
|
111
|
-
(t(!0), l(g, null, m(e.value.socialLinks, (
|
|
111
|
+
(t(!0), l(g, null, m(e.value.socialLinks, (o, u) => (t(), l("a", {
|
|
112
112
|
key: u,
|
|
113
|
-
href:
|
|
114
|
-
"aria-label":
|
|
113
|
+
href: o.url,
|
|
114
|
+
"aria-label": o.label || "Social link",
|
|
115
115
|
target: "_blank",
|
|
116
116
|
rel: "noopener noreferrer",
|
|
117
117
|
class: "inline-flex items-center justify-center w-9 h-9 rounded-lg text-muted-foreground hover:text-foreground hover:bg-muted transition-all duration-200",
|
|
118
|
-
onClick: (a) =>
|
|
118
|
+
onClick: (a) => f(o.url, a)
|
|
119
119
|
}, [
|
|
120
120
|
x(N, {
|
|
121
|
-
icon:
|
|
121
|
+
icon: o.icon,
|
|
122
122
|
class: "w-[18px] h-[18px]"
|
|
123
123
|
}, null, 8, ["icon"])
|
|
124
124
|
], 8, ee))), 128))
|
|
125
|
-
])) :
|
|
126
|
-
])) :
|
|
127
|
-
|
|
125
|
+
])) : r("", !0)
|
|
126
|
+
])) : r("", !0),
|
|
127
|
+
_.value ? (t(), l("div", {
|
|
128
128
|
key: 1,
|
|
129
129
|
class: v(["grid w-full lg:w-auto! lg:ml-auto gap-y-10 gap-x-6 sm:gap-x-10 lg:gap-x-20 lg:pr-4", [
|
|
130
130
|
e.value.linkGroups?.length === 1 ? "grid-cols-1" : e.value.linkGroups?.length === 2 ? "grid-cols-2 lg:grid-cols-[auto_auto]" : e.value.linkGroups?.length === 3 ? "grid-cols-2 md:grid-cols-3 lg:grid-cols-[auto_auto_auto]" : "grid-cols-2 md:grid-cols-4 lg:grid-cols-[auto_auto_auto_auto]"
|
|
131
131
|
]])
|
|
132
132
|
}, [
|
|
133
|
-
(t(!0), l(g, null, m(e.value.linkGroups, (
|
|
134
|
-
n("h3", te, s(
|
|
133
|
+
(t(!0), l(g, null, m(e.value.linkGroups, (o, u) => (t(), l("div", { key: u }, [
|
|
134
|
+
n("h3", te, s(o.title), 1),
|
|
135
135
|
n("ul", le, [
|
|
136
|
-
(t(!0), l(g, null, m(
|
|
136
|
+
(t(!0), l(g, null, m(o.links, (a, j) => (t(), l("li", { key: j }, [
|
|
137
137
|
n("a", {
|
|
138
138
|
href: a.url,
|
|
139
139
|
target: a.external ? "_blank" : void 0,
|
|
140
140
|
rel: a.external ? "noopener noreferrer" : void 0,
|
|
141
141
|
class: "inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors duration-200",
|
|
142
|
-
onClick: (D) =>
|
|
142
|
+
onClick: (D) => f(a.url, D)
|
|
143
143
|
}, [
|
|
144
144
|
a.icon ? (t(), U(N, {
|
|
145
145
|
key: 0,
|
|
146
146
|
icon: a.icon,
|
|
147
147
|
class: "w-3.5 h-3.5 shrink-0"
|
|
148
|
-
}, null, 8, ["icon"])) :
|
|
148
|
+
}, null, 8, ["icon"])) : r("", !0),
|
|
149
149
|
n("span", null, s(a.label), 1)
|
|
150
|
-
], 8,
|
|
150
|
+
], 8, oe)
|
|
151
151
|
]))), 128))
|
|
152
152
|
])
|
|
153
153
|
]))), 128))
|
|
154
|
-
], 2)) :
|
|
154
|
+
], 2)) : r("", !0)
|
|
155
155
|
])
|
|
156
156
|
], 2)
|
|
157
157
|
]),
|
|
158
|
-
G.value ? (t(), l("div",
|
|
158
|
+
G.value ? (t(), l("div", re, [
|
|
159
159
|
n("div", ae, [
|
|
160
|
-
e.value.copyright ? (t(), l("p", se, s(e.value.copyright), 1)) :
|
|
160
|
+
e.value.copyright ? (t(), l("p", se, s(e.value.copyright), 1)) : r("", !0),
|
|
161
161
|
y.value ? (t(), l("div", ne, [
|
|
162
|
-
(t(!0), l(g, null, m(e.value.legalLinks, (
|
|
162
|
+
(t(!0), l(g, null, m(e.value.legalLinks, (o, u) => (t(), l("a", {
|
|
163
163
|
key: u,
|
|
164
|
-
href:
|
|
165
|
-
target:
|
|
166
|
-
rel:
|
|
164
|
+
href: o.url,
|
|
165
|
+
target: o.external ? "_blank" : void 0,
|
|
166
|
+
rel: o.external ? "noopener noreferrer" : void 0,
|
|
167
167
|
class: "text-sm text-muted-foreground hover:text-foreground transition-colors duration-200",
|
|
168
|
-
onClick: (a) =>
|
|
169
|
-
}, s(
|
|
170
|
-
])) :
|
|
168
|
+
onClick: (a) => f(o.url, a)
|
|
169
|
+
}, s(o.label), 9, ie))), 128))
|
|
170
|
+
])) : r("", !0)
|
|
171
171
|
])
|
|
172
|
-
])) :
|
|
172
|
+
])) : r("", !0)
|
|
173
173
|
], 2));
|
|
174
174
|
}
|
|
175
175
|
});
|
|
176
176
|
export {
|
|
177
|
-
|
|
177
|
+
pe as default
|
|
178
178
|
};
|