ropav 0.5.0 → 0.7.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 +32 -9
- package/dist/components/accordion/index.d.ts +2 -190
- package/dist/components/accordion/index.js +1 -12
- package/dist/components/alert/alert-indicator.js +1 -1
- package/dist/components/alert/index.d.ts +2 -131
- package/dist/components/alert/index.js +1 -10
- package/dist/components/alert-dialog/alert-dialog-close.js +1 -1
- package/dist/components/alert-dialog/alert-dialog-heading.js +2 -2
- package/dist/components/alert-dialog/alert-dialog.types.d.ts +1 -1
- package/dist/components/alert-dialog/index.d.ts +2 -296
- package/dist/components/alert-dialog/index.js +1 -17
- package/dist/components/autocomplete/autocomplete-popover.js +2 -2
- package/dist/components/autocomplete/autocomplete-root.js +1 -1
- package/dist/components/autocomplete/index.d.ts +2 -250
- package/dist/components/autocomplete/index.js +1 -12
- package/dist/components/avatar/avatar.context.d.ts +1 -1
- package/dist/components/avatar/index.d.ts +2 -101
- package/dist/components/avatar/index.js +1 -8
- package/dist/components/badge/badge-anchor.js +5 -4
- package/dist/components/badge/badge-auto-label.d.ts +4 -4
- package/dist/components/badge/badge-auto-label.js +2 -2
- package/dist/components/badge/badge-root.js +2 -2
- package/dist/components/badge/index.d.ts +2 -95
- package/dist/components/badge/index.js +1 -8
- package/dist/components/breadcrumbs/breadcrumbs-item.js +2 -2
- package/dist/components/breadcrumbs/breadcrumbs.types.d.ts +2 -2
- package/dist/components/breadcrumbs/index.d.ts +2 -90
- package/dist/components/breadcrumbs/index.js +1 -7
- package/dist/components/button/index.d.ts +2 -61
- package/dist/components/button/index.js +1 -4
- package/dist/components/button-group/index.d.ts +2 -72
- package/dist/components/button-group/index.js +1 -7
- package/dist/components/calendar/calendar-grid-body.js +2 -2
- package/dist/components/calendar/calendar-grid-header.js +1 -1
- package/dist/components/calendar/calendar-grid.js +2 -1
- package/dist/components/calendar/calendar-root.d.ts +1 -1
- package/dist/components/calendar/calendar-root.js +13 -13
- package/dist/components/calendar/calendar.context.js +1 -1
- package/dist/components/calendar/calendar.types.d.ts +3 -1
- package/dist/components/calendar/index.d.ts +2 -422
- package/dist/components/calendar/index.js +1 -27
- package/dist/components/calendar-year-picker/calendar-year-picker-cell.js +15 -11
- package/dist/components/calendar-year-picker/calendar-year-picker-grid-body.js +9 -10
- package/dist/components/calendar-year-picker/calendar-year-picker-grid.js +36 -32
- package/dist/components/calendar-year-picker/calendar-year-picker-trigger-heading.js +1 -1
- package/dist/components/calendar-year-picker/calendar-year-picker-trigger.js +1 -1
- package/dist/components/calendar-year-picker/calendar-year-picker.context.d.ts +26 -8
- package/dist/components/calendar-year-picker/calendar-year-picker.context.js +2 -2
- package/dist/components/calendar-year-picker/calendar-year-picker.types.d.ts +8 -1
- package/dist/components/calendar-year-picker/index.d.ts +0 -134
- package/dist/components/calendar-year-picker/index.js +1 -11
- package/dist/components/card/index.d.ts +2 -152
- package/dist/components/card/index.js +1 -11
- package/dist/components/checkbox/index.d.ts +2 -146
- package/dist/components/checkbox/index.js +1 -9
- package/dist/components/checkbox-group/index.d.ts +2 -77
- package/dist/components/checkbox-group/index.js +1 -4
- package/dist/components/chip/chip-auto-label.d.ts +4 -4
- package/dist/components/chip/chip-auto-label.js +2 -2
- package/dist/components/chip/chip-root.js +2 -2
- package/dist/components/chip/index.d.ts +2 -72
- package/dist/components/chip/index.js +1 -7
- package/dist/components/close-button/index.d.ts +2 -55
- package/dist/components/close-button/index.js +1 -4
- package/dist/components/color-area/index.d.ts +2 -100
- package/dist/components/color-area/index.js +1 -7
- package/dist/components/color-field/color-field-root.js +1 -1
- package/dist/components/color-field/index.d.ts +2 -175
- package/dist/components/color-field/index.js +1 -14
- package/dist/components/color-input-group/index.d.ts +2 -115
- package/dist/components/color-input-group/index.js +1 -9
- package/dist/components/color-picker/color-picker-popover.js +2 -2
- package/dist/components/color-picker/index.d.ts +2 -110
- package/dist/components/color-picker/index.js +1 -8
- package/dist/components/color-slider/index.d.ts +2 -138
- package/dist/components/color-slider/index.js +1 -9
- package/dist/components/color-swatch/index.d.ts +2 -59
- package/dist/components/color-swatch/index.js +1 -4
- package/dist/components/color-swatch-picker/color-swatch-picker-item.js +1 -1
- package/dist/components/color-swatch-picker/index.d.ts +2 -129
- package/dist/components/color-swatch-picker/index.js +1 -9
- package/dist/components/combo-box/combo-box-popover.js +2 -2
- package/dist/components/combo-box/combo-box.types.d.ts +1 -1
- package/dist/components/combo-box/index.d.ts +2 -229
- package/dist/components/combo-box/index.js +1 -10
- package/dist/components/date-field/date-field-root.js +2 -2
- package/dist/components/date-field/index.d.ts +2 -241
- package/dist/components/date-field/index.js +1 -12
- package/dist/components/date-input-group/use-date-segment.js +1 -1
- package/dist/components/date-picker/date-picker-popover.js +2 -2
- package/dist/components/date-picker/date-picker-root.js +6 -3
- package/dist/components/date-picker/index.d.ts +2 -186
- package/dist/components/date-picker/index.js +1 -9
- package/dist/components/date-range-picker/date-range-picker-popover.js +2 -2
- package/dist/components/date-range-picker/date-range-picker-root.js +6 -3
- package/dist/components/date-range-picker/index.d.ts +2 -209
- package/dist/components/date-range-picker/index.js +1 -10
- package/dist/components/description/index.d.ts +2 -45
- package/dist/components/description/index.js +1 -4
- package/dist/components/disclosure/disclosure-root.js +3 -3
- package/dist/components/disclosure/index.d.ts +2 -163
- package/dist/components/disclosure/index.js +1 -11
- package/dist/components/disclosure-group/index.d.ts +2 -57
- package/dist/components/disclosure-group/index.js +1 -4
- package/dist/components/drawer/drawer-close.js +1 -1
- package/dist/components/drawer/drawer-dialog.js +1 -1
- package/dist/components/drawer/drawer-heading.js +2 -2
- package/dist/components/drawer/drawer.types.d.ts +1 -1
- package/dist/components/drawer/index.d.ts +2 -291
- package/dist/components/drawer/index.js +1 -17
- package/dist/components/drop-zone/drop-zone-root.d.ts +23 -0
- package/dist/components/drop-zone/drop-zone-root.js +153 -0
- package/dist/components/drop-zone/drop-zone-trigger.d.ts +21 -0
- package/dist/components/drop-zone/drop-zone-trigger.js +20 -0
- package/dist/components/drop-zone/drop-zone.accept.d.ts +19 -0
- package/dist/components/drop-zone/drop-zone.accept.js +28 -0
- package/dist/components/drop-zone/drop-zone.context.d.ts +6 -0
- package/dist/components/drop-zone/drop-zone.context.js +5 -0
- package/dist/components/drop-zone/drop-zone.types.d.ts +30 -0
- package/dist/components/drop-zone/index.d.ts +8 -0
- package/dist/components/drop-zone/index.js +5 -0
- package/dist/components/dropdown/dropdown-popover.js +2 -2
- package/dist/components/dropdown/index.d.ts +2 -265
- package/dist/components/dropdown/index.js +1 -23
- package/dist/components/empty-state/index.d.ts +2 -45
- package/dist/components/empty-state/index.js +1 -4
- package/dist/components/error-message/index.d.ts +2 -45
- package/dist/components/error-message/index.js +1 -4
- package/dist/components/field-error/field-error-root.js +2 -2
- package/dist/components/field-error/index.d.ts +2 -66
- package/dist/components/field-error/index.js +1 -7
- package/dist/components/fieldset/index.d.ts +2 -110
- package/dist/components/fieldset/index.js +1 -9
- package/dist/components/form/index.d.ts +2 -49
- package/dist/components/form/index.js +1 -4
- package/dist/components/header/index.d.ts +2 -45
- package/dist/components/header/index.js +1 -4
- package/dist/components/i18n-provider/index.d.ts +2 -2
- package/dist/components/i18n-provider/index.js +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/input/index.d.ts +2 -51
- package/dist/components/input/index.js +1 -4
- package/dist/components/input-group/index.d.ts +2 -141
- package/dist/components/input-group/index.js +1 -10
- package/dist/components/input-otp/index.d.ts +2 -151
- package/dist/components/input-otp/index.js +1 -9
- package/dist/components/kbd/index.d.ts +2 -86
- package/dist/components/kbd/index.js +1 -8
- package/dist/components/label/index.d.ts +2 -51
- package/dist/components/label/index.js +1 -4
- package/dist/components/link/index.d.ts +2 -94
- package/dist/components/link/index.js +1 -7
- package/dist/components/list-box/index.d.ts +2 -191
- package/dist/components/list-box/index.js +1 -14
- package/dist/components/list-box/list-box-drop-indicator.js +2 -2
- package/dist/components/list-box/list-box-root.js +4 -4
- package/dist/components/list-box-item/index.d.ts +2 -74
- package/dist/components/list-box-item/index.js +1 -7
- package/dist/components/list-box-item/list-box-item-root.js +2 -2
- package/dist/components/list-box-section/index.d.ts +2 -47
- package/dist/components/list-box-section/index.js +1 -4
- package/dist/components/menu/index.d.ts +2 -83
- package/dist/components/menu/index.js +1 -4
- package/dist/components/menu-item/index.d.ts +2 -96
- package/dist/components/menu-item/index.js +1 -8
- package/dist/components/menu-item/menu-item-root.js +2 -2
- package/dist/components/menu-section/index.d.ts +2 -63
- package/dist/components/menu-section/index.js +1 -4
- package/dist/components/meter/index.d.ts +2 -127
- package/dist/components/meter/index.js +1 -9
- package/dist/components/modal/index.d.ts +2 -296
- package/dist/components/modal/index.js +1 -17
- package/dist/components/modal/modal-close.js +1 -1
- package/dist/components/modal/modal-heading.js +2 -2
- package/dist/components/modal/modal.context.d.ts +2 -2
- package/dist/components/modal/modal.types.d.ts +1 -1
- package/dist/components/number-field/index.d.ts +2 -186
- package/dist/components/number-field/index.js +1 -10
- package/dist/components/number-field/number-field-decrement-button.js +1 -1
- package/dist/components/number-field/number-field-increment-button.js +1 -1
- package/dist/components/overlay/overlay-slots.d.ts +1 -1
- package/dist/components/pagination/index.d.ts +2 -244
- package/dist/components/pagination/index.js +1 -15
- package/dist/components/pagination/pagination-next.js +4 -1
- package/dist/components/pagination/pagination-previous.js +4 -1
- package/dist/components/popover/index.d.ts +2 -172
- package/dist/components/popover/index.js +1 -11
- package/dist/components/popover/popover-arrow.js +2 -2
- package/dist/components/popover/popover-content.js +2 -2
- package/dist/components/popover/popover-heading.js +2 -2
- package/dist/components/popover/popover.types.d.ts +1 -1
- package/dist/components/progress-bar/index.d.ts +2 -129
- package/dist/components/progress-bar/index.js +1 -9
- package/dist/components/progress-bar/progress-bar-root.js +4 -0
- package/dist/components/progress-bar/progress-bar.types.d.ts +7 -0
- package/dist/components/progress-circle/index.d.ts +2 -124
- package/dist/components/progress-circle/index.js +1 -9
- package/dist/components/radio/index.d.ts +2 -120
- package/dist/components/radio/index.js +1 -9
- package/dist/components/radio-group/index.d.ts +2 -79
- package/dist/components/radio-group/index.js +1 -4
- package/dist/components/range-calendar/index.d.ts +2 -424
- package/dist/components/range-calendar/index.js +1 -27
- package/dist/components/range-calendar/range-calendar-cell.js +4 -2
- package/dist/components/range-calendar/range-calendar-grid-body.js +2 -2
- package/dist/components/range-calendar/range-calendar-grid-header.js +1 -1
- package/dist/components/range-calendar/range-calendar-grid.js +2 -1
- package/dist/components/range-calendar/range-calendar-root.d.ts +3 -3
- package/dist/components/range-calendar/range-calendar-root.js +13 -13
- package/dist/components/range-calendar/range-calendar.context.d.ts +1 -1
- package/dist/components/range-calendar/range-calendar.context.js +1 -1
- package/dist/components/range-calendar/range-calendar.types.d.ts +3 -1
- package/dist/components/router-provider/index.d.ts +2 -2
- package/dist/components/router-provider/index.js +1 -1
- package/dist/components/scroll-shadow/index.d.ts +2 -69
- package/dist/components/scroll-shadow/index.js +1 -4
- package/dist/components/search-field/index.d.ts +2 -195
- package/dist/components/search-field/index.js +1 -10
- package/dist/components/search-field/search-field-clear-button.js +5 -5
- package/dist/components/segmented-control/index.d.ts +2 -126
- package/dist/components/segmented-control/index.js +1 -9
- package/dist/components/select/index.d.ts +2 -202
- package/dist/components/select/index.js +1 -10
- package/dist/components/select/select-popover.js +2 -2
- package/dist/components/select/select-value.js +1 -1
- package/dist/components/separator/index.d.ts +2 -41
- package/dist/components/separator/index.js +1 -4
- package/dist/components/sidebar/index.d.ts +2 -518
- package/dist/components/sidebar/index.js +1 -25
- package/dist/components/sidebar/sidebar-content.js +2 -2
- package/dist/components/sidebar/sidebar-item-tooltip.js +2 -2
- package/dist/components/sidebar/sidebar-panel.js +1 -0
- package/dist/components/sidebar/sidebar-rail.js +1 -0
- package/dist/components/sidebar/sidebar-root.js +26 -6
- package/dist/components/sidebar/sidebar.state.d.ts +3 -0
- package/dist/components/sidebar/sidebar.state.js +5 -0
- package/dist/components/sidebar/sidebar.types.d.ts +16 -2
- package/dist/components/skeleton/index.d.ts +2 -47
- package/dist/components/skeleton/index.js +1 -4
- package/dist/components/slider/index.d.ts +2 -180
- package/dist/components/slider/index.js +1 -11
- package/dist/components/spinner/index.d.ts +2 -41
- package/dist/components/spinner/index.js +1 -4
- package/dist/components/splitter/index.d.ts +2 -134
- package/dist/components/splitter/index.js +1 -8
- package/dist/components/surface/index.d.ts +2 -47
- package/dist/components/surface/index.js +1 -4
- package/dist/components/switch/index.d.ts +2 -165
- package/dist/components/switch/index.js +1 -10
- package/dist/components/switch-group/index.d.ts +2 -47
- package/dist/components/switch-group/index.js +1 -4
- package/dist/components/table/index.d.ts +2 -442
- package/dist/components/table/index.js +1 -23
- package/dist/components/table/table-body.js +9 -9
- package/dist/components/table/table-cell.js +3 -3
- package/dist/components/table/table-column.js +4 -4
- package/dist/components/table/table-content.js +3 -3
- package/dist/components/table/table-drag-handle.js +1 -1
- package/dist/components/table/table-drop-indicator.js +9 -7
- package/dist/components/table/table-header.js +4 -4
- package/dist/components/table/table-load-more.js +5 -5
- package/dist/components/table/table-row.js +4 -4
- package/dist/components/table/table.context.d.ts +2 -2
- package/dist/components/table/table.types.d.ts +3 -3
- package/dist/components/tabs/index.d.ts +2 -189
- package/dist/components/tabs/index.js +1 -12
- package/dist/components/tabs/tabs-list-container.js +2 -2
- package/dist/components/tag/index.d.ts +2 -76
- package/dist/components/tag/index.js +1 -7
- package/dist/components/tag/tag-remove-button.js +2 -2
- package/dist/components/tag-group/index.d.ts +2 -93
- package/dist/components/tag-group/index.js +1 -7
- package/dist/components/textarea/index.d.ts +2 -51
- package/dist/components/textarea/index.js +1 -4
- package/dist/components/textfield/index.d.ts +2 -109
- package/dist/components/textfield/index.js +1 -4
- package/dist/components/time-field/index.d.ts +2 -233
- package/dist/components/time-field/index.js +1 -12
- package/dist/components/toast/index.d.ts +2 -216
- package/dist/components/toast/index.js +1 -15
- package/dist/components/toast/toast-action-button.js +2 -2
- package/dist/components/toast/toast-default-content.js +1 -1
- package/dist/components/toast/toast-queue.d.ts +1 -1
- package/dist/components/toast/toast-queue.js +1 -1
- package/dist/components/toast/toast-root.js +1 -1
- package/dist/components/toast/toast.types.d.ts +3 -3
- package/dist/components/toggle-button/index.d.ts +2 -65
- package/dist/components/toggle-button/index.js +1 -4
- package/dist/components/toggle-button-group/index.d.ts +2 -82
- package/dist/components/toggle-button-group/index.js +1 -7
- package/dist/components/toolbar/index.d.ts +2 -49
- package/dist/components/toolbar/index.js +1 -4
- package/dist/components/tooltip/index.d.ts +2 -136
- package/dist/components/tooltip/index.js +1 -9
- package/dist/components/tooltip/tooltip-arrow.js +2 -2
- package/dist/components/tooltip/tooltip-root.js +1 -1
- package/dist/components/tooltip/tooltip.types.d.ts +1 -1
- package/dist/components/typography/code.js +2 -2
- package/dist/components/typography/heading.js +2 -2
- package/dist/components/typography/index.d.ts +2 -1269
- package/dist/components/typography/index.js +1 -10
- package/dist/components/typography/paragraph.js +2 -2
- package/dist/components/typography/typography-root.js +2 -2
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/use-calendar-grid.js +2 -1
- package/dist/composables/use-calendar-year-picker.js +12 -3
- package/dist/composables/use-color-slider.d.ts +1 -1
- package/dist/composables/use-color-slider.js +1 -1
- package/dist/composables/use-drag-and-drop.js +1 -1
- package/dist/composables/use-droppable-collection.js +1 -1
- package/dist/composables/use-droppable-item.js +1 -1
- package/dist/composables/use-press.d.ts +10 -0
- package/dist/composables/use-press.js +27 -2
- package/dist/composables/use-prevent-scroll.d.ts +11 -5
- package/dist/composables/use-prevent-scroll.js +11 -5
- package/dist/composables/use-range-calendar.js +2 -1
- package/dist/composables/use-text-field.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +118 -114
- package/dist/styles-no-preflight.css +3 -0
- package/dist/styles-overrides.css +15 -0
- package/dist/styles.css +1 -16
- package/dist/utils/calendar-systems.d.ts +14 -0
- package/dist/utils/calendar-systems.js +2 -0
- package/dist/utils/calendar.d.ts +14 -5
- package/dist/utils/calendar.js +18 -21
- package/dist/utils/compose.d.ts +4 -6
- package/dist/utils/compose.js +4 -6
- package/dist/utils/dnd-list-drop-target-delegate.d.ts +19 -1
- package/dist/utils/dnd-list-drop-target-delegate.js +37 -6
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/virtualizer-list-layout.d.ts +8 -0
- package/dist/utils/virtualizer-list-layout.js +12 -2
- package/dist/utils/virtualizer-table-layout.d.ts +1 -0
- package/dist/utils/virtualizer-table-layout.js +3 -0
- package/dist/version.js +1 -1
- package/package.json +13 -6
|
@@ -10,297 +10,8 @@ import DrawerHeader from "./drawer-header.js";
|
|
|
10
10
|
import DrawerHeading from "./drawer-heading.js";
|
|
11
11
|
import DrawerRoot from "./drawer-root.js";
|
|
12
12
|
import DrawerTrigger from "./drawer-trigger.js";
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
slots: {
|
|
16
|
-
default?: () => unknown;
|
|
17
|
-
};
|
|
18
|
-
emit: ((evt: "openChange", isOpen: boolean) => void) & ((evt: "update:isOpen", isOpen: boolean) => void);
|
|
19
|
-
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
20
|
-
props: import('vue').PublicProps & {
|
|
21
|
-
isOpen?: boolean;
|
|
22
|
-
defaultOpen?: boolean;
|
|
23
|
-
isDisabled?: boolean;
|
|
24
|
-
state?: import("../../index.js").OverlayTriggerState;
|
|
25
|
-
onOpenChange?: ((isOpen: boolean) => any) | undefined;
|
|
26
|
-
"onUpdate:isOpen"?: ((isOpen: boolean) => any) | undefined;
|
|
27
|
-
} & (typeof globalThis extends {
|
|
28
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
29
|
-
} ? P : {});
|
|
30
|
-
expose: (exposed: {}) => void;
|
|
31
|
-
attrs: any;
|
|
32
|
-
slots: {
|
|
33
|
-
default?: () => unknown;
|
|
34
|
-
};
|
|
35
|
-
emit: ((evt: "openChange", isOpen: boolean) => void) & ((evt: "update:isOpen", isOpen: boolean) => void);
|
|
36
|
-
}>) => import('vue').VNode & {
|
|
37
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
38
|
-
}) & {
|
|
39
|
-
Backdrop: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
|
|
40
|
-
attrs: any;
|
|
41
|
-
slots: {
|
|
42
|
-
default?: () => unknown;
|
|
43
|
-
};
|
|
44
|
-
emit: {};
|
|
45
|
-
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
46
|
-
props: import('vue').PublicProps & {
|
|
47
|
-
class?: string;
|
|
48
|
-
variant?: import("@ropav/styles").DrawerVariants["variant"];
|
|
49
|
-
isDismissable?: boolean;
|
|
50
|
-
isKeyboardDismissDisabled?: boolean;
|
|
51
|
-
shouldCloseOnInteractOutside?: (element: Element) => boolean;
|
|
52
|
-
portalContainer?: string | HTMLElement;
|
|
53
|
-
style?: import("vue").CSSProperties | string;
|
|
54
|
-
isEntering?: boolean;
|
|
55
|
-
isExiting?: boolean;
|
|
56
|
-
} & (typeof globalThis extends {
|
|
57
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
58
|
-
} ? P : {});
|
|
59
|
-
expose: (exposed: {}) => void;
|
|
60
|
-
attrs: any;
|
|
61
|
-
slots: {
|
|
62
|
-
default?: () => unknown;
|
|
63
|
-
};
|
|
64
|
-
emit: {};
|
|
65
|
-
}>) => import('vue').VNode & {
|
|
66
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
67
|
-
};
|
|
68
|
-
Body: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
|
|
69
|
-
attrs: any;
|
|
70
|
-
slots: {
|
|
71
|
-
default?: () => unknown;
|
|
72
|
-
};
|
|
73
|
-
emit: {};
|
|
74
|
-
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
75
|
-
props: import('vue').PublicProps & {
|
|
76
|
-
class?: string;
|
|
77
|
-
} & (typeof globalThis extends {
|
|
78
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
79
|
-
} ? P : {});
|
|
80
|
-
expose: (exposed: {}) => void;
|
|
81
|
-
attrs: any;
|
|
82
|
-
slots: {
|
|
83
|
-
default?: () => unknown;
|
|
84
|
-
};
|
|
85
|
-
emit: {};
|
|
86
|
-
}>) => import('vue').VNode & {
|
|
87
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
88
|
-
};
|
|
89
|
-
Close: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
|
|
90
|
-
attrs: any;
|
|
91
|
-
slots: {
|
|
92
|
-
default?: () => unknown;
|
|
93
|
-
};
|
|
94
|
-
emit: {};
|
|
95
|
-
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
96
|
-
props: import('vue').PublicProps & (typeof globalThis extends {
|
|
97
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
98
|
-
} ? P : {});
|
|
99
|
-
expose: (exposed: {}) => void;
|
|
100
|
-
attrs: any;
|
|
101
|
-
slots: {
|
|
102
|
-
default?: () => unknown;
|
|
103
|
-
};
|
|
104
|
-
emit: {};
|
|
105
|
-
}>) => import('vue').VNode & {
|
|
106
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
107
|
-
};
|
|
108
|
-
CloseTrigger: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
|
|
109
|
-
attrs: any;
|
|
110
|
-
slots: {};
|
|
111
|
-
emit: {};
|
|
112
|
-
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
113
|
-
props: import('vue').PublicProps & {
|
|
114
|
-
class?: string;
|
|
115
|
-
} & (typeof globalThis extends {
|
|
116
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
117
|
-
} ? P : {});
|
|
118
|
-
expose: (exposed: {}) => void;
|
|
119
|
-
attrs: any;
|
|
120
|
-
slots: {};
|
|
121
|
-
emit: {};
|
|
122
|
-
}>) => import('vue').VNode & {
|
|
123
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
124
|
-
};
|
|
125
|
-
Content: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
|
|
126
|
-
attrs: any;
|
|
127
|
-
slots: {
|
|
128
|
-
default?: () => unknown;
|
|
129
|
-
};
|
|
130
|
-
emit: {};
|
|
131
|
-
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
132
|
-
props: import('vue').PublicProps & {
|
|
133
|
-
class?: string;
|
|
134
|
-
placement?: import("./drawer.types.js").DrawerPlacement;
|
|
135
|
-
} & (typeof globalThis extends {
|
|
136
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
137
|
-
} ? P : {});
|
|
138
|
-
expose: (exposed: {}) => void;
|
|
139
|
-
attrs: any;
|
|
140
|
-
slots: {
|
|
141
|
-
default?: () => unknown;
|
|
142
|
-
};
|
|
143
|
-
emit: {};
|
|
144
|
-
}>) => import('vue').VNode & {
|
|
145
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
146
|
-
};
|
|
147
|
-
Dialog: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
|
|
148
|
-
attrs: any;
|
|
149
|
-
slots: {
|
|
150
|
-
default?: (props: {
|
|
151
|
-
close: () => void;
|
|
152
|
-
}) => unknown;
|
|
153
|
-
};
|
|
154
|
-
emit: {};
|
|
155
|
-
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
156
|
-
props: import('vue').PublicProps & {
|
|
157
|
-
class?: string;
|
|
158
|
-
} & (typeof globalThis extends {
|
|
159
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
160
|
-
} ? P : {});
|
|
161
|
-
expose: (exposed: {}) => void;
|
|
162
|
-
attrs: any;
|
|
163
|
-
slots: {
|
|
164
|
-
default?: (props: {
|
|
165
|
-
close: () => void;
|
|
166
|
-
}) => unknown;
|
|
167
|
-
};
|
|
168
|
-
emit: {};
|
|
169
|
-
}>) => import('vue').VNode & {
|
|
170
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
171
|
-
};
|
|
172
|
-
Footer: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
|
|
173
|
-
attrs: any;
|
|
174
|
-
slots: {
|
|
175
|
-
default?: () => unknown;
|
|
176
|
-
};
|
|
177
|
-
emit: {};
|
|
178
|
-
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
179
|
-
props: import('vue').PublicProps & {
|
|
180
|
-
class?: string;
|
|
181
|
-
} & (typeof globalThis extends {
|
|
182
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
183
|
-
} ? P : {});
|
|
184
|
-
expose: (exposed: {}) => void;
|
|
185
|
-
attrs: any;
|
|
186
|
-
slots: {
|
|
187
|
-
default?: () => unknown;
|
|
188
|
-
};
|
|
189
|
-
emit: {};
|
|
190
|
-
}>) => import('vue').VNode & {
|
|
191
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
192
|
-
};
|
|
193
|
-
Handle: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
|
|
194
|
-
attrs: any;
|
|
195
|
-
slots: {};
|
|
196
|
-
emit: {};
|
|
197
|
-
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
198
|
-
props: import('vue').PublicProps & {
|
|
199
|
-
class?: string;
|
|
200
|
-
} & (typeof globalThis extends {
|
|
201
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
202
|
-
} ? P : {});
|
|
203
|
-
expose: (exposed: {}) => void;
|
|
204
|
-
attrs: any;
|
|
205
|
-
slots: {};
|
|
206
|
-
emit: {};
|
|
207
|
-
}>) => import('vue').VNode & {
|
|
208
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
209
|
-
};
|
|
210
|
-
Header: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
|
|
211
|
-
attrs: any;
|
|
212
|
-
slots: {
|
|
213
|
-
default?: () => unknown;
|
|
214
|
-
};
|
|
215
|
-
emit: {};
|
|
216
|
-
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
217
|
-
props: import('vue').PublicProps & {
|
|
218
|
-
class?: string;
|
|
219
|
-
} & (typeof globalThis extends {
|
|
220
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
221
|
-
} ? P : {});
|
|
222
|
-
expose: (exposed: {}) => void;
|
|
223
|
-
attrs: any;
|
|
224
|
-
slots: {
|
|
225
|
-
default?: () => unknown;
|
|
226
|
-
};
|
|
227
|
-
emit: {};
|
|
228
|
-
}>) => import('vue').VNode & {
|
|
229
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
230
|
-
};
|
|
231
|
-
Heading: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
|
|
232
|
-
attrs: any;
|
|
233
|
-
slots: {
|
|
234
|
-
default?: () => unknown;
|
|
235
|
-
};
|
|
236
|
-
emit: {};
|
|
237
|
-
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
238
|
-
props: import('vue').PublicProps & {
|
|
239
|
-
class?: string;
|
|
240
|
-
level?: number;
|
|
241
|
-
} & (typeof globalThis extends {
|
|
242
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
243
|
-
} ? P : {});
|
|
244
|
-
expose: (exposed: {}) => void;
|
|
245
|
-
attrs: any;
|
|
246
|
-
slots: {
|
|
247
|
-
default?: () => unknown;
|
|
248
|
-
};
|
|
249
|
-
emit: {};
|
|
250
|
-
}>) => import('vue').VNode & {
|
|
251
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
252
|
-
};
|
|
253
|
-
Root: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
|
|
254
|
-
attrs: any;
|
|
255
|
-
slots: {
|
|
256
|
-
default?: () => unknown;
|
|
257
|
-
};
|
|
258
|
-
emit: ((evt: "openChange", isOpen: boolean) => void) & ((evt: "update:isOpen", isOpen: boolean) => void);
|
|
259
|
-
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
260
|
-
props: import('vue').PublicProps & {
|
|
261
|
-
isOpen?: boolean;
|
|
262
|
-
defaultOpen?: boolean;
|
|
263
|
-
isDisabled?: boolean;
|
|
264
|
-
state?: import("../../index.js").OverlayTriggerState;
|
|
265
|
-
onOpenChange?: ((isOpen: boolean) => any) | undefined;
|
|
266
|
-
"onUpdate:isOpen"?: ((isOpen: boolean) => any) | undefined;
|
|
267
|
-
} & (typeof globalThis extends {
|
|
268
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
269
|
-
} ? P : {});
|
|
270
|
-
expose: (exposed: {}) => void;
|
|
271
|
-
attrs: any;
|
|
272
|
-
slots: {
|
|
273
|
-
default?: () => unknown;
|
|
274
|
-
};
|
|
275
|
-
emit: ((evt: "openChange", isOpen: boolean) => void) & ((evt: "update:isOpen", isOpen: boolean) => void);
|
|
276
|
-
}>) => import('vue').VNode & {
|
|
277
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
278
|
-
};
|
|
279
|
-
Trigger: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
|
|
280
|
-
attrs: any;
|
|
281
|
-
slots: {
|
|
282
|
-
default?: () => unknown;
|
|
283
|
-
};
|
|
284
|
-
emit: {};
|
|
285
|
-
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
286
|
-
props: import('vue').PublicProps & {
|
|
287
|
-
class?: string;
|
|
288
|
-
isDisabled?: boolean;
|
|
289
|
-
} & (typeof globalThis extends {
|
|
290
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
291
|
-
} ? P : {});
|
|
292
|
-
expose: (exposed: {}) => void;
|
|
293
|
-
attrs: any;
|
|
294
|
-
slots: {
|
|
295
|
-
default?: () => unknown;
|
|
296
|
-
};
|
|
297
|
-
emit: {};
|
|
298
|
-
}>) => import('vue').VNode & {
|
|
299
|
-
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
300
|
-
};
|
|
301
|
-
};
|
|
302
|
-
export { DrawerBackdrop, DrawerBody, DrawerClose, DrawerCloseTrigger, DrawerContent, DrawerDialog, DrawerFooter, DrawerHandle, DrawerHeader, DrawerHeading, DrawerRoot, DrawerTrigger, };
|
|
303
|
-
export type { DrawerBackdropProps, DrawerBodyProps, DrawerCloseTriggerProps, DrawerContentProps, DrawerDialogProps, DrawerDialogSlotProps, DrawerFooterProps, DrawerHandleProps, DrawerHeaderProps, DrawerHeadingProps, DrawerPlacement, DrawerRootEmits, DrawerRootProps, DrawerRootProps as DrawerProps, DrawerTriggerProps, } from "./drawer.types.js";
|
|
13
|
+
export { DrawerBackdrop, DrawerBody, DrawerClose, DrawerCloseTrigger, DrawerContent, DrawerDialog, DrawerFooter, DrawerHandle, DrawerHeader, DrawerHeading, DrawerRoot as Drawer, DrawerTrigger, };
|
|
14
|
+
export type { DrawerBackdropProps, DrawerBodyProps, DrawerCloseTriggerProps, DrawerContentProps, DrawerDialogProps, DrawerDialogSlotProps, DrawerFooterProps, DrawerHandleProps, DrawerHeaderProps, DrawerHeadingProps, DrawerPlacement, DrawerRootEmits as DrawerEmits, DrawerRootProps as DrawerProps, DrawerTriggerProps, } from "./drawer.types.js";
|
|
304
15
|
export { useDrawerContext, useDrawerOverlayContext } from "./drawer.context.js";
|
|
305
16
|
export type { DrawerContext, DrawerOverlayContext } from "./drawer.context.js";
|
|
306
17
|
export { drawerVariants } from "@ropav/styles";
|
|
@@ -12,20 +12,4 @@ import drawer_heading_default from "./drawer-heading.js";
|
|
|
12
12
|
import drawer_root_default from "./drawer-root.js";
|
|
13
13
|
import drawer_trigger_default from "./drawer-trigger.js";
|
|
14
14
|
import { drawerVariants } from "@ropav/styles";
|
|
15
|
-
|
|
16
|
-
var Drawer = Object.assign(drawer_root_default, {
|
|
17
|
-
Backdrop: drawer_backdrop_default,
|
|
18
|
-
Body: drawer_body_default,
|
|
19
|
-
Close: drawer_close_default,
|
|
20
|
-
CloseTrigger: drawer_close_trigger_default,
|
|
21
|
-
Content: drawer_content_default,
|
|
22
|
-
Dialog: drawer_dialog_default,
|
|
23
|
-
Footer: drawer_footer_default,
|
|
24
|
-
Handle: drawer_handle_default,
|
|
25
|
-
Header: drawer_header_default,
|
|
26
|
-
Heading: drawer_heading_default,
|
|
27
|
-
Root: drawer_root_default,
|
|
28
|
-
Trigger: drawer_trigger_default
|
|
29
|
-
});
|
|
30
|
-
//#endregion
|
|
31
|
-
export { Drawer, drawer_backdrop_default as DrawerBackdrop, drawer_body_default as DrawerBody, drawer_close_default as DrawerClose, drawer_close_trigger_default as DrawerCloseTrigger, drawer_content_default as DrawerContent, drawer_dialog_default as DrawerDialog, drawer_footer_default as DrawerFooter, drawer_handle_default as DrawerHandle, drawer_header_default as DrawerHeader, drawer_heading_default as DrawerHeading, drawer_root_default as DrawerRoot, drawer_trigger_default as DrawerTrigger, drawerVariants, useDrawerContext, useDrawerOverlayContext };
|
|
15
|
+
export { drawer_root_default as Drawer, drawer_backdrop_default as DrawerBackdrop, drawer_body_default as DrawerBody, drawer_close_default as DrawerClose, drawer_close_trigger_default as DrawerCloseTrigger, drawer_content_default as DrawerContent, drawer_dialog_default as DrawerDialog, drawer_footer_default as DrawerFooter, drawer_handle_default as DrawerHandle, drawer_header_default as DrawerHeader, drawer_heading_default as DrawerHeading, drawer_trigger_default as DrawerTrigger, drawerVariants, useDrawerContext, useDrawerOverlayContext };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DropZoneRootProps, DropZoneSlotProps } from "./drop-zone.types.js";
|
|
2
|
+
declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, 'attrs' | 'emit' | 'slots'>>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
3
|
+
props: import('vue').PublicProps & __VLS_PrettifyLocal<DropZoneRootProps & {
|
|
4
|
+
onSelect?: ((files: File[]) => any) | undefined;
|
|
5
|
+
}> & (typeof globalThis extends {
|
|
6
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
7
|
+
} ? P : {});
|
|
8
|
+
expose: (exposed: {}) => void;
|
|
9
|
+
attrs: any;
|
|
10
|
+
slots: {
|
|
11
|
+
default?: (props: DropZoneSlotProps) => unknown;
|
|
12
|
+
};
|
|
13
|
+
emit: (evt: "select", files: File[]) => void;
|
|
14
|
+
}>) => import('vue').VNode & {
|
|
15
|
+
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
16
|
+
};
|
|
17
|
+
declare const _default: typeof __VLS_export;
|
|
18
|
+
export default _default;
|
|
19
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
20
|
+
[K in keyof T]: T[K];
|
|
21
|
+
} : {
|
|
22
|
+
[K in keyof T as K]: T[K];
|
|
23
|
+
}) & {};
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { dataAttr } from "../../utils/assertion.js";
|
|
2
|
+
import { useFocusWithin, useInteractionStates } from "../../composables/use-interaction-states.js";
|
|
3
|
+
import { visuallyHiddenStyle } from "../../utils/visually-hidden.js";
|
|
4
|
+
import { isVirtualDragging } from "../../composables/drag-manager.js";
|
|
5
|
+
import { useDrop } from "../../composables/use-drop.js";
|
|
6
|
+
import { isDirectoryDropItem, isFileDropItem } from "../../utils/dnd-types.js";
|
|
7
|
+
import { isDragRefused, isFileAccepted, parseAccept } from "./drop-zone.accept.js";
|
|
8
|
+
import { provideDropZoneContext } from "./drop-zone.context.js";
|
|
9
|
+
import { child, computed, createSlot, createTemplateRefSetter, defineVaporComponent, on, renderEffect, setAttr, setClass, setInsertionState, setProp, setStyle, setTemplateRefBinding, shallowRef, template, unref } from "vue";
|
|
10
|
+
import { dropZoneVariants } from "@ropav/styles";
|
|
11
|
+
//#region src/components/drop-zone/drop-zone-root.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
12
|
+
var t0 = template("<div data-slot=drop-zone><span><input type=file></span>", 1);
|
|
13
|
+
var drop_zone_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
|
|
14
|
+
__name: "drop-zone-root",
|
|
15
|
+
props: {
|
|
16
|
+
class: {},
|
|
17
|
+
accept: {},
|
|
18
|
+
multiple: { type: Boolean },
|
|
19
|
+
isDisabled: { type: Boolean },
|
|
20
|
+
ariaLabel: {},
|
|
21
|
+
ariaLabelledby: {},
|
|
22
|
+
ariaDescribedby: {}
|
|
23
|
+
},
|
|
24
|
+
emits: ["select"],
|
|
25
|
+
setup(__props, { emit: __emit }) {
|
|
26
|
+
const props = __props;
|
|
27
|
+
const emit = __emit;
|
|
28
|
+
const rootEl = shallowRef(null);
|
|
29
|
+
const inputEl = shallowRef(null);
|
|
30
|
+
const setRootEl = (element) => {
|
|
31
|
+
rootEl.value = element instanceof HTMLElement ? element : null;
|
|
32
|
+
};
|
|
33
|
+
const setInputEl = (element) => {
|
|
34
|
+
inputEl.value = element instanceof HTMLInputElement ? element : null;
|
|
35
|
+
};
|
|
36
|
+
const acceptTokens = computed(() => parseAccept(props.accept));
|
|
37
|
+
/** Refused drags are still entered, so the zone can say no rather than ignore the pointer. */
|
|
38
|
+
const isRefusing = shallowRef(false);
|
|
39
|
+
const interaction = useInteractionStates({ isDisabled: () => props.isDisabled });
|
|
40
|
+
const focusWithin = useFocusWithin({ isDisabled: () => props.isDisabled });
|
|
41
|
+
/**
|
|
42
|
+
* Flattens a drop into plain files, walking any directory that came with it.
|
|
43
|
+
*
|
|
44
|
+
* `for await` covers both the array a drop arrives as and the async iterable a directory hands
|
|
45
|
+
* back, so one function serves both levels.
|
|
46
|
+
*/
|
|
47
|
+
const collectFiles = async (items) => {
|
|
48
|
+
const files = [];
|
|
49
|
+
for await (const item of items) if (isFileDropItem(item)) files.push(await item.getFile());
|
|
50
|
+
else if (isDirectoryDropItem(item)) files.push(...await collectFiles(item.getEntries()));
|
|
51
|
+
return files;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* What the zone hands on, out of what arrived.
|
|
55
|
+
*
|
|
56
|
+
* Filtering rather than reporting: the browser already filters the picker half silently from
|
|
57
|
+
* the same `accept`, and enforces `multiple` there on its own, so the drop half matches that
|
|
58
|
+
* instead of inventing an error channel this component has no way to show.
|
|
59
|
+
*/
|
|
60
|
+
const takeable = (files) => {
|
|
61
|
+
const accepted = files.filter((file) => isFileAccepted(file, acceptTokens.value));
|
|
62
|
+
return props.multiple ? accepted : accepted.slice(0, 1);
|
|
63
|
+
};
|
|
64
|
+
const announce = (files) => {
|
|
65
|
+
if (files.length > 0) emit("select", files);
|
|
66
|
+
};
|
|
67
|
+
const drop = useDrop({
|
|
68
|
+
getDropOperation: (types) => {
|
|
69
|
+
isRefusing.value = isDragRefused(types, acceptTokens.value);
|
|
70
|
+
return "copy";
|
|
71
|
+
},
|
|
72
|
+
hasDropButton: true,
|
|
73
|
+
isDisabled: () => props.isDisabled,
|
|
74
|
+
onDrop: (event) => {
|
|
75
|
+
if (isRefusing.value) return;
|
|
76
|
+
collectFiles(event.items).then((files) => announce(takeable(files)));
|
|
77
|
+
},
|
|
78
|
+
onDropExit: () => {
|
|
79
|
+
isRefusing.value = false;
|
|
80
|
+
},
|
|
81
|
+
ref: rootEl
|
|
82
|
+
});
|
|
83
|
+
const status = computed(() => {
|
|
84
|
+
if (!drop.isDropTarget.value) return "idle";
|
|
85
|
+
return isRefusing.value ? "reject" : "accept";
|
|
86
|
+
});
|
|
87
|
+
const open = () => {
|
|
88
|
+
if (props.isDisabled) return;
|
|
89
|
+
inputEl.value?.click();
|
|
90
|
+
};
|
|
91
|
+
const onClick = (event) => {
|
|
92
|
+
if (event.target === inputEl.value) return;
|
|
93
|
+
if (isVirtualDragging()) return;
|
|
94
|
+
open();
|
|
95
|
+
};
|
|
96
|
+
const onInputChange = (event) => {
|
|
97
|
+
const input = event.target;
|
|
98
|
+
announce(takeable(Array.from(input.files ?? [])));
|
|
99
|
+
input.value = "";
|
|
100
|
+
};
|
|
101
|
+
/** The drag instructions, plus whatever help text the caller wired up. */
|
|
102
|
+
const describedBy = computed(() => {
|
|
103
|
+
const ids = [drop.dropButtonAttrs.value["aria-describedby"], props.ariaDescribedby].filter(Boolean);
|
|
104
|
+
return ids.length > 0 ? ids.join(" ") : void 0;
|
|
105
|
+
});
|
|
106
|
+
const styles = computed(() => dropZoneVariants());
|
|
107
|
+
provideDropZoneContext({ slots: styles });
|
|
108
|
+
const _setTemplateRef = createTemplateRefSetter();
|
|
109
|
+
const n3 = t0();
|
|
110
|
+
const n1 = child(n3);
|
|
111
|
+
const n0 = child(n1);
|
|
112
|
+
on(n0, "change", onInputChange);
|
|
113
|
+
renderEffect(() => {
|
|
114
|
+
const _props = props;
|
|
115
|
+
const _dataAttr = unref(dataAttr);
|
|
116
|
+
setClass(n3, styles.value.base({ class: _props.class }));
|
|
117
|
+
setAttr(n3, "data-disabled", _dataAttr(_props.isDisabled));
|
|
118
|
+
setAttr(n3, "data-drop-target", _dataAttr(unref(drop).isDropTarget.value));
|
|
119
|
+
setAttr(n3, "data-focus-visible", _dataAttr(unref(focusWithin).isFocusVisible.value));
|
|
120
|
+
setAttr(n3, "data-hovered", _dataAttr(unref(interaction).isHovered.value));
|
|
121
|
+
setAttr(n3, "data-status", status.value);
|
|
122
|
+
setStyle(n1, unref(visuallyHiddenStyle));
|
|
123
|
+
setProp(n0, "accept", _props.accept);
|
|
124
|
+
setAttr(n0, "aria-describedby", describedBy.value);
|
|
125
|
+
setAttr(n0, "aria-label", _props.ariaLabel);
|
|
126
|
+
setAttr(n0, "aria-labelledby", _props.ariaLabelledby);
|
|
127
|
+
setProp(n0, "disabled", _props.isDisabled || void 0);
|
|
128
|
+
setProp(n0, "multiple", _props.multiple || void 0);
|
|
129
|
+
_setTemplateRef(n0, setInputEl);
|
|
130
|
+
});
|
|
131
|
+
setInsertionState(n3, 1);
|
|
132
|
+
createSlot("default", {
|
|
133
|
+
isDisabled: () => Boolean(props.isDisabled),
|
|
134
|
+
isDropTarget: () => unref(drop).isDropTarget.value,
|
|
135
|
+
open: () => open,
|
|
136
|
+
status: () => status.value
|
|
137
|
+
});
|
|
138
|
+
on(n3, "click", onClick);
|
|
139
|
+
on(n3, "dragenter", (e) => unref(drop).handlers.onDragenter(e));
|
|
140
|
+
on(n3, "dragleave", (e) => unref(drop).handlers.onDragleave(e));
|
|
141
|
+
on(n3, "dragover", (e) => unref(drop).handlers.onDragover(e));
|
|
142
|
+
on(n3, "drop", (e) => unref(drop).handlers.onDrop(e));
|
|
143
|
+
on(n3, "focusin", (e) => unref(focusWithin).onFocusin(e));
|
|
144
|
+
on(n3, "focusout", (e) => unref(focusWithin).onFocusout(e));
|
|
145
|
+
on(n3, "pointerenter", (e) => unref(interaction).onPointerenter(e));
|
|
146
|
+
on(n3, "pointerleave", (e) => unref(interaction).onPointerleave(e));
|
|
147
|
+
setProp(n3, "tabindex", -1);
|
|
148
|
+
setTemplateRefBinding(n3, () => setRootEl);
|
|
149
|
+
return n3;
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
//#endregion
|
|
153
|
+
export { drop_zone_root_vue_vue_type_script_setup_true_vapor_true_lang_default as default };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { DropZoneTriggerProps } from "./drop-zone.types.js";
|
|
2
|
+
declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, 'attrs' | 'emit' | 'slots'>>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
3
|
+
props: import('vue').PublicProps & __VLS_PrettifyLocal<DropZoneTriggerProps> & (typeof globalThis extends {
|
|
4
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
5
|
+
} ? P : {});
|
|
6
|
+
expose: (exposed: {}) => void;
|
|
7
|
+
attrs: any;
|
|
8
|
+
slots: {
|
|
9
|
+
default?: () => unknown;
|
|
10
|
+
};
|
|
11
|
+
emit: {};
|
|
12
|
+
}>) => import('vue').VNode & {
|
|
13
|
+
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
14
|
+
};
|
|
15
|
+
declare const _default: typeof __VLS_export;
|
|
16
|
+
export default _default;
|
|
17
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
18
|
+
[K in keyof T]: T[K];
|
|
19
|
+
} : {
|
|
20
|
+
[K in keyof T as K]: T[K];
|
|
21
|
+
}) & {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { composeSlotClassName } from "../../utils/compose.js";
|
|
2
|
+
import { useDropZoneContext } from "./drop-zone.context.js";
|
|
3
|
+
import { createSlot, defineVaporComponent, renderEffect, setClass, setInsertionState, template, unref } from "vue";
|
|
4
|
+
//#region src/components/drop-zone/drop-zone-trigger.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
5
|
+
var t0 = template("<span data-slot=drop-zone-trigger>", 1);
|
|
6
|
+
var drop_zone_trigger_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
|
|
7
|
+
__name: "drop-zone-trigger",
|
|
8
|
+
props: { class: {} },
|
|
9
|
+
setup(__props) {
|
|
10
|
+
const props = __props;
|
|
11
|
+
const { slots } = useDropZoneContext();
|
|
12
|
+
const n1 = t0();
|
|
13
|
+
renderEffect(() => setClass(n1, unref(composeSlotClassName)(unref(slots).trigger, props.class)));
|
|
14
|
+
setInsertionState(n1);
|
|
15
|
+
createSlot();
|
|
16
|
+
return n1;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
//#endregion
|
|
20
|
+
export { drop_zone_trigger_vue_vue_type_script_setup_true_vapor_true_lang_default as default };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DragTypes } from "../../utils/dnd-types.js";
|
|
2
|
+
/** The tokens of an `accept` list, lowercased, with the empties dropped. */
|
|
3
|
+
export declare const parseAccept: (accept: string | undefined) => string[];
|
|
4
|
+
/** Whether one file satisfies an `accept` list. An empty list accepts everything. */
|
|
5
|
+
export declare const isFileAccepted: (file: File, tokens: string[]) => boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Whether a drag still in flight should be refused.
|
|
8
|
+
*
|
|
9
|
+
* A drag advertises mime types and nothing else — never a file name, and never how many files
|
|
10
|
+
* it carries. So the answer is only ever "certainly not takeable"; everything unprovable is
|
|
11
|
+
* left to the drop, which filters what it emits. Three cases are unprovable:
|
|
12
|
+
*
|
|
13
|
+
* - an `.ext` token, which needs a file name;
|
|
14
|
+
* - {@link GENERIC_TYPE}, which is what a file with no known mime type reports — and also what
|
|
15
|
+
* a directory reports, since the two are indistinguishable until the drop;
|
|
16
|
+
* - a transfer whose types are hidden, which `DragTypes` already answers `true` to for
|
|
17
|
+
* everything (Safari reports no items at all while dragging files).
|
|
18
|
+
*/
|
|
19
|
+
export declare const isDragRefused: (types: DragTypes, tokens: string[]) => boolean;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import "../../utils/dnd-constants.js";
|
|
2
|
+
//#region src/components/drop-zone/drop-zone.accept.ts
|
|
3
|
+
/** The tokens of an `accept` list, lowercased, with the empties dropped. */
|
|
4
|
+
var parseAccept = (accept) => accept?.split(",").map((token) => token.trim().toLowerCase()).filter(Boolean) ?? [];
|
|
5
|
+
var matchesMimeToken = (type, token) => token.endsWith("/*") ? type.startsWith(token.slice(0, -1)) : type === token;
|
|
6
|
+
/** Whether one file satisfies an `accept` list. An empty list accepts everything. */
|
|
7
|
+
var isFileAccepted = (file, tokens) => tokens.length === 0 || tokens.some((token) => token.startsWith(".") ? file.name.toLowerCase().endsWith(token) : matchesMimeToken(file.type.toLowerCase(), token));
|
|
8
|
+
/**
|
|
9
|
+
* Whether a drag still in flight should be refused.
|
|
10
|
+
*
|
|
11
|
+
* A drag advertises mime types and nothing else — never a file name, and never how many files
|
|
12
|
+
* it carries. So the answer is only ever "certainly not takeable"; everything unprovable is
|
|
13
|
+
* left to the drop, which filters what it emits. Three cases are unprovable:
|
|
14
|
+
*
|
|
15
|
+
* - an `.ext` token, which needs a file name;
|
|
16
|
+
* - {@link GENERIC_TYPE}, which is what a file with no known mime type reports — and also what
|
|
17
|
+
* a directory reports, since the two are indistinguishable until the drop;
|
|
18
|
+
* - a transfer whose types are hidden, which `DragTypes` already answers `true` to for
|
|
19
|
+
* everything (Safari reports no items at all while dragging files).
|
|
20
|
+
*/
|
|
21
|
+
var isDragRefused = (types, tokens) => {
|
|
22
|
+
if (tokens.length === 0) return false;
|
|
23
|
+
if (tokens.some((token) => token.startsWith("."))) return false;
|
|
24
|
+
if (types.has("application/octet-stream")) return false;
|
|
25
|
+
return !tokens.some((token) => types.has(token));
|
|
26
|
+
};
|
|
27
|
+
//#endregion
|
|
28
|
+
export { isDragRefused, isFileAccepted, parseAccept };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { dropZoneVariants } from "@ropav/styles";
|
|
2
|
+
import type { ComputedRef } from "vue";
|
|
3
|
+
export interface DropZoneContext {
|
|
4
|
+
slots: ComputedRef<ReturnType<typeof dropZoneVariants>>;
|
|
5
|
+
}
|
|
6
|
+
export declare const useDropZoneContext: () => DropZoneContext, provideDropZoneContext: (value: DropZoneContext) => DropZoneContext;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { createContext } from "../../utils/create-context.js";
|
|
2
|
+
//#region src/components/drop-zone/drop-zone.context.ts
|
|
3
|
+
var [useDropZoneContext, provideDropZoneContext] = createContext({ name: "DropZoneContext" });
|
|
4
|
+
//#endregion
|
|
5
|
+
export { provideDropZoneContext, useDropZoneContext };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** What the zone makes of the drag currently over it. */
|
|
2
|
+
export type DropZoneStatus = "accept" | "idle" | "reject";
|
|
3
|
+
export interface DropZoneRootProps {
|
|
4
|
+
class?: string;
|
|
5
|
+
/**
|
|
6
|
+
* Which files to take, spelled the way the native `accept` attribute spells it: a comma
|
|
7
|
+
* separated list of mime types, `type/*` wildcards and `.ext` suffixes.
|
|
8
|
+
*
|
|
9
|
+
* It filters the picker, judges a drag while it is still moving, and filters what a drop
|
|
10
|
+
* emits. A drag is only refused where the refusal is certain — see `drop-zone-root.vue`.
|
|
11
|
+
*/
|
|
12
|
+
accept?: string;
|
|
13
|
+
/** Whether more than one file may arrive at once. */
|
|
14
|
+
multiple?: boolean;
|
|
15
|
+
isDisabled?: boolean;
|
|
16
|
+
ariaLabel?: string;
|
|
17
|
+
ariaLabelledby?: string;
|
|
18
|
+
ariaDescribedby?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface DropZoneSlotProps {
|
|
21
|
+
status: DropZoneStatus;
|
|
22
|
+
/** Whether a drag the zone would take is over it. */
|
|
23
|
+
isDropTarget: boolean;
|
|
24
|
+
isDisabled: boolean;
|
|
25
|
+
/** Opens the file picker, as clicking the zone does. */
|
|
26
|
+
open: () => void;
|
|
27
|
+
}
|
|
28
|
+
export interface DropZoneTriggerProps {
|
|
29
|
+
class?: string;
|
|
30
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import DropZoneRoot from "./drop-zone-root.js";
|
|
2
|
+
import DropZoneTrigger from "./drop-zone-trigger.js";
|
|
3
|
+
export { DropZoneRoot as DropZone, DropZoneTrigger };
|
|
4
|
+
export type { DropZoneRootProps as DropZoneProps, DropZoneSlotProps, DropZoneStatus, DropZoneTriggerProps, } from "./drop-zone.types.js";
|
|
5
|
+
export { useDropZoneContext, provideDropZoneContext } from "./drop-zone.context.js";
|
|
6
|
+
export type { DropZoneContext } from "./drop-zone.context.js";
|
|
7
|
+
export { dropZoneVariants } from "@ropav/styles";
|
|
8
|
+
export type { DropZoneVariants } from "@ropav/styles";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { provideDropZoneContext, useDropZoneContext } from "./drop-zone.context.js";
|
|
2
|
+
import drop_zone_root_default from "./drop-zone-root.js";
|
|
3
|
+
import drop_zone_trigger_default from "./drop-zone-trigger.js";
|
|
4
|
+
import { dropZoneVariants } from "@ropav/styles";
|
|
5
|
+
export { drop_zone_root_default as DropZone, drop_zone_trigger_default as DropZoneTrigger, dropZoneVariants, provideDropZoneContext, useDropZoneContext };
|
|
@@ -47,8 +47,8 @@ var dropdown_popover_vue_vue_type_script_setup_true_vapor_true_lang_default = /*
|
|
|
47
47
|
"should-flip": () => props.shouldFlip,
|
|
48
48
|
"slot-contexts": () => unref(contexts)
|
|
49
49
|
}, extend(() => {
|
|
50
|
-
return createSlot("default", null, null,
|
|
51
|
-
}, { _:
|
|
50
|
+
return createSlot("default", null, null, 4);
|
|
51
|
+
}, { _: 1 }), true);
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
54
|
//#endregion
|