@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
@@ -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
  */
@@ -20676,58 +20676,99 @@ function useSelection() {
20676
20676
  // Types
20677
20677
 
20678
20678
  const makeDataTableSortProps = propsFactory({
20679
+ initialSortOrder: {
20680
+ type: String,
20681
+ default: 'asc',
20682
+ validator: v => !v || ['asc', 'desc'].includes(v)
20683
+ },
20679
20684
  sortBy: {
20680
20685
  type: Array,
20681
20686
  default: () => []
20682
20687
  },
20683
20688
  customKeySort: Object,
20684
- multiSort: Boolean,
20689
+ multiSort: {
20690
+ type: [Boolean, Object],
20691
+ default: false
20692
+ },
20685
20693
  mustSort: Boolean
20686
20694
  }, 'DataTable-sort');
20687
20695
  const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
20688
20696
  function createSort(props) {
20697
+ const initialSortOrder = toRef(() => props.initialSortOrder);
20689
20698
  const sortBy = useProxiedModel(props, 'sortBy');
20690
20699
  const mustSort = toRef(() => props.mustSort);
20691
20700
  const multiSort = toRef(() => props.multiSort);
20692
20701
  return {
20702
+ initialSortOrder,
20693
20703
  sortBy,
20694
- mustSort,
20695
- 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
20696
20723
  };
20697
20724
  }
20698
20725
  function provideSort(options) {
20699
20726
  const {
20727
+ initialSortOrder,
20700
20728
  sortBy,
20701
20729
  mustSort,
20702
20730
  multiSort,
20703
20731
  page
20704
20732
  } = options;
20705
- const toggleSort = column => {
20733
+ const toggleSort = (column, event) => {
20706
20734
  if (column.key == null) return;
20707
20735
  let newSortBy = sortBy.value.map(x => ({
20708
20736
  ...x
20709
20737
  })) ?? [];
20710
20738
  const item = newSortBy.find(x => x.key === column.key);
20739
+ const initialOrder = initialSortOrder.value;
20740
+ const secondaryOrder = initialSortOrder.value === 'desc' ? 'asc' : 'desc';
20711
20741
  if (!item) {
20712
- if (multiSort.value) {
20713
- newSortBy.push({
20714
- key: column.key,
20715
- order: 'asc'
20716
- });
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
+ }
20717
20758
  } else {
20718
20759
  newSortBy = [{
20719
20760
  key: column.key,
20720
- order: 'asc'
20761
+ order: initialOrder
20721
20762
  }];
20722
20763
  }
20723
- } else if (item.order === 'desc') {
20764
+ } else if (item.order === secondaryOrder) {
20724
20765
  if (mustSort.value && newSortBy.length === 1) {
20725
- item.order = 'asc';
20766
+ item.order = initialSortOrder.value;
20726
20767
  } else {
20727
20768
  newSortBy = newSortBy.filter(x => x.key !== column.key);
20728
20769
  }
20729
20770
  } else {
20730
- item.order = 'desc';
20771
+ item.order = secondaryOrder;
20731
20772
  }
20732
20773
  sortBy.value = newSortBy;
20733
20774
  if (page) page.value = 1;
@@ -20917,6 +20958,7 @@ const VDataIterator = genericComponent()({
20917
20958
  transform: item => item.raw
20918
20959
  });
20919
20960
  const {
20961
+ initialSortOrder,
20920
20962
  sortBy,
20921
20963
  multiSort,
20922
20964
  mustSort
@@ -20928,6 +20970,7 @@ const VDataIterator = genericComponent()({
20928
20970
  const {
20929
20971
  toggleSort
20930
20972
  } = provideSort({
20973
+ initialSortOrder,
20931
20974
  sortBy,
20932
20975
  multiSort,
20933
20976
  mustSort,
@@ -21930,7 +21973,7 @@ const VDataTableHeaders = genericComponent()({
21930
21973
  }
21931
21974
  function handleEnterKeyPress(event, column) {
21932
21975
  if (event.key === 'Enter' && !props.disableSort) {
21933
- toggleSort(column);
21976
+ toggleSort(column, event);
21934
21977
  }
21935
21978
  }
21936
21979
  function getSortIcon(column) {
@@ -21992,7 +22035,7 @@ const VDataTableHeaders = genericComponent()({
21992
22035
  "noPadding": noPadding,
21993
22036
  "empty": isEmpty,
21994
22037
  "tabindex": column.sortable ? 0 : undefined,
21995
- "onClick": column.sortable ? () => toggleSort(column) : undefined,
22038
+ "onClick": column.sortable ? event => toggleSort(column, event) : undefined,
21996
22039
  "onKeydown": column.sortable ? event => handleEnterKeyPress(event, column) : undefined
21997
22040
  }, headerProps), {
21998
22041
  default: () => {
@@ -22613,7 +22656,7 @@ const makeDataTableProps = propsFactory({
22613
22656
  ...makeDataTableItemsProps(),
22614
22657
  ...makeDataTableSelectProps(),
22615
22658
  ...makeDataTableSortProps(),
22616
- ...makeVDataTableHeadersProps(),
22659
+ ...omit(makeVDataTableHeadersProps(), ['multiSort']),
22617
22660
  ...makeVTableProps()
22618
22661
  }, 'DataTable');
22619
22662
  const makeVDataTableProps = propsFactory({
@@ -22644,6 +22687,7 @@ const VDataTable = genericComponent()({
22644
22687
  groupBy
22645
22688
  } = createGroupBy(props);
22646
22689
  const {
22690
+ initialSortOrder,
22647
22691
  sortBy,
22648
22692
  multiSort,
22649
22693
  mustSort
@@ -22679,6 +22723,7 @@ const VDataTable = genericComponent()({
22679
22723
  const {
22680
22724
  toggleSort
22681
22725
  } = provideSort({
22726
+ initialSortOrder,
22682
22727
  sortBy,
22683
22728
  multiSort,
22684
22729
  mustSort,
@@ -22783,7 +22828,7 @@ const VDataTable = genericComponent()({
22783
22828
  }));
22784
22829
  useRender(() => {
22785
22830
  const dataTableFooterProps = VDataTableFooter.filterProps(props);
22786
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
22831
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22787
22832
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22788
22833
  const tableProps = VTable.filterProps(props);
22789
22834
  return createVNode(VTable, mergeProps({
@@ -22798,7 +22843,9 @@ const VDataTable = genericComponent()({
22798
22843
  top: () => slots.top?.(slotProps.value),
22799
22844
  default: () => slots.default ? slots.default(slotProps.value) : createElementVNode(Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createElementVNode("thead", {
22800
22845
  "key": "thead"
22801
- }, [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, {
22802
22849
  "items": paginatedItems.value
22803
22850
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
22804
22851
  bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && createElementVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
@@ -22837,6 +22884,7 @@ const VDataTableVirtual = genericComponent()({
22837
22884
  groupBy
22838
22885
  } = createGroupBy(props);
22839
22886
  const {
22887
+ initialSortOrder,
22840
22888
  sortBy,
22841
22889
  multiSort,
22842
22890
  mustSort
@@ -22868,6 +22916,7 @@ const VDataTableVirtual = genericComponent()({
22868
22916
  const {
22869
22917
  toggleSort
22870
22918
  } = provideSort({
22919
+ initialSortOrder,
22871
22920
  sortBy,
22872
22921
  multiSort,
22873
22922
  mustSort
@@ -22960,7 +23009,7 @@ const VDataTableVirtual = genericComponent()({
22960
23009
  headers: headers.value
22961
23010
  }));
22962
23011
  useRender(() => {
22963
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
23012
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22964
23013
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22965
23014
  const tableProps = VTable.filterProps(props);
22966
23015
  return createVNode(VTable, mergeProps({
@@ -22982,7 +23031,9 @@ const VDataTableVirtual = genericComponent()({
22982
23031
  }
22983
23032
  }, [createElementVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createElementVNode("thead", {
22984
23033
  "key": "thead"
22985
- }, [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", {
22986
23037
  "key": "tbody"
22987
23038
  }, [createElementVNode("tr", {
22988
23039
  "ref": markerRef,
@@ -23073,6 +23124,7 @@ const VDataTableServer = genericComponent()({
23073
23124
  groupBy
23074
23125
  } = createGroupBy(props);
23075
23126
  const {
23127
+ initialSortOrder,
23076
23128
  sortBy,
23077
23129
  multiSort,
23078
23130
  mustSort
@@ -23099,6 +23151,7 @@ const VDataTableServer = genericComponent()({
23099
23151
  const {
23100
23152
  toggleSort
23101
23153
  } = provideSort({
23154
+ initialSortOrder,
23102
23155
  sortBy,
23103
23156
  multiSort,
23104
23157
  mustSort,
@@ -23185,7 +23238,7 @@ const VDataTableServer = genericComponent()({
23185
23238
  }));
23186
23239
  useRender(() => {
23187
23240
  const dataTableFooterProps = VDataTableFooter.filterProps(props);
23188
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
23241
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
23189
23242
  const dataTableRowsProps = VDataTableRows.filterProps(props);
23190
23243
  const tableProps = VTable.filterProps(props);
23191
23244
  return createVNode(VTable, mergeProps({
@@ -23201,7 +23254,9 @@ const VDataTableServer = genericComponent()({
23201
23254
  "key": "thead",
23202
23255
  "class": "v-data-table__thead",
23203
23256
  "role": "rowgroup"
23204
- }, [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", {
23205
23260
  "class": "v-data-table__tbody",
23206
23261
  "role": "rowgroup"
23207
23262
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
@@ -32300,7 +32355,7 @@ function createVuetify$1() {
32300
32355
  };
32301
32356
  });
32302
32357
  }
32303
- const version$1 = "3.10.4-dev.2025-10-02";
32358
+ const version$1 = "3.10.4-dev.2025-10-06";
32304
32359
  createVuetify$1.version = version$1;
32305
32360
 
32306
32361
  // Vue's inject() can only be used in setup
@@ -32325,7 +32380,7 @@ const createVuetify = function () {
32325
32380
  ...options
32326
32381
  });
32327
32382
  };
32328
- const version = "3.10.4-dev.2025-10-02";
32383
+ const version = "3.10.4-dev.2025-10-06";
32329
32384
  createVuetify.version = version;
32330
32385
 
32331
32386
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useHotkey, useLayout, useLocale, useMask, useRtl, useTheme, version };