@vuetify/nightly 3.8.8-master.2025-06-07 → 3.8.8-master.2025-06-08
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/CHANGELOG.md +8 -3
- package/dist/json/attributes.json +959 -959
- package/dist/json/importMap-labs.json +22 -22
- package/dist/json/importMap.json +144 -144
- package/dist/json/web-types.json +1852 -1852
- package/dist/vuetify-labs.cjs +91 -27
- package/dist/vuetify-labs.css +3832 -3832
- package/dist/vuetify-labs.d.ts +56 -60
- package/dist/vuetify-labs.esm.js +91 -27
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +91 -27
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +84 -23
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5026 -5026
- package/dist/vuetify.d.ts +56 -60
- package/dist/vuetify.esm.js +84 -23
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +84 -23
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +122 -115
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDataTable/VDataTableColumn.js +1 -0
- package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.js +8 -1
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js +2 -2
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.js +8 -3
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VSlider/VSliderThumb.js +1 -1
- package/lib/components/VSlider/VSliderThumb.js.map +1 -1
- package/lib/composables/date/date.d.ts +1 -4
- package/lib/composables/date/date.js +13 -14
- package/lib/composables/date/date.js.map +1 -1
- package/lib/composables/fileDrop.d.ts +4 -0
- package/lib/composables/fileDrop.js +50 -0
- package/lib/composables/fileDrop.js.map +1 -0
- package/lib/entry-bundler.d.ts +0 -3
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +56 -60
- package/lib/framework.js +1 -1
- package/lib/labs/VDateInput/VDateInput.js +2 -1
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUpload.js +7 -3
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/lib/labs/entry-bundler.d.ts +0 -3
- package/package.json +1 -1
package/dist/vuetify.d.ts
CHANGED
@@ -86,7 +86,6 @@ declare function useRtl(): {
|
|
86
86
|
|
87
87
|
interface DateInstance extends DateModule.InternalAdapter {
|
88
88
|
locale?: any;
|
89
|
-
createDateRange: (start: unknown, stop?: unknown) => unknown[];
|
90
89
|
}
|
91
90
|
/** Supports module augmentation to specify date adapter types */
|
92
91
|
declare namespace DateModule {
|
@@ -85821,7 +85820,6 @@ declare const createVuetify: {
|
|
85821
85820
|
options: InternalDateOptions;
|
85822
85821
|
instance: {
|
85823
85822
|
locale?: any;
|
85824
|
-
createDateRange: (start: unknown, stop?: unknown) => unknown[];
|
85825
85823
|
date: (value?: any) => unknown;
|
85826
85824
|
format: (date: unknown, formatString: string) => string;
|
85827
85825
|
toJsDate: (value: unknown) => Date;
|
@@ -85865,8 +85863,6 @@ declare const createVuetify: {
|
|
85865
85863
|
setHours: (date: unknown, hours: number) => unknown;
|
85866
85864
|
getMinutes: (date: unknown) => number;
|
85867
85865
|
setMinutes: (date: unknown, minutes: number) => unknown;
|
85868
|
-
} & {
|
85869
|
-
createDateRange(start: unknown, stop?: unknown): unknown[];
|
85870
85866
|
};
|
85871
85867
|
};
|
85872
85868
|
goTo: GoToInstance;
|
@@ -85912,34 +85908,40 @@ declare module 'vue' {
|
|
85912
85908
|
$children?: VNodeChild
|
85913
85909
|
}
|
85914
85910
|
export interface GlobalComponents {
|
85911
|
+
VApp: VApp
|
85915
85912
|
VAppBar: VAppBar
|
85916
85913
|
VAppBarNavIcon: VAppBarNavIcon
|
85917
85914
|
VAppBarTitle: VAppBarTitle
|
85915
|
+
VAutocomplete: VAutocomplete
|
85918
85916
|
VAlert: VAlert
|
85919
85917
|
VAlertTitle: VAlertTitle
|
85920
85918
|
VAvatar: VAvatar
|
85921
|
-
VApp: VApp
|
85922
|
-
VBadge: VBadge
|
85923
85919
|
VBanner: VBanner
|
85924
85920
|
VBannerActions: VBannerActions
|
85925
85921
|
VBannerText: VBannerText
|
85926
|
-
VAutocomplete: VAutocomplete
|
85927
85922
|
VBottomSheet: VBottomSheet
|
85923
|
+
VBadge: VBadge
|
85928
85924
|
VBreadcrumbs: VBreadcrumbs
|
85929
85925
|
VBreadcrumbsItem: VBreadcrumbsItem
|
85930
85926
|
VBreadcrumbsDivider: VBreadcrumbsDivider
|
85931
85927
|
VBottomNavigation: VBottomNavigation
|
85932
|
-
VBtn: VBtn
|
85933
|
-
VBtnToggle: VBtnToggle
|
85934
85928
|
VBtnGroup: VBtnGroup
|
85929
|
+
VBtnToggle: VBtnToggle
|
85935
85930
|
VCarousel: VCarousel
|
85936
85931
|
VCarouselItem: VCarouselItem
|
85932
|
+
VBtn: VBtn
|
85933
|
+
VChipGroup: VChipGroup
|
85934
|
+
VChip: VChip
|
85935
|
+
VCheckbox: VCheckbox
|
85936
|
+
VCheckboxBtn: VCheckboxBtn
|
85937
85937
|
VCard: VCard
|
85938
85938
|
VCardActions: VCardActions
|
85939
85939
|
VCardItem: VCardItem
|
85940
85940
|
VCardSubtitle: VCardSubtitle
|
85941
85941
|
VCardText: VCardText
|
85942
85942
|
VCardTitle: VCardTitle
|
85943
|
+
VCode: VCode
|
85944
|
+
VColorPicker: VColorPicker
|
85943
85945
|
VDataTable: VDataTable
|
85944
85946
|
VDataTableHeaders: VDataTableHeaders
|
85945
85947
|
VDataTableFooter: VDataTableFooter
|
@@ -85947,29 +85949,24 @@ declare module 'vue' {
|
|
85947
85949
|
VDataTableRow: VDataTableRow
|
85948
85950
|
VDataTableVirtual: VDataTableVirtual
|
85949
85951
|
VDataTableServer: VDataTableServer
|
85950
|
-
VCode: VCode
|
85951
|
-
VCheckbox: VCheckbox
|
85952
|
-
VCheckboxBtn: VCheckboxBtn
|
85953
|
-
VChip: VChip
|
85954
|
-
VCounter: VCounter
|
85955
|
-
VChipGroup: VChipGroup
|
85956
85952
|
VCombobox: VCombobox
|
85957
|
-
VColorPicker: VColorPicker
|
85958
85953
|
VDatePicker: VDatePicker
|
85959
85954
|
VDatePickerControls: VDatePickerControls
|
85960
85955
|
VDatePickerHeader: VDatePickerHeader
|
85961
85956
|
VDatePickerMonth: VDatePickerMonth
|
85962
85957
|
VDatePickerMonths: VDatePickerMonths
|
85963
85958
|
VDatePickerYears: VDatePickerYears
|
85964
|
-
|
85959
|
+
VCounter: VCounter
|
85965
85960
|
VDialog: VDialog
|
85961
|
+
VEmptyState: VEmptyState
|
85962
|
+
VDivider: VDivider
|
85966
85963
|
VExpansionPanels: VExpansionPanels
|
85967
85964
|
VExpansionPanel: VExpansionPanel
|
85968
85965
|
VExpansionPanelText: VExpansionPanelText
|
85969
85966
|
VExpansionPanelTitle: VExpansionPanelTitle
|
85970
85967
|
VFab: VFab
|
85971
|
-
VFooter: VFooter
|
85972
85968
|
VFileInput: VFileInput
|
85969
|
+
VFooter: VFooter
|
85973
85970
|
VField: VField
|
85974
85971
|
VFieldLabel: VFieldLabel
|
85975
85972
|
VIcon: VIcon
|
@@ -85977,13 +85974,13 @@ declare module 'vue' {
|
|
85977
85974
|
VSvgIcon: VSvgIcon
|
85978
85975
|
VLigatureIcon: VLigatureIcon
|
85979
85976
|
VClassIcon: VClassIcon
|
85980
|
-
|
85977
|
+
VImg: VImg
|
85981
85978
|
VInput: VInput
|
85979
|
+
VInfiniteScroll: VInfiniteScroll
|
85982
85980
|
VKbd: VKbd
|
85983
85981
|
VItemGroup: VItemGroup
|
85984
85982
|
VItem: VItem
|
85985
85983
|
VLabel: VLabel
|
85986
|
-
VImg: VImg
|
85987
85984
|
VList: VList
|
85988
85985
|
VListGroup: VListGroup
|
85989
85986
|
VListImg: VListImg
|
@@ -85993,72 +85990,69 @@ declare module 'vue' {
|
|
85993
85990
|
VListItemSubtitle: VListItemSubtitle
|
85994
85991
|
VListItemTitle: VListItemTitle
|
85995
85992
|
VListSubheader: VListSubheader
|
85996
|
-
VMenu: VMenu
|
85997
85993
|
VMain: VMain
|
85998
|
-
VNavigationDrawer: VNavigationDrawer
|
85999
|
-
VNumberInput: VNumberInput
|
86000
|
-
VOverlay: VOverlay
|
86001
85994
|
VMessages: VMessages
|
85995
|
+
VMenu: VMenu
|
85996
|
+
VNumberInput: VNumberInput
|
85997
|
+
VNavigationDrawer: VNavigationDrawer
|
86002
85998
|
VOtpInput: VOtpInput
|
86003
|
-
VProgressCircular: VProgressCircular
|
86004
|
-
VPagination: VPagination
|
86005
85999
|
VProgressLinear: VProgressLinear
|
86000
|
+
VOverlay: VOverlay
|
86001
|
+
VPagination: VPagination
|
86002
|
+
VSelect: VSelect
|
86003
|
+
VProgressCircular: VProgressCircular
|
86006
86004
|
VRadioGroup: VRadioGroup
|
86007
86005
|
VRating: VRating
|
86008
|
-
VSelect: VSelect
|
86009
86006
|
VSelectionControlGroup: VSelectionControlGroup
|
86010
|
-
VSkeletonLoader: VSkeletonLoader
|
86011
|
-
VSheet: VSheet
|
86012
|
-
VSelectionControl: VSelectionControl
|
86013
86007
|
VSlideGroup: VSlideGroup
|
86014
86008
|
VSlideGroupItem: VSlideGroupItem
|
86009
|
+
VSheet: VSheet
|
86010
|
+
VSelectionControl: VSelectionControl
|
86011
|
+
VSkeletonLoader: VSkeletonLoader
|
86012
|
+
VSlider: VSlider
|
86013
|
+
VSnackbar: VSnackbar
|
86015
86014
|
VStepper: VStepper
|
86016
86015
|
VStepperActions: VStepperActions
|
86017
86016
|
VStepperHeader: VStepperHeader
|
86018
86017
|
VStepperItem: VStepperItem
|
86019
86018
|
VStepperWindow: VStepperWindow
|
86020
86019
|
VStepperWindowItem: VStepperWindowItem
|
86021
|
-
VSnackbar: VSnackbar
|
86022
|
-
VSlider: VSlider
|
86023
|
-
VSystemBar: VSystemBar
|
86024
86020
|
VSwitch: VSwitch
|
86025
|
-
|
86026
|
-
|
86021
|
+
VTable: VTable
|
86022
|
+
VSystemBar: VSystemBar
|
86023
|
+
VTextarea: VTextarea
|
86024
|
+
VTextField: VTextField
|
86027
86025
|
VTab: VTab
|
86028
86026
|
VTabs: VTabs
|
86029
86027
|
VTabsWindow: VTabsWindow
|
86030
86028
|
VTabsWindowItem: VTabsWindowItem
|
86031
|
-
|
86032
|
-
|
86029
|
+
VTimeline: VTimeline
|
86030
|
+
VTimelineItem: VTimelineItem
|
86031
|
+
VTooltip: VTooltip
|
86033
86032
|
VToolbar: VToolbar
|
86034
86033
|
VToolbarTitle: VToolbarTitle
|
86035
86034
|
VToolbarItems: VToolbarItems
|
86036
|
-
VTooltip: VTooltip
|
86037
86035
|
VWindow: VWindow
|
86038
86036
|
VWindowItem: VWindowItem
|
86039
86037
|
VConfirmEdit: VConfirmEdit
|
86040
|
-
VTable: VTable
|
86041
|
-
VDataIterator: VDataIterator
|
86042
86038
|
VDefaultsProvider: VDefaultsProvider
|
86043
86039
|
VForm: VForm
|
86044
|
-
|
86045
|
-
VCol: VCol
|
86046
|
-
VRow: VRow
|
86047
|
-
VSpacer: VSpacer
|
86040
|
+
VDataIterator: VDataIterator
|
86048
86041
|
VHover: VHover
|
86049
|
-
|
86042
|
+
VLayout: VLayout
|
86043
|
+
VLayoutItem: VLayoutItem
|
86050
86044
|
VLocaleProvider: VLocaleProvider
|
86045
|
+
VLazy: VLazy
|
86051
86046
|
VNoSsr: VNoSsr
|
86052
|
-
VRadio: VRadio
|
86053
86047
|
VParallax: VParallax
|
86048
|
+
VRadio: VRadio
|
86054
86049
|
VRangeSlider: VRangeSlider
|
86055
86050
|
VResponsive: VResponsive
|
86056
|
-
VSnackbarQueue: VSnackbarQueue
|
86057
86051
|
VSpeedDial: VSpeedDial
|
86058
86052
|
VSparkline: VSparkline
|
86059
86053
|
VThemeProvider: VThemeProvider
|
86060
|
-
VValidation: VValidation
|
86061
86054
|
VVirtualScroll: VVirtualScroll
|
86055
|
+
VValidation: VValidation
|
86062
86056
|
VFabTransition: VFabTransition
|
86063
86057
|
VDialogBottomTransition: VDialogBottomTransition
|
86064
86058
|
VDialogTopTransition: VDialogTopTransition
|
@@ -86075,30 +86069,32 @@ declare module 'vue' {
|
|
86075
86069
|
VExpandTransition: VExpandTransition
|
86076
86070
|
VExpandXTransition: VExpandXTransition
|
86077
86071
|
VDialogTransition: VDialogTransition
|
86078
|
-
|
86079
|
-
|
86080
|
-
|
86072
|
+
VContainer: VContainer
|
86073
|
+
VCol: VCol
|
86074
|
+
VRow: VRow
|
86075
|
+
VSpacer: VSpacer
|
86076
|
+
VSnackbarQueue: VSnackbarQueue
|
86081
86077
|
VCalendar: VCalendar
|
86082
86078
|
VCalendarDay: VCalendarDay
|
86083
86079
|
VCalendarHeader: VCalendarHeader
|
86084
86080
|
VCalendarInterval: VCalendarInterval
|
86085
86081
|
VCalendarIntervalEvent: VCalendarIntervalEvent
|
86086
86082
|
VCalendarMonthDay: VCalendarMonthDay
|
86083
|
+
VFileUpload: VFileUpload
|
86084
|
+
VFileUploadItem: VFileUploadItem
|
86087
86085
|
VIconBtn: VIconBtn
|
86086
|
+
VColorInput: VColorInput
|
86087
|
+
VStepperVertical: VStepperVertical
|
86088
|
+
VStepperVerticalItem: VStepperVerticalItem
|
86089
|
+
VStepperVerticalActions: VStepperVerticalActions
|
86088
86090
|
VPicker: VPicker
|
86089
86091
|
VPickerTitle: VPickerTitle
|
86090
|
-
VColorInput: VColorInput
|
86091
|
-
VTimePicker: VTimePicker
|
86092
|
-
VTimePickerClock: VTimePickerClock
|
86093
|
-
VTimePickerControls: VTimePickerControls
|
86094
|
-
VFileUpload: VFileUpload
|
86095
|
-
VFileUploadItem: VFileUploadItem
|
86096
86092
|
VTreeview: VTreeview
|
86097
86093
|
VTreeviewItem: VTreeviewItem
|
86098
86094
|
VTreeviewGroup: VTreeviewGroup
|
86099
|
-
|
86100
|
-
|
86101
|
-
|
86095
|
+
VTimePicker: VTimePicker
|
86096
|
+
VTimePickerClock: VTimePickerClock
|
86097
|
+
VTimePickerControls: VTimePickerControls
|
86102
86098
|
VDateInput: VDateInput
|
86103
86099
|
VPullToRefresh: VPullToRefresh
|
86104
86100
|
}
|
package/dist/vuetify.esm.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.8-master.2025-06-
|
2
|
+
* Vuetify v3.8.8-master.2025-06-08
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -16534,7 +16534,7 @@ const VSliderThumb = genericComponent()({
|
|
16534
16534
|
default: () => [withDirectives(createElementVNode("div", {
|
16535
16535
|
"class": "v-slider-thumb__label-container"
|
16536
16536
|
}, [createElementVNode("div", {
|
16537
|
-
"class": normalizeClass(['v-slider-thumb__label'])
|
16537
|
+
"class": normalizeClass(['v-slider-thumb__label', textColorClasses.value])
|
16538
16538
|
}, [createElementVNode("div", null, [slots['thumb-label']?.({
|
16539
16539
|
modelValue: props.modelValue
|
16540
16540
|
}) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
|
@@ -18106,6 +18106,18 @@ function createDate(options, locale) {
|
|
18106
18106
|
instance: createInstance(_options, locale)
|
18107
18107
|
};
|
18108
18108
|
}
|
18109
|
+
function createDateRange(adapter, start, stop) {
|
18110
|
+
const diff = adapter.getDiff(stop ?? start, start, 'days');
|
18111
|
+
const datesInRange = [start];
|
18112
|
+
for (let i = 1; i < diff; i++) {
|
18113
|
+
const nextDate = adapter.addDays(start, i);
|
18114
|
+
datesInRange.push(nextDate);
|
18115
|
+
}
|
18116
|
+
if (stop) {
|
18117
|
+
datesInRange.push(adapter.endOfDay(stop));
|
18118
|
+
}
|
18119
|
+
return datesInRange;
|
18120
|
+
}
|
18109
18121
|
function createInstance(options, locale) {
|
18110
18122
|
const instance = reactive(typeof options.adapter === 'function'
|
18111
18123
|
// eslint-disable-next-line new-cap
|
@@ -18116,20 +18128,7 @@ function createInstance(options, locale) {
|
|
18116
18128
|
watch(locale.current, value => {
|
18117
18129
|
instance.locale = options.locale[value] ?? value ?? instance.locale;
|
18118
18130
|
});
|
18119
|
-
return
|
18120
|
-
createDateRange(start, stop) {
|
18121
|
-
const diff = instance.getDiff(stop ?? start, start, 'days');
|
18122
|
-
const datesInRange = [start];
|
18123
|
-
for (let i = 1; i < diff; i++) {
|
18124
|
-
const nextDate = instance.addDays(start, i);
|
18125
|
-
datesInRange.push(nextDate);
|
18126
|
-
}
|
18127
|
-
if (stop) {
|
18128
|
-
datesInRange.push(instance.endOfDay(stop));
|
18129
|
-
}
|
18130
|
-
return datesInRange;
|
18131
|
-
}
|
18132
|
-
});
|
18131
|
+
return instance;
|
18133
18132
|
}
|
18134
18133
|
function useDate() {
|
18135
18134
|
const options = inject$1(DateOptionsSymbol);
|
@@ -20272,6 +20271,7 @@ const VDataTableColumn = defineFunctionalComponent({
|
|
20272
20271
|
} = _ref;
|
20273
20272
|
const Tag = props.tag ?? 'td';
|
20274
20273
|
return createVNode(Tag, {
|
20274
|
+
"tabindex": "0",
|
20275
20275
|
"class": normalizeClass(['v-data-table__td', {
|
20276
20276
|
'v-data-table-column--fixed': props.fixed,
|
20277
20277
|
'v-data-table-column--last-fixed': props.lastFixed,
|
@@ -20616,6 +20616,11 @@ const VDataTableHeaders = genericComponent()({
|
|
20616
20616
|
top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
|
20617
20617
|
};
|
20618
20618
|
}
|
20619
|
+
function handleEnterKeyPress(event, column) {
|
20620
|
+
if (event.key === 'Enter' && !props.disableSort) {
|
20621
|
+
toggleSort(column);
|
20622
|
+
}
|
20623
|
+
}
|
20619
20624
|
function getSortIcon(column) {
|
20620
20625
|
const item = sortBy.value.find(item => item.key === column.key);
|
20621
20626
|
if (!item) return props.sortAscIcon;
|
@@ -20672,7 +20677,9 @@ const VDataTableHeaders = genericComponent()({
|
|
20672
20677
|
"nowrap": column.nowrap,
|
20673
20678
|
"lastFixed": column.lastFixed,
|
20674
20679
|
"noPadding": noPadding
|
20675
|
-
}, headerProps
|
20680
|
+
}, headerProps, {
|
20681
|
+
"onKeydown": event => column.sortable && handleEnterKeyPress(event, column)
|
20682
|
+
}), {
|
20676
20683
|
default: () => {
|
20677
20684
|
const columnSlotName = `header.${column.key}`;
|
20678
20685
|
const columnSlotProps = {
|
@@ -22525,7 +22532,7 @@ const VDatePickerMonth = genericComponent()({
|
|
22525
22532
|
} else {
|
22526
22533
|
rangeStop.value = adapter.endOfDay(_value);
|
22527
22534
|
}
|
22528
|
-
model.value =
|
22535
|
+
model.value = createDateRange(adapter, rangeStart.value, rangeStop.value);
|
22529
22536
|
} else {
|
22530
22537
|
rangeStart.value = value;
|
22531
22538
|
rangeStop.value = undefined;
|
@@ -23612,6 +23619,56 @@ const VFab = genericComponent()({
|
|
23612
23619
|
|
23613
23620
|
// Types
|
23614
23621
|
|
23622
|
+
function useFileDrop() {
|
23623
|
+
function hasFilesOrFolders(e) {
|
23624
|
+
const entries = [...(e.dataTransfer?.items ?? [])].filter(x => x.kind === 'file').map(x => x.webkitGetAsEntry()).filter(Boolean);
|
23625
|
+
return entries.length > 0 || [...(e.dataTransfer?.files ?? [])].length > 0;
|
23626
|
+
}
|
23627
|
+
async function handleDrop(e) {
|
23628
|
+
const result = [];
|
23629
|
+
const entries = [...(e.dataTransfer?.items ?? [])].filter(x => x.kind === 'file').map(x => x.webkitGetAsEntry()).filter(Boolean);
|
23630
|
+
if (entries.length) {
|
23631
|
+
for (const entry of entries) {
|
23632
|
+
const files = await traverseFileTree(entry, appendIfDirectory('.', entry));
|
23633
|
+
result.push(...files.map(x => x.file));
|
23634
|
+
}
|
23635
|
+
} else {
|
23636
|
+
result.push(...[...(e.dataTransfer?.files ?? [])]);
|
23637
|
+
}
|
23638
|
+
return result;
|
23639
|
+
}
|
23640
|
+
return {
|
23641
|
+
handleDrop,
|
23642
|
+
hasFilesOrFolders
|
23643
|
+
};
|
23644
|
+
}
|
23645
|
+
function traverseFileTree(item) {
|
23646
|
+
let path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
23647
|
+
return new Promise((resolve, reject) => {
|
23648
|
+
if (item.isFile) {
|
23649
|
+
const fileEntry = item;
|
23650
|
+
fileEntry.file(file => resolve([{
|
23651
|
+
file,
|
23652
|
+
path
|
23653
|
+
}]), reject);
|
23654
|
+
} else if (item.isDirectory) {
|
23655
|
+
const directoryReader = item.createReader();
|
23656
|
+
directoryReader.readEntries(async entries => {
|
23657
|
+
const files = [];
|
23658
|
+
for (const entry of entries) {
|
23659
|
+
files.push(...(await traverseFileTree(entry, appendIfDirectory(path, entry))));
|
23660
|
+
}
|
23661
|
+
resolve(files);
|
23662
|
+
});
|
23663
|
+
}
|
23664
|
+
});
|
23665
|
+
}
|
23666
|
+
function appendIfDirectory(path, item) {
|
23667
|
+
return item.isDirectory ? `${path}/${item.name}` : path;
|
23668
|
+
}
|
23669
|
+
|
23670
|
+
// Types
|
23671
|
+
|
23615
23672
|
const makeVFileInputProps = propsFactory({
|
23616
23673
|
chips: Boolean,
|
23617
23674
|
counter: Boolean,
|
@@ -23696,6 +23753,10 @@ const VFileInput = genericComponent()({
|
|
23696
23753
|
const isActive = toRef(() => isFocused.value || props.active);
|
23697
23754
|
const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
|
23698
23755
|
const isDragging = shallowRef(false);
|
23756
|
+
const {
|
23757
|
+
handleDrop,
|
23758
|
+
hasFilesOrFolders
|
23759
|
+
} = useFileDrop();
|
23699
23760
|
function onFocus() {
|
23700
23761
|
if (inputRef.value !== document.activeElement) {
|
23701
23762
|
inputRef.value?.focus();
|
@@ -23729,13 +23790,13 @@ const VFileInput = genericComponent()({
|
|
23729
23790
|
e.preventDefault();
|
23730
23791
|
isDragging.value = false;
|
23731
23792
|
}
|
23732
|
-
function onDrop(e) {
|
23793
|
+
async function onDrop(e) {
|
23733
23794
|
e.preventDefault();
|
23734
23795
|
e.stopImmediatePropagation();
|
23735
23796
|
isDragging.value = false;
|
23736
|
-
if (!
|
23797
|
+
if (!inputRef.value || !hasFilesOrFolders(e)) return;
|
23737
23798
|
const dataTransfer = new DataTransfer();
|
23738
|
-
for (const file of e
|
23799
|
+
for (const file of await handleDrop(e)) {
|
23739
23800
|
dataTransfer.items.add(file);
|
23740
23801
|
}
|
23741
23802
|
inputRef.value.files = dataTransfer.files;
|
@@ -29403,7 +29464,7 @@ function createVuetify$1() {
|
|
29403
29464
|
};
|
29404
29465
|
});
|
29405
29466
|
}
|
29406
|
-
const version$1 = "3.8.8-master.2025-06-
|
29467
|
+
const version$1 = "3.8.8-master.2025-06-08";
|
29407
29468
|
createVuetify$1.version = version$1;
|
29408
29469
|
|
29409
29470
|
// Vue's inject() can only be used in setup
|
@@ -29428,7 +29489,7 @@ const createVuetify = function () {
|
|
29428
29489
|
...options
|
29429
29490
|
});
|
29430
29491
|
};
|
29431
|
-
const version = "3.8.8-master.2025-06-
|
29492
|
+
const version = "3.8.8-master.2025-06-08";
|
29432
29493
|
createVuetify.version = version;
|
29433
29494
|
|
29434
29495
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|