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
  */
@@ -162,6 +162,10 @@ function convertToUnit(str) {
162
162
  function isObject(obj) {
163
163
  return obj !== null && typeof obj === 'object' && !Array.isArray(obj);
164
164
  }
165
+ function isPlainObject(obj) {
166
+ let proto;
167
+ return obj !== null && typeof obj === 'object' && ((proto = Object.getPrototypeOf(obj)) === Object.prototype || proto === null);
168
+ }
165
169
  function refElement(obj) {
166
170
  if (obj && '$el' in obj) {
167
171
  const el = obj.$el;
@@ -311,7 +315,7 @@ function padEnd(str, length) {
311
315
  let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
312
316
  return str + char.repeat(Math.max(0, length - str.length));
313
317
  }
314
- function padStart$1(str, length) {
318
+ function padStart(str, length) {
315
319
  let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
316
320
  return char.repeat(Math.max(0, length - str.length)) + str;
317
321
  }
@@ -357,12 +361,12 @@ function mergeDeep() {
357
361
  const targetProperty = target[key];
358
362
 
359
363
  // Only continue deep merging if
360
- // both properties are objects
361
- if (isObject(sourceProperty) && isObject(targetProperty)) {
364
+ // both properties are plain objects
365
+ if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {
362
366
  out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn);
363
367
  continue;
364
368
  }
365
- if (Array.isArray(sourceProperty) && Array.isArray(targetProperty) && arrayFn) {
369
+ if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {
366
370
  out[key] = arrayFn(sourceProperty, targetProperty);
367
371
  continue;
368
372
  }
@@ -5152,10 +5156,14 @@ function useLink(props, attrs) {
5152
5156
  return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');
5153
5157
  });
5154
5158
  if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {
5159
+ const href = toRef(props, 'href');
5155
5160
  return {
5156
5161
  isLink,
5157
5162
  isClickable,
5158
- href: toRef(props, 'href')
5163
+ href,
5164
+ linkProps: reactive({
5165
+ href
5166
+ })
5159
5167
  };
5160
5168
  }
5161
5169
  // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined
@@ -5167,18 +5175,24 @@ function useLink(props, attrs) {
5167
5175
  // Actual link needs to be undefined when to prop is not used
5168
5176
  const link = computed(() => props.to ? routerLink : undefined);
5169
5177
  const route = useRoute();
5178
+ const isActive = computed(() => {
5179
+ if (!link.value) return false;
5180
+ if (!props.exact) return link.value.isActive?.value ?? false;
5181
+ if (!route.value) return link.value.isExactActive?.value ?? false;
5182
+ return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);
5183
+ });
5184
+ const href = computed(() => props.to ? link.value?.route.value.href : props.href);
5170
5185
  return {
5171
5186
  isLink,
5172
5187
  isClickable,
5188
+ isActive,
5173
5189
  route: link.value?.route,
5174
5190
  navigate: link.value?.navigate,
5175
- isActive: computed(() => {
5176
- if (!link.value) return false;
5177
- if (!props.exact) return link.value.isActive?.value ?? false;
5178
- if (!route.value) return link.value.isExactActive?.value ?? false;
5179
- return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);
5180
- }),
5181
- href: computed(() => props.to ? link.value?.route.value.href : props.href)
5191
+ href,
5192
+ linkProps: reactive({
5193
+ href,
5194
+ 'aria-current': computed(() => isActive.value ? 'page' : undefined)
5195
+ })
5182
5196
  };
5183
5197
  }
5184
5198
  const makeRouterProps = propsFactory({
@@ -5653,7 +5667,7 @@ const VBtn = genericComponent()({
5653
5667
  const hasPrepend = !!(props.prependIcon || slots.prepend);
5654
5668
  const hasAppend = !!(props.appendIcon || slots.append);
5655
5669
  const hasIcon = !!(props.icon && props.icon !== true);
5656
- return withDirectives(createVNode(Tag, {
5670
+ return withDirectives(createVNode(Tag, mergeProps({
5657
5671
  "type": Tag === 'a' ? undefined : 'button',
5658
5672
  "class": ['v-btn', group?.selectedClass.value, {
5659
5673
  'v-btn--active': isActive.value,
@@ -5670,11 +5684,10 @@ const VBtn = genericComponent()({
5670
5684
  "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
5671
5685
  "aria-busy": props.loading ? true : undefined,
5672
5686
  "disabled": isDisabled.value || undefined,
5673
- "href": link.href.value,
5674
5687
  "tabindex": props.loading || props.readonly ? -1 : undefined,
5675
5688
  "onClick": onClick,
5676
5689
  "value": valueAttr.value
5677
- }, {
5690
+ }, link.linkProps), {
5678
5691
  default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && createVNode("span", {
5679
5692
  "key": "prepend",
5680
5693
  "class": "v-btn__prepend"
@@ -7937,7 +7950,7 @@ const VChip = genericComponent()({
7937
7950
  const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);
7938
7951
  const hasPrepend = !!(hasPrependMedia || slots.prepend);
7939
7952
  const hasColor = !group || group.isSelected.value;
7940
- return isActive.value && withDirectives(createVNode(Tag, {
7953
+ return isActive.value && withDirectives(createVNode(Tag, mergeProps({
7941
7954
  "class": ['v-chip', {
7942
7955
  'v-chip--disabled': props.disabled,
7943
7956
  'v-chip--label': props.label,
@@ -7948,11 +7961,10 @@ const VChip = genericComponent()({
7948
7961
  "style": [hasColor ? colorStyles.value : undefined, props.style],
7949
7962
  "disabled": props.disabled || undefined,
7950
7963
  "draggable": props.draggable,
7951
- "href": link.href.value,
7952
7964
  "tabindex": isClickable.value ? 0 : undefined,
7953
7965
  "onClick": onClick,
7954
7966
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
7955
- }, {
7967
+ }, link.linkProps), {
7956
7968
  default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && createVNode(VExpandXTransition, {
7957
7969
  "key": "filter"
7958
7970
  }, {
@@ -8197,7 +8209,6 @@ const leafSingleActiveStrategy = mandatory => {
8197
8209
  return strategy;
8198
8210
  };
8199
8211
 
8200
- // Utilities
8201
8212
  const singleOpenStrategy = {
8202
8213
  open: _ref => {
8203
8214
  let {
@@ -8231,11 +8242,11 @@ const multipleOpenStrategy = {
8231
8242
  parents
8232
8243
  } = _ref2;
8233
8244
  if (value) {
8234
- let parent = toRaw(parents.get(id));
8245
+ let parent = parents.get(id);
8235
8246
  opened.add(id);
8236
8247
  while (parent != null && parent !== id) {
8237
8248
  opened.add(parent);
8238
- parent = toRaw(parents.get(parent));
8249
+ parent = parents.get(parent);
8239
8250
  }
8240
8251
  return opened;
8241
8252
  } else {
@@ -8477,7 +8488,8 @@ const emptyNested = {
8477
8488
  opened: ref(new Set()),
8478
8489
  activated: ref(new Set()),
8479
8490
  selected: ref(new Map()),
8480
- selectedValues: ref([])
8491
+ selectedValues: ref([]),
8492
+ getPath: () => []
8481
8493
  }
8482
8494
  };
8483
8495
  const makeNestedProps = propsFactory({
@@ -8495,7 +8507,7 @@ const useNested = props => {
8495
8507
  let isUnmounted = false;
8496
8508
  const children = ref(new Map());
8497
8509
  const parents = ref(new Map());
8498
- const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(toRaw(v)), v => [...v.values()]);
8510
+ const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
8499
8511
  const activeStrategy = computed(() => {
8500
8512
  if (typeof props.activeStrategy === 'object') return props.activeStrategy;
8501
8513
  if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
@@ -8555,6 +8567,7 @@ const useNested = props => {
8555
8567
  return path;
8556
8568
  }
8557
8569
  const vm = getCurrentInstance('nested');
8570
+ const nodeIds = new Set();
8558
8571
  const nested = {
8559
8572
  id: shallowRef(),
8560
8573
  root: {
@@ -8571,6 +8584,14 @@ const useNested = props => {
8571
8584
  return arr;
8572
8585
  }),
8573
8586
  register: (id, parentId, isGroup) => {
8587
+ if (nodeIds.has(id)) {
8588
+ const path = getPath(id).join(' -> ');
8589
+ const newPath = getPath(parentId).concat(id).join(' -> ');
8590
+ consoleError(`Multiple nodes with the same ID\n\t${path}\n\t${newPath}`);
8591
+ return;
8592
+ } else {
8593
+ nodeIds.add(id);
8594
+ }
8574
8595
  parentId && id !== parentId && parents.value.set(id, parentId);
8575
8596
  isGroup && children.value.set(id, []);
8576
8597
  if (parentId != null) {
@@ -8579,6 +8600,7 @@ const useNested = props => {
8579
8600
  },
8580
8601
  unregister: id => {
8581
8602
  if (isUnmounted) return;
8603
+ nodeIds.delete(id);
8582
8604
  children.value.delete(id);
8583
8605
  const parent = parents.value.get(id);
8584
8606
  if (parent) {
@@ -8655,7 +8677,8 @@ const useNested = props => {
8655
8677
  newActivated && (activated.value = newActivated);
8656
8678
  },
8657
8679
  children,
8658
- parents
8680
+ parents,
8681
+ getPath
8659
8682
  }
8660
8683
  };
8661
8684
  provide(VNestedSymbol, nested);
@@ -8668,9 +8691,9 @@ const useNestedItem = (id, isGroup) => {
8668
8691
  const item = {
8669
8692
  ...parent,
8670
8693
  id: computedId,
8671
- open: (open, e) => parent.root.open(toRaw(computedId.value), open, e),
8694
+ open: (open, e) => parent.root.open(computedId.value, open, e),
8672
8695
  openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),
8673
- isOpen: computed(() => parent.root.opened.value.has(toRaw(computedId.value))),
8696
+ isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
8674
8697
  parent: computed(() => parent.root.parents.value.get(computedId.value)),
8675
8698
  activate: (activated, e) => parent.root.activate(computedId.value, activated, e),
8676
8699
  isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),
@@ -8900,7 +8923,8 @@ const VListItem = genericComponent()({
8900
8923
  isGroupActivator,
8901
8924
  root,
8902
8925
  parent,
8903
- openOnSelect
8926
+ openOnSelect,
8927
+ id: uid
8904
8928
  } = useNestedItem(id, false);
8905
8929
  const list = useList();
8906
8930
  const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
@@ -8984,7 +9008,7 @@ const VListItem = genericComponent()({
8984
9008
  if (props.activeColor) {
8985
9009
  deprecate('active-color', ['color', 'base-color']);
8986
9010
  }
8987
- return withDirectives(createVNode(Tag, {
9011
+ return withDirectives(createVNode(Tag, mergeProps({
8988
9012
  "class": ['v-list-item', {
8989
9013
  'v-list-item--active': isActive.value,
8990
9014
  'v-list-item--disabled': props.disabled,
@@ -8995,11 +9019,10 @@ const VListItem = genericComponent()({
8995
9019
  [`${props.activeClass}`]: props.activeClass && isActive.value
8996
9020
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
8997
9021
  "style": [colorStyles.value, dimensionStyles.value, props.style],
8998
- "href": link.href.value,
8999
9022
  "tabindex": isClickable.value ? list ? -2 : 0 : undefined,
9000
9023
  "onClick": onClick,
9001
9024
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
9002
- }, {
9025
+ }, link.linkProps), {
9003
9026
  default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && createVNode("div", {
9004
9027
  "key": "prepend",
9005
9028
  "class": "v-list-item__prepend"
@@ -9086,7 +9109,9 @@ const VListItem = genericComponent()({
9086
9109
  isGroupActivator,
9087
9110
  isSelected,
9088
9111
  list,
9089
- select
9112
+ select,
9113
+ root,
9114
+ id: uid
9090
9115
  };
9091
9116
  }
9092
9117
  });
@@ -9487,7 +9512,8 @@ const VList = genericComponent()({
9487
9512
  children,
9488
9513
  open,
9489
9514
  parents,
9490
- select
9515
+ select,
9516
+ getPath
9491
9517
  } = useNested(props);
9492
9518
  const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
9493
9519
  const activeColor = toRef(props, 'activeColor');
@@ -9579,7 +9605,8 @@ const VList = genericComponent()({
9579
9605
  select,
9580
9606
  focus,
9581
9607
  children,
9582
- parents
9608
+ parents,
9609
+ getPath
9583
9610
  };
9584
9611
  }
9585
9612
  });
@@ -11031,6 +11058,8 @@ const Refs = Symbol('Forwarded refs');
11031
11058
 
11032
11059
  /** Omit properties starting with P */
11033
11060
 
11061
+ /** Omit keyof $props from T */
11062
+
11034
11063
  function getDescriptor(obj, key) {
11035
11064
  let currentObj = obj;
11036
11065
  while (currentObj) {
@@ -13686,6 +13715,7 @@ const VDialog = genericComponent()({
13686
13715
  props: makeVDialogProps(),
13687
13716
  emits: {
13688
13717
  'update:modelValue': value => true,
13718
+ afterEnter: () => true,
13689
13719
  afterLeave: () => true
13690
13720
  },
13691
13721
  setup(props, _ref) {
@@ -13727,6 +13757,7 @@ const VDialog = genericComponent()({
13727
13757
  });
13728
13758
  }
13729
13759
  function onAfterEnter() {
13760
+ emit('afterEnter');
13730
13761
  if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
13731
13762
  overlay.value.contentEl.focus({
13732
13763
  preventScroll: true
@@ -13747,8 +13778,7 @@ const VDialog = genericComponent()({
13747
13778
  useRender(() => {
13748
13779
  const overlayProps = VOverlay.filterProps(props);
13749
13780
  const activatorProps = mergeProps({
13750
- 'aria-haspopup': 'dialog',
13751
- 'aria-expanded': String(isActive.value)
13781
+ 'aria-haspopup': 'dialog'
13752
13782
  }, props.activatorProps);
13753
13783
  const contentProps = mergeProps({
13754
13784
  tabindex: -1
@@ -13879,12 +13909,10 @@ const VBreadcrumbsItem = genericComponent()({
13879
13909
  "style": [textColorStyles.value, props.style],
13880
13910
  "aria-current": isActive.value ? 'page' : undefined
13881
13911
  }, {
13882
- default: () => [!link.isLink.value ? slots.default?.() ?? props.title : createVNode("a", {
13912
+ default: () => [!link.isLink.value ? slots.default?.() ?? props.title : createVNode("a", mergeProps({
13883
13913
  "class": "v-breadcrumbs-item--link",
13884
- "href": link.href.value,
13885
- "aria-current": isActive.value ? 'page' : undefined,
13886
13914
  "onClick": link.navigate
13887
- }, [slots.default?.() ?? props.title])]
13915
+ }, link.linkProps), [slots.default?.() ?? props.title])]
13888
13916
  });
13889
13917
  });
13890
13918
  return {};
@@ -14260,7 +14288,7 @@ const VCard = genericComponent()({
14260
14288
  const hasImage = !!(slots.image || props.image);
14261
14289
  const hasCardItem = hasHeader || hasPrepend || hasAppend;
14262
14290
  const hasText = !!(slots.text || props.text != null);
14263
- return withDirectives(createVNode(Tag, {
14291
+ return withDirectives(createVNode(Tag, mergeProps({
14264
14292
  "class": ['v-card', {
14265
14293
  'v-card--disabled': props.disabled,
14266
14294
  'v-card--flat': props.flat,
@@ -14268,10 +14296,9 @@ const VCard = genericComponent()({
14268
14296
  'v-card--link': isClickable.value
14269
14297
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
14270
14298
  "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
14271
- "href": link.href.value,
14272
14299
  "onClick": isClickable.value && link.navigate,
14273
14300
  "tabindex": props.disabled ? -1 : undefined
14274
- }, {
14301
+ }, link.linkProps), {
14275
14302
  default: () => [hasImage && createVNode("div", {
14276
14303
  "key": "image",
14277
14304
  "class": "v-card__image"
@@ -17637,8 +17664,8 @@ function format(value, formatString, locale, formats) {
17637
17664
  function toISO(adapter, value) {
17638
17665
  const date = adapter.toJsDate(value);
17639
17666
  const year = date.getFullYear();
17640
- const month = padStart$1(String(date.getMonth() + 1), 2, '0');
17641
- const day = padStart$1(String(date.getDate()), 2, '0');
17667
+ const month = padStart(String(date.getMonth() + 1), 2, '0');
17668
+ const day = padStart(String(date.getDate()), 2, '0');
17642
17669
  return `${year}-${month}-${day}`;
17643
17670
  }
17644
17671
  function parseISO(value) {
@@ -23166,7 +23193,6 @@ const VInfiniteScrollIntersect = defineComponent({
23166
23193
  type: String,
23167
23194
  required: true
23168
23195
  },
23169
- rootRef: null,
23170
23196
  rootMargin: String
23171
23197
  },
23172
23198
  emits: {
@@ -23179,14 +23205,15 @@ const VInfiniteScrollIntersect = defineComponent({
23179
23205
  const {
23180
23206
  intersectionRef,
23181
23207
  isIntersecting
23182
- } = useIntersectionObserver(entries => {}, props.rootMargin ? {
23183
- rootMargin: props.rootMargin
23184
- } : undefined);
23208
+ } = useIntersectionObserver();
23185
23209
  watch(isIntersecting, async val => {
23186
23210
  emit('intersect', props.side, val);
23187
23211
  });
23188
23212
  useRender(() => createVNode("div", {
23189
23213
  "class": "v-infinite-scroll-intersect",
23214
+ "style": {
23215
+ '--v-infinite-margin-size': props.rootMargin
23216
+ },
23190
23217
  "ref": intersectionRef
23191
23218
  }, [createTextVNode("\xA0")]));
23192
23219
  return {};
@@ -23337,17 +23364,15 @@ const VInfiniteScroll = genericComponent()({
23337
23364
  }, {
23338
23365
  default: () => [createVNode("div", {
23339
23366
  "class": "v-infinite-scroll__side"
23340
- }, [renderSide('start', startStatus.value)]), rootEl.value && hasStartIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
23367
+ }, [renderSide('start', startStatus.value)]), hasStartIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
23341
23368
  "key": "start",
23342
23369
  "side": "start",
23343
23370
  "onIntersect": handleIntersect,
23344
- "rootRef": rootEl.value,
23345
23371
  "rootMargin": margin.value
23346
- }, null), slots.default?.(), rootEl.value && hasEndIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
23372
+ }, null), slots.default?.(), hasEndIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
23347
23373
  "key": "end",
23348
23374
  "side": "end",
23349
23375
  "onIntersect": handleIntersect,
23350
- "rootRef": rootEl.value,
23351
23376
  "rootMargin": margin.value
23352
23377
  }, null), createVNode("div", {
23353
23378
  "class": "v-infinite-scroll__side"
@@ -28150,7 +28175,13 @@ const VNumberInput = genericComponent()({
28150
28175
  const model = computed({
28151
28176
  get: () => _model.value,
28152
28177
  set(val) {
28153
- if (typeof val !== 'string') _model.value = val;
28178
+ if (val === null) {
28179
+ _model.value = null;
28180
+ return;
28181
+ }
28182
+ if (!isNaN(+val) && +val <= props.max && +val >= props.min) {
28183
+ _model.value = +val;
28184
+ }
28154
28185
  }
28155
28186
  });
28156
28187
  const vTextFieldRef = ref();
@@ -28840,6 +28871,11 @@ const VSnackbarQueue = genericComponent()({
28840
28871
  }
28841
28872
  });
28842
28873
 
28874
+ function pad(n) {
28875
+ let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
28876
+ return String(n).padStart(length, '0');
28877
+ }
28878
+
28843
28879
  // Types
28844
28880
 
28845
28881
  const makeVTimePickerClockProps = propsFactory({
@@ -29080,27 +29116,6 @@ const VTimePickerClock = genericComponent()({
29080
29116
  }
29081
29117
  });
29082
29118
 
29083
- // @ts-nocheck
29084
- /* eslint-disable */
29085
-
29086
- const padStart = (string, targetLength, padString) => {
29087
- targetLength = targetLength >> 0;
29088
- string = String(string);
29089
- padString = String(padString);
29090
- if (string.length > targetLength) {
29091
- return String(string);
29092
- }
29093
- targetLength = targetLength - string.length;
29094
- if (targetLength > padString.length) {
29095
- padString += padString.repeat(targetLength / padString.length);
29096
- }
29097
- return padString.slice(0, targetLength) + String(string);
29098
- };
29099
- var pad = (function (n) {
29100
- let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
29101
- return padStart(n, length, '0');
29102
- });
29103
-
29104
29119
  // @ts-nocheck
29105
29120
  /* eslint-disable */
29106
29121
  var SelectingTimes = /*#__PURE__*/function (SelectingTimes) {
@@ -29548,25 +29563,13 @@ const VTreeviewItem = genericComponent()({
29548
29563
  emit
29549
29564
  } = _ref;
29550
29565
  const link = useLink(props, attrs);
29551
- const rawId = computed(() => props.value === undefined ? link.href.value : props.value);
29552
29566
  const vListItemRef = ref();
29553
- const {
29554
- activate,
29555
- isActivated,
29556
- isGroupActivator,
29557
- root,
29558
- id
29559
- } = useNestedItem(rawId, false);
29560
- const isActivatableGroupActivator = computed(() => root.activatable.value && isGroupActivator);
29567
+ const isActivatableGroupActivator = computed(() => vListItemRef.value?.root.activatable.value && vListItemRef.value?.isGroupActivator);
29561
29568
  const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list || isActivatableGroupActivator.value));
29562
29569
  function activateItem(e) {
29563
- if (!isClickable.value || !isActivatableGroupActivator.value && isGroupActivator) return;
29564
- if (root.activatable.value) {
29565
- if (isActivatableGroupActivator.value) {
29566
- activate(!isActivated.value, e);
29567
- } else {
29568
- vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
29569
- }
29570
+ if (!isClickable.value || !isActivatableGroupActivator.value && vListItemRef.value?.isGroupActivator) return;
29571
+ if (vListItemRef.value?.root.activatable.value) {
29572
+ vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
29570
29573
  }
29571
29574
  }
29572
29575
  const visibleIds = inject$1(VTreeviewSymbol, {
@@ -29575,11 +29578,13 @@ const VTreeviewItem = genericComponent()({
29575
29578
  useRender(() => {
29576
29579
  const listItemProps = omit(VListItem.filterProps(props), ['onClick']);
29577
29580
  const hasPrepend = slots.prepend || props.toggleIcon;
29578
- return createVNode(VListItem, mergeProps(listItemProps, {
29579
- "active": isActivated.value,
29581
+ return createVNode(VListItem, mergeProps({
29582
+ "ref": vListItemRef
29583
+ }, listItemProps, {
29584
+ "active": vListItemRef.value?.isActivated,
29580
29585
  "class": ['v-treeview-item', {
29581
29586
  'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,
29582
- 'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
29587
+ 'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(vListItemRef.value?.id)
29583
29588
  }, props.class],
29584
29589
  "ripple": false,
29585
29590
  "onClick": props.onClick ?? activateItem
@@ -29713,7 +29718,7 @@ const VTreeviewChildren = genericComponent()({
29713
29718
  ...itemProps,
29714
29719
  ...activatorProps,
29715
29720
  value: itemProps?.value,
29716
- onToggleExpand: activatorProps.onClick,
29721
+ onToggleExpand: [() => checkChildren(item), activatorProps.onClick],
29717
29722
  onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : undefined
29718
29723
  };
29719
29724
  return createVNode(VTreeviewItem, mergeProps(listItemProps, {
@@ -29798,22 +29803,13 @@ const VTreeview = genericComponent()({
29798
29803
  filteredItems
29799
29804
  } = useFilter(props, flatItems, search);
29800
29805
  const visibleIds = computed(() => {
29801
- if (!search.value) {
29802
- return null;
29803
- }
29806
+ if (!search.value) return null;
29807
+ const getPath = vListRef.value?.getPath;
29808
+ if (!getPath) return null;
29804
29809
  return new Set(filteredItems.value.flatMap(item => {
29805
29810
  return [...getPath(item.props.value), ...getChildren(item.props.value)];
29806
29811
  }));
29807
29812
  });
29808
- function getPath(id) {
29809
- const path = [];
29810
- let parent = id;
29811
- while (parent != null) {
29812
- path.unshift(parent);
29813
- parent = vListRef.value?.parents.get(parent);
29814
- }
29815
- return path;
29816
- }
29817
29813
  function getChildren(id) {
29818
29814
  const arr = [];
29819
29815
  const queue = (vListRef.value?.children.get(id) ?? []).slice();
@@ -30214,7 +30210,7 @@ function mountComponent(component, props) {
30214
30210
  const value = isObject(binding.value) ? binding.value : {};
30215
30211
 
30216
30212
  // Get the children from the props or directive value, or the element's children
30217
- const children = () => text ?? el.innerHTML;
30213
+ const children = () => text ?? el.textContent;
30218
30214
 
30219
30215
  // If vnode.ctx is the same as the instance, then we're bound to a plain element
30220
30216
  // and need to find the nearest parent component instance to inherit provides from
@@ -30272,7 +30268,7 @@ function findComponentParent(vnode, root) {
30272
30268
  const Tooltip = useDirectiveComponent(VTooltip, binding => {
30273
30269
  return {
30274
30270
  activator: 'parent',
30275
- location: binding.arg?.replace('-', ' ') ?? 'top',
30271
+ location: binding.arg?.replace('-', ' '),
30276
30272
  text: typeof binding.value === 'boolean' ? undefined : binding.value
30277
30273
  };
30278
30274
  });
@@ -30378,7 +30374,7 @@ function createVuetify$1() {
30378
30374
  goTo
30379
30375
  };
30380
30376
  }
30381
- const version$1 = "3.7.0";
30377
+ const version$1 = "3.7.2";
30382
30378
  createVuetify$1.version = version$1;
30383
30379
 
30384
30380
  // Vue's inject() can only be used in setup
@@ -30631,7 +30627,7 @@ var index = /*#__PURE__*/Object.freeze({
30631
30627
 
30632
30628
  /* eslint-disable local-rules/sort-imports */
30633
30629
 
30634
- const version = "3.7.0";
30630
+ const version = "3.7.2";
30635
30631
 
30636
30632
  /* eslint-disable local-rules/sort-imports */
30637
30633