vuetify 3.6.13 → 3.7.0-beta.1

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 (177) hide show
  1. package/dist/json/attributes.json +166 -26
  2. package/dist/json/importMap-labs.json +16 -16
  3. package/dist/json/importMap.json +138 -138
  4. package/dist/json/tags.json +40 -5
  5. package/dist/json/web-types.json +394 -41
  6. package/dist/vuetify-labs.css +2300 -2284
  7. package/dist/vuetify-labs.d.ts +12763 -12509
  8. package/dist/vuetify-labs.esm.js +153 -145
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +153 -145
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +887 -871
  13. package/dist/vuetify.d.ts +11161 -10982
  14. package/dist/vuetify.esm.js +107 -65
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +107 -65
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +1076 -1078
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAlert/index.d.mts +55 -55
  22. package/lib/components/VAppBar/index.d.mts +175 -169
  23. package/lib/components/VAutocomplete/VAutocomplete.mjs +15 -8
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  25. package/lib/components/VAutocomplete/index.d.mts +635 -634
  26. package/lib/components/VAvatar/VAvatar.css +7 -0
  27. package/lib/components/VAvatar/VAvatar.mjs +6 -1
  28. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  29. package/lib/components/VAvatar/VAvatar.sass +1 -0
  30. package/lib/components/VAvatar/_variables.scss +13 -0
  31. package/lib/components/VAvatar/index.d.mts +36 -30
  32. package/lib/components/VBadge/index.d.mts +58 -58
  33. package/lib/components/VBanner/index.d.mts +59 -59
  34. package/lib/components/VBottomNavigation/index.d.mts +58 -58
  35. package/lib/components/VBottomSheet/index.d.mts +125 -125
  36. package/lib/components/VBreadcrumbs/index.d.mts +42 -42
  37. package/lib/components/VBtn/VBtn.mjs +3 -1
  38. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  39. package/lib/components/VBtn/index.d.mts +113 -107
  40. package/lib/components/VBtnGroup/index.d.mts +23 -23
  41. package/lib/components/VBtnToggle/index.d.mts +40 -40
  42. package/lib/components/VCard/index.d.mts +93 -93
  43. package/lib/components/VCarousel/index.d.mts +130 -121
  44. package/lib/components/VCheckbox/index.d.mts +166 -166
  45. package/lib/components/VChip/index.d.mts +86 -86
  46. package/lib/components/VChipGroup/index.d.mts +46 -46
  47. package/lib/components/VColorPicker/index.d.mts +96 -96
  48. package/lib/components/VCombobox/VCombobox.mjs +15 -8
  49. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  50. package/lib/components/VCombobox/index.d.mts +635 -634
  51. package/lib/components/VConfirmEdit/index.d.mts +2 -2
  52. package/lib/components/VCounter/index.d.mts +27 -27
  53. package/lib/components/VDataIterator/index.d.mts +50 -50
  54. package/lib/components/VDataTable/index.d.mts +253 -253
  55. package/lib/components/VDatePicker/index.d.mts +134 -134
  56. package/lib/components/VDialog/index.d.mts +378 -378
  57. package/lib/components/VDivider/index.d.mts +15 -15
  58. package/lib/components/VEmptyState/index.d.mts +47 -47
  59. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +7 -2
  60. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  61. package/lib/components/VExpansionPanel/index.d.mts +196 -124
  62. package/lib/components/VFab/index.d.mts +233 -227
  63. package/lib/components/VField/index.d.mts +46 -46
  64. package/lib/components/VFileInput/index.d.mts +243 -243
  65. package/lib/components/VFooter/index.d.mts +50 -50
  66. package/lib/components/VForm/index.d.mts +9 -9
  67. package/lib/components/VGrid/VContainer.mjs +6 -1
  68. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  69. package/lib/components/VGrid/index.d.mts +178 -142
  70. package/lib/components/VIcon/index.d.mts +24 -24
  71. package/lib/components/VImg/VImg.css +9 -0
  72. package/lib/components/VImg/VImg.mjs +2 -0
  73. package/lib/components/VImg/VImg.mjs.map +1 -1
  74. package/lib/components/VImg/VImg.sass +9 -0
  75. package/lib/components/VImg/index.d.mts +101 -92
  76. package/lib/components/VInfiniteScroll/index.d.mts +22 -22
  77. package/lib/components/VInput/index.d.mts +53 -53
  78. package/lib/components/VItemGroup/index.d.mts +17 -17
  79. package/lib/components/VLabel/index.d.mts +8 -8
  80. package/lib/components/VLayout/index.d.mts +36 -36
  81. package/lib/components/VLazy/index.d.mts +31 -31
  82. package/lib/components/VList/VListItem.css +2 -2
  83. package/lib/components/VList/VListItem.mjs +2 -0
  84. package/lib/components/VList/VListItem.mjs.map +1 -1
  85. package/lib/components/VList/VListItem.sass +1 -1
  86. package/lib/components/VList/index.d.mts +191 -190
  87. package/lib/components/VLocaleProvider/index.d.mts +7 -7
  88. package/lib/components/VMain/index.d.mts +10 -10
  89. package/lib/components/VMenu/VMenu.mjs +7 -5
  90. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  91. package/lib/components/VMenu/index.d.mts +423 -423
  92. package/lib/components/VMessages/index.d.mts +20 -20
  93. package/lib/components/VNavigationDrawer/index.d.mts +72 -72
  94. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  95. package/lib/components/VOtpInput/index.d.mts +88 -88
  96. package/lib/components/VOverlay/index.d.mts +104 -104
  97. package/lib/components/VOverlay/locationStrategies.mjs +0 -6
  98. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  99. package/lib/components/VPagination/index.d.mts +55 -55
  100. package/lib/components/VParallax/index.d.mts +7 -7
  101. package/lib/components/VProgressCircular/index.d.mts +24 -24
  102. package/lib/components/VProgressLinear/index.d.mts +52 -52
  103. package/lib/components/VRadio/index.d.mts +41 -41
  104. package/lib/components/VRadioGroup/index.d.mts +97 -97
  105. package/lib/components/VRangeSlider/index.d.mts +94 -94
  106. package/lib/components/VRating/index.d.mts +22 -22
  107. package/lib/components/VResponsive/index.d.mts +23 -23
  108. package/lib/components/VSelect/VSelect.mjs +15 -13
  109. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  110. package/lib/components/VSelect/index.d.mts +635 -634
  111. package/lib/components/VSelect/useScrolling.mjs +3 -3
  112. package/lib/components/VSelect/useScrolling.mjs.map +1 -1
  113. package/lib/components/VSelectionControl/index.d.mts +43 -43
  114. package/lib/components/VSelectionControlGroup/index.d.mts +39 -39
  115. package/lib/components/VSheet/index.d.mts +34 -34
  116. package/lib/components/VSkeletonLoader/index.d.mts +17 -17
  117. package/lib/components/VSlideGroup/VSlideGroup.mjs +3 -1
  118. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  119. package/lib/components/VSlideGroup/index.d.mts +39 -33
  120. package/lib/components/VSlider/index.d.mts +87 -87
  121. package/lib/components/VSnackbar/index.d.mts +436 -436
  122. package/lib/components/VSparkline/index.d.mts +38 -38
  123. package/lib/components/VSpeedDial/index.d.mts +185 -185
  124. package/lib/components/VStepper/index.d.mts +119 -119
  125. package/lib/components/VSwitch/index.d.mts +100 -100
  126. package/lib/components/VSystemBar/index.d.mts +39 -39
  127. package/lib/components/VTable/index.d.mts +4 -4
  128. package/lib/components/VTabs/index.d.mts +530 -512
  129. package/lib/components/VTextField/index.d.mts +397 -397
  130. package/lib/components/VTextarea/index.d.mts +274 -274
  131. package/lib/components/VTimeline/index.d.mts +26 -26
  132. package/lib/components/VToolbar/index.d.mts +53 -53
  133. package/lib/components/VTooltip/index.d.mts +451 -451
  134. package/lib/components/VValidation/index.d.mts +22 -21
  135. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +2 -0
  136. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  137. package/lib/components/VVirtualScroll/index.d.mts +13 -10
  138. package/lib/components/VWindow/index.d.mts +31 -31
  139. package/lib/components/index.d.mts +11225 -11046
  140. package/lib/components/transitions/index.d.mts +200 -200
  141. package/lib/composables/nested/nested.mjs +3 -4
  142. package/lib/composables/nested/nested.mjs.map +1 -1
  143. package/lib/composables/nested/openStrategies.mjs +4 -2
  144. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  145. package/lib/composables/nested/selectStrategies.mjs +5 -5
  146. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  147. package/lib/composables/validation.mjs +8 -6
  148. package/lib/composables/validation.mjs.map +1 -1
  149. package/lib/composables/virtual.mjs +1 -0
  150. package/lib/composables/virtual.mjs.map +1 -1
  151. package/lib/entry-bundler.mjs +1 -1
  152. package/lib/entry-bundler.mjs.map +1 -1
  153. package/lib/framework.mjs +1 -1
  154. package/lib/framework.mjs.map +1 -1
  155. package/lib/index.d.mts +44 -44
  156. package/lib/labs/VCalendar/index.d.mts +52 -52
  157. package/lib/labs/VDateInput/index.d.mts +244 -244
  158. package/lib/labs/VNumberInput/index.d.mts +235 -235
  159. package/lib/labs/VPicker/index.d.mts +45 -45
  160. package/lib/labs/VSnackbarQueue/index.d.mts +642 -642
  161. package/lib/labs/VStepperVertical/index.d.mts +224 -188
  162. package/lib/labs/VTimePicker/VTimePickerClock.mjs +0 -1
  163. package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
  164. package/lib/labs/VTimePicker/index.d.mts +115 -115
  165. package/lib/labs/VTreeview/VTreeview.mjs +7 -5
  166. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  167. package/lib/labs/VTreeview/VTreeviewChildren.mjs +33 -10
  168. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  169. package/lib/labs/VTreeview/VTreeviewItem.css +1 -1
  170. package/lib/labs/VTreeview/VTreeviewItem.mjs +14 -74
  171. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  172. package/lib/labs/VTreeview/VTreeviewItem.sass +2 -5
  173. package/lib/labs/VTreeview/index.d.mts +270 -253
  174. package/lib/labs/components.d.mts +1835 -1782
  175. package/lib/util/helpers.mjs +5 -0
  176. package/lib/util/helpers.mjs.map +1 -1
  177. package/package.json +10 -5
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.6.13
2
+ * Vuetify v3.7.0-beta.1
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -498,6 +498,11 @@ function templateRef() {
498
498
  });
499
499
  return fn;
500
500
  }
501
+ function checkPrintable(e) {
502
+ const isPrintableChar = e.key.length === 1;
503
+ const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
504
+ return isPrintableChar && noModifier;
505
+ }
501
506
 
502
507
  // Utilities
503
508
  const block = ['top', 'bottom'];
@@ -3688,6 +3693,7 @@ const Intersect = {
3688
3693
  // not intended for public use, this is passed in by vuetify-loader
3689
3694
 
3690
3695
  const makeVImgProps = propsFactory({
3696
+ absolute: Boolean,
3691
3697
  alt: String,
3692
3698
  cover: Boolean,
3693
3699
  color: String,
@@ -3944,6 +3950,7 @@ const VImg = genericComponent()({
3944
3950
  const responsiveProps = VResponsive.filterProps(props);
3945
3951
  return withDirectives(createVNode(VResponsive, mergeProps({
3946
3952
  "class": ['v-img', {
3953
+ 'v-img--absolute': props.absolute,
3947
3954
  'v-img--booting': !isBooted.value
3948
3955
  }, backgroundColorClasses.value, roundedClasses.value, props.class],
3949
3956
  "style": [{
@@ -5744,6 +5751,7 @@ const makeVBtnProps = propsFactory({
5744
5751
  type: Boolean,
5745
5752
  default: undefined
5746
5753
  },
5754
+ activeColor: String,
5747
5755
  baseColor: String,
5748
5756
  symbol: {
5749
5757
  type: null,
@@ -5835,10 +5843,11 @@ const VBtn = genericComponent()({
5835
5843
  }
5836
5844
  return group?.isSelected.value;
5837
5845
  });
5846
+ const color = computed(() => isActive.value ? props.activeColor ?? props.color : props.color);
5838
5847
  const variantProps = computed(() => {
5839
5848
  const showColor = group?.isSelected.value && (!link.isLink.value || link.isActive?.value) || !group || link.isActive?.value;
5840
5849
  return {
5841
- color: showColor ? props.color ?? props.baseColor : props.baseColor,
5850
+ color: showColor ? color.value ?? props.baseColor : props.baseColor,
5842
5851
  variant: props.variant
5843
5852
  };
5844
5853
  });
@@ -6179,6 +6188,7 @@ const makeVAvatarProps = propsFactory({
6179
6188
  icon: IconValue,
6180
6189
  image: String,
6181
6190
  text: String,
6191
+ ...makeBorderProps(),
6182
6192
  ...makeComponentProps(),
6183
6193
  ...makeDensityProps(),
6184
6194
  ...makeRoundedProps(),
@@ -6199,6 +6209,9 @@ const VAvatar = genericComponent()({
6199
6209
  const {
6200
6210
  themeClasses
6201
6211
  } = provideTheme(props);
6212
+ const {
6213
+ borderClasses
6214
+ } = useBorder(props);
6202
6215
  const {
6203
6216
  colorClasses,
6204
6217
  colorStyles,
@@ -6218,7 +6231,7 @@ const VAvatar = genericComponent()({
6218
6231
  "class": ['v-avatar', {
6219
6232
  'v-avatar--start': props.start,
6220
6233
  'v-avatar--end': props.end
6221
- }, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
6234
+ }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
6222
6235
  "style": [colorStyles.value, sizeStyles.value, props.style]
6223
6236
  }, {
6224
6237
  default: () => [!slots.default ? props.image ? createVNode(VImg, {
@@ -6918,12 +6931,14 @@ function useValidation(props) {
6918
6931
  const validateOn = computed(() => {
6919
6932
  let value = (props.validateOn ?? form?.validateOn.value) || 'input';
6920
6933
  if (value === 'lazy') value = 'input lazy';
6934
+ if (value === 'eager') value = 'input eager';
6921
6935
  const set = new Set(value?.split(' ') ?? []);
6922
6936
  return {
6923
- blur: set.has('blur') || set.has('input'),
6924
6937
  input: set.has('input'),
6925
- submit: set.has('submit'),
6926
- lazy: set.has('lazy')
6938
+ blur: set.has('blur') || set.has('input') || set.has('invalid-input'),
6939
+ invalidInput: set.has('invalid-input'),
6940
+ lazy: set.has('lazy'),
6941
+ eager: set.has('eager')
6927
6942
  };
6928
6943
  });
6929
6944
  const isValid = computed(() => {
@@ -6960,11 +6975,11 @@ function useValidation(props) {
6960
6975
  });
6961
6976
  onMounted(async () => {
6962
6977
  if (!validateOn.value.lazy) {
6963
- await validate(true);
6978
+ await validate(!validateOn.value.eager);
6964
6979
  }
6965
6980
  form?.update(uid.value, isValid.value, errorMessages.value);
6966
6981
  });
6967
- useToggleScope(() => validateOn.value.input, () => {
6982
+ useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {
6968
6983
  watch(validationModel, () => {
6969
6984
  if (validationModel.value != null) {
6970
6985
  validate();
@@ -6992,7 +7007,7 @@ function useValidation(props) {
6992
7007
  async function resetValidation() {
6993
7008
  isPristine.value = true;
6994
7009
  if (!validateOn.value.lazy) {
6995
- await validate(true);
7010
+ await validate(!validateOn.value.eager);
6996
7011
  } else {
6997
7012
  internalErrorMessages.value = [];
6998
7013
  }
@@ -7932,7 +7947,9 @@ const VSlideGroup = genericComponent()({
7932
7947
  selected: group.selected,
7933
7948
  scrollTo,
7934
7949
  scrollOffset,
7935
- focus
7950
+ focus,
7951
+ hasPrev,
7952
+ hasNext
7936
7953
  };
7937
7954
  }
7938
7955
  });
@@ -8402,6 +8419,7 @@ const leafSingleActiveStrategy = mandatory => {
8402
8419
  return strategy;
8403
8420
  };
8404
8421
 
8422
+ // Utilities
8405
8423
  const singleOpenStrategy = {
8406
8424
  open: _ref => {
8407
8425
  let {
@@ -8435,11 +8453,11 @@ const multipleOpenStrategy = {
8435
8453
  parents
8436
8454
  } = _ref2;
8437
8455
  if (value) {
8438
- let parent = parents.get(id);
8456
+ let parent = toRaw(parents.get(id));
8439
8457
  opened.add(id);
8440
8458
  while (parent != null && parent !== id) {
8441
8459
  opened.add(parent);
8442
- parent = parents.get(parent);
8460
+ parent = toRaw(parents.get(parent));
8443
8461
  }
8444
8462
  return opened;
8445
8463
  } else {
@@ -8610,18 +8628,18 @@ const classicSelectStrategy = mandatory => {
8610
8628
  const items = [id];
8611
8629
  while (items.length) {
8612
8630
  const item = items.shift();
8613
- selected.set(item, value ? 'on' : 'off');
8631
+ selected.set(toRaw(item), value ? 'on' : 'off');
8614
8632
  if (children.has(item)) {
8615
8633
  items.push(...children.get(item));
8616
8634
  }
8617
8635
  }
8618
- let parent = parents.get(id);
8636
+ let parent = toRaw(parents.get(id));
8619
8637
  while (parent) {
8620
8638
  const childrenIds = children.get(parent);
8621
- const everySelected = childrenIds.every(cid => selected.get(cid) === 'on');
8622
- const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off');
8639
+ const everySelected = childrenIds.every(cid => selected.get(toRaw(cid)) === 'on');
8640
+ const noneSelected = childrenIds.every(cid => !selected.has(toRaw(cid)) || selected.get(toRaw(cid)) === 'off');
8623
8641
  selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');
8624
- parent = parents.get(parent);
8642
+ parent = toRaw(parents.get(parent));
8625
8643
  }
8626
8644
 
8627
8645
  // If mandatory and planned deselect results in no selected
@@ -8699,7 +8717,7 @@ const useNested = props => {
8699
8717
  let isUnmounted = false;
8700
8718
  const children = ref(new Map());
8701
8719
  const parents = ref(new Map());
8702
- const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
8720
+ const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(toRaw(v)), v => [...v.values()]);
8703
8721
  const activeStrategy = computed(() => {
8704
8722
  if (typeof props.activeStrategy === 'object') return props.activeStrategy;
8705
8723
  if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
@@ -8790,7 +8808,6 @@ const useNested = props => {
8790
8808
  children.value.set(parent, list.filter(child => child !== id));
8791
8809
  }
8792
8810
  parents.value.delete(id);
8793
- opened.value.delete(id);
8794
8811
  },
8795
8812
  open: (id, value, event) => {
8796
8813
  vm.emit('click:open', {
@@ -8873,9 +8890,9 @@ const useNestedItem = (id, isGroup) => {
8873
8890
  const item = {
8874
8891
  ...parent,
8875
8892
  id: computedId,
8876
- open: (open, e) => parent.root.open(computedId.value, open, e),
8893
+ open: (open, e) => parent.root.open(toRaw(computedId.value), open, e),
8877
8894
  openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),
8878
- isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
8895
+ isOpen: computed(() => parent.root.opened.value.has(toRaw(computedId.value))),
8879
8896
  parent: computed(() => parent.root.parents.value.get(computedId.value)),
8880
8897
  activate: (activated, e) => parent.root.activate(computedId.value, activated, e),
8881
8898
  isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),
@@ -9099,6 +9116,7 @@ const VListItem = genericComponent()({
9099
9116
  activate,
9100
9117
  isActivated,
9101
9118
  select,
9119
+ isOpen,
9102
9120
  isSelected,
9103
9121
  isIndeterminate,
9104
9122
  isGroupActivator,
@@ -9153,6 +9171,7 @@ const VListItem = genericComponent()({
9153
9171
  const slotProps = computed(() => ({
9154
9172
  isActive: isActive.value,
9155
9173
  select,
9174
+ isOpen: isOpen.value,
9156
9175
  isSelected: isSelected.value,
9157
9176
  isIndeterminate: isIndeterminate.value
9158
9177
  }));
@@ -9962,12 +9981,6 @@ function getIntrinsicSize(el, isRtl) {
9962
9981
  // el.style.removeProperty('max-width')
9963
9982
  // el.style.removeProperty('max-height')
9964
9983
 
9965
- if (isRtl) {
9966
- el.style.removeProperty('left');
9967
- } else {
9968
- el.style.removeProperty('right');
9969
- }
9970
-
9971
9984
  /* eslint-disable-next-line sonarjs/prefer-immediate-return */
9972
9985
  const contentBox = nullifyTransforms(el);
9973
9986
  if (isRtl) {
@@ -11359,23 +11372,25 @@ const VMenu = genericComponent()({
11359
11372
  const id = computed(() => props.id || `v-menu-${uid}`);
11360
11373
  const overlay = ref();
11361
11374
  const parent = inject$1(VMenuSymbol, null);
11362
- const openChildren = shallowRef(0);
11375
+ const openChildren = shallowRef(new Set());
11363
11376
  provide(VMenuSymbol, {
11364
11377
  register() {
11365
- ++openChildren.value;
11378
+ openChildren.value.add(uid);
11366
11379
  },
11367
11380
  unregister() {
11368
- --openChildren.value;
11381
+ openChildren.value.delete(uid);
11369
11382
  },
11370
11383
  closeParents(e) {
11371
11384
  setTimeout(() => {
11372
- if (!openChildren.value && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11385
+ if (!openChildren.value.size && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11373
11386
  isActive.value = false;
11374
11387
  parent?.closeParents();
11375
11388
  }
11376
11389
  }, 40);
11377
11390
  }
11378
11391
  });
11392
+ onBeforeUnmount(() => parent?.unregister());
11393
+ onDeactivated(() => isActive.value = false);
11379
11394
  async function onFocusIn(e) {
11380
11395
  const before = e.relatedTarget;
11381
11396
  const after = e.target;
@@ -12287,6 +12302,7 @@ function useVirtual(props, items) {
12287
12302
  deep: true
12288
12303
  });
12289
12304
  return {
12305
+ calculateVisibleItems,
12290
12306
  containerRef,
12291
12307
  markerRef,
12292
12308
  computedItems,
@@ -12350,6 +12366,7 @@ const VVirtualScroll = genericComponent()({
12350
12366
  dimensionStyles
12351
12367
  } = useDimension(props);
12352
12368
  const {
12369
+ calculateVisibleItems,
12353
12370
  containerRef,
12354
12371
  markerRef,
12355
12372
  handleScroll,
@@ -12421,6 +12438,7 @@ const VVirtualScroll = genericComponent()({
12421
12438
  }, [children])]);
12422
12439
  });
12423
12440
  return {
12441
+ calculateVisibleItems,
12424
12442
  scrollToIndex
12425
12443
  };
12426
12444
  }
@@ -12489,9 +12507,9 @@ function useScrolling(listRef, textFieldRef) {
12489
12507
  }
12490
12508
  }
12491
12509
  return {
12492
- onListScroll,
12493
- onListKeydown
12494
- };
12510
+ onScrollPassive: onListScroll,
12511
+ onKeydown: onListKeydown
12512
+ }; // typescript doesn't know about vue's event merging
12495
12513
  }
12496
12514
 
12497
12515
  // Types
@@ -12566,7 +12584,7 @@ const VSelect = genericComponent()({
12566
12584
  const menu = computed({
12567
12585
  get: () => _menu.value,
12568
12586
  set: v => {
12569
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
12587
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
12570
12588
  _menu.value = v;
12571
12589
  }
12572
12590
  });
@@ -12605,10 +12623,7 @@ const VSelect = genericComponent()({
12605
12623
  };
12606
12624
  });
12607
12625
  const listRef = ref();
12608
- const {
12609
- onListScroll,
12610
- onListKeydown
12611
- } = useScrolling(listRef, vTextFieldRef);
12626
+ const listEvents = useScrolling(listRef, vTextFieldRef);
12612
12627
  function onClear(e) {
12613
12628
  if (props.openOnClear) {
12614
12629
  menu.value = true;
@@ -12618,6 +12633,11 @@ const VSelect = genericComponent()({
12618
12633
  if (menuDisabled.value) return;
12619
12634
  menu.value = !menu.value;
12620
12635
  }
12636
+ function onListKeydown(e) {
12637
+ if (checkPrintable(e)) {
12638
+ onKeydown(e);
12639
+ }
12640
+ }
12621
12641
  function onKeydown(e) {
12622
12642
  if (!e.key || props.readonly || form?.isReadonly.value) return;
12623
12643
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
@@ -12638,11 +12658,6 @@ const VSelect = genericComponent()({
12638
12658
  // html select hotkeys
12639
12659
  const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
12640
12660
 
12641
- function checkPrintable(e) {
12642
- const isPrintableChar = e.key.length === 1;
12643
- const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
12644
- return isPrintableChar && noModifier;
12645
- }
12646
12661
  if (props.multiple || !checkPrintable(e)) return;
12647
12662
  const now = performance.now();
12648
12663
  if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
@@ -12687,6 +12702,11 @@ const VSelect = genericComponent()({
12687
12702
  menu.value = false;
12688
12703
  }
12689
12704
  }
12705
+ function onAfterEnter() {
12706
+ if (props.eager) {
12707
+ vVirtualScrollRef.value?.calculateVisibleItems();
12708
+ }
12709
+ }
12690
12710
  function onAfterLeave() {
12691
12711
  if (isFocused.value) {
12692
12712
  vTextFieldRef.value?.focus();
@@ -12765,6 +12785,7 @@ const VSelect = genericComponent()({
12765
12785
  "openOnClick": false,
12766
12786
  "closeOnContentClick": false,
12767
12787
  "transition": props.transition,
12788
+ "onAfterEnter": onAfterEnter,
12768
12789
  "onAfterLeave": onAfterLeave
12769
12790
  }, computedMenuProps.value), {
12770
12791
  default: () => [hasList && createVNode(VList, mergeProps({
@@ -12774,11 +12795,10 @@ const VSelect = genericComponent()({
12774
12795
  "onMousedown": e => e.preventDefault(),
12775
12796
  "onKeydown": onListKeydown,
12776
12797
  "onFocusin": onFocusin,
12777
- "onScrollPassive": onListScroll,
12778
12798
  "tabindex": "-1",
12779
12799
  "aria-live": "polite",
12780
12800
  "color": props.itemColor ?? props.color
12781
- }, props.listProps), {
12801
+ }, listEvents, props.listProps), {
12782
12802
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
12783
12803
  "title": t(props.noDataText)
12784
12804
  }, null)), createVNode(VVirtualScroll, {
@@ -13073,7 +13093,7 @@ const VAutocomplete = genericComponent()({
13073
13093
  const menu = computed({
13074
13094
  get: () => _menu.value,
13075
13095
  set: v => {
13076
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
13096
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
13077
13097
  _menu.value = v;
13078
13098
  }
13079
13099
  });
@@ -13117,10 +13137,7 @@ const VAutocomplete = genericComponent()({
13117
13137
  });
13118
13138
  const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
13119
13139
  const listRef = ref();
13120
- const {
13121
- onListScroll,
13122
- onListKeydown
13123
- } = useScrolling(listRef, vTextFieldRef);
13140
+ const listEvents = useScrolling(listRef, vTextFieldRef);
13124
13141
  function onClear(e) {
13125
13142
  if (props.openOnClear) {
13126
13143
  menu.value = true;
@@ -13139,6 +13156,11 @@ const VAutocomplete = genericComponent()({
13139
13156
  }
13140
13157
  menu.value = !menu.value;
13141
13158
  }
13159
+ function onListKeydown(e) {
13160
+ if (checkPrintable(e)) {
13161
+ vTextFieldRef.value?.focus();
13162
+ }
13163
+ }
13142
13164
  function onKeydown(e) {
13143
13165
  if (props.readonly || form?.isReadonly.value) return;
13144
13166
  const selectionStart = vTextFieldRef.value.selectionStart;
@@ -13203,6 +13225,11 @@ const VAutocomplete = genericComponent()({
13203
13225
  }
13204
13226
  }
13205
13227
  }
13228
+ function onAfterEnter() {
13229
+ if (props.eager) {
13230
+ vVirtualScrollRef.value?.calculateVisibleItems();
13231
+ }
13232
+ }
13206
13233
  function onAfterLeave() {
13207
13234
  if (isFocused.value) {
13208
13235
  isPristine.value = true;
@@ -13331,6 +13358,7 @@ const VAutocomplete = genericComponent()({
13331
13358
  "openOnClick": false,
13332
13359
  "closeOnContentClick": false,
13333
13360
  "transition": props.transition,
13361
+ "onAfterEnter": onAfterEnter,
13334
13362
  "onAfterLeave": onAfterLeave
13335
13363
  }, props.menuProps), {
13336
13364
  default: () => [hasList && createVNode(VList, mergeProps({
@@ -13341,11 +13369,10 @@ const VAutocomplete = genericComponent()({
13341
13369
  "onKeydown": onListKeydown,
13342
13370
  "onFocusin": onFocusin,
13343
13371
  "onFocusout": onFocusout,
13344
- "onScrollPassive": onListScroll,
13345
13372
  "tabindex": "-1",
13346
13373
  "aria-live": "polite",
13347
13374
  "color": props.itemColor ?? props.color
13348
- }, props.listProps), {
13375
+ }, listEvents, props.listProps), {
13349
13376
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
13350
13377
  "title": t(props.noDataText)
13351
13378
  }, null)), createVNode(VVirtualScroll, {
@@ -16906,7 +16933,7 @@ const VCombobox = genericComponent()({
16906
16933
  const menu = computed({
16907
16934
  get: () => _menu.value,
16908
16935
  set: v => {
16909
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
16936
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
16910
16937
  _menu.value = v;
16911
16938
  }
16912
16939
  });
@@ -16989,10 +17016,7 @@ const VCombobox = genericComponent()({
16989
17016
  });
16990
17017
  const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
16991
17018
  const listRef = ref();
16992
- const {
16993
- onListScroll,
16994
- onListKeydown
16995
- } = useScrolling(listRef, vTextFieldRef);
17019
+ const listEvents = useScrolling(listRef, vTextFieldRef);
16996
17020
  function onClear(e) {
16997
17021
  cleared = true;
16998
17022
  if (props.openOnClear) {
@@ -17011,6 +17035,11 @@ const VCombobox = genericComponent()({
17011
17035
  }
17012
17036
  menu.value = !menu.value;
17013
17037
  }
17038
+ function onListKeydown(e) {
17039
+ if (checkPrintable(e)) {
17040
+ vTextFieldRef.value?.focus();
17041
+ }
17042
+ }
17014
17043
  // eslint-disable-next-line complexity
17015
17044
  function onKeydown(e) {
17016
17045
  if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
@@ -17075,6 +17104,11 @@ const VCombobox = genericComponent()({
17075
17104
  }
17076
17105
  }
17077
17106
  }
17107
+ function onAfterEnter() {
17108
+ if (props.eager) {
17109
+ vVirtualScrollRef.value?.calculateVisibleItems();
17110
+ }
17111
+ }
17078
17112
  function onAfterLeave() {
17079
17113
  if (isFocused.value) {
17080
17114
  isPristine.value = true;
@@ -17199,6 +17233,7 @@ const VCombobox = genericComponent()({
17199
17233
  "openOnClick": false,
17200
17234
  "closeOnContentClick": false,
17201
17235
  "transition": props.transition,
17236
+ "onAfterEnter": onAfterEnter,
17202
17237
  "onAfterLeave": onAfterLeave
17203
17238
  }, props.menuProps), {
17204
17239
  default: () => [hasList && createVNode(VList, mergeProps({
@@ -17209,11 +17244,10 @@ const VCombobox = genericComponent()({
17209
17244
  "onKeydown": onListKeydown,
17210
17245
  "onFocusin": onFocusin,
17211
17246
  "onFocusout": onFocusout,
17212
- "onScrollPassive": onListScroll,
17213
17247
  "tabindex": "-1",
17214
17248
  "aria-live": "polite",
17215
17249
  "color": props.itemColor ?? props.color
17216
- }, props.listProps), {
17250
+ }, listEvents, props.listProps), {
17217
17251
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
17218
17252
  "title": t(props.noDataText)
17219
17253
  }, null)), createVNode(VVirtualScroll, {
@@ -21157,6 +21191,7 @@ const makeVContainerProps = propsFactory({
21157
21191
  default: false
21158
21192
  },
21159
21193
  ...makeComponentProps(),
21194
+ ...makeDimensionProps(),
21160
21195
  ...makeTagProps()
21161
21196
  }, 'VContainer');
21162
21197
  const VContainer = genericComponent()({
@@ -21169,11 +21204,14 @@ const VContainer = genericComponent()({
21169
21204
  const {
21170
21205
  rtlClasses
21171
21206
  } = useRtl();
21207
+ const {
21208
+ dimensionStyles
21209
+ } = useDimension(props);
21172
21210
  useRender(() => createVNode(props.tag, {
21173
21211
  "class": ['v-container', {
21174
21212
  'v-container--fluid': props.fluid
21175
21213
  }, rtlClasses.value, props.class],
21176
- "style": props.style
21214
+ "style": [dimensionStyles.value, props.style]
21177
21215
  }, slots));
21178
21216
  return {};
21179
21217
  }
@@ -22595,7 +22633,8 @@ const makeVExpansionPanelTitleProps = propsFactory({
22595
22633
  default: false
22596
22634
  },
22597
22635
  readonly: Boolean,
22598
- ...makeComponentProps()
22636
+ ...makeComponentProps(),
22637
+ ...makeDimensionProps()
22599
22638
  }, 'VExpansionPanelTitle');
22600
22639
  const VExpansionPanelTitle = genericComponent()({
22601
22640
  name: 'VExpansionPanelTitle',
@@ -22613,6 +22652,9 @@ const VExpansionPanelTitle = genericComponent()({
22613
22652
  backgroundColorClasses,
22614
22653
  backgroundColorStyles
22615
22654
  } = useBackgroundColor(props, 'color');
22655
+ const {
22656
+ dimensionStyles
22657
+ } = useDimension(props);
22616
22658
  const slotProps = computed(() => ({
22617
22659
  collapseIcon: props.collapseIcon,
22618
22660
  disabled: expansionPanel.disabled.value,
@@ -22627,7 +22669,7 @@ const VExpansionPanelTitle = genericComponent()({
22627
22669
  'v-expansion-panel-title--focusable': props.focusable,
22628
22670
  'v-expansion-panel-title--static': props.static
22629
22671
  }, backgroundColorClasses.value, props.class],
22630
- "style": [backgroundColorStyles.value, props.style],
22672
+ "style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
22631
22673
  "type": "button",
22632
22674
  "tabindex": expansionPanel.disabled.value ? -1 : undefined,
22633
22675
  "disabled": expansionPanel.disabled.value,
@@ -28133,7 +28175,7 @@ function createVuetify$1() {
28133
28175
  goTo
28134
28176
  };
28135
28177
  }
28136
- const version$1 = "3.6.13";
28178
+ const version$1 = "3.7.0-beta.1";
28137
28179
  createVuetify$1.version = version$1;
28138
28180
 
28139
28181
  // Vue's inject() can only be used in setup
@@ -28158,7 +28200,7 @@ const createVuetify = function () {
28158
28200
  ...options
28159
28201
  });
28160
28202
  };
28161
- const version = "3.6.13";
28203
+ const version = "3.7.0-beta.1";
28162
28204
  createVuetify.version = version;
28163
28205
 
28164
28206
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };