@vuetify/nightly 3.8.8-master.2025-06-07 → 3.8.8-master.2025-06-10

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.
Files changed (58) hide show
  1. package/CHANGELOG.md +11 -3
  2. package/dist/json/attributes.json +2832 -2832
  3. package/dist/json/importMap-labs.json +26 -26
  4. package/dist/json/importMap.json +162 -162
  5. package/dist/json/web-types.json +5438 -5438
  6. package/dist/vuetify-labs.cjs +98 -34
  7. package/dist/vuetify-labs.css +4072 -4072
  8. package/dist/vuetify-labs.d.ts +58 -62
  9. package/dist/vuetify-labs.esm.js +99 -35
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +98 -34
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +91 -30
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +4746 -4746
  16. package/dist/vuetify.d.ts +58 -62
  17. package/dist/vuetify.esm.js +92 -31
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +91 -30
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +964 -958
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VDataTable/VDataTableColumn.js +1 -0
  25. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  26. package/lib/components/VDataTable/VDataTableHeaders.js +8 -1
  27. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  28. package/lib/components/VDatePicker/VDatePickerMonth.js +2 -2
  29. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  30. package/lib/components/VFileInput/VFileInput.js +8 -3
  31. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  32. package/lib/components/VSelect/VSelect.js +6 -5
  33. package/lib/components/VSelect/VSelect.js.map +1 -1
  34. package/lib/components/VSlider/VSliderThumb.js +1 -1
  35. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  36. package/lib/composables/date/adapters/vuetify.js +1 -1
  37. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  38. package/lib/composables/date/date.d.ts +1 -4
  39. package/lib/composables/date/date.js +13 -14
  40. package/lib/composables/date/date.js.map +1 -1
  41. package/lib/composables/fileDrop.d.ts +4 -0
  42. package/lib/composables/fileDrop.js +50 -0
  43. package/lib/composables/fileDrop.js.map +1 -0
  44. package/lib/composables/list-items.js +2 -2
  45. package/lib/composables/list-items.js.map +1 -1
  46. package/lib/entry-bundler.d.ts +0 -3
  47. package/lib/entry-bundler.js +1 -1
  48. package/lib/framework.d.ts +58 -62
  49. package/lib/framework.js +1 -1
  50. package/lib/labs/VDateInput/VDateInput.js +2 -1
  51. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  52. package/lib/labs/VFileUpload/VFileUpload.js +7 -3
  53. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  54. package/lib/labs/entry-bundler.d.ts +0 -3
  55. package/lib/util/helpers.d.ts +1 -1
  56. package/lib/util/helpers.js +0 -1
  57. package/lib/util/helpers.js.map +1 -1
  58. package/package.json +1 -1
@@ -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 {
@@ -101711,7 +101710,6 @@ declare const createVuetify: (options?: VuetifyOptions) => {
101711
101710
  options: InternalDateOptions;
101712
101711
  instance: {
101713
101712
  locale?: any;
101714
- createDateRange: (start: unknown, stop?: unknown) => unknown[];
101715
101713
  date: (value?: any) => unknown;
101716
101714
  format: (date: unknown, formatString: string) => string;
101717
101715
  toJsDate: (value: unknown) => Date;
@@ -101755,8 +101753,6 @@ declare const createVuetify: (options?: VuetifyOptions) => {
101755
101753
  setHours: (date: unknown, hours: number) => unknown;
101756
101754
  getMinutes: (date: unknown) => number;
101757
101755
  setMinutes: (date: unknown, minutes: number) => unknown;
101758
- } & {
101759
- createDateRange(start: unknown, stop?: unknown): unknown[];
101760
101756
  };
101761
101757
  };
101762
101758
  goTo: GoToInstance;
@@ -101802,45 +101798,37 @@ declare module 'vue' {
101802
101798
  VAppBar: VAppBar
101803
101799
  VAppBarNavIcon: VAppBarNavIcon
101804
101800
  VAppBarTitle: VAppBarTitle
101801
+ VApp: VApp
101805
101802
  VAlert: VAlert
101806
101803
  VAlertTitle: VAlertTitle
101807
- VAvatar: VAvatar
101808
- VApp: VApp
101809
- VBadge: VBadge
101810
101804
  VBanner: VBanner
101811
101805
  VBannerActions: VBannerActions
101812
101806
  VBannerText: VBannerText
101807
+ VAvatar: VAvatar
101813
101808
  VAutocomplete: VAutocomplete
101814
- VBottomSheet: VBottomSheet
101809
+ VBtn: VBtn
101810
+ VBadge: VBadge
101811
+ VBottomNavigation: VBottomNavigation
101815
101812
  VBreadcrumbs: VBreadcrumbs
101816
101813
  VBreadcrumbsItem: VBreadcrumbsItem
101817
101814
  VBreadcrumbsDivider: VBreadcrumbsDivider
101818
- VBottomNavigation: VBottomNavigation
101819
- VBtn: VBtn
101820
- VBtnToggle: VBtnToggle
101821
101815
  VBtnGroup: VBtnGroup
101822
- VCarousel: VCarousel
101823
- VCarouselItem: VCarouselItem
101816
+ VBottomSheet: VBottomSheet
101824
101817
  VCard: VCard
101825
101818
  VCardActions: VCardActions
101826
101819
  VCardItem: VCardItem
101827
101820
  VCardSubtitle: VCardSubtitle
101828
101821
  VCardText: VCardText
101829
101822
  VCardTitle: VCardTitle
101830
- VDataTable: VDataTable
101831
- VDataTableHeaders: VDataTableHeaders
101832
- VDataTableFooter: VDataTableFooter
101833
- VDataTableRows: VDataTableRows
101834
- VDataTableRow: VDataTableRow
101835
- VDataTableVirtual: VDataTableVirtual
101836
- VDataTableServer: VDataTableServer
101837
- VCode: VCode
101823
+ VBtnToggle: VBtnToggle
101824
+ VCarousel: VCarousel
101825
+ VCarouselItem: VCarouselItem
101826
+ VChip: VChip
101838
101827
  VCheckbox: VCheckbox
101839
101828
  VCheckboxBtn: VCheckboxBtn
101840
- VChip: VChip
101841
- VCounter: VCounter
101842
- VChipGroup: VChipGroup
101843
101829
  VCombobox: VCombobox
101830
+ VChipGroup: VChipGroup
101831
+ VCode: VCode
101844
101832
  VColorPicker: VColorPicker
101845
101833
  VDatePicker: VDatePicker
101846
101834
  VDatePickerControls: VDatePickerControls
@@ -101848,29 +101836,37 @@ declare module 'vue' {
101848
101836
  VDatePickerMonth: VDatePickerMonth
101849
101837
  VDatePickerMonths: VDatePickerMonths
101850
101838
  VDatePickerYears: VDatePickerYears
101851
- VDivider: VDivider
101839
+ VCounter: VCounter
101852
101840
  VDialog: VDialog
101841
+ VDataTable: VDataTable
101842
+ VDataTableHeaders: VDataTableHeaders
101843
+ VDataTableFooter: VDataTableFooter
101844
+ VDataTableRows: VDataTableRows
101845
+ VDataTableRow: VDataTableRow
101846
+ VDataTableVirtual: VDataTableVirtual
101847
+ VDataTableServer: VDataTableServer
101848
+ VDivider: VDivider
101849
+ VEmptyState: VEmptyState
101853
101850
  VExpansionPanels: VExpansionPanels
101854
101851
  VExpansionPanel: VExpansionPanel
101855
101852
  VExpansionPanelText: VExpansionPanelText
101856
101853
  VExpansionPanelTitle: VExpansionPanelTitle
101857
101854
  VFab: VFab
101858
- VFooter: VFooter
101859
- VFileInput: VFileInput
101860
101855
  VField: VField
101861
101856
  VFieldLabel: VFieldLabel
101857
+ VFileInput: VFileInput
101858
+ VInfiniteScroll: VInfiniteScroll
101859
+ VFooter: VFooter
101862
101860
  VIcon: VIcon
101863
101861
  VComponentIcon: VComponentIcon
101864
101862
  VSvgIcon: VSvgIcon
101865
101863
  VLigatureIcon: VLigatureIcon
101866
101864
  VClassIcon: VClassIcon
101867
- VInfiniteScroll: VInfiniteScroll
101865
+ VImg: VImg
101868
101866
  VInput: VInput
101869
- VKbd: VKbd
101867
+ VLabel: VLabel
101870
101868
  VItemGroup: VItemGroup
101871
101869
  VItem: VItem
101872
- VLabel: VLabel
101873
- VImg: VImg
101874
101870
  VList: VList
101875
101871
  VListGroup: VListGroup
101876
101872
  VListImg: VListImg
@@ -101880,23 +101876,26 @@ declare module 'vue' {
101880
101876
  VListItemSubtitle: VListItemSubtitle
101881
101877
  VListItemTitle: VListItemTitle
101882
101878
  VListSubheader: VListSubheader
101879
+ VKbd: VKbd
101883
101880
  VMenu: VMenu
101884
101881
  VMain: VMain
101885
- VNavigationDrawer: VNavigationDrawer
101886
- VNumberInput: VNumberInput
101887
- VOverlay: VOverlay
101888
101882
  VMessages: VMessages
101889
101883
  VOtpInput: VOtpInput
101890
- VProgressCircular: VProgressCircular
101891
101884
  VPagination: VPagination
101885
+ VNavigationDrawer: VNavigationDrawer
101886
+ VNumberInput: VNumberInput
101892
101887
  VProgressLinear: VProgressLinear
101888
+ VOverlay: VOverlay
101889
+ VProgressCircular: VProgressCircular
101890
+ VSelect: VSelect
101893
101891
  VRadioGroup: VRadioGroup
101894
101892
  VRating: VRating
101895
- VSelect: VSelect
101896
101893
  VSelectionControlGroup: VSelectionControlGroup
101897
- VSkeletonLoader: VSkeletonLoader
101898
- VSheet: VSheet
101899
101894
  VSelectionControl: VSelectionControl
101895
+ VSheet: VSheet
101896
+ VSlider: VSlider
101897
+ VSkeletonLoader: VSkeletonLoader
101898
+ VSnackbar: VSnackbar
101900
101899
  VSlideGroup: VSlideGroup
101901
101900
  VSlideGroupItem: VSlideGroupItem
101902
101901
  VStepper: VStepper
@@ -101905,44 +101904,44 @@ declare module 'vue' {
101905
101904
  VStepperItem: VStepperItem
101906
101905
  VStepperWindow: VStepperWindow
101907
101906
  VStepperWindowItem: VStepperWindowItem
101908
- VSnackbar: VSnackbar
101909
- VSlider: VSlider
101910
- VSystemBar: VSystemBar
101911
101907
  VSwitch: VSwitch
101912
- VTimeline: VTimeline
101913
- VTimelineItem: VTimelineItem
101908
+ VTextField: VTextField
101914
101909
  VTab: VTab
101915
101910
  VTabs: VTabs
101916
101911
  VTabsWindow: VTabsWindow
101917
101912
  VTabsWindowItem: VTabsWindowItem
101918
- VTextField: VTextField
101913
+ VTable: VTable
101914
+ VSystemBar: VSystemBar
101915
+ VTimeline: VTimeline
101916
+ VTimelineItem: VTimelineItem
101919
101917
  VTextarea: VTextarea
101920
101918
  VToolbar: VToolbar
101921
101919
  VToolbarTitle: VToolbarTitle
101922
101920
  VToolbarItems: VToolbarItems
101923
- VTooltip: VTooltip
101924
101921
  VWindow: VWindow
101925
101922
  VWindowItem: VWindowItem
101926
- VConfirmEdit: VConfirmEdit
101927
- VTable: VTable
101923
+ VTooltip: VTooltip
101928
101924
  VDataIterator: VDataIterator
101925
+ VConfirmEdit: VConfirmEdit
101929
101926
  VDefaultsProvider: VDefaultsProvider
101930
- VForm: VForm
101931
101927
  VContainer: VContainer
101932
101928
  VCol: VCol
101933
101929
  VRow: VRow
101934
101930
  VSpacer: VSpacer
101935
101931
  VHover: VHover
101932
+ VForm: VForm
101933
+ VLayout: VLayout
101934
+ VLayoutItem: VLayoutItem
101936
101935
  VLazy: VLazy
101937
101936
  VLocaleProvider: VLocaleProvider
101938
101937
  VNoSsr: VNoSsr
101939
- VRadio: VRadio
101940
101938
  VParallax: VParallax
101941
- VRangeSlider: VRangeSlider
101939
+ VRadio: VRadio
101942
101940
  VResponsive: VResponsive
101941
+ VRangeSlider: VRangeSlider
101943
101942
  VSnackbarQueue: VSnackbarQueue
101944
- VSpeedDial: VSpeedDial
101945
101943
  VSparkline: VSparkline
101944
+ VSpeedDial: VSpeedDial
101946
101945
  VThemeProvider: VThemeProvider
101947
101946
  VValidation: VValidation
101948
101947
  VVirtualScroll: VVirtualScroll
@@ -101962,31 +101961,28 @@ declare module 'vue' {
101962
101961
  VExpandTransition: VExpandTransition
101963
101962
  VExpandXTransition: VExpandXTransition
101964
101963
  VDialogTransition: VDialogTransition
101965
- VEmptyState: VEmptyState
101966
- VLayout: VLayout
101967
- VLayoutItem: VLayoutItem
101964
+ VColorInput: VColorInput
101965
+ VFileUpload: VFileUpload
101966
+ VFileUploadItem: VFileUploadItem
101968
101967
  VCalendar: VCalendar
101969
101968
  VCalendarDay: VCalendarDay
101970
101969
  VCalendarHeader: VCalendarHeader
101971
101970
  VCalendarInterval: VCalendarInterval
101972
101971
  VCalendarIntervalEvent: VCalendarIntervalEvent
101973
101972
  VCalendarMonthDay: VCalendarMonthDay
101974
- VIconBtn: VIconBtn
101975
101973
  VPicker: VPicker
101976
101974
  VPickerTitle: VPickerTitle
101977
- VColorInput: VColorInput
101975
+ VStepperVertical: VStepperVertical
101976
+ VStepperVerticalItem: VStepperVerticalItem
101977
+ VStepperVerticalActions: VStepperVerticalActions
101978
101978
  VTimePicker: VTimePicker
101979
101979
  VTimePickerClock: VTimePickerClock
101980
101980
  VTimePickerControls: VTimePickerControls
101981
- VFileUpload: VFileUpload
101982
- VFileUploadItem: VFileUploadItem
101981
+ VIconBtn: VIconBtn
101983
101982
  VTreeview: VTreeview
101984
101983
  VTreeviewItem: VTreeviewItem
101985
101984
  VTreeviewGroup: VTreeviewGroup
101986
- VStepperVertical: VStepperVertical
101987
- VStepperVerticalItem: VStepperVerticalItem
101988
- VStepperVerticalActions: VStepperVerticalActions
101989
- VDateInput: VDateInput
101990
101985
  VPullToRefresh: VPullToRefresh
101986
+ VDateInput: VDateInput
101991
101987
  }
101992
101988
  }
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.8.8-master.2025-06-07
2
+ * Vuetify v3.8.8-master.2025-06-10
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
- import { shallowRef, reactive, watchEffect, toRef, capitalize, camelize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, createElementVNode, normalizeStyle, normalizeClass, createVNode, TransitionGroup, Transition, mergeProps, toRefs, toValue, isRef, onBeforeMount, nextTick, withDirectives, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, normalizeProps, guardReactiveProps, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
7
+ import { shallowRef, reactive, watchEffect, toRef, capitalize, unref, Fragment, camelize, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, createElementVNode, normalizeStyle, normalizeClass, createVNode, TransitionGroup, Transition, mergeProps, toRefs, toValue, isRef, onBeforeMount, nextTick, withDirectives, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, normalizeProps, guardReactiveProps, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
8
8
 
9
9
  // Types
10
10
  // eslint-disable-line vue/prefer-import-from-vue
@@ -603,7 +603,6 @@ function extractNumber(text, decimalDigitsLimit) {
603
603
  return cleanText;
604
604
  }
605
605
  function camelizeProps(props) {
606
- if (!props) return;
607
606
  const out = {};
608
607
  for (const prop in props) {
609
608
  out[camelize(prop)] = props[prop];
@@ -9586,7 +9585,7 @@ function transformItem$3(props, item) {
9586
9585
  const _props = {
9587
9586
  title,
9588
9587
  value,
9589
- ...camelizeProps(itemProps)
9588
+ ...itemProps
9590
9589
  };
9591
9590
  return {
9592
9591
  title: String(_props.title ?? ''),
@@ -13053,6 +13052,7 @@ const VSelect = genericComponent()({
13053
13052
  index,
13054
13053
  itemRef
13055
13054
  } = _ref2;
13055
+ const camelizedProps = camelizeProps(item.props);
13056
13056
  const itemProps = mergeProps(item.props, {
13057
13057
  ref: itemRef,
13058
13058
  key: item.value,
@@ -13074,10 +13074,10 @@ const VSelect = genericComponent()({
13074
13074
  "modelValue": isSelected,
13075
13075
  "ripple": false,
13076
13076
  "tabindex": "-1"
13077
- }, null) : undefined, item.props.prependAvatar && createVNode(VAvatar, {
13078
- "image": item.props.prependAvatar
13079
- }, null), item.props.prependIcon && createVNode(VIcon, {
13080
- "icon": item.props.prependIcon
13077
+ }, null) : undefined, camelizedProps.prependAvatar && createVNode(VAvatar, {
13078
+ "image": camelizedProps.prependAvatar
13079
+ }, null), camelizedProps.prependIcon && createVNode(VIcon, {
13080
+ "icon": camelizedProps.prependIcon
13081
13081
  }, null)]);
13082
13082
  }
13083
13083
  });
@@ -16256,7 +16256,7 @@ const VSliderThumb = genericComponent()({
16256
16256
  default: () => [withDirectives(createElementVNode("div", {
16257
16257
  "class": "v-slider-thumb__label-container"
16258
16258
  }, [createElementVNode("div", {
16259
- "class": normalizeClass(['v-slider-thumb__label'])
16259
+ "class": normalizeClass(['v-slider-thumb__label', textColorClasses.value])
16260
16260
  }, [createElementVNode("div", null, [slots['thumb-label']?.({
16261
16261
  modelValue: props.modelValue
16262
16262
  }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
@@ -17525,7 +17525,7 @@ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17525
17525
  const yearStart = new Date(year, 0, 1);
17526
17526
  const size = firstWeekSize(year);
17527
17527
  const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17528
- return 1 + getDiff(date, d1w1, 'weeks');
17528
+ return 1 + getDiff(endOfDay(date), startOfDay(d1w1), 'weeks');
17529
17529
  }
17530
17530
  function getDate(date) {
17531
17531
  return date.getDate();
@@ -17828,6 +17828,18 @@ function createDate(options, locale) {
17828
17828
  instance: createInstance(_options, locale)
17829
17829
  };
17830
17830
  }
17831
+ function createDateRange(adapter, start, stop) {
17832
+ const diff = adapter.getDiff(adapter.endOfDay(stop ?? start), adapter.startOfDay(start), 'days');
17833
+ const datesInRange = [start];
17834
+ for (let i = 1; i < diff; i++) {
17835
+ const nextDate = adapter.addDays(start, i);
17836
+ datesInRange.push(nextDate);
17837
+ }
17838
+ if (stop) {
17839
+ datesInRange.push(adapter.endOfDay(stop));
17840
+ }
17841
+ return datesInRange;
17842
+ }
17831
17843
  function createInstance(options, locale) {
17832
17844
  const instance = reactive(typeof options.adapter === 'function'
17833
17845
  // eslint-disable-next-line new-cap
@@ -17838,20 +17850,7 @@ function createInstance(options, locale) {
17838
17850
  watch(locale.current, value => {
17839
17851
  instance.locale = options.locale[value] ?? value ?? instance.locale;
17840
17852
  });
17841
- return Object.assign(instance, {
17842
- createDateRange(start, stop) {
17843
- const diff = instance.getDiff(stop ?? start, start, 'days');
17844
- const datesInRange = [start];
17845
- for (let i = 1; i < diff; i++) {
17846
- const nextDate = instance.addDays(start, i);
17847
- datesInRange.push(nextDate);
17848
- }
17849
- if (stop) {
17850
- datesInRange.push(instance.endOfDay(stop));
17851
- }
17852
- return datesInRange;
17853
- }
17854
- });
17853
+ return instance;
17855
17854
  }
17856
17855
  function useDate() {
17857
17856
  const options = inject$1(DateOptionsSymbol);
@@ -19994,6 +19993,7 @@ const VDataTableColumn = defineFunctionalComponent({
19994
19993
  } = _ref;
19995
19994
  const Tag = props.tag ?? 'td';
19996
19995
  return createVNode(Tag, {
19996
+ "tabindex": "0",
19997
19997
  "class": normalizeClass(['v-data-table__td', {
19998
19998
  'v-data-table-column--fixed': props.fixed,
19999
19999
  'v-data-table-column--last-fixed': props.lastFixed,
@@ -20338,6 +20338,11 @@ const VDataTableHeaders = genericComponent()({
20338
20338
  top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
20339
20339
  };
20340
20340
  }
20341
+ function handleEnterKeyPress(event, column) {
20342
+ if (event.key === 'Enter' && !props.disableSort) {
20343
+ toggleSort(column);
20344
+ }
20345
+ }
20341
20346
  function getSortIcon(column) {
20342
20347
  const item = sortBy.value.find(item => item.key === column.key);
20343
20348
  if (!item) return props.sortAscIcon;
@@ -20394,7 +20399,9 @@ const VDataTableHeaders = genericComponent()({
20394
20399
  "nowrap": column.nowrap,
20395
20400
  "lastFixed": column.lastFixed,
20396
20401
  "noPadding": noPadding
20397
- }, headerProps), {
20402
+ }, headerProps, {
20403
+ "onKeydown": event => column.sortable && handleEnterKeyPress(event, column)
20404
+ }), {
20398
20405
  default: () => {
20399
20406
  const columnSlotName = `header.${column.key}`;
20400
20407
  const columnSlotProps = {
@@ -22247,7 +22254,7 @@ const VDatePickerMonth = genericComponent()({
22247
22254
  } else {
22248
22255
  rangeStop.value = adapter.endOfDay(_value);
22249
22256
  }
22250
- model.value = adapter.createDateRange(rangeStart.value, rangeStop.value);
22257
+ model.value = createDateRange(adapter, rangeStart.value, rangeStop.value);
22251
22258
  } else {
22252
22259
  rangeStart.value = value;
22253
22260
  rangeStop.value = undefined;
@@ -23334,6 +23341,56 @@ const VFab = genericComponent()({
23334
23341
 
23335
23342
  // Types
23336
23343
 
23344
+ function useFileDrop() {
23345
+ function hasFilesOrFolders(e) {
23346
+ const entries = [...(e.dataTransfer?.items ?? [])].filter(x => x.kind === 'file').map(x => x.webkitGetAsEntry()).filter(Boolean);
23347
+ return entries.length > 0 || [...(e.dataTransfer?.files ?? [])].length > 0;
23348
+ }
23349
+ async function handleDrop(e) {
23350
+ const result = [];
23351
+ const entries = [...(e.dataTransfer?.items ?? [])].filter(x => x.kind === 'file').map(x => x.webkitGetAsEntry()).filter(Boolean);
23352
+ if (entries.length) {
23353
+ for (const entry of entries) {
23354
+ const files = await traverseFileTree(entry, appendIfDirectory('.', entry));
23355
+ result.push(...files.map(x => x.file));
23356
+ }
23357
+ } else {
23358
+ result.push(...[...(e.dataTransfer?.files ?? [])]);
23359
+ }
23360
+ return result;
23361
+ }
23362
+ return {
23363
+ handleDrop,
23364
+ hasFilesOrFolders
23365
+ };
23366
+ }
23367
+ function traverseFileTree(item) {
23368
+ let path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
23369
+ return new Promise((resolve, reject) => {
23370
+ if (item.isFile) {
23371
+ const fileEntry = item;
23372
+ fileEntry.file(file => resolve([{
23373
+ file,
23374
+ path
23375
+ }]), reject);
23376
+ } else if (item.isDirectory) {
23377
+ const directoryReader = item.createReader();
23378
+ directoryReader.readEntries(async entries => {
23379
+ const files = [];
23380
+ for (const entry of entries) {
23381
+ files.push(...(await traverseFileTree(entry, appendIfDirectory(path, entry))));
23382
+ }
23383
+ resolve(files);
23384
+ });
23385
+ }
23386
+ });
23387
+ }
23388
+ function appendIfDirectory(path, item) {
23389
+ return item.isDirectory ? `${path}/${item.name}` : path;
23390
+ }
23391
+
23392
+ // Types
23393
+
23337
23394
  const makeVFileInputProps = propsFactory({
23338
23395
  chips: Boolean,
23339
23396
  counter: Boolean,
@@ -23418,6 +23475,10 @@ const VFileInput = genericComponent()({
23418
23475
  const isActive = toRef(() => isFocused.value || props.active);
23419
23476
  const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
23420
23477
  const isDragging = shallowRef(false);
23478
+ const {
23479
+ handleDrop,
23480
+ hasFilesOrFolders
23481
+ } = useFileDrop();
23421
23482
  function onFocus() {
23422
23483
  if (inputRef.value !== document.activeElement) {
23423
23484
  inputRef.value?.focus();
@@ -23451,13 +23512,13 @@ const VFileInput = genericComponent()({
23451
23512
  e.preventDefault();
23452
23513
  isDragging.value = false;
23453
23514
  }
23454
- function onDrop(e) {
23515
+ async function onDrop(e) {
23455
23516
  e.preventDefault();
23456
23517
  e.stopImmediatePropagation();
23457
23518
  isDragging.value = false;
23458
- if (!e.dataTransfer?.files?.length || !inputRef.value) return;
23519
+ if (!inputRef.value || !hasFilesOrFolders(e)) return;
23459
23520
  const dataTransfer = new DataTransfer();
23460
- for (const file of e.dataTransfer.files) {
23521
+ for (const file of await handleDrop(e)) {
23461
23522
  dataTransfer.items.add(file);
23462
23523
  }
23463
23524
  inputRef.value.files = dataTransfer.files;
@@ -29627,7 +29688,7 @@ const VDateInput = genericComponent()({
29627
29688
  if (parts.every(isValid)) {
29628
29689
  if (props.multiple === 'range') {
29629
29690
  const [start, stop] = parts.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
29630
- model.value = adapter.createDateRange(start, stop);
29691
+ model.value = createDateRange(adapter, start, stop);
29631
29692
  } else {
29632
29693
  model.value = parts.map(parseDate);
29633
29694
  }
@@ -29869,6 +29930,9 @@ const VFileUpload = genericComponent()({
29869
29930
  const isDragging = shallowRef(false);
29870
29931
  const vSheetRef = ref(null);
29871
29932
  const inputRef = ref(null);
29933
+ const {
29934
+ handleDrop
29935
+ } = useFileDrop();
29872
29936
  function onDragover(e) {
29873
29937
  e.preventDefault();
29874
29938
  e.stopImmediatePropagation();
@@ -29878,13 +29942,13 @@ const VFileUpload = genericComponent()({
29878
29942
  e.preventDefault();
29879
29943
  isDragging.value = false;
29880
29944
  }
29881
- function onDrop(e) {
29945
+ async function onDrop(e) {
29882
29946
  e.preventDefault();
29883
29947
  e.stopImmediatePropagation();
29884
29948
  isDragging.value = false;
29885
- if (!e.dataTransfer?.files?.length || !inputRef.value) return;
29949
+ if (!inputRef.value) return;
29886
29950
  const dataTransfer = new DataTransfer();
29887
- for (const file of e.dataTransfer.files) {
29951
+ for (const file of await handleDrop(e)) {
29888
29952
  dataTransfer.items.add(file);
29889
29953
  }
29890
29954
  inputRef.value.files = dataTransfer.files;
@@ -32085,7 +32149,7 @@ function createVuetify$1() {
32085
32149
  };
32086
32150
  });
32087
32151
  }
32088
- const version$1 = "3.8.8-master.2025-06-07";
32152
+ const version$1 = "3.8.8-master.2025-06-10";
32089
32153
  createVuetify$1.version = version$1;
32090
32154
 
32091
32155
  // Vue's inject() can only be used in setup
@@ -32383,7 +32447,7 @@ var index = /*#__PURE__*/Object.freeze({
32383
32447
 
32384
32448
  /* eslint-disable local-rules/sort-imports */
32385
32449
 
32386
- const version = "3.8.8-master.2025-06-07";
32450
+ const version = "3.8.8-master.2025-06-10";
32387
32451
 
32388
32452
  /* eslint-disable local-rules/sort-imports */
32389
32453