@vuetify/nightly 3.8.2-master.2025-04-17 → 3.8.2-master.2025-04-22

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 (289) hide show
  1. package/CHANGELOG.md +24 -3
  2. package/dist/json/attributes.json +2022 -2022
  3. package/dist/json/importMap-labs.json +36 -36
  4. package/dist/json/importMap.json +170 -170
  5. package/dist/json/web-types.json +4067 -3809
  6. package/dist/vuetify-labs.cjs +631 -514
  7. package/dist/vuetify-labs.css +5232 -5223
  8. package/dist/vuetify-labs.d.ts +1855 -915
  9. package/dist/vuetify-labs.esm.js +632 -515
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +631 -514
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +402 -391
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +2556 -2556
  16. package/dist/vuetify.d.ts +168 -166
  17. package/dist/vuetify.esm.js +403 -392
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +402 -391
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +893 -885
  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/variant.d.ts +5 -6
  249. package/lib/composables/variant.js +6 -6
  250. package/lib/composables/variant.js.map +1 -1
  251. package/lib/entry-bundler.js +1 -1
  252. package/lib/framework.d.ts +81 -79
  253. package/lib/framework.js +1 -1
  254. package/lib/labs/VCalendar/VCalendar.d.ts +600 -211
  255. package/lib/labs/VCalendar/VCalendar.js +55 -27
  256. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  257. package/lib/labs/VCalendar/VCalendarDay.css +9 -0
  258. package/lib/labs/VCalendar/VCalendarDay.d.ts +329 -17
  259. package/lib/labs/VCalendar/VCalendarDay.js +18 -10
  260. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  261. package/lib/labs/VCalendar/VCalendarDay.sass +8 -0
  262. package/lib/labs/VCalendar/VCalendarEvent.js +15 -5
  263. package/lib/labs/VCalendar/VCalendarEvent.js.map +1 -1
  264. package/lib/labs/VCalendar/VCalendarHeader.d.ts +44 -17
  265. package/lib/labs/VCalendar/VCalendarHeader.js +5 -2
  266. package/lib/labs/VCalendar/VCalendarHeader.js.map +1 -1
  267. package/lib/labs/VCalendar/VCalendarInterval.d.ts +171 -17
  268. package/lib/labs/VCalendar/VCalendarInterval.js +66 -35
  269. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  270. package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +92 -17
  271. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +30 -10
  272. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  273. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +122 -88
  274. package/lib/labs/VCalendar/VCalendarMonthDay.js +24 -22
  275. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  276. package/lib/labs/VIconBtn/VIconBtn.d.ts +6 -21
  277. package/lib/labs/VIconBtn/VIconBtn.js +10 -12
  278. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  279. package/lib/labs/VPicker/VPicker.js +1 -2
  280. package/lib/labs/VPicker/VPicker.js.map +1 -1
  281. package/lib/labs/VTimePicker/VTimePickerClock.js +3 -3
  282. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  283. package/lib/labs/VTreeview/VTreeview.js +11 -11
  284. package/lib/labs/VTreeview/VTreeview.js.map +1 -1
  285. package/lib/util/box.js.map +1 -1
  286. package/lib/util/helpers.d.ts +5 -2
  287. package/lib/util/helpers.js +9 -5
  288. package/lib/util/helpers.js.map +1 -1
  289. package/package.json +1 -1
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.2-master.2025-04-17
2
+ * Vuetify v3.8.2-master.2025-04-22
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,
@@ -7310,10 +7317,10 @@
7310
7317
  resetValidation,
7311
7318
  validate
7312
7319
  }));
7313
- const color = vue.computed(() => {
7320
+ const color = vue.toRef(() => {
7314
7321
  return props.error || props.disabled ? undefined : props.focused ? props.color : props.baseColor;
7315
7322
  });
7316
- const iconColor = vue.computed(() => {
7323
+ const iconColor = vue.toRef(() => {
7317
7324
  if (!props.iconColor) return undefined;
7318
7325
  return props.iconColor === true ? color.value : props.iconColor;
7319
7326
  });
@@ -7403,7 +7410,6 @@
7403
7410
  blur
7404
7411
  } = useFocus(props);
7405
7412
  const uid = vue.useId();
7406
- const id = vue.computed(() => props.id || `checkbox-${uid}`);
7407
7413
  useRender(() => {
7408
7414
  const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
7409
7415
  const inputProps = VInput.filterProps(props);
@@ -7413,7 +7419,7 @@
7413
7419
  }, rootAttrs, inputProps, {
7414
7420
  "modelValue": model.value,
7415
7421
  "onUpdate:modelValue": $event => model.value = $event,
7416
- "id": id.value,
7422
+ "id": props.id || `checkbox-${uid}`,
7417
7423
  "focused": isFocused.value,
7418
7424
  "style": props.style
7419
7425
  }), {
@@ -7597,7 +7603,7 @@
7597
7603
  return false;
7598
7604
  }
7599
7605
  });
7600
- const displayClasses = vue.computed(() => {
7606
+ const displayClasses = vue.toRef(() => {
7601
7607
  if (!name) return {};
7602
7608
  return {
7603
7609
  [`${name}--mobile`]: mobile.value
@@ -7712,7 +7718,7 @@
7712
7718
  const goTo = {
7713
7719
  ...goToInstance,
7714
7720
  // can be set via VLocaleProvider
7715
- rtl: vue.computed(() => goToInstance.rtl.value || isRtl.value)
7721
+ rtl: vue.toRef(() => goToInstance.rtl.value || isRtl.value)
7716
7722
  };
7717
7723
  async function go(target, options) {
7718
7724
  return scrollTo(target, mergeDeep(_options, options), false, goTo);
@@ -8204,11 +8210,11 @@
8204
8210
  } = useGroup(props, VChipGroupSymbol);
8205
8211
  provideDefaults({
8206
8212
  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')
8213
+ baseColor: vue.toRef(() => props.baseColor),
8214
+ color: vue.toRef(() => props.color),
8215
+ disabled: vue.toRef(() => props.disabled),
8216
+ filter: vue.toRef(() => props.filter),
8217
+ variant: vue.toRef(() => props.variant)
8212
8218
  }
8213
8219
  });
8214
8220
  useRender(() => {
@@ -8334,9 +8340,9 @@
8334
8340
  const isActive = useProxiedModel(props, 'modelValue');
8335
8341
  const group = useGroupItem(props, VChipGroupSymbol, false);
8336
8342
  const link = useLink(props, attrs);
8337
- const isLink = vue.computed(() => props.link !== false && link.isLink.value);
8343
+ const isLink = vue.toRef(() => props.link !== false && link.isLink.value);
8338
8344
  const isClickable = vue.computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
8339
- const closeProps = vue.computed(() => ({
8345
+ const closeProps = vue.toRef(() => ({
8340
8346
  'aria-label': t(props.closeLabel),
8341
8347
  onClick(e) {
8342
8348
  e.preventDefault();
@@ -8345,18 +8351,17 @@
8345
8351
  emit('click:close', e);
8346
8352
  }
8347
8353
  }));
8348
- const variantProps = vue.computed(() => {
8354
+ const {
8355
+ colorClasses,
8356
+ colorStyles,
8357
+ variantClasses
8358
+ } = useVariant(() => {
8349
8359
  const showColor = !group || group.isSelected.value;
8350
8360
  return {
8351
8361
  color: showColor ? props.color ?? props.baseColor : props.baseColor,
8352
8362
  variant: props.variant
8353
8363
  };
8354
8364
  });
8355
- const {
8356
- colorClasses,
8357
- colorStyles,
8358
- variantClasses
8359
- } = useVariant(variantProps);
8360
8365
  function onClick(e) {
8361
8366
  emit('click', e);
8362
8367
  if (!isClickable.value) return;
@@ -9023,8 +9028,8 @@
9023
9028
  id: vue.shallowRef(),
9024
9029
  root: {
9025
9030
  opened,
9026
- activatable: vue.toRef(props, 'activatable'),
9027
- selectable: vue.toRef(props, 'selectable'),
9031
+ activatable: vue.toRef(() => props.activatable),
9032
+ selectable: vue.toRef(() => props.selectable),
9028
9033
  activated,
9029
9034
  selected,
9030
9035
  selectedValues: vue.computed(() => {
@@ -9153,7 +9158,7 @@
9153
9158
  const useNestedItem = (id, isGroup) => {
9154
9159
  const parent = vue.inject(VNestedSymbol, emptyNested);
9155
9160
  const uidSymbol = Symbol('nested item');
9156
- const computedId = vue.computed(() => id.value !== undefined ? id.value : uidSymbol);
9161
+ const computedId = vue.computed(() => vue.toValue(id) ?? uidSymbol);
9157
9162
  const item = {
9158
9163
  ...parent,
9159
9164
  id: computedId,
@@ -9229,7 +9234,7 @@
9229
9234
  isOpen,
9230
9235
  open,
9231
9236
  id: _id
9232
- } = useNestedItem(vue.toRef(props, 'value'), true);
9237
+ } = useNestedItem(() => props.value, true);
9233
9238
  const id = vue.computed(() => `v-list-group--id-${String(_id.value)}`);
9234
9239
  const list = useList();
9235
9240
  const {
@@ -9403,12 +9408,12 @@
9403
9408
  } = useNestedItem(id, false);
9404
9409
  const list = useList();
9405
9410
  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);
9411
+ const isLink = vue.toRef(() => props.link !== false && link.isLink.value);
9407
9412
  const isSelectable = vue.computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
9408
9413
  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(() => ({
9414
+ const roundedProps = vue.toRef(() => props.rounded || props.nav);
9415
+ const color = vue.toRef(() => props.color ?? props.activeColor);
9416
+ const variantProps = vue.toRef(() => ({
9412
9417
  color: isActive.value ? color.value ?? props.baseColor : props.baseColor,
9413
9418
  variant: props.variant
9414
9419
  }));
@@ -9451,7 +9456,7 @@
9451
9456
  const {
9452
9457
  roundedClasses
9453
9458
  } = useRounded(roundedProps);
9454
- const lineClasses = vue.computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
9459
+ const lineClasses = vue.toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
9455
9460
  const slotProps = vue.computed(() => ({
9456
9461
  isActive: isActive.value,
9457
9462
  select,
@@ -9621,7 +9626,7 @@
9621
9626
  const {
9622
9627
  textColorClasses,
9623
9628
  textColorStyles
9624
- } = useTextColor(vue.toRef(props, 'color'));
9629
+ } = useTextColor(() => props.color);
9625
9630
  useRender(() => {
9626
9631
  const hasText = !!(slots.default || props.title);
9627
9632
  return vue.createVNode(props.tag, {
@@ -9666,7 +9671,7 @@
9666
9671
  const {
9667
9672
  textColorClasses,
9668
9673
  textColorStyles
9669
- } = useTextColor(vue.toRef(props, 'color'));
9674
+ } = useTextColor(() => props.color);
9670
9675
  const dividerStyles = vue.computed(() => {
9671
9676
  const styles = {};
9672
9677
  if (props.length) {
@@ -10028,7 +10033,7 @@
10028
10033
  const {
10029
10034
  backgroundColorClasses,
10030
10035
  backgroundColorStyles
10031
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
10036
+ } = useBackgroundColor(() => props.bgColor);
10032
10037
  const {
10033
10038
  borderClasses
10034
10039
  } = useBorder(props);
@@ -10051,30 +10056,30 @@
10051
10056
  select,
10052
10057
  getPath
10053
10058
  } = 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');
10059
+ const lineClasses = vue.toRef(() => props.lines ? `v-list--${props.lines}-line` : undefined);
10060
+ const activeColor = vue.toRef(() => props.activeColor);
10061
+ const baseColor = vue.toRef(() => props.baseColor);
10062
+ const color = vue.toRef(() => props.color);
10058
10063
  createList();
10059
10064
  provideDefaults({
10060
10065
  VListGroup: {
10061
10066
  activeColor,
10062
10067
  baseColor,
10063
10068
  color,
10064
- expandIcon: vue.toRef(props, 'expandIcon'),
10065
- collapseIcon: vue.toRef(props, 'collapseIcon')
10069
+ expandIcon: vue.toRef(() => props.expandIcon),
10070
+ collapseIcon: vue.toRef(() => props.collapseIcon)
10066
10071
  },
10067
10072
  VListItem: {
10068
- activeClass: vue.toRef(props, 'activeClass'),
10073
+ activeClass: vue.toRef(() => props.activeClass),
10069
10074
  activeColor,
10070
10075
  baseColor,
10071
10076
  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')
10077
+ density: vue.toRef(() => props.density),
10078
+ disabled: vue.toRef(() => props.disabled),
10079
+ lines: vue.toRef(() => props.lines),
10080
+ nav: vue.toRef(() => props.nav),
10081
+ slim: vue.toRef(() => props.slim),
10082
+ variant: vue.toRef(() => props.variant)
10078
10083
  }
10079
10084
  });
10080
10085
  const isFocused = vue.shallowRef(false);
@@ -10402,13 +10407,22 @@
10402
10407
  vue.onScopeDispose(() => {
10403
10408
  observer.disconnect();
10404
10409
  });
10410
+ let targetBox = new Box({
10411
+ x: 0,
10412
+ y: 0,
10413
+ width: 0,
10414
+ height: 0
10415
+ });
10405
10416
 
10406
10417
  // eslint-disable-next-line max-statements
10407
10418
  function updateLocation() {
10408
10419
  observe = false;
10409
10420
  requestAnimationFrame(() => observe = true);
10410
10421
  if (!data.target.value || !data.contentEl.value) return;
10411
- const targetBox = getTargetBox(data.target.value);
10422
+ if (Array.isArray(data.target.value) || data.target.value.offsetParent) {
10423
+ targetBox = getTargetBox(data.target.value);
10424
+ } // Otherwise target element is hidden, use last known value
10425
+
10412
10426
  const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
10413
10427
  const scrollParents = getScrollParents(data.contentEl.value);
10414
10428
  const viewportMargin = 12;
@@ -11118,7 +11132,7 @@
11118
11132
  }, 'lazy');
11119
11133
  function useLazy(props, active) {
11120
11134
  const isBooted = vue.shallowRef(false);
11121
- const hasContent = vue.computed(() => isBooted.value || props.eager || active.value);
11135
+ const hasContent = vue.toRef(() => isBooted.value || props.eager || active.value);
11122
11136
  vue.watch(active, () => isBooted.value = true);
11123
11137
  function onAfterLeave() {
11124
11138
  if (!props.eager) isBooted.value = false;
@@ -11155,10 +11169,10 @@
11155
11169
  activeChildren: new Set()
11156
11170
  });
11157
11171
  vue.provide(StackSymbol, stack);
11158
- const _zIndex = vue.shallowRef(Number(zIndex.value));
11172
+ const _zIndex = vue.shallowRef(Number(vue.toValue(zIndex)));
11159
11173
  useToggleScope(isActive, () => {
11160
11174
  const lastZIndex = globalStack.at(-1)?.[1];
11161
- _zIndex.value = lastZIndex ? lastZIndex + 10 : Number(zIndex.value);
11175
+ _zIndex.value = lastZIndex ? lastZIndex + 10 : Number(vue.toValue(zIndex));
11162
11176
  if (createStackEntry) {
11163
11177
  globalStack.push([vm.uid, _zIndex.value]);
11164
11178
  }
@@ -11178,11 +11192,11 @@
11178
11192
  setTimeout(() => globalTop.value = _isTop);
11179
11193
  });
11180
11194
  }
11181
- const localTop = vue.computed(() => !stack.activeChildren.size);
11195
+ const localTop = vue.toRef(() => !stack.activeChildren.size);
11182
11196
  return {
11183
11197
  globalTop: vue.readonly(globalTop),
11184
11198
  localTop,
11185
- stackStyles: vue.computed(() => ({
11199
+ stackStyles: vue.toRef(() => ({
11186
11200
  zIndex: _zIndex.value
11187
11201
  }))
11188
11202
  };
@@ -11399,14 +11413,14 @@
11399
11413
  hasContent,
11400
11414
  onAfterLeave: _onAfterLeave
11401
11415
  } = useLazy(props, isActive);
11402
- const scrimColor = useBackgroundColor(vue.computed(() => {
11416
+ const scrimColor = useBackgroundColor(() => {
11403
11417
  return typeof props.scrim === 'string' ? props.scrim : null;
11404
- }));
11418
+ });
11405
11419
  const {
11406
11420
  globalTop,
11407
11421
  localTop,
11408
11422
  stackStyles
11409
- } = useStack(isActive, vue.toRef(props, 'zIndex'), props._disableGlobalStack);
11423
+ } = useStack(isActive, () => props.zIndex, props._disableGlobalStack);
11410
11424
  const {
11411
11425
  activatorEl,
11412
11426
  activatorRef,
@@ -11732,7 +11746,7 @@
11732
11746
  isRtl
11733
11747
  } = useRtl();
11734
11748
  const uid = vue.useId();
11735
- const id = vue.computed(() => props.id || `v-menu-${uid}`);
11749
+ const id = vue.toRef(() => props.id || `v-menu-${uid}`);
11736
11750
  const overlay = vue.ref();
11737
11751
  const parent = vue.inject(VMenuSymbol, null);
11738
11752
  const openChildren = vue.shallowRef(new Set());
@@ -11900,7 +11914,7 @@
11900
11914
  let {
11901
11915
  slots
11902
11916
  } = _ref;
11903
- const counter = vue.computed(() => {
11917
+ const counter = vue.toRef(() => {
11904
11918
  return props.max ? `${props.value} / ${props.max}` : String(props.value);
11905
11919
  });
11906
11920
  useRender(() => vue.createVNode(MaybeTransition, {
@@ -12027,12 +12041,12 @@
12027
12041
  const {
12028
12042
  rtlClasses
12029
12043
  } = 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);
12044
+ const isActive = vue.toRef(() => props.dirty || props.active);
12045
+ const hasLabel = vue.toRef(() => !!(props.label || slots.label));
12046
+ const hasFloatingLabel = vue.toRef(() => !props.singleLine && hasLabel.value);
12033
12047
  const uid = vue.useId();
12034
12048
  const id = vue.computed(() => props.id || `input-${uid}`);
12035
- const messagesId = vue.computed(() => `${id.value}-messages`);
12049
+ const messagesId = vue.toRef(() => `${id.value}-messages`);
12036
12050
  const labelRef = vue.ref();
12037
12051
  const floatingLabelRef = vue.ref();
12038
12052
  const controlRef = vue.ref();
@@ -12047,7 +12061,7 @@
12047
12061
  const {
12048
12062
  backgroundColorClasses,
12049
12063
  backgroundColorStyles
12050
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
12064
+ } = useBackgroundColor(() => props.bgColor);
12051
12065
  const {
12052
12066
  textColorClasses,
12053
12067
  textColorStyles
@@ -12774,7 +12788,7 @@
12774
12788
  paddingTop,
12775
12789
  paddingBottom,
12776
12790
  computedItems
12777
- } = useVirtual(props, vue.toRef(props, 'items'));
12791
+ } = useVirtual(props, vue.toRef(() => props.items));
12778
12792
  useToggleScope(() => props.renderless, () => {
12779
12793
  function handleListeners() {
12780
12794
  let add = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
@@ -13011,7 +13025,7 @@
13011
13025
  _menu.value = v;
13012
13026
  }
13013
13027
  });
13014
- const label = vue.computed(() => menu.value ? props.closeText : props.openText);
13028
+ const label = vue.toRef(() => menu.value ? props.closeText : props.openText);
13015
13029
  const computedMenuProps = vue.computed(() => {
13016
13030
  return {
13017
13031
  ...props.menuProps,
@@ -13513,7 +13527,6 @@
13513
13527
  const vMenuRef = vue.ref();
13514
13528
  const vVirtualScrollRef = vue.ref();
13515
13529
  const selectionIndex = vue.shallowRef(-1);
13516
- const color = vue.computed(() => vTextFieldRef.value?.color);
13517
13530
  const {
13518
13531
  items,
13519
13532
  transformIn,
@@ -13522,7 +13535,7 @@
13522
13535
  const {
13523
13536
  textColorClasses,
13524
13537
  textColorStyles
13525
- } = useTextColor(color);
13538
+ } = useTextColor(() => vTextFieldRef.value?.color);
13526
13539
  const search = useProxiedModel(props, 'search', '');
13527
13540
  const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
13528
13541
  const transformed = transformOut(v);
@@ -13971,7 +13984,7 @@
13971
13984
  const {
13972
13985
  backgroundColorClasses,
13973
13986
  backgroundColorStyles
13974
- } = useBackgroundColor(vue.toRef(props, 'color'));
13987
+ } = useBackgroundColor(() => props.color);
13975
13988
  const {
13976
13989
  roundedClasses
13977
13990
  } = useRounded(props);
@@ -13981,7 +13994,7 @@
13981
13994
  const {
13982
13995
  textColorClasses,
13983
13996
  textColorStyles
13984
- } = useTextColor(vue.toRef(props, 'textColor'));
13997
+ } = useTextColor(() => props.textColor);
13985
13998
  const {
13986
13999
  themeClasses
13987
14000
  } = useTheme();
@@ -14093,7 +14106,7 @@
14093
14106
  const {
14094
14107
  backgroundColorClasses,
14095
14108
  backgroundColorStyles
14096
- } = useBackgroundColor(props, 'bgColor');
14109
+ } = useBackgroundColor(() => props.bgColor);
14097
14110
  const {
14098
14111
  borderClasses
14099
14112
  } = useBorder(props);
@@ -14122,8 +14135,8 @@
14122
14135
  const {
14123
14136
  themeClasses
14124
14137
  } = provideTheme(props);
14125
- const color = vue.toRef(props, 'color');
14126
- const density = vue.toRef(props, 'density');
14138
+ const color = vue.toRef(() => props.color);
14139
+ const density = vue.toRef(() => props.density);
14127
14140
  provideDefaults({
14128
14141
  VBannerActions: {
14129
14142
  color,
@@ -14232,7 +14245,7 @@
14232
14245
  const {
14233
14246
  backgroundColorClasses,
14234
14247
  backgroundColorStyles
14235
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
14248
+ } = useBackgroundColor(() => props.bgColor);
14236
14249
  const {
14237
14250
  densityClasses
14238
14251
  } = useDensity(props);
@@ -14252,19 +14265,19 @@
14252
14265
  } = useLayoutItem({
14253
14266
  id: props.name,
14254
14267
  order: vue.computed(() => parseInt(props.order, 10)),
14255
- position: vue.computed(() => 'bottom'),
14256
- layoutSize: vue.computed(() => isActive.value ? height.value : 0),
14268
+ position: vue.toRef(() => 'bottom'),
14269
+ layoutSize: vue.toRef(() => isActive.value ? height.value : 0),
14257
14270
  elementSize: height,
14258
14271
  active: isActive,
14259
- absolute: vue.toRef(props, 'absolute')
14272
+ absolute: vue.toRef(() => props.absolute)
14260
14273
  });
14261
14274
  useGroup(props, VBtnToggleSymbol);
14262
14275
  provideDefaults({
14263
14276
  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'),
14277
+ baseColor: vue.toRef(() => props.baseColor),
14278
+ color: vue.toRef(() => props.color),
14279
+ density: vue.toRef(() => props.density),
14280
+ stacked: vue.toRef(() => props.mode !== 'horizontal'),
14268
14281
  variant: 'text'
14269
14282
  }
14270
14283
  }, {
@@ -14500,11 +14513,10 @@
14500
14513
  } = _ref;
14501
14514
  const link = useLink(props, attrs);
14502
14515
  const isActive = vue.computed(() => props.active || link.isActive?.value);
14503
- const color = vue.computed(() => isActive.value ? props.activeColor : props.color);
14504
14516
  const {
14505
14517
  textColorClasses,
14506
14518
  textColorStyles
14507
- } = useTextColor(color);
14519
+ } = useTextColor(() => isActive.value ? props.activeColor : props.color);
14508
14520
  useRender(() => {
14509
14521
  return vue.createVNode(props.tag, {
14510
14522
  "class": ['v-breadcrumbs-item', {
@@ -14559,7 +14571,7 @@
14559
14571
  const {
14560
14572
  backgroundColorClasses,
14561
14573
  backgroundColorStyles
14562
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
14574
+ } = useBackgroundColor(() => props.bgColor);
14563
14575
  const {
14564
14576
  densityClasses
14565
14577
  } = useDensity(props);
@@ -14568,13 +14580,13 @@
14568
14580
  } = useRounded(props);
14569
14581
  provideDefaults({
14570
14582
  VBreadcrumbsDivider: {
14571
- divider: vue.toRef(props, 'divider')
14583
+ divider: vue.toRef(() => props.divider)
14572
14584
  },
14573
14585
  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')
14586
+ activeClass: vue.toRef(() => props.activeClass),
14587
+ activeColor: vue.toRef(() => props.activeColor),
14588
+ color: vue.toRef(() => props.color),
14589
+ disabled: vue.toRef(() => props.disabled)
14578
14590
  }
14579
14591
  });
14580
14592
  const items = vue.computed(() => props.items.map(item => {
@@ -14897,10 +14909,10 @@
14897
14909
  roundedClasses
14898
14910
  } = useRounded(props);
14899
14911
  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
14912
  useRender(() => {
14903
- const Tag = isLink.value ? 'a' : props.tag;
14913
+ const isLink = props.link !== false && link.isLink.value;
14914
+ const isClickable = !props.disabled && props.link !== false && (props.link || link.isClickable.value);
14915
+ const Tag = isLink ? 'a' : props.tag;
14904
14916
  const hasTitle = !!(slots.title || props.title != null);
14905
14917
  const hasSubtitle = !!(slots.subtitle || props.subtitle != null);
14906
14918
  const hasHeader = hasTitle || hasSubtitle;
@@ -14914,10 +14926,10 @@
14914
14926
  'v-card--disabled': props.disabled,
14915
14927
  'v-card--flat': props.flat,
14916
14928
  'v-card--hover': props.hover && !(props.disabled || props.flat),
14917
- 'v-card--link': isClickable.value
14929
+ 'v-card--link': isClickable
14918
14930
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
14919
14931
  "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
14920
- "onClick": isClickable.value && link.navigate,
14932
+ "onClick": isClickable && link.navigate,
14921
14933
  "tabindex": props.disabled ? -1 : undefined
14922
14934
  }, link.linkProps), {
14923
14935
  default: () => [hasImage && vue.createVNode("div", {
@@ -14962,8 +14974,8 @@
14962
14974
  default: () => [slots.text?.() ?? props.text]
14963
14975
  }), slots.default?.(), slots.actions && vue.createVNode(VCardActions, null, {
14964
14976
  default: slots.actions
14965
- }), genOverlays(isClickable.value, 'v-card')]
14966
- }), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
14977
+ }), genOverlays(isClickable, 'v-card')]
14978
+ }), [[vue.resolveDirective("ripple"), isClickable && props.ripple]]);
14967
14979
  });
14968
14980
  return {};
14969
14981
  }
@@ -15176,8 +15188,8 @@
15176
15188
  transitionHeight,
15177
15189
  rootRef
15178
15190
  });
15179
- const canMoveBack = vue.computed(() => props.continuous || activeIndex.value !== 0);
15180
- const canMoveForward = vue.computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1);
15191
+ const canMoveBack = vue.toRef(() => props.continuous || activeIndex.value !== 0);
15192
+ const canMoveForward = vue.toRef(() => props.continuous || activeIndex.value !== group.items.value.length - 1);
15181
15193
  function prev() {
15182
15194
  canMoveBack.value && group.prev();
15183
15195
  }
@@ -16079,7 +16091,7 @@
16079
16091
  const {
16080
16092
  isRtl
16081
16093
  } = useRtl();
16082
- const isReversed = vue.toRef(props, 'reverse');
16094
+ const isReversed = vue.toRef(() => props.reverse);
16083
16095
  const vertical = vue.computed(() => props.direction === 'vertical');
16084
16096
  const indexFromEnd = vue.computed(() => vertical.value !== isReversed.value);
16085
16097
  const {
@@ -16093,7 +16105,7 @@
16093
16105
  const tickSize = vue.computed(() => parseInt(props.tickSize, 10));
16094
16106
  const trackSize = vue.computed(() => parseInt(props.trackSize, 10));
16095
16107
  const numTicks = vue.computed(() => (max.value - min.value) / step.value);
16096
- const disabled = vue.toRef(props, 'disabled');
16108
+ const disabled = vue.toRef(() => props.disabled);
16097
16109
  const thumbColor = vue.computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);
16098
16110
  const trackColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);
16099
16111
  const trackFillColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);
@@ -16195,7 +16207,7 @@
16195
16207
  const percentage = (val - min.value) / (max.value - min.value) * 100;
16196
16208
  return clamp(isNaN(percentage) ? 0 : percentage, 0, 100);
16197
16209
  };
16198
- const showTicks = vue.toRef(props, 'showTicks');
16210
+ const showTicks = vue.toRef(() => props.showTicks);
16199
16211
  const parsedTicks = vue.computed(() => {
16200
16212
  if (!showTicks.value) return [];
16201
16213
  if (!props.ticks) {
@@ -16226,11 +16238,11 @@
16226
16238
  }));
16227
16239
  const data = {
16228
16240
  activeThumbRef,
16229
- color: vue.toRef(props, 'color'),
16241
+ color: vue.toRef(() => props.color),
16230
16242
  decimals,
16231
16243
  disabled,
16232
- direction: vue.toRef(props, 'direction'),
16233
- elevation: vue.toRef(props, 'elevation'),
16244
+ direction: vue.toRef(() => props.direction),
16245
+ elevation: vue.toRef(() => props.elevation),
16234
16246
  hasLabels,
16235
16247
  isReversed,
16236
16248
  indexFromEnd,
@@ -16243,16 +16255,16 @@
16243
16255
  parsedTicks,
16244
16256
  parseMouseMove,
16245
16257
  position,
16246
- readonly: vue.toRef(props, 'readonly'),
16247
- rounded: vue.toRef(props, 'rounded'),
16258
+ readonly: vue.toRef(() => props.readonly),
16259
+ rounded: vue.toRef(() => props.rounded),
16248
16260
  roundValue,
16249
16261
  showTicks,
16250
16262
  startOffset,
16251
16263
  step,
16252
16264
  thumbSize,
16253
16265
  thumbColor,
16254
- thumbLabel: vue.toRef(props, 'thumbLabel'),
16255
- ticks: vue.toRef(props, 'ticks'),
16266
+ thumbLabel: vue.toRef(() => props.thumbLabel),
16267
+ ticks: vue.toRef(() => props.ticks),
16256
16268
  tickSize,
16257
16269
  trackColor,
16258
16270
  trackContainerRef,
@@ -17171,7 +17183,7 @@
17171
17183
  const {
17172
17184
  backgroundColorClasses,
17173
17185
  backgroundColorStyles
17174
- } = useBackgroundColor(vue.toRef(props, 'color'));
17186
+ } = useBackgroundColor(() => props.color);
17175
17187
  const {
17176
17188
  borderClasses
17177
17189
  } = useBorder(props);
@@ -17218,7 +17230,7 @@
17218
17230
  const {
17219
17231
  backgroundColorClasses,
17220
17232
  backgroundColorStyles
17221
- } = useBackgroundColor(vue.toRef(props, 'color'));
17233
+ } = useBackgroundColor(() => props.color);
17222
17234
  useRender(() => {
17223
17235
  const sheetProps = VSheet.filterProps(props);
17224
17236
  const hasTitle = !!(props.title || slots.title);
@@ -18203,7 +18215,6 @@
18203
18215
  const vVirtualScrollRef = vue.ref();
18204
18216
  const selectionIndex = vue.shallowRef(-1);
18205
18217
  let cleared = false;
18206
- const color = vue.computed(() => vTextFieldRef.value?.color);
18207
18218
  const {
18208
18219
  items,
18209
18220
  transformIn,
@@ -18212,7 +18223,7 @@
18212
18223
  const {
18213
18224
  textColorClasses,
18214
18225
  textColorStyles
18215
- } = useTextColor(color);
18226
+ } = useTextColor(() => vTextFieldRef.value?.color);
18216
18227
  const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
18217
18228
  const transformed = transformOut(v);
18218
18229
  return props.multiple ? transformed : transformed[0] ?? null;
@@ -18267,7 +18278,7 @@
18267
18278
  _menu.value = v;
18268
18279
  }
18269
18280
  });
18270
- const label = vue.computed(() => menu.value ? props.closeText : props.openText);
18281
+ const label = vue.toRef(() => menu.value ? props.closeText : props.openText);
18271
18282
  vue.watch(_search, value => {
18272
18283
  if (cleared) {
18273
18284
  // wait for clear to finish, VTextField sets _search to null
@@ -18773,7 +18784,7 @@
18773
18784
  }, 'DataTable-expand');
18774
18785
  const VDataTableExpandedKey = Symbol.for('vuetify:datatable:expanded');
18775
18786
  function provideExpanded(props) {
18776
- const expandOnClick = vue.toRef(props, 'expandOnClick');
18787
+ const expandOnClick = vue.toRef(() => props.expandOnClick);
18777
18788
  const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {
18778
18789
  return new Set(v);
18779
18790
  }, v => {
@@ -18960,23 +18971,23 @@
18960
18971
  search
18961
18972
  } = _ref;
18962
18973
  const vm = getCurrentInstance('VDataTable');
18963
- const options = vue.computed(() => ({
18974
+ const options = () => ({
18964
18975
  page: page.value,
18965
18976
  itemsPerPage: itemsPerPage.value,
18966
18977
  sortBy: sortBy.value,
18967
18978
  groupBy: groupBy.value,
18968
18979
  search: search.value
18969
- }));
18980
+ });
18970
18981
  let oldOptions = null;
18971
- vue.watch(options, () => {
18972
- if (deepEqual(oldOptions, options.value)) return;
18982
+ vue.watch(options, value => {
18983
+ if (deepEqual(oldOptions, value)) return;
18973
18984
 
18974
18985
  // Reset page when searching
18975
- if (oldOptions && oldOptions.search !== options.value.search) {
18986
+ if (oldOptions && oldOptions.search !== value.search) {
18976
18987
  page.value = 1;
18977
18988
  }
18978
- vm.emit('update:options', options.value);
18979
- oldOptions = options.value;
18989
+ vm.emit('update:options', value);
18990
+ oldOptions = value;
18980
18991
  }, {
18981
18992
  deep: true,
18982
18993
  immediate: true
@@ -19257,7 +19268,7 @@
19257
19268
  });
19258
19269
  return !!items.length && isSelected(items);
19259
19270
  });
19260
- const showSelectAll = vue.computed(() => selectStrategy.value.showSelectAll);
19271
+ const showSelectAll = vue.toRef(() => selectStrategy.value.showSelectAll);
19261
19272
  const data = {
19262
19273
  toggleSelect,
19263
19274
  select,
@@ -19295,8 +19306,8 @@
19295
19306
  const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
19296
19307
  function createSort(props) {
19297
19308
  const sortBy = useProxiedModel(props, 'sortBy');
19298
- const mustSort = vue.toRef(props, 'mustSort');
19299
- const multiSort = vue.toRef(props, 'multiSort');
19309
+ const mustSort = vue.toRef(() => props.mustSort);
19310
+ const multiSort = vue.toRef(() => props.multiSort);
19300
19311
  return {
19301
19312
  sortBy,
19302
19313
  mustSort,
@@ -19514,7 +19525,7 @@
19514
19525
  slots
19515
19526
  } = _ref;
19516
19527
  const groupBy = useProxiedModel(props, 'groupBy');
19517
- const search = vue.toRef(props, 'search');
19528
+ const search = vue.toRef(() => props.search);
19518
19529
  const {
19519
19530
  items
19520
19531
  } = useDataIteratorItems(props);
@@ -19558,7 +19569,7 @@
19558
19569
  const {
19559
19570
  flatItems
19560
19571
  } = useGroupedItems(sortedItems, groupBy, opened);
19561
- const itemsLength = vue.computed(() => flatItems.value.length);
19572
+ const itemsLength = vue.toRef(() => flatItems.value.length);
19562
19573
  const {
19563
19574
  startIndex,
19564
19575
  stopIndex,
@@ -19838,13 +19849,13 @@
19838
19849
  } = useRefs();
19839
19850
  provideDefaults({
19840
19851
  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')
19852
+ color: vue.toRef(() => props.color),
19853
+ border: vue.toRef(() => props.border),
19854
+ density: vue.toRef(() => props.density),
19855
+ size: vue.toRef(() => props.size),
19856
+ variant: vue.toRef(() => props.variant),
19857
+ rounded: vue.toRef(() => props.rounded),
19858
+ elevation: vue.toRef(() => props.elevation)
19848
19859
  }
19849
19860
  });
19850
19861
  const items = vue.computed(() => {
@@ -20485,7 +20496,7 @@
20485
20496
  const {
20486
20497
  backgroundColorClasses,
20487
20498
  backgroundColorStyles
20488
- } = useBackgroundColor(props, 'color');
20499
+ } = useBackgroundColor(() => props.color);
20489
20500
  const {
20490
20501
  displayClasses,
20491
20502
  mobile
@@ -21143,13 +21154,13 @@
21143
21154
  filterFunctions
21144
21155
  } = createHeaders(props, {
21145
21156
  groupBy,
21146
- showSelect: vue.toRef(props, 'showSelect'),
21147
- showExpand: vue.toRef(props, 'showExpand')
21157
+ showSelect: vue.toRef(() => props.showSelect),
21158
+ showExpand: vue.toRef(() => props.showExpand)
21148
21159
  });
21149
21160
  const {
21150
21161
  items
21151
21162
  } = useDataTableItems(props, columns);
21152
- const search = vue.toRef(props, 'search');
21163
+ const search = vue.toRef(() => props.search);
21153
21164
  const {
21154
21165
  filteredItems
21155
21166
  } = useFilter(props, items, search, {
@@ -21232,10 +21243,10 @@
21232
21243
  });
21233
21244
  provideDefaults({
21234
21245
  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')
21246
+ hideNoData: vue.toRef(() => props.hideNoData),
21247
+ noDataText: vue.toRef(() => props.noDataText),
21248
+ loading: vue.toRef(() => props.loading),
21249
+ loadingText: vue.toRef(() => props.loadingText)
21239
21250
  }
21240
21251
  });
21241
21252
  const slotProps = vue.computed(() => ({
@@ -21332,13 +21343,13 @@
21332
21343
  sortRawFunctions
21333
21344
  } = createHeaders(props, {
21334
21345
  groupBy,
21335
- showSelect: vue.toRef(props, 'showSelect'),
21336
- showExpand: vue.toRef(props, 'showExpand')
21346
+ showSelect: vue.toRef(() => props.showSelect),
21347
+ showExpand: vue.toRef(() => props.showExpand)
21337
21348
  });
21338
21349
  const {
21339
21350
  items
21340
21351
  } = useDataTableItems(props, columns);
21341
- const search = vue.toRef(props, 'search');
21352
+ const search = vue.toRef(() => props.search);
21342
21353
  const {
21343
21354
  filteredItems
21344
21355
  } = useFilter(props, items, search, {
@@ -21414,10 +21425,10 @@
21414
21425
  });
21415
21426
  provideDefaults({
21416
21427
  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')
21428
+ hideNoData: vue.toRef(() => props.hideNoData),
21429
+ noDataText: vue.toRef(() => props.noDataText),
21430
+ loading: vue.toRef(() => props.loading),
21431
+ loadingText: vue.toRef(() => props.loadingText)
21421
21432
  }
21422
21433
  });
21423
21434
  const slotProps = vue.computed(() => ({
@@ -21570,8 +21581,8 @@
21570
21581
  headers
21571
21582
  } = createHeaders(props, {
21572
21583
  groupBy,
21573
- showSelect: vue.toRef(props, 'showSelect'),
21574
- showExpand: vue.toRef(props, 'showExpand')
21584
+ showSelect: vue.toRef(() => props.showSelect),
21585
+ showExpand: vue.toRef(() => props.showExpand)
21575
21586
  });
21576
21587
  const {
21577
21588
  items
@@ -21626,7 +21637,7 @@
21626
21637
  itemsPerPage,
21627
21638
  sortBy,
21628
21639
  groupBy,
21629
- search: vue.toRef(props, 'search')
21640
+ search: vue.toRef(() => props.search)
21630
21641
  });
21631
21642
  vue.provide('v-data-table', {
21632
21643
  toggleSort,
@@ -21634,10 +21645,10 @@
21634
21645
  });
21635
21646
  provideDefaults({
21636
21647
  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')
21648
+ hideNoData: vue.toRef(() => props.hideNoData),
21649
+ noDataText: vue.toRef(() => props.noDataText),
21650
+ loading: vue.toRef(() => props.loading),
21651
+ loadingText: vue.toRef(() => props.loadingText)
21641
21652
  }
21642
21653
  });
21643
21654
  const slotProps = vue.computed(() => ({
@@ -22107,7 +22118,7 @@
22107
22118
  const {
22108
22119
  backgroundColorClasses,
22109
22120
  backgroundColorStyles
22110
- } = useBackgroundColor(props, 'color');
22121
+ } = useBackgroundColor(() => props.color);
22111
22122
  function onClick() {
22112
22123
  emit('click');
22113
22124
  }
@@ -22246,21 +22257,21 @@
22246
22257
  const isSame = adapter.isSameDay(date, month.value);
22247
22258
  return {
22248
22259
  date,
22249
- isoDate,
22250
22260
  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
22261
  isAdjacent,
22258
- isHidden: isAdjacent && !props.showAdjacentMonths,
22259
- isStart,
22260
- isSelected: model.value.some(value => adapter.isSameDay(date, value)),
22262
+ isDisabled: isDisabled(date),
22261
22263
  isEnd,
22264
+ isHidden: isAdjacent && !props.showAdjacentMonths,
22262
22265
  isSame,
22263
- localized: adapter.format(date, 'dayOfMonth')
22266
+ isSelected: model.value.some(value => adapter.isSameDay(date, value)),
22267
+ isStart,
22268
+ isToday: adapter.isSameDay(date, today),
22269
+ isWeekEnd: index % 7 === 6,
22270
+ isWeekStart: index % 7 === 0,
22271
+ isoDate,
22272
+ localized: adapter.format(date, 'dayOfMonth'),
22273
+ month: adapter.getMonth(date),
22274
+ year: adapter.getYear(date)
22264
22275
  };
22265
22276
  });
22266
22277
  }
@@ -22348,7 +22359,7 @@
22348
22359
  const rangeStart = vue.shallowRef();
22349
22360
  const rangeStop = vue.shallowRef();
22350
22361
  const isReverse = vue.shallowRef(false);
22351
- const transition = vue.computed(() => {
22362
+ const transition = vue.toRef(() => {
22352
22363
  return !isReverse.value ? props.transition : props.reverseTransition;
22353
22364
  });
22354
22365
  if (props.multiple === 'range' && model.value.length > 0) {
@@ -22728,7 +22739,7 @@
22728
22739
  }
22729
22740
  return value && adapter.isValid(value) ? value : today;
22730
22741
  });
22731
- const headerColor = vue.computed(() => props.headerColor ?? props.color);
22742
+ const headerColor = vue.toRef(() => props.headerColor ?? props.color);
22732
22743
  const month = vue.ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))));
22733
22744
  const year = vue.ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));
22734
22745
  const isReversing = vue.shallowRef(false);
@@ -22745,8 +22756,8 @@
22745
22756
  date = adapter.setYear(date, year.value);
22746
22757
  return adapter.format(date, 'monthAndYear');
22747
22758
  });
22748
- // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
22749
- const headerTransition = vue.computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
22759
+ // const headerIcon = toRef(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
22760
+ const headerTransition = vue.toRef(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
22750
22761
  const disabled = vue.computed(() => {
22751
22762
  if (props.disabled) return true;
22752
22763
  const targets = [];
@@ -22958,7 +22969,7 @@
22958
22969
  const {
22959
22970
  backgroundColorClasses,
22960
22971
  backgroundColorStyles
22961
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
22972
+ } = useBackgroundColor(() => props.bgColor);
22962
22973
  const {
22963
22974
  dimensionStyles
22964
22975
  } = useDimension(props);
@@ -23121,7 +23132,7 @@
23121
23132
  const {
23122
23133
  backgroundColorClasses,
23123
23134
  backgroundColorStyles
23124
- } = useBackgroundColor(props, 'color');
23135
+ } = useBackgroundColor(() => props.color);
23125
23136
  const {
23126
23137
  dimensionStyles
23127
23138
  } = useDimension(props);
@@ -23132,7 +23143,7 @@
23132
23143
  expandIcon: props.expandIcon,
23133
23144
  readonly: props.readonly
23134
23145
  }));
23135
- const icon = vue.computed(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);
23146
+ const icon = vue.toRef(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);
23136
23147
  useRender(() => vue.withDirectives(vue.createVNode("button", {
23137
23148
  "class": ['v-expansion-panel-title', {
23138
23149
  'v-expansion-panel-title--active': expansionPanel.isSelected.value,
@@ -23187,14 +23198,14 @@
23187
23198
  const {
23188
23199
  backgroundColorClasses,
23189
23200
  backgroundColorStyles
23190
- } = useBackgroundColor(props, 'bgColor');
23201
+ } = useBackgroundColor(() => props.bgColor);
23191
23202
  const {
23192
23203
  elevationClasses
23193
23204
  } = useElevation(props);
23194
23205
  const {
23195
23206
  roundedClasses
23196
23207
  } = useRounded(props);
23197
- const isDisabled = vue.computed(() => groupItem?.disabled.value || props.disabled);
23208
+ const isDisabled = vue.toRef(() => groupItem?.disabled.value || props.disabled);
23198
23209
  const selectedIndices = vue.computed(() => groupItem.group.items.value.reduce((arr, item, index) => {
23199
23210
  if (groupItem.group.selected.value.includes(item.id)) arr.push(index);
23200
23211
  return arr;
@@ -23285,21 +23296,21 @@
23285
23296
  const {
23286
23297
  themeClasses
23287
23298
  } = provideTheme(props);
23288
- const variantClass = vue.computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`);
23299
+ const variantClass = vue.toRef(() => props.variant && `v-expansion-panels--variant-${props.variant}`);
23289
23300
  provideDefaults({
23290
23301
  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')
23302
+ bgColor: vue.toRef(() => props.bgColor),
23303
+ collapseIcon: vue.toRef(() => props.collapseIcon),
23304
+ color: vue.toRef(() => props.color),
23305
+ eager: vue.toRef(() => props.eager),
23306
+ elevation: vue.toRef(() => props.elevation),
23307
+ expandIcon: vue.toRef(() => props.expandIcon),
23308
+ focusable: vue.toRef(() => props.focusable),
23309
+ hideActions: vue.toRef(() => props.hideActions),
23310
+ readonly: vue.toRef(() => props.readonly),
23311
+ ripple: vue.toRef(() => props.ripple),
23312
+ rounded: vue.toRef(() => props.rounded),
23313
+ static: vue.toRef(() => props.static)
23303
23314
  }
23304
23315
  });
23305
23316
  useRender(() => vue.createVNode(props.tag, {
@@ -23361,7 +23372,7 @@
23361
23372
  if (!entries.length) return;
23362
23373
  height.value = entries[0].target.clientHeight;
23363
23374
  });
23364
- const hasPosition = vue.computed(() => props.app || props.absolute);
23375
+ const hasPosition = vue.toRef(() => props.app || props.absolute);
23365
23376
  const position = vue.computed(() => {
23366
23377
  if (!hasPosition.value) return false;
23367
23378
  return props.location?.split(' ').shift() ?? 'bottom';
@@ -23378,7 +23389,7 @@
23378
23389
  layoutSize: vue.computed(() => props.layout ? height.value + 24 : 0),
23379
23390
  elementSize: vue.computed(() => height.value + 24),
23380
23391
  active: vue.computed(() => props.app && model.value),
23381
- absolute: vue.toRef(props, 'absolute')
23392
+ absolute: vue.toRef(() => props.absolute)
23382
23393
  });
23383
23394
  vue.watchEffect(() => {
23384
23395
  layoutItemStyles.value = layout.layoutItemStyles.value;
@@ -23503,7 +23514,7 @@
23503
23514
  const vInputRef = vue.ref();
23504
23515
  const vFieldRef = vue.ref();
23505
23516
  const inputRef = vue.ref();
23506
- const isActive = vue.computed(() => isFocused.value || props.active);
23517
+ const isActive = vue.toRef(() => isFocused.value || props.active);
23507
23518
  const isPlainOrUnderlined = vue.computed(() => ['plain', 'underlined'].includes(props.variant));
23508
23519
  function onFocus() {
23509
23520
  if (inputRef.value !== document.activeElement) {
@@ -23676,7 +23687,7 @@
23676
23687
  const {
23677
23688
  backgroundColorClasses,
23678
23689
  backgroundColorStyles
23679
- } = useBackgroundColor(vue.toRef(props, 'color'));
23690
+ } = useBackgroundColor(() => props.color);
23680
23691
  const {
23681
23692
  borderClasses
23682
23693
  } = useBorder(props);
@@ -23698,11 +23709,11 @@
23698
23709
  const layout = useLayoutItem({
23699
23710
  id: props.name,
23700
23711
  order: vue.computed(() => parseInt(props.order, 10)),
23701
- position: vue.computed(() => 'bottom'),
23712
+ position: vue.toRef(() => 'bottom'),
23702
23713
  layoutSize: height,
23703
23714
  elementSize: vue.computed(() => props.height === 'auto' ? undefined : height.value),
23704
- active: vue.computed(() => props.app),
23705
- absolute: vue.toRef(props, 'absolute')
23715
+ active: vue.toRef(() => props.app),
23716
+ absolute: vue.toRef(() => props.absolute)
23706
23717
  });
23707
23718
  vue.watchEffect(() => {
23708
23719
  layoutItemStyles.value = layout.layoutItemStyles.value;
@@ -24175,11 +24186,11 @@
24175
24186
  } = useLayoutItem({
24176
24187
  id: props.name,
24177
24188
  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')
24189
+ position: vue.toRef(() => props.position),
24190
+ elementSize: vue.toRef(() => props.size),
24191
+ layoutSize: vue.toRef(() => props.size),
24192
+ active: vue.toRef(() => props.modelValue),
24193
+ absolute: vue.toRef(() => props.absolute)
24183
24194
  });
24184
24195
  return () => vue.createVNode("div", {
24185
24196
  "class": ['v-layout-item', props.class],
@@ -24711,7 +24722,7 @@
24711
24722
  const {
24712
24723
  backgroundColorClasses,
24713
24724
  backgroundColorStyles
24714
- } = useBackgroundColor(vue.toRef(props, 'color'));
24725
+ } = useBackgroundColor(() => props.color);
24715
24726
  const {
24716
24727
  elevationClasses
24717
24728
  } = useElevation(props);
@@ -24744,7 +24755,7 @@
24744
24755
  const location = vue.computed(() => {
24745
24756
  return toPhysical(props.location, isRtl.value);
24746
24757
  });
24747
- const isPersistent = vue.computed(() => props.persistent);
24758
+ const isPersistent = vue.toRef(() => props.persistent);
24748
24759
  const isTemporary = vue.computed(() => !props.permanent && (mobile.value || props.temporary));
24749
24760
  const isSticky = vue.computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');
24750
24761
  useToggleScope(() => props.expandOnHover && props.rail != null, () => {
@@ -24770,7 +24781,7 @@
24770
24781
  isActive,
24771
24782
  isTemporary,
24772
24783
  width,
24773
- touchless: vue.toRef(props, 'touchless'),
24784
+ touchless: vue.toRef(() => props.touchless),
24774
24785
  position: location
24775
24786
  });
24776
24787
  const layoutSize = vue.computed(() => {
@@ -24787,7 +24798,7 @@
24787
24798
  layoutSize,
24788
24799
  elementSize: width,
24789
24800
  active: vue.readonly(isActive),
24790
- disableTransitions: vue.computed(() => isDragging.value),
24801
+ disableTransitions: vue.toRef(() => isDragging.value),
24791
24802
  absolute: vue.computed(() =>
24792
24803
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
24793
24804
  props.absolute || isSticky.value && typeof isStuck.value !== 'string')
@@ -24800,9 +24811,9 @@
24800
24811
  isSticky,
24801
24812
  layoutItemStyles
24802
24813
  });
24803
- const scrimColor = useBackgroundColor(vue.computed(() => {
24814
+ const scrimColor = useBackgroundColor(() => {
24804
24815
  return typeof props.scrim === 'string' ? props.scrim : null;
24805
- }));
24816
+ });
24806
24817
  const scrimStyles = vue.computed(() => ({
24807
24818
  ...(isDragging.value ? {
24808
24819
  opacity: dragProgress.value * 0.2,
@@ -25016,24 +25027,24 @@
25016
25027
  const controlVariant = vue.computed(() => {
25017
25028
  return props.hideInput ? 'stacked' : props.controlVariant;
25018
25029
  });
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(() => ({
25030
+ const incrementIcon = vue.toRef(() => controlVariant.value === 'split' ? '$plus' : '$collapse');
25031
+ const decrementIcon = vue.toRef(() => controlVariant.value === 'split' ? '$minus' : '$expand');
25032
+ const controlNodeSize = vue.toRef(() => controlVariant.value === 'split' ? 'default' : 'small');
25033
+ const controlNodeDefaultHeight = vue.toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
25034
+ const incrementSlotProps = {
25024
25035
  props: {
25025
25036
  onClick: onControlClick,
25026
25037
  onPointerup: onControlMouseup,
25027
25038
  onPointerdown: onUpControlMousedown
25028
25039
  }
25029
- }));
25030
- const decrementSlotProps = vue.computed(() => ({
25040
+ };
25041
+ const decrementSlotProps = {
25031
25042
  props: {
25032
25043
  onClick: onControlClick,
25033
25044
  onPointerup: onControlMouseup,
25034
25045
  onPointerdown: onDownControlMousedown
25035
25046
  }
25036
- }));
25047
+ };
25037
25048
  vue.watch(() => props.precision, () => formatInputValue());
25038
25049
  vue.onMounted(() => {
25039
25050
  clampModel();
@@ -25185,7 +25196,7 @@
25185
25196
  }
25186
25197
  }
25187
25198
  }, {
25188
- default: () => [slots.increment(incrementSlotProps.value)]
25199
+ default: () => [slots.increment(incrementSlotProps)]
25189
25200
  });
25190
25201
  }
25191
25202
  function decrementControlNode() {
@@ -25214,7 +25225,7 @@
25214
25225
  }
25215
25226
  }
25216
25227
  }, {
25217
- default: () => [slots.decrement(decrementSlotProps.value)]
25228
+ default: () => [slots.decrement(decrementSlotProps)]
25218
25229
  });
25219
25230
  }
25220
25231
  function controlNode() {
@@ -25414,12 +25425,12 @@
25414
25425
  }
25415
25426
  provideDefaults({
25416
25427
  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)
25428
+ color: vue.toRef(() => props.color),
25429
+ bgColor: vue.toRef(() => props.color),
25430
+ baseColor: vue.toRef(() => props.baseColor),
25431
+ disabled: vue.toRef(() => props.disabled),
25432
+ error: vue.toRef(() => props.error),
25433
+ variant: vue.toRef(() => props.variant)
25423
25434
  }
25424
25435
  }, {
25425
25436
  scoped: true
@@ -26220,7 +26231,7 @@
26220
26231
  const {
26221
26232
  backgroundColorClasses,
26222
26233
  backgroundColorStyles
26223
- } = useBackgroundColor(vue.toRef(props, 'color'));
26234
+ } = useBackgroundColor(() => props.color);
26224
26235
  const {
26225
26236
  dimensionStyles
26226
26237
  } = useDimension(props);
@@ -27019,7 +27030,7 @@
27019
27030
  const {
27020
27031
  textColorClasses,
27021
27032
  textColorStyles
27022
- } = useTextColor(vue.toRef(props, 'color'));
27033
+ } = useTextColor(() => props.color);
27023
27034
  const hasLabels = vue.computed(() => {
27024
27035
  return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);
27025
27036
  });
@@ -27565,11 +27576,11 @@
27565
27576
  } = useFocus(props);
27566
27577
  const control = vue.ref();
27567
27578
  const isForcedColorsModeActive = IN_BROWSER && window.matchMedia('(forced-colors: active)').matches;
27568
- const loaderColor = vue.computed(() => {
27579
+ const loaderColor = vue.toRef(() => {
27569
27580
  return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
27570
27581
  });
27571
27582
  const uid = vue.useId();
27572
- const id = vue.computed(() => props.id || `switch-${uid}`);
27583
+ const id = vue.toRef(() => props.id || `switch-${uid}`);
27573
27584
  function onChange() {
27574
27585
  if (indeterminate.value) {
27575
27586
  indeterminate.value = false;
@@ -27720,7 +27731,7 @@
27720
27731
  const {
27721
27732
  backgroundColorClasses,
27722
27733
  backgroundColorStyles
27723
- } = useBackgroundColor(vue.toRef(props, 'color'));
27734
+ } = useBackgroundColor(() => props.color);
27724
27735
  const {
27725
27736
  elevationClasses
27726
27737
  } = useElevation(props);
@@ -27740,7 +27751,7 @@
27740
27751
  layoutSize: height,
27741
27752
  elementSize: height,
27742
27753
  active: vue.computed(() => true),
27743
- absolute: vue.toRef(props, 'absolute')
27754
+ absolute: vue.toRef(() => props.absolute)
27744
27755
  });
27745
27756
  useRender(() => vue.createVNode(props.tag, {
27746
27757
  "class": ['v-system-bar', {
@@ -27782,7 +27793,7 @@
27782
27793
  const {
27783
27794
  textColorClasses: sliderColorClasses,
27784
27795
  textColorStyles: sliderColorStyles
27785
- } = useTextColor(props, 'sliderColor');
27796
+ } = useTextColor(() => props.sliderColor);
27786
27797
  const rootEl = vue.ref();
27787
27798
  const sliderEl = vue.ref();
27788
27799
  const isHorizontal = vue.computed(() => props.direction === 'horizontal');
@@ -27975,18 +27986,18 @@
27975
27986
  const {
27976
27987
  backgroundColorClasses,
27977
27988
  backgroundColorStyles
27978
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
27989
+ } = useBackgroundColor(() => props.bgColor);
27979
27990
  const {
27980
27991
  scopeId
27981
27992
  } = useScopeId();
27982
27993
  provideDefaults({
27983
27994
  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')
27995
+ color: vue.toRef(() => props.color),
27996
+ direction: vue.toRef(() => props.direction),
27997
+ stacked: vue.toRef(() => props.stacked),
27998
+ fixed: vue.toRef(() => props.fixedTabs),
27999
+ sliderColor: vue.toRef(() => props.sliderColor),
28000
+ hideSlider: vue.toRef(() => props.hideSlider)
27990
28001
  }
27991
28002
  });
27992
28003
  useRender(() => {
@@ -28336,7 +28347,7 @@
28336
28347
  const {
28337
28348
  backgroundColorStyles,
28338
28349
  backgroundColorClasses
28339
- } = useBackgroundColor(vue.toRef(props, 'dotColor'));
28350
+ } = useBackgroundColor(() => props.dotColor);
28340
28351
  const {
28341
28352
  roundedClasses
28342
28353
  } = useRounded(props, 'v-timeline-divider__dot');
@@ -28346,7 +28357,7 @@
28346
28357
  const {
28347
28358
  backgroundColorClasses: lineColorClasses,
28348
28359
  backgroundColorStyles: lineColorStyles
28349
- } = useBackgroundColor(vue.toRef(props, 'lineColor'));
28360
+ } = useBackgroundColor(() => props.lineColor);
28350
28361
  useRender(() => vue.createVNode("div", {
28351
28362
  "class": ['v-timeline-divider', {
28352
28363
  'v-timeline-divider--fill-dot': props.fillDot
@@ -28517,17 +28528,17 @@
28517
28528
  } = useRtl();
28518
28529
  provideDefaults({
28519
28530
  VTimelineDivider: {
28520
- lineColor: vue.toRef(props, 'lineColor')
28531
+ lineColor: vue.toRef(() => props.lineColor)
28521
28532
  },
28522
28533
  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')
28534
+ density: vue.toRef(() => props.density),
28535
+ dotColor: vue.toRef(() => props.dotColor),
28536
+ fillDot: vue.toRef(() => props.fillDot),
28537
+ hideOpposite: vue.toRef(() => props.hideOpposite),
28538
+ iconColor: vue.toRef(() => props.iconColor),
28539
+ lineColor: vue.toRef(() => props.lineColor),
28540
+ lineInset: vue.toRef(() => props.lineInset),
28541
+ size: vue.toRef(() => props.size)
28531
28542
  }
28532
28543
  });
28533
28544
  const sideClasses = vue.computed(() => {
@@ -28574,9 +28585,9 @@
28574
28585
  } = _ref;
28575
28586
  provideDefaults({
28576
28587
  VBtn: {
28577
- color: vue.toRef(props, 'color'),
28588
+ color: vue.toRef(() => props.color),
28578
28589
  height: 'inherit',
28579
- variant: vue.toRef(props, 'variant')
28590
+ variant: vue.toRef(() => props.variant)
28580
28591
  }
28581
28592
  });
28582
28593
  useRender(() => vue.createVNode("div", {
@@ -28623,7 +28634,7 @@
28623
28634
  scopeId
28624
28635
  } = useScopeId();
28625
28636
  const uid = vue.useId();
28626
- const id = vue.computed(() => props.id || `v-tooltip-${uid}`);
28637
+ const id = vue.toRef(() => props.id || `v-tooltip-${uid}`);
28627
28638
  const overlay = vue.ref();
28628
28639
  const location = vue.computed(() => {
28629
28640
  return props.location.split(' ').length > 1 ? props.location : props.location + ' center';
@@ -28631,7 +28642,7 @@
28631
28642
  const origin = vue.computed(() => {
28632
28643
  return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';
28633
28644
  });
28634
- const transition = vue.computed(() => {
28645
+ const transition = vue.toRef(() => {
28635
28646
  if (props.transition) return props.transition;
28636
28647
  return isActive.value ? 'scale-transition' : 'fade-transition';
28637
28648
  });
@@ -29178,7 +29189,7 @@
29178
29189
  };
29179
29190
  });
29180
29191
  }
29181
- const version$1 = "3.8.2-master.2025-04-17";
29192
+ const version$1 = "3.8.2-master.2025-04-22";
29182
29193
  createVuetify$1.version = version$1;
29183
29194
 
29184
29195
  // Vue's inject() can only be used in setup
@@ -29203,7 +29214,7 @@
29203
29214
  ...options
29204
29215
  });
29205
29216
  };
29206
- const version = "3.8.2-master.2025-04-17";
29217
+ const version = "3.8.2-master.2025-04-22";
29207
29218
  createVuetify.version = version;
29208
29219
 
29209
29220
  exports.blueprints = index;