@witchcraft/ui 0.2.1-beta.3 → 0.2.2
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 +20 -4
- package/dist/runtime/build/WitchcraftUiResolver.d.ts +2 -2
- package/dist/runtime/build/generateTheme.js +2 -2
- package/dist/runtime/components/Aria/Aria.d.vue.ts +5 -0
- package/dist/runtime/components/Aria/Aria.vue +4 -2
- package/dist/runtime/components/Aria/Aria.vue.d.ts +1 -1
- package/dist/runtime/components/Icon/Icon.d.vue.ts +21 -0
- package/dist/runtime/components/Icon/Icon.vue +3 -3
- package/dist/runtime/components/Icon/Icon.vue.d.ts +1 -1
- package/dist/runtime/components/LibButton/LibButton.d.vue.ts +36 -0
- package/dist/runtime/components/LibButton/LibButton.vue +9 -4
- package/dist/runtime/components/LibButton/LibButton.vue.d.ts +1 -1
- package/dist/runtime/components/LibCheckbox/LibCheckbox.d.vue.ts +42 -0
- package/dist/runtime/components/LibCheckbox/LibCheckbox.vue +3 -4
- package/dist/runtime/components/LibCheckbox/LibCheckbox.vue.d.ts +1 -1
- package/dist/runtime/components/LibColorInput/LibColorInput.d.vue.ts +63 -0
- package/dist/runtime/components/LibColorInput/LibColorInput.vue +15 -8
- package/dist/runtime/components/LibColorInput/LibColorInput.vue.d.ts +1 -1
- package/dist/runtime/components/LibColorPicker/LibColorPicker.d.vue.ts +61 -0
- package/dist/runtime/components/LibColorPicker/LibColorPicker.vue +10 -6
- package/dist/runtime/components/LibColorPicker/LibColorPicker.vue.d.ts +1 -1
- package/dist/runtime/components/LibColorPicker/utils/truncate.js +1 -1
- package/dist/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.d.vue.ts +22 -0
- package/dist/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.vue +5 -2
- package/dist/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.vue.d.ts +1 -1
- package/dist/runtime/components/LibDatePicker/LibDatePicker.d.vue.ts +40 -0
- package/dist/runtime/components/LibDatePicker/LibDatePicker.vue.d.ts +1 -1
- package/dist/runtime/components/LibDatePicker/LibRangeDatePicker.d.vue.ts +34 -0
- package/dist/runtime/components/LibDatePicker/LibRangeDatePicker.vue +8 -6
- package/dist/runtime/components/LibDatePicker/LibRangeDatePicker.vue.d.ts +1 -1
- package/dist/runtime/components/LibDatePicker/LibSingleDatePicker.d.vue.ts +34 -0
- package/dist/runtime/components/LibDatePicker/LibSingleDatePicker.vue +7 -5
- package/dist/runtime/components/LibDatePicker/LibSingleDatePicker.vue.d.ts +1 -1
- package/dist/runtime/components/LibDatePicker/LibTimeZonePicker.d.vue.ts +22 -0
- package/dist/runtime/components/LibDatePicker/LibTimeZonePicker.vue.d.ts +1 -1
- package/dist/runtime/components/LibDebug/LibDebug.d.vue.ts +32 -0
- package/dist/runtime/components/LibDebug/LibDebug.vue +9 -4
- package/dist/runtime/components/LibDebug/LibDebug.vue.d.ts +1 -1
- package/dist/runtime/components/LibDevOnly/LibDevOnly.d.vue.ts +25 -0
- package/dist/runtime/components/LibDevOnly/LibDevOnly.vue +2 -1
- package/dist/runtime/components/LibDevOnly/LibDevOnly.vue.d.ts +4 -1
- package/dist/runtime/components/LibFileInput/LibFileInput.d.vue.ts +43 -0
- package/dist/runtime/components/LibFileInput/LibFileInput.vue +29 -13
- package/dist/runtime/components/LibFileInput/LibFileInput.vue.d.ts +2 -2
- package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.d.vue.ts +165 -0
- package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +42 -12
- package/dist/runtime/components/LibLabel/LibLabel.d.vue.ts +26 -0
- package/dist/runtime/components/LibLabel/LibLabel.vue +2 -2
- package/dist/runtime/components/LibLabel/LibLabel.vue.d.ts +3 -3
- package/dist/runtime/components/LibMultiValues/LibMultiValues.d.vue.ts +29 -0
- package/dist/runtime/components/LibMultiValues/LibMultiValues.vue +1 -2
- package/dist/runtime/components/LibMultiValues/LibMultiValues.vue.d.ts +2 -2
- package/dist/runtime/components/LibNotifications/LibNotification.d.vue.ts +17 -0
- package/dist/runtime/components/LibNotifications/LibNotification.vue +19 -8
- package/dist/runtime/components/LibNotifications/LibNotifications.d.vue.ts +13 -0
- package/dist/runtime/components/LibNotifications/LibNotifications.vue +10 -6
- package/dist/runtime/components/LibNotifications/LibNotifications.vue.d.ts +2 -2
- package/dist/runtime/components/LibPagination/LibPagination.d.vue.ts +104 -0
- package/dist/runtime/components/LibPagination/LibPagination.vue +25 -12
- package/dist/runtime/components/LibPagination/LibPagination.vue.d.ts +2 -2
- package/dist/runtime/components/LibPalette/LibPalette.d.vue.ts +14 -0
- package/dist/runtime/components/LibPalette/LibPalette.vue +6 -5
- package/dist/runtime/components/LibPalette/LibPalette.vue.d.ts +5 -5
- package/dist/runtime/components/LibPopup/LibPopup.d.vue.ts +46 -0
- package/dist/runtime/components/LibPopup/LibPopup.vue +6 -4
- package/dist/runtime/components/LibPopup/LibPopup.vue.d.ts +3 -3
- package/dist/runtime/components/LibProgressBar/LibProgressBar.d.vue.ts +41 -0
- package/dist/runtime/components/LibProgressBar/LibProgressBar.vue +5 -3
- package/dist/runtime/components/LibProgressBar/LibProgressBar.vue.d.ts +9 -9
- package/dist/runtime/components/LibRecorder/LibRecorder.d.vue.ts +77 -0
- package/dist/runtime/components/LibRecorder/LibRecorder.vue +1 -1
- package/dist/runtime/components/LibRecorder/LibRecorder.vue.d.ts +2 -2
- package/dist/runtime/components/LibRoot/LibRoot.d.vue.ts +41 -0
- package/dist/runtime/components/LibRoot/LibRoot.vue +11 -6
- package/dist/runtime/components/LibRoot/LibRoot.vue.d.ts +1 -1
- package/dist/runtime/components/LibSimpleInput/LibSimpleInput.d.vue.ts +35 -0
- package/dist/runtime/components/LibSimpleInput/LibSimpleInput.vue +1 -1
- package/dist/runtime/components/LibSimpleInput/LibSimpleInput.vue.d.ts +1 -1
- package/dist/runtime/components/LibSuggestions/LibSuggestions.d.vue.ts +94 -0
- package/dist/runtime/components/LibSuggestions/LibSuggestions.vue +6 -4
- package/dist/runtime/components/LibSuggestions/LibSuggestions.vue.d.ts +1 -1
- package/dist/runtime/components/LibTable/LibTable.d.vue.ts +45 -0
- package/dist/runtime/components/LibTable/LibTable.vue +23 -8
- package/dist/runtime/components/LibTable/LibTable.vue.d.ts +1 -1
- package/dist/runtime/components/Template/NAME.d.vue.ts +17 -0
- package/dist/runtime/components/Template/NAME.vue +2 -3
- package/dist/runtime/components/Template/NAME.vue.d.ts +1 -1
- package/dist/runtime/components/TestControls/TestControls.d.vue.ts +5 -0
- package/dist/runtime/components/TestControls/TestControls.vue +4 -2
- package/dist/runtime/components/TestControls/TestControls.vue.d.ts +1 -1
- package/dist/runtime/composables/useDragWithThreshold.d.ts +1 -1
- package/dist/runtime/composables/useInjectedI18n.d.ts +1 -1
- package/dist/runtime/composables/useScrollNearContainerEdges.d.ts +1 -1
- package/dist/runtime/composables/useSetupI18n.d.ts +1 -1
- package/dist/runtime/composables/useSuggestions.d.ts +2 -2
- package/dist/runtime/helpers/NotificationHandler.d.ts +1 -1
- package/dist/runtime/helpers/base64ToImg.js +2 -2
- package/dist/runtime/tailwind/themeConvertionOpts.d.ts +1 -1
- package/dist/runtime/types/index.d.ts +1 -1
- package/dist/runtime/utils/notifyIfError.d.ts +1 -1
- package/package.json +9 -10
- package/src/module.ts +41 -33
- package/src/runtime/build/WitchcraftUiResolver.ts +3 -3
- package/src/runtime/build/generateTheme.ts +3 -2
- package/src/runtime/build/unpluginIconViteOptions.ts +1 -1
- package/src/runtime/components/Aria/Aria.vue +5 -6
- package/src/runtime/components/Focus.stories.ts +11 -12
- package/src/runtime/components/Icon/Icon.vue +5 -9
- package/src/runtime/components/LibButton/LibButton.stories.ts +21 -22
- package/src/runtime/components/LibButton/LibButton.vue +23 -21
- package/src/runtime/components/LibCheckbox/LibCheckbox.stories.ts +6 -10
- package/src/runtime/components/LibCheckbox/LibCheckbox.vue +17 -19
- package/src/runtime/components/LibColorInput/LibColorInput.stories.ts +8 -13
- package/src/runtime/components/LibColorInput/LibColorInput.vue +49 -45
- package/src/runtime/components/LibColorPicker/LibColorPicker.stories.ts +14 -18
- package/src/runtime/components/LibColorPicker/LibColorPicker.vue +50 -52
- package/src/runtime/components/LibColorPicker/utils/safeConvertToHsva.ts +1 -2
- package/src/runtime/components/LibColorPicker/utils/safeConvertToRgba.ts +1 -2
- package/src/runtime/components/LibColorPicker/utils/truncate.ts +1 -2
- package/src/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.stories.ts +5 -8
- package/src/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.vue +11 -9
- package/src/runtime/components/LibDatePicker/LibDatePicker.stories.ts +14 -15
- package/src/runtime/components/LibDatePicker/LibDatePicker.vue +1 -2
- package/src/runtime/components/LibDatePicker/LibRangeDatePicker.vue +13 -13
- package/src/runtime/components/LibDatePicker/LibSingleDatePicker.vue +9 -8
- package/src/runtime/components/LibDatePicker/LibTimeZonePicker.vue +2 -1
- package/src/runtime/components/LibDatePicker/helpers.ts +0 -2
- package/src/runtime/components/LibDebug/LibDebug.stories.ts +11 -15
- package/src/runtime/components/LibDebug/LibDebug.vue +14 -11
- package/src/runtime/components/LibDevOnly/LibDevOnly.vue +8 -4
- package/src/runtime/components/LibFileInput/LibFileInput.stories.ts +12 -15
- package/src/runtime/components/LibFileInput/LibFileInput.vue +65 -47
- package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.stories.ts +77 -84
- package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +73 -48
- package/src/runtime/components/LibLabel/LibLabel.stories.ts +4 -8
- package/src/runtime/components/LibLabel/LibLabel.vue +8 -8
- package/src/runtime/components/LibMultiValues/LibMultiValues.stories.ts +10 -15
- package/src/runtime/components/LibMultiValues/LibMultiValues.vue +14 -18
- package/src/runtime/components/LibNotifications/LibNotification.stories.ts +30 -34
- package/src/runtime/components/LibNotifications/LibNotification.vue +27 -17
- package/src/runtime/components/LibNotifications/LibNotifications.stories.ts +11 -15
- package/src/runtime/components/LibNotifications/LibNotifications.vue +21 -16
- package/src/runtime/components/LibPagination/LibPagination.stories.ts +5 -9
- package/src/runtime/components/LibPagination/LibPagination.vue +46 -32
- package/src/runtime/components/LibPalette/LibPalette.stories.ts +3 -7
- package/src/runtime/components/LibPalette/LibPalette.vue +13 -12
- package/src/runtime/components/LibPopup/LibPopup.stories.ts +19 -23
- package/src/runtime/components/LibPopup/LibPopup.vue +31 -35
- package/src/runtime/components/LibProgressBar/LibProgressBar.stories.ts +13 -17
- package/src/runtime/components/LibProgressBar/LibProgressBar.vue +36 -33
- package/src/runtime/components/LibRecorder/LibRecorder.stories.ts +11 -12
- package/src/runtime/components/LibRecorder/LibRecorder.vue +34 -34
- package/src/runtime/components/LibRoot/LibRoot.vue +16 -12
- package/src/runtime/components/LibSimpleInput/LibSimpleInput.stories.ts +20 -24
- package/src/runtime/components/LibSimpleInput/LibSimpleInput.vue +17 -21
- package/src/runtime/components/LibSuggestions/LibSuggestions.stories.ts +16 -19
- package/src/runtime/components/LibSuggestions/LibSuggestions.vue +28 -30
- package/src/runtime/components/LibTable/LibTable.stories.ts +30 -33
- package/src/runtime/components/LibTable/LibTable.vue +38 -24
- package/src/runtime/components/Reset.stories.ts +3 -6
- package/src/runtime/components/Scrolling.stories.ts +5 -8
- package/src/runtime/components/Template/NAME.vue +11 -11
- package/src/runtime/components/Template/TemplateStory.ts +9 -10
- package/src/runtime/components/TestControls/TestControls.vue +5 -5
- package/src/runtime/components/shared/props.ts +4 -6
- package/src/runtime/components/shared/storyHelpers/playInput.ts +2 -3
- package/src/runtime/components/shared/storyHelpers/playSuggestions.ts +5 -9
- package/src/runtime/composables/useAccesibilityOutline.ts +1 -1
- package/src/runtime/composables/useAriaLabel.ts +1 -1
- package/src/runtime/composables/useDarkMode.ts +15 -19
- package/src/runtime/composables/useDragWithThreshold.ts +6 -8
- package/src/runtime/composables/useGlobalResizeObserver.ts +0 -1
- package/src/runtime/composables/useInjectedDarkMode.ts +2 -2
- package/src/runtime/composables/useInjectedI18n.ts +1 -1
- package/src/runtime/composables/useInjectedLocale.ts +3 -4
- package/src/runtime/composables/useScrollNearContainerEdges.stories.ts +4 -4
- package/src/runtime/composables/useScrollNearContainerEdges.ts +12 -13
- package/src/runtime/composables/useSetupI18n.ts +4 -7
- package/src/runtime/composables/useSetupLocale.ts +3 -5
- package/src/runtime/composables/useSuggestions.ts +25 -30
- package/src/runtime/directives/vDetectFlex.ts +5 -8
- package/src/runtime/directives/vExtractRootEl.ts +1 -1
- package/src/runtime/directives/vResizableCols.ts +3 -7
- package/src/runtime/directives/vResizeObserver.ts +1 -2
- package/src/runtime/globalResizeObserver.ts +0 -1
- package/src/runtime/helpers/NotificationHandler.ts +8 -12
- package/src/runtime/helpers/base64ToImg.ts +2 -3
- package/src/runtime/helpers/createNoonUtcDate.ts +0 -1
- package/src/runtime/helpers/defaultTranslationFunction.ts +0 -1
- package/src/runtime/helpers/getTimeZoneList.ts +0 -1
- package/src/runtime/helpers/readFile.ts +2 -2
- package/src/runtime/helpers/resizeObserverWrapper.ts +0 -1
- package/src/runtime/helpers/storybook.ts +2 -3
- package/src/runtime/main.lib.ts +0 -2
- package/src/runtime/nuxt/plugins/vue-plugin.ts +4 -5
- package/src/runtime/tailwind/themeConvertionOpts.ts +3 -4
- package/src/runtime/theme.ts +0 -1
- package/src/runtime/types/index.ts +3 -4
- package/src/runtime/utils/notifyIfError.ts +2 -2
- package/src/runtime/utils/twMerge.ts +2 -2
- package/src/runtime/vue/VueComponentsPlugin.ts +1 -2
- package/src/runtime/vue/registerComponents.ts +0 -1
|
@@ -12,7 +12,6 @@ import IconFaSolidTags from "~icons/fa6-solid/tags"
|
|
|
12
12
|
import { vExtractRootEl } from "../../directives/vExtractRootEl.js"
|
|
13
13
|
import { createRecorderHandler, createRecorderWatchEffect } from "../../helpers/storybook.js"
|
|
14
14
|
import Icon from "../Icon/Icon.vue"
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
|
|
16
15
|
import * as components from "../index.js"
|
|
17
16
|
import {
|
|
18
17
|
playBasicVModel,
|
|
@@ -21,19 +20,19 @@ import {
|
|
|
21
20
|
import {
|
|
22
21
|
playBasicClickSelect,
|
|
23
22
|
playBasicKeyboardSelect,
|
|
24
|
-
playBasicSelect
|
|
23
|
+
playBasicSelect
|
|
25
24
|
} from "../shared/storyHelpers/playSuggestions.js"
|
|
26
25
|
|
|
27
26
|
const meta = {
|
|
28
27
|
component: LibInputDeprecated as any,
|
|
29
|
-
title: "Components/
|
|
28
|
+
title: "Components/LibInputDeprecated",
|
|
30
29
|
args: {
|
|
31
30
|
border: true,
|
|
32
31
|
label: "Some Label",
|
|
33
32
|
...{
|
|
34
|
-
_template: undefined
|
|
33
|
+
_template: undefined
|
|
35
34
|
} as any
|
|
36
|
-
}
|
|
35
|
+
}
|
|
37
36
|
} satisfies Meta<typeof LibInputDeprecated> & Meta<{ custom: string }>
|
|
38
37
|
|
|
39
38
|
export default meta
|
|
@@ -45,10 +44,9 @@ const allComponents = {
|
|
|
45
44
|
IconFaChevronRight,
|
|
46
45
|
IconFaChevronLeft,
|
|
47
46
|
IconFaSolidKeyboard,
|
|
48
|
-
IconFaSolidTags
|
|
47
|
+
IconFaSolidTags
|
|
49
48
|
}
|
|
50
49
|
|
|
51
|
-
|
|
52
50
|
const playAutosuggestSelectLike = async (context: { canvasElement: HTMLElement, args: any }) => {
|
|
53
51
|
await playBasicSelect(context)
|
|
54
52
|
await playBasicKeyboardSelect(context)
|
|
@@ -57,38 +55,38 @@ const playAutosuggestSelectLike = async (context: { canvasElement: HTMLElement,
|
|
|
57
55
|
|
|
58
56
|
const setupModelValue = (args: any) => ({
|
|
59
57
|
modelValue: ref(args.modelValue ?? ""),
|
|
60
|
-
inputValue: ref(args.inputValue ?? "")
|
|
58
|
+
inputValue: ref(args.inputValue ?? "")
|
|
61
59
|
})
|
|
62
60
|
|
|
63
61
|
const setupModelValues = (args: any) => ({
|
|
64
|
-
values: ref(args.values ?? undefined)
|
|
62
|
+
values: ref(args.values ?? undefined)
|
|
65
63
|
})
|
|
66
64
|
|
|
67
65
|
const Base: Story = {
|
|
68
66
|
render: args => ({
|
|
69
67
|
components: allComponents,
|
|
70
68
|
setup: () => ({
|
|
71
|
-
|
|
69
|
+
|
|
72
70
|
...setupModelValue(args),
|
|
73
71
|
...setupModelValues(args),
|
|
74
72
|
args: {
|
|
75
73
|
...args,
|
|
76
|
-
updateOnlyOnSubmit: args.suggestions !== undefined
|
|
77
|
-
}
|
|
74
|
+
updateOnlyOnSubmit: args.suggestions !== undefined
|
|
75
|
+
}
|
|
78
76
|
}),
|
|
79
77
|
|
|
80
78
|
template: (args as any)._template ?? `
|
|
81
79
|
Model Value: <span class="inline-block" data-testid="model-value">{{modelValue}}</span>\n
|
|
82
|
-
<lib-
|
|
80
|
+
<lib-input-deprecated
|
|
83
81
|
v-bind="args"
|
|
84
82
|
v-model:values="values"
|
|
85
83
|
v-model:inputValue="inputValue"
|
|
86
84
|
v-model="modelValue"
|
|
87
85
|
@submit="modelValue = $event"
|
|
88
86
|
>
|
|
89
|
-
</lib-
|
|
90
|
-
|
|
91
|
-
})
|
|
87
|
+
</lib-input-deprecated>
|
|
88
|
+
`
|
|
89
|
+
})
|
|
92
90
|
}
|
|
93
91
|
|
|
94
92
|
export const Primary: Story = {
|
|
@@ -99,54 +97,53 @@ export const Primary: Story = {
|
|
|
99
97
|
export const Disabled: Story = {
|
|
100
98
|
...Base,
|
|
101
99
|
args: {
|
|
102
|
-
disabled: true
|
|
103
|
-
}
|
|
100
|
+
disabled: true
|
|
101
|
+
}
|
|
104
102
|
}
|
|
105
103
|
export const Readonly: Story = {
|
|
106
104
|
...Base,
|
|
107
105
|
args: {
|
|
108
|
-
readonly: true
|
|
109
|
-
}
|
|
106
|
+
readonly: true
|
|
107
|
+
}
|
|
110
108
|
}
|
|
111
109
|
export const Invalid: Story = {
|
|
112
110
|
...Base,
|
|
113
111
|
args: {
|
|
114
|
-
valid: false
|
|
115
|
-
}
|
|
112
|
+
valid: false
|
|
113
|
+
}
|
|
116
114
|
}
|
|
117
115
|
|
|
118
116
|
export const AttrsPassword: Story = {
|
|
119
117
|
...Base,
|
|
120
118
|
args: {
|
|
121
|
-
type: "password"
|
|
122
|
-
} as any
|
|
119
|
+
type: "password"
|
|
120
|
+
} as any
|
|
123
121
|
}
|
|
124
122
|
export const AttrsDate: Story = {
|
|
125
123
|
...Base,
|
|
126
124
|
args: {
|
|
127
|
-
type: "date"
|
|
128
|
-
} as any
|
|
125
|
+
type: "date"
|
|
126
|
+
} as any
|
|
129
127
|
}
|
|
130
128
|
export const AttrsNumber: Story = {
|
|
131
129
|
...Base,
|
|
132
130
|
args: {
|
|
133
|
-
type: "number"
|
|
134
|
-
} as any
|
|
131
|
+
type: "number"
|
|
132
|
+
} as any
|
|
135
133
|
}
|
|
136
134
|
|
|
137
135
|
export const Borderless = {
|
|
138
136
|
...Base,
|
|
139
137
|
args: {
|
|
140
138
|
border: false,
|
|
141
|
-
suggestions: ["A", "AB", "ABC", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]
|
|
142
|
-
}
|
|
139
|
+
suggestions: ["A", "AB", "ABC", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]
|
|
140
|
+
}
|
|
143
141
|
}
|
|
144
142
|
|
|
145
|
-
|
|
146
143
|
export const WithAutosuggest = {
|
|
147
144
|
...Base,
|
|
148
145
|
args: {
|
|
149
|
-
suggestions: ["A", "AB", "ABC", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]
|
|
146
|
+
suggestions: ["A", "AB", "ABC", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]
|
|
150
147
|
},
|
|
151
148
|
play: playAutosuggestSelectLike
|
|
152
149
|
}
|
|
@@ -155,21 +152,21 @@ export const WithAutosuggestNoLabel = {
|
|
|
155
152
|
...Base,
|
|
156
153
|
args: {
|
|
157
154
|
label: undefined,
|
|
158
|
-
suggestions: ["A", "AB", "ABC", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]
|
|
155
|
+
suggestions: ["A", "AB", "ABC", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]
|
|
159
156
|
},
|
|
160
157
|
play: playAutosuggestSelectLike
|
|
161
158
|
}
|
|
162
159
|
export const WithInstantAutosuggest = {
|
|
163
160
|
...Base,
|
|
164
161
|
args: {
|
|
165
|
-
suggestions: ["A", "AB", "ABC", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]
|
|
166
|
-
}
|
|
162
|
+
suggestions: ["A", "AB", "ABC", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]
|
|
163
|
+
}
|
|
167
164
|
}
|
|
168
165
|
export const AutosuggestRestricted = {
|
|
169
166
|
...WithAutosuggest,
|
|
170
167
|
args: {
|
|
171
168
|
...WithAutosuggest.args,
|
|
172
|
-
restrictToSuggestions: true
|
|
169
|
+
restrictToSuggestions: true
|
|
173
170
|
},
|
|
174
171
|
play: playAutosuggestSelectLike
|
|
175
172
|
}
|
|
@@ -181,7 +178,7 @@ export const AutosuggestRestrictedWithClearOnClick = {
|
|
|
181
178
|
_template: `
|
|
182
179
|
Model Value: <span class="inline-block" data-testid="model-value">{{modelValue}}</span>\n
|
|
183
180
|
Temp Value: <span class="inline-block" data-testid="temp-value">{{inputValue}}</span>\n
|
|
184
|
-
<lib-
|
|
181
|
+
<lib-input-deprecated
|
|
185
182
|
v-bind="args"
|
|
186
183
|
v-model:values="values"
|
|
187
184
|
v-model:inputValue="inputValue"
|
|
@@ -189,17 +186,17 @@ export const AutosuggestRestrictedWithClearOnClick = {
|
|
|
189
186
|
@submit="modelValue = $event"
|
|
190
187
|
@click="inputValue = ''"
|
|
191
188
|
>
|
|
192
|
-
</lib-
|
|
189
|
+
</lib-input-deprecated>
|
|
193
190
|
`
|
|
194
191
|
},
|
|
195
|
-
play: null
|
|
192
|
+
play: null
|
|
196
193
|
}
|
|
197
194
|
export const AutosuggestSelectLikeShowAllUnrestricted = {
|
|
198
195
|
...WithAutosuggest,
|
|
199
196
|
args: {
|
|
200
197
|
...WithAutosuggest.args,
|
|
201
198
|
restrictToSuggestions: false,
|
|
202
|
-
suggestionsFilter: (_input: string, items: string[]) => items
|
|
199
|
+
suggestionsFilter: (_input: string, items: string[]) => items
|
|
203
200
|
},
|
|
204
201
|
play: playAutosuggestSelectLike
|
|
205
202
|
}
|
|
@@ -212,9 +209,9 @@ export const AutosuggestObjectOptions = {
|
|
|
212
209
|
{ label: "A", other: "some data A" },
|
|
213
210
|
{ label: "AB", other: "some data AB" },
|
|
214
211
|
{ label: "ABC", other: "some data ABC" },
|
|
215
|
-
{ label: "ABCDEFGHIJKLMNOPQRSTUVWXYZ", other: "some data ABCDEFGHIJKLMNOPQRSTUVWXYZ" }
|
|
212
|
+
{ label: "ABCDEFGHIJKLMNOPQRSTUVWXYZ", other: "some data ABCDEFGHIJKLMNOPQRSTUVWXYZ" }
|
|
216
213
|
],
|
|
217
|
-
suggestionLabel: (item: any) => item.label
|
|
214
|
+
suggestionLabel: (item: any) => item.label
|
|
218
215
|
},
|
|
219
216
|
play: playAutosuggestSelectLike
|
|
220
217
|
}
|
|
@@ -227,14 +224,13 @@ export const Slots: Story = {
|
|
|
227
224
|
...setupModelValues(args),
|
|
228
225
|
args: {
|
|
229
226
|
...args,
|
|
230
|
-
updateOnlyOnSubmit: args.suggestions !== undefined
|
|
231
|
-
}
|
|
232
|
-
})
|
|
233
|
-
,
|
|
227
|
+
updateOnlyOnSubmit: args.suggestions !== undefined
|
|
228
|
+
}
|
|
229
|
+
}),
|
|
234
230
|
template: `
|
|
235
231
|
Model Value: <span class="inline-block" data-testid="model-value">{{modelValue}}</span>\n
|
|
236
232
|
|
|
237
|
-
<lib-
|
|
233
|
+
<lib-input-deprecated
|
|
238
234
|
v-bind="args"
|
|
239
235
|
v-model="modelValue"
|
|
240
236
|
v-model:values="values"
|
|
@@ -252,9 +248,9 @@ export const Slots: Story = {
|
|
|
252
248
|
<icon><icon-fa-chevron-right/></icon>
|
|
253
249
|
</lib-button>
|
|
254
250
|
</template>
|
|
255
|
-
</lib-
|
|
256
|
-
|
|
257
|
-
})
|
|
251
|
+
</lib-input-deprecated>
|
|
252
|
+
`
|
|
253
|
+
})
|
|
258
254
|
}
|
|
259
255
|
const MultipleValuesBase: Story = {
|
|
260
256
|
render: args => ({
|
|
@@ -262,15 +258,14 @@ const MultipleValuesBase: Story = {
|
|
|
262
258
|
setup: () => ({
|
|
263
259
|
...setupModelValue(args),
|
|
264
260
|
...setupModelValues(args),
|
|
265
|
-
args
|
|
266
|
-
})
|
|
267
|
-
,
|
|
261
|
+
args
|
|
262
|
+
}),
|
|
268
263
|
|
|
269
264
|
template: `
|
|
270
265
|
Model Value: <span class="inline-block" data-testid="model-value">{{modelValue}}</span>\n
|
|
271
266
|
<br/>
|
|
272
267
|
Values: <span class="inline-block" data-testid="values">{{values.join(", ")}}</span>\n
|
|
273
|
-
<lib-
|
|
268
|
+
<lib-input-deprecated
|
|
274
269
|
v-bind="args"
|
|
275
270
|
v-model="modelValue"
|
|
276
271
|
v-model:values="values"
|
|
@@ -280,13 +275,13 @@ const MultipleValuesBase: Story = {
|
|
|
280
275
|
<icon><icon-fa-solid-tags/></icon>
|
|
281
276
|
</lib-button>
|
|
282
277
|
</template>
|
|
283
|
-
</lib-
|
|
284
|
-
|
|
278
|
+
</lib-input-deprecated>
|
|
279
|
+
`
|
|
285
280
|
}),
|
|
286
281
|
args: {
|
|
287
|
-
values: ["A", "B", "C"]
|
|
288
|
-
}
|
|
289
|
-
|
|
282
|
+
values: ["A", "B", "C"]
|
|
283
|
+
}
|
|
284
|
+
|
|
290
285
|
}
|
|
291
286
|
/** Press enter to add a value. */
|
|
292
287
|
export const WithMultipleValues: Story = {
|
|
@@ -294,36 +289,37 @@ export const WithMultipleValues: Story = {
|
|
|
294
289
|
play: playMultipleValues
|
|
295
290
|
}
|
|
296
291
|
|
|
292
|
+
// disabled tests, they are working fine in browser, weird, this will be deprecated anyways
|
|
297
293
|
export const WithMultipleValuesWithSuggestions = {
|
|
298
294
|
...MultipleValuesBase,
|
|
299
295
|
args: {
|
|
300
296
|
...MultipleValuesBase.args,
|
|
301
|
-
suggestions: ["A", "AB", "ABC", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]
|
|
302
|
-
}
|
|
303
|
-
play: playAutosuggestSelectLike
|
|
297
|
+
suggestions: ["A", "AB", "ABC", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]
|
|
298
|
+
}
|
|
299
|
+
// play: playAutosuggestSelectLike
|
|
304
300
|
}
|
|
305
301
|
export const WithMultipleValuesWithSuggestionsNoSelected = {
|
|
306
302
|
...MultipleValuesBase,
|
|
307
303
|
args: {
|
|
308
304
|
...MultipleValuesBase.args,
|
|
309
305
|
suggestions: ["A", "AB", "ABC", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"],
|
|
310
|
-
showSelectedValues: false
|
|
311
|
-
}
|
|
312
|
-
play: playAutosuggestSelectLike
|
|
306
|
+
showSelectedValues: false
|
|
307
|
+
}
|
|
308
|
+
// play: playAutosuggestSelectLike
|
|
313
309
|
}
|
|
314
310
|
export const WithMultipleValuesDisabled = {
|
|
315
311
|
...MultipleValuesBase,
|
|
316
312
|
args: {
|
|
317
313
|
...MultipleValuesBase.args,
|
|
318
|
-
disabled: true
|
|
319
|
-
}
|
|
314
|
+
disabled: true
|
|
315
|
+
}
|
|
320
316
|
}
|
|
321
317
|
export const WithMultipleValuesReadonly = {
|
|
322
318
|
...MultipleValuesBase,
|
|
323
319
|
args: {
|
|
324
320
|
...MultipleValuesBase.args,
|
|
325
|
-
readonly: true
|
|
326
|
-
}
|
|
321
|
+
readonly: true
|
|
322
|
+
}
|
|
327
323
|
}
|
|
328
324
|
|
|
329
325
|
export const InputSlotReplacement: Story = {
|
|
@@ -345,10 +341,9 @@ export const InputSlotReplacement: Story = {
|
|
|
345
341
|
recorderEl,
|
|
346
342
|
modelValue,
|
|
347
343
|
values,
|
|
348
|
-
args
|
|
344
|
+
args
|
|
349
345
|
}
|
|
350
|
-
}
|
|
351
|
-
,
|
|
346
|
+
},
|
|
352
347
|
|
|
353
348
|
template: `
|
|
354
349
|
Model Value: <span class="inline-block" data-testid="model-value">{{modelValue}}</span>\n
|
|
@@ -356,7 +351,7 @@ export const InputSlotReplacement: Story = {
|
|
|
356
351
|
Values: <span class="inline-block" data-testid="values">{{values.join(", ")}}</span>\n
|
|
357
352
|
<br/>
|
|
358
353
|
Recording: <span class="inline-block" data-testid="recording">{{recording}}</span>\n
|
|
359
|
-
<lib-
|
|
354
|
+
<lib-input-deprecated
|
|
360
355
|
v-bind="args"
|
|
361
356
|
v-model="modelValue"
|
|
362
357
|
v-model:values="values"
|
|
@@ -377,36 +372,34 @@ export const InputSlotReplacement: Story = {
|
|
|
377
372
|
<template #left>
|
|
378
373
|
<icon><icon-fa-solid-keyboard/></icon>
|
|
379
374
|
</template>
|
|
380
|
-
</lib-
|
|
381
|
-
|
|
375
|
+
</lib-input-deprecated>
|
|
376
|
+
`
|
|
382
377
|
}),
|
|
383
378
|
args: {
|
|
384
|
-
values: ["A", "B", "C"]
|
|
385
|
-
}
|
|
379
|
+
values: ["A", "B", "C"]
|
|
380
|
+
}
|
|
386
381
|
}
|
|
387
382
|
|
|
388
|
-
|
|
389
383
|
export const NextToButton: Story = {
|
|
390
384
|
render: args => ({
|
|
391
385
|
components: allComponents,
|
|
392
386
|
setup: () => ({
|
|
393
387
|
...setupModelValue(args),
|
|
394
388
|
...setupModelValues(args),
|
|
395
|
-
args
|
|
389
|
+
args
|
|
396
390
|
}),
|
|
397
391
|
|
|
398
392
|
template: `
|
|
399
393
|
<div class="flex gap-2 items-center">
|
|
400
|
-
<lib-
|
|
394
|
+
<lib-input-deprecated
|
|
401
395
|
v-bind="args"
|
|
402
396
|
v-model:values="values"
|
|
403
397
|
v-model="modelValue"
|
|
404
398
|
:label="undefined"
|
|
405
399
|
>
|
|
406
|
-
</lib-
|
|
400
|
+
</lib-input-deprecated>
|
|
407
401
|
<lib-button>Button</lib-button>
|
|
408
402
|
</div>
|
|
409
|
-
|
|
410
|
-
})
|
|
403
|
+
`
|
|
404
|
+
})
|
|
411
405
|
}
|
|
412
|
-
|
|
@@ -9,14 +9,18 @@
|
|
|
9
9
|
text-neutral-400
|
|
10
10
|
dark:text-neutral-600
|
|
11
11
|
`,
|
|
12
|
-
($.wrapperAttrs as any)?.class
|
|
12
|
+
($.wrapperAttrs as any)?.class
|
|
13
13
|
)"
|
|
14
14
|
tabindex="-1"
|
|
15
|
-
v-bind="{...$.wrapperAttrs, class:undefined}"
|
|
15
|
+
v-bind="{ ...$.wrapperAttrs, class: undefined }"
|
|
16
16
|
ref="inputWrapperEl"
|
|
17
17
|
>
|
|
18
|
-
<slot
|
|
19
|
-
|
|
18
|
+
<slot
|
|
19
|
+
name="label"
|
|
20
|
+
v-bind="{ ...slotProps, label }"
|
|
21
|
+
>
|
|
22
|
+
<lib-label
|
|
23
|
+
v-if="label || $slots.default"
|
|
20
24
|
:id="id ?? fallbackId"
|
|
21
25
|
:disabled="disabled"
|
|
22
26
|
:readonly="readonly"
|
|
@@ -37,7 +41,7 @@
|
|
|
37
41
|
:data-disabled="disabled"
|
|
38
42
|
:data-read-only="readonly"
|
|
39
43
|
:data-is-open="isOpen"
|
|
40
|
-
v-bind="{...$['inner-wrapperAttrs'], class:undefined}"
|
|
44
|
+
v-bind="{ ...$['inner-wrapperAttrs'], class: undefined }"
|
|
41
45
|
:class="twMerge(`input--inner-wrapper
|
|
42
46
|
relative
|
|
43
47
|
flex
|
|
@@ -74,22 +78,31 @@
|
|
|
74
78
|
dark:border-neutral-600
|
|
75
79
|
border-neutral-400
|
|
76
80
|
`,
|
|
77
|
-
($['inner-wrapperAttrs'] as any)?.class
|
|
81
|
+
($['inner-wrapperAttrs'] as any)?.class
|
|
78
82
|
)"
|
|
79
83
|
>
|
|
80
|
-
<slot
|
|
81
|
-
|
|
84
|
+
<slot
|
|
85
|
+
name="left"
|
|
86
|
+
v-bind="slotProps"
|
|
87
|
+
/>
|
|
88
|
+
<slot
|
|
89
|
+
name="input"
|
|
90
|
+
v-bind="{ ...inputProps, ...slotProps, suggestionsIndicatorClickHandler }"
|
|
91
|
+
>
|
|
82
92
|
<lib-simple-input
|
|
83
93
|
:class="twMerge(
|
|
84
94
|
`input--input p-0`,
|
|
85
95
|
!$slots.left && `-ml-2 pl-2`,
|
|
86
96
|
!$slots.right && (!$values || $values.length === 0) && !suggestions && `-mr-2 -pr-2`,
|
|
87
|
-
($.attrs as any)?.class
|
|
97
|
+
($.attrs as any)?.class
|
|
88
98
|
)"
|
|
89
99
|
v-bind="inputProps"
|
|
90
100
|
/>
|
|
91
101
|
</slot>
|
|
92
|
-
<slot
|
|
102
|
+
<slot
|
|
103
|
+
name="indicator"
|
|
104
|
+
v-bind="{ isOpen, suggestionsIndicatorClickHandler }"
|
|
105
|
+
>
|
|
93
106
|
<!-- todo, convert to button for accessibility ? -->
|
|
94
107
|
<div
|
|
95
108
|
v-if="suggestions"
|
|
@@ -97,12 +110,14 @@
|
|
|
97
110
|
:class="twMerge(`input--indicator flex flex-col justify-center`)"
|
|
98
111
|
@click="suggestionsIndicatorClickHandler"
|
|
99
112
|
>
|
|
100
|
-
<icon :class="isOpen && `rotate-180`">
|
|
113
|
+
<icon :class="isOpen && `rotate-180`">
|
|
114
|
+
<i-fa6-solid-chevron-up/>
|
|
115
|
+
</icon>
|
|
101
116
|
</div>
|
|
102
117
|
</slot>
|
|
103
118
|
<slot
|
|
104
119
|
name="values"
|
|
105
|
-
v-bind="{...multivaluesProps, ...slotProps}"
|
|
120
|
+
v-bind="{ ...multivaluesProps, ...slotProps }"
|
|
106
121
|
>
|
|
107
122
|
<template v-if="$values && $values.length > 0">
|
|
108
123
|
<lib-multi-values
|
|
@@ -113,15 +128,22 @@
|
|
|
113
128
|
py-1
|
|
114
129
|
`,
|
|
115
130
|
!$slots.right && `-mr-1`,
|
|
116
|
-
($.multivaluesAttrs as any)?.class
|
|
131
|
+
($.multivaluesAttrs as any)?.class
|
|
117
132
|
)"
|
|
118
133
|
v-bind="multivaluesProps"
|
|
119
134
|
/>
|
|
120
135
|
</template>
|
|
121
136
|
</slot>
|
|
122
|
-
<slot
|
|
137
|
+
<slot
|
|
138
|
+
name="right"
|
|
139
|
+
v-bind="slotProps"
|
|
140
|
+
/>
|
|
123
141
|
|
|
124
|
-
<slot
|
|
142
|
+
<slot
|
|
143
|
+
v-if="suggestions"
|
|
144
|
+
name="suggestions"
|
|
145
|
+
v-bind="{ ...suggestionProps, ...slotProps }"
|
|
146
|
+
>
|
|
125
147
|
<!-- todo 1px needs to be abstracted to var -->
|
|
126
148
|
<lib-suggestions
|
|
127
149
|
:class="twMerge(`
|
|
@@ -137,24 +159,27 @@
|
|
|
137
159
|
!border && `
|
|
138
160
|
rounded-sm
|
|
139
161
|
`,
|
|
140
|
-
($.suggestionsAttrs as any)?.class
|
|
162
|
+
($.suggestionsAttrs as any)?.class
|
|
141
163
|
)"
|
|
142
164
|
ref="suggestionsComponent"
|
|
143
165
|
v-bind="suggestionProps"
|
|
144
166
|
>
|
|
145
167
|
<template #item="itemSlotProps">
|
|
146
|
-
<slot
|
|
168
|
+
<slot
|
|
169
|
+
name="suggestion-item"
|
|
170
|
+
v-bind="itemSlotProps"
|
|
171
|
+
/>
|
|
147
172
|
</template>
|
|
148
173
|
</lib-suggestions>
|
|
149
174
|
</slot>
|
|
150
175
|
</div>
|
|
151
176
|
</div>
|
|
152
177
|
</template>
|
|
178
|
+
|
|
153
179
|
<script setup lang="ts">
|
|
154
180
|
import { isBlank } from "@alanscodelog/utils/isBlank"
|
|
155
|
-
import { isObject } from "@alanscodelog/utils/isObject"
|
|
156
181
|
import { pushIfNotIn } from "@alanscodelog/utils/pushIfNotIn"
|
|
157
|
-
import { computed,type HTMLAttributes,type InputHTMLAttributes, nextTick,
|
|
182
|
+
import { computed, type HTMLAttributes, type InputHTMLAttributes, nextTick, ref, toRef, useSlots, watch } from "vue"
|
|
158
183
|
import type { ComponentExposed } from "vue-component-type-helpers"
|
|
159
184
|
|
|
160
185
|
import IFa6SolidChevronUp from "~icons/fa6-solid/chevron-up"
|
|
@@ -169,11 +194,10 @@ import LibSimpleInput from "../LibSimpleInput/LibSimpleInput.vue"
|
|
|
169
194
|
import LibSuggestions from "../LibSuggestions/LibSuggestions.vue"
|
|
170
195
|
import { type BaseInteractiveProps, getFallbackId, type LabelProps, type LinkableByIdProps, type SuggestionsProps, type TailwindClassProp, type WrapperProps } from "../shared/props.js"
|
|
171
196
|
|
|
172
|
-
|
|
173
197
|
/* #region base */
|
|
174
198
|
defineOptions({
|
|
175
|
-
name: "
|
|
176
|
-
inheritAttrs: false
|
|
199
|
+
name: "LibSimpleInputDeprecated",
|
|
200
|
+
inheritAttrs: false
|
|
177
201
|
})
|
|
178
202
|
const $slots = useSlots()
|
|
179
203
|
const emit = defineEmits<{
|
|
@@ -191,7 +215,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
191
215
|
valid: true,
|
|
192
216
|
suggestions: undefined,
|
|
193
217
|
updateOnlyOnSubmit: false,
|
|
194
|
-
unstyle: false, disabled: false, readonly: false, border: true
|
|
218
|
+
unstyle: false, disabled: false, readonly: false, border: true
|
|
195
219
|
})
|
|
196
220
|
|
|
197
221
|
const $ = useDivideAttrs(["wrapper", "inner-wrapper", "suggestions", "multivalues"] as const)
|
|
@@ -222,7 +246,6 @@ const suggestionsIndicatorClickHandler = (e: MouseEvent) => {
|
|
|
222
246
|
emit("indicatorClick", e)
|
|
223
247
|
}
|
|
224
248
|
|
|
225
|
-
|
|
226
249
|
const handleKeydown = (e: KeyboardEvent) => {
|
|
227
250
|
if (props.suggestions) {
|
|
228
251
|
if (e.key === "Enter" && activeSuggestion.value === -1 && $values.value) {
|
|
@@ -263,7 +286,7 @@ const inputAriaProps = useSuggestionsInputAria(
|
|
|
263
286
|
fullId,
|
|
264
287
|
isOpen,
|
|
265
288
|
activeSuggestion,
|
|
266
|
-
suggestions
|
|
289
|
+
suggestions
|
|
267
290
|
)
|
|
268
291
|
const inputProps = computed(() => ({
|
|
269
292
|
id: fullId.value,
|
|
@@ -275,6 +298,7 @@ const inputProps = computed(() => ({
|
|
|
275
298
|
onBlur: handleBlur,
|
|
276
299
|
onFocus: handleFocus,
|
|
277
300
|
modelValue: $inputValue.value,
|
|
301
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
278
302
|
"onUpdate:modelValue": (e: string) => {
|
|
279
303
|
$inputValue.value = e
|
|
280
304
|
if (!props.suggestions && !props.updateOnlyOnSubmit && !props.restrictToSuggestions) {
|
|
@@ -293,7 +317,7 @@ const inputProps = computed(() => ({
|
|
|
293
317
|
...inputAriaProps.value,
|
|
294
318
|
canEdit: canEdit.value,
|
|
295
319
|
...$.value.attrs,
|
|
296
|
-
class: undefined
|
|
320
|
+
class: undefined
|
|
297
321
|
}))
|
|
298
322
|
|
|
299
323
|
function slotSubmit(val: any, _wasRemoved: boolean): void {
|
|
@@ -308,7 +332,6 @@ const slotProps = computed(() => ({
|
|
|
308
332
|
emitSubmit: slotSubmit
|
|
309
333
|
}))
|
|
310
334
|
|
|
311
|
-
|
|
312
335
|
const suggestionProps = computed(() => ({
|
|
313
336
|
id: fullId.value,
|
|
314
337
|
suggestions: props.suggestions,
|
|
@@ -319,18 +342,22 @@ const suggestionProps = computed(() => ({
|
|
|
319
342
|
modelValue: $values.value ?? $modelValue.value.toString(),
|
|
320
343
|
inputValue: $inputValue.value,
|
|
321
344
|
isValid: props.isValid,
|
|
345
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
322
346
|
"onUpdate:inputValue": (e: string) => $inputValue.value = e,
|
|
323
347
|
onSubmit: (e: string, suggestion?: any, wasRemoved?: boolean) => {
|
|
324
348
|
$modelValue.value = wasRemoved ? "" : e
|
|
325
349
|
emit("submit", e, suggestion)
|
|
326
350
|
},
|
|
351
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
327
352
|
"onUpdate:modelValue": (e: string | string[]) => {
|
|
328
353
|
$values.value &&= e as string[]
|
|
329
354
|
},
|
|
355
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
330
356
|
"onUpdate:isOpen": (e: boolean) => { isOpen.value = e },
|
|
357
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
331
358
|
"onUpdate:activeSuggestion": (e: number) => activeSuggestion.value = e,
|
|
332
359
|
...$.value.suggestionsAttrs,
|
|
333
|
-
class: undefined
|
|
360
|
+
class: undefined
|
|
334
361
|
}))
|
|
335
362
|
|
|
336
363
|
const multivaluesProps = computed(() => ({
|
|
@@ -340,41 +367,39 @@ const multivaluesProps = computed(() => ({
|
|
|
340
367
|
disabled: props.disabled,
|
|
341
368
|
readonly: props.readonly,
|
|
342
369
|
modelValue: $values.value,
|
|
370
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
343
371
|
"onUpdate:modelValue": (e: string[]) => $values.value = e,
|
|
344
372
|
...$.value.multivaluesAttrs,
|
|
345
|
-
class: undefined
|
|
373
|
+
class: undefined
|
|
346
374
|
}))
|
|
347
375
|
|
|
348
|
-
|
|
349
376
|
defineExpose({
|
|
350
377
|
suggestionsComponent,
|
|
351
|
-
el: inputWrapperEl
|
|
378
|
+
el: inputWrapperEl
|
|
352
379
|
})
|
|
353
|
-
|
|
354
380
|
</script>
|
|
355
|
-
<script lang="ts">
|
|
356
381
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
& WrapperProps<"
|
|
360
|
-
|
|
382
|
+
<script lang="ts">
|
|
383
|
+
type WrapperTypes
|
|
384
|
+
= & WrapperProps<"suggestions", HTMLAttributes>
|
|
385
|
+
& WrapperProps<"wrapper", HTMLAttributes>
|
|
386
|
+
& WrapperProps<"inner-wrapper", HTMLAttributes>
|
|
361
387
|
|
|
362
|
-
type RealProps
|
|
363
|
-
SuggestionsProps
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
& {
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
}
|
|
388
|
+
type RealProps
|
|
389
|
+
= SuggestionsProps
|
|
390
|
+
& LinkableByIdProps
|
|
391
|
+
& LabelProps
|
|
392
|
+
& BaseInteractiveProps
|
|
393
|
+
& {
|
|
394
|
+
suggestions?: SuggestionsProps["suggestions"]
|
|
395
|
+
valid?: boolean
|
|
396
|
+
}
|
|
371
397
|
|
|
372
398
|
interface Props
|
|
373
399
|
extends
|
|
374
400
|
/** @vue-ignore */
|
|
375
|
-
Partial<Omit<InputHTMLAttributes,"class" | "readonly" | "disabled" | "onSubmit"> & TailwindClassProp>,
|
|
401
|
+
Partial<Omit<InputHTMLAttributes, "class" | "readonly" | "disabled" | "onSubmit"> & TailwindClassProp>,
|
|
376
402
|
/** @vue-ignore */
|
|
377
403
|
Partial<WrapperTypes>,
|
|
378
404
|
RealProps { }
|
|
379
405
|
</script>
|
|
380
|
-
|