edvoyui-component-library-test-flight 0.0.181 → 0.0.183
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/edvoy-ui.cjs.js +24 -24
- package/dist/edvoy-ui.css +1 -1
- package/dist/edvoy-ui.es.js +3552 -3739
- package/dist/edvoy-ui.umd.js +35 -35
- package/dist/modal/EUIModal.vue.d.ts +1 -1
- package/dist/modal/EUIModal.vue.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/components/index.ts +0 -1
- package/src/components/modal/EUIModal.vue +89 -85
- package/src/components/searchTagSelect/EUISearchTagSelect.stories.ts +217 -0
- package/dist/EUISelectSearch.vue.d.ts +0 -4
- package/dist/EUISelectSearch.vue.d.ts.map +0 -1
- package/src/components/selectSearch/EUISelectSearch.vue +0 -23
- package/src/components/selectSearch/EUISelectSearch.vue.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from "/Volumes/work/repos/edvoy-ui-v2/src/components/modal/EUIModal.vue?vue&type=script&lang.ts";
|
|
2
|
-
import "/Volumes/work/repos/edvoy-ui-v2/src/components/modal/EUIModal.vue?vue&type=style&index=0&scoped=
|
|
2
|
+
import "/Volumes/work/repos/edvoy-ui-v2/src/components/modal/EUIModal.vue?vue&type=style&index=0&scoped=df346633&lang.scss";
|
|
3
3
|
declare const _default: any;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=EUIModal.vue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EUIModal.vue.d.ts","sourceRoot":"","sources":["../../src/components/modal/EUIModal.vue"],"names":[],"mappings":"AACA,cAAc,2FAA2F,CAAC;
|
|
1
|
+
{"version":3,"file":"EUIModal.vue.d.ts","sourceRoot":"","sources":["../../src/components/modal/EUIModal.vue"],"names":[],"mappings":"AACA,cAAc,2FAA2F,CAAC;AAiG1G,OAAO,oHAAoH,CAAC;;AAE5H,wBAAmH"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "edvoyui-component-library-test-flight",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.183",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist/",
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"exports": {
|
|
16
16
|
".": {
|
|
17
17
|
"import": "./dist/edvoy-ui.es.js",
|
|
18
|
-
"require": "./dist/edvoy-ui.umd.js"
|
|
18
|
+
"require": "./dist/edvoy-ui.umd.js",
|
|
19
|
+
"types": "./dist/types/index.d.ts"
|
|
19
20
|
},
|
|
20
21
|
"./style": "./dist/edvoy-ui.css",
|
|
21
22
|
"./dist/edvoy-ui.css": "./dist/edvoy-ui.css"
|
package/src/components/index.ts
CHANGED
|
@@ -8,7 +8,6 @@ export { default as EUITextArea } from "./textArea/EUITextArea.vue";
|
|
|
8
8
|
export { default as EUINumberInput } from "./input/EUINumberInput.vue";
|
|
9
9
|
|
|
10
10
|
export { default as EUISelect } from "./select/EUISelect.vue";
|
|
11
|
-
export { default as EUISelectSearch } from "./selectSearch/EUISelectSearch.vue";
|
|
12
11
|
export { default as EUICheckbox } from "./checkbox/EUICheckbox.vue";
|
|
13
12
|
export { default as EUIRadio } from "./radio/EUIRadio.vue";
|
|
14
13
|
export { default as EUIToggle } from "./toggle/EUIToggle.vue";
|
|
@@ -1,102 +1,106 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
<
|
|
5
|
-
v-if="isVisible"
|
|
6
|
-
class="fixed z-50 flex flex-col items-center justify-end inset-2 modal-wrapper"
|
|
7
|
-
:class="[
|
|
8
|
-
placement === 'top'
|
|
9
|
-
? 'sm:justify-start'
|
|
10
|
-
: placement === 'bottom'
|
|
11
|
-
? 'sm:justify-end'
|
|
12
|
-
: 'sm:justify-center',
|
|
13
|
-
]"
|
|
14
|
-
@click.self="closeModal"
|
|
15
|
-
>
|
|
16
|
-
<div
|
|
17
|
-
class="backdrop fixed inset-0 z-[-1] w-screen h-screen bg-black/25 pointer-events-none overflow-hidden cursor-auto backdrop-blur-sm"
|
|
18
|
-
></div>
|
|
2
|
+
<div>
|
|
3
|
+
<Teleport defer to="body">
|
|
4
|
+
<Transition name="modal" appear>
|
|
19
5
|
<div
|
|
6
|
+
v-if="isVisible"
|
|
7
|
+
class="fixed z-50 flex flex-col items-center justify-end inset-2 modal-wrapper"
|
|
20
8
|
:class="[
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
: 'max-h-[calc(100vh-3rem)] md:h-auto',
|
|
9
|
+
placement === 'top'
|
|
10
|
+
? 'sm:justify-start'
|
|
11
|
+
: placement === 'bottom'
|
|
12
|
+
? 'sm:justify-end'
|
|
13
|
+
: 'sm:justify-center',
|
|
27
14
|
]"
|
|
15
|
+
@click.self="closeModal"
|
|
28
16
|
>
|
|
29
|
-
<template v-if="$slots.header">
|
|
30
|
-
<slot name="header"></slot>
|
|
31
|
-
</template>
|
|
32
17
|
<div
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
18
|
+
class="backdrop fixed inset-0 z-[-1] w-screen h-screen bg-black/25 pointer-events-none overflow-hidden cursor-auto backdrop-blur-sm"
|
|
19
|
+
></div>
|
|
20
|
+
<div
|
|
21
|
+
:class="[
|
|
22
|
+
'bg-white shadow-lg w-full overflow-hidden relative flex flex-col justify-between modal-container',
|
|
23
|
+
slideClass,
|
|
24
|
+
roundedClass !== ''
|
|
25
|
+
? roundedClass
|
|
26
|
+
: 'rounded-t-3xl md:rounded-2xl',
|
|
27
|
+
size === 'full'
|
|
28
|
+
? 'h-full max-h-svh'
|
|
29
|
+
: 'max-h-[calc(100vh-3rem)] md:h-auto',
|
|
30
|
+
]"
|
|
36
31
|
>
|
|
37
|
-
<
|
|
38
|
-
<slot name="
|
|
39
|
-
</
|
|
40
|
-
<div
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
>
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
aria-hidden="true"
|
|
54
|
-
class="w-5 h-5"
|
|
32
|
+
<template v-if="$slots.header">
|
|
33
|
+
<slot name="header"></slot>
|
|
34
|
+
</template>
|
|
35
|
+
<div
|
|
36
|
+
v-else
|
|
37
|
+
class="flex flex-row items-center justify-between font-medium text-gray-700"
|
|
38
|
+
:class="slimHeader ? 'p-4 text-base' : 'p-6 text-lg'"
|
|
39
|
+
>
|
|
40
|
+
<h3 class="text-xl font-semibold">
|
|
41
|
+
<slot name="title">{{ title || "Modal Title" }}</slot>
|
|
42
|
+
</h3>
|
|
43
|
+
<div v-if="visibleClose" class="flex-initial">
|
|
44
|
+
<button
|
|
45
|
+
type="button"
|
|
46
|
+
class="flex items-center justify-center text-gray-400 bg-white hover:bg-gray-50 rounded-3xl hover:text-gray-600 size-8"
|
|
47
|
+
@click="closeModal"
|
|
55
48
|
>
|
|
56
|
-
<
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
49
|
+
<span class="sr-only">Close</span>
|
|
50
|
+
<svg
|
|
51
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
52
|
+
fill="none"
|
|
53
|
+
viewBox="0 0 24 24"
|
|
54
|
+
stroke-width="2"
|
|
55
|
+
stroke="currentColor"
|
|
56
|
+
aria-hidden="true"
|
|
57
|
+
class="w-5 h-5"
|
|
58
|
+
>
|
|
59
|
+
<path
|
|
60
|
+
stroke-linecap="round"
|
|
61
|
+
stroke-linejoin="round"
|
|
62
|
+
d="M6 18L18 6M6 6l12 12"
|
|
63
|
+
></path>
|
|
64
|
+
</svg>
|
|
65
|
+
</button>
|
|
66
|
+
</div>
|
|
63
67
|
</div>
|
|
64
|
-
</div>
|
|
65
|
-
|
|
66
|
-
<template v-if="$slots.content">
|
|
67
|
-
<slot name="content"></slot>
|
|
68
|
-
</template>
|
|
69
|
-
<div
|
|
70
|
-
v-else
|
|
71
|
-
class="p-4 border-t border-b border-gray-200 max-h-[calc(100vh-3rem)] flex-1"
|
|
72
|
-
>
|
|
73
|
-
<slot></slot>
|
|
74
|
-
</div>
|
|
75
68
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
>
|
|
83
|
-
<button
|
|
84
|
-
@click="closeModal"
|
|
85
|
-
class="px-4 py-2 text-base font-semibold tracking-wide text-gray-600 transition-colors duration-75 bg-white rounded-md hover:bg-gray-100"
|
|
69
|
+
<template v-if="$slots.content">
|
|
70
|
+
<slot name="content"></slot>
|
|
71
|
+
</template>
|
|
72
|
+
<div
|
|
73
|
+
v-else
|
|
74
|
+
class="p-4 border-t border-b border-gray-200 max-h-[calc(100vh-3rem)] flex-1"
|
|
86
75
|
>
|
|
87
|
-
|
|
88
|
-
</
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
76
|
+
<slot></slot>
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
<template v-if="$slots.footer">
|
|
80
|
+
<slot name="footer"></slot>
|
|
81
|
+
</template>
|
|
82
|
+
<div
|
|
83
|
+
v-else
|
|
84
|
+
class="sticky bottom-0 flex items-center justify-end float-none p-4 space-x-2"
|
|
92
85
|
>
|
|
93
|
-
|
|
94
|
-
|
|
86
|
+
<button
|
|
87
|
+
@click="closeModal"
|
|
88
|
+
class="px-4 py-2 text-base font-semibold tracking-wide text-gray-600 transition-colors duration-75 bg-white rounded-md hover:bg-gray-100"
|
|
89
|
+
>
|
|
90
|
+
Cancel
|
|
91
|
+
</button>
|
|
92
|
+
<button
|
|
93
|
+
@click="$emit('confirm')"
|
|
94
|
+
class="px-4 py-2 text-base font-semibold tracking-wide text-white transition-colors duration-75 bg-purple-600 rounded-md hover:bg-purple-700"
|
|
95
|
+
>
|
|
96
|
+
Confirm
|
|
97
|
+
</button>
|
|
98
|
+
</div>
|
|
95
99
|
</div>
|
|
96
100
|
</div>
|
|
97
|
-
</
|
|
98
|
-
</
|
|
99
|
-
</
|
|
101
|
+
</Transition>
|
|
102
|
+
</Teleport>
|
|
103
|
+
</div>
|
|
100
104
|
</template>
|
|
101
105
|
|
|
102
106
|
<script lang="ts">
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/vue3";
|
|
2
|
+
import EUISearchTagSelect from "./EUISearchTagSelect.vue";
|
|
3
|
+
|
|
4
|
+
const meta = {
|
|
5
|
+
title: "Forms/SearchTagSelect",
|
|
6
|
+
component: EUISearchTagSelect,
|
|
7
|
+
tags: ["autodocs"],
|
|
8
|
+
argTypes: {
|
|
9
|
+
modelValue: {
|
|
10
|
+
control: "object",
|
|
11
|
+
description: "The currently selected values (array of items).",
|
|
12
|
+
},
|
|
13
|
+
items: {
|
|
14
|
+
control: "object",
|
|
15
|
+
description:
|
|
16
|
+
"Array of available options. Each should have value, label, and name properties.",
|
|
17
|
+
},
|
|
18
|
+
placeholder: {
|
|
19
|
+
control: "text",
|
|
20
|
+
description: "Placeholder text for the search input.",
|
|
21
|
+
},
|
|
22
|
+
label: {
|
|
23
|
+
control: "text",
|
|
24
|
+
description: "Label for the search tag select field.",
|
|
25
|
+
},
|
|
26
|
+
name: {
|
|
27
|
+
control: "text",
|
|
28
|
+
description: "Name attribute of the input field.",
|
|
29
|
+
},
|
|
30
|
+
selectType: {
|
|
31
|
+
control: "select",
|
|
32
|
+
options: ["single", "multiple"],
|
|
33
|
+
description: "Whether to allow single or multiple selections.",
|
|
34
|
+
defaultValue: "multiple",
|
|
35
|
+
},
|
|
36
|
+
errors: {
|
|
37
|
+
control: "object",
|
|
38
|
+
description: "Validation error messages object.",
|
|
39
|
+
},
|
|
40
|
+
required: {
|
|
41
|
+
control: "boolean",
|
|
42
|
+
description: "Whether the field is required.",
|
|
43
|
+
defaultValue: false,
|
|
44
|
+
},
|
|
45
|
+
disabled: {
|
|
46
|
+
control: "boolean",
|
|
47
|
+
description: "Whether the input is disabled.",
|
|
48
|
+
defaultValue: false,
|
|
49
|
+
},
|
|
50
|
+
searchable: {
|
|
51
|
+
control: "boolean",
|
|
52
|
+
description: "Enable search functionality.",
|
|
53
|
+
defaultValue: true,
|
|
54
|
+
},
|
|
55
|
+
clearable: {
|
|
56
|
+
control: "boolean",
|
|
57
|
+
description: "Show clear button to remove all selections.",
|
|
58
|
+
defaultValue: true,
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
} satisfies Meta<typeof EUISearchTagSelect>;
|
|
62
|
+
|
|
63
|
+
export default meta;
|
|
64
|
+
type Story = StoryObj<typeof meta>;
|
|
65
|
+
|
|
66
|
+
// Default story - Multiple Select
|
|
67
|
+
export const Default: Story = {
|
|
68
|
+
args: {
|
|
69
|
+
name: "tags",
|
|
70
|
+
label: "Select Tags",
|
|
71
|
+
placeholder: "Search and select tags...",
|
|
72
|
+
selectType: "multiple",
|
|
73
|
+
items: [
|
|
74
|
+
{ value: "react", label: "React", name: "React" },
|
|
75
|
+
{ value: "vue", label: "Vue", name: "Vue" },
|
|
76
|
+
{ value: "angular", label: "Angular", name: "Angular" },
|
|
77
|
+
{ value: "svelte", label: "Svelte", name: "Svelte" },
|
|
78
|
+
{ value: "next", label: "Next.js", name: "Next.js" },
|
|
79
|
+
],
|
|
80
|
+
modelValue: [{ value: "react", label: "React", name: "React" }],
|
|
81
|
+
errors: {},
|
|
82
|
+
required: false,
|
|
83
|
+
disabled: false,
|
|
84
|
+
searchable: true,
|
|
85
|
+
clearable: true,
|
|
86
|
+
},
|
|
87
|
+
render: (args) => ({
|
|
88
|
+
components: { EUISearchTagSelect },
|
|
89
|
+
setup() {
|
|
90
|
+
return { args };
|
|
91
|
+
},
|
|
92
|
+
template:
|
|
93
|
+
'<div class="max-w-md"><EUISearchTagSelect v-bind="args" /></div>',
|
|
94
|
+
}),
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
// Single Select Mode
|
|
98
|
+
export const SingleSelect: Story = {
|
|
99
|
+
args: {
|
|
100
|
+
name: "framework",
|
|
101
|
+
label: "Select Framework",
|
|
102
|
+
placeholder: "Choose one framework...",
|
|
103
|
+
selectType: "single",
|
|
104
|
+
items: [
|
|
105
|
+
{ value: "react", label: "React", name: "React" },
|
|
106
|
+
{ value: "vue", label: "Vue", name: "Vue" },
|
|
107
|
+
{ value: "angular", label: "Angular", name: "Angular" },
|
|
108
|
+
{ value: "svelte", label: "Svelte", name: "Svelte" },
|
|
109
|
+
],
|
|
110
|
+
modelValue: [],
|
|
111
|
+
errors: {},
|
|
112
|
+
required: true,
|
|
113
|
+
disabled: false,
|
|
114
|
+
searchable: true,
|
|
115
|
+
},
|
|
116
|
+
parameters: {
|
|
117
|
+
docs: {
|
|
118
|
+
description: {
|
|
119
|
+
story: "Single select mode allows selecting only one item.",
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
render: (args) => ({
|
|
124
|
+
components: { EUISearchTagSelect },
|
|
125
|
+
setup() {
|
|
126
|
+
return { args };
|
|
127
|
+
},
|
|
128
|
+
template:
|
|
129
|
+
'<div class="max-w-md"><EUISearchTagSelect v-bind="args" /></div>',
|
|
130
|
+
}),
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
// With Errors
|
|
134
|
+
export const WithErrors: Story = {
|
|
135
|
+
args: {
|
|
136
|
+
name: "tags",
|
|
137
|
+
label: "Select Tags",
|
|
138
|
+
placeholder: "Search and select tags...",
|
|
139
|
+
selectType: "multiple",
|
|
140
|
+
items: [
|
|
141
|
+
{ value: "tag1", label: "Tag 1", name: "Tag 1" },
|
|
142
|
+
{ value: "tag2", label: "Tag 2", name: "Tag 2" },
|
|
143
|
+
{ value: "tag3", label: "Tag 3", name: "Tag 3" },
|
|
144
|
+
],
|
|
145
|
+
modelValue: [],
|
|
146
|
+
errors: { tags: "At least one tag is required" },
|
|
147
|
+
required: true,
|
|
148
|
+
},
|
|
149
|
+
parameters: {
|
|
150
|
+
docs: {
|
|
151
|
+
description: {
|
|
152
|
+
story: "Shows validation error state.",
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
render: (args) => ({
|
|
157
|
+
components: { EUISearchTagSelect },
|
|
158
|
+
setup() {
|
|
159
|
+
return { args };
|
|
160
|
+
},
|
|
161
|
+
template:
|
|
162
|
+
'<div class="max-w-md"><EUISearchTagSelect v-bind="args" /></div>',
|
|
163
|
+
}),
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
// Disabled State
|
|
167
|
+
export const Disabled: Story = {
|
|
168
|
+
args: {
|
|
169
|
+
name: "tags",
|
|
170
|
+
label: "Select Tags",
|
|
171
|
+
placeholder: "Search and select tags...",
|
|
172
|
+
selectType: "multiple",
|
|
173
|
+
items: [
|
|
174
|
+
{ value: "tag1", label: "Tag 1", name: "Tag 1" },
|
|
175
|
+
{ value: "tag2", label: "Tag 2", name: "Tag 2" },
|
|
176
|
+
],
|
|
177
|
+
modelValue: [{ value: "tag1", label: "Tag 1", name: "Tag 1" }],
|
|
178
|
+
errors: {},
|
|
179
|
+
disabled: true,
|
|
180
|
+
},
|
|
181
|
+
render: (args) => ({
|
|
182
|
+
components: { EUISearchTagSelect },
|
|
183
|
+
setup() {
|
|
184
|
+
return { args };
|
|
185
|
+
},
|
|
186
|
+
template:
|
|
187
|
+
'<div class="max-w-md"><EUISearchTagSelect v-bind="args" /></div>',
|
|
188
|
+
}),
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
// Searchable
|
|
192
|
+
export const Searchable: Story = {
|
|
193
|
+
args: {
|
|
194
|
+
name: "cities",
|
|
195
|
+
label: "Select Cities",
|
|
196
|
+
placeholder: "Type to search cities...",
|
|
197
|
+
selectType: "multiple",
|
|
198
|
+
items: [
|
|
199
|
+
{ value: "nyc", label: "New York City", name: "New York City" },
|
|
200
|
+
{ value: "la", label: "Los Angeles", name: "Los Angeles" },
|
|
201
|
+
{ value: "chicago", label: "Chicago", name: "Chicago" },
|
|
202
|
+
{ value: "houston", label: "Houston", name: "Houston" },
|
|
203
|
+
{ value: "phoenix", label: "Phoenix", name: "Phoenix" },
|
|
204
|
+
],
|
|
205
|
+
modelValue: [],
|
|
206
|
+
searchable: true,
|
|
207
|
+
clearable: true,
|
|
208
|
+
},
|
|
209
|
+
render: (args) => ({
|
|
210
|
+
components: { EUISearchTagSelect },
|
|
211
|
+
setup() {
|
|
212
|
+
return { args };
|
|
213
|
+
},
|
|
214
|
+
template:
|
|
215
|
+
'<div class="max-w-md"><EUISearchTagSelect v-bind="args" /></div>',
|
|
216
|
+
}),
|
|
217
|
+
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import _sfc_main from "/Volumes/work/repos/edvoy-ui-v2/src/components/selectSearch/EUISelectSearch.vue?vue&type=script&setup=true&lang.ts";
|
|
2
|
-
export * from "/Volumes/work/repos/edvoy-ui-v2/src/components/selectSearch/EUISelectSearch.vue?vue&type=script&setup=true&lang.ts";
|
|
3
|
-
export default _sfc_main;
|
|
4
|
-
//# sourceMappingURL=EUISelectSearch.vue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EUISelectSearch.vue.d.ts","sourceRoot":"","sources":["../src/components/selectSearch/EUISelectSearch.vue"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oHAAoH,CAAC;AAC3I,cAAc,oHAAoH,CAAC;AACnI,eAAe,SAAS,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<label for="label" class="mb-4 text-xs font-medium text-gray-400">{{selected?.length < 3}} - {{ selected?.length < 3 }}</label>
|
|
4
|
-
<v-select
|
|
5
|
-
v-model="selected"
|
|
6
|
-
multiple
|
|
7
|
-
placeholder="Choose up to 3 books!"
|
|
8
|
-
label="title"
|
|
9
|
-
:options="dataBooks"
|
|
10
|
-
:selectable="() => selected?.length < 3"
|
|
11
|
-
/>
|
|
12
|
-
</div>
|
|
13
|
-
</template>
|
|
14
|
-
|
|
15
|
-
<script setup lang="ts">
|
|
16
|
-
import { computed, ref } from "vue";
|
|
17
|
-
import vSelect from "vue-select";
|
|
18
|
-
import "vue-select/dist/vue-select.css";
|
|
19
|
-
const selected = ref([]);
|
|
20
|
-
import books from "../../data/books";
|
|
21
|
-
|
|
22
|
-
const dataBooks = computed(() => books);
|
|
23
|
-
</script>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EUISelectSearch.vue.js","sourceRoot":"","sources":["EUISelectSearch.vue"],"names":[],"mappings":"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"}
|