@vuetify/nightly 3.7.4-next.2024-11-06 → 3.7.5-dev.2024-12-16

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 (262) hide show
  1. package/dist/json/attributes.json +2853 -2845
  2. package/dist/json/importMap-labs.json +20 -20
  3. package/dist/json/importMap.json +150 -150
  4. package/dist/json/tags.json +2 -0
  5. package/dist/json/web-types.json +5324 -5306
  6. package/dist/vuetify-labs.css +25135 -23418
  7. package/dist/vuetify-labs.d.ts +202 -196
  8. package/dist/vuetify-labs.esm.js +107 -106
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +106 -105
  11. package/dist/vuetify-labs.min.css +4 -3
  12. package/dist/vuetify.css +23838 -22118
  13. package/dist/vuetify.d.ts +191 -185
  14. package/dist/vuetify.esm.js +96 -96
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +95 -95
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +4 -3
  19. package/dist/vuetify.min.js +884 -889
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAlert/VAlert.css +215 -207
  22. package/lib/components/VApp/VApp.css +15 -16
  23. package/lib/components/VAppBar/VAppBar.css +12 -14
  24. package/lib/components/VAppBar/index.d.mts +6 -6
  25. package/lib/components/VAutocomplete/VAutocomplete.css +85 -86
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs +4 -4
  27. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  28. package/lib/components/VAutocomplete/index.d.mts +22 -22
  29. package/lib/components/VAvatar/VAvatar.css +106 -108
  30. package/lib/components/VBadge/VBadge.css +77 -73
  31. package/lib/components/VBadge/VBadge.sass +4 -0
  32. package/lib/components/VBanner/VBanner.css +166 -161
  33. package/lib/components/VBottomNavigation/VBottomNavigation.css +63 -64
  34. package/lib/components/VBottomSheet/VBottomSheet.css +31 -34
  35. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +57 -54
  36. package/lib/components/VBtn/VBtn.css +408 -385
  37. package/lib/components/VBtn/VBtn.sass +4 -4
  38. package/lib/components/VBtn/index.d.mts +7 -7
  39. package/lib/components/VBtnGroup/VBtnGroup.css +64 -63
  40. package/lib/components/VBtnToggle/VBtnToggle.css +14 -16
  41. package/lib/components/VBtnToggle/index.d.mts +9 -9
  42. package/lib/components/VCard/VCard.css +302 -294
  43. package/lib/components/VCarousel/VCarousel.css +65 -63
  44. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  45. package/lib/components/VCarousel/VCarousel.sass +1 -1
  46. package/lib/components/VCarousel/index.d.mts +9 -9
  47. package/lib/components/VCheckbox/VCheckbox.css +5 -7
  48. package/lib/components/VCheckbox/VCheckbox.mjs +3 -3
  49. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  50. package/lib/components/VChip/VChip.css +411 -378
  51. package/lib/components/VChip/VChip.mjs +18 -10
  52. package/lib/components/VChip/VChip.mjs.map +1 -1
  53. package/lib/components/VChip/index.d.mts +13 -8
  54. package/lib/components/VChipGroup/VChipGroup.css +18 -19
  55. package/lib/components/VChipGroup/VChipGroup.mjs +2 -0
  56. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  57. package/lib/components/VChipGroup/index.d.mts +20 -15
  58. package/lib/components/VCode/VCode.css +8 -10
  59. package/lib/components/VColorPicker/VColorPicker.css +22 -22
  60. package/lib/components/VColorPicker/VColorPickerCanvas.css +22 -24
  61. package/lib/components/VColorPicker/VColorPickerEdit.css +28 -29
  62. package/lib/components/VColorPicker/VColorPickerPreview.css +67 -69
  63. package/lib/components/VColorPicker/VColorPickerPreview.sass +2 -4
  64. package/lib/components/VColorPicker/VColorPickerSwatches.css +34 -34
  65. package/lib/components/VCombobox/VCombobox.css +85 -86
  66. package/lib/components/VCombobox/VCombobox.mjs +4 -4
  67. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  68. package/lib/components/VCombobox/index.d.mts +22 -22
  69. package/lib/components/VConfirmEdit/VConfirmEdit.mjs +9 -7
  70. package/lib/components/VConfirmEdit/VConfirmEdit.mjs.map +1 -1
  71. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs +1 -1
  72. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs.map +1 -1
  73. package/lib/components/VConfirmEdit/index.d.mts +3 -7
  74. package/lib/components/VCounter/VCounter.css +5 -7
  75. package/lib/components/VDataTable/VDataTable.css +186 -189
  76. package/lib/components/VDataTable/VDataTable.sass +10 -20
  77. package/lib/components/VDataTable/VDataTableFooter.css +31 -33
  78. package/lib/components/VDatePicker/VDatePicker.css +6 -8
  79. package/lib/components/VDatePicker/VDatePickerControls.css +56 -54
  80. package/lib/components/VDatePicker/VDatePickerHeader.css +60 -56
  81. package/lib/components/VDatePicker/VDatePickerHeader.mjs +2 -1
  82. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
  83. package/lib/components/VDatePicker/VDatePickerMonth.css +55 -51
  84. package/lib/components/VDatePicker/VDatePickerMonths.css +19 -20
  85. package/lib/components/VDatePicker/VDatePickerYears.css +15 -16
  86. package/lib/components/VDatePicker/index.d.mts +5 -5
  87. package/lib/components/VDialog/VDialog.css +95 -95
  88. package/lib/components/VDivider/VDivider.css +52 -52
  89. package/lib/components/VEmptyState/VEmptyState.css +67 -62
  90. package/lib/components/VExpansionPanel/VExpansionPanel.css +209 -203
  91. package/lib/components/VExpansionPanel/VExpansionPanel.sass +25 -27
  92. package/lib/components/VExpansionPanel/index.d.mts +7 -7
  93. package/lib/components/VFab/VFab.css +69 -74
  94. package/lib/components/VFab/VFab.sass +4 -5
  95. package/lib/components/VFab/index.d.mts +6 -6
  96. package/lib/components/VField/VField.css +579 -539
  97. package/lib/components/VField/VField.mjs +5 -4
  98. package/lib/components/VField/VField.mjs.map +1 -1
  99. package/lib/components/VFileInput/VFileInput.css +29 -31
  100. package/lib/components/VFooter/VFooter.css +36 -38
  101. package/lib/components/VGrid/VGrid.css +592 -565
  102. package/lib/components/VIcon/VIcon.css +52 -51
  103. package/lib/components/VImg/VImg.css +51 -50
  104. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +37 -36
  105. package/lib/components/VInput/VInput.css +142 -131
  106. package/lib/components/VInput/VInput.mjs +3 -3
  107. package/lib/components/VInput/VInput.mjs.map +1 -1
  108. package/lib/components/VItemGroup/VItemGroup.css +5 -7
  109. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  110. package/lib/components/VItemGroup/index.d.mts +9 -9
  111. package/lib/components/VKbd/VKbd.css +11 -13
  112. package/lib/components/VLabel/VLabel.css +15 -16
  113. package/lib/components/VLayout/VLayout.css +8 -10
  114. package/lib/components/VLayout/VLayoutItem.css +7 -8
  115. package/lib/components/VList/VList.css +108 -104
  116. package/lib/components/VList/VList.mjs +3 -2
  117. package/lib/components/VList/VList.mjs.map +1 -1
  118. package/lib/components/VList/VList.sass +1 -1
  119. package/lib/components/VList/VListItem.css +452 -440
  120. package/lib/components/VList/VListItem.mjs +3 -2
  121. package/lib/components/VList/VListItem.mjs.map +1 -1
  122. package/lib/components/VList/VListItem.sass +1 -2
  123. package/lib/components/VList/index.d.mts +10 -10
  124. package/lib/components/VLocaleProvider/VLocaleProvider.css +2 -4
  125. package/lib/components/VMain/VMain.css +30 -32
  126. package/lib/components/VMenu/VMenu.css +19 -21
  127. package/lib/components/VMenu/VMenu.mjs +3 -3
  128. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  129. package/lib/components/VMenu/index.d.mts +6 -6
  130. package/lib/components/VMessages/VMessages.css +15 -17
  131. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +108 -106
  132. package/lib/components/VOtpInput/VOtpInput.css +58 -56
  133. package/lib/components/VOverlay/VOverlay.css +63 -60
  134. package/lib/components/VOverlay/VOverlay.sass +13 -14
  135. package/lib/components/VPagination/VPagination.css +8 -10
  136. package/lib/components/VParallax/VParallax.css +6 -8
  137. package/lib/components/VProgressCircular/VProgressCircular.css +101 -95
  138. package/lib/components/VProgressLinear/VProgressLinear.css +222 -209
  139. package/lib/components/VRadioGroup/VRadioGroup.css +12 -14
  140. package/lib/components/VRadioGroup/VRadioGroup.mjs +3 -3
  141. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  142. package/lib/components/VRating/VRating.css +53 -52
  143. package/lib/components/VRating/VRating.mjs +4 -3
  144. package/lib/components/VRating/VRating.mjs.map +1 -1
  145. package/lib/components/VResponsive/VResponsive.css +26 -25
  146. package/lib/components/VSelect/VSelect.css +52 -54
  147. package/lib/components/VSelect/VSelect.mjs +3 -3
  148. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  149. package/lib/components/VSelect/index.d.mts +22 -22
  150. package/lib/components/VSelectionControl/VSelectionControl.css +102 -100
  151. package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -3
  152. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  153. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +8 -10
  154. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -3
  155. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  156. package/lib/components/VSheet/VSheet.css +36 -38
  157. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +224 -225
  158. package/lib/components/VSlideGroup/VSlideGroup.css +55 -53
  159. package/lib/components/VSlideGroup/index.d.mts +10 -10
  160. package/lib/components/VSlider/VSlider.css +57 -53
  161. package/lib/components/VSlider/VSliderThumb.css +153 -142
  162. package/lib/components/VSlider/VSliderTrack.css +174 -155
  163. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  164. package/lib/components/VSparkline/VBarline.mjs +3 -3
  165. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  166. package/lib/components/VSparkline/VTrendline.mjs +3 -3
  167. package/lib/components/VSparkline/VTrendline.mjs.map +1 -1
  168. package/lib/components/VSpeedDial/VSpeedDial.css +41 -43
  169. package/lib/components/VStepper/VStepper.css +56 -55
  170. package/lib/components/VStepper/VStepper.mjs +5 -4
  171. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  172. package/lib/components/VStepper/VStepperItem.css +115 -112
  173. package/lib/components/VStepper/VStepperItem.mjs +5 -4
  174. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  175. package/lib/components/VStepper/index.d.mts +51 -45
  176. package/lib/components/VSwitch/VSwitch.css +139 -129
  177. package/lib/components/VSwitch/VSwitch.mjs +3 -3
  178. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  179. package/lib/components/VSystemBar/VSystemBar.css +43 -45
  180. package/lib/components/VTable/VTable.css +141 -140
  181. package/lib/components/VTable/VTable.sass +2 -4
  182. package/lib/components/VTabs/VTab.css +29 -30
  183. package/lib/components/VTabs/VTabs.css +65 -59
  184. package/lib/components/VTabs/index.d.mts +7 -7
  185. package/lib/components/VTextField/VTextField.css +68 -65
  186. package/lib/components/VTextarea/VTextarea.css +39 -47
  187. package/lib/components/VTextarea/VTextarea.sass +2 -4
  188. package/lib/components/VThemeProvider/VThemeProvider.css +3 -5
  189. package/lib/components/VTimeline/VTimeline.css +418 -379
  190. package/lib/components/VToolbar/VToolbar.css +143 -136
  191. package/lib/components/VTooltip/VTooltip.css +21 -25
  192. package/lib/components/VTooltip/VTooltip.mjs +3 -3
  193. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  194. package/lib/components/VTooltip/VTooltip.sass +6 -8
  195. package/lib/components/VVirtualScroll/VVirtualScroll.css +9 -11
  196. package/lib/components/VWindow/VWindow.css +70 -73
  197. package/lib/components/VWindow/index.d.mts +7 -7
  198. package/lib/components/index.d.mts +138 -132
  199. package/lib/composables/form.mjs +7 -2
  200. package/lib/composables/form.mjs.map +1 -1
  201. package/lib/composables/group.mjs +3 -3
  202. package/lib/composables/group.mjs.map +1 -1
  203. package/lib/composables/layout.mjs +3 -3
  204. package/lib/composables/layout.mjs.map +1 -1
  205. package/lib/composables/nested/nested.mjs +2 -2
  206. package/lib/composables/nested/nested.mjs.map +1 -1
  207. package/lib/composables/theme.mjs +4 -4
  208. package/lib/composables/theme.mjs.map +1 -1
  209. package/lib/composables/validation.mjs +13 -15
  210. package/lib/composables/validation.mjs.map +1 -1
  211. package/lib/directives/ripple/VRipple.css +36 -38
  212. package/lib/entry-bundler.mjs +1 -1
  213. package/lib/entry-bundler.mjs.map +1 -1
  214. package/lib/framework.mjs +2 -3
  215. package/lib/framework.mjs.map +1 -1
  216. package/lib/index.d.mts +53 -53
  217. package/lib/labs/VCalendar/VCalendar.css +225 -219
  218. package/lib/labs/VCalendar/VCalendarDay.css +32 -33
  219. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  220. package/lib/labs/VCalendar/VCalendarInterval.css +42 -43
  221. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +5 -7
  222. package/lib/labs/VCalendar/VCalendarMonthDay.css +58 -61
  223. package/lib/labs/VCalendar/VCalendarMonthDay.sass +2 -3
  224. package/lib/labs/VDateInput/VDateInput.mjs +1 -1
  225. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  226. package/lib/labs/VNumberInput/VNumberInput.css +38 -40
  227. package/lib/labs/VNumberInput/VNumberInput.mjs +7 -5
  228. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  229. package/lib/labs/VPicker/VPicker.css +57 -53
  230. package/lib/labs/VStepperVertical/index.d.mts +44 -44
  231. package/lib/labs/VTimePicker/VTimePicker.css +7 -9
  232. package/lib/labs/VTimePicker/VTimePickerClock.css +129 -126
  233. package/lib/labs/VTimePicker/VTimePickerControls.css +103 -102
  234. package/lib/labs/VTreeview/VTreeviewItem.css +15 -17
  235. package/lib/labs/VTreeview/VTreeviewItem.mjs +3 -4
  236. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  237. package/lib/labs/VTreeview/VTreeviewItem.sass +1 -2
  238. package/lib/labs/VTreeview/index.d.mts +20 -20
  239. package/lib/labs/components.d.mts +64 -64
  240. package/lib/locale/fr.mjs +1 -1
  241. package/lib/locale/fr.mjs.map +1 -1
  242. package/lib/styles/elements/_global.sass +1 -1
  243. package/lib/styles/generic/_colors.scss +3 -3
  244. package/lib/styles/generic/_layers.scss +1 -13
  245. package/lib/styles/generic/_transitions.scss +32 -32
  246. package/lib/styles/main.css +16139 -14666
  247. package/lib/styles/settings/_utilities.scss +5 -0
  248. package/lib/styles/settings/_variables.scss +2 -1
  249. package/lib/styles/tools/_bootable.sass +3 -0
  250. package/lib/styles/tools/_border.sass +4 -4
  251. package/lib/styles/tools/_display.sass +10 -0
  252. package/lib/styles/tools/_elevation.sass +2 -2
  253. package/lib/styles/tools/_index.sass +2 -0
  254. package/lib/styles/tools/_layer.scss +2 -4
  255. package/lib/styles/tools/_position.sass +2 -2
  256. package/lib/styles/tools/_radius.sass +10 -0
  257. package/lib/styles/tools/_rounded.sass +2 -2
  258. package/lib/styles/tools/_utilities.sass +5 -1
  259. package/lib/styles/utilities/_elevation.scss +1 -1
  260. package/lib/util/getCurrentInstance.mjs +1 -15
  261. package/lib/util/getCurrentInstance.mjs.map +1 -1
  262. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.4-next.2024-11-06
2
+ * Vuetify v3.7.5-dev.2024-12-16
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -1257,9 +1257,6 @@
1257
1257
  }
1258
1258
 
1259
1259
  // Utilities
1260
-
1261
- // Types
1262
-
1263
1260
  function getCurrentInstance(name, message) {
1264
1261
  const vm = vue.getCurrentInstance();
1265
1262
  if (!vm) {
@@ -1272,20 +1269,6 @@
1272
1269
  const vm = getCurrentInstance(name).type;
1273
1270
  return toKebabCase(vm?.aliasName || vm?.name);
1274
1271
  }
1275
- let _uid = 0;
1276
- let _map = new WeakMap();
1277
- function getUid() {
1278
- const vm = getCurrentInstance('getUid');
1279
- if (_map.has(vm)) return _map.get(vm);else {
1280
- const uid = _uid++;
1281
- _map.set(vm, uid);
1282
- return uid;
1283
- }
1284
- }
1285
- getUid.reset = () => {
1286
- _uid = 0;
1287
- _map = new WeakMap();
1288
- };
1289
1272
 
1290
1273
  // Utilities
1291
1274
 
@@ -1655,7 +1638,7 @@
1655
1638
  function useLayoutItem(options) {
1656
1639
  const layout = vue.inject(VuetifyLayoutKey);
1657
1640
  if (!layout) throw new Error('[Vuetify] Could not find injected layout');
1658
- const id = options.id ?? `layout-item-${getUid()}`;
1641
+ const id = options.id ?? `layout-item-${vue.useId()}`;
1659
1642
  const vm = getCurrentInstance('useLayoutItem');
1660
1643
  vue.provide(VuetifyLayoutItemKey, {
1661
1644
  id
@@ -2431,15 +2414,15 @@
2431
2414
  const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
2432
2415
  for (const key of colors) {
2433
2416
  if (/^on-[a-z]/.test(key)) {
2434
- createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key}))`]);
2417
+ createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
2435
2418
  } else {
2436
- createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--v-theme-${key}))`, `color: rgb(var(--v-theme-on-${key}))`]);
2437
- createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key}))`]);
2419
+ createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`]);
2420
+ createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
2438
2421
  createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]);
2439
2422
  }
2440
2423
  }
2441
2424
  lines.push(...bgLines, ...fgLines);
2442
- return '@layer vuetify.theme {\n' + lines.map(v => ` ${v}`).join('') + '\n}';
2425
+ return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
2443
2426
  });
2444
2427
  function getHead() {
2445
2428
  return {
@@ -4157,7 +4140,7 @@
4157
4140
  if (!vm) {
4158
4141
  throw new Error('[Vuetify] useGroupItem composable must be used inside a component setup function');
4159
4142
  }
4160
- const id = getUid();
4143
+ const id = vue.useId();
4161
4144
  vue.provide(Symbol.for(`${injectKey.description}:id`), id);
4162
4145
  const group = vue.inject(injectKey, null);
4163
4146
  if (!group) {
@@ -6136,7 +6119,7 @@
6136
6119
  slots
6137
6120
  } = _ref;
6138
6121
  const modelValue = useProxiedModel(props, 'modelValue');
6139
- const uid = getUid();
6122
+ const uid = vue.useId();
6140
6123
  const id = vue.computed(() => props.id || `v-selection-control-group-${uid}`);
6141
6124
  const name = vue.computed(() => props.name || id.value);
6142
6125
  const updateHandlers = new Set();
@@ -6273,7 +6256,7 @@
6273
6256
  backgroundColorStyles,
6274
6257
  trueValue
6275
6258
  } = useSelectionControl(props);
6276
- const uid = getUid();
6259
+ const uid = vue.useId();
6277
6260
  const isFocused = vue.shallowRef(false);
6278
6261
  const isFocusVisible = vue.shallowRef(false);
6279
6262
  const input = vue.ref();
@@ -6674,8 +6657,13 @@
6674
6657
  resetValidation
6675
6658
  };
6676
6659
  }
6677
- function useForm() {
6678
- return vue.inject(FormKey, null);
6660
+ function useForm(props) {
6661
+ const form = vue.inject(FormKey, null);
6662
+ return {
6663
+ ...form,
6664
+ isReadonly: vue.computed(() => !!(props?.readonly ?? form?.isReadonly.value)),
6665
+ isDisabled: vue.computed(() => !!(props?.disabled ?? form?.isDisabled.value))
6666
+ };
6679
6667
  }
6680
6668
 
6681
6669
  // Composables
@@ -6713,20 +6701,18 @@
6713
6701
  }, 'validation');
6714
6702
  function useValidation(props) {
6715
6703
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
6716
- let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getUid();
6704
+ let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : vue.useId();
6717
6705
  const model = useProxiedModel(props, 'modelValue');
6718
6706
  const validationModel = vue.computed(() => props.validationValue === undefined ? model.value : props.validationValue);
6719
- const form = useForm();
6707
+ const form = useForm(props);
6720
6708
  const internalErrorMessages = vue.ref([]);
6721
6709
  const isPristine = vue.shallowRef(true);
6722
6710
  const isDirty = vue.computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
6723
- const isDisabled = vue.computed(() => !!(props.disabled ?? form?.isDisabled.value));
6724
- const isReadonly = vue.computed(() => !!(props.readonly ?? form?.isReadonly.value));
6725
6711
  const errorMessages = vue.computed(() => {
6726
6712
  return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;
6727
6713
  });
6728
6714
  const validateOn = vue.computed(() => {
6729
- let value = (props.validateOn ?? form?.validateOn.value) || 'input';
6715
+ let value = (props.validateOn ?? form.validateOn?.value) || 'input';
6730
6716
  if (value === 'lazy') value = 'input lazy';
6731
6717
  if (value === 'eager') value = 'input eager';
6732
6718
  const set = new Set(value?.split(' ') ?? []);
@@ -6752,14 +6738,14 @@
6752
6738
  return {
6753
6739
  [`${name}--error`]: isValid.value === false,
6754
6740
  [`${name}--dirty`]: isDirty.value,
6755
- [`${name}--disabled`]: isDisabled.value,
6756
- [`${name}--readonly`]: isReadonly.value
6741
+ [`${name}--disabled`]: form.isDisabled.value,
6742
+ [`${name}--readonly`]: form.isReadonly.value
6757
6743
  };
6758
6744
  });
6759
6745
  const vm = getCurrentInstance('validation');
6760
6746
  const uid = vue.computed(() => props.name ?? vue.unref(id));
6761
6747
  vue.onBeforeMount(() => {
6762
- form?.register({
6748
+ form.register?.({
6763
6749
  id: uid.value,
6764
6750
  vm,
6765
6751
  validate,
@@ -6768,13 +6754,13 @@
6768
6754
  });
6769
6755
  });
6770
6756
  vue.onBeforeUnmount(() => {
6771
- form?.unregister(uid.value);
6757
+ form.unregister?.(uid.value);
6772
6758
  });
6773
6759
  vue.onMounted(async () => {
6774
6760
  if (!validateOn.value.lazy) {
6775
6761
  await validate(!validateOn.value.eager);
6776
6762
  }
6777
- form?.update(uid.value, isValid.value, errorMessages.value);
6763
+ form.update?.(uid.value, isValid.value, errorMessages.value);
6778
6764
  });
6779
6765
  useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {
6780
6766
  vue.watch(validationModel, () => {
@@ -6794,7 +6780,7 @@
6794
6780
  });
6795
6781
  });
6796
6782
  vue.watch([isValid, errorMessages], () => {
6797
- form?.update(uid.value, isValid.value, errorMessages.value);
6783
+ form.update?.(uid.value, isValid.value, errorMessages.value);
6798
6784
  });
6799
6785
  async function reset() {
6800
6786
  model.value = null;
@@ -6835,8 +6821,8 @@
6835
6821
  return {
6836
6822
  errorMessages,
6837
6823
  isDirty,
6838
- isDisabled,
6839
- isReadonly,
6824
+ isDisabled: form.isDisabled,
6825
+ isReadonly: form.isReadonly,
6840
6826
  isPristine,
6841
6827
  isValid,
6842
6828
  isValidating,
@@ -6907,7 +6893,7 @@
6907
6893
  const {
6908
6894
  InputIcon
6909
6895
  } = useInputIcon(props);
6910
- const uid = getUid();
6896
+ const uid = vue.useId();
6911
6897
  const id = vue.computed(() => props.id || `input-${uid}`);
6912
6898
  const messagesId = vue.computed(() => `${id.value}-messages`);
6913
6899
  const {
@@ -7015,7 +7001,7 @@
7015
7001
  focus,
7016
7002
  blur
7017
7003
  } = useFocus(props);
7018
- const uid = getUid();
7004
+ const uid = vue.useId();
7019
7005
  const id = vue.computed(() => props.id || `checkbox-${uid}`);
7020
7006
  useRender(() => {
7021
7007
  const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
@@ -7755,6 +7741,7 @@
7755
7741
 
7756
7742
  const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group');
7757
7743
  const makeVChipGroupProps = propsFactory({
7744
+ baseColor: String,
7758
7745
  column: Boolean,
7759
7746
  filter: Boolean,
7760
7747
  valueComparator: {
@@ -7794,6 +7781,7 @@
7794
7781
  } = useGroup(props, VChipGroupSymbol);
7795
7782
  provideDefaults({
7796
7783
  VChip: {
7784
+ baseColor: vue.toRef(props, 'baseColor'),
7797
7785
  color: vue.toRef(props, 'color'),
7798
7786
  disabled: vue.toRef(props, 'disabled'),
7799
7787
  filter: vue.toRef(props, 'filter'),
@@ -7827,6 +7815,7 @@
7827
7815
  activeClass: String,
7828
7816
  appendAvatar: String,
7829
7817
  appendIcon: IconValue,
7818
+ baseColor: String,
7830
7819
  closable: Boolean,
7831
7820
  closeIcon: {
7832
7821
  type: IconValue,
@@ -7839,7 +7828,7 @@
7839
7828
  draggable: Boolean,
7840
7829
  filter: Boolean,
7841
7830
  filterIcon: {
7842
- type: String,
7831
+ type: IconValue,
7843
7832
  default: '$complete'
7844
7833
  },
7845
7834
  label: Boolean,
@@ -7901,11 +7890,6 @@
7901
7890
  const {
7902
7891
  borderClasses
7903
7892
  } = useBorder(props);
7904
- const {
7905
- colorClasses,
7906
- colorStyles,
7907
- variantClasses
7908
- } = useVariant(props);
7909
7893
  const {
7910
7894
  densityClasses
7911
7895
  } = useDensity(props);
@@ -7935,6 +7919,18 @@
7935
7919
  emit('click:close', e);
7936
7920
  }
7937
7921
  }));
7922
+ const variantProps = vue.computed(() => {
7923
+ const showColor = !group || group.isSelected.value;
7924
+ return {
7925
+ color: showColor ? props.color ?? props.baseColor : props.baseColor,
7926
+ variant: props.variant
7927
+ };
7928
+ });
7929
+ const {
7930
+ colorClasses,
7931
+ colorStyles,
7932
+ variantClasses
7933
+ } = useVariant(variantProps);
7938
7934
  function onClick(e) {
7939
7935
  emit('click', e);
7940
7936
  if (!isClickable.value) return;
@@ -7955,16 +7951,16 @@
7955
7951
  const hasFilter = !!(slots.filter || props.filter) && group;
7956
7952
  const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);
7957
7953
  const hasPrepend = !!(hasPrependMedia || slots.prepend);
7958
- const hasColor = !group || group.isSelected.value;
7959
7954
  return isActive.value && vue.withDirectives(vue.createVNode(Tag, vue.mergeProps({
7960
7955
  "class": ['v-chip', {
7961
7956
  'v-chip--disabled': props.disabled,
7962
7957
  'v-chip--label': props.label,
7963
7958
  'v-chip--link': isClickable.value,
7964
7959
  'v-chip--filter': hasFilter,
7965
- 'v-chip--pill': props.pill
7966
- }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
7967
- "style": [hasColor ? colorStyles.value : undefined, props.style],
7960
+ 'v-chip--pill': props.pill,
7961
+ [`${props.activeClass}`]: props.activeClass && link.isActive?.value
7962
+ }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
7963
+ "style": [colorStyles.value, props.style],
7968
7964
  "disabled": props.disabled || undefined,
7969
7965
  "draggable": props.draggable,
7970
7966
  "tabindex": isClickable.value ? 0 : undefined,
@@ -8693,7 +8689,7 @@
8693
8689
  };
8694
8690
  const useNestedItem = (id, isGroup) => {
8695
8691
  const parent = vue.inject(VNestedSymbol, emptyNested);
8696
- const uidSymbol = Symbol(getUid());
8692
+ const uidSymbol = Symbol('nested item');
8697
8693
  const computedId = vue.computed(() => id.value !== undefined ? id.value : uidSymbol);
8698
8694
  const item = {
8699
8695
  ...parent,
@@ -8936,7 +8932,8 @@
8936
8932
  const list = useList();
8937
8933
  const isActive = vue.computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
8938
8934
  const isLink = vue.computed(() => props.link !== false && link.isLink.value);
8939
- const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || !!list && (root.selectable.value || root.activatable.value || props.value != null)));
8935
+ const isSelectable = vue.computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
8936
+ const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
8940
8937
  const roundedProps = vue.computed(() => props.rounded || props.nav);
8941
8938
  const color = vue.computed(() => props.color ?? props.activeColor);
8942
8939
  const variantProps = vue.computed(() => ({
@@ -9027,7 +9024,7 @@
9027
9024
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
9028
9025
  "style": [colorStyles.value, dimensionStyles.value, props.style],
9029
9026
  "tabindex": isClickable.value ? list ? -2 : 0 : undefined,
9030
- "aria-selected": root.activatable.value ? isActivated.value : isSelected.value,
9027
+ "aria-selected": isSelectable.value ? root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value : undefined,
9031
9028
  "onClick": onClick,
9032
9029
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
9033
9030
  }, link.linkProps), {
@@ -9444,8 +9441,8 @@
9444
9441
  activeClass: String,
9445
9442
  bgColor: String,
9446
9443
  disabled: Boolean,
9447
- expandIcon: String,
9448
- collapseIcon: String,
9444
+ expandIcon: IconValue,
9445
+ collapseIcon: IconValue,
9449
9446
  lines: {
9450
9447
  type: [Boolean, String],
9451
9448
  default: 'one'
@@ -11194,7 +11191,7 @@
11194
11191
  const {
11195
11192
  isRtl
11196
11193
  } = useRtl();
11197
- const uid = getUid();
11194
+ const uid = vue.useId();
11198
11195
  const id = vue.computed(() => props.id || `v-menu-${uid}`);
11199
11196
  const overlay = vue.ref();
11200
11197
  const parent = vue.inject(VMenuSymbol, null);
@@ -11490,7 +11487,7 @@
11490
11487
  } = useRtl();
11491
11488
  const isActive = vue.computed(() => props.dirty || props.active);
11492
11489
  const hasLabel = vue.computed(() => !props.singleLine && !!(props.label || slots.label));
11493
- const uid = getUid();
11490
+ const uid = vue.useId();
11494
11491
  const id = vue.computed(() => props.id || `input-${uid}`);
11495
11492
  const messagesId = vue.computed(() => `${id.value}-messages`);
11496
11493
  const labelRef = vue.ref();
@@ -11619,7 +11616,8 @@
11619
11616
  "style": textColorStyles.value
11620
11617
  }, {
11621
11618
  default: () => [label()]
11622
- }), vue.createVNode(VFieldLabel, {
11619
+ }), hasLabel.value && vue.createVNode(VFieldLabel, {
11620
+ "key": "label",
11623
11621
  "ref": labelRef,
11624
11622
  "for": id.value
11625
11623
  }, {
@@ -12445,7 +12443,7 @@
12445
12443
  const counterValue = vue.computed(() => {
12446
12444
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
12447
12445
  });
12448
- const form = useForm();
12446
+ const form = useForm(props);
12449
12447
  const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
12450
12448
  const isFocused = vue.shallowRef(false);
12451
12449
  const label = vue.computed(() => menu.value ? props.closeText : props.openText);
@@ -12457,7 +12455,7 @@
12457
12455
  }
12458
12456
  return items.value;
12459
12457
  });
12460
- const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
12458
+ const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
12461
12459
  const computedMenuProps = vue.computed(() => {
12462
12460
  return {
12463
12461
  ...props.menuProps,
@@ -12484,7 +12482,7 @@
12484
12482
  }
12485
12483
  }
12486
12484
  function onKeydown(e) {
12487
- if (!e.key || props.readonly || form?.isReadonly.value) return;
12485
+ if (!e.key || form.isReadonly.value) return;
12488
12486
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
12489
12487
  e.preventDefault();
12490
12488
  }
@@ -12962,7 +12960,7 @@
12962
12960
  const counterValue = vue.computed(() => {
12963
12961
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
12964
12962
  });
12965
- const form = useForm();
12963
+ const form = useForm(props);
12966
12964
  const {
12967
12965
  filteredItems,
12968
12966
  getMatches
@@ -12980,7 +12978,7 @@
12980
12978
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
12981
12979
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
12982
12980
  });
12983
- const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
12981
+ const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
12984
12982
  const listRef = vue.ref();
12985
12983
  const listEvents = useScrolling(listRef, vTextFieldRef);
12986
12984
  function onClear(e) {
@@ -13007,7 +13005,7 @@
13007
13005
  }
13008
13006
  }
13009
13007
  function onKeydown(e) {
13010
- if (props.readonly || form?.isReadonly.value) return;
13008
+ if (form.isReadonly.value) return;
13011
13009
  const selectionStart = vTextFieldRef.value.selectionStart;
13012
13010
  const length = model.value.length;
13013
13011
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -13184,7 +13182,7 @@
13184
13182
  'v-autocomplete--selecting-index': selectionIndex.value > -1
13185
13183
  }, props.class],
13186
13184
  "style": props.style,
13187
- "readonly": props.readonly,
13185
+ "readonly": form.isReadonly.value,
13188
13186
  "placeholder": isDirty ? undefined : props.placeholder,
13189
13187
  "onClick:clear": onClear,
13190
13188
  "onMousedown:control": onMousedownControl,
@@ -16803,7 +16801,7 @@
16803
16801
  const transformed = transformOut(v);
16804
16802
  return props.multiple ? transformed : transformed[0] ?? null;
16805
16803
  });
16806
- const form = useForm();
16804
+ const form = useForm(props);
16807
16805
  const hasChips = vue.computed(() => !!(props.chips || slots.chip));
16808
16806
  const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
16809
16807
  const _search = vue.shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
@@ -16863,7 +16861,7 @@
16863
16861
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
16864
16862
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
16865
16863
  });
16866
- const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
16864
+ const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
16867
16865
  const listRef = vue.ref();
16868
16866
  const listEvents = useScrolling(listRef, vTextFieldRef);
16869
16867
  function onClear(e) {
@@ -16891,7 +16889,7 @@
16891
16889
  }
16892
16890
  // eslint-disable-next-line complexity
16893
16891
  function onKeydown(e) {
16894
- if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
16892
+ if (isComposingIgnoreKey(e) || form.isReadonly.value) return;
16895
16893
  const selectionStart = vTextFieldRef.value.selectionStart;
16896
16894
  const length = model.value.length;
16897
16895
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -17063,7 +17061,7 @@
17063
17061
  [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
17064
17062
  }, props.class],
17065
17063
  "style": props.style,
17066
- "readonly": props.readonly,
17064
+ "readonly": form.isReadonly.value,
17067
17065
  "placeholder": isDirty ? undefined : props.placeholder,
17068
17066
  "onClick:clear": onClear,
17069
17067
  "onMousedown:control": onMousedownControl,
@@ -18107,21 +18105,23 @@
18107
18105
  internalModel.value = structuredClone(vue.toRaw(model.value));
18108
18106
  emit('cancel');
18109
18107
  }
18110
- let actionsUsed = false;
18111
- useRender(() => {
18112
- const actions = vue.createVNode(vue.Fragment, null, [vue.createVNode(VBtn, {
18108
+ function actions(actionsProps) {
18109
+ return vue.createVNode(vue.Fragment, null, [vue.createVNode(VBtn, vue.mergeProps({
18113
18110
  "disabled": isPristine.value,
18114
18111
  "variant": "text",
18115
18112
  "color": props.color,
18116
18113
  "onClick": cancel,
18117
18114
  "text": t(props.cancelText)
18118
- }, null), vue.createVNode(VBtn, {
18115
+ }, actionsProps), null), vue.createVNode(VBtn, vue.mergeProps({
18119
18116
  "disabled": isPristine.value,
18120
18117
  "variant": "text",
18121
18118
  "color": props.color,
18122
18119
  "onClick": save,
18123
18120
  "text": t(props.okText)
18124
- }, null)]);
18121
+ }, actionsProps), null)]);
18122
+ }
18123
+ let actionsUsed = false;
18124
+ useRender(() => {
18125
18125
  return vue.createVNode(vue.Fragment, null, [slots.default?.({
18126
18126
  model: internalModel,
18127
18127
  save,
@@ -18131,7 +18131,7 @@
18131
18131
  actionsUsed = true;
18132
18132
  return actions;
18133
18133
  }
18134
- }), !actionsUsed && actions]);
18134
+ }), !actionsUsed && actions()]);
18135
18135
  });
18136
18136
  return {
18137
18137
  save,
@@ -21421,7 +21421,7 @@
21421
21421
  // Types
21422
21422
 
21423
21423
  const makeVDatePickerHeaderProps = propsFactory({
21424
- appendIcon: String,
21424
+ appendIcon: IconValue,
21425
21425
  color: String,
21426
21426
  header: String,
21427
21427
  transition: String,
@@ -24640,7 +24640,7 @@
24640
24640
  attrs,
24641
24641
  slots
24642
24642
  } = _ref;
24643
- const uid = getUid();
24643
+ const uid = vue.useId();
24644
24644
  const id = vue.computed(() => props.id || `radio-group-${uid}`);
24645
24645
  const model = useProxiedModel(props, 'modelValue');
24646
24646
  useRender(() => {
@@ -25003,7 +25003,8 @@
25003
25003
  onClick
25004
25004
  };
25005
25005
  }));
25006
- const name = vue.computed(() => props.name ?? `v-rating-${getUid()}`);
25006
+ const uid = vue.useId();
25007
+ const name = vue.computed(() => props.name ?? `v-rating-${uid}`);
25007
25008
  function VRatingItem(_ref2) {
25008
25009
  let {
25009
25010
  value,
@@ -25542,7 +25543,7 @@
25542
25543
  let {
25543
25544
  slots
25544
25545
  } = _ref;
25545
- const uid = getUid();
25546
+ const uid = vue.useId();
25546
25547
  const id = vue.computed(() => props.id || `barline-${uid}`);
25547
25548
  const autoDrawDuration = vue.computed(() => Number(props.autoDrawDuration) || 500);
25548
25549
  const hasLabels = vue.computed(() => {
@@ -25740,7 +25741,7 @@
25740
25741
  let {
25741
25742
  slots
25742
25743
  } = _ref;
25743
- const uid = getUid();
25744
+ const uid = vue.useId();
25744
25745
  const id = vue.computed(() => props.id || `trendline-${uid}`);
25745
25746
  const autoDrawDuration = vue.computed(() => Number(props.autoDrawDuration) || (props.fill ? 500 : 2000));
25746
25747
  const lastLength = vue.ref(0);
@@ -26077,20 +26078,20 @@
26077
26078
  subtitle: String,
26078
26079
  complete: Boolean,
26079
26080
  completeIcon: {
26080
- type: String,
26081
+ type: IconValue,
26081
26082
  default: '$complete'
26082
26083
  },
26083
26084
  editable: Boolean,
26084
26085
  editIcon: {
26085
- type: String,
26086
+ type: IconValue,
26086
26087
  default: '$edit'
26087
26088
  },
26088
26089
  error: Boolean,
26089
26090
  errorIcon: {
26090
- type: String,
26091
+ type: IconValue,
26091
26092
  default: '$error'
26092
26093
  },
26093
- icon: String,
26094
+ icon: IconValue,
26094
26095
  ripple: {
26095
26096
  type: [Boolean, Object],
26096
26097
  default: true
@@ -26251,10 +26252,10 @@
26251
26252
  const makeStepperProps = propsFactory({
26252
26253
  altLabels: Boolean,
26253
26254
  bgColor: String,
26254
- completeIcon: String,
26255
- editIcon: String,
26255
+ completeIcon: IconValue,
26256
+ editIcon: IconValue,
26256
26257
  editable: Boolean,
26257
- errorIcon: String,
26258
+ errorIcon: IconValue,
26258
26259
  hideActions: Boolean,
26259
26260
  items: {
26260
26261
  type: Array,
@@ -26444,7 +26445,7 @@
26444
26445
  const loaderColor = vue.computed(() => {
26445
26446
  return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
26446
26447
  });
26447
- const uid = getUid();
26448
+ const uid = vue.useId();
26448
26449
  const id = vue.computed(() => props.id || `switch-${uid}`);
26449
26450
  function onChange() {
26450
26451
  if (indeterminate.value) {
@@ -27489,7 +27490,7 @@
27489
27490
  const {
27490
27491
  scopeId
27491
27492
  } = useScopeId();
27492
- const uid = getUid();
27493
+ const uid = vue.useId();
27493
27494
  const id = vue.computed(() => props.id || `v-tooltip-${uid}`);
27494
27495
  const overlay = vue.ref();
27495
27496
  const location = vue.computed(() => {
@@ -28152,7 +28153,7 @@
28152
28153
  },
28153
28154
  "onMousedown": e => e.preventDefault()
28154
28155
  }), {
28155
- actions: !props.hideActions ? () => actions : undefined
28156
+ actions: !props.hideActions ? actions : undefined
28156
28157
  });
28157
28158
  }
28158
28159
  })]
@@ -28217,8 +28218,8 @@
28217
28218
  const vTextFieldRef = vue.ref();
28218
28219
  const stepDecimals = vue.computed(() => getDecimals(props.step));
28219
28220
  const modelDecimals = vue.computed(() => typeof model.value === 'number' ? getDecimals(model.value) : 0);
28220
- const form = useForm();
28221
- const controlsDisabled = vue.computed(() => props.disabled || props.readonly || form?.isReadonly.value);
28221
+ const form = useForm(props);
28222
+ const controlsDisabled = vue.computed(() => form.isDisabled.value || form.isReadonly.value);
28222
28223
  const canIncrease = vue.computed(() => {
28223
28224
  if (controlsDisabled.value) return false;
28224
28225
  return (model.value ?? 0) + props.step <= props.max;
@@ -28241,7 +28242,7 @@
28241
28242
  click: onClickDown
28242
28243
  }));
28243
28244
  vue.onMounted(() => {
28244
- if (!props.readonly && !props.disabled) {
28245
+ if (!controlsDisabled.value) {
28245
28246
  clampModel();
28246
28247
  }
28247
28248
  });
@@ -28317,7 +28318,8 @@
28317
28318
  "flat": true,
28318
28319
  "key": "increment-btn",
28319
28320
  "height": controlNodeDefaultHeight.value,
28320
- "name": "increment-btn",
28321
+ "data-testid": "increment",
28322
+ "aria-hidden": "true",
28321
28323
  "icon": incrementIcon.value,
28322
28324
  "onClick": onClickUp,
28323
28325
  "onMousedown": onControlMousedown,
@@ -28344,7 +28346,8 @@
28344
28346
  "flat": true,
28345
28347
  "key": "decrement-btn",
28346
28348
  "height": controlNodeDefaultHeight.value,
28347
- "name": "decrement-btn",
28349
+ "data-testid": "decrement",
28350
+ "aria-hidden": "true",
28348
28351
  "icon": decrementIcon.value,
28349
28352
  "size": controlNodeSize.value,
28350
28353
  "tabindex": "-1",
@@ -29596,9 +29599,8 @@
29596
29599
  const vListItemRef = vue.ref();
29597
29600
  const isActivatableGroupActivator = vue.computed(() => vListItemRef.value?.root.activatable.value && vListItemRef.value?.isGroupActivator);
29598
29601
  const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list || isActivatableGroupActivator.value));
29599
- function activateItem(e) {
29600
- if (!isClickable.value || !isActivatableGroupActivator.value && vListItemRef.value?.isGroupActivator) return;
29601
- if (vListItemRef.value?.root.activatable.value) {
29602
+ function activateGroupActivator(e) {
29603
+ if (isClickable.value && isActivatableGroupActivator.value) {
29602
29604
  vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
29603
29605
  }
29604
29606
  }
@@ -29617,7 +29619,7 @@
29617
29619
  'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(vListItemRef.value?.id)
29618
29620
  }, props.class],
29619
29621
  "ripple": false,
29620
- "onClick": props.onClick ?? activateItem
29622
+ "onClick": props.onClick ?? activateGroupActivator
29621
29623
  }), {
29622
29624
  ...slots,
29623
29625
  prepend: hasPrepend ? slotProps => {
@@ -30378,7 +30380,6 @@
30378
30380
  };
30379
30381
  }
30380
30382
  }
30381
- getUid.reset();
30382
30383
  if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {
30383
30384
  app.mixin({
30384
30385
  computed: {
@@ -30407,7 +30408,7 @@
30407
30408
  goTo
30408
30409
  };
30409
30410
  }
30410
- const version$1 = "3.7.4-next.2024-11-06";
30411
+ const version$1 = "3.7.5-dev.2024-12-16";
30411
30412
  createVuetify$1.version = version$1;
30412
30413
 
30413
30414
  // Vue's inject() can only be used in setup
@@ -30660,7 +30661,7 @@
30660
30661
 
30661
30662
  /* eslint-disable local-rules/sort-imports */
30662
30663
 
30663
- const version = "3.7.4-next.2024-11-06";
30664
+ const version = "3.7.5-dev.2024-12-16";
30664
30665
 
30665
30666
  /* eslint-disable local-rules/sort-imports */
30666
30667