@vuetify/nightly 3.8.2-master.2025-04-19 → 3.8.2-master.2025-04-23

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 (290) hide show
  1. package/CHANGELOG.md +23 -3
  2. package/dist/json/attributes.json +3523 -3523
  3. package/dist/json/importMap-labs.json +22 -22
  4. package/dist/json/importMap.json +144 -144
  5. package/dist/json/web-types.json +6716 -6457
  6. package/dist/vuetify-labs.cjs +624 -510
  7. package/dist/vuetify-labs.css +3327 -3318
  8. package/dist/vuetify-labs.d.ts +1835 -886
  9. package/dist/vuetify-labs.esm.js +625 -511
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +624 -510
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +402 -396
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3130 -3130
  16. package/dist/vuetify.d.ts +153 -151
  17. package/dist/vuetify.esm.js +403 -397
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +402 -396
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +893 -886
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAlert/VAlert.js +8 -9
  25. package/lib/components/VAlert/VAlert.js.map +1 -1
  26. package/lib/components/VAppBar/VAppBar.js +4 -4
  27. package/lib/components/VAppBar/VAppBar.js.map +1 -1
  28. package/lib/components/VAutocomplete/VAutocomplete.js +1 -2
  29. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  30. package/lib/components/VBadge/VBadge.js +2 -3
  31. package/lib/components/VBadge/VBadge.js.map +1 -1
  32. package/lib/components/VBanner/VBanner.js +3 -3
  33. package/lib/components/VBanner/VBanner.js.map +1 -1
  34. package/lib/components/VBottomNavigation/VBottomNavigation.js +8 -8
  35. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  36. package/lib/components/VBreadcrumbs/VBreadcrumbs.js +6 -6
  37. package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  38. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +1 -2
  39. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  40. package/lib/components/VBtn/VBtn.js +3 -3
  41. package/lib/components/VBtn/VBtn.js.map +1 -1
  42. package/lib/components/VBtnGroup/VBtnGroup.js +4 -4
  43. package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
  44. package/lib/components/VCard/VCard.js +7 -8
  45. package/lib/components/VCard/VCard.js.map +1 -1
  46. package/lib/components/VCheckbox/VCheckbox.js +2 -3
  47. package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
  48. package/lib/components/VCheckbox/VCheckboxBtn.js +3 -3
  49. package/lib/components/VCheckbox/VCheckboxBtn.js.map +1 -1
  50. package/lib/components/VChip/VChip.js +8 -9
  51. package/lib/components/VChip/VChip.js.map +1 -1
  52. package/lib/components/VChipGroup/VChipGroup.js +5 -5
  53. package/lib/components/VChipGroup/VChipGroup.js.map +1 -1
  54. package/lib/components/VCombobox/VCombobox.js +3 -4
  55. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  56. package/lib/components/VCounter/VCounter.js +2 -2
  57. package/lib/components/VCounter/VCounter.js.map +1 -1
  58. package/lib/components/VDataIterator/VDataIterator.js +2 -2
  59. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  60. package/lib/components/VDataTable/VDataTable.js +7 -7
  61. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  62. package/lib/components/VDataTable/VDataTableHeaders.js +1 -1
  63. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  64. package/lib/components/VDataTable/VDataTableServer.js +7 -7
  65. package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
  66. package/lib/components/VDataTable/VDataTableVirtual.js +7 -7
  67. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  68. package/lib/components/VDataTable/composables/expand.d.ts +1 -1
  69. package/lib/components/VDataTable/composables/expand.js +1 -1
  70. package/lib/components/VDataTable/composables/expand.js.map +1 -1
  71. package/lib/components/VDataTable/composables/options.js +8 -8
  72. package/lib/components/VDataTable/composables/options.js.map +1 -1
  73. package/lib/components/VDataTable/composables/select.d.ts +2 -2
  74. package/lib/components/VDataTable/composables/select.js +2 -2
  75. package/lib/components/VDataTable/composables/select.js.map +1 -1
  76. package/lib/components/VDataTable/composables/sort.d.ts +2 -2
  77. package/lib/components/VDataTable/composables/sort.js +2 -2
  78. package/lib/components/VDataTable/composables/sort.js.map +1 -1
  79. package/lib/components/VDatePicker/VDatePicker.js +4 -4
  80. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  81. package/lib/components/VDatePicker/VDatePickerHeader.js +1 -1
  82. package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  83. package/lib/components/VDatePicker/VDatePickerMonth.js +2 -2
  84. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  85. package/lib/components/VDialog/VDialog.d.ts +9 -9
  86. package/lib/components/VDivider/VDivider.js +2 -2
  87. package/lib/components/VDivider/VDivider.js.map +1 -1
  88. package/lib/components/VEmptyState/VEmptyState.js +1 -2
  89. package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
  90. package/lib/components/VExpansionPanel/VExpansionPanel.js +3 -3
  91. package/lib/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
  92. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js +3 -3
  93. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js.map +1 -1
  94. package/lib/components/VExpansionPanel/VExpansionPanels.js +14 -14
  95. package/lib/components/VExpansionPanel/VExpansionPanels.js.map +1 -1
  96. package/lib/components/VFab/VFab.js +2 -2
  97. package/lib/components/VFab/VFab.js.map +1 -1
  98. package/lib/components/VField/VField.js +5 -5
  99. package/lib/components/VField/VField.js.map +1 -1
  100. package/lib/components/VFileInput/VFileInput.js +2 -2
  101. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  102. package/lib/components/VFooter/VFooter.js +4 -4
  103. package/lib/components/VFooter/VFooter.js.map +1 -1
  104. package/lib/components/VForm/VForm.d.ts +40 -40
  105. package/lib/components/VIcon/VIcon.js +4 -4
  106. package/lib/components/VIcon/VIcon.js.map +1 -1
  107. package/lib/components/VImg/VImg.js +2 -2
  108. package/lib/components/VImg/VImg.js.map +1 -1
  109. package/lib/components/VInput/VInput.js +3 -3
  110. package/lib/components/VInput/VInput.js.map +1 -1
  111. package/lib/components/VLayout/VLayoutItem.js +5 -5
  112. package/lib/components/VLayout/VLayoutItem.js.map +1 -1
  113. package/lib/components/VList/VList.js +14 -14
  114. package/lib/components/VList/VList.js.map +1 -1
  115. package/lib/components/VList/VListGroup.js +2 -2
  116. package/lib/components/VList/VListGroup.js.map +1 -1
  117. package/lib/components/VList/VListItem.d.ts +3 -3
  118. package/lib/components/VList/VListItem.js +6 -6
  119. package/lib/components/VList/VListItem.js.map +1 -1
  120. package/lib/components/VList/VListSubheader.js +1 -2
  121. package/lib/components/VList/VListSubheader.js.map +1 -1
  122. package/lib/components/VMenu/VMenu.d.ts +15 -15
  123. package/lib/components/VMenu/VMenu.js +2 -2
  124. package/lib/components/VMenu/VMenu.js.map +1 -1
  125. package/lib/components/VMessages/VMessages.js +1 -1
  126. package/lib/components/VMessages/VMessages.js.map +1 -1
  127. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +6 -6
  128. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  129. package/lib/components/VNumberInput/VNumberInput.js +11 -11
  130. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  131. package/lib/components/VOtpInput/VOtpInput.js +7 -7
  132. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  133. package/lib/components/VOverlay/VOverlay.d.ts +3 -3
  134. package/lib/components/VOverlay/VOverlay.js +4 -4
  135. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  136. package/lib/components/VOverlay/locationStrategies.js +10 -1
  137. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  138. package/lib/components/VPagination/VPagination.js +7 -7
  139. package/lib/components/VPagination/VPagination.js.map +1 -1
  140. package/lib/components/VProgressCircular/VProgressCircular.js +9 -9
  141. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  142. package/lib/components/VProgressLinear/VProgressLinear.js +4 -4
  143. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  144. package/lib/components/VSelect/VSelect.js +2 -2
  145. package/lib/components/VSelect/VSelect.js.map +1 -1
  146. package/lib/components/VSelectionControl/VSelectionControl.d.ts +1 -1
  147. package/lib/components/VSelectionControl/VSelectionControl.js +7 -7
  148. package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
  149. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js +15 -15
  150. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js.map +1 -1
  151. package/lib/components/VSheet/VSheet.js +1 -2
  152. package/lib/components/VSheet/VSheet.js.map +1 -1
  153. package/lib/components/VSkeletonLoader/VSkeletonLoader.js +2 -2
  154. package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  155. package/lib/components/VSlider/slider.js +10 -10
  156. package/lib/components/VSlider/slider.js.map +1 -1
  157. package/lib/components/VSnackbar/VSnackbar.d.ts +9 -9
  158. package/lib/components/VSparkline/VSparkline.js +2 -2
  159. package/lib/components/VSparkline/VSparkline.js.map +1 -1
  160. package/lib/components/VSwitch/VSwitch.js +3 -3
  161. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  162. package/lib/components/VSystemBar/VSystemBar.js +2 -2
  163. package/lib/components/VSystemBar/VSystemBar.js.map +1 -1
  164. package/lib/components/VTabs/VTab.d.ts +3 -3
  165. package/lib/components/VTabs/VTab.js +1 -1
  166. package/lib/components/VTabs/VTab.js.map +1 -1
  167. package/lib/components/VTabs/VTabs.js +7 -7
  168. package/lib/components/VTabs/VTabs.js.map +1 -1
  169. package/lib/components/VTimeline/VTimeline.js +9 -9
  170. package/lib/components/VTimeline/VTimeline.js.map +1 -1
  171. package/lib/components/VTimeline/VTimelineDivider.js +2 -3
  172. package/lib/components/VTimeline/VTimelineDivider.js.map +1 -1
  173. package/lib/components/VToolbar/VToolbar.js +2 -2
  174. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  175. package/lib/components/VToolbar/VToolbarItems.js +2 -2
  176. package/lib/components/VToolbar/VToolbarItems.js.map +1 -1
  177. package/lib/components/VTooltip/VTooltip.d.ts +9 -9
  178. package/lib/components/VTooltip/VTooltip.js +3 -3
  179. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  180. package/lib/components/VVirtualScroll/VVirtualScroll.js +1 -1
  181. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  182. package/lib/components/VWindow/VWindow.js +3 -3
  183. package/lib/components/VWindow/VWindow.js.map +1 -1
  184. package/lib/components/transitions/dialog-transition.js +11 -2
  185. package/lib/components/transitions/dialog-transition.js.map +1 -1
  186. package/lib/composables/border.d.ts +1 -1
  187. package/lib/composables/border.js +5 -8
  188. package/lib/composables/border.js.map +1 -1
  189. package/lib/composables/calendar.d.ts +21 -54
  190. package/lib/composables/calendar.js +11 -11
  191. package/lib/composables/calendar.js.map +1 -1
  192. package/lib/composables/color.d.ts +8 -10
  193. package/lib/composables/color.js +21 -22
  194. package/lib/composables/color.js.map +1 -1
  195. package/lib/composables/density.d.ts +1 -1
  196. package/lib/composables/density.js +2 -2
  197. package/lib/composables/density.js.map +1 -1
  198. package/lib/composables/display.d.ts +4 -2
  199. package/lib/composables/display.js +2 -2
  200. package/lib/composables/display.js.map +1 -1
  201. package/lib/composables/elevation.js +4 -6
  202. package/lib/composables/elevation.js.map +1 -1
  203. package/lib/composables/focus.d.ts +4 -2
  204. package/lib/composables/focus.js +2 -2
  205. package/lib/composables/focus.js.map +1 -1
  206. package/lib/composables/form.d.ts +7 -7
  207. package/lib/composables/form.js +3 -3
  208. package/lib/composables/form.js.map +1 -1
  209. package/lib/composables/goto.js +2 -2
  210. package/lib/composables/goto.js.map +1 -1
  211. package/lib/composables/group.d.ts +3 -3
  212. package/lib/composables/group.js +4 -4
  213. package/lib/composables/group.js.map +1 -1
  214. package/lib/composables/icons.d.ts +2 -2
  215. package/lib/composables/icons.js +2 -2
  216. package/lib/composables/icons.js.map +1 -1
  217. package/lib/composables/layout.d.ts +10 -4
  218. package/lib/composables/layout.js +4 -4
  219. package/lib/composables/layout.js.map +1 -1
  220. package/lib/composables/lazy.d.ts +1 -1
  221. package/lib/composables/lazy.js +2 -2
  222. package/lib/composables/lazy.js.map +1 -1
  223. package/lib/composables/loader.d.ts +4 -2
  224. package/lib/composables/loader.js +2 -2
  225. package/lib/composables/loader.js.map +1 -1
  226. package/lib/composables/locale.js +3 -3
  227. package/lib/composables/locale.js.map +1 -1
  228. package/lib/composables/nested/nested.d.ts +3 -3
  229. package/lib/composables/nested/nested.js +4 -4
  230. package/lib/composables/nested/nested.js.map +1 -1
  231. package/lib/composables/position.d.ts +1 -1
  232. package/lib/composables/position.js +2 -2
  233. package/lib/composables/position.js.map +1 -1
  234. package/lib/composables/router.d.ts +3 -3
  235. package/lib/composables/router.js +8 -8
  236. package/lib/composables/router.js.map +1 -1
  237. package/lib/composables/size.d.ts +8 -5
  238. package/lib/composables/size.js +6 -5
  239. package/lib/composables/size.js.map +1 -1
  240. package/lib/composables/ssrBoot.d.ts +4 -2
  241. package/lib/composables/ssrBoot.js +2 -2
  242. package/lib/composables/ssrBoot.js.map +1 -1
  243. package/lib/composables/stack.d.ts +7 -5
  244. package/lib/composables/stack.js +5 -5
  245. package/lib/composables/stack.js.map +1 -1
  246. package/lib/composables/theme.js +7 -7
  247. package/lib/composables/theme.js.map +1 -1
  248. package/lib/composables/validation.js +0 -5
  249. package/lib/composables/validation.js.map +1 -1
  250. package/lib/composables/variant.d.ts +5 -6
  251. package/lib/composables/variant.js +6 -6
  252. package/lib/composables/variant.js.map +1 -1
  253. package/lib/entry-bundler.js +1 -1
  254. package/lib/framework.d.ts +66 -64
  255. package/lib/framework.js +1 -1
  256. package/lib/labs/VCalendar/VCalendar.d.ts +600 -211
  257. package/lib/labs/VCalendar/VCalendar.js +55 -27
  258. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  259. package/lib/labs/VCalendar/VCalendarDay.css +9 -0
  260. package/lib/labs/VCalendar/VCalendarDay.d.ts +329 -17
  261. package/lib/labs/VCalendar/VCalendarDay.js +18 -10
  262. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  263. package/lib/labs/VCalendar/VCalendarDay.sass +8 -0
  264. package/lib/labs/VCalendar/VCalendarEvent.js +15 -5
  265. package/lib/labs/VCalendar/VCalendarEvent.js.map +1 -1
  266. package/lib/labs/VCalendar/VCalendarHeader.d.ts +44 -17
  267. package/lib/labs/VCalendar/VCalendarHeader.js +5 -2
  268. package/lib/labs/VCalendar/VCalendarHeader.js.map +1 -1
  269. package/lib/labs/VCalendar/VCalendarInterval.d.ts +171 -17
  270. package/lib/labs/VCalendar/VCalendarInterval.js +66 -35
  271. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  272. package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +92 -17
  273. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +30 -10
  274. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  275. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +122 -88
  276. package/lib/labs/VCalendar/VCalendarMonthDay.js +24 -22
  277. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  278. package/lib/labs/VIconBtn/VIconBtn.js +3 -3
  279. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  280. package/lib/labs/VPicker/VPicker.js +1 -2
  281. package/lib/labs/VPicker/VPicker.js.map +1 -1
  282. package/lib/labs/VTimePicker/VTimePickerClock.js +3 -3
  283. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  284. package/lib/labs/VTreeview/VTreeview.js +11 -11
  285. package/lib/labs/VTreeview/VTreeview.js.map +1 -1
  286. package/lib/util/box.js.map +1 -1
  287. package/lib/util/helpers.d.ts +5 -2
  288. package/lib/util/helpers.js +9 -5
  289. package/lib/util/helpers.js.map +1 -1
  290. package/package.json +1 -1
package/dist/vuetify.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.2-master.2025-04-19
2
+ * Vuetify v3.8.2-master.2025-04-23
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -369,15 +369,19 @@
369
369
 
370
370
  function destructComputed(getter) {
371
371
  const refs = vue.reactive({});
372
- const base = vue.computed(getter);
373
372
  vue.watchEffect(() => {
374
- for (const key in base.value) {
375
- refs[key] = base.value[key];
373
+ const base = getter();
374
+ for (const key in base) {
375
+ refs[key] = base[key];
376
376
  }
377
377
  }, {
378
378
  flush: 'sync'
379
379
  });
380
- return vue.toRefs(refs);
380
+ const obj = {};
381
+ for (const key in refs) {
382
+ obj[key] = vue.toRef(() => refs[key]);
383
+ }
384
+ return obj;
381
385
  }
382
386
 
383
387
  /** Array.includes but value can be any type */
@@ -1677,7 +1681,7 @@
1677
1681
  const icons = vue.inject(IconSymbol);
1678
1682
  if (!icons) throw new Error('Missing Vuetify Icons provide!');
1679
1683
  const iconData = vue.computed(() => {
1680
- const iconAlias = vue.unref(props);
1684
+ const iconAlias = vue.toValue(props);
1681
1685
  if (!iconAlias) return {
1682
1686
  component: VComponentIcon
1683
1687
  };
@@ -2231,7 +2235,7 @@
2231
2235
  const mainRect = vue.computed(() => {
2232
2236
  return layers.value[layers.value.length - 1].layer;
2233
2237
  });
2234
- const mainStyles = vue.computed(() => {
2238
+ const mainStyles = vue.toRef(() => {
2235
2239
  return {
2236
2240
  '--v-layout-left': convertToUnit(mainRect.value.left),
2237
2241
  '--v-layout-right': convertToUnit(mainRect.value.right),
@@ -2346,10 +2350,10 @@
2346
2350
  layoutRect,
2347
2351
  rootZIndex
2348
2352
  });
2349
- const layoutClasses = vue.computed(() => ['v-layout', {
2353
+ const layoutClasses = vue.toRef(() => ['v-layout', {
2350
2354
  'v-layout--full-height': props.fullHeight
2351
2355
  }]);
2352
- const layoutStyles = vue.computed(() => ({
2356
+ const layoutStyles = vue.toRef(() => ({
2353
2357
  zIndex: parentLayout ? rootZIndex.value : undefined,
2354
2358
  position: parentLayout ? 'relative' : undefined,
2355
2359
  overflow: parentLayout ? 'hidden' : undefined
@@ -2740,7 +2744,7 @@
2740
2744
  return {
2741
2745
  isRtl,
2742
2746
  rtl,
2743
- rtlClasses: vue.computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
2747
+ rtlClasses: vue.toRef(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
2744
2748
  };
2745
2749
  }
2746
2750
  function provideRtl(locale, rtl, props) {
@@ -2748,7 +2752,7 @@
2748
2752
  return {
2749
2753
  isRtl,
2750
2754
  rtl,
2751
- rtlClasses: vue.computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
2755
+ rtlClasses: vue.toRef(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
2752
2756
  };
2753
2757
  }
2754
2758
  function useRtl() {
@@ -2972,7 +2976,7 @@
2972
2976
  }
2973
2977
  return acc;
2974
2978
  });
2975
- const current = vue.computed(() => computedThemes.value[name.value]);
2979
+ const current = vue.toRef(() => computedThemes.value[name.value]);
2976
2980
  const styles = vue.computed(() => {
2977
2981
  const lines = [];
2978
2982
  if (current.value?.dark) {
@@ -3019,7 +3023,7 @@
3019
3023
  }
3020
3024
  } else {
3021
3025
  if (IN_BROWSER) {
3022
- head.addHeadObjs(vue.computed(getHead));
3026
+ head.addHeadObjs(vue.toRef(getHead));
3023
3027
  vue.watchEffect(() => head.updateDOM());
3024
3028
  } else {
3025
3029
  head.addHeadObjs(getHead());
@@ -3038,7 +3042,7 @@
3038
3042
  }
3039
3043
  }
3040
3044
  }
3041
- const themeClasses = vue.computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
3045
+ const themeClasses = vue.toRef(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
3042
3046
  return {
3043
3047
  install,
3044
3048
  isDisabled: parsedOptions.isDisabled,
@@ -3058,9 +3062,9 @@
3058
3062
  getCurrentInstance('provideTheme');
3059
3063
  const theme = vue.inject(ThemeSymbol, null);
3060
3064
  if (!theme) throw new Error('Could not find Vuetify theme injection');
3061
- const name = vue.computed(() => props.theme ?? theme.name.value);
3062
- const current = vue.computed(() => theme.themes.value[name.value]);
3063
- const themeClasses = vue.computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
3065
+ const name = vue.toRef(() => props.theme ?? theme.name.value);
3066
+ const current = vue.toRef(() => theme.themes.value[name.value]);
3067
+ const themeClasses = vue.toRef(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
3064
3068
  const newTheme = {
3065
3069
  ...theme,
3066
3070
  name,
@@ -3344,6 +3348,7 @@
3344
3348
  const makeVDialogTransitionProps = propsFactory({
3345
3349
  target: [Object, Array]
3346
3350
  }, 'v-dialog-transition');
3351
+ const saved = new WeakMap();
3347
3352
  const VDialogTransition = genericComponent()({
3348
3353
  name: 'VDialogTransition',
3349
3354
  props: makeVDialogTransitionProps(),
@@ -3360,13 +3365,15 @@
3360
3365
  await new Promise(resolve => requestAnimationFrame(resolve));
3361
3366
  await new Promise(resolve => requestAnimationFrame(resolve));
3362
3367
  el.style.visibility = '';
3368
+ const dimensions = getDimensions(props.target, el);
3363
3369
  const {
3364
3370
  x,
3365
3371
  y,
3366
3372
  sx,
3367
3373
  sy,
3368
3374
  speed
3369
- } = getDimensions(props.target, el);
3375
+ } = dimensions;
3376
+ saved.set(el, dimensions);
3370
3377
  const animation = animate(el, [{
3371
3378
  transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
3372
3379
  opacity: 0
@@ -3395,13 +3402,19 @@
3395
3402
  },
3396
3403
  async onLeave(el, done) {
3397
3404
  await new Promise(resolve => requestAnimationFrame(resolve));
3405
+ let dimensions;
3406
+ if (!Array.isArray(props.target) && !props.target.offsetParent && saved.has(el)) {
3407
+ dimensions = saved.get(el);
3408
+ } else {
3409
+ dimensions = getDimensions(props.target, el);
3410
+ }
3398
3411
  const {
3399
3412
  x,
3400
3413
  y,
3401
3414
  sx,
3402
3415
  sy,
3403
3416
  speed
3404
- } = getDimensions(props.target, el);
3417
+ } = dimensions;
3405
3418
  const animation = animate(el, [{}, {
3406
3419
  transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
3407
3420
  opacity: 0
@@ -3621,13 +3634,14 @@
3621
3634
  // Composables
3622
3635
  function useColor(colors) {
3623
3636
  return destructComputed(() => {
3637
+ const _colors = vue.toValue(colors);
3624
3638
  const classes = [];
3625
3639
  const styles = {};
3626
- if (colors.value.background) {
3627
- if (isCssColor(colors.value.background)) {
3628
- styles.backgroundColor = colors.value.background;
3629
- if (!colors.value.text && isParsableColor(colors.value.background)) {
3630
- const backgroundColor = parseColor(colors.value.background);
3640
+ if (_colors.background) {
3641
+ if (isCssColor(_colors.background)) {
3642
+ styles.backgroundColor = _colors.background;
3643
+ if (!_colors.text && isParsableColor(_colors.background)) {
3644
+ const backgroundColor = parseColor(_colors.background);
3631
3645
  if (backgroundColor.a == null || backgroundColor.a === 1) {
3632
3646
  const textColor = getForeground(backgroundColor);
3633
3647
  styles.color = textColor;
@@ -3635,15 +3649,15 @@
3635
3649
  }
3636
3650
  }
3637
3651
  } else {
3638
- classes.push(`bg-${colors.value.background}`);
3652
+ classes.push(`bg-${_colors.background}`);
3639
3653
  }
3640
3654
  }
3641
- if (colors.value.text) {
3642
- if (isCssColor(colors.value.text)) {
3643
- styles.color = colors.value.text;
3644
- styles.caretColor = colors.value.text;
3655
+ if (_colors.text) {
3656
+ if (isCssColor(_colors.text)) {
3657
+ styles.color = _colors.text;
3658
+ styles.caretColor = _colors.text;
3645
3659
  } else {
3646
- classes.push(`text-${colors.value.text}`);
3660
+ classes.push(`text-${_colors.text}`);
3647
3661
  }
3648
3662
  }
3649
3663
  return {
@@ -3652,27 +3666,25 @@
3652
3666
  };
3653
3667
  });
3654
3668
  }
3655
- function useTextColor(props, name) {
3656
- const colors = vue.computed(() => ({
3657
- text: vue.isRef(props) ? props.value : name ? props[name] : null
3658
- }));
3669
+ function useTextColor(color) {
3659
3670
  const {
3660
3671
  colorClasses: textColorClasses,
3661
3672
  colorStyles: textColorStyles
3662
- } = useColor(colors);
3673
+ } = useColor(() => ({
3674
+ text: vue.toValue(color)
3675
+ }));
3663
3676
  return {
3664
3677
  textColorClasses,
3665
3678
  textColorStyles
3666
3679
  };
3667
3680
  }
3668
- function useBackgroundColor(props, name) {
3669
- const colors = vue.computed(() => ({
3670
- background: vue.isRef(props) ? props.value : name ? props[name] : null
3671
- }));
3681
+ function useBackgroundColor(color) {
3672
3682
  const {
3673
3683
  colorClasses: backgroundColorClasses,
3674
3684
  colorStyles: backgroundColorStyles
3675
- } = useColor(colors);
3685
+ } = useColor(() => ({
3686
+ background: vue.toValue(color)
3687
+ }));
3676
3688
  return {
3677
3689
  backgroundColorClasses,
3678
3690
  backgroundColorStyles
@@ -3856,7 +3868,7 @@
3856
3868
  const {
3857
3869
  backgroundColorClasses,
3858
3870
  backgroundColorStyles
3859
- } = useBackgroundColor(vue.toRef(props, 'color'));
3871
+ } = useBackgroundColor(() => props.color);
3860
3872
  const {
3861
3873
  roundedClasses
3862
3874
  } = useRounded(props);
@@ -3963,7 +3975,7 @@
3963
3975
  };
3964
3976
  poll();
3965
3977
  }
3966
- const containClasses = vue.computed(() => ({
3978
+ const containClasses = vue.toRef(() => ({
3967
3979
  'v-img__img--cover': props.cover,
3968
3980
  'v-img__img--contain': !props.cover
3969
3981
  }));
@@ -4100,16 +4112,13 @@
4100
4112
  function useBorder(props) {
4101
4113
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
4102
4114
  const borderClasses = vue.computed(() => {
4103
- const border = vue.isRef(props) ? props.value : props.border;
4104
- const classes = [];
4115
+ const border = props.border;
4105
4116
  if (border === true || border === '') {
4106
- classes.push(`${name}--border`);
4117
+ return `${name}--border`;
4107
4118
  } else if (typeof border === 'string' || border === 0) {
4108
- for (const value of String(border).split(' ')) {
4109
- classes.push(`border-${value}`);
4110
- }
4119
+ return String(border).split(' ').map(v => `border-${v}`);
4111
4120
  }
4112
- return classes;
4121
+ return [];
4113
4122
  });
4114
4123
  return {
4115
4124
  borderClasses
@@ -4134,12 +4143,10 @@
4134
4143
  }
4135
4144
  }, 'elevation');
4136
4145
  function useElevation(props) {
4137
- const elevationClasses = vue.computed(() => {
4146
+ const elevationClasses = vue.toRef(() => {
4138
4147
  const elevation = vue.isRef(props) ? props.value : props.elevation;
4139
- const classes = [];
4140
- if (elevation == null) return classes;
4141
- classes.push(`elevation-${elevation}`);
4142
- return classes;
4148
+ if (elevation == null) return [];
4149
+ return [`elevation-${elevation}`];
4143
4150
  });
4144
4151
  return {
4145
4152
  elevationClasses
@@ -4190,7 +4197,7 @@
4190
4197
  const {
4191
4198
  backgroundColorClasses,
4192
4199
  backgroundColorStyles
4193
- } = useBackgroundColor(vue.toRef(props, 'color'));
4200
+ } = useBackgroundColor(() => props.color);
4194
4201
  const {
4195
4202
  borderClasses
4196
4203
  } = useBorder(props);
@@ -4399,7 +4406,7 @@
4399
4406
  isBooted.value = true;
4400
4407
  });
4401
4408
  });
4402
- const ssrBootStyles = vue.computed(() => !isBooted.value ? {
4409
+ const ssrBootStyles = vue.toRef(() => !isBooted.value ? {
4403
4410
  transition: 'none !important'
4404
4411
  } : undefined);
4405
4412
  return {
@@ -4467,7 +4474,7 @@
4467
4474
  } = useScroll(props, {
4468
4475
  canScroll
4469
4476
  });
4470
- const canHide = vue.computed(() => scrollBehavior.value.hide || scrollBehavior.value.fullyHide);
4477
+ const canHide = vue.toRef(() => scrollBehavior.value.hide || scrollBehavior.value.fullyHide);
4471
4478
  const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));
4472
4479
  const isFlat = vue.computed(() => props.flat || scrollBehavior.value.fullyHide && !isActive.value || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
4473
4480
  const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
@@ -4478,7 +4485,7 @@
4478
4485
  if (!canHide.value) return height + extensionHeight;
4479
4486
  return currentScroll.value < scrollThreshold.value || scrollBehavior.value.fullyHide ? height + extensionHeight : height;
4480
4487
  });
4481
- useToggleScope(vue.computed(() => !!props.scrollBehavior), () => {
4488
+ useToggleScope(() => !!props.scrollBehavior, () => {
4482
4489
  vue.watchEffect(() => {
4483
4490
  if (canHide.value) {
4484
4491
  if (scrollBehavior.value.inverted) {
@@ -4499,11 +4506,11 @@
4499
4506
  } = useLayoutItem({
4500
4507
  id: props.name,
4501
4508
  order: vue.computed(() => parseInt(props.order, 10)),
4502
- position: vue.toRef(props, 'location'),
4509
+ position: vue.toRef(() => props.location),
4503
4510
  layoutSize: height,
4504
4511
  elementSize: vue.shallowRef(undefined),
4505
4512
  active: isActive,
4506
- absolute: vue.toRef(props, 'absolute')
4513
+ absolute: vue.toRef(() => props.absolute)
4507
4514
  });
4508
4515
  useRender(() => {
4509
4516
  const toolbarProps = VToolbar.filterProps(props);
@@ -4546,7 +4553,7 @@
4546
4553
  }, 'density');
4547
4554
  function useDensity(props) {
4548
4555
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
4549
- const densityClasses = vue.computed(() => {
4556
+ const densityClasses = vue.toRef(() => {
4550
4557
  return `${name}--density-${props.density}`;
4551
4558
  });
4552
4559
  return {
@@ -4576,24 +4583,24 @@
4576
4583
  }, 'variant');
4577
4584
  function useVariant(props) {
4578
4585
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
4579
- const variantClasses = vue.computed(() => {
4586
+ const variantClasses = vue.toRef(() => {
4580
4587
  const {
4581
4588
  variant
4582
- } = vue.unref(props);
4589
+ } = vue.toValue(props);
4583
4590
  return `${name}--variant-${variant}`;
4584
4591
  });
4585
4592
  const {
4586
4593
  colorClasses,
4587
4594
  colorStyles
4588
- } = useColor(vue.computed(() => {
4595
+ } = useColor(() => {
4589
4596
  const {
4590
4597
  variant,
4591
4598
  color
4592
- } = vue.unref(props);
4599
+ } = vue.toValue(props);
4593
4600
  return {
4594
4601
  [['elevated', 'flat'].includes(variant) ? 'background' : 'text']: color
4595
4602
  };
4596
- }));
4603
+ });
4597
4604
  return {
4598
4605
  colorClasses,
4599
4606
  colorStyles,
@@ -4638,11 +4645,11 @@
4638
4645
  provideDefaults({
4639
4646
  VBtn: {
4640
4647
  height: 'auto',
4641
- baseColor: vue.toRef(props, 'baseColor'),
4642
- color: vue.toRef(props, 'color'),
4643
- density: vue.toRef(props, 'density'),
4648
+ baseColor: vue.toRef(() => props.baseColor),
4649
+ color: vue.toRef(() => props.color),
4650
+ density: vue.toRef(() => props.density),
4644
4651
  flat: true,
4645
- variant: vue.toRef(props, 'variant')
4652
+ variant: vue.toRef(() => props.variant)
4646
4653
  }
4647
4654
  });
4648
4655
  useRender(() => {
@@ -4692,7 +4699,7 @@
4692
4699
  if (!required) return group;
4693
4700
  throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);
4694
4701
  }
4695
- const value = vue.toRef(props, 'value');
4702
+ const value = vue.toRef(() => props.value);
4696
4703
  const disabled = vue.computed(() => !!(group.disabled.value || props.disabled));
4697
4704
  group.register({
4698
4705
  id,
@@ -4841,12 +4848,12 @@
4841
4848
  unregister,
4842
4849
  selected,
4843
4850
  select,
4844
- disabled: vue.toRef(props, 'disabled'),
4851
+ disabled: vue.toRef(() => props.disabled),
4845
4852
  prev: () => step(items.length - 1),
4846
4853
  next: () => step(1),
4847
4854
  isSelected: id => selected.value.includes(id),
4848
- selectedClass: vue.computed(() => props.selectedClass),
4849
- items: vue.computed(() => items),
4855
+ selectedClass: vue.toRef(() => props.selectedClass),
4856
+ items: vue.toRef(() => items),
4850
4857
  getItemIndex: value => getItemIndex(items, value)
4851
4858
  };
4852
4859
  vue.provide(injectKey, state);
@@ -4944,14 +4951,15 @@
4944
4951
  function useSize(props) {
4945
4952
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
4946
4953
  return destructComputed(() => {
4954
+ const size = props.size;
4947
4955
  let sizeClasses;
4948
4956
  let sizeStyles;
4949
- if (includes(predefinedSizes, props.size)) {
4950
- sizeClasses = `${name}--size-${props.size}`;
4951
- } else if (props.size) {
4957
+ if (includes(predefinedSizes, size)) {
4958
+ sizeClasses = `${name}--size-${size}`;
4959
+ } else if (size) {
4952
4960
  sizeStyles = {
4953
- width: convertToUnit(props.size),
4954
- height: convertToUnit(props.size)
4961
+ width: convertToUnit(size),
4962
+ height: convertToUnit(size)
4955
4963
  };
4956
4964
  }
4957
4965
  return {
@@ -4983,20 +4991,20 @@
4983
4991
  attrs,
4984
4992
  slots
4985
4993
  } = _ref;
4986
- const slotIcon = vue.ref();
4994
+ const slotIcon = vue.shallowRef();
4987
4995
  const {
4988
4996
  themeClasses
4989
4997
  } = useTheme();
4990
4998
  const {
4991
4999
  iconData
4992
- } = useIcon(vue.computed(() => slotIcon.value || props.icon));
5000
+ } = useIcon(() => slotIcon.value || props.icon);
4993
5001
  const {
4994
5002
  sizeClasses
4995
5003
  } = useSize(props);
4996
5004
  const {
4997
5005
  textColorClasses,
4998
5006
  textColorStyles
4999
- } = useTextColor(vue.toRef(props, 'color'));
5007
+ } = useTextColor(() => props.color);
5000
5008
  useRender(() => {
5001
5009
  const slotValue = slots.default?.();
5002
5010
  if (slotValue) {
@@ -5102,11 +5110,11 @@
5102
5110
  const {
5103
5111
  textColorClasses,
5104
5112
  textColorStyles
5105
- } = useTextColor(vue.toRef(props, 'color'));
5113
+ } = useTextColor(() => props.color);
5106
5114
  const {
5107
5115
  textColorClasses: underlayColorClasses,
5108
5116
  textColorStyles: underlayColorStyles
5109
- } = useTextColor(vue.toRef(props, 'bgColor'));
5117
+ } = useTextColor(() => props.bgColor);
5110
5118
  const {
5111
5119
  intersectionRef,
5112
5120
  isIntersecting
@@ -5115,15 +5123,15 @@
5115
5123
  resizeRef,
5116
5124
  contentRect
5117
5125
  } = useResizeObserver();
5118
- const normalizedValue = vue.computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));
5119
- const width = vue.computed(() => Number(props.width));
5120
- const size = vue.computed(() => {
5126
+ const normalizedValue = vue.toRef(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));
5127
+ const width = vue.toRef(() => Number(props.width));
5128
+ const size = vue.toRef(() => {
5121
5129
  // Get size from element if size prop value is small, large etc
5122
5130
  return sizeStyles.value ? Number(props.size) : contentRect.value ? contentRect.value.width : Math.max(width.value, 32);
5123
5131
  });
5124
- const diameter = vue.computed(() => MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value) * 2);
5125
- const strokeWidth = vue.computed(() => width.value / size.value * diameter.value);
5126
- const strokeDashOffset = vue.computed(() => convertToUnit((100 - normalizedValue.value) / 100 * CIRCUMFERENCE));
5132
+ const diameter = vue.toRef(() => MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value) * 2);
5133
+ const strokeWidth = vue.toRef(() => width.value / size.value * diameter.value);
5134
+ const strokeDashOffset = vue.toRef(() => convertToUnit((100 - normalizedValue.value) / 100 * CIRCUMFERENCE));
5127
5135
  vue.watchEffect(() => {
5128
5136
  intersectionRef.value = root.value;
5129
5137
  resizeRef.value = root.value;
@@ -5301,19 +5309,19 @@
5301
5309
  const {
5302
5310
  textColorClasses,
5303
5311
  textColorStyles
5304
- } = useTextColor(props, 'color');
5312
+ } = useTextColor(() => props.color);
5305
5313
  const {
5306
5314
  backgroundColorClasses,
5307
5315
  backgroundColorStyles
5308
- } = useBackgroundColor(vue.computed(() => props.bgColor || props.color));
5316
+ } = useBackgroundColor(() => props.bgColor || props.color);
5309
5317
  const {
5310
5318
  backgroundColorClasses: bufferColorClasses,
5311
5319
  backgroundColorStyles: bufferColorStyles
5312
- } = useBackgroundColor(vue.computed(() => props.bufferColor || props.bgColor || props.color));
5320
+ } = useBackgroundColor(() => props.bufferColor || props.bgColor || props.color);
5313
5321
  const {
5314
5322
  backgroundColorClasses: barColorClasses,
5315
5323
  backgroundColorStyles: barColorStyles
5316
- } = useBackgroundColor(props, 'color');
5324
+ } = useBackgroundColor(() => props.color);
5317
5325
  const {
5318
5326
  roundedClasses
5319
5327
  } = useRounded(props);
@@ -5420,7 +5428,7 @@
5420
5428
  }, 'loader');
5421
5429
  function useLoader(props) {
5422
5430
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
5423
- const loaderClasses = vue.computed(() => ({
5431
+ const loaderClasses = vue.toRef(() => ({
5424
5432
  [`${name}--loading`]: props.loading
5425
5433
  }));
5426
5434
  return {
@@ -5459,7 +5467,7 @@
5459
5467
  }, 'position');
5460
5468
  function usePosition(props) {
5461
5469
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
5462
- const positionClasses = vue.computed(() => {
5470
+ const positionClasses = vue.toRef(() => {
5463
5471
  return props.position ? `${name}--${props.position}` : undefined;
5464
5472
  });
5465
5473
  return {
@@ -5480,12 +5488,12 @@
5480
5488
  }
5481
5489
  function useLink(props, attrs) {
5482
5490
  const RouterLink = vue.resolveDynamicComponent('RouterLink');
5483
- const isLink = vue.computed(() => !!(props.href || props.to));
5491
+ const isLink = vue.toRef(() => !!(props.href || props.to));
5484
5492
  const isClickable = vue.computed(() => {
5485
5493
  return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');
5486
5494
  });
5487
5495
  if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {
5488
- const href = vue.toRef(props, 'href');
5496
+ const href = vue.toRef(() => props.href);
5489
5497
  return {
5490
5498
  isLink,
5491
5499
  isClickable,
@@ -5495,12 +5503,12 @@
5495
5503
  })
5496
5504
  };
5497
5505
  }
5506
+
5498
5507
  // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined
5499
- const linkProps = vue.computed(() => ({
5500
- ...props,
5501
- to: vue.toRef(() => props.to || '')
5502
- }));
5503
- const routerLink = RouterLink.useLink(linkProps.value);
5508
+ const routerLink = RouterLink.useLink({
5509
+ to: vue.toRef(() => props.to || ''),
5510
+ replace: vue.toRef(() => props.replace)
5511
+ });
5504
5512
  // Actual link needs to be undefined when to prop is not used
5505
5513
  const link = vue.computed(() => props.to ? routerLink : undefined);
5506
5514
  const route = useRoute();
@@ -5520,7 +5528,7 @@
5520
5528
  href,
5521
5529
  linkProps: vue.reactive({
5522
5530
  href,
5523
- 'aria-current': vue.computed(() => isActive.value ? 'page' : undefined)
5531
+ 'aria-current': vue.toRef(() => isActive.value ? 'page' : undefined)
5524
5532
  })
5525
5533
  };
5526
5534
  }
@@ -5969,7 +5977,7 @@
5969
5977
  }
5970
5978
  return group?.isSelected.value;
5971
5979
  });
5972
- const color = vue.computed(() => isActive.value ? props.activeColor ?? props.color : props.color);
5980
+ const color = vue.toRef(() => isActive.value ? props.activeColor ?? props.color : props.color);
5973
5981
  const variantProps = vue.computed(() => {
5974
5982
  const showColor = group?.isSelected.value && (!link.isLink.value || link.isActive?.value) || !group || link.isActive?.value;
5975
5983
  return {
@@ -5983,7 +5991,7 @@
5983
5991
  variantClasses
5984
5992
  } = useVariant(variantProps);
5985
5993
  const isDisabled = vue.computed(() => group?.disabled.value || props.disabled);
5986
- const isElevated = vue.computed(() => {
5994
+ const isElevated = vue.toRef(() => {
5987
5995
  return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
5988
5996
  });
5989
5997
  const valueAttr = vue.computed(() => {
@@ -6186,15 +6194,11 @@
6186
6194
  slots
6187
6195
  } = _ref;
6188
6196
  const isActive = useProxiedModel(props, 'modelValue');
6189
- const icon = vue.computed(() => {
6197
+ const icon = vue.toRef(() => {
6190
6198
  if (props.icon === false) return undefined;
6191
6199
  if (!props.type) return props.icon;
6192
6200
  return props.icon ?? `$${props.type}`;
6193
6201
  });
6194
- const variantProps = vue.computed(() => ({
6195
- color: props.color ?? props.type,
6196
- variant: props.variant
6197
- }));
6198
6202
  const {
6199
6203
  themeClasses
6200
6204
  } = provideTheme(props);
@@ -6202,7 +6206,10 @@
6202
6206
  colorClasses,
6203
6207
  colorStyles,
6204
6208
  variantClasses
6205
- } = useVariant(variantProps);
6209
+ } = useVariant(() => ({
6210
+ color: props.color ?? props.type,
6211
+ variant: props.variant
6212
+ }));
6206
6213
  const {
6207
6214
  densityClasses
6208
6215
  } = useDensity(props);
@@ -6224,11 +6231,11 @@
6224
6231
  const {
6225
6232
  textColorClasses,
6226
6233
  textColorStyles
6227
- } = useTextColor(vue.toRef(props, 'borderColor'));
6234
+ } = useTextColor(() => props.borderColor);
6228
6235
  const {
6229
6236
  t
6230
6237
  } = useLocale();
6231
- const closeProps = vue.computed(() => ({
6238
+ const closeProps = vue.toRef(() => ({
6232
6239
  'aria-label': t(props.closeLabel),
6233
6240
  onClick(e) {
6234
6241
  isActive.value = false;
@@ -6465,8 +6472,8 @@
6465
6472
  } = _ref;
6466
6473
  const modelValue = useProxiedModel(props, 'modelValue');
6467
6474
  const uid = vue.useId();
6468
- const id = vue.computed(() => props.id || `v-selection-control-group-${uid}`);
6469
- const name = vue.computed(() => props.name || id.value);
6475
+ const id = vue.toRef(() => props.id || `v-selection-control-group-${uid}`);
6476
+ const name = vue.toRef(() => props.name || id.value);
6470
6477
  const updateHandlers = new Set();
6471
6478
  vue.provide(VSelectionControlGroupSymbol, {
6472
6479
  modelValue,
@@ -6482,20 +6489,20 @@
6482
6489
  });
6483
6490
  provideDefaults({
6484
6491
  [props.defaultsTarget]: {
6485
- color: vue.toRef(props, 'color'),
6486
- disabled: vue.toRef(props, 'disabled'),
6487
- density: vue.toRef(props, 'density'),
6488
- error: vue.toRef(props, 'error'),
6489
- inline: vue.toRef(props, 'inline'),
6492
+ color: vue.toRef(() => props.color),
6493
+ disabled: vue.toRef(() => props.disabled),
6494
+ density: vue.toRef(() => props.density),
6495
+ error: vue.toRef(() => props.error),
6496
+ inline: vue.toRef(() => props.inline),
6490
6497
  modelValue,
6491
- multiple: vue.computed(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value)),
6498
+ multiple: vue.toRef(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value)),
6492
6499
  name,
6493
- falseIcon: vue.toRef(props, 'falseIcon'),
6494
- trueIcon: vue.toRef(props, 'trueIcon'),
6495
- readonly: vue.toRef(props, 'readonly'),
6496
- ripple: vue.toRef(props, 'ripple'),
6497
- type: vue.toRef(props, 'type'),
6498
- valueComparator: vue.toRef(props, 'valueComparator')
6500
+ falseIcon: vue.toRef(() => props.falseIcon),
6501
+ trueIcon: vue.toRef(() => props.trueIcon),
6502
+ readonly: vue.toRef(() => props.readonly),
6503
+ ripple: vue.toRef(() => props.ripple),
6504
+ type: vue.toRef(() => props.type),
6505
+ valueComparator: vue.toRef(() => props.valueComparator)
6499
6506
  }
6500
6507
  });
6501
6508
  useRender(() => vue.createVNode("div", {
@@ -6551,16 +6558,16 @@
6551
6558
  const {
6552
6559
  textColorClasses,
6553
6560
  textColorStyles
6554
- } = useTextColor(vue.computed(() => {
6561
+ } = useTextColor(() => {
6555
6562
  if (props.error || props.disabled) return undefined;
6556
6563
  return model.value ? props.color : props.baseColor;
6557
- }));
6564
+ });
6558
6565
  const {
6559
6566
  backgroundColorClasses,
6560
6567
  backgroundColorStyles
6561
- } = useBackgroundColor(vue.computed(() => {
6568
+ } = useBackgroundColor(() => {
6562
6569
  return model.value && !props.error && !props.disabled ? props.color : props.baseColor;
6563
- }));
6570
+ });
6564
6571
  const icon = vue.computed(() => model.value ? props.trueIcon : props.falseIcon);
6565
6572
  return {
6566
6573
  group,
@@ -6605,8 +6612,8 @@
6605
6612
  const isFocused = vue.shallowRef(false);
6606
6613
  const isFocusVisible = vue.shallowRef(false);
6607
6614
  const input = vue.ref();
6608
- const id = vue.computed(() => props.id || `input-${uid}`);
6609
- const isInteractive = vue.computed(() => !props.disabled && !props.readonly);
6615
+ const id = vue.toRef(() => props.id || `input-${uid}`);
6616
+ const isInteractive = vue.toRef(() => !props.disabled && !props.readonly);
6610
6617
  group?.onForceUpdate(() => {
6611
6618
  if (input.value) {
6612
6619
  input.value.checked = model.value;
@@ -6744,10 +6751,10 @@
6744
6751
  indeterminate.value = false;
6745
6752
  }
6746
6753
  }
6747
- const falseIcon = vue.computed(() => {
6754
+ const falseIcon = vue.toRef(() => {
6748
6755
  return indeterminate.value ? props.indeterminateIcon : props.falseIcon;
6749
6756
  });
6750
- const trueIcon = vue.computed(() => {
6757
+ const trueIcon = vue.toRef(() => {
6751
6758
  return indeterminate.value ? props.indeterminateIcon : props.trueIcon;
6752
6759
  });
6753
6760
  useRender(() => {
@@ -6835,7 +6842,7 @@
6835
6842
  const {
6836
6843
  textColorClasses,
6837
6844
  textColorStyles
6838
- } = useTextColor(vue.computed(() => props.color));
6845
+ } = useTextColor(() => props.color);
6839
6846
  useRender(() => vue.createVNode(MaybeTransition, {
6840
6847
  "transition": props.transition,
6841
6848
  "tag": "div",
@@ -6865,7 +6872,7 @@
6865
6872
  function useFocus(props) {
6866
6873
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
6867
6874
  const isFocused = useProxiedModel(props, 'focused');
6868
- const focusClasses = vue.computed(() => {
6875
+ const focusClasses = vue.toRef(() => {
6869
6876
  return {
6870
6877
  [`${name}--focused`]: isFocused.value
6871
6878
  };
@@ -6904,8 +6911,8 @@
6904
6911
  }, 'form');
6905
6912
  function createForm(props) {
6906
6913
  const model = useProxiedModel(props, 'modelValue');
6907
- const isDisabled = vue.computed(() => props.disabled);
6908
- const isReadonly = vue.computed(() => props.readonly);
6914
+ const isDisabled = vue.toRef(() => props.disabled);
6915
+ const isReadonly = vue.toRef(() => props.readonly);
6909
6916
  const isValidating = vue.shallowRef(false);
6910
6917
  const items = vue.ref([]);
6911
6918
  const errors = vue.ref([]);
@@ -6995,7 +7002,7 @@
6995
7002
  isValidating,
6996
7003
  isValid: model,
6997
7004
  items,
6998
- validateOn: vue.toRef(props, 'validateOn')
7005
+ validateOn: vue.toRef(() => props.validateOn)
6999
7006
  });
7000
7007
  return {
7001
7008
  errors,
@@ -7176,11 +7183,6 @@
7176
7183
  }
7177
7184
  async function validate() {
7178
7185
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7179
- if (props.disabled || props.readonly) {
7180
- internalErrorMessages.value = [];
7181
- isValidating.value = false;
7182
- return internalErrorMessages.value;
7183
- }
7184
7186
  const results = [];
7185
7187
  isValidating.value = true;
7186
7188
  for (const rule of props.rules) {
@@ -7310,10 +7312,10 @@
7310
7312
  resetValidation,
7311
7313
  validate
7312
7314
  }));
7313
- const color = vue.computed(() => {
7315
+ const color = vue.toRef(() => {
7314
7316
  return props.error || props.disabled ? undefined : props.focused ? props.color : props.baseColor;
7315
7317
  });
7316
- const iconColor = vue.computed(() => {
7318
+ const iconColor = vue.toRef(() => {
7317
7319
  if (!props.iconColor) return undefined;
7318
7320
  return props.iconColor === true ? color.value : props.iconColor;
7319
7321
  });
@@ -7403,7 +7405,6 @@
7403
7405
  blur
7404
7406
  } = useFocus(props);
7405
7407
  const uid = vue.useId();
7406
- const id = vue.computed(() => props.id || `checkbox-${uid}`);
7407
7408
  useRender(() => {
7408
7409
  const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
7409
7410
  const inputProps = VInput.filterProps(props);
@@ -7413,7 +7414,7 @@
7413
7414
  }, rootAttrs, inputProps, {
7414
7415
  "modelValue": model.value,
7415
7416
  "onUpdate:modelValue": $event => model.value = $event,
7416
- "id": id.value,
7417
+ "id": props.id || `checkbox-${uid}`,
7417
7418
  "focused": isFocused.value,
7418
7419
  "style": props.style
7419
7420
  }), {
@@ -7597,7 +7598,7 @@
7597
7598
  return false;
7598
7599
  }
7599
7600
  });
7600
- const displayClasses = vue.computed(() => {
7601
+ const displayClasses = vue.toRef(() => {
7601
7602
  if (!name) return {};
7602
7603
  return {
7603
7604
  [`${name}--mobile`]: mobile.value
@@ -7712,7 +7713,7 @@
7712
7713
  const goTo = {
7713
7714
  ...goToInstance,
7714
7715
  // can be set via VLocaleProvider
7715
- rtl: vue.computed(() => goToInstance.rtl.value || isRtl.value)
7716
+ rtl: vue.toRef(() => goToInstance.rtl.value || isRtl.value)
7716
7717
  };
7717
7718
  async function go(target, options) {
7718
7719
  return scrollTo(target, mergeDeep(_options, options), false, goTo);
@@ -8204,11 +8205,11 @@
8204
8205
  } = useGroup(props, VChipGroupSymbol);
8205
8206
  provideDefaults({
8206
8207
  VChip: {
8207
- baseColor: vue.toRef(props, 'baseColor'),
8208
- color: vue.toRef(props, 'color'),
8209
- disabled: vue.toRef(props, 'disabled'),
8210
- filter: vue.toRef(props, 'filter'),
8211
- variant: vue.toRef(props, 'variant')
8208
+ baseColor: vue.toRef(() => props.baseColor),
8209
+ color: vue.toRef(() => props.color),
8210
+ disabled: vue.toRef(() => props.disabled),
8211
+ filter: vue.toRef(() => props.filter),
8212
+ variant: vue.toRef(() => props.variant)
8212
8213
  }
8213
8214
  });
8214
8215
  useRender(() => {
@@ -8334,9 +8335,9 @@
8334
8335
  const isActive = useProxiedModel(props, 'modelValue');
8335
8336
  const group = useGroupItem(props, VChipGroupSymbol, false);
8336
8337
  const link = useLink(props, attrs);
8337
- const isLink = vue.computed(() => props.link !== false && link.isLink.value);
8338
+ const isLink = vue.toRef(() => props.link !== false && link.isLink.value);
8338
8339
  const isClickable = vue.computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
8339
- const closeProps = vue.computed(() => ({
8340
+ const closeProps = vue.toRef(() => ({
8340
8341
  'aria-label': t(props.closeLabel),
8341
8342
  onClick(e) {
8342
8343
  e.preventDefault();
@@ -8345,18 +8346,17 @@
8345
8346
  emit('click:close', e);
8346
8347
  }
8347
8348
  }));
8348
- const variantProps = vue.computed(() => {
8349
+ const {
8350
+ colorClasses,
8351
+ colorStyles,
8352
+ variantClasses
8353
+ } = useVariant(() => {
8349
8354
  const showColor = !group || group.isSelected.value;
8350
8355
  return {
8351
8356
  color: showColor ? props.color ?? props.baseColor : props.baseColor,
8352
8357
  variant: props.variant
8353
8358
  };
8354
8359
  });
8355
- const {
8356
- colorClasses,
8357
- colorStyles,
8358
- variantClasses
8359
- } = useVariant(variantProps);
8360
8360
  function onClick(e) {
8361
8361
  emit('click', e);
8362
8362
  if (!isClickable.value) return;
@@ -9023,8 +9023,8 @@
9023
9023
  id: vue.shallowRef(),
9024
9024
  root: {
9025
9025
  opened,
9026
- activatable: vue.toRef(props, 'activatable'),
9027
- selectable: vue.toRef(props, 'selectable'),
9026
+ activatable: vue.toRef(() => props.activatable),
9027
+ selectable: vue.toRef(() => props.selectable),
9028
9028
  activated,
9029
9029
  selected,
9030
9030
  selectedValues: vue.computed(() => {
@@ -9153,7 +9153,7 @@
9153
9153
  const useNestedItem = (id, isGroup) => {
9154
9154
  const parent = vue.inject(VNestedSymbol, emptyNested);
9155
9155
  const uidSymbol = Symbol('nested item');
9156
- const computedId = vue.computed(() => id.value !== undefined ? id.value : uidSymbol);
9156
+ const computedId = vue.computed(() => vue.toValue(id) ?? uidSymbol);
9157
9157
  const item = {
9158
9158
  ...parent,
9159
9159
  id: computedId,
@@ -9229,7 +9229,7 @@
9229
9229
  isOpen,
9230
9230
  open,
9231
9231
  id: _id
9232
- } = useNestedItem(vue.toRef(props, 'value'), true);
9232
+ } = useNestedItem(() => props.value, true);
9233
9233
  const id = vue.computed(() => `v-list-group--id-${String(_id.value)}`);
9234
9234
  const list = useList();
9235
9235
  const {
@@ -9403,12 +9403,12 @@
9403
9403
  } = useNestedItem(id, false);
9404
9404
  const list = useList();
9405
9405
  const isActive = vue.computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
9406
- const isLink = vue.computed(() => props.link !== false && link.isLink.value);
9406
+ const isLink = vue.toRef(() => props.link !== false && link.isLink.value);
9407
9407
  const isSelectable = vue.computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
9408
9408
  const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
9409
- const roundedProps = vue.computed(() => props.rounded || props.nav);
9410
- const color = vue.computed(() => props.color ?? props.activeColor);
9411
- const variantProps = vue.computed(() => ({
9409
+ const roundedProps = vue.toRef(() => props.rounded || props.nav);
9410
+ const color = vue.toRef(() => props.color ?? props.activeColor);
9411
+ const variantProps = vue.toRef(() => ({
9412
9412
  color: isActive.value ? color.value ?? props.baseColor : props.baseColor,
9413
9413
  variant: props.variant
9414
9414
  }));
@@ -9451,7 +9451,7 @@
9451
9451
  const {
9452
9452
  roundedClasses
9453
9453
  } = useRounded(roundedProps);
9454
- const lineClasses = vue.computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
9454
+ const lineClasses = vue.toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
9455
9455
  const slotProps = vue.computed(() => ({
9456
9456
  isActive: isActive.value,
9457
9457
  select,
@@ -9621,7 +9621,7 @@
9621
9621
  const {
9622
9622
  textColorClasses,
9623
9623
  textColorStyles
9624
- } = useTextColor(vue.toRef(props, 'color'));
9624
+ } = useTextColor(() => props.color);
9625
9625
  useRender(() => {
9626
9626
  const hasText = !!(slots.default || props.title);
9627
9627
  return vue.createVNode(props.tag, {
@@ -9666,7 +9666,7 @@
9666
9666
  const {
9667
9667
  textColorClasses,
9668
9668
  textColorStyles
9669
- } = useTextColor(vue.toRef(props, 'color'));
9669
+ } = useTextColor(() => props.color);
9670
9670
  const dividerStyles = vue.computed(() => {
9671
9671
  const styles = {};
9672
9672
  if (props.length) {
@@ -10028,7 +10028,7 @@
10028
10028
  const {
10029
10029
  backgroundColorClasses,
10030
10030
  backgroundColorStyles
10031
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
10031
+ } = useBackgroundColor(() => props.bgColor);
10032
10032
  const {
10033
10033
  borderClasses
10034
10034
  } = useBorder(props);
@@ -10051,30 +10051,30 @@
10051
10051
  select,
10052
10052
  getPath
10053
10053
  } = useNested(props);
10054
- const lineClasses = vue.computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
10055
- const activeColor = vue.toRef(props, 'activeColor');
10056
- const baseColor = vue.toRef(props, 'baseColor');
10057
- const color = vue.toRef(props, 'color');
10054
+ const lineClasses = vue.toRef(() => props.lines ? `v-list--${props.lines}-line` : undefined);
10055
+ const activeColor = vue.toRef(() => props.activeColor);
10056
+ const baseColor = vue.toRef(() => props.baseColor);
10057
+ const color = vue.toRef(() => props.color);
10058
10058
  createList();
10059
10059
  provideDefaults({
10060
10060
  VListGroup: {
10061
10061
  activeColor,
10062
10062
  baseColor,
10063
10063
  color,
10064
- expandIcon: vue.toRef(props, 'expandIcon'),
10065
- collapseIcon: vue.toRef(props, 'collapseIcon')
10064
+ expandIcon: vue.toRef(() => props.expandIcon),
10065
+ collapseIcon: vue.toRef(() => props.collapseIcon)
10066
10066
  },
10067
10067
  VListItem: {
10068
- activeClass: vue.toRef(props, 'activeClass'),
10068
+ activeClass: vue.toRef(() => props.activeClass),
10069
10069
  activeColor,
10070
10070
  baseColor,
10071
10071
  color,
10072
- density: vue.toRef(props, 'density'),
10073
- disabled: vue.toRef(props, 'disabled'),
10074
- lines: vue.toRef(props, 'lines'),
10075
- nav: vue.toRef(props, 'nav'),
10076
- slim: vue.toRef(props, 'slim'),
10077
- variant: vue.toRef(props, 'variant')
10072
+ density: vue.toRef(() => props.density),
10073
+ disabled: vue.toRef(() => props.disabled),
10074
+ lines: vue.toRef(() => props.lines),
10075
+ nav: vue.toRef(() => props.nav),
10076
+ slim: vue.toRef(() => props.slim),
10077
+ variant: vue.toRef(() => props.variant)
10078
10078
  }
10079
10079
  });
10080
10080
  const isFocused = vue.shallowRef(false);
@@ -10402,13 +10402,22 @@
10402
10402
  vue.onScopeDispose(() => {
10403
10403
  observer.disconnect();
10404
10404
  });
10405
+ let targetBox = new Box({
10406
+ x: 0,
10407
+ y: 0,
10408
+ width: 0,
10409
+ height: 0
10410
+ });
10405
10411
 
10406
10412
  // eslint-disable-next-line max-statements
10407
10413
  function updateLocation() {
10408
10414
  observe = false;
10409
10415
  requestAnimationFrame(() => observe = true);
10410
10416
  if (!data.target.value || !data.contentEl.value) return;
10411
- const targetBox = getTargetBox(data.target.value);
10417
+ if (Array.isArray(data.target.value) || data.target.value.offsetParent) {
10418
+ targetBox = getTargetBox(data.target.value);
10419
+ } // Otherwise target element is hidden, use last known value
10420
+
10412
10421
  const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
10413
10422
  const scrollParents = getScrollParents(data.contentEl.value);
10414
10423
  const viewportMargin = 12;
@@ -11118,7 +11127,7 @@
11118
11127
  }, 'lazy');
11119
11128
  function useLazy(props, active) {
11120
11129
  const isBooted = vue.shallowRef(false);
11121
- const hasContent = vue.computed(() => isBooted.value || props.eager || active.value);
11130
+ const hasContent = vue.toRef(() => isBooted.value || props.eager || active.value);
11122
11131
  vue.watch(active, () => isBooted.value = true);
11123
11132
  function onAfterLeave() {
11124
11133
  if (!props.eager) isBooted.value = false;
@@ -11155,10 +11164,10 @@
11155
11164
  activeChildren: new Set()
11156
11165
  });
11157
11166
  vue.provide(StackSymbol, stack);
11158
- const _zIndex = vue.shallowRef(Number(zIndex.value));
11167
+ const _zIndex = vue.shallowRef(Number(vue.toValue(zIndex)));
11159
11168
  useToggleScope(isActive, () => {
11160
11169
  const lastZIndex = globalStack.at(-1)?.[1];
11161
- _zIndex.value = lastZIndex ? lastZIndex + 10 : Number(zIndex.value);
11170
+ _zIndex.value = lastZIndex ? lastZIndex + 10 : Number(vue.toValue(zIndex));
11162
11171
  if (createStackEntry) {
11163
11172
  globalStack.push([vm.uid, _zIndex.value]);
11164
11173
  }
@@ -11178,11 +11187,11 @@
11178
11187
  setTimeout(() => globalTop.value = _isTop);
11179
11188
  });
11180
11189
  }
11181
- const localTop = vue.computed(() => !stack.activeChildren.size);
11190
+ const localTop = vue.toRef(() => !stack.activeChildren.size);
11182
11191
  return {
11183
11192
  globalTop: vue.readonly(globalTop),
11184
11193
  localTop,
11185
- stackStyles: vue.computed(() => ({
11194
+ stackStyles: vue.toRef(() => ({
11186
11195
  zIndex: _zIndex.value
11187
11196
  }))
11188
11197
  };
@@ -11399,14 +11408,14 @@
11399
11408
  hasContent,
11400
11409
  onAfterLeave: _onAfterLeave
11401
11410
  } = useLazy(props, isActive);
11402
- const scrimColor = useBackgroundColor(vue.computed(() => {
11411
+ const scrimColor = useBackgroundColor(() => {
11403
11412
  return typeof props.scrim === 'string' ? props.scrim : null;
11404
- }));
11413
+ });
11405
11414
  const {
11406
11415
  globalTop,
11407
11416
  localTop,
11408
11417
  stackStyles
11409
- } = useStack(isActive, vue.toRef(props, 'zIndex'), props._disableGlobalStack);
11418
+ } = useStack(isActive, () => props.zIndex, props._disableGlobalStack);
11410
11419
  const {
11411
11420
  activatorEl,
11412
11421
  activatorRef,
@@ -11732,7 +11741,7 @@
11732
11741
  isRtl
11733
11742
  } = useRtl();
11734
11743
  const uid = vue.useId();
11735
- const id = vue.computed(() => props.id || `v-menu-${uid}`);
11744
+ const id = vue.toRef(() => props.id || `v-menu-${uid}`);
11736
11745
  const overlay = vue.ref();
11737
11746
  const parent = vue.inject(VMenuSymbol, null);
11738
11747
  const openChildren = vue.shallowRef(new Set());
@@ -11900,7 +11909,7 @@
11900
11909
  let {
11901
11910
  slots
11902
11911
  } = _ref;
11903
- const counter = vue.computed(() => {
11912
+ const counter = vue.toRef(() => {
11904
11913
  return props.max ? `${props.value} / ${props.max}` : String(props.value);
11905
11914
  });
11906
11915
  useRender(() => vue.createVNode(MaybeTransition, {
@@ -12027,12 +12036,12 @@
12027
12036
  const {
12028
12037
  rtlClasses
12029
12038
  } = useRtl();
12030
- const isActive = vue.computed(() => props.dirty || props.active);
12031
- const hasLabel = vue.computed(() => !!(props.label || slots.label));
12032
- const hasFloatingLabel = vue.computed(() => !props.singleLine && hasLabel.value);
12039
+ const isActive = vue.toRef(() => props.dirty || props.active);
12040
+ const hasLabel = vue.toRef(() => !!(props.label || slots.label));
12041
+ const hasFloatingLabel = vue.toRef(() => !props.singleLine && hasLabel.value);
12033
12042
  const uid = vue.useId();
12034
12043
  const id = vue.computed(() => props.id || `input-${uid}`);
12035
- const messagesId = vue.computed(() => `${id.value}-messages`);
12044
+ const messagesId = vue.toRef(() => `${id.value}-messages`);
12036
12045
  const labelRef = vue.ref();
12037
12046
  const floatingLabelRef = vue.ref();
12038
12047
  const controlRef = vue.ref();
@@ -12047,7 +12056,7 @@
12047
12056
  const {
12048
12057
  backgroundColorClasses,
12049
12058
  backgroundColorStyles
12050
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
12059
+ } = useBackgroundColor(() => props.bgColor);
12051
12060
  const {
12052
12061
  textColorClasses,
12053
12062
  textColorStyles
@@ -12774,7 +12783,7 @@
12774
12783
  paddingTop,
12775
12784
  paddingBottom,
12776
12785
  computedItems
12777
- } = useVirtual(props, vue.toRef(props, 'items'));
12786
+ } = useVirtual(props, vue.toRef(() => props.items));
12778
12787
  useToggleScope(() => props.renderless, () => {
12779
12788
  function handleListeners() {
12780
12789
  let add = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
@@ -13011,7 +13020,7 @@
13011
13020
  _menu.value = v;
13012
13021
  }
13013
13022
  });
13014
- const label = vue.computed(() => menu.value ? props.closeText : props.openText);
13023
+ const label = vue.toRef(() => menu.value ? props.closeText : props.openText);
13015
13024
  const computedMenuProps = vue.computed(() => {
13016
13025
  return {
13017
13026
  ...props.menuProps,
@@ -13513,7 +13522,6 @@
13513
13522
  const vMenuRef = vue.ref();
13514
13523
  const vVirtualScrollRef = vue.ref();
13515
13524
  const selectionIndex = vue.shallowRef(-1);
13516
- const color = vue.computed(() => vTextFieldRef.value?.color);
13517
13525
  const {
13518
13526
  items,
13519
13527
  transformIn,
@@ -13522,7 +13530,7 @@
13522
13530
  const {
13523
13531
  textColorClasses,
13524
13532
  textColorStyles
13525
- } = useTextColor(color);
13533
+ } = useTextColor(() => vTextFieldRef.value?.color);
13526
13534
  const search = useProxiedModel(props, 'search', '');
13527
13535
  const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
13528
13536
  const transformed = transformOut(v);
@@ -13971,7 +13979,7 @@
13971
13979
  const {
13972
13980
  backgroundColorClasses,
13973
13981
  backgroundColorStyles
13974
- } = useBackgroundColor(vue.toRef(props, 'color'));
13982
+ } = useBackgroundColor(() => props.color);
13975
13983
  const {
13976
13984
  roundedClasses
13977
13985
  } = useRounded(props);
@@ -13981,7 +13989,7 @@
13981
13989
  const {
13982
13990
  textColorClasses,
13983
13991
  textColorStyles
13984
- } = useTextColor(vue.toRef(props, 'textColor'));
13992
+ } = useTextColor(() => props.textColor);
13985
13993
  const {
13986
13994
  themeClasses
13987
13995
  } = useTheme();
@@ -14093,7 +14101,7 @@
14093
14101
  const {
14094
14102
  backgroundColorClasses,
14095
14103
  backgroundColorStyles
14096
- } = useBackgroundColor(props, 'bgColor');
14104
+ } = useBackgroundColor(() => props.bgColor);
14097
14105
  const {
14098
14106
  borderClasses
14099
14107
  } = useBorder(props);
@@ -14122,8 +14130,8 @@
14122
14130
  const {
14123
14131
  themeClasses
14124
14132
  } = provideTheme(props);
14125
- const color = vue.toRef(props, 'color');
14126
- const density = vue.toRef(props, 'density');
14133
+ const color = vue.toRef(() => props.color);
14134
+ const density = vue.toRef(() => props.density);
14127
14135
  provideDefaults({
14128
14136
  VBannerActions: {
14129
14137
  color,
@@ -14232,7 +14240,7 @@
14232
14240
  const {
14233
14241
  backgroundColorClasses,
14234
14242
  backgroundColorStyles
14235
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
14243
+ } = useBackgroundColor(() => props.bgColor);
14236
14244
  const {
14237
14245
  densityClasses
14238
14246
  } = useDensity(props);
@@ -14252,19 +14260,19 @@
14252
14260
  } = useLayoutItem({
14253
14261
  id: props.name,
14254
14262
  order: vue.computed(() => parseInt(props.order, 10)),
14255
- position: vue.computed(() => 'bottom'),
14256
- layoutSize: vue.computed(() => isActive.value ? height.value : 0),
14263
+ position: vue.toRef(() => 'bottom'),
14264
+ layoutSize: vue.toRef(() => isActive.value ? height.value : 0),
14257
14265
  elementSize: height,
14258
14266
  active: isActive,
14259
- absolute: vue.toRef(props, 'absolute')
14267
+ absolute: vue.toRef(() => props.absolute)
14260
14268
  });
14261
14269
  useGroup(props, VBtnToggleSymbol);
14262
14270
  provideDefaults({
14263
14271
  VBtn: {
14264
- baseColor: vue.toRef(props, 'baseColor'),
14265
- color: vue.toRef(props, 'color'),
14266
- density: vue.toRef(props, 'density'),
14267
- stacked: vue.computed(() => props.mode !== 'horizontal'),
14272
+ baseColor: vue.toRef(() => props.baseColor),
14273
+ color: vue.toRef(() => props.color),
14274
+ density: vue.toRef(() => props.density),
14275
+ stacked: vue.toRef(() => props.mode !== 'horizontal'),
14268
14276
  variant: 'text'
14269
14277
  }
14270
14278
  }, {
@@ -14500,11 +14508,10 @@
14500
14508
  } = _ref;
14501
14509
  const link = useLink(props, attrs);
14502
14510
  const isActive = vue.computed(() => props.active || link.isActive?.value);
14503
- const color = vue.computed(() => isActive.value ? props.activeColor : props.color);
14504
14511
  const {
14505
14512
  textColorClasses,
14506
14513
  textColorStyles
14507
- } = useTextColor(color);
14514
+ } = useTextColor(() => isActive.value ? props.activeColor : props.color);
14508
14515
  useRender(() => {
14509
14516
  return vue.createVNode(props.tag, {
14510
14517
  "class": ['v-breadcrumbs-item', {
@@ -14559,7 +14566,7 @@
14559
14566
  const {
14560
14567
  backgroundColorClasses,
14561
14568
  backgroundColorStyles
14562
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
14569
+ } = useBackgroundColor(() => props.bgColor);
14563
14570
  const {
14564
14571
  densityClasses
14565
14572
  } = useDensity(props);
@@ -14568,13 +14575,13 @@
14568
14575
  } = useRounded(props);
14569
14576
  provideDefaults({
14570
14577
  VBreadcrumbsDivider: {
14571
- divider: vue.toRef(props, 'divider')
14578
+ divider: vue.toRef(() => props.divider)
14572
14579
  },
14573
14580
  VBreadcrumbsItem: {
14574
- activeClass: vue.toRef(props, 'activeClass'),
14575
- activeColor: vue.toRef(props, 'activeColor'),
14576
- color: vue.toRef(props, 'color'),
14577
- disabled: vue.toRef(props, 'disabled')
14581
+ activeClass: vue.toRef(() => props.activeClass),
14582
+ activeColor: vue.toRef(() => props.activeColor),
14583
+ color: vue.toRef(() => props.color),
14584
+ disabled: vue.toRef(() => props.disabled)
14578
14585
  }
14579
14586
  });
14580
14587
  const items = vue.computed(() => props.items.map(item => {
@@ -14897,10 +14904,10 @@
14897
14904
  roundedClasses
14898
14905
  } = useRounded(props);
14899
14906
  const link = useLink(props, attrs);
14900
- const isLink = vue.computed(() => props.link !== false && link.isLink.value);
14901
- const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value));
14902
14907
  useRender(() => {
14903
- const Tag = isLink.value ? 'a' : props.tag;
14908
+ const isLink = props.link !== false && link.isLink.value;
14909
+ const isClickable = !props.disabled && props.link !== false && (props.link || link.isClickable.value);
14910
+ const Tag = isLink ? 'a' : props.tag;
14904
14911
  const hasTitle = !!(slots.title || props.title != null);
14905
14912
  const hasSubtitle = !!(slots.subtitle || props.subtitle != null);
14906
14913
  const hasHeader = hasTitle || hasSubtitle;
@@ -14914,10 +14921,10 @@
14914
14921
  'v-card--disabled': props.disabled,
14915
14922
  'v-card--flat': props.flat,
14916
14923
  'v-card--hover': props.hover && !(props.disabled || props.flat),
14917
- 'v-card--link': isClickable.value
14924
+ 'v-card--link': isClickable
14918
14925
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
14919
14926
  "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
14920
- "onClick": isClickable.value && link.navigate,
14927
+ "onClick": isClickable && link.navigate,
14921
14928
  "tabindex": props.disabled ? -1 : undefined
14922
14929
  }, link.linkProps), {
14923
14930
  default: () => [hasImage && vue.createVNode("div", {
@@ -14962,8 +14969,8 @@
14962
14969
  default: () => [slots.text?.() ?? props.text]
14963
14970
  }), slots.default?.(), slots.actions && vue.createVNode(VCardActions, null, {
14964
14971
  default: slots.actions
14965
- }), genOverlays(isClickable.value, 'v-card')]
14966
- }), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
14972
+ }), genOverlays(isClickable, 'v-card')]
14973
+ }), [[vue.resolveDirective("ripple"), isClickable && props.ripple]]);
14967
14974
  });
14968
14975
  return {};
14969
14976
  }
@@ -15176,8 +15183,8 @@
15176
15183
  transitionHeight,
15177
15184
  rootRef
15178
15185
  });
15179
- const canMoveBack = vue.computed(() => props.continuous || activeIndex.value !== 0);
15180
- const canMoveForward = vue.computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1);
15186
+ const canMoveBack = vue.toRef(() => props.continuous || activeIndex.value !== 0);
15187
+ const canMoveForward = vue.toRef(() => props.continuous || activeIndex.value !== group.items.value.length - 1);
15181
15188
  function prev() {
15182
15189
  canMoveBack.value && group.prev();
15183
15190
  }
@@ -16079,7 +16086,7 @@
16079
16086
  const {
16080
16087
  isRtl
16081
16088
  } = useRtl();
16082
- const isReversed = vue.toRef(props, 'reverse');
16089
+ const isReversed = vue.toRef(() => props.reverse);
16083
16090
  const vertical = vue.computed(() => props.direction === 'vertical');
16084
16091
  const indexFromEnd = vue.computed(() => vertical.value !== isReversed.value);
16085
16092
  const {
@@ -16093,7 +16100,7 @@
16093
16100
  const tickSize = vue.computed(() => parseInt(props.tickSize, 10));
16094
16101
  const trackSize = vue.computed(() => parseInt(props.trackSize, 10));
16095
16102
  const numTicks = vue.computed(() => (max.value - min.value) / step.value);
16096
- const disabled = vue.toRef(props, 'disabled');
16103
+ const disabled = vue.toRef(() => props.disabled);
16097
16104
  const thumbColor = vue.computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);
16098
16105
  const trackColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);
16099
16106
  const trackFillColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);
@@ -16195,7 +16202,7 @@
16195
16202
  const percentage = (val - min.value) / (max.value - min.value) * 100;
16196
16203
  return clamp(isNaN(percentage) ? 0 : percentage, 0, 100);
16197
16204
  };
16198
- const showTicks = vue.toRef(props, 'showTicks');
16205
+ const showTicks = vue.toRef(() => props.showTicks);
16199
16206
  const parsedTicks = vue.computed(() => {
16200
16207
  if (!showTicks.value) return [];
16201
16208
  if (!props.ticks) {
@@ -16226,11 +16233,11 @@
16226
16233
  }));
16227
16234
  const data = {
16228
16235
  activeThumbRef,
16229
- color: vue.toRef(props, 'color'),
16236
+ color: vue.toRef(() => props.color),
16230
16237
  decimals,
16231
16238
  disabled,
16232
- direction: vue.toRef(props, 'direction'),
16233
- elevation: vue.toRef(props, 'elevation'),
16239
+ direction: vue.toRef(() => props.direction),
16240
+ elevation: vue.toRef(() => props.elevation),
16234
16241
  hasLabels,
16235
16242
  isReversed,
16236
16243
  indexFromEnd,
@@ -16243,16 +16250,16 @@
16243
16250
  parsedTicks,
16244
16251
  parseMouseMove,
16245
16252
  position,
16246
- readonly: vue.toRef(props, 'readonly'),
16247
- rounded: vue.toRef(props, 'rounded'),
16253
+ readonly: vue.toRef(() => props.readonly),
16254
+ rounded: vue.toRef(() => props.rounded),
16248
16255
  roundValue,
16249
16256
  showTicks,
16250
16257
  startOffset,
16251
16258
  step,
16252
16259
  thumbSize,
16253
16260
  thumbColor,
16254
- thumbLabel: vue.toRef(props, 'thumbLabel'),
16255
- ticks: vue.toRef(props, 'ticks'),
16261
+ thumbLabel: vue.toRef(() => props.thumbLabel),
16262
+ ticks: vue.toRef(() => props.ticks),
16256
16263
  tickSize,
16257
16264
  trackColor,
16258
16265
  trackContainerRef,
@@ -17171,7 +17178,7 @@
17171
17178
  const {
17172
17179
  backgroundColorClasses,
17173
17180
  backgroundColorStyles
17174
- } = useBackgroundColor(vue.toRef(props, 'color'));
17181
+ } = useBackgroundColor(() => props.color);
17175
17182
  const {
17176
17183
  borderClasses
17177
17184
  } = useBorder(props);
@@ -17218,7 +17225,7 @@
17218
17225
  const {
17219
17226
  backgroundColorClasses,
17220
17227
  backgroundColorStyles
17221
- } = useBackgroundColor(vue.toRef(props, 'color'));
17228
+ } = useBackgroundColor(() => props.color);
17222
17229
  useRender(() => {
17223
17230
  const sheetProps = VSheet.filterProps(props);
17224
17231
  const hasTitle = !!(props.title || slots.title);
@@ -18203,7 +18210,6 @@
18203
18210
  const vVirtualScrollRef = vue.ref();
18204
18211
  const selectionIndex = vue.shallowRef(-1);
18205
18212
  let cleared = false;
18206
- const color = vue.computed(() => vTextFieldRef.value?.color);
18207
18213
  const {
18208
18214
  items,
18209
18215
  transformIn,
@@ -18212,7 +18218,7 @@
18212
18218
  const {
18213
18219
  textColorClasses,
18214
18220
  textColorStyles
18215
- } = useTextColor(color);
18221
+ } = useTextColor(() => vTextFieldRef.value?.color);
18216
18222
  const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
18217
18223
  const transformed = transformOut(v);
18218
18224
  return props.multiple ? transformed : transformed[0] ?? null;
@@ -18267,7 +18273,7 @@
18267
18273
  _menu.value = v;
18268
18274
  }
18269
18275
  });
18270
- const label = vue.computed(() => menu.value ? props.closeText : props.openText);
18276
+ const label = vue.toRef(() => menu.value ? props.closeText : props.openText);
18271
18277
  vue.watch(_search, value => {
18272
18278
  if (cleared) {
18273
18279
  // wait for clear to finish, VTextField sets _search to null
@@ -18773,7 +18779,7 @@
18773
18779
  }, 'DataTable-expand');
18774
18780
  const VDataTableExpandedKey = Symbol.for('vuetify:datatable:expanded');
18775
18781
  function provideExpanded(props) {
18776
- const expandOnClick = vue.toRef(props, 'expandOnClick');
18782
+ const expandOnClick = vue.toRef(() => props.expandOnClick);
18777
18783
  const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {
18778
18784
  return new Set(v);
18779
18785
  }, v => {
@@ -18960,23 +18966,23 @@
18960
18966
  search
18961
18967
  } = _ref;
18962
18968
  const vm = getCurrentInstance('VDataTable');
18963
- const options = vue.computed(() => ({
18969
+ const options = () => ({
18964
18970
  page: page.value,
18965
18971
  itemsPerPage: itemsPerPage.value,
18966
18972
  sortBy: sortBy.value,
18967
18973
  groupBy: groupBy.value,
18968
18974
  search: search.value
18969
- }));
18975
+ });
18970
18976
  let oldOptions = null;
18971
- vue.watch(options, () => {
18972
- if (deepEqual(oldOptions, options.value)) return;
18977
+ vue.watch(options, value => {
18978
+ if (deepEqual(oldOptions, value)) return;
18973
18979
 
18974
18980
  // Reset page when searching
18975
- if (oldOptions && oldOptions.search !== options.value.search) {
18981
+ if (oldOptions && oldOptions.search !== value.search) {
18976
18982
  page.value = 1;
18977
18983
  }
18978
- vm.emit('update:options', options.value);
18979
- oldOptions = options.value;
18984
+ vm.emit('update:options', value);
18985
+ oldOptions = value;
18980
18986
  }, {
18981
18987
  deep: true,
18982
18988
  immediate: true
@@ -19257,7 +19263,7 @@
19257
19263
  });
19258
19264
  return !!items.length && isSelected(items);
19259
19265
  });
19260
- const showSelectAll = vue.computed(() => selectStrategy.value.showSelectAll);
19266
+ const showSelectAll = vue.toRef(() => selectStrategy.value.showSelectAll);
19261
19267
  const data = {
19262
19268
  toggleSelect,
19263
19269
  select,
@@ -19295,8 +19301,8 @@
19295
19301
  const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
19296
19302
  function createSort(props) {
19297
19303
  const sortBy = useProxiedModel(props, 'sortBy');
19298
- const mustSort = vue.toRef(props, 'mustSort');
19299
- const multiSort = vue.toRef(props, 'multiSort');
19304
+ const mustSort = vue.toRef(() => props.mustSort);
19305
+ const multiSort = vue.toRef(() => props.multiSort);
19300
19306
  return {
19301
19307
  sortBy,
19302
19308
  mustSort,
@@ -19514,7 +19520,7 @@
19514
19520
  slots
19515
19521
  } = _ref;
19516
19522
  const groupBy = useProxiedModel(props, 'groupBy');
19517
- const search = vue.toRef(props, 'search');
19523
+ const search = vue.toRef(() => props.search);
19518
19524
  const {
19519
19525
  items
19520
19526
  } = useDataIteratorItems(props);
@@ -19558,7 +19564,7 @@
19558
19564
  const {
19559
19565
  flatItems
19560
19566
  } = useGroupedItems(sortedItems, groupBy, opened);
19561
- const itemsLength = vue.computed(() => flatItems.value.length);
19567
+ const itemsLength = vue.toRef(() => flatItems.value.length);
19562
19568
  const {
19563
19569
  startIndex,
19564
19570
  stopIndex,
@@ -19838,13 +19844,13 @@
19838
19844
  } = useRefs();
19839
19845
  provideDefaults({
19840
19846
  VPaginationBtn: {
19841
- color: vue.toRef(props, 'color'),
19842
- border: vue.toRef(props, 'border'),
19843
- density: vue.toRef(props, 'density'),
19844
- size: vue.toRef(props, 'size'),
19845
- variant: vue.toRef(props, 'variant'),
19846
- rounded: vue.toRef(props, 'rounded'),
19847
- elevation: vue.toRef(props, 'elevation')
19847
+ color: vue.toRef(() => props.color),
19848
+ border: vue.toRef(() => props.border),
19849
+ density: vue.toRef(() => props.density),
19850
+ size: vue.toRef(() => props.size),
19851
+ variant: vue.toRef(() => props.variant),
19852
+ rounded: vue.toRef(() => props.rounded),
19853
+ elevation: vue.toRef(() => props.elevation)
19848
19854
  }
19849
19855
  });
19850
19856
  const items = vue.computed(() => {
@@ -20485,7 +20491,7 @@
20485
20491
  const {
20486
20492
  backgroundColorClasses,
20487
20493
  backgroundColorStyles
20488
- } = useBackgroundColor(props, 'color');
20494
+ } = useBackgroundColor(() => props.color);
20489
20495
  const {
20490
20496
  displayClasses,
20491
20497
  mobile
@@ -21143,13 +21149,13 @@
21143
21149
  filterFunctions
21144
21150
  } = createHeaders(props, {
21145
21151
  groupBy,
21146
- showSelect: vue.toRef(props, 'showSelect'),
21147
- showExpand: vue.toRef(props, 'showExpand')
21152
+ showSelect: vue.toRef(() => props.showSelect),
21153
+ showExpand: vue.toRef(() => props.showExpand)
21148
21154
  });
21149
21155
  const {
21150
21156
  items
21151
21157
  } = useDataTableItems(props, columns);
21152
- const search = vue.toRef(props, 'search');
21158
+ const search = vue.toRef(() => props.search);
21153
21159
  const {
21154
21160
  filteredItems
21155
21161
  } = useFilter(props, items, search, {
@@ -21232,10 +21238,10 @@
21232
21238
  });
21233
21239
  provideDefaults({
21234
21240
  VDataTableRows: {
21235
- hideNoData: vue.toRef(props, 'hideNoData'),
21236
- noDataText: vue.toRef(props, 'noDataText'),
21237
- loading: vue.toRef(props, 'loading'),
21238
- loadingText: vue.toRef(props, 'loadingText')
21241
+ hideNoData: vue.toRef(() => props.hideNoData),
21242
+ noDataText: vue.toRef(() => props.noDataText),
21243
+ loading: vue.toRef(() => props.loading),
21244
+ loadingText: vue.toRef(() => props.loadingText)
21239
21245
  }
21240
21246
  });
21241
21247
  const slotProps = vue.computed(() => ({
@@ -21332,13 +21338,13 @@
21332
21338
  sortRawFunctions
21333
21339
  } = createHeaders(props, {
21334
21340
  groupBy,
21335
- showSelect: vue.toRef(props, 'showSelect'),
21336
- showExpand: vue.toRef(props, 'showExpand')
21341
+ showSelect: vue.toRef(() => props.showSelect),
21342
+ showExpand: vue.toRef(() => props.showExpand)
21337
21343
  });
21338
21344
  const {
21339
21345
  items
21340
21346
  } = useDataTableItems(props, columns);
21341
- const search = vue.toRef(props, 'search');
21347
+ const search = vue.toRef(() => props.search);
21342
21348
  const {
21343
21349
  filteredItems
21344
21350
  } = useFilter(props, items, search, {
@@ -21414,10 +21420,10 @@
21414
21420
  });
21415
21421
  provideDefaults({
21416
21422
  VDataTableRows: {
21417
- hideNoData: vue.toRef(props, 'hideNoData'),
21418
- noDataText: vue.toRef(props, 'noDataText'),
21419
- loading: vue.toRef(props, 'loading'),
21420
- loadingText: vue.toRef(props, 'loadingText')
21423
+ hideNoData: vue.toRef(() => props.hideNoData),
21424
+ noDataText: vue.toRef(() => props.noDataText),
21425
+ loading: vue.toRef(() => props.loading),
21426
+ loadingText: vue.toRef(() => props.loadingText)
21421
21427
  }
21422
21428
  });
21423
21429
  const slotProps = vue.computed(() => ({
@@ -21570,8 +21576,8 @@
21570
21576
  headers
21571
21577
  } = createHeaders(props, {
21572
21578
  groupBy,
21573
- showSelect: vue.toRef(props, 'showSelect'),
21574
- showExpand: vue.toRef(props, 'showExpand')
21579
+ showSelect: vue.toRef(() => props.showSelect),
21580
+ showExpand: vue.toRef(() => props.showExpand)
21575
21581
  });
21576
21582
  const {
21577
21583
  items
@@ -21626,7 +21632,7 @@
21626
21632
  itemsPerPage,
21627
21633
  sortBy,
21628
21634
  groupBy,
21629
- search: vue.toRef(props, 'search')
21635
+ search: vue.toRef(() => props.search)
21630
21636
  });
21631
21637
  vue.provide('v-data-table', {
21632
21638
  toggleSort,
@@ -21634,10 +21640,10 @@
21634
21640
  });
21635
21641
  provideDefaults({
21636
21642
  VDataTableRows: {
21637
- hideNoData: vue.toRef(props, 'hideNoData'),
21638
- noDataText: vue.toRef(props, 'noDataText'),
21639
- loading: vue.toRef(props, 'loading'),
21640
- loadingText: vue.toRef(props, 'loadingText')
21643
+ hideNoData: vue.toRef(() => props.hideNoData),
21644
+ noDataText: vue.toRef(() => props.noDataText),
21645
+ loading: vue.toRef(() => props.loading),
21646
+ loadingText: vue.toRef(() => props.loadingText)
21641
21647
  }
21642
21648
  });
21643
21649
  const slotProps = vue.computed(() => ({
@@ -22107,7 +22113,7 @@
22107
22113
  const {
22108
22114
  backgroundColorClasses,
22109
22115
  backgroundColorStyles
22110
- } = useBackgroundColor(props, 'color');
22116
+ } = useBackgroundColor(() => props.color);
22111
22117
  function onClick() {
22112
22118
  emit('click');
22113
22119
  }
@@ -22246,21 +22252,21 @@
22246
22252
  const isSame = adapter.isSameDay(date, month.value);
22247
22253
  return {
22248
22254
  date,
22249
- isoDate,
22250
22255
  formatted: adapter.format(date, 'keyboardDate'),
22251
- year: adapter.getYear(date),
22252
- month: adapter.getMonth(date),
22253
- isDisabled: isDisabled(date),
22254
- isWeekStart: index % 7 === 0,
22255
- isWeekEnd: index % 7 === 6,
22256
- isToday: adapter.isSameDay(date, today),
22257
22256
  isAdjacent,
22258
- isHidden: isAdjacent && !props.showAdjacentMonths,
22259
- isStart,
22260
- isSelected: model.value.some(value => adapter.isSameDay(date, value)),
22257
+ isDisabled: isDisabled(date),
22261
22258
  isEnd,
22259
+ isHidden: isAdjacent && !props.showAdjacentMonths,
22262
22260
  isSame,
22263
- localized: adapter.format(date, 'dayOfMonth')
22261
+ isSelected: model.value.some(value => adapter.isSameDay(date, value)),
22262
+ isStart,
22263
+ isToday: adapter.isSameDay(date, today),
22264
+ isWeekEnd: index % 7 === 6,
22265
+ isWeekStart: index % 7 === 0,
22266
+ isoDate,
22267
+ localized: adapter.format(date, 'dayOfMonth'),
22268
+ month: adapter.getMonth(date),
22269
+ year: adapter.getYear(date)
22264
22270
  };
22265
22271
  });
22266
22272
  }
@@ -22348,7 +22354,7 @@
22348
22354
  const rangeStart = vue.shallowRef();
22349
22355
  const rangeStop = vue.shallowRef();
22350
22356
  const isReverse = vue.shallowRef(false);
22351
- const transition = vue.computed(() => {
22357
+ const transition = vue.toRef(() => {
22352
22358
  return !isReverse.value ? props.transition : props.reverseTransition;
22353
22359
  });
22354
22360
  if (props.multiple === 'range' && model.value.length > 0) {
@@ -22728,7 +22734,7 @@
22728
22734
  }
22729
22735
  return value && adapter.isValid(value) ? value : today;
22730
22736
  });
22731
- const headerColor = vue.computed(() => props.headerColor ?? props.color);
22737
+ const headerColor = vue.toRef(() => props.headerColor ?? props.color);
22732
22738
  const month = vue.ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))));
22733
22739
  const year = vue.ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));
22734
22740
  const isReversing = vue.shallowRef(false);
@@ -22745,8 +22751,8 @@
22745
22751
  date = adapter.setYear(date, year.value);
22746
22752
  return adapter.format(date, 'monthAndYear');
22747
22753
  });
22748
- // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
22749
- const headerTransition = vue.computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
22754
+ // const headerIcon = toRef(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
22755
+ const headerTransition = vue.toRef(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
22750
22756
  const disabled = vue.computed(() => {
22751
22757
  if (props.disabled) return true;
22752
22758
  const targets = [];
@@ -22958,7 +22964,7 @@
22958
22964
  const {
22959
22965
  backgroundColorClasses,
22960
22966
  backgroundColorStyles
22961
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
22967
+ } = useBackgroundColor(() => props.bgColor);
22962
22968
  const {
22963
22969
  dimensionStyles
22964
22970
  } = useDimension(props);
@@ -23121,7 +23127,7 @@
23121
23127
  const {
23122
23128
  backgroundColorClasses,
23123
23129
  backgroundColorStyles
23124
- } = useBackgroundColor(props, 'color');
23130
+ } = useBackgroundColor(() => props.color);
23125
23131
  const {
23126
23132
  dimensionStyles
23127
23133
  } = useDimension(props);
@@ -23132,7 +23138,7 @@
23132
23138
  expandIcon: props.expandIcon,
23133
23139
  readonly: props.readonly
23134
23140
  }));
23135
- const icon = vue.computed(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);
23141
+ const icon = vue.toRef(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);
23136
23142
  useRender(() => vue.withDirectives(vue.createVNode("button", {
23137
23143
  "class": ['v-expansion-panel-title', {
23138
23144
  'v-expansion-panel-title--active': expansionPanel.isSelected.value,
@@ -23187,14 +23193,14 @@
23187
23193
  const {
23188
23194
  backgroundColorClasses,
23189
23195
  backgroundColorStyles
23190
- } = useBackgroundColor(props, 'bgColor');
23196
+ } = useBackgroundColor(() => props.bgColor);
23191
23197
  const {
23192
23198
  elevationClasses
23193
23199
  } = useElevation(props);
23194
23200
  const {
23195
23201
  roundedClasses
23196
23202
  } = useRounded(props);
23197
- const isDisabled = vue.computed(() => groupItem?.disabled.value || props.disabled);
23203
+ const isDisabled = vue.toRef(() => groupItem?.disabled.value || props.disabled);
23198
23204
  const selectedIndices = vue.computed(() => groupItem.group.items.value.reduce((arr, item, index) => {
23199
23205
  if (groupItem.group.selected.value.includes(item.id)) arr.push(index);
23200
23206
  return arr;
@@ -23285,21 +23291,21 @@
23285
23291
  const {
23286
23292
  themeClasses
23287
23293
  } = provideTheme(props);
23288
- const variantClass = vue.computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`);
23294
+ const variantClass = vue.toRef(() => props.variant && `v-expansion-panels--variant-${props.variant}`);
23289
23295
  provideDefaults({
23290
23296
  VExpansionPanel: {
23291
- bgColor: vue.toRef(props, 'bgColor'),
23292
- collapseIcon: vue.toRef(props, 'collapseIcon'),
23293
- color: vue.toRef(props, 'color'),
23294
- eager: vue.toRef(props, 'eager'),
23295
- elevation: vue.toRef(props, 'elevation'),
23296
- expandIcon: vue.toRef(props, 'expandIcon'),
23297
- focusable: vue.toRef(props, 'focusable'),
23298
- hideActions: vue.toRef(props, 'hideActions'),
23299
- readonly: vue.toRef(props, 'readonly'),
23300
- ripple: vue.toRef(props, 'ripple'),
23301
- rounded: vue.toRef(props, 'rounded'),
23302
- static: vue.toRef(props, 'static')
23297
+ bgColor: vue.toRef(() => props.bgColor),
23298
+ collapseIcon: vue.toRef(() => props.collapseIcon),
23299
+ color: vue.toRef(() => props.color),
23300
+ eager: vue.toRef(() => props.eager),
23301
+ elevation: vue.toRef(() => props.elevation),
23302
+ expandIcon: vue.toRef(() => props.expandIcon),
23303
+ focusable: vue.toRef(() => props.focusable),
23304
+ hideActions: vue.toRef(() => props.hideActions),
23305
+ readonly: vue.toRef(() => props.readonly),
23306
+ ripple: vue.toRef(() => props.ripple),
23307
+ rounded: vue.toRef(() => props.rounded),
23308
+ static: vue.toRef(() => props.static)
23303
23309
  }
23304
23310
  });
23305
23311
  useRender(() => vue.createVNode(props.tag, {
@@ -23361,7 +23367,7 @@
23361
23367
  if (!entries.length) return;
23362
23368
  height.value = entries[0].target.clientHeight;
23363
23369
  });
23364
- const hasPosition = vue.computed(() => props.app || props.absolute);
23370
+ const hasPosition = vue.toRef(() => props.app || props.absolute);
23365
23371
  const position = vue.computed(() => {
23366
23372
  if (!hasPosition.value) return false;
23367
23373
  return props.location?.split(' ').shift() ?? 'bottom';
@@ -23378,7 +23384,7 @@
23378
23384
  layoutSize: vue.computed(() => props.layout ? height.value + 24 : 0),
23379
23385
  elementSize: vue.computed(() => height.value + 24),
23380
23386
  active: vue.computed(() => props.app && model.value),
23381
- absolute: vue.toRef(props, 'absolute')
23387
+ absolute: vue.toRef(() => props.absolute)
23382
23388
  });
23383
23389
  vue.watchEffect(() => {
23384
23390
  layoutItemStyles.value = layout.layoutItemStyles.value;
@@ -23503,7 +23509,7 @@
23503
23509
  const vInputRef = vue.ref();
23504
23510
  const vFieldRef = vue.ref();
23505
23511
  const inputRef = vue.ref();
23506
- const isActive = vue.computed(() => isFocused.value || props.active);
23512
+ const isActive = vue.toRef(() => isFocused.value || props.active);
23507
23513
  const isPlainOrUnderlined = vue.computed(() => ['plain', 'underlined'].includes(props.variant));
23508
23514
  function onFocus() {
23509
23515
  if (inputRef.value !== document.activeElement) {
@@ -23676,7 +23682,7 @@
23676
23682
  const {
23677
23683
  backgroundColorClasses,
23678
23684
  backgroundColorStyles
23679
- } = useBackgroundColor(vue.toRef(props, 'color'));
23685
+ } = useBackgroundColor(() => props.color);
23680
23686
  const {
23681
23687
  borderClasses
23682
23688
  } = useBorder(props);
@@ -23698,11 +23704,11 @@
23698
23704
  const layout = useLayoutItem({
23699
23705
  id: props.name,
23700
23706
  order: vue.computed(() => parseInt(props.order, 10)),
23701
- position: vue.computed(() => 'bottom'),
23707
+ position: vue.toRef(() => 'bottom'),
23702
23708
  layoutSize: height,
23703
23709
  elementSize: vue.computed(() => props.height === 'auto' ? undefined : height.value),
23704
- active: vue.computed(() => props.app),
23705
- absolute: vue.toRef(props, 'absolute')
23710
+ active: vue.toRef(() => props.app),
23711
+ absolute: vue.toRef(() => props.absolute)
23706
23712
  });
23707
23713
  vue.watchEffect(() => {
23708
23714
  layoutItemStyles.value = layout.layoutItemStyles.value;
@@ -24175,11 +24181,11 @@
24175
24181
  } = useLayoutItem({
24176
24182
  id: props.name,
24177
24183
  order: vue.computed(() => parseInt(props.order, 10)),
24178
- position: vue.toRef(props, 'position'),
24179
- elementSize: vue.toRef(props, 'size'),
24180
- layoutSize: vue.toRef(props, 'size'),
24181
- active: vue.toRef(props, 'modelValue'),
24182
- absolute: vue.toRef(props, 'absolute')
24184
+ position: vue.toRef(() => props.position),
24185
+ elementSize: vue.toRef(() => props.size),
24186
+ layoutSize: vue.toRef(() => props.size),
24187
+ active: vue.toRef(() => props.modelValue),
24188
+ absolute: vue.toRef(() => props.absolute)
24183
24189
  });
24184
24190
  return () => vue.createVNode("div", {
24185
24191
  "class": ['v-layout-item', props.class],
@@ -24711,7 +24717,7 @@
24711
24717
  const {
24712
24718
  backgroundColorClasses,
24713
24719
  backgroundColorStyles
24714
- } = useBackgroundColor(vue.toRef(props, 'color'));
24720
+ } = useBackgroundColor(() => props.color);
24715
24721
  const {
24716
24722
  elevationClasses
24717
24723
  } = useElevation(props);
@@ -24744,7 +24750,7 @@
24744
24750
  const location = vue.computed(() => {
24745
24751
  return toPhysical(props.location, isRtl.value);
24746
24752
  });
24747
- const isPersistent = vue.computed(() => props.persistent);
24753
+ const isPersistent = vue.toRef(() => props.persistent);
24748
24754
  const isTemporary = vue.computed(() => !props.permanent && (mobile.value || props.temporary));
24749
24755
  const isSticky = vue.computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');
24750
24756
  useToggleScope(() => props.expandOnHover && props.rail != null, () => {
@@ -24770,7 +24776,7 @@
24770
24776
  isActive,
24771
24777
  isTemporary,
24772
24778
  width,
24773
- touchless: vue.toRef(props, 'touchless'),
24779
+ touchless: vue.toRef(() => props.touchless),
24774
24780
  position: location
24775
24781
  });
24776
24782
  const layoutSize = vue.computed(() => {
@@ -24787,7 +24793,7 @@
24787
24793
  layoutSize,
24788
24794
  elementSize: width,
24789
24795
  active: vue.readonly(isActive),
24790
- disableTransitions: vue.computed(() => isDragging.value),
24796
+ disableTransitions: vue.toRef(() => isDragging.value),
24791
24797
  absolute: vue.computed(() =>
24792
24798
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
24793
24799
  props.absolute || isSticky.value && typeof isStuck.value !== 'string')
@@ -24800,9 +24806,9 @@
24800
24806
  isSticky,
24801
24807
  layoutItemStyles
24802
24808
  });
24803
- const scrimColor = useBackgroundColor(vue.computed(() => {
24809
+ const scrimColor = useBackgroundColor(() => {
24804
24810
  return typeof props.scrim === 'string' ? props.scrim : null;
24805
- }));
24811
+ });
24806
24812
  const scrimStyles = vue.computed(() => ({
24807
24813
  ...(isDragging.value ? {
24808
24814
  opacity: dragProgress.value * 0.2,
@@ -25016,24 +25022,24 @@
25016
25022
  const controlVariant = vue.computed(() => {
25017
25023
  return props.hideInput ? 'stacked' : props.controlVariant;
25018
25024
  });
25019
- const incrementIcon = vue.computed(() => controlVariant.value === 'split' ? '$plus' : '$collapse');
25020
- const decrementIcon = vue.computed(() => controlVariant.value === 'split' ? '$minus' : '$expand');
25021
- const controlNodeSize = vue.computed(() => controlVariant.value === 'split' ? 'default' : 'small');
25022
- const controlNodeDefaultHeight = vue.computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
25023
- const incrementSlotProps = vue.computed(() => ({
25025
+ const incrementIcon = vue.toRef(() => controlVariant.value === 'split' ? '$plus' : '$collapse');
25026
+ const decrementIcon = vue.toRef(() => controlVariant.value === 'split' ? '$minus' : '$expand');
25027
+ const controlNodeSize = vue.toRef(() => controlVariant.value === 'split' ? 'default' : 'small');
25028
+ const controlNodeDefaultHeight = vue.toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
25029
+ const incrementSlotProps = {
25024
25030
  props: {
25025
25031
  onClick: onControlClick,
25026
25032
  onPointerup: onControlMouseup,
25027
25033
  onPointerdown: onUpControlMousedown
25028
25034
  }
25029
- }));
25030
- const decrementSlotProps = vue.computed(() => ({
25035
+ };
25036
+ const decrementSlotProps = {
25031
25037
  props: {
25032
25038
  onClick: onControlClick,
25033
25039
  onPointerup: onControlMouseup,
25034
25040
  onPointerdown: onDownControlMousedown
25035
25041
  }
25036
- }));
25042
+ };
25037
25043
  vue.watch(() => props.precision, () => formatInputValue());
25038
25044
  vue.onMounted(() => {
25039
25045
  clampModel();
@@ -25185,7 +25191,7 @@
25185
25191
  }
25186
25192
  }
25187
25193
  }, {
25188
- default: () => [slots.increment(incrementSlotProps.value)]
25194
+ default: () => [slots.increment(incrementSlotProps)]
25189
25195
  });
25190
25196
  }
25191
25197
  function decrementControlNode() {
@@ -25214,7 +25220,7 @@
25214
25220
  }
25215
25221
  }
25216
25222
  }, {
25217
- default: () => [slots.decrement(decrementSlotProps.value)]
25223
+ default: () => [slots.decrement(decrementSlotProps)]
25218
25224
  });
25219
25225
  }
25220
25226
  function controlNode() {
@@ -25414,12 +25420,12 @@
25414
25420
  }
25415
25421
  provideDefaults({
25416
25422
  VField: {
25417
- color: vue.computed(() => props.color),
25418
- bgColor: vue.computed(() => props.color),
25419
- baseColor: vue.computed(() => props.baseColor),
25420
- disabled: vue.computed(() => props.disabled),
25421
- error: vue.computed(() => props.error),
25422
- variant: vue.computed(() => props.variant)
25423
+ color: vue.toRef(() => props.color),
25424
+ bgColor: vue.toRef(() => props.color),
25425
+ baseColor: vue.toRef(() => props.baseColor),
25426
+ disabled: vue.toRef(() => props.disabled),
25427
+ error: vue.toRef(() => props.error),
25428
+ variant: vue.toRef(() => props.variant)
25423
25429
  }
25424
25430
  }, {
25425
25431
  scoped: true
@@ -26220,7 +26226,7 @@
26220
26226
  const {
26221
26227
  backgroundColorClasses,
26222
26228
  backgroundColorStyles
26223
- } = useBackgroundColor(vue.toRef(props, 'color'));
26229
+ } = useBackgroundColor(() => props.color);
26224
26230
  const {
26225
26231
  dimensionStyles
26226
26232
  } = useDimension(props);
@@ -27019,7 +27025,7 @@
27019
27025
  const {
27020
27026
  textColorClasses,
27021
27027
  textColorStyles
27022
- } = useTextColor(vue.toRef(props, 'color'));
27028
+ } = useTextColor(() => props.color);
27023
27029
  const hasLabels = vue.computed(() => {
27024
27030
  return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);
27025
27031
  });
@@ -27565,11 +27571,11 @@
27565
27571
  } = useFocus(props);
27566
27572
  const control = vue.ref();
27567
27573
  const isForcedColorsModeActive = IN_BROWSER && window.matchMedia('(forced-colors: active)').matches;
27568
- const loaderColor = vue.computed(() => {
27574
+ const loaderColor = vue.toRef(() => {
27569
27575
  return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
27570
27576
  });
27571
27577
  const uid = vue.useId();
27572
- const id = vue.computed(() => props.id || `switch-${uid}`);
27578
+ const id = vue.toRef(() => props.id || `switch-${uid}`);
27573
27579
  function onChange() {
27574
27580
  if (indeterminate.value) {
27575
27581
  indeterminate.value = false;
@@ -27720,7 +27726,7 @@
27720
27726
  const {
27721
27727
  backgroundColorClasses,
27722
27728
  backgroundColorStyles
27723
- } = useBackgroundColor(vue.toRef(props, 'color'));
27729
+ } = useBackgroundColor(() => props.color);
27724
27730
  const {
27725
27731
  elevationClasses
27726
27732
  } = useElevation(props);
@@ -27740,7 +27746,7 @@
27740
27746
  layoutSize: height,
27741
27747
  elementSize: height,
27742
27748
  active: vue.computed(() => true),
27743
- absolute: vue.toRef(props, 'absolute')
27749
+ absolute: vue.toRef(() => props.absolute)
27744
27750
  });
27745
27751
  useRender(() => vue.createVNode(props.tag, {
27746
27752
  "class": ['v-system-bar', {
@@ -27782,7 +27788,7 @@
27782
27788
  const {
27783
27789
  textColorClasses: sliderColorClasses,
27784
27790
  textColorStyles: sliderColorStyles
27785
- } = useTextColor(props, 'sliderColor');
27791
+ } = useTextColor(() => props.sliderColor);
27786
27792
  const rootEl = vue.ref();
27787
27793
  const sliderEl = vue.ref();
27788
27794
  const isHorizontal = vue.computed(() => props.direction === 'horizontal');
@@ -27975,18 +27981,18 @@
27975
27981
  const {
27976
27982
  backgroundColorClasses,
27977
27983
  backgroundColorStyles
27978
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
27984
+ } = useBackgroundColor(() => props.bgColor);
27979
27985
  const {
27980
27986
  scopeId
27981
27987
  } = useScopeId();
27982
27988
  provideDefaults({
27983
27989
  VTab: {
27984
- color: vue.toRef(props, 'color'),
27985
- direction: vue.toRef(props, 'direction'),
27986
- stacked: vue.toRef(props, 'stacked'),
27987
- fixed: vue.toRef(props, 'fixedTabs'),
27988
- sliderColor: vue.toRef(props, 'sliderColor'),
27989
- hideSlider: vue.toRef(props, 'hideSlider')
27990
+ color: vue.toRef(() => props.color),
27991
+ direction: vue.toRef(() => props.direction),
27992
+ stacked: vue.toRef(() => props.stacked),
27993
+ fixed: vue.toRef(() => props.fixedTabs),
27994
+ sliderColor: vue.toRef(() => props.sliderColor),
27995
+ hideSlider: vue.toRef(() => props.hideSlider)
27990
27996
  }
27991
27997
  });
27992
27998
  useRender(() => {
@@ -28336,7 +28342,7 @@
28336
28342
  const {
28337
28343
  backgroundColorStyles,
28338
28344
  backgroundColorClasses
28339
- } = useBackgroundColor(vue.toRef(props, 'dotColor'));
28345
+ } = useBackgroundColor(() => props.dotColor);
28340
28346
  const {
28341
28347
  roundedClasses
28342
28348
  } = useRounded(props, 'v-timeline-divider__dot');
@@ -28346,7 +28352,7 @@
28346
28352
  const {
28347
28353
  backgroundColorClasses: lineColorClasses,
28348
28354
  backgroundColorStyles: lineColorStyles
28349
- } = useBackgroundColor(vue.toRef(props, 'lineColor'));
28355
+ } = useBackgroundColor(() => props.lineColor);
28350
28356
  useRender(() => vue.createVNode("div", {
28351
28357
  "class": ['v-timeline-divider', {
28352
28358
  'v-timeline-divider--fill-dot': props.fillDot
@@ -28517,17 +28523,17 @@
28517
28523
  } = useRtl();
28518
28524
  provideDefaults({
28519
28525
  VTimelineDivider: {
28520
- lineColor: vue.toRef(props, 'lineColor')
28526
+ lineColor: vue.toRef(() => props.lineColor)
28521
28527
  },
28522
28528
  VTimelineItem: {
28523
- density: vue.toRef(props, 'density'),
28524
- dotColor: vue.toRef(props, 'dotColor'),
28525
- fillDot: vue.toRef(props, 'fillDot'),
28526
- hideOpposite: vue.toRef(props, 'hideOpposite'),
28527
- iconColor: vue.toRef(props, 'iconColor'),
28528
- lineColor: vue.toRef(props, 'lineColor'),
28529
- lineInset: vue.toRef(props, 'lineInset'),
28530
- size: vue.toRef(props, 'size')
28529
+ density: vue.toRef(() => props.density),
28530
+ dotColor: vue.toRef(() => props.dotColor),
28531
+ fillDot: vue.toRef(() => props.fillDot),
28532
+ hideOpposite: vue.toRef(() => props.hideOpposite),
28533
+ iconColor: vue.toRef(() => props.iconColor),
28534
+ lineColor: vue.toRef(() => props.lineColor),
28535
+ lineInset: vue.toRef(() => props.lineInset),
28536
+ size: vue.toRef(() => props.size)
28531
28537
  }
28532
28538
  });
28533
28539
  const sideClasses = vue.computed(() => {
@@ -28574,9 +28580,9 @@
28574
28580
  } = _ref;
28575
28581
  provideDefaults({
28576
28582
  VBtn: {
28577
- color: vue.toRef(props, 'color'),
28583
+ color: vue.toRef(() => props.color),
28578
28584
  height: 'inherit',
28579
- variant: vue.toRef(props, 'variant')
28585
+ variant: vue.toRef(() => props.variant)
28580
28586
  }
28581
28587
  });
28582
28588
  useRender(() => vue.createVNode("div", {
@@ -28623,7 +28629,7 @@
28623
28629
  scopeId
28624
28630
  } = useScopeId();
28625
28631
  const uid = vue.useId();
28626
- const id = vue.computed(() => props.id || `v-tooltip-${uid}`);
28632
+ const id = vue.toRef(() => props.id || `v-tooltip-${uid}`);
28627
28633
  const overlay = vue.ref();
28628
28634
  const location = vue.computed(() => {
28629
28635
  return props.location.split(' ').length > 1 ? props.location : props.location + ' center';
@@ -28631,7 +28637,7 @@
28631
28637
  const origin = vue.computed(() => {
28632
28638
  return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';
28633
28639
  });
28634
- const transition = vue.computed(() => {
28640
+ const transition = vue.toRef(() => {
28635
28641
  if (props.transition) return props.transition;
28636
28642
  return isActive.value ? 'scale-transition' : 'fade-transition';
28637
28643
  });
@@ -29178,7 +29184,7 @@
29178
29184
  };
29179
29185
  });
29180
29186
  }
29181
- const version$1 = "3.8.2-master.2025-04-19";
29187
+ const version$1 = "3.8.2-master.2025-04-23";
29182
29188
  createVuetify$1.version = version$1;
29183
29189
 
29184
29190
  // Vue's inject() can only be used in setup
@@ -29203,7 +29209,7 @@
29203
29209
  ...options
29204
29210
  });
29205
29211
  };
29206
- const version = "3.8.2-master.2025-04-19";
29212
+ const version = "3.8.2-master.2025-04-23";
29207
29213
  createVuetify.version = version;
29208
29214
 
29209
29215
  exports.blueprints = index;