@shwfed/nuxt 0.10.12 → 0.10.14
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/dist/module.json +1 -1
- package/dist/runtime/components/modal.d.vue.ts +51 -0
- package/dist/runtime/components/modal.vue +139 -0
- package/dist/runtime/components/modal.vue.d.ts +51 -0
- package/dist/runtime/components/ui/button-configurator/ButtonConfiguratorDialog.vue +31 -15
- package/dist/runtime/components/ui/drawer/Drawer.d.vue.ts +31 -0
- package/dist/runtime/components/ui/drawer/Drawer.vue +38 -0
- package/dist/runtime/components/ui/drawer/Drawer.vue.d.ts +31 -0
- package/dist/runtime/components/ui/drawer/DrawerClose.d.vue.ts +14 -0
- package/dist/runtime/components/ui/drawer/DrawerClose.vue +19 -0
- package/dist/runtime/components/ui/drawer/DrawerClose.vue.d.ts +14 -0
- package/dist/runtime/components/ui/drawer/DrawerContent.d.vue.ts +20 -0
- package/dist/runtime/components/ui/drawer/DrawerContent.vue +50 -0
- package/dist/runtime/components/ui/drawer/DrawerContent.vue.d.ts +20 -0
- package/dist/runtime/components/ui/drawer/DrawerDescription.d.vue.ts +18 -0
- package/dist/runtime/components/ui/drawer/DrawerDescription.vue +26 -0
- package/dist/runtime/components/ui/drawer/DrawerDescription.vue.d.ts +18 -0
- package/dist/runtime/components/ui/drawer/DrawerFooter.d.vue.ts +17 -0
- package/dist/runtime/components/ui/drawer/DrawerFooter.vue +15 -0
- package/dist/runtime/components/ui/drawer/DrawerFooter.vue.d.ts +17 -0
- package/dist/runtime/components/ui/drawer/DrawerHeader.d.vue.ts +17 -0
- package/dist/runtime/components/ui/drawer/DrawerHeader.vue +15 -0
- package/dist/runtime/components/ui/drawer/DrawerHeader.vue.d.ts +17 -0
- package/dist/runtime/components/ui/drawer/DrawerOverlay.d.vue.ts +7 -0
- package/dist/runtime/components/ui/drawer/DrawerOverlay.vue +19 -0
- package/dist/runtime/components/ui/drawer/DrawerOverlay.vue.d.ts +7 -0
- package/dist/runtime/components/ui/drawer/DrawerTitle.d.vue.ts +18 -0
- package/dist/runtime/components/ui/drawer/DrawerTitle.vue +26 -0
- package/dist/runtime/components/ui/drawer/DrawerTitle.vue.d.ts +18 -0
- package/dist/runtime/components/ui/drawer/DrawerTrigger.d.vue.ts +14 -0
- package/dist/runtime/components/ui/drawer/DrawerTrigger.vue +19 -0
- package/dist/runtime/components/ui/drawer/DrawerTrigger.vue.d.ts +14 -0
- package/dist/runtime/components/ui/drawer/index.d.ts +8 -0
- package/dist/runtime/components/ui/drawer/index.js +8 -0
- package/package.json +2 -1
package/dist/module.json
CHANGED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
open?: boolean;
|
|
3
|
+
defaultOpen?: boolean;
|
|
4
|
+
breakpoint?: string;
|
|
5
|
+
showCloseButton?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare function close(): void;
|
|
8
|
+
declare var __VLS_14: {
|
|
9
|
+
close: typeof close;
|
|
10
|
+
isDesktop: boolean;
|
|
11
|
+
}, __VLS_34: {
|
|
12
|
+
close: typeof close;
|
|
13
|
+
isDesktop: boolean;
|
|
14
|
+
}, __VLS_42: {
|
|
15
|
+
close: typeof close;
|
|
16
|
+
isDesktop: boolean;
|
|
17
|
+
}, __VLS_44: {
|
|
18
|
+
close: typeof close;
|
|
19
|
+
isDesktop: boolean;
|
|
20
|
+
}, __VLS_52: {
|
|
21
|
+
close: typeof close;
|
|
22
|
+
isDesktop: boolean;
|
|
23
|
+
};
|
|
24
|
+
type __VLS_Slots = {} & {
|
|
25
|
+
trigger?: (props: typeof __VLS_14) => any;
|
|
26
|
+
} & {
|
|
27
|
+
title?: (props: typeof __VLS_34) => any;
|
|
28
|
+
} & {
|
|
29
|
+
description?: (props: typeof __VLS_42) => any;
|
|
30
|
+
} & {
|
|
31
|
+
default?: (props: typeof __VLS_44) => any;
|
|
32
|
+
} & {
|
|
33
|
+
footer?: (props: typeof __VLS_52) => any;
|
|
34
|
+
};
|
|
35
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
36
|
+
"update:open": (open: boolean) => any;
|
|
37
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
38
|
+
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
39
|
+
}>, {
|
|
40
|
+
defaultOpen: boolean;
|
|
41
|
+
showCloseButton: boolean;
|
|
42
|
+
breakpoint: string;
|
|
43
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
44
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
45
|
+
declare const _default: typeof __VLS_export;
|
|
46
|
+
export default _default;
|
|
47
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
48
|
+
new (): {
|
|
49
|
+
$slots: S;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { useMediaQuery } from "@vueuse/core";
|
|
3
|
+
import { computed, ref, useAttrs, useSlots } from "vue";
|
|
4
|
+
import {
|
|
5
|
+
Dialog,
|
|
6
|
+
DialogClose,
|
|
7
|
+
DialogContent,
|
|
8
|
+
DialogDescription,
|
|
9
|
+
DialogFooter,
|
|
10
|
+
DialogHeader,
|
|
11
|
+
DialogTitle,
|
|
12
|
+
DialogTrigger
|
|
13
|
+
} from "./ui/dialog";
|
|
14
|
+
import {
|
|
15
|
+
Drawer,
|
|
16
|
+
DrawerClose,
|
|
17
|
+
DrawerContent,
|
|
18
|
+
DrawerDescription,
|
|
19
|
+
DrawerFooter,
|
|
20
|
+
DrawerHeader,
|
|
21
|
+
DrawerTitle,
|
|
22
|
+
DrawerTrigger
|
|
23
|
+
} from "./ui/drawer";
|
|
24
|
+
defineOptions({
|
|
25
|
+
inheritAttrs: false
|
|
26
|
+
});
|
|
27
|
+
const props = defineProps({
|
|
28
|
+
open: { type: Boolean, required: false },
|
|
29
|
+
defaultOpen: { type: Boolean, required: false, default: false },
|
|
30
|
+
breakpoint: { type: String, required: false, default: "(min-width: 640px)" },
|
|
31
|
+
showCloseButton: { type: Boolean, required: false, default: true }
|
|
32
|
+
});
|
|
33
|
+
const emit = defineEmits(["update:open"]);
|
|
34
|
+
const attrs = useAttrs();
|
|
35
|
+
const slots = useSlots();
|
|
36
|
+
const uncontrolledOpen = ref(props.defaultOpen);
|
|
37
|
+
const isDesktop = useMediaQuery(props.breakpoint);
|
|
38
|
+
const desktopComponents = {
|
|
39
|
+
Root: Dialog,
|
|
40
|
+
Trigger: DialogTrigger,
|
|
41
|
+
Content: DialogContent,
|
|
42
|
+
Header: DialogHeader,
|
|
43
|
+
Title: DialogTitle,
|
|
44
|
+
Description: DialogDescription,
|
|
45
|
+
Footer: DialogFooter,
|
|
46
|
+
Close: DialogClose
|
|
47
|
+
};
|
|
48
|
+
const mobileComponents = {
|
|
49
|
+
Root: Drawer,
|
|
50
|
+
Trigger: DrawerTrigger,
|
|
51
|
+
Content: DrawerContent,
|
|
52
|
+
Header: DrawerHeader,
|
|
53
|
+
Title: DrawerTitle,
|
|
54
|
+
Description: DrawerDescription,
|
|
55
|
+
Footer: DrawerFooter,
|
|
56
|
+
Close: DrawerClose
|
|
57
|
+
};
|
|
58
|
+
const modalComponents = computed(() => isDesktop.value ? desktopComponents : mobileComponents);
|
|
59
|
+
const hasTrigger = computed(() => slots.trigger !== void 0);
|
|
60
|
+
const hasTitle = computed(() => slots.title !== void 0);
|
|
61
|
+
const hasDescription = computed(() => slots.description !== void 0);
|
|
62
|
+
const hasHeader = computed(() => hasTitle.value || hasDescription.value);
|
|
63
|
+
const hasFooter = computed(() => slots.footer !== void 0);
|
|
64
|
+
const open = computed({
|
|
65
|
+
get() {
|
|
66
|
+
return props.open ?? uncontrolledOpen.value;
|
|
67
|
+
},
|
|
68
|
+
set(value) {
|
|
69
|
+
if (props.open === void 0) {
|
|
70
|
+
uncontrolledOpen.value = value;
|
|
71
|
+
}
|
|
72
|
+
emit("update:open", value);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
function close() {
|
|
76
|
+
open.value = false;
|
|
77
|
+
}
|
|
78
|
+
</script>
|
|
79
|
+
|
|
80
|
+
<template>
|
|
81
|
+
<component
|
|
82
|
+
:is="modalComponents.Root"
|
|
83
|
+
v-model:open="open"
|
|
84
|
+
>
|
|
85
|
+
<component
|
|
86
|
+
:is="modalComponents.Trigger"
|
|
87
|
+
v-if="hasTrigger"
|
|
88
|
+
as-child
|
|
89
|
+
>
|
|
90
|
+
<slot
|
|
91
|
+
name="trigger"
|
|
92
|
+
v-bind="{ close, isDesktop }"
|
|
93
|
+
/>
|
|
94
|
+
</component>
|
|
95
|
+
|
|
96
|
+
<component
|
|
97
|
+
:is="modalComponents.Content"
|
|
98
|
+
v-bind="attrs"
|
|
99
|
+
:show-close-button="props.showCloseButton"
|
|
100
|
+
>
|
|
101
|
+
<component
|
|
102
|
+
:is="modalComponents.Header"
|
|
103
|
+
v-if="hasHeader"
|
|
104
|
+
>
|
|
105
|
+
<component
|
|
106
|
+
:is="modalComponents.Title"
|
|
107
|
+
v-if="hasTitle"
|
|
108
|
+
>
|
|
109
|
+
<slot
|
|
110
|
+
name="title"
|
|
111
|
+
v-bind="{ close, isDesktop }"
|
|
112
|
+
/>
|
|
113
|
+
</component>
|
|
114
|
+
|
|
115
|
+
<component
|
|
116
|
+
:is="modalComponents.Description"
|
|
117
|
+
v-if="hasDescription"
|
|
118
|
+
>
|
|
119
|
+
<slot
|
|
120
|
+
name="description"
|
|
121
|
+
v-bind="{ close, isDesktop }"
|
|
122
|
+
/>
|
|
123
|
+
</component>
|
|
124
|
+
</component>
|
|
125
|
+
|
|
126
|
+
<slot v-bind="{ close, isDesktop }" />
|
|
127
|
+
|
|
128
|
+
<component
|
|
129
|
+
:is="modalComponents.Footer"
|
|
130
|
+
v-if="hasFooter"
|
|
131
|
+
>
|
|
132
|
+
<slot
|
|
133
|
+
name="footer"
|
|
134
|
+
v-bind="{ close, isDesktop }"
|
|
135
|
+
/>
|
|
136
|
+
</component>
|
|
137
|
+
</component>
|
|
138
|
+
</component>
|
|
139
|
+
</template>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
open?: boolean;
|
|
3
|
+
defaultOpen?: boolean;
|
|
4
|
+
breakpoint?: string;
|
|
5
|
+
showCloseButton?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare function close(): void;
|
|
8
|
+
declare var __VLS_14: {
|
|
9
|
+
close: typeof close;
|
|
10
|
+
isDesktop: boolean;
|
|
11
|
+
}, __VLS_34: {
|
|
12
|
+
close: typeof close;
|
|
13
|
+
isDesktop: boolean;
|
|
14
|
+
}, __VLS_42: {
|
|
15
|
+
close: typeof close;
|
|
16
|
+
isDesktop: boolean;
|
|
17
|
+
}, __VLS_44: {
|
|
18
|
+
close: typeof close;
|
|
19
|
+
isDesktop: boolean;
|
|
20
|
+
}, __VLS_52: {
|
|
21
|
+
close: typeof close;
|
|
22
|
+
isDesktop: boolean;
|
|
23
|
+
};
|
|
24
|
+
type __VLS_Slots = {} & {
|
|
25
|
+
trigger?: (props: typeof __VLS_14) => any;
|
|
26
|
+
} & {
|
|
27
|
+
title?: (props: typeof __VLS_34) => any;
|
|
28
|
+
} & {
|
|
29
|
+
description?: (props: typeof __VLS_42) => any;
|
|
30
|
+
} & {
|
|
31
|
+
default?: (props: typeof __VLS_44) => any;
|
|
32
|
+
} & {
|
|
33
|
+
footer?: (props: typeof __VLS_52) => any;
|
|
34
|
+
};
|
|
35
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
36
|
+
"update:open": (open: boolean) => any;
|
|
37
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
38
|
+
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
39
|
+
}>, {
|
|
40
|
+
defaultOpen: boolean;
|
|
41
|
+
showCloseButton: boolean;
|
|
42
|
+
breakpoint: string;
|
|
43
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
44
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
45
|
+
declare const _default: typeof __VLS_export;
|
|
46
|
+
export default _default;
|
|
47
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
48
|
+
new (): {
|
|
49
|
+
$slots: S;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
@@ -108,13 +108,19 @@ const canAddGroup = computed(() => selectedItemId.value === "general");
|
|
|
108
108
|
const canAddGroupButton = computed(() => selectedNode.value?.item.type === "group");
|
|
109
109
|
const canAddGroupDropdown = computed(() => selectedNode.value?.item.type === "group");
|
|
110
110
|
const canAddDropdownChildButton = computed(() => selectedNode.value?.item.type === "dropdown");
|
|
111
|
-
const flattenedItems = computed(() => flattenButtonConfiguratorTree(draftTree.value).
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
111
|
+
const flattenedItems = computed(() => flattenButtonConfiguratorTree(draftTree.value).flatMap((item) => {
|
|
112
|
+
const node = getButtonConfiguratorNode(draftTree.value, item.itemId);
|
|
113
|
+
if (!node) {
|
|
114
|
+
return [];
|
|
115
|
+
}
|
|
116
|
+
return [{
|
|
117
|
+
itemId: item.itemId,
|
|
118
|
+
depth: item.depth,
|
|
119
|
+
label: getNodeLabel(node),
|
|
120
|
+
type: item.item.type,
|
|
121
|
+
id: item.item.id
|
|
122
|
+
}];
|
|
123
|
+
}));
|
|
118
124
|
const filteredItems = computed(() => {
|
|
119
125
|
if (!normalizedSearch.value) {
|
|
120
126
|
return flattenedItems.value;
|
|
@@ -128,7 +134,7 @@ const selectedItemLabel = computed(() => {
|
|
|
128
134
|
if (!selectedNode.value) {
|
|
129
135
|
return generalItem.value.label;
|
|
130
136
|
}
|
|
131
|
-
return getNodeLabel(selectedNode.value
|
|
137
|
+
return getNodeLabel(selectedNode.value);
|
|
132
138
|
});
|
|
133
139
|
const selectedContainerItemIds = computed(() => {
|
|
134
140
|
if (selectedItemId.value === "general") {
|
|
@@ -158,7 +164,7 @@ const childItems = computed(() => selectedContainerItemIds.value.flatMap((itemId
|
|
|
158
164
|
}
|
|
159
165
|
return [{
|
|
160
166
|
itemId: node.itemId,
|
|
161
|
-
label: getNodeLabel(node
|
|
167
|
+
label: getNodeLabel(node),
|
|
162
168
|
type: node.item.type,
|
|
163
169
|
id: node.item.id
|
|
164
170
|
}];
|
|
@@ -168,7 +174,7 @@ const buttonParentOptions = computed(() => draftTree.value.nodes.flatMap((node)
|
|
|
168
174
|
return [{
|
|
169
175
|
id: node.item.id,
|
|
170
176
|
itemId: node.itemId,
|
|
171
|
-
label: getNodeLabel(node
|
|
177
|
+
label: getNodeLabel(node),
|
|
172
178
|
type: "group"
|
|
173
179
|
}];
|
|
174
180
|
}
|
|
@@ -176,7 +182,7 @@ const buttonParentOptions = computed(() => draftTree.value.nodes.flatMap((node)
|
|
|
176
182
|
return [{
|
|
177
183
|
id: node.item.id,
|
|
178
184
|
itemId: node.itemId,
|
|
179
|
-
label: getNodeLabel(node
|
|
185
|
+
label: getNodeLabel(node),
|
|
180
186
|
type: "dropdown"
|
|
181
187
|
}];
|
|
182
188
|
}
|
|
@@ -185,7 +191,7 @@ const buttonParentOptions = computed(() => draftTree.value.nodes.flatMap((node)
|
|
|
185
191
|
const dropdownParentOptions = computed(() => draftTree.value.nodes.flatMap((node) => node.item.type === "group" ? [{
|
|
186
192
|
id: node.item.id,
|
|
187
193
|
itemId: node.itemId,
|
|
188
|
-
label: getNodeLabel(node
|
|
194
|
+
label: getNodeLabel(node)
|
|
189
195
|
}] : []));
|
|
190
196
|
watch(() => props.config, (config) => {
|
|
191
197
|
applyDraftConfig(config);
|
|
@@ -239,11 +245,21 @@ function isCopyableNode(node) {
|
|
|
239
245
|
}
|
|
240
246
|
return node.item.type === "button" || node.item.type === "dropdown";
|
|
241
247
|
}
|
|
242
|
-
function getNodeLabel(
|
|
243
|
-
if (item.type === "group") {
|
|
248
|
+
function getNodeLabel(node) {
|
|
249
|
+
if (node.item.type === "group") {
|
|
250
|
+
const childLabels = node.childItemIds.flatMap((itemId) => {
|
|
251
|
+
const childNode = getButtonConfiguratorNode(draftTree.value, itemId);
|
|
252
|
+
if (!childNode || childNode.item.type === "group") {
|
|
253
|
+
return [];
|
|
254
|
+
}
|
|
255
|
+
return [getNodeLabel(childNode)];
|
|
256
|
+
});
|
|
257
|
+
if (childLabels.length > 0) {
|
|
258
|
+
return childLabels.join("\u3001");
|
|
259
|
+
}
|
|
244
260
|
return t("group-label");
|
|
245
261
|
}
|
|
246
|
-
return getZhText(item.title) ?? t(item.type === "button" ? "untitled-button" : "untitled-dropdown");
|
|
262
|
+
return getZhText(node.item.title) ?? t(node.item.type === "button" ? "untitled-button" : "untitled-dropdown");
|
|
247
263
|
}
|
|
248
264
|
function applyDraftConfig(config) {
|
|
249
265
|
draftGap.value = config.gap ?? 4;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { DrawerRootProps } from 'vaul-vue';
|
|
2
|
+
type Props = Omit<DrawerRootProps, 'direction'>;
|
|
3
|
+
declare var __VLS_8: {
|
|
4
|
+
open: boolean;
|
|
5
|
+
};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
default?: (props: typeof __VLS_8) => any;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
10
|
+
"update:open": (open: boolean) => any;
|
|
11
|
+
close: () => any;
|
|
12
|
+
drag: (percentageDragged: number) => any;
|
|
13
|
+
animationEnd: (open: boolean) => any;
|
|
14
|
+
release: (open: boolean) => any;
|
|
15
|
+
"update:activeSnapPoint": (val: string | number) => any;
|
|
16
|
+
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
17
|
+
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
18
|
+
onClose?: (() => any) | undefined;
|
|
19
|
+
onDrag?: ((percentageDragged: number) => any) | undefined;
|
|
20
|
+
onAnimationEnd?: ((open: boolean) => any) | undefined;
|
|
21
|
+
onRelease?: ((open: boolean) => any) | undefined;
|
|
22
|
+
"onUpdate:activeSnapPoint"?: ((val: string | number) => any) | undefined;
|
|
23
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
24
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
25
|
+
declare const _default: typeof __VLS_export;
|
|
26
|
+
export default _default;
|
|
27
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
28
|
+
new (): {
|
|
29
|
+
$slots: S;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { useForwardPropsEmits } from "reka-ui";
|
|
3
|
+
import { DrawerRoot } from "vaul-vue";
|
|
4
|
+
defineOptions({
|
|
5
|
+
inheritAttrs: false
|
|
6
|
+
});
|
|
7
|
+
const props = defineProps({
|
|
8
|
+
activeSnapPoint: { type: [Number, String, null], required: false },
|
|
9
|
+
closeThreshold: { type: Number, required: false },
|
|
10
|
+
shouldScaleBackground: { type: Boolean, required: false },
|
|
11
|
+
setBackgroundColorOnScale: { type: Boolean, required: false },
|
|
12
|
+
scrollLockTimeout: { type: Number, required: false },
|
|
13
|
+
fixed: { type: Boolean, required: false },
|
|
14
|
+
dismissible: { type: Boolean, required: false },
|
|
15
|
+
modal: { type: Boolean, required: false },
|
|
16
|
+
open: { type: Boolean, required: false },
|
|
17
|
+
defaultOpen: { type: Boolean, required: false },
|
|
18
|
+
nested: { type: Boolean, required: false },
|
|
19
|
+
noBodyStyles: { type: Boolean, required: false },
|
|
20
|
+
handleOnly: { type: Boolean, required: false },
|
|
21
|
+
preventScrollRestoration: { type: Boolean, required: false },
|
|
22
|
+
snapPoints: { type: Array, required: false },
|
|
23
|
+
fadeFromIndex: { type: null, required: false }
|
|
24
|
+
});
|
|
25
|
+
const emits = defineEmits(["drag", "release", "close", "update:open", "update:activeSnapPoint", "animationEnd"]);
|
|
26
|
+
const forwarded = useForwardPropsEmits(props, emits);
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<template>
|
|
30
|
+
<DrawerRoot
|
|
31
|
+
v-slot="slotProps"
|
|
32
|
+
data-slot="drawer"
|
|
33
|
+
direction="bottom"
|
|
34
|
+
v-bind="forwarded"
|
|
35
|
+
>
|
|
36
|
+
<slot v-bind="slotProps" />
|
|
37
|
+
</DrawerRoot>
|
|
38
|
+
</template>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { DrawerRootProps } from 'vaul-vue';
|
|
2
|
+
type Props = Omit<DrawerRootProps, 'direction'>;
|
|
3
|
+
declare var __VLS_8: {
|
|
4
|
+
open: boolean;
|
|
5
|
+
};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
default?: (props: typeof __VLS_8) => any;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
10
|
+
"update:open": (open: boolean) => any;
|
|
11
|
+
close: () => any;
|
|
12
|
+
drag: (percentageDragged: number) => any;
|
|
13
|
+
animationEnd: (open: boolean) => any;
|
|
14
|
+
release: (open: boolean) => any;
|
|
15
|
+
"update:activeSnapPoint": (val: string | number) => any;
|
|
16
|
+
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
17
|
+
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
18
|
+
onClose?: (() => any) | undefined;
|
|
19
|
+
onDrag?: ((percentageDragged: number) => any) | undefined;
|
|
20
|
+
onAnimationEnd?: ((open: boolean) => any) | undefined;
|
|
21
|
+
onRelease?: ((open: boolean) => any) | undefined;
|
|
22
|
+
"onUpdate:activeSnapPoint"?: ((val: string | number) => any) | undefined;
|
|
23
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
24
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
25
|
+
declare const _default: typeof __VLS_export;
|
|
26
|
+
export default _default;
|
|
27
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
28
|
+
new (): {
|
|
29
|
+
$slots: S;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DrawerCloseProps } from 'vaul-vue';
|
|
2
|
+
declare var __VLS_8: {};
|
|
3
|
+
type __VLS_Slots = {} & {
|
|
4
|
+
default?: (props: typeof __VLS_8) => any;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_base: import("vue").DefineComponent<DrawerCloseProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DrawerCloseProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
8
|
+
declare const _default: typeof __VLS_export;
|
|
9
|
+
export default _default;
|
|
10
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
11
|
+
new (): {
|
|
12
|
+
$slots: S;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { DrawerClose } from "vaul-vue";
|
|
3
|
+
defineOptions({
|
|
4
|
+
inheritAttrs: false
|
|
5
|
+
});
|
|
6
|
+
const props = defineProps({
|
|
7
|
+
asChild: { type: Boolean, required: false },
|
|
8
|
+
as: { type: null, required: false }
|
|
9
|
+
});
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<template>
|
|
13
|
+
<DrawerClose
|
|
14
|
+
data-slot="drawer-close"
|
|
15
|
+
v-bind="props"
|
|
16
|
+
>
|
|
17
|
+
<slot />
|
|
18
|
+
</DrawerClose>
|
|
19
|
+
</template>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DrawerCloseProps } from 'vaul-vue';
|
|
2
|
+
declare var __VLS_8: {};
|
|
3
|
+
type __VLS_Slots = {} & {
|
|
4
|
+
default?: (props: typeof __VLS_8) => any;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_base: import("vue").DefineComponent<DrawerCloseProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DrawerCloseProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
8
|
+
declare const _default: typeof __VLS_export;
|
|
9
|
+
export default _default;
|
|
10
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
11
|
+
new (): {
|
|
12
|
+
$slots: S;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
showCloseButton?: boolean;
|
|
5
|
+
};
|
|
6
|
+
declare var __VLS_19: {};
|
|
7
|
+
type __VLS_Slots = {} & {
|
|
8
|
+
default?: (props: typeof __VLS_19) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
11
|
+
showCloseButton: boolean;
|
|
12
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
14
|
+
declare const _default: typeof __VLS_export;
|
|
15
|
+
export default _default;
|
|
16
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
17
|
+
new (): {
|
|
18
|
+
$slots: S;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { reactiveOmit } from "@vueuse/core";
|
|
3
|
+
import { Icon } from "@iconify/vue";
|
|
4
|
+
import { useForwardProps } from "reka-ui";
|
|
5
|
+
import {
|
|
6
|
+
DrawerClose,
|
|
7
|
+
DrawerContent,
|
|
8
|
+
DrawerPortal
|
|
9
|
+
} from "vaul-vue";
|
|
10
|
+
import { cn } from "../../../utils/cn";
|
|
11
|
+
import DrawerOverlay from "./DrawerOverlay.vue";
|
|
12
|
+
defineOptions({
|
|
13
|
+
inheritAttrs: false
|
|
14
|
+
});
|
|
15
|
+
const props = defineProps({
|
|
16
|
+
class: { type: null, required: false },
|
|
17
|
+
showCloseButton: { type: Boolean, required: false, default: true }
|
|
18
|
+
});
|
|
19
|
+
const delegatedProps = reactiveOmit(props, "class", "showCloseButton");
|
|
20
|
+
const forwardedProps = useForwardProps(delegatedProps);
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<template>
|
|
24
|
+
<DrawerPortal>
|
|
25
|
+
<DrawerOverlay />
|
|
26
|
+
<DrawerContent
|
|
27
|
+
data-slot="drawer-content"
|
|
28
|
+
v-bind="{ ...$attrs, ...forwardedProps }"
|
|
29
|
+
:class="
|
|
30
|
+
cn(
|
|
31
|
+
'data-[state=closed]:animate-out data-[state=open]:animate-in data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom fixed inset-x-0 bottom-0 z-50 mt-24 flex max-h-[90vh] flex-col gap-4 rounded-t-lg border border-zinc-200 bg-white p-6 shadow-lg outline-hidden',
|
|
32
|
+
props.class
|
|
33
|
+
)
|
|
34
|
+
"
|
|
35
|
+
>
|
|
36
|
+
<div class="mx-auto -mt-2 h-2 w-16 rounded-full bg-zinc-200" />
|
|
37
|
+
|
|
38
|
+
<slot />
|
|
39
|
+
|
|
40
|
+
<DrawerClose
|
|
41
|
+
v-if="showCloseButton"
|
|
42
|
+
data-slot="drawer-close-button"
|
|
43
|
+
class="data-[state=open]:bg-zinc-100 data-[state=open]:text-zinc-700 absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
|
|
44
|
+
>
|
|
45
|
+
<Icon icon="fluent:dismiss-20-filled" />
|
|
46
|
+
<span class="sr-only">Close</span>
|
|
47
|
+
</DrawerClose>
|
|
48
|
+
</DrawerContent>
|
|
49
|
+
</DrawerPortal>
|
|
50
|
+
</template>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
showCloseButton?: boolean;
|
|
5
|
+
};
|
|
6
|
+
declare var __VLS_19: {};
|
|
7
|
+
type __VLS_Slots = {} & {
|
|
8
|
+
default?: (props: typeof __VLS_19) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
11
|
+
showCloseButton: boolean;
|
|
12
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
14
|
+
declare const _default: typeof __VLS_export;
|
|
15
|
+
export default _default;
|
|
16
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
17
|
+
new (): {
|
|
18
|
+
$slots: S;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DrawerDescriptionProps } from 'vaul-vue';
|
|
2
|
+
import type { HTMLAttributes } from 'vue';
|
|
3
|
+
type __VLS_Props = DrawerDescriptionProps & {
|
|
4
|
+
class?: HTMLAttributes['class'];
|
|
5
|
+
};
|
|
6
|
+
declare var __VLS_8: {};
|
|
7
|
+
type __VLS_Slots = {} & {
|
|
8
|
+
default?: (props: typeof __VLS_8) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
14
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
15
|
+
new (): {
|
|
16
|
+
$slots: S;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { reactiveOmit } from "@vueuse/core";
|
|
3
|
+
import { useForwardProps } from "reka-ui";
|
|
4
|
+
import { DrawerDescription } from "vaul-vue";
|
|
5
|
+
import { cn } from "../../../utils/cn";
|
|
6
|
+
defineOptions({
|
|
7
|
+
inheritAttrs: false
|
|
8
|
+
});
|
|
9
|
+
const props = defineProps({
|
|
10
|
+
asChild: { type: Boolean, required: false },
|
|
11
|
+
as: { type: null, required: false },
|
|
12
|
+
class: { type: null, required: false }
|
|
13
|
+
});
|
|
14
|
+
const delegatedProps = reactiveOmit(props, "class");
|
|
15
|
+
const forwardedProps = useForwardProps(delegatedProps);
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<DrawerDescription
|
|
20
|
+
data-slot="drawer-description"
|
|
21
|
+
v-bind="forwardedProps"
|
|
22
|
+
:class="cn('text-zinc-700 text-sm', props.class)"
|
|
23
|
+
>
|
|
24
|
+
<slot />
|
|
25
|
+
</DrawerDescription>
|
|
26
|
+
</template>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DrawerDescriptionProps } from 'vaul-vue';
|
|
2
|
+
import type { HTMLAttributes } from 'vue';
|
|
3
|
+
type __VLS_Props = DrawerDescriptionProps & {
|
|
4
|
+
class?: HTMLAttributes['class'];
|
|
5
|
+
};
|
|
6
|
+
declare var __VLS_8: {};
|
|
7
|
+
type __VLS_Slots = {} & {
|
|
8
|
+
default?: (props: typeof __VLS_8) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
14
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
15
|
+
new (): {
|
|
16
|
+
$slots: S;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_1: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
default?: (props: typeof __VLS_1) => any;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
14
|
+
new (): {
|
|
15
|
+
$slots: S;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { cn } from "../../../utils/cn";
|
|
3
|
+
const props = defineProps({
|
|
4
|
+
class: { type: null, required: false }
|
|
5
|
+
});
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<div
|
|
10
|
+
data-slot="drawer-footer"
|
|
11
|
+
:class="cn('mt-auto flex flex-col gap-2 p-4', props.class)"
|
|
12
|
+
>
|
|
13
|
+
<slot />
|
|
14
|
+
</div>
|
|
15
|
+
</template>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_1: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
default?: (props: typeof __VLS_1) => any;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
14
|
+
new (): {
|
|
15
|
+
$slots: S;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_1: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
default?: (props: typeof __VLS_1) => any;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
14
|
+
new (): {
|
|
15
|
+
$slots: S;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { cn } from "../../../utils/cn";
|
|
3
|
+
const props = defineProps({
|
|
4
|
+
class: { type: null, required: false }
|
|
5
|
+
});
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<div
|
|
10
|
+
data-slot="drawer-header"
|
|
11
|
+
:class="cn('flex flex-col gap-2 p-4 text-center sm:text-left', props.class)"
|
|
12
|
+
>
|
|
13
|
+
<slot />
|
|
14
|
+
</div>
|
|
15
|
+
</template>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_1: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
default?: (props: typeof __VLS_1) => any;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
14
|
+
new (): {
|
|
15
|
+
$slots: S;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { DrawerOverlay } from "vaul-vue";
|
|
3
|
+
import { cn } from "../../../utils/cn";
|
|
4
|
+
const props = defineProps({
|
|
5
|
+
class: { type: null, required: false }
|
|
6
|
+
});
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<template>
|
|
10
|
+
<DrawerOverlay
|
|
11
|
+
data-slot="drawer-overlay"
|
|
12
|
+
:class="
|
|
13
|
+
cn(
|
|
14
|
+
'data-[state=closed]:animate-out data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',
|
|
15
|
+
props.class
|
|
16
|
+
)
|
|
17
|
+
"
|
|
18
|
+
/>
|
|
19
|
+
</template>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DrawerTitleProps } from 'vaul-vue';
|
|
2
|
+
import type { HTMLAttributes } from 'vue';
|
|
3
|
+
type __VLS_Props = DrawerTitleProps & {
|
|
4
|
+
class?: HTMLAttributes['class'];
|
|
5
|
+
};
|
|
6
|
+
declare var __VLS_8: {};
|
|
7
|
+
type __VLS_Slots = {} & {
|
|
8
|
+
default?: (props: typeof __VLS_8) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
14
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
15
|
+
new (): {
|
|
16
|
+
$slots: S;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { reactiveOmit } from "@vueuse/core";
|
|
3
|
+
import { useForwardProps } from "reka-ui";
|
|
4
|
+
import { DrawerTitle } from "vaul-vue";
|
|
5
|
+
import { cn } from "../../../utils/cn";
|
|
6
|
+
defineOptions({
|
|
7
|
+
inheritAttrs: false
|
|
8
|
+
});
|
|
9
|
+
const props = defineProps({
|
|
10
|
+
asChild: { type: Boolean, required: false },
|
|
11
|
+
as: { type: null, required: false },
|
|
12
|
+
class: { type: null, required: false }
|
|
13
|
+
});
|
|
14
|
+
const delegatedProps = reactiveOmit(props, "class");
|
|
15
|
+
const forwardedProps = useForwardProps(delegatedProps);
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<DrawerTitle
|
|
20
|
+
data-slot="drawer-title"
|
|
21
|
+
v-bind="forwardedProps"
|
|
22
|
+
:class="cn('text-lg leading-none font-semibold', props.class)"
|
|
23
|
+
>
|
|
24
|
+
<slot />
|
|
25
|
+
</DrawerTitle>
|
|
26
|
+
</template>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DrawerTitleProps } from 'vaul-vue';
|
|
2
|
+
import type { HTMLAttributes } from 'vue';
|
|
3
|
+
type __VLS_Props = DrawerTitleProps & {
|
|
4
|
+
class?: HTMLAttributes['class'];
|
|
5
|
+
};
|
|
6
|
+
declare var __VLS_8: {};
|
|
7
|
+
type __VLS_Slots = {} & {
|
|
8
|
+
default?: (props: typeof __VLS_8) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
14
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
15
|
+
new (): {
|
|
16
|
+
$slots: S;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DrawerTriggerProps } from 'vaul-vue';
|
|
2
|
+
declare var __VLS_8: {};
|
|
3
|
+
type __VLS_Slots = {} & {
|
|
4
|
+
default?: (props: typeof __VLS_8) => any;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_base: import("vue").DefineComponent<DrawerTriggerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DrawerTriggerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
8
|
+
declare const _default: typeof __VLS_export;
|
|
9
|
+
export default _default;
|
|
10
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
11
|
+
new (): {
|
|
12
|
+
$slots: S;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { DrawerTrigger } from "vaul-vue";
|
|
3
|
+
defineOptions({
|
|
4
|
+
inheritAttrs: false
|
|
5
|
+
});
|
|
6
|
+
const props = defineProps({
|
|
7
|
+
asChild: { type: Boolean, required: false },
|
|
8
|
+
as: { type: null, required: false }
|
|
9
|
+
});
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<template>
|
|
13
|
+
<DrawerTrigger
|
|
14
|
+
data-slot="drawer-trigger"
|
|
15
|
+
v-bind="props"
|
|
16
|
+
>
|
|
17
|
+
<slot />
|
|
18
|
+
</DrawerTrigger>
|
|
19
|
+
</template>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DrawerTriggerProps } from 'vaul-vue';
|
|
2
|
+
declare var __VLS_8: {};
|
|
3
|
+
type __VLS_Slots = {} & {
|
|
4
|
+
default?: (props: typeof __VLS_8) => any;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_base: import("vue").DefineComponent<DrawerTriggerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DrawerTriggerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
8
|
+
declare const _default: typeof __VLS_export;
|
|
9
|
+
export default _default;
|
|
10
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
11
|
+
new (): {
|
|
12
|
+
$slots: S;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as Drawer } from './Drawer.vue.js';
|
|
2
|
+
export { default as DrawerClose } from './DrawerClose.vue.js';
|
|
3
|
+
export { default as DrawerContent } from './DrawerContent.vue.js';
|
|
4
|
+
export { default as DrawerDescription } from './DrawerDescription.vue.js';
|
|
5
|
+
export { default as DrawerFooter } from './DrawerFooter.vue.js';
|
|
6
|
+
export { default as DrawerHeader } from './DrawerHeader.vue.js';
|
|
7
|
+
export { default as DrawerTitle } from './DrawerTitle.vue.js';
|
|
8
|
+
export { default as DrawerTrigger } from './DrawerTrigger.vue.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as Drawer } from "./Drawer.vue";
|
|
2
|
+
export { default as DrawerClose } from "./DrawerClose.vue";
|
|
3
|
+
export { default as DrawerContent } from "./DrawerContent.vue";
|
|
4
|
+
export { default as DrawerDescription } from "./DrawerDescription.vue";
|
|
5
|
+
export { default as DrawerFooter } from "./DrawerFooter.vue";
|
|
6
|
+
export { default as DrawerHeader } from "./DrawerHeader.vue";
|
|
7
|
+
export { default as DrawerTitle } from "./DrawerTitle.vue";
|
|
8
|
+
export { default as DrawerTrigger } from "./DrawerTrigger.vue";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shwfed/nuxt",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.14",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
"reka-ui": "^2.7.0",
|
|
67
67
|
"sortablejs": "^1.15.0",
|
|
68
68
|
"tailwind-merge": "^3.4.0",
|
|
69
|
+
"vaul-vue": "^0.4.1",
|
|
69
70
|
"vue": "^3.5.27",
|
|
70
71
|
"vue-i18n": "^11.2.8",
|
|
71
72
|
"vue-sonner": "^2.0.9",
|