vuetify 3.2.2 → 3.2.4

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 (343) hide show
  1. package/dist/json/attributes.json +549 -253
  2. package/dist/json/importMap.json +20 -20
  3. package/dist/json/tags.json +77 -2
  4. package/dist/json/web-types.json +1292 -566
  5. package/dist/vuetify-labs.css +113 -110
  6. package/dist/vuetify-labs.d.ts +2593 -11751
  7. package/dist/vuetify-labs.esm.js +2352 -2248
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +2352 -2248
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +38 -35
  12. package/dist/vuetify.d.ts +1264 -11210
  13. package/dist/vuetify.esm.js +1818 -1702
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +1818 -1702
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +652 -652
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.ts +1 -3
  21. package/lib/blueprints/md1.d.ts +1 -3
  22. package/lib/blueprints/md2.d.ts +1 -3
  23. package/lib/blueprints/md3.d.ts +1 -3
  24. package/lib/components/VAlert/VAlert.mjs +48 -48
  25. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  26. package/lib/components/VAlert/index.d.ts +2 -2
  27. package/lib/components/VApp/VApp.mjs +9 -8
  28. package/lib/components/VApp/VApp.mjs.map +1 -1
  29. package/lib/components/VAppBar/VAppBar.mjs +23 -22
  30. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  31. package/lib/components/VAppBar/VAppBarNavIcon.mjs +9 -7
  32. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  33. package/lib/components/VAppBar/VAppBarTitle.mjs +1 -2
  34. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  35. package/lib/components/VAppBar/index.d.ts +4 -4
  36. package/lib/components/VAutocomplete/VAutocomplete.css +0 -4
  37. package/lib/components/VAutocomplete/VAutocomplete.mjs +33 -38
  38. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  39. package/lib/components/VAutocomplete/VAutocomplete.sass +0 -5
  40. package/lib/components/VAutocomplete/index.d.ts +76 -1183
  41. package/lib/components/VBadge/VBadge.mjs +33 -32
  42. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  43. package/lib/components/VBanner/VBanner.mjs +21 -20
  44. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  45. package/lib/components/VBanner/VBannerActions.mjs +7 -6
  46. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  47. package/lib/components/VBanner/index.d.ts +2 -2
  48. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +35 -34
  49. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  50. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +24 -23
  51. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  52. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +6 -5
  53. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  54. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +15 -14
  55. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  56. package/lib/components/VBreadcrumbs/index.d.ts +1 -0
  57. package/lib/components/VBtnToggle/VBtnToggle.mjs +6 -5
  58. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  59. package/lib/components/VCard/VCard.mjs +38 -37
  60. package/lib/components/VCard/VCard.mjs.map +1 -1
  61. package/lib/components/VCard/VCardItem.mjs +12 -11
  62. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  63. package/lib/components/VCard/index.d.ts +4 -4
  64. package/lib/components/VCarousel/VCarousel.mjs +28 -27
  65. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  66. package/lib/components/VCarousel/VCarouselItem.mjs +18 -16
  67. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  68. package/lib/components/VCarousel/index.d.ts +170 -20
  69. package/lib/components/VCheckbox/VCheckbox.mjs +6 -5
  70. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  71. package/lib/components/VCheckbox/index.d.ts +24 -12
  72. package/lib/components/VChip/VChip.css +7 -0
  73. package/lib/components/VChip/VChip.mjs +60 -57
  74. package/lib/components/VChip/VChip.mjs.map +1 -1
  75. package/lib/components/VChip/VChip.sass +9 -0
  76. package/lib/components/VChip/index.d.ts +8 -8
  77. package/lib/components/VChipGroup/VChipGroup.mjs +19 -18
  78. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  79. package/lib/components/VColorPicker/VColorPicker.mjs +44 -39
  80. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  81. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +26 -25
  82. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  83. package/lib/components/VColorPicker/VColorPickerEdit.mjs +17 -16
  84. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  85. package/lib/components/VColorPicker/VColorPickerPreview.mjs +10 -9
  86. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  87. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +12 -11
  88. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  89. package/lib/components/VColorPicker/index.d.ts +4 -4
  90. package/lib/components/VColorPicker/util/index.mjs +2 -2
  91. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  92. package/lib/components/VCombobox/VCombobox.mjs +37 -41
  93. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  94. package/lib/components/VCombobox/index.d.ts +76 -1180
  95. package/lib/components/VCounter/VCounter.mjs +16 -15
  96. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  97. package/lib/components/VCounter/index.d.ts +25 -1774
  98. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +9 -8
  99. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  100. package/lib/components/VDialog/VDialog.mjs +18 -17
  101. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  102. package/lib/components/VDialog/index.d.ts +130 -1120
  103. package/lib/components/VDivider/VDivider.mjs +11 -10
  104. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  105. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +15 -15
  106. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  107. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +6 -5
  108. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  109. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +3 -5
  110. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  111. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +15 -14
  112. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  113. package/lib/components/VExpansionPanel/index.d.ts +15 -15
  114. package/lib/components/VField/VField.mjs +6 -2
  115. package/lib/components/VField/VField.mjs.map +1 -1
  116. package/lib/components/VField/VFieldLabel.mjs +6 -5
  117. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  118. package/lib/components/VFileInput/VFileInput.mjs +35 -34
  119. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  120. package/lib/components/VFileInput/index.d.ts +3 -3
  121. package/lib/components/VFooter/VFooter.mjs +21 -20
  122. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  123. package/lib/components/VForm/VForm.mjs +6 -5
  124. package/lib/components/VForm/VForm.mjs.map +1 -1
  125. package/lib/components/VForm/index.d.ts +6 -6
  126. package/lib/components/VGrid/VCol.mjs +26 -25
  127. package/lib/components/VGrid/VCol.mjs.map +1 -1
  128. package/lib/components/VGrid/VContainer.mjs +16 -11
  129. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  130. package/lib/components/VGrid/VRow.mjs +26 -25
  131. package/lib/components/VGrid/VRow.mjs.map +1 -1
  132. package/lib/components/VHover/VHover.mjs +10 -9
  133. package/lib/components/VHover/VHover.mjs.map +1 -1
  134. package/lib/components/VImg/VImg.mjs +35 -34
  135. package/lib/components/VImg/VImg.mjs.map +1 -1
  136. package/lib/components/VImg/index.d.ts +12 -12
  137. package/lib/components/VItemGroup/VItemGroup.mjs +10 -9
  138. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  139. package/lib/components/VLabel/VLabel.mjs +8 -7
  140. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  141. package/lib/components/VLayout/VLayout.mjs +6 -5
  142. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  143. package/lib/components/VLayout/VLayoutItem.mjs +15 -14
  144. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  145. package/lib/components/VLazy/VLazy.mjs +21 -20
  146. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  147. package/lib/components/VList/VList.mjs +35 -34
  148. package/lib/components/VList/VList.mjs.map +1 -1
  149. package/lib/components/VList/VListChildren.mjs +5 -4
  150. package/lib/components/VList/VListChildren.mjs.map +1 -1
  151. package/lib/components/VList/VListGroup.mjs +2 -4
  152. package/lib/components/VList/VListGroup.mjs.map +1 -1
  153. package/lib/components/VList/VListItem.mjs +42 -41
  154. package/lib/components/VList/VListItem.mjs.map +1 -1
  155. package/lib/components/VList/VListItemAction.mjs +8 -7
  156. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  157. package/lib/components/VList/VListItemMedia.mjs +8 -7
  158. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  159. package/lib/components/VList/VListSubheader.mjs +10 -9
  160. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  161. package/lib/components/VList/index.d.ts +38 -38
  162. package/lib/components/VList/list.mjs +4 -4
  163. package/lib/components/VList/list.mjs.map +1 -1
  164. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +12 -11
  165. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  166. package/lib/components/VMain/VMain.mjs +9 -8
  167. package/lib/components/VMain/VMain.mjs.map +1 -1
  168. package/lib/components/VMenu/VMenu.mjs +21 -20
  169. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  170. package/lib/components/VMenu/index.d.ts +43 -1033
  171. package/lib/components/VMessages/VMessages.mjs +18 -17
  172. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  173. package/lib/components/VMessages/index.d.ts +25 -1774
  174. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +50 -49
  175. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  176. package/lib/components/VNavigationDrawer/index.d.ts +3 -3
  177. package/lib/components/VNavigationDrawer/sticky.mjs +14 -7
  178. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  179. package/lib/components/VNavigationDrawer/touch.mjs +4 -4
  180. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  181. package/lib/components/VOverlay/locationStrategies.mjs +5 -3
  182. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  183. package/lib/components/VPagination/VPagination.mjs +84 -83
  184. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  185. package/lib/components/VPagination/index.d.ts +8 -8
  186. package/lib/components/VParallax/VParallax.mjs +9 -8
  187. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  188. package/lib/components/VProgressCircular/VProgressCircular.mjs +25 -24
  189. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  190. package/lib/components/VProgressLinear/VProgressLinear.mjs +44 -42
  191. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  192. package/lib/components/VProgressLinear/index.d.ts +8 -8
  193. package/lib/components/VRadio/VRadio.mjs +8 -7
  194. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  195. package/lib/components/VRadio/index.d.ts +18 -12
  196. package/lib/components/VRadioGroup/VRadioGroup.mjs +22 -21
  197. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  198. package/lib/components/VRadioGroup/index.d.ts +16 -10
  199. package/lib/components/VRangeSlider/VRangeSlider.mjs +18 -13
  200. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  201. package/lib/components/VRating/VRating.mjs +49 -45
  202. package/lib/components/VRating/VRating.mjs.map +1 -1
  203. package/lib/components/VRating/index.d.ts +8 -8
  204. package/lib/components/VResponsive/VResponsive.mjs +8 -7
  205. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  206. package/lib/components/VSelect/VSelect.mjs +22 -21
  207. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  208. package/lib/components/VSelect/index.d.ts +73 -2515
  209. package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -3
  210. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  211. package/lib/components/VSelectionControl/index.d.ts +45 -39
  212. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +10 -10
  213. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  214. package/lib/components/VSelectionControlGroup/index.d.ts +28 -28
  215. package/lib/components/VSheet/VSheet.mjs +1 -3
  216. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  217. package/lib/components/VSlideGroup/VSlideGroup.mjs +7 -7
  218. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  219. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +1 -3
  220. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  221. package/lib/components/VSlideGroup/index.d.ts +3 -3
  222. package/lib/components/VSlider/VSlider.mjs +18 -13
  223. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  224. package/lib/components/VSlider/VSliderThumb.mjs +26 -25
  225. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  226. package/lib/components/VSlider/VSliderTrack.mjs +13 -12
  227. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  228. package/lib/components/VSlider/slider.mjs +3 -3
  229. package/lib/components/VSlider/slider.mjs.map +1 -1
  230. package/lib/components/VSnackbar/VSnackbar.mjs +20 -19
  231. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  232. package/lib/components/VSwitch/VSwitch.mjs +13 -12
  233. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  234. package/lib/components/VSwitch/index.d.ts +18 -12
  235. package/lib/components/VSystemBar/VSystemBar.mjs +15 -14
  236. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  237. package/lib/components/VTable/VTable.mjs +12 -11
  238. package/lib/components/VTable/VTable.mjs.map +1 -1
  239. package/lib/components/VTabs/VTab.mjs +19 -19
  240. package/lib/components/VTabs/VTab.mjs.map +1 -1
  241. package/lib/components/VTabs/VTabs.mjs +28 -27
  242. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  243. package/lib/components/VTabs/index.d.ts +12 -12
  244. package/lib/components/VTextField/index.d.ts +3 -3
  245. package/lib/components/VTextarea/VTextarea.mjs +31 -27
  246. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  247. package/lib/components/VTextarea/index.d.ts +3 -3
  248. package/lib/components/VThemeProvider/VThemeProvider.mjs +8 -7
  249. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  250. package/lib/components/VTimeline/VTimeline.mjs +46 -41
  251. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  252. package/lib/components/VTimeline/VTimelineDivider.mjs +14 -13
  253. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  254. package/lib/components/VTimeline/VTimelineItem.mjs +23 -22
  255. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  256. package/lib/components/VToolbar/VToolbar.mjs +8 -4
  257. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  258. package/lib/components/VToolbar/VToolbarItems.mjs +8 -7
  259. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  260. package/lib/components/VToolbar/index.d.ts +11 -11
  261. package/lib/components/VTooltip/VTooltip.mjs +20 -19
  262. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  263. package/lib/components/VValidation/VValidation.mjs +1 -3
  264. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  265. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +14 -13
  266. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  267. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +6 -5
  268. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  269. package/lib/components/VWindow/VWindow.mjs +3 -3
  270. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  271. package/lib/components/VWindow/VWindowItem.mjs +18 -17
  272. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  273. package/lib/components/VWindow/index.d.ts +9 -9
  274. package/lib/components/index.d.ts +1328 -11279
  275. package/lib/components/transitions/createTransition.mjs +16 -15
  276. package/lib/components/transitions/createTransition.mjs.map +1 -1
  277. package/lib/components/transitions/dialog-transition.mjs +5 -4
  278. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  279. package/lib/components/transitions/index.d.ts +143 -143
  280. package/lib/composables/display.mjs +3 -3
  281. package/lib/composables/display.mjs.map +1 -1
  282. package/lib/composables/form.mjs +4 -4
  283. package/lib/composables/form.mjs.map +1 -1
  284. package/lib/composables/forwardRefs.mjs.map +1 -1
  285. package/lib/composables/hydration.mjs +6 -6
  286. package/lib/composables/hydration.mjs.map +1 -1
  287. package/lib/composables/intersectionObserver.mjs +2 -2
  288. package/lib/composables/intersectionObserver.mjs.map +1 -1
  289. package/lib/composables/layout.mjs +3 -3
  290. package/lib/composables/layout.mjs.map +1 -1
  291. package/lib/composables/lazy.mjs +2 -2
  292. package/lib/composables/lazy.mjs.map +1 -1
  293. package/lib/composables/nested/nested.mjs +5 -4
  294. package/lib/composables/nested/nested.mjs.map +1 -1
  295. package/lib/composables/scroll.mjs +6 -6
  296. package/lib/composables/scroll.mjs.map +1 -1
  297. package/lib/composables/ssrBoot.mjs +2 -2
  298. package/lib/composables/ssrBoot.mjs.map +1 -1
  299. package/lib/composables/stack.mjs +5 -4
  300. package/lib/composables/stack.mjs.map +1 -1
  301. package/lib/composables/theme.mjs +3 -3
  302. package/lib/composables/theme.mjs.map +1 -1
  303. package/lib/composables/transition.mjs +5 -2
  304. package/lib/composables/transition.mjs.map +1 -1
  305. package/lib/composables/validation.mjs +3 -3
  306. package/lib/composables/validation.mjs.map +1 -1
  307. package/lib/directives/click-outside/index.mjs +1 -1
  308. package/lib/directives/click-outside/index.mjs.map +1 -1
  309. package/lib/entry-bundler.mjs +1 -1
  310. package/lib/framework.mjs +1 -1
  311. package/lib/index.d.ts +15 -10
  312. package/lib/labs/VDataTable/VDataTable.mjs +54 -59
  313. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  314. package/lib/labs/VDataTable/VDataTableFooter.mjs +64 -63
  315. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  316. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +8 -7
  317. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
  318. package/lib/labs/VDataTable/VDataTableHeaders.mjs +16 -15
  319. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  320. package/lib/labs/VDataTable/VDataTableRow.mjs +7 -6
  321. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  322. package/lib/labs/VDataTable/VDataTableRows.mjs +20 -19
  323. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  324. package/lib/labs/VDataTable/VDataTableServer.mjs +54 -64
  325. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  326. package/lib/labs/VDataTable/VDataTableVirtual.mjs +70 -77
  327. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  328. package/lib/labs/VDataTable/composables/virtual.mjs +3 -3
  329. package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
  330. package/lib/labs/VDataTable/index.d.ts +991 -206
  331. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +54 -48
  332. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  333. package/lib/labs/VInfiniteScroll/index.d.ts +16 -1
  334. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +18 -17
  335. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  336. package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
  337. package/lib/labs/components.d.ts +1011 -211
  338. package/lib/labs/date/date.mjs +7 -7
  339. package/lib/labs/date/date.mjs.map +1 -1
  340. package/lib/labs/date/index.d.ts +1 -3
  341. package/lib/locale/adapters/vuetify.mjs +8 -5
  342. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  343. package/package.json +2 -2
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.2.2
2
+ * Vuetify v3.2.4
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -1288,7 +1288,7 @@
1288
1288
  vue.provide(VuetifyLayoutItemKey, {
1289
1289
  id
1290
1290
  });
1291
- const isKeptAlive = vue.ref(false);
1291
+ const isKeptAlive = vue.shallowRef(false);
1292
1292
  vue.onDeactivated(() => isKeptAlive.value = true);
1293
1293
  vue.onActivated(() => isKeptAlive.value = false);
1294
1294
  const {
@@ -1419,7 +1419,7 @@
1419
1419
  return items.value.find(item => item.id === id);
1420
1420
  };
1421
1421
  const rootVm = getCurrentInstance('createLayout');
1422
- const isMounted = vue.ref(false);
1422
+ const isMounted = vue.shallowRef(false);
1423
1423
  vue.onMounted(() => {
1424
1424
  isMounted.value = true;
1425
1425
  });
@@ -1674,9 +1674,9 @@
1674
1674
  variables: {
1675
1675
  'border-color': '#FFFFFF',
1676
1676
  'border-opacity': 0.12,
1677
- 'high-emphasis-opacity': 0.87,
1678
- 'medium-emphasis-opacity': 0.60,
1679
- 'disabled-opacity': 0.38,
1677
+ 'high-emphasis-opacity': 1,
1678
+ 'medium-emphasis-opacity': 0.70,
1679
+ 'disabled-opacity': 0.50,
1680
1680
  'idle-opacity': 0.10,
1681
1681
  'hover-opacity': 0.04,
1682
1682
  'focus-opacity': 0.12,
@@ -2013,6 +2013,10 @@
2013
2013
  }
2014
2014
  };
2015
2015
 
2016
+ // Composables
2017
+
2018
+ // Types
2019
+
2016
2020
  const LANG_PREFIX = '$vuetify.';
2017
2021
  const replace = (str, params) => {
2018
2022
  return str.replace(/\{(\d+)\}/g, (match, index) => {
@@ -2085,8 +2089,8 @@
2085
2089
  };
2086
2090
  }
2087
2091
  function createVuetifyAdapter(options) {
2088
- const current = vue.ref(options?.locale ?? 'en');
2089
- const fallback = vue.ref(options?.fallback ?? 'en');
2092
+ const current = vue.shallowRef(options?.locale ?? 'en');
2093
+ const fallback = vue.shallowRef(options?.fallback ?? 'en');
2090
2094
  const messages = vue.ref({
2091
2095
  en,
2092
2096
  ...options?.messages
@@ -2205,15 +2209,16 @@
2205
2209
  };
2206
2210
  }
2207
2211
 
2212
+ const makeVAppProps = propsFactory({
2213
+ ...makeComponentProps(),
2214
+ ...makeLayoutProps({
2215
+ fullHeight: true
2216
+ }),
2217
+ ...makeThemeProps()
2218
+ }, 'v-app');
2208
2219
  const VApp = genericComponent()({
2209
2220
  name: 'VApp',
2210
- props: {
2211
- ...makeComponentProps(),
2212
- ...makeLayoutProps({
2213
- fullHeight: true
2214
- }),
2215
- ...makeThemeProps()
2216
- },
2221
+ props: makeVAppProps(),
2217
2222
  setup(props, _ref) {
2218
2223
  let {
2219
2224
  slots
@@ -2248,15 +2253,16 @@
2248
2253
 
2249
2254
  // Types
2250
2255
 
2256
+ const makeDefaultsProviderProps = propsFactory({
2257
+ defaults: Object,
2258
+ disabled: Boolean,
2259
+ reset: [Number, String],
2260
+ root: Boolean,
2261
+ scoped: Boolean
2262
+ }, 'v-defaults-provider');
2251
2263
  const VDefaultsProvider = genericComponent(false)({
2252
2264
  name: 'VDefaultsProvider',
2253
- props: {
2254
- defaults: Object,
2255
- disabled: Boolean,
2256
- reset: [Number, String],
2257
- root: Boolean,
2258
- scoped: Boolean
2259
- },
2265
+ props: makeDefaultsProviderProps(),
2260
2266
  setup(props, _ref) {
2261
2267
  let {
2262
2268
  slots
@@ -2282,25 +2288,23 @@
2282
2288
 
2283
2289
  // Types
2284
2290
 
2291
+ const makeTransitionProps$1 = propsFactory({
2292
+ disabled: Boolean,
2293
+ group: Boolean,
2294
+ hideOnLeave: Boolean,
2295
+ leaveAbsolute: Boolean,
2296
+ mode: String,
2297
+ origin: String
2298
+ }, 'transition');
2285
2299
  function createCssTransition(name) {
2286
2300
  let origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'center center';
2287
2301
  let mode = arguments.length > 2 ? arguments[2] : undefined;
2288
2302
  return genericComponent()({
2289
2303
  name,
2290
- props: {
2291
- disabled: Boolean,
2292
- group: Boolean,
2293
- hideOnLeave: Boolean,
2294
- leaveAbsolute: Boolean,
2295
- mode: {
2296
- type: String,
2297
- default: mode
2298
- },
2299
- origin: {
2300
- type: String,
2301
- default: origin
2302
- }
2303
- },
2304
+ props: makeTransitionProps$1({
2305
+ mode,
2306
+ origin
2307
+ }),
2304
2308
  setup(props, _ref) {
2305
2309
  let {
2306
2310
  slots
@@ -2458,11 +2462,12 @@
2458
2462
 
2459
2463
  // Types
2460
2464
 
2465
+ const makeVDialogTransitionProps = propsFactory({
2466
+ target: Object
2467
+ }, 'v-dialog-transition');
2461
2468
  const VDialogTransition = genericComponent()({
2462
2469
  name: 'VDialogTransition',
2463
- props: {
2464
- target: Object
2465
- },
2470
+ props: makeVDialogTransitionProps(),
2466
2471
  setup(props, _ref) {
2467
2472
  let {
2468
2473
  slots
@@ -2652,14 +2657,15 @@
2652
2657
  })
2653
2658
  };
2654
2659
  }
2660
+ const makeVResponsiveProps = propsFactory({
2661
+ aspectRatio: [String, Number],
2662
+ contentClass: String,
2663
+ ...makeComponentProps(),
2664
+ ...makeDimensionProps()
2665
+ }, 'v-responsive');
2655
2666
  const VResponsive = genericComponent()({
2656
2667
  name: 'VResponsive',
2657
- props: {
2658
- aspectRatio: [String, Number],
2659
- contentClass: String,
2660
- ...makeComponentProps(),
2661
- ...makeDimensionProps()
2662
- },
2668
+ props: makeVResponsiveProps(),
2663
2669
  setup(props, _ref) {
2664
2670
  let {
2665
2671
  slots
@@ -2748,6 +2754,7 @@
2748
2754
  } = _ref;
2749
2755
  const {
2750
2756
  transition,
2757
+ disabled,
2751
2758
  ...rest
2752
2759
  } = props;
2753
2760
  const {
@@ -2755,44 +2762,47 @@
2755
2762
  ...customProps
2756
2763
  } = typeof transition === 'object' ? transition : {};
2757
2764
  return vue.h(component, vue.mergeProps(typeof transition === 'string' ? {
2758
- name: transition
2759
- } : customProps, rest), slots);
2765
+ name: disabled ? '' : transition
2766
+ } : customProps, rest, {
2767
+ disabled
2768
+ }), slots);
2760
2769
  };
2761
2770
 
2762
2771
  // Types
2763
2772
 
2773
+ const makeVImgProps = propsFactory({
2774
+ aspectRatio: [String, Number],
2775
+ alt: String,
2776
+ cover: Boolean,
2777
+ eager: Boolean,
2778
+ gradient: String,
2779
+ lazySrc: String,
2780
+ options: {
2781
+ type: Object,
2782
+ // For more information on types, navigate to:
2783
+ // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
2784
+ default: () => ({
2785
+ root: undefined,
2786
+ rootMargin: undefined,
2787
+ threshold: undefined
2788
+ })
2789
+ },
2790
+ sizes: String,
2791
+ src: {
2792
+ type: [String, Object],
2793
+ default: ''
2794
+ },
2795
+ srcset: String,
2796
+ width: [String, Number],
2797
+ ...makeComponentProps(),
2798
+ ...makeTransitionProps()
2799
+ }, 'v-img');
2764
2800
  const VImg = genericComponent()({
2765
2801
  name: 'VImg',
2766
2802
  directives: {
2767
2803
  intersect: Intersect
2768
2804
  },
2769
- props: {
2770
- aspectRatio: [String, Number],
2771
- alt: String,
2772
- cover: Boolean,
2773
- eager: Boolean,
2774
- gradient: String,
2775
- lazySrc: String,
2776
- options: {
2777
- type: Object,
2778
- // For more information on types, navigate to:
2779
- // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
2780
- default: () => ({
2781
- root: undefined,
2782
- rootMargin: undefined,
2783
- threshold: undefined
2784
- })
2785
- },
2786
- sizes: String,
2787
- src: {
2788
- type: [String, Object],
2789
- default: ''
2790
- },
2791
- srcset: String,
2792
- width: [String, Number],
2793
- ...makeComponentProps(),
2794
- ...makeTransitionProps()
2795
- },
2805
+ props: makeVImgProps(),
2796
2806
  emits: {
2797
2807
  loadstart: value => true,
2798
2808
  load: value => true,
@@ -2803,11 +2813,11 @@
2803
2813
  emit,
2804
2814
  slots
2805
2815
  } = _ref;
2806
- const currentSrc = vue.ref(''); // Set from srcset
2816
+ const currentSrc = vue.shallowRef(''); // Set from srcset
2807
2817
  const image = vue.ref();
2808
- const state = vue.ref(props.eager ? 'loading' : 'idle');
2809
- const naturalWidth = vue.ref();
2810
- const naturalHeight = vue.ref();
2818
+ const state = vue.shallowRef(props.eager ? 'loading' : 'idle');
2819
+ const naturalWidth = vue.shallowRef();
2820
+ const naturalHeight = vue.shallowRef();
2811
2821
  const normalisedSrc = vue.computed(() => {
2812
2822
  return props.src && typeof props.src === 'object' ? {
2813
2823
  src: props.src.src,
@@ -2961,7 +2971,7 @@
2961
2971
  }
2962
2972
  }, null);
2963
2973
  };
2964
- const isBooted = vue.ref(false);
2974
+ const isBooted = vue.shallowRef(false);
2965
2975
  {
2966
2976
  const stop = vue.watch(aspectRatio, val => {
2967
2977
  if (val) {
@@ -3244,7 +3254,10 @@
3244
3254
  const {
3245
3255
  themeClasses
3246
3256
  } = provideTheme(props);
3247
- const isExtended = vue.ref(!!(props.extended || slots.extension?.()));
3257
+ const {
3258
+ rtlClasses
3259
+ } = useRtl();
3260
+ const isExtended = vue.shallowRef(!!(props.extended || slots.extension?.()));
3248
3261
  const contentHeight = vue.computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));
3249
3262
  const extensionHeight = vue.computed(() => isExtended.value ? parseInt(Number(props.extensionHeight) + (props.density === 'prominent' ? Number(props.extensionHeight) : 0) - (props.density === 'comfortable' ? 4 : 0) - (props.density === 'compact' ? 8 : 0), 10) : 0);
3250
3263
  provideDefaults({
@@ -3264,7 +3277,7 @@
3264
3277
  'v-toolbar--flat': props.flat,
3265
3278
  'v-toolbar--floating': props.floating,
3266
3279
  [`v-toolbar--density-${props.density}`]: true
3267
- }, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, props.class],
3280
+ }, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],
3268
3281
  "style": [backgroundColorStyles.value, props.style]
3269
3282
  }, {
3270
3283
  default: () => [hasImage && vue.createVNode("div", {
@@ -3351,11 +3364,11 @@
3351
3364
  } = args;
3352
3365
  let previousScroll = 0;
3353
3366
  const target = vue.ref(null);
3354
- const currentScroll = vue.ref(0);
3355
- const savedScroll = vue.ref(0);
3356
- const currentThreshold = vue.ref(0);
3357
- const isScrollActive = vue.ref(false);
3358
- const isScrollingUp = vue.ref(false);
3367
+ const currentScroll = vue.shallowRef(0);
3368
+ const savedScroll = vue.shallowRef(0);
3369
+ const currentThreshold = vue.shallowRef(0);
3370
+ const isScrollActive = vue.shallowRef(false);
3371
+ const isScrollingUp = vue.shallowRef(false);
3359
3372
  const scrollThreshold = vue.computed(() => {
3360
3373
  return Number(props.scrollThreshold);
3361
3374
  });
@@ -3425,7 +3438,7 @@
3425
3438
 
3426
3439
  // Composables
3427
3440
  function useSsrBoot() {
3428
- const isBooted = vue.ref(false);
3441
+ const isBooted = vue.shallowRef(false);
3429
3442
  vue.onMounted(() => {
3430
3443
  window.requestAnimationFrame(() => {
3431
3444
  isBooted.value = true;
@@ -3442,27 +3455,28 @@
3442
3455
 
3443
3456
  // Types
3444
3457
 
3458
+ const makeVAppBarProps = propsFactory({
3459
+ scrollBehavior: String,
3460
+ modelValue: {
3461
+ type: Boolean,
3462
+ default: true
3463
+ },
3464
+ location: {
3465
+ type: String,
3466
+ default: 'top',
3467
+ validator: value => ['top', 'bottom'].includes(value)
3468
+ },
3469
+ ...makeVToolbarProps(),
3470
+ ...makeLayoutItemProps(),
3471
+ ...makeScrollProps(),
3472
+ height: {
3473
+ type: [Number, String],
3474
+ default: 64
3475
+ }
3476
+ }, 'v-app-bar');
3445
3477
  const VAppBar = genericComponent()({
3446
3478
  name: 'VAppBar',
3447
- props: {
3448
- scrollBehavior: String,
3449
- modelValue: {
3450
- type: Boolean,
3451
- default: true
3452
- },
3453
- location: {
3454
- type: String,
3455
- default: 'top',
3456
- validator: value => ['top', 'bottom'].includes(value)
3457
- },
3458
- ...makeVToolbarProps(),
3459
- ...makeLayoutItemProps(),
3460
- ...makeScrollProps(),
3461
- height: {
3462
- type: [Number, String],
3463
- default: 64
3464
- }
3465
- },
3479
+ props: makeVAppBarProps(),
3466
3480
  emits: {
3467
3481
  'update:modelValue': value => true
3468
3482
  },
@@ -3535,7 +3549,7 @@
3535
3549
  order: vue.computed(() => parseInt(props.order, 10)),
3536
3550
  position: vue.toRef(props, 'location'),
3537
3551
  layoutSize: height,
3538
- elementSize: vue.ref(undefined),
3552
+ elementSize: vue.shallowRef(undefined),
3539
3553
  active: isActive,
3540
3554
  absolute: vue.toRef(props, 'absolute')
3541
3555
  });
@@ -3892,12 +3906,13 @@
3892
3906
  // Types
3893
3907
 
3894
3908
  const VBtnToggleSymbol = Symbol.for('vuetify:v-btn-toggle');
3909
+ const makeVBtnToggleProps = propsFactory({
3910
+ ...makeVBtnGroupProps(),
3911
+ ...makeGroupProps()
3912
+ }, 'v-btn-toggle');
3895
3913
  const VBtnToggle = genericComponent()({
3896
3914
  name: 'VBtnToggle',
3897
- props: {
3898
- ...makeVBtnGroupProps(),
3899
- ...makeGroupProps()
3900
- },
3915
+ props: makeVBtnToggleProps(),
3901
3916
  emits: {
3902
3917
  'update:modelValue': value => true
3903
3918
  },
@@ -4224,7 +4239,7 @@
4224
4239
  // Utilities
4225
4240
  function useIntersectionObserver(callback, options) {
4226
4241
  const intersectionRef = vue.ref();
4227
- const isIntersecting = vue.ref(false);
4242
+ const isIntersecting = vue.shallowRef(false);
4228
4243
  if (SUPPORTS_INTERSECTION) {
4229
4244
  const observer = new IntersectionObserver(entries => {
4230
4245
  callback?.(entries, observer);
@@ -4251,31 +4266,32 @@
4251
4266
 
4252
4267
  // Types
4253
4268
 
4269
+ const makeVProgressCircularProps = propsFactory({
4270
+ bgColor: String,
4271
+ color: String,
4272
+ indeterminate: [Boolean, String],
4273
+ modelValue: {
4274
+ type: [Number, String],
4275
+ default: 0
4276
+ },
4277
+ rotate: {
4278
+ type: [Number, String],
4279
+ default: 0
4280
+ },
4281
+ width: {
4282
+ type: [Number, String],
4283
+ default: 4
4284
+ },
4285
+ ...makeComponentProps(),
4286
+ ...makeSizeProps(),
4287
+ ...makeTagProps({
4288
+ tag: 'div'
4289
+ }),
4290
+ ...makeThemeProps()
4291
+ }, 'v-progress-circular');
4254
4292
  const VProgressCircular = genericComponent()({
4255
4293
  name: 'VProgressCircular',
4256
- props: {
4257
- bgColor: String,
4258
- color: String,
4259
- indeterminate: [Boolean, String],
4260
- modelValue: {
4261
- type: [Number, String],
4262
- default: 0
4263
- },
4264
- rotate: {
4265
- type: [Number, String],
4266
- default: 0
4267
- },
4268
- width: {
4269
- type: [Number, String],
4270
- default: 4
4271
- },
4272
- ...makeComponentProps(),
4273
- ...makeSizeProps(),
4274
- ...makeTagProps({
4275
- tag: 'div'
4276
- }),
4277
- ...makeThemeProps()
4278
- },
4294
+ props: makeVProgressCircularProps(),
4279
4295
  setup(props, _ref) {
4280
4296
  let {
4281
4297
  slots
@@ -4712,47 +4728,48 @@
4712
4728
  };
4713
4729
  }
4714
4730
 
4731
+ const makeVProgressLinearProps = propsFactory({
4732
+ absolute: Boolean,
4733
+ active: {
4734
+ type: Boolean,
4735
+ default: true
4736
+ },
4737
+ bgColor: String,
4738
+ bgOpacity: [Number, String],
4739
+ bufferValue: {
4740
+ type: [Number, String],
4741
+ default: 0
4742
+ },
4743
+ clickable: Boolean,
4744
+ color: String,
4745
+ height: {
4746
+ type: [Number, String],
4747
+ default: 4
4748
+ },
4749
+ indeterminate: Boolean,
4750
+ max: {
4751
+ type: [Number, String],
4752
+ default: 100
4753
+ },
4754
+ modelValue: {
4755
+ type: [Number, String],
4756
+ default: 0
4757
+ },
4758
+ reverse: Boolean,
4759
+ stream: Boolean,
4760
+ striped: Boolean,
4761
+ roundedBar: Boolean,
4762
+ ...makeComponentProps(),
4763
+ ...makeLocationProps({
4764
+ location: 'top'
4765
+ }),
4766
+ ...makeRoundedProps(),
4767
+ ...makeTagProps(),
4768
+ ...makeThemeProps()
4769
+ }, 'v-progress-linear');
4715
4770
  const VProgressLinear = genericComponent()({
4716
4771
  name: 'VProgressLinear',
4717
- props: {
4718
- absolute: Boolean,
4719
- active: {
4720
- type: Boolean,
4721
- default: true
4722
- },
4723
- bgColor: String,
4724
- bgOpacity: [Number, String],
4725
- bufferValue: {
4726
- type: [Number, String],
4727
- default: 0
4728
- },
4729
- clickable: Boolean,
4730
- color: String,
4731
- height: {
4732
- type: [Number, String],
4733
- default: 4
4734
- },
4735
- indeterminate: Boolean,
4736
- max: {
4737
- type: [Number, String],
4738
- default: 100
4739
- },
4740
- modelValue: {
4741
- type: [Number, String],
4742
- default: 0
4743
- },
4744
- reverse: Boolean,
4745
- stream: Boolean,
4746
- striped: Boolean,
4747
- roundedBar: Boolean,
4748
- ...makeComponentProps(),
4749
- ...makeLocationProps({
4750
- location: 'top'
4751
- }),
4752
- ...makeRoundedProps(),
4753
- ...makeTagProps(),
4754
- ...makeThemeProps()
4755
- },
4772
+ props: makeVProgressLinearProps(),
4756
4773
  emits: {
4757
4774
  'update:modelValue': value => true
4758
4775
  },
@@ -4762,7 +4779,8 @@
4762
4779
  } = _ref;
4763
4780
  const progress = useProxiedModel(props, 'modelValue');
4764
4781
  const {
4765
- isRtl
4782
+ isRtl,
4783
+ rtlClasses
4766
4784
  } = useRtl();
4767
4785
  const {
4768
4786
  themeClasses
@@ -4817,7 +4835,7 @@
4817
4835
  'v-progress-linear--rounded': props.rounded,
4818
4836
  'v-progress-linear--rounded-bar': props.roundedBar,
4819
4837
  'v-progress-linear--striped': props.striped
4820
- }, roundedClasses.value, themeClasses.value, props.class],
4838
+ }, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],
4821
4839
  "style": [{
4822
4840
  bottom: props.location === 'bottom' ? 0 : undefined,
4823
4841
  top: props.location === 'top' ? 0 : undefined,
@@ -5214,12 +5232,15 @@
5214
5232
 
5215
5233
  // Types
5216
5234
 
5217
- const VAppBarNavIcon = genericComponent()({
5218
- name: 'VAppBarNavIcon',
5219
- props: makeVBtnProps({
5235
+ const makeVAppBarNavIconProps = propsFactory({
5236
+ ...makeVBtnProps({
5220
5237
  icon: '$menu',
5221
5238
  variant: 'text'
5222
- }),
5239
+ })
5240
+ }, 'v-app-bar-nav-icon');
5241
+ const VAppBarNavIcon = genericComponent()({
5242
+ name: 'VAppBarNavIcon',
5243
+ props: makeVAppBarNavIconProps(),
5223
5244
  setup(props, _ref) {
5224
5245
  let {
5225
5246
  slots
@@ -5231,33 +5252,6 @@
5231
5252
  }
5232
5253
  });
5233
5254
 
5234
- const VToolbarItems = genericComponent()({
5235
- name: 'VToolbarItems',
5236
- props: {
5237
- ...makeComponentProps(),
5238
- ...makeVariantProps({
5239
- variant: 'text'
5240
- })
5241
- },
5242
- setup(props, _ref) {
5243
- let {
5244
- slots
5245
- } = _ref;
5246
- provideDefaults({
5247
- VBtn: {
5248
- color: vue.toRef(props, 'color'),
5249
- height: 'inherit',
5250
- variant: vue.toRef(props, 'variant')
5251
- }
5252
- });
5253
- useRender(() => vue.createVNode("div", {
5254
- "class": ['v-toolbar-items', props.class],
5255
- "style": props.style
5256
- }, [slots.default?.()]));
5257
- return {};
5258
- }
5259
- });
5260
-
5261
5255
  // Types
5262
5256
 
5263
5257
  const VAppBarTitle = genericComponent()({
@@ -5280,53 +5274,54 @@
5280
5274
  // Types
5281
5275
 
5282
5276
  const allowedTypes = ['success', 'info', 'warning', 'error'];
5277
+ const makeVAlertProps = propsFactory({
5278
+ border: {
5279
+ type: [Boolean, String],
5280
+ validator: val => {
5281
+ return typeof val === 'boolean' || ['top', 'end', 'bottom', 'start'].includes(val);
5282
+ }
5283
+ },
5284
+ borderColor: String,
5285
+ closable: Boolean,
5286
+ closeIcon: {
5287
+ type: IconValue,
5288
+ default: '$close'
5289
+ },
5290
+ closeLabel: {
5291
+ type: String,
5292
+ default: '$vuetify.close'
5293
+ },
5294
+ icon: {
5295
+ type: [Boolean, String, Function, Object],
5296
+ default: null
5297
+ },
5298
+ modelValue: {
5299
+ type: Boolean,
5300
+ default: true
5301
+ },
5302
+ prominent: Boolean,
5303
+ title: String,
5304
+ text: String,
5305
+ type: {
5306
+ type: String,
5307
+ validator: val => allowedTypes.includes(val)
5308
+ },
5309
+ ...makeComponentProps(),
5310
+ ...makeDensityProps(),
5311
+ ...makeDimensionProps(),
5312
+ ...makeElevationProps(),
5313
+ ...makeLocationProps(),
5314
+ ...makePositionProps(),
5315
+ ...makeRoundedProps(),
5316
+ ...makeTagProps(),
5317
+ ...makeThemeProps(),
5318
+ ...makeVariantProps({
5319
+ variant: 'flat'
5320
+ })
5321
+ }, 'v-alert');
5283
5322
  const VAlert = genericComponent()({
5284
5323
  name: 'VAlert',
5285
- props: {
5286
- border: {
5287
- type: [Boolean, String],
5288
- validator: val => {
5289
- return typeof val === 'boolean' || ['top', 'end', 'bottom', 'start'].includes(val);
5290
- }
5291
- },
5292
- borderColor: String,
5293
- closable: Boolean,
5294
- closeIcon: {
5295
- type: IconValue,
5296
- default: '$close'
5297
- },
5298
- closeLabel: {
5299
- type: String,
5300
- default: '$vuetify.close'
5301
- },
5302
- icon: {
5303
- type: [Boolean, String, Function, Object],
5304
- default: null
5305
- },
5306
- modelValue: {
5307
- type: Boolean,
5308
- default: true
5309
- },
5310
- prominent: Boolean,
5311
- title: String,
5312
- text: String,
5313
- type: {
5314
- type: String,
5315
- validator: val => allowedTypes.includes(val)
5316
- },
5317
- ...makeComponentProps(),
5318
- ...makeDensityProps(),
5319
- ...makeDimensionProps(),
5320
- ...makeElevationProps(),
5321
- ...makeLocationProps(),
5322
- ...makePositionProps(),
5323
- ...makeRoundedProps(),
5324
- ...makeTagProps(),
5325
- ...makeThemeProps(),
5326
- ...makeVariantProps({
5327
- variant: 'flat'
5328
- })
5329
- },
5324
+ props: makeVAlertProps(),
5330
5325
  emits: {
5331
5326
  'click:close': e => true,
5332
5327
  'update:modelValue': value => true
@@ -5389,7 +5384,6 @@
5389
5384
  return () => {
5390
5385
  const hasPrepend = !!(slots.prepend || icon.value);
5391
5386
  const hasTitle = !!(slots.title || props.title);
5392
- const hasText = !!(props.text || slots.text);
5393
5387
  const hasClose = !!(slots.close || props.closable);
5394
5388
  return isActive.value && vue.createVNode(props.tag, {
5395
5389
  "class": ['v-alert', props.border && {
@@ -5429,7 +5423,7 @@
5429
5423
  "key": "title"
5430
5424
  }, {
5431
5425
  default: () => [slots.title?.() ?? props.title]
5432
- }), hasText && (slots.text?.() ?? props.text), slots.default?.()]), slots.append && vue.createVNode("div", {
5426
+ }), slots.text?.() ?? props.text, slots.default?.()]), slots.append && vue.createVNode("div", {
5433
5427
  "key": "append",
5434
5428
  "class": "v-alert__append"
5435
5429
  }, [slots.append()]), hasClose && vue.createVNode("div", {
@@ -5487,14 +5481,15 @@
5487
5481
  };
5488
5482
  }
5489
5483
 
5484
+ const makeVLabelProps = propsFactory({
5485
+ text: String,
5486
+ clickable: Boolean,
5487
+ ...makeComponentProps(),
5488
+ ...makeThemeProps()
5489
+ }, 'v-label');
5490
5490
  const VLabel = genericComponent()({
5491
5491
  name: 'VLabel',
5492
- props: {
5493
- text: String,
5494
- clickable: Boolean,
5495
- ...makeComponentProps(),
5496
- ...makeThemeProps()
5497
- },
5492
+ props: makeVLabelProps(),
5498
5493
  setup(props, _ref) {
5499
5494
  let {
5500
5495
  slots
@@ -5509,12 +5504,13 @@
5509
5504
  }
5510
5505
  });
5511
5506
 
5507
+ const makeVFieldLabelProps = propsFactory({
5508
+ floating: Boolean,
5509
+ ...makeComponentProps()
5510
+ }, 'v-field-label');
5512
5511
  const VFieldLabel = genericComponent()({
5513
5512
  name: 'VFieldLabel',
5514
- props: {
5515
- floating: Boolean,
5516
- ...makeComponentProps()
5517
- },
5513
+ props: makeVFieldLabelProps(),
5518
5514
  setup(props, _ref) {
5519
5515
  let {
5520
5516
  slots
@@ -5633,6 +5629,9 @@
5633
5629
  const {
5634
5630
  roundedClasses
5635
5631
  } = useRounded(props);
5632
+ const {
5633
+ rtlClasses
5634
+ } = useRtl();
5636
5635
  const isActive = vue.computed(() => props.dirty || props.active);
5637
5636
  const hasLabel = vue.computed(() => !props.singleLine && !!(props.label || slots.label));
5638
5637
  const uid = getUid();
@@ -5726,7 +5725,7 @@
5726
5725
  'v-field--single-line': props.singleLine,
5727
5726
  'v-field--no-label': !label,
5728
5727
  [`v-field--variant-${props.variant}`]: true
5729
- }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, props.class],
5728
+ }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
5730
5729
  "style": [backgroundColorStyles.value, textColorStyles.value, props.style],
5731
5730
  "onClick": onClick
5732
5731
  }, attrs), [vue.createVNode("div", {
@@ -5821,24 +5820,25 @@
5821
5820
 
5822
5821
  // Types
5823
5822
 
5823
+ const makeVMessagesProps = propsFactory({
5824
+ active: Boolean,
5825
+ color: String,
5826
+ messages: {
5827
+ type: [Array, String],
5828
+ default: () => []
5829
+ },
5830
+ ...makeComponentProps(),
5831
+ ...makeTransitionProps({
5832
+ transition: {
5833
+ component: VSlideYTransition,
5834
+ leaveAbsolute: true,
5835
+ group: true
5836
+ }
5837
+ })
5838
+ }, 'v-messages');
5824
5839
  const VMessages = genericComponent()({
5825
5840
  name: 'VMessages',
5826
- props: {
5827
- active: Boolean,
5828
- color: String,
5829
- messages: {
5830
- type: [Array, String],
5831
- default: () => []
5832
- },
5833
- ...makeComponentProps(),
5834
- ...makeTransitionProps({
5835
- transition: {
5836
- component: VSlideYTransition,
5837
- leaveAbsolute: true,
5838
- group: true
5839
- }
5840
- })
5841
- },
5841
+ props: makeVMessagesProps(),
5842
5842
  setup(props, _ref) {
5843
5843
  let {
5844
5844
  slots
@@ -5867,7 +5867,7 @@
5867
5867
  }
5868
5868
  });
5869
5869
 
5870
- // Utilities
5870
+ // Composables
5871
5871
 
5872
5872
  // Types
5873
5873
 
@@ -5889,7 +5889,7 @@
5889
5889
  const model = useProxiedModel(props, 'modelValue');
5890
5890
  const isDisabled = vue.computed(() => props.disabled);
5891
5891
  const isReadonly = vue.computed(() => props.readonly);
5892
- const isValidating = vue.ref(false);
5892
+ const isValidating = vue.shallowRef(false);
5893
5893
  const items = vue.ref([]);
5894
5894
  const errors = vue.ref([]);
5895
5895
  async function validate() {
@@ -6028,7 +6028,7 @@
6028
6028
  const validationModel = vue.computed(() => props.validationValue === undefined ? model.value : props.validationValue);
6029
6029
  const form = useForm();
6030
6030
  const internalErrorMessages = vue.ref([]);
6031
- const isPristine = vue.ref(true);
6031
+ const isPristine = vue.shallowRef(true);
6032
6032
  const isDirty = vue.computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
6033
6033
  const isDisabled = vue.computed(() => !!(props.disabled || form?.isDisabled.value));
6034
6034
  const isReadonly = vue.computed(() => !!(props.readonly || form?.isReadonly.value));
@@ -6040,7 +6040,7 @@
6040
6040
  if (!props.rules.length) return true;
6041
6041
  return isPristine.value ? null : true;
6042
6042
  });
6043
- const isValidating = vue.ref(false);
6043
+ const isValidating = vue.shallowRef(false);
6044
6044
  const validationClasses = vue.computed(() => {
6045
6045
  return {
6046
6046
  [`${name}--error`]: isValid.value === false,
@@ -6250,23 +6250,24 @@
6250
6250
  }
6251
6251
  });
6252
6252
 
6253
+ const makeVCounterProps = propsFactory({
6254
+ active: Boolean,
6255
+ max: [Number, String],
6256
+ value: {
6257
+ type: [Number, String],
6258
+ default: 0
6259
+ },
6260
+ ...makeComponentProps(),
6261
+ ...makeTransitionProps({
6262
+ transition: {
6263
+ component: VSlideYTransition
6264
+ }
6265
+ })
6266
+ }, 'v-counter');
6253
6267
  const VCounter = genericComponent()({
6254
6268
  name: 'VCounter',
6255
6269
  functional: true,
6256
- props: {
6257
- active: Boolean,
6258
- max: [Number, String],
6259
- value: {
6260
- type: [Number, String],
6261
- default: 0
6262
- },
6263
- ...makeComponentProps(),
6264
- ...makeTransitionProps({
6265
- transition: {
6266
- component: VSlideYTransition
6267
- }
6268
- })
6269
- },
6270
+ props: makeVCounterProps(),
6270
6271
  setup(props, _ref) {
6271
6272
  let {
6272
6273
  slots
@@ -6568,6 +6569,7 @@
6568
6569
  const makeSelectionControlGroupProps = propsFactory({
6569
6570
  color: String,
6570
6571
  disabled: Boolean,
6572
+ defaultsTarget: String,
6571
6573
  error: Boolean,
6572
6574
  id: String,
6573
6575
  inline: Boolean,
@@ -6589,19 +6591,18 @@
6589
6591
  type: Function,
6590
6592
  default: deepEqual
6591
6593
  },
6592
- ...makeThemeProps(),
6593
- ...makeDensityProps()
6594
+ ...makeComponentProps(),
6595
+ ...makeDensityProps(),
6596
+ ...makeThemeProps()
6597
+ }, 'selection-control-group');
6598
+ const makeVSelectionControlGroupProps = propsFactory({
6599
+ ...makeSelectionControlGroupProps({
6600
+ defaultsTarget: 'VSelectionControl'
6601
+ })
6594
6602
  }, 'v-selection-control-group');
6595
6603
  const VSelectionControlGroup = genericComponent()({
6596
6604
  name: 'VSelectionControlGroup',
6597
- props: {
6598
- defaultsTarget: {
6599
- type: String,
6600
- default: 'VSelectionControl'
6601
- },
6602
- ...makeComponentProps(),
6603
- ...makeSelectionControlGroupProps()
6604
- },
6605
+ props: makeVSelectionControlGroupProps(),
6605
6606
  emits: {
6606
6607
  'update:modelValue': val => true
6607
6608
  },
@@ -6737,8 +6738,8 @@
6737
6738
  } = useSelectionControl(props);
6738
6739
  const uid = getUid();
6739
6740
  const id = vue.computed(() => props.id || `input-${uid}`);
6740
- const isFocused = vue.ref(false);
6741
- const isFocusVisible = vue.ref(false);
6741
+ const isFocused = vue.shallowRef(false);
6742
+ const isFocusVisible = vue.shallowRef(false);
6742
6743
  const input = vue.ref();
6743
6744
  group?.onForceUpdate(() => {
6744
6745
  if (input.value) {
@@ -6875,13 +6876,14 @@
6875
6876
 
6876
6877
  // Types
6877
6878
 
6879
+ const makeVCheckboxProps = propsFactory({
6880
+ ...makeVInputProps(),
6881
+ ...omit(makeVCheckboxBtnProps(), ['inline'])
6882
+ }, 'v-checkbox');
6878
6883
  const VCheckbox = genericComponent()({
6879
6884
  name: 'VCheckbox',
6880
6885
  inheritAttrs: false,
6881
- props: {
6882
- ...makeVInputProps(),
6883
- ...omit(makeVCheckboxBtnProps(), ['inline'])
6884
- },
6886
+ props: makeVCheckboxProps(),
6885
6887
  emits: {
6886
6888
  'update:focused': focused => true
6887
6889
  },
@@ -6996,25 +6998,26 @@
6996
6998
  // Types
6997
6999
 
6998
7000
  const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group');
7001
+ const makeVChipGroupProps = propsFactory({
7002
+ column: Boolean,
7003
+ filter: Boolean,
7004
+ valueComparator: {
7005
+ type: Function,
7006
+ default: deepEqual
7007
+ },
7008
+ ...makeComponentProps(),
7009
+ ...makeGroupProps({
7010
+ selectedClass: 'v-chip--selected'
7011
+ }),
7012
+ ...makeTagProps(),
7013
+ ...makeThemeProps(),
7014
+ ...makeVariantProps({
7015
+ variant: 'tonal'
7016
+ })
7017
+ }, 'v-chip-group');
6999
7018
  const VChipGroup = genericComponent()({
7000
7019
  name: 'VChipGroup',
7001
- props: {
7002
- column: Boolean,
7003
- filter: Boolean,
7004
- valueComparator: {
7005
- type: Function,
7006
- default: deepEqual
7007
- },
7008
- ...makeComponentProps(),
7009
- ...makeGroupProps({
7010
- selectedClass: 'v-chip--selected'
7011
- }),
7012
- ...makeTagProps(),
7013
- ...makeThemeProps(),
7014
- ...makeVariantProps({
7015
- variant: 'tonal'
7016
- })
7017
- },
7020
+ props: makeVChipGroupProps(),
7018
7021
  emits: {
7019
7022
  'update:modelValue': value => true
7020
7023
  },
@@ -7058,65 +7061,66 @@
7058
7061
  }
7059
7062
  });
7060
7063
 
7064
+ const makeVChipProps = propsFactory({
7065
+ activeClass: String,
7066
+ appendAvatar: String,
7067
+ appendIcon: IconValue,
7068
+ closable: Boolean,
7069
+ closeIcon: {
7070
+ type: IconValue,
7071
+ default: '$delete'
7072
+ },
7073
+ closeLabel: {
7074
+ type: String,
7075
+ default: '$vuetify.close'
7076
+ },
7077
+ draggable: Boolean,
7078
+ filter: Boolean,
7079
+ filterIcon: {
7080
+ type: String,
7081
+ default: '$complete'
7082
+ },
7083
+ label: Boolean,
7084
+ link: {
7085
+ type: Boolean,
7086
+ default: undefined
7087
+ },
7088
+ pill: Boolean,
7089
+ prependAvatar: String,
7090
+ prependIcon: IconValue,
7091
+ ripple: {
7092
+ type: Boolean,
7093
+ default: true
7094
+ },
7095
+ text: String,
7096
+ modelValue: {
7097
+ type: Boolean,
7098
+ default: true
7099
+ },
7100
+ onClick: EventProp(),
7101
+ onClickOnce: EventProp(),
7102
+ ...makeBorderProps(),
7103
+ ...makeComponentProps(),
7104
+ ...makeDensityProps(),
7105
+ ...makeElevationProps(),
7106
+ ...makeGroupItemProps(),
7107
+ ...makeRoundedProps(),
7108
+ ...makeRouterProps(),
7109
+ ...makeSizeProps(),
7110
+ ...makeTagProps({
7111
+ tag: 'span'
7112
+ }),
7113
+ ...makeThemeProps(),
7114
+ ...makeVariantProps({
7115
+ variant: 'tonal'
7116
+ })
7117
+ }, 'v-chip');
7061
7118
  const VChip = genericComponent()({
7062
7119
  name: 'VChip',
7063
7120
  directives: {
7064
7121
  Ripple
7065
7122
  },
7066
- props: {
7067
- activeClass: String,
7068
- appendAvatar: String,
7069
- appendIcon: IconValue,
7070
- closable: Boolean,
7071
- closeIcon: {
7072
- type: IconValue,
7073
- default: '$delete'
7074
- },
7075
- closeLabel: {
7076
- type: String,
7077
- default: '$vuetify.close'
7078
- },
7079
- draggable: Boolean,
7080
- filter: Boolean,
7081
- filterIcon: {
7082
- type: String,
7083
- default: '$complete'
7084
- },
7085
- label: Boolean,
7086
- link: {
7087
- type: Boolean,
7088
- default: undefined
7089
- },
7090
- pill: Boolean,
7091
- prependAvatar: String,
7092
- prependIcon: IconValue,
7093
- ripple: {
7094
- type: Boolean,
7095
- default: true
7096
- },
7097
- text: String,
7098
- modelValue: {
7099
- type: Boolean,
7100
- default: true
7101
- },
7102
- onClick: EventProp(),
7103
- onClickOnce: EventProp(),
7104
- ...makeBorderProps(),
7105
- ...makeComponentProps(),
7106
- ...makeDensityProps(),
7107
- ...makeElevationProps(),
7108
- ...makeGroupItemProps(),
7109
- ...makeRoundedProps(),
7110
- ...makeRouterProps(),
7111
- ...makeSizeProps(),
7112
- ...makeTagProps({
7113
- tag: 'span'
7114
- }),
7115
- ...makeThemeProps(),
7116
- ...makeVariantProps({
7117
- variant: 'tonal'
7118
- })
7119
- },
7123
+ props: makeVChipProps(),
7120
7124
  emits: {
7121
7125
  'click:close': e => true,
7122
7126
  'update:modelValue': value => true,
@@ -7245,14 +7249,16 @@
7245
7249
  start: true
7246
7250
  }
7247
7251
  }
7248
- }, slots.prepend)]), slots.default?.({
7252
+ }, slots.prepend)]), vue.createVNode("div", {
7253
+ "class": "v-chip__content"
7254
+ }, [slots.default?.({
7249
7255
  isSelected: group?.isSelected.value,
7250
7256
  selectedClass: group?.selectedClass.value,
7251
7257
  select: group?.select,
7252
7258
  toggle: group?.toggle,
7253
7259
  value: group?.value.value,
7254
7260
  disabled: props.disabled
7255
- }) ?? props.text, hasAppend && vue.createVNode("div", {
7261
+ }) ?? props.text]), hasAppend && vue.createVNode("div", {
7256
7262
  "key": "append",
7257
7263
  "class": "v-chip__append"
7258
7264
  }, [!slots.append ? vue.createVNode(vue.Fragment, null, [props.appendIcon && vue.createVNode(VIcon, {
@@ -7297,17 +7303,18 @@
7297
7303
  }
7298
7304
  });
7299
7305
 
7306
+ const makeVDividerProps = propsFactory({
7307
+ color: String,
7308
+ inset: Boolean,
7309
+ length: [Number, String],
7310
+ thickness: [Number, String],
7311
+ vertical: Boolean,
7312
+ ...makeComponentProps(),
7313
+ ...makeThemeProps()
7314
+ }, 'v-divider');
7300
7315
  const VDivider = genericComponent()({
7301
7316
  name: 'VDivider',
7302
- props: {
7303
- color: String,
7304
- inset: Boolean,
7305
- length: [Number, String],
7306
- thickness: [Number, String],
7307
- vertical: Boolean,
7308
- ...makeComponentProps(),
7309
- ...makeThemeProps()
7310
- },
7317
+ props: makeVDividerProps(),
7311
7318
  setup(props, _ref) {
7312
7319
  let {
7313
7320
  attrs
@@ -7349,11 +7356,11 @@
7349
7356
  const ListKey = Symbol.for('vuetify:list');
7350
7357
  function createList() {
7351
7358
  const parent = vue.inject(ListKey, {
7352
- hasPrepend: vue.ref(false),
7359
+ hasPrepend: vue.shallowRef(false),
7353
7360
  updateHasPrepend: () => null
7354
7361
  });
7355
7362
  const data = {
7356
- hasPrepend: vue.ref(false),
7363
+ hasPrepend: vue.shallowRef(false),
7357
7364
  updateHasPrepend: value => {
7358
7365
  if (value) data.hasPrepend.value = value;
7359
7366
  }
@@ -7620,11 +7627,13 @@
7620
7627
  return strategy;
7621
7628
  };
7622
7629
 
7630
+ // Composables
7631
+
7623
7632
  // Types
7624
7633
 
7625
7634
  const VNestedSymbol = Symbol.for('vuetify:nested');
7626
7635
  const emptyNested = {
7627
- id: vue.ref(),
7636
+ id: vue.shallowRef(),
7628
7637
  root: {
7629
7638
  register: () => null,
7630
7639
  unregister: () => null,
@@ -7693,7 +7702,7 @@
7693
7702
  }
7694
7703
  const vm = getCurrentInstance('nested');
7695
7704
  const nested = {
7696
- id: vue.ref(),
7705
+ id: vue.shallowRef(),
7697
7706
  root: {
7698
7707
  opened,
7699
7708
  selected,
@@ -7833,16 +7842,14 @@
7833
7842
  appendIcon: IconValue,
7834
7843
  fluid: Boolean,
7835
7844
  subgroup: Boolean,
7845
+ title: String,
7836
7846
  value: null,
7837
7847
  ...makeComponentProps(),
7838
7848
  ...makeTagProps()
7839
7849
  }, 'v-list-group');
7840
7850
  const VListGroup = genericComponent()({
7841
7851
  name: 'VListGroup',
7842
- props: {
7843
- title: String,
7844
- ...makeVListGroupProps()
7845
- },
7852
+ props: makeVListGroupProps(),
7846
7853
  setup(props, _ref2) {
7847
7854
  let {
7848
7855
  slots
@@ -7918,51 +7925,52 @@
7918
7925
 
7919
7926
  // Types
7920
7927
 
7928
+ const makeVListItemProps = propsFactory({
7929
+ active: {
7930
+ type: Boolean,
7931
+ default: undefined
7932
+ },
7933
+ activeClass: String,
7934
+ activeColor: String,
7935
+ appendAvatar: String,
7936
+ appendIcon: IconValue,
7937
+ disabled: Boolean,
7938
+ lines: String,
7939
+ link: {
7940
+ type: Boolean,
7941
+ default: undefined
7942
+ },
7943
+ nav: Boolean,
7944
+ prependAvatar: String,
7945
+ prependIcon: IconValue,
7946
+ ripple: {
7947
+ type: Boolean,
7948
+ default: true
7949
+ },
7950
+ subtitle: [String, Number, Boolean],
7951
+ title: [String, Number, Boolean],
7952
+ value: null,
7953
+ onClick: EventProp(),
7954
+ onClickOnce: EventProp(),
7955
+ ...makeBorderProps(),
7956
+ ...makeComponentProps(),
7957
+ ...makeDensityProps(),
7958
+ ...makeDimensionProps(),
7959
+ ...makeElevationProps(),
7960
+ ...makeRoundedProps(),
7961
+ ...makeRouterProps(),
7962
+ ...makeTagProps(),
7963
+ ...makeThemeProps(),
7964
+ ...makeVariantProps({
7965
+ variant: 'text'
7966
+ })
7967
+ }, 'v-list-item');
7921
7968
  const VListItem = genericComponent()({
7922
7969
  name: 'VListItem',
7923
7970
  directives: {
7924
7971
  Ripple
7925
7972
  },
7926
- props: {
7927
- active: {
7928
- type: Boolean,
7929
- default: undefined
7930
- },
7931
- activeClass: String,
7932
- activeColor: String,
7933
- appendAvatar: String,
7934
- appendIcon: IconValue,
7935
- disabled: Boolean,
7936
- lines: String,
7937
- link: {
7938
- type: Boolean,
7939
- default: undefined
7940
- },
7941
- nav: Boolean,
7942
- prependAvatar: String,
7943
- prependIcon: IconValue,
7944
- ripple: {
7945
- type: Boolean,
7946
- default: true
7947
- },
7948
- subtitle: [String, Number, Boolean],
7949
- title: [String, Number, Boolean],
7950
- value: null,
7951
- onClick: EventProp(),
7952
- onClickOnce: EventProp(),
7953
- ...makeBorderProps(),
7954
- ...makeComponentProps(),
7955
- ...makeDensityProps(),
7956
- ...makeDimensionProps(),
7957
- ...makeElevationProps(),
7958
- ...makeRoundedProps(),
7959
- ...makeRouterProps(),
7960
- ...makeTagProps(),
7961
- ...makeThemeProps(),
7962
- ...makeVariantProps({
7963
- variant: 'text'
7964
- })
7965
- },
7973
+ props: makeVListItemProps(),
7966
7974
  emits: {
7967
7975
  click: e => true
7968
7976
  },
@@ -8149,16 +8157,17 @@
8149
8157
  }
8150
8158
  });
8151
8159
 
8160
+ const makeVListSubheaderProps = propsFactory({
8161
+ color: String,
8162
+ inset: Boolean,
8163
+ sticky: Boolean,
8164
+ title: String,
8165
+ ...makeComponentProps(),
8166
+ ...makeTagProps()
8167
+ }, 'v-list-subheader');
8152
8168
  const VListSubheader = genericComponent()({
8153
8169
  name: 'VListSubheader',
8154
- props: {
8155
- color: String,
8156
- inset: Boolean,
8157
- sticky: Boolean,
8158
- title: String,
8159
- ...makeComponentProps(),
8160
- ...makeTagProps()
8161
- },
8170
+ props: makeVListSubheaderProps(),
8162
8171
  setup(props, _ref) {
8163
8172
  let {
8164
8173
  slots
@@ -8189,11 +8198,12 @@
8189
8198
 
8190
8199
  // Types
8191
8200
 
8201
+ const makeVListChildrenProps = propsFactory({
8202
+ items: Array
8203
+ }, 'v-list-children');
8192
8204
  const VListChildren = genericComponent()({
8193
8205
  name: 'VListChildren',
8194
- props: {
8195
- items: Array
8196
- },
8206
+ props: makeVListChildrenProps(),
8197
8207
  setup(props, _ref) {
8198
8208
  let {
8199
8209
  slots
@@ -8379,39 +8389,40 @@
8379
8389
  items
8380
8390
  };
8381
8391
  }
8392
+ const makeVListProps = propsFactory({
8393
+ activeColor: String,
8394
+ activeClass: String,
8395
+ bgColor: String,
8396
+ disabled: Boolean,
8397
+ lines: {
8398
+ type: [Boolean, String],
8399
+ default: 'one'
8400
+ },
8401
+ nav: Boolean,
8402
+ ...makeNestedProps({
8403
+ selectStrategy: 'single-leaf',
8404
+ openStrategy: 'list'
8405
+ }),
8406
+ ...makeBorderProps(),
8407
+ ...makeComponentProps(),
8408
+ ...makeDensityProps(),
8409
+ ...makeDimensionProps(),
8410
+ ...makeElevationProps(),
8411
+ itemType: {
8412
+ type: String,
8413
+ default: 'type'
8414
+ },
8415
+ ...makeItemsProps(),
8416
+ ...makeRoundedProps(),
8417
+ ...makeTagProps(),
8418
+ ...makeThemeProps(),
8419
+ ...makeVariantProps({
8420
+ variant: 'text'
8421
+ })
8422
+ }, 'v-list');
8382
8423
  const VList = genericComponent()({
8383
8424
  name: 'VList',
8384
- props: {
8385
- activeColor: String,
8386
- activeClass: String,
8387
- bgColor: String,
8388
- disabled: Boolean,
8389
- lines: {
8390
- type: [Boolean, String],
8391
- default: 'one'
8392
- },
8393
- nav: Boolean,
8394
- ...makeNestedProps({
8395
- selectStrategy: 'single-leaf',
8396
- openStrategy: 'list'
8397
- }),
8398
- ...makeBorderProps(),
8399
- ...makeComponentProps(),
8400
- ...makeDensityProps(),
8401
- ...makeDimensionProps(),
8402
- ...makeElevationProps(),
8403
- itemType: {
8404
- type: String,
8405
- default: 'type'
8406
- },
8407
- ...makeItemsProps(),
8408
- ...makeRoundedProps(),
8409
- ...makeTagProps(),
8410
- ...makeThemeProps(),
8411
- ...makeVariantProps({
8412
- variant: 'text'
8413
- })
8414
- },
8425
+ props: makeVListProps(),
8415
8426
  emits: {
8416
8427
  'update:selected': val => true,
8417
8428
  'update:opened': val => true,
@@ -8471,7 +8482,7 @@
8471
8482
  variant: vue.toRef(props, 'variant')
8472
8483
  }
8473
8484
  });
8474
- const isFocused = vue.ref(false);
8485
+ const isFocused = vue.shallowRef(false);
8475
8486
  const contentRef = vue.ref();
8476
8487
  function onFocusin(e) {
8477
8488
  isFocused.value = true;
@@ -8532,14 +8543,15 @@
8532
8543
 
8533
8544
  const VListImg = createSimpleFunctional('v-list-img');
8534
8545
 
8546
+ const makeVListItemActionProps = propsFactory({
8547
+ start: Boolean,
8548
+ end: Boolean,
8549
+ ...makeComponentProps(),
8550
+ ...makeTagProps()
8551
+ }, 'v-list-item-action');
8535
8552
  const VListItemAction = genericComponent()({
8536
8553
  name: 'VListItemAction',
8537
- props: {
8538
- start: Boolean,
8539
- end: Boolean,
8540
- ...makeComponentProps(),
8541
- ...makeTagProps()
8542
- },
8554
+ props: makeVListItemActionProps(),
8543
8555
  setup(props, _ref) {
8544
8556
  let {
8545
8557
  slots
@@ -8555,14 +8567,15 @@
8555
8567
  }
8556
8568
  });
8557
8569
 
8570
+ const makeVListItemMediaProps = propsFactory({
8571
+ start: Boolean,
8572
+ end: Boolean,
8573
+ ...makeComponentProps(),
8574
+ ...makeTagProps()
8575
+ }, 'v-list-item-media');
8558
8576
  const VListItemMedia = genericComponent()({
8559
8577
  name: 'VListItemMedia',
8560
- props: {
8561
- start: Boolean,
8562
- end: Boolean,
8563
- ...makeComponentProps(),
8564
- ...makeTagProps()
8565
- },
8578
+ props: makeVListItemMediaProps(),
8566
8579
  setup(props, _ref) {
8567
8580
  let {
8568
8581
  slots
@@ -8866,7 +8879,7 @@
8866
8879
  eager: Boolean
8867
8880
  }, 'lazy');
8868
8881
  function useLazy(props, active) {
8869
- const isBooted = vue.ref(false);
8882
+ const isBooted = vue.shallowRef(false);
8870
8883
  const hasContent = vue.computed(() => isBooted.value || props.eager || active.value);
8871
8884
  vue.watch(active, () => isBooted.value = true);
8872
8885
  function onAfterLeave() {
@@ -9024,7 +9037,9 @@
9024
9037
  const activatorFixed = isFixedPosition(data.activatorEl.value);
9025
9038
  if (activatorFixed) {
9026
9039
  Object.assign(contentStyles.value, {
9027
- position: 'fixed'
9040
+ position: 'fixed',
9041
+ top: 0,
9042
+ [data.isRtl.value ? 'right' : 'left']: 0
9028
9043
  });
9029
9044
  }
9030
9045
  const {
@@ -9096,8 +9111,8 @@
9096
9111
  if (!scrollParents.length) {
9097
9112
  scrollParents.push(document.documentElement);
9098
9113
  if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {
9099
- contentBox.x += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0);
9100
- contentBox.y += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0);
9114
+ contentBox.x -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0);
9115
+ contentBox.y -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0);
9101
9116
  }
9102
9117
  }
9103
9118
  const viewport = scrollParents.reduce((box, el) => {
@@ -9526,10 +9541,10 @@
9526
9541
  thresholds,
9527
9542
  mobileBreakpoint
9528
9543
  } = parseDisplayOptions(options);
9529
- const height = vue.ref(getClientHeight(ssr));
9544
+ const height = vue.shallowRef(getClientHeight(ssr));
9530
9545
  const platform = vue.shallowRef(getPlatform(ssr));
9531
9546
  const state = vue.reactive({});
9532
- const width = vue.ref(getClientWidth(ssr));
9547
+ const width = vue.shallowRef(getClientWidth(ssr));
9533
9548
  function updateSize() {
9534
9549
  height.value = getClientHeight();
9535
9550
  width.value = getClientWidth();
@@ -9589,20 +9604,20 @@
9589
9604
  return display;
9590
9605
  }
9591
9606
 
9592
- // Utilities
9607
+ // Composables
9593
9608
  function useHydration() {
9594
- if (!IN_BROWSER) return vue.ref(false);
9609
+ if (!IN_BROWSER) return vue.shallowRef(false);
9595
9610
  const {
9596
9611
  ssr
9597
9612
  } = useDisplay();
9598
9613
  if (ssr) {
9599
- const isMounted = vue.ref(false);
9614
+ const isMounted = vue.shallowRef(false);
9600
9615
  vue.onMounted(() => {
9601
9616
  isMounted.value = true;
9602
9617
  });
9603
9618
  return isMounted;
9604
9619
  } else {
9605
- return vue.ref(true);
9620
+ return vue.shallowRef(true);
9606
9621
  }
9607
9622
  }
9608
9623
 
@@ -9616,6 +9631,8 @@
9616
9631
  };
9617
9632
  }
9618
9633
 
9634
+ // Composables
9635
+
9619
9636
  // Types
9620
9637
 
9621
9638
  const StackSymbol = Symbol.for('vuetify:stack');
@@ -9628,7 +9645,7 @@
9628
9645
  activeChildren: new Set()
9629
9646
  });
9630
9647
  vue.provide(StackSymbol, stack);
9631
- const _zIndex = vue.ref(+zIndex.value);
9648
+ const _zIndex = vue.shallowRef(+zIndex.value);
9632
9649
  useToggleScope(isActive, () => {
9633
9650
  const lastZIndex = globalStack.at(-1)?.[1];
9634
9651
  _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value;
@@ -9644,7 +9661,7 @@
9644
9661
  parent?.activeChildren.delete(vm.uid);
9645
9662
  });
9646
9663
  });
9647
- const globalTop = vue.ref(true);
9664
+ const globalTop = vue.shallowRef(true);
9648
9665
  if (createStackEntry) {
9649
9666
  vue.watchEffect(() => {
9650
9667
  const _isTop = globalStack.at(-1)?.[0] === vm.uid;
@@ -9750,7 +9767,7 @@
9750
9767
  });
9751
9768
  if (!el._clickOutside) {
9752
9769
  el._clickOutside = {
9753
- lastMousedownWasOutside: true
9770
+ lastMousedownWasOutside: false
9754
9771
  };
9755
9772
  }
9756
9773
  el._clickOutside[binding.instance.$.uid] = {
@@ -10026,24 +10043,25 @@
10026
10043
 
10027
10044
  // Types
10028
10045
 
10046
+ const makeVMenuProps = propsFactory({
10047
+ // TODO
10048
+ // disableKeys: Boolean,
10049
+ id: String,
10050
+ ...omit(makeVOverlayProps({
10051
+ closeDelay: 250,
10052
+ closeOnContentClick: true,
10053
+ locationStrategy: 'connected',
10054
+ openDelay: 300,
10055
+ scrim: false,
10056
+ scrollStrategy: 'reposition',
10057
+ transition: {
10058
+ component: VDialogTransition
10059
+ }
10060
+ }), ['absolute'])
10061
+ }, 'v-menu');
10029
10062
  const VMenu = genericComponent()({
10030
10063
  name: 'VMenu',
10031
- props: {
10032
- // TODO
10033
- // disableKeys: Boolean,
10034
- id: String,
10035
- ...omit(makeVOverlayProps({
10036
- closeDelay: 250,
10037
- closeOnContentClick: true,
10038
- locationStrategy: 'connected',
10039
- openDelay: 300,
10040
- scrim: false,
10041
- scrollStrategy: 'reposition',
10042
- transition: {
10043
- component: VDialogTransition
10044
- }
10045
- }), ['absolute'])
10046
- },
10064
+ props: makeVMenuProps(),
10047
10065
  emits: {
10048
10066
  'update:modelValue': value => true
10049
10067
  },
@@ -10059,7 +10077,7 @@
10059
10077
  const id = vue.computed(() => props.id || `v-menu-${uid}`);
10060
10078
  const overlay = vue.ref();
10061
10079
  const parent = vue.inject(VMenuSymbol, null);
10062
- const openChildren = vue.ref(0);
10080
+ const openChildren = vue.shallowRef(0);
10063
10081
  vue.provide(VMenuSymbol, {
10064
10082
  register() {
10065
10083
  ++openChildren.value;
@@ -10149,20 +10167,21 @@
10149
10167
  ...makeItemsProps({
10150
10168
  itemChildren: false
10151
10169
  })
10170
+ }, 'select');
10171
+ const makeVSelectProps = propsFactory({
10172
+ ...makeSelectProps(),
10173
+ ...omit(makeVTextFieldProps({
10174
+ modelValue: null
10175
+ }), ['validationValue', 'dirty', 'appendInnerIcon']),
10176
+ ...makeTransitionProps({
10177
+ transition: {
10178
+ component: VDialogTransition
10179
+ }
10180
+ })
10152
10181
  }, 'v-select');
10153
10182
  const VSelect = genericComponent()({
10154
10183
  name: 'VSelect',
10155
- props: {
10156
- ...makeSelectProps(),
10157
- ...omit(makeVTextFieldProps({
10158
- modelValue: null
10159
- }), ['validationValue', 'dirty', 'appendInnerIcon']),
10160
- ...makeTransitionProps({
10161
- transition: {
10162
- component: VDialogTransition
10163
- }
10164
- })
10165
- },
10184
+ props: makeVSelectProps(),
10166
10185
  emits: {
10167
10186
  'update:focused': focused => true,
10168
10187
  'update:modelValue': val => true,
@@ -10201,7 +10220,7 @@
10201
10220
  });
10202
10221
  });
10203
10222
  const selected = vue.computed(() => selections.value.map(selection => selection.props.value));
10204
- const isFocused = vue.ref(false);
10223
+ const isFocused = vue.shallowRef(false);
10205
10224
  let keyboardLookupPrefix = '';
10206
10225
  let keyboardLookupLastTime;
10207
10226
  const displayItems = vue.computed(() => {
@@ -10281,14 +10300,14 @@
10281
10300
  menu.value = false;
10282
10301
  }
10283
10302
  }
10284
- function onFocusin(e) {
10285
- isFocused.value = true;
10286
- }
10287
- function onFocusout(e) {
10288
- if (e.relatedTarget == null) {
10303
+ function onAfterLeave() {
10304
+ if (isFocused.value) {
10289
10305
  vTextFieldRef.value?.focus();
10290
10306
  }
10291
10307
  }
10308
+ function onFocusin(e) {
10309
+ isFocused.value = true;
10310
+ }
10292
10311
  useRender(() => {
10293
10312
  const hasChips = !!(props.chips || slots.chip);
10294
10313
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
@@ -10332,15 +10351,15 @@
10332
10351
  "maxHeight": 310,
10333
10352
  "openOnClick": false,
10334
10353
  "closeOnContentClick": false,
10335
- "transition": props.transition
10354
+ "transition": props.transition,
10355
+ "onAfterLeave": onAfterLeave
10336
10356
  }, props.menuProps), {
10337
10357
  default: () => [hasList && vue.createVNode(VList, {
10338
10358
  "ref": listRef,
10339
10359
  "selected": selected.value,
10340
10360
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
10341
10361
  "onMousedown": e => e.preventDefault(),
10342
- "onFocusin": onFocusin,
10343
- "onFocusout": onFocusout
10362
+ "onFocusin": onFocusin
10344
10363
  }, {
10345
10364
  default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
10346
10365
  "title": t(props.noDataText)
@@ -10545,23 +10564,24 @@
10545
10564
  "class": "v-autocomplete__unmask"
10546
10565
  }, [text.substr(matches + length)])]) : text;
10547
10566
  }
10567
+ const makeVAutocompleteProps = propsFactory({
10568
+ // TODO: implement post keyboard support
10569
+ // autoSelectFirst: Boolean,
10570
+ search: String,
10571
+ ...makeFilterProps({
10572
+ filterKeys: ['title']
10573
+ }),
10574
+ ...makeSelectProps(),
10575
+ ...omit(makeVTextFieldProps({
10576
+ modelValue: null
10577
+ }), ['validationValue', 'dirty', 'appendInnerIcon']),
10578
+ ...makeTransitionProps({
10579
+ transition: false
10580
+ })
10581
+ }, 'v-autocomplete');
10548
10582
  const VAutocomplete = genericComponent()({
10549
10583
  name: 'VAutocomplete',
10550
- props: {
10551
- // TODO: implement post keyboard support
10552
- // autoSelectFirst: Boolean,
10553
- search: String,
10554
- ...makeFilterProps({
10555
- filterKeys: ['title']
10556
- }),
10557
- ...makeSelectProps(),
10558
- ...omit(makeVTextFieldProps({
10559
- modelValue: null
10560
- }), ['validationValue', 'dirty', 'appendInnerIcon']),
10561
- ...makeTransitionProps({
10562
- transition: false
10563
- })
10564
- },
10584
+ props: makeVAutocompleteProps(),
10565
10585
  emits: {
10566
10586
  'update:focused': focused => true,
10567
10587
  'update:search': val => true,
@@ -10576,8 +10596,8 @@
10576
10596
  t
10577
10597
  } = useLocale();
10578
10598
  const vTextFieldRef = vue.ref();
10579
- const isFocused = vue.ref(false);
10580
- const isPristine = vue.ref(true);
10599
+ const isFocused = vue.shallowRef(false);
10600
+ const isPristine = vue.shallowRef(true);
10581
10601
  const vMenuRef = vue.ref();
10582
10602
  const _menu = useProxiedModel(props, 'menu');
10583
10603
  const menu = vue.computed({
@@ -10587,7 +10607,7 @@
10587
10607
  _menu.value = v;
10588
10608
  }
10589
10609
  });
10590
- const selectionIndex = vue.ref(-1);
10610
+ const selectionIndex = vue.shallowRef(-1);
10591
10611
  const color = vue.computed(() => vTextFieldRef.value?.color);
10592
10612
  const {
10593
10613
  items,
@@ -10690,17 +10710,15 @@
10690
10710
  search.value = e.target.value;
10691
10711
  }
10692
10712
  function onAfterLeave() {
10693
- if (isFocused.value) isPristine.value = true;
10713
+ if (isFocused.value) {
10714
+ isPristine.value = true;
10715
+ vTextFieldRef.value?.focus();
10716
+ }
10694
10717
  }
10695
10718
  function onFocusin(e) {
10696
10719
  isFocused.value = true;
10697
10720
  }
10698
- function onFocusout(e) {
10699
- if (e.relatedTarget == null) {
10700
- vTextFieldRef.value?.focus();
10701
- }
10702
- }
10703
- const isSelecting = vue.ref(false);
10721
+ const isSelecting = vue.shallowRef(false);
10704
10722
  function select(item) {
10705
10723
  if (props.multiple) {
10706
10724
  const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
@@ -10714,9 +10732,7 @@
10714
10732
  } else {
10715
10733
  model.value = [item];
10716
10734
  isSelecting.value = true;
10717
- if (!slots.selection) {
10718
- search.value = item.title;
10719
- }
10735
+ search.value = item.title;
10720
10736
  menu.value = false;
10721
10737
  isPristine.value = true;
10722
10738
  vue.nextTick(() => isSelecting.value = false);
@@ -10725,13 +10741,14 @@
10725
10741
  vue.watch(isFocused, val => {
10726
10742
  if (val) {
10727
10743
  isSelecting.value = true;
10728
- search.value = props.multiple || !!slots.selection ? '' : String(selections.value.at(-1)?.props.title ?? '');
10744
+ search.value = props.multiple ? '' : String(selections.value.at(-1)?.props.title ?? '');
10729
10745
  isPristine.value = true;
10730
10746
  vue.nextTick(() => isSelecting.value = false);
10731
10747
  } else {
10732
10748
  if (!props.multiple && !search.value) model.value = [];
10733
10749
  menu.value = false;
10734
10750
  search.value = '';
10751
+ selectionIndex.value = -1;
10735
10752
  }
10736
10753
  });
10737
10754
  vue.watch(search, val => {
@@ -10756,12 +10773,10 @@
10756
10773
  "validationValue": model.externalValue,
10757
10774
  "dirty": isDirty,
10758
10775
  "onInput": onInput,
10759
- "class": ['v-autocomplete', {
10776
+ "class": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {
10760
10777
  'v-autocomplete--active-menu': menu.value,
10761
10778
  'v-autocomplete--chips': !!props.chips,
10762
- 'v-autocomplete--selecting-index': selectionIndex.value > -1,
10763
- [`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,
10764
- 'v-autocomplete--selection-slot': !!slots.selection
10779
+ 'v-autocomplete--selecting-index': selectionIndex.value > -1
10765
10780
  }, props.class],
10766
10781
  "style": props.style,
10767
10782
  "appendInnerIcon": props.menuIcon,
@@ -10790,8 +10805,7 @@
10790
10805
  "selected": selected.value,
10791
10806
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
10792
10807
  "onMousedown": e => e.preventDefault(),
10793
- "onFocusin": onFocusin,
10794
- "onFocusout": onFocusout
10808
+ "onFocusin": onFocusin
10795
10809
  }, {
10796
10810
  default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
10797
10811
  "title": t(props.noDataText)
@@ -10883,40 +10897,41 @@
10883
10897
  }
10884
10898
  });
10885
10899
 
10900
+ const makeVBadgeProps = propsFactory({
10901
+ bordered: Boolean,
10902
+ color: String,
10903
+ content: [Number, String],
10904
+ dot: Boolean,
10905
+ floating: Boolean,
10906
+ icon: IconValue,
10907
+ inline: Boolean,
10908
+ label: {
10909
+ type: String,
10910
+ default: '$vuetify.badge'
10911
+ },
10912
+ max: [Number, String],
10913
+ modelValue: {
10914
+ type: Boolean,
10915
+ default: true
10916
+ },
10917
+ offsetX: [Number, String],
10918
+ offsetY: [Number, String],
10919
+ textColor: String,
10920
+ ...makeComponentProps(),
10921
+ ...makeLocationProps({
10922
+ location: 'top end'
10923
+ }),
10924
+ ...makeRoundedProps(),
10925
+ ...makeTagProps(),
10926
+ ...makeThemeProps(),
10927
+ ...makeTransitionProps({
10928
+ transition: 'scale-rotate-transition'
10929
+ })
10930
+ }, 'v-badge');
10886
10931
  const VBadge = genericComponent()({
10887
10932
  name: 'VBadge',
10888
10933
  inheritAttrs: false,
10889
- props: {
10890
- bordered: Boolean,
10891
- color: String,
10892
- content: [Number, String],
10893
- dot: Boolean,
10894
- floating: Boolean,
10895
- icon: IconValue,
10896
- inline: Boolean,
10897
- label: {
10898
- type: String,
10899
- default: '$vuetify.badge'
10900
- },
10901
- max: [Number, String],
10902
- modelValue: {
10903
- type: Boolean,
10904
- default: true
10905
- },
10906
- offsetX: [Number, String],
10907
- offsetY: [Number, String],
10908
- textColor: String,
10909
- ...makeComponentProps(),
10910
- ...makeLocationProps({
10911
- location: 'top end'
10912
- }),
10913
- ...makeRoundedProps(),
10914
- ...makeTagProps(),
10915
- ...makeThemeProps(),
10916
- ...makeTransitionProps({
10917
- transition: 'scale-rotate-transition'
10918
- })
10919
- },
10934
+ props: makeVBadgeProps(),
10920
10935
  setup(props, ctx) {
10921
10936
  const {
10922
10937
  backgroundColorClasses,
@@ -10977,13 +10992,14 @@
10977
10992
  }
10978
10993
  });
10979
10994
 
10995
+ const makeVBannerActionsProps = propsFactory({
10996
+ color: String,
10997
+ density: String,
10998
+ ...makeComponentProps()
10999
+ }, 'v-banner-actions');
10980
11000
  const VBannerActions = genericComponent()({
10981
11001
  name: 'VBannerActions',
10982
- props: {
10983
- color: String,
10984
- density: String,
10985
- ...makeComponentProps()
10986
- },
11002
+ props: makeVBannerActionsProps(),
10987
11003
  setup(props, _ref) {
10988
11004
  let {
10989
11005
  slots
@@ -11007,27 +11023,28 @@
11007
11023
 
11008
11024
  // Types
11009
11025
 
11026
+ const makeVBannerProps = propsFactory({
11027
+ avatar: String,
11028
+ color: String,
11029
+ icon: IconValue,
11030
+ lines: String,
11031
+ stacked: Boolean,
11032
+ sticky: Boolean,
11033
+ text: String,
11034
+ ...makeBorderProps(),
11035
+ ...makeComponentProps(),
11036
+ ...makeDensityProps(),
11037
+ ...makeDimensionProps(),
11038
+ ...makeElevationProps(),
11039
+ ...makeLocationProps(),
11040
+ ...makePositionProps(),
11041
+ ...makeRoundedProps(),
11042
+ ...makeTagProps(),
11043
+ ...makeThemeProps()
11044
+ }, 'v-banner');
11010
11045
  const VBanner = genericComponent()({
11011
11046
  name: 'VBanner',
11012
- props: {
11013
- avatar: String,
11014
- color: String,
11015
- icon: IconValue,
11016
- lines: String,
11017
- stacked: Boolean,
11018
- sticky: Boolean,
11019
- text: String,
11020
- ...makeBorderProps(),
11021
- ...makeComponentProps(),
11022
- ...makeDensityProps(),
11023
- ...makeDimensionProps(),
11024
- ...makeElevationProps(),
11025
- ...makeLocationProps(),
11026
- ...makePositionProps(),
11027
- ...makeRoundedProps(),
11028
- ...makeTagProps(),
11029
- ...makeThemeProps()
11030
- },
11047
+ props: makeVBannerProps(),
11031
11048
  setup(props, _ref) {
11032
11049
  let {
11033
11050
  slots
@@ -11114,47 +11131,48 @@
11114
11131
  }
11115
11132
  });
11116
11133
 
11117
- const VBottomNavigation = genericComponent()({
11118
- name: 'VBottomNavigation',
11119
- props: {
11120
- bgColor: String,
11121
- color: String,
11122
- grow: Boolean,
11123
- mode: {
11124
- type: String,
11125
- validator: v => !v || ['horizontal', 'shift'].includes(v)
11126
- },
11127
- height: {
11128
- type: [Number, String],
11129
- default: 56
11130
- },
11131
- active: {
11132
- type: Boolean,
11133
- default: true
11134
- },
11135
- ...makeBorderProps(),
11136
- ...makeComponentProps(),
11137
- ...makeDensityProps(),
11138
- ...makeElevationProps(),
11139
- ...makeRoundedProps(),
11140
- ...makeLayoutItemProps({
11141
- name: 'bottom-navigation'
11142
- }),
11143
- ...makeTagProps({
11144
- tag: 'header'
11145
- }),
11146
- ...makeGroupProps({
11147
- modelValue: true,
11148
- selectedClass: 'v-btn--selected'
11149
- }),
11150
- ...makeThemeProps()
11134
+ const makeVBottomNavigationProps = propsFactory({
11135
+ bgColor: String,
11136
+ color: String,
11137
+ grow: Boolean,
11138
+ mode: {
11139
+ type: String,
11140
+ validator: v => !v || ['horizontal', 'shift'].includes(v)
11151
11141
  },
11152
- emits: {
11153
- 'update:modelValue': value => true
11142
+ height: {
11143
+ type: [Number, String],
11144
+ default: 56
11154
11145
  },
11155
- setup(props, _ref) {
11156
- let {
11157
- slots
11146
+ active: {
11147
+ type: Boolean,
11148
+ default: true
11149
+ },
11150
+ ...makeBorderProps(),
11151
+ ...makeComponentProps(),
11152
+ ...makeDensityProps(),
11153
+ ...makeElevationProps(),
11154
+ ...makeRoundedProps(),
11155
+ ...makeLayoutItemProps({
11156
+ name: 'bottom-navigation'
11157
+ }),
11158
+ ...makeTagProps({
11159
+ tag: 'header'
11160
+ }),
11161
+ ...makeGroupProps({
11162
+ modelValue: true,
11163
+ selectedClass: 'v-btn--selected'
11164
+ }),
11165
+ ...makeThemeProps()
11166
+ }, 'v-bottom-navigation');
11167
+ const VBottomNavigation = genericComponent()({
11168
+ name: 'VBottomNavigation',
11169
+ props: makeVBottomNavigationProps(),
11170
+ emits: {
11171
+ 'update:modelValue': value => true
11172
+ },
11173
+ setup(props, _ref) {
11174
+ let {
11175
+ slots
11158
11176
  } = _ref;
11159
11177
  const {
11160
11178
  themeClasses
@@ -11223,12 +11241,13 @@
11223
11241
  }
11224
11242
  });
11225
11243
 
11244
+ const makeVBreadcrumbsDividerProps = propsFactory({
11245
+ divider: [Number, String],
11246
+ ...makeComponentProps()
11247
+ }, 'v-breacrumbs-divider');
11226
11248
  const VBreadcrumbsDivider = genericComponent()({
11227
11249
  name: 'VBreadcrumbsDivider',
11228
- props: {
11229
- divider: [Number, String],
11230
- ...makeComponentProps()
11231
- },
11250
+ props: makeVBreadcrumbsDividerProps(),
11232
11251
  setup(props, _ref) {
11233
11252
  let {
11234
11253
  slots
@@ -11241,21 +11260,22 @@
11241
11260
  }
11242
11261
  });
11243
11262
 
11263
+ const makeVBreadcrumbsItemProps = propsFactory({
11264
+ active: Boolean,
11265
+ activeClass: String,
11266
+ activeColor: String,
11267
+ color: String,
11268
+ disabled: Boolean,
11269
+ title: String,
11270
+ ...makeComponentProps(),
11271
+ ...makeRouterProps(),
11272
+ ...makeTagProps({
11273
+ tag: 'li'
11274
+ })
11275
+ }, 'v-breadcrumbs-item');
11244
11276
  const VBreadcrumbsItem = genericComponent()({
11245
11277
  name: 'VBreadcrumbsItem',
11246
- props: {
11247
- active: Boolean,
11248
- activeClass: String,
11249
- activeColor: String,
11250
- color: String,
11251
- disabled: Boolean,
11252
- title: String,
11253
- ...makeComponentProps(),
11254
- ...makeRouterProps(),
11255
- ...makeTagProps({
11256
- tag: 'li'
11257
- })
11258
- },
11278
+ props: makeVBreadcrumbsItemProps(),
11259
11279
  setup(props, _ref) {
11260
11280
  let {
11261
11281
  slots,
@@ -11291,30 +11311,31 @@
11291
11311
 
11292
11312
  // Types
11293
11313
 
11314
+ const makeVBreadcrumbsProps = propsFactory({
11315
+ activeClass: String,
11316
+ activeColor: String,
11317
+ bgColor: String,
11318
+ color: String,
11319
+ disabled: Boolean,
11320
+ divider: {
11321
+ type: String,
11322
+ default: '/'
11323
+ },
11324
+ icon: IconValue,
11325
+ items: {
11326
+ type: Array,
11327
+ default: () => []
11328
+ },
11329
+ ...makeComponentProps(),
11330
+ ...makeDensityProps(),
11331
+ ...makeRoundedProps(),
11332
+ ...makeTagProps({
11333
+ tag: 'ul'
11334
+ })
11335
+ }, 'v-breacrumbs');
11294
11336
  const VBreadcrumbs = genericComponent()({
11295
11337
  name: 'VBreadcrumbs',
11296
- props: {
11297
- activeClass: String,
11298
- activeColor: String,
11299
- bgColor: String,
11300
- color: String,
11301
- disabled: Boolean,
11302
- divider: {
11303
- type: String,
11304
- default: '/'
11305
- },
11306
- icon: IconValue,
11307
- items: {
11308
- type: Array,
11309
- default: () => []
11310
- },
11311
- ...makeComponentProps(),
11312
- ...makeDensityProps(),
11313
- ...makeRoundedProps(),
11314
- ...makeTagProps({
11315
- tag: 'ul'
11316
- })
11317
- },
11338
+ props: makeVBreadcrumbsProps(),
11318
11339
  setup(props, _ref) {
11319
11340
  let {
11320
11341
  slots
@@ -11423,18 +11444,19 @@
11423
11444
 
11424
11445
  const VCardTitle = createSimpleFunctional('v-card-title');
11425
11446
 
11447
+ const makeCardItemProps = propsFactory({
11448
+ appendAvatar: String,
11449
+ appendIcon: IconValue,
11450
+ prependAvatar: String,
11451
+ prependIcon: IconValue,
11452
+ subtitle: String,
11453
+ title: String,
11454
+ ...makeComponentProps(),
11455
+ ...makeDensityProps()
11456
+ }, 'v-card-item');
11426
11457
  const VCardItem = genericComponent()({
11427
11458
  name: 'VCardItem',
11428
- props: {
11429
- appendAvatar: String,
11430
- appendIcon: IconValue,
11431
- prependAvatar: String,
11432
- prependIcon: IconValue,
11433
- subtitle: String,
11434
- title: String,
11435
- ...makeComponentProps(),
11436
- ...makeDensityProps()
11437
- },
11459
+ props: makeCardItemProps(),
11438
11460
  setup(props, _ref) {
11439
11461
  let {
11440
11462
  slots
@@ -11505,47 +11527,48 @@
11505
11527
 
11506
11528
  // Types
11507
11529
 
11530
+ const makeVCardProps = propsFactory({
11531
+ appendAvatar: String,
11532
+ appendIcon: IconValue,
11533
+ disabled: Boolean,
11534
+ flat: Boolean,
11535
+ hover: Boolean,
11536
+ image: String,
11537
+ link: {
11538
+ type: Boolean,
11539
+ default: undefined
11540
+ },
11541
+ prependAvatar: String,
11542
+ prependIcon: IconValue,
11543
+ ripple: {
11544
+ type: Boolean,
11545
+ default: true
11546
+ },
11547
+ subtitle: String,
11548
+ text: String,
11549
+ title: String,
11550
+ ...makeBorderProps(),
11551
+ ...makeComponentProps(),
11552
+ ...makeDensityProps(),
11553
+ ...makeDimensionProps(),
11554
+ ...makeElevationProps(),
11555
+ ...makeLoaderProps(),
11556
+ ...makeLocationProps(),
11557
+ ...makePositionProps(),
11558
+ ...makeRoundedProps(),
11559
+ ...makeRouterProps(),
11560
+ ...makeTagProps(),
11561
+ ...makeThemeProps(),
11562
+ ...makeVariantProps({
11563
+ variant: 'elevated'
11564
+ })
11565
+ }, 'v-card');
11508
11566
  const VCard = genericComponent()({
11509
11567
  name: 'VCard',
11510
11568
  directives: {
11511
11569
  Ripple
11512
11570
  },
11513
- props: {
11514
- appendAvatar: String,
11515
- appendIcon: IconValue,
11516
- disabled: Boolean,
11517
- flat: Boolean,
11518
- hover: Boolean,
11519
- image: String,
11520
- link: {
11521
- type: Boolean,
11522
- default: undefined
11523
- },
11524
- prependAvatar: String,
11525
- prependIcon: IconValue,
11526
- ripple: {
11527
- type: Boolean,
11528
- default: true
11529
- },
11530
- subtitle: String,
11531
- text: String,
11532
- title: String,
11533
- ...makeBorderProps(),
11534
- ...makeComponentProps(),
11535
- ...makeDensityProps(),
11536
- ...makeDimensionProps(),
11537
- ...makeElevationProps(),
11538
- ...makeLoaderProps(),
11539
- ...makeLocationProps(),
11540
- ...makePositionProps(),
11541
- ...makeRoundedProps(),
11542
- ...makeRouterProps(),
11543
- ...makeTagProps(),
11544
- ...makeThemeProps(),
11545
- ...makeVariantProps({
11546
- variant: 'elevated'
11547
- })
11548
- },
11571
+ props: makeVCardProps(),
11549
11572
  setup(props, _ref) {
11550
11573
  let {
11551
11574
  attrs,
@@ -11828,14 +11851,14 @@
11828
11851
  const group = useGroup(props, VWindowGroupSymbol);
11829
11852
  const rootRef = vue.ref();
11830
11853
  const isRtlReverse = vue.computed(() => isRtl.value ? !props.reverse : props.reverse);
11831
- const isReversed = vue.ref(false);
11854
+ const isReversed = vue.shallowRef(false);
11832
11855
  const transition = vue.computed(() => {
11833
11856
  const axis = props.direction === 'vertical' ? 'y' : 'x';
11834
11857
  const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value;
11835
11858
  const direction = reverse ? '-reverse' : '';
11836
11859
  return `v-window-${axis}${direction}-transition`;
11837
11860
  });
11838
- const transitionCount = vue.ref(0);
11861
+ const transitionCount = vue.shallowRef(0);
11839
11862
  const transitionHeight = vue.ref(undefined);
11840
11863
  const activeIndex = vue.computed(() => {
11841
11864
  return group.items.value.findIndex(item => group.selected.value.includes(item.id));
@@ -11939,34 +11962,35 @@
11939
11962
 
11940
11963
  // Types
11941
11964
 
11965
+ const makeVCarouselProps = propsFactory({
11966
+ color: String,
11967
+ cycle: Boolean,
11968
+ delimiterIcon: {
11969
+ type: IconValue,
11970
+ default: '$delimiter'
11971
+ },
11972
+ height: {
11973
+ type: [Number, String],
11974
+ default: 500
11975
+ },
11976
+ hideDelimiters: Boolean,
11977
+ hideDelimiterBackground: Boolean,
11978
+ interval: {
11979
+ type: [Number, String],
11980
+ default: 6000,
11981
+ validator: value => Number(value) > 0
11982
+ },
11983
+ progress: [Boolean, String],
11984
+ verticalDelimiters: [Boolean, String],
11985
+ ...makeVWindowProps({
11986
+ continuous: true,
11987
+ mandatory: 'force',
11988
+ showArrows: true
11989
+ })
11990
+ }, 'v-carousel');
11942
11991
  const VCarousel = genericComponent()({
11943
11992
  name: 'VCarousel',
11944
- props: {
11945
- color: String,
11946
- cycle: Boolean,
11947
- delimiterIcon: {
11948
- type: IconValue,
11949
- default: '$delimiter'
11950
- },
11951
- height: {
11952
- type: [Number, String],
11953
- default: 500
11954
- },
11955
- hideDelimiters: Boolean,
11956
- hideDelimiterBackground: Boolean,
11957
- interval: {
11958
- type: [Number, String],
11959
- default: 6000,
11960
- validator: value => Number(value) > 0
11961
- },
11962
- progress: [Boolean, String],
11963
- verticalDelimiters: [Boolean, String],
11964
- ...makeVWindowProps({
11965
- continuous: true,
11966
- mandatory: 'force',
11967
- showArrows: true
11968
- })
11969
- },
11993
+ props: makeVCarouselProps(),
11970
11994
  emits: {
11971
11995
  'update:modelValue': val => true
11972
11996
  },
@@ -12056,24 +12080,25 @@
12056
12080
  }
12057
12081
  });
12058
12082
 
12083
+ const makeVWindowItemProps = propsFactory({
12084
+ reverseTransition: {
12085
+ type: [Boolean, String],
12086
+ default: undefined
12087
+ },
12088
+ transition: {
12089
+ type: [Boolean, String],
12090
+ default: undefined
12091
+ },
12092
+ ...makeComponentProps(),
12093
+ ...makeGroupItemProps(),
12094
+ ...makeLazyProps()
12095
+ }, 'v-window-item');
12059
12096
  const VWindowItem = genericComponent()({
12060
12097
  name: 'VWindowItem',
12061
12098
  directives: {
12062
12099
  Touch
12063
12100
  },
12064
- props: {
12065
- reverseTransition: {
12066
- type: [Boolean, String],
12067
- default: undefined
12068
- },
12069
- transition: {
12070
- type: [Boolean, String],
12071
- default: undefined
12072
- },
12073
- ...makeComponentProps(),
12074
- ...makeGroupItemProps(),
12075
- ...makeLazyProps()
12076
- },
12101
+ props: makeVWindowItemProps(),
12077
12102
  emits: {
12078
12103
  'group:selected': val => true
12079
12104
  },
@@ -12087,8 +12112,8 @@
12087
12112
  isBooted
12088
12113
  } = useSsrBoot();
12089
12114
  if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow');
12090
- const isTransitioning = vue.ref(false);
12091
- const hasTransition = vue.computed(() => window.isReversed.value ? props.reverseTransition !== false : props.transition !== false);
12115
+ const isTransitioning = vue.shallowRef(false);
12116
+ const hasTransition = vue.computed(() => isBooted.value && (window.isReversed.value ? props.reverseTransition !== false : props.transition !== false));
12092
12117
  function onAfterTransition() {
12093
12118
  if (!isTransitioning.value || !window) {
12094
12119
  return;
@@ -12167,25 +12192,28 @@
12167
12192
 
12168
12193
  // Types
12169
12194
 
12195
+ const makeVCarouselItemProps = propsFactory({
12196
+ ...makeVImgProps(),
12197
+ ...makeVWindowItemProps()
12198
+ }, 'v-carousel-item');
12170
12199
  const VCarouselItem = genericComponent()({
12171
12200
  name: 'VCarouselItem',
12172
12201
  inheritAttrs: false,
12173
- props: {
12174
- value: null,
12175
- ...makeComponentProps()
12176
- },
12202
+ props: makeVCarouselItemProps(),
12177
12203
  setup(props, _ref) {
12178
12204
  let {
12179
12205
  slots,
12180
12206
  attrs
12181
12207
  } = _ref;
12182
- useRender(() => vue.createVNode(VWindowItem, {
12183
- "class": ['v-carousel-item', props.class],
12184
- "style": props.style,
12185
- "value": props.value
12186
- }, {
12187
- default: () => [vue.createVNode(VImg, attrs, slots)]
12188
- }));
12208
+ useRender(() => {
12209
+ const [imgProps] = VImg.filterProps(props);
12210
+ const [windowItemProps] = VWindowItem.filterProps(props);
12211
+ return vue.createVNode(VWindowItem, vue.mergeProps({
12212
+ "class": "v-carousel-item"
12213
+ }, windowItemProps), {
12214
+ default: () => [vue.createVNode(VImg, vue.mergeProps(attrs, imgProps), slots)]
12215
+ });
12216
+ });
12189
12217
  }
12190
12218
  });
12191
12219
 
@@ -12205,9 +12233,7 @@
12205
12233
  }, 'v-sheet');
12206
12234
  const VSheet = genericComponent()({
12207
12235
  name: 'VSheet',
12208
- props: {
12209
- ...makeVSheetProps()
12210
- },
12236
+ props: makeVSheetProps(),
12211
12237
  setup(props, _ref) {
12212
12238
  let {
12213
12239
  slots
@@ -12247,27 +12273,28 @@
12247
12273
 
12248
12274
  // Types
12249
12275
 
12276
+ const makeVColorPickerCanvasProps = propsFactory({
12277
+ color: {
12278
+ type: Object
12279
+ },
12280
+ disabled: Boolean,
12281
+ dotSize: {
12282
+ type: [Number, String],
12283
+ default: 10
12284
+ },
12285
+ height: {
12286
+ type: [Number, String],
12287
+ default: 150
12288
+ },
12289
+ width: {
12290
+ type: [Number, String],
12291
+ default: 300
12292
+ },
12293
+ ...makeComponentProps()
12294
+ }, 'v-color-picker-canvas');
12250
12295
  const VColorPickerCanvas = defineComponent({
12251
12296
  name: 'VColorPickerCanvas',
12252
- props: {
12253
- color: {
12254
- type: Object
12255
- },
12256
- disabled: Boolean,
12257
- dotSize: {
12258
- type: [Number, String],
12259
- default: 10
12260
- },
12261
- height: {
12262
- type: [Number, String],
12263
- default: 150
12264
- },
12265
- width: {
12266
- type: [Number, String],
12267
- default: 300
12268
- },
12269
- ...makeComponentProps()
12270
- },
12297
+ props: makeVColorPickerCanvasProps(),
12271
12298
  emits: {
12272
12299
  'update:color': color => true,
12273
12300
  'update:position': hue => true
@@ -12276,8 +12303,8 @@
12276
12303
  let {
12277
12304
  emit
12278
12305
  } = _ref;
12279
- const isInteracting = vue.ref(false);
12280
- const isOutsideUpdate = vue.ref(false);
12306
+ const isInteracting = vue.shallowRef(false);
12307
+ const isOutsideUpdate = vue.shallowRef(false);
12281
12308
  const dotPosition = vue.ref({
12282
12309
  x: 0,
12283
12310
  y: 0
@@ -12295,8 +12322,8 @@
12295
12322
  };
12296
12323
  });
12297
12324
  const canvasRef = vue.ref();
12298
- const canvasWidth = vue.ref(parseFloat(props.width));
12299
- const canvasHeight = vue.ref(parseFloat(props.height));
12325
+ const canvasWidth = vue.shallowRef(parseFloat(props.width));
12326
+ const canvasHeight = vue.shallowRef(parseFloat(props.height));
12300
12327
  const {
12301
12328
  resizeRef
12302
12329
  } = useResizeObserver(entries => {
@@ -12523,7 +12550,7 @@
12523
12550
  let {
12524
12551
  a
12525
12552
  } = _ref;
12526
- return a ? Math.round(a * 100) / 100 : 1;
12553
+ return a != null ? Math.round(a * 100) / 100 : 1;
12527
12554
  },
12528
12555
  getColor: (c, v) => ({
12529
12556
  ...c,
@@ -12577,7 +12604,7 @@
12577
12604
  let {
12578
12605
  a
12579
12606
  } = _ref2;
12580
- return a ? Math.round(a * 100) / 100 : 1;
12607
+ return a != null ? Math.round(a * 100) / 100 : 1;
12581
12608
  },
12582
12609
  getColor: (c, v) => ({
12583
12610
  ...c,
@@ -12631,23 +12658,24 @@
12631
12658
  "class": "v-color-picker-edit__input"
12632
12659
  }, [vue.createVNode("input", rest, null), vue.createVNode("span", null, [label])]);
12633
12660
  };
12661
+ const makeVColorPickerEditProps = propsFactory({
12662
+ color: Object,
12663
+ disabled: Boolean,
12664
+ mode: {
12665
+ type: String,
12666
+ default: 'rgba',
12667
+ validator: v => Object.keys(modes).includes(v)
12668
+ },
12669
+ modes: {
12670
+ type: Array,
12671
+ default: () => Object.keys(modes),
12672
+ validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
12673
+ },
12674
+ ...makeComponentProps()
12675
+ }, 'v-color-picker-edit');
12634
12676
  const VColorPickerEdit = defineComponent({
12635
12677
  name: 'VColorPickerEdit',
12636
- props: {
12637
- color: Object,
12638
- disabled: Boolean,
12639
- mode: {
12640
- type: String,
12641
- default: 'rgba',
12642
- validator: v => Object.keys(modes).includes(v)
12643
- },
12644
- modes: {
12645
- type: Array,
12646
- default: () => Object.keys(modes),
12647
- validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
12648
- },
12649
- ...makeComponentProps()
12650
- },
12678
+ props: makeVColorPickerEditProps(),
12651
12679
  emits: {
12652
12680
  'update:color': color => true,
12653
12681
  'update:mode': mode => true
@@ -12827,8 +12855,8 @@
12827
12855
  const thumbColor = vue.computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);
12828
12856
  const trackColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);
12829
12857
  const trackFillColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);
12830
- const mousePressed = vue.ref(false);
12831
- const startOffset = vue.ref(0);
12858
+ const mousePressed = vue.shallowRef(false);
12859
+ const startOffset = vue.shallowRef(0);
12832
12860
  const trackContainerRef = vue.ref();
12833
12861
  const activeThumbRef = vue.ref();
12834
12862
  function parseMouseMove(e) {
@@ -12980,35 +13008,36 @@
12980
13008
  return data;
12981
13009
  };
12982
13010
 
13011
+ const makeVSliderThumbProps = propsFactory({
13012
+ focused: Boolean,
13013
+ max: {
13014
+ type: Number,
13015
+ required: true
13016
+ },
13017
+ min: {
13018
+ type: Number,
13019
+ required: true
13020
+ },
13021
+ modelValue: {
13022
+ type: Number,
13023
+ required: true
13024
+ },
13025
+ position: {
13026
+ type: Number,
13027
+ required: true
13028
+ },
13029
+ ripple: {
13030
+ type: Boolean,
13031
+ default: true
13032
+ },
13033
+ ...makeComponentProps()
13034
+ }, 'v-slider-thumb');
12983
13035
  const VSliderThumb = genericComponent()({
12984
13036
  name: 'VSliderThumb',
12985
13037
  directives: {
12986
13038
  Ripple
12987
13039
  },
12988
- props: {
12989
- focused: Boolean,
12990
- max: {
12991
- type: Number,
12992
- required: true
12993
- },
12994
- min: {
12995
- type: Number,
12996
- required: true
12997
- },
12998
- modelValue: {
12999
- type: Number,
13000
- required: true
13001
- },
13002
- position: {
13003
- type: Number,
13004
- required: true
13005
- },
13006
- ripple: {
13007
- type: Boolean,
13008
- default: true
13009
- },
13010
- ...makeComponentProps()
13011
- },
13040
+ props: makeVSliderThumbProps(),
13012
13041
  emits: {
13013
13042
  'update:modelValue': v => true
13014
13043
  },
@@ -13125,19 +13154,20 @@
13125
13154
  }
13126
13155
  });
13127
13156
 
13157
+ const makeVSliderTrackProps = propsFactory({
13158
+ start: {
13159
+ type: Number,
13160
+ required: true
13161
+ },
13162
+ stop: {
13163
+ type: Number,
13164
+ required: true
13165
+ },
13166
+ ...makeComponentProps()
13167
+ }, 'v-slider-track');
13128
13168
  const VSliderTrack = genericComponent()({
13129
13169
  name: 'VSliderTrack',
13130
- props: {
13131
- start: {
13132
- type: Number,
13133
- required: true
13134
- },
13135
- stop: {
13136
- type: Number,
13137
- required: true
13138
- },
13139
- ...makeComponentProps()
13140
- },
13170
+ props: makeVSliderTrackProps(),
13141
13171
  emits: {},
13142
13172
  setup(props, _ref) {
13143
13173
  let {
@@ -13243,17 +13273,18 @@
13243
13273
 
13244
13274
  // Types
13245
13275
 
13276
+ const makeVSliderProps = propsFactory({
13277
+ ...makeFocusProps(),
13278
+ ...makeSliderProps(),
13279
+ ...makeVInputProps(),
13280
+ modelValue: {
13281
+ type: [Number, String],
13282
+ default: 0
13283
+ }
13284
+ }, 'v-slider');
13246
13285
  const VSlider = genericComponent()({
13247
13286
  name: 'VSlider',
13248
- props: {
13249
- ...makeFocusProps(),
13250
- ...makeSliderProps(),
13251
- ...makeVInputProps(),
13252
- modelValue: {
13253
- type: [Number, String],
13254
- default: 0
13255
- }
13256
- },
13287
+ props: makeVSliderProps(),
13257
13288
  emits: {
13258
13289
  'update:focused': value => true,
13259
13290
  'update:modelValue': v => true,
@@ -13266,6 +13297,9 @@
13266
13297
  emit
13267
13298
  } = _ref;
13268
13299
  const thumbContainerRef = vue.ref();
13300
+ const {
13301
+ rtlClasses
13302
+ } = useRtl();
13269
13303
  const steps = useSteps(props);
13270
13304
  const model = useProxiedModel(props, 'modelValue', undefined, v => {
13271
13305
  const value = typeof v === 'string' ? parseFloat(v) : v == null ? steps.min.value : v;
@@ -13319,7 +13353,7 @@
13319
13353
  'v-slider--focused': isFocused.value,
13320
13354
  'v-slider--pressed': mousePressed.value,
13321
13355
  'v-slider--disabled': props.disabled
13322
- }, props.class],
13356
+ }, rtlClasses.value, props.class],
13323
13357
  "style": props.style
13324
13358
  }, inputProps, {
13325
13359
  "focused": isFocused.value
@@ -13376,16 +13410,17 @@
13376
13410
 
13377
13411
  // Types
13378
13412
 
13413
+ const makeVColorPickerPreviewProps = propsFactory({
13414
+ color: {
13415
+ type: Object
13416
+ },
13417
+ disabled: Boolean,
13418
+ hideAlpha: Boolean,
13419
+ ...makeComponentProps()
13420
+ }, 'v-color-picker-preview');
13379
13421
  const VColorPickerPreview = defineComponent({
13380
13422
  name: 'VColorPickerPreview',
13381
- props: {
13382
- color: {
13383
- type: Object
13384
- },
13385
- disabled: Boolean,
13386
- hideAlpha: Boolean,
13387
- ...makeComponentProps()
13388
- },
13423
+ props: makeVColorPickerPreviewProps(),
13389
13424
  emits: {
13390
13425
  'update:color': color => true
13391
13426
  },
@@ -13763,6 +13798,16 @@
13763
13798
 
13764
13799
  // Types
13765
13800
 
13801
+ const makeVColorPickerSwatchesProps = propsFactory({
13802
+ swatches: {
13803
+ type: Array,
13804
+ default: () => parseDefaultColors(colors)
13805
+ },
13806
+ disabled: Boolean,
13807
+ color: Object,
13808
+ maxHeight: [Number, String],
13809
+ ...makeComponentProps()
13810
+ }, 'v-color-picker-swatches');
13766
13811
  function parseDefaultColors(colors) {
13767
13812
  return Object.keys(colors).map(key => {
13768
13813
  const color = colors[key];
@@ -13771,16 +13816,7 @@
13771
13816
  }
13772
13817
  const VColorPickerSwatches = defineComponent({
13773
13818
  name: 'VColorPickerSwatches',
13774
- props: {
13775
- swatches: {
13776
- type: Array,
13777
- default: () => parseDefaultColors(colors)
13778
- },
13779
- disabled: Boolean,
13780
- color: Object,
13781
- maxHeight: [Number, String],
13782
- ...makeComponentProps()
13783
- },
13819
+ props: makeVColorPickerSwatchesProps(),
13784
13820
  emits: {
13785
13821
  'update:color': color => true
13786
13822
  },
@@ -13816,44 +13852,45 @@
13816
13852
 
13817
13853
  // Types
13818
13854
 
13855
+ const makeVPickerProps = propsFactory({
13856
+ canvasHeight: {
13857
+ type: [String, Number],
13858
+ default: 150
13859
+ },
13860
+ disabled: Boolean,
13861
+ dotSize: {
13862
+ type: [Number, String],
13863
+ default: 10
13864
+ },
13865
+ hideCanvas: Boolean,
13866
+ hideSliders: Boolean,
13867
+ hideInputs: Boolean,
13868
+ mode: {
13869
+ type: String,
13870
+ default: 'rgba',
13871
+ validator: v => Object.keys(modes).includes(v)
13872
+ },
13873
+ modes: {
13874
+ type: Array,
13875
+ default: () => Object.keys(modes),
13876
+ validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
13877
+ },
13878
+ showSwatches: Boolean,
13879
+ swatches: Array,
13880
+ swatchesMaxHeight: {
13881
+ type: [Number, String],
13882
+ default: 150
13883
+ },
13884
+ modelValue: {
13885
+ type: [Object, String]
13886
+ },
13887
+ ...omit(makeVSheetProps({
13888
+ width: 300
13889
+ }), ['height', 'location', 'minHeight', 'maxHeight', 'minWidth', 'maxWidth'])
13890
+ }, 'v-color-picker');
13819
13891
  const VColorPicker = defineComponent({
13820
13892
  name: 'VColorPicker',
13821
- props: {
13822
- canvasHeight: {
13823
- type: [String, Number],
13824
- default: 150
13825
- },
13826
- disabled: Boolean,
13827
- dotSize: {
13828
- type: [Number, String],
13829
- default: 10
13830
- },
13831
- hideCanvas: Boolean,
13832
- hideSliders: Boolean,
13833
- hideInputs: Boolean,
13834
- mode: {
13835
- type: String,
13836
- default: 'rgba',
13837
- validator: v => Object.keys(modes).includes(v)
13838
- },
13839
- modes: {
13840
- type: Array,
13841
- default: () => Object.keys(modes),
13842
- validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
13843
- },
13844
- showSwatches: Boolean,
13845
- swatches: Array,
13846
- swatchesMaxHeight: {
13847
- type: [Number, String],
13848
- default: 150
13849
- },
13850
- modelValue: {
13851
- type: [Object, String]
13852
- },
13853
- ...omit(makeVSheetProps({
13854
- width: 300
13855
- }), ['height', 'location', 'minHeight', 'maxHeight', 'minWidth', 'maxWidth'])
13856
- },
13893
+ props: makeVPickerProps(),
13857
13894
  emits: {
13858
13895
  'update:modelValue': color => true,
13859
13896
  'update:mode': mode => true
@@ -13876,6 +13913,9 @@
13876
13913
  if (!v) return null;
13877
13914
  return extractColor(v, props.modelValue);
13878
13915
  });
13916
+ const {
13917
+ rtlClasses
13918
+ } = useRtl();
13879
13919
  const updateColor = hsva => {
13880
13920
  currentColor.value = hsva;
13881
13921
  lastPickedColor.value = hsva;
@@ -13896,7 +13936,7 @@
13896
13936
  "rounded": props.rounded,
13897
13937
  "elevation": props.elevation,
13898
13938
  "theme": props.theme,
13899
- "class": ['v-color-picker', props.class],
13939
+ "class": ['v-color-picker', rtlClasses.value, props.class],
13900
13940
  "style": [{
13901
13941
  '--v-color-picker-color-hsv': HSVtoCSS({
13902
13942
  ...(currentColor.value ?? nullColor),
@@ -13958,26 +13998,27 @@
13958
13998
  "class": "v-combobox__unmask"
13959
13999
  }, [text.substr(matches + length)])]) : text;
13960
14000
  }
14001
+ const makeVComboboxProps = propsFactory({
14002
+ // TODO: implement post keyboard support
14003
+ // autoSelectFirst: Boolean,
14004
+ delimiters: Array,
14005
+ ...makeFilterProps({
14006
+ filterKeys: ['title']
14007
+ }),
14008
+ ...makeSelectProps({
14009
+ hideNoData: true,
14010
+ returnObject: true
14011
+ }),
14012
+ ...omit(makeVTextFieldProps({
14013
+ modelValue: null
14014
+ }), ['validationValue', 'dirty', 'appendInnerIcon']),
14015
+ ...makeTransitionProps({
14016
+ transition: false
14017
+ })
14018
+ }, 'v-combobox');
13961
14019
  const VCombobox = genericComponent()({
13962
14020
  name: 'VCombobox',
13963
- props: {
13964
- // TODO: implement post keyboard support
13965
- // autoSelectFirst: Boolean,
13966
- delimiters: Array,
13967
- ...makeFilterProps({
13968
- filterKeys: ['title']
13969
- }),
13970
- ...makeSelectProps({
13971
- hideNoData: true,
13972
- returnObject: true
13973
- }),
13974
- ...omit(makeVTextFieldProps({
13975
- modelValue: null
13976
- }), ['validationValue', 'dirty', 'appendInnerIcon']),
13977
- ...makeTransitionProps({
13978
- transition: false
13979
- })
13980
- },
14021
+ props: makeVComboboxProps(),
13981
14022
  emits: {
13982
14023
  'update:focused': focused => true,
13983
14024
  'update:modelValue': val => true,
@@ -13993,8 +14034,8 @@
13993
14034
  t
13994
14035
  } = useLocale();
13995
14036
  const vTextFieldRef = vue.ref();
13996
- const isFocused = vue.ref(false);
13997
- const isPristine = vue.ref(true);
14037
+ const isFocused = vue.shallowRef(false);
14038
+ const isPristine = vue.shallowRef(true);
13998
14039
  const vMenuRef = vue.ref();
13999
14040
  const _menu = useProxiedModel(props, 'menu');
14000
14041
  const menu = vue.computed({
@@ -14004,7 +14045,7 @@
14004
14045
  _menu.value = v;
14005
14046
  }
14006
14047
  });
14007
- const selectionIndex = vue.ref(-1);
14048
+ const selectionIndex = vue.shallowRef(-1);
14008
14049
  let cleared = false;
14009
14050
  const color = vue.computed(() => vTextFieldRef.value?.color);
14010
14051
  const {
@@ -14021,7 +14062,7 @@
14021
14062
  return props.multiple ? transformed : transformed[0] ?? null;
14022
14063
  });
14023
14064
  const form = useForm();
14024
- const _search = vue.ref(!props.multiple ? model.value[0]?.title ?? '' : '');
14065
+ const _search = vue.shallowRef(!props.multiple ? model.value[0]?.title ?? '' : '');
14025
14066
  const search = vue.computed({
14026
14067
  get: () => {
14027
14068
  return _search.value;
@@ -14147,8 +14188,11 @@
14147
14188
  }
14148
14189
  }
14149
14190
  function onAfterLeave() {
14150
- if (isFocused.value) isPristine.value = true;
14151
- }
14191
+ if (isFocused.value) {
14192
+ isPristine.value = true;
14193
+ vTextFieldRef.value?.focus();
14194
+ }
14195
+ }
14152
14196
  function select(item) {
14153
14197
  if (props.multiple) {
14154
14198
  const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
@@ -14174,23 +14218,16 @@
14174
14218
  function onFocusin(e) {
14175
14219
  isFocused.value = true;
14176
14220
  }
14177
- function onFocusout(e) {
14178
- if (e.relatedTarget == null) {
14179
- vTextFieldRef.value?.focus();
14180
- }
14181
- }
14182
14221
  vue.watch(filteredItems, val => {
14183
14222
  if (!val.length && props.hideNoData) menu.value = false;
14184
14223
  });
14185
14224
  vue.watch(isFocused, val => {
14186
- if (val) {
14187
- selectionIndex.value = -1;
14188
- } else {
14189
- menu.value = false;
14190
- if (!props.multiple || !search.value) return;
14191
- model.value = [...model.value, transformItem$1(props, search.value)];
14192
- search.value = '';
14193
- }
14225
+ if (val) return;
14226
+ selectionIndex.value = -1;
14227
+ menu.value = false;
14228
+ if (!props.multiple || !search.value) return;
14229
+ model.value = [...model.value, transformItem$1(props, search.value)];
14230
+ search.value = '';
14194
14231
  });
14195
14232
  useRender(() => {
14196
14233
  const hasChips = !!(props.chips || slots.chip);
@@ -14241,8 +14278,7 @@
14241
14278
  "selected": selected.value,
14242
14279
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
14243
14280
  "onMousedown": e => e.preventDefault(),
14244
- "onFocusin": onFocusin,
14245
- "onFocusout": onFocusout
14281
+ "onFocusin": onFocusin
14246
14282
  }, {
14247
14283
  default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
14248
14284
  "title": t(props.noDataText)
@@ -14337,24 +14373,25 @@
14337
14373
 
14338
14374
  // Types
14339
14375
 
14376
+ const makeVDialogProps = propsFactory({
14377
+ fullscreen: Boolean,
14378
+ retainFocus: {
14379
+ type: Boolean,
14380
+ default: true
14381
+ },
14382
+ scrollable: Boolean,
14383
+ ...makeVOverlayProps({
14384
+ origin: 'center center',
14385
+ scrollStrategy: 'block',
14386
+ transition: {
14387
+ component: VDialogTransition
14388
+ },
14389
+ zIndex: 2400
14390
+ })
14391
+ }, 'v-dialog');
14340
14392
  const VDialog = genericComponent()({
14341
14393
  name: 'VDialog',
14342
- props: {
14343
- fullscreen: Boolean,
14344
- retainFocus: {
14345
- type: Boolean,
14346
- default: true
14347
- },
14348
- scrollable: Boolean,
14349
- ...makeVOverlayProps({
14350
- origin: 'center center',
14351
- scrollStrategy: 'block',
14352
- transition: {
14353
- component: VDialogTransition
14354
- },
14355
- zIndex: 2400
14356
- })
14357
- },
14394
+ props: makeVDialogProps(),
14358
14395
  emits: {
14359
14396
  'update:modelValue': value => true
14360
14397
  },
@@ -14448,21 +14485,22 @@
14448
14485
 
14449
14486
  const VExpansionPanelSymbol = Symbol.for('vuetify:v-expansion-panel');
14450
14487
  const allowedVariants = ['default', 'accordion', 'inset', 'popout'];
14488
+ const makeVExpansionPanelsProps = propsFactory({
14489
+ color: String,
14490
+ variant: {
14491
+ type: String,
14492
+ default: 'default',
14493
+ validator: v => allowedVariants.includes(v)
14494
+ },
14495
+ readonly: Boolean,
14496
+ ...makeComponentProps(),
14497
+ ...makeGroupProps(),
14498
+ ...makeTagProps(),
14499
+ ...makeThemeProps()
14500
+ }, 'v-expansion-panel');
14451
14501
  const VExpansionPanels = genericComponent()({
14452
14502
  name: 'VExpansionPanels',
14453
- props: {
14454
- color: String,
14455
- variant: {
14456
- type: String,
14457
- default: 'default',
14458
- validator: v => allowedVariants.includes(v)
14459
- },
14460
- readonly: Boolean,
14461
- ...makeComponentProps(),
14462
- ...makeGroupProps(),
14463
- ...makeTagProps(),
14464
- ...makeThemeProps()
14465
- },
14503
+ props: makeVExpansionPanelsProps(),
14466
14504
  emits: {
14467
14505
  'update:modelValue': val => true
14468
14506
  },
@@ -14506,17 +14544,15 @@
14506
14544
  type: [Boolean, Object],
14507
14545
  default: false
14508
14546
  },
14509
- readonly: Boolean
14547
+ readonly: Boolean,
14548
+ ...makeComponentProps()
14510
14549
  }, 'v-expansion-panel-title');
14511
14550
  const VExpansionPanelTitle = genericComponent()({
14512
14551
  name: 'VExpansionPanelTitle',
14513
14552
  directives: {
14514
14553
  Ripple
14515
14554
  },
14516
- props: {
14517
- ...makeComponentProps(),
14518
- ...makeVExpansionPanelTitleProps()
14519
- },
14555
+ props: makeVExpansionPanelTitleProps(),
14520
14556
  setup(props, _ref) {
14521
14557
  let {
14522
14558
  slots
@@ -14555,12 +14591,13 @@
14555
14591
  }
14556
14592
  });
14557
14593
 
14594
+ const makeVExpansionPanelTextProps = propsFactory({
14595
+ ...makeComponentProps(),
14596
+ ...makeLazyProps()
14597
+ }, 'v-expansion-panel-text');
14558
14598
  const VExpansionPanelText = genericComponent()({
14559
14599
  name: 'VExpansionPanelText',
14560
- props: {
14561
- ...makeComponentProps(),
14562
- ...makeLazyProps()
14563
- },
14600
+ props: makeVExpansionPanelTextProps(),
14564
14601
  setup(props, _ref) {
14565
14602
  let {
14566
14603
  slots
@@ -14585,20 +14622,21 @@
14585
14622
  }
14586
14623
  });
14587
14624
 
14625
+ const makeVExpansionPanelProps = propsFactory({
14626
+ title: String,
14627
+ text: String,
14628
+ bgColor: String,
14629
+ ...makeComponentProps(),
14630
+ ...makeElevationProps(),
14631
+ ...makeGroupItemProps(),
14632
+ ...makeLazyProps(),
14633
+ ...makeRoundedProps(),
14634
+ ...makeTagProps(),
14635
+ ...makeVExpansionPanelTitleProps()
14636
+ }, 'v-expansion-panel');
14588
14637
  const VExpansionPanel = genericComponent()({
14589
14638
  name: 'VExpansionPanel',
14590
- props: {
14591
- title: String,
14592
- text: String,
14593
- bgColor: String,
14594
- ...makeComponentProps(),
14595
- ...makeElevationProps(),
14596
- ...makeGroupItemProps(),
14597
- ...makeLazyProps(),
14598
- ...makeRoundedProps(),
14599
- ...makeTagProps(),
14600
- ...makeVExpansionPanelTitleProps()
14601
- },
14639
+ props: makeVExpansionPanelProps(),
14602
14640
  emits: {
14603
14641
  'group:selected': val => true
14604
14642
  },
@@ -14641,8 +14679,7 @@
14641
14679
  'v-expansion-panel--after-active': isAfterSelected.value,
14642
14680
  'v-expansion-panel--disabled': isDisabled.value
14643
14681
  }, roundedClasses.value, backgroundColorClasses.value, props.class],
14644
- "style": [backgroundColorStyles.value, props.style],
14645
- "aria-expanded": groupItem.isSelected.value
14682
+ "style": [backgroundColorStyles.value, props.style]
14646
14683
  }, {
14647
14684
  default: () => [vue.createVNode("div", {
14648
14685
  "class": ['v-expansion-panel__shadow', ...elevationClasses.value]
@@ -14669,42 +14706,43 @@
14669
14706
 
14670
14707
  // Types
14671
14708
 
14709
+ const makeVFileInputProps = propsFactory({
14710
+ chips: Boolean,
14711
+ counter: Boolean,
14712
+ counterSizeString: {
14713
+ type: String,
14714
+ default: '$vuetify.fileInput.counterSize'
14715
+ },
14716
+ counterString: {
14717
+ type: String,
14718
+ default: '$vuetify.fileInput.counter'
14719
+ },
14720
+ multiple: Boolean,
14721
+ showSize: {
14722
+ type: [Boolean, Number],
14723
+ default: false,
14724
+ validator: v => {
14725
+ return typeof v === 'boolean' || [1000, 1024].includes(v);
14726
+ }
14727
+ },
14728
+ ...makeVInputProps({
14729
+ prependIcon: '$file'
14730
+ }),
14731
+ modelValue: {
14732
+ type: Array,
14733
+ default: () => [],
14734
+ validator: val => {
14735
+ return wrapInArray(val).every(v => v != null && typeof v === 'object');
14736
+ }
14737
+ },
14738
+ ...makeVFieldProps({
14739
+ clearable: true
14740
+ })
14741
+ }, 'v-file-input');
14672
14742
  const VFileInput = genericComponent()({
14673
14743
  name: 'VFileInput',
14674
14744
  inheritAttrs: false,
14675
- props: {
14676
- chips: Boolean,
14677
- counter: Boolean,
14678
- counterSizeString: {
14679
- type: String,
14680
- default: '$vuetify.fileInput.counterSize'
14681
- },
14682
- counterString: {
14683
- type: String,
14684
- default: '$vuetify.fileInput.counter'
14685
- },
14686
- multiple: Boolean,
14687
- showSize: {
14688
- type: [Boolean, Number],
14689
- default: false,
14690
- validator: v => {
14691
- return typeof v === 'boolean' || [1000, 1024].includes(v);
14692
- }
14693
- },
14694
- ...makeVInputProps({
14695
- prependIcon: '$file'
14696
- }),
14697
- modelValue: {
14698
- type: Array,
14699
- default: () => [],
14700
- validator: val => {
14701
- return wrapInArray(val).every(v => v != null && typeof v === 'object');
14702
- }
14703
- },
14704
- ...makeVFieldProps({
14705
- clearable: true
14706
- })
14707
- },
14745
+ props: makeVFileInputProps(),
14708
14746
  emits: {
14709
14747
  'click:control': e => true,
14710
14748
  'mousedown:control': e => true,
@@ -14875,25 +14913,26 @@
14875
14913
  }
14876
14914
  });
14877
14915
 
14916
+ const makeVFooterProps = propsFactory({
14917
+ app: Boolean,
14918
+ color: String,
14919
+ height: {
14920
+ type: [Number, String],
14921
+ default: 'auto'
14922
+ },
14923
+ ...makeBorderProps(),
14924
+ ...makeComponentProps(),
14925
+ ...makeElevationProps(),
14926
+ ...makeLayoutItemProps(),
14927
+ ...makeRoundedProps(),
14928
+ ...makeTagProps({
14929
+ tag: 'footer'
14930
+ }),
14931
+ ...makeThemeProps()
14932
+ }, 'v-footer');
14878
14933
  const VFooter = genericComponent()({
14879
14934
  name: 'VFooter',
14880
- props: {
14881
- app: Boolean,
14882
- color: String,
14883
- height: {
14884
- type: [Number, String],
14885
- default: 'auto'
14886
- },
14887
- ...makeBorderProps(),
14888
- ...makeComponentProps(),
14889
- ...makeElevationProps(),
14890
- ...makeLayoutItemProps(),
14891
- ...makeRoundedProps(),
14892
- ...makeTagProps({
14893
- tag: 'footer'
14894
- }),
14895
- ...makeThemeProps()
14896
- },
14935
+ props: makeVFooterProps(),
14897
14936
  setup(props, _ref) {
14898
14937
  let {
14899
14938
  slots
@@ -14914,7 +14953,7 @@
14914
14953
  const {
14915
14954
  roundedClasses
14916
14955
  } = useRounded(props);
14917
- const autoHeight = vue.ref(32);
14956
+ const autoHeight = vue.shallowRef(32);
14918
14957
  const {
14919
14958
  resizeRef
14920
14959
  } = useResizeObserver(entries => {
@@ -14944,12 +14983,13 @@
14944
14983
 
14945
14984
  // Types
14946
14985
 
14986
+ const makeVFormProps = propsFactory({
14987
+ ...makeComponentProps(),
14988
+ ...makeFormProps()
14989
+ }, 'v-form');
14947
14990
  const VForm = genericComponent()({
14948
14991
  name: 'VForm',
14949
- props: {
14950
- ...makeComponentProps(),
14951
- ...makeFormProps()
14952
- },
14992
+ props: makeVFormProps(),
14953
14993
  emits: {
14954
14994
  'update:modelValue': val => true,
14955
14995
  submit: e => true
@@ -14996,24 +15036,28 @@
14996
15036
  }
14997
15037
  });
14998
15038
 
15039
+ const makeVContainerProps = propsFactory({
15040
+ fluid: {
15041
+ type: Boolean,
15042
+ default: false
15043
+ },
15044
+ ...makeComponentProps(),
15045
+ ...makeTagProps()
15046
+ }, 'v-container');
14999
15047
  const VContainer = genericComponent()({
15000
15048
  name: 'VContainer',
15001
- props: {
15002
- fluid: {
15003
- type: Boolean,
15004
- default: false
15005
- },
15006
- ...makeComponentProps(),
15007
- ...makeTagProps()
15008
- },
15049
+ props: makeVContainerProps(),
15009
15050
  setup(props, _ref) {
15010
15051
  let {
15011
15052
  slots
15012
15053
  } = _ref;
15054
+ const {
15055
+ rtlClasses
15056
+ } = useRtl();
15013
15057
  useRender(() => vue.createVNode(props.tag, {
15014
15058
  "class": ['v-container', {
15015
15059
  'v-container--fluid': props.fluid
15016
- }, props.class],
15060
+ }, rtlClasses.value, props.class],
15017
15061
  "style": props.style
15018
15062
  }, slots));
15019
15063
  return {};
@@ -15082,32 +15126,33 @@
15082
15126
  return className.toLowerCase();
15083
15127
  }
15084
15128
  const ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch'];
15129
+ const makeVColProps = propsFactory({
15130
+ cols: {
15131
+ type: [Boolean, String, Number],
15132
+ default: false
15133
+ },
15134
+ ...breakpointProps,
15135
+ offset: {
15136
+ type: [String, Number],
15137
+ default: null
15138
+ },
15139
+ ...offsetProps,
15140
+ order: {
15141
+ type: [String, Number],
15142
+ default: null
15143
+ },
15144
+ ...orderProps,
15145
+ alignSelf: {
15146
+ type: String,
15147
+ default: null,
15148
+ validator: str => ALIGN_SELF_VALUES.includes(str)
15149
+ },
15150
+ ...makeComponentProps(),
15151
+ ...makeTagProps()
15152
+ }, 'v-col');
15085
15153
  const VCol = genericComponent()({
15086
15154
  name: 'VCol',
15087
- props: {
15088
- cols: {
15089
- type: [Boolean, String, Number],
15090
- default: false
15091
- },
15092
- ...breakpointProps,
15093
- offset: {
15094
- type: [String, Number],
15095
- default: null
15096
- },
15097
- ...offsetProps,
15098
- order: {
15099
- type: [String, Number],
15100
- default: null
15101
- },
15102
- ...orderProps,
15103
- alignSelf: {
15104
- type: String,
15105
- default: null,
15106
- validator: str => ALIGN_SELF_VALUES.includes(str)
15107
- },
15108
- ...makeComponentProps(),
15109
- ...makeTagProps()
15110
- },
15155
+ props: makeVColProps(),
15111
15156
  setup(props, _ref) {
15112
15157
  let {
15113
15158
  slots
@@ -15200,32 +15245,33 @@
15200
15245
  className += `-${val}`;
15201
15246
  return className.toLowerCase();
15202
15247
  }
15248
+ const makeVRowProps = propsFactory({
15249
+ dense: Boolean,
15250
+ noGutters: Boolean,
15251
+ align: {
15252
+ type: String,
15253
+ default: null,
15254
+ validator: alignValidator
15255
+ },
15256
+ ...alignProps,
15257
+ justify: {
15258
+ type: String,
15259
+ default: null,
15260
+ validator: justifyValidator
15261
+ },
15262
+ ...justifyProps,
15263
+ alignContent: {
15264
+ type: String,
15265
+ default: null,
15266
+ validator: alignContentValidator
15267
+ },
15268
+ ...alignContentProps,
15269
+ ...makeComponentProps(),
15270
+ ...makeTagProps()
15271
+ }, 'v-row');
15203
15272
  const VRow = genericComponent()({
15204
15273
  name: 'VRow',
15205
- props: {
15206
- dense: Boolean,
15207
- noGutters: Boolean,
15208
- align: {
15209
- type: String,
15210
- default: null,
15211
- validator: alignValidator
15212
- },
15213
- ...alignProps,
15214
- justify: {
15215
- type: String,
15216
- default: null,
15217
- validator: justifyValidator
15218
- },
15219
- ...justifyProps,
15220
- alignContent: {
15221
- type: String,
15222
- default: null,
15223
- validator: alignContentValidator
15224
- },
15225
- ...alignContentProps,
15226
- ...makeComponentProps(),
15227
- ...makeTagProps()
15228
- },
15274
+ props: makeVRowProps(),
15229
15275
  setup(props, _ref) {
15230
15276
  let {
15231
15277
  slots
@@ -15261,16 +15307,17 @@
15261
15307
  const VSpacer = createSimpleFunctional('flex-grow-1', 'div', 'VSpacer');
15262
15308
 
15263
15309
  // Composables
15310
+ const makeVHoverProps = propsFactory({
15311
+ disabled: Boolean,
15312
+ modelValue: {
15313
+ type: Boolean,
15314
+ default: undefined
15315
+ },
15316
+ ...makeDelayProps()
15317
+ }, 'v-hover');
15264
15318
  const VHover = genericComponent()({
15265
15319
  name: 'VHover',
15266
- props: {
15267
- disabled: Boolean,
15268
- modelValue: {
15269
- type: Boolean,
15270
- default: undefined
15271
- },
15272
- ...makeDelayProps()
15273
- },
15320
+ props: makeVHoverProps(),
15274
15321
  emits: {
15275
15322
  'update:modelValue': value => true
15276
15323
  },
@@ -15294,16 +15341,17 @@
15294
15341
  });
15295
15342
 
15296
15343
  const VItemGroupSymbol = Symbol.for('vuetify:v-item-group');
15344
+ const makeVItemGroupProps = propsFactory({
15345
+ ...makeComponentProps(),
15346
+ ...makeGroupProps({
15347
+ selectedClass: 'v-item--selected'
15348
+ }),
15349
+ ...makeTagProps(),
15350
+ ...makeThemeProps()
15351
+ }, 'v-item-group');
15297
15352
  const VItemGroup = genericComponent()({
15298
15353
  name: 'VItemGroup',
15299
- props: {
15300
- ...makeComponentProps(),
15301
- ...makeGroupProps({
15302
- selectedClass: 'v-item--selected'
15303
- }),
15304
- ...makeTagProps(),
15305
- ...makeThemeProps()
15306
- },
15354
+ props: makeVItemGroupProps(),
15307
15355
  emits: {
15308
15356
  'update:modelValue': value => true
15309
15357
  },
@@ -15371,12 +15419,13 @@
15371
15419
 
15372
15420
  const VKbd = createSimpleFunctional('v-kbd');
15373
15421
 
15422
+ const makeVLayoutProps = propsFactory({
15423
+ ...makeComponentProps(),
15424
+ ...makeLayoutProps()
15425
+ }, 'v-layout');
15374
15426
  const VLayout = genericComponent()({
15375
15427
  name: 'VLayout',
15376
- props: {
15377
- ...makeComponentProps(),
15378
- ...makeLayoutProps()
15379
- },
15428
+ props: makeVLayoutProps(),
15380
15429
  setup(props, _ref) {
15381
15430
  let {
15382
15431
  slots
@@ -15402,21 +15451,22 @@
15402
15451
 
15403
15452
  // Types
15404
15453
 
15454
+ const makeVLayoutItemProps = propsFactory({
15455
+ position: {
15456
+ type: String,
15457
+ required: true
15458
+ },
15459
+ size: {
15460
+ type: [Number, String],
15461
+ default: 300
15462
+ },
15463
+ modelValue: Boolean,
15464
+ ...makeComponentProps(),
15465
+ ...makeLayoutItemProps()
15466
+ }, 'v-layout-item');
15405
15467
  const VLayoutItem = genericComponent()({
15406
15468
  name: 'VLayoutItem',
15407
- props: {
15408
- position: {
15409
- type: String,
15410
- required: true
15411
- },
15412
- size: {
15413
- type: [Number, String],
15414
- default: 300
15415
- },
15416
- modelValue: Boolean,
15417
- ...makeComponentProps(),
15418
- ...makeLayoutItemProps()
15419
- },
15469
+ props: makeVLayoutItemProps(),
15420
15470
  setup(props, _ref) {
15421
15471
  let {
15422
15472
  slots
@@ -15441,30 +15491,31 @@
15441
15491
 
15442
15492
  // Types
15443
15493
 
15494
+ const makeVLazyProps = propsFactory({
15495
+ modelValue: Boolean,
15496
+ options: {
15497
+ type: Object,
15498
+ // For more information on types, navigate to:
15499
+ // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
15500
+ default: () => ({
15501
+ root: undefined,
15502
+ rootMargin: undefined,
15503
+ threshold: undefined
15504
+ })
15505
+ },
15506
+ ...makeComponentProps(),
15507
+ ...makeDimensionProps(),
15508
+ ...makeTagProps(),
15509
+ ...makeTransitionProps({
15510
+ transition: 'fade-transition'
15511
+ })
15512
+ }, 'v-lazy');
15444
15513
  const VLazy = genericComponent()({
15445
15514
  name: 'VLazy',
15446
15515
  directives: {
15447
15516
  intersect: Intersect
15448
15517
  },
15449
- props: {
15450
- modelValue: Boolean,
15451
- options: {
15452
- type: Object,
15453
- // For more information on types, navigate to:
15454
- // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
15455
- default: () => ({
15456
- root: undefined,
15457
- rootMargin: undefined,
15458
- threshold: undefined
15459
- })
15460
- },
15461
- ...makeComponentProps(),
15462
- ...makeDimensionProps(),
15463
- ...makeTagProps(),
15464
- ...makeTransitionProps({
15465
- transition: 'fade-transition'
15466
- })
15467
- },
15518
+ props: makeVLazyProps(),
15468
15519
  emits: {
15469
15520
  'update:modelValue': value => true
15470
15521
  },
@@ -15498,18 +15549,19 @@
15498
15549
  }
15499
15550
  });
15500
15551
 
15552
+ const makeVLocaleProviderProps = propsFactory({
15553
+ locale: String,
15554
+ fallbackLocale: String,
15555
+ messages: Object,
15556
+ rtl: {
15557
+ type: Boolean,
15558
+ default: undefined
15559
+ },
15560
+ ...makeComponentProps()
15561
+ }, 'v-locale-provider');
15501
15562
  const VLocaleProvider = genericComponent()({
15502
15563
  name: 'VLocaleProvider',
15503
- props: {
15504
- locale: String,
15505
- fallbackLocale: String,
15506
- messages: Object,
15507
- rtl: {
15508
- type: Boolean,
15509
- default: undefined
15510
- },
15511
- ...makeComponentProps()
15512
- },
15564
+ props: makeVLocaleProviderProps(),
15513
15565
  setup(props, _ref) {
15514
15566
  let {
15515
15567
  slots
@@ -15525,15 +15577,16 @@
15525
15577
  }
15526
15578
  });
15527
15579
 
15580
+ const makeVMainProps = propsFactory({
15581
+ scrollable: Boolean,
15582
+ ...makeComponentProps(),
15583
+ ...makeTagProps({
15584
+ tag: 'main'
15585
+ })
15586
+ }, 'v-main');
15528
15587
  const VMain = genericComponent()({
15529
15588
  name: 'VMain',
15530
- props: {
15531
- scrollable: Boolean,
15532
- ...makeComponentProps(),
15533
- ...makeTagProps({
15534
- tag: 'main'
15535
- })
15536
- },
15589
+ props: makeVMainProps(),
15537
15590
  setup(props, _ref) {
15538
15591
  let {
15539
15592
  slots
@@ -15558,14 +15611,18 @@
15558
15611
  }
15559
15612
  });
15560
15613
 
15614
+ // Utilities
15615
+
15616
+ // Types
15617
+
15561
15618
  function useSticky(_ref) {
15562
15619
  let {
15563
15620
  rootEl,
15564
15621
  isSticky,
15565
15622
  layoutItemStyles
15566
15623
  } = _ref;
15567
- const isStuck = vue.ref(false);
15568
- const stuckPosition = vue.ref(0);
15624
+ const isStuck = vue.shallowRef(false);
15625
+ const stuckPosition = vue.shallowRef(0);
15569
15626
  const stickyStyles = vue.computed(() => {
15570
15627
  const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;
15571
15628
  return [isSticky.value ? {
@@ -15601,18 +15658,24 @@
15601
15658
  const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0);
15602
15659
  const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);
15603
15660
  const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;
15661
+ const bodyScroll = parseFloat(getComputedStyle(rootEl.value).getPropertyValue('--v-body-scroll-y')) || 0;
15604
15662
  if (rect.height < window.innerHeight - layoutTop) {
15605
15663
  isStuck.value = 'top';
15606
15664
  stuckPosition.value = layoutTop;
15607
15665
  } else if (direction === 'up' && isStuck.value === 'bottom' || direction === 'down' && isStuck.value === 'top') {
15608
- stuckPosition.value = window.scrollY + rect.top;
15666
+ stuckPosition.value = window.scrollY + rect.top - bodyScroll;
15609
15667
  isStuck.value = true;
15610
15668
  } else if (direction === 'down' && bottom <= 0) {
15611
15669
  stuckPosition.value = 0;
15612
15670
  isStuck.value = 'bottom';
15613
15671
  } else if (direction === 'up' && top <= 0) {
15614
- stuckPosition.value = rect.top + top;
15615
- isStuck.value = 'top';
15672
+ if (!bodyScroll) {
15673
+ stuckPosition.value = rect.top + top;
15674
+ isStuck.value = 'top';
15675
+ } else if (isStuck.value !== 'top') {
15676
+ stuckPosition.value = -top + bodyScroll + layoutTop;
15677
+ isStuck.value = 'top';
15678
+ }
15616
15679
  }
15617
15680
  lastScrollTop = window.scrollY;
15618
15681
  }
@@ -15759,9 +15822,9 @@
15759
15822
  getVelocity
15760
15823
  } = useVelocity();
15761
15824
  let maybeDragging = false;
15762
- const isDragging = vue.ref(false);
15763
- const dragProgress = vue.ref(0);
15764
- const offset = vue.ref(0);
15825
+ const isDragging = vue.shallowRef(false);
15826
+ const dragProgress = vue.shallowRef(0);
15827
+ const offset = vue.shallowRef(0);
15765
15828
  let start;
15766
15829
  function getOffset(pos, active) {
15767
15830
  return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'top' ? pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);
@@ -15855,54 +15918,55 @@
15855
15918
  // Types
15856
15919
 
15857
15920
  const locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];
15921
+ const makeVNavigationDrawerProps = propsFactory({
15922
+ color: String,
15923
+ disableResizeWatcher: Boolean,
15924
+ disableRouteWatcher: Boolean,
15925
+ expandOnHover: Boolean,
15926
+ floating: Boolean,
15927
+ modelValue: {
15928
+ type: Boolean,
15929
+ default: null
15930
+ },
15931
+ permanent: Boolean,
15932
+ rail: {
15933
+ type: Boolean,
15934
+ default: null
15935
+ },
15936
+ railWidth: {
15937
+ type: [Number, String],
15938
+ default: 56
15939
+ },
15940
+ scrim: {
15941
+ type: [String, Boolean],
15942
+ default: true
15943
+ },
15944
+ image: String,
15945
+ temporary: Boolean,
15946
+ touchless: Boolean,
15947
+ width: {
15948
+ type: [Number, String],
15949
+ default: 256
15950
+ },
15951
+ location: {
15952
+ type: String,
15953
+ default: 'start',
15954
+ validator: value => locations.includes(value)
15955
+ },
15956
+ sticky: Boolean,
15957
+ ...makeBorderProps(),
15958
+ ...makeComponentProps(),
15959
+ ...makeElevationProps(),
15960
+ ...makeLayoutItemProps(),
15961
+ ...makeRoundedProps(),
15962
+ ...makeTagProps({
15963
+ tag: 'nav'
15964
+ }),
15965
+ ...makeThemeProps()
15966
+ }, 'v-navigation-drawer');
15858
15967
  const VNavigationDrawer = genericComponent()({
15859
15968
  name: 'VNavigationDrawer',
15860
- props: {
15861
- color: String,
15862
- disableResizeWatcher: Boolean,
15863
- disableRouteWatcher: Boolean,
15864
- expandOnHover: Boolean,
15865
- floating: Boolean,
15866
- modelValue: {
15867
- type: Boolean,
15868
- default: null
15869
- },
15870
- permanent: Boolean,
15871
- rail: {
15872
- type: Boolean,
15873
- default: null
15874
- },
15875
- railWidth: {
15876
- type: [Number, String],
15877
- default: 56
15878
- },
15879
- scrim: {
15880
- type: [String, Boolean],
15881
- default: true
15882
- },
15883
- image: String,
15884
- temporary: Boolean,
15885
- touchless: Boolean,
15886
- width: {
15887
- type: [Number, String],
15888
- default: 256
15889
- },
15890
- location: {
15891
- type: String,
15892
- default: 'start',
15893
- validator: value => locations.includes(value)
15894
- },
15895
- sticky: Boolean,
15896
- ...makeBorderProps(),
15897
- ...makeComponentProps(),
15898
- ...makeElevationProps(),
15899
- ...makeLayoutItemProps(),
15900
- ...makeRoundedProps(),
15901
- ...makeTagProps({
15902
- tag: 'nav'
15903
- }),
15904
- ...makeThemeProps()
15905
- },
15969
+ props: makeVNavigationDrawerProps(),
15906
15970
  emits: {
15907
15971
  'update:modelValue': val => true,
15908
15972
  'update:rail': val => true
@@ -15941,7 +16005,7 @@
15941
16005
  ssrBootStyles
15942
16006
  } = useSsrBoot();
15943
16007
  const rootEl = vue.ref();
15944
- const isHovering = vue.ref(false);
16008
+ const isHovering = vue.shallowRef(false);
15945
16009
  const width = vue.computed(() => {
15946
16010
  return props.rail && props.expandOnHover && isHovering.value ? Number(props.width) : Number(props.rail ? props.railWidth : props.width);
15947
16011
  });
@@ -16100,88 +16164,89 @@
16100
16164
 
16101
16165
  // Types
16102
16166
 
16167
+ const makeVPaginationProps = propsFactory({
16168
+ activeColor: String,
16169
+ start: {
16170
+ type: [Number, String],
16171
+ default: 1
16172
+ },
16173
+ modelValue: {
16174
+ type: Number,
16175
+ default: props => props.start
16176
+ },
16177
+ disabled: Boolean,
16178
+ length: {
16179
+ type: [Number, String],
16180
+ default: 1,
16181
+ validator: val => val % 1 === 0
16182
+ },
16183
+ totalVisible: [Number, String],
16184
+ firstIcon: {
16185
+ type: IconValue,
16186
+ default: '$first'
16187
+ },
16188
+ prevIcon: {
16189
+ type: IconValue,
16190
+ default: '$prev'
16191
+ },
16192
+ nextIcon: {
16193
+ type: IconValue,
16194
+ default: '$next'
16195
+ },
16196
+ lastIcon: {
16197
+ type: IconValue,
16198
+ default: '$last'
16199
+ },
16200
+ ariaLabel: {
16201
+ type: String,
16202
+ default: '$vuetify.pagination.ariaLabel.root'
16203
+ },
16204
+ pageAriaLabel: {
16205
+ type: String,
16206
+ default: '$vuetify.pagination.ariaLabel.page'
16207
+ },
16208
+ currentPageAriaLabel: {
16209
+ type: String,
16210
+ default: '$vuetify.pagination.ariaLabel.currentPage'
16211
+ },
16212
+ firstAriaLabel: {
16213
+ type: String,
16214
+ default: '$vuetify.pagination.ariaLabel.first'
16215
+ },
16216
+ previousAriaLabel: {
16217
+ type: String,
16218
+ default: '$vuetify.pagination.ariaLabel.previous'
16219
+ },
16220
+ nextAriaLabel: {
16221
+ type: String,
16222
+ default: '$vuetify.pagination.ariaLabel.next'
16223
+ },
16224
+ lastAriaLabel: {
16225
+ type: String,
16226
+ default: '$vuetify.pagination.ariaLabel.last'
16227
+ },
16228
+ ellipsis: {
16229
+ type: String,
16230
+ default: '...'
16231
+ },
16232
+ showFirstLastPage: Boolean,
16233
+ ...makeBorderProps(),
16234
+ ...makeComponentProps(),
16235
+ ...makeDensityProps(),
16236
+ ...makeElevationProps(),
16237
+ ...makeRoundedProps(),
16238
+ ...makeSizeProps(),
16239
+ ...makeTagProps({
16240
+ tag: 'nav'
16241
+ }),
16242
+ ...makeThemeProps(),
16243
+ ...makeVariantProps({
16244
+ variant: 'text'
16245
+ })
16246
+ }, 'v-pagination');
16103
16247
  const VPagination = genericComponent()({
16104
16248
  name: 'VPagination',
16105
- props: {
16106
- activeColor: String,
16107
- start: {
16108
- type: [Number, String],
16109
- default: 1
16110
- },
16111
- modelValue: {
16112
- type: Number,
16113
- default: props => props.start
16114
- },
16115
- disabled: Boolean,
16116
- length: {
16117
- type: [Number, String],
16118
- default: 1,
16119
- validator: val => val % 1 === 0
16120
- },
16121
- totalVisible: [Number, String],
16122
- firstIcon: {
16123
- type: IconValue,
16124
- default: '$first'
16125
- },
16126
- prevIcon: {
16127
- type: IconValue,
16128
- default: '$prev'
16129
- },
16130
- nextIcon: {
16131
- type: IconValue,
16132
- default: '$next'
16133
- },
16134
- lastIcon: {
16135
- type: IconValue,
16136
- default: '$last'
16137
- },
16138
- ariaLabel: {
16139
- type: String,
16140
- default: '$vuetify.pagination.ariaLabel.root'
16141
- },
16142
- pageAriaLabel: {
16143
- type: String,
16144
- default: '$vuetify.pagination.ariaLabel.page'
16145
- },
16146
- currentPageAriaLabel: {
16147
- type: String,
16148
- default: '$vuetify.pagination.ariaLabel.currentPage'
16149
- },
16150
- firstAriaLabel: {
16151
- type: String,
16152
- default: '$vuetify.pagination.ariaLabel.first'
16153
- },
16154
- previousAriaLabel: {
16155
- type: String,
16156
- default: '$vuetify.pagination.ariaLabel.previous'
16157
- },
16158
- nextAriaLabel: {
16159
- type: String,
16160
- default: '$vuetify.pagination.ariaLabel.next'
16161
- },
16162
- lastAriaLabel: {
16163
- type: String,
16164
- default: '$vuetify.pagination.ariaLabel.last'
16165
- },
16166
- ellipsis: {
16167
- type: String,
16168
- default: '...'
16169
- },
16170
- showFirstLastPage: Boolean,
16171
- ...makeBorderProps(),
16172
- ...makeComponentProps(),
16173
- ...makeDensityProps(),
16174
- ...makeElevationProps(),
16175
- ...makeRoundedProps(),
16176
- ...makeSizeProps(),
16177
- ...makeTagProps({
16178
- tag: 'nav'
16179
- }),
16180
- ...makeThemeProps(),
16181
- ...makeVariantProps({
16182
- variant: 'text'
16183
- })
16184
- },
16249
+ props: makeVPaginationProps(),
16185
16250
  emits: {
16186
16251
  'update:modelValue': value => true,
16187
16252
  first: value => true,
@@ -16208,7 +16273,7 @@
16208
16273
  const {
16209
16274
  width
16210
16275
  } = useDisplay();
16211
- const maxButtons = vue.ref(-1);
16276
+ const maxButtons = vue.shallowRef(-1);
16212
16277
  provideDefaults(undefined, {
16213
16278
  scoped: true
16214
16279
  });
@@ -16420,15 +16485,16 @@
16420
16485
  function floor(val) {
16421
16486
  return Math.floor(Math.abs(val)) * Math.sign(val);
16422
16487
  }
16488
+ const makeVParallaxProps = propsFactory({
16489
+ scale: {
16490
+ type: [Number, String],
16491
+ default: 0.5
16492
+ },
16493
+ ...makeComponentProps()
16494
+ }, 'v-parallax');
16423
16495
  const VParallax = genericComponent()({
16424
16496
  name: 'VParallax',
16425
- props: {
16426
- scale: {
16427
- type: [Number, String],
16428
- default: 0.5
16429
- },
16430
- ...makeComponentProps()
16431
- },
16497
+ props: makeVParallaxProps(),
16432
16498
  setup(props, _ref) {
16433
16499
  let {
16434
16500
  slots
@@ -16502,14 +16568,15 @@
16502
16568
 
16503
16569
  // Types
16504
16570
 
16571
+ const makeVRadioProps = propsFactory({
16572
+ ...makeSelectionControlProps({
16573
+ falseIcon: '$radioOff',
16574
+ trueIcon: '$radioOn'
16575
+ })
16576
+ }, 'v-radio');
16505
16577
  const VRadio = genericComponent()({
16506
16578
  name: 'VRadio',
16507
- props: {
16508
- ...makeSelectionControlProps({
16509
- falseIcon: '$radioOff',
16510
- trueIcon: '$radioOn'
16511
- })
16512
- },
16579
+ props: makeVRadioProps(),
16513
16580
  setup(props, _ref) {
16514
16581
  let {
16515
16582
  slots
@@ -16521,33 +16588,34 @@
16521
16588
  }), slots));
16522
16589
  return {};
16523
16590
  }
16524
- });
16525
-
16526
- // Types
16527
-
16591
+ });
16592
+
16593
+ // Types
16594
+
16595
+ const makeVRadioGroupProps = propsFactory({
16596
+ height: {
16597
+ type: [Number, String],
16598
+ default: 'auto'
16599
+ },
16600
+ ...makeVInputProps(),
16601
+ ...omit(makeSelectionControlGroupProps(), ['multiple']),
16602
+ trueIcon: {
16603
+ type: IconValue,
16604
+ default: '$radioOn'
16605
+ },
16606
+ falseIcon: {
16607
+ type: IconValue,
16608
+ default: '$radioOff'
16609
+ },
16610
+ type: {
16611
+ type: String,
16612
+ default: 'radio'
16613
+ }
16614
+ }, 'v-radio-group');
16528
16615
  const VRadioGroup = genericComponent()({
16529
16616
  name: 'VRadioGroup',
16530
16617
  inheritAttrs: false,
16531
- props: {
16532
- height: {
16533
- type: [Number, String],
16534
- default: 'auto'
16535
- },
16536
- ...makeVInputProps(),
16537
- ...omit(makeSelectionControlGroupProps(), ['multiple']),
16538
- trueIcon: {
16539
- type: IconValue,
16540
- default: '$radioOn'
16541
- },
16542
- falseIcon: {
16543
- type: IconValue,
16544
- default: '$radioOff'
16545
- },
16546
- type: {
16547
- type: String,
16548
- default: 'radio'
16549
- }
16550
- },
16618
+ props: makeVRadioGroupProps(),
16551
16619
  emits: {
16552
16620
  'update:modelValue': val => true
16553
16621
  },
@@ -16613,18 +16681,19 @@
16613
16681
 
16614
16682
  // Types
16615
16683
 
16684
+ const makeVRangeSliderProps = propsFactory({
16685
+ ...makeFocusProps(),
16686
+ ...makeVInputProps(),
16687
+ ...makeSliderProps(),
16688
+ strict: Boolean,
16689
+ modelValue: {
16690
+ type: Array,
16691
+ default: () => [0, 0]
16692
+ }
16693
+ }, 'v-range-slider');
16616
16694
  const VRangeSlider = genericComponent()({
16617
16695
  name: 'VRangeSlider',
16618
- props: {
16619
- ...makeFocusProps(),
16620
- ...makeVInputProps(),
16621
- ...makeSliderProps(),
16622
- strict: Boolean,
16623
- modelValue: {
16624
- type: Array,
16625
- default: () => [0, 0]
16626
- }
16627
- },
16696
+ props: makeVRangeSliderProps(),
16628
16697
  emits: {
16629
16698
  'update:focused': value => true,
16630
16699
  'update:modelValue': value => true,
@@ -16639,6 +16708,9 @@
16639
16708
  const startThumbRef = vue.ref();
16640
16709
  const stopThumbRef = vue.ref();
16641
16710
  const inputRef = vue.ref();
16711
+ const {
16712
+ rtlClasses
16713
+ } = useRtl();
16642
16714
  function getActiveThumb(e) {
16643
16715
  if (!startThumbRef.value || !stopThumbRef.value) return;
16644
16716
  const startOffset = getOffset(e, startThumbRef.value.$el, props.direction);
@@ -16709,7 +16781,7 @@
16709
16781
  'v-slider--focused': isFocused.value,
16710
16782
  'v-slider--pressed': mousePressed.value,
16711
16783
  'v-slider--disabled': props.disabled
16712
- }, props.class],
16784
+ }, rtlClasses.value, props.class],
16713
16785
  "style": props.style,
16714
16786
  "ref": inputRef
16715
16787
  }, inputProps, {
@@ -16815,50 +16887,51 @@
16815
16887
 
16816
16888
  // Types
16817
16889
 
16890
+ const makeVRatingProps = propsFactory({
16891
+ name: String,
16892
+ itemAriaLabel: {
16893
+ type: String,
16894
+ default: '$vuetify.rating.ariaLabel.item'
16895
+ },
16896
+ activeColor: String,
16897
+ color: String,
16898
+ clearable: Boolean,
16899
+ disabled: Boolean,
16900
+ emptyIcon: {
16901
+ type: IconValue,
16902
+ default: '$ratingEmpty'
16903
+ },
16904
+ fullIcon: {
16905
+ type: IconValue,
16906
+ default: '$ratingFull'
16907
+ },
16908
+ halfIncrements: Boolean,
16909
+ hover: Boolean,
16910
+ length: {
16911
+ type: [Number, String],
16912
+ default: 5
16913
+ },
16914
+ readonly: Boolean,
16915
+ modelValue: {
16916
+ type: [Number, String],
16917
+ default: 0
16918
+ },
16919
+ itemLabels: Array,
16920
+ itemLabelPosition: {
16921
+ type: String,
16922
+ default: 'top',
16923
+ validator: v => ['top', 'bottom'].includes(v)
16924
+ },
16925
+ ripple: Boolean,
16926
+ ...makeComponentProps(),
16927
+ ...makeDensityProps(),
16928
+ ...makeSizeProps(),
16929
+ ...makeTagProps(),
16930
+ ...makeThemeProps()
16931
+ }, 'v-rating');
16818
16932
  const VRating = genericComponent()({
16819
16933
  name: 'VRating',
16820
- props: {
16821
- name: String,
16822
- itemAriaLabel: {
16823
- type: String,
16824
- default: '$vuetify.rating.ariaLabel.item'
16825
- },
16826
- activeColor: String,
16827
- color: String,
16828
- clearable: Boolean,
16829
- disabled: Boolean,
16830
- emptyIcon: {
16831
- type: IconValue,
16832
- default: '$ratingEmpty'
16833
- },
16834
- fullIcon: {
16835
- type: IconValue,
16836
- default: '$ratingFull'
16837
- },
16838
- halfIncrements: Boolean,
16839
- hover: Boolean,
16840
- length: {
16841
- type: [Number, String],
16842
- default: 5
16843
- },
16844
- readonly: Boolean,
16845
- modelValue: {
16846
- type: [Number, String],
16847
- default: 0
16848
- },
16849
- itemLabels: Array,
16850
- itemLabelPosition: {
16851
- type: String,
16852
- default: 'top',
16853
- validator: v => ['top', 'bottom'].includes(v)
16854
- },
16855
- ripple: Boolean,
16856
- ...makeComponentProps(),
16857
- ...makeDensityProps(),
16858
- ...makeSizeProps(),
16859
- ...makeTagProps(),
16860
- ...makeThemeProps()
16861
- },
16934
+ props: makeVRatingProps(),
16862
16935
  emits: {
16863
16936
  'update:modelValue': value => true
16864
16937
  },
@@ -16876,7 +16949,7 @@
16876
16949
  const normalizedValue = vue.computed(() => clamp(parseFloat(rating.value), 0, +props.length));
16877
16950
  const range = vue.computed(() => createRange(Number(props.length), 1));
16878
16951
  const increments = vue.computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
16879
- const hoverIndex = vue.ref(-1);
16952
+ const hoverIndex = vue.shallowRef(-1);
16880
16953
  const itemState = vue.computed(() => increments.value.map(value => {
16881
16954
  const isHovering = props.hover && hoverIndex.value > -1;
16882
16955
  const isFilled = normalizedValue.value >= value;
@@ -17095,10 +17168,10 @@
17095
17168
  mobile
17096
17169
  } = useDisplay();
17097
17170
  const group = useGroup(props, props.symbol);
17098
- const isOverflowing = vue.ref(false);
17099
- const scrollOffset = vue.ref(0);
17100
- const containerSize = vue.ref(0);
17101
- const contentSize = vue.ref(0);
17171
+ const isOverflowing = vue.shallowRef(false);
17172
+ const scrollOffset = vue.shallowRef(0);
17173
+ const containerSize = vue.shallowRef(0);
17174
+ const contentSize = vue.shallowRef(0);
17102
17175
  const isHorizontal = vue.computed(() => props.direction === 'horizontal');
17103
17176
  const {
17104
17177
  resizeRef: containerRef,
@@ -17154,7 +17227,7 @@
17154
17227
  });
17155
17228
  });
17156
17229
  }
17157
- const disableTransition = vue.ref(false);
17230
+ const disableTransition = vue.shallowRef(false);
17158
17231
  let startTouch = 0;
17159
17232
  let startOffset = 0;
17160
17233
  function onTouchstart(e) {
@@ -17183,7 +17256,7 @@
17183
17256
  if (!containerRef.value) return;
17184
17257
  containerRef.value[isHorizontal.value ? 'scrollLeft' : 'scrollTop'] = 0;
17185
17258
  }
17186
- const isFocused = vue.ref(false);
17259
+ const isFocused = vue.shallowRef(false);
17187
17260
  function onFocusin(e) {
17188
17261
  isFocused.value = true;
17189
17262
  if (!isOverflowing.value || !contentRef.value) return;
@@ -17370,9 +17443,7 @@
17370
17443
 
17371
17444
  const VSlideGroupItem = genericComponent()({
17372
17445
  name: 'VSlideGroupItem',
17373
- props: {
17374
- ...makeGroupItemProps()
17375
- },
17446
+ props: makeGroupItemProps(),
17376
17447
  emits: {
17377
17448
  'group:selected': val => true
17378
17449
  },
@@ -17390,26 +17461,27 @@
17390
17461
  }
17391
17462
  });
17392
17463
 
17464
+ const makeVSnackbarProps = propsFactory({
17465
+ multiLine: Boolean,
17466
+ timeout: {
17467
+ type: [Number, String],
17468
+ default: 5000
17469
+ },
17470
+ vertical: Boolean,
17471
+ ...makeLocationProps({
17472
+ location: 'bottom'
17473
+ }),
17474
+ ...makePositionProps(),
17475
+ ...makeRoundedProps(),
17476
+ ...makeVariantProps(),
17477
+ ...makeThemeProps(),
17478
+ ...omit(makeVOverlayProps({
17479
+ transition: 'v-snackbar-transition'
17480
+ }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy'])
17481
+ }, 'v-snackbar');
17393
17482
  const VSnackbar = genericComponent()({
17394
17483
  name: 'VSnackbar',
17395
- props: {
17396
- multiLine: Boolean,
17397
- timeout: {
17398
- type: [Number, String],
17399
- default: 5000
17400
- },
17401
- vertical: Boolean,
17402
- ...makeLocationProps({
17403
- location: 'bottom'
17404
- }),
17405
- ...makePositionProps(),
17406
- ...makeRoundedProps(),
17407
- ...makeVariantProps(),
17408
- ...makeThemeProps(),
17409
- ...omit(makeVOverlayProps({
17410
- transition: 'v-snackbar-transition'
17411
- }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy'])
17412
- },
17484
+ props: makeVSnackbarProps(),
17413
17485
  emits: {
17414
17486
  'update:modelValue': v => true
17415
17487
  },
@@ -17506,20 +17578,21 @@
17506
17578
 
17507
17579
  // Types
17508
17580
 
17581
+ const makeVSwitchProps = propsFactory({
17582
+ indeterminate: Boolean,
17583
+ inset: Boolean,
17584
+ flat: Boolean,
17585
+ loading: {
17586
+ type: [Boolean, String],
17587
+ default: false
17588
+ },
17589
+ ...makeVInputProps(),
17590
+ ...makeSelectionControlProps()
17591
+ }, 'v-switch');
17509
17592
  const VSwitch = genericComponent()({
17510
17593
  name: 'VSwitch',
17511
17594
  inheritAttrs: false,
17512
- props: {
17513
- indeterminate: Boolean,
17514
- inset: Boolean,
17515
- flat: Boolean,
17516
- loading: {
17517
- type: [Boolean, String],
17518
- default: false
17519
- },
17520
- ...makeVInputProps(),
17521
- ...makeSelectionControlProps()
17522
- },
17595
+ props: makeVSwitchProps(),
17523
17596
  emits: {
17524
17597
  'update:focused': focused => true,
17525
17598
  'update:modelValue': () => true,
@@ -17629,19 +17702,20 @@
17629
17702
  }
17630
17703
  });
17631
17704
 
17705
+ const makeVSystemBarProps = propsFactory({
17706
+ color: String,
17707
+ height: [Number, String],
17708
+ window: Boolean,
17709
+ ...makeComponentProps(),
17710
+ ...makeElevationProps(),
17711
+ ...makeLayoutItemProps(),
17712
+ ...makeRoundedProps(),
17713
+ ...makeTagProps(),
17714
+ ...makeThemeProps()
17715
+ }, 'v-system-bar');
17632
17716
  const VSystemBar = genericComponent()({
17633
17717
  name: 'VSystemBar',
17634
- props: {
17635
- color: String,
17636
- height: [Number, String],
17637
- window: Boolean,
17638
- ...makeComponentProps(),
17639
- ...makeElevationProps(),
17640
- ...makeLayoutItemProps(),
17641
- ...makeRoundedProps(),
17642
- ...makeTagProps(),
17643
- ...makeThemeProps()
17644
- },
17718
+ props: makeVSystemBarProps(),
17645
17719
  setup(props, _ref) {
17646
17720
  let {
17647
17721
  slots
@@ -17668,7 +17742,7 @@
17668
17742
  } = useLayoutItem({
17669
17743
  id: props.name,
17670
17744
  order: vue.computed(() => parseInt(props.order, 10)),
17671
- position: vue.ref('top'),
17745
+ position: vue.shallowRef('top'),
17672
17746
  layoutSize: height,
17673
17747
  elementSize: height,
17674
17748
  active: vue.computed(() => true),
@@ -17686,21 +17760,24 @@
17686
17760
 
17687
17761
  const VTabsSymbol = Symbol.for('vuetify:v-tabs');
17688
17762
 
17763
+ // Types
17764
+
17765
+ const makeVTabProps = propsFactory({
17766
+ fixed: Boolean,
17767
+ sliderColor: String,
17768
+ hideSlider: Boolean,
17769
+ direction: {
17770
+ type: String,
17771
+ default: 'horizontal'
17772
+ },
17773
+ ...omit(makeVBtnProps({
17774
+ selectedClass: 'v-tab--selected',
17775
+ variant: 'text'
17776
+ }), ['active', 'block', 'flat', 'location', 'position', 'symbol'])
17777
+ }, 'v-tabs');
17689
17778
  const VTab = genericComponent()({
17690
17779
  name: 'VTab',
17691
- props: {
17692
- fixed: Boolean,
17693
- sliderColor: String,
17694
- hideSlider: Boolean,
17695
- direction: {
17696
- type: String,
17697
- default: 'horizontal'
17698
- },
17699
- ...omit(makeVBtnProps({
17700
- selectedClass: 'v-tab--selected',
17701
- variant: 'text'
17702
- }), ['active', 'block', 'flat', 'location', 'position', 'symbol'])
17703
- },
17780
+ props: makeVTabProps(),
17704
17781
  setup(props, _ref) {
17705
17782
  let {
17706
17783
  slots,
@@ -17711,7 +17788,7 @@
17711
17788
  textColorStyles: sliderColorStyles
17712
17789
  } = useTextColor(props, 'sliderColor');
17713
17790
  const isHorizontal = vue.computed(() => props.direction === 'horizontal');
17714
- const isSelected = vue.ref(false);
17791
+ const isSelected = vue.shallowRef(false);
17715
17792
  const rootEl = vue.ref();
17716
17793
  const sliderEl = vue.ref();
17717
17794
  function updateSlider(_ref2) {
@@ -17786,34 +17863,35 @@
17786
17863
  return item;
17787
17864
  });
17788
17865
  }
17866
+ const makeVTabsProps = propsFactory({
17867
+ alignTabs: {
17868
+ type: String,
17869
+ default: 'start'
17870
+ },
17871
+ color: String,
17872
+ fixedTabs: Boolean,
17873
+ items: {
17874
+ type: Array,
17875
+ default: () => []
17876
+ },
17877
+ stacked: Boolean,
17878
+ bgColor: String,
17879
+ grow: Boolean,
17880
+ height: {
17881
+ type: [Number, String],
17882
+ default: undefined
17883
+ },
17884
+ hideSlider: Boolean,
17885
+ sliderColor: String,
17886
+ ...makeVSlideGroupProps({
17887
+ mandatory: 'force'
17888
+ }),
17889
+ ...makeDensityProps(),
17890
+ ...makeTagProps()
17891
+ }, 'v-tabs');
17789
17892
  const VTabs = genericComponent()({
17790
17893
  name: 'VTabs',
17791
- props: {
17792
- alignTabs: {
17793
- type: String,
17794
- default: 'start'
17795
- },
17796
- color: String,
17797
- fixedTabs: Boolean,
17798
- items: {
17799
- type: Array,
17800
- default: () => []
17801
- },
17802
- stacked: Boolean,
17803
- bgColor: String,
17804
- grow: Boolean,
17805
- height: {
17806
- type: [Number, String],
17807
- default: undefined
17808
- },
17809
- hideSlider: Boolean,
17810
- sliderColor: String,
17811
- ...makeVSlideGroupProps({
17812
- mandatory: 'force'
17813
- }),
17814
- ...makeDensityProps(),
17815
- ...makeTagProps()
17816
- },
17894
+ props: makeVTabsProps(),
17817
17895
  emits: {
17818
17896
  'update:modelValue': v => true
17819
17897
  },
@@ -17865,18 +17943,19 @@
17865
17943
  }
17866
17944
  });
17867
17945
 
17946
+ const makeVTableProps = propsFactory({
17947
+ fixedHeader: Boolean,
17948
+ fixedFooter: Boolean,
17949
+ height: [Number, String],
17950
+ hover: Boolean,
17951
+ ...makeComponentProps(),
17952
+ ...makeDensityProps(),
17953
+ ...makeTagProps(),
17954
+ ...makeThemeProps()
17955
+ }, 'v-table');
17868
17956
  const VTable = genericComponent()({
17869
17957
  name: 'VTable',
17870
- props: {
17871
- fixedHeader: Boolean,
17872
- fixedFooter: Boolean,
17873
- height: [Number, String],
17874
- hover: Boolean,
17875
- ...makeComponentProps(),
17876
- ...makeDensityProps(),
17877
- ...makeTagProps(),
17878
- ...makeThemeProps()
17879
- },
17958
+ props: makeVTableProps(),
17880
17959
  setup(props, _ref) {
17881
17960
  let {
17882
17961
  slots
@@ -17911,36 +17990,37 @@
17911
17990
 
17912
17991
  // Types
17913
17992
 
17993
+ const makeVTextareaProps = propsFactory({
17994
+ autoGrow: Boolean,
17995
+ autofocus: Boolean,
17996
+ counter: [Boolean, Number, String],
17997
+ counterValue: Function,
17998
+ prefix: String,
17999
+ placeholder: String,
18000
+ persistentPlaceholder: Boolean,
18001
+ persistentCounter: Boolean,
18002
+ noResize: Boolean,
18003
+ rows: {
18004
+ type: [Number, String],
18005
+ default: 5,
18006
+ validator: v => !isNaN(parseFloat(v))
18007
+ },
18008
+ maxRows: {
18009
+ type: [Number, String],
18010
+ validator: v => !isNaN(parseFloat(v))
18011
+ },
18012
+ suffix: String,
18013
+ modelModifiers: Object,
18014
+ ...makeVInputProps(),
18015
+ ...makeVFieldProps()
18016
+ }, 'v-textarea');
17914
18017
  const VTextarea = genericComponent()({
17915
18018
  name: 'VTextarea',
17916
18019
  directives: {
17917
18020
  Intersect
17918
18021
  },
17919
18022
  inheritAttrs: false,
17920
- props: {
17921
- autoGrow: Boolean,
17922
- autofocus: Boolean,
17923
- counter: [Boolean, Number, String],
17924
- counterValue: Function,
17925
- prefix: String,
17926
- placeholder: String,
17927
- persistentPlaceholder: Boolean,
17928
- persistentCounter: Boolean,
17929
- noResize: Boolean,
17930
- rows: {
17931
- type: [Number, String],
17932
- default: 5,
17933
- validator: v => !isNaN(parseFloat(v))
17934
- },
17935
- maxRows: {
17936
- type: [Number, String],
17937
- validator: v => !isNaN(parseFloat(v))
17938
- },
17939
- suffix: String,
17940
- modelModifiers: Object,
17941
- ...makeVInputProps(),
17942
- ...makeVFieldProps()
17943
- },
18023
+ props: makeVTextareaProps(),
17944
18024
  emits: {
17945
18025
  'click:control': e => true,
17946
18026
  'mousedown:control': e => true,
@@ -17973,7 +18053,7 @@
17973
18053
  }
17974
18054
  const vInputRef = vue.ref();
17975
18055
  const vFieldRef = vue.ref();
17976
- const controlHeight = vue.ref('');
18056
+ const controlHeight = vue.shallowRef('');
17977
18057
  const textareaRef = vue.ref();
17978
18058
  const isActive = vue.computed(() => props.persistentPlaceholder || isFocused.value || props.active);
17979
18059
  function onFocus() {
@@ -18142,14 +18222,15 @@
18142
18222
  }
18143
18223
  });
18144
18224
 
18225
+ const makeVThemeProviderProps = propsFactory({
18226
+ withBackground: Boolean,
18227
+ ...makeComponentProps(),
18228
+ ...makeThemeProps(),
18229
+ ...makeTagProps()
18230
+ }, 'v-theme-provider');
18145
18231
  const VThemeProvider = genericComponent()({
18146
18232
  name: 'VThemeProvider',
18147
- props: {
18148
- withBackground: Boolean,
18149
- ...makeComponentProps(),
18150
- ...makeThemeProps(),
18151
- ...makeTagProps()
18152
- },
18233
+ props: makeVThemeProviderProps(),
18153
18234
  setup(props, _ref) {
18154
18235
  let {
18155
18236
  slots
@@ -18171,46 +18252,47 @@
18171
18252
 
18172
18253
  // Types
18173
18254
 
18255
+ const makeVTimelineProps = propsFactory({
18256
+ align: {
18257
+ type: String,
18258
+ default: 'center',
18259
+ validator: v => ['center', 'start'].includes(v)
18260
+ },
18261
+ direction: {
18262
+ type: String,
18263
+ default: 'vertical',
18264
+ validator: v => ['vertical', 'horizontal'].includes(v)
18265
+ },
18266
+ justify: {
18267
+ type: String,
18268
+ default: 'auto',
18269
+ validator: v => ['auto', 'center'].includes(v)
18270
+ },
18271
+ side: {
18272
+ type: String,
18273
+ validator: v => v == null || ['start', 'end'].includes(v)
18274
+ },
18275
+ lineInset: {
18276
+ type: [String, Number],
18277
+ default: 0
18278
+ },
18279
+ lineThickness: {
18280
+ type: [String, Number],
18281
+ default: 2
18282
+ },
18283
+ lineColor: String,
18284
+ truncateLine: {
18285
+ type: String,
18286
+ validator: v => ['start', 'end', 'both'].includes(v)
18287
+ },
18288
+ ...makeComponentProps(),
18289
+ ...makeDensityProps(),
18290
+ ...makeTagProps(),
18291
+ ...makeThemeProps()
18292
+ }, 'v-timeline');
18174
18293
  const VTimeline = genericComponent()({
18175
18294
  name: 'VTimeline',
18176
- props: {
18177
- align: {
18178
- type: String,
18179
- default: 'center',
18180
- validator: v => ['center', 'start'].includes(v)
18181
- },
18182
- direction: {
18183
- type: String,
18184
- default: 'vertical',
18185
- validator: v => ['vertical', 'horizontal'].includes(v)
18186
- },
18187
- justify: {
18188
- type: String,
18189
- default: 'auto',
18190
- validator: v => ['auto', 'center'].includes(v)
18191
- },
18192
- side: {
18193
- type: String,
18194
- validator: v => v == null || ['start', 'end'].includes(v)
18195
- },
18196
- lineInset: {
18197
- type: [String, Number],
18198
- default: 0
18199
- },
18200
- lineThickness: {
18201
- type: [String, Number],
18202
- default: 2
18203
- },
18204
- lineColor: String,
18205
- truncateLine: {
18206
- type: String,
18207
- validator: v => ['start', 'end', 'both'].includes(v)
18208
- },
18209
- ...makeComponentProps(),
18210
- ...makeDensityProps(),
18211
- ...makeTagProps(),
18212
- ...makeThemeProps()
18213
- },
18295
+ props: makeVTimelineProps(),
18214
18296
  setup(props, _ref) {
18215
18297
  let {
18216
18298
  slots
@@ -18221,6 +18303,9 @@
18221
18303
  const {
18222
18304
  densityClasses
18223
18305
  } = useDensity(props);
18306
+ const {
18307
+ rtlClasses
18308
+ } = useRtl();
18224
18309
  provideDefaults({
18225
18310
  VTimelineDivider: {
18226
18311
  lineColor: vue.toRef(props, 'lineColor')
@@ -18250,7 +18335,7 @@
18250
18335
  useRender(() => vue.createVNode(props.tag, {
18251
18336
  "class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
18252
18337
  'v-timeline--inset-line': !!props.lineInset
18253
- }, themeClasses.value, densityClasses.value, sideClasses.value, props.class],
18338
+ }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class],
18254
18339
  "style": [{
18255
18340
  '--v-timeline-line-thickness': convertToUnit(props.lineThickness)
18256
18341
  }, props.style]
@@ -18259,20 +18344,21 @@
18259
18344
  }
18260
18345
  });
18261
18346
 
18347
+ const makeVTimelineDividerProps = propsFactory({
18348
+ dotColor: String,
18349
+ fillDot: Boolean,
18350
+ hideDot: Boolean,
18351
+ icon: IconValue,
18352
+ iconColor: String,
18353
+ lineColor: String,
18354
+ ...makeComponentProps(),
18355
+ ...makeRoundedProps(),
18356
+ ...makeSizeProps(),
18357
+ ...makeElevationProps()
18358
+ }, 'v-timeline-divider');
18262
18359
  const VTimelineDivider = genericComponent()({
18263
18360
  name: 'VTimelineDivider',
18264
- props: {
18265
- dotColor: String,
18266
- fillDot: Boolean,
18267
- hideDot: Boolean,
18268
- icon: IconValue,
18269
- iconColor: String,
18270
- lineColor: String,
18271
- ...makeComponentProps(),
18272
- ...makeRoundedProps(),
18273
- ...makeSizeProps(),
18274
- ...makeElevationProps()
18275
- },
18361
+ props: makeVTimelineDividerProps(),
18276
18362
  setup(props, _ref) {
18277
18363
  let {
18278
18364
  slots
@@ -18335,27 +18421,28 @@
18335
18421
 
18336
18422
  // Types
18337
18423
 
18424
+ const makeVTimelineItemProps = propsFactory({
18425
+ density: String,
18426
+ dotColor: String,
18427
+ fillDot: Boolean,
18428
+ hideDot: Boolean,
18429
+ hideOpposite: {
18430
+ type: Boolean,
18431
+ default: undefined
18432
+ },
18433
+ icon: IconValue,
18434
+ iconColor: String,
18435
+ lineInset: [Number, String],
18436
+ ...makeComponentProps(),
18437
+ ...makeDimensionProps(),
18438
+ ...makeElevationProps(),
18439
+ ...makeRoundedProps(),
18440
+ ...makeSizeProps(),
18441
+ ...makeTagProps()
18442
+ }, 'v-timeline-item');
18338
18443
  const VTimelineItem = genericComponent()({
18339
18444
  name: 'VTimelineItem',
18340
- props: {
18341
- density: String,
18342
- dotColor: String,
18343
- fillDot: Boolean,
18344
- hideDot: Boolean,
18345
- hideOpposite: {
18346
- type: Boolean,
18347
- default: undefined
18348
- },
18349
- icon: IconValue,
18350
- iconColor: String,
18351
- lineInset: [Number, String],
18352
- ...makeComponentProps(),
18353
- ...makeDimensionProps(),
18354
- ...makeElevationProps(),
18355
- ...makeRoundedProps(),
18356
- ...makeSizeProps(),
18357
- ...makeTagProps()
18358
- },
18445
+ props: makeVTimelineItemProps(),
18359
18446
  setup(props, _ref) {
18360
18447
  let {
18361
18448
  slots
@@ -18363,7 +18450,7 @@
18363
18450
  const {
18364
18451
  dimensionStyles
18365
18452
  } = useDimension(props);
18366
- const dotSize = vue.ref(0);
18453
+ const dotSize = vue.shallowRef(0);
18367
18454
  const dotRef = vue.ref();
18368
18455
  vue.watch(dotRef, newValue => {
18369
18456
  if (!newValue) return;
@@ -18401,28 +18488,57 @@
18401
18488
  }
18402
18489
  });
18403
18490
 
18491
+ const makeVToolbarItemsProps = propsFactory({
18492
+ ...makeComponentProps(),
18493
+ ...makeVariantProps({
18494
+ variant: 'text'
18495
+ })
18496
+ }, 'v-toolbar-items');
18497
+ const VToolbarItems = genericComponent()({
18498
+ name: 'VToolbarItems',
18499
+ props: makeVToolbarItemsProps(),
18500
+ setup(props, _ref) {
18501
+ let {
18502
+ slots
18503
+ } = _ref;
18504
+ provideDefaults({
18505
+ VBtn: {
18506
+ color: vue.toRef(props, 'color'),
18507
+ height: 'inherit',
18508
+ variant: vue.toRef(props, 'variant')
18509
+ }
18510
+ });
18511
+ useRender(() => vue.createVNode("div", {
18512
+ "class": ['v-toolbar-items', props.class],
18513
+ "style": props.style
18514
+ }, [slots.default?.()]));
18515
+ return {};
18516
+ }
18517
+ });
18518
+
18404
18519
  // Types
18405
18520
 
18521
+ const makeVTooltipProps = propsFactory({
18522
+ id: String,
18523
+ text: String,
18524
+ ...omit(makeVOverlayProps({
18525
+ closeOnBack: false,
18526
+ location: 'end',
18527
+ locationStrategy: 'connected',
18528
+ eager: true,
18529
+ minWidth: 0,
18530
+ offset: 10,
18531
+ openOnClick: false,
18532
+ openOnHover: true,
18533
+ origin: 'auto',
18534
+ scrim: false,
18535
+ scrollStrategy: 'reposition',
18536
+ transition: false
18537
+ }), ['absolute', 'persistent'])
18538
+ }, 'v-tooltip');
18406
18539
  const VTooltip = genericComponent()({
18407
18540
  name: 'VTooltip',
18408
- props: {
18409
- id: String,
18410
- text: String,
18411
- ...omit(makeVOverlayProps({
18412
- closeOnBack: false,
18413
- location: 'end',
18414
- locationStrategy: 'connected',
18415
- eager: true,
18416
- minWidth: 0,
18417
- offset: 10,
18418
- openOnClick: false,
18419
- openOnHover: true,
18420
- origin: 'auto',
18421
- scrim: false,
18422
- scrollStrategy: 'reposition',
18423
- transition: false
18424
- }), ['absolute', 'persistent'])
18425
- },
18541
+ props: makeVTooltipProps(),
18426
18542
  emits: {
18427
18543
  'update:modelValue': value => true
18428
18544
  },
@@ -18485,9 +18601,7 @@
18485
18601
  // Composables
18486
18602
  const VValidation = genericComponent()({
18487
18603
  name: 'VValidation',
18488
- props: {
18489
- ...makeValidationProps()
18490
- },
18604
+ props: makeValidationProps(),
18491
18605
  emits: {
18492
18606
  'update:modelValue': val => true
18493
18607
  },
@@ -18500,12 +18614,13 @@
18500
18614
  }
18501
18615
  });
18502
18616
 
18617
+ const makeVVirtualScrollItemProps = propsFactory({
18618
+ dynamicHeight: Boolean,
18619
+ ...makeComponentProps()
18620
+ }, 'v-virtual-scroll-item');
18503
18621
  const VVirtualScrollItem = genericComponent()({
18504
18622
  name: 'VVirtualScrollItem',
18505
- props: {
18506
- dynamicHeight: Boolean,
18507
- ...makeComponentProps()
18508
- },
18623
+ props: makeVVirtualScrollItemProps(),
18509
18624
  emits: {
18510
18625
  'update:height': height => true
18511
18626
  },
@@ -18541,23 +18656,24 @@
18541
18656
 
18542
18657
  const UP = -1;
18543
18658
  const DOWN = 1;
18659
+ const makeVVirtualScrollProps = propsFactory({
18660
+ items: {
18661
+ type: Array,
18662
+ default: () => []
18663
+ },
18664
+ itemHeight: [Number, String],
18665
+ ...makeComponentProps(),
18666
+ ...makeDimensionProps()
18667
+ }, 'v-virtual-scroll');
18544
18668
  const VVirtualScroll = genericComponent()({
18545
18669
  name: 'VVirtualScroll',
18546
- props: {
18547
- items: {
18548
- type: Array,
18549
- default: () => []
18550
- },
18551
- itemHeight: [Number, String],
18552
- ...makeComponentProps(),
18553
- ...makeDimensionProps()
18554
- },
18670
+ props: makeVVirtualScrollProps(),
18555
18671
  setup(props, _ref) {
18556
18672
  let {
18557
18673
  slots
18558
18674
  } = _ref;
18559
- const first = vue.ref(0);
18560
- const baseItemHeight = vue.ref(props.itemHeight);
18675
+ const first = vue.shallowRef(0);
18676
+ const baseItemHeight = vue.shallowRef(props.itemHeight);
18561
18677
  const itemHeight = vue.computed({
18562
18678
  get: () => parseInt(baseItemHeight.value ?? 0, 10),
18563
18679
  set(val) {
@@ -19431,7 +19547,7 @@
19431
19547
  date
19432
19548
  };
19433
19549
  }
19434
- const version$1 = "3.2.2";
19550
+ const version$1 = "3.2.4";
19435
19551
  createVuetify$1.version = version$1;
19436
19552
 
19437
19553
  // Vue's inject() can only be used in setup
@@ -19451,7 +19567,7 @@
19451
19567
  ...options
19452
19568
  });
19453
19569
  };
19454
- const version = "3.2.2";
19570
+ const version = "3.2.4";
19455
19571
  createVuetify.version = version;
19456
19572
 
19457
19573
  exports.components = components;