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
package/dist/vuetify.cjs CHANGED
@@ -1,5 +1,5 @@
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
  */
@@ -339,6 +339,9 @@
339
339
  _classPrivateFieldInitSpec(this, _pointer, 0);
340
340
  this.size = size;
341
341
  }
342
+ get isFull() {
343
+ return _classPrivateFieldGet(_arr, this).length === this.size;
344
+ }
342
345
  push(val) {
343
346
  _classPrivateFieldGet(_arr, this)[_classPrivateFieldGet(_pointer, this)] = val;
344
347
  _classPrivateFieldSet(_pointer, this, (_classPrivateFieldGet(_pointer, this) + 1) % this.size);
@@ -346,6 +349,10 @@
346
349
  values() {
347
350
  return _classPrivateFieldGet(_arr, this).slice(_classPrivateFieldGet(_pointer, this)).concat(_classPrivateFieldGet(_arr, this).slice(0, _classPrivateFieldGet(_pointer, this)));
348
351
  }
352
+ clear() {
353
+ _classPrivateFieldGet(_arr, this).length = 0;
354
+ _classPrivateFieldSet(_pointer, this, 0);
355
+ }
349
356
  }
350
357
  function getEventCoordinates(e) {
351
358
  if ('touches' in e) {
@@ -369,15 +376,19 @@
369
376
 
370
377
  function destructComputed(getter) {
371
378
  const refs = vue.reactive({});
372
- const base = vue.computed(getter);
373
379
  vue.watchEffect(() => {
374
- for (const key in base.value) {
375
- refs[key] = base.value[key];
380
+ const base = getter();
381
+ for (const key in base) {
382
+ refs[key] = base[key];
376
383
  }
377
384
  }, {
378
385
  flush: 'sync'
379
386
  });
380
- return vue.toRefs(refs);
387
+ const obj = {};
388
+ for (const key in refs) {
389
+ obj[key] = vue.toRef(() => refs[key]);
390
+ }
391
+ return obj;
381
392
  }
382
393
 
383
394
  /** Array.includes but value can be any type */
@@ -1332,7 +1343,7 @@
1332
1343
  return newDefaults;
1333
1344
  }
1334
1345
  function propIsDefined(vnode, prop) {
1335
- return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
1346
+ return vnode.props && (typeof vnode.props[prop] !== 'undefined' || typeof vnode.props[toKebabCase(prop)] !== 'undefined');
1336
1347
  }
1337
1348
  function internalUseDefaults() {
1338
1349
  let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -1349,9 +1360,12 @@
1349
1360
  const propValue = Reflect.get(target, prop);
1350
1361
  if (prop === 'class' || prop === 'style') {
1351
1362
  return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
1352
- } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
1353
- return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop] : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop] : propValue;
1354
1363
  }
1364
+ if (propIsDefined(vm.vnode, prop)) return propValue;
1365
+ const _componentDefault = componentDefaults.value?.[prop];
1366
+ if (_componentDefault !== undefined) return _componentDefault;
1367
+ const _globalDefault = defaults.value?.global?.[prop];
1368
+ if (_globalDefault !== undefined) return _globalDefault;
1355
1369
  return propValue;
1356
1370
  }
1357
1371
  });
@@ -1677,7 +1691,7 @@
1677
1691
  const icons = vue.inject(IconSymbol);
1678
1692
  if (!icons) throw new Error('Missing Vuetify Icons provide!');
1679
1693
  const iconData = vue.computed(() => {
1680
- const iconAlias = vue.unref(props);
1694
+ const iconAlias = vue.toValue(props);
1681
1695
  if (!iconAlias) return {
1682
1696
  component: VComponentIcon
1683
1697
  };
@@ -1940,7 +1954,7 @@
1940
1954
  flat: true
1941
1955
  },
1942
1956
  VAutocomplete: {
1943
- variant: 'filled'
1957
+ variant: 'outlined'
1944
1958
  },
1945
1959
  VBanner: {
1946
1960
  color: 'primary'
@@ -1969,7 +1983,10 @@
1969
1983
  rounded: 'sm'
1970
1984
  },
1971
1985
  VCombobox: {
1972
- variant: 'filled'
1986
+ variant: 'outlined'
1987
+ },
1988
+ VDateInput: {
1989
+ variant: 'outlined'
1973
1990
  },
1974
1991
  VDatePicker: {
1975
1992
  controlHeight: 48,
@@ -1983,6 +2000,9 @@
1983
2000
  rounded: 'circle'
1984
2001
  }
1985
2002
  },
2003
+ VFileInput: {
2004
+ variant: 'outlined'
2005
+ },
1986
2006
  VNavigationDrawer: {
1987
2007
  // VList: {
1988
2008
  // nav: true,
@@ -1991,8 +2011,15 @@
1991
2011
  // },
1992
2012
  // },
1993
2013
  },
2014
+ VNumberInput: {
2015
+ variant: 'outlined',
2016
+ VBtn: {
2017
+ color: undefined,
2018
+ rounded: undefined
2019
+ }
2020
+ },
1994
2021
  VSelect: {
1995
- variant: 'filled'
2022
+ variant: 'outlined'
1996
2023
  },
1997
2024
  VSlider: {
1998
2025
  color: 'primary'
@@ -2001,10 +2028,10 @@
2001
2028
  color: 'primary'
2002
2029
  },
2003
2030
  VTextarea: {
2004
- variant: 'filled'
2031
+ variant: 'outlined'
2005
2032
  },
2006
2033
  VTextField: {
2007
- variant: 'filled'
2034
+ variant: 'outlined'
2008
2035
  },
2009
2036
  VToolbar: {
2010
2037
  VBtn: {
@@ -2218,7 +2245,7 @@
2218
2245
  const mainRect = vue.computed(() => {
2219
2246
  return layers.value[layers.value.length - 1].layer;
2220
2247
  });
2221
- const mainStyles = vue.computed(() => {
2248
+ const mainStyles = vue.toRef(() => {
2222
2249
  return {
2223
2250
  '--v-layout-left': convertToUnit(mainRect.value.left),
2224
2251
  '--v-layout-right': convertToUnit(mainRect.value.right),
@@ -2333,10 +2360,10 @@
2333
2360
  layoutRect,
2334
2361
  rootZIndex
2335
2362
  });
2336
- const layoutClasses = vue.computed(() => ['v-layout', {
2363
+ const layoutClasses = vue.toRef(() => ['v-layout', {
2337
2364
  'v-layout--full-height': props.fullHeight
2338
2365
  }]);
2339
- const layoutStyles = vue.computed(() => ({
2366
+ const layoutStyles = vue.toRef(() => ({
2340
2367
  zIndex: parentLayout ? rootZIndex.value : undefined,
2341
2368
  position: parentLayout ? 'relative' : undefined,
2342
2369
  overflow: parentLayout ? 'hidden' : undefined
@@ -2727,7 +2754,7 @@
2727
2754
  return {
2728
2755
  isRtl,
2729
2756
  rtl,
2730
- rtlClasses: vue.computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
2757
+ rtlClasses: vue.toRef(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
2731
2758
  };
2732
2759
  }
2733
2760
  function provideRtl(locale, rtl, props) {
@@ -2735,7 +2762,7 @@
2735
2762
  return {
2736
2763
  isRtl,
2737
2764
  rtl,
2738
- rtlClasses: vue.computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
2765
+ rtlClasses: vue.toRef(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
2739
2766
  };
2740
2767
  }
2741
2768
  function useRtl() {
@@ -2808,8 +2835,8 @@
2808
2835
  surface: '#212121',
2809
2836
  'surface-bright': '#ccbfd6',
2810
2837
  'surface-light': '#424242',
2811
- 'surface-variant': '#a3a3a3',
2812
- 'on-surface-variant': '#424242',
2838
+ 'surface-variant': '#c8c8c8',
2839
+ 'on-surface-variant': '#000000',
2813
2840
  primary: '#2196F3',
2814
2841
  'primary-darken-1': '#277CC1',
2815
2842
  secondary: '#54B6B2',
@@ -2959,7 +2986,7 @@
2959
2986
  }
2960
2987
  return acc;
2961
2988
  });
2962
- const current = vue.computed(() => computedThemes.value[name.value]);
2989
+ const current = vue.toRef(() => computedThemes.value[name.value]);
2963
2990
  const styles = vue.computed(() => {
2964
2991
  const lines = [];
2965
2992
  if (current.value?.dark) {
@@ -3006,7 +3033,7 @@
3006
3033
  }
3007
3034
  } else {
3008
3035
  if (IN_BROWSER) {
3009
- head.addHeadObjs(vue.computed(getHead));
3036
+ head.addHeadObjs(vue.toRef(getHead));
3010
3037
  vue.watchEffect(() => head.updateDOM());
3011
3038
  } else {
3012
3039
  head.addHeadObjs(getHead());
@@ -3025,7 +3052,7 @@
3025
3052
  }
3026
3053
  }
3027
3054
  }
3028
- const themeClasses = vue.computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
3055
+ const themeClasses = vue.toRef(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
3029
3056
  return {
3030
3057
  install,
3031
3058
  isDisabled: parsedOptions.isDisabled,
@@ -3045,9 +3072,9 @@
3045
3072
  getCurrentInstance('provideTheme');
3046
3073
  const theme = vue.inject(ThemeSymbol, null);
3047
3074
  if (!theme) throw new Error('Could not find Vuetify theme injection');
3048
- const name = vue.computed(() => props.theme ?? theme.name.value);
3049
- const current = vue.computed(() => theme.themes.value[name.value]);
3050
- const themeClasses = vue.computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
3075
+ const name = vue.toRef(() => props.theme ?? theme.name.value);
3076
+ const current = vue.toRef(() => theme.themes.value[name.value]);
3077
+ const themeClasses = vue.toRef(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
3051
3078
  const newTheme = {
3052
3079
  ...theme,
3053
3080
  name,
@@ -3331,6 +3358,7 @@
3331
3358
  const makeVDialogTransitionProps = propsFactory({
3332
3359
  target: [Object, Array]
3333
3360
  }, 'v-dialog-transition');
3361
+ const saved = new WeakMap();
3334
3362
  const VDialogTransition = genericComponent()({
3335
3363
  name: 'VDialogTransition',
3336
3364
  props: makeVDialogTransitionProps(),
@@ -3347,13 +3375,15 @@
3347
3375
  await new Promise(resolve => requestAnimationFrame(resolve));
3348
3376
  await new Promise(resolve => requestAnimationFrame(resolve));
3349
3377
  el.style.visibility = '';
3378
+ const dimensions = getDimensions(props.target, el);
3350
3379
  const {
3351
3380
  x,
3352
3381
  y,
3353
3382
  sx,
3354
3383
  sy,
3355
3384
  speed
3356
- } = getDimensions(props.target, el);
3385
+ } = dimensions;
3386
+ saved.set(el, dimensions);
3357
3387
  const animation = animate(el, [{
3358
3388
  transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
3359
3389
  opacity: 0
@@ -3382,13 +3412,19 @@
3382
3412
  },
3383
3413
  async onLeave(el, done) {
3384
3414
  await new Promise(resolve => requestAnimationFrame(resolve));
3415
+ let dimensions;
3416
+ if (!Array.isArray(props.target) && !props.target.offsetParent && saved.has(el)) {
3417
+ dimensions = saved.get(el);
3418
+ } else {
3419
+ dimensions = getDimensions(props.target, el);
3420
+ }
3385
3421
  const {
3386
3422
  x,
3387
3423
  y,
3388
3424
  sx,
3389
3425
  sy,
3390
3426
  speed
3391
- } = getDimensions(props.target, el);
3427
+ } = dimensions;
3392
3428
  const animation = animate(el, [{}, {
3393
3429
  transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
3394
3430
  opacity: 0
@@ -3608,13 +3644,14 @@
3608
3644
  // Composables
3609
3645
  function useColor(colors) {
3610
3646
  return destructComputed(() => {
3647
+ const _colors = vue.toValue(colors);
3611
3648
  const classes = [];
3612
3649
  const styles = {};
3613
- if (colors.value.background) {
3614
- if (isCssColor(colors.value.background)) {
3615
- styles.backgroundColor = colors.value.background;
3616
- if (!colors.value.text && isParsableColor(colors.value.background)) {
3617
- const backgroundColor = parseColor(colors.value.background);
3650
+ if (_colors.background) {
3651
+ if (isCssColor(_colors.background)) {
3652
+ styles.backgroundColor = _colors.background;
3653
+ if (!_colors.text && isParsableColor(_colors.background)) {
3654
+ const backgroundColor = parseColor(_colors.background);
3618
3655
  if (backgroundColor.a == null || backgroundColor.a === 1) {
3619
3656
  const textColor = getForeground(backgroundColor);
3620
3657
  styles.color = textColor;
@@ -3622,15 +3659,15 @@
3622
3659
  }
3623
3660
  }
3624
3661
  } else {
3625
- classes.push(`bg-${colors.value.background}`);
3662
+ classes.push(`bg-${_colors.background}`);
3626
3663
  }
3627
3664
  }
3628
- if (colors.value.text) {
3629
- if (isCssColor(colors.value.text)) {
3630
- styles.color = colors.value.text;
3631
- styles.caretColor = colors.value.text;
3665
+ if (_colors.text) {
3666
+ if (isCssColor(_colors.text)) {
3667
+ styles.color = _colors.text;
3668
+ styles.caretColor = _colors.text;
3632
3669
  } else {
3633
- classes.push(`text-${colors.value.text}`);
3670
+ classes.push(`text-${_colors.text}`);
3634
3671
  }
3635
3672
  }
3636
3673
  return {
@@ -3639,27 +3676,25 @@
3639
3676
  };
3640
3677
  });
3641
3678
  }
3642
- function useTextColor(props, name) {
3643
- const colors = vue.computed(() => ({
3644
- text: vue.isRef(props) ? props.value : name ? props[name] : null
3645
- }));
3679
+ function useTextColor(color) {
3646
3680
  const {
3647
3681
  colorClasses: textColorClasses,
3648
3682
  colorStyles: textColorStyles
3649
- } = useColor(colors);
3683
+ } = useColor(() => ({
3684
+ text: vue.toValue(color)
3685
+ }));
3650
3686
  return {
3651
3687
  textColorClasses,
3652
3688
  textColorStyles
3653
3689
  };
3654
3690
  }
3655
- function useBackgroundColor(props, name) {
3656
- const colors = vue.computed(() => ({
3657
- background: vue.isRef(props) ? props.value : name ? props[name] : null
3658
- }));
3691
+ function useBackgroundColor(color) {
3659
3692
  const {
3660
3693
  colorClasses: backgroundColorClasses,
3661
3694
  colorStyles: backgroundColorStyles
3662
- } = useColor(colors);
3695
+ } = useColor(() => ({
3696
+ background: vue.toValue(color)
3697
+ }));
3663
3698
  return {
3664
3699
  backgroundColorClasses,
3665
3700
  backgroundColorStyles
@@ -3843,7 +3878,7 @@
3843
3878
  const {
3844
3879
  backgroundColorClasses,
3845
3880
  backgroundColorStyles
3846
- } = useBackgroundColor(vue.toRef(props, 'color'));
3881
+ } = useBackgroundColor(() => props.color);
3847
3882
  const {
3848
3883
  roundedClasses
3849
3884
  } = useRounded(props);
@@ -3950,7 +3985,7 @@
3950
3985
  };
3951
3986
  poll();
3952
3987
  }
3953
- const containClasses = vue.computed(() => ({
3988
+ const containClasses = vue.toRef(() => ({
3954
3989
  'v-img__img--cover': props.cover,
3955
3990
  'v-img__img--contain': !props.cover
3956
3991
  }));
@@ -4087,16 +4122,13 @@
4087
4122
  function useBorder(props) {
4088
4123
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
4089
4124
  const borderClasses = vue.computed(() => {
4090
- const border = vue.isRef(props) ? props.value : props.border;
4091
- const classes = [];
4125
+ const border = props.border;
4092
4126
  if (border === true || border === '') {
4093
- classes.push(`${name}--border`);
4127
+ return `${name}--border`;
4094
4128
  } else if (typeof border === 'string' || border === 0) {
4095
- for (const value of String(border).split(' ')) {
4096
- classes.push(`border-${value}`);
4097
- }
4129
+ return String(border).split(' ').map(v => `border-${v}`);
4098
4130
  }
4099
- return classes;
4131
+ return [];
4100
4132
  });
4101
4133
  return {
4102
4134
  borderClasses
@@ -4121,12 +4153,10 @@
4121
4153
  }
4122
4154
  }, 'elevation');
4123
4155
  function useElevation(props) {
4124
- const elevationClasses = vue.computed(() => {
4156
+ const elevationClasses = vue.toRef(() => {
4125
4157
  const elevation = vue.isRef(props) ? props.value : props.elevation;
4126
- const classes = [];
4127
- if (elevation == null) return classes;
4128
- classes.push(`elevation-${elevation}`);
4129
- return classes;
4158
+ if (elevation == null) return [];
4159
+ return [`elevation-${elevation}`];
4130
4160
  });
4131
4161
  return {
4132
4162
  elevationClasses
@@ -4177,7 +4207,7 @@
4177
4207
  const {
4178
4208
  backgroundColorClasses,
4179
4209
  backgroundColorStyles
4180
- } = useBackgroundColor(vue.toRef(props, 'color'));
4210
+ } = useBackgroundColor(() => props.color);
4181
4211
  const {
4182
4212
  borderClasses
4183
4213
  } = useBorder(props);
@@ -4386,7 +4416,7 @@
4386
4416
  isBooted.value = true;
4387
4417
  });
4388
4418
  });
4389
- const ssrBootStyles = vue.computed(() => !isBooted.value ? {
4419
+ const ssrBootStyles = vue.toRef(() => !isBooted.value ? {
4390
4420
  transition: 'none !important'
4391
4421
  } : undefined);
4392
4422
  return {
@@ -4454,7 +4484,7 @@
4454
4484
  } = useScroll(props, {
4455
4485
  canScroll
4456
4486
  });
4457
- const canHide = vue.computed(() => scrollBehavior.value.hide || scrollBehavior.value.fullyHide);
4487
+ const canHide = vue.toRef(() => scrollBehavior.value.hide || scrollBehavior.value.fullyHide);
4458
4488
  const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));
4459
4489
  const isFlat = vue.computed(() => props.flat || scrollBehavior.value.fullyHide && !isActive.value || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
4460
4490
  const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
@@ -4465,7 +4495,7 @@
4465
4495
  if (!canHide.value) return height + extensionHeight;
4466
4496
  return currentScroll.value < scrollThreshold.value || scrollBehavior.value.fullyHide ? height + extensionHeight : height;
4467
4497
  });
4468
- useToggleScope(vue.computed(() => !!props.scrollBehavior), () => {
4498
+ useToggleScope(() => !!props.scrollBehavior, () => {
4469
4499
  vue.watchEffect(() => {
4470
4500
  if (canHide.value) {
4471
4501
  if (scrollBehavior.value.inverted) {
@@ -4486,11 +4516,11 @@
4486
4516
  } = useLayoutItem({
4487
4517
  id: props.name,
4488
4518
  order: vue.computed(() => parseInt(props.order, 10)),
4489
- position: vue.toRef(props, 'location'),
4519
+ position: vue.toRef(() => props.location),
4490
4520
  layoutSize: height,
4491
4521
  elementSize: vue.shallowRef(undefined),
4492
4522
  active: isActive,
4493
- absolute: vue.toRef(props, 'absolute')
4523
+ absolute: vue.toRef(() => props.absolute)
4494
4524
  });
4495
4525
  useRender(() => {
4496
4526
  const toolbarProps = VToolbar.filterProps(props);
@@ -4533,7 +4563,7 @@
4533
4563
  }, 'density');
4534
4564
  function useDensity(props) {
4535
4565
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
4536
- const densityClasses = vue.computed(() => {
4566
+ const densityClasses = vue.toRef(() => {
4537
4567
  return `${name}--density-${props.density}`;
4538
4568
  });
4539
4569
  return {
@@ -4563,24 +4593,24 @@
4563
4593
  }, 'variant');
4564
4594
  function useVariant(props) {
4565
4595
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
4566
- const variantClasses = vue.computed(() => {
4596
+ const variantClasses = vue.toRef(() => {
4567
4597
  const {
4568
4598
  variant
4569
- } = vue.unref(props);
4599
+ } = vue.toValue(props);
4570
4600
  return `${name}--variant-${variant}`;
4571
4601
  });
4572
4602
  const {
4573
4603
  colorClasses,
4574
4604
  colorStyles
4575
- } = useColor(vue.computed(() => {
4605
+ } = useColor(() => {
4576
4606
  const {
4577
4607
  variant,
4578
4608
  color
4579
- } = vue.unref(props);
4609
+ } = vue.toValue(props);
4580
4610
  return {
4581
4611
  [['elevated', 'flat'].includes(variant) ? 'background' : 'text']: color
4582
4612
  };
4583
- }));
4613
+ });
4584
4614
  return {
4585
4615
  colorClasses,
4586
4616
  colorStyles,
@@ -4625,11 +4655,11 @@
4625
4655
  provideDefaults({
4626
4656
  VBtn: {
4627
4657
  height: 'auto',
4628
- baseColor: vue.toRef(props, 'baseColor'),
4629
- color: vue.toRef(props, 'color'),
4630
- density: vue.toRef(props, 'density'),
4658
+ baseColor: vue.toRef(() => props.baseColor),
4659
+ color: vue.toRef(() => props.color),
4660
+ density: vue.toRef(() => props.density),
4631
4661
  flat: true,
4632
- variant: vue.toRef(props, 'variant')
4662
+ variant: vue.toRef(() => props.variant)
4633
4663
  }
4634
4664
  });
4635
4665
  useRender(() => {
@@ -4679,7 +4709,7 @@
4679
4709
  if (!required) return group;
4680
4710
  throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);
4681
4711
  }
4682
- const value = vue.toRef(props, 'value');
4712
+ const value = vue.toRef(() => props.value);
4683
4713
  const disabled = vue.computed(() => !!(group.disabled.value || props.disabled));
4684
4714
  group.register({
4685
4715
  id,
@@ -4828,12 +4858,12 @@
4828
4858
  unregister,
4829
4859
  selected,
4830
4860
  select,
4831
- disabled: vue.toRef(props, 'disabled'),
4861
+ disabled: vue.toRef(() => props.disabled),
4832
4862
  prev: () => step(items.length - 1),
4833
4863
  next: () => step(1),
4834
4864
  isSelected: id => selected.value.includes(id),
4835
- selectedClass: vue.computed(() => props.selectedClass),
4836
- items: vue.computed(() => items),
4865
+ selectedClass: vue.toRef(() => props.selectedClass),
4866
+ items: vue.toRef(() => items),
4837
4867
  getItemIndex: value => getItemIndex(items, value)
4838
4868
  };
4839
4869
  vue.provide(injectKey, state);
@@ -4931,14 +4961,15 @@
4931
4961
  function useSize(props) {
4932
4962
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
4933
4963
  return destructComputed(() => {
4964
+ const size = props.size;
4934
4965
  let sizeClasses;
4935
4966
  let sizeStyles;
4936
- if (includes(predefinedSizes, props.size)) {
4937
- sizeClasses = `${name}--size-${props.size}`;
4938
- } else if (props.size) {
4967
+ if (includes(predefinedSizes, size)) {
4968
+ sizeClasses = `${name}--size-${size}`;
4969
+ } else if (size) {
4939
4970
  sizeStyles = {
4940
- width: convertToUnit(props.size),
4941
- height: convertToUnit(props.size)
4971
+ width: convertToUnit(size),
4972
+ height: convertToUnit(size)
4942
4973
  };
4943
4974
  }
4944
4975
  return {
@@ -4970,20 +5001,20 @@
4970
5001
  attrs,
4971
5002
  slots
4972
5003
  } = _ref;
4973
- const slotIcon = vue.ref();
5004
+ const slotIcon = vue.shallowRef();
4974
5005
  const {
4975
5006
  themeClasses
4976
5007
  } = useTheme();
4977
5008
  const {
4978
5009
  iconData
4979
- } = useIcon(vue.computed(() => slotIcon.value || props.icon));
5010
+ } = useIcon(() => slotIcon.value || props.icon);
4980
5011
  const {
4981
5012
  sizeClasses
4982
5013
  } = useSize(props);
4983
5014
  const {
4984
5015
  textColorClasses,
4985
5016
  textColorStyles
4986
- } = useTextColor(vue.toRef(props, 'color'));
5017
+ } = useTextColor(() => props.color);
4987
5018
  useRender(() => {
4988
5019
  const slotValue = slots.default?.();
4989
5020
  if (slotValue) {
@@ -5089,11 +5120,11 @@
5089
5120
  const {
5090
5121
  textColorClasses,
5091
5122
  textColorStyles
5092
- } = useTextColor(vue.toRef(props, 'color'));
5123
+ } = useTextColor(() => props.color);
5093
5124
  const {
5094
5125
  textColorClasses: underlayColorClasses,
5095
5126
  textColorStyles: underlayColorStyles
5096
- } = useTextColor(vue.toRef(props, 'bgColor'));
5127
+ } = useTextColor(() => props.bgColor);
5097
5128
  const {
5098
5129
  intersectionRef,
5099
5130
  isIntersecting
@@ -5102,15 +5133,15 @@
5102
5133
  resizeRef,
5103
5134
  contentRect
5104
5135
  } = useResizeObserver();
5105
- const normalizedValue = vue.computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));
5106
- const width = vue.computed(() => Number(props.width));
5107
- const size = vue.computed(() => {
5136
+ const normalizedValue = vue.toRef(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));
5137
+ const width = vue.toRef(() => Number(props.width));
5138
+ const size = vue.toRef(() => {
5108
5139
  // Get size from element if size prop value is small, large etc
5109
5140
  return sizeStyles.value ? Number(props.size) : contentRect.value ? contentRect.value.width : Math.max(width.value, 32);
5110
5141
  });
5111
- const diameter = vue.computed(() => MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value) * 2);
5112
- const strokeWidth = vue.computed(() => width.value / size.value * diameter.value);
5113
- const strokeDashOffset = vue.computed(() => convertToUnit((100 - normalizedValue.value) / 100 * CIRCUMFERENCE));
5142
+ const diameter = vue.toRef(() => MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value) * 2);
5143
+ const strokeWidth = vue.toRef(() => width.value / size.value * diameter.value);
5144
+ const strokeDashOffset = vue.toRef(() => convertToUnit((100 - normalizedValue.value) / 100 * CIRCUMFERENCE));
5114
5145
  vue.watchEffect(() => {
5115
5146
  intersectionRef.value = root.value;
5116
5147
  resizeRef.value = root.value;
@@ -5288,19 +5319,19 @@
5288
5319
  const {
5289
5320
  textColorClasses,
5290
5321
  textColorStyles
5291
- } = useTextColor(props, 'color');
5322
+ } = useTextColor(() => props.color);
5292
5323
  const {
5293
5324
  backgroundColorClasses,
5294
5325
  backgroundColorStyles
5295
- } = useBackgroundColor(vue.computed(() => props.bgColor || props.color));
5326
+ } = useBackgroundColor(() => props.bgColor || props.color);
5296
5327
  const {
5297
5328
  backgroundColorClasses: bufferColorClasses,
5298
5329
  backgroundColorStyles: bufferColorStyles
5299
- } = useBackgroundColor(vue.computed(() => props.bufferColor || props.bgColor || props.color));
5330
+ } = useBackgroundColor(() => props.bufferColor || props.bgColor || props.color);
5300
5331
  const {
5301
5332
  backgroundColorClasses: barColorClasses,
5302
5333
  backgroundColorStyles: barColorStyles
5303
- } = useBackgroundColor(props, 'color');
5334
+ } = useBackgroundColor(() => props.color);
5304
5335
  const {
5305
5336
  roundedClasses
5306
5337
  } = useRounded(props);
@@ -5407,7 +5438,7 @@
5407
5438
  }, 'loader');
5408
5439
  function useLoader(props) {
5409
5440
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
5410
- const loaderClasses = vue.computed(() => ({
5441
+ const loaderClasses = vue.toRef(() => ({
5411
5442
  [`${name}--loading`]: props.loading
5412
5443
  }));
5413
5444
  return {
@@ -5446,7 +5477,7 @@
5446
5477
  }, 'position');
5447
5478
  function usePosition(props) {
5448
5479
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
5449
- const positionClasses = vue.computed(() => {
5480
+ const positionClasses = vue.toRef(() => {
5450
5481
  return props.position ? `${name}--${props.position}` : undefined;
5451
5482
  });
5452
5483
  return {
@@ -5467,12 +5498,12 @@
5467
5498
  }
5468
5499
  function useLink(props, attrs) {
5469
5500
  const RouterLink = vue.resolveDynamicComponent('RouterLink');
5470
- const isLink = vue.computed(() => !!(props.href || props.to));
5501
+ const isLink = vue.toRef(() => !!(props.href || props.to));
5471
5502
  const isClickable = vue.computed(() => {
5472
5503
  return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');
5473
5504
  });
5474
5505
  if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {
5475
- const href = vue.toRef(props, 'href');
5506
+ const href = vue.toRef(() => props.href);
5476
5507
  return {
5477
5508
  isLink,
5478
5509
  isClickable,
@@ -5482,12 +5513,12 @@
5482
5513
  })
5483
5514
  };
5484
5515
  }
5516
+
5485
5517
  // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined
5486
- const linkProps = vue.computed(() => ({
5487
- ...props,
5488
- to: vue.toRef(() => props.to || '')
5489
- }));
5490
- const routerLink = RouterLink.useLink(linkProps.value);
5518
+ const routerLink = RouterLink.useLink({
5519
+ to: vue.toRef(() => props.to || ''),
5520
+ replace: vue.toRef(() => props.replace)
5521
+ });
5491
5522
  // Actual link needs to be undefined when to prop is not used
5492
5523
  const link = vue.computed(() => props.to ? routerLink : undefined);
5493
5524
  const route = useRoute();
@@ -5507,7 +5538,7 @@
5507
5538
  href,
5508
5539
  linkProps: vue.reactive({
5509
5540
  href,
5510
- 'aria-current': vue.computed(() => isActive.value ? 'page' : undefined)
5541
+ 'aria-current': vue.toRef(() => isActive.value ? 'page' : undefined)
5511
5542
  })
5512
5543
  };
5513
5544
  }
@@ -5956,7 +5987,7 @@
5956
5987
  }
5957
5988
  return group?.isSelected.value;
5958
5989
  });
5959
- const color = vue.computed(() => isActive.value ? props.activeColor ?? props.color : props.color);
5990
+ const color = vue.toRef(() => isActive.value ? props.activeColor ?? props.color : props.color);
5960
5991
  const variantProps = vue.computed(() => {
5961
5992
  const showColor = group?.isSelected.value && (!link.isLink.value || link.isActive?.value) || !group || link.isActive?.value;
5962
5993
  return {
@@ -5970,7 +6001,7 @@
5970
6001
  variantClasses
5971
6002
  } = useVariant(variantProps);
5972
6003
  const isDisabled = vue.computed(() => group?.disabled.value || props.disabled);
5973
- const isElevated = vue.computed(() => {
6004
+ const isElevated = vue.toRef(() => {
5974
6005
  return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
5975
6006
  });
5976
6007
  const valueAttr = vue.computed(() => {
@@ -6173,15 +6204,11 @@
6173
6204
  slots
6174
6205
  } = _ref;
6175
6206
  const isActive = useProxiedModel(props, 'modelValue');
6176
- const icon = vue.computed(() => {
6207
+ const icon = vue.toRef(() => {
6177
6208
  if (props.icon === false) return undefined;
6178
6209
  if (!props.type) return props.icon;
6179
6210
  return props.icon ?? `$${props.type}`;
6180
6211
  });
6181
- const variantProps = vue.computed(() => ({
6182
- color: props.color ?? props.type,
6183
- variant: props.variant
6184
- }));
6185
6212
  const {
6186
6213
  themeClasses
6187
6214
  } = provideTheme(props);
@@ -6189,7 +6216,10 @@
6189
6216
  colorClasses,
6190
6217
  colorStyles,
6191
6218
  variantClasses
6192
- } = useVariant(variantProps);
6219
+ } = useVariant(() => ({
6220
+ color: props.color ?? props.type,
6221
+ variant: props.variant
6222
+ }));
6193
6223
  const {
6194
6224
  densityClasses
6195
6225
  } = useDensity(props);
@@ -6211,11 +6241,11 @@
6211
6241
  const {
6212
6242
  textColorClasses,
6213
6243
  textColorStyles
6214
- } = useTextColor(vue.toRef(props, 'borderColor'));
6244
+ } = useTextColor(() => props.borderColor);
6215
6245
  const {
6216
6246
  t
6217
6247
  } = useLocale();
6218
- const closeProps = vue.computed(() => ({
6248
+ const closeProps = vue.toRef(() => ({
6219
6249
  'aria-label': t(props.closeLabel),
6220
6250
  onClick(e) {
6221
6251
  isActive.value = false;
@@ -6452,8 +6482,8 @@
6452
6482
  } = _ref;
6453
6483
  const modelValue = useProxiedModel(props, 'modelValue');
6454
6484
  const uid = vue.useId();
6455
- const id = vue.computed(() => props.id || `v-selection-control-group-${uid}`);
6456
- const name = vue.computed(() => props.name || id.value);
6485
+ const id = vue.toRef(() => props.id || `v-selection-control-group-${uid}`);
6486
+ const name = vue.toRef(() => props.name || id.value);
6457
6487
  const updateHandlers = new Set();
6458
6488
  vue.provide(VSelectionControlGroupSymbol, {
6459
6489
  modelValue,
@@ -6469,20 +6499,20 @@
6469
6499
  });
6470
6500
  provideDefaults({
6471
6501
  [props.defaultsTarget]: {
6472
- color: vue.toRef(props, 'color'),
6473
- disabled: vue.toRef(props, 'disabled'),
6474
- density: vue.toRef(props, 'density'),
6475
- error: vue.toRef(props, 'error'),
6476
- inline: vue.toRef(props, 'inline'),
6502
+ color: vue.toRef(() => props.color),
6503
+ disabled: vue.toRef(() => props.disabled),
6504
+ density: vue.toRef(() => props.density),
6505
+ error: vue.toRef(() => props.error),
6506
+ inline: vue.toRef(() => props.inline),
6477
6507
  modelValue,
6478
- multiple: vue.computed(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value)),
6508
+ multiple: vue.toRef(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value)),
6479
6509
  name,
6480
- falseIcon: vue.toRef(props, 'falseIcon'),
6481
- trueIcon: vue.toRef(props, 'trueIcon'),
6482
- readonly: vue.toRef(props, 'readonly'),
6483
- ripple: vue.toRef(props, 'ripple'),
6484
- type: vue.toRef(props, 'type'),
6485
- valueComparator: vue.toRef(props, 'valueComparator')
6510
+ falseIcon: vue.toRef(() => props.falseIcon),
6511
+ trueIcon: vue.toRef(() => props.trueIcon),
6512
+ readonly: vue.toRef(() => props.readonly),
6513
+ ripple: vue.toRef(() => props.ripple),
6514
+ type: vue.toRef(() => props.type),
6515
+ valueComparator: vue.toRef(() => props.valueComparator)
6486
6516
  }
6487
6517
  });
6488
6518
  useRender(() => vue.createVNode("div", {
@@ -6538,16 +6568,16 @@
6538
6568
  const {
6539
6569
  textColorClasses,
6540
6570
  textColorStyles
6541
- } = useTextColor(vue.computed(() => {
6571
+ } = useTextColor(() => {
6542
6572
  if (props.error || props.disabled) return undefined;
6543
6573
  return model.value ? props.color : props.baseColor;
6544
- }));
6574
+ });
6545
6575
  const {
6546
6576
  backgroundColorClasses,
6547
6577
  backgroundColorStyles
6548
- } = useBackgroundColor(vue.computed(() => {
6578
+ } = useBackgroundColor(() => {
6549
6579
  return model.value && !props.error && !props.disabled ? props.color : props.baseColor;
6550
- }));
6580
+ });
6551
6581
  const icon = vue.computed(() => model.value ? props.trueIcon : props.falseIcon);
6552
6582
  return {
6553
6583
  group,
@@ -6592,8 +6622,8 @@
6592
6622
  const isFocused = vue.shallowRef(false);
6593
6623
  const isFocusVisible = vue.shallowRef(false);
6594
6624
  const input = vue.ref();
6595
- const id = vue.computed(() => props.id || `input-${uid}`);
6596
- const isInteractive = vue.computed(() => !props.disabled && !props.readonly);
6625
+ const id = vue.toRef(() => props.id || `input-${uid}`);
6626
+ const isInteractive = vue.toRef(() => !props.disabled && !props.readonly);
6597
6627
  group?.onForceUpdate(() => {
6598
6628
  if (input.value) {
6599
6629
  input.value.checked = model.value;
@@ -6731,10 +6761,10 @@
6731
6761
  indeterminate.value = false;
6732
6762
  }
6733
6763
  }
6734
- const falseIcon = vue.computed(() => {
6764
+ const falseIcon = vue.toRef(() => {
6735
6765
  return indeterminate.value ? props.indeterminateIcon : props.falseIcon;
6736
6766
  });
6737
- const trueIcon = vue.computed(() => {
6767
+ const trueIcon = vue.toRef(() => {
6738
6768
  return indeterminate.value ? props.indeterminateIcon : props.trueIcon;
6739
6769
  });
6740
6770
  useRender(() => {
@@ -6822,7 +6852,7 @@
6822
6852
  const {
6823
6853
  textColorClasses,
6824
6854
  textColorStyles
6825
- } = useTextColor(vue.computed(() => props.color));
6855
+ } = useTextColor(() => props.color);
6826
6856
  useRender(() => vue.createVNode(MaybeTransition, {
6827
6857
  "transition": props.transition,
6828
6858
  "tag": "div",
@@ -6852,7 +6882,7 @@
6852
6882
  function useFocus(props) {
6853
6883
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
6854
6884
  const isFocused = useProxiedModel(props, 'focused');
6855
- const focusClasses = vue.computed(() => {
6885
+ const focusClasses = vue.toRef(() => {
6856
6886
  return {
6857
6887
  [`${name}--focused`]: isFocused.value
6858
6888
  };
@@ -6891,8 +6921,8 @@
6891
6921
  }, 'form');
6892
6922
  function createForm(props) {
6893
6923
  const model = useProxiedModel(props, 'modelValue');
6894
- const isDisabled = vue.computed(() => props.disabled);
6895
- const isReadonly = vue.computed(() => props.readonly);
6924
+ const isDisabled = vue.toRef(() => props.disabled);
6925
+ const isReadonly = vue.toRef(() => props.readonly);
6896
6926
  const isValidating = vue.shallowRef(false);
6897
6927
  const items = vue.ref([]);
6898
6928
  const errors = vue.ref([]);
@@ -6982,7 +7012,7 @@
6982
7012
  isValidating,
6983
7013
  isValid: model,
6984
7014
  items,
6985
- validateOn: vue.toRef(props, 'validateOn')
7015
+ validateOn: vue.toRef(() => props.validateOn)
6986
7016
  });
6987
7017
  return {
6988
7018
  errors,
@@ -7292,10 +7322,10 @@
7292
7322
  resetValidation,
7293
7323
  validate
7294
7324
  }));
7295
- const color = vue.computed(() => {
7325
+ const color = vue.toRef(() => {
7296
7326
  return props.error || props.disabled ? undefined : props.focused ? props.color : props.baseColor;
7297
7327
  });
7298
- const iconColor = vue.computed(() => {
7328
+ const iconColor = vue.toRef(() => {
7299
7329
  if (!props.iconColor) return undefined;
7300
7330
  return props.iconColor === true ? color.value : props.iconColor;
7301
7331
  });
@@ -7385,7 +7415,6 @@
7385
7415
  blur
7386
7416
  } = useFocus(props);
7387
7417
  const uid = vue.useId();
7388
- const id = vue.computed(() => props.id || `checkbox-${uid}`);
7389
7418
  useRender(() => {
7390
7419
  const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
7391
7420
  const inputProps = VInput.filterProps(props);
@@ -7395,7 +7424,7 @@
7395
7424
  }, rootAttrs, inputProps, {
7396
7425
  "modelValue": model.value,
7397
7426
  "onUpdate:modelValue": $event => model.value = $event,
7398
- "id": id.value,
7427
+ "id": props.id || `checkbox-${uid}`,
7399
7428
  "focused": isFocused.value,
7400
7429
  "style": props.style
7401
7430
  }), {
@@ -7579,7 +7608,7 @@
7579
7608
  return false;
7580
7609
  }
7581
7610
  });
7582
- const displayClasses = vue.computed(() => {
7611
+ const displayClasses = vue.toRef(() => {
7583
7612
  if (!name) return {};
7584
7613
  return {
7585
7614
  [`${name}--mobile`]: mobile.value
@@ -7694,7 +7723,7 @@
7694
7723
  const goTo = {
7695
7724
  ...goToInstance,
7696
7725
  // can be set via VLocaleProvider
7697
- rtl: vue.computed(() => goToInstance.rtl.value || isRtl.value)
7726
+ rtl: vue.toRef(() => goToInstance.rtl.value || isRtl.value)
7698
7727
  };
7699
7728
  async function go(target, options) {
7700
7729
  return scrollTo(target, mergeDeep(_options, options), false, goTo);
@@ -8186,11 +8215,11 @@
8186
8215
  } = useGroup(props, VChipGroupSymbol);
8187
8216
  provideDefaults({
8188
8217
  VChip: {
8189
- baseColor: vue.toRef(props, 'baseColor'),
8190
- color: vue.toRef(props, 'color'),
8191
- disabled: vue.toRef(props, 'disabled'),
8192
- filter: vue.toRef(props, 'filter'),
8193
- variant: vue.toRef(props, 'variant')
8218
+ baseColor: vue.toRef(() => props.baseColor),
8219
+ color: vue.toRef(() => props.color),
8220
+ disabled: vue.toRef(() => props.disabled),
8221
+ filter: vue.toRef(() => props.filter),
8222
+ variant: vue.toRef(() => props.variant)
8194
8223
  }
8195
8224
  });
8196
8225
  useRender(() => {
@@ -8316,9 +8345,9 @@
8316
8345
  const isActive = useProxiedModel(props, 'modelValue');
8317
8346
  const group = useGroupItem(props, VChipGroupSymbol, false);
8318
8347
  const link = useLink(props, attrs);
8319
- const isLink = vue.computed(() => props.link !== false && link.isLink.value);
8348
+ const isLink = vue.toRef(() => props.link !== false && link.isLink.value);
8320
8349
  const isClickable = vue.computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
8321
- const closeProps = vue.computed(() => ({
8350
+ const closeProps = vue.toRef(() => ({
8322
8351
  'aria-label': t(props.closeLabel),
8323
8352
  onClick(e) {
8324
8353
  e.preventDefault();
@@ -8327,18 +8356,17 @@
8327
8356
  emit('click:close', e);
8328
8357
  }
8329
8358
  }));
8330
- const variantProps = vue.computed(() => {
8359
+ const {
8360
+ colorClasses,
8361
+ colorStyles,
8362
+ variantClasses
8363
+ } = useVariant(() => {
8331
8364
  const showColor = !group || group.isSelected.value;
8332
8365
  return {
8333
8366
  color: showColor ? props.color ?? props.baseColor : props.baseColor,
8334
8367
  variant: props.variant
8335
8368
  };
8336
8369
  });
8337
- const {
8338
- colorClasses,
8339
- colorStyles,
8340
- variantClasses
8341
- } = useVariant(variantProps);
8342
8370
  function onClick(e) {
8343
8371
  emit('click', e);
8344
8372
  if (!isClickable.value) return;
@@ -9005,8 +9033,8 @@
9005
9033
  id: vue.shallowRef(),
9006
9034
  root: {
9007
9035
  opened,
9008
- activatable: vue.toRef(props, 'activatable'),
9009
- selectable: vue.toRef(props, 'selectable'),
9036
+ activatable: vue.toRef(() => props.activatable),
9037
+ selectable: vue.toRef(() => props.selectable),
9010
9038
  activated,
9011
9039
  selected,
9012
9040
  selectedValues: vue.computed(() => {
@@ -9135,7 +9163,7 @@
9135
9163
  const useNestedItem = (id, isGroup) => {
9136
9164
  const parent = vue.inject(VNestedSymbol, emptyNested);
9137
9165
  const uidSymbol = Symbol('nested item');
9138
- const computedId = vue.computed(() => id.value !== undefined ? id.value : uidSymbol);
9166
+ const computedId = vue.computed(() => vue.toValue(id) ?? uidSymbol);
9139
9167
  const item = {
9140
9168
  ...parent,
9141
9169
  id: computedId,
@@ -9211,7 +9239,7 @@
9211
9239
  isOpen,
9212
9240
  open,
9213
9241
  id: _id
9214
- } = useNestedItem(vue.toRef(props, 'value'), true);
9242
+ } = useNestedItem(() => props.value, true);
9215
9243
  const id = vue.computed(() => `v-list-group--id-${String(_id.value)}`);
9216
9244
  const list = useList();
9217
9245
  const {
@@ -9385,12 +9413,12 @@
9385
9413
  } = useNestedItem(id, false);
9386
9414
  const list = useList();
9387
9415
  const isActive = vue.computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
9388
- const isLink = vue.computed(() => props.link !== false && link.isLink.value);
9416
+ const isLink = vue.toRef(() => props.link !== false && link.isLink.value);
9389
9417
  const isSelectable = vue.computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
9390
9418
  const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
9391
- const roundedProps = vue.computed(() => props.rounded || props.nav);
9392
- const color = vue.computed(() => props.color ?? props.activeColor);
9393
- const variantProps = vue.computed(() => ({
9419
+ const roundedProps = vue.toRef(() => props.rounded || props.nav);
9420
+ const color = vue.toRef(() => props.color ?? props.activeColor);
9421
+ const variantProps = vue.toRef(() => ({
9394
9422
  color: isActive.value ? color.value ?? props.baseColor : props.baseColor,
9395
9423
  variant: props.variant
9396
9424
  }));
@@ -9433,7 +9461,7 @@
9433
9461
  const {
9434
9462
  roundedClasses
9435
9463
  } = useRounded(roundedProps);
9436
- const lineClasses = vue.computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
9464
+ const lineClasses = vue.toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
9437
9465
  const slotProps = vue.computed(() => ({
9438
9466
  isActive: isActive.value,
9439
9467
  select,
@@ -9603,7 +9631,7 @@
9603
9631
  const {
9604
9632
  textColorClasses,
9605
9633
  textColorStyles
9606
- } = useTextColor(vue.toRef(props, 'color'));
9634
+ } = useTextColor(() => props.color);
9607
9635
  useRender(() => {
9608
9636
  const hasText = !!(slots.default || props.title);
9609
9637
  return vue.createVNode(props.tag, {
@@ -9648,7 +9676,7 @@
9648
9676
  const {
9649
9677
  textColorClasses,
9650
9678
  textColorStyles
9651
- } = useTextColor(vue.toRef(props, 'color'));
9679
+ } = useTextColor(() => props.color);
9652
9680
  const dividerStyles = vue.computed(() => {
9653
9681
  const styles = {};
9654
9682
  if (props.length) {
@@ -10010,7 +10038,7 @@
10010
10038
  const {
10011
10039
  backgroundColorClasses,
10012
10040
  backgroundColorStyles
10013
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
10041
+ } = useBackgroundColor(() => props.bgColor);
10014
10042
  const {
10015
10043
  borderClasses
10016
10044
  } = useBorder(props);
@@ -10033,30 +10061,30 @@
10033
10061
  select,
10034
10062
  getPath
10035
10063
  } = useNested(props);
10036
- const lineClasses = vue.computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
10037
- const activeColor = vue.toRef(props, 'activeColor');
10038
- const baseColor = vue.toRef(props, 'baseColor');
10039
- const color = vue.toRef(props, 'color');
10064
+ const lineClasses = vue.toRef(() => props.lines ? `v-list--${props.lines}-line` : undefined);
10065
+ const activeColor = vue.toRef(() => props.activeColor);
10066
+ const baseColor = vue.toRef(() => props.baseColor);
10067
+ const color = vue.toRef(() => props.color);
10040
10068
  createList();
10041
10069
  provideDefaults({
10042
10070
  VListGroup: {
10043
10071
  activeColor,
10044
10072
  baseColor,
10045
10073
  color,
10046
- expandIcon: vue.toRef(props, 'expandIcon'),
10047
- collapseIcon: vue.toRef(props, 'collapseIcon')
10074
+ expandIcon: vue.toRef(() => props.expandIcon),
10075
+ collapseIcon: vue.toRef(() => props.collapseIcon)
10048
10076
  },
10049
10077
  VListItem: {
10050
- activeClass: vue.toRef(props, 'activeClass'),
10078
+ activeClass: vue.toRef(() => props.activeClass),
10051
10079
  activeColor,
10052
10080
  baseColor,
10053
10081
  color,
10054
- density: vue.toRef(props, 'density'),
10055
- disabled: vue.toRef(props, 'disabled'),
10056
- lines: vue.toRef(props, 'lines'),
10057
- nav: vue.toRef(props, 'nav'),
10058
- slim: vue.toRef(props, 'slim'),
10059
- variant: vue.toRef(props, 'variant')
10082
+ density: vue.toRef(() => props.density),
10083
+ disabled: vue.toRef(() => props.disabled),
10084
+ lines: vue.toRef(() => props.lines),
10085
+ nav: vue.toRef(() => props.nav),
10086
+ slim: vue.toRef(() => props.slim),
10087
+ variant: vue.toRef(() => props.variant)
10060
10088
  }
10061
10089
  });
10062
10090
  const isFocused = vue.shallowRef(false);
@@ -10368,8 +10396,27 @@
10368
10396
  return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];
10369
10397
  });
10370
10398
  let observe = false;
10399
+ let lastFrame = -1;
10400
+ const flipped = new CircularBuffer(4);
10371
10401
  const observer = new ResizeObserver(() => {
10372
- if (observe) updateLocation();
10402
+ if (!observe) return;
10403
+
10404
+ // Detect consecutive frames
10405
+ requestAnimationFrame(newTime => {
10406
+ if (newTime !== lastFrame) flipped.clear();
10407
+ requestAnimationFrame(newNewTime => {
10408
+ lastFrame = newNewTime;
10409
+ });
10410
+ });
10411
+ if (flipped.isFull) {
10412
+ const values = flipped.values();
10413
+ if (deepEqual(values.at(-1), values.at(-3))) {
10414
+ // Flipping is causing a container resize loop
10415
+ return;
10416
+ }
10417
+ }
10418
+ const result = updateLocation();
10419
+ if (result) flipped.push(result.flipped);
10373
10420
  });
10374
10421
  vue.watch([data.target, data.contentEl], (_ref, _ref2) => {
10375
10422
  let [newTarget, newContentEl] = _ref;
@@ -10384,13 +10431,22 @@
10384
10431
  vue.onScopeDispose(() => {
10385
10432
  observer.disconnect();
10386
10433
  });
10434
+ let targetBox = new Box({
10435
+ x: 0,
10436
+ y: 0,
10437
+ width: 0,
10438
+ height: 0
10439
+ });
10387
10440
 
10388
10441
  // eslint-disable-next-line max-statements
10389
10442
  function updateLocation() {
10390
10443
  observe = false;
10391
10444
  requestAnimationFrame(() => observe = true);
10392
10445
  if (!data.target.value || !data.contentEl.value) return;
10393
- const targetBox = getTargetBox(data.target.value);
10446
+ if (Array.isArray(data.target.value) || data.target.value.offsetParent) {
10447
+ targetBox = getTargetBox(data.target.value);
10448
+ } // Otherwise target element is hidden, use last known value
10449
+
10394
10450
  const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
10395
10451
  const scrollParents = getScrollParents(data.contentEl.value);
10396
10452
  const viewportMargin = 12;
@@ -10575,7 +10631,8 @@
10575
10631
  });
10576
10632
  return {
10577
10633
  available,
10578
- contentBox
10634
+ contentBox,
10635
+ flipped
10579
10636
  };
10580
10637
  }
10581
10638
  vue.watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());
@@ -11100,7 +11157,7 @@
11100
11157
  }, 'lazy');
11101
11158
  function useLazy(props, active) {
11102
11159
  const isBooted = vue.shallowRef(false);
11103
- const hasContent = vue.computed(() => isBooted.value || props.eager || active.value);
11160
+ const hasContent = vue.toRef(() => isBooted.value || props.eager || active.value);
11104
11161
  vue.watch(active, () => isBooted.value = true);
11105
11162
  function onAfterLeave() {
11106
11163
  if (!props.eager) isBooted.value = false;
@@ -11137,10 +11194,10 @@
11137
11194
  activeChildren: new Set()
11138
11195
  });
11139
11196
  vue.provide(StackSymbol, stack);
11140
- const _zIndex = vue.shallowRef(Number(zIndex.value));
11197
+ const _zIndex = vue.shallowRef(Number(vue.toValue(zIndex)));
11141
11198
  useToggleScope(isActive, () => {
11142
11199
  const lastZIndex = globalStack.at(-1)?.[1];
11143
- _zIndex.value = lastZIndex ? lastZIndex + 10 : Number(zIndex.value);
11200
+ _zIndex.value = lastZIndex ? lastZIndex + 10 : Number(vue.toValue(zIndex));
11144
11201
  if (createStackEntry) {
11145
11202
  globalStack.push([vm.uid, _zIndex.value]);
11146
11203
  }
@@ -11160,11 +11217,11 @@
11160
11217
  setTimeout(() => globalTop.value = _isTop);
11161
11218
  });
11162
11219
  }
11163
- const localTop = vue.computed(() => !stack.activeChildren.size);
11220
+ const localTop = vue.toRef(() => !stack.activeChildren.size);
11164
11221
  return {
11165
11222
  globalTop: vue.readonly(globalTop),
11166
11223
  localTop,
11167
- stackStyles: vue.computed(() => ({
11224
+ stackStyles: vue.toRef(() => ({
11168
11225
  zIndex: _zIndex.value
11169
11226
  }))
11170
11227
  };
@@ -11381,14 +11438,14 @@
11381
11438
  hasContent,
11382
11439
  onAfterLeave: _onAfterLeave
11383
11440
  } = useLazy(props, isActive);
11384
- const scrimColor = useBackgroundColor(vue.computed(() => {
11441
+ const scrimColor = useBackgroundColor(() => {
11385
11442
  return typeof props.scrim === 'string' ? props.scrim : null;
11386
- }));
11443
+ });
11387
11444
  const {
11388
11445
  globalTop,
11389
11446
  localTop,
11390
11447
  stackStyles
11391
- } = useStack(isActive, vue.toRef(props, 'zIndex'), props._disableGlobalStack);
11448
+ } = useStack(isActive, () => props.zIndex, props._disableGlobalStack);
11392
11449
  const {
11393
11450
  activatorEl,
11394
11451
  activatorRef,
@@ -11714,7 +11771,7 @@
11714
11771
  isRtl
11715
11772
  } = useRtl();
11716
11773
  const uid = vue.useId();
11717
- const id = vue.computed(() => props.id || `v-menu-${uid}`);
11774
+ const id = vue.toRef(() => props.id || `v-menu-${uid}`);
11718
11775
  const overlay = vue.ref();
11719
11776
  const parent = vue.inject(VMenuSymbol, null);
11720
11777
  const openChildren = vue.shallowRef(new Set());
@@ -11882,7 +11939,7 @@
11882
11939
  let {
11883
11940
  slots
11884
11941
  } = _ref;
11885
- const counter = vue.computed(() => {
11942
+ const counter = vue.toRef(() => {
11886
11943
  return props.max ? `${props.value} / ${props.max}` : String(props.value);
11887
11944
  });
11888
11945
  useRender(() => vue.createVNode(MaybeTransition, {
@@ -12009,12 +12066,12 @@
12009
12066
  const {
12010
12067
  rtlClasses
12011
12068
  } = useRtl();
12012
- const isActive = vue.computed(() => props.dirty || props.active);
12013
- const hasLabel = vue.computed(() => !!(props.label || slots.label));
12014
- const hasFloatingLabel = vue.computed(() => !props.singleLine && hasLabel.value);
12069
+ const isActive = vue.toRef(() => props.dirty || props.active);
12070
+ const hasLabel = vue.toRef(() => !!(props.label || slots.label));
12071
+ const hasFloatingLabel = vue.toRef(() => !props.singleLine && hasLabel.value);
12015
12072
  const uid = vue.useId();
12016
12073
  const id = vue.computed(() => props.id || `input-${uid}`);
12017
- const messagesId = vue.computed(() => `${id.value}-messages`);
12074
+ const messagesId = vue.toRef(() => `${id.value}-messages`);
12018
12075
  const labelRef = vue.ref();
12019
12076
  const floatingLabelRef = vue.ref();
12020
12077
  const controlRef = vue.ref();
@@ -12029,7 +12086,7 @@
12029
12086
  const {
12030
12087
  backgroundColorClasses,
12031
12088
  backgroundColorStyles
12032
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
12089
+ } = useBackgroundColor(() => props.bgColor);
12033
12090
  const {
12034
12091
  textColorClasses,
12035
12092
  textColorStyles
@@ -12756,7 +12813,7 @@
12756
12813
  paddingTop,
12757
12814
  paddingBottom,
12758
12815
  computedItems
12759
- } = useVirtual(props, vue.toRef(props, 'items'));
12816
+ } = useVirtual(props, vue.toRef(() => props.items));
12760
12817
  useToggleScope(() => props.renderless, () => {
12761
12818
  function handleListeners() {
12762
12819
  let add = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
@@ -12993,7 +13050,7 @@
12993
13050
  _menu.value = v;
12994
13051
  }
12995
13052
  });
12996
- const label = vue.computed(() => menu.value ? props.closeText : props.openText);
13053
+ const label = vue.toRef(() => menu.value ? props.closeText : props.openText);
12997
13054
  const computedMenuProps = vue.computed(() => {
12998
13055
  return {
12999
13056
  ...props.menuProps,
@@ -13178,6 +13235,7 @@
13178
13235
  "onFocusin": onFocusin,
13179
13236
  "tabindex": "-1",
13180
13237
  "aria-live": "polite",
13238
+ "aria-label": `${props.label}-list`,
13181
13239
  "color": props.itemColor ?? props.color
13182
13240
  }, listEvents, props.listProps), {
13183
13241
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
@@ -13319,6 +13377,7 @@
13319
13377
  // Composables
13320
13378
  const defaultFilter = (value, query, item) => {
13321
13379
  if (value == null || query == null) return -1;
13380
+ if (!query.length) return 0;
13322
13381
  value = value.toString().toLocaleLowerCase();
13323
13382
  query = query.toString().toLocaleLowerCase();
13324
13383
  const result = [];
@@ -13331,7 +13390,7 @@
13331
13390
  };
13332
13391
  function normaliseMatch(match, query) {
13333
13392
  if (match == null || typeof match === 'boolean' || match === -1) return;
13334
- if (typeof match === 'number') return [[match, query.length]];
13393
+ if (typeof match === 'number') return [[match, match + query.length]];
13335
13394
  if (Array.isArray(match[0])) return match;
13336
13395
  return [match];
13337
13396
  }
@@ -13494,7 +13553,6 @@
13494
13553
  const vMenuRef = vue.ref();
13495
13554
  const vVirtualScrollRef = vue.ref();
13496
13555
  const selectionIndex = vue.shallowRef(-1);
13497
- const color = vue.computed(() => vTextFieldRef.value?.color);
13498
13556
  const {
13499
13557
  items,
13500
13558
  transformIn,
@@ -13503,7 +13561,7 @@
13503
13561
  const {
13504
13562
  textColorClasses,
13505
13563
  textColorStyles
13506
- } = useTextColor(color);
13564
+ } = useTextColor(() => vTextFieldRef.value?.color);
13507
13565
  const search = useProxiedModel(props, 'search', '');
13508
13566
  const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
13509
13567
  const transformed = transformOut(v);
@@ -13952,7 +14010,7 @@
13952
14010
  const {
13953
14011
  backgroundColorClasses,
13954
14012
  backgroundColorStyles
13955
- } = useBackgroundColor(vue.toRef(props, 'color'));
14013
+ } = useBackgroundColor(() => props.color);
13956
14014
  const {
13957
14015
  roundedClasses
13958
14016
  } = useRounded(props);
@@ -13962,7 +14020,7 @@
13962
14020
  const {
13963
14021
  textColorClasses,
13964
14022
  textColorStyles
13965
- } = useTextColor(vue.toRef(props, 'textColor'));
14023
+ } = useTextColor(() => props.textColor);
13966
14024
  const {
13967
14025
  themeClasses
13968
14026
  } = useTheme();
@@ -14074,7 +14132,7 @@
14074
14132
  const {
14075
14133
  backgroundColorClasses,
14076
14134
  backgroundColorStyles
14077
- } = useBackgroundColor(props, 'bgColor');
14135
+ } = useBackgroundColor(() => props.bgColor);
14078
14136
  const {
14079
14137
  borderClasses
14080
14138
  } = useBorder(props);
@@ -14103,8 +14161,8 @@
14103
14161
  const {
14104
14162
  themeClasses
14105
14163
  } = provideTheme(props);
14106
- const color = vue.toRef(props, 'color');
14107
- const density = vue.toRef(props, 'density');
14164
+ const color = vue.toRef(() => props.color);
14165
+ const density = vue.toRef(() => props.density);
14108
14166
  provideDefaults({
14109
14167
  VBannerActions: {
14110
14168
  color,
@@ -14213,7 +14271,7 @@
14213
14271
  const {
14214
14272
  backgroundColorClasses,
14215
14273
  backgroundColorStyles
14216
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
14274
+ } = useBackgroundColor(() => props.bgColor);
14217
14275
  const {
14218
14276
  densityClasses
14219
14277
  } = useDensity(props);
@@ -14233,19 +14291,19 @@
14233
14291
  } = useLayoutItem({
14234
14292
  id: props.name,
14235
14293
  order: vue.computed(() => parseInt(props.order, 10)),
14236
- position: vue.computed(() => 'bottom'),
14237
- layoutSize: vue.computed(() => isActive.value ? height.value : 0),
14294
+ position: vue.toRef(() => 'bottom'),
14295
+ layoutSize: vue.toRef(() => isActive.value ? height.value : 0),
14238
14296
  elementSize: height,
14239
14297
  active: isActive,
14240
- absolute: vue.toRef(props, 'absolute')
14298
+ absolute: vue.toRef(() => props.absolute)
14241
14299
  });
14242
14300
  useGroup(props, VBtnToggleSymbol);
14243
14301
  provideDefaults({
14244
14302
  VBtn: {
14245
- baseColor: vue.toRef(props, 'baseColor'),
14246
- color: vue.toRef(props, 'color'),
14247
- density: vue.toRef(props, 'density'),
14248
- stacked: vue.computed(() => props.mode !== 'horizontal'),
14303
+ baseColor: vue.toRef(() => props.baseColor),
14304
+ color: vue.toRef(() => props.color),
14305
+ density: vue.toRef(() => props.density),
14306
+ stacked: vue.toRef(() => props.mode !== 'horizontal'),
14249
14307
  variant: 'text'
14250
14308
  }
14251
14309
  }, {
@@ -14481,11 +14539,10 @@
14481
14539
  } = _ref;
14482
14540
  const link = useLink(props, attrs);
14483
14541
  const isActive = vue.computed(() => props.active || link.isActive?.value);
14484
- const color = vue.computed(() => isActive.value ? props.activeColor : props.color);
14485
14542
  const {
14486
14543
  textColorClasses,
14487
14544
  textColorStyles
14488
- } = useTextColor(color);
14545
+ } = useTextColor(() => isActive.value ? props.activeColor : props.color);
14489
14546
  useRender(() => {
14490
14547
  return vue.createVNode(props.tag, {
14491
14548
  "class": ['v-breadcrumbs-item', {
@@ -14540,7 +14597,7 @@
14540
14597
  const {
14541
14598
  backgroundColorClasses,
14542
14599
  backgroundColorStyles
14543
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
14600
+ } = useBackgroundColor(() => props.bgColor);
14544
14601
  const {
14545
14602
  densityClasses
14546
14603
  } = useDensity(props);
@@ -14549,13 +14606,13 @@
14549
14606
  } = useRounded(props);
14550
14607
  provideDefaults({
14551
14608
  VBreadcrumbsDivider: {
14552
- divider: vue.toRef(props, 'divider')
14609
+ divider: vue.toRef(() => props.divider)
14553
14610
  },
14554
14611
  VBreadcrumbsItem: {
14555
- activeClass: vue.toRef(props, 'activeClass'),
14556
- activeColor: vue.toRef(props, 'activeColor'),
14557
- color: vue.toRef(props, 'color'),
14558
- disabled: vue.toRef(props, 'disabled')
14612
+ activeClass: vue.toRef(() => props.activeClass),
14613
+ activeColor: vue.toRef(() => props.activeColor),
14614
+ color: vue.toRef(() => props.color),
14615
+ disabled: vue.toRef(() => props.disabled)
14559
14616
  }
14560
14617
  });
14561
14618
  const items = vue.computed(() => props.items.map(item => {
@@ -14878,10 +14935,10 @@
14878
14935
  roundedClasses
14879
14936
  } = useRounded(props);
14880
14937
  const link = useLink(props, attrs);
14881
- const isLink = vue.computed(() => props.link !== false && link.isLink.value);
14882
- const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value));
14883
14938
  useRender(() => {
14884
- const Tag = isLink.value ? 'a' : props.tag;
14939
+ const isLink = props.link !== false && link.isLink.value;
14940
+ const isClickable = !props.disabled && props.link !== false && (props.link || link.isClickable.value);
14941
+ const Tag = isLink ? 'a' : props.tag;
14885
14942
  const hasTitle = !!(slots.title || props.title != null);
14886
14943
  const hasSubtitle = !!(slots.subtitle || props.subtitle != null);
14887
14944
  const hasHeader = hasTitle || hasSubtitle;
@@ -14895,10 +14952,10 @@
14895
14952
  'v-card--disabled': props.disabled,
14896
14953
  'v-card--flat': props.flat,
14897
14954
  'v-card--hover': props.hover && !(props.disabled || props.flat),
14898
- 'v-card--link': isClickable.value
14955
+ 'v-card--link': isClickable
14899
14956
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
14900
14957
  "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
14901
- "onClick": isClickable.value && link.navigate,
14958
+ "onClick": isClickable && link.navigate,
14902
14959
  "tabindex": props.disabled ? -1 : undefined
14903
14960
  }, link.linkProps), {
14904
14961
  default: () => [hasImage && vue.createVNode("div", {
@@ -14943,8 +15000,8 @@
14943
15000
  default: () => [slots.text?.() ?? props.text]
14944
15001
  }), slots.default?.(), slots.actions && vue.createVNode(VCardActions, null, {
14945
15002
  default: slots.actions
14946
- }), genOverlays(isClickable.value, 'v-card')]
14947
- }), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
15003
+ }), genOverlays(isClickable, 'v-card')]
15004
+ }), [[vue.resolveDirective("ripple"), isClickable && props.ripple]]);
14948
15005
  });
14949
15006
  return {};
14950
15007
  }
@@ -15157,8 +15214,8 @@
15157
15214
  transitionHeight,
15158
15215
  rootRef
15159
15216
  });
15160
- const canMoveBack = vue.computed(() => props.continuous || activeIndex.value !== 0);
15161
- const canMoveForward = vue.computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1);
15217
+ const canMoveBack = vue.toRef(() => props.continuous || activeIndex.value !== 0);
15218
+ const canMoveForward = vue.toRef(() => props.continuous || activeIndex.value !== group.items.value.length - 1);
15162
15219
  function prev() {
15163
15220
  canMoveBack.value && group.prev();
15164
15221
  }
@@ -16060,7 +16117,7 @@
16060
16117
  const {
16061
16118
  isRtl
16062
16119
  } = useRtl();
16063
- const isReversed = vue.toRef(props, 'reverse');
16120
+ const isReversed = vue.toRef(() => props.reverse);
16064
16121
  const vertical = vue.computed(() => props.direction === 'vertical');
16065
16122
  const indexFromEnd = vue.computed(() => vertical.value !== isReversed.value);
16066
16123
  const {
@@ -16074,7 +16131,7 @@
16074
16131
  const tickSize = vue.computed(() => parseInt(props.tickSize, 10));
16075
16132
  const trackSize = vue.computed(() => parseInt(props.trackSize, 10));
16076
16133
  const numTicks = vue.computed(() => (max.value - min.value) / step.value);
16077
- const disabled = vue.toRef(props, 'disabled');
16134
+ const disabled = vue.toRef(() => props.disabled);
16078
16135
  const thumbColor = vue.computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);
16079
16136
  const trackColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);
16080
16137
  const trackFillColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);
@@ -16176,7 +16233,7 @@
16176
16233
  const percentage = (val - min.value) / (max.value - min.value) * 100;
16177
16234
  return clamp(isNaN(percentage) ? 0 : percentage, 0, 100);
16178
16235
  };
16179
- const showTicks = vue.toRef(props, 'showTicks');
16236
+ const showTicks = vue.toRef(() => props.showTicks);
16180
16237
  const parsedTicks = vue.computed(() => {
16181
16238
  if (!showTicks.value) return [];
16182
16239
  if (!props.ticks) {
@@ -16207,11 +16264,11 @@
16207
16264
  }));
16208
16265
  const data = {
16209
16266
  activeThumbRef,
16210
- color: vue.toRef(props, 'color'),
16267
+ color: vue.toRef(() => props.color),
16211
16268
  decimals,
16212
16269
  disabled,
16213
- direction: vue.toRef(props, 'direction'),
16214
- elevation: vue.toRef(props, 'elevation'),
16270
+ direction: vue.toRef(() => props.direction),
16271
+ elevation: vue.toRef(() => props.elevation),
16215
16272
  hasLabels,
16216
16273
  isReversed,
16217
16274
  indexFromEnd,
@@ -16224,16 +16281,16 @@
16224
16281
  parsedTicks,
16225
16282
  parseMouseMove,
16226
16283
  position,
16227
- readonly: vue.toRef(props, 'readonly'),
16228
- rounded: vue.toRef(props, 'rounded'),
16284
+ readonly: vue.toRef(() => props.readonly),
16285
+ rounded: vue.toRef(() => props.rounded),
16229
16286
  roundValue,
16230
16287
  showTicks,
16231
16288
  startOffset,
16232
16289
  step,
16233
16290
  thumbSize,
16234
16291
  thumbColor,
16235
- thumbLabel: vue.toRef(props, 'thumbLabel'),
16236
- ticks: vue.toRef(props, 'ticks'),
16292
+ thumbLabel: vue.toRef(() => props.thumbLabel),
16293
+ ticks: vue.toRef(() => props.ticks),
16237
16294
  tickSize,
16238
16295
  trackColor,
16239
16296
  trackContainerRef,
@@ -17152,7 +17209,7 @@
17152
17209
  const {
17153
17210
  backgroundColorClasses,
17154
17211
  backgroundColorStyles
17155
- } = useBackgroundColor(vue.toRef(props, 'color'));
17212
+ } = useBackgroundColor(() => props.color);
17156
17213
  const {
17157
17214
  borderClasses
17158
17215
  } = useBorder(props);
@@ -17199,7 +17256,7 @@
17199
17256
  const {
17200
17257
  backgroundColorClasses,
17201
17258
  backgroundColorStyles
17202
- } = useBackgroundColor(vue.toRef(props, 'color'));
17259
+ } = useBackgroundColor(() => props.color);
17203
17260
  useRender(() => {
17204
17261
  const sheetProps = VSheet.filterProps(props);
17205
17262
  const hasTitle = !!(props.title || slots.title);
@@ -17246,165 +17303,81 @@
17246
17303
 
17247
17304
  // Types
17248
17305
 
17249
- const firstDay = {
17250
- '001': 1,
17251
- AD: 1,
17252
- AE: 6,
17253
- AF: 6,
17254
- AG: 0,
17255
- AI: 1,
17256
- AL: 1,
17257
- AM: 1,
17258
- AN: 1,
17259
- AR: 1,
17260
- AS: 0,
17261
- AT: 1,
17262
- AU: 1,
17263
- AX: 1,
17264
- AZ: 1,
17265
- BA: 1,
17266
- BD: 0,
17267
- BE: 1,
17268
- BG: 1,
17269
- BH: 6,
17270
- BM: 1,
17271
- BN: 1,
17272
- BR: 0,
17273
- BS: 0,
17274
- BT: 0,
17275
- BW: 0,
17276
- BY: 1,
17277
- BZ: 0,
17278
- CA: 0,
17279
- CH: 1,
17280
- CL: 1,
17281
- CM: 1,
17282
- CN: 1,
17283
- CO: 0,
17284
- CR: 1,
17285
- CY: 1,
17286
- CZ: 1,
17287
- DE: 1,
17288
- DJ: 6,
17289
- DK: 1,
17290
- DM: 0,
17291
- DO: 0,
17292
- DZ: 6,
17293
- EC: 1,
17294
- EE: 1,
17295
- EG: 6,
17296
- ES: 1,
17297
- ET: 0,
17298
- FI: 1,
17299
- FJ: 1,
17300
- FO: 1,
17301
- FR: 1,
17302
- GB: 1,
17303
- 'GB-alt-variant': 0,
17304
- GE: 1,
17305
- GF: 1,
17306
- GP: 1,
17307
- GR: 1,
17308
- GT: 0,
17309
- GU: 0,
17310
- HK: 0,
17311
- HN: 0,
17312
- HR: 1,
17313
- HU: 1,
17314
- ID: 0,
17315
- IE: 1,
17316
- IL: 0,
17317
- IN: 0,
17318
- IQ: 6,
17319
- IR: 6,
17320
- IS: 1,
17321
- IT: 1,
17322
- JM: 0,
17323
- JO: 6,
17324
- JP: 0,
17325
- KE: 0,
17326
- KG: 1,
17327
- KH: 0,
17328
- KR: 0,
17329
- KW: 6,
17330
- KZ: 1,
17331
- LA: 0,
17332
- LB: 1,
17333
- LI: 1,
17334
- LK: 1,
17335
- LT: 1,
17336
- LU: 1,
17337
- LV: 1,
17338
- LY: 6,
17339
- MC: 1,
17340
- MD: 1,
17341
- ME: 1,
17342
- MH: 0,
17343
- MK: 1,
17344
- MM: 0,
17345
- MN: 1,
17346
- MO: 0,
17347
- MQ: 1,
17348
- MT: 0,
17349
- MV: 5,
17350
- MX: 0,
17351
- MY: 1,
17352
- MZ: 0,
17353
- NI: 0,
17354
- NL: 1,
17355
- NO: 1,
17356
- NP: 0,
17357
- NZ: 1,
17358
- OM: 6,
17359
- PA: 0,
17360
- PE: 0,
17361
- PH: 0,
17362
- PK: 0,
17363
- PL: 1,
17364
- PR: 0,
17365
- PT: 0,
17366
- PY: 0,
17367
- QA: 6,
17368
- RE: 1,
17369
- RO: 1,
17370
- RS: 1,
17371
- RU: 1,
17372
- SA: 0,
17373
- SD: 6,
17374
- SE: 1,
17375
- SG: 0,
17376
- SI: 1,
17377
- SK: 1,
17378
- SM: 1,
17379
- SV: 0,
17380
- SY: 6,
17381
- TH: 0,
17382
- TJ: 1,
17383
- TM: 1,
17384
- TR: 1,
17385
- TT: 0,
17386
- TW: 0,
17387
- UA: 1,
17388
- UM: 0,
17389
- US: 0,
17390
- UY: 1,
17391
- UZ: 1,
17392
- VA: 1,
17393
- VE: 0,
17394
- VI: 0,
17395
- VN: 1,
17396
- WS: 0,
17397
- XK: 1,
17398
- YE: 0,
17399
- ZA: 0,
17400
- ZW: 0
17401
- };
17306
+ function weekInfo(locale) {
17307
+ // https://simplelocalize.io/data/locales/
17308
+ // then `new Intl.Locale(...).getWeekInfo()`
17309
+ const code = locale.slice(-2).toUpperCase();
17310
+ switch (true) {
17311
+ case locale === 'GB-alt-variant':
17312
+ {
17313
+ return {
17314
+ firstDay: 0,
17315
+ firstWeekSize: 4
17316
+ };
17317
+ }
17318
+ case locale === '001':
17319
+ {
17320
+ return {
17321
+ firstDay: 1,
17322
+ firstWeekSize: 1
17323
+ };
17324
+ }
17325
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17326
+ 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
17327
+ VE VI WS YE ZA ZW`.includes(code):
17328
+ {
17329
+ return {
17330
+ firstDay: 0,
17331
+ firstWeekSize: 1
17332
+ };
17333
+ }
17334
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17335
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17336
+ {
17337
+ return {
17338
+ firstDay: 1,
17339
+ firstWeekSize: 1
17340
+ };
17341
+ }
17342
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17343
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17344
+ {
17345
+ return {
17346
+ firstDay: 1,
17347
+ firstWeekSize: 4
17348
+ };
17349
+ }
17350
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17351
+ {
17352
+ return {
17353
+ firstDay: 6,
17354
+ firstWeekSize: 1
17355
+ };
17356
+ }
17357
+ case code === 'MV':
17358
+ {
17359
+ return {
17360
+ firstDay: 5,
17361
+ firstWeekSize: 1
17362
+ };
17363
+ }
17364
+ case code === 'PT':
17365
+ {
17366
+ return {
17367
+ firstDay: 0,
17368
+ firstWeekSize: 4
17369
+ };
17370
+ }
17371
+ default:
17372
+ return null;
17373
+ }
17374
+ }
17402
17375
  function getWeekArray(date, locale, firstDayOfWeek) {
17403
17376
  const weeks = [];
17404
17377
  let currentWeek = [];
17405
17378
  const firstDayOfMonth = startOfMonth(date);
17406
17379
  const lastDayOfMonth = endOfMonth(date);
17407
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17380
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17408
17381
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17409
17382
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17410
17383
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17435,7 +17408,7 @@
17435
17408
  return weeks;
17436
17409
  }
17437
17410
  function startOfWeek(date, locale, firstDayOfWeek) {
17438
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17411
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17439
17412
  const d = new Date(date);
17440
17413
  while (d.getDay() !== day) {
17441
17414
  d.setDate(d.getDate() - 1);
@@ -17444,7 +17417,7 @@
17444
17417
  }
17445
17418
  function endOfWeek(date, locale) {
17446
17419
  const d = new Date(date);
17447
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17420
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17448
17421
  while (d.getDay() !== lastDay) {
17449
17422
  d.setDate(d.getDate() + 1);
17450
17423
  }
@@ -17479,7 +17452,7 @@
17479
17452
  }
17480
17453
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17481
17454
  function getWeekdays(locale, firstDayOfWeek) {
17482
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17455
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17483
17456
  return createRange(7).map(i => {
17484
17457
  const weekday = new Date(sundayJanuarySecond2000);
17485
17458
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17727,6 +17700,24 @@
17727
17700
  function getMonth(date) {
17728
17701
  return date.getMonth();
17729
17702
  }
17703
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17704
+ const weekInfoFromLocale = weekInfo(locale);
17705
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17706
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17707
+ function firstWeekSize(year) {
17708
+ const yearStart = new Date(year, 0, 1);
17709
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17710
+ }
17711
+ let year = getYear(date);
17712
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17713
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17714
+ year++;
17715
+ }
17716
+ const yearStart = new Date(year, 0, 1);
17717
+ const size = firstWeekSize(year);
17718
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17719
+ return 1 + getDiff(date, d1w1, 'weeks');
17720
+ }
17730
17721
  function getDate(date) {
17731
17722
  return date.getDate();
17732
17723
  }
@@ -17866,10 +17857,12 @@
17866
17857
  return addMonths(date, amount);
17867
17858
  }
17868
17859
  getWeekArray(date, firstDayOfWeek) {
17869
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17860
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17861
+ return getWeekArray(date, this.locale, firstDay);
17870
17862
  }
17871
17863
  startOfWeek(date, firstDayOfWeek) {
17872
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17864
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17865
+ return startOfWeek(date, this.locale, firstDay);
17873
17866
  }
17874
17867
  endOfWeek(date) {
17875
17868
  return endOfWeek(date, this.locale);
@@ -17929,7 +17922,8 @@
17929
17922
  return getDiff(date, comparing, unit);
17930
17923
  }
17931
17924
  getWeekdays(firstDayOfWeek) {
17932
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17925
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17926
+ return getWeekdays(this.locale, firstDay);
17933
17927
  }
17934
17928
  getYear(date) {
17935
17929
  return getYear(date);
@@ -17937,6 +17931,10 @@
17937
17931
  getMonth(date) {
17938
17932
  return getMonth(date);
17939
17933
  }
17934
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17935
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17936
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17937
+ }
17940
17938
  getDate(date) {
17941
17939
  return getDate(date);
17942
17940
  }
@@ -18040,26 +18038,6 @@
18040
18038
  return createInstance(options, locale);
18041
18039
  }
18042
18040
 
18043
- // https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
18044
- function getWeek(adapter, value) {
18045
- const date = adapter.toJsDate(value);
18046
- let year = date.getFullYear();
18047
- let d1w1 = new Date(year, 0, 1);
18048
- if (date < d1w1) {
18049
- year = year - 1;
18050
- d1w1 = new Date(year, 0, 1);
18051
- } else {
18052
- const tv = new Date(year + 1, 0, 1);
18053
- if (date >= tv) {
18054
- year = year + 1;
18055
- d1w1 = tv;
18056
- }
18057
- }
18058
- const diffTime = Math.abs(date.getTime() - d1w1.getTime());
18059
- const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
18060
- return Math.floor(diffDays / 7) + 1;
18061
- }
18062
-
18063
18041
  // Types
18064
18042
 
18065
18043
  const makeVColorPickerProps = propsFactory({
@@ -18263,7 +18241,6 @@
18263
18241
  const vVirtualScrollRef = vue.ref();
18264
18242
  const selectionIndex = vue.shallowRef(-1);
18265
18243
  let cleared = false;
18266
- const color = vue.computed(() => vTextFieldRef.value?.color);
18267
18244
  const {
18268
18245
  items,
18269
18246
  transformIn,
@@ -18272,7 +18249,7 @@
18272
18249
  const {
18273
18250
  textColorClasses,
18274
18251
  textColorStyles
18275
- } = useTextColor(color);
18252
+ } = useTextColor(() => vTextFieldRef.value?.color);
18276
18253
  const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
18277
18254
  const transformed = transformOut(v);
18278
18255
  return props.multiple ? transformed : transformed[0] ?? null;
@@ -18327,7 +18304,7 @@
18327
18304
  _menu.value = v;
18328
18305
  }
18329
18306
  });
18330
- const label = vue.computed(() => menu.value ? props.closeText : props.openText);
18307
+ const label = vue.toRef(() => menu.value ? props.closeText : props.openText);
18331
18308
  vue.watch(_search, value => {
18332
18309
  if (cleared) {
18333
18310
  // wait for clear to finish, VTextField sets _search to null
@@ -18833,7 +18810,7 @@
18833
18810
  }, 'DataTable-expand');
18834
18811
  const VDataTableExpandedKey = Symbol.for('vuetify:datatable:expanded');
18835
18812
  function provideExpanded(props) {
18836
- const expandOnClick = vue.toRef(props, 'expandOnClick');
18813
+ const expandOnClick = vue.toRef(() => props.expandOnClick);
18837
18814
  const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {
18838
18815
  return new Set(v);
18839
18816
  }, v => {
@@ -19020,23 +18997,23 @@
19020
18997
  search
19021
18998
  } = _ref;
19022
18999
  const vm = getCurrentInstance('VDataTable');
19023
- const options = vue.computed(() => ({
19000
+ const options = () => ({
19024
19001
  page: page.value,
19025
19002
  itemsPerPage: itemsPerPage.value,
19026
19003
  sortBy: sortBy.value,
19027
19004
  groupBy: groupBy.value,
19028
19005
  search: search.value
19029
- }));
19006
+ });
19030
19007
  let oldOptions = null;
19031
- vue.watch(options, () => {
19032
- if (deepEqual(oldOptions, options.value)) return;
19008
+ vue.watch(options, value => {
19009
+ if (deepEqual(oldOptions, value)) return;
19033
19010
 
19034
19011
  // Reset page when searching
19035
- if (oldOptions && oldOptions.search !== options.value.search) {
19012
+ if (oldOptions && oldOptions.search !== value.search) {
19036
19013
  page.value = 1;
19037
19014
  }
19038
- vm.emit('update:options', options.value);
19039
- oldOptions = options.value;
19015
+ vm.emit('update:options', value);
19016
+ oldOptions = value;
19040
19017
  }, {
19041
19018
  deep: true,
19042
19019
  immediate: true
@@ -19317,7 +19294,7 @@
19317
19294
  });
19318
19295
  return !!items.length && isSelected(items);
19319
19296
  });
19320
- const showSelectAll = vue.computed(() => selectStrategy.value.showSelectAll);
19297
+ const showSelectAll = vue.toRef(() => selectStrategy.value.showSelectAll);
19321
19298
  const data = {
19322
19299
  toggleSelect,
19323
19300
  select,
@@ -19355,8 +19332,8 @@
19355
19332
  const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
19356
19333
  function createSort(props) {
19357
19334
  const sortBy = useProxiedModel(props, 'sortBy');
19358
- const mustSort = vue.toRef(props, 'mustSort');
19359
- const multiSort = vue.toRef(props, 'multiSort');
19335
+ const mustSort = vue.toRef(() => props.mustSort);
19336
+ const multiSort = vue.toRef(() => props.multiSort);
19360
19337
  return {
19361
19338
  sortBy,
19362
19339
  mustSort,
@@ -19574,7 +19551,7 @@
19574
19551
  slots
19575
19552
  } = _ref;
19576
19553
  const groupBy = useProxiedModel(props, 'groupBy');
19577
- const search = vue.toRef(props, 'search');
19554
+ const search = vue.toRef(() => props.search);
19578
19555
  const {
19579
19556
  items
19580
19557
  } = useDataIteratorItems(props);
@@ -19618,7 +19595,7 @@
19618
19595
  const {
19619
19596
  flatItems
19620
19597
  } = useGroupedItems(sortedItems, groupBy, opened);
19621
- const itemsLength = vue.computed(() => flatItems.value.length);
19598
+ const itemsLength = vue.toRef(() => flatItems.value.length);
19622
19599
  const {
19623
19600
  startIndex,
19624
19601
  stopIndex,
@@ -19898,13 +19875,13 @@
19898
19875
  } = useRefs();
19899
19876
  provideDefaults({
19900
19877
  VPaginationBtn: {
19901
- color: vue.toRef(props, 'color'),
19902
- border: vue.toRef(props, 'border'),
19903
- density: vue.toRef(props, 'density'),
19904
- size: vue.toRef(props, 'size'),
19905
- variant: vue.toRef(props, 'variant'),
19906
- rounded: vue.toRef(props, 'rounded'),
19907
- elevation: vue.toRef(props, 'elevation')
19878
+ color: vue.toRef(() => props.color),
19879
+ border: vue.toRef(() => props.border),
19880
+ density: vue.toRef(() => props.density),
19881
+ size: vue.toRef(() => props.size),
19882
+ variant: vue.toRef(() => props.variant),
19883
+ rounded: vue.toRef(() => props.rounded),
19884
+ elevation: vue.toRef(() => props.elevation)
19908
19885
  }
19909
19886
  });
19910
19887
  const items = vue.computed(() => {
@@ -20545,7 +20522,7 @@
20545
20522
  const {
20546
20523
  backgroundColorClasses,
20547
20524
  backgroundColorStyles
20548
- } = useBackgroundColor(props, 'color');
20525
+ } = useBackgroundColor(() => props.color);
20549
20526
  const {
20550
20527
  displayClasses,
20551
20528
  mobile
@@ -21203,13 +21180,13 @@
21203
21180
  filterFunctions
21204
21181
  } = createHeaders(props, {
21205
21182
  groupBy,
21206
- showSelect: vue.toRef(props, 'showSelect'),
21207
- showExpand: vue.toRef(props, 'showExpand')
21183
+ showSelect: vue.toRef(() => props.showSelect),
21184
+ showExpand: vue.toRef(() => props.showExpand)
21208
21185
  });
21209
21186
  const {
21210
21187
  items
21211
21188
  } = useDataTableItems(props, columns);
21212
- const search = vue.toRef(props, 'search');
21189
+ const search = vue.toRef(() => props.search);
21213
21190
  const {
21214
21191
  filteredItems
21215
21192
  } = useFilter(props, items, search, {
@@ -21292,10 +21269,10 @@
21292
21269
  });
21293
21270
  provideDefaults({
21294
21271
  VDataTableRows: {
21295
- hideNoData: vue.toRef(props, 'hideNoData'),
21296
- noDataText: vue.toRef(props, 'noDataText'),
21297
- loading: vue.toRef(props, 'loading'),
21298
- loadingText: vue.toRef(props, 'loadingText')
21272
+ hideNoData: vue.toRef(() => props.hideNoData),
21273
+ noDataText: vue.toRef(() => props.noDataText),
21274
+ loading: vue.toRef(() => props.loading),
21275
+ loadingText: vue.toRef(() => props.loadingText)
21299
21276
  }
21300
21277
  });
21301
21278
  const slotProps = vue.computed(() => ({
@@ -21392,13 +21369,13 @@
21392
21369
  sortRawFunctions
21393
21370
  } = createHeaders(props, {
21394
21371
  groupBy,
21395
- showSelect: vue.toRef(props, 'showSelect'),
21396
- showExpand: vue.toRef(props, 'showExpand')
21372
+ showSelect: vue.toRef(() => props.showSelect),
21373
+ showExpand: vue.toRef(() => props.showExpand)
21397
21374
  });
21398
21375
  const {
21399
21376
  items
21400
21377
  } = useDataTableItems(props, columns);
21401
- const search = vue.toRef(props, 'search');
21378
+ const search = vue.toRef(() => props.search);
21402
21379
  const {
21403
21380
  filteredItems
21404
21381
  } = useFilter(props, items, search, {
@@ -21474,10 +21451,10 @@
21474
21451
  });
21475
21452
  provideDefaults({
21476
21453
  VDataTableRows: {
21477
- hideNoData: vue.toRef(props, 'hideNoData'),
21478
- noDataText: vue.toRef(props, 'noDataText'),
21479
- loading: vue.toRef(props, 'loading'),
21480
- loadingText: vue.toRef(props, 'loadingText')
21454
+ hideNoData: vue.toRef(() => props.hideNoData),
21455
+ noDataText: vue.toRef(() => props.noDataText),
21456
+ loading: vue.toRef(() => props.loading),
21457
+ loadingText: vue.toRef(() => props.loadingText)
21481
21458
  }
21482
21459
  });
21483
21460
  const slotProps = vue.computed(() => ({
@@ -21630,8 +21607,8 @@
21630
21607
  headers
21631
21608
  } = createHeaders(props, {
21632
21609
  groupBy,
21633
- showSelect: vue.toRef(props, 'showSelect'),
21634
- showExpand: vue.toRef(props, 'showExpand')
21610
+ showSelect: vue.toRef(() => props.showSelect),
21611
+ showExpand: vue.toRef(() => props.showExpand)
21635
21612
  });
21636
21613
  const {
21637
21614
  items
@@ -21686,7 +21663,7 @@
21686
21663
  itemsPerPage,
21687
21664
  sortBy,
21688
21665
  groupBy,
21689
- search: vue.toRef(props, 'search')
21666
+ search: vue.toRef(() => props.search)
21690
21667
  });
21691
21668
  vue.provide('v-data-table', {
21692
21669
  toggleSort,
@@ -21694,10 +21671,10 @@
21694
21671
  });
21695
21672
  provideDefaults({
21696
21673
  VDataTableRows: {
21697
- hideNoData: vue.toRef(props, 'hideNoData'),
21698
- noDataText: vue.toRef(props, 'noDataText'),
21699
- loading: vue.toRef(props, 'loading'),
21700
- loadingText: vue.toRef(props, 'loadingText')
21674
+ hideNoData: vue.toRef(() => props.hideNoData),
21675
+ noDataText: vue.toRef(() => props.noDataText),
21676
+ loading: vue.toRef(() => props.loading),
21677
+ loadingText: vue.toRef(() => props.loadingText)
21701
21678
  }
21702
21679
  });
21703
21680
  const slotProps = vue.computed(() => ({
@@ -22167,7 +22144,7 @@
22167
22144
  const {
22168
22145
  backgroundColorClasses,
22169
22146
  backgroundColorStyles
22170
- } = useBackgroundColor(props, 'color');
22147
+ } = useBackgroundColor(() => props.color);
22171
22148
  function onClick() {
22172
22149
  emit('click');
22173
22150
  }
@@ -22248,7 +22225,7 @@
22248
22225
  },
22249
22226
  firstDayOfWeek: {
22250
22227
  type: [Number, String],
22251
- default: 0
22228
+ default: undefined
22252
22229
  }
22253
22230
  }, 'calendar');
22254
22231
  function useCalendar(props) {
@@ -22271,14 +22248,12 @@
22271
22248
  return adapter.setMonth(date, value);
22272
22249
  }, v => adapter.getMonth(v));
22273
22250
  const weekDays = vue.computed(() => {
22274
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22275
-
22251
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22276
22252
  // Always generate all days, regardless of props.weekdays
22277
22253
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22278
22254
  });
22279
22255
  const weeksInMonth = vue.computed(() => {
22280
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22281
- const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
22256
+ const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22282
22257
  const days = weeks.flat();
22283
22258
 
22284
22259
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22308,21 +22283,21 @@
22308
22283
  const isSame = adapter.isSameDay(date, month.value);
22309
22284
  return {
22310
22285
  date,
22311
- isoDate,
22312
22286
  formatted: adapter.format(date, 'keyboardDate'),
22313
- year: adapter.getYear(date),
22314
- month: adapter.getMonth(date),
22315
- isDisabled: isDisabled(date),
22316
- isWeekStart: index % 7 === 0,
22317
- isWeekEnd: index % 7 === 6,
22318
- isToday: adapter.isSameDay(date, today),
22319
22287
  isAdjacent,
22320
- isHidden: isAdjacent && !props.showAdjacentMonths,
22321
- isStart,
22322
- isSelected: model.value.some(value => adapter.isSameDay(date, value)),
22288
+ isDisabled: isDisabled(date),
22323
22289
  isEnd,
22290
+ isHidden: isAdjacent && !props.showAdjacentMonths,
22324
22291
  isSame,
22325
- localized: adapter.format(date, 'dayOfMonth')
22292
+ isSelected: model.value.some(value => adapter.isSameDay(date, value)),
22293
+ isStart,
22294
+ isToday: adapter.isSameDay(date, today),
22295
+ isWeekEnd: index % 7 === 6,
22296
+ isWeekStart: index % 7 === 0,
22297
+ isoDate,
22298
+ localized: adapter.format(date, 'dayOfMonth'),
22299
+ month: adapter.getMonth(date),
22300
+ year: adapter.getYear(date)
22326
22301
  };
22327
22302
  });
22328
22303
  }
@@ -22342,7 +22317,7 @@
22342
22317
  });
22343
22318
  const weekNumbers = vue.computed(() => {
22344
22319
  return weeksInMonth.value.map(week => {
22345
- return week.length ? getWeek(adapter, week[0]) : null;
22320
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22346
22321
  });
22347
22322
  });
22348
22323
  function isDisabled(value) {
@@ -22410,7 +22385,7 @@
22410
22385
  const rangeStart = vue.shallowRef();
22411
22386
  const rangeStop = vue.shallowRef();
22412
22387
  const isReverse = vue.shallowRef(false);
22413
- const transition = vue.computed(() => {
22388
+ const transition = vue.toRef(() => {
22414
22389
  return !isReverse.value ? props.transition : props.reverseTransition;
22415
22390
  });
22416
22391
  if (props.multiple === 'range' && model.value.length > 0) {
@@ -22790,7 +22765,7 @@
22790
22765
  }
22791
22766
  return value && adapter.isValid(value) ? value : today;
22792
22767
  });
22793
- const headerColor = vue.computed(() => props.headerColor ?? props.color);
22768
+ const headerColor = vue.toRef(() => props.headerColor ?? props.color);
22794
22769
  const month = vue.ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))));
22795
22770
  const year = vue.ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));
22796
22771
  const isReversing = vue.shallowRef(false);
@@ -22807,8 +22782,8 @@
22807
22782
  date = adapter.setYear(date, year.value);
22808
22783
  return adapter.format(date, 'monthAndYear');
22809
22784
  });
22810
- // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
22811
- const headerTransition = vue.computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
22785
+ // const headerIcon = toRef(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
22786
+ const headerTransition = vue.toRef(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
22812
22787
  const disabled = vue.computed(() => {
22813
22788
  if (props.disabled) return true;
22814
22789
  const targets = [];
@@ -23020,7 +22995,7 @@
23020
22995
  const {
23021
22996
  backgroundColorClasses,
23022
22997
  backgroundColorStyles
23023
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
22998
+ } = useBackgroundColor(() => props.bgColor);
23024
22999
  const {
23025
23000
  dimensionStyles
23026
23001
  } = useDimension(props);
@@ -23183,7 +23158,7 @@
23183
23158
  const {
23184
23159
  backgroundColorClasses,
23185
23160
  backgroundColorStyles
23186
- } = useBackgroundColor(props, 'color');
23161
+ } = useBackgroundColor(() => props.color);
23187
23162
  const {
23188
23163
  dimensionStyles
23189
23164
  } = useDimension(props);
@@ -23194,7 +23169,7 @@
23194
23169
  expandIcon: props.expandIcon,
23195
23170
  readonly: props.readonly
23196
23171
  }));
23197
- const icon = vue.computed(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);
23172
+ const icon = vue.toRef(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);
23198
23173
  useRender(() => vue.withDirectives(vue.createVNode("button", {
23199
23174
  "class": ['v-expansion-panel-title', {
23200
23175
  'v-expansion-panel-title--active': expansionPanel.isSelected.value,
@@ -23249,14 +23224,14 @@
23249
23224
  const {
23250
23225
  backgroundColorClasses,
23251
23226
  backgroundColorStyles
23252
- } = useBackgroundColor(props, 'bgColor');
23227
+ } = useBackgroundColor(() => props.bgColor);
23253
23228
  const {
23254
23229
  elevationClasses
23255
23230
  } = useElevation(props);
23256
23231
  const {
23257
23232
  roundedClasses
23258
23233
  } = useRounded(props);
23259
- const isDisabled = vue.computed(() => groupItem?.disabled.value || props.disabled);
23234
+ const isDisabled = vue.toRef(() => groupItem?.disabled.value || props.disabled);
23260
23235
  const selectedIndices = vue.computed(() => groupItem.group.items.value.reduce((arr, item, index) => {
23261
23236
  if (groupItem.group.selected.value.includes(item.id)) arr.push(index);
23262
23237
  return arr;
@@ -23347,21 +23322,21 @@
23347
23322
  const {
23348
23323
  themeClasses
23349
23324
  } = provideTheme(props);
23350
- const variantClass = vue.computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`);
23325
+ const variantClass = vue.toRef(() => props.variant && `v-expansion-panels--variant-${props.variant}`);
23351
23326
  provideDefaults({
23352
23327
  VExpansionPanel: {
23353
- bgColor: vue.toRef(props, 'bgColor'),
23354
- collapseIcon: vue.toRef(props, 'collapseIcon'),
23355
- color: vue.toRef(props, 'color'),
23356
- eager: vue.toRef(props, 'eager'),
23357
- elevation: vue.toRef(props, 'elevation'),
23358
- expandIcon: vue.toRef(props, 'expandIcon'),
23359
- focusable: vue.toRef(props, 'focusable'),
23360
- hideActions: vue.toRef(props, 'hideActions'),
23361
- readonly: vue.toRef(props, 'readonly'),
23362
- ripple: vue.toRef(props, 'ripple'),
23363
- rounded: vue.toRef(props, 'rounded'),
23364
- static: vue.toRef(props, 'static')
23328
+ bgColor: vue.toRef(() => props.bgColor),
23329
+ collapseIcon: vue.toRef(() => props.collapseIcon),
23330
+ color: vue.toRef(() => props.color),
23331
+ eager: vue.toRef(() => props.eager),
23332
+ elevation: vue.toRef(() => props.elevation),
23333
+ expandIcon: vue.toRef(() => props.expandIcon),
23334
+ focusable: vue.toRef(() => props.focusable),
23335
+ hideActions: vue.toRef(() => props.hideActions),
23336
+ readonly: vue.toRef(() => props.readonly),
23337
+ ripple: vue.toRef(() => props.ripple),
23338
+ rounded: vue.toRef(() => props.rounded),
23339
+ static: vue.toRef(() => props.static)
23365
23340
  }
23366
23341
  });
23367
23342
  useRender(() => vue.createVNode(props.tag, {
@@ -23423,7 +23398,7 @@
23423
23398
  if (!entries.length) return;
23424
23399
  height.value = entries[0].target.clientHeight;
23425
23400
  });
23426
- const hasPosition = vue.computed(() => props.app || props.absolute);
23401
+ const hasPosition = vue.toRef(() => props.app || props.absolute);
23427
23402
  const position = vue.computed(() => {
23428
23403
  if (!hasPosition.value) return false;
23429
23404
  return props.location?.split(' ').shift() ?? 'bottom';
@@ -23440,7 +23415,7 @@
23440
23415
  layoutSize: vue.computed(() => props.layout ? height.value + 24 : 0),
23441
23416
  elementSize: vue.computed(() => height.value + 24),
23442
23417
  active: vue.computed(() => props.app && model.value),
23443
- absolute: vue.toRef(props, 'absolute')
23418
+ absolute: vue.toRef(() => props.absolute)
23444
23419
  });
23445
23420
  vue.watchEffect(() => {
23446
23421
  layoutItemStyles.value = layout.layoutItemStyles.value;
@@ -23565,7 +23540,7 @@
23565
23540
  const vInputRef = vue.ref();
23566
23541
  const vFieldRef = vue.ref();
23567
23542
  const inputRef = vue.ref();
23568
- const isActive = vue.computed(() => isFocused.value || props.active);
23543
+ const isActive = vue.toRef(() => isFocused.value || props.active);
23569
23544
  const isPlainOrUnderlined = vue.computed(() => ['plain', 'underlined'].includes(props.variant));
23570
23545
  function onFocus() {
23571
23546
  if (inputRef.value !== document.activeElement) {
@@ -23738,7 +23713,7 @@
23738
23713
  const {
23739
23714
  backgroundColorClasses,
23740
23715
  backgroundColorStyles
23741
- } = useBackgroundColor(vue.toRef(props, 'color'));
23716
+ } = useBackgroundColor(() => props.color);
23742
23717
  const {
23743
23718
  borderClasses
23744
23719
  } = useBorder(props);
@@ -23760,11 +23735,11 @@
23760
23735
  const layout = useLayoutItem({
23761
23736
  id: props.name,
23762
23737
  order: vue.computed(() => parseInt(props.order, 10)),
23763
- position: vue.computed(() => 'bottom'),
23738
+ position: vue.toRef(() => 'bottom'),
23764
23739
  layoutSize: height,
23765
23740
  elementSize: vue.computed(() => props.height === 'auto' ? undefined : height.value),
23766
- active: vue.computed(() => props.app),
23767
- absolute: vue.toRef(props, 'absolute')
23741
+ active: vue.toRef(() => props.app),
23742
+ absolute: vue.toRef(() => props.absolute)
23768
23743
  });
23769
23744
  vue.watchEffect(() => {
23770
23745
  layoutItemStyles.value = layout.layoutItemStyles.value;
@@ -24237,11 +24212,11 @@
24237
24212
  } = useLayoutItem({
24238
24213
  id: props.name,
24239
24214
  order: vue.computed(() => parseInt(props.order, 10)),
24240
- position: vue.toRef(props, 'position'),
24241
- elementSize: vue.toRef(props, 'size'),
24242
- layoutSize: vue.toRef(props, 'size'),
24243
- active: vue.toRef(props, 'modelValue'),
24244
- absolute: vue.toRef(props, 'absolute')
24215
+ position: vue.toRef(() => props.position),
24216
+ elementSize: vue.toRef(() => props.size),
24217
+ layoutSize: vue.toRef(() => props.size),
24218
+ active: vue.toRef(() => props.modelValue),
24219
+ absolute: vue.toRef(() => props.absolute)
24245
24220
  });
24246
24221
  return () => vue.createVNode("div", {
24247
24222
  "class": ['v-layout-item', props.class],
@@ -24773,7 +24748,7 @@
24773
24748
  const {
24774
24749
  backgroundColorClasses,
24775
24750
  backgroundColorStyles
24776
- } = useBackgroundColor(vue.toRef(props, 'color'));
24751
+ } = useBackgroundColor(() => props.color);
24777
24752
  const {
24778
24753
  elevationClasses
24779
24754
  } = useElevation(props);
@@ -24806,7 +24781,7 @@
24806
24781
  const location = vue.computed(() => {
24807
24782
  return toPhysical(props.location, isRtl.value);
24808
24783
  });
24809
- const isPersistent = vue.computed(() => props.persistent);
24784
+ const isPersistent = vue.toRef(() => props.persistent);
24810
24785
  const isTemporary = vue.computed(() => !props.permanent && (mobile.value || props.temporary));
24811
24786
  const isSticky = vue.computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');
24812
24787
  useToggleScope(() => props.expandOnHover && props.rail != null, () => {
@@ -24832,7 +24807,7 @@
24832
24807
  isActive,
24833
24808
  isTemporary,
24834
24809
  width,
24835
- touchless: vue.toRef(props, 'touchless'),
24810
+ touchless: vue.toRef(() => props.touchless),
24836
24811
  position: location
24837
24812
  });
24838
24813
  const layoutSize = vue.computed(() => {
@@ -24849,7 +24824,7 @@
24849
24824
  layoutSize,
24850
24825
  elementSize: width,
24851
24826
  active: vue.readonly(isActive),
24852
- disableTransitions: vue.computed(() => isDragging.value),
24827
+ disableTransitions: vue.toRef(() => isDragging.value),
24853
24828
  absolute: vue.computed(() =>
24854
24829
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
24855
24830
  props.absolute || isSticky.value && typeof isStuck.value !== 'string')
@@ -24862,9 +24837,9 @@
24862
24837
  isSticky,
24863
24838
  layoutItemStyles
24864
24839
  });
24865
- const scrimColor = useBackgroundColor(vue.computed(() => {
24840
+ const scrimColor = useBackgroundColor(() => {
24866
24841
  return typeof props.scrim === 'string' ? props.scrim : null;
24867
- }));
24842
+ });
24868
24843
  const scrimStyles = vue.computed(() => ({
24869
24844
  ...(isDragging.value ? {
24870
24845
  opacity: dragProgress.value * 0.2,
@@ -25078,24 +25053,24 @@
25078
25053
  const controlVariant = vue.computed(() => {
25079
25054
  return props.hideInput ? 'stacked' : props.controlVariant;
25080
25055
  });
25081
- const incrementIcon = vue.computed(() => controlVariant.value === 'split' ? '$plus' : '$collapse');
25082
- const decrementIcon = vue.computed(() => controlVariant.value === 'split' ? '$minus' : '$expand');
25083
- const controlNodeSize = vue.computed(() => controlVariant.value === 'split' ? 'default' : 'small');
25084
- const controlNodeDefaultHeight = vue.computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
25085
- const incrementSlotProps = vue.computed(() => ({
25056
+ const incrementIcon = vue.toRef(() => controlVariant.value === 'split' ? '$plus' : '$collapse');
25057
+ const decrementIcon = vue.toRef(() => controlVariant.value === 'split' ? '$minus' : '$expand');
25058
+ const controlNodeSize = vue.toRef(() => controlVariant.value === 'split' ? 'default' : 'small');
25059
+ const controlNodeDefaultHeight = vue.toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
25060
+ const incrementSlotProps = {
25086
25061
  props: {
25087
25062
  onClick: onControlClick,
25088
25063
  onPointerup: onControlMouseup,
25089
25064
  onPointerdown: onUpControlMousedown
25090
25065
  }
25091
- }));
25092
- const decrementSlotProps = vue.computed(() => ({
25066
+ };
25067
+ const decrementSlotProps = {
25093
25068
  props: {
25094
25069
  onClick: onControlClick,
25095
25070
  onPointerup: onControlMouseup,
25096
25071
  onPointerdown: onDownControlMousedown
25097
25072
  }
25098
- }));
25073
+ };
25099
25074
  vue.watch(() => props.precision, () => formatInputValue());
25100
25075
  vue.onMounted(() => {
25101
25076
  clampModel();
@@ -25247,7 +25222,7 @@
25247
25222
  }
25248
25223
  }
25249
25224
  }, {
25250
- default: () => [slots.increment(incrementSlotProps.value)]
25225
+ default: () => [slots.increment(incrementSlotProps)]
25251
25226
  });
25252
25227
  }
25253
25228
  function decrementControlNode() {
@@ -25276,7 +25251,7 @@
25276
25251
  }
25277
25252
  }
25278
25253
  }, {
25279
- default: () => [slots.decrement(decrementSlotProps.value)]
25254
+ default: () => [slots.decrement(decrementSlotProps)]
25280
25255
  });
25281
25256
  }
25282
25257
  function controlNode() {
@@ -25476,12 +25451,12 @@
25476
25451
  }
25477
25452
  provideDefaults({
25478
25453
  VField: {
25479
- color: vue.computed(() => props.color),
25480
- bgColor: vue.computed(() => props.color),
25481
- baseColor: vue.computed(() => props.baseColor),
25482
- disabled: vue.computed(() => props.disabled),
25483
- error: vue.computed(() => props.error),
25484
- variant: vue.computed(() => props.variant)
25454
+ color: vue.toRef(() => props.color),
25455
+ bgColor: vue.toRef(() => props.color),
25456
+ baseColor: vue.toRef(() => props.baseColor),
25457
+ disabled: vue.toRef(() => props.disabled),
25458
+ error: vue.toRef(() => props.error),
25459
+ variant: vue.toRef(() => props.variant)
25485
25460
  }
25486
25461
  }, {
25487
25462
  scoped: true
@@ -26282,7 +26257,7 @@
26282
26257
  const {
26283
26258
  backgroundColorClasses,
26284
26259
  backgroundColorStyles
26285
- } = useBackgroundColor(vue.toRef(props, 'color'));
26260
+ } = useBackgroundColor(() => props.color);
26286
26261
  const {
26287
26262
  dimensionStyles
26288
26263
  } = useDimension(props);
@@ -27081,7 +27056,7 @@
27081
27056
  const {
27082
27057
  textColorClasses,
27083
27058
  textColorStyles
27084
- } = useTextColor(vue.toRef(props, 'color'));
27059
+ } = useTextColor(() => props.color);
27085
27060
  const hasLabels = vue.computed(() => {
27086
27061
  return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);
27087
27062
  });
@@ -27627,11 +27602,11 @@
27627
27602
  } = useFocus(props);
27628
27603
  const control = vue.ref();
27629
27604
  const isForcedColorsModeActive = IN_BROWSER && window.matchMedia('(forced-colors: active)').matches;
27630
- const loaderColor = vue.computed(() => {
27605
+ const loaderColor = vue.toRef(() => {
27631
27606
  return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
27632
27607
  });
27633
27608
  const uid = vue.useId();
27634
- const id = vue.computed(() => props.id || `switch-${uid}`);
27609
+ const id = vue.toRef(() => props.id || `switch-${uid}`);
27635
27610
  function onChange() {
27636
27611
  if (indeterminate.value) {
27637
27612
  indeterminate.value = false;
@@ -27782,7 +27757,7 @@
27782
27757
  const {
27783
27758
  backgroundColorClasses,
27784
27759
  backgroundColorStyles
27785
- } = useBackgroundColor(vue.toRef(props, 'color'));
27760
+ } = useBackgroundColor(() => props.color);
27786
27761
  const {
27787
27762
  elevationClasses
27788
27763
  } = useElevation(props);
@@ -27802,7 +27777,7 @@
27802
27777
  layoutSize: height,
27803
27778
  elementSize: height,
27804
27779
  active: vue.computed(() => true),
27805
- absolute: vue.toRef(props, 'absolute')
27780
+ absolute: vue.toRef(() => props.absolute)
27806
27781
  });
27807
27782
  useRender(() => vue.createVNode(props.tag, {
27808
27783
  "class": ['v-system-bar', {
@@ -27844,7 +27819,7 @@
27844
27819
  const {
27845
27820
  textColorClasses: sliderColorClasses,
27846
27821
  textColorStyles: sliderColorStyles
27847
- } = useTextColor(props, 'sliderColor');
27822
+ } = useTextColor(() => props.sliderColor);
27848
27823
  const rootEl = vue.ref();
27849
27824
  const sliderEl = vue.ref();
27850
27825
  const isHorizontal = vue.computed(() => props.direction === 'horizontal');
@@ -28037,18 +28012,18 @@
28037
28012
  const {
28038
28013
  backgroundColorClasses,
28039
28014
  backgroundColorStyles
28040
- } = useBackgroundColor(vue.toRef(props, 'bgColor'));
28015
+ } = useBackgroundColor(() => props.bgColor);
28041
28016
  const {
28042
28017
  scopeId
28043
28018
  } = useScopeId();
28044
28019
  provideDefaults({
28045
28020
  VTab: {
28046
- color: vue.toRef(props, 'color'),
28047
- direction: vue.toRef(props, 'direction'),
28048
- stacked: vue.toRef(props, 'stacked'),
28049
- fixed: vue.toRef(props, 'fixedTabs'),
28050
- sliderColor: vue.toRef(props, 'sliderColor'),
28051
- hideSlider: vue.toRef(props, 'hideSlider')
28021
+ color: vue.toRef(() => props.color),
28022
+ direction: vue.toRef(() => props.direction),
28023
+ stacked: vue.toRef(() => props.stacked),
28024
+ fixed: vue.toRef(() => props.fixedTabs),
28025
+ sliderColor: vue.toRef(() => props.sliderColor),
28026
+ hideSlider: vue.toRef(() => props.hideSlider)
28052
28027
  }
28053
28028
  });
28054
28029
  useRender(() => {
@@ -28398,7 +28373,7 @@
28398
28373
  const {
28399
28374
  backgroundColorStyles,
28400
28375
  backgroundColorClasses
28401
- } = useBackgroundColor(vue.toRef(props, 'dotColor'));
28376
+ } = useBackgroundColor(() => props.dotColor);
28402
28377
  const {
28403
28378
  roundedClasses
28404
28379
  } = useRounded(props, 'v-timeline-divider__dot');
@@ -28408,7 +28383,7 @@
28408
28383
  const {
28409
28384
  backgroundColorClasses: lineColorClasses,
28410
28385
  backgroundColorStyles: lineColorStyles
28411
- } = useBackgroundColor(vue.toRef(props, 'lineColor'));
28386
+ } = useBackgroundColor(() => props.lineColor);
28412
28387
  useRender(() => vue.createVNode("div", {
28413
28388
  "class": ['v-timeline-divider', {
28414
28389
  'v-timeline-divider--fill-dot': props.fillDot
@@ -28579,17 +28554,17 @@
28579
28554
  } = useRtl();
28580
28555
  provideDefaults({
28581
28556
  VTimelineDivider: {
28582
- lineColor: vue.toRef(props, 'lineColor')
28557
+ lineColor: vue.toRef(() => props.lineColor)
28583
28558
  },
28584
28559
  VTimelineItem: {
28585
- density: vue.toRef(props, 'density'),
28586
- dotColor: vue.toRef(props, 'dotColor'),
28587
- fillDot: vue.toRef(props, 'fillDot'),
28588
- hideOpposite: vue.toRef(props, 'hideOpposite'),
28589
- iconColor: vue.toRef(props, 'iconColor'),
28590
- lineColor: vue.toRef(props, 'lineColor'),
28591
- lineInset: vue.toRef(props, 'lineInset'),
28592
- size: vue.toRef(props, 'size')
28560
+ density: vue.toRef(() => props.density),
28561
+ dotColor: vue.toRef(() => props.dotColor),
28562
+ fillDot: vue.toRef(() => props.fillDot),
28563
+ hideOpposite: vue.toRef(() => props.hideOpposite),
28564
+ iconColor: vue.toRef(() => props.iconColor),
28565
+ lineColor: vue.toRef(() => props.lineColor),
28566
+ lineInset: vue.toRef(() => props.lineInset),
28567
+ size: vue.toRef(() => props.size)
28593
28568
  }
28594
28569
  });
28595
28570
  const sideClasses = vue.computed(() => {
@@ -28636,9 +28611,9 @@
28636
28611
  } = _ref;
28637
28612
  provideDefaults({
28638
28613
  VBtn: {
28639
- color: vue.toRef(props, 'color'),
28614
+ color: vue.toRef(() => props.color),
28640
28615
  height: 'inherit',
28641
- variant: vue.toRef(props, 'variant')
28616
+ variant: vue.toRef(() => props.variant)
28642
28617
  }
28643
28618
  });
28644
28619
  useRender(() => vue.createVNode("div", {
@@ -28685,7 +28660,7 @@
28685
28660
  scopeId
28686
28661
  } = useScopeId();
28687
28662
  const uid = vue.useId();
28688
- const id = vue.computed(() => props.id || `v-tooltip-${uid}`);
28663
+ const id = vue.toRef(() => props.id || `v-tooltip-${uid}`);
28689
28664
  const overlay = vue.ref();
28690
28665
  const location = vue.computed(() => {
28691
28666
  return props.location.split(' ').length > 1 ? props.location : props.location + ' center';
@@ -28693,7 +28668,7 @@
28693
28668
  const origin = vue.computed(() => {
28694
28669
  return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';
28695
28670
  });
28696
- const transition = vue.computed(() => {
28671
+ const transition = vue.toRef(() => {
28697
28672
  if (props.transition) return props.transition;
28698
28673
  return isActive.value ? 'scale-transition' : 'fade-transition';
28699
28674
  });
@@ -29240,7 +29215,7 @@
29240
29215
  };
29241
29216
  });
29242
29217
  }
29243
- const version$1 = "3.8.1";
29218
+ const version$1 = "3.8.3";
29244
29219
  createVuetify$1.version = version$1;
29245
29220
 
29246
29221
  // Vue's inject() can only be used in setup
@@ -29265,7 +29240,7 @@
29265
29240
  ...options
29266
29241
  });
29267
29242
  };
29268
- const version = "3.8.1";
29243
+ const version = "3.8.3";
29269
29244
  createVuetify.version = version;
29270
29245
 
29271
29246
  exports.blueprints = index;