@vuetify/nightly 3.8.9-master.2025-06-14 → 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 (44) hide show
  1. package/CHANGELOG.md +6 -3
  2. package/dist/json/attributes.json +3488 -3488
  3. package/dist/json/importMap-labs.json +26 -26
  4. package/dist/json/importMap.json +146 -146
  5. package/dist/json/web-types.json +5923 -5923
  6. package/dist/vuetify-labs.cjs +38 -14
  7. package/dist/vuetify-labs.css +3770 -3769
  8. package/dist/vuetify-labs.d.ts +55 -55
  9. package/dist/vuetify-labs.esm.js +38 -14
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +38 -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 +6029 -6028
  16. package/dist/vuetify.d.ts +55 -55
  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/VOtpInput/VOtpInput.js +17 -1
  27. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  28. package/lib/components/VTextField/VTextField.js +4 -4
  29. package/lib/components/VTextField/VTextField.js.map +1 -1
  30. package/lib/components/VTextarea/VTextarea.js +4 -4
  31. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  32. package/lib/composables/autofocus.d.ts +7 -0
  33. package/lib/composables/autofocus.js +10 -0
  34. package/lib/composables/autofocus.js.map +1 -0
  35. package/lib/composables/group.js +1 -0
  36. package/lib/composables/group.js.map +1 -1
  37. package/lib/composables/intersectionObserver.js +2 -2
  38. package/lib/composables/intersectionObserver.js.map +1 -1
  39. package/lib/composables/selectLink.js +2 -2
  40. package/lib/composables/selectLink.js.map +1 -1
  41. package/lib/entry-bundler.js +1 -1
  42. package/lib/framework.d.ts +55 -55
  43. package/lib/framework.js +1 -1
  44. package/package.json +1 -1
package/dist/vuetify.d.ts CHANGED
@@ -85908,41 +85908,39 @@ declare module 'vue' {
85908
85908
  $children?: VNodeChild
85909
85909
  }
85910
85910
  export interface GlobalComponents {
85911
+ VAutocomplete: VAutocomplete
85911
85912
  VAlert: VAlert
85912
85913
  VAlertTitle: VAlertTitle
85913
85914
  VAppBar: VAppBar
85914
85915
  VAppBarNavIcon: VAppBarNavIcon
85915
85916
  VAppBarTitle: VAppBarTitle
85917
+ VAvatar: VAvatar
85916
85918
  VApp: VApp
85917
- VAutocomplete: VAutocomplete
85918
85919
  VBanner: VBanner
85919
85920
  VBannerActions: VBannerActions
85920
85921
  VBannerText: VBannerText
85921
- VBottomNavigation: VBottomNavigation
85922
+ VBottomSheet: VBottomSheet
85922
85923
  VBadge: VBadge
85923
- VBtnGroup: VBtnGroup
85924
- VAvatar: VAvatar
85924
+ VBtnToggle: VBtnToggle
85925
+ VCarousel: VCarousel
85926
+ VCarouselItem: VCarouselItem
85927
+ VCode: VCode
85925
85928
  VCard: VCard
85926
85929
  VCardActions: VCardActions
85927
85930
  VCardItem: VCardItem
85928
85931
  VCardSubtitle: VCardSubtitle
85929
85932
  VCardText: VCardText
85930
85933
  VCardTitle: VCardTitle
85931
- VBtnToggle: VBtnToggle
85932
- VBottomSheet: VBottomSheet
85934
+ VChip: VChip
85933
85935
  VBreadcrumbs: VBreadcrumbs
85934
85936
  VBreadcrumbsItem: VBreadcrumbsItem
85935
85937
  VBreadcrumbsDivider: VBreadcrumbsDivider
85936
85938
  VCheckbox: VCheckbox
85937
85939
  VCheckboxBtn: VCheckboxBtn
85938
- VBtn: VBtn
85939
- VCarousel: VCarousel
85940
- VCarouselItem: VCarouselItem
85941
- VChip: VChip
85942
- VCode: VCode
85943
- VCombobox: VCombobox
85944
85940
  VCounter: VCounter
85945
85941
  VColorPicker: VColorPicker
85942
+ VBtn: VBtn
85943
+ VBtnGroup: VBtnGroup
85946
85944
  VDataTable: VDataTable
85947
85945
  VDataTableHeaders: VDataTableHeaders
85948
85946
  VDataTableFooter: VDataTableFooter
@@ -85950,40 +85948,37 @@ declare module 'vue' {
85950
85948
  VDataTableRow: VDataTableRow
85951
85949
  VDataTableVirtual: VDataTableVirtual
85952
85950
  VDataTableServer: VDataTableServer
85953
- VChipGroup: VChipGroup
85951
+ VDialog: VDialog
85954
85952
  VDatePicker: VDatePicker
85955
85953
  VDatePickerControls: VDatePickerControls
85956
85954
  VDatePickerHeader: VDatePickerHeader
85957
85955
  VDatePickerMonth: VDatePickerMonth
85958
85956
  VDatePickerMonths: VDatePickerMonths
85959
85957
  VDatePickerYears: VDatePickerYears
85960
- VDialog: VDialog
85958
+ VEmptyState: VEmptyState
85959
+ VChipGroup: VChipGroup
85961
85960
  VExpansionPanels: VExpansionPanels
85962
85961
  VExpansionPanel: VExpansionPanel
85963
85962
  VExpansionPanelText: VExpansionPanelText
85964
85963
  VExpansionPanelTitle: VExpansionPanelTitle
85965
- VDivider: VDivider
85966
- VFooter: VFooter
85967
- VFab: VFab
85964
+ VFileInput: VFileInput
85968
85965
  VField: VField
85969
85966
  VFieldLabel: VFieldLabel
85970
- VEmptyState: VEmptyState
85971
- VFileInput: VFileInput
85967
+ VCombobox: VCombobox
85968
+ VFab: VFab
85969
+ VFooter: VFooter
85972
85970
  VIcon: VIcon
85973
85971
  VComponentIcon: VComponentIcon
85974
85972
  VSvgIcon: VSvgIcon
85975
85973
  VLigatureIcon: VLigatureIcon
85976
85974
  VClassIcon: VClassIcon
85977
- VImg: VImg
85975
+ VInput: VInput
85978
85976
  VInfiniteScroll: VInfiniteScroll
85977
+ VImg: VImg
85978
+ VLabel: VLabel
85979
85979
  VItemGroup: VItemGroup
85980
85980
  VItem: VItem
85981
- VInput: VInput
85982
- VMenu: VMenu
85983
85981
  VKbd: VKbd
85984
- VLabel: VLabel
85985
- VNavigationDrawer: VNavigationDrawer
85986
- VMessages: VMessages
85987
85982
  VList: VList
85988
85983
  VListGroup: VListGroup
85989
85984
  VListImg: VListImg
@@ -85993,56 +85988,59 @@ declare module 'vue' {
85993
85988
  VListItemSubtitle: VListItemSubtitle
85994
85989
  VListItemTitle: VListItemTitle
85995
85990
  VListSubheader: VListSubheader
85996
- VNumberInput: VNumberInput
85991
+ VMessages: VMessages
85992
+ VNavigationDrawer: VNavigationDrawer
85997
85993
  VOtpInput: VOtpInput
85998
- VOverlay: VOverlay
85994
+ VMain: VMain
85995
+ VMenu: VMenu
85996
+ VNumberInput: VNumberInput
85997
+ VPagination: VPagination
85999
85998
  VProgressCircular: VProgressCircular
86000
- VRadioGroup: VRadioGroup
86001
85999
  VProgressLinear: VProgressLinear
86002
- VPagination: VPagination
86003
- VSelect: VSelect
86004
- VSelectionControl: VSelectionControl
86005
- VSelectionControlGroup: VSelectionControlGroup
86000
+ VOverlay: VOverlay
86006
86001
  VRating: VRating
86002
+ VSelectionControl: VSelectionControl
86003
+ VSlider: VSlider
86004
+ VSelect: VSelect
86005
+ VRadioGroup: VRadioGroup
86007
86006
  VSheet: VSheet
86007
+ VSelectionControlGroup: VSelectionControlGroup
86008
86008
  VSkeletonLoader: VSkeletonLoader
86009
+ VSnackbar: VSnackbar
86009
86010
  VSlideGroup: VSlideGroup
86010
86011
  VSlideGroupItem: VSlideGroupItem
86012
+ VSwitch: VSwitch
86011
86013
  VStepper: VStepper
86012
86014
  VStepperActions: VStepperActions
86013
86015
  VStepperHeader: VStepperHeader
86014
86016
  VStepperItem: VStepperItem
86015
86017
  VStepperWindow: VStepperWindow
86016
86018
  VStepperWindowItem: VStepperWindowItem
86017
- VSnackbar: VSnackbar
86018
- VSlider: VSlider
86019
- VSystemBar: VSystemBar
86020
- VSwitch: VSwitch
86021
- VTextarea: VTextarea
86022
- VTable: VTable
86023
- VTextField: VTextField
86024
86019
  VTab: VTab
86025
86020
  VTabs: VTabs
86026
86021
  VTabsWindow: VTabsWindow
86027
86022
  VTabsWindowItem: VTabsWindowItem
86028
- VTooltip: VTooltip
86029
- VWindow: VWindow
86030
- VWindowItem: VWindowItem
86023
+ VTable: VTable
86024
+ VTextField: VTextField
86031
86025
  VTimeline: VTimeline
86032
86026
  VTimelineItem: VTimelineItem
86033
86027
  VToolbar: VToolbar
86034
86028
  VToolbarTitle: VToolbarTitle
86035
86029
  VToolbarItems: VToolbarItems
86036
- VMain: VMain
86037
- VConfirmEdit: VConfirmEdit
86038
- VDataIterator: VDataIterator
86030
+ VTooltip: VTooltip
86031
+ VSystemBar: VSystemBar
86032
+ VTextarea: VTextarea
86033
+ VWindow: VWindow
86034
+ VWindowItem: VWindowItem
86035
+ VBottomNavigation: VBottomNavigation
86039
86036
  VDefaultsProvider: VDefaultsProvider
86040
- VForm: VForm
86037
+ VConfirmEdit: VConfirmEdit
86038
+ VHover: VHover
86041
86039
  VContainer: VContainer
86042
86040
  VCol: VCol
86043
86041
  VRow: VRow
86044
86042
  VSpacer: VSpacer
86045
- VHover: VHover
86043
+ VForm: VForm
86046
86044
  VLayout: VLayout
86047
86045
  VLayoutItem: VLayoutItem
86048
86046
  VLazy: VLazy
@@ -86055,9 +86053,10 @@ declare module 'vue' {
86055
86053
  VSnackbarQueue: VSnackbarQueue
86056
86054
  VSparkline: VSparkline
86057
86055
  VSpeedDial: VSpeedDial
86058
- VValidation: VValidation
86059
86056
  VVirtualScroll: VVirtualScroll
86060
86057
  VThemeProvider: VThemeProvider
86058
+ VValidation: VValidation
86059
+ VDivider: VDivider
86061
86060
  VFabTransition: VFabTransition
86062
86061
  VDialogBottomTransition: VDialogBottomTransition
86063
86062
  VDialogTopTransition: VDialogTopTransition
@@ -86074,28 +86073,29 @@ declare module 'vue' {
86074
86073
  VExpandTransition: VExpandTransition
86075
86074
  VExpandXTransition: VExpandXTransition
86076
86075
  VDialogTransition: VDialogTransition
86076
+ VDataIterator: VDataIterator
86077
86077
  VCalendar: VCalendar
86078
86078
  VCalendarDay: VCalendarDay
86079
86079
  VCalendarHeader: VCalendarHeader
86080
86080
  VCalendarInterval: VCalendarInterval
86081
86081
  VCalendarIntervalEvent: VCalendarIntervalEvent
86082
86082
  VCalendarMonthDay: VCalendarMonthDay
86083
+ VIconBtn: VIconBtn
86083
86084
  VFileUpload: VFileUpload
86084
86085
  VFileUploadItem: VFileUploadItem
86085
- VIconBtn: VIconBtn
86086
- VTimePicker: VTimePicker
86087
- VTimePickerClock: VTimePickerClock
86088
- VTimePickerControls: VTimePickerControls
86086
+ VColorInput: VColorInput
86089
86087
  VPicker: VPicker
86090
86088
  VPickerTitle: VPickerTitle
86091
86089
  VStepperVertical: VStepperVertical
86092
86090
  VStepperVerticalItem: VStepperVerticalItem
86093
86091
  VStepperVerticalActions: VStepperVerticalActions
86094
- VDateInput: VDateInput
86095
- VPullToRefresh: VPullToRefresh
86096
- VColorInput: VColorInput
86097
86092
  VTreeview: VTreeview
86098
86093
  VTreeviewItem: VTreeviewItem
86099
86094
  VTreeviewGroup: VTreeviewGroup
86095
+ VTimePicker: VTimePicker
86096
+ VTimePickerClock: VTimePickerClock
86097
+ VTimePickerControls: VTimePickerControls
86098
+ VDateInput: VDateInput
86099
+ VPullToRefresh: VPullToRefresh
86100
86100
  }
86101
86101
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.9-master.2025-06-14
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-14";
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-14";
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 };