@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
|
@@ -18,7 +18,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
18
18
|
style?: import("vue").StyleValue;
|
|
19
19
|
results?: (string | number) | undefined;
|
|
20
20
|
placeholder?: string | undefined | undefined;
|
|
21
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
22
21
|
class?: import("vue").ClassValue;
|
|
23
22
|
role?: string | undefined | undefined;
|
|
24
23
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -131,7 +130,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
131
130
|
'aria-colindex'?: (string | number) | undefined;
|
|
132
131
|
'aria-colspan'?: (string | number) | undefined;
|
|
133
132
|
'aria-controls'?: string | undefined | undefined;
|
|
134
|
-
'aria-current'?: "page" | "
|
|
133
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
135
134
|
'aria-describedby'?: string | undefined | undefined;
|
|
136
135
|
'aria-details'?: string | undefined | undefined;
|
|
137
136
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -168,6 +167,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
168
167
|
'aria-valuemin'?: (string | number) | undefined;
|
|
169
168
|
'aria-valuenow'?: (string | number) | undefined;
|
|
170
169
|
'aria-valuetext'?: string | undefined | undefined;
|
|
170
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
171
171
|
ref_for?: boolean | undefined | undefined;
|
|
172
172
|
ref_key?: string | undefined | undefined;
|
|
173
173
|
accesskey?: string | undefined | undefined;
|
|
@@ -221,7 +221,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
221
221
|
style?: import("vue").StyleValue;
|
|
222
222
|
results?: (string | number) | undefined;
|
|
223
223
|
placeholder?: string | undefined | undefined;
|
|
224
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
225
224
|
class?: import("vue").ClassValue;
|
|
226
225
|
role?: string | undefined | undefined;
|
|
227
226
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -334,7 +333,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
334
333
|
'aria-colindex'?: (string | number) | undefined;
|
|
335
334
|
'aria-colspan'?: (string | number) | undefined;
|
|
336
335
|
'aria-controls'?: string | undefined | undefined;
|
|
337
|
-
'aria-current'?: "page" | "
|
|
336
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
338
337
|
'aria-describedby'?: string | undefined | undefined;
|
|
339
338
|
'aria-details'?: string | undefined | undefined;
|
|
340
339
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -371,6 +370,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
371
370
|
'aria-valuemin'?: (string | number) | undefined;
|
|
372
371
|
'aria-valuenow'?: (string | number) | undefined;
|
|
373
372
|
'aria-valuetext'?: string | undefined | undefined;
|
|
373
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
374
374
|
ref_for?: boolean | undefined | undefined;
|
|
375
375
|
ref_key?: string | undefined | undefined;
|
|
376
376
|
accesskey?: string | undefined | undefined;
|
|
@@ -68,7 +68,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
68
68
|
'aria-colindex'?: (string | number) | undefined;
|
|
69
69
|
'aria-colspan'?: (string | number) | undefined;
|
|
70
70
|
'aria-controls'?: string | undefined | undefined;
|
|
71
|
-
'aria-current'?: "page" | "
|
|
71
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
72
72
|
'aria-describedby'?: string | undefined | undefined;
|
|
73
73
|
'aria-details'?: string | undefined | undefined;
|
|
74
74
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -265,7 +265,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
265
265
|
'aria-colindex'?: (string | number) | undefined;
|
|
266
266
|
'aria-colspan'?: (string | number) | undefined;
|
|
267
267
|
'aria-controls'?: string | undefined | undefined;
|
|
268
|
-
'aria-current'?: "page" | "
|
|
268
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
269
269
|
'aria-describedby'?: string | undefined | undefined;
|
|
270
270
|
'aria-details'?: string | undefined | undefined;
|
|
271
271
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
hide-close
|
|
8
8
|
:sheet="false"
|
|
9
9
|
:aria-label="titleText"
|
|
10
|
+
:before-close="beforeClose"
|
|
10
11
|
@open="emit('open')"
|
|
11
12
|
@close="emit('close')"
|
|
12
13
|
@after-leave="emit('afterLeave')"
|
|
@@ -114,7 +115,7 @@
|
|
|
114
115
|
</div>
|
|
115
116
|
<slot name="account-fields" :account="account" :close="close" />
|
|
116
117
|
<SettingsGroup
|
|
117
|
-
v-if="onSignOut"
|
|
118
|
+
v-if="onSignOut && !hideSession"
|
|
118
119
|
:label="sessionLabelText"
|
|
119
120
|
:description="sessionDescriptionText"
|
|
120
121
|
row
|
|
@@ -177,7 +178,9 @@ const props = defineProps({
|
|
|
177
178
|
themeText: { type: String, required: false, default: void 0 },
|
|
178
179
|
presetLabel: { type: String, required: false, default: void 0 },
|
|
179
180
|
presetText: { type: String, required: false, default: void 0 },
|
|
180
|
-
onSignOut: { type: Function, required: false }
|
|
181
|
+
onSignOut: { type: Function, required: false },
|
|
182
|
+
hideSession: { type: Boolean, required: false },
|
|
183
|
+
beforeClose: { type: Function, required: false }
|
|
181
184
|
});
|
|
182
185
|
defineSlots();
|
|
183
186
|
const emit = defineEmits(["open", "close", "afterLeave"]);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ThemePreset } from '../../composables/usePreset';
|
|
2
|
+
import type { DialogBeforeClose } from '../overlays/types';
|
|
2
3
|
import type { SettingsModalAccount, SettingsModalSection } from './types';
|
|
3
4
|
type SectionScope = {
|
|
4
5
|
section: SettingsModalSection;
|
|
@@ -32,6 +33,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
32
33
|
presetLabel?: string;
|
|
33
34
|
presetText?: string;
|
|
34
35
|
onSignOut?: () => void;
|
|
36
|
+
hideSession?: boolean;
|
|
37
|
+
beforeClose?: DialogBeforeClose;
|
|
35
38
|
open?: boolean | undefined;
|
|
36
39
|
section?: string;
|
|
37
40
|
key?: PropertyKey | undefined;
|
|
@@ -41,8 +44,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
41
44
|
results?: (string | number) | undefined;
|
|
42
45
|
placeholder?: string | undefined;
|
|
43
46
|
description?: string;
|
|
44
|
-
size?: import("../overlays/types
|
|
45
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
47
|
+
size?: import("../overlays/types").ModalSize;
|
|
46
48
|
class?: import("vue").ClassValue;
|
|
47
49
|
role?: string | undefined;
|
|
48
50
|
'aria-label'?: string | undefined;
|
|
@@ -192,6 +194,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
192
194
|
'aria-valuemin'?: (string | number) | undefined;
|
|
193
195
|
'aria-valuenow'?: (string | number) | undefined;
|
|
194
196
|
'aria-valuetext'?: string | undefined;
|
|
197
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
195
198
|
ref_for?: boolean | undefined | undefined;
|
|
196
199
|
ref_key?: string | undefined | undefined;
|
|
197
200
|
accesskey?: string | undefined;
|
|
@@ -228,15 +231,15 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
228
231
|
exportparts?: string;
|
|
229
232
|
part?: string;
|
|
230
233
|
popover?: import("../../index.ts").PopoverMode | "" | boolean;
|
|
231
|
-
|
|
234
|
+
dismissible?: boolean | undefined;
|
|
232
235
|
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
233
236
|
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
234
237
|
onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
235
238
|
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
236
239
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
237
240
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
241
|
+
onCancel?: ((payload: Event) => void) | undefined;
|
|
238
242
|
flush?: boolean;
|
|
239
|
-
dismissible?: boolean | undefined;
|
|
240
243
|
sheet?: boolean;
|
|
241
244
|
rootClass?: unknown;
|
|
242
245
|
hideClose?: boolean;
|
|
@@ -266,6 +269,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
266
269
|
presetLabel?: string;
|
|
267
270
|
presetText?: string;
|
|
268
271
|
onSignOut?: () => void;
|
|
272
|
+
hideSession?: boolean;
|
|
273
|
+
beforeClose?: DialogBeforeClose;
|
|
269
274
|
open?: boolean | undefined;
|
|
270
275
|
section?: string;
|
|
271
276
|
key?: PropertyKey | undefined;
|
|
@@ -275,8 +280,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
275
280
|
results?: (string | number) | undefined;
|
|
276
281
|
placeholder?: string | undefined;
|
|
277
282
|
description?: string;
|
|
278
|
-
size?: import("../overlays/types
|
|
279
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
283
|
+
size?: import("../overlays/types").ModalSize;
|
|
280
284
|
class?: import("vue").ClassValue;
|
|
281
285
|
role?: string | undefined;
|
|
282
286
|
'aria-label'?: string | undefined;
|
|
@@ -426,6 +430,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
426
430
|
'aria-valuemin'?: (string | number) | undefined;
|
|
427
431
|
'aria-valuenow'?: (string | number) | undefined;
|
|
428
432
|
'aria-valuetext'?: string | undefined;
|
|
433
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
429
434
|
ref_for?: boolean | undefined | undefined;
|
|
430
435
|
ref_key?: string | undefined | undefined;
|
|
431
436
|
accesskey?: string | undefined;
|
|
@@ -462,15 +467,15 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
462
467
|
exportparts?: string;
|
|
463
468
|
part?: string;
|
|
464
469
|
popover?: import("../../index.ts").PopoverMode | "" | boolean;
|
|
465
|
-
|
|
470
|
+
dismissible?: boolean | undefined;
|
|
466
471
|
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
467
472
|
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
468
473
|
onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
469
474
|
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
470
475
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
471
476
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
477
|
+
onCancel?: ((payload: Event) => void) | undefined;
|
|
472
478
|
flush?: boolean;
|
|
473
|
-
dismissible?: boolean | undefined;
|
|
474
479
|
sheet?: boolean;
|
|
475
480
|
rootClass?: unknown;
|
|
476
481
|
hideClose?: boolean;
|
|
@@ -34,7 +34,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
34
34
|
style?: import("vue").StyleValue;
|
|
35
35
|
results?: (string | number) | undefined;
|
|
36
36
|
placeholder?: string | undefined | undefined;
|
|
37
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
38
37
|
class?: import("vue").ClassValue;
|
|
39
38
|
role?: string | undefined | undefined;
|
|
40
39
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -147,7 +146,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
147
146
|
'aria-colindex'?: (string | number) | undefined;
|
|
148
147
|
'aria-colspan'?: (string | number) | undefined;
|
|
149
148
|
'aria-controls'?: string | undefined | undefined;
|
|
150
|
-
'aria-current'?: "page" | "
|
|
149
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
151
150
|
'aria-describedby'?: string | undefined | undefined;
|
|
152
151
|
'aria-details'?: string | undefined | undefined;
|
|
153
152
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -184,6 +183,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
184
183
|
'aria-valuemin'?: (string | number) | undefined;
|
|
185
184
|
'aria-valuenow'?: (string | number) | undefined;
|
|
186
185
|
'aria-valuetext'?: string | undefined | undefined;
|
|
186
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
187
187
|
ref_for?: boolean | undefined | undefined;
|
|
188
188
|
ref_key?: string | undefined | undefined;
|
|
189
189
|
accesskey?: string | undefined | undefined;
|
|
@@ -246,7 +246,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
246
246
|
style?: import("vue").StyleValue;
|
|
247
247
|
results?: (string | number) | undefined;
|
|
248
248
|
placeholder?: string | undefined | undefined;
|
|
249
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
250
249
|
class?: import("vue").ClassValue;
|
|
251
250
|
role?: string | undefined | undefined;
|
|
252
251
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -359,7 +358,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
359
358
|
'aria-colindex'?: (string | number) | undefined;
|
|
360
359
|
'aria-colspan'?: (string | number) | undefined;
|
|
361
360
|
'aria-controls'?: string | undefined | undefined;
|
|
362
|
-
'aria-current'?: "page" | "
|
|
361
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
363
362
|
'aria-describedby'?: string | undefined | undefined;
|
|
364
363
|
'aria-details'?: string | undefined | undefined;
|
|
365
364
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -396,6 +395,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
396
395
|
'aria-valuemin'?: (string | number) | undefined;
|
|
397
396
|
'aria-valuenow'?: (string | number) | undefined;
|
|
398
397
|
'aria-valuetext'?: string | undefined | undefined;
|
|
398
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
399
399
|
ref_for?: boolean | undefined | undefined;
|
|
400
400
|
ref_key?: string | undefined | undefined;
|
|
401
401
|
accesskey?: string | undefined | undefined;
|
|
@@ -23,13 +23,11 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
23
23
|
level?: HeadingLevel;
|
|
24
24
|
key?: PropertyKey | undefined;
|
|
25
25
|
prefix?: string | undefined;
|
|
26
|
+
selected?: boolean;
|
|
26
27
|
style?: import("vue").StyleValue;
|
|
27
28
|
results?: (string | number) | undefined;
|
|
28
29
|
placeholder?: string | undefined;
|
|
29
30
|
bind?: Record<string, unknown>;
|
|
30
|
-
type?: string | undefined;
|
|
31
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
32
|
-
target?: string | undefined;
|
|
33
31
|
class?: import("vue").ClassValue;
|
|
34
32
|
role?: string | undefined;
|
|
35
33
|
'aria-label'?: string | undefined;
|
|
@@ -133,6 +131,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
133
131
|
id?: string | undefined;
|
|
134
132
|
lang?: string | undefined;
|
|
135
133
|
media?: string | undefined;
|
|
134
|
+
target?: string | undefined;
|
|
135
|
+
type?: string | undefined;
|
|
136
136
|
tabindex?: (string | number) | undefined;
|
|
137
137
|
href?: string | undefined;
|
|
138
138
|
to?: import("../core/types.ts").LinkTarget;
|
|
@@ -182,6 +182,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
182
182
|
'aria-valuemin'?: (string | number) | undefined;
|
|
183
183
|
'aria-valuenow'?: (string | number) | undefined;
|
|
184
184
|
'aria-valuetext'?: string | undefined;
|
|
185
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
185
186
|
ref_for?: boolean | undefined;
|
|
186
187
|
ref_key?: string | undefined;
|
|
187
188
|
accesskey?: string | undefined;
|
|
@@ -225,14 +226,15 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
225
226
|
hreflang?: string | undefined;
|
|
226
227
|
ping?: string | undefined;
|
|
227
228
|
referrerpolicy?: ("" | "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url") | undefined;
|
|
228
|
-
as?: string | import("vue").Component;
|
|
229
229
|
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
230
230
|
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
231
231
|
onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
232
232
|
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
233
233
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
234
234
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
235
|
+
as?: string | import("vue").Component;
|
|
235
236
|
padding?: import("../layout/types").CardPadding;
|
|
237
|
+
animated?: boolean;
|
|
236
238
|
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
237
239
|
save: () => any;
|
|
238
240
|
}, string, import("vue").PublicProps, Readonly<{
|
|
@@ -248,13 +250,11 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
248
250
|
level?: HeadingLevel;
|
|
249
251
|
key?: PropertyKey | undefined;
|
|
250
252
|
prefix?: string | undefined;
|
|
253
|
+
selected?: boolean;
|
|
251
254
|
style?: import("vue").StyleValue;
|
|
252
255
|
results?: (string | number) | undefined;
|
|
253
256
|
placeholder?: string | undefined;
|
|
254
257
|
bind?: Record<string, unknown>;
|
|
255
|
-
type?: string | undefined;
|
|
256
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
257
|
-
target?: string | undefined;
|
|
258
258
|
class?: import("vue").ClassValue;
|
|
259
259
|
role?: string | undefined;
|
|
260
260
|
'aria-label'?: string | undefined;
|
|
@@ -358,6 +358,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
358
358
|
id?: string | undefined;
|
|
359
359
|
lang?: string | undefined;
|
|
360
360
|
media?: string | undefined;
|
|
361
|
+
target?: string | undefined;
|
|
362
|
+
type?: string | undefined;
|
|
361
363
|
tabindex?: (string | number) | undefined;
|
|
362
364
|
href?: string | undefined;
|
|
363
365
|
to?: import("../core/types.ts").LinkTarget;
|
|
@@ -407,6 +409,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
407
409
|
'aria-valuemin'?: (string | number) | undefined;
|
|
408
410
|
'aria-valuenow'?: (string | number) | undefined;
|
|
409
411
|
'aria-valuetext'?: string | undefined;
|
|
412
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
410
413
|
ref_for?: boolean | undefined;
|
|
411
414
|
ref_key?: string | undefined;
|
|
412
415
|
accesskey?: string | undefined;
|
|
@@ -450,14 +453,15 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
450
453
|
hreflang?: string | undefined;
|
|
451
454
|
ping?: string | undefined;
|
|
452
455
|
referrerpolicy?: ("" | "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url") | undefined;
|
|
453
|
-
as?: string | import("vue").Component;
|
|
454
456
|
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
455
457
|
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
456
458
|
onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
457
459
|
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
458
460
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
459
461
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
462
|
+
as?: string | import("vue").Component;
|
|
460
463
|
padding?: import("../layout/types").CardPadding;
|
|
464
|
+
animated?: boolean;
|
|
461
465
|
}> & Readonly<{
|
|
462
466
|
onSave?: (() => any) | undefined;
|
|
463
467
|
}>, {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Component } from 'vue';
|
|
1
2
|
import type { LinkTarget, Tone } from '../core/types';
|
|
2
3
|
import type { DescriptionItem, StatTrend } from '../data/types';
|
|
3
4
|
import type { BreadcrumbItem, NavItem, NavSection } from '../layout/types';
|
|
@@ -7,6 +8,7 @@ export type DashboardVariant = 'inset' | 'sidebar' | 'floating';
|
|
|
7
8
|
export type ThemeSwitchPlacement = 'topbar' | 'sidebar' | false;
|
|
8
9
|
export type AuthLayoutVariant = 'centered' | 'split';
|
|
9
10
|
export type BrandSize = 'sm' | 'md' | 'lg';
|
|
11
|
+
export type BrandLogo = string | Component;
|
|
10
12
|
export type DashboardNavigation = NavItem[] | NavSection[];
|
|
11
13
|
export interface DashboardAccount {
|
|
12
14
|
name: string;
|
|
@@ -41,7 +43,28 @@ export interface DashboardBrand {
|
|
|
41
43
|
logo?: string;
|
|
42
44
|
to?: LinkTarget;
|
|
43
45
|
}
|
|
44
|
-
export type
|
|
46
|
+
export type DashboardSearchFunction = (query: string, signal: AbortSignal) => CommandGroup[] | Promise<CommandGroup[]>;
|
|
47
|
+
export type DashboardSearch = boolean | CommandGroup[] | DashboardSearchFunction;
|
|
48
|
+
export interface DashboardSearchProps {
|
|
49
|
+
label?: string;
|
|
50
|
+
placeholder?: string;
|
|
51
|
+
debounce?: number;
|
|
52
|
+
minQueryLength?: number;
|
|
53
|
+
filter?: boolean;
|
|
54
|
+
loading?: boolean;
|
|
55
|
+
recentKey?: string;
|
|
56
|
+
recentLimit?: number;
|
|
57
|
+
recentLabel?: string;
|
|
58
|
+
emptyText?: string;
|
|
59
|
+
minQueryText?: string;
|
|
60
|
+
errorText?: string;
|
|
61
|
+
loadingText?: string;
|
|
62
|
+
resultsText?: (count: number) => string;
|
|
63
|
+
notice?: string;
|
|
64
|
+
footerMove?: string;
|
|
65
|
+
footerSelect?: string;
|
|
66
|
+
footerClose?: string;
|
|
67
|
+
}
|
|
45
68
|
export interface PageStatus {
|
|
46
69
|
label: string;
|
|
47
70
|
tone?: Tone;
|
|
@@ -7,6 +7,7 @@ export interface FieldContext {
|
|
|
7
7
|
invalid: ComputedRef<boolean>;
|
|
8
8
|
required: ComputedRef<boolean>;
|
|
9
9
|
disabled: ComputedRef<boolean>;
|
|
10
|
+
setControlError: (message: string | undefined, source?: object) => void;
|
|
10
11
|
}
|
|
11
12
|
export declare function useField(): FieldContext | null;
|
|
12
13
|
export interface FieldControlOptions {
|
|
@@ -31,4 +32,5 @@ export declare function useFieldControl(options?: FieldControlOptions): {
|
|
|
31
32
|
'aria-required': "true" | undefined;
|
|
32
33
|
disabled: true | undefined;
|
|
33
34
|
}>;
|
|
35
|
+
setControlError: (message: string | undefined) => void | undefined;
|
|
34
36
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computed, inject, toValue } from "vue";
|
|
1
|
+
import { computed, getCurrentScope, inject, onScopeDispose, toValue } from "vue";
|
|
2
2
|
import { FIELD_KEY } from "../internal/keys.mjs";
|
|
3
3
|
export function useField() {
|
|
4
4
|
return inject(FIELD_KEY, null);
|
|
@@ -21,5 +21,8 @@ export function useFieldControl(options = {}) {
|
|
|
21
21
|
"aria-required": required.value ? "true" : void 0,
|
|
22
22
|
disabled: disabled.value || void 0
|
|
23
23
|
}));
|
|
24
|
-
|
|
24
|
+
const source = {};
|
|
25
|
+
const setControlError = (message) => field?.setControlError(message || void 0, source);
|
|
26
|
+
if (field && getCurrentScope()) onScopeDispose(() => field.setControlError(void 0, source));
|
|
27
|
+
return { field, id, invalid, required, disabled, describedBy, attrs, setControlError };
|
|
25
28
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function provideFieldBoundary(): void;
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import type { MaybeRefOrGetter } from 'vue';
|
|
2
2
|
export interface UseFileDropOptions {
|
|
3
3
|
disabled?: MaybeRefOrGetter<boolean | undefined>;
|
|
4
|
+
ignore?: (event: DragEvent) => boolean;
|
|
4
5
|
onDrop: (files: File[], event: DragEvent) => void;
|
|
5
6
|
}
|
|
7
|
+
export interface DroppedFile {
|
|
8
|
+
file: File;
|
|
9
|
+
path: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function readDroppedFiles(transfer: DataTransfer | null | undefined): Promise<DroppedFile[]>;
|
|
6
12
|
export declare function useFileDrop(target: MaybeRefOrGetter<HTMLElement | null | undefined>, options: UseFileDropOptions): {
|
|
7
13
|
over: import("vue").Ref<boolean, boolean>;
|
|
14
|
+
reset: () => void;
|
|
8
15
|
};
|
|
@@ -1,35 +1,141 @@
|
|
|
1
1
|
import { onScopeDispose, ref, toValue, watch } from "vue";
|
|
2
|
+
const claimedEvents = /* @__PURE__ */ new WeakSet();
|
|
2
3
|
function carriesFiles(event) {
|
|
3
4
|
return Array.from(event.dataTransfer?.types ?? []).includes("Files");
|
|
4
5
|
}
|
|
6
|
+
function readFileEntry(entry) {
|
|
7
|
+
return new Promise((resolve, reject) => entry.file(resolve, reject));
|
|
8
|
+
}
|
|
9
|
+
function readDirectoryBatch(reader) {
|
|
10
|
+
return new Promise((resolve, reject) => reader.readEntries(resolve, reject));
|
|
11
|
+
}
|
|
12
|
+
async function walkEntry(entry, prefix, result) {
|
|
13
|
+
if (entry.isFile) {
|
|
14
|
+
try {
|
|
15
|
+
const file = await readFileEntry(entry);
|
|
16
|
+
result.push({ file, path: `${prefix}${entry.name}` });
|
|
17
|
+
} catch {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (!entry.isDirectory) return;
|
|
23
|
+
const reader = entry.createReader();
|
|
24
|
+
const children = [];
|
|
25
|
+
for (; ; ) {
|
|
26
|
+
let batch;
|
|
27
|
+
try {
|
|
28
|
+
batch = await readDirectoryBatch(reader);
|
|
29
|
+
} catch {
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
if (!batch.length) break;
|
|
33
|
+
children.push(...batch);
|
|
34
|
+
}
|
|
35
|
+
for (const child of children) await walkEntry(child, `${prefix}${entry.name}/`, result);
|
|
36
|
+
}
|
|
37
|
+
export function readDroppedFiles(transfer) {
|
|
38
|
+
if (!transfer) return Promise.resolve([]);
|
|
39
|
+
const pending = [];
|
|
40
|
+
for (const item of Array.from(transfer.items ?? [])) {
|
|
41
|
+
if (item.kind !== "file") continue;
|
|
42
|
+
const entry = typeof item.webkitGetAsEntry === "function" ? item.webkitGetAsEntry() : null;
|
|
43
|
+
const fallback = entry ? null : item.getAsFile();
|
|
44
|
+
if (entry) pending.push(entry);
|
|
45
|
+
else if (fallback) pending.push(fallback);
|
|
46
|
+
}
|
|
47
|
+
if (!pending.length)
|
|
48
|
+
return Promise.resolve(
|
|
49
|
+
Array.from(transfer.files ?? []).map((file) => ({
|
|
50
|
+
file,
|
|
51
|
+
path: file.webkitRelativePath || file.name
|
|
52
|
+
}))
|
|
53
|
+
);
|
|
54
|
+
return (async () => {
|
|
55
|
+
const result = [];
|
|
56
|
+
for (const entry of pending) {
|
|
57
|
+
if (entry instanceof File) result.push({ file: entry, path: entry.name });
|
|
58
|
+
else await walkEntry(entry, "", result);
|
|
59
|
+
}
|
|
60
|
+
return result;
|
|
61
|
+
})();
|
|
62
|
+
}
|
|
5
63
|
export function useFileDrop(target, options) {
|
|
6
64
|
const over = ref(false);
|
|
7
65
|
let depth = 0;
|
|
66
|
+
let covered = false;
|
|
67
|
+
let watching = false;
|
|
8
68
|
function isDisabled() {
|
|
9
69
|
return Boolean(toValue(options.disabled));
|
|
10
70
|
}
|
|
71
|
+
function isIgnored(event) {
|
|
72
|
+
return claimedEvents.has(event) || Boolean(options.ignore?.(event));
|
|
73
|
+
}
|
|
74
|
+
function sync() {
|
|
75
|
+
over.value = depth > 0 && !covered;
|
|
76
|
+
}
|
|
77
|
+
function watchWindow(enable) {
|
|
78
|
+
if (typeof window === "undefined" || watching === enable) return;
|
|
79
|
+
watching = enable;
|
|
80
|
+
const method = enable ? "addEventListener" : "removeEventListener";
|
|
81
|
+
window[method]("drop", reset, true);
|
|
82
|
+
window[method]("dragend", reset, true);
|
|
83
|
+
}
|
|
84
|
+
function reset() {
|
|
85
|
+
depth = 0;
|
|
86
|
+
covered = false;
|
|
87
|
+
over.value = false;
|
|
88
|
+
watchWindow(false);
|
|
89
|
+
}
|
|
90
|
+
function track(event) {
|
|
91
|
+
covered = isIgnored(event);
|
|
92
|
+
if (!covered) claimedEvents.add(event);
|
|
93
|
+
sync();
|
|
94
|
+
}
|
|
11
95
|
function onDragEnter(event) {
|
|
12
96
|
if (!carriesFiles(event) || isDisabled()) return;
|
|
13
|
-
event.preventDefault();
|
|
14
97
|
depth++;
|
|
15
|
-
|
|
98
|
+
watchWindow(true);
|
|
99
|
+
if (isIgnored(event)) {
|
|
100
|
+
covered = true;
|
|
101
|
+
sync();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
event.preventDefault();
|
|
105
|
+
track(event);
|
|
16
106
|
}
|
|
17
107
|
function onDragOver(event) {
|
|
18
108
|
if (!carriesFiles(event)) return;
|
|
109
|
+
if (isDisabled()) {
|
|
110
|
+
if (!isIgnored(event)) {
|
|
111
|
+
event.preventDefault();
|
|
112
|
+
if (event.dataTransfer) event.dataTransfer.dropEffect = "none";
|
|
113
|
+
}
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
if (isIgnored(event)) {
|
|
117
|
+
covered = true;
|
|
118
|
+
sync();
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
19
121
|
event.preventDefault();
|
|
20
|
-
if (event.dataTransfer) event.dataTransfer.dropEffect =
|
|
122
|
+
if (event.dataTransfer) event.dataTransfer.dropEffect = "copy";
|
|
123
|
+
track(event);
|
|
21
124
|
}
|
|
22
125
|
function onDragLeave(event) {
|
|
23
126
|
if (!carriesFiles(event)) return;
|
|
24
127
|
depth = Math.max(0, depth - 1);
|
|
25
|
-
if (depth === 0)
|
|
128
|
+
if (depth === 0) reset();
|
|
129
|
+
else sync();
|
|
26
130
|
}
|
|
27
131
|
function onDropEvent(event) {
|
|
28
132
|
if (!carriesFiles(event)) return;
|
|
133
|
+
const ignored = isIgnored(event);
|
|
134
|
+
reset();
|
|
135
|
+
if (ignored) return;
|
|
29
136
|
event.preventDefault();
|
|
30
|
-
depth = 0;
|
|
31
|
-
over.value = false;
|
|
32
137
|
if (isDisabled()) return;
|
|
138
|
+
claimedEvents.add(event);
|
|
33
139
|
options.onDrop(Array.from(event.dataTransfer?.files ?? []), event);
|
|
34
140
|
}
|
|
35
141
|
const handlers = {
|
|
@@ -57,6 +163,7 @@ export function useFileDrop(target, options) {
|
|
|
57
163
|
onScopeDispose(() => {
|
|
58
164
|
stop();
|
|
59
165
|
bind(toValue(target), false);
|
|
166
|
+
watchWindow(false);
|
|
60
167
|
}, true);
|
|
61
|
-
return { over };
|
|
168
|
+
return { over, reset };
|
|
62
169
|
}
|