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
package/dist/vuetify.js CHANGED
@@ -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
  */
@@ -502,6 +502,11 @@
502
502
  });
503
503
  return fn;
504
504
  }
505
+ function checkPrintable(e) {
506
+ const isPrintableChar = e.key.length === 1;
507
+ const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
508
+ return isPrintableChar && noModifier;
509
+ }
505
510
 
506
511
  // Utilities
507
512
  const block = ['top', 'bottom'];
@@ -3692,6 +3697,7 @@
3692
3697
  // not intended for public use, this is passed in by vuetify-loader
3693
3698
 
3694
3699
  const makeVImgProps = propsFactory({
3700
+ absolute: Boolean,
3695
3701
  alt: String,
3696
3702
  cover: Boolean,
3697
3703
  color: String,
@@ -3948,6 +3954,7 @@
3948
3954
  const responsiveProps = VResponsive.filterProps(props);
3949
3955
  return vue.withDirectives(vue.createVNode(VResponsive, vue.mergeProps({
3950
3956
  "class": ['v-img', {
3957
+ 'v-img--absolute': props.absolute,
3951
3958
  'v-img--booting': !isBooted.value
3952
3959
  }, backgroundColorClasses.value, roundedClasses.value, props.class],
3953
3960
  "style": [{
@@ -5748,6 +5755,7 @@
5748
5755
  type: Boolean,
5749
5756
  default: undefined
5750
5757
  },
5758
+ activeColor: String,
5751
5759
  baseColor: String,
5752
5760
  symbol: {
5753
5761
  type: null,
@@ -5839,10 +5847,11 @@
5839
5847
  }
5840
5848
  return group?.isSelected.value;
5841
5849
  });
5850
+ const color = vue.computed(() => isActive.value ? props.activeColor ?? props.color : props.color);
5842
5851
  const variantProps = vue.computed(() => {
5843
5852
  const showColor = group?.isSelected.value && (!link.isLink.value || link.isActive?.value) || !group || link.isActive?.value;
5844
5853
  return {
5845
- color: showColor ? props.color ?? props.baseColor : props.baseColor,
5854
+ color: showColor ? color.value ?? props.baseColor : props.baseColor,
5846
5855
  variant: props.variant
5847
5856
  };
5848
5857
  });
@@ -6183,6 +6192,7 @@
6183
6192
  icon: IconValue,
6184
6193
  image: String,
6185
6194
  text: String,
6195
+ ...makeBorderProps(),
6186
6196
  ...makeComponentProps(),
6187
6197
  ...makeDensityProps(),
6188
6198
  ...makeRoundedProps(),
@@ -6203,6 +6213,9 @@
6203
6213
  const {
6204
6214
  themeClasses
6205
6215
  } = provideTheme(props);
6216
+ const {
6217
+ borderClasses
6218
+ } = useBorder(props);
6206
6219
  const {
6207
6220
  colorClasses,
6208
6221
  colorStyles,
@@ -6222,7 +6235,7 @@
6222
6235
  "class": ['v-avatar', {
6223
6236
  'v-avatar--start': props.start,
6224
6237
  'v-avatar--end': props.end
6225
- }, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
6238
+ }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
6226
6239
  "style": [colorStyles.value, sizeStyles.value, props.style]
6227
6240
  }, {
6228
6241
  default: () => [!slots.default ? props.image ? vue.createVNode(VImg, {
@@ -6922,12 +6935,14 @@
6922
6935
  const validateOn = vue.computed(() => {
6923
6936
  let value = (props.validateOn ?? form?.validateOn.value) || 'input';
6924
6937
  if (value === 'lazy') value = 'input lazy';
6938
+ if (value === 'eager') value = 'input eager';
6925
6939
  const set = new Set(value?.split(' ') ?? []);
6926
6940
  return {
6927
- blur: set.has('blur') || set.has('input'),
6928
6941
  input: set.has('input'),
6929
- submit: set.has('submit'),
6930
- lazy: set.has('lazy')
6942
+ blur: set.has('blur') || set.has('input') || set.has('invalid-input'),
6943
+ invalidInput: set.has('invalid-input'),
6944
+ lazy: set.has('lazy'),
6945
+ eager: set.has('eager')
6931
6946
  };
6932
6947
  });
6933
6948
  const isValid = vue.computed(() => {
@@ -6964,11 +6979,11 @@
6964
6979
  });
6965
6980
  vue.onMounted(async () => {
6966
6981
  if (!validateOn.value.lazy) {
6967
- await validate(true);
6982
+ await validate(!validateOn.value.eager);
6968
6983
  }
6969
6984
  form?.update(uid.value, isValid.value, errorMessages.value);
6970
6985
  });
6971
- useToggleScope(() => validateOn.value.input, () => {
6986
+ useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {
6972
6987
  vue.watch(validationModel, () => {
6973
6988
  if (validationModel.value != null) {
6974
6989
  validate();
@@ -6996,7 +7011,7 @@
6996
7011
  async function resetValidation() {
6997
7012
  isPristine.value = true;
6998
7013
  if (!validateOn.value.lazy) {
6999
- await validate(true);
7014
+ await validate(!validateOn.value.eager);
7000
7015
  } else {
7001
7016
  internalErrorMessages.value = [];
7002
7017
  }
@@ -7936,7 +7951,9 @@
7936
7951
  selected: group.selected,
7937
7952
  scrollTo,
7938
7953
  scrollOffset,
7939
- focus
7954
+ focus,
7955
+ hasPrev,
7956
+ hasNext
7940
7957
  };
7941
7958
  }
7942
7959
  });
@@ -8406,6 +8423,7 @@
8406
8423
  return strategy;
8407
8424
  };
8408
8425
 
8426
+ // Utilities
8409
8427
  const singleOpenStrategy = {
8410
8428
  open: _ref => {
8411
8429
  let {
@@ -8439,11 +8457,11 @@
8439
8457
  parents
8440
8458
  } = _ref2;
8441
8459
  if (value) {
8442
- let parent = parents.get(id);
8460
+ let parent = vue.toRaw(parents.get(id));
8443
8461
  opened.add(id);
8444
8462
  while (parent != null && parent !== id) {
8445
8463
  opened.add(parent);
8446
- parent = parents.get(parent);
8464
+ parent = vue.toRaw(parents.get(parent));
8447
8465
  }
8448
8466
  return opened;
8449
8467
  } else {
@@ -8614,18 +8632,18 @@
8614
8632
  const items = [id];
8615
8633
  while (items.length) {
8616
8634
  const item = items.shift();
8617
- selected.set(item, value ? 'on' : 'off');
8635
+ selected.set(vue.toRaw(item), value ? 'on' : 'off');
8618
8636
  if (children.has(item)) {
8619
8637
  items.push(...children.get(item));
8620
8638
  }
8621
8639
  }
8622
- let parent = parents.get(id);
8640
+ let parent = vue.toRaw(parents.get(id));
8623
8641
  while (parent) {
8624
8642
  const childrenIds = children.get(parent);
8625
- const everySelected = childrenIds.every(cid => selected.get(cid) === 'on');
8626
- const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off');
8643
+ const everySelected = childrenIds.every(cid => selected.get(vue.toRaw(cid)) === 'on');
8644
+ const noneSelected = childrenIds.every(cid => !selected.has(vue.toRaw(cid)) || selected.get(vue.toRaw(cid)) === 'off');
8627
8645
  selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');
8628
- parent = parents.get(parent);
8646
+ parent = vue.toRaw(parents.get(parent));
8629
8647
  }
8630
8648
 
8631
8649
  // If mandatory and planned deselect results in no selected
@@ -8703,7 +8721,7 @@
8703
8721
  let isUnmounted = false;
8704
8722
  const children = vue.ref(new Map());
8705
8723
  const parents = vue.ref(new Map());
8706
- const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
8724
+ const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(vue.toRaw(v)), v => [...v.values()]);
8707
8725
  const activeStrategy = vue.computed(() => {
8708
8726
  if (typeof props.activeStrategy === 'object') return props.activeStrategy;
8709
8727
  if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
@@ -8794,7 +8812,6 @@
8794
8812
  children.value.set(parent, list.filter(child => child !== id));
8795
8813
  }
8796
8814
  parents.value.delete(id);
8797
- opened.value.delete(id);
8798
8815
  },
8799
8816
  open: (id, value, event) => {
8800
8817
  vm.emit('click:open', {
@@ -8877,9 +8894,9 @@
8877
8894
  const item = {
8878
8895
  ...parent,
8879
8896
  id: computedId,
8880
- open: (open, e) => parent.root.open(computedId.value, open, e),
8897
+ open: (open, e) => parent.root.open(vue.toRaw(computedId.value), open, e),
8881
8898
  openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),
8882
- isOpen: vue.computed(() => parent.root.opened.value.has(computedId.value)),
8899
+ isOpen: vue.computed(() => parent.root.opened.value.has(vue.toRaw(computedId.value))),
8883
8900
  parent: vue.computed(() => parent.root.parents.value.get(computedId.value)),
8884
8901
  activate: (activated, e) => parent.root.activate(computedId.value, activated, e),
8885
8902
  isActivated: vue.computed(() => parent.root.activated.value.has(vue.toRaw(computedId.value))),
@@ -9103,6 +9120,7 @@
9103
9120
  activate,
9104
9121
  isActivated,
9105
9122
  select,
9123
+ isOpen,
9106
9124
  isSelected,
9107
9125
  isIndeterminate,
9108
9126
  isGroupActivator,
@@ -9157,6 +9175,7 @@
9157
9175
  const slotProps = vue.computed(() => ({
9158
9176
  isActive: isActive.value,
9159
9177
  select,
9178
+ isOpen: isOpen.value,
9160
9179
  isSelected: isSelected.value,
9161
9180
  isIndeterminate: isIndeterminate.value
9162
9181
  }));
@@ -9966,12 +9985,6 @@
9966
9985
  // el.style.removeProperty('max-width')
9967
9986
  // el.style.removeProperty('max-height')
9968
9987
 
9969
- if (isRtl) {
9970
- el.style.removeProperty('left');
9971
- } else {
9972
- el.style.removeProperty('right');
9973
- }
9974
-
9975
9988
  /* eslint-disable-next-line sonarjs/prefer-immediate-return */
9976
9989
  const contentBox = nullifyTransforms(el);
9977
9990
  if (isRtl) {
@@ -11363,23 +11376,25 @@
11363
11376
  const id = vue.computed(() => props.id || `v-menu-${uid}`);
11364
11377
  const overlay = vue.ref();
11365
11378
  const parent = vue.inject(VMenuSymbol, null);
11366
- const openChildren = vue.shallowRef(0);
11379
+ const openChildren = vue.shallowRef(new Set());
11367
11380
  vue.provide(VMenuSymbol, {
11368
11381
  register() {
11369
- ++openChildren.value;
11382
+ openChildren.value.add(uid);
11370
11383
  },
11371
11384
  unregister() {
11372
- --openChildren.value;
11385
+ openChildren.value.delete(uid);
11373
11386
  },
11374
11387
  closeParents(e) {
11375
11388
  setTimeout(() => {
11376
- if (!openChildren.value && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11389
+ if (!openChildren.value.size && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11377
11390
  isActive.value = false;
11378
11391
  parent?.closeParents();
11379
11392
  }
11380
11393
  }, 40);
11381
11394
  }
11382
11395
  });
11396
+ vue.onBeforeUnmount(() => parent?.unregister());
11397
+ vue.onDeactivated(() => isActive.value = false);
11383
11398
  async function onFocusIn(e) {
11384
11399
  const before = e.relatedTarget;
11385
11400
  const after = e.target;
@@ -12291,6 +12306,7 @@
12291
12306
  deep: true
12292
12307
  });
12293
12308
  return {
12309
+ calculateVisibleItems,
12294
12310
  containerRef,
12295
12311
  markerRef,
12296
12312
  computedItems,
@@ -12354,6 +12370,7 @@
12354
12370
  dimensionStyles
12355
12371
  } = useDimension(props);
12356
12372
  const {
12373
+ calculateVisibleItems,
12357
12374
  containerRef,
12358
12375
  markerRef,
12359
12376
  handleScroll,
@@ -12425,6 +12442,7 @@
12425
12442
  }, [children])]);
12426
12443
  });
12427
12444
  return {
12445
+ calculateVisibleItems,
12428
12446
  scrollToIndex
12429
12447
  };
12430
12448
  }
@@ -12493,9 +12511,9 @@
12493
12511
  }
12494
12512
  }
12495
12513
  return {
12496
- onListScroll,
12497
- onListKeydown
12498
- };
12514
+ onScrollPassive: onListScroll,
12515
+ onKeydown: onListKeydown
12516
+ }; // typescript doesn't know about vue's event merging
12499
12517
  }
12500
12518
 
12501
12519
  // Types
@@ -12570,7 +12588,7 @@
12570
12588
  const menu = vue.computed({
12571
12589
  get: () => _menu.value,
12572
12590
  set: v => {
12573
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
12591
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
12574
12592
  _menu.value = v;
12575
12593
  }
12576
12594
  });
@@ -12609,10 +12627,7 @@
12609
12627
  };
12610
12628
  });
12611
12629
  const listRef = vue.ref();
12612
- const {
12613
- onListScroll,
12614
- onListKeydown
12615
- } = useScrolling(listRef, vTextFieldRef);
12630
+ const listEvents = useScrolling(listRef, vTextFieldRef);
12616
12631
  function onClear(e) {
12617
12632
  if (props.openOnClear) {
12618
12633
  menu.value = true;
@@ -12622,6 +12637,11 @@
12622
12637
  if (menuDisabled.value) return;
12623
12638
  menu.value = !menu.value;
12624
12639
  }
12640
+ function onListKeydown(e) {
12641
+ if (checkPrintable(e)) {
12642
+ onKeydown(e);
12643
+ }
12644
+ }
12625
12645
  function onKeydown(e) {
12626
12646
  if (!e.key || props.readonly || form?.isReadonly.value) return;
12627
12647
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
@@ -12642,11 +12662,6 @@
12642
12662
  // html select hotkeys
12643
12663
  const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
12644
12664
 
12645
- function checkPrintable(e) {
12646
- const isPrintableChar = e.key.length === 1;
12647
- const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
12648
- return isPrintableChar && noModifier;
12649
- }
12650
12665
  if (props.multiple || !checkPrintable(e)) return;
12651
12666
  const now = performance.now();
12652
12667
  if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
@@ -12691,6 +12706,11 @@
12691
12706
  menu.value = false;
12692
12707
  }
12693
12708
  }
12709
+ function onAfterEnter() {
12710
+ if (props.eager) {
12711
+ vVirtualScrollRef.value?.calculateVisibleItems();
12712
+ }
12713
+ }
12694
12714
  function onAfterLeave() {
12695
12715
  if (isFocused.value) {
12696
12716
  vTextFieldRef.value?.focus();
@@ -12769,6 +12789,7 @@
12769
12789
  "openOnClick": false,
12770
12790
  "closeOnContentClick": false,
12771
12791
  "transition": props.transition,
12792
+ "onAfterEnter": onAfterEnter,
12772
12793
  "onAfterLeave": onAfterLeave
12773
12794
  }, computedMenuProps.value), {
12774
12795
  default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
@@ -12778,11 +12799,10 @@
12778
12799
  "onMousedown": e => e.preventDefault(),
12779
12800
  "onKeydown": onListKeydown,
12780
12801
  "onFocusin": onFocusin,
12781
- "onScrollPassive": onListScroll,
12782
12802
  "tabindex": "-1",
12783
12803
  "aria-live": "polite",
12784
12804
  "color": props.itemColor ?? props.color
12785
- }, props.listProps), {
12805
+ }, listEvents, props.listProps), {
12786
12806
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
12787
12807
  "title": t(props.noDataText)
12788
12808
  }, null)), vue.createVNode(VVirtualScroll, {
@@ -13077,7 +13097,7 @@
13077
13097
  const menu = vue.computed({
13078
13098
  get: () => _menu.value,
13079
13099
  set: v => {
13080
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
13100
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
13081
13101
  _menu.value = v;
13082
13102
  }
13083
13103
  });
@@ -13121,10 +13141,7 @@
13121
13141
  });
13122
13142
  const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
13123
13143
  const listRef = vue.ref();
13124
- const {
13125
- onListScroll,
13126
- onListKeydown
13127
- } = useScrolling(listRef, vTextFieldRef);
13144
+ const listEvents = useScrolling(listRef, vTextFieldRef);
13128
13145
  function onClear(e) {
13129
13146
  if (props.openOnClear) {
13130
13147
  menu.value = true;
@@ -13143,6 +13160,11 @@
13143
13160
  }
13144
13161
  menu.value = !menu.value;
13145
13162
  }
13163
+ function onListKeydown(e) {
13164
+ if (checkPrintable(e)) {
13165
+ vTextFieldRef.value?.focus();
13166
+ }
13167
+ }
13146
13168
  function onKeydown(e) {
13147
13169
  if (props.readonly || form?.isReadonly.value) return;
13148
13170
  const selectionStart = vTextFieldRef.value.selectionStart;
@@ -13207,6 +13229,11 @@
13207
13229
  }
13208
13230
  }
13209
13231
  }
13232
+ function onAfterEnter() {
13233
+ if (props.eager) {
13234
+ vVirtualScrollRef.value?.calculateVisibleItems();
13235
+ }
13236
+ }
13210
13237
  function onAfterLeave() {
13211
13238
  if (isFocused.value) {
13212
13239
  isPristine.value = true;
@@ -13335,6 +13362,7 @@
13335
13362
  "openOnClick": false,
13336
13363
  "closeOnContentClick": false,
13337
13364
  "transition": props.transition,
13365
+ "onAfterEnter": onAfterEnter,
13338
13366
  "onAfterLeave": onAfterLeave
13339
13367
  }, props.menuProps), {
13340
13368
  default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
@@ -13345,11 +13373,10 @@
13345
13373
  "onKeydown": onListKeydown,
13346
13374
  "onFocusin": onFocusin,
13347
13375
  "onFocusout": onFocusout,
13348
- "onScrollPassive": onListScroll,
13349
13376
  "tabindex": "-1",
13350
13377
  "aria-live": "polite",
13351
13378
  "color": props.itemColor ?? props.color
13352
- }, props.listProps), {
13379
+ }, listEvents, props.listProps), {
13353
13380
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
13354
13381
  "title": t(props.noDataText)
13355
13382
  }, null)), vue.createVNode(VVirtualScroll, {
@@ -16910,7 +16937,7 @@
16910
16937
  const menu = vue.computed({
16911
16938
  get: () => _menu.value,
16912
16939
  set: v => {
16913
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
16940
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
16914
16941
  _menu.value = v;
16915
16942
  }
16916
16943
  });
@@ -16993,10 +17020,7 @@
16993
17020
  });
16994
17021
  const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
16995
17022
  const listRef = vue.ref();
16996
- const {
16997
- onListScroll,
16998
- onListKeydown
16999
- } = useScrolling(listRef, vTextFieldRef);
17023
+ const listEvents = useScrolling(listRef, vTextFieldRef);
17000
17024
  function onClear(e) {
17001
17025
  cleared = true;
17002
17026
  if (props.openOnClear) {
@@ -17015,6 +17039,11 @@
17015
17039
  }
17016
17040
  menu.value = !menu.value;
17017
17041
  }
17042
+ function onListKeydown(e) {
17043
+ if (checkPrintable(e)) {
17044
+ vTextFieldRef.value?.focus();
17045
+ }
17046
+ }
17018
17047
  // eslint-disable-next-line complexity
17019
17048
  function onKeydown(e) {
17020
17049
  if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
@@ -17079,6 +17108,11 @@
17079
17108
  }
17080
17109
  }
17081
17110
  }
17111
+ function onAfterEnter() {
17112
+ if (props.eager) {
17113
+ vVirtualScrollRef.value?.calculateVisibleItems();
17114
+ }
17115
+ }
17082
17116
  function onAfterLeave() {
17083
17117
  if (isFocused.value) {
17084
17118
  isPristine.value = true;
@@ -17203,6 +17237,7 @@
17203
17237
  "openOnClick": false,
17204
17238
  "closeOnContentClick": false,
17205
17239
  "transition": props.transition,
17240
+ "onAfterEnter": onAfterEnter,
17206
17241
  "onAfterLeave": onAfterLeave
17207
17242
  }, props.menuProps), {
17208
17243
  default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
@@ -17213,11 +17248,10 @@
17213
17248
  "onKeydown": onListKeydown,
17214
17249
  "onFocusin": onFocusin,
17215
17250
  "onFocusout": onFocusout,
17216
- "onScrollPassive": onListScroll,
17217
17251
  "tabindex": "-1",
17218
17252
  "aria-live": "polite",
17219
17253
  "color": props.itemColor ?? props.color
17220
- }, props.listProps), {
17254
+ }, listEvents, props.listProps), {
17221
17255
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
17222
17256
  "title": t(props.noDataText)
17223
17257
  }, null)), vue.createVNode(VVirtualScroll, {
@@ -21161,6 +21195,7 @@
21161
21195
  default: false
21162
21196
  },
21163
21197
  ...makeComponentProps(),
21198
+ ...makeDimensionProps(),
21164
21199
  ...makeTagProps()
21165
21200
  }, 'VContainer');
21166
21201
  const VContainer = genericComponent()({
@@ -21173,11 +21208,14 @@
21173
21208
  const {
21174
21209
  rtlClasses
21175
21210
  } = useRtl();
21211
+ const {
21212
+ dimensionStyles
21213
+ } = useDimension(props);
21176
21214
  useRender(() => vue.createVNode(props.tag, {
21177
21215
  "class": ['v-container', {
21178
21216
  'v-container--fluid': props.fluid
21179
21217
  }, rtlClasses.value, props.class],
21180
- "style": props.style
21218
+ "style": [dimensionStyles.value, props.style]
21181
21219
  }, slots));
21182
21220
  return {};
21183
21221
  }
@@ -22599,7 +22637,8 @@
22599
22637
  default: false
22600
22638
  },
22601
22639
  readonly: Boolean,
22602
- ...makeComponentProps()
22640
+ ...makeComponentProps(),
22641
+ ...makeDimensionProps()
22603
22642
  }, 'VExpansionPanelTitle');
22604
22643
  const VExpansionPanelTitle = genericComponent()({
22605
22644
  name: 'VExpansionPanelTitle',
@@ -22617,6 +22656,9 @@
22617
22656
  backgroundColorClasses,
22618
22657
  backgroundColorStyles
22619
22658
  } = useBackgroundColor(props, 'color');
22659
+ const {
22660
+ dimensionStyles
22661
+ } = useDimension(props);
22620
22662
  const slotProps = vue.computed(() => ({
22621
22663
  collapseIcon: props.collapseIcon,
22622
22664
  disabled: expansionPanel.disabled.value,
@@ -22631,7 +22673,7 @@
22631
22673
  'v-expansion-panel-title--focusable': props.focusable,
22632
22674
  'v-expansion-panel-title--static': props.static
22633
22675
  }, backgroundColorClasses.value, props.class],
22634
- "style": [backgroundColorStyles.value, props.style],
22676
+ "style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
22635
22677
  "type": "button",
22636
22678
  "tabindex": expansionPanel.disabled.value ? -1 : undefined,
22637
22679
  "disabled": expansionPanel.disabled.value,
@@ -28137,7 +28179,7 @@
28137
28179
  goTo
28138
28180
  };
28139
28181
  }
28140
- const version$1 = "3.6.13";
28182
+ const version$1 = "3.7.0-beta.1";
28141
28183
  createVuetify$1.version = version$1;
28142
28184
 
28143
28185
  // Vue's inject() can only be used in setup
@@ -28162,7 +28204,7 @@
28162
28204
  ...options
28163
28205
  });
28164
28206
  };
28165
- const version = "3.6.13";
28207
+ const version = "3.7.0-beta.1";
28166
28208
  createVuetify.version = version;
28167
28209
 
28168
28210
  exports.blueprints = index;