vuetify 3.8.5 → 3.8.7

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 (366) hide show
  1. package/dist/json/attributes.json +2718 -2718
  2. package/dist/json/importMap-labs.json +12 -12
  3. package/dist/json/importMap.json +182 -182
  4. package/dist/json/web-types.json +4939 -4939
  5. package/dist/vuetify-labs.cjs +1014 -932
  6. package/dist/vuetify-labs.css +5501 -5490
  7. package/dist/vuetify-labs.d.ts +609 -606
  8. package/dist/vuetify-labs.esm.js +1015 -933
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +1014 -932
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.cjs +901 -819
  13. package/dist/vuetify.cjs.map +1 -1
  14. package/dist/vuetify.css +3585 -3574
  15. package/dist/vuetify.d.ts +521 -518
  16. package/dist/vuetify.esm.js +902 -820
  17. package/dist/vuetify.esm.js.map +1 -1
  18. package/dist/vuetify.js +901 -819
  19. package/dist/vuetify.js.map +1 -1
  20. package/dist/vuetify.min.css +2 -2
  21. package/dist/vuetify.min.js +1064 -1053
  22. package/dist/vuetify.min.js.map +1 -1
  23. package/lib/components/VAlert/VAlert.js +11 -11
  24. package/lib/components/VAlert/VAlert.js.map +1 -1
  25. package/lib/components/VApp/VApp.js +5 -5
  26. package/lib/components/VApp/VApp.js.map +1 -1
  27. package/lib/components/VAutocomplete/VAutocomplete.d.ts +84 -84
  28. package/lib/components/VAutocomplete/VAutocomplete.js +9 -9
  29. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  30. package/lib/components/VAvatar/VAvatar.js +4 -4
  31. package/lib/components/VAvatar/VAvatar.js.map +1 -1
  32. package/lib/components/VBadge/VBadge.js +3 -3
  33. package/lib/components/VBadge/VBadge.js.map +1 -1
  34. package/lib/components/VBanner/VBanner.js +6 -6
  35. package/lib/components/VBanner/VBanner.js.map +1 -1
  36. package/lib/components/VBanner/VBannerActions.js +4 -4
  37. package/lib/components/VBanner/VBannerActions.js.map +1 -1
  38. package/lib/components/VBottomNavigation/VBottomNavigation.js +6 -6
  39. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  40. package/lib/components/VBreadcrumbs/VBreadcrumbs.js +5 -5
  41. package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  42. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.js +4 -4
  43. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.js.map +1 -1
  44. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +5 -5
  45. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  46. package/lib/components/VBtn/VBtn.js +7 -7
  47. package/lib/components/VBtn/VBtn.js.map +1 -1
  48. package/lib/components/VBtnGroup/VBtnGroup.js +4 -4
  49. package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
  50. package/lib/components/VCard/VCard.js +5 -5
  51. package/lib/components/VCard/VCard.js.map +1 -1
  52. package/lib/components/VCard/VCardActions.js +4 -4
  53. package/lib/components/VCard/VCardActions.js.map +1 -1
  54. package/lib/components/VCard/VCardItem.js +9 -9
  55. package/lib/components/VCard/VCardItem.js.map +1 -1
  56. package/lib/components/VCard/VCardSubtitle.js +4 -4
  57. package/lib/components/VCard/VCardSubtitle.js.map +1 -1
  58. package/lib/components/VCard/VCardText.js +4 -4
  59. package/lib/components/VCard/VCardText.js.map +1 -1
  60. package/lib/components/VCarousel/VCarousel.js +4 -4
  61. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  62. package/lib/components/VCheckbox/VCheckbox.d.ts +12 -12
  63. package/lib/components/VChip/VChip.js +11 -11
  64. package/lib/components/VChip/VChip.js.map +1 -1
  65. package/lib/components/VColorPicker/VColorPicker.js +3 -3
  66. package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
  67. package/lib/components/VColorPicker/VColorPickerCanvas.js +9 -9
  68. package/lib/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
  69. package/lib/components/VColorPicker/VColorPickerEdit.js +6 -6
  70. package/lib/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  71. package/lib/components/VColorPicker/VColorPickerPreview.js +11 -11
  72. package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  73. package/lib/components/VColorPicker/VColorPickerSwatches.js +10 -10
  74. package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  75. package/lib/components/VCombobox/VCombobox.d.ts +84 -84
  76. package/lib/components/VCombobox/VCombobox.js +9 -9
  77. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  78. package/lib/components/VConfirmEdit/VConfirmEdit.js +3 -3
  79. package/lib/components/VConfirmEdit/VConfirmEdit.js.map +1 -1
  80. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.js +3 -3
  81. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.js.map +1 -1
  82. package/lib/components/VCounter/VCounter.js +5 -5
  83. package/lib/components/VCounter/VCounter.js.map +1 -1
  84. package/lib/components/VDataIterator/VDataIterator.js +5 -5
  85. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  86. package/lib/components/VDataTable/VDataTable.js +4 -4
  87. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  88. package/lib/components/VDataTable/VDataTableColumn.js +5 -5
  89. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  90. package/lib/components/VDataTable/VDataTableFooter.js +6 -6
  91. package/lib/components/VDataTable/VDataTableFooter.js.map +1 -1
  92. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +7 -7
  93. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
  94. package/lib/components/VDataTable/VDataTableHeaders.js +11 -11
  95. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  96. package/lib/components/VDataTable/VDataTableRow.js +6 -6
  97. package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
  98. package/lib/components/VDataTable/VDataTableRows.js +7 -7
  99. package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
  100. package/lib/components/VDataTable/VDataTableServer.js +4 -4
  101. package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
  102. package/lib/components/VDataTable/VDataTableVirtual.js +14 -14
  103. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  104. package/lib/components/VDatePicker/VDatePicker.js +3 -3
  105. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  106. package/lib/components/VDatePicker/VDatePickerControls.js +5 -5
  107. package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
  108. package/lib/components/VDatePicker/VDatePickerHeader.js +8 -8
  109. package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  110. package/lib/components/VDatePicker/VDatePickerMonth.js +10 -10
  111. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  112. package/lib/components/VDatePicker/VDatePickerMonths.js +5 -5
  113. package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
  114. package/lib/components/VDatePicker/VDatePickerYears.js +5 -5
  115. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  116. package/lib/components/VDialog/__test__/VDialog.spec.browser.js +5 -5
  117. package/lib/components/VDialog/__test__/VDialog.spec.browser.js.map +1 -1
  118. package/lib/components/VDivider/VDivider.js +10 -10
  119. package/lib/components/VDivider/VDivider.js.map +1 -1
  120. package/lib/components/VEmptyState/VEmptyState.js +14 -14
  121. package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
  122. package/lib/components/VExpansionPanel/VExpansionPanel.js +6 -6
  123. package/lib/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
  124. package/lib/components/VExpansionPanel/VExpansionPanelText.js +5 -5
  125. package/lib/components/VExpansionPanel/VExpansionPanelText.js.map +1 -1
  126. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js +10 -10
  127. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js.map +1 -1
  128. package/lib/components/VExpansionPanel/VExpansionPanels.js +4 -4
  129. package/lib/components/VExpansionPanel/VExpansionPanels.js.map +1 -1
  130. package/lib/components/VFab/VFab.js +7 -7
  131. package/lib/components/VFab/VFab.js.map +1 -1
  132. package/lib/components/VField/VField.js +20 -18
  133. package/lib/components/VField/VField.js.map +1 -1
  134. package/lib/components/VField/VFieldLabel.js +4 -4
  135. package/lib/components/VField/VFieldLabel.js.map +1 -1
  136. package/lib/components/VFileInput/VFileInput.d.ts +30 -30
  137. package/lib/components/VFileInput/VFileInput.js +5 -5
  138. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  139. package/lib/components/VFooter/VFooter.js +4 -4
  140. package/lib/components/VFooter/VFooter.js.map +1 -1
  141. package/lib/components/VForm/VForm.js +4 -4
  142. package/lib/components/VForm/VForm.js.map +1 -1
  143. package/lib/components/VGrid/VContainer.js +4 -4
  144. package/lib/components/VGrid/VContainer.js.map +1 -1
  145. package/lib/components/VIcon/VIcon.js +5 -5
  146. package/lib/components/VIcon/VIcon.js.map +1 -1
  147. package/lib/components/VImg/VImg.js +19 -19
  148. package/lib/components/VImg/VImg.js.map +1 -1
  149. package/lib/components/VInfiniteScroll/VInfiniteScroll.js +10 -10
  150. package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
  151. package/lib/components/VInput/InputIcon.d.ts +1 -1
  152. package/lib/components/VInput/InputIcon.js +5 -4
  153. package/lib/components/VInput/InputIcon.js.map +1 -1
  154. package/lib/components/VInput/VInput.d.ts +12 -12
  155. package/lib/components/VInput/VInput.js +9 -9
  156. package/lib/components/VInput/VInput.js.map +1 -1
  157. package/lib/components/VItemGroup/VItemGroup.js +3 -3
  158. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  159. package/lib/components/VLabel/VLabel.js +5 -5
  160. package/lib/components/VLabel/VLabel.js.map +1 -1
  161. package/lib/components/VLayout/VLayout.js +4 -4
  162. package/lib/components/VLayout/VLayout.js.map +1 -1
  163. package/lib/components/VLayout/VLayoutItem.js +4 -4
  164. package/lib/components/VLayout/VLayoutItem.js.map +1 -1
  165. package/lib/components/VLazy/VLazy.js +6 -6
  166. package/lib/components/VLazy/VLazy.js.map +1 -1
  167. package/lib/components/VList/VList.d.ts +3 -3
  168. package/lib/components/VList/VList.js +4 -4
  169. package/lib/components/VList/VList.js.map +1 -1
  170. package/lib/components/VList/VListGroup.js +5 -5
  171. package/lib/components/VList/VListGroup.js.map +1 -1
  172. package/lib/components/VList/VListItem.js +11 -11
  173. package/lib/components/VList/VListItem.js.map +1 -1
  174. package/lib/components/VList/VListItemAction.js +4 -4
  175. package/lib/components/VList/VListItemAction.js.map +1 -1
  176. package/lib/components/VList/VListItemMedia.js +4 -4
  177. package/lib/components/VList/VListItemMedia.js.map +1 -1
  178. package/lib/components/VList/VListItemSubtitle.js +4 -4
  179. package/lib/components/VList/VListItemSubtitle.js.map +1 -1
  180. package/lib/components/VList/VListSubheader.js +6 -6
  181. package/lib/components/VList/VListSubheader.js.map +1 -1
  182. package/lib/components/VLocaleProvider/VLocaleProvider.js +4 -4
  183. package/lib/components/VLocaleProvider/VLocaleProvider.js.map +1 -1
  184. package/lib/components/VMain/VMain.js +5 -5
  185. package/lib/components/VMain/VMain.js.map +1 -1
  186. package/lib/components/VMessages/VMessages.js +4 -4
  187. package/lib/components/VMessages/VMessages.js.map +1 -1
  188. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +7 -7
  189. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  190. package/lib/components/VNavigationDrawer/touch.js +2 -4
  191. package/lib/components/VNavigationDrawer/touch.js.map +1 -1
  192. package/lib/components/VNumberInput/VNumberInput.css +15 -4
  193. package/lib/components/VNumberInput/VNumberInput.d.ts +80 -80
  194. package/lib/components/VNumberInput/VNumberInput.js +38 -22
  195. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  196. package/lib/components/VNumberInput/VNumberInput.sass +18 -6
  197. package/lib/components/VOtpInput/VOtpInput.js +7 -7
  198. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  199. package/lib/components/VOverlay/VOverlay.js +8 -8
  200. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  201. package/lib/components/VOverlay/locationStrategies.js +16 -8
  202. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  203. package/lib/components/VPagination/VPagination.js +11 -11
  204. package/lib/components/VPagination/VPagination.js.map +1 -1
  205. package/lib/components/VParallax/VParallax.js +4 -4
  206. package/lib/components/VParallax/VParallax.js.map +1 -1
  207. package/lib/components/VProgressCircular/VProgressCircular.js +14 -14
  208. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  209. package/lib/components/VProgressLinear/VProgressLinear.js +26 -26
  210. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  211. package/lib/components/VRadioGroup/VRadioGroup.d.ts +12 -12
  212. package/lib/components/VRadioGroup/VRadioGroup.js +2 -2
  213. package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
  214. package/lib/components/VRangeSlider/VRangeSlider.d.ts +12 -12
  215. package/lib/components/VRangeSlider/VRangeSlider.js +5 -5
  216. package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
  217. package/lib/components/VRating/VRating.js +14 -14
  218. package/lib/components/VRating/VRating.js.map +1 -1
  219. package/lib/components/VResponsive/VResponsive.js +9 -9
  220. package/lib/components/VResponsive/VResponsive.js.map +1 -1
  221. package/lib/components/VSelect/VSelect.d.ts +84 -84
  222. package/lib/components/VSelect/VSelect.js +44 -13
  223. package/lib/components/VSelect/VSelect.js.map +1 -1
  224. package/lib/components/VSelectionControl/VSelectionControl.js +11 -11
  225. package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
  226. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js +5 -5
  227. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js.map +1 -1
  228. package/lib/components/VSheet/VSheet.js +3 -3
  229. package/lib/components/VSheet/VSheet.js.map +1 -1
  230. package/lib/components/VSkeletonLoader/VSkeletonLoader.js +4 -4
  231. package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  232. package/lib/components/VSlideGroup/VSlideGroup.js +12 -12
  233. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  234. package/lib/components/VSlider/VSlider.d.ts +12 -12
  235. package/lib/components/VSlider/VSlider.js +4 -4
  236. package/lib/components/VSlider/VSlider.js.map +1 -1
  237. package/lib/components/VSlider/VSliderThumb.js +19 -19
  238. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  239. package/lib/components/VSlider/VSliderTrack.js +23 -23
  240. package/lib/components/VSlider/VSliderTrack.js.map +1 -1
  241. package/lib/components/VSlider/slider.js +1 -1
  242. package/lib/components/VSlider/slider.js.map +1 -1
  243. package/lib/components/VSnackbar/VSnackbar.js +4 -4
  244. package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
  245. package/lib/components/VSnackbarQueue/VSnackbarQueue.js +3 -3
  246. package/lib/components/VSnackbarQueue/VSnackbarQueue.js.map +1 -1
  247. package/lib/components/VSparkline/VBarline.js +12 -12
  248. package/lib/components/VSparkline/VBarline.js.map +1 -1
  249. package/lib/components/VSparkline/VTrendline.js +8 -8
  250. package/lib/components/VSparkline/VTrendline.js.map +1 -1
  251. package/lib/components/VStepper/VStepper.js +2 -2
  252. package/lib/components/VStepper/VStepper.js.map +1 -1
  253. package/lib/components/VStepper/VStepperActions.js +2 -2
  254. package/lib/components/VStepper/VStepperActions.js.map +1 -1
  255. package/lib/components/VStepper/VStepperItem.js +10 -10
  256. package/lib/components/VStepper/VStepperItem.js.map +1 -1
  257. package/lib/components/VSwitch/VSwitch.d.ts +12 -12
  258. package/lib/components/VSwitch/VSwitch.js +10 -10
  259. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  260. package/lib/components/VSystemBar/VSystemBar.js +4 -4
  261. package/lib/components/VSystemBar/VSystemBar.js.map +1 -1
  262. package/lib/components/VTable/VTable.js +8 -8
  263. package/lib/components/VTable/VTable.js.map +1 -1
  264. package/lib/components/VTabs/VTab.js +4 -4
  265. package/lib/components/VTabs/VTab.js.map +1 -1
  266. package/lib/components/VTabs/VTabs.js +2 -2
  267. package/lib/components/VTabs/VTabs.js.map +1 -1
  268. package/lib/components/VTextField/VTextField.d.ts +30 -30
  269. package/lib/components/VTextField/VTextField.js +12 -12
  270. package/lib/components/VTextField/VTextField.js.map +1 -1
  271. package/lib/components/VTextarea/VTextarea.d.ts +30 -30
  272. package/lib/components/VTextarea/VTextarea.js +10 -10
  273. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  274. package/lib/components/VThemeProvider/VThemeProvider.js +3 -3
  275. package/lib/components/VThemeProvider/VThemeProvider.js.map +1 -1
  276. package/lib/components/VTimeline/VTimeline.js +5 -5
  277. package/lib/components/VTimeline/VTimeline.js.map +1 -1
  278. package/lib/components/VTimeline/VTimelineDivider.js +17 -17
  279. package/lib/components/VTimeline/VTimelineDivider.js.map +1 -1
  280. package/lib/components/VTimeline/VTimelineItem.js +9 -9
  281. package/lib/components/VTimeline/VTimelineItem.js.map +1 -1
  282. package/lib/components/VToolbar/VToolbar.js +13 -13
  283. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  284. package/lib/components/VToolbar/VToolbarItems.js +4 -4
  285. package/lib/components/VToolbar/VToolbarItems.js.map +1 -1
  286. package/lib/components/VToolbar/VToolbarTitle.js +4 -4
  287. package/lib/components/VToolbar/VToolbarTitle.js.map +1 -1
  288. package/lib/components/VValidation/VValidation.d.ts +8 -8
  289. package/lib/components/VVirtualScroll/VVirtualScroll.js +13 -13
  290. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  291. package/lib/components/VVirtualScroll/VVirtualScrollItem.js +3 -3
  292. package/lib/components/VVirtualScroll/VVirtualScrollItem.js.map +1 -1
  293. package/lib/components/VWindow/VWindow.js +13 -13
  294. package/lib/components/VWindow/VWindow.js.map +1 -1
  295. package/lib/components/VWindow/VWindowItem.js +6 -6
  296. package/lib/components/VWindow/VWindowItem.js.map +1 -1
  297. package/lib/composables/filter.js +8 -8
  298. package/lib/composables/filter.js.map +1 -1
  299. package/lib/composables/goto.js +1 -1
  300. package/lib/composables/goto.js.map +1 -1
  301. package/lib/composables/icons.js +6 -6
  302. package/lib/composables/icons.js.map +1 -1
  303. package/lib/composables/loader.js +3 -3
  304. package/lib/composables/loader.js.map +1 -1
  305. package/lib/composables/validation.d.ts +6 -5
  306. package/lib/composables/validation.js +4 -29
  307. package/lib/composables/validation.js.map +1 -1
  308. package/lib/composables/variant.js +5 -5
  309. package/lib/composables/variant.js.map +1 -1
  310. package/lib/entry-bundler.js +1 -1
  311. package/lib/framework.d.ts +60 -60
  312. package/lib/framework.js +1 -1
  313. package/lib/labs/VCalendar/VCalendar.js +15 -15
  314. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  315. package/lib/labs/VCalendar/VCalendarDay.js +4 -4
  316. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  317. package/lib/labs/VCalendar/VCalendarHeader.js +4 -4
  318. package/lib/labs/VCalendar/VCalendarHeader.js.map +1 -1
  319. package/lib/labs/VCalendar/VCalendarInterval.js +10 -10
  320. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  321. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +2 -2
  322. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  323. package/lib/labs/VCalendar/VCalendarMonthDay.js +6 -6
  324. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  325. package/lib/labs/VColorInput/VColorInput.d.ts +12 -12
  326. package/lib/labs/VColorInput/VColorInput.js +3 -3
  327. package/lib/labs/VColorInput/VColorInput.js.map +1 -1
  328. package/lib/labs/VDateInput/VDateInput.d.ts +84 -84
  329. package/lib/labs/VDateInput/VDateInput.js +2 -2
  330. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  331. package/lib/labs/VFileUpload/VFileUpload.js +9 -9
  332. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  333. package/lib/labs/VFileUpload/VFileUploadItem.js +3 -3
  334. package/lib/labs/VFileUpload/VFileUploadItem.js.map +1 -1
  335. package/lib/labs/VIconBtn/VIconBtn.js +7 -7
  336. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  337. package/lib/labs/VPicker/VPicker.js +7 -7
  338. package/lib/labs/VPicker/VPicker.js.map +1 -1
  339. package/lib/labs/VPullToRefresh/VPullToRefresh.js +13 -13
  340. package/lib/labs/VPullToRefresh/VPullToRefresh.js.map +1 -1
  341. package/lib/labs/VStepperVertical/VStepperVertical.js +2 -2
  342. package/lib/labs/VStepperVertical/VStepperVertical.js.map +1 -1
  343. package/lib/labs/VStepperVertical/VStepperVerticalItem.js +5 -5
  344. package/lib/labs/VStepperVertical/VStepperVerticalItem.js.map +1 -1
  345. package/lib/labs/VTimePicker/VTimePicker.js +2 -2
  346. package/lib/labs/VTimePicker/VTimePicker.js.map +1 -1
  347. package/lib/labs/VTimePicker/VTimePickerClock.js +15 -15
  348. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  349. package/lib/labs/VTimePicker/VTimePickerControls.js +24 -24
  350. package/lib/labs/VTimePicker/VTimePickerControls.js.map +1 -1
  351. package/lib/labs/VTreeview/VTreeviewChildren.js +2 -2
  352. package/lib/labs/VTreeview/VTreeviewChildren.js.map +1 -1
  353. package/lib/labs/VTreeview/VTreeviewGroup.js +2 -2
  354. package/lib/labs/VTreeview/VTreeviewGroup.js.map +1 -1
  355. package/lib/labs/VTreeview/VTreeviewItem.js +3 -3
  356. package/lib/labs/VTreeview/VTreeviewItem.js.map +1 -1
  357. package/lib/labs/rules/rules.d.ts +9 -5
  358. package/lib/labs/rules/rules.js +73 -51
  359. package/lib/labs/rules/rules.js.map +1 -1
  360. package/lib/util/box.d.ts +1 -0
  361. package/lib/util/box.js +27 -0
  362. package/lib/util/box.js.map +1 -1
  363. package/lib/util/helpers.d.ts +1 -0
  364. package/lib/util/helpers.js +16 -1
  365. package/lib/util/helpers.js.map +1 -1
  366. package/package.json +7 -7
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.8.5
2
+ * Vuetify v3.8.7
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
- import { shallowRef, reactive, watchEffect, toRef, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, createVNode, mergeProps, toValue, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, TransitionGroup, Transition, toRefs, isRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
7
+ import { shallowRef, reactive, watchEffect, toRef, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, createVNode, mergeProps, createElementVNode, normalizeClass, toValue, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, normalizeStyle, TransitionGroup, Transition, toRefs, isRef, onBeforeMount, nextTick, withDirectives, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, normalizeProps, guardReactiveProps, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
8
8
 
9
9
  const IN_BROWSER = typeof window !== 'undefined';
10
10
  const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
@@ -431,7 +431,7 @@ function getNextElement(elements, location, condition) {
431
431
  }
432
432
  function focusChild(el, location) {
433
433
  const focusable = focusableChildren(el);
434
- if (!location) {
434
+ if (location == null) {
435
435
  if (el === document.activeElement || !el.contains(document.activeElement)) {
436
436
  focusable[0]?.focus();
437
437
  }
@@ -510,6 +510,21 @@ function checkPrintable(e) {
510
510
  function isPrimitive(value) {
511
511
  return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint';
512
512
  }
513
+ function extractNumber(text, decimalDigitsLimit) {
514
+ const cleanText = text.split('').filter(x => /[\d\-.]/.test(x)).filter((x, i, all) => i === 0 && /[-]/.test(x) ||
515
+ // sign allowed at the start
516
+ x === '.' && i === all.indexOf('.') ||
517
+ // decimal separator allowed only once
518
+ /\d/.test(x)).join('');
519
+ if (decimalDigitsLimit === 0) {
520
+ return cleanText.split('.')[0];
521
+ }
522
+ if (decimalDigitsLimit !== null && /\.\d/.test(cleanText)) {
523
+ const parts = cleanText.split('.');
524
+ return [parts[0], parts[1].substring(0, decimalDigitsLimit)].join('.');
525
+ }
526
+ return cleanText;
527
+ }
513
528
 
514
529
  // Utilities
515
530
  const block = ['top', 'bottom'];
@@ -614,6 +629,33 @@ function getTargetBox(target) {
614
629
  return target.getBoundingClientRect();
615
630
  }
616
631
  }
632
+ function getElementBox(el) {
633
+ if (el === document.documentElement) {
634
+ if (!visualViewport) {
635
+ return new Box({
636
+ x: 0,
637
+ y: 0,
638
+ width: document.documentElement.clientWidth,
639
+ height: document.documentElement.clientHeight
640
+ });
641
+ } else {
642
+ return new Box({
643
+ x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft,
644
+ y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop,
645
+ width: visualViewport.width * visualViewport.scale,
646
+ height: visualViewport.height * visualViewport.scale
647
+ });
648
+ }
649
+ } else {
650
+ const rect = el.getBoundingClientRect();
651
+ return new Box({
652
+ x: rect.x,
653
+ y: rect.y,
654
+ width: el.clientWidth,
655
+ height: el.clientHeight
656
+ });
657
+ }
658
+ }
617
659
 
618
660
  // Utilities
619
661
 
@@ -1612,18 +1654,18 @@ const VSvgIcon = defineComponent({
1612
1654
  return createVNode(props.tag, mergeProps(attrs, {
1613
1655
  "style": null
1614
1656
  }), {
1615
- default: () => [createVNode("svg", {
1657
+ default: () => [createElementVNode("svg", {
1616
1658
  "class": "v-icon__svg",
1617
1659
  "xmlns": "http://www.w3.org/2000/svg",
1618
1660
  "viewBox": "0 0 24 24",
1619
1661
  "role": "img",
1620
1662
  "aria-hidden": "true"
1621
- }, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? createVNode("path", {
1663
+ }, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? createElementVNode("path", {
1622
1664
  "d": path[0],
1623
1665
  "fill-opacity": path[1]
1624
- }, null) : createVNode("path", {
1666
+ }, null) : createElementVNode("path", {
1625
1667
  "d": path
1626
- }, null)) : createVNode("path", {
1668
+ }, null)) : createElementVNode("path", {
1627
1669
  "d": props.icon
1628
1670
  }, null)])]
1629
1671
  });
@@ -1647,7 +1689,7 @@ const VClassIcon = defineComponent({
1647
1689
  setup(props) {
1648
1690
  return () => {
1649
1691
  return createVNode(props.tag, {
1650
- "class": props.icon
1692
+ "class": normalizeClass(props.icon)
1651
1693
  }, null);
1652
1694
  };
1653
1695
  }
@@ -3112,11 +3154,11 @@ const VApp = genericComponent()({
3112
3154
  const {
3113
3155
  rtlClasses
3114
3156
  } = useRtl();
3115
- useRender(() => createVNode("div", {
3157
+ useRender(() => createElementVNode("div", {
3116
3158
  "ref": layoutRef,
3117
- "class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],
3118
- "style": [props.style]
3119
- }, [createVNode("div", {
3159
+ "class": normalizeClass(['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class]),
3160
+ "style": normalizeStyle([props.style])
3161
+ }, [createElementVNode("div", {
3120
3162
  "class": "v-application__wrap"
3121
3163
  }, [slots.default?.()])]));
3122
3164
  return {
@@ -3156,10 +3198,10 @@ const VToolbarTitle = genericComponent()({
3156
3198
  useRender(() => {
3157
3199
  const hasText = !!(slots.default || slots.text || props.text);
3158
3200
  return createVNode(props.tag, {
3159
- "class": ['v-toolbar-title', props.class],
3160
- "style": props.style
3201
+ "class": normalizeClass(['v-toolbar-title', props.class]),
3202
+ "style": normalizeStyle(props.style)
3161
3203
  }, {
3162
- default: () => [hasText && createVNode("div", {
3204
+ default: () => [hasText && createElementVNode("div", {
3163
3205
  "class": "v-toolbar-title__placeholder"
3164
3206
  }, [slots.text ? slots.text() : props.text, slots.default?.()])]
3165
3207
  });
@@ -3619,16 +3661,16 @@ const VResponsive = genericComponent()({
3619
3661
  const {
3620
3662
  dimensionStyles
3621
3663
  } = useDimension(props);
3622
- useRender(() => createVNode("div", {
3623
- "class": ['v-responsive', {
3664
+ useRender(() => createElementVNode("div", {
3665
+ "class": normalizeClass(['v-responsive', {
3624
3666
  'v-responsive--inline': props.inline
3625
- }, props.class],
3626
- "style": [dimensionStyles.value, props.style]
3627
- }, [createVNode("div", {
3667
+ }, props.class]),
3668
+ "style": normalizeStyle([dimensionStyles.value, props.style])
3669
+ }, [createElementVNode("div", {
3628
3670
  "class": "v-responsive__sizer",
3629
- "style": aspectStyles.value
3630
- }, null), slots.additional?.(), slots.default && createVNode("div", {
3631
- "class": ['v-responsive__content', props.contentClass]
3671
+ "style": normalizeStyle(aspectStyles.value)
3672
+ }, null), slots.additional?.(), slots.default && createElementVNode("div", {
3673
+ "class": normalizeClass(['v-responsive__content', props.contentClass])
3632
3674
  }, [slots.default()])]));
3633
3675
  return {};
3634
3676
  }
@@ -3862,7 +3904,7 @@ const makeVImgProps = propsFactory({
3862
3904
  const VImg = genericComponent()({
3863
3905
  name: 'VImg',
3864
3906
  directives: {
3865
- intersect: Intersect
3907
+ vIntersect: Intersect
3866
3908
  },
3867
3909
  props: makeVImgProps(),
3868
3910
  emits: {
@@ -3991,11 +4033,11 @@ const VImg = genericComponent()({
3991
4033
  }));
3992
4034
  const __image = () => {
3993
4035
  if (!normalisedSrc.value.src || state.value === 'idle') return null;
3994
- const img = createVNode("img", {
3995
- "class": ['v-img__img', containClasses.value],
3996
- "style": {
4036
+ const img = createElementVNode("img", {
4037
+ "class": normalizeClass(['v-img__img', containClasses.value]),
4038
+ "style": normalizeStyle({
3997
4039
  objectPosition: props.position
3998
- },
4040
+ }),
3999
4041
  "crossorigin": props.crossorigin,
4000
4042
  "src": normalisedSrc.value.src,
4001
4043
  "srcset": normalisedSrc.value.srcset,
@@ -4012,7 +4054,7 @@ const VImg = genericComponent()({
4012
4054
  "transition": props.transition,
4013
4055
  "appear": true
4014
4056
  }, {
4015
- default: () => [withDirectives(sources ? createVNode("picture", {
4057
+ default: () => [withDirectives(sources ? createElementVNode("picture", {
4016
4058
  "class": "v-img__picture"
4017
4059
  }, [sources, img]) : img, [[vShow, state.value === 'loaded']])]
4018
4060
  });
@@ -4020,11 +4062,11 @@ const VImg = genericComponent()({
4020
4062
  const __preloadImage = () => createVNode(MaybeTransition, {
4021
4063
  "transition": props.transition
4022
4064
  }, {
4023
- default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && createVNode("img", {
4024
- "class": ['v-img__img', 'v-img__img--preload', containClasses.value],
4025
- "style": {
4065
+ default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && createElementVNode("img", {
4066
+ "class": normalizeClass(['v-img__img', 'v-img__img--preload', containClasses.value]),
4067
+ "style": normalizeStyle({
4026
4068
  objectPosition: props.position
4027
- },
4069
+ }),
4028
4070
  "crossorigin": props.crossorigin,
4029
4071
  "src": normalisedSrc.value.lazySrc,
4030
4072
  "alt": props.alt,
@@ -4038,7 +4080,7 @@ const VImg = genericComponent()({
4038
4080
  "transition": props.transition,
4039
4081
  "appear": true
4040
4082
  }, {
4041
- default: () => [(state.value === 'loading' || state.value === 'error' && !slots.error) && createVNode("div", {
4083
+ default: () => [(state.value === 'loading' || state.value === 'error' && !slots.error) && createElementVNode("div", {
4042
4084
  "class": "v-img__placeholder"
4043
4085
  }, [slots.placeholder()])]
4044
4086
  });
@@ -4049,18 +4091,18 @@ const VImg = genericComponent()({
4049
4091
  "transition": props.transition,
4050
4092
  "appear": true
4051
4093
  }, {
4052
- default: () => [state.value === 'error' && createVNode("div", {
4094
+ default: () => [state.value === 'error' && createElementVNode("div", {
4053
4095
  "class": "v-img__error"
4054
4096
  }, [slots.error()])]
4055
4097
  });
4056
4098
  };
4057
4099
  const __gradient = () => {
4058
4100
  if (!props.gradient) return null;
4059
- return createVNode("div", {
4101
+ return createElementVNode("div", {
4060
4102
  "class": "v-img__gradient",
4061
- "style": {
4103
+ "style": normalizeStyle({
4062
4104
  backgroundImage: `linear-gradient(${props.gradient})`
4063
- }
4105
+ })
4064
4106
  }, null);
4065
4107
  };
4066
4108
  const isBooted = shallowRef(false);
@@ -4092,9 +4134,9 @@ const VImg = genericComponent()({
4092
4134
  "aria-label": props.alt,
4093
4135
  "role": props.alt ? 'img' : undefined
4094
4136
  }), {
4095
- additional: () => createVNode(Fragment, null, [createVNode(__image, null, null), createVNode(__preloadImage, null, null), createVNode(__gradient, null, null), createVNode(__placeholder, null, null), createVNode(__error, null, null)]),
4137
+ additional: () => createElementVNode(Fragment, null, [createVNode(__image, null, null), createVNode(__preloadImage, null, null), createVNode(__gradient, null, null), createVNode(__placeholder, null, null), createVNode(__error, null, null)]),
4096
4138
  default: slots.default
4097
- }), [[resolveDirective("intersect"), {
4139
+ }), [[Intersect, {
4098
4140
  handler: init,
4099
4141
  options: props.options
4100
4142
  }, null, {
@@ -4237,16 +4279,16 @@ const VToolbar = genericComponent()({
4237
4279
  const extension = slots.extension?.();
4238
4280
  isExtended.value = !!(props.extended || extension);
4239
4281
  return createVNode(props.tag, {
4240
- "class": ['v-toolbar', {
4282
+ "class": normalizeClass(['v-toolbar', {
4241
4283
  'v-toolbar--absolute': props.absolute,
4242
4284
  'v-toolbar--collapse': props.collapse,
4243
4285
  'v-toolbar--flat': props.flat,
4244
4286
  'v-toolbar--floating': props.floating,
4245
4287
  [`v-toolbar--density-${props.density}`]: true
4246
- }, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],
4247
- "style": [backgroundColorStyles.value, props.style]
4288
+ }, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class]),
4289
+ "style": normalizeStyle([backgroundColorStyles.value, props.style])
4248
4290
  }, {
4249
- default: () => [hasImage && createVNode("div", {
4291
+ default: () => [hasImage && createElementVNode("div", {
4250
4292
  "key": "image",
4251
4293
  "class": "v-toolbar__image"
4252
4294
  }, [!slots.image ? createVNode(VImg, {
@@ -4269,19 +4311,19 @@ const VToolbar = genericComponent()({
4269
4311
  }
4270
4312
  }
4271
4313
  }, {
4272
- default: () => [createVNode("div", {
4314
+ default: () => [createElementVNode("div", {
4273
4315
  "class": "v-toolbar__content",
4274
- "style": {
4316
+ "style": normalizeStyle({
4275
4317
  height: convertToUnit(contentHeight.value)
4276
- }
4277
- }, [slots.prepend && createVNode("div", {
4318
+ })
4319
+ }, [slots.prepend && createElementVNode("div", {
4278
4320
  "class": "v-toolbar__prepend"
4279
4321
  }, [slots.prepend?.()]), hasTitle && createVNode(VToolbarTitle, {
4280
4322
  "key": "title",
4281
4323
  "text": props.title
4282
4324
  }, {
4283
4325
  text: slots.title
4284
- }), slots.default?.(), slots.append && createVNode("div", {
4326
+ }), slots.default?.(), slots.append && createElementVNode("div", {
4285
4327
  "class": "v-toolbar__append"
4286
4328
  }, [slots.append?.()])])]
4287
4329
  }), createVNode(VDefaultsProvider, {
@@ -4292,11 +4334,11 @@ const VToolbar = genericComponent()({
4292
4334
  }
4293
4335
  }, {
4294
4336
  default: () => [createVNode(VExpandTransition, null, {
4295
- default: () => [isExtended.value && createVNode("div", {
4337
+ default: () => [isExtended.value && createElementVNode("div", {
4296
4338
  "class": "v-toolbar__extension",
4297
- "style": {
4339
+ "style": normalizeStyle({
4298
4340
  height: convertToUnit(extensionHeight.value)
4299
- }
4341
+ })
4300
4342
  }, [extension])]
4301
4343
  })]
4302
4344
  })]
@@ -4575,12 +4617,12 @@ function useDensity(props) {
4575
4617
 
4576
4618
  const allowedVariants$2 = ['elevated', 'flat', 'tonal', 'outlined', 'text', 'plain'];
4577
4619
  function genOverlays(isClickable, name) {
4578
- return createVNode(Fragment, null, [isClickable && createVNode("span", {
4620
+ return createElementVNode(Fragment, null, [isClickable && createElementVNode("span", {
4579
4621
  "key": "overlay",
4580
- "class": `${name}__overlay`
4581
- }, null), createVNode("span", {
4622
+ "class": normalizeClass(`${name}__overlay`)
4623
+ }, null), createElementVNode("span", {
4582
4624
  "key": "underlay",
4583
- "class": `${name}__underlay`
4625
+ "class": normalizeClass(`${name}__underlay`)
4584
4626
  }, null)]);
4585
4627
  }
4586
4628
  const makeVariantProps = propsFactory({
@@ -4664,10 +4706,10 @@ const VBtnGroup = genericComponent()({
4664
4706
  });
4665
4707
  useRender(() => {
4666
4708
  return createVNode(props.tag, {
4667
- "class": ['v-btn-group', {
4709
+ "class": normalizeClass(['v-btn-group', {
4668
4710
  'v-btn-group--divided': props.divided
4669
- }, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
4670
- "style": props.style
4711
+ }, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
4712
+ "style": normalizeStyle(props.style)
4671
4713
  }, slots);
4672
4714
  });
4673
4715
  }
@@ -5024,19 +5066,19 @@ const VIcon = genericComponent()({
5024
5066
  return createVNode(iconData.value.component, {
5025
5067
  "tag": props.tag,
5026
5068
  "icon": iconData.value.icon,
5027
- "class": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
5069
+ "class": normalizeClass(['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
5028
5070
  'v-icon--clickable': hasClick,
5029
5071
  'v-icon--disabled': props.disabled,
5030
5072
  'v-icon--start': props.start,
5031
5073
  'v-icon--end': props.end
5032
- }, props.class],
5033
- "style": [{
5074
+ }, props.class]),
5075
+ "style": normalizeStyle([{
5034
5076
  '--v-icon-opacity': props.opacity
5035
5077
  }, !sizeClasses.value ? {
5036
5078
  fontSize: convertToUnit(props.size),
5037
5079
  height: convertToUnit(props.size),
5038
5080
  width: convertToUnit(props.size)
5039
- } : undefined, textColorStyles.value, props.style],
5081
+ } : undefined, textColorStyles.value, props.style]),
5040
5082
  "role": hasClick ? 'button' : undefined,
5041
5083
  "aria-hidden": !hasClick,
5042
5084
  "tabindex": hasClick ? props.disabled ? -1 : 0 : undefined
@@ -5133,7 +5175,7 @@ const VProgressCircular = genericComponent()({
5133
5175
  resizeRef,
5134
5176
  contentRect
5135
5177
  } = useResizeObserver();
5136
- const normalizedValue = toRef(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));
5178
+ const normalizedValue = toRef(() => clamp(parseFloat(props.modelValue), 0, 100));
5137
5179
  const width = toRef(() => Number(props.width));
5138
5180
  const size = toRef(() => {
5139
5181
  // Get size from element if size prop value is small, large etc
@@ -5148,26 +5190,26 @@ const VProgressCircular = genericComponent()({
5148
5190
  });
5149
5191
  useRender(() => createVNode(props.tag, {
5150
5192
  "ref": root,
5151
- "class": ['v-progress-circular', {
5193
+ "class": normalizeClass(['v-progress-circular', {
5152
5194
  'v-progress-circular--indeterminate': !!props.indeterminate,
5153
5195
  'v-progress-circular--visible': isIntersecting.value,
5154
5196
  'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink'
5155
- }, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class],
5156
- "style": [sizeStyles.value, textColorStyles.value, props.style],
5197
+ }, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class]),
5198
+ "style": normalizeStyle([sizeStyles.value, textColorStyles.value, props.style]),
5157
5199
  "role": "progressbar",
5158
5200
  "aria-valuemin": "0",
5159
5201
  "aria-valuemax": "100",
5160
5202
  "aria-valuenow": props.indeterminate ? undefined : normalizedValue.value
5161
5203
  }, {
5162
- default: () => [createVNode("svg", {
5163
- "style": {
5204
+ default: () => [createElementVNode("svg", {
5205
+ "style": normalizeStyle({
5164
5206
  transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`
5165
- },
5207
+ }),
5166
5208
  "xmlns": "http://www.w3.org/2000/svg",
5167
5209
  "viewBox": `0 0 ${diameter.value} ${diameter.value}`
5168
- }, [createVNode("circle", {
5169
- "class": ['v-progress-circular__underlay', underlayColorClasses.value],
5170
- "style": underlayColorStyles.value,
5210
+ }, [createElementVNode("circle", {
5211
+ "class": normalizeClass(['v-progress-circular__underlay', underlayColorClasses.value]),
5212
+ "style": normalizeStyle(underlayColorStyles.value),
5171
5213
  "fill": "transparent",
5172
5214
  "cx": "50%",
5173
5215
  "cy": "50%",
@@ -5175,7 +5217,7 @@ const VProgressCircular = genericComponent()({
5175
5217
  "stroke-width": strokeWidth.value,
5176
5218
  "stroke-dasharray": CIRCUMFERENCE,
5177
5219
  "stroke-dashoffset": 0
5178
- }, null), createVNode("circle", {
5220
+ }, null), createElementVNode("circle", {
5179
5221
  "class": "v-progress-circular__overlay",
5180
5222
  "fill": "transparent",
5181
5223
  "cx": "50%",
@@ -5184,7 +5226,7 @@ const VProgressCircular = genericComponent()({
5184
5226
  "stroke-width": strokeWidth.value,
5185
5227
  "stroke-dasharray": CIRCUMFERENCE,
5186
5228
  "stroke-dashoffset": strokeDashOffset.value
5187
- }, null)]), slots.default && createVNode("div", {
5229
+ }, null)]), slots.default && createElementVNode("div", {
5188
5230
  "class": "v-progress-circular__content"
5189
5231
  }, [slots.default({
5190
5232
  value: normalizedValue.value
@@ -5358,21 +5400,21 @@ const VProgressLinear = genericComponent()({
5358
5400
  }
5359
5401
  useRender(() => createVNode(props.tag, {
5360
5402
  "ref": intersectionRef,
5361
- "class": ['v-progress-linear', {
5403
+ "class": normalizeClass(['v-progress-linear', {
5362
5404
  'v-progress-linear--absolute': props.absolute,
5363
5405
  'v-progress-linear--active': props.active && isIntersecting.value,
5364
5406
  'v-progress-linear--reverse': isReversed.value,
5365
5407
  'v-progress-linear--rounded': props.rounded,
5366
5408
  'v-progress-linear--rounded-bar': props.roundedBar,
5367
5409
  'v-progress-linear--striped': props.striped
5368
- }, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],
5369
- "style": [{
5410
+ }, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class]),
5411
+ "style": normalizeStyle([{
5370
5412
  bottom: props.location === 'bottom' ? 0 : undefined,
5371
5413
  top: props.location === 'top' ? 0 : undefined,
5372
5414
  height: props.active ? convertToUnit(height.value) : 0,
5373
5415
  '--v-progress-linear-height': convertToUnit(height.value),
5374
5416
  ...(props.absolute ? locationStyles.value : {})
5375
- }, props.style],
5417
+ }, props.style]),
5376
5418
  "role": "progressbar",
5377
5419
  "aria-hidden": props.active ? 'false' : 'true',
5378
5420
  "aria-valuemin": "0",
@@ -5380,10 +5422,10 @@ const VProgressLinear = genericComponent()({
5380
5422
  "aria-valuenow": props.indeterminate ? undefined : Math.min(parseFloat(progress.value), max.value),
5381
5423
  "onClick": props.clickable && handleClick
5382
5424
  }, {
5383
- default: () => [props.stream && createVNode("div", {
5425
+ default: () => [props.stream && createElementVNode("div", {
5384
5426
  "key": "stream",
5385
- "class": ['v-progress-linear__stream', textColorClasses.value],
5386
- "style": {
5427
+ "class": normalizeClass(['v-progress-linear__stream', textColorClasses.value]),
5428
+ "style": normalizeStyle({
5387
5429
  ...textColorStyles.value,
5388
5430
  [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),
5389
5431
  borderTop: `${convertToUnit(height.value / 2)} dotted`,
@@ -5391,35 +5433,35 @@ const VProgressLinear = genericComponent()({
5391
5433
  top: `calc(50% - ${convertToUnit(height.value / 4)})`,
5392
5434
  width: convertToUnit(100 - normalizedBuffer.value, '%'),
5393
5435
  '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1))
5394
- }
5395
- }, null), createVNode("div", {
5396
- "class": ['v-progress-linear__background', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],
5397
- "style": [backgroundColorStyles.value, {
5436
+ })
5437
+ }, null), createElementVNode("div", {
5438
+ "class": normalizeClass(['v-progress-linear__background', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined]),
5439
+ "style": normalizeStyle([backgroundColorStyles.value, {
5398
5440
  opacity: parseFloat(props.bgOpacity),
5399
5441
  width: props.stream ? 0 : undefined
5400
- }]
5401
- }, null), createVNode("div", {
5402
- "class": ['v-progress-linear__buffer', !isForcedColorsModeActive ? bufferColorClasses.value : undefined],
5403
- "style": [bufferColorStyles.value, {
5442
+ }])
5443
+ }, null), createElementVNode("div", {
5444
+ "class": normalizeClass(['v-progress-linear__buffer', !isForcedColorsModeActive ? bufferColorClasses.value : undefined]),
5445
+ "style": normalizeStyle([bufferColorStyles.value, {
5404
5446
  opacity: parseFloat(props.bufferOpacity),
5405
5447
  width: convertToUnit(normalizedBuffer.value, '%')
5406
- }]
5448
+ }])
5407
5449
  }, null), createVNode(Transition, {
5408
5450
  "name": transition.value
5409
5451
  }, {
5410
- default: () => [!props.indeterminate ? createVNode("div", {
5411
- "class": ['v-progress-linear__determinate', !isForcedColorsModeActive ? barColorClasses.value : undefined],
5412
- "style": [barColorStyles.value, {
5452
+ default: () => [!props.indeterminate ? createElementVNode("div", {
5453
+ "class": normalizeClass(['v-progress-linear__determinate', !isForcedColorsModeActive ? barColorClasses.value : undefined]),
5454
+ "style": normalizeStyle([barColorStyles.value, {
5413
5455
  width: convertToUnit(normalizedValue.value, '%')
5414
- }]
5415
- }, null) : createVNode("div", {
5456
+ }])
5457
+ }, null) : createElementVNode("div", {
5416
5458
  "class": "v-progress-linear__indeterminate"
5417
- }, [['long', 'short'].map(bar => createVNode("div", {
5459
+ }, [['long', 'short'].map(bar => createElementVNode("div", {
5418
5460
  "key": bar,
5419
- "class": ['v-progress-linear__indeterminate', bar, !isForcedColorsModeActive ? barColorClasses.value : undefined],
5420
- "style": barColorStyles.value
5461
+ "class": normalizeClass(['v-progress-linear__indeterminate', bar, !isForcedColorsModeActive ? barColorClasses.value : undefined]),
5462
+ "style": normalizeStyle(barColorStyles.value)
5421
5463
  }, null))])]
5422
- }), slots.default && createVNode("div", {
5464
+ }), slots.default && createElementVNode("div", {
5423
5465
  "class": "v-progress-linear__content"
5424
5466
  }, [slots.default({
5425
5467
  value: normalizedValue.value,
@@ -5449,8 +5491,8 @@ function LoaderSlot(props, _ref) {
5449
5491
  let {
5450
5492
  slots
5451
5493
  } = _ref;
5452
- return createVNode("div", {
5453
- "class": `${props.name}__loader`
5494
+ return createElementVNode("div", {
5495
+ "class": normalizeClass(`${props.name}__loader`)
5454
5496
  }, [slots.default?.({
5455
5497
  color: props.color,
5456
5498
  isActive: props.active
@@ -6040,7 +6082,7 @@ const VBtn = genericComponent()({
6040
6082
  "onClick": onClick,
6041
6083
  "value": valueAttr.value
6042
6084
  }, link.linkProps), {
6043
- default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && createVNode("span", {
6085
+ default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && createElementVNode("span", {
6044
6086
  "key": "prepend",
6045
6087
  "class": "v-btn__prepend"
6046
6088
  }, [!slots.prepend ? createVNode(VIcon, {
@@ -6054,7 +6096,7 @@ const VBtn = genericComponent()({
6054
6096
  icon: props.prependIcon
6055
6097
  }
6056
6098
  }
6057
- }, slots.prepend)]), createVNode("span", {
6099
+ }, slots.prepend)]), createElementVNode("span", {
6058
6100
  "class": "v-btn__content",
6059
6101
  "data-no-activator": ""
6060
6102
  }, [!slots.default && hasIcon ? createVNode(VIcon, {
@@ -6070,7 +6112,7 @@ const VBtn = genericComponent()({
6070
6112
  }
6071
6113
  }, {
6072
6114
  default: () => [slots.default?.() ?? toDisplayString(props.text)]
6073
- })]), !props.icon && hasAppend && createVNode("span", {
6115
+ })]), !props.icon && hasAppend && createElementVNode("span", {
6074
6116
  "key": "append",
6075
6117
  "class": "v-btn__append"
6076
6118
  }, [!slots.append ? createVNode(VIcon, {
@@ -6084,7 +6126,7 @@ const VBtn = genericComponent()({
6084
6126
  icon: props.appendIcon
6085
6127
  }
6086
6128
  }
6087
- }, slots.append)]), !!props.loading && createVNode("span", {
6129
+ }, slots.append)]), !!props.loading && createElementVNode("span", {
6088
6130
  "key": "loader",
6089
6131
  "class": "v-btn__loader"
6090
6132
  }, [slots.loader?.() ?? createVNode(VProgressCircular, {
@@ -6257,20 +6299,20 @@ const VAlert = genericComponent()({
6257
6299
  const hasTitle = !!(slots.title || props.title);
6258
6300
  const hasClose = !!(slots.close || props.closable);
6259
6301
  return isActive.value && createVNode(props.tag, {
6260
- "class": ['v-alert', props.border && {
6302
+ "class": normalizeClass(['v-alert', props.border && {
6261
6303
  'v-alert--border': !!props.border,
6262
6304
  [`v-alert--border-${props.border === true ? 'start' : props.border}`]: true
6263
6305
  }, {
6264
6306
  'v-alert--prominent': props.prominent
6265
- }, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
6266
- "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
6307
+ }, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class]),
6308
+ "style": normalizeStyle([colorStyles.value, dimensionStyles.value, locationStyles.value, props.style]),
6267
6309
  "role": "alert"
6268
6310
  }, {
6269
- default: () => [genOverlays(false, 'v-alert'), props.border && createVNode("div", {
6311
+ default: () => [genOverlays(false, 'v-alert'), props.border && createElementVNode("div", {
6270
6312
  "key": "border",
6271
- "class": ['v-alert__border', textColorClasses.value],
6272
- "style": textColorStyles.value
6273
- }, null), hasPrepend && createVNode("div", {
6313
+ "class": normalizeClass(['v-alert__border', textColorClasses.value]),
6314
+ "style": normalizeStyle(textColorStyles.value)
6315
+ }, null), hasPrepend && createElementVNode("div", {
6274
6316
  "key": "prepend",
6275
6317
  "class": "v-alert__prepend"
6276
6318
  }, [!slots.prepend ? createVNode(VIcon, {
@@ -6288,16 +6330,16 @@ const VAlert = genericComponent()({
6288
6330
  size: props.prominent ? 44 : 28
6289
6331
  }
6290
6332
  }
6291
- }, slots.prepend)]), createVNode("div", {
6333
+ }, slots.prepend)]), createElementVNode("div", {
6292
6334
  "class": "v-alert__content"
6293
6335
  }, [hasTitle && createVNode(VAlertTitle, {
6294
6336
  "key": "title"
6295
6337
  }, {
6296
6338
  default: () => [slots.title?.() ?? props.title]
6297
- }), slots.text?.() ?? props.text, slots.default?.()]), slots.append && createVNode("div", {
6339
+ }), slots.text?.() ?? props.text, slots.default?.()]), slots.append && createElementVNode("div", {
6298
6340
  "key": "append",
6299
6341
  "class": "v-alert__append"
6300
- }, [slots.append()]), hasClose && createVNode("div", {
6342
+ }, [slots.append()]), hasClose && createElementVNode("div", {
6301
6343
  "key": "close",
6302
6344
  "class": "v-alert__close"
6303
6345
  }, [!slots.close ? createVNode(VBtn, mergeProps({
@@ -6370,11 +6412,11 @@ const VAvatar = genericComponent()({
6370
6412
  sizeStyles
6371
6413
  } = useSize(props);
6372
6414
  useRender(() => createVNode(props.tag, {
6373
- "class": ['v-avatar', {
6415
+ "class": normalizeClass(['v-avatar', {
6374
6416
  'v-avatar--start': props.start,
6375
6417
  'v-avatar--end': props.end
6376
- }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
6377
- "style": [colorStyles.value, sizeStyles.value, props.style]
6418
+ }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class]),
6419
+ "style": normalizeStyle([colorStyles.value, sizeStyles.value, props.style])
6378
6420
  }, {
6379
6421
  default: () => [!slots.default ? props.image ? createVNode(VImg, {
6380
6422
  "key": "image",
@@ -6416,11 +6458,11 @@ const VLabel = genericComponent()({
6416
6458
  let {
6417
6459
  slots
6418
6460
  } = _ref;
6419
- useRender(() => createVNode("label", {
6420
- "class": ['v-label', {
6461
+ useRender(() => createElementVNode("label", {
6462
+ "class": normalizeClass(['v-label', {
6421
6463
  'v-label--clickable': !!props.onClick
6422
- }, props.class],
6423
- "style": props.style,
6464
+ }, props.class]),
6465
+ "style": normalizeStyle(props.style),
6424
6466
  "onClick": props.onClick
6425
6467
  }, [props.text, slots.default?.()]));
6426
6468
  return {};
@@ -6515,11 +6557,11 @@ const VSelectionControlGroup = genericComponent()({
6515
6557
  valueComparator: toRef(() => props.valueComparator)
6516
6558
  }
6517
6559
  });
6518
- useRender(() => createVNode("div", {
6519
- "class": ['v-selection-control-group', {
6560
+ useRender(() => createElementVNode("div", {
6561
+ "class": normalizeClass(['v-selection-control-group', {
6520
6562
  'v-selection-control-group--inline': props.inline
6521
- }, props.class],
6522
- "style": props.style,
6563
+ }, props.class]),
6564
+ "style": normalizeStyle(props.style),
6523
6565
  "role": props.type === 'radio' ? 'radiogroup' : undefined
6524
6566
  }, [slots.default?.()]));
6525
6567
  return {};
@@ -6595,7 +6637,7 @@ function useSelectionControl(props) {
6595
6637
  const VSelectionControl = genericComponent()({
6596
6638
  name: 'VSelectionControl',
6597
6639
  directives: {
6598
- Ripple
6640
+ vRipple: Ripple
6599
6641
  },
6600
6642
  inheritAttrs: false,
6601
6643
  props: makeVSelectionControlProps(),
@@ -6666,7 +6708,7 @@ const VSelectionControl = genericComponent()({
6666
6708
  }
6667
6709
  }) : props.label;
6668
6710
  const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
6669
- const inputNode = createVNode("input", mergeProps({
6711
+ const inputNode = createElementVNode("input", mergeProps({
6670
6712
  "ref": input,
6671
6713
  "checked": model.value,
6672
6714
  "disabled": !!props.disabled,
@@ -6681,7 +6723,7 @@ const VSelectionControl = genericComponent()({
6681
6723
  "name": props.name,
6682
6724
  "aria-checked": props.type === 'checkbox' ? model.value : undefined
6683
6725
  }, inputAttrs), null);
6684
- return createVNode("div", mergeProps({
6726
+ return createElementVNode("div", mergeProps({
6685
6727
  "class": ['v-selection-control', {
6686
6728
  'v-selection-control--dirty': model.value,
6687
6729
  'v-selection-control--disabled': props.disabled,
@@ -6692,13 +6734,13 @@ const VSelectionControl = genericComponent()({
6692
6734
  }, densityClasses.value, props.class]
6693
6735
  }, rootAttrs, {
6694
6736
  "style": props.style
6695
- }), [createVNode("div", {
6696
- "class": ['v-selection-control__wrapper', textColorClasses.value],
6697
- "style": textColorStyles.value
6737
+ }), [createElementVNode("div", {
6738
+ "class": normalizeClass(['v-selection-control__wrapper', textColorClasses.value]),
6739
+ "style": normalizeStyle(textColorStyles.value)
6698
6740
  }, [slots.default?.({
6699
6741
  backgroundColorClasses,
6700
6742
  backgroundColorStyles
6701
- }), withDirectives(createVNode("div", {
6743
+ }), withDirectives(createElementVNode("div", {
6702
6744
  "class": ['v-selection-control__input']
6703
6745
  }, [slots.input?.({
6704
6746
  model,
@@ -6713,10 +6755,10 @@ const VSelectionControl = genericComponent()({
6713
6755
  onBlur,
6714
6756
  id: id.value
6715
6757
  }
6716
- }) ?? createVNode(Fragment, null, [icon.value && createVNode(VIcon, {
6758
+ }) ?? createElementVNode(Fragment, null, [icon.value && createVNode(VIcon, {
6717
6759
  "key": "icon",
6718
6760
  "icon": icon.value
6719
- }, null), inputNode])]), [[resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && createVNode(VLabel, {
6761
+ }, null), inputNode])]), [[Ripple, props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && createVNode(VLabel, {
6720
6762
  "for": id.value,
6721
6763
  "onClick": onClickLabel
6722
6764
  }, {
@@ -6793,7 +6835,8 @@ function useInputIcon(props) {
6793
6835
  function InputIcon(_ref) {
6794
6836
  let {
6795
6837
  name,
6796
- color
6838
+ color,
6839
+ ...attrs
6797
6840
  } = _ref;
6798
6841
  const localeKey = {
6799
6842
  prepend: 'prependAction',
@@ -6810,13 +6853,13 @@ function useInputIcon(props) {
6810
6853
  callEvent(listener, new PointerEvent('click', e));
6811
6854
  }
6812
6855
  const label = listener && localeKey ? t(`$vuetify.input.${localeKey}`, props.label ?? '') : undefined;
6813
- return createVNode(VIcon, {
6856
+ return createVNode(VIcon, mergeProps({
6814
6857
  "icon": props[`${name}Icon`],
6815
6858
  "aria-label": label,
6816
6859
  "onClick": listener,
6817
6860
  "onKeydown": onKeydown,
6818
6861
  "color": color
6819
- }, null);
6862
+ }, attrs), null);
6820
6863
  }
6821
6864
  return {
6822
6865
  InputIcon
@@ -6856,10 +6899,10 @@ const VMessages = genericComponent()({
6856
6899
  useRender(() => createVNode(MaybeTransition, {
6857
6900
  "transition": props.transition,
6858
6901
  "tag": "div",
6859
- "class": ['v-messages', textColorClasses.value, props.class],
6860
- "style": [textColorStyles.value, props.style]
6902
+ "class": normalizeClass(['v-messages', textColorClasses.value, props.class]),
6903
+ "style": normalizeStyle([textColorStyles.value, props.style])
6861
6904
  }, {
6862
- default: () => [props.active && messages.value.map((message, i) => createVNode("div", {
6905
+ default: () => [props.active && messages.value.map((message, i) => createElementVNode("div", {
6863
6906
  "class": "v-messages__message",
6864
6907
  "key": `${i}-${messages.value}`
6865
6908
  }, [slots.message ? slots.message({
@@ -7035,13 +7078,18 @@ function useForm(props) {
7035
7078
  };
7036
7079
  }
7037
7080
 
7081
+ // Utilities
7082
+ const RulesSymbol = Symbol.for('vuetify:rules');
7083
+ function useRules(fn) {
7084
+ const resolveRules = inject$1(RulesSymbol, null);
7085
+ if (!resolveRules) return toRef(fn);
7086
+ return resolveRules(fn);
7087
+ }
7088
+
7038
7089
  // Composables
7039
7090
 
7040
7091
  // Types
7041
7092
 
7042
- // type ValidationRuleParams = [any, string?]
7043
- // type ValidationAlias = string | [string, ...ValidationRuleParams]
7044
-
7045
7093
  const makeValidationProps = propsFactory({
7046
7094
  disabled: {
7047
7095
  type: Boolean,
@@ -7064,7 +7112,6 @@ const makeValidationProps = propsFactory({
7064
7112
  },
7065
7113
  rules: {
7066
7114
  type: Array,
7067
- // type: Array as PropType<readonly (ValidationRule | ValidationAlias)[]>,
7068
7115
  default: () => []
7069
7116
  },
7070
7117
  modelValue: null,
@@ -7078,7 +7125,7 @@ function useValidation(props) {
7078
7125
  const model = useProxiedModel(props, 'modelValue');
7079
7126
  const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue);
7080
7127
  const form = useForm(props);
7081
- // const rules = useRules()
7128
+ const rules = useRules(() => props.rules);
7082
7129
  const internalErrorMessages = ref([]);
7083
7130
  const isPristine = shallowRef(true);
7084
7131
  const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
@@ -7118,28 +7165,6 @@ function useValidation(props) {
7118
7165
  });
7119
7166
  const vm = getCurrentInstance('validation');
7120
7167
  const uid = computed(() => props.name ?? unref(id));
7121
-
7122
- // const resolvedRules = computed(() => props.rules.map(rule => {
7123
- // let ruleName: string | null = null
7124
- // let ruleParams: ValidationRuleParams = [undefined]
7125
- // if (Array.isArray(rule)) {
7126
- // ruleName = rule[0]
7127
- // ruleParams = rule.slice(1) as ValidationRuleParams
7128
- // } else if (typeof rule === 'string') {
7129
- // ruleName = rule
7130
- // }
7131
-
7132
- // if (ruleName !== null) {
7133
- // if (ruleName.startsWith('$')) {
7134
- // ruleName = ruleName.slice(1)
7135
- // }
7136
-
7137
- // return rules?.[ruleName]?.(...ruleParams)
7138
- // } else {
7139
- // return rule
7140
- // }
7141
- // }))
7142
-
7143
7168
  onBeforeMount(() => {
7144
7169
  form.register?.({
7145
7170
  id: uid.value,
@@ -7195,7 +7220,7 @@ function useValidation(props) {
7195
7220
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7196
7221
  const results = [];
7197
7222
  isValidating.value = true;
7198
- for (const rule of props.rules) {
7223
+ for (const rule of rules.value) {
7199
7224
  if (results.length >= Number(props.maxErrors ?? 1)) {
7200
7225
  break;
7201
7226
  }
@@ -7343,31 +7368,31 @@ const VInput = genericComponent()({
7343
7368
  const hasAppend = !!(slots.append || props.appendIcon);
7344
7369
  const hasMessages = messages.value.length > 0;
7345
7370
  const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
7346
- return createVNode("div", {
7347
- "class": ['v-input', `v-input--${props.direction}`, {
7371
+ return createElementVNode("div", {
7372
+ "class": normalizeClass(['v-input', `v-input--${props.direction}`, {
7348
7373
  'v-input--center-affix': props.centerAffix,
7349
7374
  'v-input--focused': props.focused,
7350
7375
  'v-input--glow': props.glow,
7351
7376
  'v-input--hide-spin-buttons': props.hideSpinButtons
7352
- }, densityClasses.value, themeClasses.value, rtlClasses.value, validationClasses.value, props.class],
7353
- "style": [dimensionStyles.value, props.style]
7354
- }, [hasPrepend && createVNode("div", {
7377
+ }, densityClasses.value, themeClasses.value, rtlClasses.value, validationClasses.value, props.class]),
7378
+ "style": normalizeStyle([dimensionStyles.value, props.style])
7379
+ }, [hasPrepend && createElementVNode("div", {
7355
7380
  "key": "prepend",
7356
7381
  "class": "v-input__prepend"
7357
7382
  }, [slots.prepend?.(slotProps.value), props.prependIcon && createVNode(InputIcon, {
7358
7383
  "key": "prepend-icon",
7359
7384
  "name": "prepend",
7360
7385
  "color": iconColor.value
7361
- }, null)]), slots.default && createVNode("div", {
7386
+ }, null)]), slots.default && createElementVNode("div", {
7362
7387
  "class": "v-input__control"
7363
- }, [slots.default?.(slotProps.value)]), hasAppend && createVNode("div", {
7388
+ }, [slots.default?.(slotProps.value)]), hasAppend && createElementVNode("div", {
7364
7389
  "key": "append",
7365
7390
  "class": "v-input__append"
7366
7391
  }, [props.appendIcon && createVNode(InputIcon, {
7367
7392
  "key": "append-icon",
7368
7393
  "name": "append",
7369
7394
  "color": iconColor.value
7370
- }, null), slots.append?.(slotProps.value)]), hasDetails && createVNode("div", {
7395
+ }, null), slots.append?.(slotProps.value)]), hasDetails && createElementVNode("div", {
7371
7396
  "id": messagesId.value,
7372
7397
  "class": "v-input__details",
7373
7398
  "role": "alert",
@@ -7758,7 +7783,7 @@ function clampTarget(container, value, rtl, horizontal) {
7758
7783
  min = 0;
7759
7784
  max = scrollHeight + -containerHeight;
7760
7785
  }
7761
- return Math.max(Math.min(value, max), min);
7786
+ return clamp(value, min, max);
7762
7787
  }
7763
7788
 
7764
7789
  function calculateUpdatedTarget(_ref) {
@@ -8116,42 +8141,42 @@ const VSlideGroup = genericComponent()({
8116
8141
  return scrollSizeMax - Math.abs(scrollOffset.value) > 1;
8117
8142
  });
8118
8143
  useRender(() => createVNode(props.tag, {
8119
- "class": ['v-slide-group', {
8144
+ "class": normalizeClass(['v-slide-group', {
8120
8145
  'v-slide-group--vertical': !isHorizontal.value,
8121
8146
  'v-slide-group--has-affixes': hasAffixes.value,
8122
8147
  'v-slide-group--is-overflowing': isOverflowing.value
8123
- }, displayClasses.value, props.class],
8124
- "style": props.style,
8148
+ }, displayClasses.value, props.class]),
8149
+ "style": normalizeStyle(props.style),
8125
8150
  "tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
8126
8151
  "onFocus": onFocus
8127
8152
  }, {
8128
- default: () => [hasAffixes.value && createVNode("div", {
8153
+ default: () => [hasAffixes.value && createElementVNode("div", {
8129
8154
  "key": "prev",
8130
- "class": ['v-slide-group__prev', {
8155
+ "class": normalizeClass(['v-slide-group__prev', {
8131
8156
  'v-slide-group__prev--disabled': !hasPrev.value
8132
- }],
8157
+ }]),
8133
8158
  "onMousedown": onFocusAffixes,
8134
8159
  "onClick": () => hasPrev.value && scrollTo('prev')
8135
8160
  }, [slots.prev?.(slotProps.value) ?? createVNode(VFadeTransition, null, {
8136
8161
  default: () => [createVNode(VIcon, {
8137
8162
  "icon": isRtl.value ? props.nextIcon : props.prevIcon
8138
8163
  }, null)]
8139
- })]), createVNode("div", {
8164
+ })]), createElementVNode("div", {
8140
8165
  "key": "container",
8141
8166
  "ref": containerRef,
8142
8167
  "class": "v-slide-group__container",
8143
8168
  "onScroll": onScroll
8144
- }, [createVNode("div", {
8169
+ }, [createElementVNode("div", {
8145
8170
  "ref": contentRef,
8146
8171
  "class": "v-slide-group__content",
8147
8172
  "onFocusin": onFocusin,
8148
8173
  "onFocusout": onFocusout,
8149
8174
  "onKeydown": onKeydown
8150
- }, [slots.default?.(slotProps.value)])]), hasAffixes.value && createVNode("div", {
8175
+ }, [slots.default?.(slotProps.value)])]), hasAffixes.value && createElementVNode("div", {
8151
8176
  "key": "next",
8152
- "class": ['v-slide-group__next', {
8177
+ "class": normalizeClass(['v-slide-group__next', {
8153
8178
  'v-slide-group__next--disabled': !hasNext.value
8154
- }],
8179
+ }]),
8155
8180
  "onMousedown": onFocusAffixes,
8156
8181
  "onClick": () => hasNext.value && scrollTo('next')
8157
8182
  }, [slots.next?.(slotProps.value) ?? createVNode(VFadeTransition, null, {
@@ -8306,7 +8331,7 @@ const makeVChipProps = propsFactory({
8306
8331
  const VChip = genericComponent()({
8307
8332
  name: 'VChip',
8308
8333
  directives: {
8309
- Ripple
8334
+ vRipple: Ripple
8310
8335
  },
8311
8336
  props: makeVChipProps(),
8312
8337
  emits: {
@@ -8406,7 +8431,7 @@ const VChip = genericComponent()({
8406
8431
  default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && createVNode(VExpandXTransition, {
8407
8432
  "key": "filter"
8408
8433
  }, {
8409
- default: () => [withDirectives(createVNode("div", {
8434
+ default: () => [withDirectives(createElementVNode("div", {
8410
8435
  "class": "v-chip__filter"
8411
8436
  }, [!slots.filter ? createVNode(VIcon, {
8412
8437
  "key": "filter-icon",
@@ -8420,10 +8445,10 @@ const VChip = genericComponent()({
8420
8445
  }
8421
8446
  }
8422
8447
  }, slots.filter)]), [[vShow, group.isSelected.value]])]
8423
- }), hasPrepend && createVNode("div", {
8448
+ }), hasPrepend && createElementVNode("div", {
8424
8449
  "key": "prepend",
8425
8450
  "class": "v-chip__prepend"
8426
- }, [!slots.prepend ? createVNode(Fragment, null, [props.prependIcon && createVNode(VIcon, {
8451
+ }, [!slots.prepend ? createElementVNode(Fragment, null, [props.prependIcon && createVNode(VIcon, {
8427
8452
  "key": "prepend-icon",
8428
8453
  "icon": props.prependIcon,
8429
8454
  "start": true
@@ -8444,7 +8469,7 @@ const VChip = genericComponent()({
8444
8469
  start: true
8445
8470
  }
8446
8471
  }
8447
- }, slots.prepend)]), createVNode("div", {
8472
+ }, slots.prepend)]), createElementVNode("div", {
8448
8473
  "class": "v-chip__content",
8449
8474
  "data-no-activator": ""
8450
8475
  }, [slots.default?.({
@@ -8454,10 +8479,10 @@ const VChip = genericComponent()({
8454
8479
  toggle: group?.toggle,
8455
8480
  value: group?.value.value,
8456
8481
  disabled: props.disabled
8457
- }) ?? toDisplayString(props.text)]), hasAppend && createVNode("div", {
8482
+ }) ?? toDisplayString(props.text)]), hasAppend && createElementVNode("div", {
8458
8483
  "key": "append",
8459
8484
  "class": "v-chip__append"
8460
- }, [!slots.append ? createVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
8485
+ }, [!slots.append ? createElementVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
8461
8486
  "key": "append-icon",
8462
8487
  "end": true,
8463
8488
  "icon": props.appendIcon
@@ -8478,7 +8503,7 @@ const VChip = genericComponent()({
8478
8503
  icon: props.appendIcon
8479
8504
  }
8480
8505
  }
8481
- }, slots.append)]), hasClose && createVNode("button", mergeProps({
8506
+ }, slots.append)]), hasClose && createElementVNode("button", mergeProps({
8482
8507
  "key": "close",
8483
8508
  "class": "v-chip__close",
8484
8509
  "type": "button",
@@ -8496,7 +8521,7 @@ const VChip = genericComponent()({
8496
8521
  }
8497
8522
  }
8498
8523
  }, slots.close)])]
8499
- }), [[resolveDirective("ripple"), isClickable.value && props.ripple, null]]);
8524
+ }), [[Ripple, isClickable.value && props.ripple, null]]);
8500
8525
  };
8501
8526
  }
8502
8527
  });
@@ -9269,13 +9294,13 @@ const VListGroup = genericComponent()({
9269
9294
  }
9270
9295
  }));
9271
9296
  useRender(() => createVNode(props.tag, {
9272
- "class": ['v-list-group', {
9297
+ "class": normalizeClass(['v-list-group', {
9273
9298
  'v-list-group--prepend': list?.hasPrepend.value,
9274
9299
  'v-list-group--fluid': props.fluid,
9275
9300
  'v-list-group--subgroup': props.subgroup,
9276
9301
  'v-list-group--open': isOpen.value
9277
- }, props.class],
9278
- "style": props.style
9302
+ }, props.class]),
9303
+ "style": normalizeStyle(props.style)
9279
9304
  }, {
9280
9305
  default: () => [slots.activator && createVNode(VDefaultsProvider, {
9281
9306
  "defaults": activatorDefaults.value
@@ -9292,7 +9317,7 @@ const VListGroup = genericComponent()({
9292
9317
  },
9293
9318
  "disabled": !isBooted.value
9294
9319
  }, {
9295
- default: () => [withDirectives(createVNode("div", {
9320
+ default: () => [withDirectives(createElementVNode("div", {
9296
9321
  "class": "v-list-group__items",
9297
9322
  "role": "group",
9298
9323
  "aria-labelledby": id.value
@@ -9318,10 +9343,10 @@ const VListItemSubtitle = genericComponent()({
9318
9343
  slots
9319
9344
  } = _ref;
9320
9345
  useRender(() => createVNode(props.tag, {
9321
- "class": ['v-list-item-subtitle', props.class],
9322
- "style": [{
9346
+ "class": normalizeClass(['v-list-item-subtitle', props.class]),
9347
+ "style": normalizeStyle([{
9323
9348
  '--v-list-item-subtitle-opacity': props.opacity
9324
- }, props.style]
9349
+ }, props.style])
9325
9350
  }, slots));
9326
9351
  return {};
9327
9352
  }
@@ -9384,7 +9409,7 @@ const makeVListItemProps = propsFactory({
9384
9409
  const VListItem = genericComponent()({
9385
9410
  name: 'VListItem',
9386
9411
  directives: {
9387
- Ripple
9412
+ vRipple: Ripple
9388
9413
  },
9389
9414
  props: makeVListItemProps(),
9390
9415
  emits: {
@@ -9519,10 +9544,10 @@ const VListItem = genericComponent()({
9519
9544
  "onClick": onClick,
9520
9545
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
9521
9546
  }, link.linkProps), {
9522
- default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && createVNode("div", {
9547
+ default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && createElementVNode("div", {
9523
9548
  "key": "prepend",
9524
9549
  "class": "v-list-item__prepend"
9525
- }, [!slots.prepend ? createVNode(Fragment, null, [props.prependAvatar && createVNode(VAvatar, {
9550
+ }, [!slots.prepend ? createElementVNode(Fragment, null, [props.prependAvatar && createVNode(VAvatar, {
9526
9551
  "key": "prepend-avatar",
9527
9552
  "density": props.density,
9528
9553
  "image": props.prependAvatar
@@ -9548,9 +9573,9 @@ const VListItem = genericComponent()({
9548
9573
  }
9549
9574
  }, {
9550
9575
  default: () => [slots.prepend?.(slotProps.value)]
9551
- }), createVNode("div", {
9576
+ }), createElementVNode("div", {
9552
9577
  "class": "v-list-item__spacer"
9553
- }, null)]), createVNode("div", {
9578
+ }, null)]), createElementVNode("div", {
9554
9579
  "class": "v-list-item__content",
9555
9580
  "data-no-activator": ""
9556
9581
  }, [hasTitle && createVNode(VListItemTitle, {
@@ -9565,10 +9590,10 @@ const VListItem = genericComponent()({
9565
9590
  default: () => [slots.subtitle?.({
9566
9591
  subtitle: props.subtitle
9567
9592
  }) ?? toDisplayString(props.subtitle)]
9568
- }), slots.default?.(slotProps.value)]), hasAppend && createVNode("div", {
9593
+ }), slots.default?.(slotProps.value)]), hasAppend && createElementVNode("div", {
9569
9594
  "key": "append",
9570
9595
  "class": "v-list-item__append"
9571
- }, [!slots.append ? createVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
9596
+ }, [!slots.append ? createElementVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
9572
9597
  "key": "append-icon",
9573
9598
  "density": props.density,
9574
9599
  "icon": props.appendIcon
@@ -9594,10 +9619,10 @@ const VListItem = genericComponent()({
9594
9619
  }
9595
9620
  }, {
9596
9621
  default: () => [slots.append?.(slotProps.value)]
9597
- }), createVNode("div", {
9622
+ }), createElementVNode("div", {
9598
9623
  "class": "v-list-item__spacer"
9599
9624
  }, null)])]
9600
- }), [[resolveDirective("ripple"), isClickable.value && props.ripple]]);
9625
+ }), [[Ripple, isClickable.value && props.ripple]]);
9601
9626
  });
9602
9627
  return {
9603
9628
  activate,
@@ -9635,15 +9660,15 @@ const VListSubheader = genericComponent()({
9635
9660
  useRender(() => {
9636
9661
  const hasText = !!(slots.default || props.title);
9637
9662
  return createVNode(props.tag, {
9638
- "class": ['v-list-subheader', {
9663
+ "class": normalizeClass(['v-list-subheader', {
9639
9664
  'v-list-subheader--inset': props.inset,
9640
9665
  'v-list-subheader--sticky': props.sticky
9641
- }, textColorClasses.value, props.class],
9642
- "style": [{
9666
+ }, textColorClasses.value, props.class]),
9667
+ "style": normalizeStyle([{
9643
9668
  textColorStyles
9644
- }, props.style]
9669
+ }, props.style])
9645
9670
  }, {
9646
- default: () => [hasText && createVNode("div", {
9671
+ default: () => [hasText && createElementVNode("div", {
9647
9672
  "class": "v-list-subheader__text"
9648
9673
  }, [slots.default?.() ?? props.title])]
9649
9674
  });
@@ -9688,25 +9713,25 @@ const VDivider = genericComponent()({
9688
9713
  return styles;
9689
9714
  });
9690
9715
  useRender(() => {
9691
- const divider = createVNode("hr", {
9692
- "class": [{
9716
+ const divider = createElementVNode("hr", {
9717
+ "class": normalizeClass([{
9693
9718
  'v-divider': true,
9694
9719
  'v-divider--inset': props.inset,
9695
9720
  'v-divider--vertical': props.vertical
9696
- }, themeClasses.value, textColorClasses.value, props.class],
9697
- "style": [dividerStyles.value, textColorStyles.value, {
9721
+ }, themeClasses.value, textColorClasses.value, props.class]),
9722
+ "style": normalizeStyle([dividerStyles.value, textColorStyles.value, {
9698
9723
  '--v-border-opacity': props.opacity
9699
- }, props.style],
9724
+ }, props.style]),
9700
9725
  "aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
9701
9726
  "role": `${attrs.role || 'separator'}`
9702
9727
  }, null);
9703
9728
  if (!slots.default) return divider;
9704
- return createVNode("div", {
9705
- "class": ['v-divider__wrapper', {
9729
+ return createElementVNode("div", {
9730
+ "class": normalizeClass(['v-divider__wrapper', {
9706
9731
  'v-divider__wrapper--vertical': props.vertical,
9707
9732
  'v-divider__wrapper--inset': props.inset
9708
- }]
9709
- }, [divider, createVNode("div", {
9733
+ }])
9734
+ }, [divider, createElementVNode("div", {
9710
9735
  "class": "v-divider__content"
9711
9736
  }, [slots.default()]), divider]);
9712
9737
  });
@@ -10125,12 +10150,12 @@ const VList = genericComponent()({
10125
10150
  useRender(() => {
10126
10151
  return createVNode(props.tag, {
10127
10152
  "ref": contentRef,
10128
- "class": ['v-list', {
10153
+ "class": normalizeClass(['v-list', {
10129
10154
  'v-list--disabled': props.disabled,
10130
10155
  'v-list--nav': props.nav,
10131
10156
  'v-list--slim': props.slim
10132
- }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
10133
- "style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
10157
+ }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class]),
10158
+ "style": normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, props.style]),
10134
10159
  "tabindex": props.disabled ? -1 : 0,
10135
10160
  "role": "listbox",
10136
10161
  "aria-activedescendant": undefined,
@@ -10174,11 +10199,11 @@ const VListItemAction = genericComponent()({
10174
10199
  slots
10175
10200
  } = _ref;
10176
10201
  useRender(() => createVNode(props.tag, {
10177
- "class": ['v-list-item-action', {
10202
+ "class": normalizeClass(['v-list-item-action', {
10178
10203
  'v-list-item-action--start': props.start,
10179
10204
  'v-list-item-action--end': props.end
10180
- }, props.class],
10181
- "style": props.style
10205
+ }, props.class]),
10206
+ "style": normalizeStyle(props.style)
10182
10207
  }, slots));
10183
10208
  return {};
10184
10209
  }
@@ -10199,11 +10224,11 @@ const VListItemMedia = genericComponent()({
10199
10224
  } = _ref;
10200
10225
  useRender(() => {
10201
10226
  return createVNode(props.tag, {
10202
- "class": ['v-list-item-media', {
10227
+ "class": normalizeClass(['v-list-item-media', {
10203
10228
  'v-list-item-media--start': props.start,
10204
10229
  'v-list-item-media--end': props.end
10205
- }, props.class],
10206
- "style": props.style
10230
+ }, props.class]),
10231
+ "style": normalizeStyle(props.style)
10207
10232
  }, slots);
10208
10233
  });
10209
10234
  return {};
@@ -10292,11 +10317,19 @@ function useLocationStrategies(props, data) {
10292
10317
  watch(() => props.locationStrategy, reset);
10293
10318
  onScopeDispose(() => {
10294
10319
  window.removeEventListener('resize', onResize);
10320
+ visualViewport?.removeEventListener('resize', onVisualResize);
10321
+ visualViewport?.removeEventListener('scroll', onVisualScroll);
10295
10322
  updateLocation.value = undefined;
10296
10323
  });
10297
10324
  window.addEventListener('resize', onResize, {
10298
10325
  passive: true
10299
10326
  });
10327
+ visualViewport?.addEventListener('resize', onVisualResize, {
10328
+ passive: true
10329
+ });
10330
+ visualViewport?.addEventListener('scroll', onVisualScroll, {
10331
+ passive: true
10332
+ });
10300
10333
  if (typeof props.locationStrategy === 'function') {
10301
10334
  updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation;
10302
10335
  } else {
@@ -10307,6 +10340,12 @@ function useLocationStrategies(props, data) {
10307
10340
  function onResize(e) {
10308
10341
  updateLocation.value?.(e);
10309
10342
  }
10343
+ function onVisualResize(e) {
10344
+ updateLocation.value?.(e);
10345
+ }
10346
+ function onVisualScroll(e) {
10347
+ updateLocation.value?.(e);
10348
+ }
10310
10349
  return {
10311
10350
  contentStyles,
10312
10351
  updateLocation
@@ -10458,13 +10497,7 @@ function connectedLocationStrategy(data, props, contentStyles) {
10458
10497
  }
10459
10498
  }
10460
10499
  const viewport = scrollParents.reduce((box, el) => {
10461
- const rect = el.getBoundingClientRect();
10462
- const scrollBox = new Box({
10463
- x: el === document.documentElement ? 0 : rect.x,
10464
- y: el === document.documentElement ? 0 : rect.y,
10465
- width: el.clientWidth,
10466
- height: el.clientHeight
10467
- });
10500
+ const scrollBox = getElementBox(el);
10468
10501
  if (box) {
10469
10502
  return new Box({
10470
10503
  x: Math.max(box.left, scrollBox.left),
@@ -11355,7 +11388,7 @@ function Scrim(props) {
11355
11388
  "name": "fade-transition",
11356
11389
  "appear": true
11357
11390
  }, {
11358
- default: () => [props.modelValue && createVNode("div", mergeProps({
11391
+ default: () => [props.modelValue && createElementVNode("div", mergeProps({
11359
11392
  "class": ['v-overlay__scrim', props.color.backgroundColorClasses.value],
11360
11393
  "style": props.color.backgroundColorStyles.value
11361
11394
  }, rest), null)]
@@ -11396,7 +11429,7 @@ const makeVOverlayProps = propsFactory({
11396
11429
  const VOverlay = genericComponent()({
11397
11430
  name: 'VOverlay',
11398
11431
  directives: {
11399
- ClickOutside
11432
+ vClickOutside: ClickOutside
11400
11433
  },
11401
11434
  inheritAttrs: false,
11402
11435
  props: {
@@ -11576,7 +11609,7 @@ const VOverlay = genericComponent()({
11576
11609
  _onAfterLeave();
11577
11610
  emit('afterLeave');
11578
11611
  }
11579
- useRender(() => createVNode(Fragment, null, [slots.activator?.({
11612
+ useRender(() => createElementVNode(Fragment, null, [slots.activator?.({
11580
11613
  isActive: isActive.value,
11581
11614
  targetRef,
11582
11615
  props: mergeProps({
@@ -11586,7 +11619,7 @@ const VOverlay = genericComponent()({
11586
11619
  "disabled": !teleportTarget.value,
11587
11620
  "to": teleportTarget.value
11588
11621
  }, {
11589
- default: () => [createVNode("div", mergeProps({
11622
+ default: () => [createElementVNode("div", mergeProps({
11590
11623
  "class": ['v-overlay', {
11591
11624
  'v-overlay--absolute': props.absolute || props.contained,
11592
11625
  'v-overlay--active': isActive.value,
@@ -11610,13 +11643,13 @@ const VOverlay = genericComponent()({
11610
11643
  "onAfterEnter": onAfterEnter,
11611
11644
  "onAfterLeave": onAfterLeave
11612
11645
  }, {
11613
- default: () => [withDirectives(createVNode("div", mergeProps({
11646
+ default: () => [withDirectives(createElementVNode("div", mergeProps({
11614
11647
  "ref": contentEl,
11615
11648
  "class": ['v-overlay__content', props.contentClass],
11616
11649
  "style": [dimensionStyles.value, contentStyles.value]
11617
11650
  }, contentEvents.value, props.contentProps), [slots.default?.({
11618
11651
  isActive
11619
- })]), [[vShow, isActive.value], [resolveDirective("click-outside"), {
11652
+ })]), [[vShow, isActive.value], [ClickOutside, {
11620
11653
  handler: onClickOutside,
11621
11654
  closeConditional,
11622
11655
  include: () => [activatorEl.value]
@@ -11945,11 +11978,11 @@ const VCounter = genericComponent()({
11945
11978
  useRender(() => createVNode(MaybeTransition, {
11946
11979
  "transition": props.transition
11947
11980
  }, {
11948
- default: () => [withDirectives(createVNode("div", {
11949
- "class": ['v-counter', {
11981
+ default: () => [withDirectives(createElementVNode("div", {
11982
+ "class": normalizeClass(['v-counter', {
11950
11983
  'text-error': props.max && !props.disabled && parseFloat(props.value) > parseFloat(props.max)
11951
- }, props.class],
11952
- "style": props.style
11984
+ }, props.class]),
11985
+ "style": normalizeStyle(props.style)
11953
11986
  }, [slots.default ? slots.default({
11954
11987
  counter: counter.value,
11955
11988
  max: props.max,
@@ -11972,10 +12005,10 @@ const VFieldLabel = genericComponent()({
11972
12005
  slots
11973
12006
  } = _ref;
11974
12007
  useRender(() => createVNode(VLabel, {
11975
- "class": ['v-field-label', {
12008
+ "class": normalizeClass(['v-field-label', {
11976
12009
  'v-field-label--floating': props.floating
11977
- }, props.class],
11978
- "style": props.style,
12010
+ }, props.class]),
12011
+ "style": normalizeStyle(props.style),
11979
12012
  "aria-hidden": props.floating || undefined
11980
12013
  }, slots));
11981
12014
  return {};
@@ -12152,7 +12185,7 @@ const VField = genericComponent()({
12152
12185
  for: id.value
12153
12186
  }
12154
12187
  }) : props.label;
12155
- return createVNode("div", mergeProps({
12188
+ return createElementVNode("div", mergeProps({
12156
12189
  "class": ['v-field', {
12157
12190
  'v-field--active': isActive.value,
12158
12191
  'v-field--appended': hasAppend,
@@ -12172,7 +12205,7 @@ const VField = genericComponent()({
12172
12205
  }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
12173
12206
  "style": [backgroundColorStyles.value, props.style],
12174
12207
  "onClick": onClick
12175
- }, attrs), [createVNode("div", {
12208
+ }, attrs), [createElementVNode("div", {
12176
12209
  "class": "v-field__overlay"
12177
12210
  }, null), createVNode(LoaderSlot, {
12178
12211
  "name": "v-field",
@@ -12180,23 +12213,23 @@ const VField = genericComponent()({
12180
12213
  "color": props.error ? 'error' : typeof props.loading === 'string' ? props.loading : props.color
12181
12214
  }, {
12182
12215
  default: slots.loader
12183
- }), hasPrepend && createVNode("div", {
12216
+ }), hasPrepend && createElementVNode("div", {
12184
12217
  "key": "prepend",
12185
12218
  "class": "v-field__prepend-inner"
12186
12219
  }, [props.prependInnerIcon && createVNode(InputIcon, {
12187
12220
  "key": "prepend-icon",
12188
12221
  "name": "prependInner",
12189
12222
  "color": iconColor.value
12190
- }, null), slots['prepend-inner']?.(slotProps.value)]), createVNode("div", {
12223
+ }, null), slots['prepend-inner']?.(slotProps.value)]), createElementVNode("div", {
12191
12224
  "class": "v-field__field",
12192
12225
  "data-no-activator": ""
12193
12226
  }, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasFloatingLabel.value && createVNode(VFieldLabel, {
12194
12227
  "key": "floating-label",
12195
12228
  "ref": floatingLabelRef,
12196
- "class": [textColorClasses.value],
12229
+ "class": normalizeClass([textColorClasses.value]),
12197
12230
  "floating": true,
12198
12231
  "for": id.value,
12199
- "style": textColorStyles.value
12232
+ "style": normalizeStyle(textColorStyles.value)
12200
12233
  }, {
12201
12234
  default: () => [label()]
12202
12235
  }), hasLabel.value && createVNode(VFieldLabel, {
@@ -12214,14 +12247,14 @@ const VField = genericComponent()({
12214
12247
  },
12215
12248
  focus,
12216
12249
  blur
12217
- }) ?? createVNode("div", {
12250
+ }) ?? createElementVNode("div", {
12218
12251
  "id": id.value,
12219
12252
  "class": "v-field__input",
12220
12253
  "aria-describedby": messagesId.value
12221
12254
  }, null)]), hasClear && createVNode(VExpandXTransition, {
12222
12255
  "key": "clear"
12223
12256
  }, {
12224
- default: () => [withDirectives(createVNode("div", {
12257
+ default: () => [withDirectives(createElementVNode("div", {
12225
12258
  "class": "v-field__clearable",
12226
12259
  "onMousedown": e => {
12227
12260
  e.preventDefault();
@@ -12239,27 +12272,29 @@ const VField = genericComponent()({
12239
12272
  props: {
12240
12273
  onFocus: focus,
12241
12274
  onBlur: blur,
12242
- onClick: props['onClick:clear']
12275
+ onClick: props['onClick:clear'],
12276
+ tabindex: -1
12243
12277
  }
12244
12278
  }) : createVNode(InputIcon, {
12245
12279
  "name": "clear",
12246
12280
  "onFocus": focus,
12247
- "onBlur": blur
12281
+ "onBlur": blur,
12282
+ "tabindex": -1
12248
12283
  }, null)]
12249
12284
  })]), [[vShow, props.dirty]])]
12250
- }), hasAppend && createVNode("div", {
12285
+ }), hasAppend && createElementVNode("div", {
12251
12286
  "key": "append",
12252
12287
  "class": "v-field__append-inner"
12253
12288
  }, [slots['append-inner']?.(slotProps.value), props.appendInnerIcon && createVNode(InputIcon, {
12254
12289
  "key": "append-icon",
12255
12290
  "name": "appendInner",
12256
12291
  "color": iconColor.value
12257
- }, null)]), createVNode("div", {
12258
- "class": ['v-field__outline', textColorClasses.value],
12259
- "style": textColorStyles.value
12260
- }, [isOutlined && createVNode(Fragment, null, [createVNode("div", {
12292
+ }, null)]), createElementVNode("div", {
12293
+ "class": normalizeClass(['v-field__outline', textColorClasses.value]),
12294
+ "style": normalizeStyle(textColorStyles.value)
12295
+ }, [isOutlined && createElementVNode(Fragment, null, [createElementVNode("div", {
12261
12296
  "class": "v-field__outline__start"
12262
- }, null), hasFloatingLabel.value && createVNode("div", {
12297
+ }, null), hasFloatingLabel.value && createElementVNode("div", {
12263
12298
  "class": "v-field__outline__notch"
12264
12299
  }, [createVNode(VFieldLabel, {
12265
12300
  "ref": floatingLabelRef,
@@ -12267,7 +12302,7 @@ const VField = genericComponent()({
12267
12302
  "for": id.value
12268
12303
  }, {
12269
12304
  default: () => [label()]
12270
- })]), createVNode("div", {
12305
+ })]), createElementVNode("div", {
12271
12306
  "class": "v-field__outline__end"
12272
12307
  }, null)]), isPlainOrUnderlined.value && hasFloatingLabel.value && createVNode(VFieldLabel, {
12273
12308
  "ref": floatingLabelRef,
@@ -12308,7 +12343,7 @@ const makeVTextFieldProps = propsFactory({
12308
12343
  const VTextField = genericComponent()({
12309
12344
  name: 'VTextField',
12310
12345
  directives: {
12311
- Intersect
12346
+ vIntersect: Intersect
12312
12347
  },
12313
12348
  inheritAttrs: false,
12314
12349
  props: makeVTextFieldProps(),
@@ -12440,7 +12475,7 @@ const VTextField = genericComponent()({
12440
12475
  ...slotProps
12441
12476
  }
12442
12477
  } = _ref3;
12443
- const inputNode = withDirectives(createVNode("input", mergeProps({
12478
+ const inputNode = withDirectives(createElementVNode("input", mergeProps({
12444
12479
  "ref": inputRef,
12445
12480
  "value": model.value,
12446
12481
  "onInput": onInput,
@@ -12453,29 +12488,29 @@ const VTextField = genericComponent()({
12453
12488
  "type": props.type,
12454
12489
  "onFocus": onFocus,
12455
12490
  "onBlur": blur
12456
- }, slotProps, inputAttrs), null), [[resolveDirective("intersect"), {
12491
+ }, slotProps, inputAttrs), null), [[Intersect, {
12457
12492
  handler: onIntersect
12458
12493
  }, null, {
12459
12494
  once: true
12460
12495
  }]]);
12461
- return createVNode(Fragment, null, [props.prefix && createVNode("span", {
12496
+ return createElementVNode(Fragment, null, [props.prefix && createElementVNode("span", {
12462
12497
  "class": "v-text-field__prefix"
12463
- }, [createVNode("span", {
12498
+ }, [createElementVNode("span", {
12464
12499
  "class": "v-text-field__prefix__text"
12465
- }, [props.prefix])]), slots.default ? createVNode("div", {
12466
- "class": fieldClass,
12500
+ }, [props.prefix])]), slots.default ? createElementVNode("div", {
12501
+ "class": normalizeClass(fieldClass),
12467
12502
  "data-no-activator": ""
12468
12503
  }, [slots.default(), inputNode]) : cloneVNode(inputNode, {
12469
12504
  class: fieldClass
12470
- }), props.suffix && createVNode("span", {
12505
+ }), props.suffix && createElementVNode("span", {
12471
12506
  "class": "v-text-field__suffix"
12472
- }, [createVNode("span", {
12507
+ }, [createElementVNode("span", {
12473
12508
  "class": "v-text-field__suffix__text"
12474
12509
  }, [props.suffix])])]);
12475
12510
  }
12476
12511
  });
12477
12512
  },
12478
- details: hasDetails ? slotProps => createVNode(Fragment, null, [slots.details?.(slotProps), hasCounter && createVNode(Fragment, null, [createVNode("span", null, null), createVNode(VCounter, {
12513
+ details: hasDetails ? slotProps => createElementVNode(Fragment, null, [slots.details?.(slotProps), hasCounter && createElementVNode(Fragment, null, [createElementVNode("span", null, null), createVNode(VCounter, {
12479
12514
  "active": props.persistentCounter || isFocused.value,
12480
12515
  "value": counterValue.value,
12481
12516
  "max": max.value,
@@ -12513,9 +12548,9 @@ const VVirtualScrollItem = genericComponent()({
12513
12548
  watch(() => contentRect.value?.height, height => {
12514
12549
  if (height != null) emit('update:height', height);
12515
12550
  });
12516
- useRender(() => props.renderless ? createVNode(Fragment, null, [slots.default?.({
12551
+ useRender(() => props.renderless ? createElementVNode(Fragment, null, [slots.default?.({
12517
12552
  itemRef: resizeRef
12518
- })]) : createVNode("div", mergeProps({
12553
+ })]) : createElementVNode("div", mergeProps({
12519
12554
  "ref": resizeRef,
12520
12555
  "class": ['v-virtual-scroll__item', props.class],
12521
12556
  "style": props.style
@@ -12850,30 +12885,30 @@ const VVirtualScroll = genericComponent()({
12850
12885
  ...slotProps
12851
12886
  })
12852
12887
  }));
12853
- return props.renderless ? createVNode(Fragment, null, [createVNode("div", {
12888
+ return props.renderless ? createElementVNode(Fragment, null, [createElementVNode("div", {
12854
12889
  "ref": markerRef,
12855
12890
  "class": "v-virtual-scroll__spacer",
12856
- "style": {
12891
+ "style": normalizeStyle({
12857
12892
  paddingTop: convertToUnit(paddingTop.value)
12858
- }
12859
- }, null), children, createVNode("div", {
12893
+ })
12894
+ }, null), children, createElementVNode("div", {
12860
12895
  "class": "v-virtual-scroll__spacer",
12861
- "style": {
12896
+ "style": normalizeStyle({
12862
12897
  paddingBottom: convertToUnit(paddingBottom.value)
12863
- }
12864
- }, null)]) : createVNode("div", {
12898
+ })
12899
+ }, null)]) : createElementVNode("div", {
12865
12900
  "ref": containerRef,
12866
- "class": ['v-virtual-scroll', props.class],
12901
+ "class": normalizeClass(['v-virtual-scroll', props.class]),
12867
12902
  "onScrollPassive": handleScroll,
12868
12903
  "onScrollend": handleScrollend,
12869
- "style": [dimensionStyles.value, props.style]
12870
- }, [createVNode("div", {
12904
+ "style": normalizeStyle([dimensionStyles.value, props.style])
12905
+ }, [createElementVNode("div", {
12871
12906
  "ref": markerRef,
12872
12907
  "class": "v-virtual-scroll__container",
12873
- "style": {
12908
+ "style": normalizeStyle({
12874
12909
  paddingTop: convertToUnit(paddingTop.value),
12875
12910
  paddingBottom: convertToUnit(paddingBottom.value)
12876
- }
12911
+ })
12877
12912
  }, [children])]);
12878
12913
  });
12879
12914
  return {
@@ -13035,6 +13070,7 @@ const VSelect = genericComponent()({
13035
13070
  const selectedValues = computed(() => model.value.map(selection => selection.value));
13036
13071
  const isFocused = shallowRef(false);
13037
13072
  let keyboardLookupPrefix = '';
13073
+ let keyboardLookupIndex = -1;
13038
13074
  let keyboardLookupLastTime;
13039
13075
  const displayItems = computed(() => {
13040
13076
  if (props.hideSelected) {
@@ -13102,16 +13138,46 @@ const VSelect = genericComponent()({
13102
13138
  const now = performance.now();
13103
13139
  if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
13104
13140
  keyboardLookupPrefix = '';
13141
+ keyboardLookupIndex = -1;
13105
13142
  }
13106
13143
  keyboardLookupPrefix += e.key.toLowerCase();
13107
13144
  keyboardLookupLastTime = now;
13108
- const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix));
13109
- if (item !== undefined) {
13145
+ const items = displayItems.value;
13146
+ function findItem() {
13147
+ let result = findItemBase();
13148
+ if (result) return result;
13149
+ if (keyboardLookupPrefix.at(-1) === keyboardLookupPrefix.at(-2)) {
13150
+ // No matches but we have a repeated letter, try the next item with that prefix
13151
+ keyboardLookupPrefix = keyboardLookupPrefix.slice(0, -1);
13152
+ result = findItemBase();
13153
+ if (result) return result;
13154
+ }
13155
+
13156
+ // Still nothing, wrap around to the top
13157
+ keyboardLookupIndex = -1;
13158
+ result = findItemBase();
13159
+ if (result) return result;
13160
+
13161
+ // Still nothing, try just the new letter
13162
+ keyboardLookupPrefix = e.key.toLowerCase();
13163
+ return findItemBase();
13164
+ }
13165
+ function findItemBase() {
13166
+ for (let i = keyboardLookupIndex + 1; i < items.length; i++) {
13167
+ const _item = items[i];
13168
+ if (_item.title.toLowerCase().startsWith(keyboardLookupPrefix)) {
13169
+ return [_item, i];
13170
+ }
13171
+ }
13172
+ return undefined;
13173
+ }
13174
+ const result = findItem();
13175
+ if (!result) return;
13176
+ const [item, index] = result;
13177
+ keyboardLookupIndex = index;
13178
+ listRef.value?.focus(index);
13179
+ if (!props.multiple) {
13110
13180
  model.value = [item];
13111
- const index = displayItems.value.indexOf(item);
13112
- IN_BROWSER && window.requestAnimationFrame(() => {
13113
- index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
13114
- });
13115
13181
  }
13116
13182
  }
13117
13183
 
@@ -13213,7 +13279,7 @@ const VSelect = genericComponent()({
13213
13279
  "title": t(label.value)
13214
13280
  }), {
13215
13281
  ...slots,
13216
- default: () => createVNode(Fragment, null, [createVNode(VMenu, mergeProps({
13282
+ default: () => createElementVNode(Fragment, null, [createVNode(VMenu, mergeProps({
13217
13283
  "ref": vMenuRef,
13218
13284
  "modelValue": menu.value,
13219
13285
  "onUpdate:modelValue": $event => menu.value = $event,
@@ -13271,7 +13337,7 @@ const VSelect = genericComponent()({
13271
13337
  let {
13272
13338
  isSelected
13273
13339
  } = _ref3;
13274
- return createVNode(Fragment, null, [props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
13340
+ return createElementVNode(Fragment, null, [props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
13275
13341
  "key": item.value,
13276
13342
  "modelValue": isSelected,
13277
13343
  "ripple": false,
@@ -13317,7 +13383,7 @@ const VSelect = genericComponent()({
13317
13383
  index
13318
13384
  })) : undefined;
13319
13385
  if (hasSlot && !slotContent) return undefined;
13320
- return createVNode("div", {
13386
+ return createElementVNode("div", {
13321
13387
  "key": item.value,
13322
13388
  "class": "v-select__selection"
13323
13389
  }, [hasChips ? !slots.chip ? createVNode(VChip, mergeProps({
@@ -13337,9 +13403,9 @@ const VSelect = genericComponent()({
13337
13403
  }
13338
13404
  }, {
13339
13405
  default: () => [slotContent]
13340
- }) : slotContent ?? createVNode("span", {
13406
+ }) : slotContent ?? createElementVNode("span", {
13341
13407
  "class": "v-select__selection-text"
13342
- }, [item.title, props.multiple && index < model.value.length - 1 && createVNode("span", {
13408
+ }, [item.title, props.multiple && index < model.value.length - 1 && createElementVNode("span", {
13343
13409
  "class": "v-select__selection-comma"
13344
13410
  }, [createTextVNode(",")])])]);
13345
13411
  })]),
@@ -13347,7 +13413,7 @@ const VSelect = genericComponent()({
13347
13413
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13348
13414
  args[_key] = arguments[_key];
13349
13415
  }
13350
- return createVNode(Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? createVNode(VIcon, {
13416
+ return createElementVNode(Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? createVNode(VIcon, {
13351
13417
  "class": "v-select__menu-icon",
13352
13418
  "color": vTextFieldRef.value?.fieldIconColor,
13353
13419
  "icon": props.menuIcon
@@ -13498,17 +13564,17 @@ function highlightResult(name, text, matches) {
13498
13564
  if (matches == null || !matches.length) return text;
13499
13565
  return matches.map((match, i) => {
13500
13566
  const start = i === 0 ? 0 : matches[i - 1][1];
13501
- const result = [createVNode("span", {
13502
- "class": `${name}__unmask`
13503
- }, [text.slice(start, match[0])]), createVNode("span", {
13504
- "class": `${name}__mask`
13567
+ const result = [createElementVNode("span", {
13568
+ "class": normalizeClass(`${name}__unmask`)
13569
+ }, [text.slice(start, match[0])]), createElementVNode("span", {
13570
+ "class": normalizeClass(`${name}__mask`)
13505
13571
  }, [text.slice(match[0], match[1])])];
13506
13572
  if (i === matches.length - 1) {
13507
- result.push(createVNode("span", {
13508
- "class": `${name}__unmask`
13573
+ result.push(createElementVNode("span", {
13574
+ "class": normalizeClass(`${name}__unmask`)
13509
13575
  }, [text.slice(match[1])]));
13510
13576
  }
13511
- return createVNode(Fragment, null, [result]);
13577
+ return createElementVNode(Fragment, null, [result]);
13512
13578
  });
13513
13579
  }
13514
13580
 
@@ -13810,7 +13876,7 @@ const VAutocomplete = genericComponent()({
13810
13876
  "onKeydown": onKeydown
13811
13877
  }), {
13812
13878
  ...slots,
13813
- default: () => createVNode(Fragment, null, [createVNode(VMenu, mergeProps({
13879
+ default: () => createElementVNode(Fragment, null, [createVNode(VMenu, mergeProps({
13814
13880
  "ref": vMenuRef,
13815
13881
  "modelValue": menu.value,
13816
13882
  "onUpdate:modelValue": $event => menu.value = $event,
@@ -13869,7 +13935,7 @@ const VAutocomplete = genericComponent()({
13869
13935
  let {
13870
13936
  isSelected
13871
13937
  } = _ref4;
13872
- return createVNode(Fragment, null, [props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
13938
+ return createElementVNode(Fragment, null, [props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
13873
13939
  "key": item.value,
13874
13940
  "modelValue": isSelected,
13875
13941
  "ripple": false,
@@ -13918,10 +13984,10 @@ const VAutocomplete = genericComponent()({
13918
13984
  index
13919
13985
  })) : undefined;
13920
13986
  if (hasSlot && !slotContent) return undefined;
13921
- return createVNode("div", {
13987
+ return createElementVNode("div", {
13922
13988
  "key": item.value,
13923
- "class": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],
13924
- "style": index === selectionIndex.value ? textColorStyles.value : {}
13989
+ "class": normalizeClass(['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]]),
13990
+ "style": normalizeStyle(index === selectionIndex.value ? textColorStyles.value : {})
13925
13991
  }, [hasChips.value ? !slots.chip ? createVNode(VChip, mergeProps({
13926
13992
  "key": "chip",
13927
13993
  "closable": props.closableChips,
@@ -13939,9 +14005,9 @@ const VAutocomplete = genericComponent()({
13939
14005
  }
13940
14006
  }, {
13941
14007
  default: () => [slotContent]
13942
- }) : slotContent ?? createVNode("span", {
14008
+ }) : slotContent ?? createElementVNode("span", {
13943
14009
  "class": "v-autocomplete__selection-text"
13944
- }, [item.title, props.multiple && index < model.value.length - 1 && createVNode("span", {
14010
+ }, [item.title, props.multiple && index < model.value.length - 1 && createElementVNode("span", {
13945
14011
  "class": "v-autocomplete__selection-comma"
13946
14012
  }, [createTextVNode(",")])])]);
13947
14013
  })]),
@@ -13949,7 +14015,7 @@ const VAutocomplete = genericComponent()({
13949
14015
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13950
14016
  args[_key] = arguments[_key];
13951
14017
  }
13952
- return createVNode(Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? createVNode(VIcon, {
14018
+ return createElementVNode(Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? createVNode(VIcon, {
13953
14019
  "class": "v-autocomplete__menu-icon",
13954
14020
  "color": vTextFieldRef.value?.fieldIconColor,
13955
14021
  "icon": props.menuIcon,
@@ -14046,12 +14112,12 @@ const VBadge = genericComponent()({
14046
14112
  }, attrs, {
14047
14113
  "style": props.style
14048
14114
  }), {
14049
- default: () => [createVNode("div", {
14115
+ default: () => [createElementVNode("div", {
14050
14116
  "class": "v-badge__wrapper"
14051
14117
  }, [ctx.slots.default?.(), createVNode(MaybeTransition, {
14052
14118
  "transition": props.transition
14053
14119
  }, {
14054
- default: () => [withDirectives(createVNode("span", mergeProps({
14120
+ default: () => [withDirectives(createElementVNode("span", mergeProps({
14055
14121
  "class": ['v-badge__badge', themeClasses.value, backgroundColorClasses.value, roundedClasses.value, textColorClasses.value],
14056
14122
  "style": [backgroundColorStyles.value, textColorStyles.value, props.inline ? {} : locationStyles.value],
14057
14123
  "aria-atomic": "true",
@@ -14088,9 +14154,9 @@ const VBannerActions = genericComponent()({
14088
14154
  variant: 'text'
14089
14155
  }
14090
14156
  });
14091
- useRender(() => createVNode("div", {
14092
- "class": ['v-banner-actions', props.class],
14093
- "style": props.style
14157
+ useRender(() => createElementVNode("div", {
14158
+ "class": normalizeClass(['v-banner-actions', props.class]),
14159
+ "style": normalizeStyle(props.style)
14094
14160
  }, [slots.default?.()]));
14095
14161
  return {};
14096
14162
  }
@@ -14176,15 +14242,15 @@ const VBanner = genericComponent()({
14176
14242
  const hasPrependMedia = !!(props.avatar || props.icon);
14177
14243
  const hasPrepend = !!(hasPrependMedia || slots.prepend);
14178
14244
  return createVNode(props.tag, {
14179
- "class": ['v-banner', {
14245
+ "class": normalizeClass(['v-banner', {
14180
14246
  'v-banner--stacked': props.stacked || mobile.value,
14181
14247
  'v-banner--sticky': props.sticky,
14182
14248
  [`v-banner--${props.lines}-line`]: !!props.lines
14183
- }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
14184
- "style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
14249
+ }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class]),
14250
+ "style": normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]),
14185
14251
  "role": "banner"
14186
14252
  }, {
14187
- default: () => [hasPrepend && createVNode("div", {
14253
+ default: () => [hasPrepend && createElementVNode("div", {
14188
14254
  "key": "prepend",
14189
14255
  "class": "v-banner__prepend"
14190
14256
  }, [!slots.prepend ? createVNode(VAvatar, {
@@ -14204,7 +14270,7 @@ const VBanner = genericComponent()({
14204
14270
  image: props.avatar
14205
14271
  }
14206
14272
  }
14207
- }, slots.prepend)]), createVNode("div", {
14273
+ }, slots.prepend)]), createElementVNode("div", {
14208
14274
  "class": "v-banner__content"
14209
14275
  }, [hasText && createVNode(VBannerText, {
14210
14276
  "key": "text"
@@ -14313,16 +14379,16 @@ const VBottomNavigation = genericComponent()({
14313
14379
  });
14314
14380
  useRender(() => {
14315
14381
  return createVNode(props.tag, {
14316
- "class": ['v-bottom-navigation', {
14382
+ "class": normalizeClass(['v-bottom-navigation', {
14317
14383
  'v-bottom-navigation--active': isActive.value,
14318
14384
  'v-bottom-navigation--grow': props.grow,
14319
14385
  'v-bottom-navigation--shift': props.mode === 'shift'
14320
- }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
14321
- "style": [backgroundColorStyles.value, layoutItemStyles.value, {
14386
+ }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
14387
+ "style": normalizeStyle([backgroundColorStyles.value, layoutItemStyles.value, {
14322
14388
  height: convertToUnit(height.value)
14323
- }, ssrBootStyles.value, props.style]
14389
+ }, ssrBootStyles.value, props.style])
14324
14390
  }, {
14325
- default: () => [slots.default && createVNode("div", {
14391
+ default: () => [slots.default && createElementVNode("div", {
14326
14392
  "class": "v-bottom-navigation__content"
14327
14393
  }, [slots.default()])]
14328
14394
  });
@@ -14509,10 +14575,10 @@ const VBreadcrumbsDivider = genericComponent()({
14509
14575
  let {
14510
14576
  slots
14511
14577
  } = _ref;
14512
- useRender(() => createVNode("li", {
14578
+ useRender(() => createElementVNode("li", {
14513
14579
  "aria-hidden": "true",
14514
- "class": ['v-breadcrumbs-divider', props.class],
14515
- "style": props.style
14580
+ "class": normalizeClass(['v-breadcrumbs-divider', props.class]),
14581
+ "style": normalizeStyle(props.style)
14516
14582
  }, [slots?.default?.() ?? props.divider]));
14517
14583
  return {};
14518
14584
  }
@@ -14547,15 +14613,15 @@ const VBreadcrumbsItem = genericComponent()({
14547
14613
  } = useTextColor(() => isActive.value ? props.activeColor : props.color);
14548
14614
  useRender(() => {
14549
14615
  return createVNode(props.tag, {
14550
- "class": ['v-breadcrumbs-item', {
14616
+ "class": normalizeClass(['v-breadcrumbs-item', {
14551
14617
  'v-breadcrumbs-item--active': isActive.value,
14552
14618
  'v-breadcrumbs-item--disabled': props.disabled,
14553
14619
  [`${props.activeClass}`]: isActive.value && props.activeClass
14554
- }, textColorClasses.value, props.class],
14555
- "style": [textColorStyles.value, props.style],
14620
+ }, textColorClasses.value, props.class]),
14621
+ "style": normalizeStyle([textColorStyles.value, props.style]),
14556
14622
  "aria-current": isActive.value ? 'page' : undefined
14557
14623
  }, {
14558
- default: () => [!link.isLink.value ? slots.default?.() ?? props.title : createVNode("a", mergeProps({
14624
+ default: () => [!link.isLink.value ? slots.default?.() ?? props.title : createElementVNode("a", mergeProps({
14559
14625
  "class": "v-breadcrumbs-item--link",
14560
14626
  "onClick": link.navigate
14561
14627
  }, link.linkProps), [slots.default?.() ?? props.title])]
@@ -14631,10 +14697,10 @@ const VBreadcrumbs = genericComponent()({
14631
14697
  useRender(() => {
14632
14698
  const hasPrepend = !!(slots.prepend || props.icon);
14633
14699
  return createVNode(props.tag, {
14634
- "class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],
14635
- "style": [backgroundColorStyles.value, props.style]
14700
+ "class": normalizeClass(['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class]),
14701
+ "style": normalizeStyle([backgroundColorStyles.value, props.style])
14636
14702
  }, {
14637
- default: () => [hasPrepend && createVNode("li", {
14703
+ default: () => [hasPrepend && createElementVNode("li", {
14638
14704
  "key": "prepend",
14639
14705
  "class": "v-breadcrumbs__prepend"
14640
14706
  }, [!slots.prepend ? createVNode(VIcon, {
@@ -14655,7 +14721,7 @@ const VBreadcrumbs = genericComponent()({
14655
14721
  item,
14656
14722
  raw
14657
14723
  } = _ref2;
14658
- return createVNode(Fragment, null, [slots.item?.({
14724
+ return createElementVNode(Fragment, null, [slots.item?.({
14659
14725
  item,
14660
14726
  index
14661
14727
  }) ?? createVNode(VBreadcrumbsItem, mergeProps({
@@ -14694,9 +14760,9 @@ const VCardActions = genericComponent()({
14694
14760
  variant: 'text'
14695
14761
  }
14696
14762
  });
14697
- useRender(() => createVNode("div", {
14698
- "class": ['v-card-actions', props.class],
14699
- "style": props.style
14763
+ useRender(() => createElementVNode("div", {
14764
+ "class": normalizeClass(['v-card-actions', props.class]),
14765
+ "style": normalizeStyle(props.style)
14700
14766
  }, [slots.default?.()]));
14701
14767
  return {};
14702
14768
  }
@@ -14715,10 +14781,10 @@ const VCardSubtitle = genericComponent()({
14715
14781
  slots
14716
14782
  } = _ref;
14717
14783
  useRender(() => createVNode(props.tag, {
14718
- "class": ['v-card-subtitle', props.class],
14719
- "style": [{
14784
+ "class": normalizeClass(['v-card-subtitle', props.class]),
14785
+ "style": normalizeStyle([{
14720
14786
  '--v-card-subtitle-opacity': props.opacity
14721
- }, props.style]
14787
+ }, props.style])
14722
14788
  }, slots));
14723
14789
  return {};
14724
14790
  }
@@ -14757,13 +14823,13 @@ const VCardItem = genericComponent()({
14757
14823
  const hasAppend = !!(hasAppendMedia || slots.append);
14758
14824
  const hasTitle = !!(props.title != null || slots.title);
14759
14825
  const hasSubtitle = !!(props.subtitle != null || slots.subtitle);
14760
- return createVNode("div", {
14761
- "class": ['v-card-item', props.class],
14762
- "style": props.style
14763
- }, [hasPrepend && createVNode("div", {
14826
+ return createElementVNode("div", {
14827
+ "class": normalizeClass(['v-card-item', props.class]),
14828
+ "style": normalizeStyle(props.style)
14829
+ }, [hasPrepend && createElementVNode("div", {
14764
14830
  "key": "prepend",
14765
14831
  "class": "v-card-item__prepend"
14766
- }, [!slots.prepend ? createVNode(Fragment, null, [props.prependAvatar && createVNode(VAvatar, {
14832
+ }, [!slots.prepend ? createElementVNode(Fragment, null, [props.prependAvatar && createVNode(VAvatar, {
14767
14833
  "key": "prepend-avatar",
14768
14834
  "density": props.density,
14769
14835
  "image": props.prependAvatar
@@ -14784,7 +14850,7 @@ const VCardItem = genericComponent()({
14784
14850
  icon: props.prependIcon
14785
14851
  }
14786
14852
  }
14787
- }, slots.prepend)]), createVNode("div", {
14853
+ }, slots.prepend)]), createElementVNode("div", {
14788
14854
  "class": "v-card-item__content"
14789
14855
  }, [hasTitle && createVNode(VCardTitle, {
14790
14856
  "key": "title"
@@ -14794,10 +14860,10 @@ const VCardItem = genericComponent()({
14794
14860
  "key": "subtitle"
14795
14861
  }, {
14796
14862
  default: () => [slots.subtitle?.() ?? toDisplayString(props.subtitle)]
14797
- }), slots.default?.()]), hasAppend && createVNode("div", {
14863
+ }), slots.default?.()]), hasAppend && createElementVNode("div", {
14798
14864
  "key": "append",
14799
14865
  "class": "v-card-item__append"
14800
- }, [!slots.append ? createVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
14866
+ }, [!slots.append ? createElementVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
14801
14867
  "key": "append-icon",
14802
14868
  "density": props.density,
14803
14869
  "icon": props.appendIcon
@@ -14837,10 +14903,10 @@ const VCardText = genericComponent()({
14837
14903
  slots
14838
14904
  } = _ref;
14839
14905
  useRender(() => createVNode(props.tag, {
14840
- "class": ['v-card-text', props.class],
14841
- "style": [{
14906
+ "class": normalizeClass(['v-card-text', props.class]),
14907
+ "style": normalizeStyle([{
14842
14908
  '--v-card-text-opacity': props.opacity
14843
- }, props.style]
14909
+ }, props.style])
14844
14910
  }, slots));
14845
14911
  return {};
14846
14912
  }
@@ -14896,7 +14962,7 @@ const makeVCardProps = propsFactory({
14896
14962
  const VCard = genericComponent()({
14897
14963
  name: 'VCard',
14898
14964
  directives: {
14899
- Ripple
14965
+ vRipple: Ripple
14900
14966
  },
14901
14967
  props: makeVCardProps(),
14902
14968
  setup(props, _ref) {
@@ -14960,7 +15026,7 @@ const VCard = genericComponent()({
14960
15026
  "onClick": isClickable && link.navigate,
14961
15027
  "tabindex": props.disabled ? -1 : undefined
14962
15028
  }, link.linkProps), {
14963
- default: () => [hasImage && createVNode("div", {
15029
+ default: () => [hasImage && createElementVNode("div", {
14964
15030
  "key": "image",
14965
15031
  "class": "v-card__image"
14966
15032
  }, [!slots.image ? createVNode(VImg, {
@@ -15003,7 +15069,7 @@ const VCard = genericComponent()({
15003
15069
  }), slots.default?.(), slots.actions && createVNode(VCardActions, null, {
15004
15070
  default: slots.actions
15005
15071
  }), genOverlays(isClickable, 'v-card')]
15006
- }), [[resolveDirective("ripple"), isClickable && props.ripple]]);
15072
+ }), [[Ripple, isClickable && props.ripple]]);
15007
15073
  });
15008
15074
  return {};
15009
15075
  }
@@ -15162,7 +15228,7 @@ const makeVWindowProps = propsFactory({
15162
15228
  const VWindow = genericComponent()({
15163
15229
  name: 'VWindow',
15164
15230
  directives: {
15165
- Touch
15231
+ vTouch: Touch
15166
15232
  },
15167
15233
  props: makeVWindowProps(),
15168
15234
  emits: {
@@ -15234,7 +15300,7 @@ const VWindow = genericComponent()({
15234
15300
  };
15235
15301
  arrows.push(canMoveBack.value ? slots.prev ? slots.prev({
15236
15302
  props: prevProps
15237
- }) : createVNode(VBtn, prevProps, null) : createVNode("div", null, null));
15303
+ }) : createVNode(VBtn, prevProps, null) : createElementVNode("div", null, null));
15238
15304
  const nextProps = {
15239
15305
  icon: isRtl.value ? props.prevIcon : props.nextIcon,
15240
15306
  class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,
@@ -15243,7 +15309,7 @@ const VWindow = genericComponent()({
15243
15309
  };
15244
15310
  arrows.push(canMoveForward.value ? slots.next ? slots.next({
15245
15311
  props: nextProps
15246
- }) : createVNode(VBtn, nextProps, null) : createVNode("div", null, null));
15312
+ }) : createVNode(VBtn, nextProps, null) : createElementVNode("div", null, null));
15247
15313
  return arrows;
15248
15314
  });
15249
15315
  const touchOptions = computed(() => {
@@ -15269,24 +15335,24 @@ const VWindow = genericComponent()({
15269
15335
  });
15270
15336
  useRender(() => withDirectives(createVNode(props.tag, {
15271
15337
  "ref": rootRef,
15272
- "class": ['v-window', {
15338
+ "class": normalizeClass(['v-window', {
15273
15339
  'v-window--show-arrows-on-hover': props.showArrows === 'hover'
15274
- }, themeClasses.value, props.class],
15275
- "style": props.style
15340
+ }, themeClasses.value, props.class]),
15341
+ "style": normalizeStyle(props.style)
15276
15342
  }, {
15277
- default: () => [createVNode("div", {
15343
+ default: () => [createElementVNode("div", {
15278
15344
  "class": "v-window__container",
15279
- "style": {
15345
+ "style": normalizeStyle({
15280
15346
  height: transitionHeight.value
15281
- }
15347
+ })
15282
15348
  }, [slots.default?.({
15283
15349
  group
15284
- }), props.showArrows !== false && createVNode("div", {
15350
+ }), props.showArrows !== false && createElementVNode("div", {
15285
15351
  "class": "v-window__controls"
15286
15352
  }, [arrows.value])]), slots.additional?.({
15287
15353
  group
15288
15354
  })]
15289
- }), [[resolveDirective("touch"), touchOptions.value]]));
15355
+ }), [[Touch, touchOptions.value]]));
15290
15356
  return {
15291
15357
  group
15292
15358
  };
@@ -15371,12 +15437,12 @@ const VCarousel = genericComponent()({
15371
15437
  let {
15372
15438
  group
15373
15439
  } = _ref2;
15374
- return createVNode(Fragment, null, [!props.hideDelimiters && createVNode("div", {
15440
+ return createElementVNode(Fragment, null, [!props.hideDelimiters && createElementVNode("div", {
15375
15441
  "class": "v-carousel__controls",
15376
- "style": {
15442
+ "style": normalizeStyle({
15377
15443
  left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',
15378
15444
  right: props.verticalDelimiters === 'right' ? 0 : 'auto'
15379
- }
15445
+ })
15380
15446
  }, [group.items.value.length > 0 && createVNode(VDefaultsProvider, {
15381
15447
  "defaults": {
15382
15448
  VBtn: {
@@ -15430,7 +15496,7 @@ const makeVWindowItemProps = propsFactory({
15430
15496
  const VWindowItem = genericComponent()({
15431
15497
  name: 'VWindowItem',
15432
15498
  directives: {
15433
- Touch
15499
+ vTouch: Touch
15434
15500
  },
15435
15501
  props: makeVWindowItemProps(),
15436
15502
  emits: {
@@ -15514,9 +15580,9 @@ const VWindowItem = genericComponent()({
15514
15580
  "transition": transition.value,
15515
15581
  "disabled": !isBooted.value
15516
15582
  }, {
15517
- default: () => [withDirectives(createVNode("div", {
15518
- "class": ['v-window-item', groupItem.selectedClass.value, props.class],
15519
- "style": props.style
15583
+ default: () => [withDirectives(createElementVNode("div", {
15584
+ "class": normalizeClass(['v-window-item', groupItem.selectedClass.value, props.class]),
15585
+ "style": normalizeStyle(props.style)
15520
15586
  }, [hasContent.value && slots.default?.()]), [[vShow, groupItem.isSelected.value]])]
15521
15587
  }));
15522
15588
  return {
@@ -15716,21 +15782,21 @@ const VColorPickerCanvas = defineComponent({
15716
15782
  immediate: true
15717
15783
  });
15718
15784
  onMounted(() => updateCanvas());
15719
- useRender(() => createVNode("div", {
15785
+ useRender(() => createElementVNode("div", {
15720
15786
  "ref": resizeRef,
15721
- "class": ['v-color-picker-canvas', props.class],
15722
- "style": props.style,
15787
+ "class": normalizeClass(['v-color-picker-canvas', props.class]),
15788
+ "style": normalizeStyle(props.style),
15723
15789
  "onMousedown": handleMouseDown,
15724
15790
  "onTouchstartPassive": handleMouseDown
15725
- }, [createVNode("canvas", {
15791
+ }, [createElementVNode("canvas", {
15726
15792
  "ref": canvasRef,
15727
15793
  "width": canvasWidth.value,
15728
15794
  "height": canvasHeight.value
15729
- }, null), props.color && createVNode("div", {
15730
- "class": ['v-color-picker-canvas__dot', {
15795
+ }, null), props.color && createElementVNode("div", {
15796
+ "class": normalizeClass(['v-color-picker-canvas__dot', {
15731
15797
  'v-color-picker-canvas__dot--disabled': props.disabled
15732
- }],
15733
- "style": dotStyles.value
15798
+ }]),
15799
+ "style": normalizeStyle(dotStyles.value)
15734
15800
  }, null)]));
15735
15801
  return {};
15736
15802
  }
@@ -15930,9 +15996,9 @@ const VColorPickerInput = _ref => {
15930
15996
  label,
15931
15997
  ...rest
15932
15998
  } = _ref;
15933
- return createVNode("div", {
15999
+ return createElementVNode("div", {
15934
16000
  "class": "v-color-picker-edit__input"
15935
- }, [createVNode("input", rest, null), createVNode("span", null, [label])]);
16001
+ }, [createElementVNode("input", normalizeProps(guardReactiveProps(rest)), null), createElementVNode("span", null, [label])]);
15936
16002
  };
15937
16003
  const makeVColorPickerEditProps = propsFactory({
15938
16004
  color: Object,
@@ -15989,9 +16055,9 @@ const VColorPickerEdit = defineComponent({
15989
16055
  };
15990
16056
  });
15991
16057
  });
15992
- useRender(() => createVNode("div", {
15993
- "class": ['v-color-picker-edit', props.class],
15994
- "style": props.style
16058
+ useRender(() => createElementVNode("div", {
16059
+ "class": normalizeClass(['v-color-picker-edit', props.class]),
16060
+ "style": normalizeStyle(props.style)
15995
16061
  }, [inputs.value?.map(props => createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && createVNode(VBtn, {
15996
16062
  "icon": "$unfold",
15997
16063
  "size": "x-small",
@@ -16155,7 +16221,7 @@ const useSlider = _ref => {
16155
16221
  const clickOffset = getPosition(e, position);
16156
16222
 
16157
16223
  // It is possible for left to be NaN, force to number
16158
- let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0;
16224
+ let clickPos = clamp((clickOffset - trackStart - startOffset.value) / trackLength) || 0;
16159
16225
  if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos;
16160
16226
  return roundValue(min.value + clickPos * (max.value - min.value));
16161
16227
  }
@@ -16334,7 +16400,7 @@ const makeVSliderThumbProps = propsFactory({
16334
16400
  const VSliderThumb = genericComponent()({
16335
16401
  name: 'VSliderThumb',
16336
16402
  directives: {
16337
- Ripple
16403
+ vRipple: Ripple
16338
16404
  },
16339
16405
  props: makeVSliderThumbProps(),
16340
16406
  emits: {
@@ -16414,15 +16480,15 @@ const VSliderThumb = genericComponent()({
16414
16480
  }
16415
16481
  useRender(() => {
16416
16482
  const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%');
16417
- return createVNode("div", {
16418
- "class": ['v-slider-thumb', {
16483
+ return createElementVNode("div", {
16484
+ "class": normalizeClass(['v-slider-thumb', {
16419
16485
  'v-slider-thumb--focused': props.focused,
16420
16486
  'v-slider-thumb--pressed': props.focused && mousePressed.value
16421
- }, props.class, rtlClasses.value],
16422
- "style": [{
16487
+ }, props.class, rtlClasses.value]),
16488
+ "style": normalizeStyle([{
16423
16489
  '--v-slider-thumb-position': positionPercentage,
16424
16490
  '--v-slider-thumb-size': convertToUnit(thumbSize.value)
16425
- }, props.style],
16491
+ }, props.style]),
16426
16492
  "role": "slider",
16427
16493
  "tabindex": disabled.value ? -1 : 0,
16428
16494
  "aria-label": props.name,
@@ -16432,25 +16498,25 @@ const VSliderThumb = genericComponent()({
16432
16498
  "aria-readonly": !!readonly.value,
16433
16499
  "aria-orientation": direction.value,
16434
16500
  "onKeydown": !readonly.value ? onKeydown : undefined
16435
- }, [createVNode("div", {
16436
- "class": ['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value],
16437
- "style": {
16501
+ }, [createElementVNode("div", {
16502
+ "class": normalizeClass(['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value]),
16503
+ "style": normalizeStyle({
16438
16504
  ...textColorStyles.value
16439
- }
16440
- }, null), withDirectives(createVNode("div", {
16441
- "class": ['v-slider-thumb__ripple', textColorClasses.value],
16442
- "style": textColorStyles.value
16443
- }, null), [[resolveDirective("ripple"), props.ripple, null, {
16505
+ })
16506
+ }, null), withDirectives(createElementVNode("div", {
16507
+ "class": normalizeClass(['v-slider-thumb__ripple', textColorClasses.value]),
16508
+ "style": normalizeStyle(textColorStyles.value)
16509
+ }, null), [[Ripple, props.ripple, null, {
16444
16510
  circle: true,
16445
16511
  center: true
16446
16512
  }]]), createVNode(VScaleTransition, {
16447
16513
  "origin": "bottom center"
16448
16514
  }, {
16449
- default: () => [withDirectives(createVNode("div", {
16515
+ default: () => [withDirectives(createElementVNode("div", {
16450
16516
  "class": "v-slider-thumb__label-container"
16451
- }, [createVNode("div", {
16517
+ }, [createElementVNode("div", {
16452
16518
  "class": ['v-slider-thumb__label']
16453
- }, [createVNode("div", null, [slots['thumb-label']?.({
16519
+ }, [createElementVNode("div", null, [slots['thumb-label']?.({
16454
16520
  modelValue: props.modelValue
16455
16521
  }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
16456
16522
  })]);
@@ -16527,17 +16593,17 @@ const VSliderTrack = genericComponent()({
16527
16593
  const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value;
16528
16594
  return ticks.map((tick, index) => {
16529
16595
  const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined;
16530
- return createVNode("div", {
16596
+ return createElementVNode("div", {
16531
16597
  "key": tick.value,
16532
- "class": ['v-slider-track__tick', {
16598
+ "class": normalizeClass(['v-slider-track__tick', {
16533
16599
  'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,
16534
16600
  'v-slider-track__tick--first': tick.value === min.value,
16535
16601
  'v-slider-track__tick--last': tick.value === max.value
16536
- }],
16537
- "style": {
16602
+ }]),
16603
+ "style": normalizeStyle({
16538
16604
  [startDir.value]: directionValue
16539
- }
16540
- }, [(tick.label || slots['tick-label']) && createVNode("div", {
16605
+ })
16606
+ }, [(tick.label || slots['tick-label']) && createElementVNode("div", {
16541
16607
  "class": "v-slider-track__tick-label"
16542
16608
  }, [slots['tick-label']?.({
16543
16609
  tick,
@@ -16546,30 +16612,30 @@ const VSliderTrack = genericComponent()({
16546
16612
  });
16547
16613
  });
16548
16614
  useRender(() => {
16549
- return createVNode("div", {
16550
- "class": ['v-slider-track', roundedClasses.value, props.class],
16551
- "style": [{
16615
+ return createElementVNode("div", {
16616
+ "class": normalizeClass(['v-slider-track', roundedClasses.value, props.class]),
16617
+ "style": normalizeStyle([{
16552
16618
  '--v-slider-track-size': convertToUnit(trackSize.value),
16553
16619
  '--v-slider-tick-size': convertToUnit(tickSize.value)
16554
- }, props.style]
16555
- }, [createVNode("div", {
16556
- "class": ['v-slider-track__background', trackColorClasses.value, {
16620
+ }, props.style])
16621
+ }, [createElementVNode("div", {
16622
+ "class": normalizeClass(['v-slider-track__background', trackColorClasses.value, {
16557
16623
  'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
16558
- }],
16559
- "style": {
16624
+ }]),
16625
+ "style": normalizeStyle({
16560
16626
  ...backgroundStyles.value,
16561
16627
  ...trackColorStyles.value
16562
- }
16563
- }, null), createVNode("div", {
16564
- "class": ['v-slider-track__fill', trackFillColorClasses.value],
16565
- "style": {
16628
+ })
16629
+ }, null), createElementVNode("div", {
16630
+ "class": normalizeClass(['v-slider-track__fill', trackFillColorClasses.value]),
16631
+ "style": normalizeStyle({
16566
16632
  ...trackFillStyles.value,
16567
16633
  ...trackFillColorStyles.value
16568
- }
16569
- }, null), showTicks.value && createVNode("div", {
16570
- "class": ['v-slider-track__ticks', {
16634
+ })
16635
+ }, null), showTicks.value && createElementVNode("div", {
16636
+ "class": normalizeClass(['v-slider-track__ticks', {
16571
16637
  'v-slider-track__ticks--always-show': showTicks.value === 'always'
16572
- }]
16638
+ }])
16573
16639
  }, [computedTicks.value])]);
16574
16640
  });
16575
16641
  return {};
@@ -16663,7 +16729,7 @@ const VSlider = genericComponent()({
16663
16729
  "focused": isFocused.value
16664
16730
  }), {
16665
16731
  ...slots,
16666
- prepend: hasPrepend ? slotProps => createVNode(Fragment, null, [slots.label?.(slotProps) ?? (props.label ? createVNode(VLabel, {
16732
+ prepend: hasPrepend ? slotProps => createElementVNode(Fragment, null, [slots.label?.(slotProps) ?? (props.label ? createVNode(VLabel, {
16667
16733
  "id": slotProps.id.value,
16668
16734
  "class": "v-slider__label",
16669
16735
  "text": props.label
@@ -16673,11 +16739,11 @@ const VSlider = genericComponent()({
16673
16739
  id,
16674
16740
  messagesId
16675
16741
  } = _ref4;
16676
- return createVNode("div", {
16742
+ return createElementVNode("div", {
16677
16743
  "class": "v-slider__container",
16678
16744
  "onMousedown": !readonly.value ? onSliderMousedown : undefined,
16679
16745
  "onTouchstartPassive": !readonly.value ? onSliderTouchstart : undefined
16680
- }, [createVNode("input", {
16746
+ }, [createElementVNode("input", {
16681
16747
  "id": id.value,
16682
16748
  "name": props.name || id.value,
16683
16749
  "disabled": !!props.disabled,
@@ -16750,12 +16816,12 @@ const VColorPickerPreview = defineComponent({
16750
16816
  });
16751
16817
  } catch (e) {}
16752
16818
  }
16753
- useRender(() => createVNode("div", {
16754
- "class": ['v-color-picker-preview', {
16819
+ useRender(() => createElementVNode("div", {
16820
+ "class": normalizeClass(['v-color-picker-preview', {
16755
16821
  'v-color-picker-preview--hide-alpha': props.hideAlpha
16756
- }, props.class],
16757
- "style": props.style
16758
- }, [SUPPORTS_EYE_DROPPER && createVNode("div", {
16822
+ }, props.class]),
16823
+ "style": normalizeStyle(props.style)
16824
+ }, [SUPPORTS_EYE_DROPPER && createElementVNode("div", {
16759
16825
  "class": "v-color-picker-preview__eye-dropper",
16760
16826
  "key": "eyeDropper"
16761
16827
  }, [createVNode(VBtn, {
@@ -16764,13 +16830,13 @@ const VColorPickerPreview = defineComponent({
16764
16830
  "icon": "$eyeDropper",
16765
16831
  "variant": "plain",
16766
16832
  "onClick": openEyeDropper
16767
- }, null)]), createVNode("div", {
16833
+ }, null)]), createElementVNode("div", {
16768
16834
  "class": "v-color-picker-preview__dot"
16769
- }, [createVNode("div", {
16770
- "style": {
16835
+ }, [createElementVNode("div", {
16836
+ "style": normalizeStyle({
16771
16837
  background: HSVtoCSS(props.color ?? nullColor)
16772
- }
16773
- }, null)]), createVNode("div", {
16838
+ })
16839
+ }, null)]), createElementVNode("div", {
16774
16840
  "class": "v-color-picker-preview__sliders"
16775
16841
  }, [createVNode(VSlider, {
16776
16842
  "class": "v-color-picker-preview__track v-color-picker-preview__hue",
@@ -17155,24 +17221,24 @@ const VColorPickerSwatches = defineComponent({
17155
17221
  let {
17156
17222
  emit
17157
17223
  } = _ref;
17158
- useRender(() => createVNode("div", {
17159
- "class": ['v-color-picker-swatches', props.class],
17160
- "style": [{
17224
+ useRender(() => createElementVNode("div", {
17225
+ "class": normalizeClass(['v-color-picker-swatches', props.class]),
17226
+ "style": normalizeStyle([{
17161
17227
  maxHeight: convertToUnit(props.maxHeight)
17162
- }, props.style]
17163
- }, [createVNode("div", null, [props.swatches.map(swatch => createVNode("div", {
17228
+ }, props.style])
17229
+ }, [createElementVNode("div", null, [props.swatches.map(swatch => createElementVNode("div", {
17164
17230
  "class": "v-color-picker-swatches__swatch"
17165
17231
  }, [swatch.map(color => {
17166
17232
  const rgba = parseColor(color);
17167
17233
  const hsva = RGBtoHSV(rgba);
17168
17234
  const background = RGBtoCSS(rgba);
17169
- return createVNode("div", {
17235
+ return createElementVNode("div", {
17170
17236
  "class": "v-color-picker-swatches__color",
17171
17237
  "onClick": () => hsva && emit('update:color', hsva)
17172
- }, [createVNode("div", {
17173
- "style": {
17238
+ }, [createElementVNode("div", {
17239
+ "style": normalizeStyle({
17174
17240
  background
17175
- }
17241
+ })
17176
17242
  }, [props.color && deepEqual(props.color, hsva) ? createVNode(VIcon, {
17177
17243
  "size": "x-small",
17178
17244
  "icon": "$success",
@@ -17231,8 +17297,8 @@ const VSheet = genericComponent()({
17231
17297
  roundedClasses
17232
17298
  } = useRounded(props);
17233
17299
  useRender(() => createVNode(props.tag, {
17234
- "class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
17235
- "style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]
17300
+ "class": normalizeClass(['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class]),
17301
+ "style": normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style])
17236
17302
  }, slots));
17237
17303
  return {};
17238
17304
  }
@@ -17271,17 +17337,17 @@ const VPicker = genericComponent()({
17271
17337
  }, props.class],
17272
17338
  "style": props.style
17273
17339
  }), {
17274
- default: () => [!props.hideHeader && createVNode("div", {
17340
+ default: () => [!props.hideHeader && createElementVNode("div", {
17275
17341
  "key": "header",
17276
- "class": [backgroundColorClasses.value],
17277
- "style": [backgroundColorStyles.value]
17342
+ "class": normalizeClass([backgroundColorClasses.value]),
17343
+ "style": normalizeStyle([backgroundColorStyles.value])
17278
17344
  }, [hasTitle && createVNode(VPickerTitle, {
17279
17345
  "key": "picker-title"
17280
17346
  }, {
17281
17347
  default: () => [slots.title?.() ?? props.title]
17282
- }), slots.header && createVNode("div", {
17348
+ }), slots.header && createElementVNode("div", {
17283
17349
  "class": "v-picker__header"
17284
- }, [slots.header()])]), createVNode("div", {
17350
+ }, [slots.header()])]), createElementVNode("div", {
17285
17351
  "class": "v-picker__body"
17286
17352
  }, [slots.default?.()]), slots.actions && createVNode(VDefaultsProvider, {
17287
17353
  "defaults": {
@@ -17291,7 +17357,7 @@ const VPicker = genericComponent()({
17291
17357
  }
17292
17358
  }
17293
17359
  }, {
17294
- default: () => [createVNode("div", {
17360
+ default: () => [createElementVNode("div", {
17295
17361
  "class": "v-picker__actions"
17296
17362
  }, [slots.actions()])]
17297
17363
  })]
@@ -18153,7 +18219,7 @@ const VColorPicker = defineComponent({
18153
18219
  }, props.style]
18154
18220
  }), {
18155
18221
  ...slots,
18156
- default: () => createVNode(Fragment, null, [!props.hideCanvas && createVNode(VColorPickerCanvas, {
18222
+ default: () => createElementVNode(Fragment, null, [!props.hideCanvas && createVNode(VColorPickerCanvas, {
18157
18223
  "key": "canvas",
18158
18224
  "color": currentColor.value,
18159
18225
  "onUpdate:color": updateColor,
@@ -18161,7 +18227,7 @@ const VColorPicker = defineComponent({
18161
18227
  "dotSize": props.dotSize,
18162
18228
  "width": props.width,
18163
18229
  "height": props.canvasHeight
18164
- }, null), (!props.hideSliders || !props.hideInputs) && createVNode("div", {
18230
+ }, null), (!props.hideSliders || !props.hideInputs) && createElementVNode("div", {
18165
18231
  "key": "controls",
18166
18232
  "class": "v-color-picker__controls"
18167
18233
  }, [!props.hideSliders && createVNode(VColorPickerPreview, {
@@ -18536,7 +18602,7 @@ const VCombobox = genericComponent()({
18536
18602
  "onKeydown": onKeydown
18537
18603
  }), {
18538
18604
  ...slots,
18539
- default: () => createVNode(Fragment, null, [createVNode(VMenu, mergeProps({
18605
+ default: () => createElementVNode(Fragment, null, [createVNode(VMenu, mergeProps({
18540
18606
  "ref": vMenuRef,
18541
18607
  "modelValue": menu.value,
18542
18608
  "onUpdate:modelValue": $event => menu.value = $event,
@@ -18595,7 +18661,7 @@ const VCombobox = genericComponent()({
18595
18661
  let {
18596
18662
  isSelected
18597
18663
  } = _ref5;
18598
- return createVNode(Fragment, null, [props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
18664
+ return createElementVNode(Fragment, null, [props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
18599
18665
  "key": item.value,
18600
18666
  "modelValue": isSelected,
18601
18667
  "ripple": false,
@@ -18644,10 +18710,10 @@ const VCombobox = genericComponent()({
18644
18710
  index
18645
18711
  })) : undefined;
18646
18712
  if (hasSlot && !slotContent) return undefined;
18647
- return createVNode("div", {
18713
+ return createElementVNode("div", {
18648
18714
  "key": item.value,
18649
- "class": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],
18650
- "style": index === selectionIndex.value ? textColorStyles.value : {}
18715
+ "class": normalizeClass(['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]]),
18716
+ "style": normalizeStyle(index === selectionIndex.value ? textColorStyles.value : {})
18651
18717
  }, [hasChips.value ? !slots.chip ? createVNode(VChip, mergeProps({
18652
18718
  "key": "chip",
18653
18719
  "closable": props.closableChips,
@@ -18665,9 +18731,9 @@ const VCombobox = genericComponent()({
18665
18731
  }
18666
18732
  }, {
18667
18733
  default: () => [slotContent]
18668
- }) : slotContent ?? createVNode("span", {
18734
+ }) : slotContent ?? createElementVNode("span", {
18669
18735
  "class": "v-combobox__selection-text"
18670
- }, [item.title, props.multiple && index < model.value.length - 1 && createVNode("span", {
18736
+ }, [item.title, props.multiple && index < model.value.length - 1 && createElementVNode("span", {
18671
18737
  "class": "v-combobox__selection-comma"
18672
18738
  }, [createTextVNode(",")])])]);
18673
18739
  })]),
@@ -18675,7 +18741,7 @@ const VCombobox = genericComponent()({
18675
18741
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
18676
18742
  args[_key] = arguments[_key];
18677
18743
  }
18678
- return createVNode(Fragment, null, [slots['append-inner']?.(...args), (!props.hideNoData || props.items.length) && props.menuIcon ? createVNode(VIcon, {
18744
+ return createElementVNode(Fragment, null, [slots['append-inner']?.(...args), (!props.hideNoData || props.items.length) && props.menuIcon ? createVNode(VIcon, {
18679
18745
  "class": "v-combobox__menu-icon",
18680
18746
  "color": vTextFieldRef.value?.fieldIconColor,
18681
18747
  "icon": props.menuIcon,
@@ -18763,7 +18829,7 @@ const VConfirmEdit = genericComponent()({
18763
18829
  emit('cancel');
18764
18830
  }
18765
18831
  function actions(actionsProps) {
18766
- return createVNode(Fragment, null, [createVNode(VBtn, mergeProps({
18832
+ return createElementVNode(Fragment, null, [createVNode(VBtn, mergeProps({
18767
18833
  "disabled": isCancelDisabled.value,
18768
18834
  "variant": "text",
18769
18835
  "color": props.color,
@@ -18779,7 +18845,7 @@ const VConfirmEdit = genericComponent()({
18779
18845
  }
18780
18846
  let actionsUsed = false;
18781
18847
  useRender(() => {
18782
- return createVNode(Fragment, null, [slots.default?.({
18848
+ return createElementVNode(Fragment, null, [slots.default?.({
18783
18849
  model: internalModel,
18784
18850
  save,
18785
18851
  cancel,
@@ -19662,10 +19728,10 @@ const VDataIterator = genericComponent()({
19662
19728
  groupedItems: paginatedItems.value
19663
19729
  }));
19664
19730
  useRender(() => createVNode(props.tag, {
19665
- "class": ['v-data-iterator', {
19731
+ "class": normalizeClass(['v-data-iterator', {
19666
19732
  'v-data-iterator--loading': props.loading
19667
- }, props.class],
19668
- "style": props.style
19733
+ }, props.class]),
19734
+ "style": normalizeStyle(props.style)
19669
19735
  }, {
19670
19736
  default: () => [slots.header?.(slotProps.value), createVNode(MaybeTransition, {
19671
19737
  "transition": props.transition
@@ -19676,7 +19742,7 @@ const VDataIterator = genericComponent()({
19676
19742
  "active": true
19677
19743
  }, {
19678
19744
  default: slotProps => slots.loader?.(slotProps)
19679
- }) : createVNode("div", {
19745
+ }) : createElementVNode("div", {
19680
19746
  "key": "items"
19681
19747
  }, [!paginatedItems.value.length ? slots['no-data']?.() : slots.default?.(slotProps.value)])]
19682
19748
  }), slots.footer?.(slotProps.value)]
@@ -19970,44 +20036,44 @@ const VPagination = genericComponent()({
19970
20036
  }
19971
20037
  useRender(() => createVNode(props.tag, {
19972
20038
  "ref": resizeRef,
19973
- "class": ['v-pagination', themeClasses.value, props.class],
19974
- "style": props.style,
20039
+ "class": normalizeClass(['v-pagination', themeClasses.value, props.class]),
20040
+ "style": normalizeStyle(props.style),
19975
20041
  "role": "navigation",
19976
20042
  "aria-label": t(props.ariaLabel),
19977
20043
  "onKeydown": onKeydown,
19978
20044
  "data-test": "v-pagination-root"
19979
20045
  }, {
19980
- default: () => [createVNode("ul", {
20046
+ default: () => [createElementVNode("ul", {
19981
20047
  "class": "v-pagination__list"
19982
- }, [props.showFirstLastPage && createVNode("li", {
20048
+ }, [props.showFirstLastPage && createElementVNode("li", {
19983
20049
  "key": "first",
19984
20050
  "class": "v-pagination__first",
19985
20051
  "data-test": "v-pagination-first"
19986
20052
  }, [slots.first ? slots.first(controls.value.first) : createVNode(VBtn, mergeProps({
19987
20053
  "_as": "VPaginationBtn"
19988
- }, controls.value.first), null)]), createVNode("li", {
20054
+ }, controls.value.first), null)]), createElementVNode("li", {
19989
20055
  "key": "prev",
19990
20056
  "class": "v-pagination__prev",
19991
20057
  "data-test": "v-pagination-prev"
19992
20058
  }, [slots.prev ? slots.prev(controls.value.prev) : createVNode(VBtn, mergeProps({
19993
20059
  "_as": "VPaginationBtn"
19994
- }, controls.value.prev), null)]), items.value.map((item, index) => createVNode("li", {
20060
+ }, controls.value.prev), null)]), items.value.map((item, index) => createElementVNode("li", {
19995
20061
  "key": item.key,
19996
- "class": ['v-pagination__item', {
20062
+ "class": normalizeClass(['v-pagination__item', {
19997
20063
  'v-pagination__item--is-active': item.isActive
19998
- }],
20064
+ }]),
19999
20065
  "data-test": "v-pagination-item"
20000
20066
  }, [slots.item ? slots.item(item) : createVNode(VBtn, mergeProps({
20001
20067
  "_as": "VPaginationBtn"
20002
20068
  }, item.props), {
20003
20069
  default: () => [item.page]
20004
- })])), createVNode("li", {
20070
+ })])), createElementVNode("li", {
20005
20071
  "key": "next",
20006
20072
  "class": "v-pagination__next",
20007
20073
  "data-test": "v-pagination-next"
20008
20074
  }, [slots.next ? slots.next(controls.value.next) : createVNode(VBtn, mergeProps({
20009
20075
  "_as": "VPaginationBtn"
20010
- }, controls.value.next), null)]), props.showFirstLastPage && createVNode("li", {
20076
+ }, controls.value.next), null)]), props.showFirstLastPage && createElementVNode("li", {
20011
20077
  "key": "last",
20012
20078
  "class": "v-pagination__last",
20013
20079
  "data-test": "v-pagination-last"
@@ -20116,20 +20182,20 @@ const VDataTableFooter = genericComponent()({
20116
20182
  }));
20117
20183
  useRender(() => {
20118
20184
  const paginationProps = VPagination.filterProps(props);
20119
- return createVNode("div", {
20185
+ return createElementVNode("div", {
20120
20186
  "class": "v-data-table-footer"
20121
- }, [slots.prepend?.(), createVNode("div", {
20187
+ }, [slots.prepend?.(), createElementVNode("div", {
20122
20188
  "class": "v-data-table-footer__items-per-page"
20123
- }, [createVNode("span", null, [t(props.itemsPerPageText)]), createVNode(VSelect, {
20189
+ }, [createElementVNode("span", null, [t(props.itemsPerPageText)]), createVNode(VSelect, {
20124
20190
  "items": itemsPerPageOptions.value,
20125
20191
  "modelValue": itemsPerPage.value,
20126
20192
  "onUpdate:modelValue": v => setItemsPerPage(Number(v)),
20127
20193
  "density": "compact",
20128
20194
  "variant": "outlined",
20129
20195
  "hide-details": true
20130
- }, null)]), createVNode("div", {
20196
+ }, null)]), createElementVNode("div", {
20131
20197
  "class": "v-data-table-footer__info"
20132
- }, [createVNode("div", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), createVNode("div", {
20198
+ }, [createElementVNode("div", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), createElementVNode("div", {
20133
20199
  "class": "v-data-table-footer__pagination"
20134
20200
  }, [createVNode(VPagination, mergeProps({
20135
20201
  "modelValue": page.value,
@@ -20172,18 +20238,18 @@ const VDataTableColumn = defineFunctionalComponent({
20172
20238
  } = _ref;
20173
20239
  const Tag = props.tag ?? 'td';
20174
20240
  return createVNode(Tag, {
20175
- "class": ['v-data-table__td', {
20241
+ "class": normalizeClass(['v-data-table__td', {
20176
20242
  'v-data-table-column--fixed': props.fixed,
20177
20243
  'v-data-table-column--last-fixed': props.lastFixed,
20178
20244
  'v-data-table-column--no-padding': props.noPadding,
20179
20245
  'v-data-table-column--nowrap': props.nowrap
20180
- }, `v-data-table-column--align-${props.align}`],
20181
- "style": {
20246
+ }, `v-data-table-column--align-${props.align}`]),
20247
+ "style": normalizeStyle({
20182
20248
  height: convertToUnit(props.height),
20183
20249
  width: convertToUnit(props.width),
20184
20250
  maxWidth: convertToUnit(props.maxWidth),
20185
20251
  left: convertToUnit(props.fixedOffset || null)
20186
- }
20252
+ })
20187
20253
  }, {
20188
20254
  default: () => [slots.default?.()]
20189
20255
  });
@@ -20593,16 +20659,16 @@ const VDataTableHeaders = genericComponent()({
20593
20659
  "onUpdate:modelValue": selectAll
20594
20660
  }, null));
20595
20661
  }
20596
- return createVNode("div", {
20662
+ return createElementVNode("div", {
20597
20663
  "class": "v-data-table-header__content"
20598
- }, [createVNode("span", null, [column.title]), column.sortable && !props.disableSort && createVNode(VIcon, {
20664
+ }, [createElementVNode("span", null, [column.title]), column.sortable && !props.disableSort && createVNode(VIcon, {
20599
20665
  "key": "icon",
20600
20666
  "class": "v-data-table-header__sort-icon",
20601
20667
  "icon": getSortIcon(column)
20602
- }, null), props.multiSort && isSorted(column) && createVNode("div", {
20668
+ }, null), props.multiSort && isSorted(column) && createElementVNode("div", {
20603
20669
  "key": "badge",
20604
- "class": ['v-data-table-header__sort-badge', ...backgroundColorClasses.value],
20605
- "style": backgroundColorStyles.value
20670
+ "class": normalizeClass(['v-data-table-header__sort-badge', ...backgroundColorClasses.value]),
20671
+ "style": normalizeStyle(backgroundColorStyles.value)
20606
20672
  }, [sortBy.value.findIndex(x => x.key === column.key) + 1])]);
20607
20673
  }
20608
20674
  });
@@ -20621,7 +20687,7 @@ const VDataTableHeaders = genericComponent()({
20621
20687
  "class": [...headerCellClasses.value],
20622
20688
  "colspan": headers.value.length + 1
20623
20689
  }, props.headerProps), {
20624
- default: () => [createVNode("div", {
20690
+ default: () => [createElementVNode("div", {
20625
20691
  "class": "v-data-table-header__content"
20626
20692
  }, [createVNode(VSelect, {
20627
20693
  "chips": true,
@@ -20645,7 +20711,7 @@ const VDataTableHeaders = genericComponent()({
20645
20711
  }
20646
20712
  }, {
20647
20713
  default: () => [props.item.title, createVNode(VIcon, {
20648
- "class": ['v-data-table__td-sort-icon', isSorted(props.item.raw) && 'v-data-table__td-sort-icon-active'],
20714
+ "class": normalizeClass(['v-data-table__td-sort-icon', isSorted(props.item.raw) && 'v-data-table__td-sort-icon-active']),
20649
20715
  "icon": getSortIcon(props.item.raw),
20650
20716
  "size": "small"
20651
20717
  }, null)]
@@ -20654,13 +20720,13 @@ const VDataTableHeaders = genericComponent()({
20654
20720
  });
20655
20721
  };
20656
20722
  useRender(() => {
20657
- return mobile.value ? createVNode("tr", null, [createVNode(VDataTableMobileHeaderCell, null, null)]) : createVNode(Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => createVNode("tr", null, [row.map((column, x) => createVNode(VDataTableHeaderCell, {
20723
+ return mobile.value ? createElementVNode("tr", null, [createVNode(VDataTableMobileHeaderCell, null, null)]) : createElementVNode(Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => createElementVNode("tr", null, [row.map((column, x) => createVNode(VDataTableHeaderCell, {
20658
20724
  "column": column,
20659
20725
  "x": x,
20660
20726
  "y": y
20661
- }, null))])), props.loading && createVNode("tr", {
20727
+ }, null))])), props.loading && createElementVNode("tr", {
20662
20728
  "class": "v-data-table-progress"
20663
- }, [createVNode("th", {
20729
+ }, [createElementVNode("th", {
20664
20730
  "colspan": columns.value.length
20665
20731
  }, [createVNode(LoaderSlot, {
20666
20732
  "name": "v-data-table-progress",
@@ -20706,11 +20772,11 @@ const VDataTableGroupHeaderRow = genericComponent()({
20706
20772
  const rows = computed(() => {
20707
20773
  return extractRows([props.item]);
20708
20774
  });
20709
- return () => createVNode("tr", {
20775
+ return () => createElementVNode("tr", {
20710
20776
  "class": "v-data-table-group-header-row",
20711
- "style": {
20777
+ "style": normalizeStyle({
20712
20778
  '--v-data-table-group-header-row-depth': props.item.depth
20713
- }
20779
+ })
20714
20780
  }, [columns.value.map(column => {
20715
20781
  if (column.key === 'data-table-group') {
20716
20782
  const icon = isGroupOpen(props.item) ? '$expand' : '$next';
@@ -20730,7 +20796,7 @@ const VDataTableGroupHeaderRow = genericComponent()({
20730
20796
  "variant": "text",
20731
20797
  "icon": icon,
20732
20798
  "onClick": onClick
20733
- }, null), createVNode("span", null, [props.item.value]), createVNode("span", null, [createTextVNode("("), rows.value.length, createTextVNode(")")])]
20799
+ }, null), createElementVNode("span", null, [props.item.value]), createElementVNode("span", null, [createTextVNode("("), rows.value.length, createTextVNode(")")])]
20734
20800
  });
20735
20801
  }
20736
20802
  if (column.key === 'data-table-select') {
@@ -20743,13 +20809,13 @@ const VDataTableGroupHeaderRow = genericComponent()({
20743
20809
  indeterminate,
20744
20810
  'onUpdate:modelValue': selectGroup
20745
20811
  }
20746
- }) ?? createVNode("td", null, [createVNode(VCheckboxBtn, {
20812
+ }) ?? createElementVNode("td", null, [createVNode(VCheckboxBtn, {
20747
20813
  "modelValue": modelValue,
20748
20814
  "indeterminate": indeterminate,
20749
20815
  "onUpdate:modelValue": selectGroup
20750
20816
  }, null)]);
20751
20817
  }
20752
- return createVNode("td", null, null);
20818
+ return createElementVNode("td", null, null);
20753
20819
  })]);
20754
20820
  }
20755
20821
  });
@@ -20795,10 +20861,10 @@ const VDataTableRow = genericComponent()({
20795
20861
  const {
20796
20862
  columns
20797
20863
  } = useHeaders();
20798
- useRender(() => createVNode("tr", {
20799
- "class": ['v-data-table__tr', {
20864
+ useRender(() => createElementVNode("tr", {
20865
+ "class": normalizeClass(['v-data-table__tr', {
20800
20866
  'v-data-table__tr--clickable': !!(props.onClick || props.onContextmenu || props.onDblclick)
20801
- }, displayClasses.value],
20867
+ }, displayClasses.value]),
20802
20868
  "onClick": props.onClick,
20803
20869
  "onContextmenu": props.onContextmenu,
20804
20870
  "onDblclick": props.onDblclick
@@ -20887,9 +20953,9 @@ const VDataTableRow = genericComponent()({
20887
20953
  }
20888
20954
  if (slots[slotName] && !mobile.value) return slots[slotName](slotProps);
20889
20955
  const displayValue = toDisplayString(slotProps.value);
20890
- return !mobile.value ? displayValue : createVNode(Fragment, null, [createVNode("div", {
20956
+ return !mobile.value ? displayValue : createElementVNode(Fragment, null, [createElementVNode("div", {
20891
20957
  "class": "v-data-table__td-title"
20892
- }, [slots[headerSlotName]?.(columnSlotProps) ?? column.title]), createVNode("div", {
20958
+ }, [slots[headerSlotName]?.(columnSlotProps) ?? column.title]), createElementVNode("div", {
20893
20959
  "class": "v-data-table__td-value"
20894
20960
  }, [slots[slotName]?.(slotProps) ?? displayValue])]);
20895
20961
  }
@@ -20952,22 +21018,22 @@ const VDataTableRows = genericComponent()({
20952
21018
  } = useDisplay(props);
20953
21019
  useRender(() => {
20954
21020
  if (props.loading && (!props.items.length || slots.loading)) {
20955
- return createVNode("tr", {
21021
+ return createElementVNode("tr", {
20956
21022
  "class": "v-data-table-rows-loading",
20957
21023
  "key": "loading"
20958
- }, [createVNode("td", {
21024
+ }, [createElementVNode("td", {
20959
21025
  "colspan": columns.value.length
20960
21026
  }, [slots.loading?.() ?? t(props.loadingText)])]);
20961
21027
  }
20962
21028
  if (!props.loading && !props.items.length && !props.hideNoData) {
20963
- return createVNode("tr", {
21029
+ return createElementVNode("tr", {
20964
21030
  "class": "v-data-table-rows-no-data",
20965
21031
  "key": "no-data"
20966
- }, [createVNode("td", {
21032
+ }, [createElementVNode("td", {
20967
21033
  "colspan": columns.value.length
20968
21034
  }, [slots['no-data']?.() ?? t(props.noDataText)])]);
20969
21035
  }
20970
- return createVNode(Fragment, null, [props.items.map((item, index) => {
21036
+ return createElementVNode(Fragment, null, [props.items.map((item, index) => {
20971
21037
  if (item.type === 'group') {
20972
21038
  const slotProps = {
20973
21039
  index,
@@ -21012,7 +21078,7 @@ const VDataTableRows = genericComponent()({
21012
21078
  internalItem: slotProps.internalItem
21013
21079
  }) : props.rowProps)
21014
21080
  };
21015
- return createVNode(Fragment, {
21081
+ return createElementVNode(Fragment, {
21016
21082
  "key": itemSlotProps.props.key
21017
21083
  }, [slots.item ? slots.item(itemSlotProps) : createVNode(VDataTableRow, itemSlotProps.props, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
21018
21084
  })]);
@@ -21046,22 +21112,22 @@ const VTable = genericComponent()({
21046
21112
  densityClasses
21047
21113
  } = useDensity(props);
21048
21114
  useRender(() => createVNode(props.tag, {
21049
- "class": ['v-table', {
21115
+ "class": normalizeClass(['v-table', {
21050
21116
  'v-table--fixed-height': !!props.height,
21051
21117
  'v-table--fixed-header': props.fixedHeader,
21052
21118
  'v-table--fixed-footer': props.fixedFooter,
21053
21119
  'v-table--has-top': !!slots.top,
21054
21120
  'v-table--has-bottom': !!slots.bottom,
21055
21121
  'v-table--hover': props.hover
21056
- }, themeClasses.value, densityClasses.value, props.class],
21057
- "style": props.style
21122
+ }, themeClasses.value, densityClasses.value, props.class]),
21123
+ "style": normalizeStyle(props.style)
21058
21124
  }, {
21059
- default: () => [slots.top?.(), slots.default ? createVNode("div", {
21125
+ default: () => [slots.top?.(), slots.default ? createElementVNode("div", {
21060
21126
  "class": "v-table__wrapper",
21061
- "style": {
21127
+ "style": normalizeStyle({
21062
21128
  height: convertToUnit(props.height)
21063
- }
21064
- }, [createVNode("table", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]
21129
+ })
21130
+ }, [createElementVNode("table", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]
21065
21131
  }));
21066
21132
  return {};
21067
21133
  }
@@ -21314,12 +21380,12 @@ const VDataTable = genericComponent()({
21314
21380
  "fixedHeader": props.fixedHeader || props.sticky
21315
21381
  }), {
21316
21382
  top: () => slots.top?.(slotProps.value),
21317
- default: () => slots.default ? slots.default(slotProps.value) : createVNode(Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createVNode("thead", {
21383
+ default: () => slots.default ? slots.default(slotProps.value) : createElementVNode(Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createElementVNode("thead", {
21318
21384
  "key": "thead"
21319
- }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
21385
+ }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
21320
21386
  "items": paginatedItems.value
21321
21387
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
21322
- bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && createVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
21388
+ bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && createElementVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
21323
21389
  prepend: slots['footer.prepend']
21324
21390
  })])
21325
21391
  });
@@ -21490,25 +21556,25 @@ const VDataTableVirtual = genericComponent()({
21490
21556
  "fixedHeader": props.fixedHeader || props.sticky
21491
21557
  }), {
21492
21558
  top: () => slots.top?.(slotProps.value),
21493
- wrapper: () => createVNode("div", {
21559
+ wrapper: () => createElementVNode("div", {
21494
21560
  "ref": containerRef,
21495
21561
  "onScrollPassive": handleScroll,
21496
21562
  "onScrollend": handleScrollend,
21497
21563
  "class": "v-table__wrapper",
21498
- "style": {
21564
+ "style": normalizeStyle({
21499
21565
  height: convertToUnit(props.height)
21500
- }
21501
- }, [createVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createVNode("thead", {
21566
+ })
21567
+ }, [createElementVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createElementVNode("thead", {
21502
21568
  "key": "thead"
21503
- }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createVNode("tbody", {
21569
+ }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", {
21504
21570
  "key": "tbody"
21505
- }, [createVNode("tr", {
21571
+ }, [createElementVNode("tr", {
21506
21572
  "ref": markerRef,
21507
- "style": {
21573
+ "style": normalizeStyle({
21508
21574
  height: convertToUnit(paddingTop.value),
21509
21575
  border: 0
21510
- }
21511
- }, [createVNode("td", {
21576
+ })
21577
+ }, [createElementVNode("td", {
21512
21578
  "colspan": columns.value.length,
21513
21579
  "style": {
21514
21580
  height: 0,
@@ -21537,12 +21603,12 @@ const VDataTableVirtual = genericComponent()({
21537
21603
  }), slots);
21538
21604
  }
21539
21605
  })
21540
- }), slots['body.append']?.(slotProps.value), createVNode("tr", {
21541
- "style": {
21606
+ }), slots['body.append']?.(slotProps.value), createElementVNode("tr", {
21607
+ "style": normalizeStyle({
21542
21608
  height: convertToUnit(paddingBottom.value),
21543
21609
  border: 0
21544
- }
21545
- }, [createVNode("td", {
21610
+ })
21611
+ }, [createElementVNode("td", {
21546
21612
  "colspan": columns.value.length,
21547
21613
  "style": {
21548
21614
  height: 0,
@@ -21715,17 +21781,17 @@ const VDataTableServer = genericComponent()({
21715
21781
  "fixedHeader": props.fixedHeader || props.sticky
21716
21782
  }), {
21717
21783
  top: () => slots.top?.(slotProps.value),
21718
- default: () => slots.default ? slots.default(slotProps.value) : createVNode(Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createVNode("thead", {
21784
+ default: () => slots.default ? slots.default(slotProps.value) : createElementVNode(Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createElementVNode("thead", {
21719
21785
  "key": "thead",
21720
21786
  "class": "v-data-table__thead",
21721
21787
  "role": "rowgroup"
21722
- }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createVNode("tbody", {
21788
+ }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", {
21723
21789
  "class": "v-data-table__tbody",
21724
21790
  "role": "rowgroup"
21725
21791
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
21726
21792
  "items": flatItems.value
21727
21793
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
21728
- bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && createVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
21794
+ bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && createElementVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
21729
21795
  prepend: slots['footer.prepend']
21730
21796
  })])
21731
21797
  });
@@ -21756,10 +21822,10 @@ const VContainer = genericComponent()({
21756
21822
  dimensionStyles
21757
21823
  } = useDimension(props);
21758
21824
  useRender(() => createVNode(props.tag, {
21759
- "class": ['v-container', {
21825
+ "class": normalizeClass(['v-container', {
21760
21826
  'v-container--fluid': props.fluid
21761
- }, rtlClasses.value, props.class],
21762
- "style": [dimensionStyles.value, props.style]
21827
+ }, rtlClasses.value, props.class]),
21828
+ "style": normalizeStyle([dimensionStyles.value, props.style])
21763
21829
  }, slots));
21764
21830
  return {};
21765
21831
  }
@@ -22078,11 +22144,11 @@ const VDatePickerControls = genericComponent()({
22078
22144
  }
22079
22145
  useRender(() => {
22080
22146
  // TODO: add slot support and scope defaults
22081
- return createVNode("div", {
22147
+ return createElementVNode("div", {
22082
22148
  "class": ['v-date-picker-controls'],
22083
- "style": {
22149
+ "style": normalizeStyle({
22084
22150
  '--v-date-picker-controls-height': convertToUnit(props.controlHeight)
22085
- }
22151
+ })
22086
22152
  }, [createVNode(VBtn, {
22087
22153
  "class": "v-date-picker-controls__month-btn",
22088
22154
  "data-testid": "month-btn",
@@ -22099,7 +22165,7 @@ const VDatePickerControls = genericComponent()({
22099
22165
  "icon": props.modeIcon,
22100
22166
  "variant": "text",
22101
22167
  "onClick": onClickYear
22102
- }, null), createVNode(VSpacer, null, null), createVNode("div", {
22168
+ }, null), createVNode(VSpacer, null, null), createElementVNode("div", {
22103
22169
  "class": "v-date-picker-controls__month"
22104
22170
  }, [createVNode(VBtn, {
22105
22171
  "data-testid": "prev-month",
@@ -22155,24 +22221,24 @@ const VDatePickerHeader = genericComponent()({
22155
22221
  useRender(() => {
22156
22222
  const hasContent = !!(slots.default || props.header);
22157
22223
  const hasAppend = !!(slots.append || props.appendIcon);
22158
- return createVNode("div", {
22159
- "class": ['v-date-picker-header', {
22224
+ return createElementVNode("div", {
22225
+ "class": normalizeClass(['v-date-picker-header', {
22160
22226
  'v-date-picker-header--clickable': !!props.onClick
22161
- }, backgroundColorClasses.value],
22162
- "style": backgroundColorStyles.value,
22227
+ }, backgroundColorClasses.value]),
22228
+ "style": normalizeStyle(backgroundColorStyles.value),
22163
22229
  "onClick": onClick
22164
- }, [slots.prepend && createVNode("div", {
22230
+ }, [slots.prepend && createElementVNode("div", {
22165
22231
  "key": "prepend",
22166
22232
  "class": "v-date-picker-header__prepend"
22167
22233
  }, [slots.prepend()]), hasContent && createVNode(MaybeTransition, {
22168
22234
  "key": "content",
22169
22235
  "name": props.transition
22170
22236
  }, {
22171
- default: () => [createVNode("div", {
22237
+ default: () => [createElementVNode("div", {
22172
22238
  "key": props.header,
22173
22239
  "class": "v-date-picker-header__content"
22174
22240
  }, [slots.default?.() ?? props.header])]
22175
- }), hasAppend && createVNode("div", {
22241
+ }), hasAppend && createElementVNode("div", {
22176
22242
  "class": "v-date-picker-header__append"
22177
22243
  }, [!slots.append ? createVNode(VBtn, {
22178
22244
  "key": "append-btn",
@@ -22458,24 +22524,24 @@ const VDatePickerMonth = genericComponent()({
22458
22524
  model.value = [value];
22459
22525
  }
22460
22526
  }
22461
- useRender(() => createVNode("div", {
22527
+ useRender(() => createElementVNode("div", {
22462
22528
  "class": "v-date-picker-month"
22463
- }, [props.showWeek && createVNode("div", {
22529
+ }, [props.showWeek && createElementVNode("div", {
22464
22530
  "key": "weeks",
22465
22531
  "class": "v-date-picker-month__weeks"
22466
- }, [!props.hideWeekdays && createVNode("div", {
22532
+ }, [!props.hideWeekdays && createElementVNode("div", {
22467
22533
  "key": "hide-week-days",
22468
22534
  "class": "v-date-picker-month__day"
22469
- }, [createTextVNode("\xA0")]), weekNumbers.value.map(week => createVNode("div", {
22535
+ }, [createTextVNode("\xA0")]), weekNumbers.value.map(week => createElementVNode("div", {
22470
22536
  "class": ['v-date-picker-month__day', 'v-date-picker-month__day--adjacent']
22471
22537
  }, [week]))]), createVNode(MaybeTransition, {
22472
22538
  "name": transition.value
22473
22539
  }, {
22474
- default: () => [createVNode("div", {
22540
+ default: () => [createElementVNode("div", {
22475
22541
  "ref": daysRef,
22476
22542
  "key": daysInMonth.value[0].date?.toString(),
22477
22543
  "class": "v-date-picker-month__days"
22478
- }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => createVNode("div", {
22544
+ }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => createElementVNode("div", {
22479
22545
  "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
22480
22546
  }, [weekDay])), daysInMonth.value.map((item, i) => {
22481
22547
  const slotProps = {
@@ -22495,14 +22561,14 @@ const VDatePickerMonth = genericComponent()({
22495
22561
  if (atMax.value && !item.isSelected) {
22496
22562
  item.isDisabled = true;
22497
22563
  }
22498
- return createVNode("div", {
22499
- "class": ['v-date-picker-month__day', {
22564
+ return createElementVNode("div", {
22565
+ "class": normalizeClass(['v-date-picker-month__day', {
22500
22566
  'v-date-picker-month__day--adjacent': item.isAdjacent,
22501
22567
  'v-date-picker-month__day--hide-adjacent': item.isHidden,
22502
22568
  'v-date-picker-month__day--selected': item.isSelected,
22503
22569
  'v-date-picker-month__day--week-end': item.isWeekEnd,
22504
22570
  'v-date-picker-month__day--week-start': item.isWeekStart
22505
- }],
22571
+ }]),
22506
22572
  "data-v-date": !item.isDisabled ? item.isoDate : undefined
22507
22573
  }, [(props.showAdjacentMonths || !item.isAdjacent) && (slots.day?.(slotProps) ?? createVNode(VBtn, slotProps.props, null))]);
22508
22574
  })])]
@@ -22552,12 +22618,12 @@ const VDatePickerMonths = genericComponent()({
22552
22618
  watchEffect(() => {
22553
22619
  model.value = model.value ?? adapter.getMonth(adapter.date());
22554
22620
  });
22555
- useRender(() => createVNode("div", {
22621
+ useRender(() => createElementVNode("div", {
22556
22622
  "class": "v-date-picker-months",
22557
- "style": {
22623
+ "style": normalizeStyle({
22558
22624
  height: convertToUnit(props.height)
22559
- }
22560
- }, [createVNode("div", {
22625
+ })
22626
+ }, [createElementVNode("div", {
22561
22627
  "class": "v-date-picker-months__content"
22562
22628
  }, [months.value.map((month, i) => {
22563
22629
  const btnProps = {
@@ -22643,12 +22709,12 @@ const VDatePickerYears = genericComponent()({
22643
22709
  block: 'center'
22644
22710
  });
22645
22711
  });
22646
- useRender(() => createVNode("div", {
22712
+ useRender(() => createElementVNode("div", {
22647
22713
  "class": "v-date-picker-years",
22648
- "style": {
22714
+ "style": normalizeStyle({
22649
22715
  height: convertToUnit(props.height)
22650
- }
22651
- }, [createVNode("div", {
22716
+ })
22717
+ }, [createElementVNode("div", {
22652
22718
  "class": "v-date-picker-years__content"
22653
22719
  }, [years.value.map((year, i) => {
22654
22720
  const btnProps = {
@@ -22885,7 +22951,7 @@ const VDatePicker = genericComponent()({
22885
22951
  }, rtlClasses.value, props.class],
22886
22952
  "style": props.style
22887
22953
  }), {
22888
- title: () => slots.title?.() ?? createVNode("div", {
22954
+ title: () => slots.title?.() ?? createElementVNode("div", {
22889
22955
  "class": "v-date-picker__title"
22890
22956
  }, [t(props.title)]),
22891
22957
  header: () => slots.header ? createVNode(VDefaultsProvider, {
@@ -22904,7 +22970,7 @@ const VDatePicker = genericComponent()({
22904
22970
  ...slots,
22905
22971
  default: undefined
22906
22972
  }),
22907
- default: () => createVNode(Fragment, null, [createVNode(VDatePickerControls, mergeProps(datePickerControlsProps, {
22973
+ default: () => createElementVNode(Fragment, null, [createVNode(VDatePickerControls, mergeProps(datePickerControlsProps, {
22908
22974
  "disabled": disabled.value,
22909
22975
  "text": text.value,
22910
22976
  "onClick:next": onClickNext,
@@ -23013,15 +23079,15 @@ const VEmptyState = genericComponent()({
23013
23079
  const hasText = !!(slots.text || props.text);
23014
23080
  const hasMedia = !!(slots.media || props.image || props.icon);
23015
23081
  const size = props.size || (props.image ? 200 : 96);
23016
- return createVNode("div", {
23017
- "class": ['v-empty-state', {
23082
+ return createElementVNode("div", {
23083
+ "class": normalizeClass(['v-empty-state', {
23018
23084
  [`v-empty-state--${props.justify}`]: true
23019
- }, themeClasses.value, backgroundColorClasses.value, displayClasses.value, props.class],
23020
- "style": [backgroundColorStyles.value, dimensionStyles.value, props.style]
23021
- }, [hasMedia && createVNode("div", {
23085
+ }, themeClasses.value, backgroundColorClasses.value, displayClasses.value, props.class]),
23086
+ "style": normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, props.style])
23087
+ }, [hasMedia && createElementVNode("div", {
23022
23088
  "key": "media",
23023
23089
  "class": "v-empty-state__media"
23024
- }, [!slots.media ? createVNode(Fragment, null, [props.image ? createVNode(VImg, {
23090
+ }, [!slots.media ? createElementVNode(Fragment, null, [props.image ? createVNode(VImg, {
23025
23091
  "key": "image",
23026
23092
  "src": props.image,
23027
23093
  "height": size
@@ -23044,22 +23110,22 @@ const VEmptyState = genericComponent()({
23044
23110
  }
23045
23111
  }, {
23046
23112
  default: () => [slots.media()]
23047
- })]), hasHeadline && createVNode("div", {
23113
+ })]), hasHeadline && createElementVNode("div", {
23048
23114
  "key": "headline",
23049
23115
  "class": "v-empty-state__headline"
23050
- }, [slots.headline?.() ?? props.headline]), hasTitle && createVNode("div", {
23116
+ }, [slots.headline?.() ?? props.headline]), hasTitle && createElementVNode("div", {
23051
23117
  "key": "title",
23052
23118
  "class": "v-empty-state__title"
23053
- }, [slots.title?.() ?? props.title]), hasText && createVNode("div", {
23119
+ }, [slots.title?.() ?? props.title]), hasText && createElementVNode("div", {
23054
23120
  "key": "text",
23055
23121
  "class": "v-empty-state__text",
23056
- "style": {
23122
+ "style": normalizeStyle({
23057
23123
  maxWidth: convertToUnit(props.textWidth)
23058
- }
23059
- }, [slots.text?.() ?? props.text]), slots.default && createVNode("div", {
23124
+ })
23125
+ }, [slots.text?.() ?? props.text]), slots.default && createElementVNode("div", {
23060
23126
  "key": "content",
23061
23127
  "class": "v-empty-state__content"
23062
- }, [slots.default()]), hasActions && createVNode("div", {
23128
+ }, [slots.default()]), hasActions && createElementVNode("div", {
23063
23129
  "key": "actions",
23064
23130
  "class": "v-empty-state__actions"
23065
23131
  }, [createVNode(VDefaultsProvider, {
@@ -23110,10 +23176,10 @@ const VExpansionPanelText = genericComponent()({
23110
23176
  useRender(() => createVNode(VExpandTransition, {
23111
23177
  "onAfterLeave": onAfterLeave
23112
23178
  }, {
23113
- default: () => [withDirectives(createVNode("div", {
23114
- "class": ['v-expansion-panel-text', props.class],
23115
- "style": props.style
23116
- }, [slots.default && hasContent.value && createVNode("div", {
23179
+ default: () => [withDirectives(createElementVNode("div", {
23180
+ "class": normalizeClass(['v-expansion-panel-text', props.class]),
23181
+ "style": normalizeStyle(props.style)
23182
+ }, [slots.default && hasContent.value && createElementVNode("div", {
23117
23183
  "class": "v-expansion-panel-text__wrapper"
23118
23184
  }, [slots.default?.()])]), [[vShow, expansionPanel.isSelected.value]])]
23119
23185
  }));
@@ -23147,7 +23213,7 @@ const makeVExpansionPanelTitleProps = propsFactory({
23147
23213
  const VExpansionPanelTitle = genericComponent()({
23148
23214
  name: 'VExpansionPanelTitle',
23149
23215
  directives: {
23150
- Ripple
23216
+ vRipple: Ripple
23151
23217
  },
23152
23218
  props: makeVExpansionPanelTitleProps(),
23153
23219
  setup(props, _ref) {
@@ -23171,19 +23237,19 @@ const VExpansionPanelTitle = genericComponent()({
23171
23237
  readonly: props.readonly
23172
23238
  }));
23173
23239
  const icon = toRef(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);
23174
- useRender(() => withDirectives(createVNode("button", {
23175
- "class": ['v-expansion-panel-title', {
23240
+ useRender(() => withDirectives(createElementVNode("button", {
23241
+ "class": normalizeClass(['v-expansion-panel-title', {
23176
23242
  'v-expansion-panel-title--active': expansionPanel.isSelected.value,
23177
23243
  'v-expansion-panel-title--focusable': props.focusable,
23178
23244
  'v-expansion-panel-title--static': props.static
23179
- }, backgroundColorClasses.value, props.class],
23180
- "style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
23245
+ }, backgroundColorClasses.value, props.class]),
23246
+ "style": normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, props.style]),
23181
23247
  "type": "button",
23182
23248
  "tabindex": expansionPanel.disabled.value ? -1 : undefined,
23183
23249
  "disabled": expansionPanel.disabled.value,
23184
23250
  "aria-expanded": expansionPanel.isSelected.value,
23185
23251
  "onClick": !props.readonly ? expansionPanel.toggle : undefined
23186
- }, [createVNode("span", {
23252
+ }, [createElementVNode("span", {
23187
23253
  "class": "v-expansion-panel-title__overlay"
23188
23254
  }, null), slots.default?.(slotProps.value), !props.hideActions && createVNode(VDefaultsProvider, {
23189
23255
  "defaults": {
@@ -23192,10 +23258,10 @@ const VExpansionPanelTitle = genericComponent()({
23192
23258
  }
23193
23259
  }
23194
23260
  }, {
23195
- default: () => [createVNode("span", {
23261
+ default: () => [createElementVNode("span", {
23196
23262
  "class": "v-expansion-panel-title__icon"
23197
23263
  }, [slots.actions?.(slotProps.value) ?? createVNode(VIcon, null, null)])]
23198
- })]), [[resolveDirective("ripple"), props.ripple]]));
23264
+ })]), [[Ripple, props.ripple]]));
23199
23265
  return {};
23200
23266
  }
23201
23267
  });
@@ -23252,16 +23318,16 @@ const VExpansionPanel = genericComponent()({
23252
23318
  const expansionPanelTitleProps = VExpansionPanelTitle.filterProps(props);
23253
23319
  const expansionPanelTextProps = VExpansionPanelText.filterProps(props);
23254
23320
  return createVNode(props.tag, {
23255
- "class": ['v-expansion-panel', {
23321
+ "class": normalizeClass(['v-expansion-panel', {
23256
23322
  'v-expansion-panel--active': groupItem.isSelected.value,
23257
23323
  'v-expansion-panel--before-active': isBeforeSelected.value,
23258
23324
  'v-expansion-panel--after-active': isAfterSelected.value,
23259
23325
  'v-expansion-panel--disabled': isDisabled.value
23260
- }, roundedClasses.value, backgroundColorClasses.value, props.class],
23261
- "style": [backgroundColorStyles.value, props.style]
23326
+ }, roundedClasses.value, backgroundColorClasses.value, props.class]),
23327
+ "style": normalizeStyle([backgroundColorStyles.value, props.style])
23262
23328
  }, {
23263
- default: () => [createVNode("div", {
23264
- "class": ['v-expansion-panel__shadow', ...elevationClasses.value]
23329
+ default: () => [createElementVNode("div", {
23330
+ "class": normalizeClass(['v-expansion-panel__shadow', ...elevationClasses.value])
23265
23331
  }, null), createVNode(VDefaultsProvider, {
23266
23332
  "defaults": {
23267
23333
  VExpansionPanelTitle: {
@@ -23341,11 +23407,11 @@ const VExpansionPanels = genericComponent()({
23341
23407
  }
23342
23408
  });
23343
23409
  useRender(() => createVNode(props.tag, {
23344
- "class": ['v-expansion-panels', {
23410
+ "class": normalizeClass(['v-expansion-panels', {
23345
23411
  'v-expansion-panels--flat': props.flat,
23346
23412
  'v-expansion-panels--tile': props.tile
23347
- }, themeClasses.value, variantClass.value, props.class],
23348
- "style": props.style
23413
+ }, themeClasses.value, variantClass.value, props.class]),
23414
+ "style": normalizeStyle(props.style)
23349
23415
  }, {
23350
23416
  default: () => [slots.default?.({
23351
23417
  prev,
@@ -23425,22 +23491,22 @@ const VFab = genericComponent()({
23425
23491
  const vFabRef = ref();
23426
23492
  useRender(() => {
23427
23493
  const btnProps = VBtn.filterProps(props);
23428
- return createVNode("div", {
23494
+ return createElementVNode("div", {
23429
23495
  "ref": vFabRef,
23430
- "class": ['v-fab', {
23496
+ "class": normalizeClass(['v-fab', {
23431
23497
  'v-fab--absolute': props.absolute,
23432
23498
  'v-fab--app': !!props.app,
23433
23499
  'v-fab--extended': props.extended,
23434
23500
  'v-fab--offset': props.offset,
23435
23501
  [`v-fab--${position.value}`]: hasPosition.value,
23436
23502
  [`v-fab--${orientation.value}`]: hasPosition.value
23437
- }, props.class],
23438
- "style": [props.app ? {
23503
+ }, props.class]),
23504
+ "style": normalizeStyle([props.app ? {
23439
23505
  ...layoutItemStyles.value
23440
23506
  } : {
23441
23507
  height: props.absolute ? '100%' : 'inherit'
23442
- }, props.style]
23443
- }, [createVNode("div", {
23508
+ }, props.style])
23509
+ }, [createElementVNode("div", {
23444
23510
  "class": "v-fab__container"
23445
23511
  }, [createVNode(MaybeTransition, {
23446
23512
  "appear": props.appear,
@@ -23656,7 +23722,7 @@ const VFileInput = genericComponent()({
23656
23722
  ...slotProps
23657
23723
  }
23658
23724
  } = _ref4;
23659
- return createVNode(Fragment, null, [createVNode("input", mergeProps({
23725
+ return createElementVNode(Fragment, null, [createElementVNode("input", mergeProps({
23660
23726
  "ref": inputRef,
23661
23727
  "type": "file",
23662
23728
  "readonly": isReadonly.value,
@@ -23676,8 +23742,8 @@ const VFileInput = genericComponent()({
23676
23742
  "onDragleave": onDragleave,
23677
23743
  "onFocus": onFocus,
23678
23744
  "onBlur": blur
23679
- }, slotProps, inputAttrs), null), createVNode("div", {
23680
- "class": fieldClass
23745
+ }, slotProps, inputAttrs), null), createElementVNode("div", {
23746
+ "class": normalizeClass(fieldClass)
23681
23747
  }, [!!model.value?.length && !props.hideInput && (slots.selection ? slots.selection({
23682
23748
  fileNames: fileNames.value,
23683
23749
  totalBytes: totalBytes.value,
@@ -23690,7 +23756,7 @@ const VFileInput = genericComponent()({
23690
23756
  }
23691
23757
  });
23692
23758
  },
23693
- details: hasDetails ? slotProps => createVNode(Fragment, null, [slots.details?.(slotProps), hasCounter && createVNode(Fragment, null, [createVNode("span", null, null), createVNode(VCounter, {
23759
+ details: hasDetails ? slotProps => createElementVNode(Fragment, null, [slots.details?.(slotProps), hasCounter && createElementVNode(Fragment, null, [createElementVNode("span", null, null), createVNode(VCounter, {
23694
23760
  "active": !!model.value?.length,
23695
23761
  "value": counterValue.value,
23696
23762
  "disabled": props.disabled
@@ -23766,10 +23832,10 @@ const VFooter = genericComponent()({
23766
23832
  });
23767
23833
  useRender(() => createVNode(props.tag, {
23768
23834
  "ref": resizeRef,
23769
- "class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
23770
- "style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : {
23835
+ "class": normalizeClass(['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
23836
+ "style": normalizeStyle([backgroundColorStyles.value, props.app ? layoutItemStyles.value : {
23771
23837
  height: convertToUnit(props.height)
23772
- }, props.style]
23838
+ }, props.style])
23773
23839
  }, slots));
23774
23840
  return {};
23775
23841
  }
@@ -23818,10 +23884,10 @@ const VForm = genericComponent()({
23818
23884
  }
23819
23885
  e.preventDefault();
23820
23886
  }
23821
- useRender(() => createVNode("form", {
23887
+ useRender(() => createElementVNode("form", {
23822
23888
  "ref": formRef,
23823
- "class": ['v-form', props.class],
23824
- "style": props.style,
23889
+ "class": normalizeClass(['v-form', props.class]),
23890
+ "style": normalizeStyle(props.style),
23825
23891
  "novalidate": true,
23826
23892
  "onReset": onReset,
23827
23893
  "onSubmit": onSubmit
@@ -23918,11 +23984,11 @@ const VInfiniteScrollIntersect = defineComponent({
23918
23984
  watch(isIntersecting, async val => {
23919
23985
  emit('intersect', props.side, val);
23920
23986
  });
23921
- useRender(() => createVNode("div", {
23987
+ useRender(() => createElementVNode("div", {
23922
23988
  "class": "v-infinite-scroll-intersect",
23923
- "style": {
23989
+ "style": normalizeStyle({
23924
23990
  '--v-infinite-margin-size': props.rootMargin
23925
- },
23991
+ }),
23926
23992
  "ref": intersectionRef
23927
23993
  }, [createTextVNode("\xA0")]));
23928
23994
  return {};
@@ -24034,7 +24100,7 @@ const VInfiniteScroll = genericComponent()({
24034
24100
  }
24035
24101
  };
24036
24102
  if (status === 'error') return slots.error?.(slotProps);
24037
- if (status === 'empty') return slots.empty?.(slotProps) ?? createVNode("div", null, [t(props.emptyText)]);
24103
+ if (status === 'empty') return slots.empty?.(slotProps) ?? createElementVNode("div", null, [t(props.emptyText)]);
24038
24104
  if (props.mode === 'manual') {
24039
24105
  if (status === 'loading') {
24040
24106
  return slots.loading?.(slotProps) ?? createVNode(VProgressCircular, {
@@ -24065,13 +24131,13 @@ const VInfiniteScroll = genericComponent()({
24065
24131
  const intersectMode = props.mode === 'intersect';
24066
24132
  return createVNode(Tag, {
24067
24133
  "ref": rootEl,
24068
- "class": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
24134
+ "class": normalizeClass(['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
24069
24135
  'v-infinite-scroll--start': hasStartIntersect,
24070
24136
  'v-infinite-scroll--end': hasEndIntersect
24071
- }],
24072
- "style": dimensionStyles.value
24137
+ }]),
24138
+ "style": normalizeStyle(dimensionStyles.value)
24073
24139
  }, {
24074
- default: () => [createVNode("div", {
24140
+ default: () => [createElementVNode("div", {
24075
24141
  "class": "v-infinite-scroll__side"
24076
24142
  }, [renderSide('start', startStatus.value)]), hasStartIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
24077
24143
  "key": "start",
@@ -24083,7 +24149,7 @@ const VInfiniteScroll = genericComponent()({
24083
24149
  "side": "end",
24084
24150
  "onIntersect": handleIntersect,
24085
24151
  "rootMargin": margin.value
24086
- }, null), createVNode("div", {
24152
+ }, null), createElementVNode("div", {
24087
24153
  "class": "v-infinite-scroll__side"
24088
24154
  }, [renderSide('end', endStatus.value)])]
24089
24155
  });
@@ -24123,8 +24189,8 @@ const VItemGroup = genericComponent()({
24123
24189
  selected
24124
24190
  } = useGroup(props, VItemGroupSymbol);
24125
24191
  return () => createVNode(props.tag, {
24126
- "class": ['v-item-group', themeClasses.value, props.class],
24127
- "style": props.style
24192
+ "class": normalizeClass(['v-item-group', themeClasses.value, props.class]),
24193
+ "style": normalizeStyle(props.style)
24128
24194
  }, {
24129
24195
  default: () => [slots.default?.({
24130
24196
  isSelected,
@@ -24192,10 +24258,10 @@ const VLayout = genericComponent()({
24192
24258
  const {
24193
24259
  dimensionStyles
24194
24260
  } = useDimension(props);
24195
- useRender(() => createVNode("div", {
24261
+ useRender(() => createElementVNode("div", {
24196
24262
  "ref": layoutRef,
24197
- "class": [layoutClasses.value, props.class],
24198
- "style": [dimensionStyles.value, layoutStyles.value, props.style]
24263
+ "class": normalizeClass([layoutClasses.value, props.class]),
24264
+ "style": normalizeStyle([dimensionStyles.value, layoutStyles.value, props.style])
24199
24265
  }, [slots.default?.()]));
24200
24266
  return {
24201
24267
  getLayoutItem,
@@ -24237,9 +24303,9 @@ const VLayoutItem = genericComponent()({
24237
24303
  active: toRef(() => props.modelValue),
24238
24304
  absolute: toRef(() => props.absolute)
24239
24305
  });
24240
- return () => createVNode("div", {
24241
- "class": ['v-layout-item', props.class],
24242
- "style": [layoutItemStyles.value, props.style]
24306
+ return () => createElementVNode("div", {
24307
+ "class": normalizeClass(['v-layout-item', props.class]),
24308
+ "style": normalizeStyle([layoutItemStyles.value, props.style])
24243
24309
  }, [slots.default?.()]);
24244
24310
  }
24245
24311
  });
@@ -24268,7 +24334,7 @@ const makeVLazyProps = propsFactory({
24268
24334
  const VLazy = genericComponent()({
24269
24335
  name: 'VLazy',
24270
24336
  directives: {
24271
- intersect: Intersect
24337
+ vIntersect: Intersect
24272
24338
  },
24273
24339
  props: makeVLazyProps(),
24274
24340
  emits: {
@@ -24287,8 +24353,8 @@ const VLazy = genericComponent()({
24287
24353
  isActive.value = isIntersecting;
24288
24354
  }
24289
24355
  useRender(() => withDirectives(createVNode(props.tag, {
24290
- "class": ['v-lazy', props.class],
24291
- "style": [dimensionStyles.value, props.style]
24356
+ "class": normalizeClass(['v-lazy', props.class]),
24357
+ "style": normalizeStyle([dimensionStyles.value, props.style])
24292
24358
  }, {
24293
24359
  default: () => [isActive.value && createVNode(MaybeTransition, {
24294
24360
  "transition": props.transition,
@@ -24296,7 +24362,7 @@ const VLazy = genericComponent()({
24296
24362
  }, {
24297
24363
  default: () => [slots.default?.()]
24298
24364
  })]
24299
- }), [[resolveDirective("intersect"), {
24365
+ }), [[Intersect, {
24300
24366
  handler: onIntersect,
24301
24367
  options: props.options
24302
24368
  }, null]]));
@@ -24324,9 +24390,9 @@ const VLocaleProvider = genericComponent()({
24324
24390
  const {
24325
24391
  rtlClasses
24326
24392
  } = provideLocale(props);
24327
- useRender(() => createVNode("div", {
24328
- "class": ['v-locale-provider', rtlClasses.value, props.class],
24329
- "style": props.style
24393
+ useRender(() => createElementVNode("div", {
24394
+ "class": normalizeClass(['v-locale-provider', rtlClasses.value, props.class]),
24395
+ "style": normalizeStyle(props.style)
24330
24396
  }, [slots.default?.()]));
24331
24397
  return {};
24332
24398
  }
@@ -24357,12 +24423,12 @@ const VMain = genericComponent()({
24357
24423
  ssrBootStyles
24358
24424
  } = useSsrBoot();
24359
24425
  useRender(() => createVNode(props.tag, {
24360
- "class": ['v-main', {
24426
+ "class": normalizeClass(['v-main', {
24361
24427
  'v-main--scrollable': props.scrollable
24362
- }, props.class],
24363
- "style": [mainStyles.value, ssrBootStyles.value, dimensionStyles.value, props.style]
24428
+ }, props.class]),
24429
+ "style": normalizeStyle([mainStyles.value, ssrBootStyles.value, dimensionStyles.value, props.style])
24364
24430
  }, {
24365
- default: () => [props.scrollable ? createVNode("div", {
24431
+ default: () => [props.scrollable ? createElementVNode("div", {
24366
24432
  "class": "v-main__scroller"
24367
24433
  }, [slots.default?.()]) : slots.default?.()]
24368
24434
  }));
@@ -24593,7 +24659,7 @@ function useTouch(_ref) {
24593
24659
  function getProgress(pos) {
24594
24660
  let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
24595
24661
  const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'top' ? (pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();
24596
- return limit ? Math.max(0, Math.min(1, progress)) : progress;
24662
+ return limit ? clamp(progress) : progress;
24597
24663
  }
24598
24664
  function onTouchstart(e) {
24599
24665
  if (touchless.value) return;
@@ -24873,7 +24939,7 @@ const VNavigationDrawer = genericComponent()({
24873
24939
  });
24874
24940
  useRender(() => {
24875
24941
  const hasImage = slots.image || props.image;
24876
- return createVNode(Fragment, null, [createVNode(props.tag, mergeProps({
24942
+ return createElementVNode(Fragment, null, [createVNode(props.tag, mergeProps({
24877
24943
  "ref": rootEl,
24878
24944
  "onMouseenter": runOpenDelay,
24879
24945
  "onMouseleave": runCloseDelay,
@@ -24889,7 +24955,7 @@ const VNavigationDrawer = genericComponent()({
24889
24955
  }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],
24890
24956
  "style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
24891
24957
  }, scopeId, attrs), {
24892
- default: () => [hasImage && createVNode("div", {
24958
+ default: () => [hasImage && createElementVNode("div", {
24893
24959
  "key": "image",
24894
24960
  "class": "v-navigation-drawer__img"
24895
24961
  }, [!slots.image ? createVNode(VImg, {
@@ -24909,17 +24975,17 @@ const VNavigationDrawer = genericComponent()({
24909
24975
  src: props.image
24910
24976
  }
24911
24977
  }
24912
- }, slots.image)]), slots.prepend && createVNode("div", {
24978
+ }, slots.image)]), slots.prepend && createElementVNode("div", {
24913
24979
  "class": "v-navigation-drawer__prepend"
24914
- }, [slots.prepend?.()]), createVNode("div", {
24980
+ }, [slots.prepend?.()]), createElementVNode("div", {
24915
24981
  "class": "v-navigation-drawer__content"
24916
- }, [slots.default?.()]), slots.append && createVNode("div", {
24982
+ }, [slots.default?.()]), slots.append && createElementVNode("div", {
24917
24983
  "class": "v-navigation-drawer__append"
24918
24984
  }, [slots.append?.()])]
24919
24985
  }), createVNode(Transition, {
24920
24986
  "name": "fade-transition"
24921
24987
  }, {
24922
- default: () => [isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && createVNode("div", mergeProps({
24988
+ default: () => [isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && createElementVNode("div", mergeProps({
24923
24989
  "class": ['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value],
24924
24990
  "style": [scrimStyles.value, scrimColor.backgroundColorStyles.value],
24925
24991
  "onClick": () => {
@@ -25078,6 +25144,9 @@ const VNumberInput = genericComponent()({
25078
25144
  const controlNodeDefaultHeight = toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
25079
25145
  const incrementSlotProps = {
25080
25146
  props: {
25147
+ style: {
25148
+ touchAction: 'none'
25149
+ },
25081
25150
  onClick: onControlClick,
25082
25151
  onPointerup: onControlMouseup,
25083
25152
  onPointerdown: onUpControlMousedown
@@ -25085,6 +25154,9 @@ const VNumberInput = genericComponent()({
25085
25154
  };
25086
25155
  const decrementSlotProps = {
25087
25156
  props: {
25157
+ style: {
25158
+ touchAction: 'none'
25159
+ },
25088
25160
  onClick: onControlClick,
25089
25161
  onPointerup: onControlMouseup,
25090
25162
  onPointerdown: onDownControlMousedown
@@ -25117,25 +25189,33 @@ const VNumberInput = genericComponent()({
25117
25189
  }
25118
25190
  function onBeforeinput(e) {
25119
25191
  if (!e.data) return;
25120
- const existingTxt = e.target?.value;
25121
- const selectionStart = e.target?.selectionStart;
25122
- const selectionEnd = e.target?.selectionEnd;
25192
+ const inputElement = e.target;
25193
+ const {
25194
+ value: existingTxt,
25195
+ selectionStart,
25196
+ selectionEnd
25197
+ } = inputElement ?? {};
25123
25198
  const potentialNewInputVal = existingTxt ? existingTxt.slice(0, selectionStart) + e.data + existingTxt.slice(selectionEnd) : e.data;
25199
+ const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision);
25200
+
25124
25201
  // Only numbers, "-", "." are allowed
25125
25202
  // AND "-", "." are allowed only once
25126
25203
  // AND "-" is only allowed at the start
25127
25204
  if (!/^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(potentialNewInputVal)) {
25128
25205
  e.preventDefault();
25206
+ inputElement.value = potentialNewNumber;
25129
25207
  }
25130
25208
  if (props.precision == null) return;
25131
25209
 
25132
25210
  // Ignore decimal digits above precision limit
25133
25211
  if (potentialNewInputVal.split('.')[1]?.length > props.precision) {
25134
25212
  e.preventDefault();
25213
+ inputElement.value = potentialNewNumber;
25135
25214
  }
25136
25215
  // Ignore decimal separator when precision = 0
25137
25216
  if (props.precision === 0 && potentialNewInputVal.includes('.')) {
25138
25217
  e.preventDefault();
25218
+ inputElement.value = potentialNewNumber;
25139
25219
  }
25140
25220
  }
25141
25221
  async function onKeydown(e) {
@@ -25217,17 +25297,18 @@ const VNumberInput = genericComponent()({
25217
25297
  } = VTextField.filterProps(props);
25218
25298
  function incrementControlNode() {
25219
25299
  return !slots.increment ? createVNode(VBtn, {
25300
+ "aria-hidden": "true",
25301
+ "data-testid": "increment",
25220
25302
  "disabled": !canIncrease.value,
25221
25303
  "flat": true,
25222
- "key": "increment-btn",
25223
25304
  "height": controlNodeDefaultHeight.value,
25224
- "data-testid": "increment",
25225
- "aria-hidden": "true",
25226
25305
  "icon": incrementIcon.value,
25306
+ "key": "increment-btn",
25227
25307
  "onClick": onControlClick,
25228
- "onPointerup": onControlMouseup,
25229
25308
  "onPointerdown": onUpControlMousedown,
25309
+ "onPointerup": onControlMouseup,
25230
25310
  "size": controlNodeSize.value,
25311
+ "style": "touch-action: none",
25231
25312
  "tabindex": "-1"
25232
25313
  }, null) : createVNode(VDefaultsProvider, {
25233
25314
  "key": "increment-defaults",
@@ -25246,18 +25327,19 @@ const VNumberInput = genericComponent()({
25246
25327
  }
25247
25328
  function decrementControlNode() {
25248
25329
  return !slots.decrement ? createVNode(VBtn, {
25330
+ "aria-hidden": "true",
25331
+ "data-testid": "decrement",
25249
25332
  "disabled": !canDecrease.value,
25250
25333
  "flat": true,
25251
- "key": "decrement-btn",
25252
25334
  "height": controlNodeDefaultHeight.value,
25253
- "data-testid": "decrement",
25254
- "aria-hidden": "true",
25255
25335
  "icon": decrementIcon.value,
25256
- "size": controlNodeSize.value,
25257
- "tabindex": "-1",
25336
+ "key": "decrement-btn",
25258
25337
  "onClick": onControlClick,
25338
+ "onPointerdown": onDownControlMousedown,
25259
25339
  "onPointerup": onControlMouseup,
25260
- "onPointerdown": onDownControlMousedown
25340
+ "size": controlNodeSize.value,
25341
+ "style": "touch-action: none",
25342
+ "tabindex": "-1"
25261
25343
  }, null) : createVNode(VDefaultsProvider, {
25262
25344
  "key": "decrement-defaults",
25263
25345
  "defaults": {
@@ -25274,7 +25356,7 @@ const VNumberInput = genericComponent()({
25274
25356
  });
25275
25357
  }
25276
25358
  function controlNode() {
25277
- return createVNode("div", {
25359
+ return createElementVNode("div", {
25278
25360
  "class": "v-number-input__control"
25279
25361
  }, [decrementControlNode(), createVNode(VDivider, {
25280
25362
  "vertical": controlVariant.value !== 'stacked'
@@ -25285,17 +25367,17 @@ const VNumberInput = genericComponent()({
25285
25367
  "vertical": true
25286
25368
  }, null) : undefined;
25287
25369
  }
25288
- const appendInnerControl = controlVariant.value === 'split' ? createVNode("div", {
25370
+ const appendInnerControl = controlVariant.value === 'split' ? createElementVNode("div", {
25289
25371
  "class": "v-number-input__control"
25290
25372
  }, [createVNode(VDivider, {
25291
25373
  "vertical": true
25292
- }, null), incrementControlNode()]) : props.reverse || controlVariant.value === 'hidden' ? undefined : createVNode(Fragment, null, [dividerNode(), controlNode()]);
25374
+ }, null), incrementControlNode()]) : props.reverse || controlVariant.value === 'hidden' ? undefined : createElementVNode(Fragment, null, [dividerNode(), controlNode()]);
25293
25375
  const hasAppendInner = slots['append-inner'] || appendInnerControl;
25294
- const prependInnerControl = controlVariant.value === 'split' ? createVNode("div", {
25376
+ const prependInnerControl = controlVariant.value === 'split' ? createElementVNode("div", {
25295
25377
  "class": "v-number-input__control"
25296
25378
  }, [decrementControlNode(), createVNode(VDivider, {
25297
25379
  "vertical": true
25298
- }, null)]) : props.reverse && controlVariant.value !== 'hidden' ? createVNode(Fragment, null, [controlNode(), dividerNode()]) : undefined;
25380
+ }, null)]) : props.reverse && controlVariant.value !== 'hidden' ? createElementVNode(Fragment, null, [controlNode(), dividerNode()]) : undefined;
25299
25381
  const hasPrependInner = slots['prepend-inner'] || prependInnerControl;
25300
25382
  return createVNode(VTextField, mergeProps({
25301
25383
  "ref": vTextFieldRef,
@@ -25323,13 +25405,13 @@ const VNumberInput = genericComponent()({
25323
25405
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
25324
25406
  args[_key] = arguments[_key];
25325
25407
  }
25326
- return createVNode(Fragment, null, [slots['append-inner']?.(...args), appendInnerControl]);
25408
+ return createElementVNode(Fragment, null, [slots['append-inner']?.(...args), appendInnerControl]);
25327
25409
  } : undefined,
25328
25410
  'prepend-inner': hasPrependInner ? function () {
25329
25411
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
25330
25412
  args[_key2] = arguments[_key2];
25331
25413
  }
25332
- return createVNode(Fragment, null, [prependInnerControl, slots['prepend-inner']?.(...args)]);
25414
+ return createElementVNode(Fragment, null, [prependInnerControl, slots['prepend-inner']?.(...args)]);
25333
25415
  } : undefined
25334
25416
  });
25335
25417
  });
@@ -25493,16 +25575,16 @@ const VOtpInput = genericComponent()({
25493
25575
  });
25494
25576
  useRender(() => {
25495
25577
  const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
25496
- return createVNode("div", mergeProps({
25578
+ return createElementVNode("div", mergeProps({
25497
25579
  "class": ['v-otp-input', {
25498
25580
  'v-otp-input--divided': !!props.divider
25499
25581
  }, props.class],
25500
25582
  "style": [props.style]
25501
- }, rootAttrs), [createVNode("div", {
25583
+ }, rootAttrs), [createElementVNode("div", {
25502
25584
  "ref": contentRef,
25503
25585
  "class": "v-otp-input__content",
25504
- "style": [dimensionStyles.value]
25505
- }, [fields.value.map((_, i) => createVNode(Fragment, null, [props.divider && i !== 0 && createVNode("span", {
25586
+ "style": normalizeStyle([dimensionStyles.value])
25587
+ }, [fields.value.map((_, i) => createElementVNode(Fragment, null, [props.divider && i !== 0 && createElementVNode("span", {
25506
25588
  "class": "v-otp-input__divider"
25507
25589
  }, [props.divider]), createVNode(VField, {
25508
25590
  "focused": isFocused.value && props.focusAll || focusIndex.value === i,
@@ -25511,7 +25593,7 @@ const VOtpInput = genericComponent()({
25511
25593
  ...slots,
25512
25594
  loader: undefined,
25513
25595
  default: () => {
25514
- return createVNode("input", {
25596
+ return createElementVNode("input", {
25515
25597
  "ref": val => inputRef.value[i] = val,
25516
25598
  "aria-label": t(props.label, i + 1),
25517
25599
  "autofocus": i === 0 && props.autofocus,
@@ -25531,7 +25613,7 @@ const VOtpInput = genericComponent()({
25531
25613
  "onPaste": event => onPaste(i, event)
25532
25614
  }, null);
25533
25615
  }
25534
- })])), createVNode("input", mergeProps({
25616
+ })])), createElementVNode("input", mergeProps({
25535
25617
  "class": "v-otp-input-input",
25536
25618
  "type": "hidden"
25537
25619
  }, inputAttrs, {
@@ -25636,10 +25718,10 @@ const VParallax = genericComponent()({
25636
25718
  });
25637
25719
  }
25638
25720
  useRender(() => createVNode(VImg, {
25639
- "class": ['v-parallax', {
25721
+ "class": normalizeClass(['v-parallax', {
25640
25722
  'v-parallax--active': isIntersecting.value
25641
- }, props.class],
25642
- "style": props.style,
25723
+ }, props.class]),
25724
+ "style": normalizeStyle(props.style),
25643
25725
  "ref": root,
25644
25726
  "cover": true,
25645
25727
  "onLoadstart": onScroll,
@@ -25739,7 +25821,7 @@ const VRadioGroup = genericComponent()({
25739
25821
  isDisabled,
25740
25822
  isReadonly
25741
25823
  } = _ref2;
25742
- return createVNode(Fragment, null, [label && createVNode(VLabel, {
25824
+ return createElementVNode(Fragment, null, [label && createVNode(VLabel, {
25743
25825
  "id": id.value
25744
25826
  }, {
25745
25827
  default: () => [label]
@@ -25877,7 +25959,7 @@ const VRangeSlider = genericComponent()({
25877
25959
  "focused": isFocused.value
25878
25960
  }), {
25879
25961
  ...slots,
25880
- prepend: hasPrepend ? slotProps => createVNode(Fragment, null, [slots.label?.(slotProps) ?? (props.label ? createVNode(VLabel, {
25962
+ prepend: hasPrepend ? slotProps => createElementVNode(Fragment, null, [slots.label?.(slotProps) ?? (props.label ? createVNode(VLabel, {
25881
25963
  "class": "v-slider__label",
25882
25964
  "text": props.label
25883
25965
  }, null) : undefined), slots.prepend?.(slotProps)]) : undefined,
@@ -25886,18 +25968,18 @@ const VRangeSlider = genericComponent()({
25886
25968
  id,
25887
25969
  messagesId
25888
25970
  } = _ref4;
25889
- return createVNode("div", {
25971
+ return createElementVNode("div", {
25890
25972
  "class": "v-slider__container",
25891
25973
  "onMousedown": !readonly.value ? onSliderMousedown : undefined,
25892
25974
  "onTouchstartPassive": !readonly.value ? onSliderTouchstart : undefined
25893
- }, [createVNode("input", {
25975
+ }, [createElementVNode("input", {
25894
25976
  "id": `${id.value}_start`,
25895
25977
  "name": props.name || id.value,
25896
25978
  "disabled": !!props.disabled,
25897
25979
  "readonly": !!props.readonly,
25898
25980
  "tabindex": "-1",
25899
25981
  "value": model.value[0]
25900
- }, null), createVNode("input", {
25982
+ }, null), createElementVNode("input", {
25901
25983
  "id": `${id.value}_stop`,
25902
25984
  "name": props.name || id.value,
25903
25985
  "disabled": !!props.disabled,
@@ -26096,16 +26178,16 @@ const VRating = genericComponent()({
26096
26178
  size: props.size,
26097
26179
  variant: 'plain'
26098
26180
  };
26099
- return createVNode(Fragment, null, [createVNode("label", {
26181
+ return createElementVNode(Fragment, null, [createElementVNode("label", {
26100
26182
  "for": id,
26101
- "class": {
26183
+ "class": normalizeClass({
26102
26184
  'v-rating__item--half': props.halfIncrements && value % 1 > 0,
26103
26185
  'v-rating__item--full': props.halfIncrements && value % 1 === 0
26104
- },
26186
+ }),
26105
26187
  "onMouseenter": onMouseenter,
26106
26188
  "onMouseleave": onMouseleave,
26107
26189
  "onClick": onClick
26108
- }, [createVNode("span", {
26190
+ }, [createElementVNode("span", {
26109
26191
  "class": "v-rating__hidden"
26110
26192
  }, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({
26111
26193
  ...itemState.value[index],
@@ -26115,7 +26197,7 @@ const VRating = genericComponent()({
26115
26197
  rating: normalizedValue.value
26116
26198
  }) : createVNode(VBtn, mergeProps({
26117
26199
  "aria-label": t(props.itemAriaLabel, value, props.length)
26118
- }, btnProps), null)]), createVNode("input", {
26200
+ }, btnProps), null)]), createElementVNode("input", {
26119
26201
  "class": "v-rating__hidden",
26120
26202
  "name": name.value,
26121
26203
  "id": id,
@@ -26129,31 +26211,31 @@ const VRating = genericComponent()({
26129
26211
  }
26130
26212
  function createLabel(labelProps) {
26131
26213
  if (slots['item-label']) return slots['item-label'](labelProps);
26132
- if (labelProps.label) return createVNode("span", null, [labelProps.label]);
26133
- return createVNode("span", null, [createTextVNode("\xA0")]);
26214
+ if (labelProps.label) return createElementVNode("span", null, [labelProps.label]);
26215
+ return createElementVNode("span", null, [createTextVNode("\xA0")]);
26134
26216
  }
26135
26217
  useRender(() => {
26136
26218
  const hasLabels = !!props.itemLabels?.length || slots['item-label'];
26137
26219
  return createVNode(props.tag, {
26138
- "class": ['v-rating', {
26220
+ "class": normalizeClass(['v-rating', {
26139
26221
  'v-rating--hover': props.hover,
26140
26222
  'v-rating--readonly': props.readonly
26141
- }, themeClasses.value, props.class],
26142
- "style": props.style
26223
+ }, themeClasses.value, props.class]),
26224
+ "style": normalizeStyle(props.style)
26143
26225
  }, {
26144
26226
  default: () => [createVNode(VRatingItem, {
26145
26227
  "value": 0,
26146
26228
  "index": -1,
26147
26229
  "showStar": false
26148
- }, null), range.value.map((value, i) => createVNode("div", {
26230
+ }, null), range.value.map((value, i) => createElementVNode("div", {
26149
26231
  "class": "v-rating__wrapper"
26150
26232
  }, [hasLabels && props.itemLabelPosition === 'top' ? createLabel({
26151
26233
  value,
26152
26234
  index: i,
26153
26235
  label: props.itemLabels?.[i]
26154
- }) : undefined, createVNode("div", {
26236
+ }) : undefined, createElementVNode("div", {
26155
26237
  "class": "v-rating__item"
26156
- }, [props.halfIncrements ? createVNode(Fragment, null, [createVNode(VRatingItem, {
26238
+ }, [props.halfIncrements ? createElementVNode(Fragment, null, [createVNode(VRatingItem, {
26157
26239
  "value": value - 0.5,
26158
26240
  "index": i * 2
26159
26241
  }, null), createVNode(VRatingItem, {
@@ -26210,8 +26292,8 @@ const rootTypes = {
26210
26292
  };
26211
26293
  function genBone(type) {
26212
26294
  let children = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
26213
- return createVNode("div", {
26214
- "class": ['v-skeleton-loader__bone', `v-skeleton-loader__${type}`]
26295
+ return createElementVNode("div", {
26296
+ "class": normalizeClass(['v-skeleton-loader__bone', `v-skeleton-loader__${type}`])
26215
26297
  }, [children]);
26216
26298
  }
26217
26299
  function genBones(bone) {
@@ -26297,7 +26379,7 @@ const VSkeletonLoader = genericComponent()({
26297
26379
  ariaLabel: t(props.loadingText),
26298
26380
  role: 'alert'
26299
26381
  };
26300
- return createVNode("div", mergeProps({
26382
+ return createElementVNode("div", mergeProps({
26301
26383
  "class": ['v-skeleton-loader', {
26302
26384
  'v-skeleton-loader--boilerplate': props.boilerplate
26303
26385
  }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],
@@ -26503,7 +26585,7 @@ const VSnackbar = genericComponent()({
26503
26585
  "onTouchend": onTouchend,
26504
26586
  "onAfterLeave": onAfterLeave
26505
26587
  }, scopeId), {
26506
- default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && createVNode("div", {
26588
+ default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && createElementVNode("div", {
26507
26589
  "key": "timer",
26508
26590
  "class": "v-snackbar__timer"
26509
26591
  }, [createVNode(VProgressLinear, {
@@ -26511,7 +26593,7 @@ const VSnackbar = genericComponent()({
26511
26593
  "color": typeof props.timer === 'string' ? props.timer : 'info',
26512
26594
  "max": props.timeout,
26513
26595
  "model-value": countdown.time.value
26514
- }, null)]), hasContent && createVNode("div", {
26596
+ }, null)]), hasContent && createElementVNode("div", {
26515
26597
  "key": "content",
26516
26598
  "class": "v-snackbar__content",
26517
26599
  "role": "status",
@@ -26525,7 +26607,7 @@ const VSnackbar = genericComponent()({
26525
26607
  }
26526
26608
  }
26527
26609
  }, {
26528
- default: () => [createVNode("div", {
26610
+ default: () => [createElementVNode("div", {
26529
26611
  "class": "v-snackbar__actions"
26530
26612
  }, [slots.actions({
26531
26613
  isActive
@@ -26609,7 +26691,7 @@ const VSnackbarQueue = genericComponent()({
26609
26691
  modelValue: _,
26610
26692
  ...snackbarProps
26611
26693
  } = VSnackbar.filterProps(props);
26612
- return createVNode(Fragment, null, [isVisible.value && !!current.value && (slots.default ? createVNode(VDefaultsProvider, {
26694
+ return createElementVNode(Fragment, null, [isVisible.value && !!current.value && (slots.default ? createVNode(VDefaultsProvider, {
26613
26695
  "defaults": {
26614
26696
  VSnackbar: current.value
26615
26697
  }
@@ -26625,7 +26707,7 @@ const VSnackbarQueue = genericComponent()({
26625
26707
  text: slots.text ? () => slots.text?.({
26626
26708
  item: current.value
26627
26709
  }) : undefined,
26628
- actions: hasActions ? () => createVNode(Fragment, null, [!slots.actions ? createVNode(VBtn, mergeProps(btnProps.value, {
26710
+ actions: hasActions ? () => createElementVNode(Fragment, null, [!slots.actions ? createVNode(VBtn, mergeProps(btnProps.value, {
26629
26711
  "onClick": onClickClose
26630
26712
  }), null) : createVNode(VDefaultsProvider, {
26631
26713
  "defaults": {
@@ -26783,57 +26865,57 @@ const VBarline = genericComponent()({
26783
26865
  const smooth = computed(() => typeof props.smooth === 'boolean' ? props.smooth ? 2 : 0 : Number(props.smooth));
26784
26866
  useRender(() => {
26785
26867
  const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();
26786
- return createVNode("svg", {
26868
+ return createElementVNode("svg", {
26787
26869
  "display": "block"
26788
- }, [createVNode("defs", null, [createVNode("linearGradient", {
26870
+ }, [createElementVNode("defs", null, [createElementVNode("linearGradient", {
26789
26871
  "id": id.value,
26790
26872
  "gradientUnits": "userSpaceOnUse",
26791
26873
  "x1": props.gradientDirection === 'left' ? '100%' : '0',
26792
26874
  "y1": props.gradientDirection === 'top' ? '100%' : '0',
26793
26875
  "x2": props.gradientDirection === 'right' ? '100%' : '0',
26794
26876
  "y2": props.gradientDirection === 'bottom' ? '100%' : '0'
26795
- }, [gradientData.map((color, index) => createVNode("stop", {
26877
+ }, [gradientData.map((color, index) => createElementVNode("stop", {
26796
26878
  "offset": index / Math.max(gradientData.length - 1, 1),
26797
26879
  "stop-color": color || 'currentColor'
26798
- }, null))])]), createVNode("clipPath", {
26880
+ }, null))])]), createElementVNode("clipPath", {
26799
26881
  "id": `${id.value}-clip`
26800
- }, [bars.value.map(item => createVNode("rect", {
26882
+ }, [bars.value.map(item => createElementVNode("rect", {
26801
26883
  "x": item.x + offsetX.value,
26802
26884
  "y": item.y,
26803
26885
  "width": lineWidth.value,
26804
26886
  "height": item.height,
26805
26887
  "rx": smooth.value,
26806
26888
  "ry": smooth.value
26807
- }, [props.autoDraw && createVNode(Fragment, null, [createVNode("animate", {
26889
+ }, [props.autoDraw && createElementVNode(Fragment, null, [createElementVNode("animate", {
26808
26890
  "attributeName": "y",
26809
26891
  "from": item.y + item.height,
26810
26892
  "to": item.y,
26811
26893
  "dur": `${autoDrawDuration.value}ms`,
26812
26894
  "fill": "freeze"
26813
- }, null), createVNode("animate", {
26895
+ }, null), createElementVNode("animate", {
26814
26896
  "attributeName": "height",
26815
26897
  "from": "0",
26816
26898
  "to": item.height,
26817
26899
  "dur": `${autoDrawDuration.value}ms`,
26818
26900
  "fill": "freeze"
26819
- }, null)])]))]), hasLabels.value && createVNode("g", {
26901
+ }, null)])]))]), hasLabels.value && createElementVNode("g", {
26820
26902
  "key": "labels",
26821
26903
  "style": {
26822
26904
  textAnchor: 'middle',
26823
26905
  dominantBaseline: 'mathematical',
26824
26906
  fill: 'currentColor'
26825
26907
  }
26826
- }, [parsedLabels.value.map((item, i) => createVNode("text", {
26908
+ }, [parsedLabels.value.map((item, i) => createElementVNode("text", {
26827
26909
  "x": item.x + offsetX.value + lineWidth.value / 2,
26828
26910
  "y": parseInt(props.height, 10) - 2 + (parseInt(props.labelSize, 10) || 7 * 0.75),
26829
26911
  "font-size": Number(props.labelSize) || 7
26830
26912
  }, [slots.label?.({
26831
26913
  index: i,
26832
26914
  value: item.value
26833
- }) ?? item.value]))]), createVNode("g", {
26915
+ }) ?? item.value]))]), createElementVNode("g", {
26834
26916
  "clip-path": `url(#${id.value}-clip)`,
26835
26917
  "fill": `url(#${id.value})`
26836
- }, [createVNode("rect", {
26918
+ }, [createElementVNode("rect", {
26837
26919
  "x": 0,
26838
26920
  "y": 0,
26839
26921
  "width": Math.max(props.modelValue.length * lineWidth.value, Number(props.width)),
@@ -27012,39 +27094,39 @@ const VTrendline = genericComponent()({
27012
27094
  }
27013
27095
  useRender(() => {
27014
27096
  const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();
27015
- return createVNode("svg", {
27097
+ return createElementVNode("svg", {
27016
27098
  "display": "block",
27017
27099
  "stroke-width": parseFloat(props.lineWidth) ?? 4
27018
- }, [createVNode("defs", null, [createVNode("linearGradient", {
27100
+ }, [createElementVNode("defs", null, [createElementVNode("linearGradient", {
27019
27101
  "id": id.value,
27020
27102
  "gradientUnits": "userSpaceOnUse",
27021
27103
  "x1": props.gradientDirection === 'left' ? '100%' : '0',
27022
27104
  "y1": props.gradientDirection === 'top' ? '100%' : '0',
27023
27105
  "x2": props.gradientDirection === 'right' ? '100%' : '0',
27024
27106
  "y2": props.gradientDirection === 'bottom' ? '100%' : '0'
27025
- }, [gradientData.map((color, index) => createVNode("stop", {
27107
+ }, [gradientData.map((color, index) => createElementVNode("stop", {
27026
27108
  "offset": index / Math.max(gradientData.length - 1, 1),
27027
27109
  "stop-color": color || 'currentColor'
27028
- }, null))])]), hasLabels.value && createVNode("g", {
27110
+ }, null))])]), hasLabels.value && createElementVNode("g", {
27029
27111
  "key": "labels",
27030
27112
  "style": {
27031
27113
  textAnchor: 'middle',
27032
27114
  dominantBaseline: 'mathematical',
27033
27115
  fill: 'currentColor'
27034
27116
  }
27035
- }, [parsedLabels.value.map((item, i) => createVNode("text", {
27117
+ }, [parsedLabels.value.map((item, i) => createElementVNode("text", {
27036
27118
  "x": item.x + lineWidth.value / 2 + lineWidth.value / 2,
27037
27119
  "y": parseInt(props.height, 10) - 4 + (parseInt(props.labelSize, 10) || 7 * 0.75),
27038
27120
  "font-size": Number(props.labelSize) || 7
27039
27121
  }, [slots.label?.({
27040
27122
  index: i,
27041
27123
  value: item.value
27042
- }) ?? item.value]))]), createVNode("path", {
27124
+ }) ?? item.value]))]), createElementVNode("path", {
27043
27125
  "ref": path,
27044
27126
  "d": genPath$1(props.fill),
27045
27127
  "fill": props.fill ? `url(#${id.value})` : 'none',
27046
27128
  "stroke": props.fill ? 'none' : `url(#${id.value})`
27047
- }, null), props.fill && createVNode("path", {
27129
+ }, null), props.fill && createElementVNode("path", {
27048
27130
  "d": genPath$1(false),
27049
27131
  "fill": "none",
27050
27132
  "stroke": props.color ?? props.gradient?.[0]
@@ -27212,7 +27294,7 @@ const VStepperActions = genericComponent()({
27212
27294
  const nextSlotProps = {
27213
27295
  onClick: onClickNext
27214
27296
  };
27215
- return createVNode("div", {
27297
+ return createElementVNode("div", {
27216
27298
  "class": "v-stepper-actions"
27217
27299
  }, [createVNode(VDefaultsProvider, {
27218
27300
  "defaults": {
@@ -27286,7 +27368,7 @@ const makeVStepperItemProps = propsFactory({
27286
27368
  const VStepperItem = genericComponent()({
27287
27369
  name: 'VStepperItem',
27288
27370
  directives: {
27289
- Ripple
27371
+ vRipple: Ripple
27290
27372
  },
27291
27373
  props: makeVStepperItemProps(),
27292
27374
  emits: {
@@ -27325,12 +27407,12 @@ const VStepperItem = genericComponent()({
27325
27407
  function onClick() {
27326
27408
  group?.toggle();
27327
27409
  }
27328
- return withDirectives(createVNode("button", {
27329
- "class": ['v-stepper-item', {
27410
+ return withDirectives(createElementVNode("button", {
27411
+ "class": normalizeClass(['v-stepper-item', {
27330
27412
  'v-stepper-item--complete': hasCompleted.value,
27331
27413
  'v-stepper-item--disabled': props.disabled,
27332
27414
  'v-stepper-item--error': hasError.value
27333
- }, group?.selectedClass.value],
27415
+ }, group?.selectedClass.value]),
27334
27416
  "disabled": !props.editable,
27335
27417
  "type": "button",
27336
27418
  "onClick": onClick
@@ -27343,15 +27425,15 @@ const VStepperItem = genericComponent()({
27343
27425
  default: () => [slots.icon?.(slotProps.value) ?? (icon.value ? createVNode(VIcon, {
27344
27426
  "icon": icon.value
27345
27427
  }, null) : step.value)]
27346
- }), createVNode("div", {
27428
+ }), createElementVNode("div", {
27347
27429
  "class": "v-stepper-item__content"
27348
- }, [hasTitle && createVNode("div", {
27430
+ }, [hasTitle && createElementVNode("div", {
27349
27431
  "key": "title",
27350
27432
  "class": "v-stepper-item__title"
27351
- }, [slots.title?.(slotProps.value) ?? props.title]), hasSubtitle && createVNode("div", {
27433
+ }, [slots.title?.(slotProps.value) ?? props.title]), hasSubtitle && createElementVNode("div", {
27352
27434
  "key": "subtitle",
27353
27435
  "class": "v-stepper-item__subtitle"
27354
- }, [slots.subtitle?.(slotProps.value) ?? props.subtitle]), slots.default?.(slotProps.value)])]), [[resolveDirective("ripple"), props.ripple && props.editable, null]]);
27436
+ }, [slots.subtitle?.(slotProps.value) ?? props.subtitle]), slots.default?.(slotProps.value)])]), [[Ripple, props.ripple && props.editable, null]]);
27355
27437
  });
27356
27438
  return {};
27357
27439
  }
@@ -27547,7 +27629,7 @@ const VStepper = genericComponent()({
27547
27629
  raw,
27548
27630
  ...item
27549
27631
  } = _ref2;
27550
- return createVNode(Fragment, null, [!!index && createVNode(VDivider, null, null), createVNode(VStepperItem, item, {
27632
+ return createElementVNode(Fragment, null, [!!index && createVNode(VDivider, null, null), createVNode(VStepperItem, item, {
27551
27633
  default: slots[`header-item.${item.value}`] ?? slots.header,
27552
27634
  icon: slots.icon,
27553
27635
  title: slots.title,
@@ -27688,14 +27770,14 @@ const VSwitch = genericComponent()({
27688
27770
  backgroundColorClasses,
27689
27771
  backgroundColorStyles
27690
27772
  } = _ref3;
27691
- return createVNode("div", {
27692
- "class": ['v-switch__track', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],
27693
- "style": backgroundColorStyles.value,
27773
+ return createElementVNode("div", {
27774
+ "class": normalizeClass(['v-switch__track', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined]),
27775
+ "style": normalizeStyle(backgroundColorStyles.value),
27694
27776
  "onClick": onTrackClick
27695
- }, [slots['track-true'] && createVNode("div", {
27777
+ }, [slots['track-true'] && createElementVNode("div", {
27696
27778
  "key": "prepend",
27697
27779
  "class": "v-switch__track-true"
27698
- }, [slots['track-true'](slotProps)]), slots['track-false'] && createVNode("div", {
27780
+ }, [slots['track-true'](slotProps)]), slots['track-false'] && createElementVNode("div", {
27699
27781
  "key": "append",
27700
27782
  "class": "v-switch__track-false"
27701
27783
  }, [slots['track-false'](slotProps)])]);
@@ -27707,11 +27789,11 @@ const VSwitch = genericComponent()({
27707
27789
  backgroundColorClasses,
27708
27790
  backgroundColorStyles
27709
27791
  } = _ref4;
27710
- return createVNode(Fragment, null, [inputNode, createVNode("div", {
27711
- "class": ['v-switch__thumb', {
27792
+ return createElementVNode(Fragment, null, [inputNode, createElementVNode("div", {
27793
+ "class": normalizeClass(['v-switch__thumb', {
27712
27794
  'v-switch__thumb--filled': icon || props.loading
27713
- }, props.inset || isForcedColorsModeActive ? undefined : backgroundColorClasses.value],
27714
- "style": props.inset ? undefined : backgroundColorStyles.value
27795
+ }, props.inset || isForcedColorsModeActive ? undefined : backgroundColorClasses.value]),
27796
+ "style": normalizeStyle(props.inset ? undefined : backgroundColorStyles.value)
27715
27797
  }, [slots.thumb ? createVNode(VDefaultsProvider, {
27716
27798
  "defaults": {
27717
27799
  VIcon: {
@@ -27799,10 +27881,10 @@ const VSystemBar = genericComponent()({
27799
27881
  absolute: toRef(() => props.absolute)
27800
27882
  });
27801
27883
  useRender(() => createVNode(props.tag, {
27802
- "class": ['v-system-bar', {
27884
+ "class": normalizeClass(['v-system-bar', {
27803
27885
  'v-system-bar--window': props.window
27804
- }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],
27805
- "style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style]
27886
+ }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
27887
+ "style": normalizeStyle([backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style])
27806
27888
  }, slots));
27807
27889
  return {};
27808
27890
  }
@@ -27893,10 +27975,10 @@ const VTab = genericComponent()({
27893
27975
  "onGroup:selected": updateSlider
27894
27976
  }), {
27895
27977
  ...slots,
27896
- default: () => createVNode(Fragment, null, [slots.default?.() ?? props.text, !props.hideSlider && createVNode("div", {
27978
+ default: () => createElementVNode(Fragment, null, [slots.default?.() ?? props.text, !props.hideSlider && createElementVNode("div", {
27897
27979
  "ref": sliderEl,
27898
- "class": ['v-tab__slider', sliderColorClasses.value],
27899
- "style": sliderColorStyles.value
27980
+ "class": normalizeClass(['v-tab__slider', sliderColorClasses.value]),
27981
+ "style": normalizeStyle(sliderColorStyles.value)
27900
27982
  }, null)])
27901
27983
  });
27902
27984
  });
@@ -28048,7 +28130,7 @@ const VTabs = genericComponent()({
28048
28130
  useRender(() => {
28049
28131
  const slideGroupProps = VSlideGroup.filterProps(props);
28050
28132
  const hasWindow = !!(slots.window || props.items.length > 0);
28051
- return createVNode(Fragment, null, [createVNode(VSlideGroup, mergeProps(slideGroupProps, {
28133
+ return createElementVNode(Fragment, null, [createVNode(VSlideGroup, mergeProps(slideGroupProps, {
28052
28134
  "modelValue": model.value,
28053
28135
  "onUpdate:modelValue": $event => model.value = $event,
28054
28136
  "class": ['v-tabs', `v-tabs--${props.direction}`, `v-tabs--align-tabs-${props.alignTabs}`, {
@@ -28121,7 +28203,7 @@ const makeVTextareaProps = propsFactory({
28121
28203
  const VTextarea = genericComponent()({
28122
28204
  name: 'VTextarea',
28123
28205
  directives: {
28124
- Intersect
28206
+ vIntersect: Intersect
28125
28207
  },
28126
28208
  inheritAttrs: false,
28127
28209
  props: makeVTextareaProps(),
@@ -28294,9 +28376,9 @@ const VTextarea = genericComponent()({
28294
28376
  ...slotProps
28295
28377
  }
28296
28378
  } = _ref3;
28297
- return createVNode(Fragment, null, [props.prefix && createVNode("span", {
28379
+ return createElementVNode(Fragment, null, [props.prefix && createElementVNode("span", {
28298
28380
  "class": "v-text-field__prefix"
28299
- }, [props.prefix]), withDirectives(createVNode("textarea", mergeProps({
28381
+ }, [props.prefix]), withDirectives(createElementVNode("textarea", mergeProps({
28300
28382
  "ref": textareaRef,
28301
28383
  "class": fieldClass,
28302
28384
  "value": model.value,
@@ -28309,24 +28391,24 @@ const VTextarea = genericComponent()({
28309
28391
  "name": props.name,
28310
28392
  "onFocus": onFocus,
28311
28393
  "onBlur": blur
28312
- }, slotProps, inputAttrs), null), [[resolveDirective("intersect"), {
28394
+ }, slotProps, inputAttrs), null), [[Intersect, {
28313
28395
  handler: onIntersect
28314
28396
  }, null, {
28315
28397
  once: true
28316
- }]]), props.autoGrow && withDirectives(createVNode("textarea", {
28317
- "class": [fieldClass, 'v-textarea__sizer'],
28398
+ }]]), props.autoGrow && withDirectives(createElementVNode("textarea", {
28399
+ "class": normalizeClass([fieldClass, 'v-textarea__sizer']),
28318
28400
  "id": `${slotProps.id}-sizer`,
28319
28401
  "onUpdate:modelValue": $event => model.value = $event,
28320
28402
  "ref": sizerRef,
28321
28403
  "readonly": true,
28322
28404
  "aria-hidden": "true"
28323
- }, null), [[vModelText, model.value]]), props.suffix && createVNode("span", {
28405
+ }, null), [[vModelText, model.value]]), props.suffix && createElementVNode("span", {
28324
28406
  "class": "v-text-field__suffix"
28325
28407
  }, [props.suffix])]);
28326
28408
  }
28327
28409
  });
28328
28410
  },
28329
- details: hasDetails ? slotProps => createVNode(Fragment, null, [slots.details?.(slotProps), hasCounter && createVNode(Fragment, null, [createVNode("span", null, null), createVNode(VCounter, {
28411
+ details: hasDetails ? slotProps => createElementVNode(Fragment, null, [slots.details?.(slotProps), hasCounter && createElementVNode(Fragment, null, [createElementVNode("span", null, null), createVNode(VCounter, {
28330
28412
  "active": props.persistentCounter || isFocused.value,
28331
28413
  "value": counterValue.value,
28332
28414
  "max": max.value,
@@ -28357,8 +28439,8 @@ const VThemeProvider = genericComponent()({
28357
28439
  return () => {
28358
28440
  if (!props.withBackground) return slots.default?.();
28359
28441
  return createVNode(props.tag, {
28360
- "class": ['v-theme-provider', themeClasses.value, props.class],
28361
- "style": props.style
28442
+ "class": normalizeClass(['v-theme-provider', themeClasses.value, props.class]),
28443
+ "style": normalizeStyle(props.style)
28362
28444
  }, {
28363
28445
  default: () => [slots.default?.()]
28364
28446
  });
@@ -28403,21 +28485,21 @@ const VTimelineDivider = genericComponent()({
28403
28485
  backgroundColorClasses: lineColorClasses,
28404
28486
  backgroundColorStyles: lineColorStyles
28405
28487
  } = useBackgroundColor(() => props.lineColor);
28406
- useRender(() => createVNode("div", {
28407
- "class": ['v-timeline-divider', {
28488
+ useRender(() => createElementVNode("div", {
28489
+ "class": normalizeClass(['v-timeline-divider', {
28408
28490
  'v-timeline-divider--fill-dot': props.fillDot
28409
- }, props.class],
28410
- "style": props.style
28411
- }, [createVNode("div", {
28412
- "class": ['v-timeline-divider__before', lineColorClasses.value],
28413
- "style": lineColorStyles.value
28414
- }, null), !props.hideDot && createVNode("div", {
28491
+ }, props.class]),
28492
+ "style": normalizeStyle(props.style)
28493
+ }, [createElementVNode("div", {
28494
+ "class": normalizeClass(['v-timeline-divider__before', lineColorClasses.value]),
28495
+ "style": normalizeStyle(lineColorStyles.value)
28496
+ }, null), !props.hideDot && createElementVNode("div", {
28415
28497
  "key": "dot",
28416
- "class": ['v-timeline-divider__dot', elevationClasses.value, roundedClasses.value, sizeClasses.value],
28417
- "style": sizeStyles.value
28418
- }, [createVNode("div", {
28419
- "class": ['v-timeline-divider__inner-dot', backgroundColorClasses.value, roundedClasses.value],
28420
- "style": backgroundColorStyles.value
28498
+ "class": normalizeClass(['v-timeline-divider__dot', elevationClasses.value, roundedClasses.value, sizeClasses.value]),
28499
+ "style": normalizeStyle(sizeStyles.value)
28500
+ }, [createElementVNode("div", {
28501
+ "class": normalizeClass(['v-timeline-divider__inner-dot', backgroundColorClasses.value, roundedClasses.value]),
28502
+ "style": normalizeStyle(backgroundColorStyles.value)
28421
28503
  }, [!slots.default ? createVNode(VIcon, {
28422
28504
  "key": "icon",
28423
28505
  "color": props.iconColor,
@@ -28433,9 +28515,9 @@ const VTimelineDivider = genericComponent()({
28433
28515
  size: props.size
28434
28516
  }
28435
28517
  }
28436
- }, slots.default)])]), createVNode("div", {
28437
- "class": ['v-timeline-divider__after', lineColorClasses.value],
28438
- "style": lineColorStyles.value
28518
+ }, slots.default)])]), createElementVNode("div", {
28519
+ "class": normalizeClass(['v-timeline-divider__after', lineColorClasses.value]),
28520
+ "style": normalizeStyle(lineColorStyles.value)
28439
28521
  }, null)]));
28440
28522
  return {};
28441
28523
  }
@@ -28486,19 +28568,19 @@ const VTimelineItem = genericComponent()({
28486
28568
  }, {
28487
28569
  flush: 'post'
28488
28570
  });
28489
- useRender(() => createVNode("div", {
28490
- "class": ['v-timeline-item', {
28571
+ useRender(() => createElementVNode("div", {
28572
+ "class": normalizeClass(['v-timeline-item', {
28491
28573
  'v-timeline-item--fill-dot': props.fillDot,
28492
28574
  'v-timeline-item--side-start': props.side === 'start',
28493
28575
  'v-timeline-item--side-end': props.side === 'end'
28494
- }, props.class],
28495
- "style": [{
28576
+ }, props.class]),
28577
+ "style": normalizeStyle([{
28496
28578
  '--v-timeline-dot-size': convertToUnit(dotSize.value),
28497
28579
  '--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)
28498
- }, props.style]
28499
- }, [createVNode("div", {
28580
+ }, props.style])
28581
+ }, [createElementVNode("div", {
28500
28582
  "class": "v-timeline-item__body",
28501
- "style": dimensionStyles.value
28583
+ "style": normalizeStyle(dimensionStyles.value)
28502
28584
  }, [slots.default?.()]), createVNode(VTimelineDivider, {
28503
28585
  "ref": dotRef,
28504
28586
  "hideDot": props.hideDot,
@@ -28511,7 +28593,7 @@ const VTimelineItem = genericComponent()({
28511
28593
  "rounded": props.rounded
28512
28594
  }, {
28513
28595
  default: slots.icon
28514
- }), props.density !== 'compact' && createVNode("div", {
28596
+ }), props.density !== 'compact' && createElementVNode("div", {
28515
28597
  "class": "v-timeline-item__opposite"
28516
28598
  }, [!props.hideOpposite && slots.opposite?.()])]));
28517
28599
  return {};
@@ -28604,12 +28686,12 @@ const VTimeline = genericComponent()({
28604
28686
  }
28605
28687
  });
28606
28688
  useRender(() => createVNode(props.tag, {
28607
- "class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
28689
+ "class": normalizeClass(['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
28608
28690
  'v-timeline--inset-line': !!props.lineInset
28609
- }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class],
28610
- "style": [{
28691
+ }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class]),
28692
+ "style": normalizeStyle([{
28611
28693
  '--v-timeline-line-thickness': convertToUnit(props.lineThickness)
28612
- }, props.style]
28694
+ }, props.style])
28613
28695
  }, slots));
28614
28696
  return {};
28615
28697
  }
@@ -28635,9 +28717,9 @@ const VToolbarItems = genericComponent()({
28635
28717
  variant: toRef(() => props.variant)
28636
28718
  }
28637
28719
  });
28638
- useRender(() => createVNode("div", {
28639
- "class": ['v-toolbar-items', props.class],
28640
- "style": props.style
28720
+ useRender(() => createElementVNode("div", {
28721
+ "class": normalizeClass(['v-toolbar-items', props.class]),
28722
+ "style": normalizeStyle(props.style)
28641
28723
  }, [slots.default?.()]));
28642
28724
  return {};
28643
28725
  }
@@ -29234,7 +29316,7 @@ function createVuetify$1() {
29234
29316
  };
29235
29317
  });
29236
29318
  }
29237
- const version$1 = "3.8.5";
29319
+ const version$1 = "3.8.7";
29238
29320
  createVuetify$1.version = version$1;
29239
29321
 
29240
29322
  // Vue's inject() can only be used in setup
@@ -29259,7 +29341,7 @@ const createVuetify = function () {
29259
29341
  ...options
29260
29342
  });
29261
29343
  };
29262
- const version = "3.8.5";
29344
+ const version = "3.8.7";
29263
29345
  createVuetify.version = version;
29264
29346
 
29265
29347
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };