vuetify 3.8.1 → 3.8.3

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 (312) hide show
  1. package/dist/json/attributes.json +2066 -2066
  2. package/dist/json/importMap-labs.json +26 -26
  3. package/dist/json/importMap.json +164 -164
  4. package/dist/json/web-types.json +4116 -3862
  5. package/dist/vuetify-labs.cjs +784 -697
  6. package/dist/vuetify-labs.css +3174 -3162
  7. package/dist/vuetify-labs.d.ts +2103 -1144
  8. package/dist/vuetify-labs.esm.js +785 -698
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +784 -697
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.cjs +565 -590
  13. package/dist/vuetify.cjs.map +1 -1
  14. package/dist/vuetify.css +2963 -2960
  15. package/dist/vuetify.d.ts +190 -169
  16. package/dist/vuetify.esm.js +566 -591
  17. package/dist/vuetify.esm.js.map +1 -1
  18. package/dist/vuetify.js +565 -590
  19. package/dist/vuetify.js.map +1 -1
  20. package/dist/vuetify.min.css +2 -2
  21. package/dist/vuetify.min.js +1264 -1235
  22. package/dist/vuetify.min.js.map +1 -1
  23. package/lib/blueprints/md3.js +18 -5
  24. package/lib/blueprints/md3.js.map +1 -1
  25. package/lib/components/VAlert/VAlert.js +8 -9
  26. package/lib/components/VAlert/VAlert.js.map +1 -1
  27. package/lib/components/VAppBar/VAppBar.js +4 -4
  28. package/lib/components/VAppBar/VAppBar.js.map +1 -1
  29. package/lib/components/VAutocomplete/VAutocomplete.js +1 -2
  30. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  31. package/lib/components/VBadge/VBadge.js +2 -3
  32. package/lib/components/VBadge/VBadge.js.map +1 -1
  33. package/lib/components/VBanner/VBanner.js +3 -3
  34. package/lib/components/VBanner/VBanner.js.map +1 -1
  35. package/lib/components/VBottomNavigation/VBottomNavigation.js +8 -8
  36. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  37. package/lib/components/VBreadcrumbs/VBreadcrumbs.js +6 -6
  38. package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  39. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +1 -2
  40. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  41. package/lib/components/VBtn/VBtn.js +3 -3
  42. package/lib/components/VBtn/VBtn.js.map +1 -1
  43. package/lib/components/VBtnGroup/VBtnGroup.js +4 -4
  44. package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
  45. package/lib/components/VCard/VCard.js +7 -8
  46. package/lib/components/VCard/VCard.js.map +1 -1
  47. package/lib/components/VCheckbox/VCheckbox.js +2 -3
  48. package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
  49. package/lib/components/VCheckbox/VCheckboxBtn.js +3 -3
  50. package/lib/components/VCheckbox/VCheckboxBtn.js.map +1 -1
  51. package/lib/components/VChip/VChip.js +8 -9
  52. package/lib/components/VChip/VChip.js.map +1 -1
  53. package/lib/components/VChipGroup/VChipGroup.js +5 -5
  54. package/lib/components/VChipGroup/VChipGroup.js.map +1 -1
  55. package/lib/components/VCode/VCode.css +3 -0
  56. package/lib/components/VCode/VCode.sass +3 -0
  57. package/lib/components/VCombobox/VCombobox.js +3 -4
  58. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  59. package/lib/components/VCounter/VCounter.js +2 -2
  60. package/lib/components/VCounter/VCounter.js.map +1 -1
  61. package/lib/components/VDataIterator/VDataIterator.js +2 -2
  62. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  63. package/lib/components/VDataTable/VDataTable.css +1 -1
  64. package/lib/components/VDataTable/VDataTable.js +7 -7
  65. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  66. package/lib/components/VDataTable/VDataTable.sass +1 -1
  67. package/lib/components/VDataTable/VDataTableHeaders.js +1 -1
  68. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  69. package/lib/components/VDataTable/VDataTableServer.js +7 -7
  70. package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
  71. package/lib/components/VDataTable/VDataTableVirtual.js +7 -7
  72. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  73. package/lib/components/VDataTable/composables/expand.d.ts +1 -1
  74. package/lib/components/VDataTable/composables/expand.js +1 -1
  75. package/lib/components/VDataTable/composables/expand.js.map +1 -1
  76. package/lib/components/VDataTable/composables/options.js +8 -8
  77. package/lib/components/VDataTable/composables/options.js.map +1 -1
  78. package/lib/components/VDataTable/composables/select.d.ts +2 -2
  79. package/lib/components/VDataTable/composables/select.js +2 -2
  80. package/lib/components/VDataTable/composables/select.js.map +1 -1
  81. package/lib/components/VDataTable/composables/sort.d.ts +2 -2
  82. package/lib/components/VDataTable/composables/sort.js +2 -2
  83. package/lib/components/VDataTable/composables/sort.js.map +1 -1
  84. package/lib/components/VDatePicker/VDatePicker.d.ts +7 -7
  85. package/lib/components/VDatePicker/VDatePicker.js +4 -4
  86. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  87. package/lib/components/VDatePicker/VDatePickerHeader.js +1 -1
  88. package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  89. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +7 -7
  90. package/lib/components/VDatePicker/VDatePickerMonth.js +2 -2
  91. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  92. package/lib/components/VDialog/VDialog.d.ts +9 -9
  93. package/lib/components/VDivider/VDivider.js +2 -2
  94. package/lib/components/VDivider/VDivider.js.map +1 -1
  95. package/lib/components/VEmptyState/VEmptyState.js +1 -2
  96. package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
  97. package/lib/components/VExpansionPanel/VExpansionPanel.js +3 -3
  98. package/lib/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
  99. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js +3 -3
  100. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js.map +1 -1
  101. package/lib/components/VExpansionPanel/VExpansionPanels.js +14 -14
  102. package/lib/components/VExpansionPanel/VExpansionPanels.js.map +1 -1
  103. package/lib/components/VFab/VFab.js +2 -2
  104. package/lib/components/VFab/VFab.js.map +1 -1
  105. package/lib/components/VField/VField.js +5 -5
  106. package/lib/components/VField/VField.js.map +1 -1
  107. package/lib/components/VFileInput/VFileInput.js +2 -2
  108. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  109. package/lib/components/VFooter/VFooter.js +4 -4
  110. package/lib/components/VFooter/VFooter.js.map +1 -1
  111. package/lib/components/VForm/VForm.d.ts +40 -40
  112. package/lib/components/VIcon/VIcon.js +4 -4
  113. package/lib/components/VIcon/VIcon.js.map +1 -1
  114. package/lib/components/VImg/VImg.js +2 -2
  115. package/lib/components/VImg/VImg.js.map +1 -1
  116. package/lib/components/VInput/VInput.js +3 -3
  117. package/lib/components/VInput/VInput.js.map +1 -1
  118. package/lib/components/VLayout/VLayoutItem.js +5 -5
  119. package/lib/components/VLayout/VLayoutItem.js.map +1 -1
  120. package/lib/components/VList/VList.js +14 -14
  121. package/lib/components/VList/VList.js.map +1 -1
  122. package/lib/components/VList/VListGroup.js +2 -2
  123. package/lib/components/VList/VListGroup.js.map +1 -1
  124. package/lib/components/VList/VListItem.d.ts +3 -3
  125. package/lib/components/VList/VListItem.js +6 -6
  126. package/lib/components/VList/VListItem.js.map +1 -1
  127. package/lib/components/VList/VListSubheader.js +1 -2
  128. package/lib/components/VList/VListSubheader.js.map +1 -1
  129. package/lib/components/VMenu/VMenu.d.ts +15 -15
  130. package/lib/components/VMenu/VMenu.js +2 -2
  131. package/lib/components/VMenu/VMenu.js.map +1 -1
  132. package/lib/components/VMessages/VMessages.js +1 -1
  133. package/lib/components/VMessages/VMessages.js.map +1 -1
  134. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +6 -6
  135. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  136. package/lib/components/VNumberInput/VNumberInput.js +11 -11
  137. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  138. package/lib/components/VOtpInput/VOtpInput.js +7 -7
  139. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  140. package/lib/components/VOverlay/VOverlay.d.ts +3 -3
  141. package/lib/components/VOverlay/VOverlay.js +4 -4
  142. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  143. package/lib/components/VOverlay/locationStrategies.d.ts +4 -0
  144. package/lib/components/VOverlay/locationStrategies.js +33 -4
  145. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  146. package/lib/components/VPagination/VPagination.js +7 -7
  147. package/lib/components/VPagination/VPagination.js.map +1 -1
  148. package/lib/components/VProgressCircular/VProgressCircular.js +9 -9
  149. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  150. package/lib/components/VProgressLinear/VProgressLinear.js +4 -4
  151. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  152. package/lib/components/VSelect/VSelect.js +3 -2
  153. package/lib/components/VSelect/VSelect.js.map +1 -1
  154. package/lib/components/VSelectionControl/VSelectionControl.d.ts +1 -1
  155. package/lib/components/VSelectionControl/VSelectionControl.js +7 -7
  156. package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
  157. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js +15 -15
  158. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js.map +1 -1
  159. package/lib/components/VSheet/VSheet.js +1 -2
  160. package/lib/components/VSheet/VSheet.js.map +1 -1
  161. package/lib/components/VSkeletonLoader/VSkeletonLoader.js +2 -2
  162. package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  163. package/lib/components/VSlider/slider.js +10 -10
  164. package/lib/components/VSlider/slider.js.map +1 -1
  165. package/lib/components/VSnackbar/VSnackbar.d.ts +9 -9
  166. package/lib/components/VSparkline/VSparkline.js +2 -2
  167. package/lib/components/VSparkline/VSparkline.js.map +1 -1
  168. package/lib/components/VSwitch/VSwitch.js +3 -3
  169. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  170. package/lib/components/VSystemBar/VSystemBar.js +2 -2
  171. package/lib/components/VSystemBar/VSystemBar.js.map +1 -1
  172. package/lib/components/VTabs/VTab.d.ts +3 -3
  173. package/lib/components/VTabs/VTab.js +1 -1
  174. package/lib/components/VTabs/VTab.js.map +1 -1
  175. package/lib/components/VTabs/VTabs.js +7 -7
  176. package/lib/components/VTabs/VTabs.js.map +1 -1
  177. package/lib/components/VTimeline/VTimeline.js +9 -9
  178. package/lib/components/VTimeline/VTimeline.js.map +1 -1
  179. package/lib/components/VTimeline/VTimelineDivider.js +2 -3
  180. package/lib/components/VTimeline/VTimelineDivider.js.map +1 -1
  181. package/lib/components/VToolbar/VToolbar.js +2 -2
  182. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  183. package/lib/components/VToolbar/VToolbarItems.js +2 -2
  184. package/lib/components/VToolbar/VToolbarItems.js.map +1 -1
  185. package/lib/components/VTooltip/VTooltip.d.ts +9 -9
  186. package/lib/components/VTooltip/VTooltip.js +3 -3
  187. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  188. package/lib/components/VVirtualScroll/VVirtualScroll.js +1 -1
  189. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  190. package/lib/components/VWindow/VWindow.js +3 -3
  191. package/lib/components/VWindow/VWindow.js.map +1 -1
  192. package/lib/components/transitions/dialog-transition.js +11 -2
  193. package/lib/components/transitions/dialog-transition.js.map +1 -1
  194. package/lib/composables/border.d.ts +1 -1
  195. package/lib/composables/border.js +5 -8
  196. package/lib/composables/border.js.map +1 -1
  197. package/lib/composables/calendar.d.ts +23 -56
  198. package/lib/composables/calendar.js +16 -18
  199. package/lib/composables/calendar.js.map +1 -1
  200. package/lib/composables/color.d.ts +8 -10
  201. package/lib/composables/color.js +21 -22
  202. package/lib/composables/color.js.map +1 -1
  203. package/lib/composables/date/DateAdapter.d.ts +1 -0
  204. package/lib/composables/date/DateAdapter.js.map +1 -1
  205. package/lib/composables/date/adapters/vuetify.d.ts +1 -0
  206. package/lib/composables/date/adapters/vuetify.js +101 -160
  207. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  208. package/lib/composables/date/date.d.ts +1 -1
  209. package/lib/composables/date/date.js +0 -20
  210. package/lib/composables/date/date.js.map +1 -1
  211. package/lib/composables/defaults.js +6 -3
  212. package/lib/composables/defaults.js.map +1 -1
  213. package/lib/composables/density.d.ts +1 -1
  214. package/lib/composables/density.js +2 -2
  215. package/lib/composables/density.js.map +1 -1
  216. package/lib/composables/display.d.ts +4 -2
  217. package/lib/composables/display.js +2 -2
  218. package/lib/composables/display.js.map +1 -1
  219. package/lib/composables/elevation.js +4 -6
  220. package/lib/composables/elevation.js.map +1 -1
  221. package/lib/composables/filter.js +2 -1
  222. package/lib/composables/filter.js.map +1 -1
  223. package/lib/composables/focus.d.ts +4 -2
  224. package/lib/composables/focus.js +2 -2
  225. package/lib/composables/focus.js.map +1 -1
  226. package/lib/composables/form.d.ts +7 -7
  227. package/lib/composables/form.js +3 -3
  228. package/lib/composables/form.js.map +1 -1
  229. package/lib/composables/goto.js +2 -2
  230. package/lib/composables/goto.js.map +1 -1
  231. package/lib/composables/group.d.ts +3 -3
  232. package/lib/composables/group.js +4 -4
  233. package/lib/composables/group.js.map +1 -1
  234. package/lib/composables/icons.d.ts +2 -2
  235. package/lib/composables/icons.js +2 -2
  236. package/lib/composables/icons.js.map +1 -1
  237. package/lib/composables/layout.d.ts +10 -4
  238. package/lib/composables/layout.js +4 -4
  239. package/lib/composables/layout.js.map +1 -1
  240. package/lib/composables/lazy.d.ts +1 -1
  241. package/lib/composables/lazy.js +2 -2
  242. package/lib/composables/lazy.js.map +1 -1
  243. package/lib/composables/loader.d.ts +4 -2
  244. package/lib/composables/loader.js +2 -2
  245. package/lib/composables/loader.js.map +1 -1
  246. package/lib/composables/locale.js +3 -3
  247. package/lib/composables/locale.js.map +1 -1
  248. package/lib/composables/nested/nested.d.ts +3 -3
  249. package/lib/composables/nested/nested.js +4 -4
  250. package/lib/composables/nested/nested.js.map +1 -1
  251. package/lib/composables/position.d.ts +1 -1
  252. package/lib/composables/position.js +2 -2
  253. package/lib/composables/position.js.map +1 -1
  254. package/lib/composables/router.d.ts +3 -3
  255. package/lib/composables/router.js +8 -8
  256. package/lib/composables/router.js.map +1 -1
  257. package/lib/composables/size.d.ts +8 -5
  258. package/lib/composables/size.js +6 -5
  259. package/lib/composables/size.js.map +1 -1
  260. package/lib/composables/ssrBoot.d.ts +4 -2
  261. package/lib/composables/ssrBoot.js +2 -2
  262. package/lib/composables/ssrBoot.js.map +1 -1
  263. package/lib/composables/stack.d.ts +7 -5
  264. package/lib/composables/stack.js +5 -5
  265. package/lib/composables/stack.js.map +1 -1
  266. package/lib/composables/theme.js +9 -9
  267. package/lib/composables/theme.js.map +1 -1
  268. package/lib/composables/variant.d.ts +5 -6
  269. package/lib/composables/variant.js +6 -6
  270. package/lib/composables/variant.js.map +1 -1
  271. package/lib/entry-bundler.d.ts +1 -0
  272. package/lib/entry-bundler.js +1 -1
  273. package/lib/framework.d.ts +80 -71
  274. package/lib/framework.js +1 -1
  275. package/lib/labs/VCalendar/VCalendar.d.ts +607 -218
  276. package/lib/labs/VCalendar/VCalendar.js +55 -27
  277. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  278. package/lib/labs/VCalendar/VCalendarDay.css +9 -0
  279. package/lib/labs/VCalendar/VCalendarDay.d.ts +329 -17
  280. package/lib/labs/VCalendar/VCalendarDay.js +18 -10
  281. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  282. package/lib/labs/VCalendar/VCalendarDay.sass +8 -0
  283. package/lib/labs/VCalendar/VCalendarEvent.js +15 -5
  284. package/lib/labs/VCalendar/VCalendarEvent.js.map +1 -1
  285. package/lib/labs/VCalendar/VCalendarHeader.d.ts +44 -17
  286. package/lib/labs/VCalendar/VCalendarHeader.js +5 -2
  287. package/lib/labs/VCalendar/VCalendarHeader.js.map +1 -1
  288. package/lib/labs/VCalendar/VCalendarInterval.d.ts +171 -17
  289. package/lib/labs/VCalendar/VCalendarInterval.js +56 -19
  290. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  291. package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +92 -17
  292. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +30 -10
  293. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  294. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +122 -88
  295. package/lib/labs/VCalendar/VCalendarMonthDay.js +24 -22
  296. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  297. package/lib/labs/VDateInput/VDateInput.d.ts +7 -7
  298. package/lib/labs/VIconBtn/VIconBtn.d.ts +6 -21
  299. package/lib/labs/VIconBtn/VIconBtn.js +10 -12
  300. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  301. package/lib/labs/VPicker/VPicker.js +1 -2
  302. package/lib/labs/VPicker/VPicker.js.map +1 -1
  303. package/lib/labs/VTimePicker/VTimePickerClock.js +3 -3
  304. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  305. package/lib/labs/VTreeview/VTreeview.js +11 -11
  306. package/lib/labs/VTreeview/VTreeview.js.map +1 -1
  307. package/lib/labs/entry-bundler.d.ts +1 -0
  308. package/lib/util/box.js.map +1 -1
  309. package/lib/util/helpers.d.ts +7 -2
  310. package/lib/util/helpers.js +16 -5
  311. package/lib/util/helpers.js.map +1 -1
  312. package/package.json +49 -47
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.8.1
2
+ * Vuetify v3.8.3
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
- import { shallowRef, reactive, computed, watchEffect, toRefs, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, createVNode, mergeProps, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, TransitionGroup, Transition, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
7
+ import { shallowRef, reactive, watchEffect, toRef, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, createVNode, mergeProps, toValue, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, TransitionGroup, Transition, toRefs, isRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
8
8
 
9
9
  const IN_BROWSER = typeof window !== 'undefined';
10
10
  const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
@@ -335,6 +335,9 @@ class CircularBuffer {
335
335
  _classPrivateFieldInitSpec(this, _pointer, 0);
336
336
  this.size = size;
337
337
  }
338
+ get isFull() {
339
+ return _classPrivateFieldGet(_arr, this).length === this.size;
340
+ }
338
341
  push(val) {
339
342
  _classPrivateFieldGet(_arr, this)[_classPrivateFieldGet(_pointer, this)] = val;
340
343
  _classPrivateFieldSet(_pointer, this, (_classPrivateFieldGet(_pointer, this) + 1) % this.size);
@@ -342,6 +345,10 @@ class CircularBuffer {
342
345
  values() {
343
346
  return _classPrivateFieldGet(_arr, this).slice(_classPrivateFieldGet(_pointer, this)).concat(_classPrivateFieldGet(_arr, this).slice(0, _classPrivateFieldGet(_pointer, this)));
344
347
  }
348
+ clear() {
349
+ _classPrivateFieldGet(_arr, this).length = 0;
350
+ _classPrivateFieldSet(_pointer, this, 0);
351
+ }
345
352
  }
346
353
  function getEventCoordinates(e) {
347
354
  if ('touches' in e) {
@@ -365,15 +372,19 @@ function getEventCoordinates(e) {
365
372
 
366
373
  function destructComputed(getter) {
367
374
  const refs = reactive({});
368
- const base = computed(getter);
369
375
  watchEffect(() => {
370
- for (const key in base.value) {
371
- refs[key] = base.value[key];
376
+ const base = getter();
377
+ for (const key in base) {
378
+ refs[key] = base[key];
372
379
  }
373
380
  }, {
374
381
  flush: 'sync'
375
382
  });
376
- return toRefs(refs);
383
+ const obj = {};
384
+ for (const key in refs) {
385
+ obj[key] = toRef(() => refs[key]);
386
+ }
387
+ return obj;
377
388
  }
378
389
 
379
390
  /** Array.includes but value can be any type */
@@ -1328,7 +1339,7 @@ function provideDefaults(defaults, options) {
1328
1339
  return newDefaults;
1329
1340
  }
1330
1341
  function propIsDefined(vnode, prop) {
1331
- return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
1342
+ return vnode.props && (typeof vnode.props[prop] !== 'undefined' || typeof vnode.props[toKebabCase(prop)] !== 'undefined');
1332
1343
  }
1333
1344
  function internalUseDefaults() {
1334
1345
  let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -1345,9 +1356,12 @@ function internalUseDefaults() {
1345
1356
  const propValue = Reflect.get(target, prop);
1346
1357
  if (prop === 'class' || prop === 'style') {
1347
1358
  return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
1348
- } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
1349
- return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop] : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop] : propValue;
1350
1359
  }
1360
+ if (propIsDefined(vm.vnode, prop)) return propValue;
1361
+ const _componentDefault = componentDefaults.value?.[prop];
1362
+ if (_componentDefault !== undefined) return _componentDefault;
1363
+ const _globalDefault = defaults.value?.global?.[prop];
1364
+ if (_globalDefault !== undefined) return _globalDefault;
1351
1365
  return propValue;
1352
1366
  }
1353
1367
  });
@@ -1673,7 +1687,7 @@ const useIcon = props => {
1673
1687
  const icons = inject$1(IconSymbol);
1674
1688
  if (!icons) throw new Error('Missing Vuetify Icons provide!');
1675
1689
  const iconData = computed(() => {
1676
- const iconAlias = unref(props);
1690
+ const iconAlias = toValue(props);
1677
1691
  if (!iconAlias) return {
1678
1692
  component: VComponentIcon
1679
1693
  };
@@ -1936,7 +1950,7 @@ const md3 = {
1936
1950
  flat: true
1937
1951
  },
1938
1952
  VAutocomplete: {
1939
- variant: 'filled'
1953
+ variant: 'outlined'
1940
1954
  },
1941
1955
  VBanner: {
1942
1956
  color: 'primary'
@@ -1965,7 +1979,10 @@ const md3 = {
1965
1979
  rounded: 'sm'
1966
1980
  },
1967
1981
  VCombobox: {
1968
- variant: 'filled'
1982
+ variant: 'outlined'
1983
+ },
1984
+ VDateInput: {
1985
+ variant: 'outlined'
1969
1986
  },
1970
1987
  VDatePicker: {
1971
1988
  controlHeight: 48,
@@ -1979,6 +1996,9 @@ const md3 = {
1979
1996
  rounded: 'circle'
1980
1997
  }
1981
1998
  },
1999
+ VFileInput: {
2000
+ variant: 'outlined'
2001
+ },
1982
2002
  VNavigationDrawer: {
1983
2003
  // VList: {
1984
2004
  // nav: true,
@@ -1987,8 +2007,15 @@ const md3 = {
1987
2007
  // },
1988
2008
  // },
1989
2009
  },
2010
+ VNumberInput: {
2011
+ variant: 'outlined',
2012
+ VBtn: {
2013
+ color: undefined,
2014
+ rounded: undefined
2015
+ }
2016
+ },
1990
2017
  VSelect: {
1991
- variant: 'filled'
2018
+ variant: 'outlined'
1992
2019
  },
1993
2020
  VSlider: {
1994
2021
  color: 'primary'
@@ -1997,10 +2024,10 @@ const md3 = {
1997
2024
  color: 'primary'
1998
2025
  },
1999
2026
  VTextarea: {
2000
- variant: 'filled'
2027
+ variant: 'outlined'
2001
2028
  },
2002
2029
  VTextField: {
2003
- variant: 'filled'
2030
+ variant: 'outlined'
2004
2031
  },
2005
2032
  VToolbar: {
2006
2033
  VBtn: {
@@ -2214,7 +2241,7 @@ function createLayout(props) {
2214
2241
  const mainRect = computed(() => {
2215
2242
  return layers.value[layers.value.length - 1].layer;
2216
2243
  });
2217
- const mainStyles = computed(() => {
2244
+ const mainStyles = toRef(() => {
2218
2245
  return {
2219
2246
  '--v-layout-left': convertToUnit(mainRect.value.left),
2220
2247
  '--v-layout-right': convertToUnit(mainRect.value.right),
@@ -2329,10 +2356,10 @@ function createLayout(props) {
2329
2356
  layoutRect,
2330
2357
  rootZIndex
2331
2358
  });
2332
- const layoutClasses = computed(() => ['v-layout', {
2359
+ const layoutClasses = toRef(() => ['v-layout', {
2333
2360
  'v-layout--full-height': props.fullHeight
2334
2361
  }]);
2335
- const layoutStyles = computed(() => ({
2362
+ const layoutStyles = toRef(() => ({
2336
2363
  zIndex: parentLayout ? rootZIndex.value : undefined,
2337
2364
  position: parentLayout ? 'relative' : undefined,
2338
2365
  overflow: parentLayout ? 'hidden' : undefined
@@ -2723,7 +2750,7 @@ function createRtl(i18n, options) {
2723
2750
  return {
2724
2751
  isRtl,
2725
2752
  rtl,
2726
- rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
2753
+ rtlClasses: toRef(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
2727
2754
  };
2728
2755
  }
2729
2756
  function provideRtl(locale, rtl, props) {
@@ -2731,7 +2758,7 @@ function provideRtl(locale, rtl, props) {
2731
2758
  return {
2732
2759
  isRtl,
2733
2760
  rtl,
2734
- rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
2761
+ rtlClasses: toRef(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
2735
2762
  };
2736
2763
  }
2737
2764
  function useRtl() {
@@ -2804,8 +2831,8 @@ function genDefaults$1() {
2804
2831
  surface: '#212121',
2805
2832
  'surface-bright': '#ccbfd6',
2806
2833
  'surface-light': '#424242',
2807
- 'surface-variant': '#a3a3a3',
2808
- 'on-surface-variant': '#424242',
2834
+ 'surface-variant': '#c8c8c8',
2835
+ 'on-surface-variant': '#000000',
2809
2836
  primary: '#2196F3',
2810
2837
  'primary-darken-1': '#277CC1',
2811
2838
  secondary: '#54B6B2',
@@ -2955,7 +2982,7 @@ function createTheme(options) {
2955
2982
  }
2956
2983
  return acc;
2957
2984
  });
2958
- const current = computed(() => computedThemes.value[name.value]);
2985
+ const current = toRef(() => computedThemes.value[name.value]);
2959
2986
  const styles = computed(() => {
2960
2987
  const lines = [];
2961
2988
  if (current.value?.dark) {
@@ -3002,7 +3029,7 @@ function createTheme(options) {
3002
3029
  }
3003
3030
  } else {
3004
3031
  if (IN_BROWSER) {
3005
- head.addHeadObjs(computed(getHead));
3032
+ head.addHeadObjs(toRef(getHead));
3006
3033
  watchEffect(() => head.updateDOM());
3007
3034
  } else {
3008
3035
  head.addHeadObjs(getHead());
@@ -3021,7 +3048,7 @@ function createTheme(options) {
3021
3048
  }
3022
3049
  }
3023
3050
  }
3024
- const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
3051
+ const themeClasses = toRef(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
3025
3052
  return {
3026
3053
  install,
3027
3054
  isDisabled: parsedOptions.isDisabled,
@@ -3041,9 +3068,9 @@ function provideTheme(props) {
3041
3068
  getCurrentInstance('provideTheme');
3042
3069
  const theme = inject$1(ThemeSymbol, null);
3043
3070
  if (!theme) throw new Error('Could not find Vuetify theme injection');
3044
- const name = computed(() => props.theme ?? theme.name.value);
3045
- const current = computed(() => theme.themes.value[name.value]);
3046
- const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
3071
+ const name = toRef(() => props.theme ?? theme.name.value);
3072
+ const current = toRef(() => theme.themes.value[name.value]);
3073
+ const themeClasses = toRef(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
3047
3074
  const newTheme = {
3048
3075
  ...theme,
3049
3076
  name,
@@ -3327,6 +3354,7 @@ function ExpandTransitionGenerator () {
3327
3354
  const makeVDialogTransitionProps = propsFactory({
3328
3355
  target: [Object, Array]
3329
3356
  }, 'v-dialog-transition');
3357
+ const saved = new WeakMap();
3330
3358
  const VDialogTransition = genericComponent()({
3331
3359
  name: 'VDialogTransition',
3332
3360
  props: makeVDialogTransitionProps(),
@@ -3343,13 +3371,15 @@ const VDialogTransition = genericComponent()({
3343
3371
  await new Promise(resolve => requestAnimationFrame(resolve));
3344
3372
  await new Promise(resolve => requestAnimationFrame(resolve));
3345
3373
  el.style.visibility = '';
3374
+ const dimensions = getDimensions(props.target, el);
3346
3375
  const {
3347
3376
  x,
3348
3377
  y,
3349
3378
  sx,
3350
3379
  sy,
3351
3380
  speed
3352
- } = getDimensions(props.target, el);
3381
+ } = dimensions;
3382
+ saved.set(el, dimensions);
3353
3383
  const animation = animate(el, [{
3354
3384
  transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
3355
3385
  opacity: 0
@@ -3378,13 +3408,19 @@ const VDialogTransition = genericComponent()({
3378
3408
  },
3379
3409
  async onLeave(el, done) {
3380
3410
  await new Promise(resolve => requestAnimationFrame(resolve));
3411
+ let dimensions;
3412
+ if (!Array.isArray(props.target) && !props.target.offsetParent && saved.has(el)) {
3413
+ dimensions = saved.get(el);
3414
+ } else {
3415
+ dimensions = getDimensions(props.target, el);
3416
+ }
3381
3417
  const {
3382
3418
  x,
3383
3419
  y,
3384
3420
  sx,
3385
3421
  sy,
3386
3422
  speed
3387
- } = getDimensions(props.target, el);
3423
+ } = dimensions;
3388
3424
  const animation = animate(el, [{}, {
3389
3425
  transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
3390
3426
  opacity: 0
@@ -3604,13 +3640,14 @@ const VResponsive = genericComponent()({
3604
3640
  // Composables
3605
3641
  function useColor(colors) {
3606
3642
  return destructComputed(() => {
3643
+ const _colors = toValue(colors);
3607
3644
  const classes = [];
3608
3645
  const styles = {};
3609
- if (colors.value.background) {
3610
- if (isCssColor(colors.value.background)) {
3611
- styles.backgroundColor = colors.value.background;
3612
- if (!colors.value.text && isParsableColor(colors.value.background)) {
3613
- const backgroundColor = parseColor(colors.value.background);
3646
+ if (_colors.background) {
3647
+ if (isCssColor(_colors.background)) {
3648
+ styles.backgroundColor = _colors.background;
3649
+ if (!_colors.text && isParsableColor(_colors.background)) {
3650
+ const backgroundColor = parseColor(_colors.background);
3614
3651
  if (backgroundColor.a == null || backgroundColor.a === 1) {
3615
3652
  const textColor = getForeground(backgroundColor);
3616
3653
  styles.color = textColor;
@@ -3618,15 +3655,15 @@ function useColor(colors) {
3618
3655
  }
3619
3656
  }
3620
3657
  } else {
3621
- classes.push(`bg-${colors.value.background}`);
3658
+ classes.push(`bg-${_colors.background}`);
3622
3659
  }
3623
3660
  }
3624
- if (colors.value.text) {
3625
- if (isCssColor(colors.value.text)) {
3626
- styles.color = colors.value.text;
3627
- styles.caretColor = colors.value.text;
3661
+ if (_colors.text) {
3662
+ if (isCssColor(_colors.text)) {
3663
+ styles.color = _colors.text;
3664
+ styles.caretColor = _colors.text;
3628
3665
  } else {
3629
- classes.push(`text-${colors.value.text}`);
3666
+ classes.push(`text-${_colors.text}`);
3630
3667
  }
3631
3668
  }
3632
3669
  return {
@@ -3635,27 +3672,25 @@ function useColor(colors) {
3635
3672
  };
3636
3673
  });
3637
3674
  }
3638
- function useTextColor(props, name) {
3639
- const colors = computed(() => ({
3640
- text: isRef(props) ? props.value : name ? props[name] : null
3641
- }));
3675
+ function useTextColor(color) {
3642
3676
  const {
3643
3677
  colorClasses: textColorClasses,
3644
3678
  colorStyles: textColorStyles
3645
- } = useColor(colors);
3679
+ } = useColor(() => ({
3680
+ text: toValue(color)
3681
+ }));
3646
3682
  return {
3647
3683
  textColorClasses,
3648
3684
  textColorStyles
3649
3685
  };
3650
3686
  }
3651
- function useBackgroundColor(props, name) {
3652
- const colors = computed(() => ({
3653
- background: isRef(props) ? props.value : name ? props[name] : null
3654
- }));
3687
+ function useBackgroundColor(color) {
3655
3688
  const {
3656
3689
  colorClasses: backgroundColorClasses,
3657
3690
  colorStyles: backgroundColorStyles
3658
- } = useColor(colors);
3691
+ } = useColor(() => ({
3692
+ background: toValue(color)
3693
+ }));
3659
3694
  return {
3660
3695
  backgroundColorClasses,
3661
3696
  backgroundColorStyles
@@ -3839,7 +3874,7 @@ const VImg = genericComponent()({
3839
3874
  const {
3840
3875
  backgroundColorClasses,
3841
3876
  backgroundColorStyles
3842
- } = useBackgroundColor(toRef(props, 'color'));
3877
+ } = useBackgroundColor(() => props.color);
3843
3878
  const {
3844
3879
  roundedClasses
3845
3880
  } = useRounded(props);
@@ -3946,7 +3981,7 @@ const VImg = genericComponent()({
3946
3981
  };
3947
3982
  poll();
3948
3983
  }
3949
- const containClasses = computed(() => ({
3984
+ const containClasses = toRef(() => ({
3950
3985
  'v-img__img--cover': props.cover,
3951
3986
  'v-img__img--contain': !props.cover
3952
3987
  }));
@@ -4083,16 +4118,13 @@ const makeBorderProps = propsFactory({
4083
4118
  function useBorder(props) {
4084
4119
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
4085
4120
  const borderClasses = computed(() => {
4086
- const border = isRef(props) ? props.value : props.border;
4087
- const classes = [];
4121
+ const border = props.border;
4088
4122
  if (border === true || border === '') {
4089
- classes.push(`${name}--border`);
4123
+ return `${name}--border`;
4090
4124
  } else if (typeof border === 'string' || border === 0) {
4091
- for (const value of String(border).split(' ')) {
4092
- classes.push(`border-${value}`);
4093
- }
4125
+ return String(border).split(' ').map(v => `border-${v}`);
4094
4126
  }
4095
- return classes;
4127
+ return [];
4096
4128
  });
4097
4129
  return {
4098
4130
  borderClasses
@@ -4117,12 +4149,10 @@ const makeElevationProps = propsFactory({
4117
4149
  }
4118
4150
  }, 'elevation');
4119
4151
  function useElevation(props) {
4120
- const elevationClasses = computed(() => {
4152
+ const elevationClasses = toRef(() => {
4121
4153
  const elevation = isRef(props) ? props.value : props.elevation;
4122
- const classes = [];
4123
- if (elevation == null) return classes;
4124
- classes.push(`elevation-${elevation}`);
4125
- return classes;
4154
+ if (elevation == null) return [];
4155
+ return [`elevation-${elevation}`];
4126
4156
  });
4127
4157
  return {
4128
4158
  elevationClasses
@@ -4173,7 +4203,7 @@ const VToolbar = genericComponent()({
4173
4203
  const {
4174
4204
  backgroundColorClasses,
4175
4205
  backgroundColorStyles
4176
- } = useBackgroundColor(toRef(props, 'color'));
4206
+ } = useBackgroundColor(() => props.color);
4177
4207
  const {
4178
4208
  borderClasses
4179
4209
  } = useBorder(props);
@@ -4382,7 +4412,7 @@ function useSsrBoot() {
4382
4412
  isBooted.value = true;
4383
4413
  });
4384
4414
  });
4385
- const ssrBootStyles = computed(() => !isBooted.value ? {
4415
+ const ssrBootStyles = toRef(() => !isBooted.value ? {
4386
4416
  transition: 'none !important'
4387
4417
  } : undefined);
4388
4418
  return {
@@ -4450,7 +4480,7 @@ const VAppBar = genericComponent()({
4450
4480
  } = useScroll(props, {
4451
4481
  canScroll
4452
4482
  });
4453
- const canHide = computed(() => scrollBehavior.value.hide || scrollBehavior.value.fullyHide);
4483
+ const canHide = toRef(() => scrollBehavior.value.hide || scrollBehavior.value.fullyHide);
4454
4484
  const isCollapsed = computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));
4455
4485
  const isFlat = computed(() => props.flat || scrollBehavior.value.fullyHide && !isActive.value || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
4456
4486
  const opacity = computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
@@ -4461,7 +4491,7 @@ const VAppBar = genericComponent()({
4461
4491
  if (!canHide.value) return height + extensionHeight;
4462
4492
  return currentScroll.value < scrollThreshold.value || scrollBehavior.value.fullyHide ? height + extensionHeight : height;
4463
4493
  });
4464
- useToggleScope(computed(() => !!props.scrollBehavior), () => {
4494
+ useToggleScope(() => !!props.scrollBehavior, () => {
4465
4495
  watchEffect(() => {
4466
4496
  if (canHide.value) {
4467
4497
  if (scrollBehavior.value.inverted) {
@@ -4482,11 +4512,11 @@ const VAppBar = genericComponent()({
4482
4512
  } = useLayoutItem({
4483
4513
  id: props.name,
4484
4514
  order: computed(() => parseInt(props.order, 10)),
4485
- position: toRef(props, 'location'),
4515
+ position: toRef(() => props.location),
4486
4516
  layoutSize: height,
4487
4517
  elementSize: shallowRef(undefined),
4488
4518
  active: isActive,
4489
- absolute: toRef(props, 'absolute')
4519
+ absolute: toRef(() => props.absolute)
4490
4520
  });
4491
4521
  useRender(() => {
4492
4522
  const toolbarProps = VToolbar.filterProps(props);
@@ -4529,7 +4559,7 @@ const makeDensityProps = propsFactory({
4529
4559
  }, 'density');
4530
4560
  function useDensity(props) {
4531
4561
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
4532
- const densityClasses = computed(() => {
4562
+ const densityClasses = toRef(() => {
4533
4563
  return `${name}--density-${props.density}`;
4534
4564
  });
4535
4565
  return {
@@ -4559,24 +4589,24 @@ const makeVariantProps = propsFactory({
4559
4589
  }, 'variant');
4560
4590
  function useVariant(props) {
4561
4591
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
4562
- const variantClasses = computed(() => {
4592
+ const variantClasses = toRef(() => {
4563
4593
  const {
4564
4594
  variant
4565
- } = unref(props);
4595
+ } = toValue(props);
4566
4596
  return `${name}--variant-${variant}`;
4567
4597
  });
4568
4598
  const {
4569
4599
  colorClasses,
4570
4600
  colorStyles
4571
- } = useColor(computed(() => {
4601
+ } = useColor(() => {
4572
4602
  const {
4573
4603
  variant,
4574
4604
  color
4575
- } = unref(props);
4605
+ } = toValue(props);
4576
4606
  return {
4577
4607
  [['elevated', 'flat'].includes(variant) ? 'background' : 'text']: color
4578
4608
  };
4579
- }));
4609
+ });
4580
4610
  return {
4581
4611
  colorClasses,
4582
4612
  colorStyles,
@@ -4621,11 +4651,11 @@ const VBtnGroup = genericComponent()({
4621
4651
  provideDefaults({
4622
4652
  VBtn: {
4623
4653
  height: 'auto',
4624
- baseColor: toRef(props, 'baseColor'),
4625
- color: toRef(props, 'color'),
4626
- density: toRef(props, 'density'),
4654
+ baseColor: toRef(() => props.baseColor),
4655
+ color: toRef(() => props.color),
4656
+ density: toRef(() => props.density),
4627
4657
  flat: true,
4628
- variant: toRef(props, 'variant')
4658
+ variant: toRef(() => props.variant)
4629
4659
  }
4630
4660
  });
4631
4661
  useRender(() => {
@@ -4675,7 +4705,7 @@ function useGroupItem(props, injectKey) {
4675
4705
  if (!required) return group;
4676
4706
  throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);
4677
4707
  }
4678
- const value = toRef(props, 'value');
4708
+ const value = toRef(() => props.value);
4679
4709
  const disabled = computed(() => !!(group.disabled.value || props.disabled));
4680
4710
  group.register({
4681
4711
  id,
@@ -4824,12 +4854,12 @@ function useGroup(props, injectKey) {
4824
4854
  unregister,
4825
4855
  selected,
4826
4856
  select,
4827
- disabled: toRef(props, 'disabled'),
4857
+ disabled: toRef(() => props.disabled),
4828
4858
  prev: () => step(items.length - 1),
4829
4859
  next: () => step(1),
4830
4860
  isSelected: id => selected.value.includes(id),
4831
- selectedClass: computed(() => props.selectedClass),
4832
- items: computed(() => items),
4861
+ selectedClass: toRef(() => props.selectedClass),
4862
+ items: toRef(() => items),
4833
4863
  getItemIndex: value => getItemIndex(items, value)
4834
4864
  };
4835
4865
  provide(injectKey, state);
@@ -4927,14 +4957,15 @@ const makeSizeProps = propsFactory({
4927
4957
  function useSize(props) {
4928
4958
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
4929
4959
  return destructComputed(() => {
4960
+ const size = props.size;
4930
4961
  let sizeClasses;
4931
4962
  let sizeStyles;
4932
- if (includes(predefinedSizes, props.size)) {
4933
- sizeClasses = `${name}--size-${props.size}`;
4934
- } else if (props.size) {
4963
+ if (includes(predefinedSizes, size)) {
4964
+ sizeClasses = `${name}--size-${size}`;
4965
+ } else if (size) {
4935
4966
  sizeStyles = {
4936
- width: convertToUnit(props.size),
4937
- height: convertToUnit(props.size)
4967
+ width: convertToUnit(size),
4968
+ height: convertToUnit(size)
4938
4969
  };
4939
4970
  }
4940
4971
  return {
@@ -4966,20 +4997,20 @@ const VIcon = genericComponent()({
4966
4997
  attrs,
4967
4998
  slots
4968
4999
  } = _ref;
4969
- const slotIcon = ref();
5000
+ const slotIcon = shallowRef();
4970
5001
  const {
4971
5002
  themeClasses
4972
5003
  } = useTheme();
4973
5004
  const {
4974
5005
  iconData
4975
- } = useIcon(computed(() => slotIcon.value || props.icon));
5006
+ } = useIcon(() => slotIcon.value || props.icon);
4976
5007
  const {
4977
5008
  sizeClasses
4978
5009
  } = useSize(props);
4979
5010
  const {
4980
5011
  textColorClasses,
4981
5012
  textColorStyles
4982
- } = useTextColor(toRef(props, 'color'));
5013
+ } = useTextColor(() => props.color);
4983
5014
  useRender(() => {
4984
5015
  const slotValue = slots.default?.();
4985
5016
  if (slotValue) {
@@ -5085,11 +5116,11 @@ const VProgressCircular = genericComponent()({
5085
5116
  const {
5086
5117
  textColorClasses,
5087
5118
  textColorStyles
5088
- } = useTextColor(toRef(props, 'color'));
5119
+ } = useTextColor(() => props.color);
5089
5120
  const {
5090
5121
  textColorClasses: underlayColorClasses,
5091
5122
  textColorStyles: underlayColorStyles
5092
- } = useTextColor(toRef(props, 'bgColor'));
5123
+ } = useTextColor(() => props.bgColor);
5093
5124
  const {
5094
5125
  intersectionRef,
5095
5126
  isIntersecting
@@ -5098,15 +5129,15 @@ const VProgressCircular = genericComponent()({
5098
5129
  resizeRef,
5099
5130
  contentRect
5100
5131
  } = useResizeObserver();
5101
- const normalizedValue = computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));
5102
- const width = computed(() => Number(props.width));
5103
- const size = computed(() => {
5132
+ const normalizedValue = toRef(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));
5133
+ const width = toRef(() => Number(props.width));
5134
+ const size = toRef(() => {
5104
5135
  // Get size from element if size prop value is small, large etc
5105
5136
  return sizeStyles.value ? Number(props.size) : contentRect.value ? contentRect.value.width : Math.max(width.value, 32);
5106
5137
  });
5107
- const diameter = computed(() => MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value) * 2);
5108
- const strokeWidth = computed(() => width.value / size.value * diameter.value);
5109
- const strokeDashOffset = computed(() => convertToUnit((100 - normalizedValue.value) / 100 * CIRCUMFERENCE));
5138
+ const diameter = toRef(() => MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value) * 2);
5139
+ const strokeWidth = toRef(() => width.value / size.value * diameter.value);
5140
+ const strokeDashOffset = toRef(() => convertToUnit((100 - normalizedValue.value) / 100 * CIRCUMFERENCE));
5110
5141
  watchEffect(() => {
5111
5142
  intersectionRef.value = root.value;
5112
5143
  resizeRef.value = root.value;
@@ -5284,19 +5315,19 @@ const VProgressLinear = genericComponent()({
5284
5315
  const {
5285
5316
  textColorClasses,
5286
5317
  textColorStyles
5287
- } = useTextColor(props, 'color');
5318
+ } = useTextColor(() => props.color);
5288
5319
  const {
5289
5320
  backgroundColorClasses,
5290
5321
  backgroundColorStyles
5291
- } = useBackgroundColor(computed(() => props.bgColor || props.color));
5322
+ } = useBackgroundColor(() => props.bgColor || props.color);
5292
5323
  const {
5293
5324
  backgroundColorClasses: bufferColorClasses,
5294
5325
  backgroundColorStyles: bufferColorStyles
5295
- } = useBackgroundColor(computed(() => props.bufferColor || props.bgColor || props.color));
5326
+ } = useBackgroundColor(() => props.bufferColor || props.bgColor || props.color);
5296
5327
  const {
5297
5328
  backgroundColorClasses: barColorClasses,
5298
5329
  backgroundColorStyles: barColorStyles
5299
- } = useBackgroundColor(props, 'color');
5330
+ } = useBackgroundColor(() => props.color);
5300
5331
  const {
5301
5332
  roundedClasses
5302
5333
  } = useRounded(props);
@@ -5403,7 +5434,7 @@ const makeLoaderProps = propsFactory({
5403
5434
  }, 'loader');
5404
5435
  function useLoader(props) {
5405
5436
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
5406
- const loaderClasses = computed(() => ({
5437
+ const loaderClasses = toRef(() => ({
5407
5438
  [`${name}--loading`]: props.loading
5408
5439
  }));
5409
5440
  return {
@@ -5442,7 +5473,7 @@ const makePositionProps = propsFactory({
5442
5473
  }, 'position');
5443
5474
  function usePosition(props) {
5444
5475
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
5445
- const positionClasses = computed(() => {
5476
+ const positionClasses = toRef(() => {
5446
5477
  return props.position ? `${name}--${props.position}` : undefined;
5447
5478
  });
5448
5479
  return {
@@ -5463,12 +5494,12 @@ function useRouter() {
5463
5494
  }
5464
5495
  function useLink(props, attrs) {
5465
5496
  const RouterLink = resolveDynamicComponent('RouterLink');
5466
- const isLink = computed(() => !!(props.href || props.to));
5497
+ const isLink = toRef(() => !!(props.href || props.to));
5467
5498
  const isClickable = computed(() => {
5468
5499
  return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');
5469
5500
  });
5470
5501
  if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {
5471
- const href = toRef(props, 'href');
5502
+ const href = toRef(() => props.href);
5472
5503
  return {
5473
5504
  isLink,
5474
5505
  isClickable,
@@ -5478,12 +5509,12 @@ function useLink(props, attrs) {
5478
5509
  })
5479
5510
  };
5480
5511
  }
5512
+
5481
5513
  // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined
5482
- const linkProps = computed(() => ({
5483
- ...props,
5484
- to: toRef(() => props.to || '')
5485
- }));
5486
- const routerLink = RouterLink.useLink(linkProps.value);
5514
+ const routerLink = RouterLink.useLink({
5515
+ to: toRef(() => props.to || ''),
5516
+ replace: toRef(() => props.replace)
5517
+ });
5487
5518
  // Actual link needs to be undefined when to prop is not used
5488
5519
  const link = computed(() => props.to ? routerLink : undefined);
5489
5520
  const route = useRoute();
@@ -5503,7 +5534,7 @@ function useLink(props, attrs) {
5503
5534
  href,
5504
5535
  linkProps: reactive({
5505
5536
  href,
5506
- 'aria-current': computed(() => isActive.value ? 'page' : undefined)
5537
+ 'aria-current': toRef(() => isActive.value ? 'page' : undefined)
5507
5538
  })
5508
5539
  };
5509
5540
  }
@@ -5952,7 +5983,7 @@ const VBtn = genericComponent()({
5952
5983
  }
5953
5984
  return group?.isSelected.value;
5954
5985
  });
5955
- const color = computed(() => isActive.value ? props.activeColor ?? props.color : props.color);
5986
+ const color = toRef(() => isActive.value ? props.activeColor ?? props.color : props.color);
5956
5987
  const variantProps = computed(() => {
5957
5988
  const showColor = group?.isSelected.value && (!link.isLink.value || link.isActive?.value) || !group || link.isActive?.value;
5958
5989
  return {
@@ -5966,7 +5997,7 @@ const VBtn = genericComponent()({
5966
5997
  variantClasses
5967
5998
  } = useVariant(variantProps);
5968
5999
  const isDisabled = computed(() => group?.disabled.value || props.disabled);
5969
- const isElevated = computed(() => {
6000
+ const isElevated = toRef(() => {
5970
6001
  return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
5971
6002
  });
5972
6003
  const valueAttr = computed(() => {
@@ -6169,15 +6200,11 @@ const VAlert = genericComponent()({
6169
6200
  slots
6170
6201
  } = _ref;
6171
6202
  const isActive = useProxiedModel(props, 'modelValue');
6172
- const icon = computed(() => {
6203
+ const icon = toRef(() => {
6173
6204
  if (props.icon === false) return undefined;
6174
6205
  if (!props.type) return props.icon;
6175
6206
  return props.icon ?? `$${props.type}`;
6176
6207
  });
6177
- const variantProps = computed(() => ({
6178
- color: props.color ?? props.type,
6179
- variant: props.variant
6180
- }));
6181
6208
  const {
6182
6209
  themeClasses
6183
6210
  } = provideTheme(props);
@@ -6185,7 +6212,10 @@ const VAlert = genericComponent()({
6185
6212
  colorClasses,
6186
6213
  colorStyles,
6187
6214
  variantClasses
6188
- } = useVariant(variantProps);
6215
+ } = useVariant(() => ({
6216
+ color: props.color ?? props.type,
6217
+ variant: props.variant
6218
+ }));
6189
6219
  const {
6190
6220
  densityClasses
6191
6221
  } = useDensity(props);
@@ -6207,11 +6237,11 @@ const VAlert = genericComponent()({
6207
6237
  const {
6208
6238
  textColorClasses,
6209
6239
  textColorStyles
6210
- } = useTextColor(toRef(props, 'borderColor'));
6240
+ } = useTextColor(() => props.borderColor);
6211
6241
  const {
6212
6242
  t
6213
6243
  } = useLocale();
6214
- const closeProps = computed(() => ({
6244
+ const closeProps = toRef(() => ({
6215
6245
  'aria-label': t(props.closeLabel),
6216
6246
  onClick(e) {
6217
6247
  isActive.value = false;
@@ -6448,8 +6478,8 @@ const VSelectionControlGroup = genericComponent()({
6448
6478
  } = _ref;
6449
6479
  const modelValue = useProxiedModel(props, 'modelValue');
6450
6480
  const uid = useId();
6451
- const id = computed(() => props.id || `v-selection-control-group-${uid}`);
6452
- const name = computed(() => props.name || id.value);
6481
+ const id = toRef(() => props.id || `v-selection-control-group-${uid}`);
6482
+ const name = toRef(() => props.name || id.value);
6453
6483
  const updateHandlers = new Set();
6454
6484
  provide(VSelectionControlGroupSymbol, {
6455
6485
  modelValue,
@@ -6465,20 +6495,20 @@ const VSelectionControlGroup = genericComponent()({
6465
6495
  });
6466
6496
  provideDefaults({
6467
6497
  [props.defaultsTarget]: {
6468
- color: toRef(props, 'color'),
6469
- disabled: toRef(props, 'disabled'),
6470
- density: toRef(props, 'density'),
6471
- error: toRef(props, 'error'),
6472
- inline: toRef(props, 'inline'),
6498
+ color: toRef(() => props.color),
6499
+ disabled: toRef(() => props.disabled),
6500
+ density: toRef(() => props.density),
6501
+ error: toRef(() => props.error),
6502
+ inline: toRef(() => props.inline),
6473
6503
  modelValue,
6474
- multiple: computed(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value)),
6504
+ multiple: toRef(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value)),
6475
6505
  name,
6476
- falseIcon: toRef(props, 'falseIcon'),
6477
- trueIcon: toRef(props, 'trueIcon'),
6478
- readonly: toRef(props, 'readonly'),
6479
- ripple: toRef(props, 'ripple'),
6480
- type: toRef(props, 'type'),
6481
- valueComparator: toRef(props, 'valueComparator')
6506
+ falseIcon: toRef(() => props.falseIcon),
6507
+ trueIcon: toRef(() => props.trueIcon),
6508
+ readonly: toRef(() => props.readonly),
6509
+ ripple: toRef(() => props.ripple),
6510
+ type: toRef(() => props.type),
6511
+ valueComparator: toRef(() => props.valueComparator)
6482
6512
  }
6483
6513
  });
6484
6514
  useRender(() => createVNode("div", {
@@ -6534,16 +6564,16 @@ function useSelectionControl(props) {
6534
6564
  const {
6535
6565
  textColorClasses,
6536
6566
  textColorStyles
6537
- } = useTextColor(computed(() => {
6567
+ } = useTextColor(() => {
6538
6568
  if (props.error || props.disabled) return undefined;
6539
6569
  return model.value ? props.color : props.baseColor;
6540
- }));
6570
+ });
6541
6571
  const {
6542
6572
  backgroundColorClasses,
6543
6573
  backgroundColorStyles
6544
- } = useBackgroundColor(computed(() => {
6574
+ } = useBackgroundColor(() => {
6545
6575
  return model.value && !props.error && !props.disabled ? props.color : props.baseColor;
6546
- }));
6576
+ });
6547
6577
  const icon = computed(() => model.value ? props.trueIcon : props.falseIcon);
6548
6578
  return {
6549
6579
  group,
@@ -6588,8 +6618,8 @@ const VSelectionControl = genericComponent()({
6588
6618
  const isFocused = shallowRef(false);
6589
6619
  const isFocusVisible = shallowRef(false);
6590
6620
  const input = ref();
6591
- const id = computed(() => props.id || `input-${uid}`);
6592
- const isInteractive = computed(() => !props.disabled && !props.readonly);
6621
+ const id = toRef(() => props.id || `input-${uid}`);
6622
+ const isInteractive = toRef(() => !props.disabled && !props.readonly);
6593
6623
  group?.onForceUpdate(() => {
6594
6624
  if (input.value) {
6595
6625
  input.value.checked = model.value;
@@ -6727,10 +6757,10 @@ const VCheckboxBtn = genericComponent()({
6727
6757
  indeterminate.value = false;
6728
6758
  }
6729
6759
  }
6730
- const falseIcon = computed(() => {
6760
+ const falseIcon = toRef(() => {
6731
6761
  return indeterminate.value ? props.indeterminateIcon : props.falseIcon;
6732
6762
  });
6733
- const trueIcon = computed(() => {
6763
+ const trueIcon = toRef(() => {
6734
6764
  return indeterminate.value ? props.indeterminateIcon : props.trueIcon;
6735
6765
  });
6736
6766
  useRender(() => {
@@ -6818,7 +6848,7 @@ const VMessages = genericComponent()({
6818
6848
  const {
6819
6849
  textColorClasses,
6820
6850
  textColorStyles
6821
- } = useTextColor(computed(() => props.color));
6851
+ } = useTextColor(() => props.color);
6822
6852
  useRender(() => createVNode(MaybeTransition, {
6823
6853
  "transition": props.transition,
6824
6854
  "tag": "div",
@@ -6848,7 +6878,7 @@ const makeFocusProps = propsFactory({
6848
6878
  function useFocus(props) {
6849
6879
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
6850
6880
  const isFocused = useProxiedModel(props, 'focused');
6851
- const focusClasses = computed(() => {
6881
+ const focusClasses = toRef(() => {
6852
6882
  return {
6853
6883
  [`${name}--focused`]: isFocused.value
6854
6884
  };
@@ -6887,8 +6917,8 @@ const makeFormProps = propsFactory({
6887
6917
  }, 'form');
6888
6918
  function createForm(props) {
6889
6919
  const model = useProxiedModel(props, 'modelValue');
6890
- const isDisabled = computed(() => props.disabled);
6891
- const isReadonly = computed(() => props.readonly);
6920
+ const isDisabled = toRef(() => props.disabled);
6921
+ const isReadonly = toRef(() => props.readonly);
6892
6922
  const isValidating = shallowRef(false);
6893
6923
  const items = ref([]);
6894
6924
  const errors = ref([]);
@@ -6978,7 +7008,7 @@ function createForm(props) {
6978
7008
  isValidating,
6979
7009
  isValid: model,
6980
7010
  items,
6981
- validateOn: toRef(props, 'validateOn')
7011
+ validateOn: toRef(() => props.validateOn)
6982
7012
  });
6983
7013
  return {
6984
7014
  errors,
@@ -7288,10 +7318,10 @@ const VInput = genericComponent()({
7288
7318
  resetValidation,
7289
7319
  validate
7290
7320
  }));
7291
- const color = computed(() => {
7321
+ const color = toRef(() => {
7292
7322
  return props.error || props.disabled ? undefined : props.focused ? props.color : props.baseColor;
7293
7323
  });
7294
- const iconColor = computed(() => {
7324
+ const iconColor = toRef(() => {
7295
7325
  if (!props.iconColor) return undefined;
7296
7326
  return props.iconColor === true ? color.value : props.iconColor;
7297
7327
  });
@@ -7381,7 +7411,6 @@ const VCheckbox = genericComponent()({
7381
7411
  blur
7382
7412
  } = useFocus(props);
7383
7413
  const uid = useId();
7384
- const id = computed(() => props.id || `checkbox-${uid}`);
7385
7414
  useRender(() => {
7386
7415
  const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
7387
7416
  const inputProps = VInput.filterProps(props);
@@ -7391,7 +7420,7 @@ const VCheckbox = genericComponent()({
7391
7420
  }, rootAttrs, inputProps, {
7392
7421
  "modelValue": model.value,
7393
7422
  "onUpdate:modelValue": $event => model.value = $event,
7394
- "id": id.value,
7423
+ "id": props.id || `checkbox-${uid}`,
7395
7424
  "focused": isFocused.value,
7396
7425
  "style": props.style
7397
7426
  }), {
@@ -7575,7 +7604,7 @@ function useDisplay() {
7575
7604
  return false;
7576
7605
  }
7577
7606
  });
7578
- const displayClasses = computed(() => {
7607
+ const displayClasses = toRef(() => {
7579
7608
  if (!name) return {};
7580
7609
  return {
7581
7610
  [`${name}--mobile`]: mobile.value
@@ -7690,7 +7719,7 @@ function useGoTo() {
7690
7719
  const goTo = {
7691
7720
  ...goToInstance,
7692
7721
  // can be set via VLocaleProvider
7693
- rtl: computed(() => goToInstance.rtl.value || isRtl.value)
7722
+ rtl: toRef(() => goToInstance.rtl.value || isRtl.value)
7694
7723
  };
7695
7724
  async function go(target, options) {
7696
7725
  return scrollTo(target, mergeDeep(_options, options), false, goTo);
@@ -8182,11 +8211,11 @@ const VChipGroup = genericComponent()({
8182
8211
  } = useGroup(props, VChipGroupSymbol);
8183
8212
  provideDefaults({
8184
8213
  VChip: {
8185
- baseColor: toRef(props, 'baseColor'),
8186
- color: toRef(props, 'color'),
8187
- disabled: toRef(props, 'disabled'),
8188
- filter: toRef(props, 'filter'),
8189
- variant: toRef(props, 'variant')
8214
+ baseColor: toRef(() => props.baseColor),
8215
+ color: toRef(() => props.color),
8216
+ disabled: toRef(() => props.disabled),
8217
+ filter: toRef(() => props.filter),
8218
+ variant: toRef(() => props.variant)
8190
8219
  }
8191
8220
  });
8192
8221
  useRender(() => {
@@ -8312,9 +8341,9 @@ const VChip = genericComponent()({
8312
8341
  const isActive = useProxiedModel(props, 'modelValue');
8313
8342
  const group = useGroupItem(props, VChipGroupSymbol, false);
8314
8343
  const link = useLink(props, attrs);
8315
- const isLink = computed(() => props.link !== false && link.isLink.value);
8344
+ const isLink = toRef(() => props.link !== false && link.isLink.value);
8316
8345
  const isClickable = computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
8317
- const closeProps = computed(() => ({
8346
+ const closeProps = toRef(() => ({
8318
8347
  'aria-label': t(props.closeLabel),
8319
8348
  onClick(e) {
8320
8349
  e.preventDefault();
@@ -8323,18 +8352,17 @@ const VChip = genericComponent()({
8323
8352
  emit('click:close', e);
8324
8353
  }
8325
8354
  }));
8326
- const variantProps = computed(() => {
8355
+ const {
8356
+ colorClasses,
8357
+ colorStyles,
8358
+ variantClasses
8359
+ } = useVariant(() => {
8327
8360
  const showColor = !group || group.isSelected.value;
8328
8361
  return {
8329
8362
  color: showColor ? props.color ?? props.baseColor : props.baseColor,
8330
8363
  variant: props.variant
8331
8364
  };
8332
8365
  });
8333
- const {
8334
- colorClasses,
8335
- colorStyles,
8336
- variantClasses
8337
- } = useVariant(variantProps);
8338
8366
  function onClick(e) {
8339
8367
  emit('click', e);
8340
8368
  if (!isClickable.value) return;
@@ -9001,8 +9029,8 @@ const useNested = props => {
9001
9029
  id: shallowRef(),
9002
9030
  root: {
9003
9031
  opened,
9004
- activatable: toRef(props, 'activatable'),
9005
- selectable: toRef(props, 'selectable'),
9032
+ activatable: toRef(() => props.activatable),
9033
+ selectable: toRef(() => props.selectable),
9006
9034
  activated,
9007
9035
  selected,
9008
9036
  selectedValues: computed(() => {
@@ -9131,7 +9159,7 @@ const useNested = props => {
9131
9159
  const useNestedItem = (id, isGroup) => {
9132
9160
  const parent = inject$1(VNestedSymbol, emptyNested);
9133
9161
  const uidSymbol = Symbol('nested item');
9134
- const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol);
9162
+ const computedId = computed(() => toValue(id) ?? uidSymbol);
9135
9163
  const item = {
9136
9164
  ...parent,
9137
9165
  id: computedId,
@@ -9207,7 +9235,7 @@ const VListGroup = genericComponent()({
9207
9235
  isOpen,
9208
9236
  open,
9209
9237
  id: _id
9210
- } = useNestedItem(toRef(props, 'value'), true);
9238
+ } = useNestedItem(() => props.value, true);
9211
9239
  const id = computed(() => `v-list-group--id-${String(_id.value)}`);
9212
9240
  const list = useList();
9213
9241
  const {
@@ -9381,12 +9409,12 @@ const VListItem = genericComponent()({
9381
9409
  } = useNestedItem(id, false);
9382
9410
  const list = useList();
9383
9411
  const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
9384
- const isLink = computed(() => props.link !== false && link.isLink.value);
9412
+ const isLink = toRef(() => props.link !== false && link.isLink.value);
9385
9413
  const isSelectable = computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
9386
9414
  const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
9387
- const roundedProps = computed(() => props.rounded || props.nav);
9388
- const color = computed(() => props.color ?? props.activeColor);
9389
- const variantProps = computed(() => ({
9415
+ const roundedProps = toRef(() => props.rounded || props.nav);
9416
+ const color = toRef(() => props.color ?? props.activeColor);
9417
+ const variantProps = toRef(() => ({
9390
9418
  color: isActive.value ? color.value ?? props.baseColor : props.baseColor,
9391
9419
  variant: props.variant
9392
9420
  }));
@@ -9429,7 +9457,7 @@ const VListItem = genericComponent()({
9429
9457
  const {
9430
9458
  roundedClasses
9431
9459
  } = useRounded(roundedProps);
9432
- const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
9460
+ const lineClasses = toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
9433
9461
  const slotProps = computed(() => ({
9434
9462
  isActive: isActive.value,
9435
9463
  select,
@@ -9599,7 +9627,7 @@ const VListSubheader = genericComponent()({
9599
9627
  const {
9600
9628
  textColorClasses,
9601
9629
  textColorStyles
9602
- } = useTextColor(toRef(props, 'color'));
9630
+ } = useTextColor(() => props.color);
9603
9631
  useRender(() => {
9604
9632
  const hasText = !!(slots.default || props.title);
9605
9633
  return createVNode(props.tag, {
@@ -9644,7 +9672,7 @@ const VDivider = genericComponent()({
9644
9672
  const {
9645
9673
  textColorClasses,
9646
9674
  textColorStyles
9647
- } = useTextColor(toRef(props, 'color'));
9675
+ } = useTextColor(() => props.color);
9648
9676
  const dividerStyles = computed(() => {
9649
9677
  const styles = {};
9650
9678
  if (props.length) {
@@ -10006,7 +10034,7 @@ const VList = genericComponent()({
10006
10034
  const {
10007
10035
  backgroundColorClasses,
10008
10036
  backgroundColorStyles
10009
- } = useBackgroundColor(toRef(props, 'bgColor'));
10037
+ } = useBackgroundColor(() => props.bgColor);
10010
10038
  const {
10011
10039
  borderClasses
10012
10040
  } = useBorder(props);
@@ -10029,30 +10057,30 @@ const VList = genericComponent()({
10029
10057
  select,
10030
10058
  getPath
10031
10059
  } = useNested(props);
10032
- const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
10033
- const activeColor = toRef(props, 'activeColor');
10034
- const baseColor = toRef(props, 'baseColor');
10035
- const color = toRef(props, 'color');
10060
+ const lineClasses = toRef(() => props.lines ? `v-list--${props.lines}-line` : undefined);
10061
+ const activeColor = toRef(() => props.activeColor);
10062
+ const baseColor = toRef(() => props.baseColor);
10063
+ const color = toRef(() => props.color);
10036
10064
  createList();
10037
10065
  provideDefaults({
10038
10066
  VListGroup: {
10039
10067
  activeColor,
10040
10068
  baseColor,
10041
10069
  color,
10042
- expandIcon: toRef(props, 'expandIcon'),
10043
- collapseIcon: toRef(props, 'collapseIcon')
10070
+ expandIcon: toRef(() => props.expandIcon),
10071
+ collapseIcon: toRef(() => props.collapseIcon)
10044
10072
  },
10045
10073
  VListItem: {
10046
- activeClass: toRef(props, 'activeClass'),
10074
+ activeClass: toRef(() => props.activeClass),
10047
10075
  activeColor,
10048
10076
  baseColor,
10049
10077
  color,
10050
- density: toRef(props, 'density'),
10051
- disabled: toRef(props, 'disabled'),
10052
- lines: toRef(props, 'lines'),
10053
- nav: toRef(props, 'nav'),
10054
- slim: toRef(props, 'slim'),
10055
- variant: toRef(props, 'variant')
10078
+ density: toRef(() => props.density),
10079
+ disabled: toRef(() => props.disabled),
10080
+ lines: toRef(() => props.lines),
10081
+ nav: toRef(() => props.nav),
10082
+ slim: toRef(() => props.slim),
10083
+ variant: toRef(() => props.variant)
10056
10084
  }
10057
10085
  });
10058
10086
  const isFocused = shallowRef(false);
@@ -10364,8 +10392,27 @@ function connectedLocationStrategy(data, props, contentStyles) {
10364
10392
  return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];
10365
10393
  });
10366
10394
  let observe = false;
10395
+ let lastFrame = -1;
10396
+ const flipped = new CircularBuffer(4);
10367
10397
  const observer = new ResizeObserver(() => {
10368
- if (observe) updateLocation();
10398
+ if (!observe) return;
10399
+
10400
+ // Detect consecutive frames
10401
+ requestAnimationFrame(newTime => {
10402
+ if (newTime !== lastFrame) flipped.clear();
10403
+ requestAnimationFrame(newNewTime => {
10404
+ lastFrame = newNewTime;
10405
+ });
10406
+ });
10407
+ if (flipped.isFull) {
10408
+ const values = flipped.values();
10409
+ if (deepEqual(values.at(-1), values.at(-3))) {
10410
+ // Flipping is causing a container resize loop
10411
+ return;
10412
+ }
10413
+ }
10414
+ const result = updateLocation();
10415
+ if (result) flipped.push(result.flipped);
10369
10416
  });
10370
10417
  watch([data.target, data.contentEl], (_ref, _ref2) => {
10371
10418
  let [newTarget, newContentEl] = _ref;
@@ -10380,13 +10427,22 @@ function connectedLocationStrategy(data, props, contentStyles) {
10380
10427
  onScopeDispose(() => {
10381
10428
  observer.disconnect();
10382
10429
  });
10430
+ let targetBox = new Box({
10431
+ x: 0,
10432
+ y: 0,
10433
+ width: 0,
10434
+ height: 0
10435
+ });
10383
10436
 
10384
10437
  // eslint-disable-next-line max-statements
10385
10438
  function updateLocation() {
10386
10439
  observe = false;
10387
10440
  requestAnimationFrame(() => observe = true);
10388
10441
  if (!data.target.value || !data.contentEl.value) return;
10389
- const targetBox = getTargetBox(data.target.value);
10442
+ if (Array.isArray(data.target.value) || data.target.value.offsetParent) {
10443
+ targetBox = getTargetBox(data.target.value);
10444
+ } // Otherwise target element is hidden, use last known value
10445
+
10390
10446
  const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
10391
10447
  const scrollParents = getScrollParents(data.contentEl.value);
10392
10448
  const viewportMargin = 12;
@@ -10571,7 +10627,8 @@ function connectedLocationStrategy(data, props, contentStyles) {
10571
10627
  });
10572
10628
  return {
10573
10629
  available,
10574
- contentBox
10630
+ contentBox,
10631
+ flipped
10575
10632
  };
10576
10633
  }
10577
10634
  watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());
@@ -11096,7 +11153,7 @@ const makeLazyProps = propsFactory({
11096
11153
  }, 'lazy');
11097
11154
  function useLazy(props, active) {
11098
11155
  const isBooted = shallowRef(false);
11099
- const hasContent = computed(() => isBooted.value || props.eager || active.value);
11156
+ const hasContent = toRef(() => isBooted.value || props.eager || active.value);
11100
11157
  watch(active, () => isBooted.value = true);
11101
11158
  function onAfterLeave() {
11102
11159
  if (!props.eager) isBooted.value = false;
@@ -11133,10 +11190,10 @@ function useStack(isActive, zIndex, disableGlobalStack) {
11133
11190
  activeChildren: new Set()
11134
11191
  });
11135
11192
  provide(StackSymbol, stack);
11136
- const _zIndex = shallowRef(Number(zIndex.value));
11193
+ const _zIndex = shallowRef(Number(toValue(zIndex)));
11137
11194
  useToggleScope(isActive, () => {
11138
11195
  const lastZIndex = globalStack.at(-1)?.[1];
11139
- _zIndex.value = lastZIndex ? lastZIndex + 10 : Number(zIndex.value);
11196
+ _zIndex.value = lastZIndex ? lastZIndex + 10 : Number(toValue(zIndex));
11140
11197
  if (createStackEntry) {
11141
11198
  globalStack.push([vm.uid, _zIndex.value]);
11142
11199
  }
@@ -11156,11 +11213,11 @@ function useStack(isActive, zIndex, disableGlobalStack) {
11156
11213
  setTimeout(() => globalTop.value = _isTop);
11157
11214
  });
11158
11215
  }
11159
- const localTop = computed(() => !stack.activeChildren.size);
11216
+ const localTop = toRef(() => !stack.activeChildren.size);
11160
11217
  return {
11161
11218
  globalTop: readonly(globalTop),
11162
11219
  localTop,
11163
- stackStyles: computed(() => ({
11220
+ stackStyles: toRef(() => ({
11164
11221
  zIndex: _zIndex.value
11165
11222
  }))
11166
11223
  };
@@ -11377,14 +11434,14 @@ const VOverlay = genericComponent()({
11377
11434
  hasContent,
11378
11435
  onAfterLeave: _onAfterLeave
11379
11436
  } = useLazy(props, isActive);
11380
- const scrimColor = useBackgroundColor(computed(() => {
11437
+ const scrimColor = useBackgroundColor(() => {
11381
11438
  return typeof props.scrim === 'string' ? props.scrim : null;
11382
- }));
11439
+ });
11383
11440
  const {
11384
11441
  globalTop,
11385
11442
  localTop,
11386
11443
  stackStyles
11387
- } = useStack(isActive, toRef(props, 'zIndex'), props._disableGlobalStack);
11444
+ } = useStack(isActive, () => props.zIndex, props._disableGlobalStack);
11388
11445
  const {
11389
11446
  activatorEl,
11390
11447
  activatorRef,
@@ -11710,7 +11767,7 @@ const VMenu = genericComponent()({
11710
11767
  isRtl
11711
11768
  } = useRtl();
11712
11769
  const uid = useId();
11713
- const id = computed(() => props.id || `v-menu-${uid}`);
11770
+ const id = toRef(() => props.id || `v-menu-${uid}`);
11714
11771
  const overlay = ref();
11715
11772
  const parent = inject$1(VMenuSymbol, null);
11716
11773
  const openChildren = shallowRef(new Set());
@@ -11878,7 +11935,7 @@ const VCounter = genericComponent()({
11878
11935
  let {
11879
11936
  slots
11880
11937
  } = _ref;
11881
- const counter = computed(() => {
11938
+ const counter = toRef(() => {
11882
11939
  return props.max ? `${props.value} / ${props.max}` : String(props.value);
11883
11940
  });
11884
11941
  useRender(() => createVNode(MaybeTransition, {
@@ -12005,12 +12062,12 @@ const VField = genericComponent()({
12005
12062
  const {
12006
12063
  rtlClasses
12007
12064
  } = useRtl();
12008
- const isActive = computed(() => props.dirty || props.active);
12009
- const hasLabel = computed(() => !!(props.label || slots.label));
12010
- const hasFloatingLabel = computed(() => !props.singleLine && hasLabel.value);
12065
+ const isActive = toRef(() => props.dirty || props.active);
12066
+ const hasLabel = toRef(() => !!(props.label || slots.label));
12067
+ const hasFloatingLabel = toRef(() => !props.singleLine && hasLabel.value);
12011
12068
  const uid = useId();
12012
12069
  const id = computed(() => props.id || `input-${uid}`);
12013
- const messagesId = computed(() => `${id.value}-messages`);
12070
+ const messagesId = toRef(() => `${id.value}-messages`);
12014
12071
  const labelRef = ref();
12015
12072
  const floatingLabelRef = ref();
12016
12073
  const controlRef = ref();
@@ -12025,7 +12082,7 @@ const VField = genericComponent()({
12025
12082
  const {
12026
12083
  backgroundColorClasses,
12027
12084
  backgroundColorStyles
12028
- } = useBackgroundColor(toRef(props, 'bgColor'));
12085
+ } = useBackgroundColor(() => props.bgColor);
12029
12086
  const {
12030
12087
  textColorClasses,
12031
12088
  textColorStyles
@@ -12752,7 +12809,7 @@ const VVirtualScroll = genericComponent()({
12752
12809
  paddingTop,
12753
12810
  paddingBottom,
12754
12811
  computedItems
12755
- } = useVirtual(props, toRef(props, 'items'));
12812
+ } = useVirtual(props, toRef(() => props.items));
12756
12813
  useToggleScope(() => props.renderless, () => {
12757
12814
  function handleListeners() {
12758
12815
  let add = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
@@ -12989,7 +13046,7 @@ const VSelect = genericComponent()({
12989
13046
  _menu.value = v;
12990
13047
  }
12991
13048
  });
12992
- const label = computed(() => menu.value ? props.closeText : props.openText);
13049
+ const label = toRef(() => menu.value ? props.closeText : props.openText);
12993
13050
  const computedMenuProps = computed(() => {
12994
13051
  return {
12995
13052
  ...props.menuProps,
@@ -13174,6 +13231,7 @@ const VSelect = genericComponent()({
13174
13231
  "onFocusin": onFocusin,
13175
13232
  "tabindex": "-1",
13176
13233
  "aria-live": "polite",
13234
+ "aria-label": `${props.label}-list`,
13177
13235
  "color": props.itemColor ?? props.color
13178
13236
  }, listEvents, props.listProps), {
13179
13237
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
@@ -13315,6 +13373,7 @@ const VSelect = genericComponent()({
13315
13373
  // Composables
13316
13374
  const defaultFilter = (value, query, item) => {
13317
13375
  if (value == null || query == null) return -1;
13376
+ if (!query.length) return 0;
13318
13377
  value = value.toString().toLocaleLowerCase();
13319
13378
  query = query.toString().toLocaleLowerCase();
13320
13379
  const result = [];
@@ -13327,7 +13386,7 @@ const defaultFilter = (value, query, item) => {
13327
13386
  };
13328
13387
  function normaliseMatch(match, query) {
13329
13388
  if (match == null || typeof match === 'boolean' || match === -1) return;
13330
- if (typeof match === 'number') return [[match, query.length]];
13389
+ if (typeof match === 'number') return [[match, match + query.length]];
13331
13390
  if (Array.isArray(match[0])) return match;
13332
13391
  return [match];
13333
13392
  }
@@ -13490,7 +13549,6 @@ const VAutocomplete = genericComponent()({
13490
13549
  const vMenuRef = ref();
13491
13550
  const vVirtualScrollRef = ref();
13492
13551
  const selectionIndex = shallowRef(-1);
13493
- const color = computed(() => vTextFieldRef.value?.color);
13494
13552
  const {
13495
13553
  items,
13496
13554
  transformIn,
@@ -13499,7 +13557,7 @@ const VAutocomplete = genericComponent()({
13499
13557
  const {
13500
13558
  textColorClasses,
13501
13559
  textColorStyles
13502
- } = useTextColor(color);
13560
+ } = useTextColor(() => vTextFieldRef.value?.color);
13503
13561
  const search = useProxiedModel(props, 'search', '');
13504
13562
  const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
13505
13563
  const transformed = transformOut(v);
@@ -13948,7 +14006,7 @@ const VBadge = genericComponent()({
13948
14006
  const {
13949
14007
  backgroundColorClasses,
13950
14008
  backgroundColorStyles
13951
- } = useBackgroundColor(toRef(props, 'color'));
14009
+ } = useBackgroundColor(() => props.color);
13952
14010
  const {
13953
14011
  roundedClasses
13954
14012
  } = useRounded(props);
@@ -13958,7 +14016,7 @@ const VBadge = genericComponent()({
13958
14016
  const {
13959
14017
  textColorClasses,
13960
14018
  textColorStyles
13961
- } = useTextColor(toRef(props, 'textColor'));
14019
+ } = useTextColor(() => props.textColor);
13962
14020
  const {
13963
14021
  themeClasses
13964
14022
  } = useTheme();
@@ -14070,7 +14128,7 @@ const VBanner = genericComponent()({
14070
14128
  const {
14071
14129
  backgroundColorClasses,
14072
14130
  backgroundColorStyles
14073
- } = useBackgroundColor(props, 'bgColor');
14131
+ } = useBackgroundColor(() => props.bgColor);
14074
14132
  const {
14075
14133
  borderClasses
14076
14134
  } = useBorder(props);
@@ -14099,8 +14157,8 @@ const VBanner = genericComponent()({
14099
14157
  const {
14100
14158
  themeClasses
14101
14159
  } = provideTheme(props);
14102
- const color = toRef(props, 'color');
14103
- const density = toRef(props, 'density');
14160
+ const color = toRef(() => props.color);
14161
+ const density = toRef(() => props.density);
14104
14162
  provideDefaults({
14105
14163
  VBannerActions: {
14106
14164
  color,
@@ -14209,7 +14267,7 @@ const VBottomNavigation = genericComponent()({
14209
14267
  const {
14210
14268
  backgroundColorClasses,
14211
14269
  backgroundColorStyles
14212
- } = useBackgroundColor(toRef(props, 'bgColor'));
14270
+ } = useBackgroundColor(() => props.bgColor);
14213
14271
  const {
14214
14272
  densityClasses
14215
14273
  } = useDensity(props);
@@ -14229,19 +14287,19 @@ const VBottomNavigation = genericComponent()({
14229
14287
  } = useLayoutItem({
14230
14288
  id: props.name,
14231
14289
  order: computed(() => parseInt(props.order, 10)),
14232
- position: computed(() => 'bottom'),
14233
- layoutSize: computed(() => isActive.value ? height.value : 0),
14290
+ position: toRef(() => 'bottom'),
14291
+ layoutSize: toRef(() => isActive.value ? height.value : 0),
14234
14292
  elementSize: height,
14235
14293
  active: isActive,
14236
- absolute: toRef(props, 'absolute')
14294
+ absolute: toRef(() => props.absolute)
14237
14295
  });
14238
14296
  useGroup(props, VBtnToggleSymbol);
14239
14297
  provideDefaults({
14240
14298
  VBtn: {
14241
- baseColor: toRef(props, 'baseColor'),
14242
- color: toRef(props, 'color'),
14243
- density: toRef(props, 'density'),
14244
- stacked: computed(() => props.mode !== 'horizontal'),
14299
+ baseColor: toRef(() => props.baseColor),
14300
+ color: toRef(() => props.color),
14301
+ density: toRef(() => props.density),
14302
+ stacked: toRef(() => props.mode !== 'horizontal'),
14245
14303
  variant: 'text'
14246
14304
  }
14247
14305
  }, {
@@ -14477,11 +14535,10 @@ const VBreadcrumbsItem = genericComponent()({
14477
14535
  } = _ref;
14478
14536
  const link = useLink(props, attrs);
14479
14537
  const isActive = computed(() => props.active || link.isActive?.value);
14480
- const color = computed(() => isActive.value ? props.activeColor : props.color);
14481
14538
  const {
14482
14539
  textColorClasses,
14483
14540
  textColorStyles
14484
- } = useTextColor(color);
14541
+ } = useTextColor(() => isActive.value ? props.activeColor : props.color);
14485
14542
  useRender(() => {
14486
14543
  return createVNode(props.tag, {
14487
14544
  "class": ['v-breadcrumbs-item', {
@@ -14536,7 +14593,7 @@ const VBreadcrumbs = genericComponent()({
14536
14593
  const {
14537
14594
  backgroundColorClasses,
14538
14595
  backgroundColorStyles
14539
- } = useBackgroundColor(toRef(props, 'bgColor'));
14596
+ } = useBackgroundColor(() => props.bgColor);
14540
14597
  const {
14541
14598
  densityClasses
14542
14599
  } = useDensity(props);
@@ -14545,13 +14602,13 @@ const VBreadcrumbs = genericComponent()({
14545
14602
  } = useRounded(props);
14546
14603
  provideDefaults({
14547
14604
  VBreadcrumbsDivider: {
14548
- divider: toRef(props, 'divider')
14605
+ divider: toRef(() => props.divider)
14549
14606
  },
14550
14607
  VBreadcrumbsItem: {
14551
- activeClass: toRef(props, 'activeClass'),
14552
- activeColor: toRef(props, 'activeColor'),
14553
- color: toRef(props, 'color'),
14554
- disabled: toRef(props, 'disabled')
14608
+ activeClass: toRef(() => props.activeClass),
14609
+ activeColor: toRef(() => props.activeColor),
14610
+ color: toRef(() => props.color),
14611
+ disabled: toRef(() => props.disabled)
14555
14612
  }
14556
14613
  });
14557
14614
  const items = computed(() => props.items.map(item => {
@@ -14874,10 +14931,10 @@ const VCard = genericComponent()({
14874
14931
  roundedClasses
14875
14932
  } = useRounded(props);
14876
14933
  const link = useLink(props, attrs);
14877
- const isLink = computed(() => props.link !== false && link.isLink.value);
14878
- const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value));
14879
14934
  useRender(() => {
14880
- const Tag = isLink.value ? 'a' : props.tag;
14935
+ const isLink = props.link !== false && link.isLink.value;
14936
+ const isClickable = !props.disabled && props.link !== false && (props.link || link.isClickable.value);
14937
+ const Tag = isLink ? 'a' : props.tag;
14881
14938
  const hasTitle = !!(slots.title || props.title != null);
14882
14939
  const hasSubtitle = !!(slots.subtitle || props.subtitle != null);
14883
14940
  const hasHeader = hasTitle || hasSubtitle;
@@ -14891,10 +14948,10 @@ const VCard = genericComponent()({
14891
14948
  'v-card--disabled': props.disabled,
14892
14949
  'v-card--flat': props.flat,
14893
14950
  'v-card--hover': props.hover && !(props.disabled || props.flat),
14894
- 'v-card--link': isClickable.value
14951
+ 'v-card--link': isClickable
14895
14952
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
14896
14953
  "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
14897
- "onClick": isClickable.value && link.navigate,
14954
+ "onClick": isClickable && link.navigate,
14898
14955
  "tabindex": props.disabled ? -1 : undefined
14899
14956
  }, link.linkProps), {
14900
14957
  default: () => [hasImage && createVNode("div", {
@@ -14939,8 +14996,8 @@ const VCard = genericComponent()({
14939
14996
  default: () => [slots.text?.() ?? props.text]
14940
14997
  }), slots.default?.(), slots.actions && createVNode(VCardActions, null, {
14941
14998
  default: slots.actions
14942
- }), genOverlays(isClickable.value, 'v-card')]
14943
- }), [[resolveDirective("ripple"), isClickable.value && props.ripple]]);
14999
+ }), genOverlays(isClickable, 'v-card')]
15000
+ }), [[resolveDirective("ripple"), isClickable && props.ripple]]);
14944
15001
  });
14945
15002
  return {};
14946
15003
  }
@@ -15153,8 +15210,8 @@ const VWindow = genericComponent()({
15153
15210
  transitionHeight,
15154
15211
  rootRef
15155
15212
  });
15156
- const canMoveBack = computed(() => props.continuous || activeIndex.value !== 0);
15157
- const canMoveForward = computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1);
15213
+ const canMoveBack = toRef(() => props.continuous || activeIndex.value !== 0);
15214
+ const canMoveForward = toRef(() => props.continuous || activeIndex.value !== group.items.value.length - 1);
15158
15215
  function prev() {
15159
15216
  canMoveBack.value && group.prev();
15160
15217
  }
@@ -16056,7 +16113,7 @@ const useSlider = _ref => {
16056
16113
  const {
16057
16114
  isRtl
16058
16115
  } = useRtl();
16059
- const isReversed = toRef(props, 'reverse');
16116
+ const isReversed = toRef(() => props.reverse);
16060
16117
  const vertical = computed(() => props.direction === 'vertical');
16061
16118
  const indexFromEnd = computed(() => vertical.value !== isReversed.value);
16062
16119
  const {
@@ -16070,7 +16127,7 @@ const useSlider = _ref => {
16070
16127
  const tickSize = computed(() => parseInt(props.tickSize, 10));
16071
16128
  const trackSize = computed(() => parseInt(props.trackSize, 10));
16072
16129
  const numTicks = computed(() => (max.value - min.value) / step.value);
16073
- const disabled = toRef(props, 'disabled');
16130
+ const disabled = toRef(() => props.disabled);
16074
16131
  const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);
16075
16132
  const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);
16076
16133
  const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);
@@ -16172,7 +16229,7 @@ const useSlider = _ref => {
16172
16229
  const percentage = (val - min.value) / (max.value - min.value) * 100;
16173
16230
  return clamp(isNaN(percentage) ? 0 : percentage, 0, 100);
16174
16231
  };
16175
- const showTicks = toRef(props, 'showTicks');
16232
+ const showTicks = toRef(() => props.showTicks);
16176
16233
  const parsedTicks = computed(() => {
16177
16234
  if (!showTicks.value) return [];
16178
16235
  if (!props.ticks) {
@@ -16203,11 +16260,11 @@ const useSlider = _ref => {
16203
16260
  }));
16204
16261
  const data = {
16205
16262
  activeThumbRef,
16206
- color: toRef(props, 'color'),
16263
+ color: toRef(() => props.color),
16207
16264
  decimals,
16208
16265
  disabled,
16209
- direction: toRef(props, 'direction'),
16210
- elevation: toRef(props, 'elevation'),
16266
+ direction: toRef(() => props.direction),
16267
+ elevation: toRef(() => props.elevation),
16211
16268
  hasLabels,
16212
16269
  isReversed,
16213
16270
  indexFromEnd,
@@ -16220,16 +16277,16 @@ const useSlider = _ref => {
16220
16277
  parsedTicks,
16221
16278
  parseMouseMove,
16222
16279
  position,
16223
- readonly: toRef(props, 'readonly'),
16224
- rounded: toRef(props, 'rounded'),
16280
+ readonly: toRef(() => props.readonly),
16281
+ rounded: toRef(() => props.rounded),
16225
16282
  roundValue,
16226
16283
  showTicks,
16227
16284
  startOffset,
16228
16285
  step,
16229
16286
  thumbSize,
16230
16287
  thumbColor,
16231
- thumbLabel: toRef(props, 'thumbLabel'),
16232
- ticks: toRef(props, 'ticks'),
16288
+ thumbLabel: toRef(() => props.thumbLabel),
16289
+ ticks: toRef(() => props.ticks),
16233
16290
  tickSize,
16234
16291
  trackColor,
16235
16292
  trackContainerRef,
@@ -17148,7 +17205,7 @@ const VSheet = genericComponent()({
17148
17205
  const {
17149
17206
  backgroundColorClasses,
17150
17207
  backgroundColorStyles
17151
- } = useBackgroundColor(toRef(props, 'color'));
17208
+ } = useBackgroundColor(() => props.color);
17152
17209
  const {
17153
17210
  borderClasses
17154
17211
  } = useBorder(props);
@@ -17195,7 +17252,7 @@ const VPicker = genericComponent()({
17195
17252
  const {
17196
17253
  backgroundColorClasses,
17197
17254
  backgroundColorStyles
17198
- } = useBackgroundColor(toRef(props, 'color'));
17255
+ } = useBackgroundColor(() => props.color);
17199
17256
  useRender(() => {
17200
17257
  const sheetProps = VSheet.filterProps(props);
17201
17258
  const hasTitle = !!(props.title || slots.title);
@@ -17242,165 +17299,81 @@ const VPicker = genericComponent()({
17242
17299
 
17243
17300
  // Types
17244
17301
 
17245
- const firstDay = {
17246
- '001': 1,
17247
- AD: 1,
17248
- AE: 6,
17249
- AF: 6,
17250
- AG: 0,
17251
- AI: 1,
17252
- AL: 1,
17253
- AM: 1,
17254
- AN: 1,
17255
- AR: 1,
17256
- AS: 0,
17257
- AT: 1,
17258
- AU: 1,
17259
- AX: 1,
17260
- AZ: 1,
17261
- BA: 1,
17262
- BD: 0,
17263
- BE: 1,
17264
- BG: 1,
17265
- BH: 6,
17266
- BM: 1,
17267
- BN: 1,
17268
- BR: 0,
17269
- BS: 0,
17270
- BT: 0,
17271
- BW: 0,
17272
- BY: 1,
17273
- BZ: 0,
17274
- CA: 0,
17275
- CH: 1,
17276
- CL: 1,
17277
- CM: 1,
17278
- CN: 1,
17279
- CO: 0,
17280
- CR: 1,
17281
- CY: 1,
17282
- CZ: 1,
17283
- DE: 1,
17284
- DJ: 6,
17285
- DK: 1,
17286
- DM: 0,
17287
- DO: 0,
17288
- DZ: 6,
17289
- EC: 1,
17290
- EE: 1,
17291
- EG: 6,
17292
- ES: 1,
17293
- ET: 0,
17294
- FI: 1,
17295
- FJ: 1,
17296
- FO: 1,
17297
- FR: 1,
17298
- GB: 1,
17299
- 'GB-alt-variant': 0,
17300
- GE: 1,
17301
- GF: 1,
17302
- GP: 1,
17303
- GR: 1,
17304
- GT: 0,
17305
- GU: 0,
17306
- HK: 0,
17307
- HN: 0,
17308
- HR: 1,
17309
- HU: 1,
17310
- ID: 0,
17311
- IE: 1,
17312
- IL: 0,
17313
- IN: 0,
17314
- IQ: 6,
17315
- IR: 6,
17316
- IS: 1,
17317
- IT: 1,
17318
- JM: 0,
17319
- JO: 6,
17320
- JP: 0,
17321
- KE: 0,
17322
- KG: 1,
17323
- KH: 0,
17324
- KR: 0,
17325
- KW: 6,
17326
- KZ: 1,
17327
- LA: 0,
17328
- LB: 1,
17329
- LI: 1,
17330
- LK: 1,
17331
- LT: 1,
17332
- LU: 1,
17333
- LV: 1,
17334
- LY: 6,
17335
- MC: 1,
17336
- MD: 1,
17337
- ME: 1,
17338
- MH: 0,
17339
- MK: 1,
17340
- MM: 0,
17341
- MN: 1,
17342
- MO: 0,
17343
- MQ: 1,
17344
- MT: 0,
17345
- MV: 5,
17346
- MX: 0,
17347
- MY: 1,
17348
- MZ: 0,
17349
- NI: 0,
17350
- NL: 1,
17351
- NO: 1,
17352
- NP: 0,
17353
- NZ: 1,
17354
- OM: 6,
17355
- PA: 0,
17356
- PE: 0,
17357
- PH: 0,
17358
- PK: 0,
17359
- PL: 1,
17360
- PR: 0,
17361
- PT: 0,
17362
- PY: 0,
17363
- QA: 6,
17364
- RE: 1,
17365
- RO: 1,
17366
- RS: 1,
17367
- RU: 1,
17368
- SA: 0,
17369
- SD: 6,
17370
- SE: 1,
17371
- SG: 0,
17372
- SI: 1,
17373
- SK: 1,
17374
- SM: 1,
17375
- SV: 0,
17376
- SY: 6,
17377
- TH: 0,
17378
- TJ: 1,
17379
- TM: 1,
17380
- TR: 1,
17381
- TT: 0,
17382
- TW: 0,
17383
- UA: 1,
17384
- UM: 0,
17385
- US: 0,
17386
- UY: 1,
17387
- UZ: 1,
17388
- VA: 1,
17389
- VE: 0,
17390
- VI: 0,
17391
- VN: 1,
17392
- WS: 0,
17393
- XK: 1,
17394
- YE: 0,
17395
- ZA: 0,
17396
- ZW: 0
17397
- };
17302
+ function weekInfo(locale) {
17303
+ // https://simplelocalize.io/data/locales/
17304
+ // then `new Intl.Locale(...).getWeekInfo()`
17305
+ const code = locale.slice(-2).toUpperCase();
17306
+ switch (true) {
17307
+ case locale === 'GB-alt-variant':
17308
+ {
17309
+ return {
17310
+ firstDay: 0,
17311
+ firstWeekSize: 4
17312
+ };
17313
+ }
17314
+ case locale === '001':
17315
+ {
17316
+ return {
17317
+ firstDay: 1,
17318
+ firstWeekSize: 1
17319
+ };
17320
+ }
17321
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17322
+ KH KR LA MH MM MO MT MX MZ NI NP PA PE PH PK PR PY SA SG SV TH TT TW UM US
17323
+ VE VI WS YE ZA ZW`.includes(code):
17324
+ {
17325
+ return {
17326
+ firstDay: 0,
17327
+ firstWeekSize: 1
17328
+ };
17329
+ }
17330
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17331
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17332
+ {
17333
+ return {
17334
+ firstDay: 1,
17335
+ firstWeekSize: 1
17336
+ };
17337
+ }
17338
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17339
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17340
+ {
17341
+ return {
17342
+ firstDay: 1,
17343
+ firstWeekSize: 4
17344
+ };
17345
+ }
17346
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17347
+ {
17348
+ return {
17349
+ firstDay: 6,
17350
+ firstWeekSize: 1
17351
+ };
17352
+ }
17353
+ case code === 'MV':
17354
+ {
17355
+ return {
17356
+ firstDay: 5,
17357
+ firstWeekSize: 1
17358
+ };
17359
+ }
17360
+ case code === 'PT':
17361
+ {
17362
+ return {
17363
+ firstDay: 0,
17364
+ firstWeekSize: 4
17365
+ };
17366
+ }
17367
+ default:
17368
+ return null;
17369
+ }
17370
+ }
17398
17371
  function getWeekArray(date, locale, firstDayOfWeek) {
17399
17372
  const weeks = [];
17400
17373
  let currentWeek = [];
17401
17374
  const firstDayOfMonth = startOfMonth(date);
17402
17375
  const lastDayOfMonth = endOfMonth(date);
17403
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17376
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17404
17377
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17405
17378
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17406
17379
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17431,7 +17404,7 @@ function getWeekArray(date, locale, firstDayOfWeek) {
17431
17404
  return weeks;
17432
17405
  }
17433
17406
  function startOfWeek(date, locale, firstDayOfWeek) {
17434
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17407
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17435
17408
  const d = new Date(date);
17436
17409
  while (d.getDay() !== day) {
17437
17410
  d.setDate(d.getDate() - 1);
@@ -17440,7 +17413,7 @@ function startOfWeek(date, locale, firstDayOfWeek) {
17440
17413
  }
17441
17414
  function endOfWeek(date, locale) {
17442
17415
  const d = new Date(date);
17443
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17416
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17444
17417
  while (d.getDay() !== lastDay) {
17445
17418
  d.setDate(d.getDate() + 1);
17446
17419
  }
@@ -17475,7 +17448,7 @@ function date(value) {
17475
17448
  }
17476
17449
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17477
17450
  function getWeekdays(locale, firstDayOfWeek) {
17478
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17451
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17479
17452
  return createRange(7).map(i => {
17480
17453
  const weekday = new Date(sundayJanuarySecond2000);
17481
17454
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17723,6 +17696,24 @@ function getYear(date) {
17723
17696
  function getMonth(date) {
17724
17697
  return date.getMonth();
17725
17698
  }
17699
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17700
+ const weekInfoFromLocale = weekInfo(locale);
17701
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17702
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17703
+ function firstWeekSize(year) {
17704
+ const yearStart = new Date(year, 0, 1);
17705
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17706
+ }
17707
+ let year = getYear(date);
17708
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17709
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17710
+ year++;
17711
+ }
17712
+ const yearStart = new Date(year, 0, 1);
17713
+ const size = firstWeekSize(year);
17714
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17715
+ return 1 + getDiff(date, d1w1, 'weeks');
17716
+ }
17726
17717
  function getDate(date) {
17727
17718
  return date.getDate();
17728
17719
  }
@@ -17862,10 +17853,12 @@ class VuetifyDateAdapter {
17862
17853
  return addMonths(date, amount);
17863
17854
  }
17864
17855
  getWeekArray(date, firstDayOfWeek) {
17865
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17856
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17857
+ return getWeekArray(date, this.locale, firstDay);
17866
17858
  }
17867
17859
  startOfWeek(date, firstDayOfWeek) {
17868
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17860
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17861
+ return startOfWeek(date, this.locale, firstDay);
17869
17862
  }
17870
17863
  endOfWeek(date) {
17871
17864
  return endOfWeek(date, this.locale);
@@ -17925,7 +17918,8 @@ class VuetifyDateAdapter {
17925
17918
  return getDiff(date, comparing, unit);
17926
17919
  }
17927
17920
  getWeekdays(firstDayOfWeek) {
17928
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17921
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17922
+ return getWeekdays(this.locale, firstDay);
17929
17923
  }
17930
17924
  getYear(date) {
17931
17925
  return getYear(date);
@@ -17933,6 +17927,10 @@ class VuetifyDateAdapter {
17933
17927
  getMonth(date) {
17934
17928
  return getMonth(date);
17935
17929
  }
17930
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17931
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17932
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17933
+ }
17936
17934
  getDate(date) {
17937
17935
  return getDate(date);
17938
17936
  }
@@ -18036,26 +18034,6 @@ function useDate() {
18036
18034
  return createInstance(options, locale);
18037
18035
  }
18038
18036
 
18039
- // https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
18040
- function getWeek(adapter, value) {
18041
- const date = adapter.toJsDate(value);
18042
- let year = date.getFullYear();
18043
- let d1w1 = new Date(year, 0, 1);
18044
- if (date < d1w1) {
18045
- year = year - 1;
18046
- d1w1 = new Date(year, 0, 1);
18047
- } else {
18048
- const tv = new Date(year + 1, 0, 1);
18049
- if (date >= tv) {
18050
- year = year + 1;
18051
- d1w1 = tv;
18052
- }
18053
- }
18054
- const diffTime = Math.abs(date.getTime() - d1w1.getTime());
18055
- const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
18056
- return Math.floor(diffDays / 7) + 1;
18057
- }
18058
-
18059
18037
  // Types
18060
18038
 
18061
18039
  const makeVColorPickerProps = propsFactory({
@@ -18259,7 +18237,6 @@ const VCombobox = genericComponent()({
18259
18237
  const vVirtualScrollRef = ref();
18260
18238
  const selectionIndex = shallowRef(-1);
18261
18239
  let cleared = false;
18262
- const color = computed(() => vTextFieldRef.value?.color);
18263
18240
  const {
18264
18241
  items,
18265
18242
  transformIn,
@@ -18268,7 +18245,7 @@ const VCombobox = genericComponent()({
18268
18245
  const {
18269
18246
  textColorClasses,
18270
18247
  textColorStyles
18271
- } = useTextColor(color);
18248
+ } = useTextColor(() => vTextFieldRef.value?.color);
18272
18249
  const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
18273
18250
  const transformed = transformOut(v);
18274
18251
  return props.multiple ? transformed : transformed[0] ?? null;
@@ -18323,7 +18300,7 @@ const VCombobox = genericComponent()({
18323
18300
  _menu.value = v;
18324
18301
  }
18325
18302
  });
18326
- const label = computed(() => menu.value ? props.closeText : props.openText);
18303
+ const label = toRef(() => menu.value ? props.closeText : props.openText);
18327
18304
  watch(_search, value => {
18328
18305
  if (cleared) {
18329
18306
  // wait for clear to finish, VTextField sets _search to null
@@ -18829,7 +18806,7 @@ const makeDataTableExpandProps = propsFactory({
18829
18806
  }, 'DataTable-expand');
18830
18807
  const VDataTableExpandedKey = Symbol.for('vuetify:datatable:expanded');
18831
18808
  function provideExpanded(props) {
18832
- const expandOnClick = toRef(props, 'expandOnClick');
18809
+ const expandOnClick = toRef(() => props.expandOnClick);
18833
18810
  const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {
18834
18811
  return new Set(v);
18835
18812
  }, v => {
@@ -19016,23 +18993,23 @@ function useOptions(_ref) {
19016
18993
  search
19017
18994
  } = _ref;
19018
18995
  const vm = getCurrentInstance('VDataTable');
19019
- const options = computed(() => ({
18996
+ const options = () => ({
19020
18997
  page: page.value,
19021
18998
  itemsPerPage: itemsPerPage.value,
19022
18999
  sortBy: sortBy.value,
19023
19000
  groupBy: groupBy.value,
19024
19001
  search: search.value
19025
- }));
19002
+ });
19026
19003
  let oldOptions = null;
19027
- watch(options, () => {
19028
- if (deepEqual(oldOptions, options.value)) return;
19004
+ watch(options, value => {
19005
+ if (deepEqual(oldOptions, value)) return;
19029
19006
 
19030
19007
  // Reset page when searching
19031
- if (oldOptions && oldOptions.search !== options.value.search) {
19008
+ if (oldOptions && oldOptions.search !== value.search) {
19032
19009
  page.value = 1;
19033
19010
  }
19034
- vm.emit('update:options', options.value);
19035
- oldOptions = options.value;
19011
+ vm.emit('update:options', value);
19012
+ oldOptions = value;
19036
19013
  }, {
19037
19014
  deep: true,
19038
19015
  immediate: true
@@ -19313,7 +19290,7 @@ function provideSelection(props, _ref9) {
19313
19290
  });
19314
19291
  return !!items.length && isSelected(items);
19315
19292
  });
19316
- const showSelectAll = computed(() => selectStrategy.value.showSelectAll);
19293
+ const showSelectAll = toRef(() => selectStrategy.value.showSelectAll);
19317
19294
  const data = {
19318
19295
  toggleSelect,
19319
19296
  select,
@@ -19351,8 +19328,8 @@ const makeDataTableSortProps = propsFactory({
19351
19328
  const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
19352
19329
  function createSort(props) {
19353
19330
  const sortBy = useProxiedModel(props, 'sortBy');
19354
- const mustSort = toRef(props, 'mustSort');
19355
- const multiSort = toRef(props, 'multiSort');
19331
+ const mustSort = toRef(() => props.mustSort);
19332
+ const multiSort = toRef(() => props.multiSort);
19356
19333
  return {
19357
19334
  sortBy,
19358
19335
  mustSort,
@@ -19570,7 +19547,7 @@ const VDataIterator = genericComponent()({
19570
19547
  slots
19571
19548
  } = _ref;
19572
19549
  const groupBy = useProxiedModel(props, 'groupBy');
19573
- const search = toRef(props, 'search');
19550
+ const search = toRef(() => props.search);
19574
19551
  const {
19575
19552
  items
19576
19553
  } = useDataIteratorItems(props);
@@ -19614,7 +19591,7 @@ const VDataIterator = genericComponent()({
19614
19591
  const {
19615
19592
  flatItems
19616
19593
  } = useGroupedItems(sortedItems, groupBy, opened);
19617
- const itemsLength = computed(() => flatItems.value.length);
19594
+ const itemsLength = toRef(() => flatItems.value.length);
19618
19595
  const {
19619
19596
  startIndex,
19620
19597
  stopIndex,
@@ -19894,13 +19871,13 @@ const VPagination = genericComponent()({
19894
19871
  } = useRefs();
19895
19872
  provideDefaults({
19896
19873
  VPaginationBtn: {
19897
- color: toRef(props, 'color'),
19898
- border: toRef(props, 'border'),
19899
- density: toRef(props, 'density'),
19900
- size: toRef(props, 'size'),
19901
- variant: toRef(props, 'variant'),
19902
- rounded: toRef(props, 'rounded'),
19903
- elevation: toRef(props, 'elevation')
19874
+ color: toRef(() => props.color),
19875
+ border: toRef(() => props.border),
19876
+ density: toRef(() => props.density),
19877
+ size: toRef(() => props.size),
19878
+ variant: toRef(() => props.variant),
19879
+ rounded: toRef(() => props.rounded),
19880
+ elevation: toRef(() => props.elevation)
19904
19881
  }
19905
19882
  });
19906
19883
  const items = computed(() => {
@@ -20541,7 +20518,7 @@ const VDataTableHeaders = genericComponent()({
20541
20518
  const {
20542
20519
  backgroundColorClasses,
20543
20520
  backgroundColorStyles
20544
- } = useBackgroundColor(props, 'color');
20521
+ } = useBackgroundColor(() => props.color);
20545
20522
  const {
20546
20523
  displayClasses,
20547
20524
  mobile
@@ -21199,13 +21176,13 @@ const VDataTable = genericComponent()({
21199
21176
  filterFunctions
21200
21177
  } = createHeaders(props, {
21201
21178
  groupBy,
21202
- showSelect: toRef(props, 'showSelect'),
21203
- showExpand: toRef(props, 'showExpand')
21179
+ showSelect: toRef(() => props.showSelect),
21180
+ showExpand: toRef(() => props.showExpand)
21204
21181
  });
21205
21182
  const {
21206
21183
  items
21207
21184
  } = useDataTableItems(props, columns);
21208
- const search = toRef(props, 'search');
21185
+ const search = toRef(() => props.search);
21209
21186
  const {
21210
21187
  filteredItems
21211
21188
  } = useFilter(props, items, search, {
@@ -21288,10 +21265,10 @@ const VDataTable = genericComponent()({
21288
21265
  });
21289
21266
  provideDefaults({
21290
21267
  VDataTableRows: {
21291
- hideNoData: toRef(props, 'hideNoData'),
21292
- noDataText: toRef(props, 'noDataText'),
21293
- loading: toRef(props, 'loading'),
21294
- loadingText: toRef(props, 'loadingText')
21268
+ hideNoData: toRef(() => props.hideNoData),
21269
+ noDataText: toRef(() => props.noDataText),
21270
+ loading: toRef(() => props.loading),
21271
+ loadingText: toRef(() => props.loadingText)
21295
21272
  }
21296
21273
  });
21297
21274
  const slotProps = computed(() => ({
@@ -21388,13 +21365,13 @@ const VDataTableVirtual = genericComponent()({
21388
21365
  sortRawFunctions
21389
21366
  } = createHeaders(props, {
21390
21367
  groupBy,
21391
- showSelect: toRef(props, 'showSelect'),
21392
- showExpand: toRef(props, 'showExpand')
21368
+ showSelect: toRef(() => props.showSelect),
21369
+ showExpand: toRef(() => props.showExpand)
21393
21370
  });
21394
21371
  const {
21395
21372
  items
21396
21373
  } = useDataTableItems(props, columns);
21397
- const search = toRef(props, 'search');
21374
+ const search = toRef(() => props.search);
21398
21375
  const {
21399
21376
  filteredItems
21400
21377
  } = useFilter(props, items, search, {
@@ -21470,10 +21447,10 @@ const VDataTableVirtual = genericComponent()({
21470
21447
  });
21471
21448
  provideDefaults({
21472
21449
  VDataTableRows: {
21473
- hideNoData: toRef(props, 'hideNoData'),
21474
- noDataText: toRef(props, 'noDataText'),
21475
- loading: toRef(props, 'loading'),
21476
- loadingText: toRef(props, 'loadingText')
21450
+ hideNoData: toRef(() => props.hideNoData),
21451
+ noDataText: toRef(() => props.noDataText),
21452
+ loading: toRef(() => props.loading),
21453
+ loadingText: toRef(() => props.loadingText)
21477
21454
  }
21478
21455
  });
21479
21456
  const slotProps = computed(() => ({
@@ -21626,8 +21603,8 @@ const VDataTableServer = genericComponent()({
21626
21603
  headers
21627
21604
  } = createHeaders(props, {
21628
21605
  groupBy,
21629
- showSelect: toRef(props, 'showSelect'),
21630
- showExpand: toRef(props, 'showExpand')
21606
+ showSelect: toRef(() => props.showSelect),
21607
+ showExpand: toRef(() => props.showExpand)
21631
21608
  });
21632
21609
  const {
21633
21610
  items
@@ -21682,7 +21659,7 @@ const VDataTableServer = genericComponent()({
21682
21659
  itemsPerPage,
21683
21660
  sortBy,
21684
21661
  groupBy,
21685
- search: toRef(props, 'search')
21662
+ search: toRef(() => props.search)
21686
21663
  });
21687
21664
  provide('v-data-table', {
21688
21665
  toggleSort,
@@ -21690,10 +21667,10 @@ const VDataTableServer = genericComponent()({
21690
21667
  });
21691
21668
  provideDefaults({
21692
21669
  VDataTableRows: {
21693
- hideNoData: toRef(props, 'hideNoData'),
21694
- noDataText: toRef(props, 'noDataText'),
21695
- loading: toRef(props, 'loading'),
21696
- loadingText: toRef(props, 'loadingText')
21670
+ hideNoData: toRef(() => props.hideNoData),
21671
+ noDataText: toRef(() => props.noDataText),
21672
+ loading: toRef(() => props.loading),
21673
+ loadingText: toRef(() => props.loadingText)
21697
21674
  }
21698
21675
  });
21699
21676
  const slotProps = computed(() => ({
@@ -22163,7 +22140,7 @@ const VDatePickerHeader = genericComponent()({
22163
22140
  const {
22164
22141
  backgroundColorClasses,
22165
22142
  backgroundColorStyles
22166
- } = useBackgroundColor(props, 'color');
22143
+ } = useBackgroundColor(() => props.color);
22167
22144
  function onClick() {
22168
22145
  emit('click');
22169
22146
  }
@@ -22244,7 +22221,7 @@ const makeCalendarProps = propsFactory({
22244
22221
  },
22245
22222
  firstDayOfWeek: {
22246
22223
  type: [Number, String],
22247
- default: 0
22224
+ default: undefined
22248
22225
  }
22249
22226
  }, 'calendar');
22250
22227
  function useCalendar(props) {
@@ -22267,14 +22244,12 @@ function useCalendar(props) {
22267
22244
  return adapter.setMonth(date, value);
22268
22245
  }, v => adapter.getMonth(v));
22269
22246
  const weekDays = computed(() => {
22270
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22271
-
22247
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22272
22248
  // Always generate all days, regardless of props.weekdays
22273
22249
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22274
22250
  });
22275
22251
  const weeksInMonth = computed(() => {
22276
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22277
- const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
22252
+ const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22278
22253
  const days = weeks.flat();
22279
22254
 
22280
22255
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22304,21 +22279,21 @@ function useCalendar(props) {
22304
22279
  const isSame = adapter.isSameDay(date, month.value);
22305
22280
  return {
22306
22281
  date,
22307
- isoDate,
22308
22282
  formatted: adapter.format(date, 'keyboardDate'),
22309
- year: adapter.getYear(date),
22310
- month: adapter.getMonth(date),
22311
- isDisabled: isDisabled(date),
22312
- isWeekStart: index % 7 === 0,
22313
- isWeekEnd: index % 7 === 6,
22314
- isToday: adapter.isSameDay(date, today),
22315
22283
  isAdjacent,
22316
- isHidden: isAdjacent && !props.showAdjacentMonths,
22317
- isStart,
22318
- isSelected: model.value.some(value => adapter.isSameDay(date, value)),
22284
+ isDisabled: isDisabled(date),
22319
22285
  isEnd,
22286
+ isHidden: isAdjacent && !props.showAdjacentMonths,
22320
22287
  isSame,
22321
- localized: adapter.format(date, 'dayOfMonth')
22288
+ isSelected: model.value.some(value => adapter.isSameDay(date, value)),
22289
+ isStart,
22290
+ isToday: adapter.isSameDay(date, today),
22291
+ isWeekEnd: index % 7 === 6,
22292
+ isWeekStart: index % 7 === 0,
22293
+ isoDate,
22294
+ localized: adapter.format(date, 'dayOfMonth'),
22295
+ month: adapter.getMonth(date),
22296
+ year: adapter.getYear(date)
22322
22297
  };
22323
22298
  });
22324
22299
  }
@@ -22338,7 +22313,7 @@ function useCalendar(props) {
22338
22313
  });
22339
22314
  const weekNumbers = computed(() => {
22340
22315
  return weeksInMonth.value.map(week => {
22341
- return week.length ? getWeek(adapter, week[0]) : null;
22316
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22342
22317
  });
22343
22318
  });
22344
22319
  function isDisabled(value) {
@@ -22406,7 +22381,7 @@ const VDatePickerMonth = genericComponent()({
22406
22381
  const rangeStart = shallowRef();
22407
22382
  const rangeStop = shallowRef();
22408
22383
  const isReverse = shallowRef(false);
22409
- const transition = computed(() => {
22384
+ const transition = toRef(() => {
22410
22385
  return !isReverse.value ? props.transition : props.reverseTransition;
22411
22386
  });
22412
22387
  if (props.multiple === 'range' && model.value.length > 0) {
@@ -22786,7 +22761,7 @@ const VDatePicker = genericComponent()({
22786
22761
  }
22787
22762
  return value && adapter.isValid(value) ? value : today;
22788
22763
  });
22789
- const headerColor = computed(() => props.headerColor ?? props.color);
22764
+ const headerColor = toRef(() => props.headerColor ?? props.color);
22790
22765
  const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))));
22791
22766
  const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));
22792
22767
  const isReversing = shallowRef(false);
@@ -22803,8 +22778,8 @@ const VDatePicker = genericComponent()({
22803
22778
  date = adapter.setYear(date, year.value);
22804
22779
  return adapter.format(date, 'monthAndYear');
22805
22780
  });
22806
- // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
22807
- const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
22781
+ // const headerIcon = toRef(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
22782
+ const headerTransition = toRef(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
22808
22783
  const disabled = computed(() => {
22809
22784
  if (props.disabled) return true;
22810
22785
  const targets = [];
@@ -23016,7 +22991,7 @@ const VEmptyState = genericComponent()({
23016
22991
  const {
23017
22992
  backgroundColorClasses,
23018
22993
  backgroundColorStyles
23019
- } = useBackgroundColor(toRef(props, 'bgColor'));
22994
+ } = useBackgroundColor(() => props.bgColor);
23020
22995
  const {
23021
22996
  dimensionStyles
23022
22997
  } = useDimension(props);
@@ -23179,7 +23154,7 @@ const VExpansionPanelTitle = genericComponent()({
23179
23154
  const {
23180
23155
  backgroundColorClasses,
23181
23156
  backgroundColorStyles
23182
- } = useBackgroundColor(props, 'color');
23157
+ } = useBackgroundColor(() => props.color);
23183
23158
  const {
23184
23159
  dimensionStyles
23185
23160
  } = useDimension(props);
@@ -23190,7 +23165,7 @@ const VExpansionPanelTitle = genericComponent()({
23190
23165
  expandIcon: props.expandIcon,
23191
23166
  readonly: props.readonly
23192
23167
  }));
23193
- const icon = computed(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);
23168
+ const icon = toRef(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);
23194
23169
  useRender(() => withDirectives(createVNode("button", {
23195
23170
  "class": ['v-expansion-panel-title', {
23196
23171
  'v-expansion-panel-title--active': expansionPanel.isSelected.value,
@@ -23245,14 +23220,14 @@ const VExpansionPanel = genericComponent()({
23245
23220
  const {
23246
23221
  backgroundColorClasses,
23247
23222
  backgroundColorStyles
23248
- } = useBackgroundColor(props, 'bgColor');
23223
+ } = useBackgroundColor(() => props.bgColor);
23249
23224
  const {
23250
23225
  elevationClasses
23251
23226
  } = useElevation(props);
23252
23227
  const {
23253
23228
  roundedClasses
23254
23229
  } = useRounded(props);
23255
- const isDisabled = computed(() => groupItem?.disabled.value || props.disabled);
23230
+ const isDisabled = toRef(() => groupItem?.disabled.value || props.disabled);
23256
23231
  const selectedIndices = computed(() => groupItem.group.items.value.reduce((arr, item, index) => {
23257
23232
  if (groupItem.group.selected.value.includes(item.id)) arr.push(index);
23258
23233
  return arr;
@@ -23343,21 +23318,21 @@ const VExpansionPanels = genericComponent()({
23343
23318
  const {
23344
23319
  themeClasses
23345
23320
  } = provideTheme(props);
23346
- const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`);
23321
+ const variantClass = toRef(() => props.variant && `v-expansion-panels--variant-${props.variant}`);
23347
23322
  provideDefaults({
23348
23323
  VExpansionPanel: {
23349
- bgColor: toRef(props, 'bgColor'),
23350
- collapseIcon: toRef(props, 'collapseIcon'),
23351
- color: toRef(props, 'color'),
23352
- eager: toRef(props, 'eager'),
23353
- elevation: toRef(props, 'elevation'),
23354
- expandIcon: toRef(props, 'expandIcon'),
23355
- focusable: toRef(props, 'focusable'),
23356
- hideActions: toRef(props, 'hideActions'),
23357
- readonly: toRef(props, 'readonly'),
23358
- ripple: toRef(props, 'ripple'),
23359
- rounded: toRef(props, 'rounded'),
23360
- static: toRef(props, 'static')
23324
+ bgColor: toRef(() => props.bgColor),
23325
+ collapseIcon: toRef(() => props.collapseIcon),
23326
+ color: toRef(() => props.color),
23327
+ eager: toRef(() => props.eager),
23328
+ elevation: toRef(() => props.elevation),
23329
+ expandIcon: toRef(() => props.expandIcon),
23330
+ focusable: toRef(() => props.focusable),
23331
+ hideActions: toRef(() => props.hideActions),
23332
+ readonly: toRef(() => props.readonly),
23333
+ ripple: toRef(() => props.ripple),
23334
+ rounded: toRef(() => props.rounded),
23335
+ static: toRef(() => props.static)
23361
23336
  }
23362
23337
  });
23363
23338
  useRender(() => createVNode(props.tag, {
@@ -23419,7 +23394,7 @@ const VFab = genericComponent()({
23419
23394
  if (!entries.length) return;
23420
23395
  height.value = entries[0].target.clientHeight;
23421
23396
  });
23422
- const hasPosition = computed(() => props.app || props.absolute);
23397
+ const hasPosition = toRef(() => props.app || props.absolute);
23423
23398
  const position = computed(() => {
23424
23399
  if (!hasPosition.value) return false;
23425
23400
  return props.location?.split(' ').shift() ?? 'bottom';
@@ -23436,7 +23411,7 @@ const VFab = genericComponent()({
23436
23411
  layoutSize: computed(() => props.layout ? height.value + 24 : 0),
23437
23412
  elementSize: computed(() => height.value + 24),
23438
23413
  active: computed(() => props.app && model.value),
23439
- absolute: toRef(props, 'absolute')
23414
+ absolute: toRef(() => props.absolute)
23440
23415
  });
23441
23416
  watchEffect(() => {
23442
23417
  layoutItemStyles.value = layout.layoutItemStyles.value;
@@ -23561,7 +23536,7 @@ const VFileInput = genericComponent()({
23561
23536
  const vInputRef = ref();
23562
23537
  const vFieldRef = ref();
23563
23538
  const inputRef = ref();
23564
- const isActive = computed(() => isFocused.value || props.active);
23539
+ const isActive = toRef(() => isFocused.value || props.active);
23565
23540
  const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
23566
23541
  function onFocus() {
23567
23542
  if (inputRef.value !== document.activeElement) {
@@ -23734,7 +23709,7 @@ const VFooter = genericComponent()({
23734
23709
  const {
23735
23710
  backgroundColorClasses,
23736
23711
  backgroundColorStyles
23737
- } = useBackgroundColor(toRef(props, 'color'));
23712
+ } = useBackgroundColor(() => props.color);
23738
23713
  const {
23739
23714
  borderClasses
23740
23715
  } = useBorder(props);
@@ -23756,11 +23731,11 @@ const VFooter = genericComponent()({
23756
23731
  const layout = useLayoutItem({
23757
23732
  id: props.name,
23758
23733
  order: computed(() => parseInt(props.order, 10)),
23759
- position: computed(() => 'bottom'),
23734
+ position: toRef(() => 'bottom'),
23760
23735
  layoutSize: height,
23761
23736
  elementSize: computed(() => props.height === 'auto' ? undefined : height.value),
23762
- active: computed(() => props.app),
23763
- absolute: toRef(props, 'absolute')
23737
+ active: toRef(() => props.app),
23738
+ absolute: toRef(() => props.absolute)
23764
23739
  });
23765
23740
  watchEffect(() => {
23766
23741
  layoutItemStyles.value = layout.layoutItemStyles.value;
@@ -24233,11 +24208,11 @@ const VLayoutItem = genericComponent()({
24233
24208
  } = useLayoutItem({
24234
24209
  id: props.name,
24235
24210
  order: computed(() => parseInt(props.order, 10)),
24236
- position: toRef(props, 'position'),
24237
- elementSize: toRef(props, 'size'),
24238
- layoutSize: toRef(props, 'size'),
24239
- active: toRef(props, 'modelValue'),
24240
- absolute: toRef(props, 'absolute')
24211
+ position: toRef(() => props.position),
24212
+ elementSize: toRef(() => props.size),
24213
+ layoutSize: toRef(() => props.size),
24214
+ active: toRef(() => props.modelValue),
24215
+ absolute: toRef(() => props.absolute)
24241
24216
  });
24242
24217
  return () => createVNode("div", {
24243
24218
  "class": ['v-layout-item', props.class],
@@ -24769,7 +24744,7 @@ const VNavigationDrawer = genericComponent()({
24769
24744
  const {
24770
24745
  backgroundColorClasses,
24771
24746
  backgroundColorStyles
24772
- } = useBackgroundColor(toRef(props, 'color'));
24747
+ } = useBackgroundColor(() => props.color);
24773
24748
  const {
24774
24749
  elevationClasses
24775
24750
  } = useElevation(props);
@@ -24802,7 +24777,7 @@ const VNavigationDrawer = genericComponent()({
24802
24777
  const location = computed(() => {
24803
24778
  return toPhysical(props.location, isRtl.value);
24804
24779
  });
24805
- const isPersistent = computed(() => props.persistent);
24780
+ const isPersistent = toRef(() => props.persistent);
24806
24781
  const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary));
24807
24782
  const isSticky = computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');
24808
24783
  useToggleScope(() => props.expandOnHover && props.rail != null, () => {
@@ -24828,7 +24803,7 @@ const VNavigationDrawer = genericComponent()({
24828
24803
  isActive,
24829
24804
  isTemporary,
24830
24805
  width,
24831
- touchless: toRef(props, 'touchless'),
24806
+ touchless: toRef(() => props.touchless),
24832
24807
  position: location
24833
24808
  });
24834
24809
  const layoutSize = computed(() => {
@@ -24845,7 +24820,7 @@ const VNavigationDrawer = genericComponent()({
24845
24820
  layoutSize,
24846
24821
  elementSize: width,
24847
24822
  active: readonly(isActive),
24848
- disableTransitions: computed(() => isDragging.value),
24823
+ disableTransitions: toRef(() => isDragging.value),
24849
24824
  absolute: computed(() =>
24850
24825
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
24851
24826
  props.absolute || isSticky.value && typeof isStuck.value !== 'string')
@@ -24858,9 +24833,9 @@ const VNavigationDrawer = genericComponent()({
24858
24833
  isSticky,
24859
24834
  layoutItemStyles
24860
24835
  });
24861
- const scrimColor = useBackgroundColor(computed(() => {
24836
+ const scrimColor = useBackgroundColor(() => {
24862
24837
  return typeof props.scrim === 'string' ? props.scrim : null;
24863
- }));
24838
+ });
24864
24839
  const scrimStyles = computed(() => ({
24865
24840
  ...(isDragging.value ? {
24866
24841
  opacity: dragProgress.value * 0.2,
@@ -25074,24 +25049,24 @@ const VNumberInput = genericComponent()({
25074
25049
  const controlVariant = computed(() => {
25075
25050
  return props.hideInput ? 'stacked' : props.controlVariant;
25076
25051
  });
25077
- const incrementIcon = computed(() => controlVariant.value === 'split' ? '$plus' : '$collapse');
25078
- const decrementIcon = computed(() => controlVariant.value === 'split' ? '$minus' : '$expand');
25079
- const controlNodeSize = computed(() => controlVariant.value === 'split' ? 'default' : 'small');
25080
- const controlNodeDefaultHeight = computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
25081
- const incrementSlotProps = computed(() => ({
25052
+ const incrementIcon = toRef(() => controlVariant.value === 'split' ? '$plus' : '$collapse');
25053
+ const decrementIcon = toRef(() => controlVariant.value === 'split' ? '$minus' : '$expand');
25054
+ const controlNodeSize = toRef(() => controlVariant.value === 'split' ? 'default' : 'small');
25055
+ const controlNodeDefaultHeight = toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
25056
+ const incrementSlotProps = {
25082
25057
  props: {
25083
25058
  onClick: onControlClick,
25084
25059
  onPointerup: onControlMouseup,
25085
25060
  onPointerdown: onUpControlMousedown
25086
25061
  }
25087
- }));
25088
- const decrementSlotProps = computed(() => ({
25062
+ };
25063
+ const decrementSlotProps = {
25089
25064
  props: {
25090
25065
  onClick: onControlClick,
25091
25066
  onPointerup: onControlMouseup,
25092
25067
  onPointerdown: onDownControlMousedown
25093
25068
  }
25094
- }));
25069
+ };
25095
25070
  watch(() => props.precision, () => formatInputValue());
25096
25071
  onMounted(() => {
25097
25072
  clampModel();
@@ -25243,7 +25218,7 @@ const VNumberInput = genericComponent()({
25243
25218
  }
25244
25219
  }
25245
25220
  }, {
25246
- default: () => [slots.increment(incrementSlotProps.value)]
25221
+ default: () => [slots.increment(incrementSlotProps)]
25247
25222
  });
25248
25223
  }
25249
25224
  function decrementControlNode() {
@@ -25272,7 +25247,7 @@ const VNumberInput = genericComponent()({
25272
25247
  }
25273
25248
  }
25274
25249
  }, {
25275
- default: () => [slots.decrement(decrementSlotProps.value)]
25250
+ default: () => [slots.decrement(decrementSlotProps)]
25276
25251
  });
25277
25252
  }
25278
25253
  function controlNode() {
@@ -25472,12 +25447,12 @@ const VOtpInput = genericComponent()({
25472
25447
  }
25473
25448
  provideDefaults({
25474
25449
  VField: {
25475
- color: computed(() => props.color),
25476
- bgColor: computed(() => props.color),
25477
- baseColor: computed(() => props.baseColor),
25478
- disabled: computed(() => props.disabled),
25479
- error: computed(() => props.error),
25480
- variant: computed(() => props.variant)
25450
+ color: toRef(() => props.color),
25451
+ bgColor: toRef(() => props.color),
25452
+ baseColor: toRef(() => props.baseColor),
25453
+ disabled: toRef(() => props.disabled),
25454
+ error: toRef(() => props.error),
25455
+ variant: toRef(() => props.variant)
25481
25456
  }
25482
25457
  }, {
25483
25458
  scoped: true
@@ -26278,7 +26253,7 @@ const VSkeletonLoader = genericComponent()({
26278
26253
  const {
26279
26254
  backgroundColorClasses,
26280
26255
  backgroundColorStyles
26281
- } = useBackgroundColor(toRef(props, 'color'));
26256
+ } = useBackgroundColor(() => props.color);
26282
26257
  const {
26283
26258
  dimensionStyles
26284
26259
  } = useDimension(props);
@@ -27077,7 +27052,7 @@ const VSparkline = genericComponent()({
27077
27052
  const {
27078
27053
  textColorClasses,
27079
27054
  textColorStyles
27080
- } = useTextColor(toRef(props, 'color'));
27055
+ } = useTextColor(() => props.color);
27081
27056
  const hasLabels = computed(() => {
27082
27057
  return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);
27083
27058
  });
@@ -27623,11 +27598,11 @@ const VSwitch = genericComponent()({
27623
27598
  } = useFocus(props);
27624
27599
  const control = ref();
27625
27600
  const isForcedColorsModeActive = IN_BROWSER && window.matchMedia('(forced-colors: active)').matches;
27626
- const loaderColor = computed(() => {
27601
+ const loaderColor = toRef(() => {
27627
27602
  return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
27628
27603
  });
27629
27604
  const uid = useId();
27630
- const id = computed(() => props.id || `switch-${uid}`);
27605
+ const id = toRef(() => props.id || `switch-${uid}`);
27631
27606
  function onChange() {
27632
27607
  if (indeterminate.value) {
27633
27608
  indeterminate.value = false;
@@ -27778,7 +27753,7 @@ const VSystemBar = genericComponent()({
27778
27753
  const {
27779
27754
  backgroundColorClasses,
27780
27755
  backgroundColorStyles
27781
- } = useBackgroundColor(toRef(props, 'color'));
27756
+ } = useBackgroundColor(() => props.color);
27782
27757
  const {
27783
27758
  elevationClasses
27784
27759
  } = useElevation(props);
@@ -27798,7 +27773,7 @@ const VSystemBar = genericComponent()({
27798
27773
  layoutSize: height,
27799
27774
  elementSize: height,
27800
27775
  active: computed(() => true),
27801
- absolute: toRef(props, 'absolute')
27776
+ absolute: toRef(() => props.absolute)
27802
27777
  });
27803
27778
  useRender(() => createVNode(props.tag, {
27804
27779
  "class": ['v-system-bar', {
@@ -27840,7 +27815,7 @@ const VTab = genericComponent()({
27840
27815
  const {
27841
27816
  textColorClasses: sliderColorClasses,
27842
27817
  textColorStyles: sliderColorStyles
27843
- } = useTextColor(props, 'sliderColor');
27818
+ } = useTextColor(() => props.sliderColor);
27844
27819
  const rootEl = ref();
27845
27820
  const sliderEl = ref();
27846
27821
  const isHorizontal = computed(() => props.direction === 'horizontal');
@@ -28033,18 +28008,18 @@ const VTabs = genericComponent()({
28033
28008
  const {
28034
28009
  backgroundColorClasses,
28035
28010
  backgroundColorStyles
28036
- } = useBackgroundColor(toRef(props, 'bgColor'));
28011
+ } = useBackgroundColor(() => props.bgColor);
28037
28012
  const {
28038
28013
  scopeId
28039
28014
  } = useScopeId();
28040
28015
  provideDefaults({
28041
28016
  VTab: {
28042
- color: toRef(props, 'color'),
28043
- direction: toRef(props, 'direction'),
28044
- stacked: toRef(props, 'stacked'),
28045
- fixed: toRef(props, 'fixedTabs'),
28046
- sliderColor: toRef(props, 'sliderColor'),
28047
- hideSlider: toRef(props, 'hideSlider')
28017
+ color: toRef(() => props.color),
28018
+ direction: toRef(() => props.direction),
28019
+ stacked: toRef(() => props.stacked),
28020
+ fixed: toRef(() => props.fixedTabs),
28021
+ sliderColor: toRef(() => props.sliderColor),
28022
+ hideSlider: toRef(() => props.hideSlider)
28048
28023
  }
28049
28024
  });
28050
28025
  useRender(() => {
@@ -28394,7 +28369,7 @@ const VTimelineDivider = genericComponent()({
28394
28369
  const {
28395
28370
  backgroundColorStyles,
28396
28371
  backgroundColorClasses
28397
- } = useBackgroundColor(toRef(props, 'dotColor'));
28372
+ } = useBackgroundColor(() => props.dotColor);
28398
28373
  const {
28399
28374
  roundedClasses
28400
28375
  } = useRounded(props, 'v-timeline-divider__dot');
@@ -28404,7 +28379,7 @@ const VTimelineDivider = genericComponent()({
28404
28379
  const {
28405
28380
  backgroundColorClasses: lineColorClasses,
28406
28381
  backgroundColorStyles: lineColorStyles
28407
- } = useBackgroundColor(toRef(props, 'lineColor'));
28382
+ } = useBackgroundColor(() => props.lineColor);
28408
28383
  useRender(() => createVNode("div", {
28409
28384
  "class": ['v-timeline-divider', {
28410
28385
  'v-timeline-divider--fill-dot': props.fillDot
@@ -28575,17 +28550,17 @@ const VTimeline = genericComponent()({
28575
28550
  } = useRtl();
28576
28551
  provideDefaults({
28577
28552
  VTimelineDivider: {
28578
- lineColor: toRef(props, 'lineColor')
28553
+ lineColor: toRef(() => props.lineColor)
28579
28554
  },
28580
28555
  VTimelineItem: {
28581
- density: toRef(props, 'density'),
28582
- dotColor: toRef(props, 'dotColor'),
28583
- fillDot: toRef(props, 'fillDot'),
28584
- hideOpposite: toRef(props, 'hideOpposite'),
28585
- iconColor: toRef(props, 'iconColor'),
28586
- lineColor: toRef(props, 'lineColor'),
28587
- lineInset: toRef(props, 'lineInset'),
28588
- size: toRef(props, 'size')
28556
+ density: toRef(() => props.density),
28557
+ dotColor: toRef(() => props.dotColor),
28558
+ fillDot: toRef(() => props.fillDot),
28559
+ hideOpposite: toRef(() => props.hideOpposite),
28560
+ iconColor: toRef(() => props.iconColor),
28561
+ lineColor: toRef(() => props.lineColor),
28562
+ lineInset: toRef(() => props.lineInset),
28563
+ size: toRef(() => props.size)
28589
28564
  }
28590
28565
  });
28591
28566
  const sideClasses = computed(() => {
@@ -28632,9 +28607,9 @@ const VToolbarItems = genericComponent()({
28632
28607
  } = _ref;
28633
28608
  provideDefaults({
28634
28609
  VBtn: {
28635
- color: toRef(props, 'color'),
28610
+ color: toRef(() => props.color),
28636
28611
  height: 'inherit',
28637
- variant: toRef(props, 'variant')
28612
+ variant: toRef(() => props.variant)
28638
28613
  }
28639
28614
  });
28640
28615
  useRender(() => createVNode("div", {
@@ -28681,7 +28656,7 @@ const VTooltip = genericComponent()({
28681
28656
  scopeId
28682
28657
  } = useScopeId();
28683
28658
  const uid = useId();
28684
- const id = computed(() => props.id || `v-tooltip-${uid}`);
28659
+ const id = toRef(() => props.id || `v-tooltip-${uid}`);
28685
28660
  const overlay = ref();
28686
28661
  const location = computed(() => {
28687
28662
  return props.location.split(' ').length > 1 ? props.location : props.location + ' center';
@@ -28689,7 +28664,7 @@ const VTooltip = genericComponent()({
28689
28664
  const origin = computed(() => {
28690
28665
  return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';
28691
28666
  });
28692
- const transition = computed(() => {
28667
+ const transition = toRef(() => {
28693
28668
  if (props.transition) return props.transition;
28694
28669
  return isActive.value ? 'scale-transition' : 'fade-transition';
28695
28670
  });
@@ -29236,7 +29211,7 @@ function createVuetify$1() {
29236
29211
  };
29237
29212
  });
29238
29213
  }
29239
- const version$1 = "3.8.1";
29214
+ const version$1 = "3.8.3";
29240
29215
  createVuetify$1.version = version$1;
29241
29216
 
29242
29217
  // Vue's inject() can only be used in setup
@@ -29261,7 +29236,7 @@ const createVuetify = function () {
29261
29236
  ...options
29262
29237
  });
29263
29238
  };
29264
- const version = "3.8.1";
29239
+ const version = "3.8.3";
29265
29240
  createVuetify.version = version;
29266
29241
 
29267
29242
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };