@vuetify/nightly 3.9.0-beta.1-dev.2025-07-02 → 3.9.0-beta.1-dev.2025-07-05

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 (65) hide show
  1. package/CHANGELOG.md +15 -3
  2. package/dist/json/attributes.json +3282 -3290
  3. package/dist/json/importMap-labs.json +14 -14
  4. package/dist/json/importMap.json +148 -148
  5. package/dist/json/tags.json +2 -4
  6. package/dist/json/web-types.json +6453 -6474
  7. package/dist/vuetify-labs.cjs +121 -61
  8. package/dist/vuetify-labs.css +4564 -4553
  9. package/dist/vuetify-labs.d.ts +101 -111
  10. package/dist/vuetify-labs.esm.js +121 -61
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +121 -61
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +121 -61
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +4097 -4086
  17. package/dist/vuetify.d.ts +101 -111
  18. package/dist/vuetify.esm.js +121 -61
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +121 -61
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +73 -59
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VDataTable/VDataTable.css +12 -1
  26. package/lib/components/VDataTable/VDataTable.d.ts +20 -38
  27. package/lib/components/VDataTable/VDataTable.sass +12 -2
  28. package/lib/components/VDataTable/VDataTableColumn.d.ts +9 -3
  29. package/lib/components/VDataTable/VDataTableColumn.js +12 -3
  30. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  31. package/lib/components/VDataTable/VDataTableHeaders.d.ts +0 -13
  32. package/lib/components/VDataTable/VDataTableHeaders.js +5 -4
  33. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  34. package/lib/components/VDataTable/VDataTableRow.js +2 -0
  35. package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
  36. package/lib/components/VDataTable/VDataTableServer.d.ts +10 -23
  37. package/lib/components/VDataTable/VDataTableVirtual.d.ts +10 -23
  38. package/lib/components/VDataTable/composables/headers.d.ts +22 -14
  39. package/lib/components/VDataTable/composables/headers.js +51 -22
  40. package/lib/components/VDataTable/composables/headers.js.map +1 -1
  41. package/lib/components/VDataTable/types.d.ts +3 -1
  42. package/lib/components/VDataTable/types.js.map +1 -1
  43. package/lib/components/VList/VListGroup.d.ts +13 -0
  44. package/lib/components/VList/VListGroup.js +2 -1
  45. package/lib/components/VList/VListGroup.js.map +1 -1
  46. package/lib/components/VList/VListItem.d.ts +6 -3
  47. package/lib/components/VList/VListItem.js +1 -1
  48. package/lib/components/VList/VListItem.js.map +1 -1
  49. package/lib/components/VTreeview/VTreeview.d.ts +6 -21
  50. package/lib/components/VTreeview/VTreeview.js +6 -9
  51. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  52. package/lib/components/VTreeview/VTreeviewGroup.d.ts +13 -0
  53. package/lib/components/VTreeview/VTreeviewItem.d.ts +18 -9
  54. package/lib/components/VTreeview/VTreeviewItem.js +1 -1
  55. package/lib/components/VTreeview/VTreeviewItem.js.map +1 -1
  56. package/lib/composables/nested/nested.d.ts +7 -4
  57. package/lib/composables/nested/nested.js +16 -6
  58. package/lib/composables/nested/nested.js.map +1 -1
  59. package/lib/composables/nested/selectStrategies.d.ts +2 -1
  60. package/lib/composables/nested/selectStrategies.js +22 -11
  61. package/lib/composables/nested/selectStrategies.js.map +1 -1
  62. package/lib/entry-bundler.js +1 -1
  63. package/lib/framework.d.ts +56 -53
  64. package/lib/framework.js +1 -1
  65. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.9.0-beta.1-dev.2025-07-02
2
+ * Vuetify v3.9.0-beta.1-dev.2025-07-05
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -8822,7 +8822,7 @@ const independentSelectStrategy = mandatory => {
8822
8822
  selected.set(id, value ? 'on' : 'off');
8823
8823
  return selected;
8824
8824
  },
8825
- in: (v, children, parents) => {
8825
+ in: (v, children, parents, disabled) => {
8826
8826
  const map = new Map();
8827
8827
  for (const id of v || []) {
8828
8828
  strategy.select({
@@ -8830,7 +8830,8 @@ const independentSelectStrategy = mandatory => {
8830
8830
  value: true,
8831
8831
  selected: map,
8832
8832
  children,
8833
- parents
8833
+ parents,
8834
+ disabled
8834
8835
  });
8835
8836
  }
8836
8837
  return map;
@@ -8862,9 +8863,9 @@ const independentSingleSelectStrategy = mandatory => {
8862
8863
  selected: singleSelected
8863
8864
  });
8864
8865
  },
8865
- in: (v, children, parents) => {
8866
+ in: (v, children, parents, disabled) => {
8866
8867
  if (v?.length) {
8867
- return parentStrategy.in(v.slice(0, 1), children, parents);
8868
+ return parentStrategy.in(v.slice(0, 1), children, parents, disabled);
8868
8869
  }
8869
8870
  return new Map();
8870
8871
  },
@@ -8930,23 +8931,32 @@ const classicSelectStrategy = mandatory => {
8930
8931
  value,
8931
8932
  selected,
8932
8933
  children,
8933
- parents
8934
+ parents,
8935
+ disabled
8934
8936
  } = _ref6;
8935
8937
  id = toRaw(id);
8936
8938
  const original = new Map(selected);
8937
8939
  const items = [id];
8938
8940
  while (items.length) {
8939
8941
  const item = items.shift();
8940
- selected.set(toRaw(item), value ? 'on' : 'off');
8942
+ if (!disabled.has(item)) {
8943
+ selected.set(toRaw(item), value ? 'on' : 'off');
8944
+ }
8941
8945
  if (children.has(item)) {
8942
8946
  items.push(...children.get(item));
8943
8947
  }
8944
8948
  }
8945
8949
  let parent = toRaw(parents.get(id));
8946
8950
  while (parent) {
8947
- const childrenIds = children.get(parent);
8948
- const everySelected = childrenIds.every(cid => selected.get(toRaw(cid)) === 'on');
8949
- const noneSelected = childrenIds.every(cid => !selected.has(toRaw(cid)) || selected.get(toRaw(cid)) === 'off');
8951
+ let everySelected = true;
8952
+ let noneSelected = true;
8953
+ for (const child of children.get(parent)) {
8954
+ const cid = toRaw(child);
8955
+ if (disabled.has(cid)) continue;
8956
+ if (selected.get(cid) !== 'on') everySelected = false;
8957
+ if (selected.has(cid) && selected.get(cid) !== 'off') noneSelected = false;
8958
+ if (!everySelected && !noneSelected) break;
8959
+ }
8950
8960
  selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');
8951
8961
  parent = toRaw(parents.get(parent));
8952
8962
  }
@@ -8963,7 +8973,7 @@ const classicSelectStrategy = mandatory => {
8963
8973
  }
8964
8974
  return selected;
8965
8975
  },
8966
- in: (v, children, parents) => {
8976
+ in: (v, children, parents, disabled) => {
8967
8977
  let map = new Map();
8968
8978
  for (const id of v || []) {
8969
8979
  map = strategy.select({
@@ -8971,7 +8981,8 @@ const classicSelectStrategy = mandatory => {
8971
8981
  value: true,
8972
8982
  selected: map,
8973
8983
  children,
8974
- parents
8984
+ parents,
8985
+ disabled
8975
8986
  });
8976
8987
  }
8977
8988
  return map;
@@ -9018,8 +9029,9 @@ const emptyNested = {
9018
9029
  root: {
9019
9030
  register: () => null,
9020
9031
  unregister: () => null,
9021
- parents: ref(new Map()),
9022
9032
  children: ref(new Map()),
9033
+ parents: ref(new Map()),
9034
+ disabled: ref(new Set()),
9023
9035
  open: () => null,
9024
9036
  openOnSelect: () => null,
9025
9037
  activate: () => null,
@@ -9048,6 +9060,7 @@ const useNested = props => {
9048
9060
  let isUnmounted = false;
9049
9061
  const children = shallowRef(new Map());
9050
9062
  const parents = shallowRef(new Map());
9063
+ const disabled = shallowRef(new Set());
9051
9064
  const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(Array.isArray(v) ? v.map(i => toRaw(i)) : v), v => [...v.values()]);
9052
9065
  const activeStrategy = computed(() => {
9053
9066
  if (typeof props.activeStrategy === 'object') return props.activeStrategy;
@@ -9096,7 +9109,7 @@ const useNested = props => {
9096
9109
  }
9097
9110
  });
9098
9111
  const activated = useProxiedModel(props, 'activated', props.activated, v => activeStrategy.value.in(v, children.value, parents.value), v => activeStrategy.value.out(v, children.value, parents.value));
9099
- const selected = useProxiedModel(props, 'selected', props.selected, v => selectStrategy.value.in(v, children.value, parents.value), v => selectStrategy.value.out(v, children.value, parents.value));
9112
+ const selected = useProxiedModel(props, 'selected', props.selected, v => selectStrategy.value.in(v, children.value, parents.value, disabled.value), v => selectStrategy.value.out(v, children.value, parents.value));
9100
9113
  onBeforeUnmount(() => {
9101
9114
  isUnmounted = true;
9102
9115
  });
@@ -9126,7 +9139,7 @@ const useNested = props => {
9126
9139
  }
9127
9140
  return arr;
9128
9141
  }),
9129
- register: (id, parentId, isGroup) => {
9142
+ register: (id, parentId, isDisabled, isGroup) => {
9130
9143
  if (nodeIds.has(id)) {
9131
9144
  const path = getPath(id).map(String).join(' -> ');
9132
9145
  const newPath = getPath(parentId).concat(id).map(String).join(' -> ');
@@ -9136,6 +9149,7 @@ const useNested = props => {
9136
9149
  nodeIds.add(id);
9137
9150
  }
9138
9151
  parentId && id !== parentId && parents.value.set(id, parentId);
9152
+ isDisabled && disabled.value.add(id);
9139
9153
  isGroup && children.value.set(id, []);
9140
9154
  if (parentId != null) {
9141
9155
  children.value.set(parentId, [...(children.value.get(parentId) || []), id]);
@@ -9145,6 +9159,7 @@ const useNested = props => {
9145
9159
  if (isUnmounted) return;
9146
9160
  nodeIds.delete(id);
9147
9161
  children.value.delete(id);
9162
+ disabled.value.delete(id);
9148
9163
  const parent = parents.value.get(id);
9149
9164
  if (parent) {
9150
9165
  const list = children.value.get(parent) ?? [];
@@ -9194,6 +9209,7 @@ const useNested = props => {
9194
9209
  selected: new Map(selected.value),
9195
9210
  children: children.value,
9196
9211
  parents: parents.value,
9212
+ disabled: disabled.value,
9197
9213
  event
9198
9214
  });
9199
9215
  newSelected && (selected.value = newSelected);
@@ -9236,13 +9252,14 @@ const useNested = props => {
9236
9252
  },
9237
9253
  children,
9238
9254
  parents,
9255
+ disabled,
9239
9256
  getPath
9240
9257
  }
9241
9258
  };
9242
9259
  provide(VNestedSymbol, nested);
9243
9260
  return nested.root;
9244
9261
  };
9245
- const useNestedItem = (id, isGroup) => {
9262
+ const useNestedItem = (id, isDisabled, isGroup) => {
9246
9263
  const parent = inject$1(VNestedSymbol, emptyNested);
9247
9264
  const uidSymbol = Symbol('nested item');
9248
9265
  const computedId = computed(() => toRaw(toValue(id)) ?? uidSymbol);
@@ -9262,10 +9279,14 @@ const useNestedItem = (id, isGroup) => {
9262
9279
  isGroupActivator: parent.isGroupActivator
9263
9280
  };
9264
9281
  onBeforeMount(() => {
9265
- !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup);
9282
+ if (!parent.isGroupActivator) {
9283
+ parent.root.register(computedId.value, parent.id.value, toValue(isDisabled), isGroup);
9284
+ }
9266
9285
  });
9267
9286
  onBeforeUnmount(() => {
9268
- !parent.isGroupActivator && parent.root.unregister(computedId.value);
9287
+ if (!parent.isGroupActivator) {
9288
+ parent.root.unregister(computedId.value);
9289
+ }
9269
9290
  });
9270
9291
  isGroup && provide(VNestedSymbol, item);
9271
9292
  return item;
@@ -9297,6 +9318,7 @@ const makeVListGroupProps = propsFactory({
9297
9318
  type: IconValue,
9298
9319
  default: '$collapse'
9299
9320
  },
9321
+ disabled: Boolean,
9300
9322
  expandIcon: {
9301
9323
  type: IconValue,
9302
9324
  default: '$expand'
@@ -9322,7 +9344,7 @@ const VListGroup = genericComponent()({
9322
9344
  isOpen,
9323
9345
  open,
9324
9346
  id: _id
9325
- } = useNestedItem(() => props.value, true);
9347
+ } = useNestedItem(() => props.value, () => props.disabled, true);
9326
9348
  const id = computed(() => `v-list-group--id-${String(props.rawId ?? _id.value)}`);
9327
9349
  const list = useList();
9328
9350
  const {
@@ -9492,7 +9514,7 @@ const VListItem = genericComponent()({
9492
9514
  parent,
9493
9515
  openOnSelect,
9494
9516
  id: uid
9495
- } = useNestedItem(id, false);
9517
+ } = useNestedItem(id, () => props.disabled, false);
9496
9518
  const list = useList();
9497
9519
  const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
9498
9520
  const isLink = toRef(() => props.link !== false && link.isLink.value);
@@ -20551,10 +20573,15 @@ const VDataTableColumn = defineFunctionalComponent({
20551
20573
  type: String,
20552
20574
  default: 'start'
20553
20575
  },
20554
- fixed: Boolean,
20576
+ fixed: {
20577
+ type: [Boolean, String],
20578
+ default: false
20579
+ },
20555
20580
  fixedOffset: [Number, String],
20581
+ fixedEndOffset: [Number, String],
20556
20582
  height: [Number, String],
20557
20583
  lastFixed: Boolean,
20584
+ firstFixedEnd: Boolean,
20558
20585
  noPadding: Boolean,
20559
20586
  tag: String,
20560
20587
  width: [Number, String],
@@ -20565,10 +20592,13 @@ const VDataTableColumn = defineFunctionalComponent({
20565
20592
  slots
20566
20593
  } = _ref;
20567
20594
  const Tag = props.tag ?? 'td';
20595
+ const fixedSide = typeof props.fixed === 'string' ? props.fixed : props.fixed ? 'start' : 'none';
20568
20596
  return createVNode(Tag, {
20569
20597
  "class": normalizeClass(['v-data-table__td', {
20570
- 'v-data-table-column--fixed': props.fixed,
20598
+ 'v-data-table-column--fixed': fixedSide === 'start',
20599
+ 'v-data-table-column--fixed-end': fixedSide === 'end',
20571
20600
  'v-data-table-column--last-fixed': props.lastFixed,
20601
+ 'v-data-table-column--first-fixed-end': props.firstFixedEnd,
20572
20602
  'v-data-table-column--no-padding': props.noPadding,
20573
20603
  'v-data-table-column--nowrap': props.nowrap
20574
20604
  }, `v-data-table-column--align-${props.align}`]),
@@ -20576,7 +20606,8 @@ const VDataTableColumn = defineFunctionalComponent({
20576
20606
  height: convertToUnit(props.height),
20577
20607
  width: convertToUnit(props.width),
20578
20608
  maxWidth: convertToUnit(props.maxWidth),
20579
- left: convertToUnit(props.fixedOffset || null)
20609
+ left: fixedSide === 'start' ? convertToUnit(props.fixedOffset || null) : undefined,
20610
+ right: fixedSide === 'end' ? convertToUnit(props.fixedEndOffset || null) : undefined
20580
20611
  }
20581
20612
  }, {
20582
20613
  default: () => [slots.default?.()]
@@ -20673,20 +20704,28 @@ function getDepth(item) {
20673
20704
  }
20674
20705
  function parseFixedColumns(items) {
20675
20706
  let seenFixed = false;
20676
- function setFixed(item) {
20677
- let parentFixed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
20707
+ function setFixed(item, side) {
20708
+ let parentFixedSide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'none';
20678
20709
  if (!item) return;
20679
- if (parentFixed) {
20680
- item.fixed = true;
20710
+ if (parentFixedSide !== 'none') {
20711
+ item.fixed = parentFixedSide;
20681
20712
  }
20682
- if (item.fixed) {
20683
- if (item.children) {
20684
- for (let i = item.children.length - 1; i >= 0; i--) {
20685
- setFixed(item.children[i], true);
20713
+
20714
+ // normalize to simplify logic below
20715
+ if (item.fixed === true) {
20716
+ item.fixed = 'start';
20717
+ }
20718
+ const orderedChildren = side === 'start' ? item.children?.toReversed() : item.children;
20719
+ if (item.fixed === side) {
20720
+ if (orderedChildren) {
20721
+ for (const child of orderedChildren) {
20722
+ setFixed(child, side, side);
20686
20723
  }
20687
20724
  } else {
20688
- if (!seenFixed) {
20725
+ if (!seenFixed && side === 'start') {
20689
20726
  item.lastFixed = true;
20727
+ } else if (!seenFixed && side === 'end') {
20728
+ item.firstFixedEnd = true;
20690
20729
  } else if (isNaN(Number(item.width))) {
20691
20730
  consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`);
20692
20731
  } else {
@@ -20695,36 +20734,57 @@ function parseFixedColumns(items) {
20695
20734
  seenFixed = true;
20696
20735
  }
20697
20736
  } else {
20698
- if (item.children) {
20699
- for (let i = item.children.length - 1; i >= 0; i--) {
20700
- setFixed(item.children[i]);
20737
+ if (orderedChildren) {
20738
+ for (const child of orderedChildren) {
20739
+ setFixed(child, side);
20701
20740
  }
20702
20741
  } else {
20703
20742
  seenFixed = false;
20704
20743
  }
20705
20744
  }
20706
20745
  }
20707
- for (let i = items.length - 1; i >= 0; i--) {
20708
- setFixed(items[i]);
20746
+ for (const item of items.toReversed()) {
20747
+ setFixed(item, 'start');
20748
+ }
20749
+ for (const item of items) {
20750
+ setFixed(item, 'end');
20709
20751
  }
20710
20752
  function setFixedOffset(item) {
20711
- let fixedOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
20712
- if (!item) return fixedOffset;
20753
+ let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
20754
+ if (!item) return offset;
20713
20755
  if (item.children) {
20714
- item.fixedOffset = fixedOffset;
20756
+ item.fixedOffset = offset;
20715
20757
  for (const child of item.children) {
20716
- fixedOffset = setFixedOffset(child, fixedOffset);
20758
+ offset = setFixedOffset(child, offset);
20717
20759
  }
20718
- } else if (item.fixed) {
20719
- item.fixedOffset = fixedOffset;
20720
- fixedOffset += parseFloat(item.width || '0') || 0;
20760
+ } else if (item.fixed && item.fixed !== 'end') {
20761
+ item.fixedOffset = offset;
20762
+ offset += parseFloat(item.width || '0') || 0;
20721
20763
  }
20722
- return fixedOffset;
20764
+ return offset;
20723
20765
  }
20724
20766
  let fixedOffset = 0;
20725
20767
  for (const item of items) {
20726
20768
  fixedOffset = setFixedOffset(item, fixedOffset);
20727
20769
  }
20770
+ function setFixedEndOffset(item) {
20771
+ let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
20772
+ if (!item) return offset;
20773
+ if (item.children) {
20774
+ item.fixedEndOffset = offset;
20775
+ for (const child of item.children) {
20776
+ offset = setFixedEndOffset(child, offset);
20777
+ }
20778
+ } else if (item.fixed === 'end') {
20779
+ item.fixedEndOffset = offset;
20780
+ offset += parseFloat(item.width || '0') || 0;
20781
+ }
20782
+ return offset;
20783
+ }
20784
+ let fixedEndOffset = 0;
20785
+ for (const item of items.toReversed()) {
20786
+ fixedEndOffset = setFixedEndOffset(item, fixedEndOffset);
20787
+ }
20728
20788
  }
20729
20789
  function parse(items, maxDepth) {
20730
20790
  const headers = [];
@@ -20857,7 +20917,6 @@ const makeVDataTableHeadersProps = propsFactory({
20857
20917
  color: String,
20858
20918
  disableSort: Boolean,
20859
20919
  fixedHeader: Boolean,
20860
- lastFixed: Boolean,
20861
20920
  multiSort: Boolean,
20862
20921
  sortAscIcon: {
20863
20922
  type: IconValue,
@@ -20904,11 +20963,12 @@ const VDataTableHeaders = genericComponent()({
20904
20963
  loaderClasses
20905
20964
  } = useLoader(props);
20906
20965
  function getFixedStyles(column, y) {
20907
- if (!(props.sticky || props.fixedHeader) && !(column.fixed || column.lastFixed)) return undefined;
20966
+ if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined;
20967
+ const fixedSide = typeof column.fixed === 'string' ? column.fixed : column.fixed ? 'start' : 'none';
20908
20968
  return {
20909
20969
  position: 'sticky',
20910
- left: column.fixed || column.lastFixed ? convertToUnit(column.fixedOffset) : undefined,
20911
- right: column.lastFixed ? convertToUnit(column.fixedOffset ?? 0) : undefined,
20970
+ left: fixedSide === 'start' ? convertToUnit(column.fixedOffset) : undefined,
20971
+ right: fixedSide === 'end' ? convertToUnit(column.fixedEndOffset) : undefined,
20912
20972
  top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
20913
20973
  };
20914
20974
  }
@@ -20971,6 +21031,7 @@ const VDataTableHeaders = genericComponent()({
20971
21031
  "fixed": column.fixed,
20972
21032
  "nowrap": column.nowrap,
20973
21033
  "lastFixed": column.lastFixed,
21034
+ "firstFixedEnd": column.firstFixedEnd,
20974
21035
  "noPadding": noPadding,
20975
21036
  "tabindex": column.sortable ? 0 : undefined,
20976
21037
  "onClick": column.sortable ? () => toggleSort(column) : undefined,
@@ -21251,7 +21312,9 @@ const VDataTableRow = genericComponent()({
21251
21312
  },
21252
21313
  "fixed": column.fixed,
21253
21314
  "fixedOffset": column.fixedOffset,
21315
+ "fixedEndOffset": column.fixedEndOffset,
21254
21316
  "lastFixed": column.lastFixed,
21317
+ "firstFixedEnd": column.firstFixedEnd,
21255
21318
  "maxWidth": !mobile.value ? column.maxWidth : undefined,
21256
21319
  "noPadding": column.key === 'data-table-select' || column.key === 'data-table-expand',
21257
21320
  "nowrap": column.nowrap,
@@ -30104,7 +30167,7 @@ const VTreeviewItem = genericComponent()({
30104
30167
  return createVNode(VListItem, mergeProps({
30105
30168
  "ref": vListItemRef
30106
30169
  }, listItemProps, {
30107
- "active": vListItemRef.value?.isActivated,
30170
+ "active": vListItemRef.value?.isActivated || undefined,
30108
30171
  "class": ['v-treeview-item', {
30109
30172
  'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,
30110
30173
  'v-treeview-item--filtered': isFiltered.value
@@ -30316,10 +30379,7 @@ const makeVTreeviewProps = propsFactory({
30316
30379
  expandIcon: '$treeviewExpand',
30317
30380
  slim: true
30318
30381
  }), ['itemType', 'nav', 'openStrategy']),
30319
- modelValue: {
30320
- type: Array,
30321
- default: () => []
30322
- }
30382
+ modelValue: Array
30323
30383
  }, 'VTreeview');
30324
30384
  const VTreeview = genericComponent()({
30325
30385
  name: 'VTreeview',
@@ -30334,7 +30394,8 @@ const VTreeview = genericComponent()({
30334
30394
  },
30335
30395
  setup(props, _ref) {
30336
30396
  let {
30337
- slots
30397
+ slots,
30398
+ emit
30338
30399
  } = _ref;
30339
30400
  const {
30340
30401
  items
@@ -30343,13 +30404,12 @@ const VTreeview = genericComponent()({
30343
30404
  const baseColor = toRef(() => props.baseColor);
30344
30405
  const color = toRef(() => props.color);
30345
30406
  const activated = useProxiedModel(props, 'activated');
30346
- const model = useProxiedModel(props, 'modelValue');
30347
- const _selected = useProxiedModel(props, 'selected', props.modelValue);
30407
+ const _selected = useProxiedModel(props, 'selected');
30348
30408
  const selected = computed({
30349
- get: () => _selected.value,
30409
+ get: () => props.modelValue ?? _selected.value,
30350
30410
  set(val) {
30351
30411
  _selected.value = val;
30352
- model.value = val;
30412
+ emit('update:modelValue', val);
30353
30413
  }
30354
30414
  });
30355
30415
  const vListRef = ref();
@@ -33520,7 +33580,7 @@ function createVuetify$1() {
33520
33580
  };
33521
33581
  });
33522
33582
  }
33523
- const version$1 = "3.9.0-beta.1-dev.2025-07-02";
33583
+ const version$1 = "3.9.0-beta.1-dev.2025-07-05";
33524
33584
  createVuetify$1.version = version$1;
33525
33585
 
33526
33586
  // Vue's inject() can only be used in setup
@@ -33818,7 +33878,7 @@ var index = /*#__PURE__*/Object.freeze({
33818
33878
 
33819
33879
  /* eslint-disable local-rules/sort-imports */
33820
33880
 
33821
- const version = "3.9.0-beta.1-dev.2025-07-02";
33881
+ const version = "3.9.0-beta.1-dev.2025-07-05";
33822
33882
 
33823
33883
  /* eslint-disable local-rules/sort-imports */
33824
33884