@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
  */
@@ -20443,58 +20443,99 @@
20443
20443
  // Types
20444
20444
 
20445
20445
  const makeDataTableSortProps = propsFactory({
20446
+ initialSortOrder: {
20447
+ type: String,
20448
+ default: 'asc',
20449
+ validator: v => !v || ['asc', 'desc'].includes(v)
20450
+ },
20446
20451
  sortBy: {
20447
20452
  type: Array,
20448
20453
  default: () => []
20449
20454
  },
20450
20455
  customKeySort: Object,
20451
- multiSort: Boolean,
20456
+ multiSort: {
20457
+ type: [Boolean, Object],
20458
+ default: false
20459
+ },
20452
20460
  mustSort: Boolean
20453
20461
  }, 'DataTable-sort');
20454
20462
  const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
20455
20463
  function createSort(props) {
20464
+ const initialSortOrder = vue.toRef(() => props.initialSortOrder);
20456
20465
  const sortBy = useProxiedModel(props, 'sortBy');
20457
20466
  const mustSort = vue.toRef(() => props.mustSort);
20458
20467
  const multiSort = vue.toRef(() => props.multiSort);
20459
20468
  return {
20469
+ initialSortOrder,
20460
20470
  sortBy,
20461
- mustSort,
20462
- multiSort
20471
+ multiSort,
20472
+ mustSort
20473
+ };
20474
+ }
20475
+ function resolveMultiSort(multiSort, event) {
20476
+ if (!isObject(multiSort)) {
20477
+ return {
20478
+ active: !!multiSort
20479
+ };
20480
+ }
20481
+ const {
20482
+ key,
20483
+ mode,
20484
+ modifier
20485
+ } = multiSort;
20486
+ const reverseMode = modifier === 'alt' && event?.altKey || modifier === 'shift' && event?.shiftKey;
20487
+ return {
20488
+ active: !key || event?.ctrlKey || event?.metaKey || false,
20489
+ mode: reverseMode ? mode === 'append' ? 'prepend' : 'append' : mode
20463
20490
  };
20464
20491
  }
20465
20492
  function provideSort(options) {
20466
20493
  const {
20494
+ initialSortOrder,
20467
20495
  sortBy,
20468
20496
  mustSort,
20469
20497
  multiSort,
20470
20498
  page
20471
20499
  } = options;
20472
- const toggleSort = column => {
20500
+ const toggleSort = (column, event) => {
20473
20501
  if (column.key == null) return;
20474
20502
  let newSortBy = sortBy.value.map(x => ({
20475
20503
  ...x
20476
20504
  })) ?? [];
20477
20505
  const item = newSortBy.find(x => x.key === column.key);
20506
+ const initialOrder = initialSortOrder.value;
20507
+ const secondaryOrder = initialSortOrder.value === 'desc' ? 'asc' : 'desc';
20478
20508
  if (!item) {
20479
- if (multiSort.value) {
20480
- newSortBy.push({
20481
- key: column.key,
20482
- order: 'asc'
20483
- });
20509
+ const {
20510
+ active,
20511
+ mode
20512
+ } = resolveMultiSort(multiSort.value, event);
20513
+ if (active) {
20514
+ if (mode === 'prepend') {
20515
+ newSortBy.unshift({
20516
+ key: column.key,
20517
+ order: initialOrder
20518
+ });
20519
+ } else {
20520
+ newSortBy.push({
20521
+ key: column.key,
20522
+ order: initialOrder
20523
+ });
20524
+ }
20484
20525
  } else {
20485
20526
  newSortBy = [{
20486
20527
  key: column.key,
20487
- order: 'asc'
20528
+ order: initialOrder
20488
20529
  }];
20489
20530
  }
20490
- } else if (item.order === 'desc') {
20531
+ } else if (item.order === secondaryOrder) {
20491
20532
  if (mustSort.value && newSortBy.length === 1) {
20492
- item.order = 'asc';
20533
+ item.order = initialSortOrder.value;
20493
20534
  } else {
20494
20535
  newSortBy = newSortBy.filter(x => x.key !== column.key);
20495
20536
  }
20496
20537
  } else {
20497
- item.order = 'desc';
20538
+ item.order = secondaryOrder;
20498
20539
  }
20499
20540
  sortBy.value = newSortBy;
20500
20541
  if (page) page.value = 1;
@@ -20684,6 +20725,7 @@
20684
20725
  transform: item => item.raw
20685
20726
  });
20686
20727
  const {
20728
+ initialSortOrder,
20687
20729
  sortBy,
20688
20730
  multiSort,
20689
20731
  mustSort
@@ -20695,6 +20737,7 @@
20695
20737
  const {
20696
20738
  toggleSort
20697
20739
  } = provideSort({
20740
+ initialSortOrder,
20698
20741
  sortBy,
20699
20742
  multiSort,
20700
20743
  mustSort,
@@ -21697,7 +21740,7 @@
21697
21740
  }
21698
21741
  function handleEnterKeyPress(event, column) {
21699
21742
  if (event.key === 'Enter' && !props.disableSort) {
21700
- toggleSort(column);
21743
+ toggleSort(column, event);
21701
21744
  }
21702
21745
  }
21703
21746
  function getSortIcon(column) {
@@ -21759,7 +21802,7 @@
21759
21802
  "noPadding": noPadding,
21760
21803
  "empty": isEmpty,
21761
21804
  "tabindex": column.sortable ? 0 : undefined,
21762
- "onClick": column.sortable ? () => toggleSort(column) : undefined,
21805
+ "onClick": column.sortable ? event => toggleSort(column, event) : undefined,
21763
21806
  "onKeydown": column.sortable ? event => handleEnterKeyPress(event, column) : undefined
21764
21807
  }, headerProps), {
21765
21808
  default: () => {
@@ -22380,7 +22423,7 @@
22380
22423
  ...makeDataTableItemsProps(),
22381
22424
  ...makeDataTableSelectProps(),
22382
22425
  ...makeDataTableSortProps(),
22383
- ...makeVDataTableHeadersProps(),
22426
+ ...omit(makeVDataTableHeadersProps(), ['multiSort']),
22384
22427
  ...makeVTableProps()
22385
22428
  }, 'DataTable');
22386
22429
  const makeVDataTableProps = propsFactory({
@@ -22411,6 +22454,7 @@
22411
22454
  groupBy
22412
22455
  } = createGroupBy(props);
22413
22456
  const {
22457
+ initialSortOrder,
22414
22458
  sortBy,
22415
22459
  multiSort,
22416
22460
  mustSort
@@ -22446,6 +22490,7 @@
22446
22490
  const {
22447
22491
  toggleSort
22448
22492
  } = provideSort({
22493
+ initialSortOrder,
22449
22494
  sortBy,
22450
22495
  multiSort,
22451
22496
  mustSort,
@@ -22550,7 +22595,7 @@
22550
22595
  }));
22551
22596
  useRender(() => {
22552
22597
  const dataTableFooterProps = VDataTableFooter.filterProps(props);
22553
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
22598
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22554
22599
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22555
22600
  const tableProps = VTable.filterProps(props);
22556
22601
  return vue.createVNode(VTable, vue.mergeProps({
@@ -22565,7 +22610,9 @@
22565
22610
  top: () => slots.top?.(slotProps.value),
22566
22611
  default: () => slots.default ? slots.default(slotProps.value) : vue.createElementVNode(vue.Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createElementVNode("thead", {
22567
22612
  "key": "thead"
22568
- }, [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, {
22613
+ }, [vue.createVNode(VDataTableHeaders, vue.mergeProps(dataTableHeadersProps, {
22614
+ "multiSort": !!props.multiSort
22615
+ }), 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, {
22569
22616
  "items": paginatedItems.value
22570
22617
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
22571
22618
  bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VDivider, null, null), vue.createVNode(VDataTableFooter, dataTableFooterProps, {
@@ -22604,6 +22651,7 @@
22604
22651
  groupBy
22605
22652
  } = createGroupBy(props);
22606
22653
  const {
22654
+ initialSortOrder,
22607
22655
  sortBy,
22608
22656
  multiSort,
22609
22657
  mustSort
@@ -22635,6 +22683,7 @@
22635
22683
  const {
22636
22684
  toggleSort
22637
22685
  } = provideSort({
22686
+ initialSortOrder,
22638
22687
  sortBy,
22639
22688
  multiSort,
22640
22689
  mustSort
@@ -22727,7 +22776,7 @@
22727
22776
  headers: headers.value
22728
22777
  }));
22729
22778
  useRender(() => {
22730
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
22779
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22731
22780
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22732
22781
  const tableProps = VTable.filterProps(props);
22733
22782
  return vue.createVNode(VTable, vue.mergeProps({
@@ -22749,7 +22798,9 @@
22749
22798
  }
22750
22799
  }, [vue.createElementVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createElementVNode("thead", {
22751
22800
  "key": "thead"
22752
- }, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", {
22801
+ }, [vue.createVNode(VDataTableHeaders, vue.mergeProps(dataTableHeadersProps, {
22802
+ "multiSort": !!props.multiSort
22803
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", {
22753
22804
  "key": "tbody"
22754
22805
  }, [vue.createElementVNode("tr", {
22755
22806
  "ref": markerRef,
@@ -22840,6 +22891,7 @@
22840
22891
  groupBy
22841
22892
  } = createGroupBy(props);
22842
22893
  const {
22894
+ initialSortOrder,
22843
22895
  sortBy,
22844
22896
  multiSort,
22845
22897
  mustSort
@@ -22866,6 +22918,7 @@
22866
22918
  const {
22867
22919
  toggleSort
22868
22920
  } = provideSort({
22921
+ initialSortOrder,
22869
22922
  sortBy,
22870
22923
  multiSort,
22871
22924
  mustSort,
@@ -22952,7 +23005,7 @@
22952
23005
  }));
22953
23006
  useRender(() => {
22954
23007
  const dataTableFooterProps = VDataTableFooter.filterProps(props);
22955
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
23008
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22956
23009
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22957
23010
  const tableProps = VTable.filterProps(props);
22958
23011
  return vue.createVNode(VTable, vue.mergeProps({
@@ -22968,7 +23021,9 @@
22968
23021
  "key": "thead",
22969
23022
  "class": "v-data-table__thead",
22970
23023
  "role": "rowgroup"
22971
- }, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", {
23024
+ }, [vue.createVNode(VDataTableHeaders, vue.mergeProps(dataTableHeadersProps, {
23025
+ "multiSort": !!props.multiSort
23026
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", {
22972
23027
  "class": "v-data-table__tbody",
22973
23028
  "role": "rowgroup"
22974
23029
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
@@ -37930,7 +37985,7 @@
37930
37985
  };
37931
37986
  });
37932
37987
  }
37933
- const version$1 = "3.10.4-dev.2025-10-02";
37988
+ const version$1 = "3.10.4-dev.2025-10-06";
37934
37989
  createVuetify$1.version = version$1;
37935
37990
 
37936
37991
  // Vue's inject() can only be used in setup
@@ -38228,7 +38283,7 @@
38228
38283
 
38229
38284
  /* eslint-disable local-rules/sort-imports */
38230
38285
 
38231
- const version = "3.10.4-dev.2025-10-02";
38286
+ const version = "3.10.4-dev.2025-10-06";
38232
38287
 
38233
38288
  /* eslint-disable local-rules/sort-imports */
38234
38289