@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
  */
@@ -9100,7 +9100,7 @@ const independentSelectStrategy = mandatory => {
9100
9100
  selected.set(id, value ? 'on' : 'off');
9101
9101
  return selected;
9102
9102
  },
9103
- in: (v, children, parents) => {
9103
+ in: (v, children, parents, disabled) => {
9104
9104
  const map = new Map();
9105
9105
  for (const id of v || []) {
9106
9106
  strategy.select({
@@ -9108,7 +9108,8 @@ const independentSelectStrategy = mandatory => {
9108
9108
  value: true,
9109
9109
  selected: map,
9110
9110
  children,
9111
- parents
9111
+ parents,
9112
+ disabled
9112
9113
  });
9113
9114
  }
9114
9115
  return map;
@@ -9140,9 +9141,9 @@ const independentSingleSelectStrategy = mandatory => {
9140
9141
  selected: singleSelected
9141
9142
  });
9142
9143
  },
9143
- in: (v, children, parents) => {
9144
+ in: (v, children, parents, disabled) => {
9144
9145
  if (v?.length) {
9145
- return parentStrategy.in(v.slice(0, 1), children, parents);
9146
+ return parentStrategy.in(v.slice(0, 1), children, parents, disabled);
9146
9147
  }
9147
9148
  return new Map();
9148
9149
  },
@@ -9208,23 +9209,32 @@ const classicSelectStrategy = mandatory => {
9208
9209
  value,
9209
9210
  selected,
9210
9211
  children,
9211
- parents
9212
+ parents,
9213
+ disabled
9212
9214
  } = _ref6;
9213
9215
  id = toRaw(id);
9214
9216
  const original = new Map(selected);
9215
9217
  const items = [id];
9216
9218
  while (items.length) {
9217
9219
  const item = items.shift();
9218
- selected.set(toRaw(item), value ? 'on' : 'off');
9220
+ if (!disabled.has(item)) {
9221
+ selected.set(toRaw(item), value ? 'on' : 'off');
9222
+ }
9219
9223
  if (children.has(item)) {
9220
9224
  items.push(...children.get(item));
9221
9225
  }
9222
9226
  }
9223
9227
  let parent = toRaw(parents.get(id));
9224
9228
  while (parent) {
9225
- const childrenIds = children.get(parent);
9226
- const everySelected = childrenIds.every(cid => selected.get(toRaw(cid)) === 'on');
9227
- const noneSelected = childrenIds.every(cid => !selected.has(toRaw(cid)) || selected.get(toRaw(cid)) === 'off');
9229
+ let everySelected = true;
9230
+ let noneSelected = true;
9231
+ for (const child of children.get(parent)) {
9232
+ const cid = toRaw(child);
9233
+ if (disabled.has(cid)) continue;
9234
+ if (selected.get(cid) !== 'on') everySelected = false;
9235
+ if (selected.has(cid) && selected.get(cid) !== 'off') noneSelected = false;
9236
+ if (!everySelected && !noneSelected) break;
9237
+ }
9228
9238
  selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');
9229
9239
  parent = toRaw(parents.get(parent));
9230
9240
  }
@@ -9241,7 +9251,7 @@ const classicSelectStrategy = mandatory => {
9241
9251
  }
9242
9252
  return selected;
9243
9253
  },
9244
- in: (v, children, parents) => {
9254
+ in: (v, children, parents, disabled) => {
9245
9255
  let map = new Map();
9246
9256
  for (const id of v || []) {
9247
9257
  map = strategy.select({
@@ -9249,7 +9259,8 @@ const classicSelectStrategy = mandatory => {
9249
9259
  value: true,
9250
9260
  selected: map,
9251
9261
  children,
9252
- parents
9262
+ parents,
9263
+ disabled
9253
9264
  });
9254
9265
  }
9255
9266
  return map;
@@ -9296,8 +9307,9 @@ const emptyNested = {
9296
9307
  root: {
9297
9308
  register: () => null,
9298
9309
  unregister: () => null,
9299
- parents: ref(new Map()),
9300
9310
  children: ref(new Map()),
9311
+ parents: ref(new Map()),
9312
+ disabled: ref(new Set()),
9301
9313
  open: () => null,
9302
9314
  openOnSelect: () => null,
9303
9315
  activate: () => null,
@@ -9326,6 +9338,7 @@ const useNested = props => {
9326
9338
  let isUnmounted = false;
9327
9339
  const children = shallowRef(new Map());
9328
9340
  const parents = shallowRef(new Map());
9341
+ const disabled = shallowRef(new Set());
9329
9342
  const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(Array.isArray(v) ? v.map(i => toRaw(i)) : v), v => [...v.values()]);
9330
9343
  const activeStrategy = computed(() => {
9331
9344
  if (typeof props.activeStrategy === 'object') return props.activeStrategy;
@@ -9374,7 +9387,7 @@ const useNested = props => {
9374
9387
  }
9375
9388
  });
9376
9389
  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));
9377
- 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));
9390
+ 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));
9378
9391
  onBeforeUnmount(() => {
9379
9392
  isUnmounted = true;
9380
9393
  });
@@ -9404,7 +9417,7 @@ const useNested = props => {
9404
9417
  }
9405
9418
  return arr;
9406
9419
  }),
9407
- register: (id, parentId, isGroup) => {
9420
+ register: (id, parentId, isDisabled, isGroup) => {
9408
9421
  if (nodeIds.has(id)) {
9409
9422
  const path = getPath(id).map(String).join(' -> ');
9410
9423
  const newPath = getPath(parentId).concat(id).map(String).join(' -> ');
@@ -9414,6 +9427,7 @@ const useNested = props => {
9414
9427
  nodeIds.add(id);
9415
9428
  }
9416
9429
  parentId && id !== parentId && parents.value.set(id, parentId);
9430
+ isDisabled && disabled.value.add(id);
9417
9431
  isGroup && children.value.set(id, []);
9418
9432
  if (parentId != null) {
9419
9433
  children.value.set(parentId, [...(children.value.get(parentId) || []), id]);
@@ -9423,6 +9437,7 @@ const useNested = props => {
9423
9437
  if (isUnmounted) return;
9424
9438
  nodeIds.delete(id);
9425
9439
  children.value.delete(id);
9440
+ disabled.value.delete(id);
9426
9441
  const parent = parents.value.get(id);
9427
9442
  if (parent) {
9428
9443
  const list = children.value.get(parent) ?? [];
@@ -9472,6 +9487,7 @@ const useNested = props => {
9472
9487
  selected: new Map(selected.value),
9473
9488
  children: children.value,
9474
9489
  parents: parents.value,
9490
+ disabled: disabled.value,
9475
9491
  event
9476
9492
  });
9477
9493
  newSelected && (selected.value = newSelected);
@@ -9514,13 +9530,14 @@ const useNested = props => {
9514
9530
  },
9515
9531
  children,
9516
9532
  parents,
9533
+ disabled,
9517
9534
  getPath
9518
9535
  }
9519
9536
  };
9520
9537
  provide(VNestedSymbol, nested);
9521
9538
  return nested.root;
9522
9539
  };
9523
- const useNestedItem = (id, isGroup) => {
9540
+ const useNestedItem = (id, isDisabled, isGroup) => {
9524
9541
  const parent = inject$1(VNestedSymbol, emptyNested);
9525
9542
  const uidSymbol = Symbol('nested item');
9526
9543
  const computedId = computed(() => toRaw(toValue(id)) ?? uidSymbol);
@@ -9540,10 +9557,14 @@ const useNestedItem = (id, isGroup) => {
9540
9557
  isGroupActivator: parent.isGroupActivator
9541
9558
  };
9542
9559
  onBeforeMount(() => {
9543
- !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup);
9560
+ if (!parent.isGroupActivator) {
9561
+ parent.root.register(computedId.value, parent.id.value, toValue(isDisabled), isGroup);
9562
+ }
9544
9563
  });
9545
9564
  onBeforeUnmount(() => {
9546
- !parent.isGroupActivator && parent.root.unregister(computedId.value);
9565
+ if (!parent.isGroupActivator) {
9566
+ parent.root.unregister(computedId.value);
9567
+ }
9547
9568
  });
9548
9569
  isGroup && provide(VNestedSymbol, item);
9549
9570
  return item;
@@ -9575,6 +9596,7 @@ const makeVListGroupProps = propsFactory({
9575
9596
  type: IconValue,
9576
9597
  default: '$collapse'
9577
9598
  },
9599
+ disabled: Boolean,
9578
9600
  expandIcon: {
9579
9601
  type: IconValue,
9580
9602
  default: '$expand'
@@ -9600,7 +9622,7 @@ const VListGroup = genericComponent()({
9600
9622
  isOpen,
9601
9623
  open,
9602
9624
  id: _id
9603
- } = useNestedItem(() => props.value, true);
9625
+ } = useNestedItem(() => props.value, () => props.disabled, true);
9604
9626
  const id = computed(() => `v-list-group--id-${String(props.rawId ?? _id.value)}`);
9605
9627
  const list = useList();
9606
9628
  const {
@@ -9770,7 +9792,7 @@ const VListItem = genericComponent()({
9770
9792
  parent,
9771
9793
  openOnSelect,
9772
9794
  id: uid
9773
- } = useNestedItem(id, false);
9795
+ } = useNestedItem(id, () => props.disabled, false);
9774
9796
  const list = useList();
9775
9797
  const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
9776
9798
  const isLink = toRef(() => props.link !== false && link.isLink.value);
@@ -20829,10 +20851,15 @@ const VDataTableColumn = defineFunctionalComponent({
20829
20851
  type: String,
20830
20852
  default: 'start'
20831
20853
  },
20832
- fixed: Boolean,
20854
+ fixed: {
20855
+ type: [Boolean, String],
20856
+ default: false
20857
+ },
20833
20858
  fixedOffset: [Number, String],
20859
+ fixedEndOffset: [Number, String],
20834
20860
  height: [Number, String],
20835
20861
  lastFixed: Boolean,
20862
+ firstFixedEnd: Boolean,
20836
20863
  noPadding: Boolean,
20837
20864
  tag: String,
20838
20865
  width: [Number, String],
@@ -20843,10 +20870,13 @@ const VDataTableColumn = defineFunctionalComponent({
20843
20870
  slots
20844
20871
  } = _ref;
20845
20872
  const Tag = props.tag ?? 'td';
20873
+ const fixedSide = typeof props.fixed === 'string' ? props.fixed : props.fixed ? 'start' : 'none';
20846
20874
  return createVNode(Tag, {
20847
20875
  "class": normalizeClass(['v-data-table__td', {
20848
- 'v-data-table-column--fixed': props.fixed,
20876
+ 'v-data-table-column--fixed': fixedSide === 'start',
20877
+ 'v-data-table-column--fixed-end': fixedSide === 'end',
20849
20878
  'v-data-table-column--last-fixed': props.lastFixed,
20879
+ 'v-data-table-column--first-fixed-end': props.firstFixedEnd,
20850
20880
  'v-data-table-column--no-padding': props.noPadding,
20851
20881
  'v-data-table-column--nowrap': props.nowrap
20852
20882
  }, `v-data-table-column--align-${props.align}`]),
@@ -20854,7 +20884,8 @@ const VDataTableColumn = defineFunctionalComponent({
20854
20884
  height: convertToUnit(props.height),
20855
20885
  width: convertToUnit(props.width),
20856
20886
  maxWidth: convertToUnit(props.maxWidth),
20857
- left: convertToUnit(props.fixedOffset || null)
20887
+ left: fixedSide === 'start' ? convertToUnit(props.fixedOffset || null) : undefined,
20888
+ right: fixedSide === 'end' ? convertToUnit(props.fixedEndOffset || null) : undefined
20858
20889
  }
20859
20890
  }, {
20860
20891
  default: () => [slots.default?.()]
@@ -20951,20 +20982,28 @@ function getDepth(item) {
20951
20982
  }
20952
20983
  function parseFixedColumns(items) {
20953
20984
  let seenFixed = false;
20954
- function setFixed(item) {
20955
- let parentFixed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
20985
+ function setFixed(item, side) {
20986
+ let parentFixedSide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'none';
20956
20987
  if (!item) return;
20957
- if (parentFixed) {
20958
- item.fixed = true;
20988
+ if (parentFixedSide !== 'none') {
20989
+ item.fixed = parentFixedSide;
20959
20990
  }
20960
- if (item.fixed) {
20961
- if (item.children) {
20962
- for (let i = item.children.length - 1; i >= 0; i--) {
20963
- setFixed(item.children[i], true);
20991
+
20992
+ // normalize to simplify logic below
20993
+ if (item.fixed === true) {
20994
+ item.fixed = 'start';
20995
+ }
20996
+ const orderedChildren = side === 'start' ? item.children?.toReversed() : item.children;
20997
+ if (item.fixed === side) {
20998
+ if (orderedChildren) {
20999
+ for (const child of orderedChildren) {
21000
+ setFixed(child, side, side);
20964
21001
  }
20965
21002
  } else {
20966
- if (!seenFixed) {
21003
+ if (!seenFixed && side === 'start') {
20967
21004
  item.lastFixed = true;
21005
+ } else if (!seenFixed && side === 'end') {
21006
+ item.firstFixedEnd = true;
20968
21007
  } else if (isNaN(Number(item.width))) {
20969
21008
  consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`);
20970
21009
  } else {
@@ -20973,36 +21012,57 @@ function parseFixedColumns(items) {
20973
21012
  seenFixed = true;
20974
21013
  }
20975
21014
  } else {
20976
- if (item.children) {
20977
- for (let i = item.children.length - 1; i >= 0; i--) {
20978
- setFixed(item.children[i]);
21015
+ if (orderedChildren) {
21016
+ for (const child of orderedChildren) {
21017
+ setFixed(child, side);
20979
21018
  }
20980
21019
  } else {
20981
21020
  seenFixed = false;
20982
21021
  }
20983
21022
  }
20984
21023
  }
20985
- for (let i = items.length - 1; i >= 0; i--) {
20986
- setFixed(items[i]);
21024
+ for (const item of items.toReversed()) {
21025
+ setFixed(item, 'start');
21026
+ }
21027
+ for (const item of items) {
21028
+ setFixed(item, 'end');
20987
21029
  }
20988
21030
  function setFixedOffset(item) {
20989
- let fixedOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
20990
- if (!item) return fixedOffset;
21031
+ let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
21032
+ if (!item) return offset;
20991
21033
  if (item.children) {
20992
- item.fixedOffset = fixedOffset;
21034
+ item.fixedOffset = offset;
20993
21035
  for (const child of item.children) {
20994
- fixedOffset = setFixedOffset(child, fixedOffset);
21036
+ offset = setFixedOffset(child, offset);
20995
21037
  }
20996
- } else if (item.fixed) {
20997
- item.fixedOffset = fixedOffset;
20998
- fixedOffset += parseFloat(item.width || '0') || 0;
21038
+ } else if (item.fixed && item.fixed !== 'end') {
21039
+ item.fixedOffset = offset;
21040
+ offset += parseFloat(item.width || '0') || 0;
20999
21041
  }
21000
- return fixedOffset;
21042
+ return offset;
21001
21043
  }
21002
21044
  let fixedOffset = 0;
21003
21045
  for (const item of items) {
21004
21046
  fixedOffset = setFixedOffset(item, fixedOffset);
21005
21047
  }
21048
+ function setFixedEndOffset(item) {
21049
+ let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
21050
+ if (!item) return offset;
21051
+ if (item.children) {
21052
+ item.fixedEndOffset = offset;
21053
+ for (const child of item.children) {
21054
+ offset = setFixedEndOffset(child, offset);
21055
+ }
21056
+ } else if (item.fixed === 'end') {
21057
+ item.fixedEndOffset = offset;
21058
+ offset += parseFloat(item.width || '0') || 0;
21059
+ }
21060
+ return offset;
21061
+ }
21062
+ let fixedEndOffset = 0;
21063
+ for (const item of items.toReversed()) {
21064
+ fixedEndOffset = setFixedEndOffset(item, fixedEndOffset);
21065
+ }
21006
21066
  }
21007
21067
  function parse(items, maxDepth) {
21008
21068
  const headers = [];
@@ -21135,7 +21195,6 @@ const makeVDataTableHeadersProps = propsFactory({
21135
21195
  color: String,
21136
21196
  disableSort: Boolean,
21137
21197
  fixedHeader: Boolean,
21138
- lastFixed: Boolean,
21139
21198
  multiSort: Boolean,
21140
21199
  sortAscIcon: {
21141
21200
  type: IconValue,
@@ -21182,11 +21241,12 @@ const VDataTableHeaders = genericComponent()({
21182
21241
  loaderClasses
21183
21242
  } = useLoader(props);
21184
21243
  function getFixedStyles(column, y) {
21185
- if (!(props.sticky || props.fixedHeader) && !(column.fixed || column.lastFixed)) return undefined;
21244
+ if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined;
21245
+ const fixedSide = typeof column.fixed === 'string' ? column.fixed : column.fixed ? 'start' : 'none';
21186
21246
  return {
21187
21247
  position: 'sticky',
21188
- left: column.fixed || column.lastFixed ? convertToUnit(column.fixedOffset) : undefined,
21189
- right: column.lastFixed ? convertToUnit(column.fixedOffset ?? 0) : undefined,
21248
+ left: fixedSide === 'start' ? convertToUnit(column.fixedOffset) : undefined,
21249
+ right: fixedSide === 'end' ? convertToUnit(column.fixedEndOffset) : undefined,
21190
21250
  top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
21191
21251
  };
21192
21252
  }
@@ -21249,6 +21309,7 @@ const VDataTableHeaders = genericComponent()({
21249
21309
  "fixed": column.fixed,
21250
21310
  "nowrap": column.nowrap,
21251
21311
  "lastFixed": column.lastFixed,
21312
+ "firstFixedEnd": column.firstFixedEnd,
21252
21313
  "noPadding": noPadding,
21253
21314
  "tabindex": column.sortable ? 0 : undefined,
21254
21315
  "onClick": column.sortable ? () => toggleSort(column) : undefined,
@@ -21529,7 +21590,9 @@ const VDataTableRow = genericComponent()({
21529
21590
  },
21530
21591
  "fixed": column.fixed,
21531
21592
  "fixedOffset": column.fixedOffset,
21593
+ "fixedEndOffset": column.fixedEndOffset,
21532
21594
  "lastFixed": column.lastFixed,
21595
+ "firstFixedEnd": column.firstFixedEnd,
21533
21596
  "maxWidth": !mobile.value ? column.maxWidth : undefined,
21534
21597
  "noPadding": column.key === 'data-table-select' || column.key === 'data-table-expand',
21535
21598
  "nowrap": column.nowrap,
@@ -30382,7 +30445,7 @@ const VTreeviewItem = genericComponent()({
30382
30445
  return createVNode(VListItem, mergeProps({
30383
30446
  "ref": vListItemRef
30384
30447
  }, listItemProps, {
30385
- "active": vListItemRef.value?.isActivated,
30448
+ "active": vListItemRef.value?.isActivated || undefined,
30386
30449
  "class": ['v-treeview-item', {
30387
30450
  'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,
30388
30451
  'v-treeview-item--filtered': isFiltered.value
@@ -30594,10 +30657,7 @@ const makeVTreeviewProps = propsFactory({
30594
30657
  expandIcon: '$treeviewExpand',
30595
30658
  slim: true
30596
30659
  }), ['itemType', 'nav', 'openStrategy']),
30597
- modelValue: {
30598
- type: Array,
30599
- default: () => []
30600
- }
30660
+ modelValue: Array
30601
30661
  }, 'VTreeview');
30602
30662
  const VTreeview = genericComponent()({
30603
30663
  name: 'VTreeview',
@@ -30612,7 +30672,8 @@ const VTreeview = genericComponent()({
30612
30672
  },
30613
30673
  setup(props, _ref) {
30614
30674
  let {
30615
- slots
30675
+ slots,
30676
+ emit
30616
30677
  } = _ref;
30617
30678
  const {
30618
30679
  items
@@ -30621,13 +30682,12 @@ const VTreeview = genericComponent()({
30621
30682
  const baseColor = toRef(() => props.baseColor);
30622
30683
  const color = toRef(() => props.color);
30623
30684
  const activated = useProxiedModel(props, 'activated');
30624
- const model = useProxiedModel(props, 'modelValue');
30625
- const _selected = useProxiedModel(props, 'selected', props.modelValue);
30685
+ const _selected = useProxiedModel(props, 'selected');
30626
30686
  const selected = computed({
30627
- get: () => _selected.value,
30687
+ get: () => props.modelValue ?? _selected.value,
30628
30688
  set(val) {
30629
30689
  _selected.value = val;
30630
- model.value = val;
30690
+ emit('update:modelValue', val);
30631
30691
  }
30632
30692
  });
30633
30693
  const vListRef = ref();
@@ -31230,7 +31290,7 @@ function createVuetify$1() {
31230
31290
  };
31231
31291
  });
31232
31292
  }
31233
- const version$1 = "3.9.0-beta.1-dev.2025-07-02";
31293
+ const version$1 = "3.9.0-beta.1-dev.2025-07-05";
31234
31294
  createVuetify$1.version = version$1;
31235
31295
 
31236
31296
  // Vue's inject() can only be used in setup
@@ -31255,7 +31315,7 @@ const createVuetify = function () {
31255
31315
  ...options
31256
31316
  });
31257
31317
  };
31258
- const version = "3.9.0-beta.1-dev.2025-07-02";
31318
+ const version = "3.9.0-beta.1-dev.2025-07-05";
31259
31319
  createVuetify.version = version;
31260
31320
 
31261
31321
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useHotkey, useLayout, useLocale, useRtl, useTheme, version };