@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
  */
@@ -1672,25 +1672,28 @@ function getIndentLines(_ref) {
1672
1672
  parentIndentLines,
1673
1673
  variant
1674
1674
  } = _ref;
1675
+ const isLastLeaf = isLast && (!isLastGroup || separateRoots || depth > 1);
1675
1676
  if (!parentIndentLines || !depth) {
1676
1677
  return {
1677
1678
  leaf: undefined,
1678
1679
  node: undefined,
1679
- children: parentIndentLines
1680
+ children: parentIndentLines,
1681
+ footer: parentIndentLines && (!isLastLeaf || variant === 'simple') ? [...parentIndentLines, separateRoots ? 'none' : 'line'] : ['none']
1680
1682
  };
1681
1683
  }
1682
1684
  if (variant === 'simple') {
1683
1685
  return {
1684
1686
  leaf: [...parentIndentLines, 'line'],
1685
1687
  node: [...parentIndentLines, 'line'],
1686
- children: [...parentIndentLines, 'line']
1688
+ children: [...parentIndentLines, 'line'],
1689
+ footer: [...parentIndentLines, 'line', 'line']
1687
1690
  };
1688
1691
  }
1689
- const isLastLeaf = isLast && (!isLastGroup || separateRoots || depth > 1);
1690
1692
  return {
1691
1693
  leaf: [...parentIndentLines, isLastLeaf ? 'last-leaf' : 'leaf', ...(leafLinks ? ['leaf-link'] : [])],
1692
1694
  node: [...parentIndentLines, isLastLeaf ? 'last-leaf' : 'leaf'],
1693
- children: [...parentIndentLines, isLastLeaf ? 'none' : 'line']
1695
+ children: [...parentIndentLines, isLastLeaf ? 'none' : 'line'],
1696
+ footer: [...parentIndentLines, isLastLeaf ? 'none' : 'line']
1694
1697
  };
1695
1698
  }
1696
1699
 
@@ -20436,58 +20439,99 @@ function useSelection() {
20436
20439
  // Types
20437
20440
 
20438
20441
  const makeDataTableSortProps = propsFactory({
20442
+ initialSortOrder: {
20443
+ type: String,
20444
+ default: 'asc',
20445
+ validator: v => !v || ['asc', 'desc'].includes(v)
20446
+ },
20439
20447
  sortBy: {
20440
20448
  type: Array,
20441
20449
  default: () => []
20442
20450
  },
20443
20451
  customKeySort: Object,
20444
- multiSort: Boolean,
20452
+ multiSort: {
20453
+ type: [Boolean, Object],
20454
+ default: false
20455
+ },
20445
20456
  mustSort: Boolean
20446
20457
  }, 'DataTable-sort');
20447
20458
  const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
20448
20459
  function createSort(props) {
20460
+ const initialSortOrder = toRef(() => props.initialSortOrder);
20449
20461
  const sortBy = useProxiedModel(props, 'sortBy');
20450
20462
  const mustSort = toRef(() => props.mustSort);
20451
20463
  const multiSort = toRef(() => props.multiSort);
20452
20464
  return {
20465
+ initialSortOrder,
20453
20466
  sortBy,
20454
- mustSort,
20455
- 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
20456
20486
  };
20457
20487
  }
20458
20488
  function provideSort(options) {
20459
20489
  const {
20490
+ initialSortOrder,
20460
20491
  sortBy,
20461
20492
  mustSort,
20462
20493
  multiSort,
20463
20494
  page
20464
20495
  } = options;
20465
- const toggleSort = column => {
20496
+ const toggleSort = (column, event) => {
20466
20497
  if (column.key == null) return;
20467
20498
  let newSortBy = sortBy.value.map(x => ({
20468
20499
  ...x
20469
20500
  })) ?? [];
20470
20501
  const item = newSortBy.find(x => x.key === column.key);
20502
+ const initialOrder = initialSortOrder.value;
20503
+ const secondaryOrder = initialSortOrder.value === 'desc' ? 'asc' : 'desc';
20471
20504
  if (!item) {
20472
- if (multiSort.value) {
20473
- newSortBy.push({
20474
- key: column.key,
20475
- order: 'asc'
20476
- });
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
+ }
20477
20521
  } else {
20478
20522
  newSortBy = [{
20479
20523
  key: column.key,
20480
- order: 'asc'
20524
+ order: initialOrder
20481
20525
  }];
20482
20526
  }
20483
- } else if (item.order === 'desc') {
20527
+ } else if (item.order === secondaryOrder) {
20484
20528
  if (mustSort.value && newSortBy.length === 1) {
20485
- item.order = 'asc';
20529
+ item.order = initialSortOrder.value;
20486
20530
  } else {
20487
20531
  newSortBy = newSortBy.filter(x => x.key !== column.key);
20488
20532
  }
20489
20533
  } else {
20490
- item.order = 'desc';
20534
+ item.order = secondaryOrder;
20491
20535
  }
20492
20536
  sortBy.value = newSortBy;
20493
20537
  if (page) page.value = 1;
@@ -20677,6 +20721,7 @@ const VDataIterator = genericComponent()({
20677
20721
  transform: item => item.raw
20678
20722
  });
20679
20723
  const {
20724
+ initialSortOrder,
20680
20725
  sortBy,
20681
20726
  multiSort,
20682
20727
  mustSort
@@ -20688,6 +20733,7 @@ const VDataIterator = genericComponent()({
20688
20733
  const {
20689
20734
  toggleSort
20690
20735
  } = provideSort({
20736
+ initialSortOrder,
20691
20737
  sortBy,
20692
20738
  multiSort,
20693
20739
  mustSort,
@@ -21690,7 +21736,7 @@ const VDataTableHeaders = genericComponent()({
21690
21736
  }
21691
21737
  function handleEnterKeyPress(event, column) {
21692
21738
  if (event.key === 'Enter' && !props.disableSort) {
21693
- toggleSort(column);
21739
+ toggleSort(column, event);
21694
21740
  }
21695
21741
  }
21696
21742
  function getSortIcon(column) {
@@ -21752,7 +21798,7 @@ const VDataTableHeaders = genericComponent()({
21752
21798
  "noPadding": noPadding,
21753
21799
  "empty": isEmpty,
21754
21800
  "tabindex": column.sortable ? 0 : undefined,
21755
- "onClick": column.sortable ? () => toggleSort(column) : undefined,
21801
+ "onClick": column.sortable ? event => toggleSort(column, event) : undefined,
21756
21802
  "onKeydown": column.sortable ? event => handleEnterKeyPress(event, column) : undefined
21757
21803
  }, headerProps), {
21758
21804
  default: () => {
@@ -22373,7 +22419,7 @@ const makeDataTableProps = propsFactory({
22373
22419
  ...makeDataTableItemsProps(),
22374
22420
  ...makeDataTableSelectProps(),
22375
22421
  ...makeDataTableSortProps(),
22376
- ...makeVDataTableHeadersProps(),
22422
+ ...omit(makeVDataTableHeadersProps(), ['multiSort']),
22377
22423
  ...makeVTableProps()
22378
22424
  }, 'DataTable');
22379
22425
  const makeVDataTableProps = propsFactory({
@@ -22404,6 +22450,7 @@ const VDataTable = genericComponent()({
22404
22450
  groupBy
22405
22451
  } = createGroupBy(props);
22406
22452
  const {
22453
+ initialSortOrder,
22407
22454
  sortBy,
22408
22455
  multiSort,
22409
22456
  mustSort
@@ -22439,6 +22486,7 @@ const VDataTable = genericComponent()({
22439
22486
  const {
22440
22487
  toggleSort
22441
22488
  } = provideSort({
22489
+ initialSortOrder,
22442
22490
  sortBy,
22443
22491
  multiSort,
22444
22492
  mustSort,
@@ -22543,7 +22591,7 @@ const VDataTable = genericComponent()({
22543
22591
  }));
22544
22592
  useRender(() => {
22545
22593
  const dataTableFooterProps = VDataTableFooter.filterProps(props);
22546
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
22594
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22547
22595
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22548
22596
  const tableProps = VTable.filterProps(props);
22549
22597
  return createVNode(VTable, mergeProps({
@@ -22558,7 +22606,9 @@ const VDataTable = genericComponent()({
22558
22606
  top: () => slots.top?.(slotProps.value),
22559
22607
  default: () => slots.default ? slots.default(slotProps.value) : createElementVNode(Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createElementVNode("thead", {
22560
22608
  "key": "thead"
22561
- }, [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, {
22562
22612
  "items": paginatedItems.value
22563
22613
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
22564
22614
  bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && createElementVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
@@ -22597,6 +22647,7 @@ const VDataTableVirtual = genericComponent()({
22597
22647
  groupBy
22598
22648
  } = createGroupBy(props);
22599
22649
  const {
22650
+ initialSortOrder,
22600
22651
  sortBy,
22601
22652
  multiSort,
22602
22653
  mustSort
@@ -22628,6 +22679,7 @@ const VDataTableVirtual = genericComponent()({
22628
22679
  const {
22629
22680
  toggleSort
22630
22681
  } = provideSort({
22682
+ initialSortOrder,
22631
22683
  sortBy,
22632
22684
  multiSort,
22633
22685
  mustSort
@@ -22720,7 +22772,7 @@ const VDataTableVirtual = genericComponent()({
22720
22772
  headers: headers.value
22721
22773
  }));
22722
22774
  useRender(() => {
22723
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
22775
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22724
22776
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22725
22777
  const tableProps = VTable.filterProps(props);
22726
22778
  return createVNode(VTable, mergeProps({
@@ -22742,7 +22794,9 @@ const VDataTableVirtual = genericComponent()({
22742
22794
  }
22743
22795
  }, [createElementVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createElementVNode("thead", {
22744
22796
  "key": "thead"
22745
- }, [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", {
22746
22800
  "key": "tbody"
22747
22801
  }, [createElementVNode("tr", {
22748
22802
  "ref": markerRef,
@@ -22833,6 +22887,7 @@ const VDataTableServer = genericComponent()({
22833
22887
  groupBy
22834
22888
  } = createGroupBy(props);
22835
22889
  const {
22890
+ initialSortOrder,
22836
22891
  sortBy,
22837
22892
  multiSort,
22838
22893
  mustSort
@@ -22859,6 +22914,7 @@ const VDataTableServer = genericComponent()({
22859
22914
  const {
22860
22915
  toggleSort
22861
22916
  } = provideSort({
22917
+ initialSortOrder,
22862
22918
  sortBy,
22863
22919
  multiSort,
22864
22920
  mustSort,
@@ -22945,7 +23001,7 @@ const VDataTableServer = genericComponent()({
22945
23001
  }));
22946
23002
  useRender(() => {
22947
23003
  const dataTableFooterProps = VDataTableFooter.filterProps(props);
22948
- const dataTableHeadersProps = VDataTableHeaders.filterProps(props);
23004
+ const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']));
22949
23005
  const dataTableRowsProps = VDataTableRows.filterProps(props);
22950
23006
  const tableProps = VTable.filterProps(props);
22951
23007
  return createVNode(VTable, mergeProps({
@@ -22961,7 +23017,9 @@ const VDataTableServer = genericComponent()({
22961
23017
  "key": "thead",
22962
23018
  "class": "v-data-table__thead",
22963
23019
  "role": "rowgroup"
22964
- }, [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", {
22965
23023
  "class": "v-data-table__tbody",
22966
23024
  "role": "rowgroup"
22967
23025
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
@@ -31331,6 +31389,10 @@ const VTreeviewChildren = genericComponent()({
31331
31389
  ...props,
31332
31390
  ...treeItemProps
31333
31391
  });
31392
+ const footerProps = {
31393
+ hideActions: props.hideActions,
31394
+ indentLines: indentLines.footer
31395
+ };
31334
31396
  return children ? createVNode(VTreeviewGroup, mergeProps(treeviewGroupProps, {
31335
31397
  "value": props.returnObject ? item.raw : treeviewGroupProps?.value,
31336
31398
  "rawId": treeviewGroupProps?.value
@@ -31343,6 +31405,7 @@ const VTreeviewChildren = genericComponent()({
31343
31405
  ...itemProps,
31344
31406
  ...activatorProps,
31345
31407
  value: itemProps?.value,
31408
+ hideActions: props.hideActions,
31346
31409
  indentLines: indentLines.node,
31347
31410
  onToggleExpand: [() => checkChildren(item), activatorProps.onClick],
31348
31411
  onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected)
@@ -31356,7 +31419,6 @@ const VTreeviewChildren = genericComponent()({
31356
31419
  "ref": el => activatorItems.value[index] = el
31357
31420
  }, listItemProps, {
31358
31421
  "hasCustomPrepend": !!slots.prepend,
31359
- "hideActions": props.hideActions,
31360
31422
  "value": props.returnObject ? item.raw : itemProps.value,
31361
31423
  "loading": loading
31362
31424
  }), slotsWithItem));
@@ -31368,6 +31430,7 @@ const VTreeviewChildren = genericComponent()({
31368
31430
  "isLastGroup": nextItemHasChildren,
31369
31431
  "returnObject": props.returnObject
31370
31432
  }), slots), slots.footer?.({
31433
+ props: footerProps,
31371
31434
  item: item.raw,
31372
31435
  internalItem: item,
31373
31436
  loading
@@ -37918,7 +37981,7 @@ function createVuetify$1() {
37918
37981
  };
37919
37982
  });
37920
37983
  }
37921
- const version$1 = "3.10.4-dev.2025-10-01";
37984
+ const version$1 = "3.10.4-dev.2025-10-06";
37922
37985
  createVuetify$1.version = version$1;
37923
37986
 
37924
37987
  // Vue's inject() can only be used in setup
@@ -38216,7 +38279,7 @@ var index = /*#__PURE__*/Object.freeze({
38216
38279
 
38217
38280
  /* eslint-disable local-rules/sort-imports */
38218
38281
 
38219
- const version = "3.10.4-dev.2025-10-01";
38282
+ const version = "3.10.4-dev.2025-10-06";
38220
38283
 
38221
38284
  /* eslint-disable local-rules/sort-imports */
38222
38285