@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
package/dist/vuetify.d.ts CHANGED
@@ -85908,43 +85908,39 @@ declare module 'vue' {
85908
85908
  $children?: VNodeChild
85909
85909
  }
85910
85910
  export interface GlobalComponents {
85911
+ VAutocomplete: VAutocomplete
85912
+ VAlert: VAlert
85913
+ VAlertTitle: VAlertTitle
85911
85914
  VAppBar: VAppBar
85912
85915
  VAppBarNavIcon: VAppBarNavIcon
85913
85916
  VAppBarTitle: VAppBarTitle
85914
- VApp: VApp
85915
- VAlert: VAlert
85916
- VAlertTitle: VAlertTitle
85917
85917
  VAvatar: VAvatar
85918
- VAutocomplete: VAutocomplete
85919
- VBreadcrumbs: VBreadcrumbs
85920
- VBreadcrumbsItem: VBreadcrumbsItem
85921
- VBreadcrumbsDivider: VBreadcrumbsDivider
85922
- VBadge: VBadge
85918
+ VApp: VApp
85919
+ VBanner: VBanner
85920
+ VBannerActions: VBannerActions
85921
+ VBannerText: VBannerText
85923
85922
  VBottomSheet: VBottomSheet
85924
- VBottomNavigation: VBottomNavigation
85923
+ VBadge: VBadge
85925
85924
  VBtnToggle: VBtnToggle
85926
- VBtn: VBtn
85925
+ VCarousel: VCarousel
85926
+ VCarouselItem: VCarouselItem
85927
+ VCode: VCode
85927
85928
  VCard: VCard
85928
85929
  VCardActions: VCardActions
85929
85930
  VCardItem: VCardItem
85930
85931
  VCardSubtitle: VCardSubtitle
85931
85932
  VCardText: VCardText
85932
85933
  VCardTitle: VCardTitle
85933
- VBtnGroup: VBtnGroup
85934
+ VChip: VChip
85935
+ VBreadcrumbs: VBreadcrumbs
85936
+ VBreadcrumbsItem: VBreadcrumbsItem
85937
+ VBreadcrumbsDivider: VBreadcrumbsDivider
85934
85938
  VCheckbox: VCheckbox
85935
85939
  VCheckboxBtn: VCheckboxBtn
85936
- VChip: VChip
85937
- VCombobox: VCombobox
85938
- VChipGroup: VChipGroup
85939
- VCode: VCode
85940
- VCarousel: VCarousel
85941
- VCarouselItem: VCarouselItem
85942
- VDatePicker: VDatePicker
85943
- VDatePickerControls: VDatePickerControls
85944
- VDatePickerHeader: VDatePickerHeader
85945
- VDatePickerMonth: VDatePickerMonth
85946
- VDatePickerMonths: VDatePickerMonths
85947
- VDatePickerYears: VDatePickerYears
85940
+ VCounter: VCounter
85941
+ VColorPicker: VColorPicker
85942
+ VBtn: VBtn
85943
+ VBtnGroup: VBtnGroup
85948
85944
  VDataTable: VDataTable
85949
85945
  VDataTableHeaders: VDataTableHeaders
85950
85946
  VDataTableFooter: VDataTableFooter
@@ -85952,30 +85948,37 @@ declare module 'vue' {
85952
85948
  VDataTableRow: VDataTableRow
85953
85949
  VDataTableVirtual: VDataTableVirtual
85954
85950
  VDataTableServer: VDataTableServer
85955
- VColorPicker: VColorPicker
85956
- VCounter: VCounter
85957
85951
  VDialog: VDialog
85952
+ VDatePicker: VDatePicker
85953
+ VDatePickerControls: VDatePickerControls
85954
+ VDatePickerHeader: VDatePickerHeader
85955
+ VDatePickerMonth: VDatePickerMonth
85956
+ VDatePickerMonths: VDatePickerMonths
85957
+ VDatePickerYears: VDatePickerYears
85958
+ VEmptyState: VEmptyState
85959
+ VChipGroup: VChipGroup
85958
85960
  VExpansionPanels: VExpansionPanels
85959
85961
  VExpansionPanel: VExpansionPanel
85960
85962
  VExpansionPanelText: VExpansionPanelText
85961
85963
  VExpansionPanelTitle: VExpansionPanelTitle
85962
- VFab: VFab
85963
- VEmptyState: VEmptyState
85964
+ VFileInput: VFileInput
85964
85965
  VField: VField
85965
85966
  VFieldLabel: VFieldLabel
85967
+ VCombobox: VCombobox
85968
+ VFab: VFab
85966
85969
  VFooter: VFooter
85967
- VInfiniteScroll: VInfiniteScroll
85968
- VFileInput: VFileInput
85969
85970
  VIcon: VIcon
85970
85971
  VComponentIcon: VComponentIcon
85971
85972
  VSvgIcon: VSvgIcon
85972
85973
  VLigatureIcon: VLigatureIcon
85973
85974
  VClassIcon: VClassIcon
85975
+ VInput: VInput
85976
+ VInfiniteScroll: VInfiniteScroll
85974
85977
  VImg: VImg
85975
- VKbd: VKbd
85978
+ VLabel: VLabel
85976
85979
  VItemGroup: VItemGroup
85977
85980
  VItem: VItem
85978
- VInput: VInput
85981
+ VKbd: VKbd
85979
85982
  VList: VList
85980
85983
  VListGroup: VListGroup
85981
85984
  VListImg: VListImg
@@ -85985,78 +85988,75 @@ declare module 'vue' {
85985
85988
  VListItemSubtitle: VListItemSubtitle
85986
85989
  VListItemTitle: VListItemTitle
85987
85990
  VListSubheader: VListSubheader
85988
- VLabel: VLabel
85989
- VMenu: VMenu
85990
85991
  VMessages: VMessages
85991
- VMain: VMain
85992
85992
  VNavigationDrawer: VNavigationDrawer
85993
85993
  VOtpInput: VOtpInput
85994
- VDivider: VDivider
85995
- VOverlay: VOverlay
85994
+ VMain: VMain
85995
+ VMenu: VMenu
85996
85996
  VNumberInput: VNumberInput
85997
85997
  VPagination: VPagination
85998
85998
  VProgressCircular: VProgressCircular
85999
- VRadioGroup: VRadioGroup
86000
85999
  VProgressLinear: VProgressLinear
86001
- VSelect: VSelect
86000
+ VOverlay: VOverlay
86002
86001
  VRating: VRating
86003
86002
  VSelectionControl: VSelectionControl
86003
+ VSlider: VSlider
86004
+ VSelect: VSelect
86005
+ VRadioGroup: VRadioGroup
86006
+ VSheet: VSheet
86004
86007
  VSelectionControlGroup: VSelectionControlGroup
86008
+ VSkeletonLoader: VSkeletonLoader
86009
+ VSnackbar: VSnackbar
86005
86010
  VSlideGroup: VSlideGroup
86006
86011
  VSlideGroupItem: VSlideGroupItem
86007
- VSnackbar: VSnackbar
86008
- VSheet: VSheet
86009
- VSkeletonLoader: VSkeletonLoader
86012
+ VSwitch: VSwitch
86010
86013
  VStepper: VStepper
86011
86014
  VStepperActions: VStepperActions
86012
86015
  VStepperHeader: VStepperHeader
86013
86016
  VStepperItem: VStepperItem
86014
86017
  VStepperWindow: VStepperWindow
86015
86018
  VStepperWindowItem: VStepperWindowItem
86016
- VSlider: VSlider
86017
- VSwitch: VSwitch
86018
- VSystemBar: VSystemBar
86019
- VTable: VTable
86020
86019
  VTab: VTab
86021
86020
  VTabs: VTabs
86022
86021
  VTabsWindow: VTabsWindow
86023
86022
  VTabsWindowItem: VTabsWindowItem
86024
- VTextarea: VTextarea
86023
+ VTable: VTable
86025
86024
  VTextField: VTextField
86026
86025
  VTimeline: VTimeline
86027
86026
  VTimelineItem: VTimelineItem
86028
86027
  VToolbar: VToolbar
86029
86028
  VToolbarTitle: VToolbarTitle
86030
86029
  VToolbarItems: VToolbarItems
86030
+ VTooltip: VTooltip
86031
+ VSystemBar: VSystemBar
86032
+ VTextarea: VTextarea
86031
86033
  VWindow: VWindow
86032
86034
  VWindowItem: VWindowItem
86033
- VTooltip: VTooltip
86034
- VDataIterator: VDataIterator
86035
- VConfirmEdit: VConfirmEdit
86035
+ VBottomNavigation: VBottomNavigation
86036
86036
  VDefaultsProvider: VDefaultsProvider
86037
- VForm: VForm
86037
+ VConfirmEdit: VConfirmEdit
86038
+ VHover: VHover
86038
86039
  VContainer: VContainer
86039
86040
  VCol: VCol
86040
86041
  VRow: VRow
86041
86042
  VSpacer: VSpacer
86042
- VHover: VHover
86043
+ VForm: VForm
86043
86044
  VLayout: VLayout
86044
86045
  VLayoutItem: VLayoutItem
86045
86046
  VLazy: VLazy
86046
86047
  VLocaleProvider: VLocaleProvider
86047
86048
  VNoSsr: VNoSsr
86048
- VParallax: VParallax
86049
86049
  VRadio: VRadio
86050
+ VParallax: VParallax
86051
+ VRangeSlider: VRangeSlider
86050
86052
  VResponsive: VResponsive
86051
86053
  VSnackbarQueue: VSnackbarQueue
86052
86054
  VSparkline: VSparkline
86053
86055
  VSpeedDial: VSpeedDial
86054
- VBanner: VBanner
86055
- VBannerActions: VBannerActions
86056
- VBannerText: VBannerText
86056
+ VVirtualScroll: VVirtualScroll
86057
86057
  VThemeProvider: VThemeProvider
86058
86058
  VValidation: VValidation
86059
- VVirtualScroll: VVirtualScroll
86059
+ VDivider: VDivider
86060
86060
  VFabTransition: VFabTransition
86061
86061
  VDialogBottomTransition: VDialogBottomTransition
86062
86062
  VDialogTopTransition: VDialogTopTransition
@@ -86073,7 +86073,7 @@ declare module 'vue' {
86073
86073
  VExpandTransition: VExpandTransition
86074
86074
  VExpandXTransition: VExpandXTransition
86075
86075
  VDialogTransition: VDialogTransition
86076
- VRangeSlider: VRangeSlider
86076
+ VDataIterator: VDataIterator
86077
86077
  VCalendar: VCalendar
86078
86078
  VCalendarDay: VCalendarDay
86079
86079
  VCalendarHeader: VCalendarHeader
@@ -86081,21 +86081,21 @@ declare module 'vue' {
86081
86081
  VCalendarIntervalEvent: VCalendarIntervalEvent
86082
86082
  VCalendarMonthDay: VCalendarMonthDay
86083
86083
  VIconBtn: VIconBtn
86084
+ VFileUpload: VFileUpload
86085
+ VFileUploadItem: VFileUploadItem
86086
+ VColorInput: VColorInput
86087
+ VPicker: VPicker
86088
+ VPickerTitle: VPickerTitle
86084
86089
  VStepperVertical: VStepperVertical
86085
86090
  VStepperVerticalItem: VStepperVerticalItem
86086
86091
  VStepperVerticalActions: VStepperVerticalActions
86087
- VPicker: VPicker
86088
- VPickerTitle: VPickerTitle
86089
- VTimePicker: VTimePicker
86090
- VTimePickerClock: VTimePickerClock
86091
- VTimePickerControls: VTimePickerControls
86092
- VFileUpload: VFileUpload
86093
- VFileUploadItem: VFileUploadItem
86094
86092
  VTreeview: VTreeview
86095
86093
  VTreeviewItem: VTreeviewItem
86096
86094
  VTreeviewGroup: VTreeviewGroup
86095
+ VTimePicker: VTimePicker
86096
+ VTimePickerClock: VTimePickerClock
86097
+ VTimePickerControls: VTimePickerControls
86097
86098
  VDateInput: VDateInput
86098
86099
  VPullToRefresh: VPullToRefresh
86099
- VColorInput: VColorInput
86100
86100
  }
86101
86101
  }
@@ -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
  */
@@ -4887,6 +4887,7 @@ function useGroup(props, injectKey) {
4887
4887
  } else {
4888
4888
  const isSelected = selected.value.includes(id);
4889
4889
  if (props.mandatory && isSelected) return;
4890
+ if (!isSelected && !value) return;
4890
4891
  selected.value = value ?? !isSelected ? [id] : [];
4891
4892
  }
4892
4893
  }
@@ -5112,7 +5113,7 @@ function useIntersectionObserver(callback, options) {
5112
5113
  const observer = new IntersectionObserver(entries => {
5113
5114
  isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
5114
5115
  }, options);
5115
- onBeforeUnmount(() => {
5116
+ onScopeDispose(() => {
5116
5117
  observer.disconnect();
5117
5118
  });
5118
5119
  watch(intersectionRef, (newValue, oldValue) => {
@@ -5643,9 +5644,9 @@ function useBackButton(router, cb) {
5643
5644
 
5644
5645
  function useSelectLink(link, select) {
5645
5646
  watch(() => link.isActive?.value, isActive => {
5646
- if (link.isLink.value && isActive && select) {
5647
+ if (link.isLink.value && isActive != null && select) {
5647
5648
  nextTick(() => {
5648
- select(true);
5649
+ select(isActive);
5649
5650
  });
5650
5651
  }
5651
5652
  }, {
@@ -12342,6 +12343,16 @@ const VField = genericComponent()({
12342
12343
  }
12343
12344
  });
12344
12345
 
12346
+ function useAutofocus(props) {
12347
+ function onIntersect(isIntersecting, entries) {
12348
+ if (!props.autofocus || !isIntersecting) return;
12349
+ entries[0].target?.focus?.();
12350
+ }
12351
+ return {
12352
+ onIntersect
12353
+ };
12354
+ }
12355
+
12345
12356
  // Types
12346
12357
 
12347
12358
  const activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];
@@ -12388,6 +12399,9 @@ const VTextField = genericComponent()({
12388
12399
  focus,
12389
12400
  blur
12390
12401
  } = useFocus(props);
12402
+ const {
12403
+ onIntersect
12404
+ } = useAutofocus(props);
12391
12405
  const counterValue = computed(() => {
12392
12406
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : (model.value ?? '').toString().length;
12393
12407
  });
@@ -12397,10 +12411,6 @@ const VTextField = genericComponent()({
12397
12411
  return props.counter;
12398
12412
  });
12399
12413
  const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
12400
- function onIntersect(isIntersecting, entries) {
12401
- if (!props.autofocus || !isIntersecting) return;
12402
- entries[0].target?.focus?.();
12403
- }
12404
12414
  const vInputRef = ref();
12405
12415
  const vFieldRef = ref();
12406
12416
  const inputRef = ref();
@@ -25646,6 +25656,21 @@ const VOtpInput = genericComponent()({
25646
25656
  const contentRef = ref();
25647
25657
  const inputRef = ref([]);
25648
25658
  const current = computed(() => inputRef.value[focusIndex.value]);
25659
+ const intersectScope = effectScope();
25660
+ intersectScope.run(() => {
25661
+ const {
25662
+ intersectionRef,
25663
+ isIntersecting
25664
+ } = useIntersectionObserver();
25665
+ watch(isIntersecting, v => {
25666
+ if (!v) return;
25667
+ intersectionRef.value?.focus();
25668
+ intersectScope.stop();
25669
+ });
25670
+ watchEffect(() => {
25671
+ intersectionRef.value = inputRef.value[0];
25672
+ });
25673
+ });
25649
25674
  function onInput() {
25650
25675
  // The maxlength attribute doesn't work for the number type input, so the text type is used.
25651
25676
  // The following logic simulates the behavior of a number input.
@@ -28392,6 +28417,9 @@ const VTextarea = genericComponent()({
28392
28417
  focus,
28393
28418
  blur
28394
28419
  } = useFocus(props);
28420
+ const {
28421
+ onIntersect
28422
+ } = useAutofocus(props);
28395
28423
  const counterValue = computed(() => {
28396
28424
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : (model.value || '').toString().length;
28397
28425
  });
@@ -28400,10 +28428,6 @@ const VTextarea = genericComponent()({
28400
28428
  if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;
28401
28429
  return props.counter;
28402
28430
  });
28403
- function onIntersect(isIntersecting, entries) {
28404
- if (!props.autofocus || !isIntersecting) return;
28405
- entries[0].target?.focus?.();
28406
- }
28407
28431
  const vInputRef = ref();
28408
28432
  const vFieldRef = ref();
28409
28433
  const controlHeight = shallowRef('');
@@ -29483,7 +29507,7 @@ function createVuetify$1() {
29483
29507
  };
29484
29508
  });
29485
29509
  }
29486
- const version$1 = "3.8.9-master.2025-06-13";
29510
+ const version$1 = "3.8.9-master.2025-06-17";
29487
29511
  createVuetify$1.version = version$1;
29488
29512
 
29489
29513
  // Vue's inject() can only be used in setup
@@ -29508,7 +29532,7 @@ const createVuetify = function () {
29508
29532
  ...options
29509
29533
  });
29510
29534
  };
29511
- const version = "3.8.9-master.2025-06-13";
29535
+ const version = "3.8.9-master.2025-06-17";
29512
29536
  createVuetify.version = version;
29513
29537
 
29514
29538
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };