@unsource/ui 1.0.1 → 1.1.0
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/module.mjs +3 -1
- package/dist/runtime/components/Un/Button.d.vue.ts +15 -0
- package/dist/runtime/components/Un/Button.vue +52 -0
- package/dist/runtime/components/Un/Button.vue.d.ts +15 -0
- package/dist/runtime/components/Un/Card.d.vue.ts +21 -0
- package/dist/runtime/components/Un/Card.vue +55 -0
- package/dist/runtime/components/Un/Card.vue.d.ts +21 -0
- package/dist/runtime/components/Un/Chart.d.vue.ts +18 -0
- package/dist/runtime/components/Un/Chart.vue +149 -0
- package/dist/runtime/components/Un/Chart.vue.d.ts +18 -0
- package/dist/runtime/components/Un/Checkbox.d.vue.ts +15 -0
- package/dist/runtime/components/Un/Checkbox.vue +40 -0
- package/dist/runtime/components/Un/Checkbox.vue.d.ts +15 -0
- package/dist/runtime/components/Un/CodeInput.d.vue.ts +6 -0
- package/dist/runtime/components/Un/CodeInput.vue +31 -0
- package/dist/runtime/components/Un/CodeInput.vue.d.ts +6 -0
- package/dist/runtime/components/Un/DiscountCode.d.vue.ts +15 -0
- package/dist/runtime/components/Un/DiscountCode.vue +29 -0
- package/dist/runtime/components/Un/DiscountCode.vue.d.ts +15 -0
- package/dist/runtime/components/Un/Dropdown.d.vue.ts +33 -0
- package/dist/runtime/components/Un/Dropdown.vue +82 -0
- package/dist/runtime/components/Un/Dropdown.vue.d.ts +33 -0
- package/dist/runtime/components/Un/DropdownModal.d.vue.ts +17 -0
- package/dist/runtime/components/Un/DropdownModal.vue +29 -0
- package/dist/runtime/components/Un/DropdownModal.vue.d.ts +17 -0
- package/dist/runtime/components/Un/EmptyData.d.vue.ts +6 -0
- package/dist/runtime/components/Un/EmptyData.vue +13 -0
- package/dist/runtime/components/Un/EmptyData.vue.d.ts +6 -0
- package/dist/runtime/components/Un/IRDatePicker.d.vue.ts +15 -0
- package/dist/runtime/components/Un/IRDatePicker.vue +85 -0
- package/dist/runtime/components/Un/IRDatePicker.vue.d.ts +15 -0
- package/dist/runtime/components/Un/Input.d.vue.ts +51 -0
- package/dist/runtime/components/Un/Input.vue +55 -0
- package/dist/runtime/components/Un/Input.vue.d.ts +51 -0
- package/dist/runtime/components/Un/Label.d.vue.ts +16 -0
- package/dist/runtime/components/Un/Label.vue +19 -0
- package/dist/runtime/components/Un/Label.vue.d.ts +16 -0
- package/dist/runtime/components/Un/Log.d.vue.ts +11 -0
- package/dist/runtime/components/Un/Log.vue +28 -0
- package/dist/runtime/components/Un/Log.vue.d.ts +11 -0
- package/dist/runtime/components/Un/Map.d.vue.ts +17 -0
- package/dist/runtime/components/Un/Map.vue +153 -0
- package/dist/runtime/components/Un/Map.vue.d.ts +17 -0
- package/dist/runtime/components/Un/MultiUploader.d.vue.ts +20 -0
- package/dist/runtime/components/Un/MultiUploader.vue +126 -0
- package/dist/runtime/components/Un/MultiUploader.vue.d.ts +20 -0
- package/dist/runtime/components/Un/NewPWA.d.vue.ts +3 -0
- package/dist/runtime/components/Un/NewPWA.vue +40 -0
- package/dist/runtime/components/Un/NewPWA.vue.d.ts +3 -0
- package/dist/runtime/components/Un/NumberInput.d.vue.ts +16 -0
- package/dist/runtime/components/Un/NumberInput.vue +36 -0
- package/dist/runtime/components/Un/NumberInput.vue.d.ts +16 -0
- package/dist/runtime/components/Un/NuxtIcon.d.vue.ts +9 -0
- package/dist/runtime/components/Un/NuxtIcon.vue +29 -0
- package/dist/runtime/components/Un/NuxtIcon.vue.d.ts +9 -0
- package/dist/runtime/components/Un/PWA.d.vue.ts +3 -0
- package/dist/runtime/components/Un/PWA.vue +17 -0
- package/dist/runtime/components/Un/PWA.vue.d.ts +3 -0
- package/dist/runtime/components/Un/QRCode.d.vue.ts +6 -0
- package/dist/runtime/components/Un/QRCode.vue +10 -0
- package/dist/runtime/components/Un/QRCode.vue.d.ts +6 -0
- package/dist/runtime/components/Un/Range.d.vue.ts +13 -0
- package/dist/runtime/components/Un/Range.vue +56 -0
- package/dist/runtime/components/Un/Range.vue.d.ts +13 -0
- package/dist/runtime/components/Un/Rate.d.vue.ts +10 -0
- package/dist/runtime/components/Un/Rate.vue +9 -0
- package/dist/runtime/components/Un/Rate.vue.d.ts +10 -0
- package/dist/runtime/components/Un/Search.d.vue.ts +21 -0
- package/dist/runtime/components/Un/Search.vue +28 -0
- package/dist/runtime/components/Un/Search.vue.d.ts +21 -0
- package/dist/runtime/components/Un/Searchbar.d.vue.ts +13 -0
- package/dist/runtime/components/Un/Searchbar.vue +35 -0
- package/dist/runtime/components/Un/Searchbar.vue.d.ts +13 -0
- package/dist/runtime/components/Un/Slider.d.vue.ts +9 -0
- package/dist/runtime/components/Un/Slider.vue +18 -0
- package/dist/runtime/components/Un/Slider.vue.d.ts +9 -0
- package/dist/runtime/components/Un/Tab.d.vue.ts +15 -0
- package/dist/runtime/components/Un/Tab.vue +47 -0
- package/dist/runtime/components/Un/Tab.vue.d.ts +15 -0
- package/dist/runtime/components/Un/TableCard.d.vue.ts +22 -0
- package/dist/runtime/components/Un/TableCard.vue +46 -0
- package/dist/runtime/components/Un/TableCard.vue.d.ts +22 -0
- package/dist/runtime/components/Un/TextIcon.d.vue.ts +3 -0
- package/dist/runtime/components/Un/TextIcon.vue +10 -0
- package/dist/runtime/components/Un/TextIcon.vue.d.ts +3 -0
- package/dist/runtime/components/Un/Timer.d.vue.ts +23 -0
- package/dist/runtime/components/Un/Timer.vue +29 -0
- package/dist/runtime/components/Un/Timer.vue.d.ts +23 -0
- package/dist/runtime/components/Un/Toggle/Button.d.vue.ts +11 -0
- package/dist/runtime/components/Un/Toggle/Button.vue +22 -0
- package/dist/runtime/components/Un/Toggle/Button.vue.d.ts +11 -0
- package/dist/runtime/components/Un/Toggle/index.d.vue.ts +11 -0
- package/dist/runtime/components/Un/Toggle/index.vue +22 -0
- package/dist/runtime/components/Un/Toggle/index.vue.d.ts +11 -0
- package/dist/runtime/components/Un/UploadFile.d.vue.ts +24 -0
- package/dist/runtime/components/Un/UploadFile.vue +83 -0
- package/dist/runtime/components/Un/UploadFile.vue.d.ts +24 -0
- package/dist/runtime/components/UnCard.d.vue.ts +28 -5
- package/dist/runtime/components/UnCard.vue +56 -22
- package/dist/runtime/components/UnCard.vue.d.ts +28 -5
- package/dist/runtime/components/UnChips.vue +1 -0
- package/dist/runtime/components/UnNuxtIcon.vue +1 -1
- package/dist/runtime/components/UnSwiperControl.d.vue.ts +8 -0
- package/dist/runtime/components/UnSwiperControl.vue +15 -0
- package/dist/runtime/components/UnSwiperControl.vue.d.ts +8 -0
- package/dist/runtime/components/UnSwiperSlider.d.vue.ts +26 -0
- package/dist/runtime/components/UnSwiperSlider.vue +82 -0
- package/dist/runtime/components/UnSwiperSlider.vue.d.ts +26 -0
- package/package.json +6 -1
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<form
|
|
3
|
+
class="flex flex-col relative"
|
|
4
|
+
@dragenter="hovered=true"
|
|
5
|
+
@dragleave="hovered=false"
|
|
6
|
+
@submit.prevent="upload"
|
|
7
|
+
@dragover.prevent
|
|
8
|
+
@drop.stop.prevent="drop">
|
|
9
|
+
<label
|
|
10
|
+
class="flex justify-center items-stretch bg-transparent rounded-2xl relative overflow-hidden cursor-pointer h-full"
|
|
11
|
+
:class="{'p-2' : !value}">
|
|
12
|
+
<slot name="icon">
|
|
13
|
+
<div v-if="!value || loading"
|
|
14
|
+
class="flex flex-col justify-center items-center gap-3 p-2 border-(2 dashed) rounded-2xl grow"
|
|
15
|
+
:class="label ? 'border-(primary-500)' : 'border-transparent' ">
|
|
16
|
+
<TheNuxtIcon
|
|
17
|
+
v-if="!loading"
|
|
18
|
+
class="flex justify-center items-center text-primary-500 rounded-lg"
|
|
19
|
+
:class="label ? 'text-3xl' : 'text-8xl'"
|
|
20
|
+
:name="icon"/>
|
|
21
|
+
<TheNuxtIcon v-else name="loading" icon-type="svg"/>
|
|
22
|
+
<p class="text-(xs gray-400) font-extrabold text-center">
|
|
23
|
+
{{ label }}
|
|
24
|
+
</p>
|
|
25
|
+
</div>
|
|
26
|
+
<TheNuxtIcon
|
|
27
|
+
v-else
|
|
28
|
+
:name="value"
|
|
29
|
+
class="object-contain bg-gray-100 rounded-lg !w-full !h-full"/>
|
|
30
|
+
</slot>
|
|
31
|
+
<input
|
|
32
|
+
:disabled="!disabled" :accept="accept"
|
|
33
|
+
alt="uploadImage" hidden type="file"
|
|
34
|
+
@change="upload($event.target)"/>
|
|
35
|
+
</label>
|
|
36
|
+
|
|
37
|
+
</form>
|
|
38
|
+
</template>
|
|
39
|
+
|
|
40
|
+
<script setup>
|
|
41
|
+
const props = defineProps({
|
|
42
|
+
edit: {
|
|
43
|
+
type: Boolean,
|
|
44
|
+
default: true
|
|
45
|
+
},
|
|
46
|
+
disabled: {
|
|
47
|
+
type: Boolean,
|
|
48
|
+
default: true
|
|
49
|
+
},
|
|
50
|
+
icon: {
|
|
51
|
+
type: String,
|
|
52
|
+
default: "gallery-add"
|
|
53
|
+
},
|
|
54
|
+
label: {
|
|
55
|
+
type: String,
|
|
56
|
+
default: ""
|
|
57
|
+
},
|
|
58
|
+
accept: {
|
|
59
|
+
type: String,
|
|
60
|
+
default: ""
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
const hovered = ref(false);
|
|
64
|
+
const value = defineModel();
|
|
65
|
+
const drop = (e) => {
|
|
66
|
+
hovered.value = false;
|
|
67
|
+
upload(e.dataTransfer);
|
|
68
|
+
};
|
|
69
|
+
const upload = (evt) => {
|
|
70
|
+
compile(evt.files[0]);
|
|
71
|
+
};
|
|
72
|
+
const loading = ref(false);
|
|
73
|
+
const compile = async (file) => {
|
|
74
|
+
loading.value = true;
|
|
75
|
+
const fm = new FormData();
|
|
76
|
+
fm.append("file", file);
|
|
77
|
+
const { result } = await usePost("/upload", fm);
|
|
78
|
+
if (result) {
|
|
79
|
+
value.value = result;
|
|
80
|
+
}
|
|
81
|
+
loading.value = false;
|
|
82
|
+
};
|
|
83
|
+
</script>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
declare const _default: typeof __VLS_export;
|
|
2
|
+
export default _default;
|
|
3
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
4
|
+
type __VLS_WithSlots<T, S> = T & (new () => {
|
|
5
|
+
$slots: S;
|
|
6
|
+
});
|
|
7
|
+
declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
8
|
+
$props: Partial<typeof props>;
|
|
9
|
+
label: string;
|
|
10
|
+
icon: string;
|
|
11
|
+
disabled: boolean;
|
|
12
|
+
accept: string;
|
|
13
|
+
edit: boolean;
|
|
14
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
15
|
+
type __VLS_Slots = {
|
|
16
|
+
icon?: ((props: {}) => any) | undefined;
|
|
17
|
+
};
|
|
18
|
+
declare const props: {
|
|
19
|
+
readonly label: string;
|
|
20
|
+
readonly icon: string;
|
|
21
|
+
readonly disabled: boolean;
|
|
22
|
+
readonly accept: string;
|
|
23
|
+
readonly edit: boolean;
|
|
24
|
+
};
|
|
@@ -1,14 +1,37 @@
|
|
|
1
1
|
type __VLS_Props = {
|
|
2
2
|
direction?: 'column' | 'row' | 'row-reverse' | 'column-reverse';
|
|
3
|
-
customClass?: Record<'main' | 'body' | 'title' | 'tags' | 'tag' | 'description' | 'footer' | 'image' | 'avatar', string>;
|
|
3
|
+
customClass?: Record<'main' | 'body' | 'slider' | 'sliderWrapper' | 'sliderSlides' | 'title' | 'tags' | 'tag' | 'description' | 'footer' | 'image' | 'avatar', string>;
|
|
4
|
+
item: {
|
|
5
|
+
title?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
image?: string;
|
|
8
|
+
avatar?: string;
|
|
9
|
+
images?: string[];
|
|
10
|
+
tags?: {
|
|
11
|
+
value?: string;
|
|
12
|
+
icon?: string;
|
|
13
|
+
variant?: string;
|
|
14
|
+
}[];
|
|
15
|
+
};
|
|
16
|
+
to?: string;
|
|
17
|
+
};
|
|
18
|
+
declare var __VLS_28: {
|
|
19
|
+
item: any;
|
|
20
|
+
}, __VLS_35: {
|
|
21
|
+
item: any;
|
|
22
|
+
}, __VLS_37: {
|
|
23
|
+
item: any;
|
|
24
|
+
}, __VLS_39: {
|
|
25
|
+
item: any;
|
|
4
26
|
};
|
|
5
|
-
declare var __VLS_22: {}, __VLS_24: {}, __VLS_26: {};
|
|
6
27
|
type __VLS_Slots = {} & {
|
|
7
|
-
|
|
28
|
+
body?: (props: typeof __VLS_28) => any;
|
|
29
|
+
} & {
|
|
30
|
+
header?: (props: typeof __VLS_35) => any;
|
|
8
31
|
} & {
|
|
9
|
-
footerStart?: (props: typeof
|
|
32
|
+
footerStart?: (props: typeof __VLS_37) => any;
|
|
10
33
|
} & {
|
|
11
|
-
footerEnd?: (props: typeof
|
|
34
|
+
footerEnd?: (props: typeof __VLS_39) => any;
|
|
12
35
|
};
|
|
13
36
|
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>;
|
|
14
37
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -2,38 +2,73 @@
|
|
|
2
2
|
<NuxtLink
|
|
3
3
|
class="flex items-stretch bg-white rounded-2xl overflow-hidden"
|
|
4
4
|
:class="headerClass[direction]"
|
|
5
|
-
|
|
5
|
+
no-prefetch
|
|
6
|
+
:to="to"
|
|
6
7
|
>
|
|
7
8
|
<UnNuxtIcon
|
|
9
|
+
v-if="item.image"
|
|
8
10
|
class="grow-1 basis-1"
|
|
9
|
-
:class="customClass.image"
|
|
10
|
-
name="
|
|
11
|
+
:class="[customClass.image, { 'min-h-50': direction.includes('column') }]"
|
|
12
|
+
:name="item.image"
|
|
11
13
|
icon-type="img"
|
|
12
14
|
/>
|
|
15
|
+
<UnSwiperSlider
|
|
16
|
+
v-else-if="item.images"
|
|
17
|
+
:items="item.images || []"
|
|
18
|
+
:slides="1"
|
|
19
|
+
:navigation="true"
|
|
20
|
+
:pagination="true"
|
|
21
|
+
:initial-slide="0"
|
|
22
|
+
:slide-class="`!px-0 ${customClass.sliderSlides}`"
|
|
23
|
+
:wrapper-class="`!px-0 ${customClass.sliderWrapper}`"
|
|
24
|
+
:class="[customClass.slider, direction.includes('column') ? 'h-50' : 'w-50', 'aspect-square']"
|
|
25
|
+
:autoplay="{
|
|
26
|
+
delay: 1e3,
|
|
27
|
+
disableOnInteraction: false
|
|
28
|
+
}"
|
|
29
|
+
>
|
|
30
|
+
<template #default="{ item }">
|
|
31
|
+
<div class="h-full self-stretch max-w-screen">
|
|
32
|
+
<UnNuxtIcon
|
|
33
|
+
:name="item"
|
|
34
|
+
icon-type="img"
|
|
35
|
+
class="object-cover !w-full !h-full"
|
|
36
|
+
/>
|
|
37
|
+
</div>
|
|
38
|
+
</template>
|
|
39
|
+
</UnSwiperSlider>
|
|
13
40
|
<div
|
|
14
41
|
:class="customClass.main"
|
|
15
42
|
class="flex flex-col items-stretch grow-2.5 basis-2.5"
|
|
16
43
|
>
|
|
17
44
|
<div
|
|
18
45
|
:class="customClass.body"
|
|
19
|
-
class="flex gap-2 items-stretch p-3"
|
|
46
|
+
class="flex gap-2 items-stretch p-3 grow"
|
|
20
47
|
>
|
|
21
48
|
<UnNuxtIcon
|
|
49
|
+
v-if="item.avatar"
|
|
22
50
|
:class="customClass.avatar"
|
|
23
|
-
:name="
|
|
51
|
+
:name="item.avatar"
|
|
24
52
|
icon-type="img"
|
|
25
53
|
class="!object-cover shrink-0 w-14 h-14 aspect-square rounded-full border-(2 solid primary-500)"
|
|
26
54
|
/>
|
|
27
55
|
<div class="flex justify-start flex-col gap-1 grow-1">
|
|
28
56
|
<h3
|
|
57
|
+
v-if="item.title"
|
|
29
58
|
:class="customClass.title"
|
|
30
59
|
class="text-(lg gray-600) font-medium"
|
|
31
60
|
>{{ item.title }}</h3>
|
|
32
61
|
<small
|
|
62
|
+
v-if="item.description"
|
|
33
63
|
:class="customClass.description"
|
|
34
64
|
class="text-(base gray-500)"
|
|
35
65
|
>{{ item.description }}</small>
|
|
66
|
+
<slot
|
|
67
|
+
name="body"
|
|
68
|
+
:item="item"
|
|
69
|
+
/>
|
|
36
70
|
<div
|
|
71
|
+
v-if="item.tags?.length"
|
|
37
72
|
:class="customClass.tags"
|
|
38
73
|
class="flex items-center justify-start gap-2"
|
|
39
74
|
>
|
|
@@ -49,24 +84,35 @@
|
|
|
49
84
|
/>
|
|
50
85
|
</div>
|
|
51
86
|
</div>
|
|
52
|
-
<slot
|
|
87
|
+
<slot
|
|
88
|
+
name="header"
|
|
89
|
+
:item="item"
|
|
90
|
+
/>
|
|
53
91
|
</div>
|
|
54
92
|
<div
|
|
55
93
|
v-if="$slots.footerStart || $slots.footerEnd"
|
|
56
94
|
:class="customClass.footer"
|
|
57
95
|
class="flex justify-between items-stretch border-t-(2 dashed border) p-3"
|
|
58
96
|
>
|
|
59
|
-
<slot
|
|
60
|
-
|
|
97
|
+
<slot
|
|
98
|
+
name="footerStart"
|
|
99
|
+
:item="item"
|
|
100
|
+
/>
|
|
101
|
+
<slot
|
|
102
|
+
name="footerEnd"
|
|
103
|
+
:item="item"
|
|
104
|
+
/>
|
|
61
105
|
</div>
|
|
62
106
|
</div>
|
|
63
107
|
</NuxtLink>
|
|
64
108
|
</template>
|
|
65
109
|
|
|
66
110
|
<script setup>
|
|
67
|
-
const { direction = "
|
|
111
|
+
const { direction = "column", customClass = {}, to = "#" } = defineProps({
|
|
68
112
|
direction: { type: String, required: false },
|
|
69
|
-
customClass: { type: Object, required: false }
|
|
113
|
+
customClass: { type: Object, required: false },
|
|
114
|
+
item: { type: Object, required: true },
|
|
115
|
+
to: { type: String, required: false }
|
|
70
116
|
});
|
|
71
117
|
const headerClass = {
|
|
72
118
|
"column": "flex-col",
|
|
@@ -74,16 +120,4 @@ const headerClass = {
|
|
|
74
120
|
"row-reverse": "flex-row-reverse",
|
|
75
121
|
"column-reverse": "flex-col-reverse"
|
|
76
122
|
};
|
|
77
|
-
const item = {
|
|
78
|
-
title: "\u062A\u0633\u062A",
|
|
79
|
-
description: "\u0644\u0648\u0631\u0645 \u0627\u06CC\u067E\u0633\u0648\u0645 \u0645\u062A\u0646 \u0633\u0627\u062E\u062A\u06AF\u06CC \u0628\u0627 \u062A\u0648\u0644\u06CC\u062F \u0633\u0627\u062F\u06AF\u06CC \u0646\u0627\u0645\u0641\u0647\u0648\u0645 \u0627\u0632 \u0635\u0646\u0639\u062A \u0686\u0627\u067E \u0648 \u0628\u0627 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0627\u0632 \u0637\u0631\u0627\u062D\u0627\u0646 \u06AF\u0631\u0627\u0641\u06CC\u06A9 \u0627\u0633\u062A ",
|
|
80
|
-
tags: [
|
|
81
|
-
{
|
|
82
|
-
value: "\u062A\u0633\u062A"
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
value: "\u062A\u0633\u062A"
|
|
86
|
-
}
|
|
87
|
-
]
|
|
88
|
-
};
|
|
89
123
|
</script>
|
|
@@ -1,14 +1,37 @@
|
|
|
1
1
|
type __VLS_Props = {
|
|
2
2
|
direction?: 'column' | 'row' | 'row-reverse' | 'column-reverse';
|
|
3
|
-
customClass?: Record<'main' | 'body' | 'title' | 'tags' | 'tag' | 'description' | 'footer' | 'image' | 'avatar', string>;
|
|
3
|
+
customClass?: Record<'main' | 'body' | 'slider' | 'sliderWrapper' | 'sliderSlides' | 'title' | 'tags' | 'tag' | 'description' | 'footer' | 'image' | 'avatar', string>;
|
|
4
|
+
item: {
|
|
5
|
+
title?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
image?: string;
|
|
8
|
+
avatar?: string;
|
|
9
|
+
images?: string[];
|
|
10
|
+
tags?: {
|
|
11
|
+
value?: string;
|
|
12
|
+
icon?: string;
|
|
13
|
+
variant?: string;
|
|
14
|
+
}[];
|
|
15
|
+
};
|
|
16
|
+
to?: string;
|
|
17
|
+
};
|
|
18
|
+
declare var __VLS_28: {
|
|
19
|
+
item: any;
|
|
20
|
+
}, __VLS_35: {
|
|
21
|
+
item: any;
|
|
22
|
+
}, __VLS_37: {
|
|
23
|
+
item: any;
|
|
24
|
+
}, __VLS_39: {
|
|
25
|
+
item: any;
|
|
4
26
|
};
|
|
5
|
-
declare var __VLS_22: {}, __VLS_24: {}, __VLS_26: {};
|
|
6
27
|
type __VLS_Slots = {} & {
|
|
7
|
-
|
|
28
|
+
body?: (props: typeof __VLS_28) => any;
|
|
29
|
+
} & {
|
|
30
|
+
header?: (props: typeof __VLS_35) => any;
|
|
8
31
|
} & {
|
|
9
|
-
footerStart?: (props: typeof
|
|
32
|
+
footerStart?: (props: typeof __VLS_37) => any;
|
|
10
33
|
} & {
|
|
11
|
-
footerEnd?: (props: typeof
|
|
34
|
+
footerEnd?: (props: typeof __VLS_39) => any;
|
|
12
35
|
};
|
|
13
36
|
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>;
|
|
14
37
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
name?: string;
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
5
|
+
swiper: any;
|
|
6
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script setup>
|
|
6
|
+
const props = defineProps({
|
|
7
|
+
name: { type: String, required: false }
|
|
8
|
+
});
|
|
9
|
+
const swiper = useState(props.name || "stepperSwiper");
|
|
10
|
+
swiper.value = useSwiper();
|
|
11
|
+
defineExpose({ swiper });
|
|
12
|
+
onUnmounted(() => {
|
|
13
|
+
swiper.value = void 0;
|
|
14
|
+
});
|
|
15
|
+
</script>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
name?: string;
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
5
|
+
swiper: any;
|
|
6
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import 'swiper/css/pagination';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
slideClass?: string;
|
|
4
|
+
wrapperClass?: string;
|
|
5
|
+
items: any[];
|
|
6
|
+
name?: string;
|
|
7
|
+
slides: number | 'auto';
|
|
8
|
+
navigation?: boolean;
|
|
9
|
+
pagination?: boolean;
|
|
10
|
+
initialSlide?: number;
|
|
11
|
+
};
|
|
12
|
+
declare var __VLS_11: {
|
|
13
|
+
item: any;
|
|
14
|
+
};
|
|
15
|
+
type __VLS_Slots = {} & {
|
|
16
|
+
default?: (props: typeof __VLS_11) => any;
|
|
17
|
+
};
|
|
18
|
+
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>;
|
|
19
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
20
|
+
declare const _default: typeof __VLS_export;
|
|
21
|
+
export default _default;
|
|
22
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
23
|
+
new (): {
|
|
24
|
+
$slots: S;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
class="flex flex-col relative"
|
|
4
|
+
dir="ltr"
|
|
5
|
+
>
|
|
6
|
+
<Swiper
|
|
7
|
+
class="!w-full !h-full grow children:(flex) px-3"
|
|
8
|
+
:class="wrapperClass"
|
|
9
|
+
:slides-per-view="slides"
|
|
10
|
+
:space-between="0"
|
|
11
|
+
:loop="false"
|
|
12
|
+
:pagination="pagination"
|
|
13
|
+
:keyboard="true"
|
|
14
|
+
:modules="modules"
|
|
15
|
+
:initial-slide="initialSlide || 0"
|
|
16
|
+
:simulate-touch="true"
|
|
17
|
+
:autoplay="{
|
|
18
|
+
delay: 5e3,
|
|
19
|
+
disableOnInteraction: false,
|
|
20
|
+
pauseOnMouseEnter: true
|
|
21
|
+
}"
|
|
22
|
+
>
|
|
23
|
+
<!-- <TheSwiperControl :name="name"/> -->
|
|
24
|
+
<SwiperSlide
|
|
25
|
+
v-for="(item, index) in items"
|
|
26
|
+
:key="index"
|
|
27
|
+
class="!flex flex-col !self-stretch !items-center transition-all"
|
|
28
|
+
:class="slideClass"
|
|
29
|
+
>
|
|
30
|
+
<slot :item="item" />
|
|
31
|
+
</SwiperSlide>
|
|
32
|
+
</Swiper>
|
|
33
|
+
</div>
|
|
34
|
+
</template>
|
|
35
|
+
|
|
36
|
+
<script setup>
|
|
37
|
+
import "swiper/css/pagination";
|
|
38
|
+
import { Autoplay } from "swiper/modules";
|
|
39
|
+
import { SwiperNavigation, SwiperPagination } from "#imports";
|
|
40
|
+
defineProps({
|
|
41
|
+
slideClass: { type: String, required: false },
|
|
42
|
+
wrapperClass: { type: String, required: false },
|
|
43
|
+
items: { type: Array, required: true },
|
|
44
|
+
name: { type: String, required: false },
|
|
45
|
+
slides: { type: [Number, String], required: true },
|
|
46
|
+
navigation: { type: Boolean, required: false },
|
|
47
|
+
pagination: { type: Boolean, required: false },
|
|
48
|
+
initialSlide: { type: Number, required: false }
|
|
49
|
+
});
|
|
50
|
+
const modules = [SwiperPagination, SwiperNavigation, Autoplay];
|
|
51
|
+
</script>
|
|
52
|
+
|
|
53
|
+
<style>
|
|
54
|
+
.swiper {
|
|
55
|
+
@apply static;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.swiper-pagination {
|
|
59
|
+
@apply absolute bottom-5 !left-auto right-1/2 transform translate-x-1/2 z-10 flex justify-center items-center bg-white/10 !w-fit px-2 py-1.5 rounded-full backdrop-blur-md;
|
|
60
|
+
}
|
|
61
|
+
.swiper-pagination .swiper-pagination-bullet {
|
|
62
|
+
@apply bg-gray-400 w-4 h-1.5 rounded-full !important;
|
|
63
|
+
}
|
|
64
|
+
.swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
|
|
65
|
+
@apply bg-white !important;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.swiper-button-next, .swiper-button-prev {
|
|
69
|
+
@apply w-12 w-12 h-12 bg-secondary-900 rounded-1/2;
|
|
70
|
+
}
|
|
71
|
+
.swiper-button-next::after, .swiper-button-prev::after {
|
|
72
|
+
@apply text-white transform text-lg;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.swiper-button-prev::after {
|
|
76
|
+
@apply translate-x-1/4;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.swiper-button-next::after {
|
|
80
|
+
@apply -translate-x-1/4;
|
|
81
|
+
}
|
|
82
|
+
</style>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import 'swiper/css/pagination';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
slideClass?: string;
|
|
4
|
+
wrapperClass?: string;
|
|
5
|
+
items: any[];
|
|
6
|
+
name?: string;
|
|
7
|
+
slides: number | 'auto';
|
|
8
|
+
navigation?: boolean;
|
|
9
|
+
pagination?: boolean;
|
|
10
|
+
initialSlide?: number;
|
|
11
|
+
};
|
|
12
|
+
declare var __VLS_11: {
|
|
13
|
+
item: any;
|
|
14
|
+
};
|
|
15
|
+
type __VLS_Slots = {} & {
|
|
16
|
+
default?: (props: typeof __VLS_11) => any;
|
|
17
|
+
};
|
|
18
|
+
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>;
|
|
19
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
20
|
+
declare const _default: typeof __VLS_export;
|
|
21
|
+
export default _default;
|
|
22
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
23
|
+
new (): {
|
|
24
|
+
$slots: S;
|
|
25
|
+
};
|
|
26
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unsource/ui",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "My new Nuxt module",
|
|
6
6
|
"repository": "your-org/my-module",
|
|
@@ -35,7 +35,10 @@
|
|
|
35
35
|
"test:types": "vue-tsc --noEmit && cd playground && vue-tsc --noEmit"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
+
"@neshan-maps-platform/vue3-openlayers": "^2.0.1",
|
|
38
39
|
"@nuxt/kit": "^4.1.3",
|
|
40
|
+
"nuxt-swiper": "^1.2.2",
|
|
41
|
+
"swiper": "^11.2.10",
|
|
39
42
|
"unocss-preset-scrollbar": "^3.2.0"
|
|
40
43
|
},
|
|
41
44
|
"devDependencies": {
|
|
@@ -51,6 +54,8 @@
|
|
|
51
54
|
"changelogen": "^0.6.2",
|
|
52
55
|
"eslint": "^9.37.0",
|
|
53
56
|
"nuxt": "^3.19.3",
|
|
57
|
+
"sass": "^1.93.2",
|
|
58
|
+
"sass-embedded": "^1.93.2",
|
|
54
59
|
"typescript": "~5.9.3",
|
|
55
60
|
"unocss": "^66.5.3",
|
|
56
61
|
"vitest": "^3.2.4",
|