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
@@ -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
  */
@@ -1284,7 +1284,7 @@ function useLayoutItem(options) {
1284
1284
  provide(VuetifyLayoutItemKey, {
1285
1285
  id
1286
1286
  });
1287
- const isKeptAlive = ref(false);
1287
+ const isKeptAlive = shallowRef(false);
1288
1288
  onDeactivated(() => isKeptAlive.value = true);
1289
1289
  onActivated(() => isKeptAlive.value = false);
1290
1290
  const {
@@ -1415,7 +1415,7 @@ function createLayout(props) {
1415
1415
  return items.value.find(item => item.id === id);
1416
1416
  };
1417
1417
  const rootVm = getCurrentInstance('createLayout');
1418
- const isMounted = ref(false);
1418
+ const isMounted = shallowRef(false);
1419
1419
  onMounted(() => {
1420
1420
  isMounted.value = true;
1421
1421
  });
@@ -1670,9 +1670,9 @@ const defaultThemeOptions = {
1670
1670
  variables: {
1671
1671
  'border-color': '#FFFFFF',
1672
1672
  'border-opacity': 0.12,
1673
- 'high-emphasis-opacity': 0.87,
1674
- 'medium-emphasis-opacity': 0.60,
1675
- 'disabled-opacity': 0.38,
1673
+ 'high-emphasis-opacity': 1,
1674
+ 'medium-emphasis-opacity': 0.70,
1675
+ 'disabled-opacity': 0.50,
1676
1676
  'idle-opacity': 0.10,
1677
1677
  'hover-opacity': 0.04,
1678
1678
  'focus-opacity': 0.12,
@@ -2009,6 +2009,10 @@ var en = {
2009
2009
  }
2010
2010
  };
2011
2011
 
2012
+ // Composables
2013
+
2014
+ // Types
2015
+
2012
2016
  const LANG_PREFIX = '$vuetify.';
2013
2017
  const replace = (str, params) => {
2014
2018
  return str.replace(/\{(\d+)\}/g, (match, index) => {
@@ -2081,8 +2085,8 @@ function createProvideFunction(state) {
2081
2085
  };
2082
2086
  }
2083
2087
  function createVuetifyAdapter(options) {
2084
- const current = ref(options?.locale ?? 'en');
2085
- const fallback = ref(options?.fallback ?? 'en');
2088
+ const current = shallowRef(options?.locale ?? 'en');
2089
+ const fallback = shallowRef(options?.fallback ?? 'en');
2086
2090
  const messages = ref({
2087
2091
  en,
2088
2092
  ...options?.messages
@@ -2201,15 +2205,16 @@ function useRtl() {
2201
2205
  };
2202
2206
  }
2203
2207
 
2208
+ const makeVAppProps = propsFactory({
2209
+ ...makeComponentProps(),
2210
+ ...makeLayoutProps({
2211
+ fullHeight: true
2212
+ }),
2213
+ ...makeThemeProps()
2214
+ }, 'v-app');
2204
2215
  const VApp = genericComponent()({
2205
2216
  name: 'VApp',
2206
- props: {
2207
- ...makeComponentProps(),
2208
- ...makeLayoutProps({
2209
- fullHeight: true
2210
- }),
2211
- ...makeThemeProps()
2212
- },
2217
+ props: makeVAppProps(),
2213
2218
  setup(props, _ref) {
2214
2219
  let {
2215
2220
  slots
@@ -2244,15 +2249,16 @@ const VApp = genericComponent()({
2244
2249
 
2245
2250
  // Types
2246
2251
 
2252
+ const makeDefaultsProviderProps = propsFactory({
2253
+ defaults: Object,
2254
+ disabled: Boolean,
2255
+ reset: [Number, String],
2256
+ root: Boolean,
2257
+ scoped: Boolean
2258
+ }, 'v-defaults-provider');
2247
2259
  const VDefaultsProvider = genericComponent(false)({
2248
2260
  name: 'VDefaultsProvider',
2249
- props: {
2250
- defaults: Object,
2251
- disabled: Boolean,
2252
- reset: [Number, String],
2253
- root: Boolean,
2254
- scoped: Boolean
2255
- },
2261
+ props: makeDefaultsProviderProps(),
2256
2262
  setup(props, _ref) {
2257
2263
  let {
2258
2264
  slots
@@ -2278,25 +2284,23 @@ const VDefaultsProvider = genericComponent(false)({
2278
2284
 
2279
2285
  // Types
2280
2286
 
2287
+ const makeTransitionProps$1 = propsFactory({
2288
+ disabled: Boolean,
2289
+ group: Boolean,
2290
+ hideOnLeave: Boolean,
2291
+ leaveAbsolute: Boolean,
2292
+ mode: String,
2293
+ origin: String
2294
+ }, 'transition');
2281
2295
  function createCssTransition(name) {
2282
2296
  let origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'center center';
2283
2297
  let mode = arguments.length > 2 ? arguments[2] : undefined;
2284
2298
  return genericComponent()({
2285
2299
  name,
2286
- props: {
2287
- disabled: Boolean,
2288
- group: Boolean,
2289
- hideOnLeave: Boolean,
2290
- leaveAbsolute: Boolean,
2291
- mode: {
2292
- type: String,
2293
- default: mode
2294
- },
2295
- origin: {
2296
- type: String,
2297
- default: origin
2298
- }
2299
- },
2300
+ props: makeTransitionProps$1({
2301
+ mode,
2302
+ origin
2303
+ }),
2300
2304
  setup(props, _ref) {
2301
2305
  let {
2302
2306
  slots
@@ -2454,11 +2458,12 @@ function ExpandTransitionGenerator () {
2454
2458
 
2455
2459
  // Types
2456
2460
 
2461
+ const makeVDialogTransitionProps = propsFactory({
2462
+ target: Object
2463
+ }, 'v-dialog-transition');
2457
2464
  const VDialogTransition = genericComponent()({
2458
2465
  name: 'VDialogTransition',
2459
- props: {
2460
- target: Object
2461
- },
2466
+ props: makeVDialogTransitionProps(),
2462
2467
  setup(props, _ref) {
2463
2468
  let {
2464
2469
  slots
@@ -2648,14 +2653,15 @@ function useAspectStyles(props) {
2648
2653
  })
2649
2654
  };
2650
2655
  }
2656
+ const makeVResponsiveProps = propsFactory({
2657
+ aspectRatio: [String, Number],
2658
+ contentClass: String,
2659
+ ...makeComponentProps(),
2660
+ ...makeDimensionProps()
2661
+ }, 'v-responsive');
2651
2662
  const VResponsive = genericComponent()({
2652
2663
  name: 'VResponsive',
2653
- props: {
2654
- aspectRatio: [String, Number],
2655
- contentClass: String,
2656
- ...makeComponentProps(),
2657
- ...makeDimensionProps()
2658
- },
2664
+ props: makeVResponsiveProps(),
2659
2665
  setup(props, _ref) {
2660
2666
  let {
2661
2667
  slots
@@ -2744,6 +2750,7 @@ const MaybeTransition = (props, _ref) => {
2744
2750
  } = _ref;
2745
2751
  const {
2746
2752
  transition,
2753
+ disabled,
2747
2754
  ...rest
2748
2755
  } = props;
2749
2756
  const {
@@ -2751,44 +2758,47 @@ const MaybeTransition = (props, _ref) => {
2751
2758
  ...customProps
2752
2759
  } = typeof transition === 'object' ? transition : {};
2753
2760
  return h(component, mergeProps(typeof transition === 'string' ? {
2754
- name: transition
2755
- } : customProps, rest), slots);
2761
+ name: disabled ? '' : transition
2762
+ } : customProps, rest, {
2763
+ disabled
2764
+ }), slots);
2756
2765
  };
2757
2766
 
2758
2767
  // Types
2759
2768
 
2769
+ const makeVImgProps = propsFactory({
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
+ }, 'v-img');
2760
2796
  const VImg = genericComponent()({
2761
2797
  name: 'VImg',
2762
2798
  directives: {
2763
2799
  intersect: Intersect
2764
2800
  },
2765
- props: {
2766
- aspectRatio: [String, Number],
2767
- alt: String,
2768
- cover: Boolean,
2769
- eager: Boolean,
2770
- gradient: String,
2771
- lazySrc: String,
2772
- options: {
2773
- type: Object,
2774
- // For more information on types, navigate to:
2775
- // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
2776
- default: () => ({
2777
- root: undefined,
2778
- rootMargin: undefined,
2779
- threshold: undefined
2780
- })
2781
- },
2782
- sizes: String,
2783
- src: {
2784
- type: [String, Object],
2785
- default: ''
2786
- },
2787
- srcset: String,
2788
- width: [String, Number],
2789
- ...makeComponentProps(),
2790
- ...makeTransitionProps()
2791
- },
2801
+ props: makeVImgProps(),
2792
2802
  emits: {
2793
2803
  loadstart: value => true,
2794
2804
  load: value => true,
@@ -2799,11 +2809,11 @@ const VImg = genericComponent()({
2799
2809
  emit,
2800
2810
  slots
2801
2811
  } = _ref;
2802
- const currentSrc = ref(''); // Set from srcset
2812
+ const currentSrc = shallowRef(''); // Set from srcset
2803
2813
  const image = ref();
2804
- const state = ref(props.eager ? 'loading' : 'idle');
2805
- const naturalWidth = ref();
2806
- const naturalHeight = ref();
2814
+ const state = shallowRef(props.eager ? 'loading' : 'idle');
2815
+ const naturalWidth = shallowRef();
2816
+ const naturalHeight = shallowRef();
2807
2817
  const normalisedSrc = computed(() => {
2808
2818
  return props.src && typeof props.src === 'object' ? {
2809
2819
  src: props.src.src,
@@ -2957,7 +2967,7 @@ const VImg = genericComponent()({
2957
2967
  }
2958
2968
  }, null);
2959
2969
  };
2960
- const isBooted = ref(false);
2970
+ const isBooted = shallowRef(false);
2961
2971
  {
2962
2972
  const stop = watch(aspectRatio, val => {
2963
2973
  if (val) {
@@ -3240,7 +3250,10 @@ const VToolbar = genericComponent()({
3240
3250
  const {
3241
3251
  themeClasses
3242
3252
  } = provideTheme(props);
3243
- const isExtended = ref(!!(props.extended || slots.extension?.()));
3253
+ const {
3254
+ rtlClasses
3255
+ } = useRtl();
3256
+ const isExtended = shallowRef(!!(props.extended || slots.extension?.()));
3244
3257
  const contentHeight = computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));
3245
3258
  const extensionHeight = 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);
3246
3259
  provideDefaults({
@@ -3260,7 +3273,7 @@ const VToolbar = genericComponent()({
3260
3273
  'v-toolbar--flat': props.flat,
3261
3274
  'v-toolbar--floating': props.floating,
3262
3275
  [`v-toolbar--density-${props.density}`]: true
3263
- }, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, props.class],
3276
+ }, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],
3264
3277
  "style": [backgroundColorStyles.value, props.style]
3265
3278
  }, {
3266
3279
  default: () => [hasImage && createVNode("div", {
@@ -3347,11 +3360,11 @@ function useScroll(props) {
3347
3360
  } = args;
3348
3361
  let previousScroll = 0;
3349
3362
  const target = ref(null);
3350
- const currentScroll = ref(0);
3351
- const savedScroll = ref(0);
3352
- const currentThreshold = ref(0);
3353
- const isScrollActive = ref(false);
3354
- const isScrollingUp = ref(false);
3363
+ const currentScroll = shallowRef(0);
3364
+ const savedScroll = shallowRef(0);
3365
+ const currentThreshold = shallowRef(0);
3366
+ const isScrollActive = shallowRef(false);
3367
+ const isScrollingUp = shallowRef(false);
3355
3368
  const scrollThreshold = computed(() => {
3356
3369
  return Number(props.scrollThreshold);
3357
3370
  });
@@ -3421,7 +3434,7 @@ function useScroll(props) {
3421
3434
 
3422
3435
  // Composables
3423
3436
  function useSsrBoot() {
3424
- const isBooted = ref(false);
3437
+ const isBooted = shallowRef(false);
3425
3438
  onMounted(() => {
3426
3439
  window.requestAnimationFrame(() => {
3427
3440
  isBooted.value = true;
@@ -3438,27 +3451,28 @@ function useSsrBoot() {
3438
3451
 
3439
3452
  // Types
3440
3453
 
3454
+ const makeVAppBarProps = propsFactory({
3455
+ scrollBehavior: String,
3456
+ modelValue: {
3457
+ type: Boolean,
3458
+ default: true
3459
+ },
3460
+ location: {
3461
+ type: String,
3462
+ default: 'top',
3463
+ validator: value => ['top', 'bottom'].includes(value)
3464
+ },
3465
+ ...makeVToolbarProps(),
3466
+ ...makeLayoutItemProps(),
3467
+ ...makeScrollProps(),
3468
+ height: {
3469
+ type: [Number, String],
3470
+ default: 64
3471
+ }
3472
+ }, 'v-app-bar');
3441
3473
  const VAppBar = genericComponent()({
3442
3474
  name: 'VAppBar',
3443
- props: {
3444
- scrollBehavior: String,
3445
- modelValue: {
3446
- type: Boolean,
3447
- default: true
3448
- },
3449
- location: {
3450
- type: String,
3451
- default: 'top',
3452
- validator: value => ['top', 'bottom'].includes(value)
3453
- },
3454
- ...makeVToolbarProps(),
3455
- ...makeLayoutItemProps(),
3456
- ...makeScrollProps(),
3457
- height: {
3458
- type: [Number, String],
3459
- default: 64
3460
- }
3461
- },
3475
+ props: makeVAppBarProps(),
3462
3476
  emits: {
3463
3477
  'update:modelValue': value => true
3464
3478
  },
@@ -3531,7 +3545,7 @@ const VAppBar = genericComponent()({
3531
3545
  order: computed(() => parseInt(props.order, 10)),
3532
3546
  position: toRef(props, 'location'),
3533
3547
  layoutSize: height,
3534
- elementSize: ref(undefined),
3548
+ elementSize: shallowRef(undefined),
3535
3549
  active: isActive,
3536
3550
  absolute: toRef(props, 'absolute')
3537
3551
  });
@@ -3888,12 +3902,13 @@ function getValues(items, ids) {
3888
3902
  // Types
3889
3903
 
3890
3904
  const VBtnToggleSymbol = Symbol.for('vuetify:v-btn-toggle');
3905
+ const makeVBtnToggleProps = propsFactory({
3906
+ ...makeVBtnGroupProps(),
3907
+ ...makeGroupProps()
3908
+ }, 'v-btn-toggle');
3891
3909
  const VBtnToggle = genericComponent()({
3892
3910
  name: 'VBtnToggle',
3893
- props: {
3894
- ...makeVBtnGroupProps(),
3895
- ...makeGroupProps()
3896
- },
3911
+ props: makeVBtnToggleProps(),
3897
3912
  emits: {
3898
3913
  'update:modelValue': value => true
3899
3914
  },
@@ -4220,7 +4235,7 @@ const VIcon = genericComponent()({
4220
4235
  // Utilities
4221
4236
  function useIntersectionObserver(callback, options) {
4222
4237
  const intersectionRef = ref();
4223
- const isIntersecting = ref(false);
4238
+ const isIntersecting = shallowRef(false);
4224
4239
  if (SUPPORTS_INTERSECTION) {
4225
4240
  const observer = new IntersectionObserver(entries => {
4226
4241
  callback?.(entries, observer);
@@ -4247,31 +4262,32 @@ function useIntersectionObserver(callback, options) {
4247
4262
 
4248
4263
  // Types
4249
4264
 
4265
+ const makeVProgressCircularProps = propsFactory({
4266
+ bgColor: String,
4267
+ color: String,
4268
+ indeterminate: [Boolean, String],
4269
+ modelValue: {
4270
+ type: [Number, String],
4271
+ default: 0
4272
+ },
4273
+ rotate: {
4274
+ type: [Number, String],
4275
+ default: 0
4276
+ },
4277
+ width: {
4278
+ type: [Number, String],
4279
+ default: 4
4280
+ },
4281
+ ...makeComponentProps(),
4282
+ ...makeSizeProps(),
4283
+ ...makeTagProps({
4284
+ tag: 'div'
4285
+ }),
4286
+ ...makeThemeProps()
4287
+ }, 'v-progress-circular');
4250
4288
  const VProgressCircular = genericComponent()({
4251
4289
  name: 'VProgressCircular',
4252
- props: {
4253
- bgColor: String,
4254
- color: String,
4255
- indeterminate: [Boolean, String],
4256
- modelValue: {
4257
- type: [Number, String],
4258
- default: 0
4259
- },
4260
- rotate: {
4261
- type: [Number, String],
4262
- default: 0
4263
- },
4264
- width: {
4265
- type: [Number, String],
4266
- default: 4
4267
- },
4268
- ...makeComponentProps(),
4269
- ...makeSizeProps(),
4270
- ...makeTagProps({
4271
- tag: 'div'
4272
- }),
4273
- ...makeThemeProps()
4274
- },
4290
+ props: makeVProgressCircularProps(),
4275
4291
  setup(props, _ref) {
4276
4292
  let {
4277
4293
  slots
@@ -4708,47 +4724,48 @@ function useLocation(props) {
4708
4724
  };
4709
4725
  }
4710
4726
 
4727
+ const makeVProgressLinearProps = propsFactory({
4728
+ absolute: Boolean,
4729
+ active: {
4730
+ type: Boolean,
4731
+ default: true
4732
+ },
4733
+ bgColor: String,
4734
+ bgOpacity: [Number, String],
4735
+ bufferValue: {
4736
+ type: [Number, String],
4737
+ default: 0
4738
+ },
4739
+ clickable: Boolean,
4740
+ color: String,
4741
+ height: {
4742
+ type: [Number, String],
4743
+ default: 4
4744
+ },
4745
+ indeterminate: Boolean,
4746
+ max: {
4747
+ type: [Number, String],
4748
+ default: 100
4749
+ },
4750
+ modelValue: {
4751
+ type: [Number, String],
4752
+ default: 0
4753
+ },
4754
+ reverse: Boolean,
4755
+ stream: Boolean,
4756
+ striped: Boolean,
4757
+ roundedBar: Boolean,
4758
+ ...makeComponentProps(),
4759
+ ...makeLocationProps({
4760
+ location: 'top'
4761
+ }),
4762
+ ...makeRoundedProps(),
4763
+ ...makeTagProps(),
4764
+ ...makeThemeProps()
4765
+ }, 'v-progress-linear');
4711
4766
  const VProgressLinear = genericComponent()({
4712
4767
  name: 'VProgressLinear',
4713
- props: {
4714
- absolute: Boolean,
4715
- active: {
4716
- type: Boolean,
4717
- default: true
4718
- },
4719
- bgColor: String,
4720
- bgOpacity: [Number, String],
4721
- bufferValue: {
4722
- type: [Number, String],
4723
- default: 0
4724
- },
4725
- clickable: Boolean,
4726
- color: String,
4727
- height: {
4728
- type: [Number, String],
4729
- default: 4
4730
- },
4731
- indeterminate: Boolean,
4732
- max: {
4733
- type: [Number, String],
4734
- default: 100
4735
- },
4736
- modelValue: {
4737
- type: [Number, String],
4738
- default: 0
4739
- },
4740
- reverse: Boolean,
4741
- stream: Boolean,
4742
- striped: Boolean,
4743
- roundedBar: Boolean,
4744
- ...makeComponentProps(),
4745
- ...makeLocationProps({
4746
- location: 'top'
4747
- }),
4748
- ...makeRoundedProps(),
4749
- ...makeTagProps(),
4750
- ...makeThemeProps()
4751
- },
4768
+ props: makeVProgressLinearProps(),
4752
4769
  emits: {
4753
4770
  'update:modelValue': value => true
4754
4771
  },
@@ -4758,7 +4775,8 @@ const VProgressLinear = genericComponent()({
4758
4775
  } = _ref;
4759
4776
  const progress = useProxiedModel(props, 'modelValue');
4760
4777
  const {
4761
- isRtl
4778
+ isRtl,
4779
+ rtlClasses
4762
4780
  } = useRtl();
4763
4781
  const {
4764
4782
  themeClasses
@@ -4813,7 +4831,7 @@ const VProgressLinear = genericComponent()({
4813
4831
  'v-progress-linear--rounded': props.rounded,
4814
4832
  'v-progress-linear--rounded-bar': props.roundedBar,
4815
4833
  'v-progress-linear--striped': props.striped
4816
- }, roundedClasses.value, themeClasses.value, props.class],
4834
+ }, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],
4817
4835
  "style": [{
4818
4836
  bottom: props.location === 'bottom' ? 0 : undefined,
4819
4837
  top: props.location === 'top' ? 0 : undefined,
@@ -5210,12 +5228,15 @@ const VBtn = genericComponent()({
5210
5228
 
5211
5229
  // Types
5212
5230
 
5213
- const VAppBarNavIcon = genericComponent()({
5214
- name: 'VAppBarNavIcon',
5215
- props: makeVBtnProps({
5231
+ const makeVAppBarNavIconProps = propsFactory({
5232
+ ...makeVBtnProps({
5216
5233
  icon: '$menu',
5217
5234
  variant: 'text'
5218
- }),
5235
+ })
5236
+ }, 'v-app-bar-nav-icon');
5237
+ const VAppBarNavIcon = genericComponent()({
5238
+ name: 'VAppBarNavIcon',
5239
+ props: makeVAppBarNavIconProps(),
5219
5240
  setup(props, _ref) {
5220
5241
  let {
5221
5242
  slots
@@ -5227,33 +5248,6 @@ const VAppBarNavIcon = genericComponent()({
5227
5248
  }
5228
5249
  });
5229
5250
 
5230
- const VToolbarItems = genericComponent()({
5231
- name: 'VToolbarItems',
5232
- props: {
5233
- ...makeComponentProps(),
5234
- ...makeVariantProps({
5235
- variant: 'text'
5236
- })
5237
- },
5238
- setup(props, _ref) {
5239
- let {
5240
- slots
5241
- } = _ref;
5242
- provideDefaults({
5243
- VBtn: {
5244
- color: toRef(props, 'color'),
5245
- height: 'inherit',
5246
- variant: toRef(props, 'variant')
5247
- }
5248
- });
5249
- useRender(() => createVNode("div", {
5250
- "class": ['v-toolbar-items', props.class],
5251
- "style": props.style
5252
- }, [slots.default?.()]));
5253
- return {};
5254
- }
5255
- });
5256
-
5257
5251
  // Types
5258
5252
 
5259
5253
  const VAppBarTitle = genericComponent()({
@@ -5276,53 +5270,54 @@ const VAlertTitle = createSimpleFunctional('v-alert-title');
5276
5270
  // Types
5277
5271
 
5278
5272
  const allowedTypes = ['success', 'info', 'warning', 'error'];
5273
+ const makeVAlertProps = propsFactory({
5274
+ border: {
5275
+ type: [Boolean, String],
5276
+ validator: val => {
5277
+ return typeof val === 'boolean' || ['top', 'end', 'bottom', 'start'].includes(val);
5278
+ }
5279
+ },
5280
+ borderColor: String,
5281
+ closable: Boolean,
5282
+ closeIcon: {
5283
+ type: IconValue,
5284
+ default: '$close'
5285
+ },
5286
+ closeLabel: {
5287
+ type: String,
5288
+ default: '$vuetify.close'
5289
+ },
5290
+ icon: {
5291
+ type: [Boolean, String, Function, Object],
5292
+ default: null
5293
+ },
5294
+ modelValue: {
5295
+ type: Boolean,
5296
+ default: true
5297
+ },
5298
+ prominent: Boolean,
5299
+ title: String,
5300
+ text: String,
5301
+ type: {
5302
+ type: String,
5303
+ validator: val => allowedTypes.includes(val)
5304
+ },
5305
+ ...makeComponentProps(),
5306
+ ...makeDensityProps(),
5307
+ ...makeDimensionProps(),
5308
+ ...makeElevationProps(),
5309
+ ...makeLocationProps(),
5310
+ ...makePositionProps(),
5311
+ ...makeRoundedProps(),
5312
+ ...makeTagProps(),
5313
+ ...makeThemeProps(),
5314
+ ...makeVariantProps({
5315
+ variant: 'flat'
5316
+ })
5317
+ }, 'v-alert');
5279
5318
  const VAlert = genericComponent()({
5280
5319
  name: 'VAlert',
5281
- props: {
5282
- border: {
5283
- type: [Boolean, String],
5284
- validator: val => {
5285
- return typeof val === 'boolean' || ['top', 'end', 'bottom', 'start'].includes(val);
5286
- }
5287
- },
5288
- borderColor: String,
5289
- closable: Boolean,
5290
- closeIcon: {
5291
- type: IconValue,
5292
- default: '$close'
5293
- },
5294
- closeLabel: {
5295
- type: String,
5296
- default: '$vuetify.close'
5297
- },
5298
- icon: {
5299
- type: [Boolean, String, Function, Object],
5300
- default: null
5301
- },
5302
- modelValue: {
5303
- type: Boolean,
5304
- default: true
5305
- },
5306
- prominent: Boolean,
5307
- title: String,
5308
- text: String,
5309
- type: {
5310
- type: String,
5311
- validator: val => allowedTypes.includes(val)
5312
- },
5313
- ...makeComponentProps(),
5314
- ...makeDensityProps(),
5315
- ...makeDimensionProps(),
5316
- ...makeElevationProps(),
5317
- ...makeLocationProps(),
5318
- ...makePositionProps(),
5319
- ...makeRoundedProps(),
5320
- ...makeTagProps(),
5321
- ...makeThemeProps(),
5322
- ...makeVariantProps({
5323
- variant: 'flat'
5324
- })
5325
- },
5320
+ props: makeVAlertProps(),
5326
5321
  emits: {
5327
5322
  'click:close': e => true,
5328
5323
  'update:modelValue': value => true
@@ -5385,7 +5380,6 @@ const VAlert = genericComponent()({
5385
5380
  return () => {
5386
5381
  const hasPrepend = !!(slots.prepend || icon.value);
5387
5382
  const hasTitle = !!(slots.title || props.title);
5388
- const hasText = !!(props.text || slots.text);
5389
5383
  const hasClose = !!(slots.close || props.closable);
5390
5384
  return isActive.value && createVNode(props.tag, {
5391
5385
  "class": ['v-alert', props.border && {
@@ -5425,7 +5419,7 @@ const VAlert = genericComponent()({
5425
5419
  "key": "title"
5426
5420
  }, {
5427
5421
  default: () => [slots.title?.() ?? props.title]
5428
- }), hasText && (slots.text?.() ?? props.text), slots.default?.()]), slots.append && createVNode("div", {
5422
+ }), slots.text?.() ?? props.text, slots.default?.()]), slots.append && createVNode("div", {
5429
5423
  "key": "append",
5430
5424
  "class": "v-alert__append"
5431
5425
  }, [slots.append()]), hasClose && createVNode("div", {
@@ -5483,14 +5477,15 @@ function useInputIcon(props) {
5483
5477
  };
5484
5478
  }
5485
5479
 
5480
+ const makeVLabelProps = propsFactory({
5481
+ text: String,
5482
+ clickable: Boolean,
5483
+ ...makeComponentProps(),
5484
+ ...makeThemeProps()
5485
+ }, 'v-label');
5486
5486
  const VLabel = genericComponent()({
5487
5487
  name: 'VLabel',
5488
- props: {
5489
- text: String,
5490
- clickable: Boolean,
5491
- ...makeComponentProps(),
5492
- ...makeThemeProps()
5493
- },
5488
+ props: makeVLabelProps(),
5494
5489
  setup(props, _ref) {
5495
5490
  let {
5496
5491
  slots
@@ -5505,12 +5500,13 @@ const VLabel = genericComponent()({
5505
5500
  }
5506
5501
  });
5507
5502
 
5503
+ const makeVFieldLabelProps = propsFactory({
5504
+ floating: Boolean,
5505
+ ...makeComponentProps()
5506
+ }, 'v-field-label');
5508
5507
  const VFieldLabel = genericComponent()({
5509
5508
  name: 'VFieldLabel',
5510
- props: {
5511
- floating: Boolean,
5512
- ...makeComponentProps()
5513
- },
5509
+ props: makeVFieldLabelProps(),
5514
5510
  setup(props, _ref) {
5515
5511
  let {
5516
5512
  slots
@@ -5629,6 +5625,9 @@ const VField = genericComponent()({
5629
5625
  const {
5630
5626
  roundedClasses
5631
5627
  } = useRounded(props);
5628
+ const {
5629
+ rtlClasses
5630
+ } = useRtl();
5632
5631
  const isActive = computed(() => props.dirty || props.active);
5633
5632
  const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label));
5634
5633
  const uid = getUid();
@@ -5722,7 +5721,7 @@ const VField = genericComponent()({
5722
5721
  'v-field--single-line': props.singleLine,
5723
5722
  'v-field--no-label': !label,
5724
5723
  [`v-field--variant-${props.variant}`]: true
5725
- }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, props.class],
5724
+ }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
5726
5725
  "style": [backgroundColorStyles.value, textColorStyles.value, props.style],
5727
5726
  "onClick": onClick
5728
5727
  }, attrs), [createVNode("div", {
@@ -5817,24 +5816,25 @@ function filterFieldProps(attrs) {
5817
5816
 
5818
5817
  // Types
5819
5818
 
5819
+ const makeVMessagesProps = propsFactory({
5820
+ active: Boolean,
5821
+ color: String,
5822
+ messages: {
5823
+ type: [Array, String],
5824
+ default: () => []
5825
+ },
5826
+ ...makeComponentProps(),
5827
+ ...makeTransitionProps({
5828
+ transition: {
5829
+ component: VSlideYTransition,
5830
+ leaveAbsolute: true,
5831
+ group: true
5832
+ }
5833
+ })
5834
+ }, 'v-messages');
5820
5835
  const VMessages = genericComponent()({
5821
5836
  name: 'VMessages',
5822
- props: {
5823
- active: Boolean,
5824
- color: String,
5825
- messages: {
5826
- type: [Array, String],
5827
- default: () => []
5828
- },
5829
- ...makeComponentProps(),
5830
- ...makeTransitionProps({
5831
- transition: {
5832
- component: VSlideYTransition,
5833
- leaveAbsolute: true,
5834
- group: true
5835
- }
5836
- })
5837
- },
5837
+ props: makeVMessagesProps(),
5838
5838
  setup(props, _ref) {
5839
5839
  let {
5840
5840
  slots
@@ -5863,7 +5863,7 @@ const VMessages = genericComponent()({
5863
5863
  }
5864
5864
  });
5865
5865
 
5866
- // Utilities
5866
+ // Composables
5867
5867
 
5868
5868
  // Types
5869
5869
 
@@ -5885,7 +5885,7 @@ function createForm(props) {
5885
5885
  const model = useProxiedModel(props, 'modelValue');
5886
5886
  const isDisabled = computed(() => props.disabled);
5887
5887
  const isReadonly = computed(() => props.readonly);
5888
- const isValidating = ref(false);
5888
+ const isValidating = shallowRef(false);
5889
5889
  const items = ref([]);
5890
5890
  const errors = ref([]);
5891
5891
  async function validate() {
@@ -6024,7 +6024,7 @@ function useValidation(props) {
6024
6024
  const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue);
6025
6025
  const form = useForm();
6026
6026
  const internalErrorMessages = ref([]);
6027
- const isPristine = ref(true);
6027
+ const isPristine = shallowRef(true);
6028
6028
  const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
6029
6029
  const isDisabled = computed(() => !!(props.disabled || form?.isDisabled.value));
6030
6030
  const isReadonly = computed(() => !!(props.readonly || form?.isReadonly.value));
@@ -6036,7 +6036,7 @@ function useValidation(props) {
6036
6036
  if (!props.rules.length) return true;
6037
6037
  return isPristine.value ? null : true;
6038
6038
  });
6039
- const isValidating = ref(false);
6039
+ const isValidating = shallowRef(false);
6040
6040
  const validationClasses = computed(() => {
6041
6041
  return {
6042
6042
  [`${name}--error`]: isValid.value === false,
@@ -6246,23 +6246,24 @@ const VInput = genericComponent()({
6246
6246
  }
6247
6247
  });
6248
6248
 
6249
+ const makeVCounterProps = propsFactory({
6250
+ active: Boolean,
6251
+ max: [Number, String],
6252
+ value: {
6253
+ type: [Number, String],
6254
+ default: 0
6255
+ },
6256
+ ...makeComponentProps(),
6257
+ ...makeTransitionProps({
6258
+ transition: {
6259
+ component: VSlideYTransition
6260
+ }
6261
+ })
6262
+ }, 'v-counter');
6249
6263
  const VCounter = genericComponent()({
6250
6264
  name: 'VCounter',
6251
6265
  functional: true,
6252
- props: {
6253
- active: Boolean,
6254
- max: [Number, String],
6255
- value: {
6256
- type: [Number, String],
6257
- default: 0
6258
- },
6259
- ...makeComponentProps(),
6260
- ...makeTransitionProps({
6261
- transition: {
6262
- component: VSlideYTransition
6263
- }
6264
- })
6265
- },
6266
+ props: makeVCounterProps(),
6266
6267
  setup(props, _ref) {
6267
6268
  let {
6268
6269
  slots
@@ -6564,6 +6565,7 @@ const VSelectionControlGroupSymbol = Symbol.for('vuetify:selection-control-group
6564
6565
  const makeSelectionControlGroupProps = propsFactory({
6565
6566
  color: String,
6566
6567
  disabled: Boolean,
6568
+ defaultsTarget: String,
6567
6569
  error: Boolean,
6568
6570
  id: String,
6569
6571
  inline: Boolean,
@@ -6585,19 +6587,18 @@ const makeSelectionControlGroupProps = propsFactory({
6585
6587
  type: Function,
6586
6588
  default: deepEqual
6587
6589
  },
6588
- ...makeThemeProps(),
6589
- ...makeDensityProps()
6590
+ ...makeComponentProps(),
6591
+ ...makeDensityProps(),
6592
+ ...makeThemeProps()
6593
+ }, 'selection-control-group');
6594
+ const makeVSelectionControlGroupProps = propsFactory({
6595
+ ...makeSelectionControlGroupProps({
6596
+ defaultsTarget: 'VSelectionControl'
6597
+ })
6590
6598
  }, 'v-selection-control-group');
6591
6599
  const VSelectionControlGroup = genericComponent()({
6592
6600
  name: 'VSelectionControlGroup',
6593
- props: {
6594
- defaultsTarget: {
6595
- type: String,
6596
- default: 'VSelectionControl'
6597
- },
6598
- ...makeComponentProps(),
6599
- ...makeSelectionControlGroupProps()
6600
- },
6601
+ props: makeVSelectionControlGroupProps(),
6601
6602
  emits: {
6602
6603
  'update:modelValue': val => true
6603
6604
  },
@@ -6733,8 +6734,8 @@ const VSelectionControl = genericComponent()({
6733
6734
  } = useSelectionControl(props);
6734
6735
  const uid = getUid();
6735
6736
  const id = computed(() => props.id || `input-${uid}`);
6736
- const isFocused = ref(false);
6737
- const isFocusVisible = ref(false);
6737
+ const isFocused = shallowRef(false);
6738
+ const isFocusVisible = shallowRef(false);
6738
6739
  const input = ref();
6739
6740
  group?.onForceUpdate(() => {
6740
6741
  if (input.value) {
@@ -6871,13 +6872,14 @@ const VCheckboxBtn = genericComponent()({
6871
6872
 
6872
6873
  // Types
6873
6874
 
6875
+ const makeVCheckboxProps = propsFactory({
6876
+ ...makeVInputProps(),
6877
+ ...omit(makeVCheckboxBtnProps(), ['inline'])
6878
+ }, 'v-checkbox');
6874
6879
  const VCheckbox = genericComponent()({
6875
6880
  name: 'VCheckbox',
6876
6881
  inheritAttrs: false,
6877
- props: {
6878
- ...makeVInputProps(),
6879
- ...omit(makeVCheckboxBtnProps(), ['inline'])
6880
- },
6882
+ props: makeVCheckboxProps(),
6881
6883
  emits: {
6882
6884
  'update:focused': focused => true
6883
6885
  },
@@ -6992,25 +6994,26 @@ const VAvatar = genericComponent()({
6992
6994
  // Types
6993
6995
 
6994
6996
  const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group');
6997
+ const makeVChipGroupProps = propsFactory({
6998
+ column: Boolean,
6999
+ filter: Boolean,
7000
+ valueComparator: {
7001
+ type: Function,
7002
+ default: deepEqual
7003
+ },
7004
+ ...makeComponentProps(),
7005
+ ...makeGroupProps({
7006
+ selectedClass: 'v-chip--selected'
7007
+ }),
7008
+ ...makeTagProps(),
7009
+ ...makeThemeProps(),
7010
+ ...makeVariantProps({
7011
+ variant: 'tonal'
7012
+ })
7013
+ }, 'v-chip-group');
6995
7014
  const VChipGroup = genericComponent()({
6996
7015
  name: 'VChipGroup',
6997
- props: {
6998
- column: Boolean,
6999
- filter: Boolean,
7000
- valueComparator: {
7001
- type: Function,
7002
- default: deepEqual
7003
- },
7004
- ...makeComponentProps(),
7005
- ...makeGroupProps({
7006
- selectedClass: 'v-chip--selected'
7007
- }),
7008
- ...makeTagProps(),
7009
- ...makeThemeProps(),
7010
- ...makeVariantProps({
7011
- variant: 'tonal'
7012
- })
7013
- },
7016
+ props: makeVChipGroupProps(),
7014
7017
  emits: {
7015
7018
  'update:modelValue': value => true
7016
7019
  },
@@ -7054,65 +7057,66 @@ const VChipGroup = genericComponent()({
7054
7057
  }
7055
7058
  });
7056
7059
 
7060
+ const makeVChipProps = propsFactory({
7061
+ activeClass: String,
7062
+ appendAvatar: String,
7063
+ appendIcon: IconValue,
7064
+ closable: Boolean,
7065
+ closeIcon: {
7066
+ type: IconValue,
7067
+ default: '$delete'
7068
+ },
7069
+ closeLabel: {
7070
+ type: String,
7071
+ default: '$vuetify.close'
7072
+ },
7073
+ draggable: Boolean,
7074
+ filter: Boolean,
7075
+ filterIcon: {
7076
+ type: String,
7077
+ default: '$complete'
7078
+ },
7079
+ label: Boolean,
7080
+ link: {
7081
+ type: Boolean,
7082
+ default: undefined
7083
+ },
7084
+ pill: Boolean,
7085
+ prependAvatar: String,
7086
+ prependIcon: IconValue,
7087
+ ripple: {
7088
+ type: Boolean,
7089
+ default: true
7090
+ },
7091
+ text: String,
7092
+ modelValue: {
7093
+ type: Boolean,
7094
+ default: true
7095
+ },
7096
+ onClick: EventProp(),
7097
+ onClickOnce: EventProp(),
7098
+ ...makeBorderProps(),
7099
+ ...makeComponentProps(),
7100
+ ...makeDensityProps(),
7101
+ ...makeElevationProps(),
7102
+ ...makeGroupItemProps(),
7103
+ ...makeRoundedProps(),
7104
+ ...makeRouterProps(),
7105
+ ...makeSizeProps(),
7106
+ ...makeTagProps({
7107
+ tag: 'span'
7108
+ }),
7109
+ ...makeThemeProps(),
7110
+ ...makeVariantProps({
7111
+ variant: 'tonal'
7112
+ })
7113
+ }, 'v-chip');
7057
7114
  const VChip = genericComponent()({
7058
7115
  name: 'VChip',
7059
7116
  directives: {
7060
7117
  Ripple
7061
7118
  },
7062
- props: {
7063
- activeClass: String,
7064
- appendAvatar: String,
7065
- appendIcon: IconValue,
7066
- closable: Boolean,
7067
- closeIcon: {
7068
- type: IconValue,
7069
- default: '$delete'
7070
- },
7071
- closeLabel: {
7072
- type: String,
7073
- default: '$vuetify.close'
7074
- },
7075
- draggable: Boolean,
7076
- filter: Boolean,
7077
- filterIcon: {
7078
- type: String,
7079
- default: '$complete'
7080
- },
7081
- label: Boolean,
7082
- link: {
7083
- type: Boolean,
7084
- default: undefined
7085
- },
7086
- pill: Boolean,
7087
- prependAvatar: String,
7088
- prependIcon: IconValue,
7089
- ripple: {
7090
- type: Boolean,
7091
- default: true
7092
- },
7093
- text: String,
7094
- modelValue: {
7095
- type: Boolean,
7096
- default: true
7097
- },
7098
- onClick: EventProp(),
7099
- onClickOnce: EventProp(),
7100
- ...makeBorderProps(),
7101
- ...makeComponentProps(),
7102
- ...makeDensityProps(),
7103
- ...makeElevationProps(),
7104
- ...makeGroupItemProps(),
7105
- ...makeRoundedProps(),
7106
- ...makeRouterProps(),
7107
- ...makeSizeProps(),
7108
- ...makeTagProps({
7109
- tag: 'span'
7110
- }),
7111
- ...makeThemeProps(),
7112
- ...makeVariantProps({
7113
- variant: 'tonal'
7114
- })
7115
- },
7119
+ props: makeVChipProps(),
7116
7120
  emits: {
7117
7121
  'click:close': e => true,
7118
7122
  'update:modelValue': value => true,
@@ -7241,14 +7245,16 @@ const VChip = genericComponent()({
7241
7245
  start: true
7242
7246
  }
7243
7247
  }
7244
- }, slots.prepend)]), slots.default?.({
7248
+ }, slots.prepend)]), createVNode("div", {
7249
+ "class": "v-chip__content"
7250
+ }, [slots.default?.({
7245
7251
  isSelected: group?.isSelected.value,
7246
7252
  selectedClass: group?.selectedClass.value,
7247
7253
  select: group?.select,
7248
7254
  toggle: group?.toggle,
7249
7255
  value: group?.value.value,
7250
7256
  disabled: props.disabled
7251
- }) ?? props.text, hasAppend && createVNode("div", {
7257
+ }) ?? props.text]), hasAppend && createVNode("div", {
7252
7258
  "key": "append",
7253
7259
  "class": "v-chip__append"
7254
7260
  }, [!slots.append ? createVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
@@ -7293,17 +7299,18 @@ const VChip = genericComponent()({
7293
7299
  }
7294
7300
  });
7295
7301
 
7302
+ const makeVDividerProps = propsFactory({
7303
+ color: String,
7304
+ inset: Boolean,
7305
+ length: [Number, String],
7306
+ thickness: [Number, String],
7307
+ vertical: Boolean,
7308
+ ...makeComponentProps(),
7309
+ ...makeThemeProps()
7310
+ }, 'v-divider');
7296
7311
  const VDivider = genericComponent()({
7297
7312
  name: 'VDivider',
7298
- props: {
7299
- color: String,
7300
- inset: Boolean,
7301
- length: [Number, String],
7302
- thickness: [Number, String],
7303
- vertical: Boolean,
7304
- ...makeComponentProps(),
7305
- ...makeThemeProps()
7306
- },
7313
+ props: makeVDividerProps(),
7307
7314
  setup(props, _ref) {
7308
7315
  let {
7309
7316
  attrs
@@ -7345,11 +7352,11 @@ const VDivider = genericComponent()({
7345
7352
  const ListKey = Symbol.for('vuetify:list');
7346
7353
  function createList() {
7347
7354
  const parent = inject$1(ListKey, {
7348
- hasPrepend: ref(false),
7355
+ hasPrepend: shallowRef(false),
7349
7356
  updateHasPrepend: () => null
7350
7357
  });
7351
7358
  const data = {
7352
- hasPrepend: ref(false),
7359
+ hasPrepend: shallowRef(false),
7353
7360
  updateHasPrepend: value => {
7354
7361
  if (value) data.hasPrepend.value = value;
7355
7362
  }
@@ -7616,11 +7623,13 @@ const classicSelectStrategy = mandatory => {
7616
7623
  return strategy;
7617
7624
  };
7618
7625
 
7626
+ // Composables
7627
+
7619
7628
  // Types
7620
7629
 
7621
7630
  const VNestedSymbol = Symbol.for('vuetify:nested');
7622
7631
  const emptyNested = {
7623
- id: ref(),
7632
+ id: shallowRef(),
7624
7633
  root: {
7625
7634
  register: () => null,
7626
7635
  unregister: () => null,
@@ -7689,7 +7698,7 @@ const useNested = props => {
7689
7698
  }
7690
7699
  const vm = getCurrentInstance('nested');
7691
7700
  const nested = {
7692
- id: ref(),
7701
+ id: shallowRef(),
7693
7702
  root: {
7694
7703
  opened,
7695
7704
  selected,
@@ -7829,16 +7838,14 @@ const makeVListGroupProps = propsFactory({
7829
7838
  appendIcon: IconValue,
7830
7839
  fluid: Boolean,
7831
7840
  subgroup: Boolean,
7841
+ title: String,
7832
7842
  value: null,
7833
7843
  ...makeComponentProps(),
7834
7844
  ...makeTagProps()
7835
7845
  }, 'v-list-group');
7836
7846
  const VListGroup = genericComponent()({
7837
7847
  name: 'VListGroup',
7838
- props: {
7839
- title: String,
7840
- ...makeVListGroupProps()
7841
- },
7848
+ props: makeVListGroupProps(),
7842
7849
  setup(props, _ref2) {
7843
7850
  let {
7844
7851
  slots
@@ -7914,51 +7921,52 @@ const VListItemTitle = createSimpleFunctional('v-list-item-title');
7914
7921
 
7915
7922
  // Types
7916
7923
 
7924
+ const makeVListItemProps = propsFactory({
7925
+ active: {
7926
+ type: Boolean,
7927
+ default: undefined
7928
+ },
7929
+ activeClass: String,
7930
+ activeColor: String,
7931
+ appendAvatar: String,
7932
+ appendIcon: IconValue,
7933
+ disabled: Boolean,
7934
+ lines: String,
7935
+ link: {
7936
+ type: Boolean,
7937
+ default: undefined
7938
+ },
7939
+ nav: Boolean,
7940
+ prependAvatar: String,
7941
+ prependIcon: IconValue,
7942
+ ripple: {
7943
+ type: Boolean,
7944
+ default: true
7945
+ },
7946
+ subtitle: [String, Number, Boolean],
7947
+ title: [String, Number, Boolean],
7948
+ value: null,
7949
+ onClick: EventProp(),
7950
+ onClickOnce: EventProp(),
7951
+ ...makeBorderProps(),
7952
+ ...makeComponentProps(),
7953
+ ...makeDensityProps(),
7954
+ ...makeDimensionProps(),
7955
+ ...makeElevationProps(),
7956
+ ...makeRoundedProps(),
7957
+ ...makeRouterProps(),
7958
+ ...makeTagProps(),
7959
+ ...makeThemeProps(),
7960
+ ...makeVariantProps({
7961
+ variant: 'text'
7962
+ })
7963
+ }, 'v-list-item');
7917
7964
  const VListItem = genericComponent()({
7918
7965
  name: 'VListItem',
7919
7966
  directives: {
7920
7967
  Ripple
7921
7968
  },
7922
- props: {
7923
- active: {
7924
- type: Boolean,
7925
- default: undefined
7926
- },
7927
- activeClass: String,
7928
- activeColor: String,
7929
- appendAvatar: String,
7930
- appendIcon: IconValue,
7931
- disabled: Boolean,
7932
- lines: String,
7933
- link: {
7934
- type: Boolean,
7935
- default: undefined
7936
- },
7937
- nav: Boolean,
7938
- prependAvatar: String,
7939
- prependIcon: IconValue,
7940
- ripple: {
7941
- type: Boolean,
7942
- default: true
7943
- },
7944
- subtitle: [String, Number, Boolean],
7945
- title: [String, Number, Boolean],
7946
- value: null,
7947
- onClick: EventProp(),
7948
- onClickOnce: EventProp(),
7949
- ...makeBorderProps(),
7950
- ...makeComponentProps(),
7951
- ...makeDensityProps(),
7952
- ...makeDimensionProps(),
7953
- ...makeElevationProps(),
7954
- ...makeRoundedProps(),
7955
- ...makeRouterProps(),
7956
- ...makeTagProps(),
7957
- ...makeThemeProps(),
7958
- ...makeVariantProps({
7959
- variant: 'text'
7960
- })
7961
- },
7969
+ props: makeVListItemProps(),
7962
7970
  emits: {
7963
7971
  click: e => true
7964
7972
  },
@@ -8145,16 +8153,17 @@ const VListItem = genericComponent()({
8145
8153
  }
8146
8154
  });
8147
8155
 
8156
+ const makeVListSubheaderProps = propsFactory({
8157
+ color: String,
8158
+ inset: Boolean,
8159
+ sticky: Boolean,
8160
+ title: String,
8161
+ ...makeComponentProps(),
8162
+ ...makeTagProps()
8163
+ }, 'v-list-subheader');
8148
8164
  const VListSubheader = genericComponent()({
8149
8165
  name: 'VListSubheader',
8150
- props: {
8151
- color: String,
8152
- inset: Boolean,
8153
- sticky: Boolean,
8154
- title: String,
8155
- ...makeComponentProps(),
8156
- ...makeTagProps()
8157
- },
8166
+ props: makeVListSubheaderProps(),
8158
8167
  setup(props, _ref) {
8159
8168
  let {
8160
8169
  slots
@@ -8185,11 +8194,12 @@ const VListSubheader = genericComponent()({
8185
8194
 
8186
8195
  // Types
8187
8196
 
8197
+ const makeVListChildrenProps = propsFactory({
8198
+ items: Array
8199
+ }, 'v-list-children');
8188
8200
  const VListChildren = genericComponent()({
8189
8201
  name: 'VListChildren',
8190
- props: {
8191
- items: Array
8192
- },
8202
+ props: makeVListChildrenProps(),
8193
8203
  setup(props, _ref) {
8194
8204
  let {
8195
8205
  slots
@@ -8375,39 +8385,40 @@ function useListItems(props) {
8375
8385
  items
8376
8386
  };
8377
8387
  }
8388
+ const makeVListProps = propsFactory({
8389
+ activeColor: String,
8390
+ activeClass: String,
8391
+ bgColor: String,
8392
+ disabled: Boolean,
8393
+ lines: {
8394
+ type: [Boolean, String],
8395
+ default: 'one'
8396
+ },
8397
+ nav: Boolean,
8398
+ ...makeNestedProps({
8399
+ selectStrategy: 'single-leaf',
8400
+ openStrategy: 'list'
8401
+ }),
8402
+ ...makeBorderProps(),
8403
+ ...makeComponentProps(),
8404
+ ...makeDensityProps(),
8405
+ ...makeDimensionProps(),
8406
+ ...makeElevationProps(),
8407
+ itemType: {
8408
+ type: String,
8409
+ default: 'type'
8410
+ },
8411
+ ...makeItemsProps(),
8412
+ ...makeRoundedProps(),
8413
+ ...makeTagProps(),
8414
+ ...makeThemeProps(),
8415
+ ...makeVariantProps({
8416
+ variant: 'text'
8417
+ })
8418
+ }, 'v-list');
8378
8419
  const VList = genericComponent()({
8379
8420
  name: 'VList',
8380
- props: {
8381
- activeColor: String,
8382
- activeClass: String,
8383
- bgColor: String,
8384
- disabled: Boolean,
8385
- lines: {
8386
- type: [Boolean, String],
8387
- default: 'one'
8388
- },
8389
- nav: Boolean,
8390
- ...makeNestedProps({
8391
- selectStrategy: 'single-leaf',
8392
- openStrategy: 'list'
8393
- }),
8394
- ...makeBorderProps(),
8395
- ...makeComponentProps(),
8396
- ...makeDensityProps(),
8397
- ...makeDimensionProps(),
8398
- ...makeElevationProps(),
8399
- itemType: {
8400
- type: String,
8401
- default: 'type'
8402
- },
8403
- ...makeItemsProps(),
8404
- ...makeRoundedProps(),
8405
- ...makeTagProps(),
8406
- ...makeThemeProps(),
8407
- ...makeVariantProps({
8408
- variant: 'text'
8409
- })
8410
- },
8421
+ props: makeVListProps(),
8411
8422
  emits: {
8412
8423
  'update:selected': val => true,
8413
8424
  'update:opened': val => true,
@@ -8467,7 +8478,7 @@ const VList = genericComponent()({
8467
8478
  variant: toRef(props, 'variant')
8468
8479
  }
8469
8480
  });
8470
- const isFocused = ref(false);
8481
+ const isFocused = shallowRef(false);
8471
8482
  const contentRef = ref();
8472
8483
  function onFocusin(e) {
8473
8484
  isFocused.value = true;
@@ -8528,14 +8539,15 @@ const VList = genericComponent()({
8528
8539
 
8529
8540
  const VListImg = createSimpleFunctional('v-list-img');
8530
8541
 
8542
+ const makeVListItemActionProps = propsFactory({
8543
+ start: Boolean,
8544
+ end: Boolean,
8545
+ ...makeComponentProps(),
8546
+ ...makeTagProps()
8547
+ }, 'v-list-item-action');
8531
8548
  const VListItemAction = genericComponent()({
8532
8549
  name: 'VListItemAction',
8533
- props: {
8534
- start: Boolean,
8535
- end: Boolean,
8536
- ...makeComponentProps(),
8537
- ...makeTagProps()
8538
- },
8550
+ props: makeVListItemActionProps(),
8539
8551
  setup(props, _ref) {
8540
8552
  let {
8541
8553
  slots
@@ -8551,14 +8563,15 @@ const VListItemAction = genericComponent()({
8551
8563
  }
8552
8564
  });
8553
8565
 
8566
+ const makeVListItemMediaProps = propsFactory({
8567
+ start: Boolean,
8568
+ end: Boolean,
8569
+ ...makeComponentProps(),
8570
+ ...makeTagProps()
8571
+ }, 'v-list-item-media');
8554
8572
  const VListItemMedia = genericComponent()({
8555
8573
  name: 'VListItemMedia',
8556
- props: {
8557
- start: Boolean,
8558
- end: Boolean,
8559
- ...makeComponentProps(),
8560
- ...makeTagProps()
8561
- },
8574
+ props: makeVListItemMediaProps(),
8562
8575
  setup(props, _ref) {
8563
8576
  let {
8564
8577
  slots
@@ -8862,7 +8875,7 @@ const makeLazyProps = propsFactory({
8862
8875
  eager: Boolean
8863
8876
  }, 'lazy');
8864
8877
  function useLazy(props, active) {
8865
- const isBooted = ref(false);
8878
+ const isBooted = shallowRef(false);
8866
8879
  const hasContent = computed(() => isBooted.value || props.eager || active.value);
8867
8880
  watch(active, () => isBooted.value = true);
8868
8881
  function onAfterLeave() {
@@ -9020,7 +9033,9 @@ function connectedLocationStrategy(data, props, contentStyles) {
9020
9033
  const activatorFixed = isFixedPosition(data.activatorEl.value);
9021
9034
  if (activatorFixed) {
9022
9035
  Object.assign(contentStyles.value, {
9023
- position: 'fixed'
9036
+ position: 'fixed',
9037
+ top: 0,
9038
+ [data.isRtl.value ? 'right' : 'left']: 0
9024
9039
  });
9025
9040
  }
9026
9041
  const {
@@ -9092,8 +9107,8 @@ function connectedLocationStrategy(data, props, contentStyles) {
9092
9107
  if (!scrollParents.length) {
9093
9108
  scrollParents.push(document.documentElement);
9094
9109
  if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {
9095
- contentBox.x += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0);
9096
- contentBox.y += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0);
9110
+ contentBox.x -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0);
9111
+ contentBox.y -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0);
9097
9112
  }
9098
9113
  }
9099
9114
  const viewport = scrollParents.reduce((box, el) => {
@@ -9522,10 +9537,10 @@ function createDisplay(options, ssr) {
9522
9537
  thresholds,
9523
9538
  mobileBreakpoint
9524
9539
  } = parseDisplayOptions(options);
9525
- const height = ref(getClientHeight(ssr));
9540
+ const height = shallowRef(getClientHeight(ssr));
9526
9541
  const platform = shallowRef(getPlatform(ssr));
9527
9542
  const state = reactive({});
9528
- const width = ref(getClientWidth(ssr));
9543
+ const width = shallowRef(getClientWidth(ssr));
9529
9544
  function updateSize() {
9530
9545
  height.value = getClientHeight();
9531
9546
  width.value = getClientWidth();
@@ -9585,20 +9600,20 @@ function useDisplay() {
9585
9600
  return display;
9586
9601
  }
9587
9602
 
9588
- // Utilities
9603
+ // Composables
9589
9604
  function useHydration() {
9590
- if (!IN_BROWSER) return ref(false);
9605
+ if (!IN_BROWSER) return shallowRef(false);
9591
9606
  const {
9592
9607
  ssr
9593
9608
  } = useDisplay();
9594
9609
  if (ssr) {
9595
- const isMounted = ref(false);
9610
+ const isMounted = shallowRef(false);
9596
9611
  onMounted(() => {
9597
9612
  isMounted.value = true;
9598
9613
  });
9599
9614
  return isMounted;
9600
9615
  } else {
9601
- return ref(true);
9616
+ return shallowRef(true);
9602
9617
  }
9603
9618
  }
9604
9619
 
@@ -9612,6 +9627,8 @@ function useScopeId() {
9612
9627
  };
9613
9628
  }
9614
9629
 
9630
+ // Composables
9631
+
9615
9632
  // Types
9616
9633
 
9617
9634
  const StackSymbol = Symbol.for('vuetify:stack');
@@ -9624,7 +9641,7 @@ function useStack(isActive, zIndex, disableGlobalStack) {
9624
9641
  activeChildren: new Set()
9625
9642
  });
9626
9643
  provide(StackSymbol, stack);
9627
- const _zIndex = ref(+zIndex.value);
9644
+ const _zIndex = shallowRef(+zIndex.value);
9628
9645
  useToggleScope(isActive, () => {
9629
9646
  const lastZIndex = globalStack.at(-1)?.[1];
9630
9647
  _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value;
@@ -9640,7 +9657,7 @@ function useStack(isActive, zIndex, disableGlobalStack) {
9640
9657
  parent?.activeChildren.delete(vm.uid);
9641
9658
  });
9642
9659
  });
9643
- const globalTop = ref(true);
9660
+ const globalTop = shallowRef(true);
9644
9661
  if (createStackEntry) {
9645
9662
  watchEffect(() => {
9646
9663
  const _isTop = globalStack.at(-1)?.[0] === vm.uid;
@@ -9746,7 +9763,7 @@ const ClickOutside = {
9746
9763
  });
9747
9764
  if (!el._clickOutside) {
9748
9765
  el._clickOutside = {
9749
- lastMousedownWasOutside: true
9766
+ lastMousedownWasOutside: false
9750
9767
  };
9751
9768
  }
9752
9769
  el._clickOutside[binding.instance.$.uid] = {
@@ -10022,24 +10039,25 @@ const VOverlay = genericComponent()({
10022
10039
 
10023
10040
  // Types
10024
10041
 
10042
+ const makeVMenuProps = propsFactory({
10043
+ // TODO
10044
+ // disableKeys: Boolean,
10045
+ id: String,
10046
+ ...omit(makeVOverlayProps({
10047
+ closeDelay: 250,
10048
+ closeOnContentClick: true,
10049
+ locationStrategy: 'connected',
10050
+ openDelay: 300,
10051
+ scrim: false,
10052
+ scrollStrategy: 'reposition',
10053
+ transition: {
10054
+ component: VDialogTransition
10055
+ }
10056
+ }), ['absolute'])
10057
+ }, 'v-menu');
10025
10058
  const VMenu = genericComponent()({
10026
10059
  name: 'VMenu',
10027
- props: {
10028
- // TODO
10029
- // disableKeys: Boolean,
10030
- id: String,
10031
- ...omit(makeVOverlayProps({
10032
- closeDelay: 250,
10033
- closeOnContentClick: true,
10034
- locationStrategy: 'connected',
10035
- openDelay: 300,
10036
- scrim: false,
10037
- scrollStrategy: 'reposition',
10038
- transition: {
10039
- component: VDialogTransition
10040
- }
10041
- }), ['absolute'])
10042
- },
10060
+ props: makeVMenuProps(),
10043
10061
  emits: {
10044
10062
  'update:modelValue': value => true
10045
10063
  },
@@ -10055,7 +10073,7 @@ const VMenu = genericComponent()({
10055
10073
  const id = computed(() => props.id || `v-menu-${uid}`);
10056
10074
  const overlay = ref();
10057
10075
  const parent = inject$1(VMenuSymbol, null);
10058
- const openChildren = ref(0);
10076
+ const openChildren = shallowRef(0);
10059
10077
  provide(VMenuSymbol, {
10060
10078
  register() {
10061
10079
  ++openChildren.value;
@@ -10145,20 +10163,21 @@ const makeSelectProps = propsFactory({
10145
10163
  ...makeItemsProps({
10146
10164
  itemChildren: false
10147
10165
  })
10166
+ }, 'select');
10167
+ const makeVSelectProps = propsFactory({
10168
+ ...makeSelectProps(),
10169
+ ...omit(makeVTextFieldProps({
10170
+ modelValue: null
10171
+ }), ['validationValue', 'dirty', 'appendInnerIcon']),
10172
+ ...makeTransitionProps({
10173
+ transition: {
10174
+ component: VDialogTransition
10175
+ }
10176
+ })
10148
10177
  }, 'v-select');
10149
10178
  const VSelect = genericComponent()({
10150
10179
  name: 'VSelect',
10151
- props: {
10152
- ...makeSelectProps(),
10153
- ...omit(makeVTextFieldProps({
10154
- modelValue: null
10155
- }), ['validationValue', 'dirty', 'appendInnerIcon']),
10156
- ...makeTransitionProps({
10157
- transition: {
10158
- component: VDialogTransition
10159
- }
10160
- })
10161
- },
10180
+ props: makeVSelectProps(),
10162
10181
  emits: {
10163
10182
  'update:focused': focused => true,
10164
10183
  'update:modelValue': val => true,
@@ -10197,7 +10216,7 @@ const VSelect = genericComponent()({
10197
10216
  });
10198
10217
  });
10199
10218
  const selected = computed(() => selections.value.map(selection => selection.props.value));
10200
- const isFocused = ref(false);
10219
+ const isFocused = shallowRef(false);
10201
10220
  let keyboardLookupPrefix = '';
10202
10221
  let keyboardLookupLastTime;
10203
10222
  const displayItems = computed(() => {
@@ -10277,14 +10296,14 @@ const VSelect = genericComponent()({
10277
10296
  menu.value = false;
10278
10297
  }
10279
10298
  }
10280
- function onFocusin(e) {
10281
- isFocused.value = true;
10282
- }
10283
- function onFocusout(e) {
10284
- if (e.relatedTarget == null) {
10299
+ function onAfterLeave() {
10300
+ if (isFocused.value) {
10285
10301
  vTextFieldRef.value?.focus();
10286
10302
  }
10287
10303
  }
10304
+ function onFocusin(e) {
10305
+ isFocused.value = true;
10306
+ }
10288
10307
  useRender(() => {
10289
10308
  const hasChips = !!(props.chips || slots.chip);
10290
10309
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
@@ -10328,15 +10347,15 @@ const VSelect = genericComponent()({
10328
10347
  "maxHeight": 310,
10329
10348
  "openOnClick": false,
10330
10349
  "closeOnContentClick": false,
10331
- "transition": props.transition
10350
+ "transition": props.transition,
10351
+ "onAfterLeave": onAfterLeave
10332
10352
  }, props.menuProps), {
10333
10353
  default: () => [hasList && createVNode(VList, {
10334
10354
  "ref": listRef,
10335
10355
  "selected": selected.value,
10336
10356
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
10337
10357
  "onMousedown": e => e.preventDefault(),
10338
- "onFocusin": onFocusin,
10339
- "onFocusout": onFocusout
10358
+ "onFocusin": onFocusin
10340
10359
  }, {
10341
10360
  default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
10342
10361
  "title": t(props.noDataText)
@@ -10541,23 +10560,24 @@ function highlightResult$1(text, matches, length) {
10541
10560
  "class": "v-autocomplete__unmask"
10542
10561
  }, [text.substr(matches + length)])]) : text;
10543
10562
  }
10563
+ const makeVAutocompleteProps = propsFactory({
10564
+ // TODO: implement post keyboard support
10565
+ // autoSelectFirst: Boolean,
10566
+ search: String,
10567
+ ...makeFilterProps({
10568
+ filterKeys: ['title']
10569
+ }),
10570
+ ...makeSelectProps(),
10571
+ ...omit(makeVTextFieldProps({
10572
+ modelValue: null
10573
+ }), ['validationValue', 'dirty', 'appendInnerIcon']),
10574
+ ...makeTransitionProps({
10575
+ transition: false
10576
+ })
10577
+ }, 'v-autocomplete');
10544
10578
  const VAutocomplete = genericComponent()({
10545
10579
  name: 'VAutocomplete',
10546
- props: {
10547
- // TODO: implement post keyboard support
10548
- // autoSelectFirst: Boolean,
10549
- search: String,
10550
- ...makeFilterProps({
10551
- filterKeys: ['title']
10552
- }),
10553
- ...makeSelectProps(),
10554
- ...omit(makeVTextFieldProps({
10555
- modelValue: null
10556
- }), ['validationValue', 'dirty', 'appendInnerIcon']),
10557
- ...makeTransitionProps({
10558
- transition: false
10559
- })
10560
- },
10580
+ props: makeVAutocompleteProps(),
10561
10581
  emits: {
10562
10582
  'update:focused': focused => true,
10563
10583
  'update:search': val => true,
@@ -10572,8 +10592,8 @@ const VAutocomplete = genericComponent()({
10572
10592
  t
10573
10593
  } = useLocale();
10574
10594
  const vTextFieldRef = ref();
10575
- const isFocused = ref(false);
10576
- const isPristine = ref(true);
10595
+ const isFocused = shallowRef(false);
10596
+ const isPristine = shallowRef(true);
10577
10597
  const vMenuRef = ref();
10578
10598
  const _menu = useProxiedModel(props, 'menu');
10579
10599
  const menu = computed({
@@ -10583,7 +10603,7 @@ const VAutocomplete = genericComponent()({
10583
10603
  _menu.value = v;
10584
10604
  }
10585
10605
  });
10586
- const selectionIndex = ref(-1);
10606
+ const selectionIndex = shallowRef(-1);
10587
10607
  const color = computed(() => vTextFieldRef.value?.color);
10588
10608
  const {
10589
10609
  items,
@@ -10686,17 +10706,15 @@ const VAutocomplete = genericComponent()({
10686
10706
  search.value = e.target.value;
10687
10707
  }
10688
10708
  function onAfterLeave() {
10689
- if (isFocused.value) isPristine.value = true;
10709
+ if (isFocused.value) {
10710
+ isPristine.value = true;
10711
+ vTextFieldRef.value?.focus();
10712
+ }
10690
10713
  }
10691
10714
  function onFocusin(e) {
10692
10715
  isFocused.value = true;
10693
10716
  }
10694
- function onFocusout(e) {
10695
- if (e.relatedTarget == null) {
10696
- vTextFieldRef.value?.focus();
10697
- }
10698
- }
10699
- const isSelecting = ref(false);
10717
+ const isSelecting = shallowRef(false);
10700
10718
  function select(item) {
10701
10719
  if (props.multiple) {
10702
10720
  const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
@@ -10710,9 +10728,7 @@ const VAutocomplete = genericComponent()({
10710
10728
  } else {
10711
10729
  model.value = [item];
10712
10730
  isSelecting.value = true;
10713
- if (!slots.selection) {
10714
- search.value = item.title;
10715
- }
10731
+ search.value = item.title;
10716
10732
  menu.value = false;
10717
10733
  isPristine.value = true;
10718
10734
  nextTick(() => isSelecting.value = false);
@@ -10721,13 +10737,14 @@ const VAutocomplete = genericComponent()({
10721
10737
  watch(isFocused, val => {
10722
10738
  if (val) {
10723
10739
  isSelecting.value = true;
10724
- search.value = props.multiple || !!slots.selection ? '' : String(selections.value.at(-1)?.props.title ?? '');
10740
+ search.value = props.multiple ? '' : String(selections.value.at(-1)?.props.title ?? '');
10725
10741
  isPristine.value = true;
10726
10742
  nextTick(() => isSelecting.value = false);
10727
10743
  } else {
10728
10744
  if (!props.multiple && !search.value) model.value = [];
10729
10745
  menu.value = false;
10730
10746
  search.value = '';
10747
+ selectionIndex.value = -1;
10731
10748
  }
10732
10749
  });
10733
10750
  watch(search, val => {
@@ -10752,12 +10769,10 @@ const VAutocomplete = genericComponent()({
10752
10769
  "validationValue": model.externalValue,
10753
10770
  "dirty": isDirty,
10754
10771
  "onInput": onInput,
10755
- "class": ['v-autocomplete', {
10772
+ "class": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {
10756
10773
  'v-autocomplete--active-menu': menu.value,
10757
10774
  'v-autocomplete--chips': !!props.chips,
10758
- 'v-autocomplete--selecting-index': selectionIndex.value > -1,
10759
- [`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,
10760
- 'v-autocomplete--selection-slot': !!slots.selection
10775
+ 'v-autocomplete--selecting-index': selectionIndex.value > -1
10761
10776
  }, props.class],
10762
10777
  "style": props.style,
10763
10778
  "appendInnerIcon": props.menuIcon,
@@ -10786,8 +10801,7 @@ const VAutocomplete = genericComponent()({
10786
10801
  "selected": selected.value,
10787
10802
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
10788
10803
  "onMousedown": e => e.preventDefault(),
10789
- "onFocusin": onFocusin,
10790
- "onFocusout": onFocusout
10804
+ "onFocusin": onFocusin
10791
10805
  }, {
10792
10806
  default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
10793
10807
  "title": t(props.noDataText)
@@ -10879,40 +10893,41 @@ const VAutocomplete = genericComponent()({
10879
10893
  }
10880
10894
  });
10881
10895
 
10896
+ const makeVBadgeProps = propsFactory({
10897
+ bordered: Boolean,
10898
+ color: String,
10899
+ content: [Number, String],
10900
+ dot: Boolean,
10901
+ floating: Boolean,
10902
+ icon: IconValue,
10903
+ inline: Boolean,
10904
+ label: {
10905
+ type: String,
10906
+ default: '$vuetify.badge'
10907
+ },
10908
+ max: [Number, String],
10909
+ modelValue: {
10910
+ type: Boolean,
10911
+ default: true
10912
+ },
10913
+ offsetX: [Number, String],
10914
+ offsetY: [Number, String],
10915
+ textColor: String,
10916
+ ...makeComponentProps(),
10917
+ ...makeLocationProps({
10918
+ location: 'top end'
10919
+ }),
10920
+ ...makeRoundedProps(),
10921
+ ...makeTagProps(),
10922
+ ...makeThemeProps(),
10923
+ ...makeTransitionProps({
10924
+ transition: 'scale-rotate-transition'
10925
+ })
10926
+ }, 'v-badge');
10882
10927
  const VBadge = genericComponent()({
10883
10928
  name: 'VBadge',
10884
10929
  inheritAttrs: false,
10885
- props: {
10886
- bordered: Boolean,
10887
- color: String,
10888
- content: [Number, String],
10889
- dot: Boolean,
10890
- floating: Boolean,
10891
- icon: IconValue,
10892
- inline: Boolean,
10893
- label: {
10894
- type: String,
10895
- default: '$vuetify.badge'
10896
- },
10897
- max: [Number, String],
10898
- modelValue: {
10899
- type: Boolean,
10900
- default: true
10901
- },
10902
- offsetX: [Number, String],
10903
- offsetY: [Number, String],
10904
- textColor: String,
10905
- ...makeComponentProps(),
10906
- ...makeLocationProps({
10907
- location: 'top end'
10908
- }),
10909
- ...makeRoundedProps(),
10910
- ...makeTagProps(),
10911
- ...makeThemeProps(),
10912
- ...makeTransitionProps({
10913
- transition: 'scale-rotate-transition'
10914
- })
10915
- },
10930
+ props: makeVBadgeProps(),
10916
10931
  setup(props, ctx) {
10917
10932
  const {
10918
10933
  backgroundColorClasses,
@@ -10973,13 +10988,14 @@ const VBadge = genericComponent()({
10973
10988
  }
10974
10989
  });
10975
10990
 
10991
+ const makeVBannerActionsProps = propsFactory({
10992
+ color: String,
10993
+ density: String,
10994
+ ...makeComponentProps()
10995
+ }, 'v-banner-actions');
10976
10996
  const VBannerActions = genericComponent()({
10977
10997
  name: 'VBannerActions',
10978
- props: {
10979
- color: String,
10980
- density: String,
10981
- ...makeComponentProps()
10982
- },
10998
+ props: makeVBannerActionsProps(),
10983
10999
  setup(props, _ref) {
10984
11000
  let {
10985
11001
  slots
@@ -11003,27 +11019,28 @@ const VBannerText = createSimpleFunctional('v-banner-text');
11003
11019
 
11004
11020
  // Types
11005
11021
 
11022
+ const makeVBannerProps = propsFactory({
11023
+ avatar: String,
11024
+ color: String,
11025
+ icon: IconValue,
11026
+ lines: String,
11027
+ stacked: Boolean,
11028
+ sticky: Boolean,
11029
+ text: String,
11030
+ ...makeBorderProps(),
11031
+ ...makeComponentProps(),
11032
+ ...makeDensityProps(),
11033
+ ...makeDimensionProps(),
11034
+ ...makeElevationProps(),
11035
+ ...makeLocationProps(),
11036
+ ...makePositionProps(),
11037
+ ...makeRoundedProps(),
11038
+ ...makeTagProps(),
11039
+ ...makeThemeProps()
11040
+ }, 'v-banner');
11006
11041
  const VBanner = genericComponent()({
11007
11042
  name: 'VBanner',
11008
- props: {
11009
- avatar: String,
11010
- color: String,
11011
- icon: IconValue,
11012
- lines: String,
11013
- stacked: Boolean,
11014
- sticky: Boolean,
11015
- text: String,
11016
- ...makeBorderProps(),
11017
- ...makeComponentProps(),
11018
- ...makeDensityProps(),
11019
- ...makeDimensionProps(),
11020
- ...makeElevationProps(),
11021
- ...makeLocationProps(),
11022
- ...makePositionProps(),
11023
- ...makeRoundedProps(),
11024
- ...makeTagProps(),
11025
- ...makeThemeProps()
11026
- },
11043
+ props: makeVBannerProps(),
11027
11044
  setup(props, _ref) {
11028
11045
  let {
11029
11046
  slots
@@ -11110,47 +11127,48 @@ const VBanner = genericComponent()({
11110
11127
  }
11111
11128
  });
11112
11129
 
11113
- const VBottomNavigation = genericComponent()({
11114
- name: 'VBottomNavigation',
11115
- props: {
11116
- bgColor: String,
11117
- color: String,
11118
- grow: Boolean,
11119
- mode: {
11120
- type: String,
11121
- validator: v => !v || ['horizontal', 'shift'].includes(v)
11122
- },
11123
- height: {
11124
- type: [Number, String],
11125
- default: 56
11126
- },
11127
- active: {
11128
- type: Boolean,
11129
- default: true
11130
- },
11131
- ...makeBorderProps(),
11132
- ...makeComponentProps(),
11133
- ...makeDensityProps(),
11134
- ...makeElevationProps(),
11135
- ...makeRoundedProps(),
11136
- ...makeLayoutItemProps({
11137
- name: 'bottom-navigation'
11138
- }),
11139
- ...makeTagProps({
11140
- tag: 'header'
11141
- }),
11142
- ...makeGroupProps({
11143
- modelValue: true,
11144
- selectedClass: 'v-btn--selected'
11145
- }),
11146
- ...makeThemeProps()
11130
+ const makeVBottomNavigationProps = propsFactory({
11131
+ bgColor: String,
11132
+ color: String,
11133
+ grow: Boolean,
11134
+ mode: {
11135
+ type: String,
11136
+ validator: v => !v || ['horizontal', 'shift'].includes(v)
11147
11137
  },
11148
- emits: {
11149
- 'update:modelValue': value => true
11138
+ height: {
11139
+ type: [Number, String],
11140
+ default: 56
11150
11141
  },
11151
- setup(props, _ref) {
11152
- let {
11153
- slots
11142
+ active: {
11143
+ type: Boolean,
11144
+ default: true
11145
+ },
11146
+ ...makeBorderProps(),
11147
+ ...makeComponentProps(),
11148
+ ...makeDensityProps(),
11149
+ ...makeElevationProps(),
11150
+ ...makeRoundedProps(),
11151
+ ...makeLayoutItemProps({
11152
+ name: 'bottom-navigation'
11153
+ }),
11154
+ ...makeTagProps({
11155
+ tag: 'header'
11156
+ }),
11157
+ ...makeGroupProps({
11158
+ modelValue: true,
11159
+ selectedClass: 'v-btn--selected'
11160
+ }),
11161
+ ...makeThemeProps()
11162
+ }, 'v-bottom-navigation');
11163
+ const VBottomNavigation = genericComponent()({
11164
+ name: 'VBottomNavigation',
11165
+ props: makeVBottomNavigationProps(),
11166
+ emits: {
11167
+ 'update:modelValue': value => true
11168
+ },
11169
+ setup(props, _ref) {
11170
+ let {
11171
+ slots
11154
11172
  } = _ref;
11155
11173
  const {
11156
11174
  themeClasses
@@ -11219,12 +11237,13 @@ const VBottomNavigation = genericComponent()({
11219
11237
  }
11220
11238
  });
11221
11239
 
11240
+ const makeVBreadcrumbsDividerProps = propsFactory({
11241
+ divider: [Number, String],
11242
+ ...makeComponentProps()
11243
+ }, 'v-breacrumbs-divider');
11222
11244
  const VBreadcrumbsDivider = genericComponent()({
11223
11245
  name: 'VBreadcrumbsDivider',
11224
- props: {
11225
- divider: [Number, String],
11226
- ...makeComponentProps()
11227
- },
11246
+ props: makeVBreadcrumbsDividerProps(),
11228
11247
  setup(props, _ref) {
11229
11248
  let {
11230
11249
  slots
@@ -11237,21 +11256,22 @@ const VBreadcrumbsDivider = genericComponent()({
11237
11256
  }
11238
11257
  });
11239
11258
 
11259
+ const makeVBreadcrumbsItemProps = propsFactory({
11260
+ active: Boolean,
11261
+ activeClass: String,
11262
+ activeColor: String,
11263
+ color: String,
11264
+ disabled: Boolean,
11265
+ title: String,
11266
+ ...makeComponentProps(),
11267
+ ...makeRouterProps(),
11268
+ ...makeTagProps({
11269
+ tag: 'li'
11270
+ })
11271
+ }, 'v-breadcrumbs-item');
11240
11272
  const VBreadcrumbsItem = genericComponent()({
11241
11273
  name: 'VBreadcrumbsItem',
11242
- props: {
11243
- active: Boolean,
11244
- activeClass: String,
11245
- activeColor: String,
11246
- color: String,
11247
- disabled: Boolean,
11248
- title: String,
11249
- ...makeComponentProps(),
11250
- ...makeRouterProps(),
11251
- ...makeTagProps({
11252
- tag: 'li'
11253
- })
11254
- },
11274
+ props: makeVBreadcrumbsItemProps(),
11255
11275
  setup(props, _ref) {
11256
11276
  let {
11257
11277
  slots,
@@ -11287,30 +11307,31 @@ const VBreadcrumbsItem = genericComponent()({
11287
11307
 
11288
11308
  // Types
11289
11309
 
11310
+ const makeVBreadcrumbsProps = propsFactory({
11311
+ activeClass: String,
11312
+ activeColor: String,
11313
+ bgColor: String,
11314
+ color: String,
11315
+ disabled: Boolean,
11316
+ divider: {
11317
+ type: String,
11318
+ default: '/'
11319
+ },
11320
+ icon: IconValue,
11321
+ items: {
11322
+ type: Array,
11323
+ default: () => []
11324
+ },
11325
+ ...makeComponentProps(),
11326
+ ...makeDensityProps(),
11327
+ ...makeRoundedProps(),
11328
+ ...makeTagProps({
11329
+ tag: 'ul'
11330
+ })
11331
+ }, 'v-breacrumbs');
11290
11332
  const VBreadcrumbs = genericComponent()({
11291
11333
  name: 'VBreadcrumbs',
11292
- props: {
11293
- activeClass: String,
11294
- activeColor: String,
11295
- bgColor: String,
11296
- color: String,
11297
- disabled: Boolean,
11298
- divider: {
11299
- type: String,
11300
- default: '/'
11301
- },
11302
- icon: IconValue,
11303
- items: {
11304
- type: Array,
11305
- default: () => []
11306
- },
11307
- ...makeComponentProps(),
11308
- ...makeDensityProps(),
11309
- ...makeRoundedProps(),
11310
- ...makeTagProps({
11311
- tag: 'ul'
11312
- })
11313
- },
11334
+ props: makeVBreadcrumbsProps(),
11314
11335
  setup(props, _ref) {
11315
11336
  let {
11316
11337
  slots
@@ -11419,18 +11440,19 @@ const VCardSubtitle = createSimpleFunctional('v-card-subtitle');
11419
11440
 
11420
11441
  const VCardTitle = createSimpleFunctional('v-card-title');
11421
11442
 
11443
+ const makeCardItemProps = propsFactory({
11444
+ appendAvatar: String,
11445
+ appendIcon: IconValue,
11446
+ prependAvatar: String,
11447
+ prependIcon: IconValue,
11448
+ subtitle: String,
11449
+ title: String,
11450
+ ...makeComponentProps(),
11451
+ ...makeDensityProps()
11452
+ }, 'v-card-item');
11422
11453
  const VCardItem = genericComponent()({
11423
11454
  name: 'VCardItem',
11424
- props: {
11425
- appendAvatar: String,
11426
- appendIcon: IconValue,
11427
- prependAvatar: String,
11428
- prependIcon: IconValue,
11429
- subtitle: String,
11430
- title: String,
11431
- ...makeComponentProps(),
11432
- ...makeDensityProps()
11433
- },
11455
+ props: makeCardItemProps(),
11434
11456
  setup(props, _ref) {
11435
11457
  let {
11436
11458
  slots
@@ -11501,47 +11523,48 @@ const VCardText = createSimpleFunctional('v-card-text');
11501
11523
 
11502
11524
  // Types
11503
11525
 
11526
+ const makeVCardProps = propsFactory({
11527
+ appendAvatar: String,
11528
+ appendIcon: IconValue,
11529
+ disabled: Boolean,
11530
+ flat: Boolean,
11531
+ hover: Boolean,
11532
+ image: String,
11533
+ link: {
11534
+ type: Boolean,
11535
+ default: undefined
11536
+ },
11537
+ prependAvatar: String,
11538
+ prependIcon: IconValue,
11539
+ ripple: {
11540
+ type: Boolean,
11541
+ default: true
11542
+ },
11543
+ subtitle: String,
11544
+ text: String,
11545
+ title: String,
11546
+ ...makeBorderProps(),
11547
+ ...makeComponentProps(),
11548
+ ...makeDensityProps(),
11549
+ ...makeDimensionProps(),
11550
+ ...makeElevationProps(),
11551
+ ...makeLoaderProps(),
11552
+ ...makeLocationProps(),
11553
+ ...makePositionProps(),
11554
+ ...makeRoundedProps(),
11555
+ ...makeRouterProps(),
11556
+ ...makeTagProps(),
11557
+ ...makeThemeProps(),
11558
+ ...makeVariantProps({
11559
+ variant: 'elevated'
11560
+ })
11561
+ }, 'v-card');
11504
11562
  const VCard = genericComponent()({
11505
11563
  name: 'VCard',
11506
11564
  directives: {
11507
11565
  Ripple
11508
11566
  },
11509
- props: {
11510
- appendAvatar: String,
11511
- appendIcon: IconValue,
11512
- disabled: Boolean,
11513
- flat: Boolean,
11514
- hover: Boolean,
11515
- image: String,
11516
- link: {
11517
- type: Boolean,
11518
- default: undefined
11519
- },
11520
- prependAvatar: String,
11521
- prependIcon: IconValue,
11522
- ripple: {
11523
- type: Boolean,
11524
- default: true
11525
- },
11526
- subtitle: String,
11527
- text: String,
11528
- title: String,
11529
- ...makeBorderProps(),
11530
- ...makeComponentProps(),
11531
- ...makeDensityProps(),
11532
- ...makeDimensionProps(),
11533
- ...makeElevationProps(),
11534
- ...makeLoaderProps(),
11535
- ...makeLocationProps(),
11536
- ...makePositionProps(),
11537
- ...makeRoundedProps(),
11538
- ...makeRouterProps(),
11539
- ...makeTagProps(),
11540
- ...makeThemeProps(),
11541
- ...makeVariantProps({
11542
- variant: 'elevated'
11543
- })
11544
- },
11567
+ props: makeVCardProps(),
11545
11568
  setup(props, _ref) {
11546
11569
  let {
11547
11570
  attrs,
@@ -11824,14 +11847,14 @@ const VWindow = genericComponent()({
11824
11847
  const group = useGroup(props, VWindowGroupSymbol);
11825
11848
  const rootRef = ref();
11826
11849
  const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse);
11827
- const isReversed = ref(false);
11850
+ const isReversed = shallowRef(false);
11828
11851
  const transition = computed(() => {
11829
11852
  const axis = props.direction === 'vertical' ? 'y' : 'x';
11830
11853
  const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value;
11831
11854
  const direction = reverse ? '-reverse' : '';
11832
11855
  return `v-window-${axis}${direction}-transition`;
11833
11856
  });
11834
- const transitionCount = ref(0);
11857
+ const transitionCount = shallowRef(0);
11835
11858
  const transitionHeight = ref(undefined);
11836
11859
  const activeIndex = computed(() => {
11837
11860
  return group.items.value.findIndex(item => group.selected.value.includes(item.id));
@@ -11935,34 +11958,35 @@ const VWindow = genericComponent()({
11935
11958
 
11936
11959
  // Types
11937
11960
 
11961
+ const makeVCarouselProps = propsFactory({
11962
+ color: String,
11963
+ cycle: Boolean,
11964
+ delimiterIcon: {
11965
+ type: IconValue,
11966
+ default: '$delimiter'
11967
+ },
11968
+ height: {
11969
+ type: [Number, String],
11970
+ default: 500
11971
+ },
11972
+ hideDelimiters: Boolean,
11973
+ hideDelimiterBackground: Boolean,
11974
+ interval: {
11975
+ type: [Number, String],
11976
+ default: 6000,
11977
+ validator: value => Number(value) > 0
11978
+ },
11979
+ progress: [Boolean, String],
11980
+ verticalDelimiters: [Boolean, String],
11981
+ ...makeVWindowProps({
11982
+ continuous: true,
11983
+ mandatory: 'force',
11984
+ showArrows: true
11985
+ })
11986
+ }, 'v-carousel');
11938
11987
  const VCarousel = genericComponent()({
11939
11988
  name: 'VCarousel',
11940
- props: {
11941
- color: String,
11942
- cycle: Boolean,
11943
- delimiterIcon: {
11944
- type: IconValue,
11945
- default: '$delimiter'
11946
- },
11947
- height: {
11948
- type: [Number, String],
11949
- default: 500
11950
- },
11951
- hideDelimiters: Boolean,
11952
- hideDelimiterBackground: Boolean,
11953
- interval: {
11954
- type: [Number, String],
11955
- default: 6000,
11956
- validator: value => Number(value) > 0
11957
- },
11958
- progress: [Boolean, String],
11959
- verticalDelimiters: [Boolean, String],
11960
- ...makeVWindowProps({
11961
- continuous: true,
11962
- mandatory: 'force',
11963
- showArrows: true
11964
- })
11965
- },
11989
+ props: makeVCarouselProps(),
11966
11990
  emits: {
11967
11991
  'update:modelValue': val => true
11968
11992
  },
@@ -12052,24 +12076,25 @@ const VCarousel = genericComponent()({
12052
12076
  }
12053
12077
  });
12054
12078
 
12079
+ const makeVWindowItemProps = propsFactory({
12080
+ reverseTransition: {
12081
+ type: [Boolean, String],
12082
+ default: undefined
12083
+ },
12084
+ transition: {
12085
+ type: [Boolean, String],
12086
+ default: undefined
12087
+ },
12088
+ ...makeComponentProps(),
12089
+ ...makeGroupItemProps(),
12090
+ ...makeLazyProps()
12091
+ }, 'v-window-item');
12055
12092
  const VWindowItem = genericComponent()({
12056
12093
  name: 'VWindowItem',
12057
12094
  directives: {
12058
12095
  Touch
12059
12096
  },
12060
- props: {
12061
- reverseTransition: {
12062
- type: [Boolean, String],
12063
- default: undefined
12064
- },
12065
- transition: {
12066
- type: [Boolean, String],
12067
- default: undefined
12068
- },
12069
- ...makeComponentProps(),
12070
- ...makeGroupItemProps(),
12071
- ...makeLazyProps()
12072
- },
12097
+ props: makeVWindowItemProps(),
12073
12098
  emits: {
12074
12099
  'group:selected': val => true
12075
12100
  },
@@ -12083,8 +12108,8 @@ const VWindowItem = genericComponent()({
12083
12108
  isBooted
12084
12109
  } = useSsrBoot();
12085
12110
  if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow');
12086
- const isTransitioning = ref(false);
12087
- const hasTransition = computed(() => window.isReversed.value ? props.reverseTransition !== false : props.transition !== false);
12111
+ const isTransitioning = shallowRef(false);
12112
+ const hasTransition = computed(() => isBooted.value && (window.isReversed.value ? props.reverseTransition !== false : props.transition !== false));
12088
12113
  function onAfterTransition() {
12089
12114
  if (!isTransitioning.value || !window) {
12090
12115
  return;
@@ -12163,25 +12188,28 @@ const VWindowItem = genericComponent()({
12163
12188
 
12164
12189
  // Types
12165
12190
 
12191
+ const makeVCarouselItemProps = propsFactory({
12192
+ ...makeVImgProps(),
12193
+ ...makeVWindowItemProps()
12194
+ }, 'v-carousel-item');
12166
12195
  const VCarouselItem = genericComponent()({
12167
12196
  name: 'VCarouselItem',
12168
12197
  inheritAttrs: false,
12169
- props: {
12170
- value: null,
12171
- ...makeComponentProps()
12172
- },
12198
+ props: makeVCarouselItemProps(),
12173
12199
  setup(props, _ref) {
12174
12200
  let {
12175
12201
  slots,
12176
12202
  attrs
12177
12203
  } = _ref;
12178
- useRender(() => createVNode(VWindowItem, {
12179
- "class": ['v-carousel-item', props.class],
12180
- "style": props.style,
12181
- "value": props.value
12182
- }, {
12183
- default: () => [createVNode(VImg, attrs, slots)]
12184
- }));
12204
+ useRender(() => {
12205
+ const [imgProps] = VImg.filterProps(props);
12206
+ const [windowItemProps] = VWindowItem.filterProps(props);
12207
+ return createVNode(VWindowItem, mergeProps({
12208
+ "class": "v-carousel-item"
12209
+ }, windowItemProps), {
12210
+ default: () => [createVNode(VImg, mergeProps(attrs, imgProps), slots)]
12211
+ });
12212
+ });
12185
12213
  }
12186
12214
  });
12187
12215
 
@@ -12201,9 +12229,7 @@ const makeVSheetProps = propsFactory({
12201
12229
  }, 'v-sheet');
12202
12230
  const VSheet = genericComponent()({
12203
12231
  name: 'VSheet',
12204
- props: {
12205
- ...makeVSheetProps()
12206
- },
12232
+ props: makeVSheetProps(),
12207
12233
  setup(props, _ref) {
12208
12234
  let {
12209
12235
  slots
@@ -12243,27 +12269,28 @@ const VSheet = genericComponent()({
12243
12269
 
12244
12270
  // Types
12245
12271
 
12272
+ const makeVColorPickerCanvasProps = propsFactory({
12273
+ color: {
12274
+ type: Object
12275
+ },
12276
+ disabled: Boolean,
12277
+ dotSize: {
12278
+ type: [Number, String],
12279
+ default: 10
12280
+ },
12281
+ height: {
12282
+ type: [Number, String],
12283
+ default: 150
12284
+ },
12285
+ width: {
12286
+ type: [Number, String],
12287
+ default: 300
12288
+ },
12289
+ ...makeComponentProps()
12290
+ }, 'v-color-picker-canvas');
12246
12291
  const VColorPickerCanvas = defineComponent({
12247
12292
  name: 'VColorPickerCanvas',
12248
- props: {
12249
- color: {
12250
- type: Object
12251
- },
12252
- disabled: Boolean,
12253
- dotSize: {
12254
- type: [Number, String],
12255
- default: 10
12256
- },
12257
- height: {
12258
- type: [Number, String],
12259
- default: 150
12260
- },
12261
- width: {
12262
- type: [Number, String],
12263
- default: 300
12264
- },
12265
- ...makeComponentProps()
12266
- },
12293
+ props: makeVColorPickerCanvasProps(),
12267
12294
  emits: {
12268
12295
  'update:color': color => true,
12269
12296
  'update:position': hue => true
@@ -12272,8 +12299,8 @@ const VColorPickerCanvas = defineComponent({
12272
12299
  let {
12273
12300
  emit
12274
12301
  } = _ref;
12275
- const isInteracting = ref(false);
12276
- const isOutsideUpdate = ref(false);
12302
+ const isInteracting = shallowRef(false);
12303
+ const isOutsideUpdate = shallowRef(false);
12277
12304
  const dotPosition = ref({
12278
12305
  x: 0,
12279
12306
  y: 0
@@ -12291,8 +12318,8 @@ const VColorPickerCanvas = defineComponent({
12291
12318
  };
12292
12319
  });
12293
12320
  const canvasRef = ref();
12294
- const canvasWidth = ref(parseFloat(props.width));
12295
- const canvasHeight = ref(parseFloat(props.height));
12321
+ const canvasWidth = shallowRef(parseFloat(props.width));
12322
+ const canvasHeight = shallowRef(parseFloat(props.height));
12296
12323
  const {
12297
12324
  resizeRef
12298
12325
  } = useResizeObserver(entries => {
@@ -12519,7 +12546,7 @@ const rgba = {
12519
12546
  let {
12520
12547
  a
12521
12548
  } = _ref;
12522
- return a ? Math.round(a * 100) / 100 : 1;
12549
+ return a != null ? Math.round(a * 100) / 100 : 1;
12523
12550
  },
12524
12551
  getColor: (c, v) => ({
12525
12552
  ...c,
@@ -12573,7 +12600,7 @@ const hsla = {
12573
12600
  let {
12574
12601
  a
12575
12602
  } = _ref2;
12576
- return a ? Math.round(a * 100) / 100 : 1;
12603
+ return a != null ? Math.round(a * 100) / 100 : 1;
12577
12604
  },
12578
12605
  getColor: (c, v) => ({
12579
12606
  ...c,
@@ -12627,23 +12654,24 @@ const VColorPickerInput = _ref => {
12627
12654
  "class": "v-color-picker-edit__input"
12628
12655
  }, [createVNode("input", rest, null), createVNode("span", null, [label])]);
12629
12656
  };
12657
+ const makeVColorPickerEditProps = propsFactory({
12658
+ color: Object,
12659
+ disabled: Boolean,
12660
+ mode: {
12661
+ type: String,
12662
+ default: 'rgba',
12663
+ validator: v => Object.keys(modes).includes(v)
12664
+ },
12665
+ modes: {
12666
+ type: Array,
12667
+ default: () => Object.keys(modes),
12668
+ validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
12669
+ },
12670
+ ...makeComponentProps()
12671
+ }, 'v-color-picker-edit');
12630
12672
  const VColorPickerEdit = defineComponent({
12631
12673
  name: 'VColorPickerEdit',
12632
- props: {
12633
- color: Object,
12634
- disabled: Boolean,
12635
- mode: {
12636
- type: String,
12637
- default: 'rgba',
12638
- validator: v => Object.keys(modes).includes(v)
12639
- },
12640
- modes: {
12641
- type: Array,
12642
- default: () => Object.keys(modes),
12643
- validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
12644
- },
12645
- ...makeComponentProps()
12646
- },
12674
+ props: makeVColorPickerEditProps(),
12647
12675
  emits: {
12648
12676
  'update:color': color => true,
12649
12677
  'update:mode': mode => true
@@ -12823,8 +12851,8 @@ const useSlider = _ref => {
12823
12851
  const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);
12824
12852
  const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);
12825
12853
  const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);
12826
- const mousePressed = ref(false);
12827
- const startOffset = ref(0);
12854
+ const mousePressed = shallowRef(false);
12855
+ const startOffset = shallowRef(0);
12828
12856
  const trackContainerRef = ref();
12829
12857
  const activeThumbRef = ref();
12830
12858
  function parseMouseMove(e) {
@@ -12976,35 +13004,36 @@ const useSlider = _ref => {
12976
13004
  return data;
12977
13005
  };
12978
13006
 
13007
+ const makeVSliderThumbProps = propsFactory({
13008
+ focused: Boolean,
13009
+ max: {
13010
+ type: Number,
13011
+ required: true
13012
+ },
13013
+ min: {
13014
+ type: Number,
13015
+ required: true
13016
+ },
13017
+ modelValue: {
13018
+ type: Number,
13019
+ required: true
13020
+ },
13021
+ position: {
13022
+ type: Number,
13023
+ required: true
13024
+ },
13025
+ ripple: {
13026
+ type: Boolean,
13027
+ default: true
13028
+ },
13029
+ ...makeComponentProps()
13030
+ }, 'v-slider-thumb');
12979
13031
  const VSliderThumb = genericComponent()({
12980
13032
  name: 'VSliderThumb',
12981
13033
  directives: {
12982
13034
  Ripple
12983
13035
  },
12984
- props: {
12985
- focused: Boolean,
12986
- max: {
12987
- type: Number,
12988
- required: true
12989
- },
12990
- min: {
12991
- type: Number,
12992
- required: true
12993
- },
12994
- modelValue: {
12995
- type: Number,
12996
- required: true
12997
- },
12998
- position: {
12999
- type: Number,
13000
- required: true
13001
- },
13002
- ripple: {
13003
- type: Boolean,
13004
- default: true
13005
- },
13006
- ...makeComponentProps()
13007
- },
13036
+ props: makeVSliderThumbProps(),
13008
13037
  emits: {
13009
13038
  'update:modelValue': v => true
13010
13039
  },
@@ -13121,19 +13150,20 @@ const VSliderThumb = genericComponent()({
13121
13150
  }
13122
13151
  });
13123
13152
 
13153
+ const makeVSliderTrackProps = propsFactory({
13154
+ start: {
13155
+ type: Number,
13156
+ required: true
13157
+ },
13158
+ stop: {
13159
+ type: Number,
13160
+ required: true
13161
+ },
13162
+ ...makeComponentProps()
13163
+ }, 'v-slider-track');
13124
13164
  const VSliderTrack = genericComponent()({
13125
13165
  name: 'VSliderTrack',
13126
- props: {
13127
- start: {
13128
- type: Number,
13129
- required: true
13130
- },
13131
- stop: {
13132
- type: Number,
13133
- required: true
13134
- },
13135
- ...makeComponentProps()
13136
- },
13166
+ props: makeVSliderTrackProps(),
13137
13167
  emits: {},
13138
13168
  setup(props, _ref) {
13139
13169
  let {
@@ -13239,17 +13269,18 @@ const VSliderTrack = genericComponent()({
13239
13269
 
13240
13270
  // Types
13241
13271
 
13272
+ const makeVSliderProps = propsFactory({
13273
+ ...makeFocusProps(),
13274
+ ...makeSliderProps(),
13275
+ ...makeVInputProps(),
13276
+ modelValue: {
13277
+ type: [Number, String],
13278
+ default: 0
13279
+ }
13280
+ }, 'v-slider');
13242
13281
  const VSlider = genericComponent()({
13243
13282
  name: 'VSlider',
13244
- props: {
13245
- ...makeFocusProps(),
13246
- ...makeSliderProps(),
13247
- ...makeVInputProps(),
13248
- modelValue: {
13249
- type: [Number, String],
13250
- default: 0
13251
- }
13252
- },
13283
+ props: makeVSliderProps(),
13253
13284
  emits: {
13254
13285
  'update:focused': value => true,
13255
13286
  'update:modelValue': v => true,
@@ -13262,6 +13293,9 @@ const VSlider = genericComponent()({
13262
13293
  emit
13263
13294
  } = _ref;
13264
13295
  const thumbContainerRef = ref();
13296
+ const {
13297
+ rtlClasses
13298
+ } = useRtl();
13265
13299
  const steps = useSteps(props);
13266
13300
  const model = useProxiedModel(props, 'modelValue', undefined, v => {
13267
13301
  const value = typeof v === 'string' ? parseFloat(v) : v == null ? steps.min.value : v;
@@ -13315,7 +13349,7 @@ const VSlider = genericComponent()({
13315
13349
  'v-slider--focused': isFocused.value,
13316
13350
  'v-slider--pressed': mousePressed.value,
13317
13351
  'v-slider--disabled': props.disabled
13318
- }, props.class],
13352
+ }, rtlClasses.value, props.class],
13319
13353
  "style": props.style
13320
13354
  }, inputProps, {
13321
13355
  "focused": isFocused.value
@@ -13372,16 +13406,17 @@ const VSlider = genericComponent()({
13372
13406
 
13373
13407
  // Types
13374
13408
 
13409
+ const makeVColorPickerPreviewProps = propsFactory({
13410
+ color: {
13411
+ type: Object
13412
+ },
13413
+ disabled: Boolean,
13414
+ hideAlpha: Boolean,
13415
+ ...makeComponentProps()
13416
+ }, 'v-color-picker-preview');
13375
13417
  const VColorPickerPreview = defineComponent({
13376
13418
  name: 'VColorPickerPreview',
13377
- props: {
13378
- color: {
13379
- type: Object
13380
- },
13381
- disabled: Boolean,
13382
- hideAlpha: Boolean,
13383
- ...makeComponentProps()
13384
- },
13419
+ props: makeVColorPickerPreviewProps(),
13385
13420
  emits: {
13386
13421
  'update:color': color => true
13387
13422
  },
@@ -13759,6 +13794,16 @@ var colors = Object.freeze({
13759
13794
 
13760
13795
  // Types
13761
13796
 
13797
+ const makeVColorPickerSwatchesProps = propsFactory({
13798
+ swatches: {
13799
+ type: Array,
13800
+ default: () => parseDefaultColors(colors)
13801
+ },
13802
+ disabled: Boolean,
13803
+ color: Object,
13804
+ maxHeight: [Number, String],
13805
+ ...makeComponentProps()
13806
+ }, 'v-color-picker-swatches');
13762
13807
  function parseDefaultColors(colors) {
13763
13808
  return Object.keys(colors).map(key => {
13764
13809
  const color = colors[key];
@@ -13767,16 +13812,7 @@ function parseDefaultColors(colors) {
13767
13812
  }
13768
13813
  const VColorPickerSwatches = defineComponent({
13769
13814
  name: 'VColorPickerSwatches',
13770
- props: {
13771
- swatches: {
13772
- type: Array,
13773
- default: () => parseDefaultColors(colors)
13774
- },
13775
- disabled: Boolean,
13776
- color: Object,
13777
- maxHeight: [Number, String],
13778
- ...makeComponentProps()
13779
- },
13815
+ props: makeVColorPickerSwatchesProps(),
13780
13816
  emits: {
13781
13817
  'update:color': color => true
13782
13818
  },
@@ -13812,44 +13848,45 @@ const VColorPickerSwatches = defineComponent({
13812
13848
 
13813
13849
  // Types
13814
13850
 
13851
+ const makeVPickerProps = propsFactory({
13852
+ canvasHeight: {
13853
+ type: [String, Number],
13854
+ default: 150
13855
+ },
13856
+ disabled: Boolean,
13857
+ dotSize: {
13858
+ type: [Number, String],
13859
+ default: 10
13860
+ },
13861
+ hideCanvas: Boolean,
13862
+ hideSliders: Boolean,
13863
+ hideInputs: Boolean,
13864
+ mode: {
13865
+ type: String,
13866
+ default: 'rgba',
13867
+ validator: v => Object.keys(modes).includes(v)
13868
+ },
13869
+ modes: {
13870
+ type: Array,
13871
+ default: () => Object.keys(modes),
13872
+ validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
13873
+ },
13874
+ showSwatches: Boolean,
13875
+ swatches: Array,
13876
+ swatchesMaxHeight: {
13877
+ type: [Number, String],
13878
+ default: 150
13879
+ },
13880
+ modelValue: {
13881
+ type: [Object, String]
13882
+ },
13883
+ ...omit(makeVSheetProps({
13884
+ width: 300
13885
+ }), ['height', 'location', 'minHeight', 'maxHeight', 'minWidth', 'maxWidth'])
13886
+ }, 'v-color-picker');
13815
13887
  const VColorPicker = defineComponent({
13816
13888
  name: 'VColorPicker',
13817
- props: {
13818
- canvasHeight: {
13819
- type: [String, Number],
13820
- default: 150
13821
- },
13822
- disabled: Boolean,
13823
- dotSize: {
13824
- type: [Number, String],
13825
- default: 10
13826
- },
13827
- hideCanvas: Boolean,
13828
- hideSliders: Boolean,
13829
- hideInputs: Boolean,
13830
- mode: {
13831
- type: String,
13832
- default: 'rgba',
13833
- validator: v => Object.keys(modes).includes(v)
13834
- },
13835
- modes: {
13836
- type: Array,
13837
- default: () => Object.keys(modes),
13838
- validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
13839
- },
13840
- showSwatches: Boolean,
13841
- swatches: Array,
13842
- swatchesMaxHeight: {
13843
- type: [Number, String],
13844
- default: 150
13845
- },
13846
- modelValue: {
13847
- type: [Object, String]
13848
- },
13849
- ...omit(makeVSheetProps({
13850
- width: 300
13851
- }), ['height', 'location', 'minHeight', 'maxHeight', 'minWidth', 'maxWidth'])
13852
- },
13889
+ props: makeVPickerProps(),
13853
13890
  emits: {
13854
13891
  'update:modelValue': color => true,
13855
13892
  'update:mode': mode => true
@@ -13872,6 +13909,9 @@ const VColorPicker = defineComponent({
13872
13909
  if (!v) return null;
13873
13910
  return extractColor(v, props.modelValue);
13874
13911
  });
13912
+ const {
13913
+ rtlClasses
13914
+ } = useRtl();
13875
13915
  const updateColor = hsva => {
13876
13916
  currentColor.value = hsva;
13877
13917
  lastPickedColor.value = hsva;
@@ -13892,7 +13932,7 @@ const VColorPicker = defineComponent({
13892
13932
  "rounded": props.rounded,
13893
13933
  "elevation": props.elevation,
13894
13934
  "theme": props.theme,
13895
- "class": ['v-color-picker', props.class],
13935
+ "class": ['v-color-picker', rtlClasses.value, props.class],
13896
13936
  "style": [{
13897
13937
  '--v-color-picker-color-hsv': HSVtoCSS({
13898
13938
  ...(currentColor.value ?? nullColor),
@@ -13954,26 +13994,27 @@ function highlightResult(text, matches, length) {
13954
13994
  "class": "v-combobox__unmask"
13955
13995
  }, [text.substr(matches + length)])]) : text;
13956
13996
  }
13997
+ const makeVComboboxProps = propsFactory({
13998
+ // TODO: implement post keyboard support
13999
+ // autoSelectFirst: Boolean,
14000
+ delimiters: Array,
14001
+ ...makeFilterProps({
14002
+ filterKeys: ['title']
14003
+ }),
14004
+ ...makeSelectProps({
14005
+ hideNoData: true,
14006
+ returnObject: true
14007
+ }),
14008
+ ...omit(makeVTextFieldProps({
14009
+ modelValue: null
14010
+ }), ['validationValue', 'dirty', 'appendInnerIcon']),
14011
+ ...makeTransitionProps({
14012
+ transition: false
14013
+ })
14014
+ }, 'v-combobox');
13957
14015
  const VCombobox = genericComponent()({
13958
14016
  name: 'VCombobox',
13959
- props: {
13960
- // TODO: implement post keyboard support
13961
- // autoSelectFirst: Boolean,
13962
- delimiters: Array,
13963
- ...makeFilterProps({
13964
- filterKeys: ['title']
13965
- }),
13966
- ...makeSelectProps({
13967
- hideNoData: true,
13968
- returnObject: true
13969
- }),
13970
- ...omit(makeVTextFieldProps({
13971
- modelValue: null
13972
- }), ['validationValue', 'dirty', 'appendInnerIcon']),
13973
- ...makeTransitionProps({
13974
- transition: false
13975
- })
13976
- },
14017
+ props: makeVComboboxProps(),
13977
14018
  emits: {
13978
14019
  'update:focused': focused => true,
13979
14020
  'update:modelValue': val => true,
@@ -13989,8 +14030,8 @@ const VCombobox = genericComponent()({
13989
14030
  t
13990
14031
  } = useLocale();
13991
14032
  const vTextFieldRef = ref();
13992
- const isFocused = ref(false);
13993
- const isPristine = ref(true);
14033
+ const isFocused = shallowRef(false);
14034
+ const isPristine = shallowRef(true);
13994
14035
  const vMenuRef = ref();
13995
14036
  const _menu = useProxiedModel(props, 'menu');
13996
14037
  const menu = computed({
@@ -14000,7 +14041,7 @@ const VCombobox = genericComponent()({
14000
14041
  _menu.value = v;
14001
14042
  }
14002
14043
  });
14003
- const selectionIndex = ref(-1);
14044
+ const selectionIndex = shallowRef(-1);
14004
14045
  let cleared = false;
14005
14046
  const color = computed(() => vTextFieldRef.value?.color);
14006
14047
  const {
@@ -14017,7 +14058,7 @@ const VCombobox = genericComponent()({
14017
14058
  return props.multiple ? transformed : transformed[0] ?? null;
14018
14059
  });
14019
14060
  const form = useForm();
14020
- const _search = ref(!props.multiple ? model.value[0]?.title ?? '' : '');
14061
+ const _search = shallowRef(!props.multiple ? model.value[0]?.title ?? '' : '');
14021
14062
  const search = computed({
14022
14063
  get: () => {
14023
14064
  return _search.value;
@@ -14143,8 +14184,11 @@ const VCombobox = genericComponent()({
14143
14184
  }
14144
14185
  }
14145
14186
  function onAfterLeave() {
14146
- if (isFocused.value) isPristine.value = true;
14147
- }
14187
+ if (isFocused.value) {
14188
+ isPristine.value = true;
14189
+ vTextFieldRef.value?.focus();
14190
+ }
14191
+ }
14148
14192
  function select(item) {
14149
14193
  if (props.multiple) {
14150
14194
  const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
@@ -14170,23 +14214,16 @@ const VCombobox = genericComponent()({
14170
14214
  function onFocusin(e) {
14171
14215
  isFocused.value = true;
14172
14216
  }
14173
- function onFocusout(e) {
14174
- if (e.relatedTarget == null) {
14175
- vTextFieldRef.value?.focus();
14176
- }
14177
- }
14178
14217
  watch(filteredItems, val => {
14179
14218
  if (!val.length && props.hideNoData) menu.value = false;
14180
14219
  });
14181
14220
  watch(isFocused, val => {
14182
- if (val) {
14183
- selectionIndex.value = -1;
14184
- } else {
14185
- menu.value = false;
14186
- if (!props.multiple || !search.value) return;
14187
- model.value = [...model.value, transformItem$1(props, search.value)];
14188
- search.value = '';
14189
- }
14221
+ if (val) return;
14222
+ selectionIndex.value = -1;
14223
+ menu.value = false;
14224
+ if (!props.multiple || !search.value) return;
14225
+ model.value = [...model.value, transformItem$1(props, search.value)];
14226
+ search.value = '';
14190
14227
  });
14191
14228
  useRender(() => {
14192
14229
  const hasChips = !!(props.chips || slots.chip);
@@ -14237,8 +14274,7 @@ const VCombobox = genericComponent()({
14237
14274
  "selected": selected.value,
14238
14275
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
14239
14276
  "onMousedown": e => e.preventDefault(),
14240
- "onFocusin": onFocusin,
14241
- "onFocusout": onFocusout
14277
+ "onFocusin": onFocusin
14242
14278
  }, {
14243
14279
  default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
14244
14280
  "title": t(props.noDataText)
@@ -14333,24 +14369,25 @@ const VCombobox = genericComponent()({
14333
14369
 
14334
14370
  // Types
14335
14371
 
14372
+ const makeVDialogProps = propsFactory({
14373
+ fullscreen: Boolean,
14374
+ retainFocus: {
14375
+ type: Boolean,
14376
+ default: true
14377
+ },
14378
+ scrollable: Boolean,
14379
+ ...makeVOverlayProps({
14380
+ origin: 'center center',
14381
+ scrollStrategy: 'block',
14382
+ transition: {
14383
+ component: VDialogTransition
14384
+ },
14385
+ zIndex: 2400
14386
+ })
14387
+ }, 'v-dialog');
14336
14388
  const VDialog = genericComponent()({
14337
14389
  name: 'VDialog',
14338
- props: {
14339
- fullscreen: Boolean,
14340
- retainFocus: {
14341
- type: Boolean,
14342
- default: true
14343
- },
14344
- scrollable: Boolean,
14345
- ...makeVOverlayProps({
14346
- origin: 'center center',
14347
- scrollStrategy: 'block',
14348
- transition: {
14349
- component: VDialogTransition
14350
- },
14351
- zIndex: 2400
14352
- })
14353
- },
14390
+ props: makeVDialogProps(),
14354
14391
  emits: {
14355
14392
  'update:modelValue': value => true
14356
14393
  },
@@ -14444,21 +14481,22 @@ const VDialog = genericComponent()({
14444
14481
 
14445
14482
  const VExpansionPanelSymbol = Symbol.for('vuetify:v-expansion-panel');
14446
14483
  const allowedVariants = ['default', 'accordion', 'inset', 'popout'];
14484
+ const makeVExpansionPanelsProps = propsFactory({
14485
+ color: String,
14486
+ variant: {
14487
+ type: String,
14488
+ default: 'default',
14489
+ validator: v => allowedVariants.includes(v)
14490
+ },
14491
+ readonly: Boolean,
14492
+ ...makeComponentProps(),
14493
+ ...makeGroupProps(),
14494
+ ...makeTagProps(),
14495
+ ...makeThemeProps()
14496
+ }, 'v-expansion-panel');
14447
14497
  const VExpansionPanels = genericComponent()({
14448
14498
  name: 'VExpansionPanels',
14449
- props: {
14450
- color: String,
14451
- variant: {
14452
- type: String,
14453
- default: 'default',
14454
- validator: v => allowedVariants.includes(v)
14455
- },
14456
- readonly: Boolean,
14457
- ...makeComponentProps(),
14458
- ...makeGroupProps(),
14459
- ...makeTagProps(),
14460
- ...makeThemeProps()
14461
- },
14499
+ props: makeVExpansionPanelsProps(),
14462
14500
  emits: {
14463
14501
  'update:modelValue': val => true
14464
14502
  },
@@ -14502,17 +14540,15 @@ const makeVExpansionPanelTitleProps = propsFactory({
14502
14540
  type: [Boolean, Object],
14503
14541
  default: false
14504
14542
  },
14505
- readonly: Boolean
14543
+ readonly: Boolean,
14544
+ ...makeComponentProps()
14506
14545
  }, 'v-expansion-panel-title');
14507
14546
  const VExpansionPanelTitle = genericComponent()({
14508
14547
  name: 'VExpansionPanelTitle',
14509
14548
  directives: {
14510
14549
  Ripple
14511
14550
  },
14512
- props: {
14513
- ...makeComponentProps(),
14514
- ...makeVExpansionPanelTitleProps()
14515
- },
14551
+ props: makeVExpansionPanelTitleProps(),
14516
14552
  setup(props, _ref) {
14517
14553
  let {
14518
14554
  slots
@@ -14551,12 +14587,13 @@ const VExpansionPanelTitle = genericComponent()({
14551
14587
  }
14552
14588
  });
14553
14589
 
14590
+ const makeVExpansionPanelTextProps = propsFactory({
14591
+ ...makeComponentProps(),
14592
+ ...makeLazyProps()
14593
+ }, 'v-expansion-panel-text');
14554
14594
  const VExpansionPanelText = genericComponent()({
14555
14595
  name: 'VExpansionPanelText',
14556
- props: {
14557
- ...makeComponentProps(),
14558
- ...makeLazyProps()
14559
- },
14596
+ props: makeVExpansionPanelTextProps(),
14560
14597
  setup(props, _ref) {
14561
14598
  let {
14562
14599
  slots
@@ -14581,20 +14618,21 @@ const VExpansionPanelText = genericComponent()({
14581
14618
  }
14582
14619
  });
14583
14620
 
14621
+ const makeVExpansionPanelProps = propsFactory({
14622
+ title: String,
14623
+ text: String,
14624
+ bgColor: String,
14625
+ ...makeComponentProps(),
14626
+ ...makeElevationProps(),
14627
+ ...makeGroupItemProps(),
14628
+ ...makeLazyProps(),
14629
+ ...makeRoundedProps(),
14630
+ ...makeTagProps(),
14631
+ ...makeVExpansionPanelTitleProps()
14632
+ }, 'v-expansion-panel');
14584
14633
  const VExpansionPanel = genericComponent()({
14585
14634
  name: 'VExpansionPanel',
14586
- props: {
14587
- title: String,
14588
- text: String,
14589
- bgColor: String,
14590
- ...makeComponentProps(),
14591
- ...makeElevationProps(),
14592
- ...makeGroupItemProps(),
14593
- ...makeLazyProps(),
14594
- ...makeRoundedProps(),
14595
- ...makeTagProps(),
14596
- ...makeVExpansionPanelTitleProps()
14597
- },
14635
+ props: makeVExpansionPanelProps(),
14598
14636
  emits: {
14599
14637
  'group:selected': val => true
14600
14638
  },
@@ -14637,8 +14675,7 @@ const VExpansionPanel = genericComponent()({
14637
14675
  'v-expansion-panel--after-active': isAfterSelected.value,
14638
14676
  'v-expansion-panel--disabled': isDisabled.value
14639
14677
  }, roundedClasses.value, backgroundColorClasses.value, props.class],
14640
- "style": [backgroundColorStyles.value, props.style],
14641
- "aria-expanded": groupItem.isSelected.value
14678
+ "style": [backgroundColorStyles.value, props.style]
14642
14679
  }, {
14643
14680
  default: () => [createVNode("div", {
14644
14681
  "class": ['v-expansion-panel__shadow', ...elevationClasses.value]
@@ -14665,42 +14702,43 @@ const VExpansionPanel = genericComponent()({
14665
14702
 
14666
14703
  // Types
14667
14704
 
14705
+ const makeVFileInputProps = propsFactory({
14706
+ chips: Boolean,
14707
+ counter: Boolean,
14708
+ counterSizeString: {
14709
+ type: String,
14710
+ default: '$vuetify.fileInput.counterSize'
14711
+ },
14712
+ counterString: {
14713
+ type: String,
14714
+ default: '$vuetify.fileInput.counter'
14715
+ },
14716
+ multiple: Boolean,
14717
+ showSize: {
14718
+ type: [Boolean, Number],
14719
+ default: false,
14720
+ validator: v => {
14721
+ return typeof v === 'boolean' || [1000, 1024].includes(v);
14722
+ }
14723
+ },
14724
+ ...makeVInputProps({
14725
+ prependIcon: '$file'
14726
+ }),
14727
+ modelValue: {
14728
+ type: Array,
14729
+ default: () => [],
14730
+ validator: val => {
14731
+ return wrapInArray(val).every(v => v != null && typeof v === 'object');
14732
+ }
14733
+ },
14734
+ ...makeVFieldProps({
14735
+ clearable: true
14736
+ })
14737
+ }, 'v-file-input');
14668
14738
  const VFileInput = genericComponent()({
14669
14739
  name: 'VFileInput',
14670
14740
  inheritAttrs: false,
14671
- props: {
14672
- chips: Boolean,
14673
- counter: Boolean,
14674
- counterSizeString: {
14675
- type: String,
14676
- default: '$vuetify.fileInput.counterSize'
14677
- },
14678
- counterString: {
14679
- type: String,
14680
- default: '$vuetify.fileInput.counter'
14681
- },
14682
- multiple: Boolean,
14683
- showSize: {
14684
- type: [Boolean, Number],
14685
- default: false,
14686
- validator: v => {
14687
- return typeof v === 'boolean' || [1000, 1024].includes(v);
14688
- }
14689
- },
14690
- ...makeVInputProps({
14691
- prependIcon: '$file'
14692
- }),
14693
- modelValue: {
14694
- type: Array,
14695
- default: () => [],
14696
- validator: val => {
14697
- return wrapInArray(val).every(v => v != null && typeof v === 'object');
14698
- }
14699
- },
14700
- ...makeVFieldProps({
14701
- clearable: true
14702
- })
14703
- },
14741
+ props: makeVFileInputProps(),
14704
14742
  emits: {
14705
14743
  'click:control': e => true,
14706
14744
  'mousedown:control': e => true,
@@ -14871,25 +14909,26 @@ const VFileInput = genericComponent()({
14871
14909
  }
14872
14910
  });
14873
14911
 
14912
+ const makeVFooterProps = propsFactory({
14913
+ app: Boolean,
14914
+ color: String,
14915
+ height: {
14916
+ type: [Number, String],
14917
+ default: 'auto'
14918
+ },
14919
+ ...makeBorderProps(),
14920
+ ...makeComponentProps(),
14921
+ ...makeElevationProps(),
14922
+ ...makeLayoutItemProps(),
14923
+ ...makeRoundedProps(),
14924
+ ...makeTagProps({
14925
+ tag: 'footer'
14926
+ }),
14927
+ ...makeThemeProps()
14928
+ }, 'v-footer');
14874
14929
  const VFooter = genericComponent()({
14875
14930
  name: 'VFooter',
14876
- props: {
14877
- app: Boolean,
14878
- color: String,
14879
- height: {
14880
- type: [Number, String],
14881
- default: 'auto'
14882
- },
14883
- ...makeBorderProps(),
14884
- ...makeComponentProps(),
14885
- ...makeElevationProps(),
14886
- ...makeLayoutItemProps(),
14887
- ...makeRoundedProps(),
14888
- ...makeTagProps({
14889
- tag: 'footer'
14890
- }),
14891
- ...makeThemeProps()
14892
- },
14931
+ props: makeVFooterProps(),
14893
14932
  setup(props, _ref) {
14894
14933
  let {
14895
14934
  slots
@@ -14910,7 +14949,7 @@ const VFooter = genericComponent()({
14910
14949
  const {
14911
14950
  roundedClasses
14912
14951
  } = useRounded(props);
14913
- const autoHeight = ref(32);
14952
+ const autoHeight = shallowRef(32);
14914
14953
  const {
14915
14954
  resizeRef
14916
14955
  } = useResizeObserver(entries => {
@@ -14940,12 +14979,13 @@ const VFooter = genericComponent()({
14940
14979
 
14941
14980
  // Types
14942
14981
 
14982
+ const makeVFormProps = propsFactory({
14983
+ ...makeComponentProps(),
14984
+ ...makeFormProps()
14985
+ }, 'v-form');
14943
14986
  const VForm = genericComponent()({
14944
14987
  name: 'VForm',
14945
- props: {
14946
- ...makeComponentProps(),
14947
- ...makeFormProps()
14948
- },
14988
+ props: makeVFormProps(),
14949
14989
  emits: {
14950
14990
  'update:modelValue': val => true,
14951
14991
  submit: e => true
@@ -14992,24 +15032,28 @@ const VForm = genericComponent()({
14992
15032
  }
14993
15033
  });
14994
15034
 
15035
+ const makeVContainerProps = propsFactory({
15036
+ fluid: {
15037
+ type: Boolean,
15038
+ default: false
15039
+ },
15040
+ ...makeComponentProps(),
15041
+ ...makeTagProps()
15042
+ }, 'v-container');
14995
15043
  const VContainer = genericComponent()({
14996
15044
  name: 'VContainer',
14997
- props: {
14998
- fluid: {
14999
- type: Boolean,
15000
- default: false
15001
- },
15002
- ...makeComponentProps(),
15003
- ...makeTagProps()
15004
- },
15045
+ props: makeVContainerProps(),
15005
15046
  setup(props, _ref) {
15006
15047
  let {
15007
15048
  slots
15008
15049
  } = _ref;
15050
+ const {
15051
+ rtlClasses
15052
+ } = useRtl();
15009
15053
  useRender(() => createVNode(props.tag, {
15010
15054
  "class": ['v-container', {
15011
15055
  'v-container--fluid': props.fluid
15012
- }, props.class],
15056
+ }, rtlClasses.value, props.class],
15013
15057
  "style": props.style
15014
15058
  }, slots));
15015
15059
  return {};
@@ -15078,32 +15122,33 @@ function breakpointClass$1(type, prop, val) {
15078
15122
  return className.toLowerCase();
15079
15123
  }
15080
15124
  const ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch'];
15125
+ const makeVColProps = propsFactory({
15126
+ cols: {
15127
+ type: [Boolean, String, Number],
15128
+ default: false
15129
+ },
15130
+ ...breakpointProps,
15131
+ offset: {
15132
+ type: [String, Number],
15133
+ default: null
15134
+ },
15135
+ ...offsetProps,
15136
+ order: {
15137
+ type: [String, Number],
15138
+ default: null
15139
+ },
15140
+ ...orderProps,
15141
+ alignSelf: {
15142
+ type: String,
15143
+ default: null,
15144
+ validator: str => ALIGN_SELF_VALUES.includes(str)
15145
+ },
15146
+ ...makeComponentProps(),
15147
+ ...makeTagProps()
15148
+ }, 'v-col');
15081
15149
  const VCol = genericComponent()({
15082
15150
  name: 'VCol',
15083
- props: {
15084
- cols: {
15085
- type: [Boolean, String, Number],
15086
- default: false
15087
- },
15088
- ...breakpointProps,
15089
- offset: {
15090
- type: [String, Number],
15091
- default: null
15092
- },
15093
- ...offsetProps,
15094
- order: {
15095
- type: [String, Number],
15096
- default: null
15097
- },
15098
- ...orderProps,
15099
- alignSelf: {
15100
- type: String,
15101
- default: null,
15102
- validator: str => ALIGN_SELF_VALUES.includes(str)
15103
- },
15104
- ...makeComponentProps(),
15105
- ...makeTagProps()
15106
- },
15151
+ props: makeVColProps(),
15107
15152
  setup(props, _ref) {
15108
15153
  let {
15109
15154
  slots
@@ -15196,32 +15241,33 @@ function breakpointClass(type, prop, val) {
15196
15241
  className += `-${val}`;
15197
15242
  return className.toLowerCase();
15198
15243
  }
15244
+ const makeVRowProps = propsFactory({
15245
+ dense: Boolean,
15246
+ noGutters: Boolean,
15247
+ align: {
15248
+ type: String,
15249
+ default: null,
15250
+ validator: alignValidator
15251
+ },
15252
+ ...alignProps,
15253
+ justify: {
15254
+ type: String,
15255
+ default: null,
15256
+ validator: justifyValidator
15257
+ },
15258
+ ...justifyProps,
15259
+ alignContent: {
15260
+ type: String,
15261
+ default: null,
15262
+ validator: alignContentValidator
15263
+ },
15264
+ ...alignContentProps,
15265
+ ...makeComponentProps(),
15266
+ ...makeTagProps()
15267
+ }, 'v-row');
15199
15268
  const VRow = genericComponent()({
15200
15269
  name: 'VRow',
15201
- props: {
15202
- dense: Boolean,
15203
- noGutters: Boolean,
15204
- align: {
15205
- type: String,
15206
- default: null,
15207
- validator: alignValidator
15208
- },
15209
- ...alignProps,
15210
- justify: {
15211
- type: String,
15212
- default: null,
15213
- validator: justifyValidator
15214
- },
15215
- ...justifyProps,
15216
- alignContent: {
15217
- type: String,
15218
- default: null,
15219
- validator: alignContentValidator
15220
- },
15221
- ...alignContentProps,
15222
- ...makeComponentProps(),
15223
- ...makeTagProps()
15224
- },
15270
+ props: makeVRowProps(),
15225
15271
  setup(props, _ref) {
15226
15272
  let {
15227
15273
  slots
@@ -15257,16 +15303,17 @@ const VRow = genericComponent()({
15257
15303
  const VSpacer = createSimpleFunctional('flex-grow-1', 'div', 'VSpacer');
15258
15304
 
15259
15305
  // Composables
15306
+ const makeVHoverProps = propsFactory({
15307
+ disabled: Boolean,
15308
+ modelValue: {
15309
+ type: Boolean,
15310
+ default: undefined
15311
+ },
15312
+ ...makeDelayProps()
15313
+ }, 'v-hover');
15260
15314
  const VHover = genericComponent()({
15261
15315
  name: 'VHover',
15262
- props: {
15263
- disabled: Boolean,
15264
- modelValue: {
15265
- type: Boolean,
15266
- default: undefined
15267
- },
15268
- ...makeDelayProps()
15269
- },
15316
+ props: makeVHoverProps(),
15270
15317
  emits: {
15271
15318
  'update:modelValue': value => true
15272
15319
  },
@@ -15290,16 +15337,17 @@ const VHover = genericComponent()({
15290
15337
  });
15291
15338
 
15292
15339
  const VItemGroupSymbol = Symbol.for('vuetify:v-item-group');
15340
+ const makeVItemGroupProps = propsFactory({
15341
+ ...makeComponentProps(),
15342
+ ...makeGroupProps({
15343
+ selectedClass: 'v-item--selected'
15344
+ }),
15345
+ ...makeTagProps(),
15346
+ ...makeThemeProps()
15347
+ }, 'v-item-group');
15293
15348
  const VItemGroup = genericComponent()({
15294
15349
  name: 'VItemGroup',
15295
- props: {
15296
- ...makeComponentProps(),
15297
- ...makeGroupProps({
15298
- selectedClass: 'v-item--selected'
15299
- }),
15300
- ...makeTagProps(),
15301
- ...makeThemeProps()
15302
- },
15350
+ props: makeVItemGroupProps(),
15303
15351
  emits: {
15304
15352
  'update:modelValue': value => true
15305
15353
  },
@@ -15367,12 +15415,13 @@ const VItem = genericComponent()({
15367
15415
 
15368
15416
  const VKbd = createSimpleFunctional('v-kbd');
15369
15417
 
15418
+ const makeVLayoutProps = propsFactory({
15419
+ ...makeComponentProps(),
15420
+ ...makeLayoutProps()
15421
+ }, 'v-layout');
15370
15422
  const VLayout = genericComponent()({
15371
15423
  name: 'VLayout',
15372
- props: {
15373
- ...makeComponentProps(),
15374
- ...makeLayoutProps()
15375
- },
15424
+ props: makeVLayoutProps(),
15376
15425
  setup(props, _ref) {
15377
15426
  let {
15378
15427
  slots
@@ -15398,21 +15447,22 @@ const VLayout = genericComponent()({
15398
15447
 
15399
15448
  // Types
15400
15449
 
15450
+ const makeVLayoutItemProps = propsFactory({
15451
+ position: {
15452
+ type: String,
15453
+ required: true
15454
+ },
15455
+ size: {
15456
+ type: [Number, String],
15457
+ default: 300
15458
+ },
15459
+ modelValue: Boolean,
15460
+ ...makeComponentProps(),
15461
+ ...makeLayoutItemProps()
15462
+ }, 'v-layout-item');
15401
15463
  const VLayoutItem = genericComponent()({
15402
15464
  name: 'VLayoutItem',
15403
- props: {
15404
- position: {
15405
- type: String,
15406
- required: true
15407
- },
15408
- size: {
15409
- type: [Number, String],
15410
- default: 300
15411
- },
15412
- modelValue: Boolean,
15413
- ...makeComponentProps(),
15414
- ...makeLayoutItemProps()
15415
- },
15465
+ props: makeVLayoutItemProps(),
15416
15466
  setup(props, _ref) {
15417
15467
  let {
15418
15468
  slots
@@ -15437,30 +15487,31 @@ const VLayoutItem = genericComponent()({
15437
15487
 
15438
15488
  // Types
15439
15489
 
15490
+ const makeVLazyProps = propsFactory({
15491
+ modelValue: Boolean,
15492
+ options: {
15493
+ type: Object,
15494
+ // For more information on types, navigate to:
15495
+ // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
15496
+ default: () => ({
15497
+ root: undefined,
15498
+ rootMargin: undefined,
15499
+ threshold: undefined
15500
+ })
15501
+ },
15502
+ ...makeComponentProps(),
15503
+ ...makeDimensionProps(),
15504
+ ...makeTagProps(),
15505
+ ...makeTransitionProps({
15506
+ transition: 'fade-transition'
15507
+ })
15508
+ }, 'v-lazy');
15440
15509
  const VLazy = genericComponent()({
15441
15510
  name: 'VLazy',
15442
15511
  directives: {
15443
15512
  intersect: Intersect
15444
15513
  },
15445
- props: {
15446
- modelValue: Boolean,
15447
- options: {
15448
- type: Object,
15449
- // For more information on types, navigate to:
15450
- // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
15451
- default: () => ({
15452
- root: undefined,
15453
- rootMargin: undefined,
15454
- threshold: undefined
15455
- })
15456
- },
15457
- ...makeComponentProps(),
15458
- ...makeDimensionProps(),
15459
- ...makeTagProps(),
15460
- ...makeTransitionProps({
15461
- transition: 'fade-transition'
15462
- })
15463
- },
15514
+ props: makeVLazyProps(),
15464
15515
  emits: {
15465
15516
  'update:modelValue': value => true
15466
15517
  },
@@ -15494,18 +15545,19 @@ const VLazy = genericComponent()({
15494
15545
  }
15495
15546
  });
15496
15547
 
15548
+ const makeVLocaleProviderProps = propsFactory({
15549
+ locale: String,
15550
+ fallbackLocale: String,
15551
+ messages: Object,
15552
+ rtl: {
15553
+ type: Boolean,
15554
+ default: undefined
15555
+ },
15556
+ ...makeComponentProps()
15557
+ }, 'v-locale-provider');
15497
15558
  const VLocaleProvider = genericComponent()({
15498
15559
  name: 'VLocaleProvider',
15499
- props: {
15500
- locale: String,
15501
- fallbackLocale: String,
15502
- messages: Object,
15503
- rtl: {
15504
- type: Boolean,
15505
- default: undefined
15506
- },
15507
- ...makeComponentProps()
15508
- },
15560
+ props: makeVLocaleProviderProps(),
15509
15561
  setup(props, _ref) {
15510
15562
  let {
15511
15563
  slots
@@ -15521,15 +15573,16 @@ const VLocaleProvider = genericComponent()({
15521
15573
  }
15522
15574
  });
15523
15575
 
15576
+ const makeVMainProps = propsFactory({
15577
+ scrollable: Boolean,
15578
+ ...makeComponentProps(),
15579
+ ...makeTagProps({
15580
+ tag: 'main'
15581
+ })
15582
+ }, 'v-main');
15524
15583
  const VMain = genericComponent()({
15525
15584
  name: 'VMain',
15526
- props: {
15527
- scrollable: Boolean,
15528
- ...makeComponentProps(),
15529
- ...makeTagProps({
15530
- tag: 'main'
15531
- })
15532
- },
15585
+ props: makeVMainProps(),
15533
15586
  setup(props, _ref) {
15534
15587
  let {
15535
15588
  slots
@@ -15554,14 +15607,18 @@ const VMain = genericComponent()({
15554
15607
  }
15555
15608
  });
15556
15609
 
15610
+ // Utilities
15611
+
15612
+ // Types
15613
+
15557
15614
  function useSticky(_ref) {
15558
15615
  let {
15559
15616
  rootEl,
15560
15617
  isSticky,
15561
15618
  layoutItemStyles
15562
15619
  } = _ref;
15563
- const isStuck = ref(false);
15564
- const stuckPosition = ref(0);
15620
+ const isStuck = shallowRef(false);
15621
+ const stuckPosition = shallowRef(0);
15565
15622
  const stickyStyles = computed(() => {
15566
15623
  const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;
15567
15624
  return [isSticky.value ? {
@@ -15597,18 +15654,24 @@ function useSticky(_ref) {
15597
15654
  const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0);
15598
15655
  const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);
15599
15656
  const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;
15657
+ const bodyScroll = parseFloat(getComputedStyle(rootEl.value).getPropertyValue('--v-body-scroll-y')) || 0;
15600
15658
  if (rect.height < window.innerHeight - layoutTop) {
15601
15659
  isStuck.value = 'top';
15602
15660
  stuckPosition.value = layoutTop;
15603
15661
  } else if (direction === 'up' && isStuck.value === 'bottom' || direction === 'down' && isStuck.value === 'top') {
15604
- stuckPosition.value = window.scrollY + rect.top;
15662
+ stuckPosition.value = window.scrollY + rect.top - bodyScroll;
15605
15663
  isStuck.value = true;
15606
15664
  } else if (direction === 'down' && bottom <= 0) {
15607
15665
  stuckPosition.value = 0;
15608
15666
  isStuck.value = 'bottom';
15609
15667
  } else if (direction === 'up' && top <= 0) {
15610
- stuckPosition.value = rect.top + top;
15611
- isStuck.value = 'top';
15668
+ if (!bodyScroll) {
15669
+ stuckPosition.value = rect.top + top;
15670
+ isStuck.value = 'top';
15671
+ } else if (isStuck.value !== 'top') {
15672
+ stuckPosition.value = -top + bodyScroll + layoutTop;
15673
+ isStuck.value = 'top';
15674
+ }
15612
15675
  }
15613
15676
  lastScrollTop = window.scrollY;
15614
15677
  }
@@ -15755,9 +15818,9 @@ function useTouch(_ref) {
15755
15818
  getVelocity
15756
15819
  } = useVelocity();
15757
15820
  let maybeDragging = false;
15758
- const isDragging = ref(false);
15759
- const dragProgress = ref(0);
15760
- const offset = ref(0);
15821
+ const isDragging = shallowRef(false);
15822
+ const dragProgress = shallowRef(0);
15823
+ const offset = shallowRef(0);
15761
15824
  let start;
15762
15825
  function getOffset(pos, active) {
15763
15826
  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);
@@ -15851,54 +15914,55 @@ function oops() {
15851
15914
  // Types
15852
15915
 
15853
15916
  const locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];
15917
+ const makeVNavigationDrawerProps = propsFactory({
15918
+ color: String,
15919
+ disableResizeWatcher: Boolean,
15920
+ disableRouteWatcher: Boolean,
15921
+ expandOnHover: Boolean,
15922
+ floating: Boolean,
15923
+ modelValue: {
15924
+ type: Boolean,
15925
+ default: null
15926
+ },
15927
+ permanent: Boolean,
15928
+ rail: {
15929
+ type: Boolean,
15930
+ default: null
15931
+ },
15932
+ railWidth: {
15933
+ type: [Number, String],
15934
+ default: 56
15935
+ },
15936
+ scrim: {
15937
+ type: [String, Boolean],
15938
+ default: true
15939
+ },
15940
+ image: String,
15941
+ temporary: Boolean,
15942
+ touchless: Boolean,
15943
+ width: {
15944
+ type: [Number, String],
15945
+ default: 256
15946
+ },
15947
+ location: {
15948
+ type: String,
15949
+ default: 'start',
15950
+ validator: value => locations.includes(value)
15951
+ },
15952
+ sticky: Boolean,
15953
+ ...makeBorderProps(),
15954
+ ...makeComponentProps(),
15955
+ ...makeElevationProps(),
15956
+ ...makeLayoutItemProps(),
15957
+ ...makeRoundedProps(),
15958
+ ...makeTagProps({
15959
+ tag: 'nav'
15960
+ }),
15961
+ ...makeThemeProps()
15962
+ }, 'v-navigation-drawer');
15854
15963
  const VNavigationDrawer = genericComponent()({
15855
15964
  name: 'VNavigationDrawer',
15856
- props: {
15857
- color: String,
15858
- disableResizeWatcher: Boolean,
15859
- disableRouteWatcher: Boolean,
15860
- expandOnHover: Boolean,
15861
- floating: Boolean,
15862
- modelValue: {
15863
- type: Boolean,
15864
- default: null
15865
- },
15866
- permanent: Boolean,
15867
- rail: {
15868
- type: Boolean,
15869
- default: null
15870
- },
15871
- railWidth: {
15872
- type: [Number, String],
15873
- default: 56
15874
- },
15875
- scrim: {
15876
- type: [String, Boolean],
15877
- default: true
15878
- },
15879
- image: String,
15880
- temporary: Boolean,
15881
- touchless: Boolean,
15882
- width: {
15883
- type: [Number, String],
15884
- default: 256
15885
- },
15886
- location: {
15887
- type: String,
15888
- default: 'start',
15889
- validator: value => locations.includes(value)
15890
- },
15891
- sticky: Boolean,
15892
- ...makeBorderProps(),
15893
- ...makeComponentProps(),
15894
- ...makeElevationProps(),
15895
- ...makeLayoutItemProps(),
15896
- ...makeRoundedProps(),
15897
- ...makeTagProps({
15898
- tag: 'nav'
15899
- }),
15900
- ...makeThemeProps()
15901
- },
15965
+ props: makeVNavigationDrawerProps(),
15902
15966
  emits: {
15903
15967
  'update:modelValue': val => true,
15904
15968
  'update:rail': val => true
@@ -15937,7 +16001,7 @@ const VNavigationDrawer = genericComponent()({
15937
16001
  ssrBootStyles
15938
16002
  } = useSsrBoot();
15939
16003
  const rootEl = ref();
15940
- const isHovering = ref(false);
16004
+ const isHovering = shallowRef(false);
15941
16005
  const width = computed(() => {
15942
16006
  return props.rail && props.expandOnHover && isHovering.value ? Number(props.width) : Number(props.rail ? props.railWidth : props.width);
15943
16007
  });
@@ -16096,88 +16160,89 @@ function useRefs() {
16096
16160
 
16097
16161
  // Types
16098
16162
 
16163
+ const makeVPaginationProps = propsFactory({
16164
+ activeColor: String,
16165
+ start: {
16166
+ type: [Number, String],
16167
+ default: 1
16168
+ },
16169
+ modelValue: {
16170
+ type: Number,
16171
+ default: props => props.start
16172
+ },
16173
+ disabled: Boolean,
16174
+ length: {
16175
+ type: [Number, String],
16176
+ default: 1,
16177
+ validator: val => val % 1 === 0
16178
+ },
16179
+ totalVisible: [Number, String],
16180
+ firstIcon: {
16181
+ type: IconValue,
16182
+ default: '$first'
16183
+ },
16184
+ prevIcon: {
16185
+ type: IconValue,
16186
+ default: '$prev'
16187
+ },
16188
+ nextIcon: {
16189
+ type: IconValue,
16190
+ default: '$next'
16191
+ },
16192
+ lastIcon: {
16193
+ type: IconValue,
16194
+ default: '$last'
16195
+ },
16196
+ ariaLabel: {
16197
+ type: String,
16198
+ default: '$vuetify.pagination.ariaLabel.root'
16199
+ },
16200
+ pageAriaLabel: {
16201
+ type: String,
16202
+ default: '$vuetify.pagination.ariaLabel.page'
16203
+ },
16204
+ currentPageAriaLabel: {
16205
+ type: String,
16206
+ default: '$vuetify.pagination.ariaLabel.currentPage'
16207
+ },
16208
+ firstAriaLabel: {
16209
+ type: String,
16210
+ default: '$vuetify.pagination.ariaLabel.first'
16211
+ },
16212
+ previousAriaLabel: {
16213
+ type: String,
16214
+ default: '$vuetify.pagination.ariaLabel.previous'
16215
+ },
16216
+ nextAriaLabel: {
16217
+ type: String,
16218
+ default: '$vuetify.pagination.ariaLabel.next'
16219
+ },
16220
+ lastAriaLabel: {
16221
+ type: String,
16222
+ default: '$vuetify.pagination.ariaLabel.last'
16223
+ },
16224
+ ellipsis: {
16225
+ type: String,
16226
+ default: '...'
16227
+ },
16228
+ showFirstLastPage: Boolean,
16229
+ ...makeBorderProps(),
16230
+ ...makeComponentProps(),
16231
+ ...makeDensityProps(),
16232
+ ...makeElevationProps(),
16233
+ ...makeRoundedProps(),
16234
+ ...makeSizeProps(),
16235
+ ...makeTagProps({
16236
+ tag: 'nav'
16237
+ }),
16238
+ ...makeThemeProps(),
16239
+ ...makeVariantProps({
16240
+ variant: 'text'
16241
+ })
16242
+ }, 'v-pagination');
16099
16243
  const VPagination = genericComponent()({
16100
16244
  name: 'VPagination',
16101
- props: {
16102
- activeColor: String,
16103
- start: {
16104
- type: [Number, String],
16105
- default: 1
16106
- },
16107
- modelValue: {
16108
- type: Number,
16109
- default: props => props.start
16110
- },
16111
- disabled: Boolean,
16112
- length: {
16113
- type: [Number, String],
16114
- default: 1,
16115
- validator: val => val % 1 === 0
16116
- },
16117
- totalVisible: [Number, String],
16118
- firstIcon: {
16119
- type: IconValue,
16120
- default: '$first'
16121
- },
16122
- prevIcon: {
16123
- type: IconValue,
16124
- default: '$prev'
16125
- },
16126
- nextIcon: {
16127
- type: IconValue,
16128
- default: '$next'
16129
- },
16130
- lastIcon: {
16131
- type: IconValue,
16132
- default: '$last'
16133
- },
16134
- ariaLabel: {
16135
- type: String,
16136
- default: '$vuetify.pagination.ariaLabel.root'
16137
- },
16138
- pageAriaLabel: {
16139
- type: String,
16140
- default: '$vuetify.pagination.ariaLabel.page'
16141
- },
16142
- currentPageAriaLabel: {
16143
- type: String,
16144
- default: '$vuetify.pagination.ariaLabel.currentPage'
16145
- },
16146
- firstAriaLabel: {
16147
- type: String,
16148
- default: '$vuetify.pagination.ariaLabel.first'
16149
- },
16150
- previousAriaLabel: {
16151
- type: String,
16152
- default: '$vuetify.pagination.ariaLabel.previous'
16153
- },
16154
- nextAriaLabel: {
16155
- type: String,
16156
- default: '$vuetify.pagination.ariaLabel.next'
16157
- },
16158
- lastAriaLabel: {
16159
- type: String,
16160
- default: '$vuetify.pagination.ariaLabel.last'
16161
- },
16162
- ellipsis: {
16163
- type: String,
16164
- default: '...'
16165
- },
16166
- showFirstLastPage: Boolean,
16167
- ...makeBorderProps(),
16168
- ...makeComponentProps(),
16169
- ...makeDensityProps(),
16170
- ...makeElevationProps(),
16171
- ...makeRoundedProps(),
16172
- ...makeSizeProps(),
16173
- ...makeTagProps({
16174
- tag: 'nav'
16175
- }),
16176
- ...makeThemeProps(),
16177
- ...makeVariantProps({
16178
- variant: 'text'
16179
- })
16180
- },
16245
+ props: makeVPaginationProps(),
16181
16246
  emits: {
16182
16247
  'update:modelValue': value => true,
16183
16248
  first: value => true,
@@ -16204,7 +16269,7 @@ const VPagination = genericComponent()({
16204
16269
  const {
16205
16270
  width
16206
16271
  } = useDisplay();
16207
- const maxButtons = ref(-1);
16272
+ const maxButtons = shallowRef(-1);
16208
16273
  provideDefaults(undefined, {
16209
16274
  scoped: true
16210
16275
  });
@@ -16416,15 +16481,16 @@ const VPagination = genericComponent()({
16416
16481
  function floor(val) {
16417
16482
  return Math.floor(Math.abs(val)) * Math.sign(val);
16418
16483
  }
16484
+ const makeVParallaxProps = propsFactory({
16485
+ scale: {
16486
+ type: [Number, String],
16487
+ default: 0.5
16488
+ },
16489
+ ...makeComponentProps()
16490
+ }, 'v-parallax');
16419
16491
  const VParallax = genericComponent()({
16420
16492
  name: 'VParallax',
16421
- props: {
16422
- scale: {
16423
- type: [Number, String],
16424
- default: 0.5
16425
- },
16426
- ...makeComponentProps()
16427
- },
16493
+ props: makeVParallaxProps(),
16428
16494
  setup(props, _ref) {
16429
16495
  let {
16430
16496
  slots
@@ -16498,14 +16564,15 @@ const VParallax = genericComponent()({
16498
16564
 
16499
16565
  // Types
16500
16566
 
16567
+ const makeVRadioProps = propsFactory({
16568
+ ...makeSelectionControlProps({
16569
+ falseIcon: '$radioOff',
16570
+ trueIcon: '$radioOn'
16571
+ })
16572
+ }, 'v-radio');
16501
16573
  const VRadio = genericComponent()({
16502
16574
  name: 'VRadio',
16503
- props: {
16504
- ...makeSelectionControlProps({
16505
- falseIcon: '$radioOff',
16506
- trueIcon: '$radioOn'
16507
- })
16508
- },
16575
+ props: makeVRadioProps(),
16509
16576
  setup(props, _ref) {
16510
16577
  let {
16511
16578
  slots
@@ -16517,33 +16584,34 @@ const VRadio = genericComponent()({
16517
16584
  }), slots));
16518
16585
  return {};
16519
16586
  }
16520
- });
16521
-
16522
- // Types
16523
-
16587
+ });
16588
+
16589
+ // Types
16590
+
16591
+ const makeVRadioGroupProps = propsFactory({
16592
+ height: {
16593
+ type: [Number, String],
16594
+ default: 'auto'
16595
+ },
16596
+ ...makeVInputProps(),
16597
+ ...omit(makeSelectionControlGroupProps(), ['multiple']),
16598
+ trueIcon: {
16599
+ type: IconValue,
16600
+ default: '$radioOn'
16601
+ },
16602
+ falseIcon: {
16603
+ type: IconValue,
16604
+ default: '$radioOff'
16605
+ },
16606
+ type: {
16607
+ type: String,
16608
+ default: 'radio'
16609
+ }
16610
+ }, 'v-radio-group');
16524
16611
  const VRadioGroup = genericComponent()({
16525
16612
  name: 'VRadioGroup',
16526
16613
  inheritAttrs: false,
16527
- props: {
16528
- height: {
16529
- type: [Number, String],
16530
- default: 'auto'
16531
- },
16532
- ...makeVInputProps(),
16533
- ...omit(makeSelectionControlGroupProps(), ['multiple']),
16534
- trueIcon: {
16535
- type: IconValue,
16536
- default: '$radioOn'
16537
- },
16538
- falseIcon: {
16539
- type: IconValue,
16540
- default: '$radioOff'
16541
- },
16542
- type: {
16543
- type: String,
16544
- default: 'radio'
16545
- }
16546
- },
16614
+ props: makeVRadioGroupProps(),
16547
16615
  emits: {
16548
16616
  'update:modelValue': val => true
16549
16617
  },
@@ -16609,18 +16677,19 @@ const VRadioGroup = genericComponent()({
16609
16677
 
16610
16678
  // Types
16611
16679
 
16680
+ const makeVRangeSliderProps = propsFactory({
16681
+ ...makeFocusProps(),
16682
+ ...makeVInputProps(),
16683
+ ...makeSliderProps(),
16684
+ strict: Boolean,
16685
+ modelValue: {
16686
+ type: Array,
16687
+ default: () => [0, 0]
16688
+ }
16689
+ }, 'v-range-slider');
16612
16690
  const VRangeSlider = genericComponent()({
16613
16691
  name: 'VRangeSlider',
16614
- props: {
16615
- ...makeFocusProps(),
16616
- ...makeVInputProps(),
16617
- ...makeSliderProps(),
16618
- strict: Boolean,
16619
- modelValue: {
16620
- type: Array,
16621
- default: () => [0, 0]
16622
- }
16623
- },
16692
+ props: makeVRangeSliderProps(),
16624
16693
  emits: {
16625
16694
  'update:focused': value => true,
16626
16695
  'update:modelValue': value => true,
@@ -16635,6 +16704,9 @@ const VRangeSlider = genericComponent()({
16635
16704
  const startThumbRef = ref();
16636
16705
  const stopThumbRef = ref();
16637
16706
  const inputRef = ref();
16707
+ const {
16708
+ rtlClasses
16709
+ } = useRtl();
16638
16710
  function getActiveThumb(e) {
16639
16711
  if (!startThumbRef.value || !stopThumbRef.value) return;
16640
16712
  const startOffset = getOffset(e, startThumbRef.value.$el, props.direction);
@@ -16705,7 +16777,7 @@ const VRangeSlider = genericComponent()({
16705
16777
  'v-slider--focused': isFocused.value,
16706
16778
  'v-slider--pressed': mousePressed.value,
16707
16779
  'v-slider--disabled': props.disabled
16708
- }, props.class],
16780
+ }, rtlClasses.value, props.class],
16709
16781
  "style": props.style,
16710
16782
  "ref": inputRef
16711
16783
  }, inputProps, {
@@ -16811,50 +16883,51 @@ const VRangeSlider = genericComponent()({
16811
16883
 
16812
16884
  // Types
16813
16885
 
16886
+ const makeVRatingProps = propsFactory({
16887
+ name: String,
16888
+ itemAriaLabel: {
16889
+ type: String,
16890
+ default: '$vuetify.rating.ariaLabel.item'
16891
+ },
16892
+ activeColor: String,
16893
+ color: String,
16894
+ clearable: Boolean,
16895
+ disabled: Boolean,
16896
+ emptyIcon: {
16897
+ type: IconValue,
16898
+ default: '$ratingEmpty'
16899
+ },
16900
+ fullIcon: {
16901
+ type: IconValue,
16902
+ default: '$ratingFull'
16903
+ },
16904
+ halfIncrements: Boolean,
16905
+ hover: Boolean,
16906
+ length: {
16907
+ type: [Number, String],
16908
+ default: 5
16909
+ },
16910
+ readonly: Boolean,
16911
+ modelValue: {
16912
+ type: [Number, String],
16913
+ default: 0
16914
+ },
16915
+ itemLabels: Array,
16916
+ itemLabelPosition: {
16917
+ type: String,
16918
+ default: 'top',
16919
+ validator: v => ['top', 'bottom'].includes(v)
16920
+ },
16921
+ ripple: Boolean,
16922
+ ...makeComponentProps(),
16923
+ ...makeDensityProps(),
16924
+ ...makeSizeProps(),
16925
+ ...makeTagProps(),
16926
+ ...makeThemeProps()
16927
+ }, 'v-rating');
16814
16928
  const VRating = genericComponent()({
16815
16929
  name: 'VRating',
16816
- props: {
16817
- name: String,
16818
- itemAriaLabel: {
16819
- type: String,
16820
- default: '$vuetify.rating.ariaLabel.item'
16821
- },
16822
- activeColor: String,
16823
- color: String,
16824
- clearable: Boolean,
16825
- disabled: Boolean,
16826
- emptyIcon: {
16827
- type: IconValue,
16828
- default: '$ratingEmpty'
16829
- },
16830
- fullIcon: {
16831
- type: IconValue,
16832
- default: '$ratingFull'
16833
- },
16834
- halfIncrements: Boolean,
16835
- hover: Boolean,
16836
- length: {
16837
- type: [Number, String],
16838
- default: 5
16839
- },
16840
- readonly: Boolean,
16841
- modelValue: {
16842
- type: [Number, String],
16843
- default: 0
16844
- },
16845
- itemLabels: Array,
16846
- itemLabelPosition: {
16847
- type: String,
16848
- default: 'top',
16849
- validator: v => ['top', 'bottom'].includes(v)
16850
- },
16851
- ripple: Boolean,
16852
- ...makeComponentProps(),
16853
- ...makeDensityProps(),
16854
- ...makeSizeProps(),
16855
- ...makeTagProps(),
16856
- ...makeThemeProps()
16857
- },
16930
+ props: makeVRatingProps(),
16858
16931
  emits: {
16859
16932
  'update:modelValue': value => true
16860
16933
  },
@@ -16872,7 +16945,7 @@ const VRating = genericComponent()({
16872
16945
  const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length));
16873
16946
  const range = computed(() => createRange(Number(props.length), 1));
16874
16947
  const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
16875
- const hoverIndex = ref(-1);
16948
+ const hoverIndex = shallowRef(-1);
16876
16949
  const itemState = computed(() => increments.value.map(value => {
16877
16950
  const isHovering = props.hover && hoverIndex.value > -1;
16878
16951
  const isFilled = normalizedValue.value >= value;
@@ -17091,10 +17164,10 @@ const VSlideGroup = genericComponent()({
17091
17164
  mobile
17092
17165
  } = useDisplay();
17093
17166
  const group = useGroup(props, props.symbol);
17094
- const isOverflowing = ref(false);
17095
- const scrollOffset = ref(0);
17096
- const containerSize = ref(0);
17097
- const contentSize = ref(0);
17167
+ const isOverflowing = shallowRef(false);
17168
+ const scrollOffset = shallowRef(0);
17169
+ const containerSize = shallowRef(0);
17170
+ const contentSize = shallowRef(0);
17098
17171
  const isHorizontal = computed(() => props.direction === 'horizontal');
17099
17172
  const {
17100
17173
  resizeRef: containerRef,
@@ -17150,7 +17223,7 @@ const VSlideGroup = genericComponent()({
17150
17223
  });
17151
17224
  });
17152
17225
  }
17153
- const disableTransition = ref(false);
17226
+ const disableTransition = shallowRef(false);
17154
17227
  let startTouch = 0;
17155
17228
  let startOffset = 0;
17156
17229
  function onTouchstart(e) {
@@ -17179,7 +17252,7 @@ const VSlideGroup = genericComponent()({
17179
17252
  if (!containerRef.value) return;
17180
17253
  containerRef.value[isHorizontal.value ? 'scrollLeft' : 'scrollTop'] = 0;
17181
17254
  }
17182
- const isFocused = ref(false);
17255
+ const isFocused = shallowRef(false);
17183
17256
  function onFocusin(e) {
17184
17257
  isFocused.value = true;
17185
17258
  if (!isOverflowing.value || !contentRef.value) return;
@@ -17366,9 +17439,7 @@ const VSlideGroup = genericComponent()({
17366
17439
 
17367
17440
  const VSlideGroupItem = genericComponent()({
17368
17441
  name: 'VSlideGroupItem',
17369
- props: {
17370
- ...makeGroupItemProps()
17371
- },
17442
+ props: makeGroupItemProps(),
17372
17443
  emits: {
17373
17444
  'group:selected': val => true
17374
17445
  },
@@ -17386,26 +17457,27 @@ const VSlideGroupItem = genericComponent()({
17386
17457
  }
17387
17458
  });
17388
17459
 
17460
+ const makeVSnackbarProps = propsFactory({
17461
+ multiLine: Boolean,
17462
+ timeout: {
17463
+ type: [Number, String],
17464
+ default: 5000
17465
+ },
17466
+ vertical: Boolean,
17467
+ ...makeLocationProps({
17468
+ location: 'bottom'
17469
+ }),
17470
+ ...makePositionProps(),
17471
+ ...makeRoundedProps(),
17472
+ ...makeVariantProps(),
17473
+ ...makeThemeProps(),
17474
+ ...omit(makeVOverlayProps({
17475
+ transition: 'v-snackbar-transition'
17476
+ }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy'])
17477
+ }, 'v-snackbar');
17389
17478
  const VSnackbar = genericComponent()({
17390
17479
  name: 'VSnackbar',
17391
- props: {
17392
- multiLine: Boolean,
17393
- timeout: {
17394
- type: [Number, String],
17395
- default: 5000
17396
- },
17397
- vertical: Boolean,
17398
- ...makeLocationProps({
17399
- location: 'bottom'
17400
- }),
17401
- ...makePositionProps(),
17402
- ...makeRoundedProps(),
17403
- ...makeVariantProps(),
17404
- ...makeThemeProps(),
17405
- ...omit(makeVOverlayProps({
17406
- transition: 'v-snackbar-transition'
17407
- }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy'])
17408
- },
17480
+ props: makeVSnackbarProps(),
17409
17481
  emits: {
17410
17482
  'update:modelValue': v => true
17411
17483
  },
@@ -17502,20 +17574,21 @@ const VSnackbar = genericComponent()({
17502
17574
 
17503
17575
  // Types
17504
17576
 
17577
+ const makeVSwitchProps = propsFactory({
17578
+ indeterminate: Boolean,
17579
+ inset: Boolean,
17580
+ flat: Boolean,
17581
+ loading: {
17582
+ type: [Boolean, String],
17583
+ default: false
17584
+ },
17585
+ ...makeVInputProps(),
17586
+ ...makeSelectionControlProps()
17587
+ }, 'v-switch');
17505
17588
  const VSwitch = genericComponent()({
17506
17589
  name: 'VSwitch',
17507
17590
  inheritAttrs: false,
17508
- props: {
17509
- indeterminate: Boolean,
17510
- inset: Boolean,
17511
- flat: Boolean,
17512
- loading: {
17513
- type: [Boolean, String],
17514
- default: false
17515
- },
17516
- ...makeVInputProps(),
17517
- ...makeSelectionControlProps()
17518
- },
17591
+ props: makeVSwitchProps(),
17519
17592
  emits: {
17520
17593
  'update:focused': focused => true,
17521
17594
  'update:modelValue': () => true,
@@ -17625,19 +17698,20 @@ const VSwitch = genericComponent()({
17625
17698
  }
17626
17699
  });
17627
17700
 
17701
+ const makeVSystemBarProps = propsFactory({
17702
+ color: String,
17703
+ height: [Number, String],
17704
+ window: Boolean,
17705
+ ...makeComponentProps(),
17706
+ ...makeElevationProps(),
17707
+ ...makeLayoutItemProps(),
17708
+ ...makeRoundedProps(),
17709
+ ...makeTagProps(),
17710
+ ...makeThemeProps()
17711
+ }, 'v-system-bar');
17628
17712
  const VSystemBar = genericComponent()({
17629
17713
  name: 'VSystemBar',
17630
- props: {
17631
- color: String,
17632
- height: [Number, String],
17633
- window: Boolean,
17634
- ...makeComponentProps(),
17635
- ...makeElevationProps(),
17636
- ...makeLayoutItemProps(),
17637
- ...makeRoundedProps(),
17638
- ...makeTagProps(),
17639
- ...makeThemeProps()
17640
- },
17714
+ props: makeVSystemBarProps(),
17641
17715
  setup(props, _ref) {
17642
17716
  let {
17643
17717
  slots
@@ -17664,7 +17738,7 @@ const VSystemBar = genericComponent()({
17664
17738
  } = useLayoutItem({
17665
17739
  id: props.name,
17666
17740
  order: computed(() => parseInt(props.order, 10)),
17667
- position: ref('top'),
17741
+ position: shallowRef('top'),
17668
17742
  layoutSize: height,
17669
17743
  elementSize: height,
17670
17744
  active: computed(() => true),
@@ -17682,21 +17756,24 @@ const VSystemBar = genericComponent()({
17682
17756
 
17683
17757
  const VTabsSymbol = Symbol.for('vuetify:v-tabs');
17684
17758
 
17759
+ // Types
17760
+
17761
+ const makeVTabProps = propsFactory({
17762
+ fixed: Boolean,
17763
+ sliderColor: String,
17764
+ hideSlider: Boolean,
17765
+ direction: {
17766
+ type: String,
17767
+ default: 'horizontal'
17768
+ },
17769
+ ...omit(makeVBtnProps({
17770
+ selectedClass: 'v-tab--selected',
17771
+ variant: 'text'
17772
+ }), ['active', 'block', 'flat', 'location', 'position', 'symbol'])
17773
+ }, 'v-tabs');
17685
17774
  const VTab = genericComponent()({
17686
17775
  name: 'VTab',
17687
- props: {
17688
- fixed: Boolean,
17689
- sliderColor: String,
17690
- hideSlider: Boolean,
17691
- direction: {
17692
- type: String,
17693
- default: 'horizontal'
17694
- },
17695
- ...omit(makeVBtnProps({
17696
- selectedClass: 'v-tab--selected',
17697
- variant: 'text'
17698
- }), ['active', 'block', 'flat', 'location', 'position', 'symbol'])
17699
- },
17776
+ props: makeVTabProps(),
17700
17777
  setup(props, _ref) {
17701
17778
  let {
17702
17779
  slots,
@@ -17707,7 +17784,7 @@ const VTab = genericComponent()({
17707
17784
  textColorStyles: sliderColorStyles
17708
17785
  } = useTextColor(props, 'sliderColor');
17709
17786
  const isHorizontal = computed(() => props.direction === 'horizontal');
17710
- const isSelected = ref(false);
17787
+ const isSelected = shallowRef(false);
17711
17788
  const rootEl = ref();
17712
17789
  const sliderEl = ref();
17713
17790
  function updateSlider(_ref2) {
@@ -17782,34 +17859,35 @@ function parseItems(items) {
17782
17859
  return item;
17783
17860
  });
17784
17861
  }
17862
+ const makeVTabsProps = propsFactory({
17863
+ alignTabs: {
17864
+ type: String,
17865
+ default: 'start'
17866
+ },
17867
+ color: String,
17868
+ fixedTabs: Boolean,
17869
+ items: {
17870
+ type: Array,
17871
+ default: () => []
17872
+ },
17873
+ stacked: Boolean,
17874
+ bgColor: String,
17875
+ grow: Boolean,
17876
+ height: {
17877
+ type: [Number, String],
17878
+ default: undefined
17879
+ },
17880
+ hideSlider: Boolean,
17881
+ sliderColor: String,
17882
+ ...makeVSlideGroupProps({
17883
+ mandatory: 'force'
17884
+ }),
17885
+ ...makeDensityProps(),
17886
+ ...makeTagProps()
17887
+ }, 'v-tabs');
17785
17888
  const VTabs = genericComponent()({
17786
17889
  name: 'VTabs',
17787
- props: {
17788
- alignTabs: {
17789
- type: String,
17790
- default: 'start'
17791
- },
17792
- color: String,
17793
- fixedTabs: Boolean,
17794
- items: {
17795
- type: Array,
17796
- default: () => []
17797
- },
17798
- stacked: Boolean,
17799
- bgColor: String,
17800
- grow: Boolean,
17801
- height: {
17802
- type: [Number, String],
17803
- default: undefined
17804
- },
17805
- hideSlider: Boolean,
17806
- sliderColor: String,
17807
- ...makeVSlideGroupProps({
17808
- mandatory: 'force'
17809
- }),
17810
- ...makeDensityProps(),
17811
- ...makeTagProps()
17812
- },
17890
+ props: makeVTabsProps(),
17813
17891
  emits: {
17814
17892
  'update:modelValue': v => true
17815
17893
  },
@@ -17861,18 +17939,19 @@ const VTabs = genericComponent()({
17861
17939
  }
17862
17940
  });
17863
17941
 
17942
+ const makeVTableProps = propsFactory({
17943
+ fixedHeader: Boolean,
17944
+ fixedFooter: Boolean,
17945
+ height: [Number, String],
17946
+ hover: Boolean,
17947
+ ...makeComponentProps(),
17948
+ ...makeDensityProps(),
17949
+ ...makeTagProps(),
17950
+ ...makeThemeProps()
17951
+ }, 'v-table');
17864
17952
  const VTable = genericComponent()({
17865
17953
  name: 'VTable',
17866
- props: {
17867
- fixedHeader: Boolean,
17868
- fixedFooter: Boolean,
17869
- height: [Number, String],
17870
- hover: Boolean,
17871
- ...makeComponentProps(),
17872
- ...makeDensityProps(),
17873
- ...makeTagProps(),
17874
- ...makeThemeProps()
17875
- },
17954
+ props: makeVTableProps(),
17876
17955
  setup(props, _ref) {
17877
17956
  let {
17878
17957
  slots
@@ -17907,36 +17986,37 @@ const VTable = genericComponent()({
17907
17986
 
17908
17987
  // Types
17909
17988
 
17989
+ const makeVTextareaProps = propsFactory({
17990
+ autoGrow: Boolean,
17991
+ autofocus: Boolean,
17992
+ counter: [Boolean, Number, String],
17993
+ counterValue: Function,
17994
+ prefix: String,
17995
+ placeholder: String,
17996
+ persistentPlaceholder: Boolean,
17997
+ persistentCounter: Boolean,
17998
+ noResize: Boolean,
17999
+ rows: {
18000
+ type: [Number, String],
18001
+ default: 5,
18002
+ validator: v => !isNaN(parseFloat(v))
18003
+ },
18004
+ maxRows: {
18005
+ type: [Number, String],
18006
+ validator: v => !isNaN(parseFloat(v))
18007
+ },
18008
+ suffix: String,
18009
+ modelModifiers: Object,
18010
+ ...makeVInputProps(),
18011
+ ...makeVFieldProps()
18012
+ }, 'v-textarea');
17910
18013
  const VTextarea = genericComponent()({
17911
18014
  name: 'VTextarea',
17912
18015
  directives: {
17913
18016
  Intersect
17914
18017
  },
17915
18018
  inheritAttrs: false,
17916
- props: {
17917
- autoGrow: Boolean,
17918
- autofocus: Boolean,
17919
- counter: [Boolean, Number, String],
17920
- counterValue: Function,
17921
- prefix: String,
17922
- placeholder: String,
17923
- persistentPlaceholder: Boolean,
17924
- persistentCounter: Boolean,
17925
- noResize: Boolean,
17926
- rows: {
17927
- type: [Number, String],
17928
- default: 5,
17929
- validator: v => !isNaN(parseFloat(v))
17930
- },
17931
- maxRows: {
17932
- type: [Number, String],
17933
- validator: v => !isNaN(parseFloat(v))
17934
- },
17935
- suffix: String,
17936
- modelModifiers: Object,
17937
- ...makeVInputProps(),
17938
- ...makeVFieldProps()
17939
- },
18019
+ props: makeVTextareaProps(),
17940
18020
  emits: {
17941
18021
  'click:control': e => true,
17942
18022
  'mousedown:control': e => true,
@@ -17969,7 +18049,7 @@ const VTextarea = genericComponent()({
17969
18049
  }
17970
18050
  const vInputRef = ref();
17971
18051
  const vFieldRef = ref();
17972
- const controlHeight = ref('');
18052
+ const controlHeight = shallowRef('');
17973
18053
  const textareaRef = ref();
17974
18054
  const isActive = computed(() => props.persistentPlaceholder || isFocused.value || props.active);
17975
18055
  function onFocus() {
@@ -18138,14 +18218,15 @@ const VTextarea = genericComponent()({
18138
18218
  }
18139
18219
  });
18140
18220
 
18221
+ const makeVThemeProviderProps = propsFactory({
18222
+ withBackground: Boolean,
18223
+ ...makeComponentProps(),
18224
+ ...makeThemeProps(),
18225
+ ...makeTagProps()
18226
+ }, 'v-theme-provider');
18141
18227
  const VThemeProvider = genericComponent()({
18142
18228
  name: 'VThemeProvider',
18143
- props: {
18144
- withBackground: Boolean,
18145
- ...makeComponentProps(),
18146
- ...makeThemeProps(),
18147
- ...makeTagProps()
18148
- },
18229
+ props: makeVThemeProviderProps(),
18149
18230
  setup(props, _ref) {
18150
18231
  let {
18151
18232
  slots
@@ -18167,46 +18248,47 @@ const VThemeProvider = genericComponent()({
18167
18248
 
18168
18249
  // Types
18169
18250
 
18251
+ const makeVTimelineProps = propsFactory({
18252
+ align: {
18253
+ type: String,
18254
+ default: 'center',
18255
+ validator: v => ['center', 'start'].includes(v)
18256
+ },
18257
+ direction: {
18258
+ type: String,
18259
+ default: 'vertical',
18260
+ validator: v => ['vertical', 'horizontal'].includes(v)
18261
+ },
18262
+ justify: {
18263
+ type: String,
18264
+ default: 'auto',
18265
+ validator: v => ['auto', 'center'].includes(v)
18266
+ },
18267
+ side: {
18268
+ type: String,
18269
+ validator: v => v == null || ['start', 'end'].includes(v)
18270
+ },
18271
+ lineInset: {
18272
+ type: [String, Number],
18273
+ default: 0
18274
+ },
18275
+ lineThickness: {
18276
+ type: [String, Number],
18277
+ default: 2
18278
+ },
18279
+ lineColor: String,
18280
+ truncateLine: {
18281
+ type: String,
18282
+ validator: v => ['start', 'end', 'both'].includes(v)
18283
+ },
18284
+ ...makeComponentProps(),
18285
+ ...makeDensityProps(),
18286
+ ...makeTagProps(),
18287
+ ...makeThemeProps()
18288
+ }, 'v-timeline');
18170
18289
  const VTimeline = genericComponent()({
18171
18290
  name: 'VTimeline',
18172
- props: {
18173
- align: {
18174
- type: String,
18175
- default: 'center',
18176
- validator: v => ['center', 'start'].includes(v)
18177
- },
18178
- direction: {
18179
- type: String,
18180
- default: 'vertical',
18181
- validator: v => ['vertical', 'horizontal'].includes(v)
18182
- },
18183
- justify: {
18184
- type: String,
18185
- default: 'auto',
18186
- validator: v => ['auto', 'center'].includes(v)
18187
- },
18188
- side: {
18189
- type: String,
18190
- validator: v => v == null || ['start', 'end'].includes(v)
18191
- },
18192
- lineInset: {
18193
- type: [String, Number],
18194
- default: 0
18195
- },
18196
- lineThickness: {
18197
- type: [String, Number],
18198
- default: 2
18199
- },
18200
- lineColor: String,
18201
- truncateLine: {
18202
- type: String,
18203
- validator: v => ['start', 'end', 'both'].includes(v)
18204
- },
18205
- ...makeComponentProps(),
18206
- ...makeDensityProps(),
18207
- ...makeTagProps(),
18208
- ...makeThemeProps()
18209
- },
18291
+ props: makeVTimelineProps(),
18210
18292
  setup(props, _ref) {
18211
18293
  let {
18212
18294
  slots
@@ -18217,6 +18299,9 @@ const VTimeline = genericComponent()({
18217
18299
  const {
18218
18300
  densityClasses
18219
18301
  } = useDensity(props);
18302
+ const {
18303
+ rtlClasses
18304
+ } = useRtl();
18220
18305
  provideDefaults({
18221
18306
  VTimelineDivider: {
18222
18307
  lineColor: toRef(props, 'lineColor')
@@ -18246,7 +18331,7 @@ const VTimeline = genericComponent()({
18246
18331
  useRender(() => createVNode(props.tag, {
18247
18332
  "class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
18248
18333
  'v-timeline--inset-line': !!props.lineInset
18249
- }, themeClasses.value, densityClasses.value, sideClasses.value, props.class],
18334
+ }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class],
18250
18335
  "style": [{
18251
18336
  '--v-timeline-line-thickness': convertToUnit(props.lineThickness)
18252
18337
  }, props.style]
@@ -18255,20 +18340,21 @@ const VTimeline = genericComponent()({
18255
18340
  }
18256
18341
  });
18257
18342
 
18343
+ const makeVTimelineDividerProps = propsFactory({
18344
+ dotColor: String,
18345
+ fillDot: Boolean,
18346
+ hideDot: Boolean,
18347
+ icon: IconValue,
18348
+ iconColor: String,
18349
+ lineColor: String,
18350
+ ...makeComponentProps(),
18351
+ ...makeRoundedProps(),
18352
+ ...makeSizeProps(),
18353
+ ...makeElevationProps()
18354
+ }, 'v-timeline-divider');
18258
18355
  const VTimelineDivider = genericComponent()({
18259
18356
  name: 'VTimelineDivider',
18260
- props: {
18261
- dotColor: String,
18262
- fillDot: Boolean,
18263
- hideDot: Boolean,
18264
- icon: IconValue,
18265
- iconColor: String,
18266
- lineColor: String,
18267
- ...makeComponentProps(),
18268
- ...makeRoundedProps(),
18269
- ...makeSizeProps(),
18270
- ...makeElevationProps()
18271
- },
18357
+ props: makeVTimelineDividerProps(),
18272
18358
  setup(props, _ref) {
18273
18359
  let {
18274
18360
  slots
@@ -18331,27 +18417,28 @@ const VTimelineDivider = genericComponent()({
18331
18417
 
18332
18418
  // Types
18333
18419
 
18420
+ const makeVTimelineItemProps = propsFactory({
18421
+ density: String,
18422
+ dotColor: String,
18423
+ fillDot: Boolean,
18424
+ hideDot: Boolean,
18425
+ hideOpposite: {
18426
+ type: Boolean,
18427
+ default: undefined
18428
+ },
18429
+ icon: IconValue,
18430
+ iconColor: String,
18431
+ lineInset: [Number, String],
18432
+ ...makeComponentProps(),
18433
+ ...makeDimensionProps(),
18434
+ ...makeElevationProps(),
18435
+ ...makeRoundedProps(),
18436
+ ...makeSizeProps(),
18437
+ ...makeTagProps()
18438
+ }, 'v-timeline-item');
18334
18439
  const VTimelineItem = genericComponent()({
18335
18440
  name: 'VTimelineItem',
18336
- props: {
18337
- density: String,
18338
- dotColor: String,
18339
- fillDot: Boolean,
18340
- hideDot: Boolean,
18341
- hideOpposite: {
18342
- type: Boolean,
18343
- default: undefined
18344
- },
18345
- icon: IconValue,
18346
- iconColor: String,
18347
- lineInset: [Number, String],
18348
- ...makeComponentProps(),
18349
- ...makeDimensionProps(),
18350
- ...makeElevationProps(),
18351
- ...makeRoundedProps(),
18352
- ...makeSizeProps(),
18353
- ...makeTagProps()
18354
- },
18441
+ props: makeVTimelineItemProps(),
18355
18442
  setup(props, _ref) {
18356
18443
  let {
18357
18444
  slots
@@ -18359,7 +18446,7 @@ const VTimelineItem = genericComponent()({
18359
18446
  const {
18360
18447
  dimensionStyles
18361
18448
  } = useDimension(props);
18362
- const dotSize = ref(0);
18449
+ const dotSize = shallowRef(0);
18363
18450
  const dotRef = ref();
18364
18451
  watch(dotRef, newValue => {
18365
18452
  if (!newValue) return;
@@ -18397,28 +18484,57 @@ const VTimelineItem = genericComponent()({
18397
18484
  }
18398
18485
  });
18399
18486
 
18487
+ const makeVToolbarItemsProps = propsFactory({
18488
+ ...makeComponentProps(),
18489
+ ...makeVariantProps({
18490
+ variant: 'text'
18491
+ })
18492
+ }, 'v-toolbar-items');
18493
+ const VToolbarItems = genericComponent()({
18494
+ name: 'VToolbarItems',
18495
+ props: makeVToolbarItemsProps(),
18496
+ setup(props, _ref) {
18497
+ let {
18498
+ slots
18499
+ } = _ref;
18500
+ provideDefaults({
18501
+ VBtn: {
18502
+ color: toRef(props, 'color'),
18503
+ height: 'inherit',
18504
+ variant: toRef(props, 'variant')
18505
+ }
18506
+ });
18507
+ useRender(() => createVNode("div", {
18508
+ "class": ['v-toolbar-items', props.class],
18509
+ "style": props.style
18510
+ }, [slots.default?.()]));
18511
+ return {};
18512
+ }
18513
+ });
18514
+
18400
18515
  // Types
18401
18516
 
18517
+ const makeVTooltipProps = propsFactory({
18518
+ id: String,
18519
+ text: String,
18520
+ ...omit(makeVOverlayProps({
18521
+ closeOnBack: false,
18522
+ location: 'end',
18523
+ locationStrategy: 'connected',
18524
+ eager: true,
18525
+ minWidth: 0,
18526
+ offset: 10,
18527
+ openOnClick: false,
18528
+ openOnHover: true,
18529
+ origin: 'auto',
18530
+ scrim: false,
18531
+ scrollStrategy: 'reposition',
18532
+ transition: false
18533
+ }), ['absolute', 'persistent'])
18534
+ }, 'v-tooltip');
18402
18535
  const VTooltip = genericComponent()({
18403
18536
  name: 'VTooltip',
18404
- props: {
18405
- id: String,
18406
- text: String,
18407
- ...omit(makeVOverlayProps({
18408
- closeOnBack: false,
18409
- location: 'end',
18410
- locationStrategy: 'connected',
18411
- eager: true,
18412
- minWidth: 0,
18413
- offset: 10,
18414
- openOnClick: false,
18415
- openOnHover: true,
18416
- origin: 'auto',
18417
- scrim: false,
18418
- scrollStrategy: 'reposition',
18419
- transition: false
18420
- }), ['absolute', 'persistent'])
18421
- },
18537
+ props: makeVTooltipProps(),
18422
18538
  emits: {
18423
18539
  'update:modelValue': value => true
18424
18540
  },
@@ -18481,9 +18597,7 @@ const VTooltip = genericComponent()({
18481
18597
  // Composables
18482
18598
  const VValidation = genericComponent()({
18483
18599
  name: 'VValidation',
18484
- props: {
18485
- ...makeValidationProps()
18486
- },
18600
+ props: makeValidationProps(),
18487
18601
  emits: {
18488
18602
  'update:modelValue': val => true
18489
18603
  },
@@ -18496,12 +18610,13 @@ const VValidation = genericComponent()({
18496
18610
  }
18497
18611
  });
18498
18612
 
18613
+ const makeVVirtualScrollItemProps = propsFactory({
18614
+ dynamicHeight: Boolean,
18615
+ ...makeComponentProps()
18616
+ }, 'v-virtual-scroll-item');
18499
18617
  const VVirtualScrollItem = genericComponent()({
18500
18618
  name: 'VVirtualScrollItem',
18501
- props: {
18502
- dynamicHeight: Boolean,
18503
- ...makeComponentProps()
18504
- },
18619
+ props: makeVVirtualScrollItemProps(),
18505
18620
  emits: {
18506
18621
  'update:height': height => true
18507
18622
  },
@@ -18537,23 +18652,24 @@ const VVirtualScrollItem = genericComponent()({
18537
18652
 
18538
18653
  const UP = -1;
18539
18654
  const DOWN = 1;
18655
+ const makeVVirtualScrollProps = propsFactory({
18656
+ items: {
18657
+ type: Array,
18658
+ default: () => []
18659
+ },
18660
+ itemHeight: [Number, String],
18661
+ ...makeComponentProps(),
18662
+ ...makeDimensionProps()
18663
+ }, 'v-virtual-scroll');
18540
18664
  const VVirtualScroll = genericComponent()({
18541
18665
  name: 'VVirtualScroll',
18542
- props: {
18543
- items: {
18544
- type: Array,
18545
- default: () => []
18546
- },
18547
- itemHeight: [Number, String],
18548
- ...makeComponentProps(),
18549
- ...makeDimensionProps()
18550
- },
18666
+ props: makeVVirtualScrollProps(),
18551
18667
  setup(props, _ref) {
18552
18668
  let {
18553
18669
  slots
18554
18670
  } = _ref;
18555
- const first = ref(0);
18556
- const baseItemHeight = ref(props.itemHeight);
18671
+ const first = shallowRef(0);
18672
+ const baseItemHeight = shallowRef(props.itemHeight);
18557
18673
  const itemHeight = computed({
18558
18674
  get: () => parseInt(baseItemHeight.value ?? 0, 10),
18559
18675
  set(val) {
@@ -19427,7 +19543,7 @@ function createVuetify$1() {
19427
19543
  date
19428
19544
  };
19429
19545
  }
19430
- const version$1 = "3.2.2";
19546
+ const version$1 = "3.2.4";
19431
19547
  createVuetify$1.version = version$1;
19432
19548
 
19433
19549
  // Vue's inject() can only be used in setup
@@ -19447,7 +19563,7 @@ const createVuetify = function () {
19447
19563
  ...options
19448
19564
  });
19449
19565
  };
19450
- const version = "3.2.2";
19566
+ const version = "3.2.4";
19451
19567
  createVuetify.version = version;
19452
19568
 
19453
19569
  export { components, createVuetify, directives, useDefaults, useDisplay, useLayout, useLocale, useRtl, useTheme, version };