@vuetify/nightly 3.8.7-dev.2025-05-27 → 3.8.7-dev.2025-06-03

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 (91) hide show
  1. package/CHANGELOG.md +12 -3
  2. package/dist/json/attributes.json +3213 -3189
  3. package/dist/json/importMap-labs.json +20 -20
  4. package/dist/json/importMap.json +176 -176
  5. package/dist/json/tags.json +6 -0
  6. package/dist/json/web-types.json +5962 -5902
  7. package/dist/vuetify-labs.cjs +52 -19
  8. package/dist/vuetify-labs.css +5727 -5721
  9. package/dist/vuetify-labs.d.ts +677 -402
  10. package/dist/vuetify-labs.esm.js +52 -19
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +52 -19
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +52 -19
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +4233 -4227
  17. package/dist/vuetify.d.ts +621 -378
  18. package/dist/vuetify.esm.js +52 -19
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +52 -19
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +29 -24
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VAppBar/VAppBar.d.ts +15 -3
  26. package/lib/components/VAppBar/VAppBarNavIcon.d.ts +20 -10
  27. package/lib/components/VAutocomplete/VAutocomplete.d.ts +21 -7
  28. package/lib/components/VAutocomplete/VAutocomplete.js +2 -1
  29. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  30. package/lib/components/VBtn/VBtn.d.ts +20 -10
  31. package/lib/components/VCard/VCard.d.ts +20 -10
  32. package/lib/components/VCheckbox/VCheckbox.d.ts +20 -10
  33. package/lib/components/VCheckbox/VCheckboxBtn.d.ts +20 -10
  34. package/lib/components/VChip/VChip.d.ts +20 -10
  35. package/lib/components/VCombobox/VCombobox.d.ts +21 -7
  36. package/lib/components/VCombobox/VCombobox.js +2 -1
  37. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  38. package/lib/components/VDataTable/VDataTable.d.ts +42 -0
  39. package/lib/components/VDataTable/VDataTableServer.d.ts +29 -0
  40. package/lib/components/VDataTable/VDataTableVirtual.d.ts +29 -0
  41. package/lib/components/VExpansionPanel/VExpansionPanel.d.ts +20 -10
  42. package/lib/components/VExpansionPanel/VExpansionPanelTitle.d.ts +20 -10
  43. package/lib/components/VExpansionPanel/VExpansionPanels.d.ts +20 -10
  44. package/lib/components/VFab/VFab.d.ts +20 -10
  45. package/lib/components/VList/VList.d.ts +13 -0
  46. package/lib/components/VList/VList.js +4 -1
  47. package/lib/components/VList/VList.js.map +1 -1
  48. package/lib/components/VList/VListItem.d.ts +23 -10
  49. package/lib/components/VList/VListItem.js +7 -3
  50. package/lib/components/VList/VListItem.js.map +1 -1
  51. package/lib/components/VList/list.d.ts +9 -2
  52. package/lib/components/VList/list.js +7 -0
  53. package/lib/components/VList/list.js.map +1 -1
  54. package/lib/components/VRadio/VRadio.d.ts +20 -10
  55. package/lib/components/VRadioGroup/VRadioGroup.d.ts +20 -10
  56. package/lib/components/VSelect/VSelect.d.ts +33 -11
  57. package/lib/components/VSelectionControl/VSelectionControl.d.ts +20 -10
  58. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.d.ts +28 -14
  59. package/lib/components/VSlider/VSliderThumb.d.ts +20 -10
  60. package/lib/components/VStepper/VStepperItem.d.ts +28 -14
  61. package/lib/components/VSwitch/VSwitch.d.ts +20 -10
  62. package/lib/components/VTable/VTable.css +6 -0
  63. package/lib/components/VTable/VTable.d.ts +55 -24
  64. package/lib/components/VTable/VTable.js +9 -2
  65. package/lib/components/VTable/VTable.js.map +1 -1
  66. package/lib/components/VTable/VTable.sass +14 -0
  67. package/lib/components/VTable/_variables.scss +1 -0
  68. package/lib/components/VTabs/VTab.d.ts +56 -28
  69. package/lib/components/VToolbar/VToolbar.d.ts +15 -3
  70. package/lib/components/VToolbar/VToolbar.js +6 -3
  71. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  72. package/lib/composables/date/DateAdapter.d.ts +2 -2
  73. package/lib/composables/date/DateAdapter.js.map +1 -1
  74. package/lib/composables/date/adapters/string.d.ts +54 -0
  75. package/lib/composables/date/adapters/string.js +153 -0
  76. package/lib/composables/date/adapters/string.js.map +1 -0
  77. package/lib/composables/date/date.d.ts +2 -2
  78. package/lib/directives/ripple/index.d.ts +2 -1
  79. package/lib/directives/ripple/index.js +12 -7
  80. package/lib/directives/ripple/index.js.map +1 -1
  81. package/lib/entry-bundler.d.ts +2 -2
  82. package/lib/entry-bundler.js +1 -1
  83. package/lib/framework.d.ts +75 -65
  84. package/lib/framework.js +1 -1
  85. package/lib/labs/VFileUpload/VFileUploadItem.d.ts +20 -10
  86. package/lib/labs/VStepperVertical/VStepperVertical.d.ts +20 -10
  87. package/lib/labs/VStepperVertical/VStepperVerticalItem.d.ts +20 -10
  88. package/lib/labs/VTreeview/VTreeview.d.ts +13 -0
  89. package/lib/labs/VTreeview/VTreeviewItem.d.ts +20 -10
  90. package/lib/labs/entry-bundler.d.ts +2 -2
  91. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.7-dev.2025-05-27
2
+ * Vuetify v3.8.7-dev.2025-06-03
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -3799,7 +3799,10 @@ const makeVToolbarProps = propsFactory({
3799
3799
  default: 'default',
3800
3800
  validator: v => allowedDensities$1.includes(v)
3801
3801
  },
3802
- extended: Boolean,
3802
+ extended: {
3803
+ type: Boolean,
3804
+ default: null
3805
+ },
3803
3806
  extensionHeight: {
3804
3807
  type: [Number, String],
3805
3808
  default: 48
@@ -3847,7 +3850,7 @@ const VToolbar = genericComponent()({
3847
3850
  const {
3848
3851
  rtlClasses
3849
3852
  } = useRtl();
3850
- const isExtended = shallowRef(!!(props.extended || slots.extension?.()));
3853
+ const isExtended = shallowRef(props.extended === null ? !!slots.extension?.() : props.extended);
3851
3854
  const contentHeight = computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));
3852
3855
  const extensionHeight = computed(() => isExtended.value ? parseInt(Number(props.extensionHeight) + (props.density === 'prominent' ? Number(props.extensionHeight) : 0) - (props.density === 'comfortable' ? 4 : 0) - (props.density === 'compact' ? 8 : 0), 10) : 0);
3853
3856
  provideDefaults({
@@ -3859,7 +3862,7 @@ const VToolbar = genericComponent()({
3859
3862
  const hasTitle = !!(props.title || slots.title);
3860
3863
  const hasImage = !!(slots.image || props.image);
3861
3864
  const extension = slots.extension?.();
3862
- isExtended.value = !!(props.extended || extension);
3865
+ isExtended.value = props.extended === null ? !!extension : props.extended;
3863
3866
  return createVNode(props.tag, {
3864
3867
  "class": normalizeClass(['v-toolbar', {
3865
3868
  'v-toolbar--absolute': props.absolute,
@@ -5626,8 +5629,8 @@ function rippleCancelShow(e) {
5626
5629
  window.clearTimeout(element._ripple.showTimer);
5627
5630
  }
5628
5631
  let keyboardRipple = false;
5629
- function keyboardRippleShow(e) {
5630
- if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {
5632
+ function keyboardRippleShow(e, keys) {
5633
+ if (!keyboardRipple && keys.includes(e.keyCode)) {
5631
5634
  keyboardRipple = true;
5632
5635
  rippleShow(e);
5633
5636
  }
@@ -5655,9 +5658,12 @@ function updateRipple(el, binding, wasEnabled) {
5655
5658
  el._ripple.enabled = enabled;
5656
5659
  el._ripple.centered = modifiers.center;
5657
5660
  el._ripple.circle = modifiers.circle;
5658
- if (isObject(value) && value.class) {
5659
- el._ripple.class = value.class;
5661
+ const bindingValue = isObject(value) ? value : {};
5662
+ if (bindingValue.class) {
5663
+ el._ripple.class = bindingValue.class;
5660
5664
  }
5665
+ const allowedKeys = bindingValue.keys ?? [keyCodes.enter, keyCodes.space];
5666
+ el._ripple.keyDownHandler = e => keyboardRippleShow(e, allowedKeys);
5661
5667
  if (enabled && !wasEnabled) {
5662
5668
  if (modifiers.stop) {
5663
5669
  el.addEventListener('touchstart', rippleStop, {
@@ -5679,7 +5685,7 @@ function updateRipple(el, binding, wasEnabled) {
5679
5685
  el.addEventListener('mousedown', rippleShow);
5680
5686
  el.addEventListener('mouseup', rippleHide);
5681
5687
  el.addEventListener('mouseleave', rippleHide);
5682
- el.addEventListener('keydown', keyboardRippleShow);
5688
+ el.addEventListener('keydown', e => keyboardRippleShow(e, allowedKeys));
5683
5689
  el.addEventListener('keyup', keyboardRippleHide);
5684
5690
  el.addEventListener('blur', focusRippleHide);
5685
5691
 
@@ -5699,7 +5705,9 @@ function removeListeners(el) {
5699
5705
  el.removeEventListener('touchcancel', rippleHide);
5700
5706
  el.removeEventListener('mouseup', rippleHide);
5701
5707
  el.removeEventListener('mouseleave', rippleHide);
5702
- el.removeEventListener('keydown', keyboardRippleShow);
5708
+ if (el._ripple?.keyDownHandler) {
5709
+ el.removeEventListener('keydown', el._ripple.keyDownHandler);
5710
+ }
5703
5711
  el.removeEventListener('keyup', keyboardRippleHide);
5704
5712
  el.removeEventListener('dragstart', rippleHide);
5705
5713
  el.removeEventListener('blur', focusRippleHide);
@@ -5708,8 +5716,8 @@ function mounted$4(el, binding) {
5708
5716
  updateRipple(el, binding, false);
5709
5717
  }
5710
5718
  function unmounted$4(el) {
5711
- delete el._ripple;
5712
5719
  removeListeners(el);
5720
+ delete el._ripple;
5713
5721
  }
5714
5722
  function updated$1(el, binding) {
5715
5723
  if (binding.value === binding.oldValue) {
@@ -8420,11 +8428,18 @@ const VDivider = genericComponent()({
8420
8428
  // List
8421
8429
  const ListKey = Symbol.for('vuetify:list');
8422
8430
  function createList() {
8431
+ let {
8432
+ filterable
8433
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
8434
+ filterable: false
8435
+ };
8423
8436
  const parent = inject$1(ListKey, {
8437
+ filterable: false,
8424
8438
  hasPrepend: shallowRef(false),
8425
8439
  updateHasPrepend: () => null
8426
8440
  });
8427
8441
  const data = {
8442
+ filterable: parent.filterable || filterable,
8428
8443
  hasPrepend: shallowRef(false),
8429
8444
  updateHasPrepend: value => {
8430
8445
  if (value) data.hasPrepend.value = value;
@@ -9376,6 +9391,9 @@ const VListItem = genericComponent()({
9376
9391
  roundedClasses
9377
9392
  } = useRounded(roundedProps);
9378
9393
  const lineClasses = toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
9394
+ const rippleOptions = toRef(() => props.ripple !== undefined && !!props.ripple && list?.filterable ? {
9395
+ keys: [keyCodes.enter]
9396
+ } : props.ripple);
9379
9397
  const slotProps = computed(() => ({
9380
9398
  isActive: isActive.value,
9381
9399
  select,
@@ -9400,8 +9418,9 @@ const VListItem = genericComponent()({
9400
9418
  function onKeyDown(e) {
9401
9419
  const target = e.target;
9402
9420
  if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
9403
- if (e.key === 'Enter' || e.key === ' ') {
9421
+ if (e.key === 'Enter' || e.key === ' ' && !list?.filterable) {
9404
9422
  e.preventDefault();
9423
+ e.stopPropagation();
9405
9424
  e.target.dispatchEvent(new MouseEvent('click', e));
9406
9425
  }
9407
9426
  }
@@ -9511,7 +9530,7 @@ const VListItem = genericComponent()({
9511
9530
  }), createElementVNode("div", {
9512
9531
  "class": "v-list-item__spacer"
9513
9532
  }, null)])]
9514
- }), [[Ripple, isClickable.value && props.ripple]]);
9533
+ }), [[Ripple, isClickable.value && rippleOptions.value]]);
9515
9534
  });
9516
9535
  return {
9517
9536
  activate,
@@ -9834,6 +9853,7 @@ const makeVListProps = propsFactory({
9834
9853
  activeClass: String,
9835
9854
  bgColor: String,
9836
9855
  disabled: Boolean,
9856
+ filterable: Boolean,
9837
9857
  expandIcon: IconValue,
9838
9858
  collapseIcon: IconValue,
9839
9859
  lines: {
@@ -9917,7 +9937,9 @@ const VList = genericComponent()({
9917
9937
  const activeColor = toRef(() => props.activeColor);
9918
9938
  const baseColor = toRef(() => props.baseColor);
9919
9939
  const color = toRef(() => props.color);
9920
- createList();
9940
+ createList({
9941
+ filterable: props.filterable
9942
+ });
9921
9943
  provideDefaults({
9922
9944
  VListGroup: {
9923
9945
  activeColor,
@@ -13540,7 +13562,7 @@ const VAutocomplete = genericComponent()({
13540
13562
  menu.value = !menu.value;
13541
13563
  }
13542
13564
  function onListKeydown(e) {
13543
- if (e.key !== ' ' && checkPrintable(e)) {
13565
+ if (checkPrintable(e) || e.key === 'Backspace') {
13544
13566
  vTextFieldRef.value?.focus();
13545
13567
  }
13546
13568
  }
@@ -13745,6 +13767,7 @@ const VAutocomplete = genericComponent()({
13745
13767
  }, props.menuProps), {
13746
13768
  default: () => [hasList && createVNode(VList, mergeProps({
13747
13769
  "ref": listRef,
13770
+ "filterable": true,
13748
13771
  "selected": selectedValues.value,
13749
13772
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
13750
13773
  "onMousedown": e => e.preventDefault(),
@@ -18283,7 +18306,7 @@ const VCombobox = genericComponent()({
18283
18306
  menu.value = !menu.value;
18284
18307
  }
18285
18308
  function onListKeydown(e) {
18286
- if (e.key !== ' ' && checkPrintable(e)) {
18309
+ if (checkPrintable(e) || e.key === 'Backspace') {
18287
18310
  vTextFieldRef.value?.focus();
18288
18311
  }
18289
18312
  }
@@ -18488,6 +18511,7 @@ const VCombobox = genericComponent()({
18488
18511
  }, props.menuProps), {
18489
18512
  default: () => [hasList && createVNode(VList, mergeProps({
18490
18513
  "ref": listRef,
18514
+ "filterable": true,
18491
18515
  "selected": selectedValues.value,
18492
18516
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
18493
18517
  "onMousedown": e => e.preventDefault(),
@@ -20974,11 +20998,18 @@ const VDataTableRows = genericComponent()({
20974
20998
  }
20975
20999
  });
20976
21000
 
21001
+ // Types
21002
+
20977
21003
  const makeVTableProps = propsFactory({
20978
21004
  fixedHeader: Boolean,
20979
21005
  fixedFooter: Boolean,
20980
21006
  height: [Number, String],
20981
21007
  hover: Boolean,
21008
+ striped: {
21009
+ type: String,
21010
+ default: null,
21011
+ validator: v => ['even', 'odd'].includes(v)
21012
+ },
20982
21013
  ...makeComponentProps(),
20983
21014
  ...makeDensityProps(),
20984
21015
  ...makeTagProps(),
@@ -21005,7 +21036,9 @@ const VTable = genericComponent()({
21005
21036
  'v-table--fixed-footer': props.fixedFooter,
21006
21037
  'v-table--has-top': !!slots.top,
21007
21038
  'v-table--has-bottom': !!slots.bottom,
21008
- 'v-table--hover': props.hover
21039
+ 'v-table--hover': props.hover,
21040
+ 'v-table--striped-even': props.striped === 'even',
21041
+ 'v-table--striped-odd': props.striped === 'odd'
21009
21042
  }, themeClasses.value, densityClasses.value, props.class]),
21010
21043
  "style": normalizeStyle(props.style)
21011
21044
  }, {
@@ -32188,7 +32221,7 @@ function createVuetify$1() {
32188
32221
  };
32189
32222
  });
32190
32223
  }
32191
- const version$1 = "3.8.7-dev.2025-05-27";
32224
+ const version$1 = "3.8.7-dev.2025-06-03";
32192
32225
  createVuetify$1.version = version$1;
32193
32226
 
32194
32227
  // Vue's inject() can only be used in setup
@@ -32486,7 +32519,7 @@ var index = /*#__PURE__*/Object.freeze({
32486
32519
 
32487
32520
  /* eslint-disable local-rules/sort-imports */
32488
32521
 
32489
- const version = "3.8.7-dev.2025-05-27";
32522
+ const version = "3.8.7-dev.2025-06-03";
32490
32523
 
32491
32524
  /* eslint-disable local-rules/sort-imports */
32492
32525