vuetify 3.6.7 → 3.6.9

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 (122) hide show
  1. package/dist/json/attributes.json +48 -16
  2. package/dist/json/importMap-labs.json +24 -24
  3. package/dist/json/importMap.json +132 -132
  4. package/dist/json/tags.json +8 -0
  5. package/dist/json/web-types.json +130 -59
  6. package/dist/vuetify-labs.css +2341 -2261
  7. package/dist/vuetify-labs.d.ts +715 -1581
  8. package/dist/vuetify-labs.esm.js +266 -141
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +265 -140
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +1610 -1530
  13. package/dist/vuetify.d.ts +605 -1317
  14. package/dist/vuetify.esm.js +144 -103
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +143 -102
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +335 -330
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/blueprints/index.d.mts +58 -56
  22. package/lib/blueprints/md1.d.mts +58 -56
  23. package/lib/blueprints/md2.d.mts +58 -56
  24. package/lib/blueprints/md3.d.mts +58 -56
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs +17 -14
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/index.d.mts +102 -336
  28. package/lib/components/VBanner/VBanner.css +1 -0
  29. package/lib/components/VBanner/VBanner.sass +1 -0
  30. package/lib/components/VBanner/_variables.scss +1 -0
  31. package/lib/components/VCombobox/VCombobox.mjs +7 -11
  32. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  33. package/lib/components/VCombobox/index.d.mts +102 -336
  34. package/lib/components/VDatePicker/VDatePickerMonth.mjs +3 -0
  35. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  36. package/lib/components/VDivider/VDivider.mjs +1 -1
  37. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  38. package/lib/components/VEmptyState/VEmptyState.css +2 -2
  39. package/lib/components/VEmptyState/VEmptyState.mjs +1 -1
  40. package/lib/components/VEmptyState/VEmptyState.mjs.map +1 -1
  41. package/lib/components/VEmptyState/_variables.scss +2 -2
  42. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +1 -1
  43. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  44. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +1 -1
  45. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  46. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +1 -1
  47. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  48. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +1 -1
  49. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  50. package/lib/components/VExpansionPanel/index.d.mts +36 -36
  51. package/lib/components/VExpansionPanel/shared.mjs +4 -0
  52. package/lib/components/VExpansionPanel/shared.mjs.map +1 -0
  53. package/lib/components/VFab/VFab.mjs +4 -7
  54. package/lib/components/VFab/VFab.mjs.map +1 -1
  55. package/lib/components/VFab/index.d.mts +46 -49
  56. package/lib/components/VList/VList.mjs +4 -1
  57. package/lib/components/VList/VList.mjs.map +1 -1
  58. package/lib/components/VList/VListGroup.mjs +1 -0
  59. package/lib/components/VList/VListGroup.mjs.map +1 -1
  60. package/lib/components/VList/VListItem.css +2 -2
  61. package/lib/components/VList/VListItem.mjs +2 -0
  62. package/lib/components/VList/VListItem.mjs.map +1 -1
  63. package/lib/components/VList/VListItem.sass +1 -1
  64. package/lib/components/VList/index.d.mts +54 -66
  65. package/lib/components/VMenu/VMenu.mjs +1 -1
  66. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  67. package/lib/components/VOverlay/VOverlay.mjs +4 -3
  68. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  69. package/lib/components/VSelect/index.d.mts +102 -336
  70. package/lib/components/VSelectionControl/VSelectionControl.mjs +9 -1
  71. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  72. package/lib/components/VSlider/VSlider.mjs +2 -1
  73. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  74. package/lib/components/VSlider/VSliderThumb.mjs +2 -0
  75. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  76. package/lib/components/VSnackbar/VSnackbar.css +1 -1
  77. package/lib/components/VSnackbar/VSnackbar.sass +1 -1
  78. package/lib/components/VStepper/VStepper.mjs +19 -5
  79. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  80. package/lib/components/VStepper/VStepperItem.css +3 -0
  81. package/lib/components/VStepper/VStepperItem.mjs +1 -1
  82. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  83. package/lib/components/VStepper/VStepperItem.sass +3 -0
  84. package/lib/components/VStepper/VStepperWindow.mjs +2 -2
  85. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  86. package/lib/components/VStepper/index.d.mts +43 -9
  87. package/lib/components/VStepper/shared.mjs +4 -0
  88. package/lib/components/VStepper/shared.mjs.map +1 -0
  89. package/lib/components/VTabs/VTabs.mjs +2 -2
  90. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  91. package/lib/components/index.d.mts +417 -1128
  92. package/lib/composables/defaults.mjs +3 -1
  93. package/lib/composables/defaults.mjs.map +1 -1
  94. package/lib/composables/filter.mjs +1 -1
  95. package/lib/composables/filter.mjs.map +1 -1
  96. package/lib/composables/goto.mjs.map +1 -1
  97. package/lib/composables/icons.mjs.map +1 -1
  98. package/lib/composables/scroll.mjs +6 -0
  99. package/lib/composables/scroll.mjs.map +1 -1
  100. package/lib/entry-bundler.mjs +1 -1
  101. package/lib/framework.mjs +1 -1
  102. package/lib/index.d.mts +154 -155
  103. package/lib/labs/VNumberInput/VNumberInput.mjs +7 -1
  104. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  105. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs +1 -2
  106. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs.map +1 -1
  107. package/lib/labs/VStepperVertical/index.d.mts +43 -9
  108. package/lib/labs/VTimePicker/VTimePickerClock.mjs +3 -1
  109. package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
  110. package/lib/labs/VTimePicker/VTimePickerControls.mjs +7 -2
  111. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  112. package/lib/labs/VTreeview/VTreeview.mjs +4 -5
  113. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  114. package/lib/labs/VTreeview/VTreeviewChildren.mjs +30 -25
  115. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  116. package/lib/labs/VTreeview/VTreeviewItem.mjs +83 -12
  117. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  118. package/lib/labs/VTreeview/index.d.mts +116 -300
  119. package/lib/labs/components.d.mts +3408 -3558
  120. package/lib/styles/main.css +76 -0
  121. package/lib/styles/settings/_utilities.scss +5 -1
  122. package/package.json +2 -2
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.6.7
2
+ * Vuetify v3.6.9
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
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, onBeforeUnmount, watch, nextTick, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, createVNode, Suspense, TransitionGroup, Transition, mergeProps, 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, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, camelize, h, onBeforeUnmount, watch, nextTick, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, createVNode, Suspense, TransitionGroup, Transition, mergeProps, 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
  // Types
10
10
  // eslint-disable-line vue/prefer-import-from-vue
@@ -1257,6 +1257,53 @@ function getForeground(color) {
1257
1257
 
1258
1258
  // Types
1259
1259
 
1260
+ function getCurrentInstance(name, message) {
1261
+ const vm = getCurrentInstance$1();
1262
+ if (!vm) {
1263
+ throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
1264
+ }
1265
+ return vm;
1266
+ }
1267
+ function getCurrentInstanceName() {
1268
+ let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
1269
+ const vm = getCurrentInstance(name).type;
1270
+ return toKebabCase(vm?.aliasName || vm?.name);
1271
+ }
1272
+ let _uid = 0;
1273
+ let _map = new WeakMap();
1274
+ function getUid() {
1275
+ const vm = getCurrentInstance('getUid');
1276
+ if (_map.has(vm)) return _map.get(vm);else {
1277
+ const uid = _uid++;
1278
+ _map.set(vm, uid);
1279
+ return uid;
1280
+ }
1281
+ }
1282
+ getUid.reset = () => {
1283
+ _uid = 0;
1284
+ _map = new WeakMap();
1285
+ };
1286
+
1287
+ // Utilities
1288
+
1289
+ // Types
1290
+
1291
+ function injectSelf(key) {
1292
+ let vm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstance('injectSelf');
1293
+ const {
1294
+ provides
1295
+ } = vm;
1296
+ if (provides && key in provides) {
1297
+ // TS doesn't allow symbol as index type
1298
+ return provides[key];
1299
+ }
1300
+ return undefined;
1301
+ }
1302
+
1303
+ // Utilities
1304
+
1305
+ // Types
1306
+
1260
1307
  const DefaultsSymbol = Symbol.for('vuetify:defaults');
1261
1308
  function createDefaults(options) {
1262
1309
  return ref(options);
@@ -1482,37 +1529,6 @@ function getPrefixedEventHandlers(attrs, suffix, getData) {
1482
1529
  }, {});
1483
1530
  }
1484
1531
 
1485
- // Utilities
1486
-
1487
- // Types
1488
-
1489
- function getCurrentInstance(name, message) {
1490
- const vm = getCurrentInstance$1();
1491
- if (!vm) {
1492
- throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
1493
- }
1494
- return vm;
1495
- }
1496
- function getCurrentInstanceName() {
1497
- let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
1498
- const vm = getCurrentInstance(name).type;
1499
- return toKebabCase(vm?.aliasName || vm?.name);
1500
- }
1501
- let _uid = 0;
1502
- let _map = new WeakMap();
1503
- function getUid() {
1504
- const vm = getCurrentInstance('getUid');
1505
- if (_map.has(vm)) return _map.get(vm);else {
1506
- const uid = _uid++;
1507
- _map.set(vm, uid);
1508
- return uid;
1509
- }
1510
- }
1511
- getUid.reset = () => {
1512
- _uid = 0;
1513
- _map = new WeakMap();
1514
- };
1515
-
1516
1532
  function getScrollParent(el) {
1517
1533
  let includeHidden = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1518
1534
  while (el) {
@@ -1542,22 +1558,6 @@ function isPotentiallyScrollable(el) {
1542
1558
  return ['scroll', 'auto'].includes(style.overflowY);
1543
1559
  }
1544
1560
 
1545
- // Utilities
1546
-
1547
- // Types
1548
-
1549
- function injectSelf(key) {
1550
- let vm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstance('injectSelf');
1551
- const {
1552
- provides
1553
- } = vm;
1554
- if (provides && key in provides) {
1555
- // TS doesn't allow symbol as index type
1556
- return provides[key];
1557
- }
1558
- return undefined;
1559
- }
1560
-
1561
1561
  function isFixedPosition(el) {
1562
1562
  while (el) {
1563
1563
  if (window.getComputedStyle(el).position === 'fixed') {
@@ -3756,6 +3756,7 @@ function useScroll(props) {
3756
3756
  canScroll
3757
3757
  } = args;
3758
3758
  let previousScroll = 0;
3759
+ let previousScrollHeight = 0;
3759
3760
  const target = ref(null);
3760
3761
  const currentScroll = shallowRef(0);
3761
3762
  const savedScroll = shallowRef(0);
@@ -3778,6 +3779,11 @@ function useScroll(props) {
3778
3779
  if (!targetEl || canScroll && !canScroll.value) return;
3779
3780
  previousScroll = currentScroll.value;
3780
3781
  currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
3782
+ const currentScrollHeight = targetEl instanceof Window ? document.documentElement.scrollHeight : targetEl.scrollHeight;
3783
+ if (previousScrollHeight !== currentScrollHeight) {
3784
+ previousScrollHeight = currentScrollHeight;
3785
+ return;
3786
+ }
3781
3787
  isScrollingUp.value = currentScroll.value < previousScroll;
3782
3788
  currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);
3783
3789
  };
@@ -6249,7 +6255,15 @@ const VSelectionControl = genericComponent()({
6249
6255
  e.stopPropagation();
6250
6256
  }
6251
6257
  function onInput(e) {
6252
- if (!isInteractive.value) return;
6258
+ if (!isInteractive.value) {
6259
+ if (input.value) {
6260
+ // model value is not updated when input is not interactive
6261
+ // but the internal checked state of the input is still updated,
6262
+ // so here it's value is restored
6263
+ input.value.checked = model.value;
6264
+ }
6265
+ return;
6266
+ }
6253
6267
  if (props.readonly && group) {
6254
6268
  nextTick(() => group.forceUpdate());
6255
6269
  }
@@ -8702,6 +8716,7 @@ const VListGroup = genericComponent()({
8702
8716
  isBooted
8703
8717
  } = useSsrBoot();
8704
8718
  function onClick(e) {
8719
+ e.stopPropagation();
8705
8720
  open(!isOpen.value, e);
8706
8721
  }
8707
8722
  const activatorProps = computed(() => ({
@@ -9035,6 +9050,8 @@ const VListItem = genericComponent()({
9035
9050
  }), [[resolveDirective("ripple"), isClickable.value && props.ripple]]);
9036
9051
  });
9037
9052
  return {
9053
+ activate,
9054
+ isActivated,
9038
9055
  isGroupActivator,
9039
9056
  isSelected,
9040
9057
  list,
@@ -9110,7 +9127,7 @@ const VDivider = genericComponent()({
9110
9127
  const dividerStyles = computed(() => {
9111
9128
  const styles = {};
9112
9129
  if (props.length) {
9113
- styles[props.vertical ? 'maxHeight' : 'maxWidth'] = convertToUnit(props.length);
9130
+ styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
9114
9131
  }
9115
9132
  if (props.thickness) {
9116
9133
  styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
@@ -9371,6 +9388,9 @@ const makeVListProps = propsFactory({
9371
9388
  },
9372
9389
  slim: Boolean,
9373
9390
  nav: Boolean,
9391
+ 'onClick:open': EventProp(),
9392
+ 'onClick:select': EventProp(),
9393
+ 'onUpdate:opened': EventProp(),
9374
9394
  ...makeNestedProps({
9375
9395
  selectStrategy: 'single-leaf',
9376
9396
  openStrategy: 'list'
@@ -10774,9 +10794,6 @@ const VOverlay = genericComponent()({
10774
10794
  if (!(v && props.disabled)) model.value = v;
10775
10795
  }
10776
10796
  });
10777
- const {
10778
- teleportTarget
10779
- } = useTeleport(computed(() => props.attach || props.contained));
10780
10797
  const {
10781
10798
  themeClasses
10782
10799
  } = provideTheme(props);
@@ -10809,6 +10826,10 @@ const VOverlay = genericComponent()({
10809
10826
  isActive,
10810
10827
  isTop: localTop
10811
10828
  });
10829
+ const potentialShadowDomRoot = computed(() => activatorEl?.value?.getRootNode());
10830
+ const {
10831
+ teleportTarget
10832
+ } = useTeleport(computed(() => props.attach || props.contained || potentialShadowDomRoot.value instanceof ShadowRoot ? potentialShadowDomRoot.value : false));
10812
10833
  const {
10813
10834
  dimensionStyles
10814
10835
  } = useDimension(props);
@@ -11151,7 +11172,7 @@ const VMenu = genericComponent()({
11151
11172
  function onKeydown(e) {
11152
11173
  if (props.disabled) return;
11153
11174
  if (e.key === 'Tab' || e.key === 'Enter' && !props.closeOnContentClick) {
11154
- if (e.key === 'Enter' && e.target instanceof HTMLTextAreaElement) return;
11175
+ if (e.key === 'Enter' && (e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLInputElement && !!e.target.closest('form'))) return;
11155
11176
  if (e.key === 'Enter') e.preventDefault();
11156
11177
  const nextElement = getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? 'prev' : 'next', el => el.tabIndex >= 0);
11157
11178
  if (!nextElement) {
@@ -12682,7 +12703,7 @@ function filterItems(items, query, options) {
12682
12703
  const customMatches = {};
12683
12704
  const defaultMatches = {};
12684
12705
  let match = -1;
12685
- if (query && !options?.noFilter) {
12706
+ if ((query || customFiltersLength > 0) && !options?.noFilter) {
12686
12707
  if (typeof item === 'object') {
12687
12708
  const filterKeys = keys || Object.keys(transformed);
12688
12709
  for (const key of filterKeys) {
@@ -12895,7 +12916,12 @@ const VAutocomplete = genericComponent()({
12895
12916
  if (['Escape'].includes(e.key)) {
12896
12917
  menu.value = false;
12897
12918
  }
12898
- if (highlightFirst.value && e.key === 'Enter') {
12919
+ if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {
12920
+ let {
12921
+ value
12922
+ } = _ref2;
12923
+ return value === displayItems.value[0].value;
12924
+ })) {
12899
12925
  select(displayItems.value[0]);
12900
12926
  }
12901
12927
  if (e.key === 'ArrowDown' && highlightFirst.value) {
@@ -12998,16 +13024,14 @@ const VAutocomplete = genericComponent()({
12998
13024
  isPristine.value = true;
12999
13025
  nextTick(() => isSelecting.value = false);
13000
13026
  } else {
13001
- if (!props.multiple && search.value == null) model.value = [];else if (highlightFirst.value && !listHasFocus.value && !model.value.some(_ref2 => {
13002
- let {
13003
- value
13004
- } = _ref2;
13005
- return value === displayItems.value[0].value;
13006
- })) {
13007
- select(displayItems.value[0]);
13008
- }
13027
+ if (!props.multiple && search.value == null) model.value = [];
13009
13028
  menu.value = false;
13010
- if (props.multiple || hasSelectionSlot.value) search.value = '';
13029
+ if (!model.value.some(_ref3 => {
13030
+ let {
13031
+ title
13032
+ } = _ref3;
13033
+ return title === search.value;
13034
+ })) search.value = '';
13011
13035
  selectionIndex.value = -1;
13012
13036
  }
13013
13037
  });
@@ -13093,12 +13117,12 @@ const VAutocomplete = genericComponent()({
13093
13117
  "renderless": true,
13094
13118
  "items": displayItems.value
13095
13119
  }, {
13096
- default: _ref3 => {
13120
+ default: _ref4 => {
13097
13121
  let {
13098
13122
  item,
13099
13123
  index,
13100
13124
  itemRef
13101
- } = _ref3;
13125
+ } = _ref4;
13102
13126
  const itemProps = mergeProps(item.props, {
13103
13127
  ref: itemRef,
13104
13128
  key: index,
@@ -13112,10 +13136,10 @@ const VAutocomplete = genericComponent()({
13112
13136
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
13113
13137
  "role": "option"
13114
13138
  }), {
13115
- prepend: _ref4 => {
13139
+ prepend: _ref5 => {
13116
13140
  let {
13117
13141
  isSelected
13118
- } = _ref4;
13142
+ } = _ref5;
13119
13143
  return createVNode(Fragment, null, [props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
13120
13144
  "key": item.value,
13121
13145
  "modelValue": isSelected,
@@ -15523,6 +15547,7 @@ const makeVSliderThumbProps = propsFactory({
15523
15547
  type: [Boolean, Object],
15524
15548
  default: true
15525
15549
  },
15550
+ name: String,
15526
15551
  ...makeComponentProps()
15527
15552
  }, 'VSliderThumb');
15528
15553
  const VSliderThumb = genericComponent()({
@@ -15619,6 +15644,7 @@ const VSliderThumb = genericComponent()({
15619
15644
  }, props.style],
15620
15645
  "role": "slider",
15621
15646
  "tabindex": disabled.value ? -1 : 0,
15647
+ "aria-label": props.name,
15622
15648
  "aria-valuemin": props.min,
15623
15649
  "aria-valuemax": props.max,
15624
15650
  "aria-valuenow": props.modelValue,
@@ -15895,7 +15921,8 @@ const VSlider = genericComponent()({
15895
15921
  "elevation": props.elevation,
15896
15922
  "onFocus": focus,
15897
15923
  "onBlur": blur,
15898
- "ripple": props.ripple
15924
+ "ripple": props.ripple,
15925
+ "name": props.name
15899
15926
  }, {
15900
15927
  'thumb-label': slots['thumb-label']
15901
15928
  })]);
@@ -16762,8 +16789,13 @@ const VCombobox = genericComponent()({
16762
16789
  if (['Escape'].includes(e.key)) {
16763
16790
  menu.value = false;
16764
16791
  }
16765
- if (['Enter', 'Escape'].includes(e.key)) {
16766
- if (highlightFirst.value && e.key === 'Enter') {
16792
+ if (['Enter', 'Escape', 'Tab'].includes(e.key)) {
16793
+ if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {
16794
+ let {
16795
+ value
16796
+ } = _ref2;
16797
+ return value === displayItems.value[0].value;
16798
+ })) {
16767
16799
  select(filteredItems.value[0]);
16768
16800
  }
16769
16801
  isPristine.value = true;
@@ -16858,15 +16890,6 @@ const VCombobox = genericComponent()({
16858
16890
  if (val || val === oldVal) return;
16859
16891
  selectionIndex.value = -1;
16860
16892
  menu.value = false;
16861
- if (highlightFirst.value && !listHasFocus.value && !model.value.some(_ref2 => {
16862
- let {
16863
- value
16864
- } = _ref2;
16865
- return value === displayItems.value[0].value;
16866
- })) {
16867
- select(displayItems.value[0]);
16868
- return;
16869
- }
16870
16893
  if (search.value) {
16871
16894
  if (props.multiple) {
16872
16895
  select(transformItem$3(props, search.value));
@@ -21520,6 +21543,9 @@ const VDatePickerMonth = genericComponent()({
21520
21543
  });
21521
21544
  function onRangeClick(value) {
21522
21545
  const _value = adapter.startOfDay(value);
21546
+ if (model.value.length === 0) {
21547
+ rangeStart.value = undefined;
21548
+ }
21523
21549
  if (!rangeStart.value) {
21524
21550
  rangeStart.value = _value;
21525
21551
  model.value = [rangeStart.value];
@@ -22227,7 +22253,7 @@ const VEmptyState = genericComponent()({
22227
22253
  "defaults": {
22228
22254
  VBtn: {
22229
22255
  class: 'v-empty-state__action-btn',
22230
- color: props.color,
22256
+ color: props.color ?? 'surface-variant',
22231
22257
  text: props.actionText
22232
22258
  }
22233
22259
  }
@@ -22245,6 +22271,10 @@ const VEmptyState = genericComponent()({
22245
22271
  }
22246
22272
  });
22247
22273
 
22274
+ // Types
22275
+
22276
+ const VExpansionPanelSymbol = Symbol.for('vuetify:v-expansion-panel');
22277
+
22248
22278
  const makeVExpansionPanelTextProps = propsFactory({
22249
22279
  ...makeComponentProps(),
22250
22280
  ...makeLazyProps()
@@ -22425,7 +22455,6 @@ const VExpansionPanel = genericComponent()({
22425
22455
 
22426
22456
  // Types
22427
22457
 
22428
- const VExpansionPanelSymbol = Symbol.for('vuetify:v-expansion-panel');
22429
22458
  const allowedVariants = ['default', 'accordion', 'inset', 'popout'];
22430
22459
  const makeVExpansionPanelsProps = propsFactory({
22431
22460
  flat: Boolean,
@@ -22491,15 +22520,13 @@ const VExpansionPanels = genericComponent()({
22491
22520
  }
22492
22521
  });
22493
22522
 
22523
+ // Types
22524
+
22494
22525
  const makeVFabProps = propsFactory({
22495
22526
  app: Boolean,
22496
22527
  appear: Boolean,
22497
22528
  extended: Boolean,
22498
22529
  layout: Boolean,
22499
- location: {
22500
- type: String,
22501
- default: 'bottom end'
22502
- },
22503
22530
  offset: Boolean,
22504
22531
  modelValue: {
22505
22532
  type: Boolean,
@@ -22509,6 +22536,7 @@ const makeVFabProps = propsFactory({
22509
22536
  active: true
22510
22537
  }), ['location']),
22511
22538
  ...makeLayoutItemProps(),
22539
+ ...makeLocationProps(),
22512
22540
  ...makeTransitionProps({
22513
22541
  transition: 'fab-transition'
22514
22542
  })
@@ -22535,11 +22563,11 @@ const VFab = genericComponent()({
22535
22563
  const hasPosition = computed(() => props.app || props.absolute);
22536
22564
  const position = computed(() => {
22537
22565
  if (!hasPosition.value) return false;
22538
- return props.location.split(' ').shift();
22566
+ return props.location?.split(' ').shift() ?? 'bottom';
22539
22567
  });
22540
22568
  const orientation = computed(() => {
22541
22569
  if (!hasPosition.value) return false;
22542
- return props.location.split(' ')[1] ?? 'end';
22570
+ return props.location?.split(' ')[1] ?? 'end';
22543
22571
  });
22544
22572
  useToggleScope(() => props.app, () => {
22545
22573
  const layout = useLayoutItem({
@@ -25769,6 +25797,10 @@ const VSpeedDial = genericComponent()({
25769
25797
 
25770
25798
  // Types
25771
25799
 
25800
+ const VStepperSymbol = Symbol.for('vuetify:v-stepper');
25801
+
25802
+ // Types
25803
+
25772
25804
  const makeVStepperActionsProps = propsFactory({
25773
25805
  color: String,
25774
25806
  disabled: {
@@ -25956,9 +25988,6 @@ const VStepperItem = genericComponent()({
25956
25988
  }
25957
25989
  });
25958
25990
 
25959
- // Types
25960
-
25961
- const VStepperSymbol$1 = Symbol.for('vuetify:v-stepper');
25962
25991
  const makeVStepperWindowProps = propsFactory({
25963
25992
  ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory'])
25964
25993
  }, 'VStepperWindow');
@@ -25972,7 +26001,7 @@ const VStepperWindow = genericComponent()({
25972
26001
  let {
25973
26002
  slots
25974
26003
  } = _ref;
25975
- const group = inject$1(VStepperSymbol$1, null);
26004
+ const group = inject$1(VStepperSymbol, null);
25976
26005
  const _model = useProxiedModel(props, 'modelValue');
25977
26006
  const model = computed({
25978
26007
  get() {
@@ -26030,11 +26059,13 @@ const VStepperWindowItem = genericComponent()({
26030
26059
 
26031
26060
  // Types
26032
26061
 
26033
- const VStepperSymbol = Symbol.for('vuetify:v-stepper');
26034
26062
  const makeStepperProps = propsFactory({
26035
26063
  altLabels: Boolean,
26036
26064
  bgColor: String,
26065
+ completeIcon: String,
26066
+ editIcon: String,
26037
26067
  editable: Boolean,
26068
+ errorIcon: String,
26038
26069
  hideActions: Boolean,
26039
26070
  items: {
26040
26071
  type: Array,
@@ -26048,9 +26079,9 @@ const makeStepperProps = propsFactory({
26048
26079
  type: String,
26049
26080
  default: 'value'
26050
26081
  },
26051
- mobile: Boolean,
26052
26082
  nonLinear: Boolean,
26053
- flat: Boolean
26083
+ flat: Boolean,
26084
+ ...makeDisplayProps()
26054
26085
  }, 'Stepper');
26055
26086
  const makeVStepperProps = propsFactory({
26056
26087
  ...makeStepperProps(),
@@ -26078,6 +26109,13 @@ const VStepper = genericComponent()({
26078
26109
  selected
26079
26110
  } = useGroup(props, VStepperSymbol);
26080
26111
  const {
26112
+ displayClasses,
26113
+ mobile
26114
+ } = useDisplay(props);
26115
+ const {
26116
+ completeIcon,
26117
+ editIcon,
26118
+ errorIcon,
26081
26119
  color,
26082
26120
  editable,
26083
26121
  prevText,
@@ -26104,6 +26142,9 @@ const VStepper = genericComponent()({
26104
26142
  provideDefaults({
26105
26143
  VStepperItem: {
26106
26144
  editable,
26145
+ errorIcon,
26146
+ completeIcon,
26147
+ editIcon,
26107
26148
  prevText,
26108
26149
  nextText
26109
26150
  },
@@ -26125,8 +26166,8 @@ const VStepper = genericComponent()({
26125
26166
  'v-stepper--alt-labels': props.altLabels,
26126
26167
  'v-stepper--flat': props.flat,
26127
26168
  'v-stepper--non-linear': props.nonLinear,
26128
- 'v-stepper--mobile': props.mobile
26129
- }, props.class],
26169
+ 'v-stepper--mobile': mobile.value
26170
+ }, displayClasses.value, props.class],
26130
26171
  "style": props.style
26131
26172
  }), {
26132
26173
  default: () => [hasHeader && createVNode(VStepperHeader, {
@@ -26656,9 +26697,9 @@ const VTabs = genericComponent()({
26656
26697
  "key": item.text,
26657
26698
  "value": item.value
26658
26699
  }), {
26659
- default: () => slots[`tab.${item.value}`]?.({
26700
+ default: slots[`tab.${item.value}`] ? () => slots[`tab.${item.value}`]?.({
26660
26701
  item
26661
- })
26702
+ }) : undefined
26662
26703
  }))]
26663
26704
  }), hasWindow && createVNode(VTabsWindow, mergeProps({
26664
26705
  "modelValue": model.value,
@@ -27953,7 +27994,6 @@ const makeVNumberInputProps = propsFactory({
27953
27994
  }, 'VNumberInput');
27954
27995
  const VNumberInput = genericComponent()({
27955
27996
  name: 'VNumberInput',
27956
- inheritAttrs: false,
27957
27997
  props: {
27958
27998
  ...makeVNumberInputProps()
27959
27999
  },
@@ -27969,15 +28009,20 @@ const VNumberInput = genericComponent()({
27969
28009
  const model = useProxiedModel(props, 'modelValue');
27970
28010
  const stepDecimals = computed(() => getDecimals(props.step));
27971
28011
  const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0);
28012
+ const form = useForm();
28013
+ const controlsDisabled = computed(() => props.disabled || props.readonly || form?.isReadonly.value);
27972
28014
  const canIncrease = computed(() => {
28015
+ if (controlsDisabled.value) return false;
27973
28016
  if (model.value == null) return true;
27974
28017
  return model.value + props.step <= props.max;
27975
28018
  });
27976
28019
  const canDecrease = computed(() => {
28020
+ if (controlsDisabled.value) return false;
27977
28021
  if (model.value == null) return true;
27978
28022
  return model.value - props.step >= props.min;
27979
28023
  });
27980
28024
  watchEffect(() => {
28025
+ if (controlsDisabled.value) return;
27981
28026
  if (model.value != null && (model.value < props.min || model.value > props.max)) {
27982
28027
  model.value = clamp(model.value, props.min, props.max);
27983
28028
  }
@@ -27993,6 +28038,7 @@ const VNumberInput = genericComponent()({
27993
28038
  }));
27994
28039
  function toggleUpDown() {
27995
28040
  let increment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
28041
+ if (controlsDisabled.value) return;
27996
28042
  if (model.value == null) {
27997
28043
  model.value = 0;
27998
28044
  return;
@@ -28721,6 +28767,7 @@ const VTimePickerClock = genericComponent()({
28721
28767
  return !props.allowedValues || props.allowedValues(value);
28722
28768
  }
28723
28769
  function wheel(e) {
28770
+ if (!props.scrollable || props.disabled) return;
28724
28771
  e.preventDefault();
28725
28772
  const delta = Math.sign(-e.deltaY || 1);
28726
28773
  let value = displayedValue.value;
@@ -28815,6 +28862,7 @@ const VTimePickerClock = genericComponent()({
28815
28862
  }
28816
28863
  }
28817
28864
  function onMouseDown(e) {
28865
+ if (props.disabled) return;
28818
28866
  e.preventDefault();
28819
28867
  window.addEventListener('mousemove', onDragMove);
28820
28868
  window.addEventListener('touchmove', onDragMove);
@@ -28845,7 +28893,7 @@ const VTimePickerClock = genericComponent()({
28845
28893
  }],
28846
28894
  "onMousedown": onMouseDown,
28847
28895
  "onTouchstart": onMouseDown,
28848
- "onWheel": e => props.scrollable && wheel(e),
28896
+ "onWheel": wheel,
28849
28897
  "ref": clockRef
28850
28898
  }, [createVNode("div", {
28851
28899
  "class": "v-time-picker-clock__inner",
@@ -28947,6 +28995,7 @@ const VTimePickerControls = genericComponent()({
28947
28995
  }, [createVNode(VBtn, {
28948
28996
  "active": props.selecting === 1,
28949
28997
  "color": props.selecting === 1 ? props.color : undefined,
28998
+ "disabled": props.disabled,
28950
28999
  "variant": "tonal",
28951
29000
  "class": {
28952
29001
  'v-time-picker-controls__time__btn': true,
@@ -28968,6 +29017,7 @@ const VTimePickerControls = genericComponent()({
28968
29017
  'v-time-picker-controls__time--with-ampm__btn': props.ampm,
28969
29018
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
28970
29019
  },
29020
+ "disabled": props.disabled,
28971
29021
  "variant": "tonal",
28972
29022
  "text": props.minute == null ? '--' : pad(props.minute),
28973
29023
  "onClick": () => emit('update:selecting', SelectingTimes.Minute)
@@ -28985,6 +29035,7 @@ const VTimePickerControls = genericComponent()({
28985
29035
  'v-time-picker-controls__time__btn__active': props.selecting === 3,
28986
29036
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
28987
29037
  },
29038
+ "disabled": props.disabled,
28988
29039
  "text": props.second == null ? '--' : pad(props.second)
28989
29040
  }, null), props.ampm && createVNode("div", {
28990
29041
  "class": ['v-time-picker-controls__ampm', {
@@ -28998,8 +29049,9 @@ const VTimePickerControls = genericComponent()({
28998
29049
  'v-time-picker-controls__ampm__btn': true,
28999
29050
  'v-time-picker-controls__ampm__btn__active': props.period === 'am'
29000
29051
  },
29052
+ "disabled": props.disabled,
29001
29053
  "text": t('$vuetify.timePicker.am'),
29002
- "variant": "tonal",
29054
+ "variant": props.disabled && props.period === 'am' ? 'elevated' : 'tonal',
29003
29055
  "onClick": () => props.period !== 'am' ? emit('update:period', 'am') : null
29004
29056
  }, null), createVNode(VBtn, {
29005
29057
  "active": props.period === 'pm',
@@ -29009,8 +29061,9 @@ const VTimePickerControls = genericComponent()({
29009
29061
  'v-time-picker-controls__ampm__btn': true,
29010
29062
  'v-time-picker-controls__ampm__btn__active': props.period === 'pm'
29011
29063
  },
29064
+ "disabled": props.disabled,
29012
29065
  "text": t('$vuetify.timePicker.pm'),
29013
- "variant": "tonal",
29066
+ "variant": props.disabled && props.period === 'pm' ? 'elevated' : 'tonal',
29014
29067
  "onClick": () => props.period !== 'pm' ? emit('update:period', 'pm') : null
29015
29068
  }, null)])])]);
29016
29069
  });
@@ -29334,32 +29387,100 @@ const VTreeviewItem = genericComponent()({
29334
29387
  emit
29335
29388
  } = _ref;
29336
29389
  const link = useLink(props, attrs);
29337
- const id = computed(() => props.value === undefined ? link.href.value : props.value);
29390
+ const rawId = computed(() => props.value === undefined ? link.href.value : props.value);
29338
29391
  const vListItemRef = ref();
29392
+ const {
29393
+ activate,
29394
+ isActivated,
29395
+ select,
29396
+ isSelected,
29397
+ isIndeterminate,
29398
+ isGroupActivator,
29399
+ root,
29400
+ id
29401
+ } = useNestedItem(rawId, false);
29402
+ const isActivatableGroupActivator = computed(() => root.activatable.value && isGroupActivator);
29403
+ const {
29404
+ densityClasses
29405
+ } = useDensity(props, 'v-list-item');
29406
+ const slotProps = computed(() => ({
29407
+ isActive: isActivated.value,
29408
+ select,
29409
+ isSelected: isSelected.value,
29410
+ isIndeterminate: isIndeterminate.value
29411
+ }));
29339
29412
  const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list));
29340
- function onClick(e) {
29341
- if (!vListItemRef.value?.isGroupActivator || !isClickable.value) return;
29342
- props.value != null && vListItemRef.value?.select(!vListItemRef.value?.isSelected, e);
29413
+ function activateItem(e) {
29414
+ if (!isClickable.value || !isActivatableGroupActivator.value && isGroupActivator) return;
29415
+ if (root.activatable.value) {
29416
+ if (isActivatableGroupActivator.value) {
29417
+ activate(!isActivated.value, e);
29418
+ } else {
29419
+ vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
29420
+ }
29421
+ }
29343
29422
  }
29344
29423
  function onKeyDown(e) {
29345
29424
  if (e.key === 'Enter' || e.key === ' ') {
29346
29425
  e.preventDefault();
29347
- onClick(e);
29426
+ activateItem(e);
29348
29427
  }
29349
29428
  }
29350
29429
  const visibleIds = inject$1(VTreeviewSymbol, {
29351
29430
  visibleIds: ref()
29352
29431
  }).visibleIds;
29353
29432
  useRender(() => {
29433
+ const hasTitle = slots.title || props.title != null;
29434
+ const hasSubtitle = slots.subtitle || props.subtitle != null;
29354
29435
  const listItemProps = VListItem.filterProps(props);
29355
29436
  const hasPrepend = slots.prepend || props.toggleIcon;
29356
- return createVNode(VListItem, mergeProps({
29437
+ return isActivatableGroupActivator.value ? withDirectives(createVNode("div", {
29438
+ "class": ['v-list-item', 'v-list-item--one-line', 'v-treeview-item', 'v-treeview-item--activetable-group-activator', {
29439
+ 'v-list-item--active': isActivated.value || isSelected.value,
29440
+ 'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
29441
+ }, densityClasses.value, props.class],
29442
+ "onClick": activateItem
29443
+ }, [createVNode(Fragment, null, [genOverlays(isActivated.value || isSelected.value, 'v-list-item'), props.toggleIcon && createVNode(VListItemAction, {
29444
+ "start": false
29445
+ }, {
29446
+ default: () => [createVNode(VBtn, {
29447
+ "density": "compact",
29448
+ "icon": props.toggleIcon,
29449
+ "loading": props.loading,
29450
+ "variant": "text",
29451
+ "onClick": props.onClick
29452
+ }, {
29453
+ loader() {
29454
+ return createVNode(VProgressCircular, {
29455
+ "indeterminate": "disable-shrink",
29456
+ "size": "20",
29457
+ "width": "2"
29458
+ }, null);
29459
+ }
29460
+ })]
29461
+ })]), createVNode("div", {
29462
+ "class": "v-list-item__content",
29463
+ "data-no-activator": ""
29464
+ }, [hasTitle && createVNode(VListItemTitle, {
29465
+ "key": "title"
29466
+ }, {
29467
+ default: () => [slots.title?.({
29468
+ title: props.title
29469
+ }) ?? props.title]
29470
+ }), hasSubtitle && createVNode(VListItemSubtitle, {
29471
+ "key": "subtitle"
29472
+ }, {
29473
+ default: () => [slots.subtitle?.({
29474
+ subtitle: props.subtitle
29475
+ }) ?? props.subtitle]
29476
+ }), slots.default?.(slotProps.value)])]), [[resolveDirective("ripple"), isClickable.value && props.ripple]]) : createVNode(VListItem, mergeProps({
29357
29477
  "ref": vListItemRef
29358
29478
  }, listItemProps, {
29359
29479
  "class": ['v-treeview-item', {
29360
29480
  'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
29361
29481
  }, props.class],
29362
- "onClick": onClick,
29482
+ "value": id.value,
29483
+ "onClick": activateItem,
29363
29484
  "onKeydown": isClickable.value && onKeyDown
29364
29485
  }), {
29365
29486
  ...slots,
@@ -29398,7 +29519,8 @@ const makeVTreeviewChildrenProps = propsFactory({
29398
29519
  default: '$loading'
29399
29520
  },
29400
29521
  items: Array,
29401
- selectable: Boolean
29522
+ selectable: Boolean,
29523
+ selectStrategy: [String, Function, Object]
29402
29524
  }, 'VTreeviewChildren');
29403
29525
  const VTreeviewChildren = genericComponent()({
29404
29526
  name: 'VTreeviewChildren',
@@ -29422,9 +29544,10 @@ const VTreeviewChildren = genericComponent()({
29422
29544
  isLoading.value = null;
29423
29545
  });
29424
29546
  }
29425
- function onClick(e, item) {
29426
- e.stopPropagation();
29427
- checkChildren(item);
29547
+ function selectItem(select, isSelected) {
29548
+ if (props.selectable) {
29549
+ select(!isSelected);
29550
+ }
29428
29551
  }
29429
29552
  return () => slots.default?.() ?? props.items?.map(_ref2 => {
29430
29553
  let {
@@ -29434,23 +29557,21 @@ const VTreeviewChildren = genericComponent()({
29434
29557
  } = _ref2;
29435
29558
  const loading = isLoading.value === item.value;
29436
29559
  const slotsWithItem = {
29437
- prepend: slots.prepend ? slotProps => slots.prepend?.({
29560
+ prepend: slotProps => createVNode(Fragment, null, [props.selectable && (!children || children && !['leaf', 'single-leaf'].includes(props.selectStrategy)) && createVNode("div", null, [createVNode(VCheckboxBtn, {
29561
+ "key": item.value,
29562
+ "modelValue": slotProps.isSelected,
29563
+ "loading": loading,
29564
+ "indeterminate": slotProps.isIndeterminate,
29565
+ "onClick": withModifiers(() => selectItem(slotProps.select, slotProps.isSelected), ['stop']),
29566
+ "onKeydown": e => {
29567
+ if (!['Enter', 'Space'].includes(e.key)) return;
29568
+ e.stopPropagation();
29569
+ selectItem(slotProps.select, slotProps.isSelected);
29570
+ }
29571
+ }, null)]), slots.prepend?.({
29438
29572
  ...slotProps,
29439
29573
  item
29440
- }) : props.selectable ? _ref3 => {
29441
- let {
29442
- isSelected,
29443
- isIndeterminate
29444
- } = _ref3;
29445
- return createVNode(VCheckboxBtn, {
29446
- "key": item.value,
29447
- "tabindex": "-1",
29448
- "modelValue": isSelected,
29449
- "loading": loading,
29450
- "indeterminate": isIndeterminate,
29451
- "onClick": e => onClick(e, item)
29452
- }, null);
29453
- } : undefined,
29574
+ })]),
29454
29575
  append: slots.append ? slotProps => slots.append?.({
29455
29576
  ...slotProps,
29456
29577
  item
@@ -29465,13 +29586,18 @@ const VTreeviewChildren = genericComponent()({
29465
29586
  return children ? createVNode(VTreeviewGroup, mergeProps({
29466
29587
  "value": itemProps?.value
29467
29588
  }, treeviewGroupProps), {
29468
- activator: _ref4 => {
29589
+ activator: _ref3 => {
29469
29590
  let {
29470
29591
  props: activatorProps
29471
- } = _ref4;
29472
- return createVNode(VTreeviewItem, mergeProps(itemProps, activatorProps, {
29592
+ } = _ref3;
29593
+ const listItemProps = {
29594
+ ...itemProps,
29595
+ ...activatorProps,
29596
+ value: itemProps?.value
29597
+ };
29598
+ return createVNode(VTreeviewItem, mergeProps(listItemProps, {
29473
29599
  "loading": loading,
29474
- "onClick": e => onClick(e, item)
29600
+ "onClick": () => checkChildren(item)
29475
29601
  }), slotsWithItem);
29476
29602
  },
29477
29603
  default: () => createVNode(VTreeviewChildren, mergeProps(treeviewChildrenProps, {
@@ -29502,7 +29628,7 @@ const makeVTreeviewProps = propsFactory({
29502
29628
  ...omit(makeVListProps({
29503
29629
  collapseIcon: '$treeviewCollapse',
29504
29630
  expandIcon: '$treeviewExpand',
29505
- selectStrategy: 'independent',
29631
+ selectStrategy: 'classic',
29506
29632
  openStrategy: 'multiple',
29507
29633
  slim: true
29508
29634
  }), ['nav'])
@@ -29521,6 +29647,7 @@ const VTreeview = genericComponent()({
29521
29647
  let {
29522
29648
  slots
29523
29649
  } = _ref;
29650
+ const vm = getCurrentInstance('VTreeview');
29524
29651
  const {
29525
29652
  items
29526
29653
  } = useListItems(props);
@@ -29603,15 +29730,13 @@ const VTreeview = genericComponent()({
29603
29730
  }
29604
29731
  });
29605
29732
  useRender(() => {
29606
- const listProps = VList.filterProps(props);
29733
+ const listProps = VList.filterProps(vm.vnode.props);
29607
29734
  const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
29608
29735
  return createVNode(VList, mergeProps({
29609
29736
  "ref": vListRef
29610
29737
  }, listProps, {
29611
29738
  "class": ['v-treeview', props.class],
29612
29739
  "style": props.style,
29613
- "opened": opened.value,
29614
- "onUpdate:opened": $event => opened.value = $event,
29615
29740
  "activated": activated.value,
29616
29741
  "onUpdate:activated": $event => activated.value = $event,
29617
29742
  "selected": selected.value,
@@ -30123,7 +30248,7 @@ function createVuetify$1() {
30123
30248
  goTo
30124
30249
  };
30125
30250
  }
30126
- const version$1 = "3.6.7";
30251
+ const version$1 = "3.6.9";
30127
30252
  createVuetify$1.version = version$1;
30128
30253
 
30129
30254
  // Vue's inject() can only be used in setup
@@ -30376,7 +30501,7 @@ var index = /*#__PURE__*/Object.freeze({
30376
30501
 
30377
30502
  /* eslint-disable local-rules/sort-imports */
30378
30503
 
30379
- const version = "3.6.7";
30504
+ const version = "3.6.9";
30380
30505
 
30381
30506
  /* eslint-disable local-rules/sort-imports */
30382
30507