@vuetify/nightly 3.8.9-master.2025-06-13 → 3.8.9-master.2025-06-17

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 (50) hide show
  1. package/CHANGELOG.md +9 -3
  2. package/dist/json/attributes.json +3382 -3382
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +166 -166
  5. package/dist/json/web-types.json +6389 -6389
  6. package/dist/vuetify-labs.cjs +39 -14
  7. package/dist/vuetify-labs.css +3161 -3157
  8. package/dist/vuetify-labs.d.ts +65 -65
  9. package/dist/vuetify-labs.esm.js +39 -14
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +39 -14
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +38 -14
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3844 -3840
  16. package/dist/vuetify.d.ts +65 -65
  17. package/dist/vuetify.esm.js +38 -14
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +38 -14
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +372 -371
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VBtnGroup/VBtnGroup.css +2 -1
  25. package/lib/components/VBtnGroup/VBtnGroup.sass +2 -1
  26. package/lib/components/VDataTable/VDataTable.css +6 -3
  27. package/lib/components/VDataTable/VDataTable.sass +4 -2
  28. package/lib/components/VOtpInput/VOtpInput.js +17 -1
  29. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  30. package/lib/components/VTextField/VTextField.js +4 -4
  31. package/lib/components/VTextField/VTextField.js.map +1 -1
  32. package/lib/components/VTextarea/VTextarea.js +4 -4
  33. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  34. package/lib/composables/autofocus.d.ts +7 -0
  35. package/lib/composables/autofocus.js +10 -0
  36. package/lib/composables/autofocus.js.map +1 -0
  37. package/lib/composables/group.js +1 -0
  38. package/lib/composables/group.js.map +1 -1
  39. package/lib/composables/hotkey.js +17 -17
  40. package/lib/composables/hotkey.js.map +1 -1
  41. package/lib/composables/intersectionObserver.js +2 -2
  42. package/lib/composables/intersectionObserver.js.map +1 -1
  43. package/lib/composables/selectLink.js +2 -2
  44. package/lib/composables/selectLink.js.map +1 -1
  45. package/lib/entry-bundler.js +1 -1
  46. package/lib/framework.d.ts +65 -65
  47. package/lib/framework.js +1 -1
  48. package/lib/labs/VFileUpload/VFileUploadItem.js +1 -0
  49. package/lib/labs/VFileUpload/VFileUploadItem.js.map +1 -1
  50. package/package.json +1 -1
@@ -101795,43 +101795,39 @@ declare module 'vue' {
101795
101795
  $children?: VNodeChild
101796
101796
  }
101797
101797
  export interface GlobalComponents {
101798
+ VAutocomplete: VAutocomplete
101799
+ VAlert: VAlert
101800
+ VAlertTitle: VAlertTitle
101798
101801
  VAppBar: VAppBar
101799
101802
  VAppBarNavIcon: VAppBarNavIcon
101800
101803
  VAppBarTitle: VAppBarTitle
101801
- VApp: VApp
101802
- VAlert: VAlert
101803
- VAlertTitle: VAlertTitle
101804
101804
  VAvatar: VAvatar
101805
- VAutocomplete: VAutocomplete
101806
- VBreadcrumbs: VBreadcrumbs
101807
- VBreadcrumbsItem: VBreadcrumbsItem
101808
- VBreadcrumbsDivider: VBreadcrumbsDivider
101809
- VBadge: VBadge
101805
+ VApp: VApp
101806
+ VBanner: VBanner
101807
+ VBannerActions: VBannerActions
101808
+ VBannerText: VBannerText
101810
101809
  VBottomSheet: VBottomSheet
101811
- VBottomNavigation: VBottomNavigation
101810
+ VBadge: VBadge
101812
101811
  VBtnToggle: VBtnToggle
101813
- VBtn: VBtn
101812
+ VCarousel: VCarousel
101813
+ VCarouselItem: VCarouselItem
101814
+ VCode: VCode
101814
101815
  VCard: VCard
101815
101816
  VCardActions: VCardActions
101816
101817
  VCardItem: VCardItem
101817
101818
  VCardSubtitle: VCardSubtitle
101818
101819
  VCardText: VCardText
101819
101820
  VCardTitle: VCardTitle
101820
- VBtnGroup: VBtnGroup
101821
+ VChip: VChip
101822
+ VBreadcrumbs: VBreadcrumbs
101823
+ VBreadcrumbsItem: VBreadcrumbsItem
101824
+ VBreadcrumbsDivider: VBreadcrumbsDivider
101821
101825
  VCheckbox: VCheckbox
101822
101826
  VCheckboxBtn: VCheckboxBtn
101823
- VChip: VChip
101824
- VCombobox: VCombobox
101825
- VChipGroup: VChipGroup
101826
- VCode: VCode
101827
- VCarousel: VCarousel
101828
- VCarouselItem: VCarouselItem
101829
- VDatePicker: VDatePicker
101830
- VDatePickerControls: VDatePickerControls
101831
- VDatePickerHeader: VDatePickerHeader
101832
- VDatePickerMonth: VDatePickerMonth
101833
- VDatePickerMonths: VDatePickerMonths
101834
- VDatePickerYears: VDatePickerYears
101827
+ VCounter: VCounter
101828
+ VColorPicker: VColorPicker
101829
+ VBtn: VBtn
101830
+ VBtnGroup: VBtnGroup
101835
101831
  VDataTable: VDataTable
101836
101832
  VDataTableHeaders: VDataTableHeaders
101837
101833
  VDataTableFooter: VDataTableFooter
@@ -101839,30 +101835,37 @@ declare module 'vue' {
101839
101835
  VDataTableRow: VDataTableRow
101840
101836
  VDataTableVirtual: VDataTableVirtual
101841
101837
  VDataTableServer: VDataTableServer
101842
- VColorPicker: VColorPicker
101843
- VCounter: VCounter
101844
101838
  VDialog: VDialog
101839
+ VDatePicker: VDatePicker
101840
+ VDatePickerControls: VDatePickerControls
101841
+ VDatePickerHeader: VDatePickerHeader
101842
+ VDatePickerMonth: VDatePickerMonth
101843
+ VDatePickerMonths: VDatePickerMonths
101844
+ VDatePickerYears: VDatePickerYears
101845
+ VEmptyState: VEmptyState
101846
+ VChipGroup: VChipGroup
101845
101847
  VExpansionPanels: VExpansionPanels
101846
101848
  VExpansionPanel: VExpansionPanel
101847
101849
  VExpansionPanelText: VExpansionPanelText
101848
101850
  VExpansionPanelTitle: VExpansionPanelTitle
101849
- VFab: VFab
101850
- VEmptyState: VEmptyState
101851
+ VFileInput: VFileInput
101851
101852
  VField: VField
101852
101853
  VFieldLabel: VFieldLabel
101854
+ VCombobox: VCombobox
101855
+ VFab: VFab
101853
101856
  VFooter: VFooter
101854
- VInfiniteScroll: VInfiniteScroll
101855
- VFileInput: VFileInput
101856
101857
  VIcon: VIcon
101857
101858
  VComponentIcon: VComponentIcon
101858
101859
  VSvgIcon: VSvgIcon
101859
101860
  VLigatureIcon: VLigatureIcon
101860
101861
  VClassIcon: VClassIcon
101862
+ VInput: VInput
101863
+ VInfiniteScroll: VInfiniteScroll
101861
101864
  VImg: VImg
101862
- VKbd: VKbd
101865
+ VLabel: VLabel
101863
101866
  VItemGroup: VItemGroup
101864
101867
  VItem: VItem
101865
- VInput: VInput
101868
+ VKbd: VKbd
101866
101869
  VList: VList
101867
101870
  VListGroup: VListGroup
101868
101871
  VListImg: VListImg
@@ -101872,78 +101875,75 @@ declare module 'vue' {
101872
101875
  VListItemSubtitle: VListItemSubtitle
101873
101876
  VListItemTitle: VListItemTitle
101874
101877
  VListSubheader: VListSubheader
101875
- VLabel: VLabel
101876
- VMenu: VMenu
101877
101878
  VMessages: VMessages
101878
- VMain: VMain
101879
101879
  VNavigationDrawer: VNavigationDrawer
101880
101880
  VOtpInput: VOtpInput
101881
- VDivider: VDivider
101882
- VOverlay: VOverlay
101881
+ VMain: VMain
101882
+ VMenu: VMenu
101883
101883
  VNumberInput: VNumberInput
101884
101884
  VPagination: VPagination
101885
101885
  VProgressCircular: VProgressCircular
101886
- VRadioGroup: VRadioGroup
101887
101886
  VProgressLinear: VProgressLinear
101888
- VSelect: VSelect
101887
+ VOverlay: VOverlay
101889
101888
  VRating: VRating
101890
101889
  VSelectionControl: VSelectionControl
101890
+ VSlider: VSlider
101891
+ VSelect: VSelect
101892
+ VRadioGroup: VRadioGroup
101893
+ VSheet: VSheet
101891
101894
  VSelectionControlGroup: VSelectionControlGroup
101895
+ VSkeletonLoader: VSkeletonLoader
101896
+ VSnackbar: VSnackbar
101892
101897
  VSlideGroup: VSlideGroup
101893
101898
  VSlideGroupItem: VSlideGroupItem
101894
- VSnackbar: VSnackbar
101895
- VSheet: VSheet
101896
- VSkeletonLoader: VSkeletonLoader
101899
+ VSwitch: VSwitch
101897
101900
  VStepper: VStepper
101898
101901
  VStepperActions: VStepperActions
101899
101902
  VStepperHeader: VStepperHeader
101900
101903
  VStepperItem: VStepperItem
101901
101904
  VStepperWindow: VStepperWindow
101902
101905
  VStepperWindowItem: VStepperWindowItem
101903
- VSlider: VSlider
101904
- VSwitch: VSwitch
101905
- VSystemBar: VSystemBar
101906
- VTable: VTable
101907
101906
  VTab: VTab
101908
101907
  VTabs: VTabs
101909
101908
  VTabsWindow: VTabsWindow
101910
101909
  VTabsWindowItem: VTabsWindowItem
101911
- VTextarea: VTextarea
101910
+ VTable: VTable
101912
101911
  VTextField: VTextField
101913
101912
  VTimeline: VTimeline
101914
101913
  VTimelineItem: VTimelineItem
101915
101914
  VToolbar: VToolbar
101916
101915
  VToolbarTitle: VToolbarTitle
101917
101916
  VToolbarItems: VToolbarItems
101917
+ VTooltip: VTooltip
101918
+ VSystemBar: VSystemBar
101919
+ VTextarea: VTextarea
101918
101920
  VWindow: VWindow
101919
101921
  VWindowItem: VWindowItem
101920
- VTooltip: VTooltip
101921
- VDataIterator: VDataIterator
101922
- VConfirmEdit: VConfirmEdit
101922
+ VBottomNavigation: VBottomNavigation
101923
101923
  VDefaultsProvider: VDefaultsProvider
101924
- VForm: VForm
101924
+ VConfirmEdit: VConfirmEdit
101925
+ VHover: VHover
101925
101926
  VContainer: VContainer
101926
101927
  VCol: VCol
101927
101928
  VRow: VRow
101928
101929
  VSpacer: VSpacer
101929
- VHover: VHover
101930
+ VForm: VForm
101930
101931
  VLayout: VLayout
101931
101932
  VLayoutItem: VLayoutItem
101932
101933
  VLazy: VLazy
101933
101934
  VLocaleProvider: VLocaleProvider
101934
101935
  VNoSsr: VNoSsr
101935
- VParallax: VParallax
101936
101936
  VRadio: VRadio
101937
+ VParallax: VParallax
101938
+ VRangeSlider: VRangeSlider
101937
101939
  VResponsive: VResponsive
101938
101940
  VSnackbarQueue: VSnackbarQueue
101939
101941
  VSparkline: VSparkline
101940
101942
  VSpeedDial: VSpeedDial
101941
- VBanner: VBanner
101942
- VBannerActions: VBannerActions
101943
- VBannerText: VBannerText
101943
+ VVirtualScroll: VVirtualScroll
101944
101944
  VThemeProvider: VThemeProvider
101945
101945
  VValidation: VValidation
101946
- VVirtualScroll: VVirtualScroll
101946
+ VDivider: VDivider
101947
101947
  VFabTransition: VFabTransition
101948
101948
  VDialogBottomTransition: VDialogBottomTransition
101949
101949
  VDialogTopTransition: VDialogTopTransition
@@ -101960,7 +101960,7 @@ declare module 'vue' {
101960
101960
  VExpandTransition: VExpandTransition
101961
101961
  VExpandXTransition: VExpandXTransition
101962
101962
  VDialogTransition: VDialogTransition
101963
- VRangeSlider: VRangeSlider
101963
+ VDataIterator: VDataIterator
101964
101964
  VCalendar: VCalendar
101965
101965
  VCalendarDay: VCalendarDay
101966
101966
  VCalendarHeader: VCalendarHeader
@@ -101968,21 +101968,21 @@ declare module 'vue' {
101968
101968
  VCalendarIntervalEvent: VCalendarIntervalEvent
101969
101969
  VCalendarMonthDay: VCalendarMonthDay
101970
101970
  VIconBtn: VIconBtn
101971
+ VFileUpload: VFileUpload
101972
+ VFileUploadItem: VFileUploadItem
101973
+ VColorInput: VColorInput
101974
+ VPicker: VPicker
101975
+ VPickerTitle: VPickerTitle
101971
101976
  VStepperVertical: VStepperVertical
101972
101977
  VStepperVerticalItem: VStepperVerticalItem
101973
101978
  VStepperVerticalActions: VStepperVerticalActions
101974
- VPicker: VPicker
101975
- VPickerTitle: VPickerTitle
101976
- VTimePicker: VTimePicker
101977
- VTimePickerClock: VTimePickerClock
101978
- VTimePickerControls: VTimePickerControls
101979
- VFileUpload: VFileUpload
101980
- VFileUploadItem: VFileUploadItem
101981
101979
  VTreeview: VTreeview
101982
101980
  VTreeviewItem: VTreeviewItem
101983
101981
  VTreeviewGroup: VTreeviewGroup
101982
+ VTimePicker: VTimePicker
101983
+ VTimePickerClock: VTimePickerClock
101984
+ VTimePickerControls: VTimePickerControls
101984
101985
  VDateInput: VDateInput
101985
101986
  VPullToRefresh: VPullToRefresh
101986
- VColorInput: VColorInput
101987
101987
  }
101988
101988
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.9-master.2025-06-13
2
+ * Vuetify v3.8.9-master.2025-06-17
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -4400,6 +4400,7 @@ function useGroup(props, injectKey) {
4400
4400
  } else {
4401
4401
  const isSelected = selected.value.includes(id);
4402
4402
  if (props.mandatory && isSelected) return;
4403
+ if (!isSelected && !value) return;
4403
4404
  selected.value = value ?? !isSelected ? [id] : [];
4404
4405
  }
4405
4406
  }
@@ -4834,7 +4835,7 @@ function useIntersectionObserver(callback, options) {
4834
4835
  const observer = new IntersectionObserver(entries => {
4835
4836
  isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
4836
4837
  }, options);
4837
- onBeforeUnmount(() => {
4838
+ onScopeDispose(() => {
4838
4839
  observer.disconnect();
4839
4840
  });
4840
4841
  watch(intersectionRef, (newValue, oldValue) => {
@@ -5365,9 +5366,9 @@ function useBackButton(router, cb) {
5365
5366
 
5366
5367
  function useSelectLink(link, select) {
5367
5368
  watch(() => link.isActive?.value, isActive => {
5368
- if (link.isLink.value && isActive && select) {
5369
+ if (link.isLink.value && isActive != null && select) {
5369
5370
  nextTick(() => {
5370
- select(true);
5371
+ select(isActive);
5371
5372
  });
5372
5373
  }
5373
5374
  }, {
@@ -12064,6 +12065,16 @@ const VField = genericComponent()({
12064
12065
  }
12065
12066
  });
12066
12067
 
12068
+ function useAutofocus(props) {
12069
+ function onIntersect(isIntersecting, entries) {
12070
+ if (!props.autofocus || !isIntersecting) return;
12071
+ entries[0].target?.focus?.();
12072
+ }
12073
+ return {
12074
+ onIntersect
12075
+ };
12076
+ }
12077
+
12067
12078
  // Types
12068
12079
 
12069
12080
  const activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];
@@ -12110,6 +12121,9 @@ const VTextField = genericComponent()({
12110
12121
  focus,
12111
12122
  blur
12112
12123
  } = useFocus(props);
12124
+ const {
12125
+ onIntersect
12126
+ } = useAutofocus(props);
12113
12127
  const counterValue = computed(() => {
12114
12128
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : (model.value ?? '').toString().length;
12115
12129
  });
@@ -12119,10 +12133,6 @@ const VTextField = genericComponent()({
12119
12133
  return props.counter;
12120
12134
  });
12121
12135
  const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
12122
- function onIntersect(isIntersecting, entries) {
12123
- if (!props.autofocus || !isIntersecting) return;
12124
- entries[0].target?.focus?.();
12125
- }
12126
12136
  const vInputRef = ref();
12127
12137
  const vFieldRef = ref();
12128
12138
  const inputRef = ref();
@@ -25368,6 +25378,21 @@ const VOtpInput = genericComponent()({
25368
25378
  const contentRef = ref();
25369
25379
  const inputRef = ref([]);
25370
25380
  const current = computed(() => inputRef.value[focusIndex.value]);
25381
+ const intersectScope = effectScope();
25382
+ intersectScope.run(() => {
25383
+ const {
25384
+ intersectionRef,
25385
+ isIntersecting
25386
+ } = useIntersectionObserver();
25387
+ watch(isIntersecting, v => {
25388
+ if (!v) return;
25389
+ intersectionRef.value?.focus();
25390
+ intersectScope.stop();
25391
+ });
25392
+ watchEffect(() => {
25393
+ intersectionRef.value = inputRef.value[0];
25394
+ });
25395
+ });
25371
25396
  function onInput() {
25372
25397
  // The maxlength attribute doesn't work for the number type input, so the text type is used.
25373
25398
  // The following logic simulates the behavior of a number input.
@@ -28114,6 +28139,9 @@ const VTextarea = genericComponent()({
28114
28139
  focus,
28115
28140
  blur
28116
28141
  } = useFocus(props);
28142
+ const {
28143
+ onIntersect
28144
+ } = useAutofocus(props);
28117
28145
  const counterValue = computed(() => {
28118
28146
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : (model.value || '').toString().length;
28119
28147
  });
@@ -28122,10 +28150,6 @@ const VTextarea = genericComponent()({
28122
28150
  if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;
28123
28151
  return props.counter;
28124
28152
  });
28125
- function onIntersect(isIntersecting, entries) {
28126
- if (!props.autofocus || !isIntersecting) return;
28127
- entries[0].target?.focus?.();
28128
- }
28129
28153
  const vInputRef = ref();
28130
28154
  const vFieldRef = ref();
28131
28155
  const controlHeight = shallowRef('');
@@ -29842,6 +29866,7 @@ const VFileUploadItem = genericComponent()({
29842
29866
  "class": "v-file-upload-item"
29843
29867
  }), {
29844
29868
  ...slots,
29869
+ title: () => props?.title ?? props.file?.name,
29845
29870
  prepend: slotProps => createElementVNode(Fragment, null, [!slots.prepend ? createVNode(VAvatar, {
29846
29871
  "icon": props.fileIcon,
29847
29872
  "image": preview.value,
@@ -32170,7 +32195,7 @@ function createVuetify$1() {
32170
32195
  };
32171
32196
  });
32172
32197
  }
32173
- const version$1 = "3.8.9-master.2025-06-13";
32198
+ const version$1 = "3.8.9-master.2025-06-17";
32174
32199
  createVuetify$1.version = version$1;
32175
32200
 
32176
32201
  // Vue's inject() can only be used in setup
@@ -32468,7 +32493,7 @@ var index = /*#__PURE__*/Object.freeze({
32468
32493
 
32469
32494
  /* eslint-disable local-rules/sort-imports */
32470
32495
 
32471
- const version = "3.8.9-master.2025-06-13";
32496
+ const version = "3.8.9-master.2025-06-17";
32472
32497
 
32473
32498
  /* eslint-disable local-rules/sort-imports */
32474
32499