vuetify 3.6.3 → 3.6.5

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 (163) hide show
  1. package/dist/_component-variables-labs.sass +1 -0
  2. package/dist/json/attributes.json +489 -61
  3. package/dist/json/importMap-labs.json +30 -18
  4. package/dist/json/importMap.json +168 -168
  5. package/dist/json/tags.json +123 -1
  6. package/dist/json/web-types.json +1915 -198
  7. package/dist/vuetify-labs.css +3151 -2738
  8. package/dist/vuetify-labs.d.ts +3424 -1434
  9. package/dist/vuetify-labs.esm.js +483 -173
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +482 -172
  12. package/dist/vuetify-labs.min.css +3 -3
  13. package/dist/vuetify.css +957 -616
  14. package/dist/vuetify.d.ts +1451 -1380
  15. package/dist/vuetify.esm.js +171 -99
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +170 -98
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +3 -3
  20. package/dist/vuetify.min.js +982 -978
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VAlert/VAlert.css +3 -1
  23. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  25. package/lib/components/VAutocomplete/index.d.mts +187 -158
  26. package/lib/components/VAvatar/VAvatar.css +3 -1
  27. package/lib/components/VBanner/index.d.mts +11 -11
  28. package/lib/components/VBottomSheet/index.d.mts +42 -42
  29. package/lib/components/VBtn/VBtn.css +3 -1
  30. package/lib/components/VBtn/index.d.mts +2 -0
  31. package/lib/components/VCard/VCard.css +3 -1
  32. package/lib/components/VCarousel/index.d.mts +6 -6
  33. package/lib/components/VChip/VChip.css +3 -1
  34. package/lib/components/VChipGroup/index.d.mts +11 -11
  35. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -1
  36. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  37. package/lib/components/VCombobox/index.d.mts +187 -158
  38. package/lib/components/VDataIterator/index.d.mts +1 -1
  39. package/lib/components/VDataTable/VDataTable.css +1 -1
  40. package/lib/components/VDataTable/VDataTable.mjs +6 -2
  41. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  42. package/lib/components/VDataTable/VDataTable.sass +2 -1
  43. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  44. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  45. package/lib/components/VDataTable/VDataTableServer.mjs +3 -2
  46. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  47. package/lib/components/VDataTable/VDataTableVirtual.mjs +3 -1
  48. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  49. package/lib/components/VDataTable/composables/select.mjs +2 -1
  50. package/lib/components/VDataTable/composables/select.mjs.map +1 -1
  51. package/lib/components/VDataTable/index.d.mts +130 -71
  52. package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -4
  53. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  54. package/lib/components/VDialog/index.d.mts +126 -126
  55. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +3 -1
  56. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  57. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +15 -4
  58. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  59. package/lib/components/VExpansionPanel/index.d.mts +82 -27
  60. package/lib/components/VFileInput/VFileInput.mjs +2 -2
  61. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  62. package/lib/components/VFileInput/index.d.mts +9 -9
  63. package/lib/components/VImg/index.d.mts +6 -6
  64. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  65. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  66. package/lib/components/VList/VList.mjs.map +1 -1
  67. package/lib/components/VList/VListItem.css +3 -1
  68. package/lib/components/VList/VListItem.mjs +3 -2
  69. package/lib/components/VList/VListItem.mjs.map +1 -1
  70. package/lib/components/VList/index.d.mts +76 -52
  71. package/lib/components/VMenu/index.d.mts +126 -126
  72. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +3 -1
  73. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  74. package/lib/components/VNavigationDrawer/index.d.mts +19 -13
  75. package/lib/components/VOverlay/VOverlay.mjs +2 -5
  76. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  77. package/lib/components/VOverlay/index.d.mts +42 -42
  78. package/lib/components/VOverlay/useActivator.mjs +5 -5
  79. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  80. package/lib/components/VResponsive/VResponsive.mjs +1 -1
  81. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  82. package/lib/components/VResponsive/index.d.mts +6 -6
  83. package/lib/components/VSelect/index.d.mts +187 -158
  84. package/lib/components/VSheet/VSheet.css +1 -1
  85. package/lib/components/VSheet/_variables.scss +1 -1
  86. package/lib/components/VSlideGroup/VSlideGroup.mjs +25 -25
  87. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  88. package/lib/components/VSlideGroup/index.d.mts +13 -11
  89. package/lib/components/VSlider/VSliderThumb.css +5 -0
  90. package/lib/components/VSlider/VSliderThumb.sass +3 -0
  91. package/lib/components/VSlider/VSliderTrack.css +15 -0
  92. package/lib/components/VSlider/VSliderTrack.sass +9 -0
  93. package/lib/components/VSnackbar/VSnackbar.css +3 -1
  94. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  95. package/lib/components/VSnackbar/index.d.mts +126 -126
  96. package/lib/components/VSpeedDial/index.d.mts +42 -42
  97. package/lib/components/VStepper/VStepper.mjs +17 -8
  98. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  99. package/lib/components/VStepper/VStepperItem.css +47 -0
  100. package/lib/components/VStepper/VStepperItem.mjs +10 -5
  101. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  102. package/lib/components/VStepper/VStepperItem.sass +18 -0
  103. package/lib/components/VStepper/VStepperWindow.mjs +2 -1
  104. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  105. package/lib/components/VStepper/VStepperWindowItem.mjs +2 -1
  106. package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -1
  107. package/lib/components/VStepper/index.d.mts +1 -1
  108. package/lib/components/VTabs/VTabs.mjs +8 -3
  109. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  110. package/lib/components/VTabs/VTabsWindow.mjs +2 -1
  111. package/lib/components/VTabs/VTabsWindow.mjs.map +1 -1
  112. package/lib/components/VTabs/index.d.mts +13 -11
  113. package/lib/components/VToolbar/VToolbar.css +5 -5
  114. package/lib/components/VToolbar/_variables.scss +3 -3
  115. package/lib/components/VTooltip/index.d.mts +126 -126
  116. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  117. package/lib/components/VWindow/index.d.mts +2 -0
  118. package/lib/components/index.d.mts +1393 -1325
  119. package/lib/composables/component.mjs +1 -1
  120. package/lib/composables/component.mjs.map +1 -1
  121. package/lib/composables/display.mjs +1 -1
  122. package/lib/composables/display.mjs.map +1 -1
  123. package/lib/composables/group.mjs +8 -0
  124. package/lib/composables/group.mjs.map +1 -1
  125. package/lib/composables/nested/activeStrategies.mjs +16 -10
  126. package/lib/composables/nested/activeStrategies.mjs.map +1 -1
  127. package/lib/composables/nested/nested.mjs +7 -5
  128. package/lib/composables/nested/nested.mjs.map +1 -1
  129. package/lib/composables/resizeObserver.mjs +5 -5
  130. package/lib/composables/resizeObserver.mjs.map +1 -1
  131. package/lib/entry-bundler.mjs +1 -1
  132. package/lib/framework.mjs +1 -1
  133. package/lib/index.d.mts +58 -55
  134. package/lib/labs/VCalendar/VCalendar.css +5 -1
  135. package/lib/labs/VCalendar/VCalendar.sass +3 -2
  136. package/lib/labs/VCalendar/_variables.scss +8 -0
  137. package/lib/labs/VNumberInput/VNumberInput.mjs +57 -81
  138. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  139. package/lib/labs/VNumberInput/index.d.mts +402 -34
  140. package/lib/labs/VSnackbarQueue/index.d.mts +138 -138
  141. package/lib/labs/VStepperVertical/VStepperVertical.mjs +106 -0
  142. package/lib/labs/VStepperVertical/VStepperVertical.mjs.map +1 -0
  143. package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs +38 -0
  144. package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs.map +1 -0
  145. package/lib/labs/VStepperVertical/VStepperVerticalItem.css +69 -0
  146. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs +134 -0
  147. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs.map +1 -0
  148. package/lib/labs/VStepperVertical/VStepperVerticalItem.sass +74 -0
  149. package/lib/labs/VStepperVertical/_variables.scss +3 -0
  150. package/lib/labs/VStepperVertical/index.d.mts +1590 -0
  151. package/lib/labs/VStepperVertical/index.mjs +4 -0
  152. package/lib/labs/VStepperVertical/index.mjs.map +1 -0
  153. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  154. package/lib/labs/VTreeview/index.d.mts +88 -64
  155. package/lib/labs/components.d.mts +2303 -339
  156. package/lib/labs/components.mjs +1 -0
  157. package/lib/labs/components.mjs.map +1 -1
  158. package/lib/styles/generic/_colors.scss +1 -0
  159. package/lib/styles/main.css +260 -0
  160. package/lib/styles/tools/_variant.sass +3 -1
  161. package/lib/util/helpers.mjs +16 -0
  162. package/lib/util/helpers.mjs.map +1 -1
  163. package/package.json +3 -3
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.6.3
2
+ * Vuetify v3.6.5
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
- import { Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, shallowRef, readonly, unref, warn, ref, provide, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, createVNode, mergeProps, onBeforeUnmount, watch, nextTick, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, Suspense, TransitionGroup, Transition, isRef, toRef, onBeforeMount, withDirectives, resolveDirective, vShow, onMounted, onUpdated, Text, resolveDynamicComponent, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, toDisplayString, vModelText, resolveComponent, render } from 'vue';
7
+ import { shallowRef, Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, readonly, unref, warn, ref, provide, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, createVNode, mergeProps, onBeforeUnmount, watch, nextTick, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, Suspense, TransitionGroup, Transition, isRef, toRef, onBeforeMount, withDirectives, resolveDirective, vShow, onMounted, onUpdated, Text, resolveDynamicComponent, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, toDisplayString, vModelText, resolveComponent, render } from 'vue';
8
8
 
9
9
  const IN_BROWSER = typeof window !== 'undefined';
10
10
  const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
@@ -480,6 +480,22 @@ function isClickInsideElement(event, targetDiv) {
480
480
  const divBottom = divRect.bottom;
481
481
  return mouseX >= divLeft && mouseX <= divRight && mouseY >= divTop && mouseY <= divBottom;
482
482
  }
483
+ function templateRef() {
484
+ const el = shallowRef();
485
+ const fn = target => {
486
+ el.value = target;
487
+ };
488
+ Object.defineProperty(fn, 'value', {
489
+ enumerable: true,
490
+ get: () => el.value,
491
+ set: val => el.value = val
492
+ });
493
+ Object.defineProperty(fn, 'el', {
494
+ enumerable: true,
495
+ get: () => refElement(el.value)
496
+ });
497
+ return fn;
498
+ }
483
499
 
484
500
  // Utilities
485
501
  const block = ['top', 'bottom'];
@@ -1222,7 +1238,7 @@ function propsFactory(props, source) {
1222
1238
 
1223
1239
  // Composables
1224
1240
  const makeComponentProps = propsFactory({
1225
- class: [String, Array],
1241
+ class: [String, Array, Object],
1226
1242
  style: {
1227
1243
  type: [String, Array, Object],
1228
1244
  default: null
@@ -2005,7 +2021,7 @@ var index = /*#__PURE__*/Object.freeze({
2005
2021
 
2006
2022
  function useResizeObserver(callback) {
2007
2023
  let box = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'content';
2008
- const resizeRef = ref();
2024
+ const resizeRef = templateRef();
2009
2025
  const contentRect = ref();
2010
2026
  if (IN_BROWSER) {
2011
2027
  const observer = new ResizeObserver(entries => {
@@ -2020,12 +2036,12 @@ function useResizeObserver(callback) {
2020
2036
  onBeforeUnmount(() => {
2021
2037
  observer.disconnect();
2022
2038
  });
2023
- watch(resizeRef, (newValue, oldValue) => {
2039
+ watch(() => resizeRef.el, (newValue, oldValue) => {
2024
2040
  if (oldValue) {
2025
- observer.unobserve(refElement(oldValue));
2041
+ observer.unobserve(oldValue);
2026
2042
  contentRect.value = undefined;
2027
2043
  }
2028
- if (newValue) observer.observe(refElement(newValue));
2044
+ if (newValue) observer.observe(newValue);
2029
2045
  }, {
2030
2046
  flush: 'post'
2031
2047
  });
@@ -3441,7 +3457,7 @@ function useAspectStyles(props) {
3441
3457
  }
3442
3458
  const makeVResponsiveProps = propsFactory({
3443
3459
  aspectRatio: [String, Number],
3444
- contentClass: String,
3460
+ contentClass: null,
3445
3461
  inline: Boolean,
3446
3462
  ...makeComponentProps(),
3447
3463
  ...makeDimensionProps()
@@ -4557,6 +4573,12 @@ function useGroupItem(props, injectKey) {
4557
4573
  const isSelected = computed(() => {
4558
4574
  return group.isSelected(id);
4559
4575
  });
4576
+ const isFirst = computed(() => {
4577
+ return group.items.value[0].id === id;
4578
+ });
4579
+ const isLast = computed(() => {
4580
+ return group.items.value[group.items.value.length - 1].id === id;
4581
+ });
4560
4582
  const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass]);
4561
4583
  watch(isSelected, value => {
4562
4584
  vm.emit('group:selected', {
@@ -4568,6 +4590,8 @@ function useGroupItem(props, injectKey) {
4568
4590
  return {
4569
4591
  id,
4570
4592
  isSelected,
4593
+ isFirst,
4594
+ isLast,
4571
4595
  toggle: () => group.select(id, !isSelected.value),
4572
4596
  select: value => group.select(id, value),
4573
4597
  selectedClass,
@@ -7322,7 +7346,7 @@ function createDisplay(options, ssr) {
7322
7346
  const makeDisplayProps = propsFactory({
7323
7347
  mobile: {
7324
7348
  type: Boolean,
7325
- default: null
7349
+ default: false
7326
7350
  },
7327
7351
  mobileBreakpoint: [Number, String]
7328
7352
  }, 'display');
@@ -7617,7 +7641,7 @@ const VSlideGroup = genericComponent()({
7617
7641
  const goTo = useGoTo();
7618
7642
  const goToOptions = computed(() => {
7619
7643
  return {
7620
- container: containerRef.value,
7644
+ container: containerRef.el,
7621
7645
  duration: 200,
7622
7646
  easing: 'easeOutQuart'
7623
7647
  };
@@ -7641,9 +7665,9 @@ const VSlideGroup = genericComponent()({
7641
7665
  contentSize.value = contentRect.value[sizeProperty];
7642
7666
  isOverflowing.value = containerSize.value + 1 < contentSize.value;
7643
7667
  }
7644
- if (firstSelectedIndex.value >= 0 && contentRef.value) {
7668
+ if (firstSelectedIndex.value >= 0 && contentRef.el) {
7645
7669
  // TODO: Is this too naive? Should we store element references in group composable?
7646
- const selectedElement = contentRef.value.children[lastSelectedIndex.value];
7670
+ const selectedElement = contentRef.el.children[lastSelectedIndex.value];
7647
7671
  scrollToChildren(selectedElement, props.centerActive);
7648
7672
  }
7649
7673
  });
@@ -7654,13 +7678,13 @@ const VSlideGroup = genericComponent()({
7654
7678
  let target = 0;
7655
7679
  if (center) {
7656
7680
  target = calculateCenteredTarget({
7657
- containerElement: containerRef.value,
7681
+ containerElement: containerRef.el,
7658
7682
  isHorizontal: isHorizontal.value,
7659
7683
  selectedElement: children
7660
7684
  });
7661
7685
  } else {
7662
7686
  target = calculateUpdatedTarget({
7663
- containerElement: containerRef.value,
7687
+ containerElement: containerRef.el,
7664
7688
  isHorizontal: isHorizontal.value,
7665
7689
  isRtl: isRtl.value,
7666
7690
  selectedElement: children
@@ -7669,18 +7693,18 @@ const VSlideGroup = genericComponent()({
7669
7693
  scrollToPosition(target);
7670
7694
  }
7671
7695
  function scrollToPosition(newPosition) {
7672
- if (!IN_BROWSER || !containerRef.value) return;
7673
- const offsetSize = getOffsetSize(isHorizontal.value, containerRef.value);
7674
- const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.value);
7675
- const scrollSize = getScrollSize(isHorizontal.value, containerRef.value);
7696
+ if (!IN_BROWSER || !containerRef.el) return;
7697
+ const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el);
7698
+ const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el);
7699
+ const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);
7676
7700
  if (scrollSize <= offsetSize ||
7677
7701
  // Prevent scrolling by only a couple of pixels, which doesn't look smooth
7678
7702
  Math.abs(newPosition - scrollPosition) < 16) return;
7679
- if (isHorizontal.value && isRtl.value && containerRef.value) {
7703
+ if (isHorizontal.value && isRtl.value && containerRef.el) {
7680
7704
  const {
7681
7705
  scrollWidth,
7682
7706
  offsetWidth: containerWidth
7683
- } = containerRef.value;
7707
+ } = containerRef.el;
7684
7708
  newPosition = scrollWidth - containerWidth - newPosition;
7685
7709
  }
7686
7710
  if (isHorizontal.value) {
@@ -7698,12 +7722,12 @@ const VSlideGroup = genericComponent()({
7698
7722
  }
7699
7723
  function onFocusin(e) {
7700
7724
  isFocused.value = true;
7701
- if (!isOverflowing.value || !contentRef.value) return;
7725
+ if (!isOverflowing.value || !contentRef.el) return;
7702
7726
 
7703
7727
  // Focused element is likely to be the root of an item, so a
7704
7728
  // breadth-first search will probably find it in the first iteration
7705
7729
  for (const el of e.composedPath()) {
7706
- for (const item of contentRef.value.children) {
7730
+ for (const item of contentRef.el.children) {
7707
7731
  if (item === el) {
7708
7732
  scrollToChildren(item);
7709
7733
  return;
@@ -7718,14 +7742,14 @@ const VSlideGroup = genericComponent()({
7718
7742
  // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren
7719
7743
  let ignoreFocusEvent = false;
7720
7744
  function onFocus(e) {
7721
- if (!ignoreFocusEvent && !isFocused.value && !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget))) focus();
7745
+ if (!ignoreFocusEvent && !isFocused.value && !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget))) focus();
7722
7746
  ignoreFocusEvent = false;
7723
7747
  }
7724
7748
  function onFocusAffixes() {
7725
7749
  ignoreFocusEvent = true;
7726
7750
  }
7727
7751
  function onKeydown(e) {
7728
- if (!contentRef.value) return;
7752
+ if (!contentRef.el) return;
7729
7753
  function toFocus(location) {
7730
7754
  e.preventDefault();
7731
7755
  focus(location);
@@ -7750,21 +7774,21 @@ const VSlideGroup = genericComponent()({
7750
7774
  }
7751
7775
  }
7752
7776
  function focus(location) {
7753
- if (!contentRef.value) return;
7777
+ if (!contentRef.el) return;
7754
7778
  let el;
7755
7779
  if (!location) {
7756
- const focusable = focusableChildren(contentRef.value);
7780
+ const focusable = focusableChildren(contentRef.el);
7757
7781
  el = focusable[0];
7758
7782
  } else if (location === 'next') {
7759
- el = contentRef.value.querySelector(':focus')?.nextElementSibling;
7783
+ el = contentRef.el.querySelector(':focus')?.nextElementSibling;
7760
7784
  if (!el) return focus('first');
7761
7785
  } else if (location === 'prev') {
7762
- el = contentRef.value.querySelector(':focus')?.previousElementSibling;
7786
+ el = contentRef.el.querySelector(':focus')?.previousElementSibling;
7763
7787
  if (!el) return focus('last');
7764
7788
  } else if (location === 'first') {
7765
- el = contentRef.value.firstElementChild;
7789
+ el = contentRef.el.firstElementChild;
7766
7790
  } else if (location === 'last') {
7767
- el = contentRef.value.lastElementChild;
7791
+ el = contentRef.el.lastElementChild;
7768
7792
  }
7769
7793
  if (el) {
7770
7794
  el.focus({
@@ -7778,11 +7802,11 @@ const VSlideGroup = genericComponent()({
7778
7802
  let newPosition = scrollOffset.value + offsetStep;
7779
7803
 
7780
7804
  // TODO: improve it
7781
- if (isHorizontal.value && isRtl.value && containerRef.value) {
7805
+ if (isHorizontal.value && isRtl.value && containerRef.el) {
7782
7806
  const {
7783
7807
  scrollWidth,
7784
7808
  offsetWidth: containerWidth
7785
- } = containerRef.value;
7809
+ } = containerRef.el;
7786
7810
  newPosition += scrollWidth - containerWidth;
7787
7811
  }
7788
7812
  scrollToPosition(newPosition);
@@ -7825,8 +7849,8 @@ const VSlideGroup = genericComponent()({
7825
7849
  });
7826
7850
  const hasNext = computed(() => {
7827
7851
  if (!containerRef.value) return false;
7828
- const scrollSize = getScrollSize(isHorizontal.value, containerRef.value);
7829
- const clientSize = getClientSize(isHorizontal.value, containerRef.value);
7852
+ const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);
7853
+ const clientSize = getClientSize(isHorizontal.value, containerRef.el);
7830
7854
  const scrollSizeMax = scrollSize - clientSize;
7831
7855
 
7832
7856
  // 1 pixel in reserve, may be lost after rounding
@@ -8250,14 +8274,16 @@ const independentActiveStrategy = mandatory => {
8250
8274
  },
8251
8275
  in: (v, children, parents) => {
8252
8276
  let set = new Set();
8253
- for (const id of v || []) {
8254
- set = strategy.activate({
8255
- id,
8256
- value: true,
8257
- activated: new Set(set),
8258
- children,
8259
- parents
8260
- });
8277
+ if (v != null) {
8278
+ for (const id of wrapInArray(v)) {
8279
+ set = strategy.activate({
8280
+ id,
8281
+ value: true,
8282
+ activated: new Set(set),
8283
+ children,
8284
+ parents
8285
+ });
8286
+ }
8261
8287
  }
8262
8288
  return set;
8263
8289
  },
@@ -8286,8 +8312,11 @@ const independentSingleActiveStrategy = mandatory => {
8286
8312
  },
8287
8313
  in: (v, children, parents) => {
8288
8314
  let set = new Set();
8289
- if (v?.length) {
8290
- set = parentStrategy.in(v.slice(0, 1), children, parents);
8315
+ if (v != null) {
8316
+ const arr = wrapInArray(v);
8317
+ if (arr.length) {
8318
+ set = parentStrategy.in(arr.slice(0, 1), children, parents);
8319
+ }
8291
8320
  }
8292
8321
  return set;
8293
8322
  },
@@ -8631,12 +8660,12 @@ const emptyNested = {
8631
8660
  const makeNestedProps = propsFactory({
8632
8661
  activatable: Boolean,
8633
8662
  selectable: Boolean,
8634
- activeStrategy: [String, Function],
8635
- selectStrategy: [String, Function],
8663
+ activeStrategy: [String, Function, Object],
8664
+ selectStrategy: [String, Function, Object],
8636
8665
  openStrategy: [String, Object],
8637
- opened: Array,
8638
- activated: Array,
8639
- selected: Array,
8666
+ opened: null,
8667
+ activated: null,
8668
+ selected: null,
8640
8669
  mandatory: Boolean
8641
8670
  }, 'nested');
8642
8671
  const useNested = props => {
@@ -8646,6 +8675,7 @@ const useNested = props => {
8646
8675
  const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
8647
8676
  const activeStrategy = computed(() => {
8648
8677
  if (typeof props.activeStrategy === 'object') return props.activeStrategy;
8678
+ if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
8649
8679
  switch (props.activeStrategy) {
8650
8680
  case 'leaf':
8651
8681
  return leafActiveStrategy(props.mandatory);
@@ -8660,6 +8690,7 @@ const useNested = props => {
8660
8690
  });
8661
8691
  const selectStrategy = computed(() => {
8662
8692
  if (typeof props.selectStrategy === 'object') return props.selectStrategy;
8693
+ if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory);
8663
8694
  switch (props.selectStrategy) {
8664
8695
  case 'single-leaf':
8665
8696
  return leafSingleSelectStrategy(props.mandatory);
@@ -8988,7 +9019,7 @@ const makeVListItemProps = propsFactory({
8988
9019
  appendIcon: IconValue,
8989
9020
  baseColor: String,
8990
9021
  disabled: Boolean,
8991
- lines: String,
9022
+ lines: [Boolean, String],
8992
9023
  link: {
8993
9024
  type: Boolean,
8994
9025
  default: undefined
@@ -9099,8 +9130,9 @@ const VListItem = genericComponent()({
9099
9130
  }));
9100
9131
  function onClick(e) {
9101
9132
  emit('click', e);
9102
- if (isGroupActivator || !isClickable.value) return;
9133
+ if (!isClickable.value) return;
9103
9134
  link.navigate?.(e);
9135
+ if (isGroupActivator) return;
9104
9136
  if (root.activatable.value) {
9105
9137
  activate(!isActivated.value, e);
9106
9138
  } else if (root.selectable.value) {
@@ -10559,17 +10591,17 @@ function useActivator(props, _ref) {
10559
10591
  }, {
10560
10592
  flush: 'post'
10561
10593
  });
10562
- const activatorRef = ref();
10594
+ const activatorRef = templateRef();
10563
10595
  watchEffect(() => {
10564
10596
  if (!activatorRef.value) return;
10565
10597
  nextTick(() => {
10566
- activatorEl.value = refElement(activatorRef.value);
10598
+ activatorEl.value = activatorRef.el;
10567
10599
  });
10568
10600
  });
10569
- const targetRef = ref();
10601
+ const targetRef = templateRef();
10570
10602
  const target = computed(() => {
10571
10603
  if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value;
10572
- if (targetRef.value) return refElement(targetRef.value);
10604
+ if (targetRef.value) return targetRef.el;
10573
10605
  return getTarget(props.target, vm) || activatorEl.value;
10574
10606
  });
10575
10607
  const targetEl = computed(() => {
@@ -10914,10 +10946,7 @@ const makeVOverlayProps = propsFactory({
10914
10946
  disabled: Boolean,
10915
10947
  opacity: [Number, String],
10916
10948
  noClickAnimation: Boolean,
10917
- modelValue: {
10918
- type: Boolean,
10919
- default: null
10920
- },
10949
+ modelValue: Boolean,
10921
10950
  persistent: Boolean,
10922
10951
  scrim: {
10923
10952
  type: [Boolean, String],
@@ -10960,7 +10989,7 @@ const VOverlay = genericComponent()({
10960
10989
  } = _ref;
10961
10990
  const model = useProxiedModel(props, 'modelValue');
10962
10991
  const isActive = computed({
10963
- get: () => Boolean(model.value),
10992
+ get: () => model.value,
10964
10993
  set: v => {
10965
10994
  if (!(v && props.disabled)) model.value = v;
10966
10995
  }
@@ -13197,7 +13226,7 @@ const VAutocomplete = genericComponent()({
13197
13226
  select(displayItems.value[0]);
13198
13227
  }
13199
13228
  menu.value = false;
13200
- search.value = '';
13229
+ if (props.multiple || hasSelectionSlot.value) search.value = '';
13201
13230
  selectionIndex.value = -1;
13202
13231
  }
13203
13232
  });
@@ -15041,7 +15070,7 @@ const VColorPickerCanvas = defineComponent({
15041
15070
  const {
15042
15071
  resizeRef
15043
15072
  } = useResizeObserver(entries => {
15044
- if (!resizeRef.value?.offsetParent) return;
15073
+ if (!resizeRef.el?.offsetParent) return;
15045
15074
  const {
15046
15075
  width,
15047
15076
  height
@@ -18664,6 +18693,7 @@ function provideSelection(props, _ref9) {
18664
18693
  });
18665
18694
  return !!items.length && isSelected(items);
18666
18695
  });
18696
+ const showSelectAll = computed(() => selectStrategy.value.showSelectAll);
18667
18697
  const data = {
18668
18698
  toggleSelect,
18669
18699
  select,
@@ -18672,7 +18702,7 @@ function provideSelection(props, _ref9) {
18672
18702
  isSomeSelected,
18673
18703
  someSelected,
18674
18704
  allSelected,
18675
- showSelectAll: selectStrategy.value.showSelectAll
18705
+ showSelectAll
18676
18706
  };
18677
18707
  provide(VDataTableSelectionSymbol, data);
18678
18708
  return data;
@@ -19943,7 +19973,7 @@ const VDataTableHeaders = genericComponent()({
19943
19973
  };
19944
19974
  if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);
19945
19975
  if (column.key === 'data-table-select') {
19946
- return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll && createVNode(VCheckboxBtn, {
19976
+ return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && createVNode(VCheckboxBtn, {
19947
19977
  "modelValue": allSelected.value,
19948
19978
  "indeterminate": someSelected.value && !allSelected.value,
19949
19979
  "onUpdate:modelValue": selectAll
@@ -20462,6 +20492,8 @@ function useDataTableItems(props, columns) {
20462
20492
 
20463
20493
  const makeDataTableProps = propsFactory({
20464
20494
  ...makeVDataTableRowsProps(),
20495
+ hideDefaultFooter: Boolean,
20496
+ hideDefaultHeader: Boolean,
20465
20497
  width: [String, Number],
20466
20498
  search: String,
20467
20499
  ...makeDataTableExpandProps(),
@@ -20644,10 +20676,12 @@ const VDataTable = genericComponent()({
20644
20676
  "style": props.style
20645
20677
  }, tableProps), {
20646
20678
  top: () => slots.top?.(slotProps.value),
20647
- default: () => slots.default ? slots.default(slotProps.value) : createVNode(Fragment, null, [slots.colgroup?.(slotProps.value), createVNode("thead", null, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), createVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
20679
+ default: () => slots.default ? slots.default(slotProps.value) : createVNode(Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createVNode("thead", {
20680
+ "key": "thead"
20681
+ }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), createVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
20648
20682
  "items": paginatedItems.value
20649
20683
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
20650
- bottom: () => slots.bottom ? slots.bottom(slotProps.value) : createVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
20684
+ bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && createVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
20651
20685
  prepend: slots['footer.prepend']
20652
20686
  })])
20653
20687
  });
@@ -20815,7 +20849,9 @@ const VDataTableVirtual = genericComponent()({
20815
20849
  "style": {
20816
20850
  height: convertToUnit(props.height)
20817
20851
  }
20818
- }, [createVNode("table", null, [slots.colgroup?.(slotProps.value), createVNode("thead", null, [createVNode(VDataTableHeaders, mergeProps(dataTableHeadersProps, {
20852
+ }, [createVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createVNode("thead", {
20853
+ "key": "thead"
20854
+ }, [createVNode(VDataTableHeaders, mergeProps(dataTableHeadersProps, {
20819
20855
  "sticky": props.fixedHeader
20820
20856
  }), slots)]), createVNode("tbody", null, [createVNode("tr", {
20821
20857
  "ref": markerRef,
@@ -21020,7 +21056,8 @@ const VDataTableServer = genericComponent()({
21020
21056
  "style": props.style
21021
21057
  }, tableProps), {
21022
21058
  top: () => slots.top?.(slotProps.value),
21023
- default: () => slots.default ? slots.default(slotProps.value) : createVNode(Fragment, null, [slots.colgroup?.(slotProps.value), createVNode("thead", {
21059
+ default: () => slots.default ? slots.default(slotProps.value) : createVNode(Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createVNode("thead", {
21060
+ "key": "thead",
21024
21061
  "class": "v-data-table__thead",
21025
21062
  "role": "rowgroup"
21026
21063
  }, [createVNode(VDataTableHeaders, mergeProps(dataTableHeadersProps, {
@@ -21031,7 +21068,7 @@ const VDataTableServer = genericComponent()({
21031
21068
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
21032
21069
  "items": flatItems.value
21033
21070
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
21034
- bottom: () => slots.bottom ? slots.bottom(slotProps.value) : createVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
21071
+ bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && createVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
21035
21072
  prepend: slots['footer.prepend']
21036
21073
  })])
21037
21074
  });
@@ -21912,10 +21949,10 @@ const VDatePickerYears = genericComponent()({
21912
21949
  watchEffect(() => {
21913
21950
  model.value = model.value ?? adapter.getYear(adapter.date());
21914
21951
  });
21915
- const yearRef = ref();
21952
+ const yearRef = templateRef();
21916
21953
  onMounted(async () => {
21917
21954
  await nextTick();
21918
- yearRef.value?.$el.scrollIntoView({
21955
+ yearRef.el?.scrollIntoView({
21919
21956
  block: 'center'
21920
21957
  });
21921
21958
  });
@@ -22575,7 +22612,9 @@ const VExpansionPanel = genericComponent()({
22575
22612
  }), slots.default?.()]
22576
22613
  });
22577
22614
  });
22578
- return {};
22615
+ return {
22616
+ groupItem
22617
+ };
22579
22618
  }
22580
22619
  });
22581
22620
 
@@ -22604,7 +22643,10 @@ const VExpansionPanels = genericComponent()({
22604
22643
  let {
22605
22644
  slots
22606
22645
  } = _ref;
22607
- useGroup(props, VExpansionPanelSymbol);
22646
+ const {
22647
+ next,
22648
+ prev
22649
+ } = useGroup(props, VExpansionPanelSymbol);
22608
22650
  const {
22609
22651
  themeClasses
22610
22652
  } = provideTheme(props);
@@ -22631,8 +22673,16 @@ const VExpansionPanels = genericComponent()({
22631
22673
  'v-expansion-panels--tile': props.tile
22632
22674
  }, themeClasses.value, variantClass.value, props.class],
22633
22675
  "style": props.style
22634
- }, slots));
22635
- return {};
22676
+ }, {
22677
+ default: () => [slots.default?.({
22678
+ prev,
22679
+ next
22680
+ })]
22681
+ }));
22682
+ return {
22683
+ next,
22684
+ prev
22685
+ };
22636
22686
  }
22637
22687
  });
22638
22688
 
@@ -22792,7 +22842,7 @@ const VFileInput = genericComponent()({
22792
22842
  const {
22793
22843
  t
22794
22844
  } = useLocale();
22795
- const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => props.multiple || Array.isArray(props.modelValue) ? val : val[0]);
22845
+ const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => props.multiple || Array.isArray(props.modelValue) ? val : val[0] ?? null);
22796
22846
  const {
22797
22847
  isFocused,
22798
22848
  focus,
@@ -22896,7 +22946,7 @@ const VFileInput = genericComponent()({
22896
22946
  }, fieldProps, {
22897
22947
  "id": id.value,
22898
22948
  "active": isActive.value || isDirty.value,
22899
- "dirty": isDirty.value,
22949
+ "dirty": isDirty.value || props.dirty,
22900
22950
  "disabled": isDisabled.value,
22901
22951
  "focused": isFocused.value,
22902
22952
  "error": isValid.value === false
@@ -23241,7 +23291,7 @@ const VInfiniteScroll = genericComponent()({
23241
23291
  function intersecting(side) {
23242
23292
  if (props.mode !== 'manual' && !isIntersecting.value) return;
23243
23293
  const status = getStatus(side);
23244
- if (!rootEl.value || status === 'loading') return;
23294
+ if (!rootEl.value || ['empty', 'loading'].includes(status)) return;
23245
23295
  previousScrollSize = getScrollSize();
23246
23296
  setStatus(side, 'loading');
23247
23297
  function done(status) {
@@ -23987,7 +24037,9 @@ const makeVNavigationDrawerProps = propsFactory({
23987
24037
  ...makeBorderProps(),
23988
24038
  ...makeComponentProps(),
23989
24039
  ...makeDelayProps(),
23990
- ...makeDisplayProps(),
24040
+ ...makeDisplayProps({
24041
+ mobile: null
24042
+ }),
23991
24043
  ...makeElevationProps(),
23992
24044
  ...makeLayoutItemProps(),
23993
24045
  ...makeRoundedProps(),
@@ -25993,7 +26045,7 @@ const VStepperHeader = createSimpleFunctional('v-stepper-header');
25993
26045
 
25994
26046
  // Types
25995
26047
 
25996
- const makeVStepperItemProps = propsFactory({
26048
+ const makeStepperItemProps = propsFactory({
25997
26049
  color: String,
25998
26050
  title: String,
25999
26051
  subtitle: String,
@@ -26020,7 +26072,10 @@ const makeVStepperItemProps = propsFactory({
26020
26072
  rules: {
26021
26073
  type: Array,
26022
26074
  default: () => []
26023
- },
26075
+ }
26076
+ }, 'StepperItem');
26077
+ const makeVStepperItemProps = propsFactory({
26078
+ ...makeStepperItemProps(),
26024
26079
  ...makeGroupItemProps()
26025
26080
  }, 'VStepperItem');
26026
26081
  const VStepperItem = genericComponent()({
@@ -26039,13 +26094,14 @@ const VStepperItem = genericComponent()({
26039
26094
  const group = useGroupItem(props, VStepperSymbol, true);
26040
26095
  const step = computed(() => group?.value.value ?? props.value);
26041
26096
  const isValid = computed(() => props.rules.every(handler => handler() === true));
26097
+ const isClickable = computed(() => !props.disabled && props.editable);
26042
26098
  const canEdit = computed(() => !props.disabled && props.editable);
26043
26099
  const hasError = computed(() => props.error || !isValid.value);
26044
26100
  const hasCompleted = computed(() => props.complete || props.rules.length > 0 && isValid.value);
26045
26101
  const icon = computed(() => {
26046
26102
  if (hasError.value) return props.errorIcon;
26047
26103
  if (hasCompleted.value) return props.completeIcon;
26048
- if (props.editable) return props.editIcon;
26104
+ if (group.isSelected.value && props.editable) return props.editIcon;
26049
26105
  return props.icon;
26050
26106
  });
26051
26107
  const slotProps = computed(() => ({
@@ -26072,7 +26128,7 @@ const VStepperItem = genericComponent()({
26072
26128
  }, group?.selectedClass.value],
26073
26129
  "disabled": !props.editable,
26074
26130
  "onClick": onClick
26075
- }, [createVNode(VAvatar, {
26131
+ }, [isClickable.value && genOverlays(true, 'v-stepper-item'), createVNode(VAvatar, {
26076
26132
  "key": "stepper-avatar",
26077
26133
  "class": "v-stepper-item__avatar",
26078
26134
  "color": hasColor ? props.color : undefined,
@@ -26134,7 +26190,8 @@ const VStepperWindow = genericComponent()({
26134
26190
  }, windowProps, {
26135
26191
  "modelValue": model.value,
26136
26192
  "onUpdate:modelValue": $event => model.value = $event,
26137
- "class": "v-stepper-window",
26193
+ "class": ['v-stepper-window', props.class],
26194
+ "style": props.style,
26138
26195
  "mandatory": false,
26139
26196
  "touch": false
26140
26197
  }), slots);
@@ -26158,7 +26215,8 @@ const VStepperWindowItem = genericComponent()({
26158
26215
  return createVNode(VWindowItem, mergeProps({
26159
26216
  "_as": "VStepperWindowItem"
26160
26217
  }, windowItemProps, {
26161
- "class": "v-stepper-window-item"
26218
+ "class": ['v-stepper-window-item', props.class],
26219
+ "style": props.style
26162
26220
  }), slots);
26163
26221
  });
26164
26222
  return {};
@@ -26168,7 +26226,7 @@ const VStepperWindowItem = genericComponent()({
26168
26226
  // Types
26169
26227
 
26170
26228
  const VStepperSymbol = Symbol.for('vuetify:v-stepper');
26171
- const makeVStepperProps = propsFactory({
26229
+ const makeStepperProps = propsFactory({
26172
26230
  altLabels: Boolean,
26173
26231
  bgColor: String,
26174
26232
  editable: Boolean,
@@ -26187,7 +26245,10 @@ const makeVStepperProps = propsFactory({
26187
26245
  },
26188
26246
  mobile: Boolean,
26189
26247
  nonLinear: Boolean,
26190
- flat: Boolean,
26248
+ flat: Boolean
26249
+ }, 'Stepper');
26250
+ const makeVStepperProps = propsFactory({
26251
+ ...makeStepperProps(),
26191
26252
  ...makeGroupProps({
26192
26253
  mandatory: 'force',
26193
26254
  selectedClass: 'v-stepper-item--selected'
@@ -26266,12 +26327,18 @@ const VStepper = genericComponent()({
26266
26327
  default: () => [hasHeader && createVNode(VStepperHeader, {
26267
26328
  "key": "stepper-header"
26268
26329
  }, {
26269
- default: () => [items.value.map((item, index) => createVNode(Fragment, null, [!!index && createVNode(VDivider, null, null), createVNode(VStepperItem, item, {
26270
- default: slots[`header-item.${item.value}`] ?? slots.header,
26271
- icon: slots.icon,
26272
- title: slots.title,
26273
- subtitle: slots.subtitle
26274
- })]))]
26330
+ default: () => [items.value.map((_ref2, index) => {
26331
+ let {
26332
+ raw,
26333
+ ...item
26334
+ } = _ref2;
26335
+ return createVNode(Fragment, null, [!!index && createVNode(VDivider, null, null), createVNode(VStepperItem, item, {
26336
+ default: slots[`header-item.${item.value}`] ?? slots.header,
26337
+ icon: slots.icon,
26338
+ title: slots.title,
26339
+ subtitle: slots.subtitle
26340
+ })]);
26341
+ })]
26275
26342
  }), hasWindow && createVNode(VStepperWindow, {
26276
26343
  "key": "stepper-window"
26277
26344
  }, {
@@ -26657,7 +26724,8 @@ const VTabsWindow = genericComponent()({
26657
26724
  }, windowProps, {
26658
26725
  "modelValue": model.value,
26659
26726
  "onUpdate:modelValue": $event => model.value = $event,
26660
- "class": "v-tabs-window",
26727
+ "class": ['v-tabs-window', props.class],
26728
+ "style": props.style,
26661
26729
  "mandatory": false,
26662
26730
  "touch": false
26663
26731
  }), slots);
@@ -26734,6 +26802,7 @@ const VTabs = genericComponent()({
26734
26802
  },
26735
26803
  setup(props, _ref) {
26736
26804
  let {
26805
+ attrs,
26737
26806
  slots
26738
26807
  } = _ref;
26739
26808
  const model = useProxiedModel(props, 'modelValue');
@@ -26745,6 +26814,9 @@ const VTabs = genericComponent()({
26745
26814
  backgroundColorClasses,
26746
26815
  backgroundColorStyles
26747
26816
  } = useBackgroundColor(toRef(props, 'bgColor'));
26817
+ const {
26818
+ scopeId
26819
+ } = useScopeId();
26748
26820
  provideDefaults({
26749
26821
  VTab: {
26750
26822
  color: toRef(props, 'color'),
@@ -26771,7 +26843,7 @@ const VTabs = genericComponent()({
26771
26843
  }, backgroundColorStyles.value, props.style],
26772
26844
  "role": "tablist",
26773
26845
  "symbol": VTabsSymbol
26774
- }), {
26846
+ }, scopeId, attrs), {
26775
26847
  default: () => [slots.default?.() ?? items.value.map(item => slots.tab?.({
26776
26848
  item
26777
26849
  }) ?? createVNode(VTab, mergeProps(item, {
@@ -26782,11 +26854,11 @@ const VTabs = genericComponent()({
26782
26854
  item
26783
26855
  })
26784
26856
  }))]
26785
- }), hasWindow && createVNode(VTabsWindow, {
26857
+ }), hasWindow && createVNode(VTabsWindow, mergeProps({
26786
26858
  "modelValue": model.value,
26787
26859
  "onUpdate:modelValue": $event => model.value = $event,
26788
26860
  "key": "tabs-window"
26789
- }, {
26861
+ }, scopeId), {
26790
26862
  default: () => [items.value.map(item => slots.item?.({
26791
26863
  item
26792
26864
  }) ?? createVNode(VTabsWindowItem, {
@@ -27922,7 +27994,7 @@ function createVuetify$1() {
27922
27994
  goTo
27923
27995
  };
27924
27996
  }
27925
- const version$1 = "3.6.3";
27997
+ const version$1 = "3.6.5";
27926
27998
  createVuetify$1.version = version$1;
27927
27999
 
27928
28000
  // Vue's inject() can only be used in setup
@@ -27947,7 +28019,7 @@ const createVuetify = function () {
27947
28019
  ...options
27948
28020
  });
27949
28021
  };
27950
- const version = "3.6.3";
28022
+ const version = "3.6.5";
27951
28023
  createVuetify.version = version;
27952
28024
 
27953
28025
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };