@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
  */
@@ -5904,8 +5904,8 @@ function rippleCancelShow(e) {
5904
5904
  window.clearTimeout(element._ripple.showTimer);
5905
5905
  }
5906
5906
  let keyboardRipple = false;
5907
- function keyboardRippleShow(e) {
5908
- if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {
5907
+ function keyboardRippleShow(e, keys) {
5908
+ if (!keyboardRipple && keys.includes(e.keyCode)) {
5909
5909
  keyboardRipple = true;
5910
5910
  rippleShow(e);
5911
5911
  }
@@ -5933,9 +5933,12 @@ function updateRipple(el, binding, wasEnabled) {
5933
5933
  el._ripple.enabled = enabled;
5934
5934
  el._ripple.centered = modifiers.center;
5935
5935
  el._ripple.circle = modifiers.circle;
5936
- if (isObject(value) && value.class) {
5937
- el._ripple.class = value.class;
5936
+ const bindingValue = isObject(value) ? value : {};
5937
+ if (bindingValue.class) {
5938
+ el._ripple.class = bindingValue.class;
5938
5939
  }
5940
+ const allowedKeys = bindingValue.keys ?? [keyCodes.enter, keyCodes.space];
5941
+ el._ripple.keyDownHandler = e => keyboardRippleShow(e, allowedKeys);
5939
5942
  if (enabled && !wasEnabled) {
5940
5943
  if (modifiers.stop) {
5941
5944
  el.addEventListener('touchstart', rippleStop, {
@@ -5957,7 +5960,7 @@ function updateRipple(el, binding, wasEnabled) {
5957
5960
  el.addEventListener('mousedown', rippleShow);
5958
5961
  el.addEventListener('mouseup', rippleHide);
5959
5962
  el.addEventListener('mouseleave', rippleHide);
5960
- el.addEventListener('keydown', keyboardRippleShow);
5963
+ el.addEventListener('keydown', e => keyboardRippleShow(e, allowedKeys));
5961
5964
  el.addEventListener('keyup', keyboardRippleHide);
5962
5965
  el.addEventListener('blur', focusRippleHide);
5963
5966
 
@@ -5977,7 +5980,9 @@ function removeListeners(el) {
5977
5980
  el.removeEventListener('touchcancel', rippleHide);
5978
5981
  el.removeEventListener('mouseup', rippleHide);
5979
5982
  el.removeEventListener('mouseleave', rippleHide);
5980
- el.removeEventListener('keydown', keyboardRippleShow);
5983
+ if (el._ripple?.keyDownHandler) {
5984
+ el.removeEventListener('keydown', el._ripple.keyDownHandler);
5985
+ }
5981
5986
  el.removeEventListener('keyup', keyboardRippleHide);
5982
5987
  el.removeEventListener('dragstart', rippleHide);
5983
5988
  el.removeEventListener('blur', focusRippleHide);
@@ -5986,8 +5991,8 @@ function mounted$4(el, binding) {
5986
5991
  updateRipple(el, binding, false);
5987
5992
  }
5988
5993
  function unmounted$4(el) {
5989
- delete el._ripple;
5990
5994
  removeListeners(el);
5995
+ delete el._ripple;
5991
5996
  }
5992
5997
  function updated$1(el, binding) {
5993
5998
  if (binding.value === binding.oldValue) {
@@ -8698,11 +8703,18 @@ const VDivider = genericComponent()({
8698
8703
  // List
8699
8704
  const ListKey = Symbol.for('vuetify:list');
8700
8705
  function createList() {
8706
+ let {
8707
+ filterable
8708
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
8709
+ filterable: false
8710
+ };
8701
8711
  const parent = inject$1(ListKey, {
8712
+ filterable: false,
8702
8713
  hasPrepend: shallowRef(false),
8703
8714
  updateHasPrepend: () => null
8704
8715
  });
8705
8716
  const data = {
8717
+ filterable: parent.filterable || filterable,
8706
8718
  hasPrepend: shallowRef(false),
8707
8719
  updateHasPrepend: value => {
8708
8720
  if (value) data.hasPrepend.value = value;
@@ -9654,6 +9666,9 @@ const VListItem = genericComponent()({
9654
9666
  roundedClasses
9655
9667
  } = useRounded(roundedProps);
9656
9668
  const lineClasses = toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
9669
+ const rippleOptions = toRef(() => props.ripple !== undefined && !!props.ripple && list?.filterable ? {
9670
+ keys: [keyCodes.enter]
9671
+ } : props.ripple);
9657
9672
  const slotProps = computed(() => ({
9658
9673
  isActive: isActive.value,
9659
9674
  select,
@@ -9678,8 +9693,9 @@ const VListItem = genericComponent()({
9678
9693
  function onKeyDown(e) {
9679
9694
  const target = e.target;
9680
9695
  if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
9681
- if (e.key === 'Enter' || e.key === ' ') {
9696
+ if (e.key === 'Enter' || e.key === ' ' && !list?.filterable) {
9682
9697
  e.preventDefault();
9698
+ e.stopPropagation();
9683
9699
  e.target.dispatchEvent(new MouseEvent('click', e));
9684
9700
  }
9685
9701
  }
@@ -9789,7 +9805,7 @@ const VListItem = genericComponent()({
9789
9805
  }), createElementVNode("div", {
9790
9806
  "class": "v-list-item__spacer"
9791
9807
  }, null)])]
9792
- }), [[Ripple, isClickable.value && props.ripple]]);
9808
+ }), [[Ripple, isClickable.value && rippleOptions.value]]);
9793
9809
  });
9794
9810
  return {
9795
9811
  activate,
@@ -10112,6 +10128,7 @@ const makeVListProps = propsFactory({
10112
10128
  activeClass: String,
10113
10129
  bgColor: String,
10114
10130
  disabled: Boolean,
10131
+ filterable: Boolean,
10115
10132
  expandIcon: IconValue,
10116
10133
  collapseIcon: IconValue,
10117
10134
  lines: {
@@ -10195,7 +10212,9 @@ const VList = genericComponent()({
10195
10212
  const activeColor = toRef(() => props.activeColor);
10196
10213
  const baseColor = toRef(() => props.baseColor);
10197
10214
  const color = toRef(() => props.color);
10198
- createList();
10215
+ createList({
10216
+ filterable: props.filterable
10217
+ });
10199
10218
  provideDefaults({
10200
10219
  VListGroup: {
10201
10220
  activeColor,
@@ -13818,7 +13837,7 @@ const VAutocomplete = genericComponent()({
13818
13837
  menu.value = !menu.value;
13819
13838
  }
13820
13839
  function onListKeydown(e) {
13821
- if (e.key !== ' ' && checkPrintable(e)) {
13840
+ if (checkPrintable(e) || e.key === 'Backspace') {
13822
13841
  vTextFieldRef.value?.focus();
13823
13842
  }
13824
13843
  }
@@ -14023,6 +14042,7 @@ const VAutocomplete = genericComponent()({
14023
14042
  }, props.menuProps), {
14024
14043
  default: () => [hasList && createVNode(VList, mergeProps({
14025
14044
  "ref": listRef,
14045
+ "filterable": true,
14026
14046
  "selected": selectedValues.value,
14027
14047
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
14028
14048
  "onMousedown": e => e.preventDefault(),
@@ -18561,7 +18581,7 @@ const VCombobox = genericComponent()({
18561
18581
  menu.value = !menu.value;
18562
18582
  }
18563
18583
  function onListKeydown(e) {
18564
- if (e.key !== ' ' && checkPrintable(e)) {
18584
+ if (checkPrintable(e) || e.key === 'Backspace') {
18565
18585
  vTextFieldRef.value?.focus();
18566
18586
  }
18567
18587
  }
@@ -18766,6 +18786,7 @@ const VCombobox = genericComponent()({
18766
18786
  }, props.menuProps), {
18767
18787
  default: () => [hasList && createVNode(VList, mergeProps({
18768
18788
  "ref": listRef,
18789
+ "filterable": true,
18769
18790
  "selected": selectedValues.value,
18770
18791
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
18771
18792
  "onMousedown": e => e.preventDefault(),
@@ -29498,7 +29519,7 @@ function createVuetify$1() {
29498
29519
  };
29499
29520
  });
29500
29521
  }
29501
- const version$1 = "3.8.7-dev.2025-05-27";
29522
+ const version$1 = "3.8.7-dev.2025-05-30";
29502
29523
  createVuetify$1.version = version$1;
29503
29524
 
29504
29525
  // Vue's inject() can only be used in setup
@@ -29523,7 +29544,7 @@ const createVuetify = function () {
29523
29544
  ...options
29524
29545
  });
29525
29546
  };
29526
- const version = "3.8.7-dev.2025-05-27";
29547
+ const version = "3.8.7-dev.2025-05-30";
29527
29548
  createVuetify.version = version;
29528
29549
 
29529
29550
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };