@xleddyl/443-components-vue 0.2.2 → 0.3.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/README.md +79 -19
- package/dist/chart/BarChart.vue.d.ts +2 -2
- package/dist/chart/ChartLegend.vue.d.ts +4 -4
- package/dist/chart/ChartPanel.vue.d.ts +2 -2
- package/dist/chart/ChartSummary.vue.d.ts +2 -2
- package/dist/chart/DoughnutChart.vue.d.ts +2 -2
- package/dist/chart/LineChart.vue.d.ts +2 -2
- package/dist/components/core/Button.vue.d.ts +2 -2
- package/dist/components/core/FieldMessage.vue +28 -0
- package/dist/components/core/FieldMessage.vue.d.ts +409 -0
- package/dist/components/core/Form.vue +22 -3
- package/dist/components/core/Form.vue.d.ts +18 -4
- package/dist/components/core/FormField.vue +37 -15
- package/dist/components/core/FormField.vue.d.ts +5 -4
- package/dist/components/core/Icon.vue.d.ts +2 -2
- package/dist/components/core/Input.vue.d.ts +4 -4
- package/dist/components/core/Kbd.vue.d.ts +2 -2
- package/dist/components/core/Root.vue.d.ts +6 -6
- package/dist/components/core/Spinner.vue +13 -1
- package/dist/components/core/Spinner.vue.d.ts +4 -2
- package/dist/components/core/Textarea.vue.d.ts +4 -4
- package/dist/components/core/VisuallyHidden.vue.d.ts +6 -6
- package/dist/components/core/index.d.ts +1 -0
- package/dist/components/core/index.mjs +1 -0
- package/dist/components/data/Avatar.vue.d.ts +2 -2
- package/dist/components/data/AvatarGroup.vue.d.ts +2 -2
- package/dist/components/data/Badge.vue.d.ts +2 -2
- package/dist/components/data/DescriptionList.vue.d.ts +2 -2
- package/dist/components/data/FilterPill.vue +35 -0
- package/dist/components/data/FilterPill.vue.d.ts +445 -0
- package/dist/components/data/FilterPills.vue +49 -21
- package/dist/components/data/FilterPills.vue.d.ts +22 -5
- package/dist/components/data/Pagination.vue.d.ts +4 -4
- package/dist/components/data/SelectionBar.vue +78 -0
- package/dist/components/data/SelectionBar.vue.d.ts +427 -0
- package/dist/components/data/Stat.vue.d.ts +8 -8
- package/dist/components/data/Tag.vue.d.ts +4 -4
- package/dist/components/data/Timeline.vue.d.ts +2 -2
- package/dist/components/data/Tree.vue +237 -18
- package/dist/components/data/Tree.vue.d.ts +37 -10
- package/dist/components/data/index.d.ts +3 -0
- package/dist/components/data/index.mjs +3 -0
- package/dist/components/data/types.d.ts +19 -0
- package/dist/components/feedback/Alert.vue.d.ts +18 -18
- package/dist/components/feedback/EmptyState.vue.d.ts +2 -2
- package/dist/components/feedback/LoadingOverlay.vue.d.ts +2 -2
- package/dist/components/feedback/Meter.vue.d.ts +2 -2
- package/dist/components/feedback/Progress.vue.d.ts +2 -2
- package/dist/components/feedback/ProgressRing.vue.d.ts +2 -2
- package/dist/components/feedback/Skeleton.vue.d.ts +3 -3
- package/dist/components/forms/Calendar.vue.d.ts +4 -4
- package/dist/components/forms/ColorInput.vue.d.ts +6 -6
- package/dist/components/forms/DateInput.vue.d.ts +14 -14
- package/dist/components/forms/DatePicker.vue.d.ts +6 -6
- package/dist/components/forms/FileInput.vue +80 -26
- package/dist/components/forms/FileInput.vue.d.ts +21 -11
- package/dist/components/forms/InputAddon.vue.d.ts +2 -2
- package/dist/components/forms/InputGroup.vue.d.ts +2 -2
- package/dist/components/forms/NumberInput.vue.d.ts +6 -6
- package/dist/components/forms/PasswordInput.vue.d.ts +16 -16
- package/dist/components/forms/PinInput.vue.d.ts +6 -6
- package/dist/components/forms/Radio.vue.d.ts +2 -2
- package/dist/components/forms/SegmentedControl.vue +32 -8
- package/dist/components/forms/SegmentedControl.vue.d.ts +15 -7
- package/dist/components/forms/Slider.vue.d.ts +6 -6
- package/dist/components/forms/Switch.vue.d.ts +6 -6
- package/dist/components/forms/TimeInput.vue.d.ts +16 -16
- package/dist/components/forms/types.d.ts +14 -0
- package/dist/components/layout/Accordion.vue +25 -5
- package/dist/components/layout/Accordion.vue.d.ts +8 -5
- package/dist/components/layout/AppShell.vue.d.ts +5 -5
- package/dist/components/layout/Breadcrumbs.vue +28 -20
- package/dist/components/layout/Breadcrumbs.vue.d.ts +18 -3
- package/dist/components/layout/Card.vue +22 -3
- package/dist/components/layout/Card.vue.d.ts +10 -4
- package/dist/components/layout/CopyButton.vue.d.ts +4 -4
- package/dist/components/layout/Grid.vue.d.ts +2 -2
- package/dist/components/layout/NavLink.vue.d.ts +8 -8
- package/dist/components/layout/PageHeader.vue +10 -1
- package/dist/components/layout/PageHeader.vue.d.ts +17 -9
- package/dist/components/layout/Separator.vue.d.ts +2 -2
- package/dist/components/layout/Sidebar.vue.d.ts +2 -2
- package/dist/components/layout/SidebarSection.vue.d.ts +2 -2
- package/dist/components/layout/Stack.vue.d.ts +6 -6
- package/dist/components/layout/Tabs.vue +27 -6
- package/dist/components/layout/Tabs.vue.d.ts +7 -4
- package/dist/components/layout/ThemeSwitch.vue.d.ts +2 -2
- package/dist/components/layout/Toolbar.vue.d.ts +2 -2
- package/dist/components/layout/types.d.ts +7 -1
- package/dist/components/overlays/CommandPalette.vue +25 -4
- package/dist/components/overlays/CommandPalette.vue.d.ts +23 -9
- package/dist/components/overlays/ConfirmDialog.vue.d.ts +8 -6
- package/dist/components/overlays/ConfirmHost.vue +5 -1
- package/dist/components/overlays/ConfirmHost.vue.d.ts +10 -8
- package/dist/components/overlays/ContextMenu.vue.d.ts +4 -4
- package/dist/components/overlays/Drawer.vue +4 -2
- package/dist/components/overlays/Drawer.vue.d.ts +8 -6
- package/dist/components/overlays/DropdownMenu.vue.d.ts +2 -2
- package/dist/components/overlays/HoverCard.vue +2 -1
- package/dist/components/overlays/HoverCard.vue.d.ts +6 -6
- package/dist/components/overlays/Modal.vue +5 -3
- package/dist/components/overlays/Modal.vue.d.ts +8 -6
- package/dist/components/overlays/Popover.vue +2 -1
- package/dist/components/overlays/Popover.vue.d.ts +6 -6
- package/dist/components/overlays/Toaster.vue.d.ts +4 -4
- package/dist/components/overlays/Tooltip.vue.d.ts +2 -2
- package/dist/components/overlays/types.d.ts +4 -1
- package/dist/components/templates/AccountMenu.vue.d.ts +6 -6
- package/dist/components/templates/AppearanceSettings.vue.d.ts +2 -2
- package/dist/components/templates/AuthLayout.vue.d.ts +2 -2
- package/dist/components/templates/Brand.vue +34 -5
- package/dist/components/templates/Brand.vue.d.ts +20 -15
- package/dist/components/templates/DashboardLayout.vue +40 -4
- package/dist/components/templates/DashboardLayout.vue.d.ts +34 -22
- package/dist/components/templates/DashboardPage.vue.d.ts +2 -2
- package/dist/components/templates/DetailPage.vue.d.ts +4 -4
- package/dist/components/templates/EmptyPage.vue.d.ts +2 -2
- package/dist/components/templates/ErrorPage.vue.d.ts +2 -2
- package/dist/components/templates/ListPage.vue +16 -10
- package/dist/components/templates/NotFoundPage.vue.d.ts +1 -1
- package/dist/components/templates/SaveBar.vue.d.ts +4 -4
- package/dist/components/templates/SettingsGroup.vue.d.ts +2 -2
- package/dist/components/templates/SettingsModal.vue +5 -2
- package/dist/components/templates/SettingsModal.vue.d.ts +13 -8
- package/dist/components/templates/SettingsPage.vue.d.ts +4 -4
- package/dist/components/templates/SettingsSection.vue.d.ts +12 -8
- package/dist/components/templates/types.d.ts +24 -1
- package/dist/composables/core.d.ts +1 -0
- package/dist/composables/core.mjs +1 -0
- package/dist/composables/useField.d.ts +2 -0
- package/dist/composables/useField.mjs +5 -2
- package/dist/composables/useFieldBoundary.d.ts +1 -0
- package/dist/composables/useFieldBoundary.mjs +5 -0
- package/dist/composables/useFileDrop.d.ts +7 -0
- package/dist/composables/useFileDrop.mjs +114 -7
- package/dist/composables/useForm.d.ts +32 -19
- package/dist/composables/useForm.mjs +212 -45
- package/dist/editor/RichTextEditor.vue +30 -3
- package/dist/editor/RichTextEditor.vue.d.ts +11 -6
- package/dist/editor/rich-text-editor.css +1 -1
- package/dist/editor/types.d.ts +3 -0
- package/dist/grid/GridToolbar.vue.d.ts +4 -4
- package/dist/grid/cells/BadgeCell.vue.d.ts +2 -2
- package/dist/grid/cells/BooleanCell.vue.d.ts +2 -2
- package/dist/grid/cells/DateCell.vue.d.ts +2 -2
- package/dist/grid/cells/ImageCell.vue.d.ts +2 -2
- package/dist/grid/cells/LinkCell.vue.d.ts +2 -2
- package/dist/internal/data/tree.d.ts +8 -0
- package/dist/internal/data/tree.mjs +41 -0
- package/dist/internal/forms/FormAlerts.vue +25 -0
- package/dist/internal/forms/FormAlerts.vue.d.ts +393 -0
- package/dist/internal/forms/files.d.ts +2 -0
- package/dist/internal/forms/files.mjs +8 -1
- package/dist/internal/forms/standard-schema.d.ts +17 -0
- package/dist/internal/forms/standard-schema.mjs +40 -0
- package/dist/internal/overlays/DialogFrame.vue +17 -7
- package/dist/internal/overlays/DialogFrame.vue.d.ts +9 -5
- package/dist/internal/overlays/FieldBoundary.d.ts +4 -0
- package/dist/internal/overlays/FieldBoundary.mjs +9 -0
- package/dist/internal/overlays/MenuList.vue +2 -0
- package/dist/internal/overlays/MenuList.vue.d.ts +5 -5
- package/dist/internal/overlays/OverlayView.vue +2 -0
- package/dist/internal/overlays/OverlayView.vue.d.ts +14 -12
- package/dist/internal/overlays/dialog.d.ts +4 -1
- package/dist/internal/overlays/dialog.mjs +39 -5
- package/dist/internal/overlays/stack.d.ts +2 -1
- package/dist/locale/en.mjs +17 -2
- package/dist/locale/it.mjs +17 -2
- package/dist/locale/types.d.ts +15 -0
- package/dist/nuxt/module.d.ts +5 -4
- package/dist/nuxt/module.mjs +9 -6
- package/dist/nuxt/runtime/layouts/auth.vue.d.ts +8 -8
- package/dist/nuxt/runtime/layouts/dashboard.vue.d.ts +8 -8
- package/dist/styles/base.css +7 -0
- package/dist/styles/core/field-message.css +34 -0
- package/dist/styles/core/form-field.css +0 -23
- package/dist/styles/core/form.css +11 -0
- package/dist/styles/core/kbd.css +2 -2
- package/dist/styles/core/spinner.css +19 -0
- package/dist/styles/core.css +1 -0
- package/dist/styles/data/badge.css +1 -1
- package/dist/styles/data/filter-pills.css +40 -3
- package/dist/styles/data/selection-bar.css +85 -0
- package/dist/styles/data/tree.css +156 -1
- package/dist/styles/data.css +1 -0
- package/dist/styles/forms/calendar.css +1 -1
- package/dist/styles/forms/file-input.css +8 -0
- package/dist/styles/forms/segmented.css +8 -0
- package/dist/styles/forms/select.css +1 -1
- package/dist/styles/forms/slider.css +2 -2
- package/dist/styles/layout/accordion.css +16 -0
- package/dist/styles/layout/app-shell.css +4 -0
- package/dist/styles/layout/breadcrumbs.css +16 -1
- package/dist/styles/layout/card.css +19 -1
- package/dist/styles/layout/nav-link.css +1 -1
- package/dist/styles/layout/sidebar.css +1 -1
- package/dist/styles/layout/tabs.css +43 -1
- package/dist/styles/overlays/command.css +20 -2
- package/dist/styles/overlays/menu.css +1 -1
- package/dist/styles/overlays/modal.css +38 -0
- package/dist/styles/templates/brand.css +15 -0
- package/dist/styles/templates/empty-page.css +1 -1
- package/dist/styles/templates/list-page.css +2 -6
- package/dist/styles/templates/settings-modal.css +2 -2
- package/package.json +1 -1
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
'is-over': over,
|
|
9
9
|
'is-disabled': control.disabled.value,
|
|
10
10
|
'is-invalid': control.invalid.value,
|
|
11
|
-
'
|
|
11
|
+
'is-loading': loading,
|
|
12
|
+
'has-files': list && files.length > 0
|
|
12
13
|
},
|
|
13
14
|
props.class
|
|
14
15
|
]"
|
|
@@ -22,7 +23,8 @@
|
|
|
22
23
|
:disabled="control.disabled.value || void 0"
|
|
23
24
|
:aria-required="control.required.value ? 'true' : void 0"
|
|
24
25
|
:aria-invalid="control.invalid.value ? 'true' : void 0"
|
|
25
|
-
:aria-disabled="readonly ? 'true' : void 0"
|
|
26
|
+
:aria-disabled="readonly || loading ? 'true' : void 0"
|
|
27
|
+
:aria-busy="loading ? 'true' : void 0"
|
|
26
28
|
:aria-describedby="
|
|
27
29
|
joinIds(
|
|
28
30
|
$attrs['aria-describedby'],
|
|
@@ -35,11 +37,12 @@
|
|
|
35
37
|
@click="browse"
|
|
36
38
|
>
|
|
37
39
|
<span class="k-file-input-dropzone-icon" aria-hidden="true">
|
|
38
|
-
<
|
|
40
|
+
<Spinner v-if="loading" size="sm" decorative />
|
|
41
|
+
<Icon v-else :name="over ? 'arrow-up-tray' : icon" />
|
|
39
42
|
</span>
|
|
40
43
|
<span class="k-file-input-dropzone-text">
|
|
41
44
|
<span class="k-file-input-dropzone-title">
|
|
42
|
-
<slot name="title" :over="over">{{
|
|
45
|
+
<slot name="title" :over="over" :loading="loading">{{ currentTitle }}</slot>
|
|
43
46
|
</span>
|
|
44
47
|
<span v-if="hint" :id="hintId" class="k-file-input-dropzone-hint">{{ hint }}</span>
|
|
45
48
|
</span>
|
|
@@ -52,19 +55,21 @@
|
|
|
52
55
|
aria-hidden="true"
|
|
53
56
|
:name="formName"
|
|
54
57
|
:accept="acceptAttr"
|
|
55
|
-
:multiple="
|
|
58
|
+
:multiple="isMultiple || void 0"
|
|
56
59
|
:capture="capture"
|
|
57
60
|
:disabled="control.disabled.value || void 0"
|
|
58
61
|
@change="onNativeChange"
|
|
59
62
|
/>
|
|
60
|
-
<ul v-if="files.length" role="list" class="k-file-input-list" :aria-label="listText">
|
|
63
|
+
<ul v-if="list && files.length" role="list" class="k-file-input-list" :aria-label="listText">
|
|
61
64
|
<li v-for="file in files" :key="fileKey(file)" class="k-file-input-item">
|
|
62
65
|
<span class="k-file-input-thumb" aria-hidden="true">
|
|
63
66
|
<img v-if="previews[fileKey(file)]" :src="previews[fileKey(file)]" alt="" />
|
|
64
67
|
<Icon v-else name="document" />
|
|
65
68
|
</span>
|
|
66
69
|
<span class="k-file-input-meta">
|
|
67
|
-
<span class="k-file-input-name" :title="file
|
|
70
|
+
<span class="k-file-input-name" :title="filePath(file)">{{
|
|
71
|
+
directory ? filePath(file) : file.name
|
|
72
|
+
}}</span>
|
|
68
73
|
<span class="k-file-input-size">{{ formatBytes(file.size, resolvedLocale) }}</span>
|
|
69
74
|
</span>
|
|
70
75
|
<Button
|
|
@@ -73,7 +78,7 @@
|
|
|
73
78
|
variant="ghost"
|
|
74
79
|
tone="neutral"
|
|
75
80
|
icon="x-mark"
|
|
76
|
-
:aria-label="`${removeText} ${file.name}`"
|
|
81
|
+
:aria-label="`${removeText} ${directory ? filePath(file) : file.name}`"
|
|
77
82
|
:title="removeText"
|
|
78
83
|
@click="removeFile(file)"
|
|
79
84
|
/>
|
|
@@ -96,17 +101,20 @@ import {
|
|
|
96
101
|
} from "vue";
|
|
97
102
|
import { useFieldControl } from "../../composables/useField";
|
|
98
103
|
import { useLocale } from "../../composables/useLocale";
|
|
99
|
-
import { useFileDrop } from "../../composables/useFileDrop";
|
|
100
104
|
import { joinIds } from "../../internal/forms/control";
|
|
105
|
+
import { readDroppedFiles, useFileDrop } from "../../composables/useFileDrop";
|
|
101
106
|
import {
|
|
102
107
|
fileKey,
|
|
108
|
+
filePath,
|
|
103
109
|
formatBytes,
|
|
104
110
|
isImageFile,
|
|
105
111
|
matchesAccept,
|
|
106
|
-
parseAccept
|
|
112
|
+
parseAccept,
|
|
113
|
+
setFilePath
|
|
107
114
|
} from "../../internal/forms/files";
|
|
108
115
|
import Button from "../core/Button.vue";
|
|
109
116
|
import Icon from "../core/Icon.vue";
|
|
117
|
+
import Spinner from "../core/Spinner.vue";
|
|
110
118
|
defineOptions({ inheritAttrs: false });
|
|
111
119
|
const props = defineProps({
|
|
112
120
|
name: { type: String, required: false },
|
|
@@ -114,6 +122,10 @@ const props = defineProps({
|
|
|
114
122
|
maxSize: { type: Number, required: false },
|
|
115
123
|
maxFiles: { type: Number, required: false },
|
|
116
124
|
multiple: { type: Boolean, required: false },
|
|
125
|
+
directory: { type: Boolean, required: false },
|
|
126
|
+
list: { type: Boolean, required: false, default: true },
|
|
127
|
+
loading: { type: Boolean, required: false },
|
|
128
|
+
loadingText: { type: String, required: false },
|
|
117
129
|
capture: { type: String, required: false },
|
|
118
130
|
previews: { type: Boolean, required: false, default: true },
|
|
119
131
|
size: { type: String, required: false, default: "md" },
|
|
@@ -134,13 +146,19 @@ const props = defineProps({
|
|
|
134
146
|
});
|
|
135
147
|
const { locale: appLocale, t } = useLocale();
|
|
136
148
|
const resolvedLocale = computed(() => props.locale ?? appLocale.value.code);
|
|
137
|
-
const titleLabel = computed(
|
|
149
|
+
const titleLabel = computed(
|
|
150
|
+
() => props.title ?? t(props.directory ? "fileInput.directoryTitle" : "fileInput.title")
|
|
151
|
+
);
|
|
152
|
+
const loadingLabel = computed(() => props.loadingText ?? t("fileInput.loading"));
|
|
138
153
|
const dropLabel = computed(() => props.dropText ?? t("fileInput.drop"));
|
|
139
154
|
const removeText = computed(() => props.removeLabel ?? t("common.remove"));
|
|
140
155
|
const listText = computed(() => props.listLabel ?? t("fileInput.list"));
|
|
141
156
|
function announceCount(count) {
|
|
142
157
|
return props.announce ? props.announce(count) : t("fileInput.selected", { count });
|
|
143
158
|
}
|
|
159
|
+
function announceAdded(count) {
|
|
160
|
+
return props.announce ? props.announce(count) : t("fileInput.added", { count });
|
|
161
|
+
}
|
|
144
162
|
const model = defineModel({ type: null });
|
|
145
163
|
const emit = defineEmits(["invalid", "add", "remove"]);
|
|
146
164
|
const hintId = `${useId()}-hint`;
|
|
@@ -163,10 +181,27 @@ const files = computed(() => {
|
|
|
163
181
|
const acceptList = computed(() => parseAccept(props.accept));
|
|
164
182
|
const acceptAttr = computed(() => acceptList.value.join(",") || void 0);
|
|
165
183
|
const formName = computed(() => props.name ?? control.field?.name.value);
|
|
166
|
-
const interactive = computed(() => !control.disabled.value && !props.readonly);
|
|
184
|
+
const interactive = computed(() => !control.disabled.value && !props.readonly && !props.loading);
|
|
185
|
+
const isMultiple = computed(() => props.multiple || props.directory);
|
|
186
|
+
const currentTitle = computed(() => {
|
|
187
|
+
if (props.loading) return loadingLabel.value;
|
|
188
|
+
return over.value ? dropLabel.value : titleLabel.value;
|
|
189
|
+
});
|
|
190
|
+
function toEntries(list) {
|
|
191
|
+
return list.map((file) => ({ file, path: filePath(file) }));
|
|
192
|
+
}
|
|
167
193
|
const { over } = useFileDrop(rootRef, {
|
|
168
194
|
disabled: () => !interactive.value,
|
|
169
|
-
onDrop: (dropped) =>
|
|
195
|
+
onDrop: (dropped, event) => {
|
|
196
|
+
const transfer = event.dataTransfer;
|
|
197
|
+
if (!props.directory) {
|
|
198
|
+
addEntries(toEntries(dropped), { source: "drop", event, dataTransfer: transfer });
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
void readDroppedFiles(transfer).then(
|
|
202
|
+
(entries) => addEntries(entries, { source: "drop", event, dataTransfer: transfer })
|
|
203
|
+
);
|
|
204
|
+
}
|
|
170
205
|
});
|
|
171
206
|
function browse() {
|
|
172
207
|
if (!interactive.value) return;
|
|
@@ -180,12 +215,23 @@ function validate(file) {
|
|
|
180
215
|
return void 0;
|
|
181
216
|
}
|
|
182
217
|
function addFiles(incoming) {
|
|
183
|
-
|
|
218
|
+
addEntries(toEntries(incoming), {
|
|
219
|
+
source: "browse",
|
|
220
|
+
event: new Event("add"),
|
|
221
|
+
dataTransfer: null
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
function addEntries(incomingEntries, origin) {
|
|
225
|
+
if (!interactive.value || !incomingEntries.length) return;
|
|
226
|
+
for (const entry of incomingEntries) setFilePath(entry.file, entry.path);
|
|
227
|
+
const incoming = incomingEntries.map((entry) => entry.file);
|
|
228
|
+
const multiple = isMultiple.value;
|
|
184
229
|
const accepted = [];
|
|
185
|
-
const
|
|
186
|
-
const
|
|
187
|
-
const
|
|
188
|
-
|
|
230
|
+
const kept = props.list ? files.value : [];
|
|
231
|
+
const existing = new Set(kept.map(fileKey));
|
|
232
|
+
const limit = multiple ? props.maxFiles ?? Infinity : 1;
|
|
233
|
+
const room = multiple ? limit - kept.length : 1;
|
|
234
|
+
for (const file of multiple ? incoming : incoming.slice(0, 1)) {
|
|
189
235
|
const problem = validate(file);
|
|
190
236
|
if (problem) {
|
|
191
237
|
emit("invalid", problem);
|
|
@@ -199,23 +245,29 @@ function addFiles(incoming) {
|
|
|
199
245
|
accepted.push(file);
|
|
200
246
|
existing.add(fileKey(file));
|
|
201
247
|
}
|
|
202
|
-
if (!
|
|
248
|
+
if (!multiple && incoming.length > 1)
|
|
203
249
|
for (const file of incoming.slice(1)) emit("invalid", { reason: "count", file, limit: 1 });
|
|
204
250
|
if (!accepted.length) return;
|
|
205
|
-
model.value =
|
|
206
|
-
emit("add", accepted);
|
|
207
|
-
announcement.value = announceCount(
|
|
251
|
+
if (props.list) model.value = multiple ? [...files.value, ...accepted] : accepted[0];
|
|
252
|
+
emit("add", accepted, { ...origin, entries: toEntries(accepted) });
|
|
253
|
+
announcement.value = props.list ? announceCount(multiple ? files.value.length : 1) : announceAdded(accepted.length);
|
|
208
254
|
}
|
|
209
255
|
function onNativeChange(event) {
|
|
210
256
|
const target = event.target;
|
|
211
|
-
|
|
257
|
+
const picked = Array.from(target.files ?? []);
|
|
258
|
+
addEntries(toEntries(picked), { source: "browse", event, dataTransfer: null });
|
|
212
259
|
target.value = "";
|
|
213
260
|
}
|
|
261
|
+
function syncDirectory() {
|
|
262
|
+
const input = inputRef.value;
|
|
263
|
+
if (!input) return;
|
|
264
|
+
input.webkitdirectory = props.directory;
|
|
265
|
+
}
|
|
214
266
|
function removeFile(file) {
|
|
215
267
|
const key = fileKey(file);
|
|
216
|
-
model.value =
|
|
268
|
+
model.value = isMultiple.value ? files.value.filter((entry) => fileKey(entry) !== key) : null;
|
|
217
269
|
emit("remove", file);
|
|
218
|
-
announcement.value = announceCount(
|
|
270
|
+
announcement.value = announceCount(isMultiple.value ? files.value.length : 0);
|
|
219
271
|
buttonRef.value?.focus();
|
|
220
272
|
}
|
|
221
273
|
function syncPreviews(current) {
|
|
@@ -234,7 +286,7 @@ function syncPreviews(current) {
|
|
|
234
286
|
}
|
|
235
287
|
function syncNativeInput(current) {
|
|
236
288
|
const input = inputRef.value;
|
|
237
|
-
if (!input || typeof DataTransfer === "undefined") return;
|
|
289
|
+
if (!input || !props.list || typeof DataTransfer === "undefined") return;
|
|
238
290
|
try {
|
|
239
291
|
const transfer = new DataTransfer();
|
|
240
292
|
for (const file of current) transfer.items.add(file);
|
|
@@ -247,8 +299,10 @@ watch(files, (current) => {
|
|
|
247
299
|
syncPreviews(current);
|
|
248
300
|
syncNativeInput(current);
|
|
249
301
|
});
|
|
302
|
+
watch(() => props.directory, syncDirectory);
|
|
250
303
|
onMounted(() => {
|
|
251
304
|
mounted.value = true;
|
|
305
|
+
syncDirectory();
|
|
252
306
|
syncPreviews(files.value);
|
|
253
307
|
});
|
|
254
308
|
onBeforeUnmount(() => {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type { IconName } from '../../composables/useIcons';
|
|
2
2
|
import type { FieldSize } from '../core/types';
|
|
3
|
-
import type { FileInvalidEvent } from './types';
|
|
3
|
+
import type { FileAddDetail, FileInvalidEvent } from './types';
|
|
4
4
|
declare function browse(): void;
|
|
5
5
|
declare function addFiles(incoming: File[]): void;
|
|
6
|
-
declare var
|
|
6
|
+
declare var __VLS_11: {
|
|
7
7
|
over: boolean;
|
|
8
|
+
loading: boolean;
|
|
8
9
|
};
|
|
9
10
|
type __VLS_Slots = {} & {
|
|
10
|
-
title?: (props: typeof
|
|
11
|
+
title?: (props: typeof __VLS_11) => any;
|
|
11
12
|
};
|
|
12
13
|
declare const __VLS_base: import("vue").DefineComponent<{
|
|
13
14
|
name?: string | undefined;
|
|
@@ -15,6 +16,10 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
15
16
|
maxSize?: number;
|
|
16
17
|
maxFiles?: number;
|
|
17
18
|
multiple?: boolean;
|
|
19
|
+
directory?: boolean;
|
|
20
|
+
list?: boolean;
|
|
21
|
+
loading?: boolean;
|
|
22
|
+
loadingText?: string;
|
|
18
23
|
capture?: "user" | "environment";
|
|
19
24
|
previews?: boolean;
|
|
20
25
|
size?: FieldSize;
|
|
@@ -39,8 +44,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
39
44
|
form?: string | undefined | undefined;
|
|
40
45
|
results?: (string | number) | undefined;
|
|
41
46
|
placeholder?: string | undefined | undefined;
|
|
42
|
-
type?: "submit" | "reset" | "button" | undefined | undefined;
|
|
43
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
44
47
|
role?: string | undefined | undefined;
|
|
45
48
|
'aria-label'?: string | undefined | undefined;
|
|
46
49
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
@@ -141,6 +144,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
141
144
|
color?: string | undefined | undefined;
|
|
142
145
|
id?: string | undefined | undefined;
|
|
143
146
|
lang?: string | undefined | undefined;
|
|
147
|
+
type?: "submit" | "reset" | "button" | undefined | undefined;
|
|
144
148
|
tabindex?: (string | number) | undefined;
|
|
145
149
|
'aria-activedescendant'?: string | undefined | undefined;
|
|
146
150
|
'aria-atomic'?: (boolean | "true" | "false") | undefined;
|
|
@@ -151,7 +155,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
151
155
|
'aria-colindex'?: (string | number) | undefined;
|
|
152
156
|
'aria-colspan'?: (string | number) | undefined;
|
|
153
157
|
'aria-controls'?: string | undefined | undefined;
|
|
154
|
-
'aria-current'?: "page" | "
|
|
158
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
155
159
|
'aria-describedby'?: string | undefined | undefined;
|
|
156
160
|
'aria-details'?: string | undefined | undefined;
|
|
157
161
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -188,6 +192,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
188
192
|
'aria-valuemin'?: (string | number) | undefined;
|
|
189
193
|
'aria-valuenow'?: (string | number) | undefined;
|
|
190
194
|
'aria-valuetext'?: string | undefined | undefined;
|
|
195
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
191
196
|
ref_for?: boolean | undefined | undefined;
|
|
192
197
|
ref_key?: string | undefined | undefined;
|
|
193
198
|
accesskey?: string | undefined | undefined;
|
|
@@ -239,7 +244,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
239
244
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
240
245
|
remove: (file: File) => any;
|
|
241
246
|
invalid: (event: FileInvalidEvent) => any;
|
|
242
|
-
add: (files: File[]) => any;
|
|
247
|
+
add: (files: File[], detail: FileAddDetail) => any;
|
|
243
248
|
"update:modelValue": (value: File | File[] | null | undefined) => any;
|
|
244
249
|
}, string, import("vue").PublicProps, Readonly<{
|
|
245
250
|
name?: string | undefined;
|
|
@@ -247,6 +252,10 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
247
252
|
maxSize?: number;
|
|
248
253
|
maxFiles?: number;
|
|
249
254
|
multiple?: boolean;
|
|
255
|
+
directory?: boolean;
|
|
256
|
+
list?: boolean;
|
|
257
|
+
loading?: boolean;
|
|
258
|
+
loadingText?: string;
|
|
250
259
|
capture?: "user" | "environment";
|
|
251
260
|
previews?: boolean;
|
|
252
261
|
size?: FieldSize;
|
|
@@ -271,8 +280,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
271
280
|
form?: string | undefined | undefined;
|
|
272
281
|
results?: (string | number) | undefined;
|
|
273
282
|
placeholder?: string | undefined | undefined;
|
|
274
|
-
type?: "submit" | "reset" | "button" | undefined | undefined;
|
|
275
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
276
283
|
role?: string | undefined | undefined;
|
|
277
284
|
'aria-label'?: string | undefined | undefined;
|
|
278
285
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
@@ -373,6 +380,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
373
380
|
color?: string | undefined | undefined;
|
|
374
381
|
id?: string | undefined | undefined;
|
|
375
382
|
lang?: string | undefined | undefined;
|
|
383
|
+
type?: "submit" | "reset" | "button" | undefined | undefined;
|
|
376
384
|
tabindex?: (string | number) | undefined;
|
|
377
385
|
'aria-activedescendant'?: string | undefined | undefined;
|
|
378
386
|
'aria-atomic'?: (boolean | "true" | "false") | undefined;
|
|
@@ -383,7 +391,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
383
391
|
'aria-colindex'?: (string | number) | undefined;
|
|
384
392
|
'aria-colspan'?: (string | number) | undefined;
|
|
385
393
|
'aria-controls'?: string | undefined | undefined;
|
|
386
|
-
'aria-current'?: "page" | "
|
|
394
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
387
395
|
'aria-describedby'?: string | undefined | undefined;
|
|
388
396
|
'aria-details'?: string | undefined | undefined;
|
|
389
397
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -420,6 +428,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
420
428
|
'aria-valuemin'?: (string | number) | undefined;
|
|
421
429
|
'aria-valuenow'?: (string | number) | undefined;
|
|
422
430
|
'aria-valuetext'?: string | undefined | undefined;
|
|
431
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
423
432
|
ref_for?: boolean | undefined | undefined;
|
|
424
433
|
ref_key?: string | undefined | undefined;
|
|
425
434
|
accesskey?: string | undefined | undefined;
|
|
@@ -467,11 +476,12 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
467
476
|
}> & Readonly<{
|
|
468
477
|
onRemove?: ((file: File) => any) | undefined;
|
|
469
478
|
onInvalid?: ((event: FileInvalidEvent) => any) | undefined;
|
|
470
|
-
onAdd?: ((files: File[]) => any) | undefined;
|
|
479
|
+
onAdd?: ((files: File[], detail: FileAddDetail) => any) | undefined;
|
|
471
480
|
"onUpdate:modelValue"?: ((value: File | File[] | null | undefined) => any) | undefined;
|
|
472
481
|
}>, {
|
|
473
482
|
icon: IconName;
|
|
474
483
|
invalid: boolean;
|
|
484
|
+
list: boolean;
|
|
475
485
|
size: FieldSize;
|
|
476
486
|
previews: boolean;
|
|
477
487
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -63,7 +63,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
63
63
|
'aria-colindex'?: (string | number) | undefined;
|
|
64
64
|
'aria-colspan'?: (string | number) | undefined;
|
|
65
65
|
'aria-controls'?: string | undefined | undefined;
|
|
66
|
-
'aria-current'?: "page" | "
|
|
66
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
67
67
|
'aria-describedby'?: string | undefined | undefined;
|
|
68
68
|
'aria-details'?: string | undefined | undefined;
|
|
69
69
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -259,7 +259,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
259
259
|
'aria-colindex'?: (string | number) | undefined;
|
|
260
260
|
'aria-colspan'?: (string | number) | undefined;
|
|
261
261
|
'aria-controls'?: string | undefined | undefined;
|
|
262
|
-
'aria-current'?: "page" | "
|
|
262
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
263
263
|
'aria-describedby'?: string | undefined | undefined;
|
|
264
264
|
'aria-details'?: string | undefined | undefined;
|
|
265
265
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -61,7 +61,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
61
61
|
'aria-colindex'?: (string | number) | undefined;
|
|
62
62
|
'aria-colspan'?: (string | number) | undefined;
|
|
63
63
|
'aria-controls'?: string | undefined | undefined;
|
|
64
|
-
'aria-current'?: "page" | "
|
|
64
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
65
65
|
'aria-describedby'?: string | undefined | undefined;
|
|
66
66
|
'aria-details'?: string | undefined | undefined;
|
|
67
67
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -256,7 +256,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
256
256
|
'aria-colindex'?: (string | number) | undefined;
|
|
257
257
|
'aria-colspan'?: (string | number) | undefined;
|
|
258
258
|
'aria-controls'?: string | undefined | undefined;
|
|
259
|
-
'aria-current'?: "page" | "
|
|
259
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
260
260
|
'aria-describedby'?: string | undefined | undefined;
|
|
261
261
|
'aria-details'?: string | undefined | undefined;
|
|
262
262
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -31,8 +31,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
31
31
|
list?: string | undefined | undefined;
|
|
32
32
|
results?: (string | number) | undefined;
|
|
33
33
|
name?: string | undefined | undefined;
|
|
34
|
-
type?: import("vue").InputTypeHTMLAttribute | undefined;
|
|
35
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
36
34
|
role?: string | undefined | undefined;
|
|
37
35
|
'aria-label'?: string | undefined | undefined;
|
|
38
36
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
@@ -135,6 +133,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
135
133
|
height?: (string | number) | undefined;
|
|
136
134
|
id?: string | undefined | undefined;
|
|
137
135
|
lang?: string | undefined | undefined;
|
|
136
|
+
type?: import("vue").InputTypeHTMLAttribute | undefined;
|
|
138
137
|
width?: (string | number) | undefined;
|
|
139
138
|
tabindex?: (string | number) | undefined;
|
|
140
139
|
'aria-activedescendant'?: string | undefined | undefined;
|
|
@@ -146,7 +145,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
146
145
|
'aria-colindex'?: (string | number) | undefined;
|
|
147
146
|
'aria-colspan'?: (string | number) | undefined;
|
|
148
147
|
'aria-controls'?: string | undefined | undefined;
|
|
149
|
-
'aria-current'?: "page" | "
|
|
148
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
150
149
|
'aria-describedby'?: string | undefined | undefined;
|
|
151
150
|
'aria-details'?: string | undefined | undefined;
|
|
152
151
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -183,6 +182,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
183
182
|
'aria-valuemin'?: (string | number) | undefined;
|
|
184
183
|
'aria-valuenow'?: (string | number) | undefined;
|
|
185
184
|
'aria-valuetext'?: string | undefined | undefined;
|
|
185
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
186
186
|
ref_for?: boolean | undefined | undefined;
|
|
187
187
|
ref_key?: string | undefined | undefined;
|
|
188
188
|
accesskey?: string | undefined | undefined;
|
|
@@ -275,8 +275,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
275
275
|
list?: string | undefined | undefined;
|
|
276
276
|
results?: (string | number) | undefined;
|
|
277
277
|
name?: string | undefined | undefined;
|
|
278
|
-
type?: import("vue").InputTypeHTMLAttribute | undefined;
|
|
279
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
280
278
|
role?: string | undefined | undefined;
|
|
281
279
|
'aria-label'?: string | undefined | undefined;
|
|
282
280
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
@@ -379,6 +377,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
379
377
|
height?: (string | number) | undefined;
|
|
380
378
|
id?: string | undefined | undefined;
|
|
381
379
|
lang?: string | undefined | undefined;
|
|
380
|
+
type?: import("vue").InputTypeHTMLAttribute | undefined;
|
|
382
381
|
width?: (string | number) | undefined;
|
|
383
382
|
tabindex?: (string | number) | undefined;
|
|
384
383
|
'aria-activedescendant'?: string | undefined | undefined;
|
|
@@ -390,7 +389,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
390
389
|
'aria-colindex'?: (string | number) | undefined;
|
|
391
390
|
'aria-colspan'?: (string | number) | undefined;
|
|
392
391
|
'aria-controls'?: string | undefined | undefined;
|
|
393
|
-
'aria-current'?: "page" | "
|
|
392
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
394
393
|
'aria-describedby'?: string | undefined | undefined;
|
|
395
394
|
'aria-details'?: string | undefined | undefined;
|
|
396
395
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -427,6 +426,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
427
426
|
'aria-valuemin'?: (string | number) | undefined;
|
|
428
427
|
'aria-valuenow'?: (string | number) | undefined;
|
|
429
428
|
'aria-valuetext'?: string | undefined | undefined;
|
|
429
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
430
430
|
ref_for?: boolean | undefined | undefined;
|
|
431
431
|
ref_key?: string | undefined | undefined;
|
|
432
432
|
accesskey?: string | undefined | undefined;
|
|
@@ -34,8 +34,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
34
34
|
results?: (string | number) | undefined;
|
|
35
35
|
placeholder?: string | undefined;
|
|
36
36
|
name?: string | undefined;
|
|
37
|
-
type?: string | undefined;
|
|
38
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
39
37
|
role?: string | undefined;
|
|
40
38
|
'aria-label'?: string | undefined;
|
|
41
39
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
@@ -138,6 +136,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
138
136
|
height?: (string | number) | undefined;
|
|
139
137
|
id?: string | undefined;
|
|
140
138
|
lang?: string | undefined;
|
|
139
|
+
type?: string | undefined;
|
|
141
140
|
width?: (string | number) | undefined;
|
|
142
141
|
tabindex?: (string | number) | undefined;
|
|
143
142
|
'aria-activedescendant'?: string | undefined;
|
|
@@ -186,6 +185,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
186
185
|
'aria-valuemin'?: (string | number) | undefined;
|
|
187
186
|
'aria-valuenow'?: (string | number) | undefined;
|
|
188
187
|
'aria-valuetext'?: string | undefined;
|
|
188
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
189
189
|
ref_for?: boolean | undefined | undefined;
|
|
190
190
|
ref_key?: string | undefined | undefined;
|
|
191
191
|
step?: (string | number) | undefined;
|
|
@@ -232,6 +232,12 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
232
232
|
formtarget?: string | undefined;
|
|
233
233
|
popovertarget?: string;
|
|
234
234
|
popovertargetaction?: import("../../index.ts").PopoverTargetAction;
|
|
235
|
+
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
236
|
+
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
237
|
+
onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
238
|
+
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
239
|
+
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
240
|
+
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
235
241
|
clearable?: boolean;
|
|
236
242
|
clearLabel?: string;
|
|
237
243
|
noAutofill?: boolean;
|
|
@@ -248,12 +254,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
248
254
|
src?: string | undefined;
|
|
249
255
|
onCancel?: ((payload: Event) => void) | undefined;
|
|
250
256
|
modelModifiers?: Partial<Record<"number" | "trim", true>>;
|
|
251
|
-
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
252
|
-
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
253
|
-
onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
254
|
-
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
255
|
-
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
256
|
-
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
257
257
|
}, {
|
|
258
258
|
focus: () => void | undefined;
|
|
259
259
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
@@ -293,8 +293,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
293
293
|
results?: (string | number) | undefined;
|
|
294
294
|
placeholder?: string | undefined;
|
|
295
295
|
name?: string | undefined;
|
|
296
|
-
type?: string | undefined;
|
|
297
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
298
296
|
role?: string | undefined;
|
|
299
297
|
'aria-label'?: string | undefined;
|
|
300
298
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
@@ -397,6 +395,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
397
395
|
height?: (string | number) | undefined;
|
|
398
396
|
id?: string | undefined;
|
|
399
397
|
lang?: string | undefined;
|
|
398
|
+
type?: string | undefined;
|
|
400
399
|
width?: (string | number) | undefined;
|
|
401
400
|
tabindex?: (string | number) | undefined;
|
|
402
401
|
'aria-activedescendant'?: string | undefined;
|
|
@@ -445,6 +444,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
445
444
|
'aria-valuemin'?: (string | number) | undefined;
|
|
446
445
|
'aria-valuenow'?: (string | number) | undefined;
|
|
447
446
|
'aria-valuetext'?: string | undefined;
|
|
447
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
448
448
|
ref_for?: boolean | undefined | undefined;
|
|
449
449
|
ref_key?: string | undefined | undefined;
|
|
450
450
|
step?: (string | number) | undefined;
|
|
@@ -491,6 +491,12 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
491
491
|
formtarget?: string | undefined;
|
|
492
492
|
popovertarget?: string;
|
|
493
493
|
popovertargetaction?: import("../../index.ts").PopoverTargetAction;
|
|
494
|
+
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
495
|
+
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
496
|
+
onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
497
|
+
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
498
|
+
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
499
|
+
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
494
500
|
clearable?: boolean;
|
|
495
501
|
clearLabel?: string;
|
|
496
502
|
noAutofill?: boolean;
|
|
@@ -507,12 +513,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
507
513
|
src?: string | undefined;
|
|
508
514
|
onCancel?: ((payload: Event) => void) | undefined;
|
|
509
515
|
modelModifiers?: Partial<Record<"number" | "trim", true>>;
|
|
510
|
-
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
511
|
-
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
512
|
-
onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
513
|
-
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
514
|
-
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
515
|
-
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
516
516
|
}> & Readonly<{
|
|
517
517
|
onGenerate?: ((password: string) => any) | undefined;
|
|
518
518
|
"onUpdate:modelValue"?: ((value: string | null | undefined) => any) | undefined;
|
|
@@ -29,8 +29,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
29
29
|
list?: string | undefined | undefined;
|
|
30
30
|
results?: (string | number) | undefined;
|
|
31
31
|
name?: string | undefined | undefined;
|
|
32
|
-
type?: import("vue").InputTypeHTMLAttribute | undefined;
|
|
33
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
34
32
|
role?: string | undefined | undefined;
|
|
35
33
|
'aria-label'?: string | undefined | undefined;
|
|
36
34
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
@@ -133,6 +131,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
133
131
|
height?: (string | number) | undefined;
|
|
134
132
|
id?: string | undefined | undefined;
|
|
135
133
|
lang?: string | undefined | undefined;
|
|
134
|
+
type?: import("vue").InputTypeHTMLAttribute | undefined;
|
|
136
135
|
width?: (string | number) | undefined;
|
|
137
136
|
tabindex?: (string | number) | undefined;
|
|
138
137
|
'aria-activedescendant'?: string | undefined | undefined;
|
|
@@ -144,7 +143,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
144
143
|
'aria-colindex'?: (string | number) | undefined;
|
|
145
144
|
'aria-colspan'?: (string | number) | undefined;
|
|
146
145
|
'aria-controls'?: string | undefined | undefined;
|
|
147
|
-
'aria-current'?: "page" | "
|
|
146
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
148
147
|
'aria-describedby'?: string | undefined | undefined;
|
|
149
148
|
'aria-details'?: string | undefined | undefined;
|
|
150
149
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -181,6 +180,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
181
180
|
'aria-valuemin'?: (string | number) | undefined;
|
|
182
181
|
'aria-valuenow'?: (string | number) | undefined;
|
|
183
182
|
'aria-valuetext'?: string | undefined | undefined;
|
|
183
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
184
184
|
ref_for?: boolean | undefined | undefined;
|
|
185
185
|
ref_key?: string | undefined | undefined;
|
|
186
186
|
step?: (string | number) | undefined;
|
|
@@ -273,8 +273,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
273
273
|
list?: string | undefined | undefined;
|
|
274
274
|
results?: (string | number) | undefined;
|
|
275
275
|
name?: string | undefined | undefined;
|
|
276
|
-
type?: import("vue").InputTypeHTMLAttribute | undefined;
|
|
277
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
278
276
|
role?: string | undefined | undefined;
|
|
279
277
|
'aria-label'?: string | undefined | undefined;
|
|
280
278
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
@@ -377,6 +375,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
377
375
|
height?: (string | number) | undefined;
|
|
378
376
|
id?: string | undefined | undefined;
|
|
379
377
|
lang?: string | undefined | undefined;
|
|
378
|
+
type?: import("vue").InputTypeHTMLAttribute | undefined;
|
|
380
379
|
width?: (string | number) | undefined;
|
|
381
380
|
tabindex?: (string | number) | undefined;
|
|
382
381
|
'aria-activedescendant'?: string | undefined | undefined;
|
|
@@ -388,7 +387,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
388
387
|
'aria-colindex'?: (string | number) | undefined;
|
|
389
388
|
'aria-colspan'?: (string | number) | undefined;
|
|
390
389
|
'aria-controls'?: string | undefined | undefined;
|
|
391
|
-
'aria-current'?: "page" | "
|
|
390
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
392
391
|
'aria-describedby'?: string | undefined | undefined;
|
|
393
392
|
'aria-details'?: string | undefined | undefined;
|
|
394
393
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -425,6 +424,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
425
424
|
'aria-valuemin'?: (string | number) | undefined;
|
|
426
425
|
'aria-valuenow'?: (string | number) | undefined;
|
|
427
426
|
'aria-valuetext'?: string | undefined | undefined;
|
|
427
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
428
428
|
ref_for?: boolean | undefined | undefined;
|
|
429
429
|
ref_key?: string | undefined | undefined;
|
|
430
430
|
step?: (string | number) | undefined;
|