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
  */
@@ -166,6 +166,10 @@
166
166
  function isObject(obj) {
167
167
  return obj !== null && typeof obj === 'object' && !Array.isArray(obj);
168
168
  }
169
+ function isPlainObject(obj) {
170
+ let proto;
171
+ return obj !== null && typeof obj === 'object' && ((proto = Object.getPrototypeOf(obj)) === Object.prototype || proto === null);
172
+ }
169
173
  function refElement(obj) {
170
174
  if (obj && '$el' in obj) {
171
175
  const el = obj.$el;
@@ -315,7 +319,7 @@
315
319
  let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
316
320
  return str + char.repeat(Math.max(0, length - str.length));
317
321
  }
318
- function padStart$1(str, length) {
322
+ function padStart(str, length) {
319
323
  let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
320
324
  return char.repeat(Math.max(0, length - str.length)) + str;
321
325
  }
@@ -361,12 +365,12 @@
361
365
  const targetProperty = target[key];
362
366
 
363
367
  // Only continue deep merging if
364
- // both properties are objects
365
- if (isObject(sourceProperty) && isObject(targetProperty)) {
368
+ // both properties are plain objects
369
+ if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {
366
370
  out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn);
367
371
  continue;
368
372
  }
369
- if (Array.isArray(sourceProperty) && Array.isArray(targetProperty) && arrayFn) {
373
+ if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {
370
374
  out[key] = arrayFn(sourceProperty, targetProperty);
371
375
  continue;
372
376
  }
@@ -5156,10 +5160,14 @@
5156
5160
  return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');
5157
5161
  });
5158
5162
  if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {
5163
+ const href = vue.toRef(props, 'href');
5159
5164
  return {
5160
5165
  isLink,
5161
5166
  isClickable,
5162
- href: vue.toRef(props, 'href')
5167
+ href,
5168
+ linkProps: vue.reactive({
5169
+ href
5170
+ })
5163
5171
  };
5164
5172
  }
5165
5173
  // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined
@@ -5171,18 +5179,24 @@
5171
5179
  // Actual link needs to be undefined when to prop is not used
5172
5180
  const link = vue.computed(() => props.to ? routerLink : undefined);
5173
5181
  const route = useRoute();
5182
+ const isActive = vue.computed(() => {
5183
+ if (!link.value) return false;
5184
+ if (!props.exact) return link.value.isActive?.value ?? false;
5185
+ if (!route.value) return link.value.isExactActive?.value ?? false;
5186
+ return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);
5187
+ });
5188
+ const href = vue.computed(() => props.to ? link.value?.route.value.href : props.href);
5174
5189
  return {
5175
5190
  isLink,
5176
5191
  isClickable,
5192
+ isActive,
5177
5193
  route: link.value?.route,
5178
5194
  navigate: link.value?.navigate,
5179
- isActive: vue.computed(() => {
5180
- if (!link.value) return false;
5181
- if (!props.exact) return link.value.isActive?.value ?? false;
5182
- if (!route.value) return link.value.isExactActive?.value ?? false;
5183
- return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);
5184
- }),
5185
- href: vue.computed(() => props.to ? link.value?.route.value.href : props.href)
5195
+ href,
5196
+ linkProps: vue.reactive({
5197
+ href,
5198
+ 'aria-current': vue.computed(() => isActive.value ? 'page' : undefined)
5199
+ })
5186
5200
  };
5187
5201
  }
5188
5202
  const makeRouterProps = propsFactory({
@@ -5657,7 +5671,7 @@
5657
5671
  const hasPrepend = !!(props.prependIcon || slots.prepend);
5658
5672
  const hasAppend = !!(props.appendIcon || slots.append);
5659
5673
  const hasIcon = !!(props.icon && props.icon !== true);
5660
- return vue.withDirectives(vue.createVNode(Tag, {
5674
+ return vue.withDirectives(vue.createVNode(Tag, vue.mergeProps({
5661
5675
  "type": Tag === 'a' ? undefined : 'button',
5662
5676
  "class": ['v-btn', group?.selectedClass.value, {
5663
5677
  'v-btn--active': isActive.value,
@@ -5674,11 +5688,10 @@
5674
5688
  "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
5675
5689
  "aria-busy": props.loading ? true : undefined,
5676
5690
  "disabled": isDisabled.value || undefined,
5677
- "href": link.href.value,
5678
5691
  "tabindex": props.loading || props.readonly ? -1 : undefined,
5679
5692
  "onClick": onClick,
5680
5693
  "value": valueAttr.value
5681
- }, {
5694
+ }, link.linkProps), {
5682
5695
  default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createVNode("span", {
5683
5696
  "key": "prepend",
5684
5697
  "class": "v-btn__prepend"
@@ -7941,7 +7954,7 @@
7941
7954
  const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);
7942
7955
  const hasPrepend = !!(hasPrependMedia || slots.prepend);
7943
7956
  const hasColor = !group || group.isSelected.value;
7944
- return isActive.value && vue.withDirectives(vue.createVNode(Tag, {
7957
+ return isActive.value && vue.withDirectives(vue.createVNode(Tag, vue.mergeProps({
7945
7958
  "class": ['v-chip', {
7946
7959
  'v-chip--disabled': props.disabled,
7947
7960
  'v-chip--label': props.label,
@@ -7952,11 +7965,10 @@
7952
7965
  "style": [hasColor ? colorStyles.value : undefined, props.style],
7953
7966
  "disabled": props.disabled || undefined,
7954
7967
  "draggable": props.draggable,
7955
- "href": link.href.value,
7956
7968
  "tabindex": isClickable.value ? 0 : undefined,
7957
7969
  "onClick": onClick,
7958
7970
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
7959
- }, {
7971
+ }, link.linkProps), {
7960
7972
  default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && vue.createVNode(VExpandXTransition, {
7961
7973
  "key": "filter"
7962
7974
  }, {
@@ -8201,7 +8213,6 @@
8201
8213
  return strategy;
8202
8214
  };
8203
8215
 
8204
- // Utilities
8205
8216
  const singleOpenStrategy = {
8206
8217
  open: _ref => {
8207
8218
  let {
@@ -8235,11 +8246,11 @@
8235
8246
  parents
8236
8247
  } = _ref2;
8237
8248
  if (value) {
8238
- let parent = vue.toRaw(parents.get(id));
8249
+ let parent = parents.get(id);
8239
8250
  opened.add(id);
8240
8251
  while (parent != null && parent !== id) {
8241
8252
  opened.add(parent);
8242
- parent = vue.toRaw(parents.get(parent));
8253
+ parent = parents.get(parent);
8243
8254
  }
8244
8255
  return opened;
8245
8256
  } else {
@@ -8481,7 +8492,8 @@
8481
8492
  opened: vue.ref(new Set()),
8482
8493
  activated: vue.ref(new Set()),
8483
8494
  selected: vue.ref(new Map()),
8484
- selectedValues: vue.ref([])
8495
+ selectedValues: vue.ref([]),
8496
+ getPath: () => []
8485
8497
  }
8486
8498
  };
8487
8499
  const makeNestedProps = propsFactory({
@@ -8499,7 +8511,7 @@
8499
8511
  let isUnmounted = false;
8500
8512
  const children = vue.ref(new Map());
8501
8513
  const parents = vue.ref(new Map());
8502
- const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(vue.toRaw(v)), v => [...v.values()]);
8514
+ const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
8503
8515
  const activeStrategy = vue.computed(() => {
8504
8516
  if (typeof props.activeStrategy === 'object') return props.activeStrategy;
8505
8517
  if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
@@ -8559,6 +8571,7 @@
8559
8571
  return path;
8560
8572
  }
8561
8573
  const vm = getCurrentInstance('nested');
8574
+ const nodeIds = new Set();
8562
8575
  const nested = {
8563
8576
  id: vue.shallowRef(),
8564
8577
  root: {
@@ -8575,6 +8588,14 @@
8575
8588
  return arr;
8576
8589
  }),
8577
8590
  register: (id, parentId, isGroup) => {
8591
+ if (nodeIds.has(id)) {
8592
+ const path = getPath(id).join(' -> ');
8593
+ const newPath = getPath(parentId).concat(id).join(' -> ');
8594
+ consoleError(`Multiple nodes with the same ID\n\t${path}\n\t${newPath}`);
8595
+ return;
8596
+ } else {
8597
+ nodeIds.add(id);
8598
+ }
8578
8599
  parentId && id !== parentId && parents.value.set(id, parentId);
8579
8600
  isGroup && children.value.set(id, []);
8580
8601
  if (parentId != null) {
@@ -8583,6 +8604,7 @@
8583
8604
  },
8584
8605
  unregister: id => {
8585
8606
  if (isUnmounted) return;
8607
+ nodeIds.delete(id);
8586
8608
  children.value.delete(id);
8587
8609
  const parent = parents.value.get(id);
8588
8610
  if (parent) {
@@ -8659,7 +8681,8 @@
8659
8681
  newActivated && (activated.value = newActivated);
8660
8682
  },
8661
8683
  children,
8662
- parents
8684
+ parents,
8685
+ getPath
8663
8686
  }
8664
8687
  };
8665
8688
  vue.provide(VNestedSymbol, nested);
@@ -8672,9 +8695,9 @@
8672
8695
  const item = {
8673
8696
  ...parent,
8674
8697
  id: computedId,
8675
- open: (open, e) => parent.root.open(vue.toRaw(computedId.value), open, e),
8698
+ open: (open, e) => parent.root.open(computedId.value, open, e),
8676
8699
  openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),
8677
- isOpen: vue.computed(() => parent.root.opened.value.has(vue.toRaw(computedId.value))),
8700
+ isOpen: vue.computed(() => parent.root.opened.value.has(computedId.value)),
8678
8701
  parent: vue.computed(() => parent.root.parents.value.get(computedId.value)),
8679
8702
  activate: (activated, e) => parent.root.activate(computedId.value, activated, e),
8680
8703
  isActivated: vue.computed(() => parent.root.activated.value.has(vue.toRaw(computedId.value))),
@@ -8904,7 +8927,8 @@
8904
8927
  isGroupActivator,
8905
8928
  root,
8906
8929
  parent,
8907
- openOnSelect
8930
+ openOnSelect,
8931
+ id: uid
8908
8932
  } = useNestedItem(id, false);
8909
8933
  const list = useList();
8910
8934
  const isActive = vue.computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
@@ -8988,7 +9012,7 @@
8988
9012
  if (props.activeColor) {
8989
9013
  deprecate('active-color', ['color', 'base-color']);
8990
9014
  }
8991
- return vue.withDirectives(vue.createVNode(Tag, {
9015
+ return vue.withDirectives(vue.createVNode(Tag, vue.mergeProps({
8992
9016
  "class": ['v-list-item', {
8993
9017
  'v-list-item--active': isActive.value,
8994
9018
  'v-list-item--disabled': props.disabled,
@@ -8999,11 +9023,10 @@
8999
9023
  [`${props.activeClass}`]: props.activeClass && isActive.value
9000
9024
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
9001
9025
  "style": [colorStyles.value, dimensionStyles.value, props.style],
9002
- "href": link.href.value,
9003
9026
  "tabindex": isClickable.value ? list ? -2 : 0 : undefined,
9004
9027
  "onClick": onClick,
9005
9028
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
9006
- }, {
9029
+ }, link.linkProps), {
9007
9030
  default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && vue.createVNode("div", {
9008
9031
  "key": "prepend",
9009
9032
  "class": "v-list-item__prepend"
@@ -9090,7 +9113,9 @@
9090
9113
  isGroupActivator,
9091
9114
  isSelected,
9092
9115
  list,
9093
- select
9116
+ select,
9117
+ root,
9118
+ id: uid
9094
9119
  };
9095
9120
  }
9096
9121
  });
@@ -9491,7 +9516,8 @@
9491
9516
  children,
9492
9517
  open,
9493
9518
  parents,
9494
- select
9519
+ select,
9520
+ getPath
9495
9521
  } = useNested(props);
9496
9522
  const lineClasses = vue.computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
9497
9523
  const activeColor = vue.toRef(props, 'activeColor');
@@ -9583,7 +9609,8 @@
9583
9609
  select,
9584
9610
  focus,
9585
9611
  children,
9586
- parents
9612
+ parents,
9613
+ getPath
9587
9614
  };
9588
9615
  }
9589
9616
  });
@@ -11035,6 +11062,8 @@
11035
11062
 
11036
11063
  /** Omit properties starting with P */
11037
11064
 
11065
+ /** Omit keyof $props from T */
11066
+
11038
11067
  function getDescriptor(obj, key) {
11039
11068
  let currentObj = obj;
11040
11069
  while (currentObj) {
@@ -13690,6 +13719,7 @@
13690
13719
  props: makeVDialogProps(),
13691
13720
  emits: {
13692
13721
  'update:modelValue': value => true,
13722
+ afterEnter: () => true,
13693
13723
  afterLeave: () => true
13694
13724
  },
13695
13725
  setup(props, _ref) {
@@ -13731,6 +13761,7 @@
13731
13761
  });
13732
13762
  }
13733
13763
  function onAfterEnter() {
13764
+ emit('afterEnter');
13734
13765
  if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
13735
13766
  overlay.value.contentEl.focus({
13736
13767
  preventScroll: true
@@ -13751,8 +13782,7 @@
13751
13782
  useRender(() => {
13752
13783
  const overlayProps = VOverlay.filterProps(props);
13753
13784
  const activatorProps = vue.mergeProps({
13754
- 'aria-haspopup': 'dialog',
13755
- 'aria-expanded': String(isActive.value)
13785
+ 'aria-haspopup': 'dialog'
13756
13786
  }, props.activatorProps);
13757
13787
  const contentProps = vue.mergeProps({
13758
13788
  tabindex: -1
@@ -13883,12 +13913,10 @@
13883
13913
  "style": [textColorStyles.value, props.style],
13884
13914
  "aria-current": isActive.value ? 'page' : undefined
13885
13915
  }, {
13886
- default: () => [!link.isLink.value ? slots.default?.() ?? props.title : vue.createVNode("a", {
13916
+ default: () => [!link.isLink.value ? slots.default?.() ?? props.title : vue.createVNode("a", vue.mergeProps({
13887
13917
  "class": "v-breadcrumbs-item--link",
13888
- "href": link.href.value,
13889
- "aria-current": isActive.value ? 'page' : undefined,
13890
13918
  "onClick": link.navigate
13891
- }, [slots.default?.() ?? props.title])]
13919
+ }, link.linkProps), [slots.default?.() ?? props.title])]
13892
13920
  });
13893
13921
  });
13894
13922
  return {};
@@ -14264,7 +14292,7 @@
14264
14292
  const hasImage = !!(slots.image || props.image);
14265
14293
  const hasCardItem = hasHeader || hasPrepend || hasAppend;
14266
14294
  const hasText = !!(slots.text || props.text != null);
14267
- return vue.withDirectives(vue.createVNode(Tag, {
14295
+ return vue.withDirectives(vue.createVNode(Tag, vue.mergeProps({
14268
14296
  "class": ['v-card', {
14269
14297
  'v-card--disabled': props.disabled,
14270
14298
  'v-card--flat': props.flat,
@@ -14272,10 +14300,9 @@
14272
14300
  'v-card--link': isClickable.value
14273
14301
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
14274
14302
  "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
14275
- "href": link.href.value,
14276
14303
  "onClick": isClickable.value && link.navigate,
14277
14304
  "tabindex": props.disabled ? -1 : undefined
14278
- }, {
14305
+ }, link.linkProps), {
14279
14306
  default: () => [hasImage && vue.createVNode("div", {
14280
14307
  "key": "image",
14281
14308
  "class": "v-card__image"
@@ -17641,8 +17668,8 @@
17641
17668
  function toISO(adapter, value) {
17642
17669
  const date = adapter.toJsDate(value);
17643
17670
  const year = date.getFullYear();
17644
- const month = padStart$1(String(date.getMonth() + 1), 2, '0');
17645
- const day = padStart$1(String(date.getDate()), 2, '0');
17671
+ const month = padStart(String(date.getMonth() + 1), 2, '0');
17672
+ const day = padStart(String(date.getDate()), 2, '0');
17646
17673
  return `${year}-${month}-${day}`;
17647
17674
  }
17648
17675
  function parseISO(value) {
@@ -23170,7 +23197,6 @@
23170
23197
  type: String,
23171
23198
  required: true
23172
23199
  },
23173
- rootRef: null,
23174
23200
  rootMargin: String
23175
23201
  },
23176
23202
  emits: {
@@ -23183,14 +23209,15 @@
23183
23209
  const {
23184
23210
  intersectionRef,
23185
23211
  isIntersecting
23186
- } = useIntersectionObserver(entries => {}, props.rootMargin ? {
23187
- rootMargin: props.rootMargin
23188
- } : undefined);
23212
+ } = useIntersectionObserver();
23189
23213
  vue.watch(isIntersecting, async val => {
23190
23214
  emit('intersect', props.side, val);
23191
23215
  });
23192
23216
  useRender(() => vue.createVNode("div", {
23193
23217
  "class": "v-infinite-scroll-intersect",
23218
+ "style": {
23219
+ '--v-infinite-margin-size': props.rootMargin
23220
+ },
23194
23221
  "ref": intersectionRef
23195
23222
  }, [vue.createTextVNode("\xA0")]));
23196
23223
  return {};
@@ -23341,17 +23368,15 @@
23341
23368
  }, {
23342
23369
  default: () => [vue.createVNode("div", {
23343
23370
  "class": "v-infinite-scroll__side"
23344
- }, [renderSide('start', startStatus.value)]), rootEl.value && hasStartIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
23371
+ }, [renderSide('start', startStatus.value)]), hasStartIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
23345
23372
  "key": "start",
23346
23373
  "side": "start",
23347
23374
  "onIntersect": handleIntersect,
23348
- "rootRef": rootEl.value,
23349
23375
  "rootMargin": margin.value
23350
- }, null), slots.default?.(), rootEl.value && hasEndIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
23376
+ }, null), slots.default?.(), hasEndIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
23351
23377
  "key": "end",
23352
23378
  "side": "end",
23353
23379
  "onIntersect": handleIntersect,
23354
- "rootRef": rootEl.value,
23355
23380
  "rootMargin": margin.value
23356
23381
  }, null), vue.createVNode("div", {
23357
23382
  "class": "v-infinite-scroll__side"
@@ -28154,7 +28179,13 @@
28154
28179
  const model = vue.computed({
28155
28180
  get: () => _model.value,
28156
28181
  set(val) {
28157
- if (typeof val !== 'string') _model.value = val;
28182
+ if (val === null) {
28183
+ _model.value = null;
28184
+ return;
28185
+ }
28186
+ if (!isNaN(+val) && +val <= props.max && +val >= props.min) {
28187
+ _model.value = +val;
28188
+ }
28158
28189
  }
28159
28190
  });
28160
28191
  const vTextFieldRef = vue.ref();
@@ -28844,6 +28875,11 @@
28844
28875
  }
28845
28876
  });
28846
28877
 
28878
+ function pad(n) {
28879
+ let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
28880
+ return String(n).padStart(length, '0');
28881
+ }
28882
+
28847
28883
  // Types
28848
28884
 
28849
28885
  const makeVTimePickerClockProps = propsFactory({
@@ -29084,27 +29120,6 @@
29084
29120
  }
29085
29121
  });
29086
29122
 
29087
- // @ts-nocheck
29088
- /* eslint-disable */
29089
-
29090
- const padStart = (string, targetLength, padString) => {
29091
- targetLength = targetLength >> 0;
29092
- string = String(string);
29093
- padString = String(padString);
29094
- if (string.length > targetLength) {
29095
- return String(string);
29096
- }
29097
- targetLength = targetLength - string.length;
29098
- if (targetLength > padString.length) {
29099
- padString += padString.repeat(targetLength / padString.length);
29100
- }
29101
- return padString.slice(0, targetLength) + String(string);
29102
- };
29103
- var pad = (function (n) {
29104
- let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
29105
- return padStart(n, length, '0');
29106
- });
29107
-
29108
29123
  // @ts-nocheck
29109
29124
  /* eslint-disable */
29110
29125
  var SelectingTimes = /*#__PURE__*/function (SelectingTimes) {
@@ -29552,25 +29567,13 @@
29552
29567
  emit
29553
29568
  } = _ref;
29554
29569
  const link = useLink(props, attrs);
29555
- const rawId = vue.computed(() => props.value === undefined ? link.href.value : props.value);
29556
29570
  const vListItemRef = vue.ref();
29557
- const {
29558
- activate,
29559
- isActivated,
29560
- isGroupActivator,
29561
- root,
29562
- id
29563
- } = useNestedItem(rawId, false);
29564
- const isActivatableGroupActivator = vue.computed(() => root.activatable.value && isGroupActivator);
29571
+ const isActivatableGroupActivator = vue.computed(() => vListItemRef.value?.root.activatable.value && vListItemRef.value?.isGroupActivator);
29565
29572
  const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list || isActivatableGroupActivator.value));
29566
29573
  function activateItem(e) {
29567
- if (!isClickable.value || !isActivatableGroupActivator.value && isGroupActivator) return;
29568
- if (root.activatable.value) {
29569
- if (isActivatableGroupActivator.value) {
29570
- activate(!isActivated.value, e);
29571
- } else {
29572
- vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
29573
- }
29574
+ if (!isClickable.value || !isActivatableGroupActivator.value && vListItemRef.value?.isGroupActivator) return;
29575
+ if (vListItemRef.value?.root.activatable.value) {
29576
+ vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
29574
29577
  }
29575
29578
  }
29576
29579
  const visibleIds = vue.inject(VTreeviewSymbol, {
@@ -29579,11 +29582,13 @@
29579
29582
  useRender(() => {
29580
29583
  const listItemProps = omit(VListItem.filterProps(props), ['onClick']);
29581
29584
  const hasPrepend = slots.prepend || props.toggleIcon;
29582
- return vue.createVNode(VListItem, vue.mergeProps(listItemProps, {
29583
- "active": isActivated.value,
29585
+ return vue.createVNode(VListItem, vue.mergeProps({
29586
+ "ref": vListItemRef
29587
+ }, listItemProps, {
29588
+ "active": vListItemRef.value?.isActivated,
29584
29589
  "class": ['v-treeview-item', {
29585
29590
  'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,
29586
- 'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
29591
+ 'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(vListItemRef.value?.id)
29587
29592
  }, props.class],
29588
29593
  "ripple": false,
29589
29594
  "onClick": props.onClick ?? activateItem
@@ -29717,7 +29722,7 @@
29717
29722
  ...itemProps,
29718
29723
  ...activatorProps,
29719
29724
  value: itemProps?.value,
29720
- onToggleExpand: activatorProps.onClick,
29725
+ onToggleExpand: [() => checkChildren(item), activatorProps.onClick],
29721
29726
  onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : undefined
29722
29727
  };
29723
29728
  return vue.createVNode(VTreeviewItem, vue.mergeProps(listItemProps, {
@@ -29802,22 +29807,13 @@
29802
29807
  filteredItems
29803
29808
  } = useFilter(props, flatItems, search);
29804
29809
  const visibleIds = vue.computed(() => {
29805
- if (!search.value) {
29806
- return null;
29807
- }
29810
+ if (!search.value) return null;
29811
+ const getPath = vListRef.value?.getPath;
29812
+ if (!getPath) return null;
29808
29813
  return new Set(filteredItems.value.flatMap(item => {
29809
29814
  return [...getPath(item.props.value), ...getChildren(item.props.value)];
29810
29815
  }));
29811
29816
  });
29812
- function getPath(id) {
29813
- const path = [];
29814
- let parent = id;
29815
- while (parent != null) {
29816
- path.unshift(parent);
29817
- parent = vListRef.value?.parents.get(parent);
29818
- }
29819
- return path;
29820
- }
29821
29817
  function getChildren(id) {
29822
29818
  const arr = [];
29823
29819
  const queue = (vListRef.value?.children.get(id) ?? []).slice();
@@ -30218,7 +30214,7 @@
30218
30214
  const value = isObject(binding.value) ? binding.value : {};
30219
30215
 
30220
30216
  // Get the children from the props or directive value, or the element's children
30221
- const children = () => text ?? el.innerHTML;
30217
+ const children = () => text ?? el.textContent;
30222
30218
 
30223
30219
  // If vnode.ctx is the same as the instance, then we're bound to a plain element
30224
30220
  // and need to find the nearest parent component instance to inherit provides from
@@ -30276,7 +30272,7 @@
30276
30272
  const Tooltip = useDirectiveComponent(VTooltip, binding => {
30277
30273
  return {
30278
30274
  activator: 'parent',
30279
- location: binding.arg?.replace('-', ' ') ?? 'top',
30275
+ location: binding.arg?.replace('-', ' '),
30280
30276
  text: typeof binding.value === 'boolean' ? undefined : binding.value
30281
30277
  };
30282
30278
  });
@@ -30382,7 +30378,7 @@
30382
30378
  goTo
30383
30379
  };
30384
30380
  }
30385
- const version$1 = "3.7.0";
30381
+ const version$1 = "3.7.2";
30386
30382
  createVuetify$1.version = version$1;
30387
30383
 
30388
30384
  // Vue's inject() can only be used in setup
@@ -30635,7 +30631,7 @@
30635
30631
 
30636
30632
  /* eslint-disable local-rules/sort-imports */
30637
30633
 
30638
- const version = "3.7.0";
30634
+ const version = "3.7.2";
30639
30635
 
30640
30636
  /* eslint-disable local-rules/sort-imports */
30641
30637