vuetify 3.7.0 → 3.7.2

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 (191) hide show
  1. package/dist/json/attributes.json +172 -172
  2. package/dist/json/importMap-labs.json +8 -8
  3. package/dist/json/importMap.json +160 -160
  4. package/dist/json/web-types.json +230 -219
  5. package/dist/vuetify-labs.css +1941 -1926
  6. package/dist/vuetify-labs.d.ts +4266 -2397
  7. package/dist/vuetify-labs.esm.js +107 -111
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +107 -111
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +1521 -1506
  12. package/dist/vuetify.d.ts +1282 -901
  13. package/dist/vuetify.esm.js +79 -54
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +79 -54
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +1087 -1086
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.mts +4 -1
  21. package/lib/blueprints/md1.d.mts +4 -1
  22. package/lib/blueprints/md2.d.mts +4 -1
  23. package/lib/blueprints/md3.d.mts +4 -1
  24. package/lib/components/VAlert/index.d.mts +14 -11
  25. package/lib/components/VAppBar/index.d.mts +22 -19
  26. package/lib/components/VAutocomplete/index.d.mts +158 -110
  27. package/lib/components/VAvatar/VAvatar.css +1 -1
  28. package/lib/components/VAvatar/_variables.scss +1 -1
  29. package/lib/components/VAvatar/index.d.mts +8 -5
  30. package/lib/components/VBadge/index.d.mts +8 -5
  31. package/lib/components/VBanner/index.d.mts +18 -15
  32. package/lib/components/VBottomNavigation/index.d.mts +4 -4
  33. package/lib/components/VBottomSheet/index.d.mts +11 -11
  34. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +3 -5
  35. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  36. package/lib/components/VBreadcrumbs/index.d.mts +8 -5
  37. package/lib/components/VBtn/VBtn.mjs +3 -4
  38. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  39. package/lib/components/VBtn/index.d.mts +18 -15
  40. package/lib/components/VBtnGroup/index.d.mts +4 -4
  41. package/lib/components/VBtnToggle/index.d.mts +4 -4
  42. package/lib/components/VCard/VCard.mjs +3 -4
  43. package/lib/components/VCard/VCard.mjs.map +1 -1
  44. package/lib/components/VCard/index.d.mts +18 -15
  45. package/lib/components/VCarousel/index.d.mts +17 -14
  46. package/lib/components/VCheckbox/index.d.mts +8 -5
  47. package/lib/components/VChip/VChip.mjs +2 -3
  48. package/lib/components/VChip/VChip.mjs.map +1 -1
  49. package/lib/components/VChip/index.d.mts +12 -9
  50. package/lib/components/VChipGroup/index.d.mts +8 -5
  51. package/lib/components/VColorPicker/index.d.mts +22 -22
  52. package/lib/components/VCombobox/index.d.mts +158 -110
  53. package/lib/components/VDataTable/index.d.mts +18 -15
  54. package/lib/components/VDatePicker/index.d.mts +16 -13
  55. package/lib/components/VDialog/VDialog.css +4 -1
  56. package/lib/components/VDialog/VDialog.mjs +3 -2
  57. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  58. package/lib/components/VDialog/VDialog.sass +2 -1
  59. package/lib/components/VDialog/index.d.mts +89 -50
  60. package/lib/components/VEmptyState/index.d.mts +12 -9
  61. package/lib/components/VExpansionPanel/index.d.mts +8 -5
  62. package/lib/components/VFab/index.d.mts +22 -19
  63. package/lib/components/VField/index.d.mts +4 -1
  64. package/lib/components/VFileInput/index.d.mts +34 -7
  65. package/lib/components/VFooter/index.d.mts +4 -4
  66. package/lib/components/VForm/index.d.mts +96 -3
  67. package/lib/components/VIcon/index.d.mts +8 -5
  68. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +13 -1
  69. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +6 -8
  70. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  71. package/lib/components/VInfiniteScroll/VInfiniteScroll.sass +10 -1
  72. package/lib/components/VInput/index.d.mts +6 -3
  73. package/lib/components/VItemGroup/index.d.mts +4 -4
  74. package/lib/components/VLabel/index.d.mts +4 -4
  75. package/lib/components/VList/VList.mjs +4 -2
  76. package/lib/components/VList/VList.mjs.map +1 -1
  77. package/lib/components/VList/VListItem.mjs +8 -6
  78. package/lib/components/VList/VListItem.mjs.map +1 -1
  79. package/lib/components/VList/index.d.mts +84 -24
  80. package/lib/components/VMenu/index.d.mts +92 -50
  81. package/lib/components/VMessages/index.d.mts +8 -8
  82. package/lib/components/VNavigationDrawer/index.d.mts +18 -18
  83. package/lib/components/VOtpInput/index.d.mts +4 -4
  84. package/lib/components/VOverlay/index.d.mts +11 -11
  85. package/lib/components/VPagination/index.d.mts +8 -5
  86. package/lib/components/VProgressCircular/index.d.mts +4 -4
  87. package/lib/components/VRadio/index.d.mts +4 -1
  88. package/lib/components/VRadioGroup/index.d.mts +6 -3
  89. package/lib/components/VRangeSlider/index.d.mts +12 -9
  90. package/lib/components/VRating/index.d.mts +4 -1
  91. package/lib/components/VSelect/index.d.mts +158 -110
  92. package/lib/components/VSelectionControl/index.d.mts +4 -1
  93. package/lib/components/VSelectionControlGroup/index.d.mts +4 -1
  94. package/lib/components/VSheet/index.d.mts +10 -10
  95. package/lib/components/VSkeletonLoader/index.d.mts +4 -4
  96. package/lib/components/VSlideGroup/index.d.mts +4 -1
  97. package/lib/components/VSlider/index.d.mts +12 -9
  98. package/lib/components/VSnackbar/index.d.mts +95 -62
  99. package/lib/components/VSpeedDial/index.d.mts +11 -11
  100. package/lib/components/VStepper/index.d.mts +12 -12
  101. package/lib/components/VSwitch/index.d.mts +6 -3
  102. package/lib/components/VSystemBar/index.d.mts +4 -4
  103. package/lib/components/VTabs/index.d.mts +69 -54
  104. package/lib/components/VTextField/index.d.mts +47 -14
  105. package/lib/components/VTextarea/index.d.mts +38 -11
  106. package/lib/components/VTimeline/index.d.mts +8 -5
  107. package/lib/components/VToolbar/index.d.mts +4 -4
  108. package/lib/components/VTooltip/index.d.mts +78 -45
  109. package/lib/components/VWindow/index.d.mts +10 -7
  110. package/lib/components/index.d.mts +1204 -814
  111. package/lib/components/index.mjs +1 -1
  112. package/lib/components/index.mjs.map +1 -1
  113. package/lib/composables/directiveComponent.mjs +1 -1
  114. package/lib/composables/directiveComponent.mjs.map +1 -1
  115. package/lib/composables/forwardRefs.mjs +2 -0
  116. package/lib/composables/forwardRefs.mjs.map +1 -1
  117. package/lib/composables/icons.mjs.map +1 -1
  118. package/lib/composables/index.mjs.map +1 -1
  119. package/lib/composables/nested/nested.mjs +18 -6
  120. package/lib/composables/nested/nested.mjs.map +1 -1
  121. package/lib/composables/nested/openStrategies.mjs +2 -4
  122. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  123. package/lib/composables/router.mjs +19 -9
  124. package/lib/composables/router.mjs.map +1 -1
  125. package/lib/directives/tooltip/index.mjs +1 -1
  126. package/lib/directives/tooltip/index.mjs.map +1 -1
  127. package/lib/entry-bundler.mjs +1 -1
  128. package/lib/framework.mjs +1 -1
  129. package/lib/iconsets/fa-svg.d.mts +4 -1
  130. package/lib/iconsets/fa.d.mts +4 -1
  131. package/lib/iconsets/fa4.d.mts +4 -1
  132. package/lib/iconsets/md.d.mts +4 -1
  133. package/lib/iconsets/mdi-svg.d.mts +4 -1
  134. package/lib/iconsets/mdi.d.mts +4 -1
  135. package/lib/index.d.mts +82 -88
  136. package/lib/labs/VDateInput/index.d.mts +16 -13
  137. package/lib/labs/VNumberInput/VNumberInput.mjs +7 -1
  138. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  139. package/lib/labs/VNumberInput/index.d.mts +2212 -730
  140. package/lib/labs/VPicker/index.d.mts +10 -10
  141. package/lib/labs/VSnackbarQueue/index.d.mts +128 -95
  142. package/lib/labs/VStepperVertical/index.d.mts +10 -7
  143. package/lib/labs/VTimePicker/VTimePicker.mjs +1 -1
  144. package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
  145. package/lib/labs/VTimePicker/VTimePickerControls.mjs +2 -2
  146. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  147. package/lib/labs/VTimePicker/index.d.mts +26 -26
  148. package/lib/labs/VTimePicker/util.mjs +5 -0
  149. package/lib/labs/VTimePicker/util.mjs.map +1 -0
  150. package/lib/labs/VTreeview/VTreeview.mjs +3 -12
  151. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  152. package/lib/labs/VTreeview/VTreeviewChildren.mjs +1 -1
  153. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  154. package/lib/labs/VTreeview/VTreeviewItem.mjs +9 -20
  155. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  156. package/lib/labs/VTreeview/index.d.mts +44 -41
  157. package/lib/labs/components.d.mts +2515 -1000
  158. package/lib/util/helpers.mjs +7 -3
  159. package/lib/util/helpers.mjs.map +1 -1
  160. package/package.json +7 -13
  161. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs +0 -21
  162. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +0 -1
  163. package/lib/components/VDatePicker/util/eventHelpers.mjs +0 -22
  164. package/lib/components/VDatePicker/util/eventHelpers.mjs.map +0 -1
  165. package/lib/components/VDatePicker/util/index.mjs +0 -9
  166. package/lib/components/VDatePicker/util/index.mjs.map +0 -1
  167. package/lib/components/VDatePicker/util/isDateAllowed.mjs +0 -7
  168. package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +0 -1
  169. package/lib/components/VDatePicker/util/monthChange.mjs +0 -18
  170. package/lib/components/VDatePicker/util/monthChange.mjs.map +0 -1
  171. package/lib/components/VDatePicker/util/pad.mjs +0 -21
  172. package/lib/components/VDatePicker/util/pad.mjs.map +0 -1
  173. package/lib/components/VDatePicker/util/sanitizeDateString.mjs +0 -12
  174. package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +0 -1
  175. package/lib/components/VTreeview/VTreeview.mjs +0 -350
  176. package/lib/components/VTreeview/VTreeview.mjs.map +0 -1
  177. package/lib/components/VTreeview/VTreeview.sass +0 -128
  178. package/lib/components/VTreeview/VTreeviewNode.mjs +0 -321
  179. package/lib/components/VTreeview/VTreeviewNode.mjs.map +0 -1
  180. package/lib/components/VTreeview/_mixins.sass +0 -18
  181. package/lib/components/VTreeview/_variables.scss +0 -10
  182. package/lib/components/VTreeview/index.mjs +0 -10
  183. package/lib/components/VTreeview/index.mjs.map +0 -1
  184. package/lib/components/VTreeview/util/filterTreeItems.mjs +0 -25
  185. package/lib/components/VTreeview/util/filterTreeItems.mjs.map +0 -1
  186. package/lib/services/goto/easing-patterns.mjs +0 -27
  187. package/lib/services/goto/easing-patterns.mjs.map +0 -1
  188. package/lib/services/goto/index.mjs +0 -73
  189. package/lib/services/goto/index.mjs.map +0 -1
  190. package/lib/services/goto/util.mjs +0 -39
  191. package/lib/services/goto/util.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.0
2
+ * Vuetify v3.7.2
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -91,6 +91,10 @@ function convertToUnit(str) {
91
91
  function isObject(obj) {
92
92
  return obj !== null && typeof obj === 'object' && !Array.isArray(obj);
93
93
  }
94
+ function isPlainObject(obj) {
95
+ let proto;
96
+ return obj !== null && typeof obj === 'object' && ((proto = Object.getPrototypeOf(obj)) === Object.prototype || proto === null);
97
+ }
94
98
  function refElement(obj) {
95
99
  if (obj && '$el' in obj) {
96
100
  const el = obj.$el;
@@ -280,12 +284,12 @@ function mergeDeep() {
280
284
  const targetProperty = target[key];
281
285
 
282
286
  // Only continue deep merging if
283
- // both properties are objects
284
- if (isObject(sourceProperty) && isObject(targetProperty)) {
287
+ // both properties are plain objects
288
+ if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {
285
289
  out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn);
286
290
  continue;
287
291
  }
288
- if (Array.isArray(sourceProperty) && Array.isArray(targetProperty) && arrayFn) {
292
+ if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {
289
293
  out[key] = arrayFn(sourceProperty, targetProperty);
290
294
  continue;
291
295
  }
@@ -5385,10 +5389,14 @@ function useLink(props, attrs) {
5385
5389
  return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');
5386
5390
  });
5387
5391
  if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {
5392
+ const href = toRef(props, 'href');
5388
5393
  return {
5389
5394
  isLink,
5390
5395
  isClickable,
5391
- href: toRef(props, 'href')
5396
+ href,
5397
+ linkProps: reactive({
5398
+ href
5399
+ })
5392
5400
  };
5393
5401
  }
5394
5402
  // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined
@@ -5400,18 +5408,24 @@ function useLink(props, attrs) {
5400
5408
  // Actual link needs to be undefined when to prop is not used
5401
5409
  const link = computed(() => props.to ? routerLink : undefined);
5402
5410
  const route = useRoute();
5411
+ const isActive = computed(() => {
5412
+ if (!link.value) return false;
5413
+ if (!props.exact) return link.value.isActive?.value ?? false;
5414
+ if (!route.value) return link.value.isExactActive?.value ?? false;
5415
+ return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);
5416
+ });
5417
+ const href = computed(() => props.to ? link.value?.route.value.href : props.href);
5403
5418
  return {
5404
5419
  isLink,
5405
5420
  isClickable,
5421
+ isActive,
5406
5422
  route: link.value?.route,
5407
5423
  navigate: link.value?.navigate,
5408
- isActive: computed(() => {
5409
- if (!link.value) return false;
5410
- if (!props.exact) return link.value.isActive?.value ?? false;
5411
- if (!route.value) return link.value.isExactActive?.value ?? false;
5412
- return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);
5413
- }),
5414
- href: computed(() => props.to ? link.value?.route.value.href : props.href)
5424
+ href,
5425
+ linkProps: reactive({
5426
+ href,
5427
+ 'aria-current': computed(() => isActive.value ? 'page' : undefined)
5428
+ })
5415
5429
  };
5416
5430
  }
5417
5431
  const makeRouterProps = propsFactory({
@@ -5886,7 +5900,7 @@ const VBtn = genericComponent()({
5886
5900
  const hasPrepend = !!(props.prependIcon || slots.prepend);
5887
5901
  const hasAppend = !!(props.appendIcon || slots.append);
5888
5902
  const hasIcon = !!(props.icon && props.icon !== true);
5889
- return withDirectives(createVNode(Tag, {
5903
+ return withDirectives(createVNode(Tag, mergeProps({
5890
5904
  "type": Tag === 'a' ? undefined : 'button',
5891
5905
  "class": ['v-btn', group?.selectedClass.value, {
5892
5906
  'v-btn--active': isActive.value,
@@ -5903,11 +5917,10 @@ const VBtn = genericComponent()({
5903
5917
  "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
5904
5918
  "aria-busy": props.loading ? true : undefined,
5905
5919
  "disabled": isDisabled.value || undefined,
5906
- "href": link.href.value,
5907
5920
  "tabindex": props.loading || props.readonly ? -1 : undefined,
5908
5921
  "onClick": onClick,
5909
5922
  "value": valueAttr.value
5910
- }, {
5923
+ }, link.linkProps), {
5911
5924
  default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && createVNode("span", {
5912
5925
  "key": "prepend",
5913
5926
  "class": "v-btn__prepend"
@@ -8170,7 +8183,7 @@ const VChip = genericComponent()({
8170
8183
  const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);
8171
8184
  const hasPrepend = !!(hasPrependMedia || slots.prepend);
8172
8185
  const hasColor = !group || group.isSelected.value;
8173
- return isActive.value && withDirectives(createVNode(Tag, {
8186
+ return isActive.value && withDirectives(createVNode(Tag, mergeProps({
8174
8187
  "class": ['v-chip', {
8175
8188
  'v-chip--disabled': props.disabled,
8176
8189
  'v-chip--label': props.label,
@@ -8181,11 +8194,10 @@ const VChip = genericComponent()({
8181
8194
  "style": [hasColor ? colorStyles.value : undefined, props.style],
8182
8195
  "disabled": props.disabled || undefined,
8183
8196
  "draggable": props.draggable,
8184
- "href": link.href.value,
8185
8197
  "tabindex": isClickable.value ? 0 : undefined,
8186
8198
  "onClick": onClick,
8187
8199
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
8188
- }, {
8200
+ }, link.linkProps), {
8189
8201
  default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && createVNode(VExpandXTransition, {
8190
8202
  "key": "filter"
8191
8203
  }, {
@@ -8430,7 +8442,6 @@ const leafSingleActiveStrategy = mandatory => {
8430
8442
  return strategy;
8431
8443
  };
8432
8444
 
8433
- // Utilities
8434
8445
  const singleOpenStrategy = {
8435
8446
  open: _ref => {
8436
8447
  let {
@@ -8464,11 +8475,11 @@ const multipleOpenStrategy = {
8464
8475
  parents
8465
8476
  } = _ref2;
8466
8477
  if (value) {
8467
- let parent = toRaw(parents.get(id));
8478
+ let parent = parents.get(id);
8468
8479
  opened.add(id);
8469
8480
  while (parent != null && parent !== id) {
8470
8481
  opened.add(parent);
8471
- parent = toRaw(parents.get(parent));
8482
+ parent = parents.get(parent);
8472
8483
  }
8473
8484
  return opened;
8474
8485
  } else {
@@ -8710,7 +8721,8 @@ const emptyNested = {
8710
8721
  opened: ref(new Set()),
8711
8722
  activated: ref(new Set()),
8712
8723
  selected: ref(new Map()),
8713
- selectedValues: ref([])
8724
+ selectedValues: ref([]),
8725
+ getPath: () => []
8714
8726
  }
8715
8727
  };
8716
8728
  const makeNestedProps = propsFactory({
@@ -8728,7 +8740,7 @@ const useNested = props => {
8728
8740
  let isUnmounted = false;
8729
8741
  const children = ref(new Map());
8730
8742
  const parents = ref(new Map());
8731
- const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(toRaw(v)), v => [...v.values()]);
8743
+ const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
8732
8744
  const activeStrategy = computed(() => {
8733
8745
  if (typeof props.activeStrategy === 'object') return props.activeStrategy;
8734
8746
  if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
@@ -8788,6 +8800,7 @@ const useNested = props => {
8788
8800
  return path;
8789
8801
  }
8790
8802
  const vm = getCurrentInstance('nested');
8803
+ const nodeIds = new Set();
8791
8804
  const nested = {
8792
8805
  id: shallowRef(),
8793
8806
  root: {
@@ -8804,6 +8817,14 @@ const useNested = props => {
8804
8817
  return arr;
8805
8818
  }),
8806
8819
  register: (id, parentId, isGroup) => {
8820
+ if (nodeIds.has(id)) {
8821
+ const path = getPath(id).join(' -> ');
8822
+ const newPath = getPath(parentId).concat(id).join(' -> ');
8823
+ consoleError(`Multiple nodes with the same ID\n\t${path}\n\t${newPath}`);
8824
+ return;
8825
+ } else {
8826
+ nodeIds.add(id);
8827
+ }
8807
8828
  parentId && id !== parentId && parents.value.set(id, parentId);
8808
8829
  isGroup && children.value.set(id, []);
8809
8830
  if (parentId != null) {
@@ -8812,6 +8833,7 @@ const useNested = props => {
8812
8833
  },
8813
8834
  unregister: id => {
8814
8835
  if (isUnmounted) return;
8836
+ nodeIds.delete(id);
8815
8837
  children.value.delete(id);
8816
8838
  const parent = parents.value.get(id);
8817
8839
  if (parent) {
@@ -8888,7 +8910,8 @@ const useNested = props => {
8888
8910
  newActivated && (activated.value = newActivated);
8889
8911
  },
8890
8912
  children,
8891
- parents
8913
+ parents,
8914
+ getPath
8892
8915
  }
8893
8916
  };
8894
8917
  provide(VNestedSymbol, nested);
@@ -8901,9 +8924,9 @@ const useNestedItem = (id, isGroup) => {
8901
8924
  const item = {
8902
8925
  ...parent,
8903
8926
  id: computedId,
8904
- open: (open, e) => parent.root.open(toRaw(computedId.value), open, e),
8927
+ open: (open, e) => parent.root.open(computedId.value, open, e),
8905
8928
  openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),
8906
- isOpen: computed(() => parent.root.opened.value.has(toRaw(computedId.value))),
8929
+ isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
8907
8930
  parent: computed(() => parent.root.parents.value.get(computedId.value)),
8908
8931
  activate: (activated, e) => parent.root.activate(computedId.value, activated, e),
8909
8932
  isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),
@@ -9133,7 +9156,8 @@ const VListItem = genericComponent()({
9133
9156
  isGroupActivator,
9134
9157
  root,
9135
9158
  parent,
9136
- openOnSelect
9159
+ openOnSelect,
9160
+ id: uid
9137
9161
  } = useNestedItem(id, false);
9138
9162
  const list = useList();
9139
9163
  const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
@@ -9217,7 +9241,7 @@ const VListItem = genericComponent()({
9217
9241
  if (props.activeColor) {
9218
9242
  deprecate('active-color', ['color', 'base-color']);
9219
9243
  }
9220
- return withDirectives(createVNode(Tag, {
9244
+ return withDirectives(createVNode(Tag, mergeProps({
9221
9245
  "class": ['v-list-item', {
9222
9246
  'v-list-item--active': isActive.value,
9223
9247
  'v-list-item--disabled': props.disabled,
@@ -9228,11 +9252,10 @@ const VListItem = genericComponent()({
9228
9252
  [`${props.activeClass}`]: props.activeClass && isActive.value
9229
9253
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
9230
9254
  "style": [colorStyles.value, dimensionStyles.value, props.style],
9231
- "href": link.href.value,
9232
9255
  "tabindex": isClickable.value ? list ? -2 : 0 : undefined,
9233
9256
  "onClick": onClick,
9234
9257
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
9235
- }, {
9258
+ }, link.linkProps), {
9236
9259
  default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && createVNode("div", {
9237
9260
  "key": "prepend",
9238
9261
  "class": "v-list-item__prepend"
@@ -9319,7 +9342,9 @@ const VListItem = genericComponent()({
9319
9342
  isGroupActivator,
9320
9343
  isSelected,
9321
9344
  list,
9322
- select
9345
+ select,
9346
+ root,
9347
+ id: uid
9323
9348
  };
9324
9349
  }
9325
9350
  });
@@ -9720,7 +9745,8 @@ const VList = genericComponent()({
9720
9745
  children,
9721
9746
  open,
9722
9747
  parents,
9723
- select
9748
+ select,
9749
+ getPath
9724
9750
  } = useNested(props);
9725
9751
  const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
9726
9752
  const activeColor = toRef(props, 'activeColor');
@@ -9812,7 +9838,8 @@ const VList = genericComponent()({
9812
9838
  select,
9813
9839
  focus,
9814
9840
  children,
9815
- parents
9841
+ parents,
9842
+ getPath
9816
9843
  };
9817
9844
  }
9818
9845
  });
@@ -11264,6 +11291,8 @@ const Refs = Symbol('Forwarded refs');
11264
11291
 
11265
11292
  /** Omit properties starting with P */
11266
11293
 
11294
+ /** Omit keyof $props from T */
11295
+
11267
11296
  function getDescriptor(obj, key) {
11268
11297
  let currentObj = obj;
11269
11298
  while (currentObj) {
@@ -13919,6 +13948,7 @@ const VDialog = genericComponent()({
13919
13948
  props: makeVDialogProps(),
13920
13949
  emits: {
13921
13950
  'update:modelValue': value => true,
13951
+ afterEnter: () => true,
13922
13952
  afterLeave: () => true
13923
13953
  },
13924
13954
  setup(props, _ref) {
@@ -13960,6 +13990,7 @@ const VDialog = genericComponent()({
13960
13990
  });
13961
13991
  }
13962
13992
  function onAfterEnter() {
13993
+ emit('afterEnter');
13963
13994
  if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
13964
13995
  overlay.value.contentEl.focus({
13965
13996
  preventScroll: true
@@ -13980,8 +14011,7 @@ const VDialog = genericComponent()({
13980
14011
  useRender(() => {
13981
14012
  const overlayProps = VOverlay.filterProps(props);
13982
14013
  const activatorProps = mergeProps({
13983
- 'aria-haspopup': 'dialog',
13984
- 'aria-expanded': String(isActive.value)
14014
+ 'aria-haspopup': 'dialog'
13985
14015
  }, props.activatorProps);
13986
14016
  const contentProps = mergeProps({
13987
14017
  tabindex: -1
@@ -14112,12 +14142,10 @@ const VBreadcrumbsItem = genericComponent()({
14112
14142
  "style": [textColorStyles.value, props.style],
14113
14143
  "aria-current": isActive.value ? 'page' : undefined
14114
14144
  }, {
14115
- default: () => [!link.isLink.value ? slots.default?.() ?? props.title : createVNode("a", {
14145
+ default: () => [!link.isLink.value ? slots.default?.() ?? props.title : createVNode("a", mergeProps({
14116
14146
  "class": "v-breadcrumbs-item--link",
14117
- "href": link.href.value,
14118
- "aria-current": isActive.value ? 'page' : undefined,
14119
14147
  "onClick": link.navigate
14120
- }, [slots.default?.() ?? props.title])]
14148
+ }, link.linkProps), [slots.default?.() ?? props.title])]
14121
14149
  });
14122
14150
  });
14123
14151
  return {};
@@ -14493,7 +14521,7 @@ const VCard = genericComponent()({
14493
14521
  const hasImage = !!(slots.image || props.image);
14494
14522
  const hasCardItem = hasHeader || hasPrepend || hasAppend;
14495
14523
  const hasText = !!(slots.text || props.text != null);
14496
- return withDirectives(createVNode(Tag, {
14524
+ return withDirectives(createVNode(Tag, mergeProps({
14497
14525
  "class": ['v-card', {
14498
14526
  'v-card--disabled': props.disabled,
14499
14527
  'v-card--flat': props.flat,
@@ -14501,10 +14529,9 @@ const VCard = genericComponent()({
14501
14529
  'v-card--link': isClickable.value
14502
14530
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
14503
14531
  "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
14504
- "href": link.href.value,
14505
14532
  "onClick": isClickable.value && link.navigate,
14506
14533
  "tabindex": props.disabled ? -1 : undefined
14507
- }, {
14534
+ }, link.linkProps), {
14508
14535
  default: () => [hasImage && createVNode("div", {
14509
14536
  "key": "image",
14510
14537
  "class": "v-card__image"
@@ -23399,7 +23426,6 @@ const VInfiniteScrollIntersect = defineComponent({
23399
23426
  type: String,
23400
23427
  required: true
23401
23428
  },
23402
- rootRef: null,
23403
23429
  rootMargin: String
23404
23430
  },
23405
23431
  emits: {
@@ -23412,14 +23438,15 @@ const VInfiniteScrollIntersect = defineComponent({
23412
23438
  const {
23413
23439
  intersectionRef,
23414
23440
  isIntersecting
23415
- } = useIntersectionObserver(entries => {}, props.rootMargin ? {
23416
- rootMargin: props.rootMargin
23417
- } : undefined);
23441
+ } = useIntersectionObserver();
23418
23442
  watch(isIntersecting, async val => {
23419
23443
  emit('intersect', props.side, val);
23420
23444
  });
23421
23445
  useRender(() => createVNode("div", {
23422
23446
  "class": "v-infinite-scroll-intersect",
23447
+ "style": {
23448
+ '--v-infinite-margin-size': props.rootMargin
23449
+ },
23423
23450
  "ref": intersectionRef
23424
23451
  }, [createTextVNode("\xA0")]));
23425
23452
  return {};
@@ -23570,17 +23597,15 @@ const VInfiniteScroll = genericComponent()({
23570
23597
  }, {
23571
23598
  default: () => [createVNode("div", {
23572
23599
  "class": "v-infinite-scroll__side"
23573
- }, [renderSide('start', startStatus.value)]), rootEl.value && hasStartIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
23600
+ }, [renderSide('start', startStatus.value)]), hasStartIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
23574
23601
  "key": "start",
23575
23602
  "side": "start",
23576
23603
  "onIntersect": handleIntersect,
23577
- "rootRef": rootEl.value,
23578
23604
  "rootMargin": margin.value
23579
- }, null), slots.default?.(), rootEl.value && hasEndIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
23605
+ }, null), slots.default?.(), hasEndIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
23580
23606
  "key": "end",
23581
23607
  "side": "end",
23582
23608
  "onIntersect": handleIntersect,
23583
- "rootRef": rootEl.value,
23584
23609
  "rootMargin": margin.value
23585
23610
  }, null), createVNode("div", {
23586
23611
  "class": "v-infinite-scroll__side"
@@ -28044,7 +28069,7 @@ function mountComponent(component, props) {
28044
28069
  const value = isObject(binding.value) ? binding.value : {};
28045
28070
 
28046
28071
  // Get the children from the props or directive value, or the element's children
28047
- const children = () => text ?? el.innerHTML;
28072
+ const children = () => text ?? el.textContent;
28048
28073
 
28049
28074
  // If vnode.ctx is the same as the instance, then we're bound to a plain element
28050
28075
  // and need to find the nearest parent component instance to inherit provides from
@@ -28102,7 +28127,7 @@ function findComponentParent(vnode, root) {
28102
28127
  const Tooltip = useDirectiveComponent(VTooltip, binding => {
28103
28128
  return {
28104
28129
  activator: 'parent',
28105
- location: binding.arg?.replace('-', ' ') ?? 'top',
28130
+ location: binding.arg?.replace('-', ' '),
28106
28131
  text: typeof binding.value === 'boolean' ? undefined : binding.value
28107
28132
  };
28108
28133
  });
@@ -28208,7 +28233,7 @@ function createVuetify$1() {
28208
28233
  goTo
28209
28234
  };
28210
28235
  }
28211
- const version$1 = "3.7.0";
28236
+ const version$1 = "3.7.2";
28212
28237
  createVuetify$1.version = version$1;
28213
28238
 
28214
28239
  // Vue's inject() can only be used in setup
@@ -28233,7 +28258,7 @@ const createVuetify = function () {
28233
28258
  ...options
28234
28259
  });
28235
28260
  };
28236
- const version = "3.7.0";
28261
+ const version = "3.7.2";
28237
28262
  createVuetify.version = version;
28238
28263
 
28239
28264
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };