@vuetify/nightly 3.10.4-dev.2025-10-01 → 3.10.4-dev.2025-10-06

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 (52) hide show
  1. package/CHANGELOG.md +10 -3
  2. package/dist/json/attributes.json +1626 -1610
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +208 -208
  5. package/dist/json/tags.json +4 -0
  6. package/dist/json/web-types.json +3135 -3091
  7. package/dist/vuetify-labs.cjs +93 -30
  8. package/dist/vuetify-labs.css +4262 -4262
  9. package/dist/vuetify-labs.d.ts +209 -105
  10. package/dist/vuetify-labs.esm.js +93 -30
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +93 -30
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +93 -30
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +3923 -3923
  17. package/dist/vuetify.d.ts +209 -105
  18. package/dist/vuetify.esm.js +93 -30
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +93 -30
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +40 -37
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VDataIterator/VDataIterator.d.ts +52 -11
  26. package/lib/components/VDataIterator/VDataIterator.js +2 -0
  27. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  28. package/lib/components/VDataTable/VDataTable.d.ts +78 -18
  29. package/lib/components/VDataTable/VDataTable.js +9 -5
  30. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  31. package/lib/components/VDataTable/VDataTableHeaders.js +2 -2
  32. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  33. package/lib/components/VDataTable/VDataTableServer.d.ts +54 -13
  34. package/lib/components/VDataTable/VDataTableServer.js +8 -4
  35. package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
  36. package/lib/components/VDataTable/VDataTableVirtual.d.ts +54 -13
  37. package/lib/components/VDataTable/VDataTableVirtual.js +7 -3
  38. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  39. package/lib/components/VDataTable/composables/sort.d.ts +36 -8
  40. package/lib/components/VDataTable/composables/sort.js +55 -14
  41. package/lib/components/VDataTable/composables/sort.js.map +1 -1
  42. package/lib/components/VTreeview/VTreeview.d.ts +6 -0
  43. package/lib/components/VTreeview/VTreeviewChildren.d.ts +9 -0
  44. package/lib/components/VTreeview/VTreeviewChildren.js +6 -1
  45. package/lib/components/VTreeview/VTreeviewChildren.js.map +1 -1
  46. package/lib/entry-bundler.js +1 -1
  47. package/lib/framework.d.ts +71 -71
  48. package/lib/framework.js +1 -1
  49. package/lib/util/indentLines.d.ts +1 -0
  50. package/lib/util/indentLines.js +7 -4
  51. package/lib/util/indentLines.js.map +1 -1
  52. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.10.4-dev.2025-10-01
2
+ * Vuetify v3.10.4-dev.2025-10-06
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -1638,25 +1638,28 @@ function getIndentLines(_ref) {
1638
1638
  parentIndentLines,
1639
1639
  variant
1640
1640
  } = _ref;
1641
+ const isLastLeaf = isLast && (!isLastGroup || separateRoots || depth > 1);
1641
1642
  if (!parentIndentLines || !depth) {
1642
1643
  return {
1643
1644
  leaf: undefined,
1644
1645
  node: undefined,
1645
- children: parentIndentLines
1646
+ children: parentIndentLines,
1647
+ footer: parentIndentLines && (!isLastLeaf || variant === 'simple') ? [...parentIndentLines, separateRoots ? 'none' : 'line'] : ['none']
1646
1648
  };
1647
1649
  }
1648
1650
  if (variant === 'simple') {
1649
1651
  return {
1650
1652
  leaf: [...parentIndentLines, 'line'],
1651
1653
  node: [...parentIndentLines, 'line'],
1652
- children: [...parentIndentLines, 'line']
1654
+ children: [...parentIndentLines, 'line'],
1655
+ footer: [...parentIndentLines, 'line', 'line']
1653
1656
  };
1654
1657
  }
1655
- const isLastLeaf = isLast && (!isLastGroup || separateRoots || depth > 1);
1656
1658
  return {
1657
1659
  leaf: [...parentIndentLines, isLastLeaf ? 'last-leaf' : 'leaf', ...(leafLinks ? ['leaf-link'] : [])],
1658
1660
  node: [...parentIndentLines, isLastLeaf ? 'last-leaf' : 'leaf'],
1659
- children: [...parentIndentLines, isLastLeaf ? 'none' : 'line']
1661
+ children: [...parentIndentLines, isLastLeaf ? 'none' : 'line'],
1662
+ footer: [...parentIndentLines, isLastLeaf ? 'none' : 'line']
1660
1663
  };
1661
1664
  }
1662
1665
 
@@ -20673,58 +20676,99 @@ function useSelection() {
20673
20676
  // Types
20674
20677
 
20675
20678
  const makeDataTableSortProps = propsFactory({
20679
+ initialSortOrder: {
20680
+ type: String,
20681
+ default: 'asc',
20682
+ validator: v => !v || ['asc', 'desc'].includes(v)
20683
+ },
20676
20684
  sortBy: {
20677
20685
  type: Array,
20678
20686
  default: () => []
20679
20687
  },
20680
20688
  customKeySort: Object,
20681
- multiSort: Boolean,
20689
+ multiSort: {
20690
+ type: [Boolean, Object],
20691
+ default: false
20692
+ },
20682
20693
  mustSort: Boolean
20683
20694
  }, 'DataTable-sort');
20684
20695
  const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
20685
20696
  function createSort(props) {
20697
+ const initialSortOrder = toRef(() => props.initialSortOrder);
20686
20698
  const sortBy = useProxiedModel(props, 'sortBy');
20687
20699
  const mustSort = toRef(() => props.mustSort);
20688
20700
  const multiSort = toRef(() => props.multiSort);
20689
20701
  return {
20702
+ initialSortOrder,
20690
20703
  sortBy,
20691
- mustSort,
20692
- multiSort
20704
+ multiSort,
20705
+ mustSort
20706
+ };
20707
+ }
20708
+ function resolveMultiSort(multiSort, event) {
20709
+ if (!isObject(multiSort)) {
20710
+ return {
20711
+ active: !!multiSort
20712
+ };
20713
+ }
20714
+ const {
20715
+ key,
20716
+ mode,
20717
+ modifier
20718
+ } = multiSort;
20719
+ const reverseMode = modifier === 'alt' && event?.altKey || modifier === 'shift' && event?.shiftKey;
20720
+ return {
20721
+ active: !key || event?.ctrlKey || event?.metaKey || false,
20722
+ mode: reverseMode ? mode === 'append' ? 'prepend' : 'append' : mode
20693
20723
  };
20694
20724
  }
20695
20725
  function provideSort(options) {
20696
20726
  const {
20727
+ initialSortOrder,
20697
20728
  sortBy,
20698
20729
  mustSort,
20699
20730
  multiSort,
20700
20731
  page
20701
20732
  } = options;
20702
- const toggleSort = column => {
20733
+ const toggleSort = (column, event) => {
20703
20734
  if (column.key == null) return;
20704
20735
  let newSortBy = sortBy.value.map(x => ({
20705
20736
  ...x
20706
20737
  })) ?? [];
20707
20738
  const item = newSortBy.find(x => x.key === column.key);
20739
+ const initialOrder = initialSortOrder.value;
20740
+ const secondaryOrder = initialSortOrder.value === 'desc' ? 'asc' : 'desc';
20708
20741
  if (!item) {
20709
- if (multiSort.value) {
20710
- newSortBy.push({
20711
- key: column.key,
20712
- order: 'asc'
20713
- });
20742
+ const {
20743
+ active,
20744
+ mode
20745
+ } = resolveMultiSort(multiSort.value, event);
20746
+ if (active) {
20747
+ if (mode === 'prepend') {
20748
+ newSortBy.unshift({
20749
+ key: column.key,
20750
+ order: initialOrder
20751
+ });
20752
+ } else {
20753
+ newSortBy.push({
20754
+ key: column.key,
20755
+ order: initialOrder
20756
+ });
20757
+ }
20714
20758
  } else {
20715
20759
  newSortBy = [{
20716
20760
  key: column.key,
20717
- order: 'asc'
20761
+ order: initialOrder
20718
20762
  }];
20719
20763
  }
20720
- } else if (item.order === 'desc') {
20764
+ } else if (item.order === secondaryOrder) {
20721
20765
  if (mustSort.value && newSortBy.length === 1) {
20722
- item.order = 'asc';
20766
+ item.order = initialSortOrder.value;
20723
20767
  } else {
20724
20768
  newSortBy = newSortBy.filter(x => x.key !== column.key);
20725
20769
  }
20726
20770
  } else {
20727
- item.order = 'desc';
20771
+ item.order = secondaryOrder;
20728
20772
  }
20729
20773
  sortBy.value = newSortBy;
20730
20774
  if (page) page.value = 1;
@@ -20914,6 +20958,7 @@ const VDataIterator = genericComponent()({
20914
20958
  transform: item => item.raw
20915
20959
  });
20916
20960
  const {
20961
+ initialSortOrder,
20917
20962
  sortBy,
20918
20963
  multiSort,
20919
20964
  mustSort
@@ -20925,6 +20970,7 @@ const VDataIterator = genericComponent()({
20925
20970
  const {
20926
20971
  toggleSort
20927
20972
  } = provideSort({
20973
+ initialSortOrder,
20928
20974
  sortBy,
20929
20975
  multiSort,
20930
20976
  mustSort,
@@ -21927,7 +21973,7 @@ const VDataTableHeaders = genericComponent()({
21927
21973
  }
21928
21974
  function handleEnterKeyPress(event, column) {
21929
21975
  if (event.key === 'Enter' && !props.disableSort) {
21930
- toggleSort(column);
21976
+ toggleSort(column, event);
21931
21977
  }
21932
21978
  }
21933
21979
  function getSortIcon(column) {
@@ -21989,7 +22035,7 @@ const VDataTableHeaders = genericComponent()({
21989
22035
  "noPadding": noPadding,
21990
22036
  "empty": isEmpty,
21991
22037
  "tabindex": column.sortable ? 0 : undefined,
21992
- "onClick": column.sortable ? () => toggleSort(column) : undefined,
22038
+ "onClick": column.sortable ? event => toggleSort(column, event) : undefined,
21993
22039
  "onKeydown": column.sortable ? event => handleEnterKeyPress(event, column) : undefined
21994
22040
  }, headerProps), {
21995
22041
  default: () => {
@@ -22610,7 +22656,7 @@ const makeDataTableProps = propsFactory({
22610
22656
  ...makeDataTableItemsProps(),
22611
22657
  ...makeDataTableSelectProps(),
22612
22658
  ...makeDataTableSortProps(),
22613
- ...makeVDataTableHeadersProps(),
22659
+ ...omit(makeVDataTableHeadersProps(), ['multiSort']),
22614
22660
  ...makeVTableProps()
22615
22661
  }, 'DataTable');
22616
22662
  const makeVDataTableProps = propsFactory({
@@ -22641,6 +22687,7 @@ const VDataTable = genericComponent()({
22641
22687
  groupBy
22642
22688
  } = createGroupBy(props);
22643
22689
  const {
22690
+ initialSortOrder,
22644
22691
  sortBy,
22645
22692
  multiSort,
22646
22693
  mustSort
@@ -22676,6 +22723,7 @@ const VDataTable = genericComponent()({
22676
22723
  const {
22677
22724
  toggleSort
22678
22725
  } = provideSort({
22726
+ initialSortOrder,
22679
22727
  sortBy,
22680
22728
  multiSort,
22681
22729
  mustSort,
@@ -22780,7 +22828,7 @@ const VDataTable = genericComponent()({
22780
22828
  }));
22781
22829
  useRender(() => {
22782
22830
  const dataTableFooterProps = VDataTableFooter.filterProps(props);
22783
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
22831
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22784
22832
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22785
22833
  const tableProps = VTable.filterProps(props);
22786
22834
  return createVNode(VTable, mergeProps({
@@ -22795,7 +22843,9 @@ const VDataTable = genericComponent()({
22795
22843
  top: () => slots.top?.(slotProps.value),
22796
22844
  default: () => slots.default ? slots.default(slotProps.value) : createElementVNode(Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createElementVNode("thead", {
22797
22845
  "key": "thead"
22798
- }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
22846
+ }, [createVNode(VDataTableHeaders, mergeProps(dataTableHeadersProps, {
22847
+ "multiSort": !!props.multiSort
22848
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
22799
22849
  "items": paginatedItems.value
22800
22850
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
22801
22851
  bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && createElementVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
@@ -22834,6 +22884,7 @@ const VDataTableVirtual = genericComponent()({
22834
22884
  groupBy
22835
22885
  } = createGroupBy(props);
22836
22886
  const {
22887
+ initialSortOrder,
22837
22888
  sortBy,
22838
22889
  multiSort,
22839
22890
  mustSort
@@ -22865,6 +22916,7 @@ const VDataTableVirtual = genericComponent()({
22865
22916
  const {
22866
22917
  toggleSort
22867
22918
  } = provideSort({
22919
+ initialSortOrder,
22868
22920
  sortBy,
22869
22921
  multiSort,
22870
22922
  mustSort
@@ -22957,7 +23009,7 @@ const VDataTableVirtual = genericComponent()({
22957
23009
  headers: headers.value
22958
23010
  }));
22959
23011
  useRender(() => {
22960
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
23012
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22961
23013
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22962
23014
  const tableProps = VTable.filterProps(props);
22963
23015
  return createVNode(VTable, mergeProps({
@@ -22979,7 +23031,9 @@ const VDataTableVirtual = genericComponent()({
22979
23031
  }
22980
23032
  }, [createElementVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createElementVNode("thead", {
22981
23033
  "key": "thead"
22982
- }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", {
23034
+ }, [createVNode(VDataTableHeaders, mergeProps(dataTableHeadersProps, {
23035
+ "multiSort": !!props.multiSort
23036
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", {
22983
23037
  "key": "tbody"
22984
23038
  }, [createElementVNode("tr", {
22985
23039
  "ref": markerRef,
@@ -23070,6 +23124,7 @@ const VDataTableServer = genericComponent()({
23070
23124
  groupBy
23071
23125
  } = createGroupBy(props);
23072
23126
  const {
23127
+ initialSortOrder,
23073
23128
  sortBy,
23074
23129
  multiSort,
23075
23130
  mustSort
@@ -23096,6 +23151,7 @@ const VDataTableServer = genericComponent()({
23096
23151
  const {
23097
23152
  toggleSort
23098
23153
  } = provideSort({
23154
+ initialSortOrder,
23099
23155
  sortBy,
23100
23156
  multiSort,
23101
23157
  mustSort,
@@ -23182,7 +23238,7 @@ const VDataTableServer = genericComponent()({
23182
23238
  }));
23183
23239
  useRender(() => {
23184
23240
  const dataTableFooterProps = VDataTableFooter.filterProps(props);
23185
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
23241
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
23186
23242
  const dataTableRowsProps = VDataTableRows.filterProps(props);
23187
23243
  const tableProps = VTable.filterProps(props);
23188
23244
  return createVNode(VTable, mergeProps({
@@ -23198,7 +23254,9 @@ const VDataTableServer = genericComponent()({
23198
23254
  "key": "thead",
23199
23255
  "class": "v-data-table__thead",
23200
23256
  "role": "rowgroup"
23201
- }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", {
23257
+ }, [createVNode(VDataTableHeaders, mergeProps(dataTableHeadersProps, {
23258
+ "multiSort": !!props.multiSort
23259
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", {
23202
23260
  "class": "v-data-table__tbody",
23203
23261
  "role": "rowgroup"
23204
23262
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
@@ -31568,6 +31626,10 @@ const VTreeviewChildren = genericComponent()({
31568
31626
  ...props,
31569
31627
  ...treeItemProps
31570
31628
  });
31629
+ const footerProps = {
31630
+ hideActions: props.hideActions,
31631
+ indentLines: indentLines.footer
31632
+ };
31571
31633
  return children ? createVNode(VTreeviewGroup, mergeProps(treeviewGroupProps, {
31572
31634
  "value": props.returnObject ? item.raw : treeviewGroupProps?.value,
31573
31635
  "rawId": treeviewGroupProps?.value
@@ -31580,6 +31642,7 @@ const VTreeviewChildren = genericComponent()({
31580
31642
  ...itemProps,
31581
31643
  ...activatorProps,
31582
31644
  value: itemProps?.value,
31645
+ hideActions: props.hideActions,
31583
31646
  indentLines: indentLines.node,
31584
31647
  onToggleExpand: [() => checkChildren(item), activatorProps.onClick],
31585
31648
  onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected)
@@ -31593,7 +31656,6 @@ const VTreeviewChildren = genericComponent()({
31593
31656
  "ref": el => activatorItems.value[index] = el
31594
31657
  }, listItemProps, {
31595
31658
  "hasCustomPrepend": !!slots.prepend,
31596
- "hideActions": props.hideActions,
31597
31659
  "value": props.returnObject ? item.raw : itemProps.value,
31598
31660
  "loading": loading
31599
31661
  }), slotsWithItem));
@@ -31605,6 +31667,7 @@ const VTreeviewChildren = genericComponent()({
31605
31667
  "isLastGroup": nextItemHasChildren,
31606
31668
  "returnObject": props.returnObject
31607
31669
  }), slots), slots.footer?.({
31670
+ props: footerProps,
31608
31671
  item: item.raw,
31609
31672
  internalItem: item,
31610
31673
  loading
@@ -32292,7 +32355,7 @@ function createVuetify$1() {
32292
32355
  };
32293
32356
  });
32294
32357
  }
32295
- const version$1 = "3.10.4-dev.2025-10-01";
32358
+ const version$1 = "3.10.4-dev.2025-10-06";
32296
32359
  createVuetify$1.version = version$1;
32297
32360
 
32298
32361
  // Vue's inject() can only be used in setup
@@ -32317,7 +32380,7 @@ const createVuetify = function () {
32317
32380
  ...options
32318
32381
  });
32319
32382
  };
32320
- const version = "3.10.4-dev.2025-10-01";
32383
+ const version = "3.10.4-dev.2025-10-06";
32321
32384
  createVuetify.version = version;
32322
32385
 
32323
32386
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useHotkey, useLayout, useLocale, useMask, useRtl, useTheme, version };