@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.
Files changed (35) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/runtime/components/modal.d.vue.ts +51 -0
  3. package/dist/runtime/components/modal.vue +139 -0
  4. package/dist/runtime/components/modal.vue.d.ts +51 -0
  5. package/dist/runtime/components/ui/button-configurator/ButtonConfiguratorDialog.vue +31 -15
  6. package/dist/runtime/components/ui/drawer/Drawer.d.vue.ts +31 -0
  7. package/dist/runtime/components/ui/drawer/Drawer.vue +38 -0
  8. package/dist/runtime/components/ui/drawer/Drawer.vue.d.ts +31 -0
  9. package/dist/runtime/components/ui/drawer/DrawerClose.d.vue.ts +14 -0
  10. package/dist/runtime/components/ui/drawer/DrawerClose.vue +19 -0
  11. package/dist/runtime/components/ui/drawer/DrawerClose.vue.d.ts +14 -0
  12. package/dist/runtime/components/ui/drawer/DrawerContent.d.vue.ts +20 -0
  13. package/dist/runtime/components/ui/drawer/DrawerContent.vue +50 -0
  14. package/dist/runtime/components/ui/drawer/DrawerContent.vue.d.ts +20 -0
  15. package/dist/runtime/components/ui/drawer/DrawerDescription.d.vue.ts +18 -0
  16. package/dist/runtime/components/ui/drawer/DrawerDescription.vue +26 -0
  17. package/dist/runtime/components/ui/drawer/DrawerDescription.vue.d.ts +18 -0
  18. package/dist/runtime/components/ui/drawer/DrawerFooter.d.vue.ts +17 -0
  19. package/dist/runtime/components/ui/drawer/DrawerFooter.vue +15 -0
  20. package/dist/runtime/components/ui/drawer/DrawerFooter.vue.d.ts +17 -0
  21. package/dist/runtime/components/ui/drawer/DrawerHeader.d.vue.ts +17 -0
  22. package/dist/runtime/components/ui/drawer/DrawerHeader.vue +15 -0
  23. package/dist/runtime/components/ui/drawer/DrawerHeader.vue.d.ts +17 -0
  24. package/dist/runtime/components/ui/drawer/DrawerOverlay.d.vue.ts +7 -0
  25. package/dist/runtime/components/ui/drawer/DrawerOverlay.vue +19 -0
  26. package/dist/runtime/components/ui/drawer/DrawerOverlay.vue.d.ts +7 -0
  27. package/dist/runtime/components/ui/drawer/DrawerTitle.d.vue.ts +18 -0
  28. package/dist/runtime/components/ui/drawer/DrawerTitle.vue +26 -0
  29. package/dist/runtime/components/ui/drawer/DrawerTitle.vue.d.ts +18 -0
  30. package/dist/runtime/components/ui/drawer/DrawerTrigger.d.vue.ts +14 -0
  31. package/dist/runtime/components/ui/drawer/DrawerTrigger.vue +19 -0
  32. package/dist/runtime/components/ui/drawer/DrawerTrigger.vue.d.ts +14 -0
  33. package/dist/runtime/components/ui/drawer/index.d.ts +8 -0
  34. package/dist/runtime/components/ui/drawer/index.js +8 -0
  35. package/package.json +2 -1
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@shwfed/nuxt",
3
3
  "configKey": "shwfed",
4
- "version": "0.10.12",
4
+ "version": "0.10.14",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "3.6.1"
@@ -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).map((item) => ({
112
- itemId: item.itemId,
113
- depth: item.depth,
114
- label: getNodeLabel(item.item),
115
- type: item.item.type,
116
- id: item.item.id
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.item);
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.item),
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.item),
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.item),
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.item)
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(item) {
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.12",
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",