@vuetify/nightly 3.10.4-dev.2025-10-02 → 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 (45) hide show
  1. package/CHANGELOG.md +5 -3
  2. package/dist/json/attributes.json +3641 -3625
  3. package/dist/json/importMap-labs.json +30 -30
  4. package/dist/json/importMap.json +178 -178
  5. package/dist/json/tags.json +4 -0
  6. package/dist/json/web-types.json +6554 -6514
  7. package/dist/vuetify-labs.cjs +80 -25
  8. package/dist/vuetify-labs.css +4520 -4520
  9. package/dist/vuetify-labs.d.ts +194 -99
  10. package/dist/vuetify-labs.esm.js +80 -25
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +80 -25
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +80 -25
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +6205 -6205
  17. package/dist/vuetify.d.ts +194 -99
  18. package/dist/vuetify.esm.js +80 -25
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +80 -25
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +37 -32
  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/entry-bundler.js +1 -1
  43. package/lib/framework.d.ts +65 -65
  44. package/lib/framework.js +1 -1
  45. package/package.json +1 -1
package/dist/vuetify.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.10.4-dev.2025-10-02
2
+ * Vuetify v3.10.4-dev.2025-10-06
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -20680,58 +20680,99 @@
20680
20680
  // Types
20681
20681
 
20682
20682
  const makeDataTableSortProps = propsFactory({
20683
+ initialSortOrder: {
20684
+ type: String,
20685
+ default: 'asc',
20686
+ validator: v => !v || ['asc', 'desc'].includes(v)
20687
+ },
20683
20688
  sortBy: {
20684
20689
  type: Array,
20685
20690
  default: () => []
20686
20691
  },
20687
20692
  customKeySort: Object,
20688
- multiSort: Boolean,
20693
+ multiSort: {
20694
+ type: [Boolean, Object],
20695
+ default: false
20696
+ },
20689
20697
  mustSort: Boolean
20690
20698
  }, 'DataTable-sort');
20691
20699
  const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
20692
20700
  function createSort(props) {
20701
+ const initialSortOrder = vue.toRef(() => props.initialSortOrder);
20693
20702
  const sortBy = useProxiedModel(props, 'sortBy');
20694
20703
  const mustSort = vue.toRef(() => props.mustSort);
20695
20704
  const multiSort = vue.toRef(() => props.multiSort);
20696
20705
  return {
20706
+ initialSortOrder,
20697
20707
  sortBy,
20698
- mustSort,
20699
- multiSort
20708
+ multiSort,
20709
+ mustSort
20710
+ };
20711
+ }
20712
+ function resolveMultiSort(multiSort, event) {
20713
+ if (!isObject(multiSort)) {
20714
+ return {
20715
+ active: !!multiSort
20716
+ };
20717
+ }
20718
+ const {
20719
+ key,
20720
+ mode,
20721
+ modifier
20722
+ } = multiSort;
20723
+ const reverseMode = modifier === 'alt' && event?.altKey || modifier === 'shift' && event?.shiftKey;
20724
+ return {
20725
+ active: !key || event?.ctrlKey || event?.metaKey || false,
20726
+ mode: reverseMode ? mode === 'append' ? 'prepend' : 'append' : mode
20700
20727
  };
20701
20728
  }
20702
20729
  function provideSort(options) {
20703
20730
  const {
20731
+ initialSortOrder,
20704
20732
  sortBy,
20705
20733
  mustSort,
20706
20734
  multiSort,
20707
20735
  page
20708
20736
  } = options;
20709
- const toggleSort = column => {
20737
+ const toggleSort = (column, event) => {
20710
20738
  if (column.key == null) return;
20711
20739
  let newSortBy = sortBy.value.map(x => ({
20712
20740
  ...x
20713
20741
  })) ?? [];
20714
20742
  const item = newSortBy.find(x => x.key === column.key);
20743
+ const initialOrder = initialSortOrder.value;
20744
+ const secondaryOrder = initialSortOrder.value === 'desc' ? 'asc' : 'desc';
20715
20745
  if (!item) {
20716
- if (multiSort.value) {
20717
- newSortBy.push({
20718
- key: column.key,
20719
- order: 'asc'
20720
- });
20746
+ const {
20747
+ active,
20748
+ mode
20749
+ } = resolveMultiSort(multiSort.value, event);
20750
+ if (active) {
20751
+ if (mode === 'prepend') {
20752
+ newSortBy.unshift({
20753
+ key: column.key,
20754
+ order: initialOrder
20755
+ });
20756
+ } else {
20757
+ newSortBy.push({
20758
+ key: column.key,
20759
+ order: initialOrder
20760
+ });
20761
+ }
20721
20762
  } else {
20722
20763
  newSortBy = [{
20723
20764
  key: column.key,
20724
- order: 'asc'
20765
+ order: initialOrder
20725
20766
  }];
20726
20767
  }
20727
- } else if (item.order === 'desc') {
20768
+ } else if (item.order === secondaryOrder) {
20728
20769
  if (mustSort.value && newSortBy.length === 1) {
20729
- item.order = 'asc';
20770
+ item.order = initialSortOrder.value;
20730
20771
  } else {
20731
20772
  newSortBy = newSortBy.filter(x => x.key !== column.key);
20732
20773
  }
20733
20774
  } else {
20734
- item.order = 'desc';
20775
+ item.order = secondaryOrder;
20735
20776
  }
20736
20777
  sortBy.value = newSortBy;
20737
20778
  if (page) page.value = 1;
@@ -20921,6 +20962,7 @@
20921
20962
  transform: item => item.raw
20922
20963
  });
20923
20964
  const {
20965
+ initialSortOrder,
20924
20966
  sortBy,
20925
20967
  multiSort,
20926
20968
  mustSort
@@ -20932,6 +20974,7 @@
20932
20974
  const {
20933
20975
  toggleSort
20934
20976
  } = provideSort({
20977
+ initialSortOrder,
20935
20978
  sortBy,
20936
20979
  multiSort,
20937
20980
  mustSort,
@@ -21934,7 +21977,7 @@
21934
21977
  }
21935
21978
  function handleEnterKeyPress(event, column) {
21936
21979
  if (event.key === 'Enter' && !props.disableSort) {
21937
- toggleSort(column);
21980
+ toggleSort(column, event);
21938
21981
  }
21939
21982
  }
21940
21983
  function getSortIcon(column) {
@@ -21996,7 +22039,7 @@
21996
22039
  "noPadding": noPadding,
21997
22040
  "empty": isEmpty,
21998
22041
  "tabindex": column.sortable ? 0 : undefined,
21999
- "onClick": column.sortable ? () => toggleSort(column) : undefined,
22042
+ "onClick": column.sortable ? event => toggleSort(column, event) : undefined,
22000
22043
  "onKeydown": column.sortable ? event => handleEnterKeyPress(event, column) : undefined
22001
22044
  }, headerProps), {
22002
22045
  default: () => {
@@ -22617,7 +22660,7 @@
22617
22660
  ...makeDataTableItemsProps(),
22618
22661
  ...makeDataTableSelectProps(),
22619
22662
  ...makeDataTableSortProps(),
22620
- ...makeVDataTableHeadersProps(),
22663
+ ...omit(makeVDataTableHeadersProps(), ['multiSort']),
22621
22664
  ...makeVTableProps()
22622
22665
  }, 'DataTable');
22623
22666
  const makeVDataTableProps = propsFactory({
@@ -22648,6 +22691,7 @@
22648
22691
  groupBy
22649
22692
  } = createGroupBy(props);
22650
22693
  const {
22694
+ initialSortOrder,
22651
22695
  sortBy,
22652
22696
  multiSort,
22653
22697
  mustSort
@@ -22683,6 +22727,7 @@
22683
22727
  const {
22684
22728
  toggleSort
22685
22729
  } = provideSort({
22730
+ initialSortOrder,
22686
22731
  sortBy,
22687
22732
  multiSort,
22688
22733
  mustSort,
@@ -22787,7 +22832,7 @@
22787
22832
  }));
22788
22833
  useRender(() => {
22789
22834
  const dataTableFooterProps = VDataTableFooter.filterProps(props);
22790
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
22835
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22791
22836
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22792
22837
  const tableProps = VTable.filterProps(props);
22793
22838
  return vue.createVNode(VTable, vue.mergeProps({
@@ -22802,7 +22847,9 @@
22802
22847
  top: () => slots.top?.(slotProps.value),
22803
22848
  default: () => slots.default ? slots.default(slotProps.value) : vue.createElementVNode(vue.Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createElementVNode("thead", {
22804
22849
  "key": "thead"
22805
- }, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
22850
+ }, [vue.createVNode(VDataTableHeaders, vue.mergeProps(dataTableHeadersProps, {
22851
+ "multiSort": !!props.multiSort
22852
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
22806
22853
  "items": paginatedItems.value
22807
22854
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
22808
22855
  bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VDivider, null, null), vue.createVNode(VDataTableFooter, dataTableFooterProps, {
@@ -22841,6 +22888,7 @@
22841
22888
  groupBy
22842
22889
  } = createGroupBy(props);
22843
22890
  const {
22891
+ initialSortOrder,
22844
22892
  sortBy,
22845
22893
  multiSort,
22846
22894
  mustSort
@@ -22872,6 +22920,7 @@
22872
22920
  const {
22873
22921
  toggleSort
22874
22922
  } = provideSort({
22923
+ initialSortOrder,
22875
22924
  sortBy,
22876
22925
  multiSort,
22877
22926
  mustSort
@@ -22964,7 +23013,7 @@
22964
23013
  headers: headers.value
22965
23014
  }));
22966
23015
  useRender(() => {
22967
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
23016
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22968
23017
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22969
23018
  const tableProps = VTable.filterProps(props);
22970
23019
  return vue.createVNode(VTable, vue.mergeProps({
@@ -22986,7 +23035,9 @@
22986
23035
  }
22987
23036
  }, [vue.createElementVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createElementVNode("thead", {
22988
23037
  "key": "thead"
22989
- }, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", {
23038
+ }, [vue.createVNode(VDataTableHeaders, vue.mergeProps(dataTableHeadersProps, {
23039
+ "multiSort": !!props.multiSort
23040
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", {
22990
23041
  "key": "tbody"
22991
23042
  }, [vue.createElementVNode("tr", {
22992
23043
  "ref": markerRef,
@@ -23077,6 +23128,7 @@
23077
23128
  groupBy
23078
23129
  } = createGroupBy(props);
23079
23130
  const {
23131
+ initialSortOrder,
23080
23132
  sortBy,
23081
23133
  multiSort,
23082
23134
  mustSort
@@ -23103,6 +23155,7 @@
23103
23155
  const {
23104
23156
  toggleSort
23105
23157
  } = provideSort({
23158
+ initialSortOrder,
23106
23159
  sortBy,
23107
23160
  multiSort,
23108
23161
  mustSort,
@@ -23189,7 +23242,7 @@
23189
23242
  }));
23190
23243
  useRender(() => {
23191
23244
  const dataTableFooterProps = VDataTableFooter.filterProps(props);
23192
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
23245
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
23193
23246
  const dataTableRowsProps = VDataTableRows.filterProps(props);
23194
23247
  const tableProps = VTable.filterProps(props);
23195
23248
  return vue.createVNode(VTable, vue.mergeProps({
@@ -23205,7 +23258,9 @@
23205
23258
  "key": "thead",
23206
23259
  "class": "v-data-table__thead",
23207
23260
  "role": "rowgroup"
23208
- }, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", {
23261
+ }, [vue.createVNode(VDataTableHeaders, vue.mergeProps(dataTableHeadersProps, {
23262
+ "multiSort": !!props.multiSort
23263
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", {
23209
23264
  "class": "v-data-table__tbody",
23210
23265
  "role": "rowgroup"
23211
23266
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
@@ -32304,7 +32359,7 @@
32304
32359
  };
32305
32360
  });
32306
32361
  }
32307
- const version$1 = "3.10.4-dev.2025-10-02";
32362
+ const version$1 = "3.10.4-dev.2025-10-06";
32308
32363
  createVuetify$1.version = version$1;
32309
32364
 
32310
32365
  // Vue's inject() can only be used in setup
@@ -32329,7 +32384,7 @@
32329
32384
  ...options
32330
32385
  });
32331
32386
  };
32332
- const version = "3.10.4-dev.2025-10-02";
32387
+ const version = "3.10.4-dev.2025-10-06";
32333
32388
  createVuetify.version = version;
32334
32389
 
32335
32390
  exports.blueprints = index;