@vuetify/nightly 3.6.3-master.2024-05-07 → 3.6.4-master.2024-05-09

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 (93) hide show
  1. package/CHANGELOG.md +7 -13
  2. package/dist/json/attributes.json +31 -31
  3. package/dist/json/importMap-labs.json +8 -8
  4. package/dist/json/importMap.json +124 -124
  5. package/dist/json/web-types.json +64 -64
  6. package/dist/vuetify-labs.css +2434 -2363
  7. package/dist/vuetify-labs.d.ts +995 -966
  8. package/dist/vuetify-labs.esm.js +104 -70
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +103 -69
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +775 -708
  13. package/dist/vuetify.d.ts +965 -936
  14. package/dist/vuetify.esm.js +104 -70
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +103 -69
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +981 -976
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAutocomplete/index.d.mts +169 -140
  22. package/lib/components/VBottomSheet/index.d.mts +33 -27
  23. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -1
  24. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  25. package/lib/components/VCombobox/index.d.mts +169 -140
  26. package/lib/components/VDataIterator/index.d.mts +1 -1
  27. package/lib/components/VDataTable/VDataTable.css +1 -1
  28. package/lib/components/VDataTable/VDataTable.sass +2 -1
  29. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  30. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  31. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  32. package/lib/components/VDataTable/composables/select.mjs +2 -1
  33. package/lib/components/VDataTable/composables/select.mjs.map +1 -1
  34. package/lib/components/VDataTable/index.d.mts +10 -5
  35. package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -4
  36. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  37. package/lib/components/VDialog/index.d.mts +99 -93
  38. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  39. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  40. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  41. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  42. package/lib/components/VList/VList.mjs.map +1 -1
  43. package/lib/components/VList/index.d.mts +70 -46
  44. package/lib/components/VMenu/index.d.mts +99 -93
  45. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  46. package/lib/components/VOverlay/index.d.mts +33 -27
  47. package/lib/components/VOverlay/useActivator.mjs +5 -5
  48. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  49. package/lib/components/VSelect/index.d.mts +169 -140
  50. package/lib/components/VSheet/VSheet.css +1 -1
  51. package/lib/components/VSheet/_variables.scss +1 -1
  52. package/lib/components/VSlideGroup/VSlideGroup.mjs +25 -25
  53. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  54. package/lib/components/VSlider/VSliderThumb.css +5 -0
  55. package/lib/components/VSlider/VSliderThumb.sass +3 -0
  56. package/lib/components/VSlider/VSliderTrack.css +15 -0
  57. package/lib/components/VSlider/VSliderTrack.sass +9 -0
  58. package/lib/components/VSnackbar/index.d.mts +85 -79
  59. package/lib/components/VSpeedDial/index.d.mts +33 -27
  60. package/lib/components/VStepper/VStepper.mjs +12 -6
  61. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  62. package/lib/components/VStepper/VStepperItem.css +47 -0
  63. package/lib/components/VStepper/VStepperItem.mjs +5 -3
  64. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  65. package/lib/components/VStepper/VStepperItem.sass +18 -0
  66. package/lib/components/VStepper/VStepperWindow.mjs +2 -1
  67. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  68. package/lib/components/VStepper/VStepperWindowItem.mjs +2 -1
  69. package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -1
  70. package/lib/components/VTabs/VTabsWindow.mjs +2 -1
  71. package/lib/components/VTabs/VTabsWindow.mjs.map +1 -1
  72. package/lib/components/VTooltip/index.d.mts +99 -93
  73. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  74. package/lib/components/index.d.mts +926 -897
  75. package/lib/composables/nested/activeStrategies.mjs +16 -10
  76. package/lib/composables/nested/activeStrategies.mjs.map +1 -1
  77. package/lib/composables/nested/nested.mjs +7 -5
  78. package/lib/composables/nested/nested.mjs.map +1 -1
  79. package/lib/composables/resizeObserver.mjs +5 -5
  80. package/lib/composables/resizeObserver.mjs.map +1 -1
  81. package/lib/entry-bundler.mjs +1 -1
  82. package/lib/framework.mjs +1 -1
  83. package/lib/index.d.mts +39 -39
  84. package/lib/labs/VCalendar/VCalendar.css +5 -1
  85. package/lib/labs/VCalendar/VCalendar.sass +3 -2
  86. package/lib/labs/VCalendar/_variables.scss +8 -0
  87. package/lib/labs/VSnackbarQueue/index.d.mts +97 -91
  88. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  89. package/lib/labs/VTreeview/index.d.mts +82 -58
  90. package/lib/labs/components.d.mts +178 -149
  91. package/lib/util/helpers.mjs +16 -0
  92. package/lib/util/helpers.mjs.map +1 -1
  93. package/package.json +1 -1
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.6.3-master.2024-05-07
2
+ * Vuetify v3.6.4-master.2024-05-09
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'];
@@ -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
  });
@@ -7617,7 +7633,7 @@ const VSlideGroup = genericComponent()({
7617
7633
  const goTo = useGoTo();
7618
7634
  const goToOptions = computed(() => {
7619
7635
  return {
7620
- container: containerRef.value,
7636
+ container: containerRef.el,
7621
7637
  duration: 200,
7622
7638
  easing: 'easeOutQuart'
7623
7639
  };
@@ -7641,9 +7657,9 @@ const VSlideGroup = genericComponent()({
7641
7657
  contentSize.value = contentRect.value[sizeProperty];
7642
7658
  isOverflowing.value = containerSize.value + 1 < contentSize.value;
7643
7659
  }
7644
- if (firstSelectedIndex.value >= 0 && contentRef.value) {
7660
+ if (firstSelectedIndex.value >= 0 && contentRef.el) {
7645
7661
  // TODO: Is this too naive? Should we store element references in group composable?
7646
- const selectedElement = contentRef.value.children[lastSelectedIndex.value];
7662
+ const selectedElement = contentRef.el.children[lastSelectedIndex.value];
7647
7663
  scrollToChildren(selectedElement, props.centerActive);
7648
7664
  }
7649
7665
  });
@@ -7654,13 +7670,13 @@ const VSlideGroup = genericComponent()({
7654
7670
  let target = 0;
7655
7671
  if (center) {
7656
7672
  target = calculateCenteredTarget({
7657
- containerElement: containerRef.value,
7673
+ containerElement: containerRef.el,
7658
7674
  isHorizontal: isHorizontal.value,
7659
7675
  selectedElement: children
7660
7676
  });
7661
7677
  } else {
7662
7678
  target = calculateUpdatedTarget({
7663
- containerElement: containerRef.value,
7679
+ containerElement: containerRef.el,
7664
7680
  isHorizontal: isHorizontal.value,
7665
7681
  isRtl: isRtl.value,
7666
7682
  selectedElement: children
@@ -7669,18 +7685,18 @@ const VSlideGroup = genericComponent()({
7669
7685
  scrollToPosition(target);
7670
7686
  }
7671
7687
  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);
7688
+ if (!IN_BROWSER || !containerRef.el) return;
7689
+ const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el);
7690
+ const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el);
7691
+ const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);
7676
7692
  if (scrollSize <= offsetSize ||
7677
7693
  // Prevent scrolling by only a couple of pixels, which doesn't look smooth
7678
7694
  Math.abs(newPosition - scrollPosition) < 16) return;
7679
- if (isHorizontal.value && isRtl.value && containerRef.value) {
7695
+ if (isHorizontal.value && isRtl.value && containerRef.el) {
7680
7696
  const {
7681
7697
  scrollWidth,
7682
7698
  offsetWidth: containerWidth
7683
- } = containerRef.value;
7699
+ } = containerRef.el;
7684
7700
  newPosition = scrollWidth - containerWidth - newPosition;
7685
7701
  }
7686
7702
  if (isHorizontal.value) {
@@ -7698,12 +7714,12 @@ const VSlideGroup = genericComponent()({
7698
7714
  }
7699
7715
  function onFocusin(e) {
7700
7716
  isFocused.value = true;
7701
- if (!isOverflowing.value || !contentRef.value) return;
7717
+ if (!isOverflowing.value || !contentRef.el) return;
7702
7718
 
7703
7719
  // Focused element is likely to be the root of an item, so a
7704
7720
  // breadth-first search will probably find it in the first iteration
7705
7721
  for (const el of e.composedPath()) {
7706
- for (const item of contentRef.value.children) {
7722
+ for (const item of contentRef.el.children) {
7707
7723
  if (item === el) {
7708
7724
  scrollToChildren(item);
7709
7725
  return;
@@ -7718,14 +7734,14 @@ const VSlideGroup = genericComponent()({
7718
7734
  // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren
7719
7735
  let ignoreFocusEvent = false;
7720
7736
  function onFocus(e) {
7721
- if (!ignoreFocusEvent && !isFocused.value && !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget))) focus();
7737
+ if (!ignoreFocusEvent && !isFocused.value && !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget))) focus();
7722
7738
  ignoreFocusEvent = false;
7723
7739
  }
7724
7740
  function onFocusAffixes() {
7725
7741
  ignoreFocusEvent = true;
7726
7742
  }
7727
7743
  function onKeydown(e) {
7728
- if (!contentRef.value) return;
7744
+ if (!contentRef.el) return;
7729
7745
  function toFocus(location) {
7730
7746
  e.preventDefault();
7731
7747
  focus(location);
@@ -7750,21 +7766,21 @@ const VSlideGroup = genericComponent()({
7750
7766
  }
7751
7767
  }
7752
7768
  function focus(location) {
7753
- if (!contentRef.value) return;
7769
+ if (!contentRef.el) return;
7754
7770
  let el;
7755
7771
  if (!location) {
7756
- const focusable = focusableChildren(contentRef.value);
7772
+ const focusable = focusableChildren(contentRef.el);
7757
7773
  el = focusable[0];
7758
7774
  } else if (location === 'next') {
7759
- el = contentRef.value.querySelector(':focus')?.nextElementSibling;
7775
+ el = contentRef.el.querySelector(':focus')?.nextElementSibling;
7760
7776
  if (!el) return focus('first');
7761
7777
  } else if (location === 'prev') {
7762
- el = contentRef.value.querySelector(':focus')?.previousElementSibling;
7778
+ el = contentRef.el.querySelector(':focus')?.previousElementSibling;
7763
7779
  if (!el) return focus('last');
7764
7780
  } else if (location === 'first') {
7765
- el = contentRef.value.firstElementChild;
7781
+ el = contentRef.el.firstElementChild;
7766
7782
  } else if (location === 'last') {
7767
- el = contentRef.value.lastElementChild;
7783
+ el = contentRef.el.lastElementChild;
7768
7784
  }
7769
7785
  if (el) {
7770
7786
  el.focus({
@@ -7778,11 +7794,11 @@ const VSlideGroup = genericComponent()({
7778
7794
  let newPosition = scrollOffset.value + offsetStep;
7779
7795
 
7780
7796
  // TODO: improve it
7781
- if (isHorizontal.value && isRtl.value && containerRef.value) {
7797
+ if (isHorizontal.value && isRtl.value && containerRef.el) {
7782
7798
  const {
7783
7799
  scrollWidth,
7784
7800
  offsetWidth: containerWidth
7785
- } = containerRef.value;
7801
+ } = containerRef.el;
7786
7802
  newPosition += scrollWidth - containerWidth;
7787
7803
  }
7788
7804
  scrollToPosition(newPosition);
@@ -7825,8 +7841,8 @@ const VSlideGroup = genericComponent()({
7825
7841
  });
7826
7842
  const hasNext = computed(() => {
7827
7843
  if (!containerRef.value) return false;
7828
- const scrollSize = getScrollSize(isHorizontal.value, containerRef.value);
7829
- const clientSize = getClientSize(isHorizontal.value, containerRef.value);
7844
+ const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);
7845
+ const clientSize = getClientSize(isHorizontal.value, containerRef.el);
7830
7846
  const scrollSizeMax = scrollSize - clientSize;
7831
7847
 
7832
7848
  // 1 pixel in reserve, may be lost after rounding
@@ -8250,14 +8266,16 @@ const independentActiveStrategy = mandatory => {
8250
8266
  },
8251
8267
  in: (v, children, parents) => {
8252
8268
  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
- });
8269
+ if (v != null) {
8270
+ for (const id of wrapInArray(v)) {
8271
+ set = strategy.activate({
8272
+ id,
8273
+ value: true,
8274
+ activated: new Set(set),
8275
+ children,
8276
+ parents
8277
+ });
8278
+ }
8261
8279
  }
8262
8280
  return set;
8263
8281
  },
@@ -8286,8 +8304,11 @@ const independentSingleActiveStrategy = mandatory => {
8286
8304
  },
8287
8305
  in: (v, children, parents) => {
8288
8306
  let set = new Set();
8289
- if (v?.length) {
8290
- set = parentStrategy.in(v.slice(0, 1), children, parents);
8307
+ if (v != null) {
8308
+ const arr = wrapInArray(v);
8309
+ if (arr.length) {
8310
+ set = parentStrategy.in(arr.slice(0, 1), children, parents);
8311
+ }
8291
8312
  }
8292
8313
  return set;
8293
8314
  },
@@ -8631,12 +8652,12 @@ const emptyNested = {
8631
8652
  const makeNestedProps = propsFactory({
8632
8653
  activatable: Boolean,
8633
8654
  selectable: Boolean,
8634
- activeStrategy: [String, Function],
8635
- selectStrategy: [String, Function],
8655
+ activeStrategy: [String, Function, Object],
8656
+ selectStrategy: [String, Function, Object],
8636
8657
  openStrategy: [String, Object],
8637
- opened: Array,
8638
- activated: Array,
8639
- selected: Array,
8658
+ opened: null,
8659
+ activated: null,
8660
+ selected: null,
8640
8661
  mandatory: Boolean
8641
8662
  }, 'nested');
8642
8663
  const useNested = props => {
@@ -8646,6 +8667,7 @@ const useNested = props => {
8646
8667
  const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
8647
8668
  const activeStrategy = computed(() => {
8648
8669
  if (typeof props.activeStrategy === 'object') return props.activeStrategy;
8670
+ if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
8649
8671
  switch (props.activeStrategy) {
8650
8672
  case 'leaf':
8651
8673
  return leafActiveStrategy(props.mandatory);
@@ -8660,6 +8682,7 @@ const useNested = props => {
8660
8682
  });
8661
8683
  const selectStrategy = computed(() => {
8662
8684
  if (typeof props.selectStrategy === 'object') return props.selectStrategy;
8685
+ if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory);
8663
8686
  switch (props.selectStrategy) {
8664
8687
  case 'single-leaf':
8665
8688
  return leafSingleSelectStrategy(props.mandatory);
@@ -10560,17 +10583,17 @@ function useActivator(props, _ref) {
10560
10583
  }, {
10561
10584
  flush: 'post'
10562
10585
  });
10563
- const activatorRef = ref();
10586
+ const activatorRef = templateRef();
10564
10587
  watchEffect(() => {
10565
10588
  if (!activatorRef.value) return;
10566
10589
  nextTick(() => {
10567
- activatorEl.value = refElement(activatorRef.value);
10590
+ activatorEl.value = activatorRef.el;
10568
10591
  });
10569
10592
  });
10570
- const targetRef = ref();
10593
+ const targetRef = templateRef();
10571
10594
  const target = computed(() => {
10572
10595
  if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value;
10573
- if (targetRef.value) return refElement(targetRef.value);
10596
+ if (targetRef.value) return targetRef.el;
10574
10597
  return getTarget(props.target, vm) || activatorEl.value;
10575
10598
  });
10576
10599
  const targetEl = computed(() => {
@@ -15039,7 +15062,7 @@ const VColorPickerCanvas = defineComponent({
15039
15062
  const {
15040
15063
  resizeRef
15041
15064
  } = useResizeObserver(entries => {
15042
- if (!resizeRef.value?.offsetParent) return;
15065
+ if (!resizeRef.el?.offsetParent) return;
15043
15066
  const {
15044
15067
  width,
15045
15068
  height
@@ -18662,6 +18685,7 @@ function provideSelection(props, _ref9) {
18662
18685
  });
18663
18686
  return !!items.length && isSelected(items);
18664
18687
  });
18688
+ const showSelectAll = computed(() => selectStrategy.value.showSelectAll);
18665
18689
  const data = {
18666
18690
  toggleSelect,
18667
18691
  select,
@@ -18670,7 +18694,7 @@ function provideSelection(props, _ref9) {
18670
18694
  isSomeSelected,
18671
18695
  someSelected,
18672
18696
  allSelected,
18673
- showSelectAll: selectStrategy.value.showSelectAll
18697
+ showSelectAll
18674
18698
  };
18675
18699
  provide(VDataTableSelectionSymbol, data);
18676
18700
  return data;
@@ -19941,7 +19965,7 @@ const VDataTableHeaders = genericComponent()({
19941
19965
  };
19942
19966
  if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);
19943
19967
  if (column.key === 'data-table-select') {
19944
- return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll && createVNode(VCheckboxBtn, {
19968
+ return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && createVNode(VCheckboxBtn, {
19945
19969
  "modelValue": allSelected.value,
19946
19970
  "indeterminate": someSelected.value && !allSelected.value,
19947
19971
  "onUpdate:modelValue": selectAll
@@ -21910,10 +21934,10 @@ const VDatePickerYears = genericComponent()({
21910
21934
  watchEffect(() => {
21911
21935
  model.value = model.value ?? adapter.getYear(adapter.date());
21912
21936
  });
21913
- const yearRef = ref();
21937
+ const yearRef = templateRef();
21914
21938
  onMounted(async () => {
21915
21939
  await nextTick();
21916
- yearRef.value?.$el.scrollIntoView({
21940
+ yearRef.el?.scrollIntoView({
21917
21941
  block: 'center'
21918
21942
  });
21919
21943
  });
@@ -22894,7 +22918,7 @@ const VFileInput = genericComponent()({
22894
22918
  }, fieldProps, {
22895
22919
  "id": id.value,
22896
22920
  "active": isActive.value || isDirty.value,
22897
- "dirty": isDirty.value,
22921
+ "dirty": isDirty.value || props.dirty,
22898
22922
  "disabled": isDisabled.value,
22899
22923
  "focused": isFocused.value,
22900
22924
  "error": isValid.value === false
@@ -23239,7 +23263,7 @@ const VInfiniteScroll = genericComponent()({
23239
23263
  function intersecting(side) {
23240
23264
  if (props.mode !== 'manual' && !isIntersecting.value) return;
23241
23265
  const status = getStatus(side);
23242
- if (!rootEl.value || status === 'loading') return;
23266
+ if (!rootEl.value || ['empty', 'loading'].includes(status)) return;
23243
23267
  previousScrollSize = getScrollSize();
23244
23268
  setStatus(side, 'loading');
23245
23269
  function done(status) {
@@ -26039,13 +26063,14 @@ const VStepperItem = genericComponent()({
26039
26063
  const group = useGroupItem(props, VStepperSymbol, true);
26040
26064
  const step = computed(() => group?.value.value ?? props.value);
26041
26065
  const isValid = computed(() => props.rules.every(handler => handler() === true));
26066
+ const isClickable = computed(() => !props.disabled && props.editable);
26042
26067
  const canEdit = computed(() => !props.disabled && props.editable);
26043
26068
  const hasError = computed(() => props.error || !isValid.value);
26044
26069
  const hasCompleted = computed(() => props.complete || props.rules.length > 0 && isValid.value);
26045
26070
  const icon = computed(() => {
26046
26071
  if (hasError.value) return props.errorIcon;
26047
26072
  if (hasCompleted.value) return props.completeIcon;
26048
- if (props.editable) return props.editIcon;
26073
+ if (group.isSelected.value && props.editable) return props.editIcon;
26049
26074
  return props.icon;
26050
26075
  });
26051
26076
  const slotProps = computed(() => ({
@@ -26072,7 +26097,7 @@ const VStepperItem = genericComponent()({
26072
26097
  }, group?.selectedClass.value],
26073
26098
  "disabled": !props.editable,
26074
26099
  "onClick": onClick
26075
- }, [createVNode(VAvatar, {
26100
+ }, [isClickable.value && genOverlays(true, 'v-stepper-item'), createVNode(VAvatar, {
26076
26101
  "key": "stepper-avatar",
26077
26102
  "class": "v-stepper-item__avatar",
26078
26103
  "color": hasColor ? props.color : undefined,
@@ -26134,7 +26159,8 @@ const VStepperWindow = genericComponent()({
26134
26159
  }, windowProps, {
26135
26160
  "modelValue": model.value,
26136
26161
  "onUpdate:modelValue": $event => model.value = $event,
26137
- "class": "v-stepper-window",
26162
+ "class": ['v-stepper-window', props.class],
26163
+ "style": props.style,
26138
26164
  "mandatory": false,
26139
26165
  "touch": false
26140
26166
  }), slots);
@@ -26158,7 +26184,8 @@ const VStepperWindowItem = genericComponent()({
26158
26184
  return createVNode(VWindowItem, mergeProps({
26159
26185
  "_as": "VStepperWindowItem"
26160
26186
  }, windowItemProps, {
26161
- "class": "v-stepper-window-item"
26187
+ "class": ['v-stepper-window-item', props.class],
26188
+ "style": props.style
26162
26189
  }), slots);
26163
26190
  });
26164
26191
  return {};
@@ -26266,12 +26293,18 @@ const VStepper = genericComponent()({
26266
26293
  default: () => [hasHeader && createVNode(VStepperHeader, {
26267
26294
  "key": "stepper-header"
26268
26295
  }, {
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
- })]))]
26296
+ default: () => [items.value.map((_ref2, index) => {
26297
+ let {
26298
+ raw,
26299
+ ...item
26300
+ } = _ref2;
26301
+ return createVNode(Fragment, null, [!!index && createVNode(VDivider, null, null), createVNode(VStepperItem, item, {
26302
+ default: slots[`header-item.${item.value}`] ?? slots.header,
26303
+ icon: slots.icon,
26304
+ title: slots.title,
26305
+ subtitle: slots.subtitle
26306
+ })]);
26307
+ })]
26275
26308
  }), hasWindow && createVNode(VStepperWindow, {
26276
26309
  "key": "stepper-window"
26277
26310
  }, {
@@ -26657,7 +26690,8 @@ const VTabsWindow = genericComponent()({
26657
26690
  }, windowProps, {
26658
26691
  "modelValue": model.value,
26659
26692
  "onUpdate:modelValue": $event => model.value = $event,
26660
- "class": "v-tabs-window",
26693
+ "class": ['v-tabs-window', props.class],
26694
+ "style": props.style,
26661
26695
  "mandatory": false,
26662
26696
  "touch": false
26663
26697
  }), slots);
@@ -27926,7 +27960,7 @@ function createVuetify$1() {
27926
27960
  goTo
27927
27961
  };
27928
27962
  }
27929
- const version$1 = "3.6.3-master.2024-05-07";
27963
+ const version$1 = "3.6.4-master.2024-05-09";
27930
27964
  createVuetify$1.version = version$1;
27931
27965
 
27932
27966
  // Vue's inject() can only be used in setup
@@ -27951,7 +27985,7 @@ const createVuetify = function () {
27951
27985
  ...options
27952
27986
  });
27953
27987
  };
27954
- const version = "3.6.3-master.2024-05-07";
27988
+ const version = "3.6.4-master.2024-05-09";
27955
27989
  createVuetify.version = version;
27956
27990
 
27957
27991
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };