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

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 (70) hide show
  1. package/CHANGELOG.md +8 -3
  2. package/dist/json/attributes.json +1893 -1885
  3. package/dist/json/importMap-labs.json +34 -34
  4. package/dist/json/importMap.json +140 -140
  5. package/dist/json/tags.json +2 -0
  6. package/dist/json/web-types.json +3286 -3266
  7. package/dist/vuetify-labs.cjs +36 -15
  8. package/dist/vuetify-labs.css +5222 -5222
  9. package/dist/vuetify-labs.d.ts +401 -213
  10. package/dist/vuetify-labs.esm.js +36 -15
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +36 -15
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +36 -15
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +5419 -5419
  17. package/dist/vuetify.d.ts +345 -189
  18. package/dist/vuetify.esm.js +36 -15
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +36 -15
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +24 -19
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VAppBar/VAppBarNavIcon.d.ts +20 -10
  26. package/lib/components/VAutocomplete/VAutocomplete.d.ts +21 -7
  27. package/lib/components/VAutocomplete/VAutocomplete.js +2 -1
  28. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  29. package/lib/components/VBtn/VBtn.d.ts +20 -10
  30. package/lib/components/VCard/VCard.d.ts +20 -10
  31. package/lib/components/VCheckbox/VCheckbox.d.ts +20 -10
  32. package/lib/components/VCheckbox/VCheckboxBtn.d.ts +20 -10
  33. package/lib/components/VChip/VChip.d.ts +20 -10
  34. package/lib/components/VCombobox/VCombobox.d.ts +21 -7
  35. package/lib/components/VCombobox/VCombobox.js +2 -1
  36. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  37. package/lib/components/VExpansionPanel/VExpansionPanel.d.ts +20 -10
  38. package/lib/components/VExpansionPanel/VExpansionPanelTitle.d.ts +20 -10
  39. package/lib/components/VExpansionPanel/VExpansionPanels.d.ts +20 -10
  40. package/lib/components/VFab/VFab.d.ts +20 -10
  41. package/lib/components/VList/VList.d.ts +13 -0
  42. package/lib/components/VList/VList.js +4 -1
  43. package/lib/components/VList/VList.js.map +1 -1
  44. package/lib/components/VList/VListItem.d.ts +23 -10
  45. package/lib/components/VList/VListItem.js +7 -3
  46. package/lib/components/VList/VListItem.js.map +1 -1
  47. package/lib/components/VList/list.d.ts +9 -2
  48. package/lib/components/VList/list.js +7 -0
  49. package/lib/components/VList/list.js.map +1 -1
  50. package/lib/components/VRadio/VRadio.d.ts +20 -10
  51. package/lib/components/VRadioGroup/VRadioGroup.d.ts +20 -10
  52. package/lib/components/VSelect/VSelect.d.ts +33 -11
  53. package/lib/components/VSelectionControl/VSelectionControl.d.ts +20 -10
  54. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.d.ts +28 -14
  55. package/lib/components/VSlider/VSliderThumb.d.ts +20 -10
  56. package/lib/components/VStepper/VStepperItem.d.ts +28 -14
  57. package/lib/components/VSwitch/VSwitch.d.ts +20 -10
  58. package/lib/components/VTabs/VTab.d.ts +56 -28
  59. package/lib/directives/ripple/index.d.ts +2 -1
  60. package/lib/directives/ripple/index.js +12 -7
  61. package/lib/directives/ripple/index.js.map +1 -1
  62. package/lib/entry-bundler.js +1 -1
  63. package/lib/framework.d.ts +53 -53
  64. package/lib/framework.js +1 -1
  65. package/lib/labs/VFileUpload/VFileUploadItem.d.ts +20 -10
  66. package/lib/labs/VStepperVertical/VStepperVertical.d.ts +20 -10
  67. package/lib/labs/VStepperVertical/VStepperVerticalItem.d.ts +20 -10
  68. package/lib/labs/VTreeview/VTreeview.d.ts +13 -0
  69. package/lib/labs/VTreeview/VTreeviewItem.d.ts +20 -10
  70. 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-05-30
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -5626,8 +5626,8 @@ function rippleCancelShow(e) {
5626
5626
  window.clearTimeout(element._ripple.showTimer);
5627
5627
  }
5628
5628
  let keyboardRipple = false;
5629
- function keyboardRippleShow(e) {
5630
- if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {
5629
+ function keyboardRippleShow(e, keys) {
5630
+ if (!keyboardRipple && keys.includes(e.keyCode)) {
5631
5631
  keyboardRipple = true;
5632
5632
  rippleShow(e);
5633
5633
  }
@@ -5655,9 +5655,12 @@ function updateRipple(el, binding, wasEnabled) {
5655
5655
  el._ripple.enabled = enabled;
5656
5656
  el._ripple.centered = modifiers.center;
5657
5657
  el._ripple.circle = modifiers.circle;
5658
- if (isObject(value) && value.class) {
5659
- el._ripple.class = value.class;
5658
+ const bindingValue = isObject(value) ? value : {};
5659
+ if (bindingValue.class) {
5660
+ el._ripple.class = bindingValue.class;
5660
5661
  }
5662
+ const allowedKeys = bindingValue.keys ?? [keyCodes.enter, keyCodes.space];
5663
+ el._ripple.keyDownHandler = e => keyboardRippleShow(e, allowedKeys);
5661
5664
  if (enabled && !wasEnabled) {
5662
5665
  if (modifiers.stop) {
5663
5666
  el.addEventListener('touchstart', rippleStop, {
@@ -5679,7 +5682,7 @@ function updateRipple(el, binding, wasEnabled) {
5679
5682
  el.addEventListener('mousedown', rippleShow);
5680
5683
  el.addEventListener('mouseup', rippleHide);
5681
5684
  el.addEventListener('mouseleave', rippleHide);
5682
- el.addEventListener('keydown', keyboardRippleShow);
5685
+ el.addEventListener('keydown', e => keyboardRippleShow(e, allowedKeys));
5683
5686
  el.addEventListener('keyup', keyboardRippleHide);
5684
5687
  el.addEventListener('blur', focusRippleHide);
5685
5688
 
@@ -5699,7 +5702,9 @@ function removeListeners(el) {
5699
5702
  el.removeEventListener('touchcancel', rippleHide);
5700
5703
  el.removeEventListener('mouseup', rippleHide);
5701
5704
  el.removeEventListener('mouseleave', rippleHide);
5702
- el.removeEventListener('keydown', keyboardRippleShow);
5705
+ if (el._ripple?.keyDownHandler) {
5706
+ el.removeEventListener('keydown', el._ripple.keyDownHandler);
5707
+ }
5703
5708
  el.removeEventListener('keyup', keyboardRippleHide);
5704
5709
  el.removeEventListener('dragstart', rippleHide);
5705
5710
  el.removeEventListener('blur', focusRippleHide);
@@ -5708,8 +5713,8 @@ function mounted$4(el, binding) {
5708
5713
  updateRipple(el, binding, false);
5709
5714
  }
5710
5715
  function unmounted$4(el) {
5711
- delete el._ripple;
5712
5716
  removeListeners(el);
5717
+ delete el._ripple;
5713
5718
  }
5714
5719
  function updated$1(el, binding) {
5715
5720
  if (binding.value === binding.oldValue) {
@@ -8420,11 +8425,18 @@ const VDivider = genericComponent()({
8420
8425
  // List
8421
8426
  const ListKey = Symbol.for('vuetify:list');
8422
8427
  function createList() {
8428
+ let {
8429
+ filterable
8430
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
8431
+ filterable: false
8432
+ };
8423
8433
  const parent = inject$1(ListKey, {
8434
+ filterable: false,
8424
8435
  hasPrepend: shallowRef(false),
8425
8436
  updateHasPrepend: () => null
8426
8437
  });
8427
8438
  const data = {
8439
+ filterable: parent.filterable || filterable,
8428
8440
  hasPrepend: shallowRef(false),
8429
8441
  updateHasPrepend: value => {
8430
8442
  if (value) data.hasPrepend.value = value;
@@ -9376,6 +9388,9 @@ const VListItem = genericComponent()({
9376
9388
  roundedClasses
9377
9389
  } = useRounded(roundedProps);
9378
9390
  const lineClasses = toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
9391
+ const rippleOptions = toRef(() => props.ripple !== undefined && !!props.ripple && list?.filterable ? {
9392
+ keys: [keyCodes.enter]
9393
+ } : props.ripple);
9379
9394
  const slotProps = computed(() => ({
9380
9395
  isActive: isActive.value,
9381
9396
  select,
@@ -9400,8 +9415,9 @@ const VListItem = genericComponent()({
9400
9415
  function onKeyDown(e) {
9401
9416
  const target = e.target;
9402
9417
  if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
9403
- if (e.key === 'Enter' || e.key === ' ') {
9418
+ if (e.key === 'Enter' || e.key === ' ' && !list?.filterable) {
9404
9419
  e.preventDefault();
9420
+ e.stopPropagation();
9405
9421
  e.target.dispatchEvent(new MouseEvent('click', e));
9406
9422
  }
9407
9423
  }
@@ -9511,7 +9527,7 @@ const VListItem = genericComponent()({
9511
9527
  }), createElementVNode("div", {
9512
9528
  "class": "v-list-item__spacer"
9513
9529
  }, null)])]
9514
- }), [[Ripple, isClickable.value && props.ripple]]);
9530
+ }), [[Ripple, isClickable.value && rippleOptions.value]]);
9515
9531
  });
9516
9532
  return {
9517
9533
  activate,
@@ -9834,6 +9850,7 @@ const makeVListProps = propsFactory({
9834
9850
  activeClass: String,
9835
9851
  bgColor: String,
9836
9852
  disabled: Boolean,
9853
+ filterable: Boolean,
9837
9854
  expandIcon: IconValue,
9838
9855
  collapseIcon: IconValue,
9839
9856
  lines: {
@@ -9917,7 +9934,9 @@ const VList = genericComponent()({
9917
9934
  const activeColor = toRef(() => props.activeColor);
9918
9935
  const baseColor = toRef(() => props.baseColor);
9919
9936
  const color = toRef(() => props.color);
9920
- createList();
9937
+ createList({
9938
+ filterable: props.filterable
9939
+ });
9921
9940
  provideDefaults({
9922
9941
  VListGroup: {
9923
9942
  activeColor,
@@ -13540,7 +13559,7 @@ const VAutocomplete = genericComponent()({
13540
13559
  menu.value = !menu.value;
13541
13560
  }
13542
13561
  function onListKeydown(e) {
13543
- if (e.key !== ' ' && checkPrintable(e)) {
13562
+ if (checkPrintable(e) || e.key === 'Backspace') {
13544
13563
  vTextFieldRef.value?.focus();
13545
13564
  }
13546
13565
  }
@@ -13745,6 +13764,7 @@ const VAutocomplete = genericComponent()({
13745
13764
  }, props.menuProps), {
13746
13765
  default: () => [hasList && createVNode(VList, mergeProps({
13747
13766
  "ref": listRef,
13767
+ "filterable": true,
13748
13768
  "selected": selectedValues.value,
13749
13769
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
13750
13770
  "onMousedown": e => e.preventDefault(),
@@ -18283,7 +18303,7 @@ const VCombobox = genericComponent()({
18283
18303
  menu.value = !menu.value;
18284
18304
  }
18285
18305
  function onListKeydown(e) {
18286
- if (e.key !== ' ' && checkPrintable(e)) {
18306
+ if (checkPrintable(e) || e.key === 'Backspace') {
18287
18307
  vTextFieldRef.value?.focus();
18288
18308
  }
18289
18309
  }
@@ -18488,6 +18508,7 @@ const VCombobox = genericComponent()({
18488
18508
  }, props.menuProps), {
18489
18509
  default: () => [hasList && createVNode(VList, mergeProps({
18490
18510
  "ref": listRef,
18511
+ "filterable": true,
18491
18512
  "selected": selectedValues.value,
18492
18513
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
18493
18514
  "onMousedown": e => e.preventDefault(),
@@ -32188,7 +32209,7 @@ function createVuetify$1() {
32188
32209
  };
32189
32210
  });
32190
32211
  }
32191
- const version$1 = "3.8.7-dev.2025-05-27";
32212
+ const version$1 = "3.8.7-dev.2025-05-30";
32192
32213
  createVuetify$1.version = version$1;
32193
32214
 
32194
32215
  // Vue's inject() can only be used in setup
@@ -32486,7 +32507,7 @@ var index = /*#__PURE__*/Object.freeze({
32486
32507
 
32487
32508
  /* eslint-disable local-rules/sort-imports */
32488
32509
 
32489
- const version = "3.8.7-dev.2025-05-27";
32510
+ const version = "3.8.7-dev.2025-05-30";
32490
32511
 
32491
32512
  /* eslint-disable local-rules/sort-imports */
32492
32513