vuetify 3.7.1 → 3.7.3

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 (163) hide show
  1. package/dist/json/attributes.json +4 -4
  2. package/dist/json/importMap-labs.json +20 -20
  3. package/dist/json/importMap.json +168 -168
  4. package/dist/json/web-types.json +5 -5
  5. package/dist/vuetify-labs.css +3464 -3461
  6. package/dist/vuetify-labs.d.ts +953 -896
  7. package/dist/vuetify-labs.esm.js +123 -132
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +123 -132
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +3083 -3080
  12. package/dist/vuetify.d.ts +859 -802
  13. package/dist/vuetify.esm.js +72 -48
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +72 -48
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +289 -289
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAlert/index.d.mts +10 -10
  21. package/lib/components/VAppBar/index.d.mts +18 -18
  22. package/lib/components/VAutocomplete/index.d.mts +93 -90
  23. package/lib/components/VAvatar/index.d.mts +4 -4
  24. package/lib/components/VBadge/index.d.mts +4 -4
  25. package/lib/components/VBanner/index.d.mts +14 -14
  26. package/lib/components/VBottomNavigation/index.d.mts +4 -4
  27. package/lib/components/VBottomSheet/VBottomSheet.sass +2 -1
  28. package/lib/components/VBottomSheet/index.d.mts +7 -7
  29. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +3 -5
  30. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  31. package/lib/components/VBreadcrumbs/index.d.mts +4 -4
  32. package/lib/components/VBtn/VBtn.mjs +3 -4
  33. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  34. package/lib/components/VBtn/index.d.mts +14 -14
  35. package/lib/components/VBtnGroup/index.d.mts +4 -4
  36. package/lib/components/VBtnToggle/index.d.mts +4 -4
  37. package/lib/components/VCard/VCard.mjs +3 -4
  38. package/lib/components/VCard/VCard.mjs.map +1 -1
  39. package/lib/components/VCard/index.d.mts +14 -14
  40. package/lib/components/VCarousel/index.d.mts +11 -11
  41. package/lib/components/VCheckbox/index.d.mts +2 -2
  42. package/lib/components/VChip/VChip.mjs +4 -4
  43. package/lib/components/VChip/VChip.mjs.map +1 -1
  44. package/lib/components/VChip/index.d.mts +8 -8
  45. package/lib/components/VChipGroup/index.d.mts +4 -4
  46. package/lib/components/VColorPicker/VColorPicker.mjs +2 -2
  47. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  48. package/lib/components/VColorPicker/index.d.mts +22 -22
  49. package/lib/components/VCombobox/index.d.mts +93 -90
  50. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs +87 -0
  51. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs.map +1 -0
  52. package/lib/components/VDataTable/composables/paginate.mjs +4 -2
  53. package/lib/components/VDataTable/composables/paginate.mjs.map +1 -1
  54. package/lib/components/VDataTable/index.d.mts +10 -10
  55. package/lib/components/VDatePicker/index.d.mts +10 -10
  56. package/lib/components/VDialog/VDialog.css +4 -1
  57. package/lib/components/VDialog/VDialog.mjs +1 -2
  58. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  59. package/lib/components/VDialog/VDialog.sass +2 -1
  60. package/lib/components/VDialog/index.d.mts +31 -31
  61. package/lib/components/VEmptyState/index.d.mts +8 -8
  62. package/lib/components/VExpansionPanel/index.d.mts +4 -4
  63. package/lib/components/VFab/index.d.mts +18 -18
  64. package/lib/components/VField/_variables.scss +2 -1
  65. package/lib/components/VFileInput/__tests__/text.txt +1 -0
  66. package/lib/components/VFileInput/index.d.mts +3 -3
  67. package/lib/components/VFooter/index.d.mts +4 -4
  68. package/lib/components/VIcon/index.d.mts +4 -4
  69. package/lib/components/VItemGroup/index.d.mts +4 -4
  70. package/lib/components/VLabel/index.d.mts +4 -4
  71. package/lib/components/VList/VList.mjs +4 -2
  72. package/lib/components/VList/VList.mjs.map +1 -1
  73. package/lib/components/VList/VListItem.mjs +9 -6
  74. package/lib/components/VList/VListItem.mjs.map +1 -1
  75. package/lib/components/VList/index.d.mts +80 -23
  76. package/lib/components/VMenu/index.d.mts +33 -33
  77. package/lib/components/VNavigationDrawer/index.d.mts +11 -11
  78. package/lib/components/VOtpInput/index.d.mts +4 -4
  79. package/lib/components/VOverflowBtn/VOverflowBtn.sass +6 -5
  80. package/lib/components/VOverlay/index.d.mts +7 -7
  81. package/lib/components/VPagination/index.d.mts +4 -4
  82. package/lib/components/VProgressCircular/index.d.mts +4 -4
  83. package/lib/components/VProgressLinear/_variables.scss +2 -1
  84. package/lib/components/VRangeSlider/index.d.mts +8 -8
  85. package/lib/components/VSelect/index.d.mts +93 -90
  86. package/lib/components/VSheet/index.d.mts +10 -10
  87. package/lib/components/VSkeletonLoader/index.d.mts +4 -4
  88. package/lib/components/VSlider/index.d.mts +8 -8
  89. package/lib/components/VSnackbar/index.d.mts +34 -34
  90. package/lib/components/VSpeedDial/index.d.mts +9 -9
  91. package/lib/components/VStepper/index.d.mts +12 -12
  92. package/lib/components/VSystemBar/index.d.mts +4 -4
  93. package/lib/components/VTable/_mixins.scss +2 -2
  94. package/lib/components/VTabs/VTabs.sass +1 -1
  95. package/lib/components/VTabs/index.d.mts +53 -53
  96. package/lib/components/VTextField/index.d.mts +10 -10
  97. package/lib/components/VTextarea/index.d.mts +7 -7
  98. package/lib/components/VTimeline/index.d.mts +4 -4
  99. package/lib/components/VToolbar/index.d.mts +4 -4
  100. package/lib/components/VTooltip/index.d.mts +24 -24
  101. package/lib/components/VWindow/index.d.mts +4 -4
  102. package/lib/components/index.d.mts +801 -744
  103. package/lib/composables/directiveComponent.mjs +5 -4
  104. package/lib/composables/directiveComponent.mjs.map +1 -1
  105. package/lib/composables/nested/nested.mjs +18 -6
  106. package/lib/composables/nested/nested.mjs.map +1 -1
  107. package/lib/composables/nested/openStrategies.mjs +2 -4
  108. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  109. package/lib/composables/router.mjs +19 -9
  110. package/lib/composables/router.mjs.map +1 -1
  111. package/lib/directives/ripple/index.mjs.map +1 -1
  112. package/lib/directives/tooltip/index.mjs +1 -1
  113. package/lib/directives/tooltip/index.mjs.map +1 -1
  114. package/lib/entry-bundler.mjs +1 -1
  115. package/lib/framework.mjs +1 -1
  116. package/lib/index.d.mts +58 -58
  117. package/lib/labs/VDateInput/index.d.mts +12 -12
  118. package/lib/labs/VNumberInput/index.d.mts +58 -58
  119. package/lib/labs/VPicker/index.d.mts +10 -10
  120. package/lib/labs/VSnackbarQueue/index.d.mts +46 -46
  121. package/lib/labs/VStepperVertical/index.d.mts +6 -6
  122. package/lib/labs/VTimePicker/VTimePicker.mjs +1 -1
  123. package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
  124. package/lib/labs/VTimePicker/VTimePickerControls.mjs +2 -2
  125. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  126. package/lib/labs/VTimePicker/index.d.mts +26 -26
  127. package/lib/labs/VTimePicker/util.mjs +5 -0
  128. package/lib/labs/VTimePicker/util.mjs.map +1 -0
  129. package/lib/labs/VTreeview/VTreeview.mjs +5 -13
  130. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  131. package/lib/labs/VTreeview/VTreeviewChildren.mjs +30 -29
  132. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  133. package/lib/labs/VTreeview/VTreeviewItem.mjs +9 -20
  134. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  135. package/lib/labs/VTreeview/index.d.mts +33 -33
  136. package/lib/labs/components.d.mts +191 -191
  137. package/lib/styles/settings/_colors.scss +257 -256
  138. package/lib/styles/utilities/_display.sass +2 -1
  139. package/lib/styles/utilities/_elevation.scss +2 -1
  140. package/lib/styles/utilities/_screenreaders.sass +2 -1
  141. package/package.json +26 -21
  142. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs +0 -74
  143. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs.map +0 -1
  144. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs +0 -21
  145. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +0 -1
  146. package/lib/components/VDatePicker/util/eventHelpers.mjs +0 -22
  147. package/lib/components/VDatePicker/util/eventHelpers.mjs.map +0 -1
  148. package/lib/components/VDatePicker/util/index.mjs +0 -9
  149. package/lib/components/VDatePicker/util/index.mjs.map +0 -1
  150. package/lib/components/VDatePicker/util/isDateAllowed.mjs +0 -7
  151. package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +0 -1
  152. package/lib/components/VDatePicker/util/monthChange.mjs +0 -18
  153. package/lib/components/VDatePicker/util/monthChange.mjs.map +0 -1
  154. package/lib/components/VDatePicker/util/pad.mjs +0 -21
  155. package/lib/components/VDatePicker/util/pad.mjs.map +0 -1
  156. package/lib/components/VDatePicker/util/sanitizeDateString.mjs +0 -12
  157. package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +0 -1
  158. package/lib/services/goto/easing-patterns.mjs +0 -27
  159. package/lib/services/goto/easing-patterns.mjs.map +0 -1
  160. package/lib/services/goto/index.mjs +0 -73
  161. package/lib/services/goto/index.mjs.map +0 -1
  162. package/lib/services/goto/util.mjs +0 -39
  163. package/lib/services/goto/util.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.1
2
+ * Vuetify v3.7.3
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -5389,10 +5389,14 @@ function useLink(props, attrs) {
5389
5389
  return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');
5390
5390
  });
5391
5391
  if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {
5392
+ const href = toRef(props, 'href');
5392
5393
  return {
5393
5394
  isLink,
5394
5395
  isClickable,
5395
- href: toRef(props, 'href')
5396
+ href,
5397
+ linkProps: reactive({
5398
+ href
5399
+ })
5396
5400
  };
5397
5401
  }
5398
5402
  // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined
@@ -5404,18 +5408,24 @@ function useLink(props, attrs) {
5404
5408
  // Actual link needs to be undefined when to prop is not used
5405
5409
  const link = computed(() => props.to ? routerLink : undefined);
5406
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);
5407
5418
  return {
5408
5419
  isLink,
5409
5420
  isClickable,
5421
+ isActive,
5410
5422
  route: link.value?.route,
5411
5423
  navigate: link.value?.navigate,
5412
- isActive: computed(() => {
5413
- if (!link.value) return false;
5414
- if (!props.exact) return link.value.isActive?.value ?? false;
5415
- if (!route.value) return link.value.isExactActive?.value ?? false;
5416
- return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);
5417
- }),
5418
- 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
+ })
5419
5429
  };
5420
5430
  }
5421
5431
  const makeRouterProps = propsFactory({
@@ -5890,7 +5900,7 @@ const VBtn = genericComponent()({
5890
5900
  const hasPrepend = !!(props.prependIcon || slots.prepend);
5891
5901
  const hasAppend = !!(props.appendIcon || slots.append);
5892
5902
  const hasIcon = !!(props.icon && props.icon !== true);
5893
- return withDirectives(createVNode(Tag, {
5903
+ return withDirectives(createVNode(Tag, mergeProps({
5894
5904
  "type": Tag === 'a' ? undefined : 'button',
5895
5905
  "class": ['v-btn', group?.selectedClass.value, {
5896
5906
  'v-btn--active': isActive.value,
@@ -5907,11 +5917,10 @@ const VBtn = genericComponent()({
5907
5917
  "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
5908
5918
  "aria-busy": props.loading ? true : undefined,
5909
5919
  "disabled": isDisabled.value || undefined,
5910
- "href": link.href.value,
5911
5920
  "tabindex": props.loading || props.readonly ? -1 : undefined,
5912
5921
  "onClick": onClick,
5913
5922
  "value": valueAttr.value
5914
- }, {
5923
+ }, link.linkProps), {
5915
5924
  default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && createVNode("span", {
5916
5925
  "key": "prepend",
5917
5926
  "class": "v-btn__prepend"
@@ -8174,7 +8183,7 @@ const VChip = genericComponent()({
8174
8183
  const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);
8175
8184
  const hasPrepend = !!(hasPrependMedia || slots.prepend);
8176
8185
  const hasColor = !group || group.isSelected.value;
8177
- return isActive.value && withDirectives(createVNode(Tag, {
8186
+ return isActive.value && withDirectives(createVNode(Tag, mergeProps({
8178
8187
  "class": ['v-chip', {
8179
8188
  'v-chip--disabled': props.disabled,
8180
8189
  'v-chip--label': props.label,
@@ -8185,11 +8194,10 @@ const VChip = genericComponent()({
8185
8194
  "style": [hasColor ? colorStyles.value : undefined, props.style],
8186
8195
  "disabled": props.disabled || undefined,
8187
8196
  "draggable": props.draggable,
8188
- "href": link.href.value,
8189
8197
  "tabindex": isClickable.value ? 0 : undefined,
8190
8198
  "onClick": onClick,
8191
8199
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
8192
- }, {
8200
+ }, link.linkProps), {
8193
8201
  default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && createVNode(VExpandXTransition, {
8194
8202
  "key": "filter"
8195
8203
  }, {
@@ -8268,7 +8276,8 @@ const VChip = genericComponent()({
8268
8276
  }, slots.append)]), hasClose && createVNode("button", mergeProps({
8269
8277
  "key": "close",
8270
8278
  "class": "v-chip__close",
8271
- "type": "button"
8279
+ "type": "button",
8280
+ "data-testid": "close-chip"
8272
8281
  }, closeProps.value), [!slots.close ? createVNode(VIcon, {
8273
8282
  "key": "close-icon",
8274
8283
  "icon": props.closeIcon,
@@ -8434,7 +8443,6 @@ const leafSingleActiveStrategy = mandatory => {
8434
8443
  return strategy;
8435
8444
  };
8436
8445
 
8437
- // Utilities
8438
8446
  const singleOpenStrategy = {
8439
8447
  open: _ref => {
8440
8448
  let {
@@ -8468,11 +8476,11 @@ const multipleOpenStrategy = {
8468
8476
  parents
8469
8477
  } = _ref2;
8470
8478
  if (value) {
8471
- let parent = toRaw(parents.get(id));
8479
+ let parent = parents.get(id);
8472
8480
  opened.add(id);
8473
8481
  while (parent != null && parent !== id) {
8474
8482
  opened.add(parent);
8475
- parent = toRaw(parents.get(parent));
8483
+ parent = parents.get(parent);
8476
8484
  }
8477
8485
  return opened;
8478
8486
  } else {
@@ -8714,7 +8722,8 @@ const emptyNested = {
8714
8722
  opened: ref(new Set()),
8715
8723
  activated: ref(new Set()),
8716
8724
  selected: ref(new Map()),
8717
- selectedValues: ref([])
8725
+ selectedValues: ref([]),
8726
+ getPath: () => []
8718
8727
  }
8719
8728
  };
8720
8729
  const makeNestedProps = propsFactory({
@@ -8732,7 +8741,7 @@ const useNested = props => {
8732
8741
  let isUnmounted = false;
8733
8742
  const children = ref(new Map());
8734
8743
  const parents = ref(new Map());
8735
- const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(toRaw(v)), v => [...v.values()]);
8744
+ const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
8736
8745
  const activeStrategy = computed(() => {
8737
8746
  if (typeof props.activeStrategy === 'object') return props.activeStrategy;
8738
8747
  if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
@@ -8792,6 +8801,7 @@ const useNested = props => {
8792
8801
  return path;
8793
8802
  }
8794
8803
  const vm = getCurrentInstance('nested');
8804
+ const nodeIds = new Set();
8795
8805
  const nested = {
8796
8806
  id: shallowRef(),
8797
8807
  root: {
@@ -8808,6 +8818,14 @@ const useNested = props => {
8808
8818
  return arr;
8809
8819
  }),
8810
8820
  register: (id, parentId, isGroup) => {
8821
+ if (nodeIds.has(id)) {
8822
+ const path = getPath(id).map(String).join(' -> ');
8823
+ const newPath = getPath(parentId).concat(id).map(String).join(' -> ');
8824
+ consoleError(`Multiple nodes with the same ID\n\t${path}\n\t${newPath}`);
8825
+ return;
8826
+ } else {
8827
+ nodeIds.add(id);
8828
+ }
8811
8829
  parentId && id !== parentId && parents.value.set(id, parentId);
8812
8830
  isGroup && children.value.set(id, []);
8813
8831
  if (parentId != null) {
@@ -8816,6 +8834,7 @@ const useNested = props => {
8816
8834
  },
8817
8835
  unregister: id => {
8818
8836
  if (isUnmounted) return;
8837
+ nodeIds.delete(id);
8819
8838
  children.value.delete(id);
8820
8839
  const parent = parents.value.get(id);
8821
8840
  if (parent) {
@@ -8892,7 +8911,8 @@ const useNested = props => {
8892
8911
  newActivated && (activated.value = newActivated);
8893
8912
  },
8894
8913
  children,
8895
- parents
8914
+ parents,
8915
+ getPath
8896
8916
  }
8897
8917
  };
8898
8918
  provide(VNestedSymbol, nested);
@@ -8905,9 +8925,9 @@ const useNestedItem = (id, isGroup) => {
8905
8925
  const item = {
8906
8926
  ...parent,
8907
8927
  id: computedId,
8908
- open: (open, e) => parent.root.open(toRaw(computedId.value), open, e),
8928
+ open: (open, e) => parent.root.open(computedId.value, open, e),
8909
8929
  openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),
8910
- isOpen: computed(() => parent.root.opened.value.has(toRaw(computedId.value))),
8930
+ isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
8911
8931
  parent: computed(() => parent.root.parents.value.get(computedId.value)),
8912
8932
  activate: (activated, e) => parent.root.activate(computedId.value, activated, e),
8913
8933
  isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),
@@ -9137,7 +9157,8 @@ const VListItem = genericComponent()({
9137
9157
  isGroupActivator,
9138
9158
  root,
9139
9159
  parent,
9140
- openOnSelect
9160
+ openOnSelect,
9161
+ id: uid
9141
9162
  } = useNestedItem(id, false);
9142
9163
  const list = useList();
9143
9164
  const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
@@ -9221,7 +9242,7 @@ const VListItem = genericComponent()({
9221
9242
  if (props.activeColor) {
9222
9243
  deprecate('active-color', ['color', 'base-color']);
9223
9244
  }
9224
- return withDirectives(createVNode(Tag, {
9245
+ return withDirectives(createVNode(Tag, mergeProps({
9225
9246
  "class": ['v-list-item', {
9226
9247
  'v-list-item--active': isActive.value,
9227
9248
  'v-list-item--disabled': props.disabled,
@@ -9232,11 +9253,11 @@ const VListItem = genericComponent()({
9232
9253
  [`${props.activeClass}`]: props.activeClass && isActive.value
9233
9254
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
9234
9255
  "style": [colorStyles.value, dimensionStyles.value, props.style],
9235
- "href": link.href.value,
9236
9256
  "tabindex": isClickable.value ? list ? -2 : 0 : undefined,
9257
+ "aria-selected": root.activatable.value ? isActivated.value : isSelected.value,
9237
9258
  "onClick": onClick,
9238
9259
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
9239
- }, {
9260
+ }, link.linkProps), {
9240
9261
  default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && createVNode("div", {
9241
9262
  "key": "prepend",
9242
9263
  "class": "v-list-item__prepend"
@@ -9323,7 +9344,9 @@ const VListItem = genericComponent()({
9323
9344
  isGroupActivator,
9324
9345
  isSelected,
9325
9346
  list,
9326
- select
9347
+ select,
9348
+ root,
9349
+ id: uid
9327
9350
  };
9328
9351
  }
9329
9352
  });
@@ -9724,7 +9747,8 @@ const VList = genericComponent()({
9724
9747
  children,
9725
9748
  open,
9726
9749
  parents,
9727
- select
9750
+ select,
9751
+ getPath
9728
9752
  } = useNested(props);
9729
9753
  const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
9730
9754
  const activeColor = toRef(props, 'activeColor');
@@ -9816,7 +9840,8 @@ const VList = genericComponent()({
9816
9840
  select,
9817
9841
  focus,
9818
9842
  children,
9819
- parents
9843
+ parents,
9844
+ getPath
9820
9845
  };
9821
9846
  }
9822
9847
  });
@@ -13988,8 +14013,7 @@ const VDialog = genericComponent()({
13988
14013
  useRender(() => {
13989
14014
  const overlayProps = VOverlay.filterProps(props);
13990
14015
  const activatorProps = mergeProps({
13991
- 'aria-haspopup': 'dialog',
13992
- 'aria-expanded': String(isActive.value)
14016
+ 'aria-haspopup': 'dialog'
13993
14017
  }, props.activatorProps);
13994
14018
  const contentProps = mergeProps({
13995
14019
  tabindex: -1
@@ -14120,12 +14144,10 @@ const VBreadcrumbsItem = genericComponent()({
14120
14144
  "style": [textColorStyles.value, props.style],
14121
14145
  "aria-current": isActive.value ? 'page' : undefined
14122
14146
  }, {
14123
- default: () => [!link.isLink.value ? slots.default?.() ?? props.title : createVNode("a", {
14147
+ default: () => [!link.isLink.value ? slots.default?.() ?? props.title : createVNode("a", mergeProps({
14124
14148
  "class": "v-breadcrumbs-item--link",
14125
- "href": link.href.value,
14126
- "aria-current": isActive.value ? 'page' : undefined,
14127
14149
  "onClick": link.navigate
14128
- }, [slots.default?.() ?? props.title])]
14150
+ }, link.linkProps), [slots.default?.() ?? props.title])]
14129
14151
  });
14130
14152
  });
14131
14153
  return {};
@@ -14501,7 +14523,7 @@ const VCard = genericComponent()({
14501
14523
  const hasImage = !!(slots.image || props.image);
14502
14524
  const hasCardItem = hasHeader || hasPrepend || hasAppend;
14503
14525
  const hasText = !!(slots.text || props.text != null);
14504
- return withDirectives(createVNode(Tag, {
14526
+ return withDirectives(createVNode(Tag, mergeProps({
14505
14527
  "class": ['v-card', {
14506
14528
  'v-card--disabled': props.disabled,
14507
14529
  'v-card--flat': props.flat,
@@ -14509,10 +14531,9 @@ const VCard = genericComponent()({
14509
14531
  'v-card--link': isClickable.value
14510
14532
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
14511
14533
  "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
14512
- "href": link.href.value,
14513
14534
  "onClick": isClickable.value && link.navigate,
14514
14535
  "tabindex": props.disabled ? -1 : undefined
14515
- }, {
14536
+ }, link.linkProps), {
14516
14537
  default: () => [hasImage && createVNode("div", {
14517
14538
  "key": "image",
14518
14539
  "class": "v-card__image"
@@ -16843,7 +16864,7 @@ const VColorPicker = defineComponent({
16843
16864
  hue.value = hsva.h;
16844
16865
  model.value = hsva;
16845
16866
  };
16846
- onMounted(() => {
16867
+ onBeforeMount(() => {
16847
16868
  if (!props.modes.includes(mode.value)) mode.value = props.modes[0];
16848
16869
  });
16849
16870
  provideDefaults({
@@ -18602,7 +18623,9 @@ function providePagination(options) {
18602
18623
  if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;
18603
18624
  return Math.ceil(itemsLength.value / itemsPerPage.value);
18604
18625
  });
18605
- watchEffect(() => {
18626
+
18627
+ // Don't run immediately, items may not have been loaded yet: #17966
18628
+ watch([page, pageCount], () => {
18606
18629
  if (page.value > pageCount.value) {
18607
18630
  page.value = pageCount.value;
18608
18631
  }
@@ -28050,7 +28073,7 @@ function mountComponent(component, props) {
28050
28073
  const value = isObject(binding.value) ? binding.value : {};
28051
28074
 
28052
28075
  // Get the children from the props or directive value, or the element's children
28053
- const children = () => text ?? el.innerHTML;
28076
+ const children = () => text ?? el.textContent;
28054
28077
 
28055
28078
  // If vnode.ctx is the same as the instance, then we're bound to a plain element
28056
28079
  // and need to find the nearest parent component instance to inherit provides from
@@ -28068,7 +28091,7 @@ function findComponentParent(vnode, root) {
28068
28091
  const walk = children => {
28069
28092
  for (const child of children) {
28070
28093
  if (!child) continue;
28071
- if (child === vnode) {
28094
+ if (child === vnode || child.el && vnode.el && child.el === vnode.el) {
28072
28095
  return true;
28073
28096
  }
28074
28097
  stack.add(child);
@@ -28088,7 +28111,8 @@ function findComponentParent(vnode, root) {
28088
28111
  return false;
28089
28112
  };
28090
28113
  if (!walk([root.subTree])) {
28091
- throw new Error('Could not find original vnode');
28114
+ consoleError('Could not find original vnode, component will not inherit provides');
28115
+ return root;
28092
28116
  }
28093
28117
 
28094
28118
  // Return the first component parent
@@ -28108,7 +28132,7 @@ function findComponentParent(vnode, root) {
28108
28132
  const Tooltip = useDirectiveComponent(VTooltip, binding => {
28109
28133
  return {
28110
28134
  activator: 'parent',
28111
- location: binding.arg?.replace('-', ' ') ?? 'top',
28135
+ location: binding.arg?.replace('-', ' '),
28112
28136
  text: typeof binding.value === 'boolean' ? undefined : binding.value
28113
28137
  };
28114
28138
  });
@@ -28214,7 +28238,7 @@ function createVuetify$1() {
28214
28238
  goTo
28215
28239
  };
28216
28240
  }
28217
- const version$1 = "3.7.1";
28241
+ const version$1 = "3.7.3";
28218
28242
  createVuetify$1.version = version$1;
28219
28243
 
28220
28244
  // Vue's inject() can only be used in setup
@@ -28239,7 +28263,7 @@ const createVuetify = function () {
28239
28263
  ...options
28240
28264
  });
28241
28265
  };
28242
- const version = "3.7.1";
28266
+ const version = "3.7.3";
28243
28267
  createVuetify.version = version;
28244
28268
 
28245
28269
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };