@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
  */
@@ -20439,58 +20439,99 @@ function useSelection() {
20439
20439
  // Types
20440
20440
 
20441
20441
  const makeDataTableSortProps = propsFactory({
20442
+ initialSortOrder: {
20443
+ type: String,
20444
+ default: 'asc',
20445
+ validator: v => !v || ['asc', 'desc'].includes(v)
20446
+ },
20442
20447
  sortBy: {
20443
20448
  type: Array,
20444
20449
  default: () => []
20445
20450
  },
20446
20451
  customKeySort: Object,
20447
- multiSort: Boolean,
20452
+ multiSort: {
20453
+ type: [Boolean, Object],
20454
+ default: false
20455
+ },
20448
20456
  mustSort: Boolean
20449
20457
  }, 'DataTable-sort');
20450
20458
  const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
20451
20459
  function createSort(props) {
20460
+ const initialSortOrder = toRef(() => props.initialSortOrder);
20452
20461
  const sortBy = useProxiedModel(props, 'sortBy');
20453
20462
  const mustSort = toRef(() => props.mustSort);
20454
20463
  const multiSort = toRef(() => props.multiSort);
20455
20464
  return {
20465
+ initialSortOrder,
20456
20466
  sortBy,
20457
- mustSort,
20458
- multiSort
20467
+ multiSort,
20468
+ mustSort
20469
+ };
20470
+ }
20471
+ function resolveMultiSort(multiSort, event) {
20472
+ if (!isObject(multiSort)) {
20473
+ return {
20474
+ active: !!multiSort
20475
+ };
20476
+ }
20477
+ const {
20478
+ key,
20479
+ mode,
20480
+ modifier
20481
+ } = multiSort;
20482
+ const reverseMode = modifier === 'alt' && event?.altKey || modifier === 'shift' && event?.shiftKey;
20483
+ return {
20484
+ active: !key || event?.ctrlKey || event?.metaKey || false,
20485
+ mode: reverseMode ? mode === 'append' ? 'prepend' : 'append' : mode
20459
20486
  };
20460
20487
  }
20461
20488
  function provideSort(options) {
20462
20489
  const {
20490
+ initialSortOrder,
20463
20491
  sortBy,
20464
20492
  mustSort,
20465
20493
  multiSort,
20466
20494
  page
20467
20495
  } = options;
20468
- const toggleSort = column => {
20496
+ const toggleSort = (column, event) => {
20469
20497
  if (column.key == null) return;
20470
20498
  let newSortBy = sortBy.value.map(x => ({
20471
20499
  ...x
20472
20500
  })) ?? [];
20473
20501
  const item = newSortBy.find(x => x.key === column.key);
20502
+ const initialOrder = initialSortOrder.value;
20503
+ const secondaryOrder = initialSortOrder.value === 'desc' ? 'asc' : 'desc';
20474
20504
  if (!item) {
20475
- if (multiSort.value) {
20476
- newSortBy.push({
20477
- key: column.key,
20478
- order: 'asc'
20479
- });
20505
+ const {
20506
+ active,
20507
+ mode
20508
+ } = resolveMultiSort(multiSort.value, event);
20509
+ if (active) {
20510
+ if (mode === 'prepend') {
20511
+ newSortBy.unshift({
20512
+ key: column.key,
20513
+ order: initialOrder
20514
+ });
20515
+ } else {
20516
+ newSortBy.push({
20517
+ key: column.key,
20518
+ order: initialOrder
20519
+ });
20520
+ }
20480
20521
  } else {
20481
20522
  newSortBy = [{
20482
20523
  key: column.key,
20483
- order: 'asc'
20524
+ order: initialOrder
20484
20525
  }];
20485
20526
  }
20486
- } else if (item.order === 'desc') {
20527
+ } else if (item.order === secondaryOrder) {
20487
20528
  if (mustSort.value && newSortBy.length === 1) {
20488
- item.order = 'asc';
20529
+ item.order = initialSortOrder.value;
20489
20530
  } else {
20490
20531
  newSortBy = newSortBy.filter(x => x.key !== column.key);
20491
20532
  }
20492
20533
  } else {
20493
- item.order = 'desc';
20534
+ item.order = secondaryOrder;
20494
20535
  }
20495
20536
  sortBy.value = newSortBy;
20496
20537
  if (page) page.value = 1;
@@ -20680,6 +20721,7 @@ const VDataIterator = genericComponent()({
20680
20721
  transform: item => item.raw
20681
20722
  });
20682
20723
  const {
20724
+ initialSortOrder,
20683
20725
  sortBy,
20684
20726
  multiSort,
20685
20727
  mustSort
@@ -20691,6 +20733,7 @@ const VDataIterator = genericComponent()({
20691
20733
  const {
20692
20734
  toggleSort
20693
20735
  } = provideSort({
20736
+ initialSortOrder,
20694
20737
  sortBy,
20695
20738
  multiSort,
20696
20739
  mustSort,
@@ -21693,7 +21736,7 @@ const VDataTableHeaders = genericComponent()({
21693
21736
  }
21694
21737
  function handleEnterKeyPress(event, column) {
21695
21738
  if (event.key === 'Enter' && !props.disableSort) {
21696
- toggleSort(column);
21739
+ toggleSort(column, event);
21697
21740
  }
21698
21741
  }
21699
21742
  function getSortIcon(column) {
@@ -21755,7 +21798,7 @@ const VDataTableHeaders = genericComponent()({
21755
21798
  "noPadding": noPadding,
21756
21799
  "empty": isEmpty,
21757
21800
  "tabindex": column.sortable ? 0 : undefined,
21758
- "onClick": column.sortable ? () => toggleSort(column) : undefined,
21801
+ "onClick": column.sortable ? event => toggleSort(column, event) : undefined,
21759
21802
  "onKeydown": column.sortable ? event => handleEnterKeyPress(event, column) : undefined
21760
21803
  }, headerProps), {
21761
21804
  default: () => {
@@ -22376,7 +22419,7 @@ const makeDataTableProps = propsFactory({
22376
22419
  ...makeDataTableItemsProps(),
22377
22420
  ...makeDataTableSelectProps(),
22378
22421
  ...makeDataTableSortProps(),
22379
- ...makeVDataTableHeadersProps(),
22422
+ ...omit(makeVDataTableHeadersProps(), ['multiSort']),
22380
22423
  ...makeVTableProps()
22381
22424
  }, 'DataTable');
22382
22425
  const makeVDataTableProps = propsFactory({
@@ -22407,6 +22450,7 @@ const VDataTable = genericComponent()({
22407
22450
  groupBy
22408
22451
  } = createGroupBy(props);
22409
22452
  const {
22453
+ initialSortOrder,
22410
22454
  sortBy,
22411
22455
  multiSort,
22412
22456
  mustSort
@@ -22442,6 +22486,7 @@ const VDataTable = genericComponent()({
22442
22486
  const {
22443
22487
  toggleSort
22444
22488
  } = provideSort({
22489
+ initialSortOrder,
22445
22490
  sortBy,
22446
22491
  multiSort,
22447
22492
  mustSort,
@@ -22546,7 +22591,7 @@ const VDataTable = genericComponent()({
22546
22591
  }));
22547
22592
  useRender(() => {
22548
22593
  const dataTableFooterProps = VDataTableFooter.filterProps(props);
22549
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
22594
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22550
22595
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22551
22596
  const tableProps = VTable.filterProps(props);
22552
22597
  return createVNode(VTable, mergeProps({
@@ -22561,7 +22606,9 @@ const VDataTable = genericComponent()({
22561
22606
  top: () => slots.top?.(slotProps.value),
22562
22607
  default: () => slots.default ? slots.default(slotProps.value) : createElementVNode(Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createElementVNode("thead", {
22563
22608
  "key": "thead"
22564
- }, [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, {
22609
+ }, [createVNode(VDataTableHeaders, mergeProps(dataTableHeadersProps, {
22610
+ "multiSort": !!props.multiSort
22611
+ }), 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, {
22565
22612
  "items": paginatedItems.value
22566
22613
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
22567
22614
  bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && createElementVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
@@ -22600,6 +22647,7 @@ const VDataTableVirtual = genericComponent()({
22600
22647
  groupBy
22601
22648
  } = createGroupBy(props);
22602
22649
  const {
22650
+ initialSortOrder,
22603
22651
  sortBy,
22604
22652
  multiSort,
22605
22653
  mustSort
@@ -22631,6 +22679,7 @@ const VDataTableVirtual = genericComponent()({
22631
22679
  const {
22632
22680
  toggleSort
22633
22681
  } = provideSort({
22682
+ initialSortOrder,
22634
22683
  sortBy,
22635
22684
  multiSort,
22636
22685
  mustSort
@@ -22723,7 +22772,7 @@ const VDataTableVirtual = genericComponent()({
22723
22772
  headers: headers.value
22724
22773
  }));
22725
22774
  useRender(() => {
22726
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
22775
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22727
22776
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22728
22777
  const tableProps = VTable.filterProps(props);
22729
22778
  return createVNode(VTable, mergeProps({
@@ -22745,7 +22794,9 @@ const VDataTableVirtual = genericComponent()({
22745
22794
  }
22746
22795
  }, [createElementVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createElementVNode("thead", {
22747
22796
  "key": "thead"
22748
- }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", {
22797
+ }, [createVNode(VDataTableHeaders, mergeProps(dataTableHeadersProps, {
22798
+ "multiSort": !!props.multiSort
22799
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", {
22749
22800
  "key": "tbody"
22750
22801
  }, [createElementVNode("tr", {
22751
22802
  "ref": markerRef,
@@ -22836,6 +22887,7 @@ const VDataTableServer = genericComponent()({
22836
22887
  groupBy
22837
22888
  } = createGroupBy(props);
22838
22889
  const {
22890
+ initialSortOrder,
22839
22891
  sortBy,
22840
22892
  multiSort,
22841
22893
  mustSort
@@ -22862,6 +22914,7 @@ const VDataTableServer = genericComponent()({
22862
22914
  const {
22863
22915
  toggleSort
22864
22916
  } = provideSort({
22917
+ initialSortOrder,
22865
22918
  sortBy,
22866
22919
  multiSort,
22867
22920
  mustSort,
@@ -22948,7 +23001,7 @@ const VDataTableServer = genericComponent()({
22948
23001
  }));
22949
23002
  useRender(() => {
22950
23003
  const dataTableFooterProps = VDataTableFooter.filterProps(props);
22951
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
23004
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22952
23005
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22953
23006
  const tableProps = VTable.filterProps(props);
22954
23007
  return createVNode(VTable, mergeProps({
@@ -22964,7 +23017,9 @@ const VDataTableServer = genericComponent()({
22964
23017
  "key": "thead",
22965
23018
  "class": "v-data-table__thead",
22966
23019
  "role": "rowgroup"
22967
- }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", {
23020
+ }, [createVNode(VDataTableHeaders, mergeProps(dataTableHeadersProps, {
23021
+ "multiSort": !!props.multiSort
23022
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", {
22968
23023
  "class": "v-data-table__tbody",
22969
23024
  "role": "rowgroup"
22970
23025
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
@@ -37926,7 +37981,7 @@ function createVuetify$1() {
37926
37981
  };
37927
37982
  });
37928
37983
  }
37929
- const version$1 = "3.10.4-dev.2025-10-02";
37984
+ const version$1 = "3.10.4-dev.2025-10-06";
37930
37985
  createVuetify$1.version = version$1;
37931
37986
 
37932
37987
  // Vue's inject() can only be used in setup
@@ -38224,7 +38279,7 @@ var index = /*#__PURE__*/Object.freeze({
38224
38279
 
38225
38280
  /* eslint-disable local-rules/sort-imports */
38226
38281
 
38227
- const version = "3.10.4-dev.2025-10-02";
38282
+ const version = "3.10.4-dev.2025-10-06";
38228
38283
 
38229
38284
  /* eslint-disable local-rules/sort-imports */
38230
38285