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
package/dist/vuetify.cjs CHANGED
@@ -1,5 +1,5 @@
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
  */
@@ -435,7 +435,7 @@
435
435
  }
436
436
  function focusChild(el, location) {
437
437
  const focusable = focusableChildren(el);
438
- if (!location) {
438
+ if (location == null) {
439
439
  if (el === document.activeElement || !el.contains(document.activeElement)) {
440
440
  focusable[0]?.focus();
441
441
  }
@@ -514,6 +514,21 @@
514
514
  function isPrimitive(value) {
515
515
  return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint';
516
516
  }
517
+ function extractNumber(text, decimalDigitsLimit) {
518
+ const cleanText = text.split('').filter(x => /[\d\-.]/.test(x)).filter((x, i, all) => i === 0 && /[-]/.test(x) ||
519
+ // sign allowed at the start
520
+ x === '.' && i === all.indexOf('.') ||
521
+ // decimal separator allowed only once
522
+ /\d/.test(x)).join('');
523
+ if (decimalDigitsLimit === 0) {
524
+ return cleanText.split('.')[0];
525
+ }
526
+ if (decimalDigitsLimit !== null && /\.\d/.test(cleanText)) {
527
+ const parts = cleanText.split('.');
528
+ return [parts[0], parts[1].substring(0, decimalDigitsLimit)].join('.');
529
+ }
530
+ return cleanText;
531
+ }
517
532
 
518
533
  // Utilities
519
534
  const block = ['top', 'bottom'];
@@ -618,6 +633,33 @@
618
633
  return target.getBoundingClientRect();
619
634
  }
620
635
  }
636
+ function getElementBox(el) {
637
+ if (el === document.documentElement) {
638
+ if (!visualViewport) {
639
+ return new Box({
640
+ x: 0,
641
+ y: 0,
642
+ width: document.documentElement.clientWidth,
643
+ height: document.documentElement.clientHeight
644
+ });
645
+ } else {
646
+ return new Box({
647
+ x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft,
648
+ y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop,
649
+ width: visualViewport.width * visualViewport.scale,
650
+ height: visualViewport.height * visualViewport.scale
651
+ });
652
+ }
653
+ } else {
654
+ const rect = el.getBoundingClientRect();
655
+ return new Box({
656
+ x: rect.x,
657
+ y: rect.y,
658
+ width: el.clientWidth,
659
+ height: el.clientHeight
660
+ });
661
+ }
662
+ }
621
663
 
622
664
  // Utilities
623
665
 
@@ -1616,18 +1658,18 @@
1616
1658
  return vue.createVNode(props.tag, vue.mergeProps(attrs, {
1617
1659
  "style": null
1618
1660
  }), {
1619
- default: () => [vue.createVNode("svg", {
1661
+ default: () => [vue.createElementVNode("svg", {
1620
1662
  "class": "v-icon__svg",
1621
1663
  "xmlns": "http://www.w3.org/2000/svg",
1622
1664
  "viewBox": "0 0 24 24",
1623
1665
  "role": "img",
1624
1666
  "aria-hidden": "true"
1625
- }, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? vue.createVNode("path", {
1667
+ }, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? vue.createElementVNode("path", {
1626
1668
  "d": path[0],
1627
1669
  "fill-opacity": path[1]
1628
- }, null) : vue.createVNode("path", {
1670
+ }, null) : vue.createElementVNode("path", {
1629
1671
  "d": path
1630
- }, null)) : vue.createVNode("path", {
1672
+ }, null)) : vue.createElementVNode("path", {
1631
1673
  "d": props.icon
1632
1674
  }, null)])]
1633
1675
  });
@@ -1651,7 +1693,7 @@
1651
1693
  setup(props) {
1652
1694
  return () => {
1653
1695
  return vue.createVNode(props.tag, {
1654
- "class": props.icon
1696
+ "class": vue.normalizeClass(props.icon)
1655
1697
  }, null);
1656
1698
  };
1657
1699
  }
@@ -3116,11 +3158,11 @@
3116
3158
  const {
3117
3159
  rtlClasses
3118
3160
  } = useRtl();
3119
- useRender(() => vue.createVNode("div", {
3161
+ useRender(() => vue.createElementVNode("div", {
3120
3162
  "ref": layoutRef,
3121
- "class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],
3122
- "style": [props.style]
3123
- }, [vue.createVNode("div", {
3163
+ "class": vue.normalizeClass(['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class]),
3164
+ "style": vue.normalizeStyle([props.style])
3165
+ }, [vue.createElementVNode("div", {
3124
3166
  "class": "v-application__wrap"
3125
3167
  }, [slots.default?.()])]));
3126
3168
  return {
@@ -3160,10 +3202,10 @@
3160
3202
  useRender(() => {
3161
3203
  const hasText = !!(slots.default || slots.text || props.text);
3162
3204
  return vue.createVNode(props.tag, {
3163
- "class": ['v-toolbar-title', props.class],
3164
- "style": props.style
3205
+ "class": vue.normalizeClass(['v-toolbar-title', props.class]),
3206
+ "style": vue.normalizeStyle(props.style)
3165
3207
  }, {
3166
- default: () => [hasText && vue.createVNode("div", {
3208
+ default: () => [hasText && vue.createElementVNode("div", {
3167
3209
  "class": "v-toolbar-title__placeholder"
3168
3210
  }, [slots.text ? slots.text() : props.text, slots.default?.()])]
3169
3211
  });
@@ -3623,16 +3665,16 @@
3623
3665
  const {
3624
3666
  dimensionStyles
3625
3667
  } = useDimension(props);
3626
- useRender(() => vue.createVNode("div", {
3627
- "class": ['v-responsive', {
3668
+ useRender(() => vue.createElementVNode("div", {
3669
+ "class": vue.normalizeClass(['v-responsive', {
3628
3670
  'v-responsive--inline': props.inline
3629
- }, props.class],
3630
- "style": [dimensionStyles.value, props.style]
3631
- }, [vue.createVNode("div", {
3671
+ }, props.class]),
3672
+ "style": vue.normalizeStyle([dimensionStyles.value, props.style])
3673
+ }, [vue.createElementVNode("div", {
3632
3674
  "class": "v-responsive__sizer",
3633
- "style": aspectStyles.value
3634
- }, null), slots.additional?.(), slots.default && vue.createVNode("div", {
3635
- "class": ['v-responsive__content', props.contentClass]
3675
+ "style": vue.normalizeStyle(aspectStyles.value)
3676
+ }, null), slots.additional?.(), slots.default && vue.createElementVNode("div", {
3677
+ "class": vue.normalizeClass(['v-responsive__content', props.contentClass])
3636
3678
  }, [slots.default()])]));
3637
3679
  return {};
3638
3680
  }
@@ -3866,7 +3908,7 @@
3866
3908
  const VImg = genericComponent()({
3867
3909
  name: 'VImg',
3868
3910
  directives: {
3869
- intersect: Intersect
3911
+ vIntersect: Intersect
3870
3912
  },
3871
3913
  props: makeVImgProps(),
3872
3914
  emits: {
@@ -3995,11 +4037,11 @@
3995
4037
  }));
3996
4038
  const __image = () => {
3997
4039
  if (!normalisedSrc.value.src || state.value === 'idle') return null;
3998
- const img = vue.createVNode("img", {
3999
- "class": ['v-img__img', containClasses.value],
4000
- "style": {
4040
+ const img = vue.createElementVNode("img", {
4041
+ "class": vue.normalizeClass(['v-img__img', containClasses.value]),
4042
+ "style": vue.normalizeStyle({
4001
4043
  objectPosition: props.position
4002
- },
4044
+ }),
4003
4045
  "crossorigin": props.crossorigin,
4004
4046
  "src": normalisedSrc.value.src,
4005
4047
  "srcset": normalisedSrc.value.srcset,
@@ -4016,7 +4058,7 @@
4016
4058
  "transition": props.transition,
4017
4059
  "appear": true
4018
4060
  }, {
4019
- default: () => [vue.withDirectives(sources ? vue.createVNode("picture", {
4061
+ default: () => [vue.withDirectives(sources ? vue.createElementVNode("picture", {
4020
4062
  "class": "v-img__picture"
4021
4063
  }, [sources, img]) : img, [[vue.vShow, state.value === 'loaded']])]
4022
4064
  });
@@ -4024,11 +4066,11 @@
4024
4066
  const __preloadImage = () => vue.createVNode(MaybeTransition, {
4025
4067
  "transition": props.transition
4026
4068
  }, {
4027
- default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && vue.createVNode("img", {
4028
- "class": ['v-img__img', 'v-img__img--preload', containClasses.value],
4029
- "style": {
4069
+ default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && vue.createElementVNode("img", {
4070
+ "class": vue.normalizeClass(['v-img__img', 'v-img__img--preload', containClasses.value]),
4071
+ "style": vue.normalizeStyle({
4030
4072
  objectPosition: props.position
4031
- },
4073
+ }),
4032
4074
  "crossorigin": props.crossorigin,
4033
4075
  "src": normalisedSrc.value.lazySrc,
4034
4076
  "alt": props.alt,
@@ -4042,7 +4084,7 @@
4042
4084
  "transition": props.transition,
4043
4085
  "appear": true
4044
4086
  }, {
4045
- default: () => [(state.value === 'loading' || state.value === 'error' && !slots.error) && vue.createVNode("div", {
4087
+ default: () => [(state.value === 'loading' || state.value === 'error' && !slots.error) && vue.createElementVNode("div", {
4046
4088
  "class": "v-img__placeholder"
4047
4089
  }, [slots.placeholder()])]
4048
4090
  });
@@ -4053,18 +4095,18 @@
4053
4095
  "transition": props.transition,
4054
4096
  "appear": true
4055
4097
  }, {
4056
- default: () => [state.value === 'error' && vue.createVNode("div", {
4098
+ default: () => [state.value === 'error' && vue.createElementVNode("div", {
4057
4099
  "class": "v-img__error"
4058
4100
  }, [slots.error()])]
4059
4101
  });
4060
4102
  };
4061
4103
  const __gradient = () => {
4062
4104
  if (!props.gradient) return null;
4063
- return vue.createVNode("div", {
4105
+ return vue.createElementVNode("div", {
4064
4106
  "class": "v-img__gradient",
4065
- "style": {
4107
+ "style": vue.normalizeStyle({
4066
4108
  backgroundImage: `linear-gradient(${props.gradient})`
4067
- }
4109
+ })
4068
4110
  }, null);
4069
4111
  };
4070
4112
  const isBooted = vue.shallowRef(false);
@@ -4096,9 +4138,9 @@
4096
4138
  "aria-label": props.alt,
4097
4139
  "role": props.alt ? 'img' : undefined
4098
4140
  }), {
4099
- additional: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(__image, null, null), vue.createVNode(__preloadImage, null, null), vue.createVNode(__gradient, null, null), vue.createVNode(__placeholder, null, null), vue.createVNode(__error, null, null)]),
4141
+ additional: () => vue.createElementVNode(vue.Fragment, null, [vue.createVNode(__image, null, null), vue.createVNode(__preloadImage, null, null), vue.createVNode(__gradient, null, null), vue.createVNode(__placeholder, null, null), vue.createVNode(__error, null, null)]),
4100
4142
  default: slots.default
4101
- }), [[vue.resolveDirective("intersect"), {
4143
+ }), [[Intersect, {
4102
4144
  handler: init,
4103
4145
  options: props.options
4104
4146
  }, null, {
@@ -4241,16 +4283,16 @@
4241
4283
  const extension = slots.extension?.();
4242
4284
  isExtended.value = !!(props.extended || extension);
4243
4285
  return vue.createVNode(props.tag, {
4244
- "class": ['v-toolbar', {
4286
+ "class": vue.normalizeClass(['v-toolbar', {
4245
4287
  'v-toolbar--absolute': props.absolute,
4246
4288
  'v-toolbar--collapse': props.collapse,
4247
4289
  'v-toolbar--flat': props.flat,
4248
4290
  'v-toolbar--floating': props.floating,
4249
4291
  [`v-toolbar--density-${props.density}`]: true
4250
- }, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],
4251
- "style": [backgroundColorStyles.value, props.style]
4292
+ }, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class]),
4293
+ "style": vue.normalizeStyle([backgroundColorStyles.value, props.style])
4252
4294
  }, {
4253
- default: () => [hasImage && vue.createVNode("div", {
4295
+ default: () => [hasImage && vue.createElementVNode("div", {
4254
4296
  "key": "image",
4255
4297
  "class": "v-toolbar__image"
4256
4298
  }, [!slots.image ? vue.createVNode(VImg, {
@@ -4273,19 +4315,19 @@
4273
4315
  }
4274
4316
  }
4275
4317
  }, {
4276
- default: () => [vue.createVNode("div", {
4318
+ default: () => [vue.createElementVNode("div", {
4277
4319
  "class": "v-toolbar__content",
4278
- "style": {
4320
+ "style": vue.normalizeStyle({
4279
4321
  height: convertToUnit(contentHeight.value)
4280
- }
4281
- }, [slots.prepend && vue.createVNode("div", {
4322
+ })
4323
+ }, [slots.prepend && vue.createElementVNode("div", {
4282
4324
  "class": "v-toolbar__prepend"
4283
4325
  }, [slots.prepend?.()]), hasTitle && vue.createVNode(VToolbarTitle, {
4284
4326
  "key": "title",
4285
4327
  "text": props.title
4286
4328
  }, {
4287
4329
  text: slots.title
4288
- }), slots.default?.(), slots.append && vue.createVNode("div", {
4330
+ }), slots.default?.(), slots.append && vue.createElementVNode("div", {
4289
4331
  "class": "v-toolbar__append"
4290
4332
  }, [slots.append?.()])])]
4291
4333
  }), vue.createVNode(VDefaultsProvider, {
@@ -4296,11 +4338,11 @@
4296
4338
  }
4297
4339
  }, {
4298
4340
  default: () => [vue.createVNode(VExpandTransition, null, {
4299
- default: () => [isExtended.value && vue.createVNode("div", {
4341
+ default: () => [isExtended.value && vue.createElementVNode("div", {
4300
4342
  "class": "v-toolbar__extension",
4301
- "style": {
4343
+ "style": vue.normalizeStyle({
4302
4344
  height: convertToUnit(extensionHeight.value)
4303
- }
4345
+ })
4304
4346
  }, [extension])]
4305
4347
  })]
4306
4348
  })]
@@ -4579,12 +4621,12 @@
4579
4621
 
4580
4622
  const allowedVariants$2 = ['elevated', 'flat', 'tonal', 'outlined', 'text', 'plain'];
4581
4623
  function genOverlays(isClickable, name) {
4582
- return vue.createVNode(vue.Fragment, null, [isClickable && vue.createVNode("span", {
4624
+ return vue.createElementVNode(vue.Fragment, null, [isClickable && vue.createElementVNode("span", {
4583
4625
  "key": "overlay",
4584
- "class": `${name}__overlay`
4585
- }, null), vue.createVNode("span", {
4626
+ "class": vue.normalizeClass(`${name}__overlay`)
4627
+ }, null), vue.createElementVNode("span", {
4586
4628
  "key": "underlay",
4587
- "class": `${name}__underlay`
4629
+ "class": vue.normalizeClass(`${name}__underlay`)
4588
4630
  }, null)]);
4589
4631
  }
4590
4632
  const makeVariantProps = propsFactory({
@@ -4668,10 +4710,10 @@
4668
4710
  });
4669
4711
  useRender(() => {
4670
4712
  return vue.createVNode(props.tag, {
4671
- "class": ['v-btn-group', {
4713
+ "class": vue.normalizeClass(['v-btn-group', {
4672
4714
  'v-btn-group--divided': props.divided
4673
- }, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
4674
- "style": props.style
4715
+ }, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
4716
+ "style": vue.normalizeStyle(props.style)
4675
4717
  }, slots);
4676
4718
  });
4677
4719
  }
@@ -5028,19 +5070,19 @@
5028
5070
  return vue.createVNode(iconData.value.component, {
5029
5071
  "tag": props.tag,
5030
5072
  "icon": iconData.value.icon,
5031
- "class": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
5073
+ "class": vue.normalizeClass(['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
5032
5074
  'v-icon--clickable': hasClick,
5033
5075
  'v-icon--disabled': props.disabled,
5034
5076
  'v-icon--start': props.start,
5035
5077
  'v-icon--end': props.end
5036
- }, props.class],
5037
- "style": [{
5078
+ }, props.class]),
5079
+ "style": vue.normalizeStyle([{
5038
5080
  '--v-icon-opacity': props.opacity
5039
5081
  }, !sizeClasses.value ? {
5040
5082
  fontSize: convertToUnit(props.size),
5041
5083
  height: convertToUnit(props.size),
5042
5084
  width: convertToUnit(props.size)
5043
- } : undefined, textColorStyles.value, props.style],
5085
+ } : undefined, textColorStyles.value, props.style]),
5044
5086
  "role": hasClick ? 'button' : undefined,
5045
5087
  "aria-hidden": !hasClick,
5046
5088
  "tabindex": hasClick ? props.disabled ? -1 : 0 : undefined
@@ -5137,7 +5179,7 @@
5137
5179
  resizeRef,
5138
5180
  contentRect
5139
5181
  } = useResizeObserver();
5140
- const normalizedValue = vue.toRef(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));
5182
+ const normalizedValue = vue.toRef(() => clamp(parseFloat(props.modelValue), 0, 100));
5141
5183
  const width = vue.toRef(() => Number(props.width));
5142
5184
  const size = vue.toRef(() => {
5143
5185
  // Get size from element if size prop value is small, large etc
@@ -5152,26 +5194,26 @@
5152
5194
  });
5153
5195
  useRender(() => vue.createVNode(props.tag, {
5154
5196
  "ref": root,
5155
- "class": ['v-progress-circular', {
5197
+ "class": vue.normalizeClass(['v-progress-circular', {
5156
5198
  'v-progress-circular--indeterminate': !!props.indeterminate,
5157
5199
  'v-progress-circular--visible': isIntersecting.value,
5158
5200
  'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink'
5159
- }, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class],
5160
- "style": [sizeStyles.value, textColorStyles.value, props.style],
5201
+ }, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class]),
5202
+ "style": vue.normalizeStyle([sizeStyles.value, textColorStyles.value, props.style]),
5161
5203
  "role": "progressbar",
5162
5204
  "aria-valuemin": "0",
5163
5205
  "aria-valuemax": "100",
5164
5206
  "aria-valuenow": props.indeterminate ? undefined : normalizedValue.value
5165
5207
  }, {
5166
- default: () => [vue.createVNode("svg", {
5167
- "style": {
5208
+ default: () => [vue.createElementVNode("svg", {
5209
+ "style": vue.normalizeStyle({
5168
5210
  transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`
5169
- },
5211
+ }),
5170
5212
  "xmlns": "http://www.w3.org/2000/svg",
5171
5213
  "viewBox": `0 0 ${diameter.value} ${diameter.value}`
5172
- }, [vue.createVNode("circle", {
5173
- "class": ['v-progress-circular__underlay', underlayColorClasses.value],
5174
- "style": underlayColorStyles.value,
5214
+ }, [vue.createElementVNode("circle", {
5215
+ "class": vue.normalizeClass(['v-progress-circular__underlay', underlayColorClasses.value]),
5216
+ "style": vue.normalizeStyle(underlayColorStyles.value),
5175
5217
  "fill": "transparent",
5176
5218
  "cx": "50%",
5177
5219
  "cy": "50%",
@@ -5179,7 +5221,7 @@
5179
5221
  "stroke-width": strokeWidth.value,
5180
5222
  "stroke-dasharray": CIRCUMFERENCE,
5181
5223
  "stroke-dashoffset": 0
5182
- }, null), vue.createVNode("circle", {
5224
+ }, null), vue.createElementVNode("circle", {
5183
5225
  "class": "v-progress-circular__overlay",
5184
5226
  "fill": "transparent",
5185
5227
  "cx": "50%",
@@ -5188,7 +5230,7 @@
5188
5230
  "stroke-width": strokeWidth.value,
5189
5231
  "stroke-dasharray": CIRCUMFERENCE,
5190
5232
  "stroke-dashoffset": strokeDashOffset.value
5191
- }, null)]), slots.default && vue.createVNode("div", {
5233
+ }, null)]), slots.default && vue.createElementVNode("div", {
5192
5234
  "class": "v-progress-circular__content"
5193
5235
  }, [slots.default({
5194
5236
  value: normalizedValue.value
@@ -5362,21 +5404,21 @@
5362
5404
  }
5363
5405
  useRender(() => vue.createVNode(props.tag, {
5364
5406
  "ref": intersectionRef,
5365
- "class": ['v-progress-linear', {
5407
+ "class": vue.normalizeClass(['v-progress-linear', {
5366
5408
  'v-progress-linear--absolute': props.absolute,
5367
5409
  'v-progress-linear--active': props.active && isIntersecting.value,
5368
5410
  'v-progress-linear--reverse': isReversed.value,
5369
5411
  'v-progress-linear--rounded': props.rounded,
5370
5412
  'v-progress-linear--rounded-bar': props.roundedBar,
5371
5413
  'v-progress-linear--striped': props.striped
5372
- }, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],
5373
- "style": [{
5414
+ }, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class]),
5415
+ "style": vue.normalizeStyle([{
5374
5416
  bottom: props.location === 'bottom' ? 0 : undefined,
5375
5417
  top: props.location === 'top' ? 0 : undefined,
5376
5418
  height: props.active ? convertToUnit(height.value) : 0,
5377
5419
  '--v-progress-linear-height': convertToUnit(height.value),
5378
5420
  ...(props.absolute ? locationStyles.value : {})
5379
- }, props.style],
5421
+ }, props.style]),
5380
5422
  "role": "progressbar",
5381
5423
  "aria-hidden": props.active ? 'false' : 'true',
5382
5424
  "aria-valuemin": "0",
@@ -5384,10 +5426,10 @@
5384
5426
  "aria-valuenow": props.indeterminate ? undefined : Math.min(parseFloat(progress.value), max.value),
5385
5427
  "onClick": props.clickable && handleClick
5386
5428
  }, {
5387
- default: () => [props.stream && vue.createVNode("div", {
5429
+ default: () => [props.stream && vue.createElementVNode("div", {
5388
5430
  "key": "stream",
5389
- "class": ['v-progress-linear__stream', textColorClasses.value],
5390
- "style": {
5431
+ "class": vue.normalizeClass(['v-progress-linear__stream', textColorClasses.value]),
5432
+ "style": vue.normalizeStyle({
5391
5433
  ...textColorStyles.value,
5392
5434
  [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),
5393
5435
  borderTop: `${convertToUnit(height.value / 2)} dotted`,
@@ -5395,35 +5437,35 @@
5395
5437
  top: `calc(50% - ${convertToUnit(height.value / 4)})`,
5396
5438
  width: convertToUnit(100 - normalizedBuffer.value, '%'),
5397
5439
  '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1))
5398
- }
5399
- }, null), vue.createVNode("div", {
5400
- "class": ['v-progress-linear__background', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],
5401
- "style": [backgroundColorStyles.value, {
5440
+ })
5441
+ }, null), vue.createElementVNode("div", {
5442
+ "class": vue.normalizeClass(['v-progress-linear__background', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined]),
5443
+ "style": vue.normalizeStyle([backgroundColorStyles.value, {
5402
5444
  opacity: parseFloat(props.bgOpacity),
5403
5445
  width: props.stream ? 0 : undefined
5404
- }]
5405
- }, null), vue.createVNode("div", {
5406
- "class": ['v-progress-linear__buffer', !isForcedColorsModeActive ? bufferColorClasses.value : undefined],
5407
- "style": [bufferColorStyles.value, {
5446
+ }])
5447
+ }, null), vue.createElementVNode("div", {
5448
+ "class": vue.normalizeClass(['v-progress-linear__buffer', !isForcedColorsModeActive ? bufferColorClasses.value : undefined]),
5449
+ "style": vue.normalizeStyle([bufferColorStyles.value, {
5408
5450
  opacity: parseFloat(props.bufferOpacity),
5409
5451
  width: convertToUnit(normalizedBuffer.value, '%')
5410
- }]
5452
+ }])
5411
5453
  }, null), vue.createVNode(vue.Transition, {
5412
5454
  "name": transition.value
5413
5455
  }, {
5414
- default: () => [!props.indeterminate ? vue.createVNode("div", {
5415
- "class": ['v-progress-linear__determinate', !isForcedColorsModeActive ? barColorClasses.value : undefined],
5416
- "style": [barColorStyles.value, {
5456
+ default: () => [!props.indeterminate ? vue.createElementVNode("div", {
5457
+ "class": vue.normalizeClass(['v-progress-linear__determinate', !isForcedColorsModeActive ? barColorClasses.value : undefined]),
5458
+ "style": vue.normalizeStyle([barColorStyles.value, {
5417
5459
  width: convertToUnit(normalizedValue.value, '%')
5418
- }]
5419
- }, null) : vue.createVNode("div", {
5460
+ }])
5461
+ }, null) : vue.createElementVNode("div", {
5420
5462
  "class": "v-progress-linear__indeterminate"
5421
- }, [['long', 'short'].map(bar => vue.createVNode("div", {
5463
+ }, [['long', 'short'].map(bar => vue.createElementVNode("div", {
5422
5464
  "key": bar,
5423
- "class": ['v-progress-linear__indeterminate', bar, !isForcedColorsModeActive ? barColorClasses.value : undefined],
5424
- "style": barColorStyles.value
5465
+ "class": vue.normalizeClass(['v-progress-linear__indeterminate', bar, !isForcedColorsModeActive ? barColorClasses.value : undefined]),
5466
+ "style": vue.normalizeStyle(barColorStyles.value)
5425
5467
  }, null))])]
5426
- }), slots.default && vue.createVNode("div", {
5468
+ }), slots.default && vue.createElementVNode("div", {
5427
5469
  "class": "v-progress-linear__content"
5428
5470
  }, [slots.default({
5429
5471
  value: normalizedValue.value,
@@ -5453,8 +5495,8 @@
5453
5495
  let {
5454
5496
  slots
5455
5497
  } = _ref;
5456
- return vue.createVNode("div", {
5457
- "class": `${props.name}__loader`
5498
+ return vue.createElementVNode("div", {
5499
+ "class": vue.normalizeClass(`${props.name}__loader`)
5458
5500
  }, [slots.default?.({
5459
5501
  color: props.color,
5460
5502
  isActive: props.active
@@ -6044,7 +6086,7 @@
6044
6086
  "onClick": onClick,
6045
6087
  "value": valueAttr.value
6046
6088
  }, link.linkProps), {
6047
- default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createVNode("span", {
6089
+ default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createElementVNode("span", {
6048
6090
  "key": "prepend",
6049
6091
  "class": "v-btn__prepend"
6050
6092
  }, [!slots.prepend ? vue.createVNode(VIcon, {
@@ -6058,7 +6100,7 @@
6058
6100
  icon: props.prependIcon
6059
6101
  }
6060
6102
  }
6061
- }, slots.prepend)]), vue.createVNode("span", {
6103
+ }, slots.prepend)]), vue.createElementVNode("span", {
6062
6104
  "class": "v-btn__content",
6063
6105
  "data-no-activator": ""
6064
6106
  }, [!slots.default && hasIcon ? vue.createVNode(VIcon, {
@@ -6074,7 +6116,7 @@
6074
6116
  }
6075
6117
  }, {
6076
6118
  default: () => [slots.default?.() ?? vue.toDisplayString(props.text)]
6077
- })]), !props.icon && hasAppend && vue.createVNode("span", {
6119
+ })]), !props.icon && hasAppend && vue.createElementVNode("span", {
6078
6120
  "key": "append",
6079
6121
  "class": "v-btn__append"
6080
6122
  }, [!slots.append ? vue.createVNode(VIcon, {
@@ -6088,7 +6130,7 @@
6088
6130
  icon: props.appendIcon
6089
6131
  }
6090
6132
  }
6091
- }, slots.append)]), !!props.loading && vue.createVNode("span", {
6133
+ }, slots.append)]), !!props.loading && vue.createElementVNode("span", {
6092
6134
  "key": "loader",
6093
6135
  "class": "v-btn__loader"
6094
6136
  }, [slots.loader?.() ?? vue.createVNode(VProgressCircular, {
@@ -6261,20 +6303,20 @@
6261
6303
  const hasTitle = !!(slots.title || props.title);
6262
6304
  const hasClose = !!(slots.close || props.closable);
6263
6305
  return isActive.value && vue.createVNode(props.tag, {
6264
- "class": ['v-alert', props.border && {
6306
+ "class": vue.normalizeClass(['v-alert', props.border && {
6265
6307
  'v-alert--border': !!props.border,
6266
6308
  [`v-alert--border-${props.border === true ? 'start' : props.border}`]: true
6267
6309
  }, {
6268
6310
  'v-alert--prominent': props.prominent
6269
- }, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
6270
- "style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
6311
+ }, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class]),
6312
+ "style": vue.normalizeStyle([colorStyles.value, dimensionStyles.value, locationStyles.value, props.style]),
6271
6313
  "role": "alert"
6272
6314
  }, {
6273
- default: () => [genOverlays(false, 'v-alert'), props.border && vue.createVNode("div", {
6315
+ default: () => [genOverlays(false, 'v-alert'), props.border && vue.createElementVNode("div", {
6274
6316
  "key": "border",
6275
- "class": ['v-alert__border', textColorClasses.value],
6276
- "style": textColorStyles.value
6277
- }, null), hasPrepend && vue.createVNode("div", {
6317
+ "class": vue.normalizeClass(['v-alert__border', textColorClasses.value]),
6318
+ "style": vue.normalizeStyle(textColorStyles.value)
6319
+ }, null), hasPrepend && vue.createElementVNode("div", {
6278
6320
  "key": "prepend",
6279
6321
  "class": "v-alert__prepend"
6280
6322
  }, [!slots.prepend ? vue.createVNode(VIcon, {
@@ -6292,16 +6334,16 @@
6292
6334
  size: props.prominent ? 44 : 28
6293
6335
  }
6294
6336
  }
6295
- }, slots.prepend)]), vue.createVNode("div", {
6337
+ }, slots.prepend)]), vue.createElementVNode("div", {
6296
6338
  "class": "v-alert__content"
6297
6339
  }, [hasTitle && vue.createVNode(VAlertTitle, {
6298
6340
  "key": "title"
6299
6341
  }, {
6300
6342
  default: () => [slots.title?.() ?? props.title]
6301
- }), slots.text?.() ?? props.text, slots.default?.()]), slots.append && vue.createVNode("div", {
6343
+ }), slots.text?.() ?? props.text, slots.default?.()]), slots.append && vue.createElementVNode("div", {
6302
6344
  "key": "append",
6303
6345
  "class": "v-alert__append"
6304
- }, [slots.append()]), hasClose && vue.createVNode("div", {
6346
+ }, [slots.append()]), hasClose && vue.createElementVNode("div", {
6305
6347
  "key": "close",
6306
6348
  "class": "v-alert__close"
6307
6349
  }, [!slots.close ? vue.createVNode(VBtn, vue.mergeProps({
@@ -6374,11 +6416,11 @@
6374
6416
  sizeStyles
6375
6417
  } = useSize(props);
6376
6418
  useRender(() => vue.createVNode(props.tag, {
6377
- "class": ['v-avatar', {
6419
+ "class": vue.normalizeClass(['v-avatar', {
6378
6420
  'v-avatar--start': props.start,
6379
6421
  'v-avatar--end': props.end
6380
- }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
6381
- "style": [colorStyles.value, sizeStyles.value, props.style]
6422
+ }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class]),
6423
+ "style": vue.normalizeStyle([colorStyles.value, sizeStyles.value, props.style])
6382
6424
  }, {
6383
6425
  default: () => [!slots.default ? props.image ? vue.createVNode(VImg, {
6384
6426
  "key": "image",
@@ -6420,11 +6462,11 @@
6420
6462
  let {
6421
6463
  slots
6422
6464
  } = _ref;
6423
- useRender(() => vue.createVNode("label", {
6424
- "class": ['v-label', {
6465
+ useRender(() => vue.createElementVNode("label", {
6466
+ "class": vue.normalizeClass(['v-label', {
6425
6467
  'v-label--clickable': !!props.onClick
6426
- }, props.class],
6427
- "style": props.style,
6468
+ }, props.class]),
6469
+ "style": vue.normalizeStyle(props.style),
6428
6470
  "onClick": props.onClick
6429
6471
  }, [props.text, slots.default?.()]));
6430
6472
  return {};
@@ -6519,11 +6561,11 @@
6519
6561
  valueComparator: vue.toRef(() => props.valueComparator)
6520
6562
  }
6521
6563
  });
6522
- useRender(() => vue.createVNode("div", {
6523
- "class": ['v-selection-control-group', {
6564
+ useRender(() => vue.createElementVNode("div", {
6565
+ "class": vue.normalizeClass(['v-selection-control-group', {
6524
6566
  'v-selection-control-group--inline': props.inline
6525
- }, props.class],
6526
- "style": props.style,
6567
+ }, props.class]),
6568
+ "style": vue.normalizeStyle(props.style),
6527
6569
  "role": props.type === 'radio' ? 'radiogroup' : undefined
6528
6570
  }, [slots.default?.()]));
6529
6571
  return {};
@@ -6599,7 +6641,7 @@
6599
6641
  const VSelectionControl = genericComponent()({
6600
6642
  name: 'VSelectionControl',
6601
6643
  directives: {
6602
- Ripple
6644
+ vRipple: Ripple
6603
6645
  },
6604
6646
  inheritAttrs: false,
6605
6647
  props: makeVSelectionControlProps(),
@@ -6670,7 +6712,7 @@
6670
6712
  }
6671
6713
  }) : props.label;
6672
6714
  const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
6673
- const inputNode = vue.createVNode("input", vue.mergeProps({
6715
+ const inputNode = vue.createElementVNode("input", vue.mergeProps({
6674
6716
  "ref": input,
6675
6717
  "checked": model.value,
6676
6718
  "disabled": !!props.disabled,
@@ -6685,7 +6727,7 @@
6685
6727
  "name": props.name,
6686
6728
  "aria-checked": props.type === 'checkbox' ? model.value : undefined
6687
6729
  }, inputAttrs), null);
6688
- return vue.createVNode("div", vue.mergeProps({
6730
+ return vue.createElementVNode("div", vue.mergeProps({
6689
6731
  "class": ['v-selection-control', {
6690
6732
  'v-selection-control--dirty': model.value,
6691
6733
  'v-selection-control--disabled': props.disabled,
@@ -6696,13 +6738,13 @@
6696
6738
  }, densityClasses.value, props.class]
6697
6739
  }, rootAttrs, {
6698
6740
  "style": props.style
6699
- }), [vue.createVNode("div", {
6700
- "class": ['v-selection-control__wrapper', textColorClasses.value],
6701
- "style": textColorStyles.value
6741
+ }), [vue.createElementVNode("div", {
6742
+ "class": vue.normalizeClass(['v-selection-control__wrapper', textColorClasses.value]),
6743
+ "style": vue.normalizeStyle(textColorStyles.value)
6702
6744
  }, [slots.default?.({
6703
6745
  backgroundColorClasses,
6704
6746
  backgroundColorStyles
6705
- }), vue.withDirectives(vue.createVNode("div", {
6747
+ }), vue.withDirectives(vue.createElementVNode("div", {
6706
6748
  "class": ['v-selection-control__input']
6707
6749
  }, [slots.input?.({
6708
6750
  model,
@@ -6717,10 +6759,10 @@
6717
6759
  onBlur,
6718
6760
  id: id.value
6719
6761
  }
6720
- }) ?? vue.createVNode(vue.Fragment, null, [icon.value && vue.createVNode(VIcon, {
6762
+ }) ?? vue.createElementVNode(vue.Fragment, null, [icon.value && vue.createVNode(VIcon, {
6721
6763
  "key": "icon",
6722
6764
  "icon": icon.value
6723
- }, null), inputNode])]), [[vue.resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && vue.createVNode(VLabel, {
6765
+ }, null), inputNode])]), [[Ripple, props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && vue.createVNode(VLabel, {
6724
6766
  "for": id.value,
6725
6767
  "onClick": onClickLabel
6726
6768
  }, {
@@ -6797,7 +6839,8 @@
6797
6839
  function InputIcon(_ref) {
6798
6840
  let {
6799
6841
  name,
6800
- color
6842
+ color,
6843
+ ...attrs
6801
6844
  } = _ref;
6802
6845
  const localeKey = {
6803
6846
  prepend: 'prependAction',
@@ -6814,13 +6857,13 @@
6814
6857
  callEvent(listener, new PointerEvent('click', e));
6815
6858
  }
6816
6859
  const label = listener && localeKey ? t(`$vuetify.input.${localeKey}`, props.label ?? '') : undefined;
6817
- return vue.createVNode(VIcon, {
6860
+ return vue.createVNode(VIcon, vue.mergeProps({
6818
6861
  "icon": props[`${name}Icon`],
6819
6862
  "aria-label": label,
6820
6863
  "onClick": listener,
6821
6864
  "onKeydown": onKeydown,
6822
6865
  "color": color
6823
- }, null);
6866
+ }, attrs), null);
6824
6867
  }
6825
6868
  return {
6826
6869
  InputIcon
@@ -6860,10 +6903,10 @@
6860
6903
  useRender(() => vue.createVNode(MaybeTransition, {
6861
6904
  "transition": props.transition,
6862
6905
  "tag": "div",
6863
- "class": ['v-messages', textColorClasses.value, props.class],
6864
- "style": [textColorStyles.value, props.style]
6906
+ "class": vue.normalizeClass(['v-messages', textColorClasses.value, props.class]),
6907
+ "style": vue.normalizeStyle([textColorStyles.value, props.style])
6865
6908
  }, {
6866
- default: () => [props.active && messages.value.map((message, i) => vue.createVNode("div", {
6909
+ default: () => [props.active && messages.value.map((message, i) => vue.createElementVNode("div", {
6867
6910
  "class": "v-messages__message",
6868
6911
  "key": `${i}-${messages.value}`
6869
6912
  }, [slots.message ? slots.message({
@@ -7039,13 +7082,18 @@
7039
7082
  };
7040
7083
  }
7041
7084
 
7085
+ // Utilities
7086
+ const RulesSymbol = Symbol.for('vuetify:rules');
7087
+ function useRules(fn) {
7088
+ const resolveRules = vue.inject(RulesSymbol, null);
7089
+ if (!resolveRules) return vue.toRef(fn);
7090
+ return resolveRules(fn);
7091
+ }
7092
+
7042
7093
  // Composables
7043
7094
 
7044
7095
  // Types
7045
7096
 
7046
- // type ValidationRuleParams = [any, string?]
7047
- // type ValidationAlias = string | [string, ...ValidationRuleParams]
7048
-
7049
7097
  const makeValidationProps = propsFactory({
7050
7098
  disabled: {
7051
7099
  type: Boolean,
@@ -7068,7 +7116,6 @@
7068
7116
  },
7069
7117
  rules: {
7070
7118
  type: Array,
7071
- // type: Array as PropType<readonly (ValidationRule | ValidationAlias)[]>,
7072
7119
  default: () => []
7073
7120
  },
7074
7121
  modelValue: null,
@@ -7082,7 +7129,7 @@
7082
7129
  const model = useProxiedModel(props, 'modelValue');
7083
7130
  const validationModel = vue.computed(() => props.validationValue === undefined ? model.value : props.validationValue);
7084
7131
  const form = useForm(props);
7085
- // const rules = useRules()
7132
+ const rules = useRules(() => props.rules);
7086
7133
  const internalErrorMessages = vue.ref([]);
7087
7134
  const isPristine = vue.shallowRef(true);
7088
7135
  const isDirty = vue.computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
@@ -7122,28 +7169,6 @@
7122
7169
  });
7123
7170
  const vm = getCurrentInstance('validation');
7124
7171
  const uid = vue.computed(() => props.name ?? vue.unref(id));
7125
-
7126
- // const resolvedRules = computed(() => props.rules.map(rule => {
7127
- // let ruleName: string | null = null
7128
- // let ruleParams: ValidationRuleParams = [undefined]
7129
- // if (Array.isArray(rule)) {
7130
- // ruleName = rule[0]
7131
- // ruleParams = rule.slice(1) as ValidationRuleParams
7132
- // } else if (typeof rule === 'string') {
7133
- // ruleName = rule
7134
- // }
7135
-
7136
- // if (ruleName !== null) {
7137
- // if (ruleName.startsWith('$')) {
7138
- // ruleName = ruleName.slice(1)
7139
- // }
7140
-
7141
- // return rules?.[ruleName]?.(...ruleParams)
7142
- // } else {
7143
- // return rule
7144
- // }
7145
- // }))
7146
-
7147
7172
  vue.onBeforeMount(() => {
7148
7173
  form.register?.({
7149
7174
  id: uid.value,
@@ -7199,7 +7224,7 @@
7199
7224
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7200
7225
  const results = [];
7201
7226
  isValidating.value = true;
7202
- for (const rule of props.rules) {
7227
+ for (const rule of rules.value) {
7203
7228
  if (results.length >= Number(props.maxErrors ?? 1)) {
7204
7229
  break;
7205
7230
  }
@@ -7347,31 +7372,31 @@
7347
7372
  const hasAppend = !!(slots.append || props.appendIcon);
7348
7373
  const hasMessages = messages.value.length > 0;
7349
7374
  const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
7350
- return vue.createVNode("div", {
7351
- "class": ['v-input', `v-input--${props.direction}`, {
7375
+ return vue.createElementVNode("div", {
7376
+ "class": vue.normalizeClass(['v-input', `v-input--${props.direction}`, {
7352
7377
  'v-input--center-affix': props.centerAffix,
7353
7378
  'v-input--focused': props.focused,
7354
7379
  'v-input--glow': props.glow,
7355
7380
  'v-input--hide-spin-buttons': props.hideSpinButtons
7356
- }, densityClasses.value, themeClasses.value, rtlClasses.value, validationClasses.value, props.class],
7357
- "style": [dimensionStyles.value, props.style]
7358
- }, [hasPrepend && vue.createVNode("div", {
7381
+ }, densityClasses.value, themeClasses.value, rtlClasses.value, validationClasses.value, props.class]),
7382
+ "style": vue.normalizeStyle([dimensionStyles.value, props.style])
7383
+ }, [hasPrepend && vue.createElementVNode("div", {
7359
7384
  "key": "prepend",
7360
7385
  "class": "v-input__prepend"
7361
7386
  }, [slots.prepend?.(slotProps.value), props.prependIcon && vue.createVNode(InputIcon, {
7362
7387
  "key": "prepend-icon",
7363
7388
  "name": "prepend",
7364
7389
  "color": iconColor.value
7365
- }, null)]), slots.default && vue.createVNode("div", {
7390
+ }, null)]), slots.default && vue.createElementVNode("div", {
7366
7391
  "class": "v-input__control"
7367
- }, [slots.default?.(slotProps.value)]), hasAppend && vue.createVNode("div", {
7392
+ }, [slots.default?.(slotProps.value)]), hasAppend && vue.createElementVNode("div", {
7368
7393
  "key": "append",
7369
7394
  "class": "v-input__append"
7370
7395
  }, [props.appendIcon && vue.createVNode(InputIcon, {
7371
7396
  "key": "append-icon",
7372
7397
  "name": "append",
7373
7398
  "color": iconColor.value
7374
- }, null), slots.append?.(slotProps.value)]), hasDetails && vue.createVNode("div", {
7399
+ }, null), slots.append?.(slotProps.value)]), hasDetails && vue.createElementVNode("div", {
7375
7400
  "id": messagesId.value,
7376
7401
  "class": "v-input__details",
7377
7402
  "role": "alert",
@@ -7762,7 +7787,7 @@
7762
7787
  min = 0;
7763
7788
  max = scrollHeight + -containerHeight;
7764
7789
  }
7765
- return Math.max(Math.min(value, max), min);
7790
+ return clamp(value, min, max);
7766
7791
  }
7767
7792
 
7768
7793
  function calculateUpdatedTarget(_ref) {
@@ -8120,42 +8145,42 @@
8120
8145
  return scrollSizeMax - Math.abs(scrollOffset.value) > 1;
8121
8146
  });
8122
8147
  useRender(() => vue.createVNode(props.tag, {
8123
- "class": ['v-slide-group', {
8148
+ "class": vue.normalizeClass(['v-slide-group', {
8124
8149
  'v-slide-group--vertical': !isHorizontal.value,
8125
8150
  'v-slide-group--has-affixes': hasAffixes.value,
8126
8151
  'v-slide-group--is-overflowing': isOverflowing.value
8127
- }, displayClasses.value, props.class],
8128
- "style": props.style,
8152
+ }, displayClasses.value, props.class]),
8153
+ "style": vue.normalizeStyle(props.style),
8129
8154
  "tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
8130
8155
  "onFocus": onFocus
8131
8156
  }, {
8132
- default: () => [hasAffixes.value && vue.createVNode("div", {
8157
+ default: () => [hasAffixes.value && vue.createElementVNode("div", {
8133
8158
  "key": "prev",
8134
- "class": ['v-slide-group__prev', {
8159
+ "class": vue.normalizeClass(['v-slide-group__prev', {
8135
8160
  'v-slide-group__prev--disabled': !hasPrev.value
8136
- }],
8161
+ }]),
8137
8162
  "onMousedown": onFocusAffixes,
8138
8163
  "onClick": () => hasPrev.value && scrollTo('prev')
8139
8164
  }, [slots.prev?.(slotProps.value) ?? vue.createVNode(VFadeTransition, null, {
8140
8165
  default: () => [vue.createVNode(VIcon, {
8141
8166
  "icon": isRtl.value ? props.nextIcon : props.prevIcon
8142
8167
  }, null)]
8143
- })]), vue.createVNode("div", {
8168
+ })]), vue.createElementVNode("div", {
8144
8169
  "key": "container",
8145
8170
  "ref": containerRef,
8146
8171
  "class": "v-slide-group__container",
8147
8172
  "onScroll": onScroll
8148
- }, [vue.createVNode("div", {
8173
+ }, [vue.createElementVNode("div", {
8149
8174
  "ref": contentRef,
8150
8175
  "class": "v-slide-group__content",
8151
8176
  "onFocusin": onFocusin,
8152
8177
  "onFocusout": onFocusout,
8153
8178
  "onKeydown": onKeydown
8154
- }, [slots.default?.(slotProps.value)])]), hasAffixes.value && vue.createVNode("div", {
8179
+ }, [slots.default?.(slotProps.value)])]), hasAffixes.value && vue.createElementVNode("div", {
8155
8180
  "key": "next",
8156
- "class": ['v-slide-group__next', {
8181
+ "class": vue.normalizeClass(['v-slide-group__next', {
8157
8182
  'v-slide-group__next--disabled': !hasNext.value
8158
- }],
8183
+ }]),
8159
8184
  "onMousedown": onFocusAffixes,
8160
8185
  "onClick": () => hasNext.value && scrollTo('next')
8161
8186
  }, [slots.next?.(slotProps.value) ?? vue.createVNode(VFadeTransition, null, {
@@ -8310,7 +8335,7 @@
8310
8335
  const VChip = genericComponent()({
8311
8336
  name: 'VChip',
8312
8337
  directives: {
8313
- Ripple
8338
+ vRipple: Ripple
8314
8339
  },
8315
8340
  props: makeVChipProps(),
8316
8341
  emits: {
@@ -8410,7 +8435,7 @@
8410
8435
  default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && vue.createVNode(VExpandXTransition, {
8411
8436
  "key": "filter"
8412
8437
  }, {
8413
- default: () => [vue.withDirectives(vue.createVNode("div", {
8438
+ default: () => [vue.withDirectives(vue.createElementVNode("div", {
8414
8439
  "class": "v-chip__filter"
8415
8440
  }, [!slots.filter ? vue.createVNode(VIcon, {
8416
8441
  "key": "filter-icon",
@@ -8424,10 +8449,10 @@
8424
8449
  }
8425
8450
  }
8426
8451
  }, slots.filter)]), [[vue.vShow, group.isSelected.value]])]
8427
- }), hasPrepend && vue.createVNode("div", {
8452
+ }), hasPrepend && vue.createElementVNode("div", {
8428
8453
  "key": "prepend",
8429
8454
  "class": "v-chip__prepend"
8430
- }, [!slots.prepend ? vue.createVNode(vue.Fragment, null, [props.prependIcon && vue.createVNode(VIcon, {
8455
+ }, [!slots.prepend ? vue.createElementVNode(vue.Fragment, null, [props.prependIcon && vue.createVNode(VIcon, {
8431
8456
  "key": "prepend-icon",
8432
8457
  "icon": props.prependIcon,
8433
8458
  "start": true
@@ -8448,7 +8473,7 @@
8448
8473
  start: true
8449
8474
  }
8450
8475
  }
8451
- }, slots.prepend)]), vue.createVNode("div", {
8476
+ }, slots.prepend)]), vue.createElementVNode("div", {
8452
8477
  "class": "v-chip__content",
8453
8478
  "data-no-activator": ""
8454
8479
  }, [slots.default?.({
@@ -8458,10 +8483,10 @@
8458
8483
  toggle: group?.toggle,
8459
8484
  value: group?.value.value,
8460
8485
  disabled: props.disabled
8461
- }) ?? vue.toDisplayString(props.text)]), hasAppend && vue.createVNode("div", {
8486
+ }) ?? vue.toDisplayString(props.text)]), hasAppend && vue.createElementVNode("div", {
8462
8487
  "key": "append",
8463
8488
  "class": "v-chip__append"
8464
- }, [!slots.append ? vue.createVNode(vue.Fragment, null, [props.appendIcon && vue.createVNode(VIcon, {
8489
+ }, [!slots.append ? vue.createElementVNode(vue.Fragment, null, [props.appendIcon && vue.createVNode(VIcon, {
8465
8490
  "key": "append-icon",
8466
8491
  "end": true,
8467
8492
  "icon": props.appendIcon
@@ -8482,7 +8507,7 @@
8482
8507
  icon: props.appendIcon
8483
8508
  }
8484
8509
  }
8485
- }, slots.append)]), hasClose && vue.createVNode("button", vue.mergeProps({
8510
+ }, slots.append)]), hasClose && vue.createElementVNode("button", vue.mergeProps({
8486
8511
  "key": "close",
8487
8512
  "class": "v-chip__close",
8488
8513
  "type": "button",
@@ -8500,7 +8525,7 @@
8500
8525
  }
8501
8526
  }
8502
8527
  }, slots.close)])]
8503
- }), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple, null]]);
8528
+ }), [[Ripple, isClickable.value && props.ripple, null]]);
8504
8529
  };
8505
8530
  }
8506
8531
  });
@@ -9273,13 +9298,13 @@
9273
9298
  }
9274
9299
  }));
9275
9300
  useRender(() => vue.createVNode(props.tag, {
9276
- "class": ['v-list-group', {
9301
+ "class": vue.normalizeClass(['v-list-group', {
9277
9302
  'v-list-group--prepend': list?.hasPrepend.value,
9278
9303
  'v-list-group--fluid': props.fluid,
9279
9304
  'v-list-group--subgroup': props.subgroup,
9280
9305
  'v-list-group--open': isOpen.value
9281
- }, props.class],
9282
- "style": props.style
9306
+ }, props.class]),
9307
+ "style": vue.normalizeStyle(props.style)
9283
9308
  }, {
9284
9309
  default: () => [slots.activator && vue.createVNode(VDefaultsProvider, {
9285
9310
  "defaults": activatorDefaults.value
@@ -9296,7 +9321,7 @@
9296
9321
  },
9297
9322
  "disabled": !isBooted.value
9298
9323
  }, {
9299
- default: () => [vue.withDirectives(vue.createVNode("div", {
9324
+ default: () => [vue.withDirectives(vue.createElementVNode("div", {
9300
9325
  "class": "v-list-group__items",
9301
9326
  "role": "group",
9302
9327
  "aria-labelledby": id.value
@@ -9322,10 +9347,10 @@
9322
9347
  slots
9323
9348
  } = _ref;
9324
9349
  useRender(() => vue.createVNode(props.tag, {
9325
- "class": ['v-list-item-subtitle', props.class],
9326
- "style": [{
9350
+ "class": vue.normalizeClass(['v-list-item-subtitle', props.class]),
9351
+ "style": vue.normalizeStyle([{
9327
9352
  '--v-list-item-subtitle-opacity': props.opacity
9328
- }, props.style]
9353
+ }, props.style])
9329
9354
  }, slots));
9330
9355
  return {};
9331
9356
  }
@@ -9388,7 +9413,7 @@
9388
9413
  const VListItem = genericComponent()({
9389
9414
  name: 'VListItem',
9390
9415
  directives: {
9391
- Ripple
9416
+ vRipple: Ripple
9392
9417
  },
9393
9418
  props: makeVListItemProps(),
9394
9419
  emits: {
@@ -9523,10 +9548,10 @@
9523
9548
  "onClick": onClick,
9524
9549
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
9525
9550
  }, link.linkProps), {
9526
- default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && vue.createVNode("div", {
9551
+ default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && vue.createElementVNode("div", {
9527
9552
  "key": "prepend",
9528
9553
  "class": "v-list-item__prepend"
9529
- }, [!slots.prepend ? vue.createVNode(vue.Fragment, null, [props.prependAvatar && vue.createVNode(VAvatar, {
9554
+ }, [!slots.prepend ? vue.createElementVNode(vue.Fragment, null, [props.prependAvatar && vue.createVNode(VAvatar, {
9530
9555
  "key": "prepend-avatar",
9531
9556
  "density": props.density,
9532
9557
  "image": props.prependAvatar
@@ -9552,9 +9577,9 @@
9552
9577
  }
9553
9578
  }, {
9554
9579
  default: () => [slots.prepend?.(slotProps.value)]
9555
- }), vue.createVNode("div", {
9580
+ }), vue.createElementVNode("div", {
9556
9581
  "class": "v-list-item__spacer"
9557
- }, null)]), vue.createVNode("div", {
9582
+ }, null)]), vue.createElementVNode("div", {
9558
9583
  "class": "v-list-item__content",
9559
9584
  "data-no-activator": ""
9560
9585
  }, [hasTitle && vue.createVNode(VListItemTitle, {
@@ -9569,10 +9594,10 @@
9569
9594
  default: () => [slots.subtitle?.({
9570
9595
  subtitle: props.subtitle
9571
9596
  }) ?? vue.toDisplayString(props.subtitle)]
9572
- }), slots.default?.(slotProps.value)]), hasAppend && vue.createVNode("div", {
9597
+ }), slots.default?.(slotProps.value)]), hasAppend && vue.createElementVNode("div", {
9573
9598
  "key": "append",
9574
9599
  "class": "v-list-item__append"
9575
- }, [!slots.append ? vue.createVNode(vue.Fragment, null, [props.appendIcon && vue.createVNode(VIcon, {
9600
+ }, [!slots.append ? vue.createElementVNode(vue.Fragment, null, [props.appendIcon && vue.createVNode(VIcon, {
9576
9601
  "key": "append-icon",
9577
9602
  "density": props.density,
9578
9603
  "icon": props.appendIcon
@@ -9598,10 +9623,10 @@
9598
9623
  }
9599
9624
  }, {
9600
9625
  default: () => [slots.append?.(slotProps.value)]
9601
- }), vue.createVNode("div", {
9626
+ }), vue.createElementVNode("div", {
9602
9627
  "class": "v-list-item__spacer"
9603
9628
  }, null)])]
9604
- }), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
9629
+ }), [[Ripple, isClickable.value && props.ripple]]);
9605
9630
  });
9606
9631
  return {
9607
9632
  activate,
@@ -9639,15 +9664,15 @@
9639
9664
  useRender(() => {
9640
9665
  const hasText = !!(slots.default || props.title);
9641
9666
  return vue.createVNode(props.tag, {
9642
- "class": ['v-list-subheader', {
9667
+ "class": vue.normalizeClass(['v-list-subheader', {
9643
9668
  'v-list-subheader--inset': props.inset,
9644
9669
  'v-list-subheader--sticky': props.sticky
9645
- }, textColorClasses.value, props.class],
9646
- "style": [{
9670
+ }, textColorClasses.value, props.class]),
9671
+ "style": vue.normalizeStyle([{
9647
9672
  textColorStyles
9648
- }, props.style]
9673
+ }, props.style])
9649
9674
  }, {
9650
- default: () => [hasText && vue.createVNode("div", {
9675
+ default: () => [hasText && vue.createElementVNode("div", {
9651
9676
  "class": "v-list-subheader__text"
9652
9677
  }, [slots.default?.() ?? props.title])]
9653
9678
  });
@@ -9692,25 +9717,25 @@
9692
9717
  return styles;
9693
9718
  });
9694
9719
  useRender(() => {
9695
- const divider = vue.createVNode("hr", {
9696
- "class": [{
9720
+ const divider = vue.createElementVNode("hr", {
9721
+ "class": vue.normalizeClass([{
9697
9722
  'v-divider': true,
9698
9723
  'v-divider--inset': props.inset,
9699
9724
  'v-divider--vertical': props.vertical
9700
- }, themeClasses.value, textColorClasses.value, props.class],
9701
- "style": [dividerStyles.value, textColorStyles.value, {
9725
+ }, themeClasses.value, textColorClasses.value, props.class]),
9726
+ "style": vue.normalizeStyle([dividerStyles.value, textColorStyles.value, {
9702
9727
  '--v-border-opacity': props.opacity
9703
- }, props.style],
9728
+ }, props.style]),
9704
9729
  "aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
9705
9730
  "role": `${attrs.role || 'separator'}`
9706
9731
  }, null);
9707
9732
  if (!slots.default) return divider;
9708
- return vue.createVNode("div", {
9709
- "class": ['v-divider__wrapper', {
9733
+ return vue.createElementVNode("div", {
9734
+ "class": vue.normalizeClass(['v-divider__wrapper', {
9710
9735
  'v-divider__wrapper--vertical': props.vertical,
9711
9736
  'v-divider__wrapper--inset': props.inset
9712
- }]
9713
- }, [divider, vue.createVNode("div", {
9737
+ }])
9738
+ }, [divider, vue.createElementVNode("div", {
9714
9739
  "class": "v-divider__content"
9715
9740
  }, [slots.default()]), divider]);
9716
9741
  });
@@ -10129,12 +10154,12 @@
10129
10154
  useRender(() => {
10130
10155
  return vue.createVNode(props.tag, {
10131
10156
  "ref": contentRef,
10132
- "class": ['v-list', {
10157
+ "class": vue.normalizeClass(['v-list', {
10133
10158
  'v-list--disabled': props.disabled,
10134
10159
  'v-list--nav': props.nav,
10135
10160
  'v-list--slim': props.slim
10136
- }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
10137
- "style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
10161
+ }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class]),
10162
+ "style": vue.normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, props.style]),
10138
10163
  "tabindex": props.disabled ? -1 : 0,
10139
10164
  "role": "listbox",
10140
10165
  "aria-activedescendant": undefined,
@@ -10178,11 +10203,11 @@
10178
10203
  slots
10179
10204
  } = _ref;
10180
10205
  useRender(() => vue.createVNode(props.tag, {
10181
- "class": ['v-list-item-action', {
10206
+ "class": vue.normalizeClass(['v-list-item-action', {
10182
10207
  'v-list-item-action--start': props.start,
10183
10208
  'v-list-item-action--end': props.end
10184
- }, props.class],
10185
- "style": props.style
10209
+ }, props.class]),
10210
+ "style": vue.normalizeStyle(props.style)
10186
10211
  }, slots));
10187
10212
  return {};
10188
10213
  }
@@ -10203,11 +10228,11 @@
10203
10228
  } = _ref;
10204
10229
  useRender(() => {
10205
10230
  return vue.createVNode(props.tag, {
10206
- "class": ['v-list-item-media', {
10231
+ "class": vue.normalizeClass(['v-list-item-media', {
10207
10232
  'v-list-item-media--start': props.start,
10208
10233
  'v-list-item-media--end': props.end
10209
- }, props.class],
10210
- "style": props.style
10234
+ }, props.class]),
10235
+ "style": vue.normalizeStyle(props.style)
10211
10236
  }, slots);
10212
10237
  });
10213
10238
  return {};
@@ -10296,11 +10321,19 @@
10296
10321
  vue.watch(() => props.locationStrategy, reset);
10297
10322
  vue.onScopeDispose(() => {
10298
10323
  window.removeEventListener('resize', onResize);
10324
+ visualViewport?.removeEventListener('resize', onVisualResize);
10325
+ visualViewport?.removeEventListener('scroll', onVisualScroll);
10299
10326
  updateLocation.value = undefined;
10300
10327
  });
10301
10328
  window.addEventListener('resize', onResize, {
10302
10329
  passive: true
10303
10330
  });
10331
+ visualViewport?.addEventListener('resize', onVisualResize, {
10332
+ passive: true
10333
+ });
10334
+ visualViewport?.addEventListener('scroll', onVisualScroll, {
10335
+ passive: true
10336
+ });
10304
10337
  if (typeof props.locationStrategy === 'function') {
10305
10338
  updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation;
10306
10339
  } else {
@@ -10311,6 +10344,12 @@
10311
10344
  function onResize(e) {
10312
10345
  updateLocation.value?.(e);
10313
10346
  }
10347
+ function onVisualResize(e) {
10348
+ updateLocation.value?.(e);
10349
+ }
10350
+ function onVisualScroll(e) {
10351
+ updateLocation.value?.(e);
10352
+ }
10314
10353
  return {
10315
10354
  contentStyles,
10316
10355
  updateLocation
@@ -10462,13 +10501,7 @@
10462
10501
  }
10463
10502
  }
10464
10503
  const viewport = scrollParents.reduce((box, el) => {
10465
- const rect = el.getBoundingClientRect();
10466
- const scrollBox = new Box({
10467
- x: el === document.documentElement ? 0 : rect.x,
10468
- y: el === document.documentElement ? 0 : rect.y,
10469
- width: el.clientWidth,
10470
- height: el.clientHeight
10471
- });
10504
+ const scrollBox = getElementBox(el);
10472
10505
  if (box) {
10473
10506
  return new Box({
10474
10507
  x: Math.max(box.left, scrollBox.left),
@@ -11359,7 +11392,7 @@
11359
11392
  "name": "fade-transition",
11360
11393
  "appear": true
11361
11394
  }, {
11362
- default: () => [props.modelValue && vue.createVNode("div", vue.mergeProps({
11395
+ default: () => [props.modelValue && vue.createElementVNode("div", vue.mergeProps({
11363
11396
  "class": ['v-overlay__scrim', props.color.backgroundColorClasses.value],
11364
11397
  "style": props.color.backgroundColorStyles.value
11365
11398
  }, rest), null)]
@@ -11400,7 +11433,7 @@
11400
11433
  const VOverlay = genericComponent()({
11401
11434
  name: 'VOverlay',
11402
11435
  directives: {
11403
- ClickOutside
11436
+ vClickOutside: ClickOutside
11404
11437
  },
11405
11438
  inheritAttrs: false,
11406
11439
  props: {
@@ -11580,7 +11613,7 @@
11580
11613
  _onAfterLeave();
11581
11614
  emit('afterLeave');
11582
11615
  }
11583
- useRender(() => vue.createVNode(vue.Fragment, null, [slots.activator?.({
11616
+ useRender(() => vue.createElementVNode(vue.Fragment, null, [slots.activator?.({
11584
11617
  isActive: isActive.value,
11585
11618
  targetRef,
11586
11619
  props: vue.mergeProps({
@@ -11590,7 +11623,7 @@
11590
11623
  "disabled": !teleportTarget.value,
11591
11624
  "to": teleportTarget.value
11592
11625
  }, {
11593
- default: () => [vue.createVNode("div", vue.mergeProps({
11626
+ default: () => [vue.createElementVNode("div", vue.mergeProps({
11594
11627
  "class": ['v-overlay', {
11595
11628
  'v-overlay--absolute': props.absolute || props.contained,
11596
11629
  'v-overlay--active': isActive.value,
@@ -11614,13 +11647,13 @@
11614
11647
  "onAfterEnter": onAfterEnter,
11615
11648
  "onAfterLeave": onAfterLeave
11616
11649
  }, {
11617
- default: () => [vue.withDirectives(vue.createVNode("div", vue.mergeProps({
11650
+ default: () => [vue.withDirectives(vue.createElementVNode("div", vue.mergeProps({
11618
11651
  "ref": contentEl,
11619
11652
  "class": ['v-overlay__content', props.contentClass],
11620
11653
  "style": [dimensionStyles.value, contentStyles.value]
11621
11654
  }, contentEvents.value, props.contentProps), [slots.default?.({
11622
11655
  isActive
11623
- })]), [[vue.vShow, isActive.value], [vue.resolveDirective("click-outside"), {
11656
+ })]), [[vue.vShow, isActive.value], [ClickOutside, {
11624
11657
  handler: onClickOutside,
11625
11658
  closeConditional,
11626
11659
  include: () => [activatorEl.value]
@@ -11949,11 +11982,11 @@
11949
11982
  useRender(() => vue.createVNode(MaybeTransition, {
11950
11983
  "transition": props.transition
11951
11984
  }, {
11952
- default: () => [vue.withDirectives(vue.createVNode("div", {
11953
- "class": ['v-counter', {
11985
+ default: () => [vue.withDirectives(vue.createElementVNode("div", {
11986
+ "class": vue.normalizeClass(['v-counter', {
11954
11987
  'text-error': props.max && !props.disabled && parseFloat(props.value) > parseFloat(props.max)
11955
- }, props.class],
11956
- "style": props.style
11988
+ }, props.class]),
11989
+ "style": vue.normalizeStyle(props.style)
11957
11990
  }, [slots.default ? slots.default({
11958
11991
  counter: counter.value,
11959
11992
  max: props.max,
@@ -11976,10 +12009,10 @@
11976
12009
  slots
11977
12010
  } = _ref;
11978
12011
  useRender(() => vue.createVNode(VLabel, {
11979
- "class": ['v-field-label', {
12012
+ "class": vue.normalizeClass(['v-field-label', {
11980
12013
  'v-field-label--floating': props.floating
11981
- }, props.class],
11982
- "style": props.style,
12014
+ }, props.class]),
12015
+ "style": vue.normalizeStyle(props.style),
11983
12016
  "aria-hidden": props.floating || undefined
11984
12017
  }, slots));
11985
12018
  return {};
@@ -12156,7 +12189,7 @@
12156
12189
  for: id.value
12157
12190
  }
12158
12191
  }) : props.label;
12159
- return vue.createVNode("div", vue.mergeProps({
12192
+ return vue.createElementVNode("div", vue.mergeProps({
12160
12193
  "class": ['v-field', {
12161
12194
  'v-field--active': isActive.value,
12162
12195
  'v-field--appended': hasAppend,
@@ -12176,7 +12209,7 @@
12176
12209
  }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
12177
12210
  "style": [backgroundColorStyles.value, props.style],
12178
12211
  "onClick": onClick
12179
- }, attrs), [vue.createVNode("div", {
12212
+ }, attrs), [vue.createElementVNode("div", {
12180
12213
  "class": "v-field__overlay"
12181
12214
  }, null), vue.createVNode(LoaderSlot, {
12182
12215
  "name": "v-field",
@@ -12184,23 +12217,23 @@
12184
12217
  "color": props.error ? 'error' : typeof props.loading === 'string' ? props.loading : props.color
12185
12218
  }, {
12186
12219
  default: slots.loader
12187
- }), hasPrepend && vue.createVNode("div", {
12220
+ }), hasPrepend && vue.createElementVNode("div", {
12188
12221
  "key": "prepend",
12189
12222
  "class": "v-field__prepend-inner"
12190
12223
  }, [props.prependInnerIcon && vue.createVNode(InputIcon, {
12191
12224
  "key": "prepend-icon",
12192
12225
  "name": "prependInner",
12193
12226
  "color": iconColor.value
12194
- }, null), slots['prepend-inner']?.(slotProps.value)]), vue.createVNode("div", {
12227
+ }, null), slots['prepend-inner']?.(slotProps.value)]), vue.createElementVNode("div", {
12195
12228
  "class": "v-field__field",
12196
12229
  "data-no-activator": ""
12197
12230
  }, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasFloatingLabel.value && vue.createVNode(VFieldLabel, {
12198
12231
  "key": "floating-label",
12199
12232
  "ref": floatingLabelRef,
12200
- "class": [textColorClasses.value],
12233
+ "class": vue.normalizeClass([textColorClasses.value]),
12201
12234
  "floating": true,
12202
12235
  "for": id.value,
12203
- "style": textColorStyles.value
12236
+ "style": vue.normalizeStyle(textColorStyles.value)
12204
12237
  }, {
12205
12238
  default: () => [label()]
12206
12239
  }), hasLabel.value && vue.createVNode(VFieldLabel, {
@@ -12218,14 +12251,14 @@
12218
12251
  },
12219
12252
  focus,
12220
12253
  blur
12221
- }) ?? vue.createVNode("div", {
12254
+ }) ?? vue.createElementVNode("div", {
12222
12255
  "id": id.value,
12223
12256
  "class": "v-field__input",
12224
12257
  "aria-describedby": messagesId.value
12225
12258
  }, null)]), hasClear && vue.createVNode(VExpandXTransition, {
12226
12259
  "key": "clear"
12227
12260
  }, {
12228
- default: () => [vue.withDirectives(vue.createVNode("div", {
12261
+ default: () => [vue.withDirectives(vue.createElementVNode("div", {
12229
12262
  "class": "v-field__clearable",
12230
12263
  "onMousedown": e => {
12231
12264
  e.preventDefault();
@@ -12243,27 +12276,29 @@
12243
12276
  props: {
12244
12277
  onFocus: focus,
12245
12278
  onBlur: blur,
12246
- onClick: props['onClick:clear']
12279
+ onClick: props['onClick:clear'],
12280
+ tabindex: -1
12247
12281
  }
12248
12282
  }) : vue.createVNode(InputIcon, {
12249
12283
  "name": "clear",
12250
12284
  "onFocus": focus,
12251
- "onBlur": blur
12285
+ "onBlur": blur,
12286
+ "tabindex": -1
12252
12287
  }, null)]
12253
12288
  })]), [[vue.vShow, props.dirty]])]
12254
- }), hasAppend && vue.createVNode("div", {
12289
+ }), hasAppend && vue.createElementVNode("div", {
12255
12290
  "key": "append",
12256
12291
  "class": "v-field__append-inner"
12257
12292
  }, [slots['append-inner']?.(slotProps.value), props.appendInnerIcon && vue.createVNode(InputIcon, {
12258
12293
  "key": "append-icon",
12259
12294
  "name": "appendInner",
12260
12295
  "color": iconColor.value
12261
- }, null)]), vue.createVNode("div", {
12262
- "class": ['v-field__outline', textColorClasses.value],
12263
- "style": textColorStyles.value
12264
- }, [isOutlined && vue.createVNode(vue.Fragment, null, [vue.createVNode("div", {
12296
+ }, null)]), vue.createElementVNode("div", {
12297
+ "class": vue.normalizeClass(['v-field__outline', textColorClasses.value]),
12298
+ "style": vue.normalizeStyle(textColorStyles.value)
12299
+ }, [isOutlined && vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("div", {
12265
12300
  "class": "v-field__outline__start"
12266
- }, null), hasFloatingLabel.value && vue.createVNode("div", {
12301
+ }, null), hasFloatingLabel.value && vue.createElementVNode("div", {
12267
12302
  "class": "v-field__outline__notch"
12268
12303
  }, [vue.createVNode(VFieldLabel, {
12269
12304
  "ref": floatingLabelRef,
@@ -12271,7 +12306,7 @@
12271
12306
  "for": id.value
12272
12307
  }, {
12273
12308
  default: () => [label()]
12274
- })]), vue.createVNode("div", {
12309
+ })]), vue.createElementVNode("div", {
12275
12310
  "class": "v-field__outline__end"
12276
12311
  }, null)]), isPlainOrUnderlined.value && hasFloatingLabel.value && vue.createVNode(VFieldLabel, {
12277
12312
  "ref": floatingLabelRef,
@@ -12312,7 +12347,7 @@
12312
12347
  const VTextField = genericComponent()({
12313
12348
  name: 'VTextField',
12314
12349
  directives: {
12315
- Intersect
12350
+ vIntersect: Intersect
12316
12351
  },
12317
12352
  inheritAttrs: false,
12318
12353
  props: makeVTextFieldProps(),
@@ -12444,7 +12479,7 @@
12444
12479
  ...slotProps
12445
12480
  }
12446
12481
  } = _ref3;
12447
- const inputNode = vue.withDirectives(vue.createVNode("input", vue.mergeProps({
12482
+ const inputNode = vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
12448
12483
  "ref": inputRef,
12449
12484
  "value": model.value,
12450
12485
  "onInput": onInput,
@@ -12457,29 +12492,29 @@
12457
12492
  "type": props.type,
12458
12493
  "onFocus": onFocus,
12459
12494
  "onBlur": blur
12460
- }, slotProps, inputAttrs), null), [[vue.resolveDirective("intersect"), {
12495
+ }, slotProps, inputAttrs), null), [[Intersect, {
12461
12496
  handler: onIntersect
12462
12497
  }, null, {
12463
12498
  once: true
12464
12499
  }]]);
12465
- return vue.createVNode(vue.Fragment, null, [props.prefix && vue.createVNode("span", {
12500
+ return vue.createElementVNode(vue.Fragment, null, [props.prefix && vue.createElementVNode("span", {
12466
12501
  "class": "v-text-field__prefix"
12467
- }, [vue.createVNode("span", {
12502
+ }, [vue.createElementVNode("span", {
12468
12503
  "class": "v-text-field__prefix__text"
12469
- }, [props.prefix])]), slots.default ? vue.createVNode("div", {
12470
- "class": fieldClass,
12504
+ }, [props.prefix])]), slots.default ? vue.createElementVNode("div", {
12505
+ "class": vue.normalizeClass(fieldClass),
12471
12506
  "data-no-activator": ""
12472
12507
  }, [slots.default(), inputNode]) : vue.cloneVNode(inputNode, {
12473
12508
  class: fieldClass
12474
- }), props.suffix && vue.createVNode("span", {
12509
+ }), props.suffix && vue.createElementVNode("span", {
12475
12510
  "class": "v-text-field__suffix"
12476
- }, [vue.createVNode("span", {
12511
+ }, [vue.createElementVNode("span", {
12477
12512
  "class": "v-text-field__suffix__text"
12478
12513
  }, [props.suffix])])]);
12479
12514
  }
12480
12515
  });
12481
12516
  },
12482
- details: hasDetails ? slotProps => vue.createVNode(vue.Fragment, null, [slots.details?.(slotProps), hasCounter && vue.createVNode(vue.Fragment, null, [vue.createVNode("span", null, null), vue.createVNode(VCounter, {
12517
+ details: hasDetails ? slotProps => vue.createElementVNode(vue.Fragment, null, [slots.details?.(slotProps), hasCounter && vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("span", null, null), vue.createVNode(VCounter, {
12483
12518
  "active": props.persistentCounter || isFocused.value,
12484
12519
  "value": counterValue.value,
12485
12520
  "max": max.value,
@@ -12517,9 +12552,9 @@
12517
12552
  vue.watch(() => contentRect.value?.height, height => {
12518
12553
  if (height != null) emit('update:height', height);
12519
12554
  });
12520
- useRender(() => props.renderless ? vue.createVNode(vue.Fragment, null, [slots.default?.({
12555
+ useRender(() => props.renderless ? vue.createElementVNode(vue.Fragment, null, [slots.default?.({
12521
12556
  itemRef: resizeRef
12522
- })]) : vue.createVNode("div", vue.mergeProps({
12557
+ })]) : vue.createElementVNode("div", vue.mergeProps({
12523
12558
  "ref": resizeRef,
12524
12559
  "class": ['v-virtual-scroll__item', props.class],
12525
12560
  "style": props.style
@@ -12854,30 +12889,30 @@
12854
12889
  ...slotProps
12855
12890
  })
12856
12891
  }));
12857
- return props.renderless ? vue.createVNode(vue.Fragment, null, [vue.createVNode("div", {
12892
+ return props.renderless ? vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("div", {
12858
12893
  "ref": markerRef,
12859
12894
  "class": "v-virtual-scroll__spacer",
12860
- "style": {
12895
+ "style": vue.normalizeStyle({
12861
12896
  paddingTop: convertToUnit(paddingTop.value)
12862
- }
12863
- }, null), children, vue.createVNode("div", {
12897
+ })
12898
+ }, null), children, vue.createElementVNode("div", {
12864
12899
  "class": "v-virtual-scroll__spacer",
12865
- "style": {
12900
+ "style": vue.normalizeStyle({
12866
12901
  paddingBottom: convertToUnit(paddingBottom.value)
12867
- }
12868
- }, null)]) : vue.createVNode("div", {
12902
+ })
12903
+ }, null)]) : vue.createElementVNode("div", {
12869
12904
  "ref": containerRef,
12870
- "class": ['v-virtual-scroll', props.class],
12905
+ "class": vue.normalizeClass(['v-virtual-scroll', props.class]),
12871
12906
  "onScrollPassive": handleScroll,
12872
12907
  "onScrollend": handleScrollend,
12873
- "style": [dimensionStyles.value, props.style]
12874
- }, [vue.createVNode("div", {
12908
+ "style": vue.normalizeStyle([dimensionStyles.value, props.style])
12909
+ }, [vue.createElementVNode("div", {
12875
12910
  "ref": markerRef,
12876
12911
  "class": "v-virtual-scroll__container",
12877
- "style": {
12912
+ "style": vue.normalizeStyle({
12878
12913
  paddingTop: convertToUnit(paddingTop.value),
12879
12914
  paddingBottom: convertToUnit(paddingBottom.value)
12880
- }
12915
+ })
12881
12916
  }, [children])]);
12882
12917
  });
12883
12918
  return {
@@ -13039,6 +13074,7 @@
13039
13074
  const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
13040
13075
  const isFocused = vue.shallowRef(false);
13041
13076
  let keyboardLookupPrefix = '';
13077
+ let keyboardLookupIndex = -1;
13042
13078
  let keyboardLookupLastTime;
13043
13079
  const displayItems = vue.computed(() => {
13044
13080
  if (props.hideSelected) {
@@ -13106,16 +13142,46 @@
13106
13142
  const now = performance.now();
13107
13143
  if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
13108
13144
  keyboardLookupPrefix = '';
13145
+ keyboardLookupIndex = -1;
13109
13146
  }
13110
13147
  keyboardLookupPrefix += e.key.toLowerCase();
13111
13148
  keyboardLookupLastTime = now;
13112
- const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix));
13113
- if (item !== undefined) {
13149
+ const items = displayItems.value;
13150
+ function findItem() {
13151
+ let result = findItemBase();
13152
+ if (result) return result;
13153
+ if (keyboardLookupPrefix.at(-1) === keyboardLookupPrefix.at(-2)) {
13154
+ // No matches but we have a repeated letter, try the next item with that prefix
13155
+ keyboardLookupPrefix = keyboardLookupPrefix.slice(0, -1);
13156
+ result = findItemBase();
13157
+ if (result) return result;
13158
+ }
13159
+
13160
+ // Still nothing, wrap around to the top
13161
+ keyboardLookupIndex = -1;
13162
+ result = findItemBase();
13163
+ if (result) return result;
13164
+
13165
+ // Still nothing, try just the new letter
13166
+ keyboardLookupPrefix = e.key.toLowerCase();
13167
+ return findItemBase();
13168
+ }
13169
+ function findItemBase() {
13170
+ for (let i = keyboardLookupIndex + 1; i < items.length; i++) {
13171
+ const _item = items[i];
13172
+ if (_item.title.toLowerCase().startsWith(keyboardLookupPrefix)) {
13173
+ return [_item, i];
13174
+ }
13175
+ }
13176
+ return undefined;
13177
+ }
13178
+ const result = findItem();
13179
+ if (!result) return;
13180
+ const [item, index] = result;
13181
+ keyboardLookupIndex = index;
13182
+ listRef.value?.focus(index);
13183
+ if (!props.multiple) {
13114
13184
  model.value = [item];
13115
- const index = displayItems.value.indexOf(item);
13116
- IN_BROWSER && window.requestAnimationFrame(() => {
13117
- index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
13118
- });
13119
13185
  }
13120
13186
  }
13121
13187
 
@@ -13217,7 +13283,7 @@
13217
13283
  "title": t(label.value)
13218
13284
  }), {
13219
13285
  ...slots,
13220
- default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
13286
+ default: () => vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
13221
13287
  "ref": vMenuRef,
13222
13288
  "modelValue": menu.value,
13223
13289
  "onUpdate:modelValue": $event => menu.value = $event,
@@ -13275,7 +13341,7 @@
13275
13341
  let {
13276
13342
  isSelected
13277
13343
  } = _ref3;
13278
- return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
13344
+ return vue.createElementVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
13279
13345
  "key": item.value,
13280
13346
  "modelValue": isSelected,
13281
13347
  "ripple": false,
@@ -13321,7 +13387,7 @@
13321
13387
  index
13322
13388
  })) : undefined;
13323
13389
  if (hasSlot && !slotContent) return undefined;
13324
- return vue.createVNode("div", {
13390
+ return vue.createElementVNode("div", {
13325
13391
  "key": item.value,
13326
13392
  "class": "v-select__selection"
13327
13393
  }, [hasChips ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
@@ -13341,9 +13407,9 @@
13341
13407
  }
13342
13408
  }, {
13343
13409
  default: () => [slotContent]
13344
- }) : slotContent ?? vue.createVNode("span", {
13410
+ }) : slotContent ?? vue.createElementVNode("span", {
13345
13411
  "class": "v-select__selection-text"
13346
- }, [item.title, props.multiple && index < model.value.length - 1 && vue.createVNode("span", {
13412
+ }, [item.title, props.multiple && index < model.value.length - 1 && vue.createElementVNode("span", {
13347
13413
  "class": "v-select__selection-comma"
13348
13414
  }, [vue.createTextVNode(",")])])]);
13349
13415
  })]),
@@ -13351,7 +13417,7 @@
13351
13417
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13352
13418
  args[_key] = arguments[_key];
13353
13419
  }
13354
- return vue.createVNode(vue.Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? vue.createVNode(VIcon, {
13420
+ return vue.createElementVNode(vue.Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? vue.createVNode(VIcon, {
13355
13421
  "class": "v-select__menu-icon",
13356
13422
  "color": vTextFieldRef.value?.fieldIconColor,
13357
13423
  "icon": props.menuIcon
@@ -13502,17 +13568,17 @@
13502
13568
  if (matches == null || !matches.length) return text;
13503
13569
  return matches.map((match, i) => {
13504
13570
  const start = i === 0 ? 0 : matches[i - 1][1];
13505
- const result = [vue.createVNode("span", {
13506
- "class": `${name}__unmask`
13507
- }, [text.slice(start, match[0])]), vue.createVNode("span", {
13508
- "class": `${name}__mask`
13571
+ const result = [vue.createElementVNode("span", {
13572
+ "class": vue.normalizeClass(`${name}__unmask`)
13573
+ }, [text.slice(start, match[0])]), vue.createElementVNode("span", {
13574
+ "class": vue.normalizeClass(`${name}__mask`)
13509
13575
  }, [text.slice(match[0], match[1])])];
13510
13576
  if (i === matches.length - 1) {
13511
- result.push(vue.createVNode("span", {
13512
- "class": `${name}__unmask`
13577
+ result.push(vue.createElementVNode("span", {
13578
+ "class": vue.normalizeClass(`${name}__unmask`)
13513
13579
  }, [text.slice(match[1])]));
13514
13580
  }
13515
- return vue.createVNode(vue.Fragment, null, [result]);
13581
+ return vue.createElementVNode(vue.Fragment, null, [result]);
13516
13582
  });
13517
13583
  }
13518
13584
 
@@ -13814,7 +13880,7 @@
13814
13880
  "onKeydown": onKeydown
13815
13881
  }), {
13816
13882
  ...slots,
13817
- default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
13883
+ default: () => vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
13818
13884
  "ref": vMenuRef,
13819
13885
  "modelValue": menu.value,
13820
13886
  "onUpdate:modelValue": $event => menu.value = $event,
@@ -13873,7 +13939,7 @@
13873
13939
  let {
13874
13940
  isSelected
13875
13941
  } = _ref4;
13876
- return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
13942
+ return vue.createElementVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
13877
13943
  "key": item.value,
13878
13944
  "modelValue": isSelected,
13879
13945
  "ripple": false,
@@ -13922,10 +13988,10 @@
13922
13988
  index
13923
13989
  })) : undefined;
13924
13990
  if (hasSlot && !slotContent) return undefined;
13925
- return vue.createVNode("div", {
13991
+ return vue.createElementVNode("div", {
13926
13992
  "key": item.value,
13927
- "class": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],
13928
- "style": index === selectionIndex.value ? textColorStyles.value : {}
13993
+ "class": vue.normalizeClass(['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]]),
13994
+ "style": vue.normalizeStyle(index === selectionIndex.value ? textColorStyles.value : {})
13929
13995
  }, [hasChips.value ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
13930
13996
  "key": "chip",
13931
13997
  "closable": props.closableChips,
@@ -13943,9 +14009,9 @@
13943
14009
  }
13944
14010
  }, {
13945
14011
  default: () => [slotContent]
13946
- }) : slotContent ?? vue.createVNode("span", {
14012
+ }) : slotContent ?? vue.createElementVNode("span", {
13947
14013
  "class": "v-autocomplete__selection-text"
13948
- }, [item.title, props.multiple && index < model.value.length - 1 && vue.createVNode("span", {
14014
+ }, [item.title, props.multiple && index < model.value.length - 1 && vue.createElementVNode("span", {
13949
14015
  "class": "v-autocomplete__selection-comma"
13950
14016
  }, [vue.createTextVNode(",")])])]);
13951
14017
  })]),
@@ -13953,7 +14019,7 @@
13953
14019
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13954
14020
  args[_key] = arguments[_key];
13955
14021
  }
13956
- return vue.createVNode(vue.Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? vue.createVNode(VIcon, {
14022
+ return vue.createElementVNode(vue.Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? vue.createVNode(VIcon, {
13957
14023
  "class": "v-autocomplete__menu-icon",
13958
14024
  "color": vTextFieldRef.value?.fieldIconColor,
13959
14025
  "icon": props.menuIcon,
@@ -14050,12 +14116,12 @@
14050
14116
  }, attrs, {
14051
14117
  "style": props.style
14052
14118
  }), {
14053
- default: () => [vue.createVNode("div", {
14119
+ default: () => [vue.createElementVNode("div", {
14054
14120
  "class": "v-badge__wrapper"
14055
14121
  }, [ctx.slots.default?.(), vue.createVNode(MaybeTransition, {
14056
14122
  "transition": props.transition
14057
14123
  }, {
14058
- default: () => [vue.withDirectives(vue.createVNode("span", vue.mergeProps({
14124
+ default: () => [vue.withDirectives(vue.createElementVNode("span", vue.mergeProps({
14059
14125
  "class": ['v-badge__badge', themeClasses.value, backgroundColorClasses.value, roundedClasses.value, textColorClasses.value],
14060
14126
  "style": [backgroundColorStyles.value, textColorStyles.value, props.inline ? {} : locationStyles.value],
14061
14127
  "aria-atomic": "true",
@@ -14092,9 +14158,9 @@
14092
14158
  variant: 'text'
14093
14159
  }
14094
14160
  });
14095
- useRender(() => vue.createVNode("div", {
14096
- "class": ['v-banner-actions', props.class],
14097
- "style": props.style
14161
+ useRender(() => vue.createElementVNode("div", {
14162
+ "class": vue.normalizeClass(['v-banner-actions', props.class]),
14163
+ "style": vue.normalizeStyle(props.style)
14098
14164
  }, [slots.default?.()]));
14099
14165
  return {};
14100
14166
  }
@@ -14180,15 +14246,15 @@
14180
14246
  const hasPrependMedia = !!(props.avatar || props.icon);
14181
14247
  const hasPrepend = !!(hasPrependMedia || slots.prepend);
14182
14248
  return vue.createVNode(props.tag, {
14183
- "class": ['v-banner', {
14249
+ "class": vue.normalizeClass(['v-banner', {
14184
14250
  'v-banner--stacked': props.stacked || mobile.value,
14185
14251
  'v-banner--sticky': props.sticky,
14186
14252
  [`v-banner--${props.lines}-line`]: !!props.lines
14187
- }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
14188
- "style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
14253
+ }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class]),
14254
+ "style": vue.normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]),
14189
14255
  "role": "banner"
14190
14256
  }, {
14191
- default: () => [hasPrepend && vue.createVNode("div", {
14257
+ default: () => [hasPrepend && vue.createElementVNode("div", {
14192
14258
  "key": "prepend",
14193
14259
  "class": "v-banner__prepend"
14194
14260
  }, [!slots.prepend ? vue.createVNode(VAvatar, {
@@ -14208,7 +14274,7 @@
14208
14274
  image: props.avatar
14209
14275
  }
14210
14276
  }
14211
- }, slots.prepend)]), vue.createVNode("div", {
14277
+ }, slots.prepend)]), vue.createElementVNode("div", {
14212
14278
  "class": "v-banner__content"
14213
14279
  }, [hasText && vue.createVNode(VBannerText, {
14214
14280
  "key": "text"
@@ -14317,16 +14383,16 @@
14317
14383
  });
14318
14384
  useRender(() => {
14319
14385
  return vue.createVNode(props.tag, {
14320
- "class": ['v-bottom-navigation', {
14386
+ "class": vue.normalizeClass(['v-bottom-navigation', {
14321
14387
  'v-bottom-navigation--active': isActive.value,
14322
14388
  'v-bottom-navigation--grow': props.grow,
14323
14389
  'v-bottom-navigation--shift': props.mode === 'shift'
14324
- }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
14325
- "style": [backgroundColorStyles.value, layoutItemStyles.value, {
14390
+ }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
14391
+ "style": vue.normalizeStyle([backgroundColorStyles.value, layoutItemStyles.value, {
14326
14392
  height: convertToUnit(height.value)
14327
- }, ssrBootStyles.value, props.style]
14393
+ }, ssrBootStyles.value, props.style])
14328
14394
  }, {
14329
- default: () => [slots.default && vue.createVNode("div", {
14395
+ default: () => [slots.default && vue.createElementVNode("div", {
14330
14396
  "class": "v-bottom-navigation__content"
14331
14397
  }, [slots.default()])]
14332
14398
  });
@@ -14513,10 +14579,10 @@
14513
14579
  let {
14514
14580
  slots
14515
14581
  } = _ref;
14516
- useRender(() => vue.createVNode("li", {
14582
+ useRender(() => vue.createElementVNode("li", {
14517
14583
  "aria-hidden": "true",
14518
- "class": ['v-breadcrumbs-divider', props.class],
14519
- "style": props.style
14584
+ "class": vue.normalizeClass(['v-breadcrumbs-divider', props.class]),
14585
+ "style": vue.normalizeStyle(props.style)
14520
14586
  }, [slots?.default?.() ?? props.divider]));
14521
14587
  return {};
14522
14588
  }
@@ -14551,15 +14617,15 @@
14551
14617
  } = useTextColor(() => isActive.value ? props.activeColor : props.color);
14552
14618
  useRender(() => {
14553
14619
  return vue.createVNode(props.tag, {
14554
- "class": ['v-breadcrumbs-item', {
14620
+ "class": vue.normalizeClass(['v-breadcrumbs-item', {
14555
14621
  'v-breadcrumbs-item--active': isActive.value,
14556
14622
  'v-breadcrumbs-item--disabled': props.disabled,
14557
14623
  [`${props.activeClass}`]: isActive.value && props.activeClass
14558
- }, textColorClasses.value, props.class],
14559
- "style": [textColorStyles.value, props.style],
14624
+ }, textColorClasses.value, props.class]),
14625
+ "style": vue.normalizeStyle([textColorStyles.value, props.style]),
14560
14626
  "aria-current": isActive.value ? 'page' : undefined
14561
14627
  }, {
14562
- default: () => [!link.isLink.value ? slots.default?.() ?? props.title : vue.createVNode("a", vue.mergeProps({
14628
+ default: () => [!link.isLink.value ? slots.default?.() ?? props.title : vue.createElementVNode("a", vue.mergeProps({
14563
14629
  "class": "v-breadcrumbs-item--link",
14564
14630
  "onClick": link.navigate
14565
14631
  }, link.linkProps), [slots.default?.() ?? props.title])]
@@ -14635,10 +14701,10 @@
14635
14701
  useRender(() => {
14636
14702
  const hasPrepend = !!(slots.prepend || props.icon);
14637
14703
  return vue.createVNode(props.tag, {
14638
- "class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],
14639
- "style": [backgroundColorStyles.value, props.style]
14704
+ "class": vue.normalizeClass(['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class]),
14705
+ "style": vue.normalizeStyle([backgroundColorStyles.value, props.style])
14640
14706
  }, {
14641
- default: () => [hasPrepend && vue.createVNode("li", {
14707
+ default: () => [hasPrepend && vue.createElementVNode("li", {
14642
14708
  "key": "prepend",
14643
14709
  "class": "v-breadcrumbs__prepend"
14644
14710
  }, [!slots.prepend ? vue.createVNode(VIcon, {
@@ -14659,7 +14725,7 @@
14659
14725
  item,
14660
14726
  raw
14661
14727
  } = _ref2;
14662
- return vue.createVNode(vue.Fragment, null, [slots.item?.({
14728
+ return vue.createElementVNode(vue.Fragment, null, [slots.item?.({
14663
14729
  item,
14664
14730
  index
14665
14731
  }) ?? vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
@@ -14698,9 +14764,9 @@
14698
14764
  variant: 'text'
14699
14765
  }
14700
14766
  });
14701
- useRender(() => vue.createVNode("div", {
14702
- "class": ['v-card-actions', props.class],
14703
- "style": props.style
14767
+ useRender(() => vue.createElementVNode("div", {
14768
+ "class": vue.normalizeClass(['v-card-actions', props.class]),
14769
+ "style": vue.normalizeStyle(props.style)
14704
14770
  }, [slots.default?.()]));
14705
14771
  return {};
14706
14772
  }
@@ -14719,10 +14785,10 @@
14719
14785
  slots
14720
14786
  } = _ref;
14721
14787
  useRender(() => vue.createVNode(props.tag, {
14722
- "class": ['v-card-subtitle', props.class],
14723
- "style": [{
14788
+ "class": vue.normalizeClass(['v-card-subtitle', props.class]),
14789
+ "style": vue.normalizeStyle([{
14724
14790
  '--v-card-subtitle-opacity': props.opacity
14725
- }, props.style]
14791
+ }, props.style])
14726
14792
  }, slots));
14727
14793
  return {};
14728
14794
  }
@@ -14761,13 +14827,13 @@
14761
14827
  const hasAppend = !!(hasAppendMedia || slots.append);
14762
14828
  const hasTitle = !!(props.title != null || slots.title);
14763
14829
  const hasSubtitle = !!(props.subtitle != null || slots.subtitle);
14764
- return vue.createVNode("div", {
14765
- "class": ['v-card-item', props.class],
14766
- "style": props.style
14767
- }, [hasPrepend && vue.createVNode("div", {
14830
+ return vue.createElementVNode("div", {
14831
+ "class": vue.normalizeClass(['v-card-item', props.class]),
14832
+ "style": vue.normalizeStyle(props.style)
14833
+ }, [hasPrepend && vue.createElementVNode("div", {
14768
14834
  "key": "prepend",
14769
14835
  "class": "v-card-item__prepend"
14770
- }, [!slots.prepend ? vue.createVNode(vue.Fragment, null, [props.prependAvatar && vue.createVNode(VAvatar, {
14836
+ }, [!slots.prepend ? vue.createElementVNode(vue.Fragment, null, [props.prependAvatar && vue.createVNode(VAvatar, {
14771
14837
  "key": "prepend-avatar",
14772
14838
  "density": props.density,
14773
14839
  "image": props.prependAvatar
@@ -14788,7 +14854,7 @@
14788
14854
  icon: props.prependIcon
14789
14855
  }
14790
14856
  }
14791
- }, slots.prepend)]), vue.createVNode("div", {
14857
+ }, slots.prepend)]), vue.createElementVNode("div", {
14792
14858
  "class": "v-card-item__content"
14793
14859
  }, [hasTitle && vue.createVNode(VCardTitle, {
14794
14860
  "key": "title"
@@ -14798,10 +14864,10 @@
14798
14864
  "key": "subtitle"
14799
14865
  }, {
14800
14866
  default: () => [slots.subtitle?.() ?? vue.toDisplayString(props.subtitle)]
14801
- }), slots.default?.()]), hasAppend && vue.createVNode("div", {
14867
+ }), slots.default?.()]), hasAppend && vue.createElementVNode("div", {
14802
14868
  "key": "append",
14803
14869
  "class": "v-card-item__append"
14804
- }, [!slots.append ? vue.createVNode(vue.Fragment, null, [props.appendIcon && vue.createVNode(VIcon, {
14870
+ }, [!slots.append ? vue.createElementVNode(vue.Fragment, null, [props.appendIcon && vue.createVNode(VIcon, {
14805
14871
  "key": "append-icon",
14806
14872
  "density": props.density,
14807
14873
  "icon": props.appendIcon
@@ -14841,10 +14907,10 @@
14841
14907
  slots
14842
14908
  } = _ref;
14843
14909
  useRender(() => vue.createVNode(props.tag, {
14844
- "class": ['v-card-text', props.class],
14845
- "style": [{
14910
+ "class": vue.normalizeClass(['v-card-text', props.class]),
14911
+ "style": vue.normalizeStyle([{
14846
14912
  '--v-card-text-opacity': props.opacity
14847
- }, props.style]
14913
+ }, props.style])
14848
14914
  }, slots));
14849
14915
  return {};
14850
14916
  }
@@ -14900,7 +14966,7 @@
14900
14966
  const VCard = genericComponent()({
14901
14967
  name: 'VCard',
14902
14968
  directives: {
14903
- Ripple
14969
+ vRipple: Ripple
14904
14970
  },
14905
14971
  props: makeVCardProps(),
14906
14972
  setup(props, _ref) {
@@ -14964,7 +15030,7 @@
14964
15030
  "onClick": isClickable && link.navigate,
14965
15031
  "tabindex": props.disabled ? -1 : undefined
14966
15032
  }, link.linkProps), {
14967
- default: () => [hasImage && vue.createVNode("div", {
15033
+ default: () => [hasImage && vue.createElementVNode("div", {
14968
15034
  "key": "image",
14969
15035
  "class": "v-card__image"
14970
15036
  }, [!slots.image ? vue.createVNode(VImg, {
@@ -15007,7 +15073,7 @@
15007
15073
  }), slots.default?.(), slots.actions && vue.createVNode(VCardActions, null, {
15008
15074
  default: slots.actions
15009
15075
  }), genOverlays(isClickable, 'v-card')]
15010
- }), [[vue.resolveDirective("ripple"), isClickable && props.ripple]]);
15076
+ }), [[Ripple, isClickable && props.ripple]]);
15011
15077
  });
15012
15078
  return {};
15013
15079
  }
@@ -15166,7 +15232,7 @@
15166
15232
  const VWindow = genericComponent()({
15167
15233
  name: 'VWindow',
15168
15234
  directives: {
15169
- Touch
15235
+ vTouch: Touch
15170
15236
  },
15171
15237
  props: makeVWindowProps(),
15172
15238
  emits: {
@@ -15238,7 +15304,7 @@
15238
15304
  };
15239
15305
  arrows.push(canMoveBack.value ? slots.prev ? slots.prev({
15240
15306
  props: prevProps
15241
- }) : vue.createVNode(VBtn, prevProps, null) : vue.createVNode("div", null, null));
15307
+ }) : vue.createVNode(VBtn, prevProps, null) : vue.createElementVNode("div", null, null));
15242
15308
  const nextProps = {
15243
15309
  icon: isRtl.value ? props.prevIcon : props.nextIcon,
15244
15310
  class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,
@@ -15247,7 +15313,7 @@
15247
15313
  };
15248
15314
  arrows.push(canMoveForward.value ? slots.next ? slots.next({
15249
15315
  props: nextProps
15250
- }) : vue.createVNode(VBtn, nextProps, null) : vue.createVNode("div", null, null));
15316
+ }) : vue.createVNode(VBtn, nextProps, null) : vue.createElementVNode("div", null, null));
15251
15317
  return arrows;
15252
15318
  });
15253
15319
  const touchOptions = vue.computed(() => {
@@ -15273,24 +15339,24 @@
15273
15339
  });
15274
15340
  useRender(() => vue.withDirectives(vue.createVNode(props.tag, {
15275
15341
  "ref": rootRef,
15276
- "class": ['v-window', {
15342
+ "class": vue.normalizeClass(['v-window', {
15277
15343
  'v-window--show-arrows-on-hover': props.showArrows === 'hover'
15278
- }, themeClasses.value, props.class],
15279
- "style": props.style
15344
+ }, themeClasses.value, props.class]),
15345
+ "style": vue.normalizeStyle(props.style)
15280
15346
  }, {
15281
- default: () => [vue.createVNode("div", {
15347
+ default: () => [vue.createElementVNode("div", {
15282
15348
  "class": "v-window__container",
15283
- "style": {
15349
+ "style": vue.normalizeStyle({
15284
15350
  height: transitionHeight.value
15285
- }
15351
+ })
15286
15352
  }, [slots.default?.({
15287
15353
  group
15288
- }), props.showArrows !== false && vue.createVNode("div", {
15354
+ }), props.showArrows !== false && vue.createElementVNode("div", {
15289
15355
  "class": "v-window__controls"
15290
15356
  }, [arrows.value])]), slots.additional?.({
15291
15357
  group
15292
15358
  })]
15293
- }), [[vue.resolveDirective("touch"), touchOptions.value]]));
15359
+ }), [[Touch, touchOptions.value]]));
15294
15360
  return {
15295
15361
  group
15296
15362
  };
@@ -15375,12 +15441,12 @@
15375
15441
  let {
15376
15442
  group
15377
15443
  } = _ref2;
15378
- return vue.createVNode(vue.Fragment, null, [!props.hideDelimiters && vue.createVNode("div", {
15444
+ return vue.createElementVNode(vue.Fragment, null, [!props.hideDelimiters && vue.createElementVNode("div", {
15379
15445
  "class": "v-carousel__controls",
15380
- "style": {
15446
+ "style": vue.normalizeStyle({
15381
15447
  left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',
15382
15448
  right: props.verticalDelimiters === 'right' ? 0 : 'auto'
15383
- }
15449
+ })
15384
15450
  }, [group.items.value.length > 0 && vue.createVNode(VDefaultsProvider, {
15385
15451
  "defaults": {
15386
15452
  VBtn: {
@@ -15434,7 +15500,7 @@
15434
15500
  const VWindowItem = genericComponent()({
15435
15501
  name: 'VWindowItem',
15436
15502
  directives: {
15437
- Touch
15503
+ vTouch: Touch
15438
15504
  },
15439
15505
  props: makeVWindowItemProps(),
15440
15506
  emits: {
@@ -15518,9 +15584,9 @@
15518
15584
  "transition": transition.value,
15519
15585
  "disabled": !isBooted.value
15520
15586
  }, {
15521
- default: () => [vue.withDirectives(vue.createVNode("div", {
15522
- "class": ['v-window-item', groupItem.selectedClass.value, props.class],
15523
- "style": props.style
15587
+ default: () => [vue.withDirectives(vue.createElementVNode("div", {
15588
+ "class": vue.normalizeClass(['v-window-item', groupItem.selectedClass.value, props.class]),
15589
+ "style": vue.normalizeStyle(props.style)
15524
15590
  }, [hasContent.value && slots.default?.()]), [[vue.vShow, groupItem.isSelected.value]])]
15525
15591
  }));
15526
15592
  return {
@@ -15720,21 +15786,21 @@
15720
15786
  immediate: true
15721
15787
  });
15722
15788
  vue.onMounted(() => updateCanvas());
15723
- useRender(() => vue.createVNode("div", {
15789
+ useRender(() => vue.createElementVNode("div", {
15724
15790
  "ref": resizeRef,
15725
- "class": ['v-color-picker-canvas', props.class],
15726
- "style": props.style,
15791
+ "class": vue.normalizeClass(['v-color-picker-canvas', props.class]),
15792
+ "style": vue.normalizeStyle(props.style),
15727
15793
  "onMousedown": handleMouseDown,
15728
15794
  "onTouchstartPassive": handleMouseDown
15729
- }, [vue.createVNode("canvas", {
15795
+ }, [vue.createElementVNode("canvas", {
15730
15796
  "ref": canvasRef,
15731
15797
  "width": canvasWidth.value,
15732
15798
  "height": canvasHeight.value
15733
- }, null), props.color && vue.createVNode("div", {
15734
- "class": ['v-color-picker-canvas__dot', {
15799
+ }, null), props.color && vue.createElementVNode("div", {
15800
+ "class": vue.normalizeClass(['v-color-picker-canvas__dot', {
15735
15801
  'v-color-picker-canvas__dot--disabled': props.disabled
15736
- }],
15737
- "style": dotStyles.value
15802
+ }]),
15803
+ "style": vue.normalizeStyle(dotStyles.value)
15738
15804
  }, null)]));
15739
15805
  return {};
15740
15806
  }
@@ -15934,9 +16000,9 @@
15934
16000
  label,
15935
16001
  ...rest
15936
16002
  } = _ref;
15937
- return vue.createVNode("div", {
16003
+ return vue.createElementVNode("div", {
15938
16004
  "class": "v-color-picker-edit__input"
15939
- }, [vue.createVNode("input", rest, null), vue.createVNode("span", null, [label])]);
16005
+ }, [vue.createElementVNode("input", vue.normalizeProps(vue.guardReactiveProps(rest)), null), vue.createElementVNode("span", null, [label])]);
15940
16006
  };
15941
16007
  const makeVColorPickerEditProps = propsFactory({
15942
16008
  color: Object,
@@ -15993,9 +16059,9 @@
15993
16059
  };
15994
16060
  });
15995
16061
  });
15996
- useRender(() => vue.createVNode("div", {
15997
- "class": ['v-color-picker-edit', props.class],
15998
- "style": props.style
16062
+ useRender(() => vue.createElementVNode("div", {
16063
+ "class": vue.normalizeClass(['v-color-picker-edit', props.class]),
16064
+ "style": vue.normalizeStyle(props.style)
15999
16065
  }, [inputs.value?.map(props => vue.createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && vue.createVNode(VBtn, {
16000
16066
  "icon": "$unfold",
16001
16067
  "size": "x-small",
@@ -16159,7 +16225,7 @@
16159
16225
  const clickOffset = getPosition(e, position);
16160
16226
 
16161
16227
  // It is possible for left to be NaN, force to number
16162
- let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0;
16228
+ let clickPos = clamp((clickOffset - trackStart - startOffset.value) / trackLength) || 0;
16163
16229
  if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos;
16164
16230
  return roundValue(min.value + clickPos * (max.value - min.value));
16165
16231
  }
@@ -16338,7 +16404,7 @@
16338
16404
  const VSliderThumb = genericComponent()({
16339
16405
  name: 'VSliderThumb',
16340
16406
  directives: {
16341
- Ripple
16407
+ vRipple: Ripple
16342
16408
  },
16343
16409
  props: makeVSliderThumbProps(),
16344
16410
  emits: {
@@ -16418,15 +16484,15 @@
16418
16484
  }
16419
16485
  useRender(() => {
16420
16486
  const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%');
16421
- return vue.createVNode("div", {
16422
- "class": ['v-slider-thumb', {
16487
+ return vue.createElementVNode("div", {
16488
+ "class": vue.normalizeClass(['v-slider-thumb', {
16423
16489
  'v-slider-thumb--focused': props.focused,
16424
16490
  'v-slider-thumb--pressed': props.focused && mousePressed.value
16425
- }, props.class, rtlClasses.value],
16426
- "style": [{
16491
+ }, props.class, rtlClasses.value]),
16492
+ "style": vue.normalizeStyle([{
16427
16493
  '--v-slider-thumb-position': positionPercentage,
16428
16494
  '--v-slider-thumb-size': convertToUnit(thumbSize.value)
16429
- }, props.style],
16495
+ }, props.style]),
16430
16496
  "role": "slider",
16431
16497
  "tabindex": disabled.value ? -1 : 0,
16432
16498
  "aria-label": props.name,
@@ -16436,25 +16502,25 @@
16436
16502
  "aria-readonly": !!readonly.value,
16437
16503
  "aria-orientation": direction.value,
16438
16504
  "onKeydown": !readonly.value ? onKeydown : undefined
16439
- }, [vue.createVNode("div", {
16440
- "class": ['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value],
16441
- "style": {
16505
+ }, [vue.createElementVNode("div", {
16506
+ "class": vue.normalizeClass(['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value]),
16507
+ "style": vue.normalizeStyle({
16442
16508
  ...textColorStyles.value
16443
- }
16444
- }, null), vue.withDirectives(vue.createVNode("div", {
16445
- "class": ['v-slider-thumb__ripple', textColorClasses.value],
16446
- "style": textColorStyles.value
16447
- }, null), [[vue.resolveDirective("ripple"), props.ripple, null, {
16509
+ })
16510
+ }, null), vue.withDirectives(vue.createElementVNode("div", {
16511
+ "class": vue.normalizeClass(['v-slider-thumb__ripple', textColorClasses.value]),
16512
+ "style": vue.normalizeStyle(textColorStyles.value)
16513
+ }, null), [[Ripple, props.ripple, null, {
16448
16514
  circle: true,
16449
16515
  center: true
16450
16516
  }]]), vue.createVNode(VScaleTransition, {
16451
16517
  "origin": "bottom center"
16452
16518
  }, {
16453
- default: () => [vue.withDirectives(vue.createVNode("div", {
16519
+ default: () => [vue.withDirectives(vue.createElementVNode("div", {
16454
16520
  "class": "v-slider-thumb__label-container"
16455
- }, [vue.createVNode("div", {
16521
+ }, [vue.createElementVNode("div", {
16456
16522
  "class": ['v-slider-thumb__label']
16457
- }, [vue.createVNode("div", null, [slots['thumb-label']?.({
16523
+ }, [vue.createElementVNode("div", null, [slots['thumb-label']?.({
16458
16524
  modelValue: props.modelValue
16459
16525
  }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[vue.vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
16460
16526
  })]);
@@ -16531,17 +16597,17 @@
16531
16597
  const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value;
16532
16598
  return ticks.map((tick, index) => {
16533
16599
  const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined;
16534
- return vue.createVNode("div", {
16600
+ return vue.createElementVNode("div", {
16535
16601
  "key": tick.value,
16536
- "class": ['v-slider-track__tick', {
16602
+ "class": vue.normalizeClass(['v-slider-track__tick', {
16537
16603
  'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,
16538
16604
  'v-slider-track__tick--first': tick.value === min.value,
16539
16605
  'v-slider-track__tick--last': tick.value === max.value
16540
- }],
16541
- "style": {
16606
+ }]),
16607
+ "style": vue.normalizeStyle({
16542
16608
  [startDir.value]: directionValue
16543
- }
16544
- }, [(tick.label || slots['tick-label']) && vue.createVNode("div", {
16609
+ })
16610
+ }, [(tick.label || slots['tick-label']) && vue.createElementVNode("div", {
16545
16611
  "class": "v-slider-track__tick-label"
16546
16612
  }, [slots['tick-label']?.({
16547
16613
  tick,
@@ -16550,30 +16616,30 @@
16550
16616
  });
16551
16617
  });
16552
16618
  useRender(() => {
16553
- return vue.createVNode("div", {
16554
- "class": ['v-slider-track', roundedClasses.value, props.class],
16555
- "style": [{
16619
+ return vue.createElementVNode("div", {
16620
+ "class": vue.normalizeClass(['v-slider-track', roundedClasses.value, props.class]),
16621
+ "style": vue.normalizeStyle([{
16556
16622
  '--v-slider-track-size': convertToUnit(trackSize.value),
16557
16623
  '--v-slider-tick-size': convertToUnit(tickSize.value)
16558
- }, props.style]
16559
- }, [vue.createVNode("div", {
16560
- "class": ['v-slider-track__background', trackColorClasses.value, {
16624
+ }, props.style])
16625
+ }, [vue.createElementVNode("div", {
16626
+ "class": vue.normalizeClass(['v-slider-track__background', trackColorClasses.value, {
16561
16627
  'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
16562
- }],
16563
- "style": {
16628
+ }]),
16629
+ "style": vue.normalizeStyle({
16564
16630
  ...backgroundStyles.value,
16565
16631
  ...trackColorStyles.value
16566
- }
16567
- }, null), vue.createVNode("div", {
16568
- "class": ['v-slider-track__fill', trackFillColorClasses.value],
16569
- "style": {
16632
+ })
16633
+ }, null), vue.createElementVNode("div", {
16634
+ "class": vue.normalizeClass(['v-slider-track__fill', trackFillColorClasses.value]),
16635
+ "style": vue.normalizeStyle({
16570
16636
  ...trackFillStyles.value,
16571
16637
  ...trackFillColorStyles.value
16572
- }
16573
- }, null), showTicks.value && vue.createVNode("div", {
16574
- "class": ['v-slider-track__ticks', {
16638
+ })
16639
+ }, null), showTicks.value && vue.createElementVNode("div", {
16640
+ "class": vue.normalizeClass(['v-slider-track__ticks', {
16575
16641
  'v-slider-track__ticks--always-show': showTicks.value === 'always'
16576
- }]
16642
+ }])
16577
16643
  }, [computedTicks.value])]);
16578
16644
  });
16579
16645
  return {};
@@ -16667,7 +16733,7 @@
16667
16733
  "focused": isFocused.value
16668
16734
  }), {
16669
16735
  ...slots,
16670
- prepend: hasPrepend ? slotProps => vue.createVNode(vue.Fragment, null, [slots.label?.(slotProps) ?? (props.label ? vue.createVNode(VLabel, {
16736
+ prepend: hasPrepend ? slotProps => vue.createElementVNode(vue.Fragment, null, [slots.label?.(slotProps) ?? (props.label ? vue.createVNode(VLabel, {
16671
16737
  "id": slotProps.id.value,
16672
16738
  "class": "v-slider__label",
16673
16739
  "text": props.label
@@ -16677,11 +16743,11 @@
16677
16743
  id,
16678
16744
  messagesId
16679
16745
  } = _ref4;
16680
- return vue.createVNode("div", {
16746
+ return vue.createElementVNode("div", {
16681
16747
  "class": "v-slider__container",
16682
16748
  "onMousedown": !readonly.value ? onSliderMousedown : undefined,
16683
16749
  "onTouchstartPassive": !readonly.value ? onSliderTouchstart : undefined
16684
- }, [vue.createVNode("input", {
16750
+ }, [vue.createElementVNode("input", {
16685
16751
  "id": id.value,
16686
16752
  "name": props.name || id.value,
16687
16753
  "disabled": !!props.disabled,
@@ -16754,12 +16820,12 @@
16754
16820
  });
16755
16821
  } catch (e) {}
16756
16822
  }
16757
- useRender(() => vue.createVNode("div", {
16758
- "class": ['v-color-picker-preview', {
16823
+ useRender(() => vue.createElementVNode("div", {
16824
+ "class": vue.normalizeClass(['v-color-picker-preview', {
16759
16825
  'v-color-picker-preview--hide-alpha': props.hideAlpha
16760
- }, props.class],
16761
- "style": props.style
16762
- }, [SUPPORTS_EYE_DROPPER && vue.createVNode("div", {
16826
+ }, props.class]),
16827
+ "style": vue.normalizeStyle(props.style)
16828
+ }, [SUPPORTS_EYE_DROPPER && vue.createElementVNode("div", {
16763
16829
  "class": "v-color-picker-preview__eye-dropper",
16764
16830
  "key": "eyeDropper"
16765
16831
  }, [vue.createVNode(VBtn, {
@@ -16768,13 +16834,13 @@
16768
16834
  "icon": "$eyeDropper",
16769
16835
  "variant": "plain",
16770
16836
  "onClick": openEyeDropper
16771
- }, null)]), vue.createVNode("div", {
16837
+ }, null)]), vue.createElementVNode("div", {
16772
16838
  "class": "v-color-picker-preview__dot"
16773
- }, [vue.createVNode("div", {
16774
- "style": {
16839
+ }, [vue.createElementVNode("div", {
16840
+ "style": vue.normalizeStyle({
16775
16841
  background: HSVtoCSS(props.color ?? nullColor)
16776
- }
16777
- }, null)]), vue.createVNode("div", {
16842
+ })
16843
+ }, null)]), vue.createElementVNode("div", {
16778
16844
  "class": "v-color-picker-preview__sliders"
16779
16845
  }, [vue.createVNode(VSlider, {
16780
16846
  "class": "v-color-picker-preview__track v-color-picker-preview__hue",
@@ -17159,24 +17225,24 @@
17159
17225
  let {
17160
17226
  emit
17161
17227
  } = _ref;
17162
- useRender(() => vue.createVNode("div", {
17163
- "class": ['v-color-picker-swatches', props.class],
17164
- "style": [{
17228
+ useRender(() => vue.createElementVNode("div", {
17229
+ "class": vue.normalizeClass(['v-color-picker-swatches', props.class]),
17230
+ "style": vue.normalizeStyle([{
17165
17231
  maxHeight: convertToUnit(props.maxHeight)
17166
- }, props.style]
17167
- }, [vue.createVNode("div", null, [props.swatches.map(swatch => vue.createVNode("div", {
17232
+ }, props.style])
17233
+ }, [vue.createElementVNode("div", null, [props.swatches.map(swatch => vue.createElementVNode("div", {
17168
17234
  "class": "v-color-picker-swatches__swatch"
17169
17235
  }, [swatch.map(color => {
17170
17236
  const rgba = parseColor(color);
17171
17237
  const hsva = RGBtoHSV(rgba);
17172
17238
  const background = RGBtoCSS(rgba);
17173
- return vue.createVNode("div", {
17239
+ return vue.createElementVNode("div", {
17174
17240
  "class": "v-color-picker-swatches__color",
17175
17241
  "onClick": () => hsva && emit('update:color', hsva)
17176
- }, [vue.createVNode("div", {
17177
- "style": {
17242
+ }, [vue.createElementVNode("div", {
17243
+ "style": vue.normalizeStyle({
17178
17244
  background
17179
- }
17245
+ })
17180
17246
  }, [props.color && deepEqual(props.color, hsva) ? vue.createVNode(VIcon, {
17181
17247
  "size": "x-small",
17182
17248
  "icon": "$success",
@@ -17235,8 +17301,8 @@
17235
17301
  roundedClasses
17236
17302
  } = useRounded(props);
17237
17303
  useRender(() => vue.createVNode(props.tag, {
17238
- "class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
17239
- "style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]
17304
+ "class": vue.normalizeClass(['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class]),
17305
+ "style": vue.normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style])
17240
17306
  }, slots));
17241
17307
  return {};
17242
17308
  }
@@ -17275,17 +17341,17 @@
17275
17341
  }, props.class],
17276
17342
  "style": props.style
17277
17343
  }), {
17278
- default: () => [!props.hideHeader && vue.createVNode("div", {
17344
+ default: () => [!props.hideHeader && vue.createElementVNode("div", {
17279
17345
  "key": "header",
17280
- "class": [backgroundColorClasses.value],
17281
- "style": [backgroundColorStyles.value]
17346
+ "class": vue.normalizeClass([backgroundColorClasses.value]),
17347
+ "style": vue.normalizeStyle([backgroundColorStyles.value])
17282
17348
  }, [hasTitle && vue.createVNode(VPickerTitle, {
17283
17349
  "key": "picker-title"
17284
17350
  }, {
17285
17351
  default: () => [slots.title?.() ?? props.title]
17286
- }), slots.header && vue.createVNode("div", {
17352
+ }), slots.header && vue.createElementVNode("div", {
17287
17353
  "class": "v-picker__header"
17288
- }, [slots.header()])]), vue.createVNode("div", {
17354
+ }, [slots.header()])]), vue.createElementVNode("div", {
17289
17355
  "class": "v-picker__body"
17290
17356
  }, [slots.default?.()]), slots.actions && vue.createVNode(VDefaultsProvider, {
17291
17357
  "defaults": {
@@ -17295,7 +17361,7 @@
17295
17361
  }
17296
17362
  }
17297
17363
  }, {
17298
- default: () => [vue.createVNode("div", {
17364
+ default: () => [vue.createElementVNode("div", {
17299
17365
  "class": "v-picker__actions"
17300
17366
  }, [slots.actions()])]
17301
17367
  })]
@@ -18157,7 +18223,7 @@
18157
18223
  }, props.style]
18158
18224
  }), {
18159
18225
  ...slots,
18160
- default: () => vue.createVNode(vue.Fragment, null, [!props.hideCanvas && vue.createVNode(VColorPickerCanvas, {
18226
+ default: () => vue.createElementVNode(vue.Fragment, null, [!props.hideCanvas && vue.createVNode(VColorPickerCanvas, {
18161
18227
  "key": "canvas",
18162
18228
  "color": currentColor.value,
18163
18229
  "onUpdate:color": updateColor,
@@ -18165,7 +18231,7 @@
18165
18231
  "dotSize": props.dotSize,
18166
18232
  "width": props.width,
18167
18233
  "height": props.canvasHeight
18168
- }, null), (!props.hideSliders || !props.hideInputs) && vue.createVNode("div", {
18234
+ }, null), (!props.hideSliders || !props.hideInputs) && vue.createElementVNode("div", {
18169
18235
  "key": "controls",
18170
18236
  "class": "v-color-picker__controls"
18171
18237
  }, [!props.hideSliders && vue.createVNode(VColorPickerPreview, {
@@ -18540,7 +18606,7 @@
18540
18606
  "onKeydown": onKeydown
18541
18607
  }), {
18542
18608
  ...slots,
18543
- default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
18609
+ default: () => vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
18544
18610
  "ref": vMenuRef,
18545
18611
  "modelValue": menu.value,
18546
18612
  "onUpdate:modelValue": $event => menu.value = $event,
@@ -18599,7 +18665,7 @@
18599
18665
  let {
18600
18666
  isSelected
18601
18667
  } = _ref5;
18602
- return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
18668
+ return vue.createElementVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
18603
18669
  "key": item.value,
18604
18670
  "modelValue": isSelected,
18605
18671
  "ripple": false,
@@ -18648,10 +18714,10 @@
18648
18714
  index
18649
18715
  })) : undefined;
18650
18716
  if (hasSlot && !slotContent) return undefined;
18651
- return vue.createVNode("div", {
18717
+ return vue.createElementVNode("div", {
18652
18718
  "key": item.value,
18653
- "class": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],
18654
- "style": index === selectionIndex.value ? textColorStyles.value : {}
18719
+ "class": vue.normalizeClass(['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]]),
18720
+ "style": vue.normalizeStyle(index === selectionIndex.value ? textColorStyles.value : {})
18655
18721
  }, [hasChips.value ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
18656
18722
  "key": "chip",
18657
18723
  "closable": props.closableChips,
@@ -18669,9 +18735,9 @@
18669
18735
  }
18670
18736
  }, {
18671
18737
  default: () => [slotContent]
18672
- }) : slotContent ?? vue.createVNode("span", {
18738
+ }) : slotContent ?? vue.createElementVNode("span", {
18673
18739
  "class": "v-combobox__selection-text"
18674
- }, [item.title, props.multiple && index < model.value.length - 1 && vue.createVNode("span", {
18740
+ }, [item.title, props.multiple && index < model.value.length - 1 && vue.createElementVNode("span", {
18675
18741
  "class": "v-combobox__selection-comma"
18676
18742
  }, [vue.createTextVNode(",")])])]);
18677
18743
  })]),
@@ -18679,7 +18745,7 @@
18679
18745
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
18680
18746
  args[_key] = arguments[_key];
18681
18747
  }
18682
- return vue.createVNode(vue.Fragment, null, [slots['append-inner']?.(...args), (!props.hideNoData || props.items.length) && props.menuIcon ? vue.createVNode(VIcon, {
18748
+ return vue.createElementVNode(vue.Fragment, null, [slots['append-inner']?.(...args), (!props.hideNoData || props.items.length) && props.menuIcon ? vue.createVNode(VIcon, {
18683
18749
  "class": "v-combobox__menu-icon",
18684
18750
  "color": vTextFieldRef.value?.fieldIconColor,
18685
18751
  "icon": props.menuIcon,
@@ -18767,7 +18833,7 @@
18767
18833
  emit('cancel');
18768
18834
  }
18769
18835
  function actions(actionsProps) {
18770
- return vue.createVNode(vue.Fragment, null, [vue.createVNode(VBtn, vue.mergeProps({
18836
+ return vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VBtn, vue.mergeProps({
18771
18837
  "disabled": isCancelDisabled.value,
18772
18838
  "variant": "text",
18773
18839
  "color": props.color,
@@ -18783,7 +18849,7 @@
18783
18849
  }
18784
18850
  let actionsUsed = false;
18785
18851
  useRender(() => {
18786
- return vue.createVNode(vue.Fragment, null, [slots.default?.({
18852
+ return vue.createElementVNode(vue.Fragment, null, [slots.default?.({
18787
18853
  model: internalModel,
18788
18854
  save,
18789
18855
  cancel,
@@ -19666,10 +19732,10 @@
19666
19732
  groupedItems: paginatedItems.value
19667
19733
  }));
19668
19734
  useRender(() => vue.createVNode(props.tag, {
19669
- "class": ['v-data-iterator', {
19735
+ "class": vue.normalizeClass(['v-data-iterator', {
19670
19736
  'v-data-iterator--loading': props.loading
19671
- }, props.class],
19672
- "style": props.style
19737
+ }, props.class]),
19738
+ "style": vue.normalizeStyle(props.style)
19673
19739
  }, {
19674
19740
  default: () => [slots.header?.(slotProps.value), vue.createVNode(MaybeTransition, {
19675
19741
  "transition": props.transition
@@ -19680,7 +19746,7 @@
19680
19746
  "active": true
19681
19747
  }, {
19682
19748
  default: slotProps => slots.loader?.(slotProps)
19683
- }) : vue.createVNode("div", {
19749
+ }) : vue.createElementVNode("div", {
19684
19750
  "key": "items"
19685
19751
  }, [!paginatedItems.value.length ? slots['no-data']?.() : slots.default?.(slotProps.value)])]
19686
19752
  }), slots.footer?.(slotProps.value)]
@@ -19974,44 +20040,44 @@
19974
20040
  }
19975
20041
  useRender(() => vue.createVNode(props.tag, {
19976
20042
  "ref": resizeRef,
19977
- "class": ['v-pagination', themeClasses.value, props.class],
19978
- "style": props.style,
20043
+ "class": vue.normalizeClass(['v-pagination', themeClasses.value, props.class]),
20044
+ "style": vue.normalizeStyle(props.style),
19979
20045
  "role": "navigation",
19980
20046
  "aria-label": t(props.ariaLabel),
19981
20047
  "onKeydown": onKeydown,
19982
20048
  "data-test": "v-pagination-root"
19983
20049
  }, {
19984
- default: () => [vue.createVNode("ul", {
20050
+ default: () => [vue.createElementVNode("ul", {
19985
20051
  "class": "v-pagination__list"
19986
- }, [props.showFirstLastPage && vue.createVNode("li", {
20052
+ }, [props.showFirstLastPage && vue.createElementVNode("li", {
19987
20053
  "key": "first",
19988
20054
  "class": "v-pagination__first",
19989
20055
  "data-test": "v-pagination-first"
19990
20056
  }, [slots.first ? slots.first(controls.value.first) : vue.createVNode(VBtn, vue.mergeProps({
19991
20057
  "_as": "VPaginationBtn"
19992
- }, controls.value.first), null)]), vue.createVNode("li", {
20058
+ }, controls.value.first), null)]), vue.createElementVNode("li", {
19993
20059
  "key": "prev",
19994
20060
  "class": "v-pagination__prev",
19995
20061
  "data-test": "v-pagination-prev"
19996
20062
  }, [slots.prev ? slots.prev(controls.value.prev) : vue.createVNode(VBtn, vue.mergeProps({
19997
20063
  "_as": "VPaginationBtn"
19998
- }, controls.value.prev), null)]), items.value.map((item, index) => vue.createVNode("li", {
20064
+ }, controls.value.prev), null)]), items.value.map((item, index) => vue.createElementVNode("li", {
19999
20065
  "key": item.key,
20000
- "class": ['v-pagination__item', {
20066
+ "class": vue.normalizeClass(['v-pagination__item', {
20001
20067
  'v-pagination__item--is-active': item.isActive
20002
- }],
20068
+ }]),
20003
20069
  "data-test": "v-pagination-item"
20004
20070
  }, [slots.item ? slots.item(item) : vue.createVNode(VBtn, vue.mergeProps({
20005
20071
  "_as": "VPaginationBtn"
20006
20072
  }, item.props), {
20007
20073
  default: () => [item.page]
20008
- })])), vue.createVNode("li", {
20074
+ })])), vue.createElementVNode("li", {
20009
20075
  "key": "next",
20010
20076
  "class": "v-pagination__next",
20011
20077
  "data-test": "v-pagination-next"
20012
20078
  }, [slots.next ? slots.next(controls.value.next) : vue.createVNode(VBtn, vue.mergeProps({
20013
20079
  "_as": "VPaginationBtn"
20014
- }, controls.value.next), null)]), props.showFirstLastPage && vue.createVNode("li", {
20080
+ }, controls.value.next), null)]), props.showFirstLastPage && vue.createElementVNode("li", {
20015
20081
  "key": "last",
20016
20082
  "class": "v-pagination__last",
20017
20083
  "data-test": "v-pagination-last"
@@ -20120,20 +20186,20 @@
20120
20186
  }));
20121
20187
  useRender(() => {
20122
20188
  const paginationProps = VPagination.filterProps(props);
20123
- return vue.createVNode("div", {
20189
+ return vue.createElementVNode("div", {
20124
20190
  "class": "v-data-table-footer"
20125
- }, [slots.prepend?.(), vue.createVNode("div", {
20191
+ }, [slots.prepend?.(), vue.createElementVNode("div", {
20126
20192
  "class": "v-data-table-footer__items-per-page"
20127
- }, [vue.createVNode("span", null, [t(props.itemsPerPageText)]), vue.createVNode(VSelect, {
20193
+ }, [vue.createElementVNode("span", null, [t(props.itemsPerPageText)]), vue.createVNode(VSelect, {
20128
20194
  "items": itemsPerPageOptions.value,
20129
20195
  "modelValue": itemsPerPage.value,
20130
20196
  "onUpdate:modelValue": v => setItemsPerPage(Number(v)),
20131
20197
  "density": "compact",
20132
20198
  "variant": "outlined",
20133
20199
  "hide-details": true
20134
- }, null)]), vue.createVNode("div", {
20200
+ }, null)]), vue.createElementVNode("div", {
20135
20201
  "class": "v-data-table-footer__info"
20136
- }, [vue.createVNode("div", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), vue.createVNode("div", {
20202
+ }, [vue.createElementVNode("div", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), vue.createElementVNode("div", {
20137
20203
  "class": "v-data-table-footer__pagination"
20138
20204
  }, [vue.createVNode(VPagination, vue.mergeProps({
20139
20205
  "modelValue": page.value,
@@ -20176,18 +20242,18 @@
20176
20242
  } = _ref;
20177
20243
  const Tag = props.tag ?? 'td';
20178
20244
  return vue.createVNode(Tag, {
20179
- "class": ['v-data-table__td', {
20245
+ "class": vue.normalizeClass(['v-data-table__td', {
20180
20246
  'v-data-table-column--fixed': props.fixed,
20181
20247
  'v-data-table-column--last-fixed': props.lastFixed,
20182
20248
  'v-data-table-column--no-padding': props.noPadding,
20183
20249
  'v-data-table-column--nowrap': props.nowrap
20184
- }, `v-data-table-column--align-${props.align}`],
20185
- "style": {
20250
+ }, `v-data-table-column--align-${props.align}`]),
20251
+ "style": vue.normalizeStyle({
20186
20252
  height: convertToUnit(props.height),
20187
20253
  width: convertToUnit(props.width),
20188
20254
  maxWidth: convertToUnit(props.maxWidth),
20189
20255
  left: convertToUnit(props.fixedOffset || null)
20190
- }
20256
+ })
20191
20257
  }, {
20192
20258
  default: () => [slots.default?.()]
20193
20259
  });
@@ -20597,16 +20663,16 @@
20597
20663
  "onUpdate:modelValue": selectAll
20598
20664
  }, null));
20599
20665
  }
20600
- return vue.createVNode("div", {
20666
+ return vue.createElementVNode("div", {
20601
20667
  "class": "v-data-table-header__content"
20602
- }, [vue.createVNode("span", null, [column.title]), column.sortable && !props.disableSort && vue.createVNode(VIcon, {
20668
+ }, [vue.createElementVNode("span", null, [column.title]), column.sortable && !props.disableSort && vue.createVNode(VIcon, {
20603
20669
  "key": "icon",
20604
20670
  "class": "v-data-table-header__sort-icon",
20605
20671
  "icon": getSortIcon(column)
20606
- }, null), props.multiSort && isSorted(column) && vue.createVNode("div", {
20672
+ }, null), props.multiSort && isSorted(column) && vue.createElementVNode("div", {
20607
20673
  "key": "badge",
20608
- "class": ['v-data-table-header__sort-badge', ...backgroundColorClasses.value],
20609
- "style": backgroundColorStyles.value
20674
+ "class": vue.normalizeClass(['v-data-table-header__sort-badge', ...backgroundColorClasses.value]),
20675
+ "style": vue.normalizeStyle(backgroundColorStyles.value)
20610
20676
  }, [sortBy.value.findIndex(x => x.key === column.key) + 1])]);
20611
20677
  }
20612
20678
  });
@@ -20625,7 +20691,7 @@
20625
20691
  "class": [...headerCellClasses.value],
20626
20692
  "colspan": headers.value.length + 1
20627
20693
  }, props.headerProps), {
20628
- default: () => [vue.createVNode("div", {
20694
+ default: () => [vue.createElementVNode("div", {
20629
20695
  "class": "v-data-table-header__content"
20630
20696
  }, [vue.createVNode(VSelect, {
20631
20697
  "chips": true,
@@ -20649,7 +20715,7 @@
20649
20715
  }
20650
20716
  }, {
20651
20717
  default: () => [props.item.title, vue.createVNode(VIcon, {
20652
- "class": ['v-data-table__td-sort-icon', isSorted(props.item.raw) && 'v-data-table__td-sort-icon-active'],
20718
+ "class": vue.normalizeClass(['v-data-table__td-sort-icon', isSorted(props.item.raw) && 'v-data-table__td-sort-icon-active']),
20653
20719
  "icon": getSortIcon(props.item.raw),
20654
20720
  "size": "small"
20655
20721
  }, null)]
@@ -20658,13 +20724,13 @@
20658
20724
  });
20659
20725
  };
20660
20726
  useRender(() => {
20661
- return mobile.value ? vue.createVNode("tr", null, [vue.createVNode(VDataTableMobileHeaderCell, null, null)]) : vue.createVNode(vue.Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => vue.createVNode("tr", null, [row.map((column, x) => vue.createVNode(VDataTableHeaderCell, {
20727
+ return mobile.value ? vue.createElementVNode("tr", null, [vue.createVNode(VDataTableMobileHeaderCell, null, null)]) : vue.createElementVNode(vue.Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => vue.createElementVNode("tr", null, [row.map((column, x) => vue.createVNode(VDataTableHeaderCell, {
20662
20728
  "column": column,
20663
20729
  "x": x,
20664
20730
  "y": y
20665
- }, null))])), props.loading && vue.createVNode("tr", {
20731
+ }, null))])), props.loading && vue.createElementVNode("tr", {
20666
20732
  "class": "v-data-table-progress"
20667
- }, [vue.createVNode("th", {
20733
+ }, [vue.createElementVNode("th", {
20668
20734
  "colspan": columns.value.length
20669
20735
  }, [vue.createVNode(LoaderSlot, {
20670
20736
  "name": "v-data-table-progress",
@@ -20710,11 +20776,11 @@
20710
20776
  const rows = vue.computed(() => {
20711
20777
  return extractRows([props.item]);
20712
20778
  });
20713
- return () => vue.createVNode("tr", {
20779
+ return () => vue.createElementVNode("tr", {
20714
20780
  "class": "v-data-table-group-header-row",
20715
- "style": {
20781
+ "style": vue.normalizeStyle({
20716
20782
  '--v-data-table-group-header-row-depth': props.item.depth
20717
- }
20783
+ })
20718
20784
  }, [columns.value.map(column => {
20719
20785
  if (column.key === 'data-table-group') {
20720
20786
  const icon = isGroupOpen(props.item) ? '$expand' : '$next';
@@ -20734,7 +20800,7 @@
20734
20800
  "variant": "text",
20735
20801
  "icon": icon,
20736
20802
  "onClick": onClick
20737
- }, null), vue.createVNode("span", null, [props.item.value]), vue.createVNode("span", null, [vue.createTextVNode("("), rows.value.length, vue.createTextVNode(")")])]
20803
+ }, null), vue.createElementVNode("span", null, [props.item.value]), vue.createElementVNode("span", null, [vue.createTextVNode("("), rows.value.length, vue.createTextVNode(")")])]
20738
20804
  });
20739
20805
  }
20740
20806
  if (column.key === 'data-table-select') {
@@ -20747,13 +20813,13 @@
20747
20813
  indeterminate,
20748
20814
  'onUpdate:modelValue': selectGroup
20749
20815
  }
20750
- }) ?? vue.createVNode("td", null, [vue.createVNode(VCheckboxBtn, {
20816
+ }) ?? vue.createElementVNode("td", null, [vue.createVNode(VCheckboxBtn, {
20751
20817
  "modelValue": modelValue,
20752
20818
  "indeterminate": indeterminate,
20753
20819
  "onUpdate:modelValue": selectGroup
20754
20820
  }, null)]);
20755
20821
  }
20756
- return vue.createVNode("td", null, null);
20822
+ return vue.createElementVNode("td", null, null);
20757
20823
  })]);
20758
20824
  }
20759
20825
  });
@@ -20799,10 +20865,10 @@
20799
20865
  const {
20800
20866
  columns
20801
20867
  } = useHeaders();
20802
- useRender(() => vue.createVNode("tr", {
20803
- "class": ['v-data-table__tr', {
20868
+ useRender(() => vue.createElementVNode("tr", {
20869
+ "class": vue.normalizeClass(['v-data-table__tr', {
20804
20870
  'v-data-table__tr--clickable': !!(props.onClick || props.onContextmenu || props.onDblclick)
20805
- }, displayClasses.value],
20871
+ }, displayClasses.value]),
20806
20872
  "onClick": props.onClick,
20807
20873
  "onContextmenu": props.onContextmenu,
20808
20874
  "onDblclick": props.onDblclick
@@ -20891,9 +20957,9 @@
20891
20957
  }
20892
20958
  if (slots[slotName] && !mobile.value) return slots[slotName](slotProps);
20893
20959
  const displayValue = vue.toDisplayString(slotProps.value);
20894
- return !mobile.value ? displayValue : vue.createVNode(vue.Fragment, null, [vue.createVNode("div", {
20960
+ return !mobile.value ? displayValue : vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("div", {
20895
20961
  "class": "v-data-table__td-title"
20896
- }, [slots[headerSlotName]?.(columnSlotProps) ?? column.title]), vue.createVNode("div", {
20962
+ }, [slots[headerSlotName]?.(columnSlotProps) ?? column.title]), vue.createElementVNode("div", {
20897
20963
  "class": "v-data-table__td-value"
20898
20964
  }, [slots[slotName]?.(slotProps) ?? displayValue])]);
20899
20965
  }
@@ -20956,22 +21022,22 @@
20956
21022
  } = useDisplay(props);
20957
21023
  useRender(() => {
20958
21024
  if (props.loading && (!props.items.length || slots.loading)) {
20959
- return vue.createVNode("tr", {
21025
+ return vue.createElementVNode("tr", {
20960
21026
  "class": "v-data-table-rows-loading",
20961
21027
  "key": "loading"
20962
- }, [vue.createVNode("td", {
21028
+ }, [vue.createElementVNode("td", {
20963
21029
  "colspan": columns.value.length
20964
21030
  }, [slots.loading?.() ?? t(props.loadingText)])]);
20965
21031
  }
20966
21032
  if (!props.loading && !props.items.length && !props.hideNoData) {
20967
- return vue.createVNode("tr", {
21033
+ return vue.createElementVNode("tr", {
20968
21034
  "class": "v-data-table-rows-no-data",
20969
21035
  "key": "no-data"
20970
- }, [vue.createVNode("td", {
21036
+ }, [vue.createElementVNode("td", {
20971
21037
  "colspan": columns.value.length
20972
21038
  }, [slots['no-data']?.() ?? t(props.noDataText)])]);
20973
21039
  }
20974
- return vue.createVNode(vue.Fragment, null, [props.items.map((item, index) => {
21040
+ return vue.createElementVNode(vue.Fragment, null, [props.items.map((item, index) => {
20975
21041
  if (item.type === 'group') {
20976
21042
  const slotProps = {
20977
21043
  index,
@@ -21016,7 +21082,7 @@
21016
21082
  internalItem: slotProps.internalItem
21017
21083
  }) : props.rowProps)
21018
21084
  };
21019
- return vue.createVNode(vue.Fragment, {
21085
+ return vue.createElementVNode(vue.Fragment, {
21020
21086
  "key": itemSlotProps.props.key
21021
21087
  }, [slots.item ? slots.item(itemSlotProps) : vue.createVNode(VDataTableRow, itemSlotProps.props, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
21022
21088
  })]);
@@ -21050,22 +21116,22 @@
21050
21116
  densityClasses
21051
21117
  } = useDensity(props);
21052
21118
  useRender(() => vue.createVNode(props.tag, {
21053
- "class": ['v-table', {
21119
+ "class": vue.normalizeClass(['v-table', {
21054
21120
  'v-table--fixed-height': !!props.height,
21055
21121
  'v-table--fixed-header': props.fixedHeader,
21056
21122
  'v-table--fixed-footer': props.fixedFooter,
21057
21123
  'v-table--has-top': !!slots.top,
21058
21124
  'v-table--has-bottom': !!slots.bottom,
21059
21125
  'v-table--hover': props.hover
21060
- }, themeClasses.value, densityClasses.value, props.class],
21061
- "style": props.style
21126
+ }, themeClasses.value, densityClasses.value, props.class]),
21127
+ "style": vue.normalizeStyle(props.style)
21062
21128
  }, {
21063
- default: () => [slots.top?.(), slots.default ? vue.createVNode("div", {
21129
+ default: () => [slots.top?.(), slots.default ? vue.createElementVNode("div", {
21064
21130
  "class": "v-table__wrapper",
21065
- "style": {
21131
+ "style": vue.normalizeStyle({
21066
21132
  height: convertToUnit(props.height)
21067
- }
21068
- }, [vue.createVNode("table", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]
21133
+ })
21134
+ }, [vue.createElementVNode("table", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]
21069
21135
  }));
21070
21136
  return {};
21071
21137
  }
@@ -21318,12 +21384,12 @@
21318
21384
  "fixedHeader": props.fixedHeader || props.sticky
21319
21385
  }), {
21320
21386
  top: () => slots.top?.(slotProps.value),
21321
- default: () => slots.default ? slots.default(slotProps.value) : vue.createVNode(vue.Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createVNode("thead", {
21387
+ default: () => slots.default ? slots.default(slotProps.value) : vue.createElementVNode(vue.Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createElementVNode("thead", {
21322
21388
  "key": "thead"
21323
- }, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
21389
+ }, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
21324
21390
  "items": paginatedItems.value
21325
21391
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
21326
- bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && vue.createVNode(vue.Fragment, null, [vue.createVNode(VDivider, null, null), vue.createVNode(VDataTableFooter, dataTableFooterProps, {
21392
+ bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VDivider, null, null), vue.createVNode(VDataTableFooter, dataTableFooterProps, {
21327
21393
  prepend: slots['footer.prepend']
21328
21394
  })])
21329
21395
  });
@@ -21494,25 +21560,25 @@
21494
21560
  "fixedHeader": props.fixedHeader || props.sticky
21495
21561
  }), {
21496
21562
  top: () => slots.top?.(slotProps.value),
21497
- wrapper: () => vue.createVNode("div", {
21563
+ wrapper: () => vue.createElementVNode("div", {
21498
21564
  "ref": containerRef,
21499
21565
  "onScrollPassive": handleScroll,
21500
21566
  "onScrollend": handleScrollend,
21501
21567
  "class": "v-table__wrapper",
21502
- "style": {
21568
+ "style": vue.normalizeStyle({
21503
21569
  height: convertToUnit(props.height)
21504
- }
21505
- }, [vue.createVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createVNode("thead", {
21570
+ })
21571
+ }, [vue.createElementVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createElementVNode("thead", {
21506
21572
  "key": "thead"
21507
- }, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createVNode("tbody", {
21573
+ }, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", {
21508
21574
  "key": "tbody"
21509
- }, [vue.createVNode("tr", {
21575
+ }, [vue.createElementVNode("tr", {
21510
21576
  "ref": markerRef,
21511
- "style": {
21577
+ "style": vue.normalizeStyle({
21512
21578
  height: convertToUnit(paddingTop.value),
21513
21579
  border: 0
21514
- }
21515
- }, [vue.createVNode("td", {
21580
+ })
21581
+ }, [vue.createElementVNode("td", {
21516
21582
  "colspan": columns.value.length,
21517
21583
  "style": {
21518
21584
  height: 0,
@@ -21541,12 +21607,12 @@
21541
21607
  }), slots);
21542
21608
  }
21543
21609
  })
21544
- }), slots['body.append']?.(slotProps.value), vue.createVNode("tr", {
21545
- "style": {
21610
+ }), slots['body.append']?.(slotProps.value), vue.createElementVNode("tr", {
21611
+ "style": vue.normalizeStyle({
21546
21612
  height: convertToUnit(paddingBottom.value),
21547
21613
  border: 0
21548
- }
21549
- }, [vue.createVNode("td", {
21614
+ })
21615
+ }, [vue.createElementVNode("td", {
21550
21616
  "colspan": columns.value.length,
21551
21617
  "style": {
21552
21618
  height: 0,
@@ -21719,17 +21785,17 @@
21719
21785
  "fixedHeader": props.fixedHeader || props.sticky
21720
21786
  }), {
21721
21787
  top: () => slots.top?.(slotProps.value),
21722
- default: () => slots.default ? slots.default(slotProps.value) : vue.createVNode(vue.Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createVNode("thead", {
21788
+ default: () => slots.default ? slots.default(slotProps.value) : vue.createElementVNode(vue.Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createElementVNode("thead", {
21723
21789
  "key": "thead",
21724
21790
  "class": "v-data-table__thead",
21725
21791
  "role": "rowgroup"
21726
- }, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createVNode("tbody", {
21792
+ }, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", {
21727
21793
  "class": "v-data-table__tbody",
21728
21794
  "role": "rowgroup"
21729
21795
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
21730
21796
  "items": flatItems.value
21731
21797
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
21732
- bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && vue.createVNode(vue.Fragment, null, [vue.createVNode(VDivider, null, null), vue.createVNode(VDataTableFooter, dataTableFooterProps, {
21798
+ bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VDivider, null, null), vue.createVNode(VDataTableFooter, dataTableFooterProps, {
21733
21799
  prepend: slots['footer.prepend']
21734
21800
  })])
21735
21801
  });
@@ -21760,10 +21826,10 @@
21760
21826
  dimensionStyles
21761
21827
  } = useDimension(props);
21762
21828
  useRender(() => vue.createVNode(props.tag, {
21763
- "class": ['v-container', {
21829
+ "class": vue.normalizeClass(['v-container', {
21764
21830
  'v-container--fluid': props.fluid
21765
- }, rtlClasses.value, props.class],
21766
- "style": [dimensionStyles.value, props.style]
21831
+ }, rtlClasses.value, props.class]),
21832
+ "style": vue.normalizeStyle([dimensionStyles.value, props.style])
21767
21833
  }, slots));
21768
21834
  return {};
21769
21835
  }
@@ -22082,11 +22148,11 @@
22082
22148
  }
22083
22149
  useRender(() => {
22084
22150
  // TODO: add slot support and scope defaults
22085
- return vue.createVNode("div", {
22151
+ return vue.createElementVNode("div", {
22086
22152
  "class": ['v-date-picker-controls'],
22087
- "style": {
22153
+ "style": vue.normalizeStyle({
22088
22154
  '--v-date-picker-controls-height': convertToUnit(props.controlHeight)
22089
- }
22155
+ })
22090
22156
  }, [vue.createVNode(VBtn, {
22091
22157
  "class": "v-date-picker-controls__month-btn",
22092
22158
  "data-testid": "month-btn",
@@ -22103,7 +22169,7 @@
22103
22169
  "icon": props.modeIcon,
22104
22170
  "variant": "text",
22105
22171
  "onClick": onClickYear
22106
- }, null), vue.createVNode(VSpacer, null, null), vue.createVNode("div", {
22172
+ }, null), vue.createVNode(VSpacer, null, null), vue.createElementVNode("div", {
22107
22173
  "class": "v-date-picker-controls__month"
22108
22174
  }, [vue.createVNode(VBtn, {
22109
22175
  "data-testid": "prev-month",
@@ -22159,24 +22225,24 @@
22159
22225
  useRender(() => {
22160
22226
  const hasContent = !!(slots.default || props.header);
22161
22227
  const hasAppend = !!(slots.append || props.appendIcon);
22162
- return vue.createVNode("div", {
22163
- "class": ['v-date-picker-header', {
22228
+ return vue.createElementVNode("div", {
22229
+ "class": vue.normalizeClass(['v-date-picker-header', {
22164
22230
  'v-date-picker-header--clickable': !!props.onClick
22165
- }, backgroundColorClasses.value],
22166
- "style": backgroundColorStyles.value,
22231
+ }, backgroundColorClasses.value]),
22232
+ "style": vue.normalizeStyle(backgroundColorStyles.value),
22167
22233
  "onClick": onClick
22168
- }, [slots.prepend && vue.createVNode("div", {
22234
+ }, [slots.prepend && vue.createElementVNode("div", {
22169
22235
  "key": "prepend",
22170
22236
  "class": "v-date-picker-header__prepend"
22171
22237
  }, [slots.prepend()]), hasContent && vue.createVNode(MaybeTransition, {
22172
22238
  "key": "content",
22173
22239
  "name": props.transition
22174
22240
  }, {
22175
- default: () => [vue.createVNode("div", {
22241
+ default: () => [vue.createElementVNode("div", {
22176
22242
  "key": props.header,
22177
22243
  "class": "v-date-picker-header__content"
22178
22244
  }, [slots.default?.() ?? props.header])]
22179
- }), hasAppend && vue.createVNode("div", {
22245
+ }), hasAppend && vue.createElementVNode("div", {
22180
22246
  "class": "v-date-picker-header__append"
22181
22247
  }, [!slots.append ? vue.createVNode(VBtn, {
22182
22248
  "key": "append-btn",
@@ -22462,24 +22528,24 @@
22462
22528
  model.value = [value];
22463
22529
  }
22464
22530
  }
22465
- useRender(() => vue.createVNode("div", {
22531
+ useRender(() => vue.createElementVNode("div", {
22466
22532
  "class": "v-date-picker-month"
22467
- }, [props.showWeek && vue.createVNode("div", {
22533
+ }, [props.showWeek && vue.createElementVNode("div", {
22468
22534
  "key": "weeks",
22469
22535
  "class": "v-date-picker-month__weeks"
22470
- }, [!props.hideWeekdays && vue.createVNode("div", {
22536
+ }, [!props.hideWeekdays && vue.createElementVNode("div", {
22471
22537
  "key": "hide-week-days",
22472
22538
  "class": "v-date-picker-month__day"
22473
- }, [vue.createTextVNode("\xA0")]), weekNumbers.value.map(week => vue.createVNode("div", {
22539
+ }, [vue.createTextVNode("\xA0")]), weekNumbers.value.map(week => vue.createElementVNode("div", {
22474
22540
  "class": ['v-date-picker-month__day', 'v-date-picker-month__day--adjacent']
22475
22541
  }, [week]))]), vue.createVNode(MaybeTransition, {
22476
22542
  "name": transition.value
22477
22543
  }, {
22478
- default: () => [vue.createVNode("div", {
22544
+ default: () => [vue.createElementVNode("div", {
22479
22545
  "ref": daysRef,
22480
22546
  "key": daysInMonth.value[0].date?.toString(),
22481
22547
  "class": "v-date-picker-month__days"
22482
- }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => vue.createVNode("div", {
22548
+ }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => vue.createElementVNode("div", {
22483
22549
  "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
22484
22550
  }, [weekDay])), daysInMonth.value.map((item, i) => {
22485
22551
  const slotProps = {
@@ -22499,14 +22565,14 @@
22499
22565
  if (atMax.value && !item.isSelected) {
22500
22566
  item.isDisabled = true;
22501
22567
  }
22502
- return vue.createVNode("div", {
22503
- "class": ['v-date-picker-month__day', {
22568
+ return vue.createElementVNode("div", {
22569
+ "class": vue.normalizeClass(['v-date-picker-month__day', {
22504
22570
  'v-date-picker-month__day--adjacent': item.isAdjacent,
22505
22571
  'v-date-picker-month__day--hide-adjacent': item.isHidden,
22506
22572
  'v-date-picker-month__day--selected': item.isSelected,
22507
22573
  'v-date-picker-month__day--week-end': item.isWeekEnd,
22508
22574
  'v-date-picker-month__day--week-start': item.isWeekStart
22509
- }],
22575
+ }]),
22510
22576
  "data-v-date": !item.isDisabled ? item.isoDate : undefined
22511
22577
  }, [(props.showAdjacentMonths || !item.isAdjacent) && (slots.day?.(slotProps) ?? vue.createVNode(VBtn, slotProps.props, null))]);
22512
22578
  })])]
@@ -22556,12 +22622,12 @@
22556
22622
  vue.watchEffect(() => {
22557
22623
  model.value = model.value ?? adapter.getMonth(adapter.date());
22558
22624
  });
22559
- useRender(() => vue.createVNode("div", {
22625
+ useRender(() => vue.createElementVNode("div", {
22560
22626
  "class": "v-date-picker-months",
22561
- "style": {
22627
+ "style": vue.normalizeStyle({
22562
22628
  height: convertToUnit(props.height)
22563
- }
22564
- }, [vue.createVNode("div", {
22629
+ })
22630
+ }, [vue.createElementVNode("div", {
22565
22631
  "class": "v-date-picker-months__content"
22566
22632
  }, [months.value.map((month, i) => {
22567
22633
  const btnProps = {
@@ -22647,12 +22713,12 @@
22647
22713
  block: 'center'
22648
22714
  });
22649
22715
  });
22650
- useRender(() => vue.createVNode("div", {
22716
+ useRender(() => vue.createElementVNode("div", {
22651
22717
  "class": "v-date-picker-years",
22652
- "style": {
22718
+ "style": vue.normalizeStyle({
22653
22719
  height: convertToUnit(props.height)
22654
- }
22655
- }, [vue.createVNode("div", {
22720
+ })
22721
+ }, [vue.createElementVNode("div", {
22656
22722
  "class": "v-date-picker-years__content"
22657
22723
  }, [years.value.map((year, i) => {
22658
22724
  const btnProps = {
@@ -22889,7 +22955,7 @@
22889
22955
  }, rtlClasses.value, props.class],
22890
22956
  "style": props.style
22891
22957
  }), {
22892
- title: () => slots.title?.() ?? vue.createVNode("div", {
22958
+ title: () => slots.title?.() ?? vue.createElementVNode("div", {
22893
22959
  "class": "v-date-picker__title"
22894
22960
  }, [t(props.title)]),
22895
22961
  header: () => slots.header ? vue.createVNode(VDefaultsProvider, {
@@ -22908,7 +22974,7 @@
22908
22974
  ...slots,
22909
22975
  default: undefined
22910
22976
  }),
22911
- default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VDatePickerControls, vue.mergeProps(datePickerControlsProps, {
22977
+ default: () => vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VDatePickerControls, vue.mergeProps(datePickerControlsProps, {
22912
22978
  "disabled": disabled.value,
22913
22979
  "text": text.value,
22914
22980
  "onClick:next": onClickNext,
@@ -23017,15 +23083,15 @@
23017
23083
  const hasText = !!(slots.text || props.text);
23018
23084
  const hasMedia = !!(slots.media || props.image || props.icon);
23019
23085
  const size = props.size || (props.image ? 200 : 96);
23020
- return vue.createVNode("div", {
23021
- "class": ['v-empty-state', {
23086
+ return vue.createElementVNode("div", {
23087
+ "class": vue.normalizeClass(['v-empty-state', {
23022
23088
  [`v-empty-state--${props.justify}`]: true
23023
- }, themeClasses.value, backgroundColorClasses.value, displayClasses.value, props.class],
23024
- "style": [backgroundColorStyles.value, dimensionStyles.value, props.style]
23025
- }, [hasMedia && vue.createVNode("div", {
23089
+ }, themeClasses.value, backgroundColorClasses.value, displayClasses.value, props.class]),
23090
+ "style": vue.normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, props.style])
23091
+ }, [hasMedia && vue.createElementVNode("div", {
23026
23092
  "key": "media",
23027
23093
  "class": "v-empty-state__media"
23028
- }, [!slots.media ? vue.createVNode(vue.Fragment, null, [props.image ? vue.createVNode(VImg, {
23094
+ }, [!slots.media ? vue.createElementVNode(vue.Fragment, null, [props.image ? vue.createVNode(VImg, {
23029
23095
  "key": "image",
23030
23096
  "src": props.image,
23031
23097
  "height": size
@@ -23048,22 +23114,22 @@
23048
23114
  }
23049
23115
  }, {
23050
23116
  default: () => [slots.media()]
23051
- })]), hasHeadline && vue.createVNode("div", {
23117
+ })]), hasHeadline && vue.createElementVNode("div", {
23052
23118
  "key": "headline",
23053
23119
  "class": "v-empty-state__headline"
23054
- }, [slots.headline?.() ?? props.headline]), hasTitle && vue.createVNode("div", {
23120
+ }, [slots.headline?.() ?? props.headline]), hasTitle && vue.createElementVNode("div", {
23055
23121
  "key": "title",
23056
23122
  "class": "v-empty-state__title"
23057
- }, [slots.title?.() ?? props.title]), hasText && vue.createVNode("div", {
23123
+ }, [slots.title?.() ?? props.title]), hasText && vue.createElementVNode("div", {
23058
23124
  "key": "text",
23059
23125
  "class": "v-empty-state__text",
23060
- "style": {
23126
+ "style": vue.normalizeStyle({
23061
23127
  maxWidth: convertToUnit(props.textWidth)
23062
- }
23063
- }, [slots.text?.() ?? props.text]), slots.default && vue.createVNode("div", {
23128
+ })
23129
+ }, [slots.text?.() ?? props.text]), slots.default && vue.createElementVNode("div", {
23064
23130
  "key": "content",
23065
23131
  "class": "v-empty-state__content"
23066
- }, [slots.default()]), hasActions && vue.createVNode("div", {
23132
+ }, [slots.default()]), hasActions && vue.createElementVNode("div", {
23067
23133
  "key": "actions",
23068
23134
  "class": "v-empty-state__actions"
23069
23135
  }, [vue.createVNode(VDefaultsProvider, {
@@ -23114,10 +23180,10 @@
23114
23180
  useRender(() => vue.createVNode(VExpandTransition, {
23115
23181
  "onAfterLeave": onAfterLeave
23116
23182
  }, {
23117
- default: () => [vue.withDirectives(vue.createVNode("div", {
23118
- "class": ['v-expansion-panel-text', props.class],
23119
- "style": props.style
23120
- }, [slots.default && hasContent.value && vue.createVNode("div", {
23183
+ default: () => [vue.withDirectives(vue.createElementVNode("div", {
23184
+ "class": vue.normalizeClass(['v-expansion-panel-text', props.class]),
23185
+ "style": vue.normalizeStyle(props.style)
23186
+ }, [slots.default && hasContent.value && vue.createElementVNode("div", {
23121
23187
  "class": "v-expansion-panel-text__wrapper"
23122
23188
  }, [slots.default?.()])]), [[vue.vShow, expansionPanel.isSelected.value]])]
23123
23189
  }));
@@ -23151,7 +23217,7 @@
23151
23217
  const VExpansionPanelTitle = genericComponent()({
23152
23218
  name: 'VExpansionPanelTitle',
23153
23219
  directives: {
23154
- Ripple
23220
+ vRipple: Ripple
23155
23221
  },
23156
23222
  props: makeVExpansionPanelTitleProps(),
23157
23223
  setup(props, _ref) {
@@ -23175,19 +23241,19 @@
23175
23241
  readonly: props.readonly
23176
23242
  }));
23177
23243
  const icon = vue.toRef(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);
23178
- useRender(() => vue.withDirectives(vue.createVNode("button", {
23179
- "class": ['v-expansion-panel-title', {
23244
+ useRender(() => vue.withDirectives(vue.createElementVNode("button", {
23245
+ "class": vue.normalizeClass(['v-expansion-panel-title', {
23180
23246
  'v-expansion-panel-title--active': expansionPanel.isSelected.value,
23181
23247
  'v-expansion-panel-title--focusable': props.focusable,
23182
23248
  'v-expansion-panel-title--static': props.static
23183
- }, backgroundColorClasses.value, props.class],
23184
- "style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
23249
+ }, backgroundColorClasses.value, props.class]),
23250
+ "style": vue.normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, props.style]),
23185
23251
  "type": "button",
23186
23252
  "tabindex": expansionPanel.disabled.value ? -1 : undefined,
23187
23253
  "disabled": expansionPanel.disabled.value,
23188
23254
  "aria-expanded": expansionPanel.isSelected.value,
23189
23255
  "onClick": !props.readonly ? expansionPanel.toggle : undefined
23190
- }, [vue.createVNode("span", {
23256
+ }, [vue.createElementVNode("span", {
23191
23257
  "class": "v-expansion-panel-title__overlay"
23192
23258
  }, null), slots.default?.(slotProps.value), !props.hideActions && vue.createVNode(VDefaultsProvider, {
23193
23259
  "defaults": {
@@ -23196,10 +23262,10 @@
23196
23262
  }
23197
23263
  }
23198
23264
  }, {
23199
- default: () => [vue.createVNode("span", {
23265
+ default: () => [vue.createElementVNode("span", {
23200
23266
  "class": "v-expansion-panel-title__icon"
23201
23267
  }, [slots.actions?.(slotProps.value) ?? vue.createVNode(VIcon, null, null)])]
23202
- })]), [[vue.resolveDirective("ripple"), props.ripple]]));
23268
+ })]), [[Ripple, props.ripple]]));
23203
23269
  return {};
23204
23270
  }
23205
23271
  });
@@ -23256,16 +23322,16 @@
23256
23322
  const expansionPanelTitleProps = VExpansionPanelTitle.filterProps(props);
23257
23323
  const expansionPanelTextProps = VExpansionPanelText.filterProps(props);
23258
23324
  return vue.createVNode(props.tag, {
23259
- "class": ['v-expansion-panel', {
23325
+ "class": vue.normalizeClass(['v-expansion-panel', {
23260
23326
  'v-expansion-panel--active': groupItem.isSelected.value,
23261
23327
  'v-expansion-panel--before-active': isBeforeSelected.value,
23262
23328
  'v-expansion-panel--after-active': isAfterSelected.value,
23263
23329
  'v-expansion-panel--disabled': isDisabled.value
23264
- }, roundedClasses.value, backgroundColorClasses.value, props.class],
23265
- "style": [backgroundColorStyles.value, props.style]
23330
+ }, roundedClasses.value, backgroundColorClasses.value, props.class]),
23331
+ "style": vue.normalizeStyle([backgroundColorStyles.value, props.style])
23266
23332
  }, {
23267
- default: () => [vue.createVNode("div", {
23268
- "class": ['v-expansion-panel__shadow', ...elevationClasses.value]
23333
+ default: () => [vue.createElementVNode("div", {
23334
+ "class": vue.normalizeClass(['v-expansion-panel__shadow', ...elevationClasses.value])
23269
23335
  }, null), vue.createVNode(VDefaultsProvider, {
23270
23336
  "defaults": {
23271
23337
  VExpansionPanelTitle: {
@@ -23345,11 +23411,11 @@
23345
23411
  }
23346
23412
  });
23347
23413
  useRender(() => vue.createVNode(props.tag, {
23348
- "class": ['v-expansion-panels', {
23414
+ "class": vue.normalizeClass(['v-expansion-panels', {
23349
23415
  'v-expansion-panels--flat': props.flat,
23350
23416
  'v-expansion-panels--tile': props.tile
23351
- }, themeClasses.value, variantClass.value, props.class],
23352
- "style": props.style
23417
+ }, themeClasses.value, variantClass.value, props.class]),
23418
+ "style": vue.normalizeStyle(props.style)
23353
23419
  }, {
23354
23420
  default: () => [slots.default?.({
23355
23421
  prev,
@@ -23429,22 +23495,22 @@
23429
23495
  const vFabRef = vue.ref();
23430
23496
  useRender(() => {
23431
23497
  const btnProps = VBtn.filterProps(props);
23432
- return vue.createVNode("div", {
23498
+ return vue.createElementVNode("div", {
23433
23499
  "ref": vFabRef,
23434
- "class": ['v-fab', {
23500
+ "class": vue.normalizeClass(['v-fab', {
23435
23501
  'v-fab--absolute': props.absolute,
23436
23502
  'v-fab--app': !!props.app,
23437
23503
  'v-fab--extended': props.extended,
23438
23504
  'v-fab--offset': props.offset,
23439
23505
  [`v-fab--${position.value}`]: hasPosition.value,
23440
23506
  [`v-fab--${orientation.value}`]: hasPosition.value
23441
- }, props.class],
23442
- "style": [props.app ? {
23507
+ }, props.class]),
23508
+ "style": vue.normalizeStyle([props.app ? {
23443
23509
  ...layoutItemStyles.value
23444
23510
  } : {
23445
23511
  height: props.absolute ? '100%' : 'inherit'
23446
- }, props.style]
23447
- }, [vue.createVNode("div", {
23512
+ }, props.style])
23513
+ }, [vue.createElementVNode("div", {
23448
23514
  "class": "v-fab__container"
23449
23515
  }, [vue.createVNode(MaybeTransition, {
23450
23516
  "appear": props.appear,
@@ -23660,7 +23726,7 @@
23660
23726
  ...slotProps
23661
23727
  }
23662
23728
  } = _ref4;
23663
- return vue.createVNode(vue.Fragment, null, [vue.createVNode("input", vue.mergeProps({
23729
+ return vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("input", vue.mergeProps({
23664
23730
  "ref": inputRef,
23665
23731
  "type": "file",
23666
23732
  "readonly": isReadonly.value,
@@ -23680,8 +23746,8 @@
23680
23746
  "onDragleave": onDragleave,
23681
23747
  "onFocus": onFocus,
23682
23748
  "onBlur": blur
23683
- }, slotProps, inputAttrs), null), vue.createVNode("div", {
23684
- "class": fieldClass
23749
+ }, slotProps, inputAttrs), null), vue.createElementVNode("div", {
23750
+ "class": vue.normalizeClass(fieldClass)
23685
23751
  }, [!!model.value?.length && !props.hideInput && (slots.selection ? slots.selection({
23686
23752
  fileNames: fileNames.value,
23687
23753
  totalBytes: totalBytes.value,
@@ -23694,7 +23760,7 @@
23694
23760
  }
23695
23761
  });
23696
23762
  },
23697
- details: hasDetails ? slotProps => vue.createVNode(vue.Fragment, null, [slots.details?.(slotProps), hasCounter && vue.createVNode(vue.Fragment, null, [vue.createVNode("span", null, null), vue.createVNode(VCounter, {
23763
+ details: hasDetails ? slotProps => vue.createElementVNode(vue.Fragment, null, [slots.details?.(slotProps), hasCounter && vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("span", null, null), vue.createVNode(VCounter, {
23698
23764
  "active": !!model.value?.length,
23699
23765
  "value": counterValue.value,
23700
23766
  "disabled": props.disabled
@@ -23770,10 +23836,10 @@
23770
23836
  });
23771
23837
  useRender(() => vue.createVNode(props.tag, {
23772
23838
  "ref": resizeRef,
23773
- "class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
23774
- "style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : {
23839
+ "class": vue.normalizeClass(['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
23840
+ "style": vue.normalizeStyle([backgroundColorStyles.value, props.app ? layoutItemStyles.value : {
23775
23841
  height: convertToUnit(props.height)
23776
- }, props.style]
23842
+ }, props.style])
23777
23843
  }, slots));
23778
23844
  return {};
23779
23845
  }
@@ -23822,10 +23888,10 @@
23822
23888
  }
23823
23889
  e.preventDefault();
23824
23890
  }
23825
- useRender(() => vue.createVNode("form", {
23891
+ useRender(() => vue.createElementVNode("form", {
23826
23892
  "ref": formRef,
23827
- "class": ['v-form', props.class],
23828
- "style": props.style,
23893
+ "class": vue.normalizeClass(['v-form', props.class]),
23894
+ "style": vue.normalizeStyle(props.style),
23829
23895
  "novalidate": true,
23830
23896
  "onReset": onReset,
23831
23897
  "onSubmit": onSubmit
@@ -23922,11 +23988,11 @@
23922
23988
  vue.watch(isIntersecting, async val => {
23923
23989
  emit('intersect', props.side, val);
23924
23990
  });
23925
- useRender(() => vue.createVNode("div", {
23991
+ useRender(() => vue.createElementVNode("div", {
23926
23992
  "class": "v-infinite-scroll-intersect",
23927
- "style": {
23993
+ "style": vue.normalizeStyle({
23928
23994
  '--v-infinite-margin-size': props.rootMargin
23929
- },
23995
+ }),
23930
23996
  "ref": intersectionRef
23931
23997
  }, [vue.createTextVNode("\xA0")]));
23932
23998
  return {};
@@ -24038,7 +24104,7 @@
24038
24104
  }
24039
24105
  };
24040
24106
  if (status === 'error') return slots.error?.(slotProps);
24041
- if (status === 'empty') return slots.empty?.(slotProps) ?? vue.createVNode("div", null, [t(props.emptyText)]);
24107
+ if (status === 'empty') return slots.empty?.(slotProps) ?? vue.createElementVNode("div", null, [t(props.emptyText)]);
24042
24108
  if (props.mode === 'manual') {
24043
24109
  if (status === 'loading') {
24044
24110
  return slots.loading?.(slotProps) ?? vue.createVNode(VProgressCircular, {
@@ -24069,13 +24135,13 @@
24069
24135
  const intersectMode = props.mode === 'intersect';
24070
24136
  return vue.createVNode(Tag, {
24071
24137
  "ref": rootEl,
24072
- "class": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
24138
+ "class": vue.normalizeClass(['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
24073
24139
  'v-infinite-scroll--start': hasStartIntersect,
24074
24140
  'v-infinite-scroll--end': hasEndIntersect
24075
- }],
24076
- "style": dimensionStyles.value
24141
+ }]),
24142
+ "style": vue.normalizeStyle(dimensionStyles.value)
24077
24143
  }, {
24078
- default: () => [vue.createVNode("div", {
24144
+ default: () => [vue.createElementVNode("div", {
24079
24145
  "class": "v-infinite-scroll__side"
24080
24146
  }, [renderSide('start', startStatus.value)]), hasStartIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
24081
24147
  "key": "start",
@@ -24087,7 +24153,7 @@
24087
24153
  "side": "end",
24088
24154
  "onIntersect": handleIntersect,
24089
24155
  "rootMargin": margin.value
24090
- }, null), vue.createVNode("div", {
24156
+ }, null), vue.createElementVNode("div", {
24091
24157
  "class": "v-infinite-scroll__side"
24092
24158
  }, [renderSide('end', endStatus.value)])]
24093
24159
  });
@@ -24127,8 +24193,8 @@
24127
24193
  selected
24128
24194
  } = useGroup(props, VItemGroupSymbol);
24129
24195
  return () => vue.createVNode(props.tag, {
24130
- "class": ['v-item-group', themeClasses.value, props.class],
24131
- "style": props.style
24196
+ "class": vue.normalizeClass(['v-item-group', themeClasses.value, props.class]),
24197
+ "style": vue.normalizeStyle(props.style)
24132
24198
  }, {
24133
24199
  default: () => [slots.default?.({
24134
24200
  isSelected,
@@ -24196,10 +24262,10 @@
24196
24262
  const {
24197
24263
  dimensionStyles
24198
24264
  } = useDimension(props);
24199
- useRender(() => vue.createVNode("div", {
24265
+ useRender(() => vue.createElementVNode("div", {
24200
24266
  "ref": layoutRef,
24201
- "class": [layoutClasses.value, props.class],
24202
- "style": [dimensionStyles.value, layoutStyles.value, props.style]
24267
+ "class": vue.normalizeClass([layoutClasses.value, props.class]),
24268
+ "style": vue.normalizeStyle([dimensionStyles.value, layoutStyles.value, props.style])
24203
24269
  }, [slots.default?.()]));
24204
24270
  return {
24205
24271
  getLayoutItem,
@@ -24241,9 +24307,9 @@
24241
24307
  active: vue.toRef(() => props.modelValue),
24242
24308
  absolute: vue.toRef(() => props.absolute)
24243
24309
  });
24244
- return () => vue.createVNode("div", {
24245
- "class": ['v-layout-item', props.class],
24246
- "style": [layoutItemStyles.value, props.style]
24310
+ return () => vue.createElementVNode("div", {
24311
+ "class": vue.normalizeClass(['v-layout-item', props.class]),
24312
+ "style": vue.normalizeStyle([layoutItemStyles.value, props.style])
24247
24313
  }, [slots.default?.()]);
24248
24314
  }
24249
24315
  });
@@ -24272,7 +24338,7 @@
24272
24338
  const VLazy = genericComponent()({
24273
24339
  name: 'VLazy',
24274
24340
  directives: {
24275
- intersect: Intersect
24341
+ vIntersect: Intersect
24276
24342
  },
24277
24343
  props: makeVLazyProps(),
24278
24344
  emits: {
@@ -24291,8 +24357,8 @@
24291
24357
  isActive.value = isIntersecting;
24292
24358
  }
24293
24359
  useRender(() => vue.withDirectives(vue.createVNode(props.tag, {
24294
- "class": ['v-lazy', props.class],
24295
- "style": [dimensionStyles.value, props.style]
24360
+ "class": vue.normalizeClass(['v-lazy', props.class]),
24361
+ "style": vue.normalizeStyle([dimensionStyles.value, props.style])
24296
24362
  }, {
24297
24363
  default: () => [isActive.value && vue.createVNode(MaybeTransition, {
24298
24364
  "transition": props.transition,
@@ -24300,7 +24366,7 @@
24300
24366
  }, {
24301
24367
  default: () => [slots.default?.()]
24302
24368
  })]
24303
- }), [[vue.resolveDirective("intersect"), {
24369
+ }), [[Intersect, {
24304
24370
  handler: onIntersect,
24305
24371
  options: props.options
24306
24372
  }, null]]));
@@ -24328,9 +24394,9 @@
24328
24394
  const {
24329
24395
  rtlClasses
24330
24396
  } = provideLocale(props);
24331
- useRender(() => vue.createVNode("div", {
24332
- "class": ['v-locale-provider', rtlClasses.value, props.class],
24333
- "style": props.style
24397
+ useRender(() => vue.createElementVNode("div", {
24398
+ "class": vue.normalizeClass(['v-locale-provider', rtlClasses.value, props.class]),
24399
+ "style": vue.normalizeStyle(props.style)
24334
24400
  }, [slots.default?.()]));
24335
24401
  return {};
24336
24402
  }
@@ -24361,12 +24427,12 @@
24361
24427
  ssrBootStyles
24362
24428
  } = useSsrBoot();
24363
24429
  useRender(() => vue.createVNode(props.tag, {
24364
- "class": ['v-main', {
24430
+ "class": vue.normalizeClass(['v-main', {
24365
24431
  'v-main--scrollable': props.scrollable
24366
- }, props.class],
24367
- "style": [mainStyles.value, ssrBootStyles.value, dimensionStyles.value, props.style]
24432
+ }, props.class]),
24433
+ "style": vue.normalizeStyle([mainStyles.value, ssrBootStyles.value, dimensionStyles.value, props.style])
24368
24434
  }, {
24369
- default: () => [props.scrollable ? vue.createVNode("div", {
24435
+ default: () => [props.scrollable ? vue.createElementVNode("div", {
24370
24436
  "class": "v-main__scroller"
24371
24437
  }, [slots.default?.()]) : slots.default?.()]
24372
24438
  }));
@@ -24597,7 +24663,7 @@
24597
24663
  function getProgress(pos) {
24598
24664
  let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
24599
24665
  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();
24600
- return limit ? Math.max(0, Math.min(1, progress)) : progress;
24666
+ return limit ? clamp(progress) : progress;
24601
24667
  }
24602
24668
  function onTouchstart(e) {
24603
24669
  if (touchless.value) return;
@@ -24877,7 +24943,7 @@
24877
24943
  });
24878
24944
  useRender(() => {
24879
24945
  const hasImage = slots.image || props.image;
24880
- return vue.createVNode(vue.Fragment, null, [vue.createVNode(props.tag, vue.mergeProps({
24946
+ return vue.createElementVNode(vue.Fragment, null, [vue.createVNode(props.tag, vue.mergeProps({
24881
24947
  "ref": rootEl,
24882
24948
  "onMouseenter": runOpenDelay,
24883
24949
  "onMouseleave": runCloseDelay,
@@ -24893,7 +24959,7 @@
24893
24959
  }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],
24894
24960
  "style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
24895
24961
  }, scopeId, attrs), {
24896
- default: () => [hasImage && vue.createVNode("div", {
24962
+ default: () => [hasImage && vue.createElementVNode("div", {
24897
24963
  "key": "image",
24898
24964
  "class": "v-navigation-drawer__img"
24899
24965
  }, [!slots.image ? vue.createVNode(VImg, {
@@ -24913,17 +24979,17 @@
24913
24979
  src: props.image
24914
24980
  }
24915
24981
  }
24916
- }, slots.image)]), slots.prepend && vue.createVNode("div", {
24982
+ }, slots.image)]), slots.prepend && vue.createElementVNode("div", {
24917
24983
  "class": "v-navigation-drawer__prepend"
24918
- }, [slots.prepend?.()]), vue.createVNode("div", {
24984
+ }, [slots.prepend?.()]), vue.createElementVNode("div", {
24919
24985
  "class": "v-navigation-drawer__content"
24920
- }, [slots.default?.()]), slots.append && vue.createVNode("div", {
24986
+ }, [slots.default?.()]), slots.append && vue.createElementVNode("div", {
24921
24987
  "class": "v-navigation-drawer__append"
24922
24988
  }, [slots.append?.()])]
24923
24989
  }), vue.createVNode(vue.Transition, {
24924
24990
  "name": "fade-transition"
24925
24991
  }, {
24926
- default: () => [isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && vue.createVNode("div", vue.mergeProps({
24992
+ default: () => [isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && vue.createElementVNode("div", vue.mergeProps({
24927
24993
  "class": ['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value],
24928
24994
  "style": [scrimStyles.value, scrimColor.backgroundColorStyles.value],
24929
24995
  "onClick": () => {
@@ -25082,6 +25148,9 @@
25082
25148
  const controlNodeDefaultHeight = vue.toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
25083
25149
  const incrementSlotProps = {
25084
25150
  props: {
25151
+ style: {
25152
+ touchAction: 'none'
25153
+ },
25085
25154
  onClick: onControlClick,
25086
25155
  onPointerup: onControlMouseup,
25087
25156
  onPointerdown: onUpControlMousedown
@@ -25089,6 +25158,9 @@
25089
25158
  };
25090
25159
  const decrementSlotProps = {
25091
25160
  props: {
25161
+ style: {
25162
+ touchAction: 'none'
25163
+ },
25092
25164
  onClick: onControlClick,
25093
25165
  onPointerup: onControlMouseup,
25094
25166
  onPointerdown: onDownControlMousedown
@@ -25121,25 +25193,33 @@
25121
25193
  }
25122
25194
  function onBeforeinput(e) {
25123
25195
  if (!e.data) return;
25124
- const existingTxt = e.target?.value;
25125
- const selectionStart = e.target?.selectionStart;
25126
- const selectionEnd = e.target?.selectionEnd;
25196
+ const inputElement = e.target;
25197
+ const {
25198
+ value: existingTxt,
25199
+ selectionStart,
25200
+ selectionEnd
25201
+ } = inputElement ?? {};
25127
25202
  const potentialNewInputVal = existingTxt ? existingTxt.slice(0, selectionStart) + e.data + existingTxt.slice(selectionEnd) : e.data;
25203
+ const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision);
25204
+
25128
25205
  // Only numbers, "-", "." are allowed
25129
25206
  // AND "-", "." are allowed only once
25130
25207
  // AND "-" is only allowed at the start
25131
25208
  if (!/^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(potentialNewInputVal)) {
25132
25209
  e.preventDefault();
25210
+ inputElement.value = potentialNewNumber;
25133
25211
  }
25134
25212
  if (props.precision == null) return;
25135
25213
 
25136
25214
  // Ignore decimal digits above precision limit
25137
25215
  if (potentialNewInputVal.split('.')[1]?.length > props.precision) {
25138
25216
  e.preventDefault();
25217
+ inputElement.value = potentialNewNumber;
25139
25218
  }
25140
25219
  // Ignore decimal separator when precision = 0
25141
25220
  if (props.precision === 0 && potentialNewInputVal.includes('.')) {
25142
25221
  e.preventDefault();
25222
+ inputElement.value = potentialNewNumber;
25143
25223
  }
25144
25224
  }
25145
25225
  async function onKeydown(e) {
@@ -25221,17 +25301,18 @@
25221
25301
  } = VTextField.filterProps(props);
25222
25302
  function incrementControlNode() {
25223
25303
  return !slots.increment ? vue.createVNode(VBtn, {
25304
+ "aria-hidden": "true",
25305
+ "data-testid": "increment",
25224
25306
  "disabled": !canIncrease.value,
25225
25307
  "flat": true,
25226
- "key": "increment-btn",
25227
25308
  "height": controlNodeDefaultHeight.value,
25228
- "data-testid": "increment",
25229
- "aria-hidden": "true",
25230
25309
  "icon": incrementIcon.value,
25310
+ "key": "increment-btn",
25231
25311
  "onClick": onControlClick,
25232
- "onPointerup": onControlMouseup,
25233
25312
  "onPointerdown": onUpControlMousedown,
25313
+ "onPointerup": onControlMouseup,
25234
25314
  "size": controlNodeSize.value,
25315
+ "style": "touch-action: none",
25235
25316
  "tabindex": "-1"
25236
25317
  }, null) : vue.createVNode(VDefaultsProvider, {
25237
25318
  "key": "increment-defaults",
@@ -25250,18 +25331,19 @@
25250
25331
  }
25251
25332
  function decrementControlNode() {
25252
25333
  return !slots.decrement ? vue.createVNode(VBtn, {
25334
+ "aria-hidden": "true",
25335
+ "data-testid": "decrement",
25253
25336
  "disabled": !canDecrease.value,
25254
25337
  "flat": true,
25255
- "key": "decrement-btn",
25256
25338
  "height": controlNodeDefaultHeight.value,
25257
- "data-testid": "decrement",
25258
- "aria-hidden": "true",
25259
25339
  "icon": decrementIcon.value,
25260
- "size": controlNodeSize.value,
25261
- "tabindex": "-1",
25340
+ "key": "decrement-btn",
25262
25341
  "onClick": onControlClick,
25342
+ "onPointerdown": onDownControlMousedown,
25263
25343
  "onPointerup": onControlMouseup,
25264
- "onPointerdown": onDownControlMousedown
25344
+ "size": controlNodeSize.value,
25345
+ "style": "touch-action: none",
25346
+ "tabindex": "-1"
25265
25347
  }, null) : vue.createVNode(VDefaultsProvider, {
25266
25348
  "key": "decrement-defaults",
25267
25349
  "defaults": {
@@ -25278,7 +25360,7 @@
25278
25360
  });
25279
25361
  }
25280
25362
  function controlNode() {
25281
- return vue.createVNode("div", {
25363
+ return vue.createElementVNode("div", {
25282
25364
  "class": "v-number-input__control"
25283
25365
  }, [decrementControlNode(), vue.createVNode(VDivider, {
25284
25366
  "vertical": controlVariant.value !== 'stacked'
@@ -25289,17 +25371,17 @@
25289
25371
  "vertical": true
25290
25372
  }, null) : undefined;
25291
25373
  }
25292
- const appendInnerControl = controlVariant.value === 'split' ? vue.createVNode("div", {
25374
+ const appendInnerControl = controlVariant.value === 'split' ? vue.createElementVNode("div", {
25293
25375
  "class": "v-number-input__control"
25294
25376
  }, [vue.createVNode(VDivider, {
25295
25377
  "vertical": true
25296
- }, null), incrementControlNode()]) : props.reverse || controlVariant.value === 'hidden' ? undefined : vue.createVNode(vue.Fragment, null, [dividerNode(), controlNode()]);
25378
+ }, null), incrementControlNode()]) : props.reverse || controlVariant.value === 'hidden' ? undefined : vue.createElementVNode(vue.Fragment, null, [dividerNode(), controlNode()]);
25297
25379
  const hasAppendInner = slots['append-inner'] || appendInnerControl;
25298
- const prependInnerControl = controlVariant.value === 'split' ? vue.createVNode("div", {
25380
+ const prependInnerControl = controlVariant.value === 'split' ? vue.createElementVNode("div", {
25299
25381
  "class": "v-number-input__control"
25300
25382
  }, [decrementControlNode(), vue.createVNode(VDivider, {
25301
25383
  "vertical": true
25302
- }, null)]) : props.reverse && controlVariant.value !== 'hidden' ? vue.createVNode(vue.Fragment, null, [controlNode(), dividerNode()]) : undefined;
25384
+ }, null)]) : props.reverse && controlVariant.value !== 'hidden' ? vue.createElementVNode(vue.Fragment, null, [controlNode(), dividerNode()]) : undefined;
25303
25385
  const hasPrependInner = slots['prepend-inner'] || prependInnerControl;
25304
25386
  return vue.createVNode(VTextField, vue.mergeProps({
25305
25387
  "ref": vTextFieldRef,
@@ -25327,13 +25409,13 @@
25327
25409
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
25328
25410
  args[_key] = arguments[_key];
25329
25411
  }
25330
- return vue.createVNode(vue.Fragment, null, [slots['append-inner']?.(...args), appendInnerControl]);
25412
+ return vue.createElementVNode(vue.Fragment, null, [slots['append-inner']?.(...args), appendInnerControl]);
25331
25413
  } : undefined,
25332
25414
  'prepend-inner': hasPrependInner ? function () {
25333
25415
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
25334
25416
  args[_key2] = arguments[_key2];
25335
25417
  }
25336
- return vue.createVNode(vue.Fragment, null, [prependInnerControl, slots['prepend-inner']?.(...args)]);
25418
+ return vue.createElementVNode(vue.Fragment, null, [prependInnerControl, slots['prepend-inner']?.(...args)]);
25337
25419
  } : undefined
25338
25420
  });
25339
25421
  });
@@ -25497,16 +25579,16 @@
25497
25579
  });
25498
25580
  useRender(() => {
25499
25581
  const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
25500
- return vue.createVNode("div", vue.mergeProps({
25582
+ return vue.createElementVNode("div", vue.mergeProps({
25501
25583
  "class": ['v-otp-input', {
25502
25584
  'v-otp-input--divided': !!props.divider
25503
25585
  }, props.class],
25504
25586
  "style": [props.style]
25505
- }, rootAttrs), [vue.createVNode("div", {
25587
+ }, rootAttrs), [vue.createElementVNode("div", {
25506
25588
  "ref": contentRef,
25507
25589
  "class": "v-otp-input__content",
25508
- "style": [dimensionStyles.value]
25509
- }, [fields.value.map((_, i) => vue.createVNode(vue.Fragment, null, [props.divider && i !== 0 && vue.createVNode("span", {
25590
+ "style": vue.normalizeStyle([dimensionStyles.value])
25591
+ }, [fields.value.map((_, i) => vue.createElementVNode(vue.Fragment, null, [props.divider && i !== 0 && vue.createElementVNode("span", {
25510
25592
  "class": "v-otp-input__divider"
25511
25593
  }, [props.divider]), vue.createVNode(VField, {
25512
25594
  "focused": isFocused.value && props.focusAll || focusIndex.value === i,
@@ -25515,7 +25597,7 @@
25515
25597
  ...slots,
25516
25598
  loader: undefined,
25517
25599
  default: () => {
25518
- return vue.createVNode("input", {
25600
+ return vue.createElementVNode("input", {
25519
25601
  "ref": val => inputRef.value[i] = val,
25520
25602
  "aria-label": t(props.label, i + 1),
25521
25603
  "autofocus": i === 0 && props.autofocus,
@@ -25535,7 +25617,7 @@
25535
25617
  "onPaste": event => onPaste(i, event)
25536
25618
  }, null);
25537
25619
  }
25538
- })])), vue.createVNode("input", vue.mergeProps({
25620
+ })])), vue.createElementVNode("input", vue.mergeProps({
25539
25621
  "class": "v-otp-input-input",
25540
25622
  "type": "hidden"
25541
25623
  }, inputAttrs, {
@@ -25640,10 +25722,10 @@
25640
25722
  });
25641
25723
  }
25642
25724
  useRender(() => vue.createVNode(VImg, {
25643
- "class": ['v-parallax', {
25725
+ "class": vue.normalizeClass(['v-parallax', {
25644
25726
  'v-parallax--active': isIntersecting.value
25645
- }, props.class],
25646
- "style": props.style,
25727
+ }, props.class]),
25728
+ "style": vue.normalizeStyle(props.style),
25647
25729
  "ref": root,
25648
25730
  "cover": true,
25649
25731
  "onLoadstart": onScroll,
@@ -25743,7 +25825,7 @@
25743
25825
  isDisabled,
25744
25826
  isReadonly
25745
25827
  } = _ref2;
25746
- return vue.createVNode(vue.Fragment, null, [label && vue.createVNode(VLabel, {
25828
+ return vue.createElementVNode(vue.Fragment, null, [label && vue.createVNode(VLabel, {
25747
25829
  "id": id.value
25748
25830
  }, {
25749
25831
  default: () => [label]
@@ -25881,7 +25963,7 @@
25881
25963
  "focused": isFocused.value
25882
25964
  }), {
25883
25965
  ...slots,
25884
- prepend: hasPrepend ? slotProps => vue.createVNode(vue.Fragment, null, [slots.label?.(slotProps) ?? (props.label ? vue.createVNode(VLabel, {
25966
+ prepend: hasPrepend ? slotProps => vue.createElementVNode(vue.Fragment, null, [slots.label?.(slotProps) ?? (props.label ? vue.createVNode(VLabel, {
25885
25967
  "class": "v-slider__label",
25886
25968
  "text": props.label
25887
25969
  }, null) : undefined), slots.prepend?.(slotProps)]) : undefined,
@@ -25890,18 +25972,18 @@
25890
25972
  id,
25891
25973
  messagesId
25892
25974
  } = _ref4;
25893
- return vue.createVNode("div", {
25975
+ return vue.createElementVNode("div", {
25894
25976
  "class": "v-slider__container",
25895
25977
  "onMousedown": !readonly.value ? onSliderMousedown : undefined,
25896
25978
  "onTouchstartPassive": !readonly.value ? onSliderTouchstart : undefined
25897
- }, [vue.createVNode("input", {
25979
+ }, [vue.createElementVNode("input", {
25898
25980
  "id": `${id.value}_start`,
25899
25981
  "name": props.name || id.value,
25900
25982
  "disabled": !!props.disabled,
25901
25983
  "readonly": !!props.readonly,
25902
25984
  "tabindex": "-1",
25903
25985
  "value": model.value[0]
25904
- }, null), vue.createVNode("input", {
25986
+ }, null), vue.createElementVNode("input", {
25905
25987
  "id": `${id.value}_stop`,
25906
25988
  "name": props.name || id.value,
25907
25989
  "disabled": !!props.disabled,
@@ -26100,16 +26182,16 @@
26100
26182
  size: props.size,
26101
26183
  variant: 'plain'
26102
26184
  };
26103
- return vue.createVNode(vue.Fragment, null, [vue.createVNode("label", {
26185
+ return vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("label", {
26104
26186
  "for": id,
26105
- "class": {
26187
+ "class": vue.normalizeClass({
26106
26188
  'v-rating__item--half': props.halfIncrements && value % 1 > 0,
26107
26189
  'v-rating__item--full': props.halfIncrements && value % 1 === 0
26108
- },
26190
+ }),
26109
26191
  "onMouseenter": onMouseenter,
26110
26192
  "onMouseleave": onMouseleave,
26111
26193
  "onClick": onClick
26112
- }, [vue.createVNode("span", {
26194
+ }, [vue.createElementVNode("span", {
26113
26195
  "class": "v-rating__hidden"
26114
26196
  }, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({
26115
26197
  ...itemState.value[index],
@@ -26119,7 +26201,7 @@
26119
26201
  rating: normalizedValue.value
26120
26202
  }) : vue.createVNode(VBtn, vue.mergeProps({
26121
26203
  "aria-label": t(props.itemAriaLabel, value, props.length)
26122
- }, btnProps), null)]), vue.createVNode("input", {
26204
+ }, btnProps), null)]), vue.createElementVNode("input", {
26123
26205
  "class": "v-rating__hidden",
26124
26206
  "name": name.value,
26125
26207
  "id": id,
@@ -26133,31 +26215,31 @@
26133
26215
  }
26134
26216
  function createLabel(labelProps) {
26135
26217
  if (slots['item-label']) return slots['item-label'](labelProps);
26136
- if (labelProps.label) return vue.createVNode("span", null, [labelProps.label]);
26137
- return vue.createVNode("span", null, [vue.createTextVNode("\xA0")]);
26218
+ if (labelProps.label) return vue.createElementVNode("span", null, [labelProps.label]);
26219
+ return vue.createElementVNode("span", null, [vue.createTextVNode("\xA0")]);
26138
26220
  }
26139
26221
  useRender(() => {
26140
26222
  const hasLabels = !!props.itemLabels?.length || slots['item-label'];
26141
26223
  return vue.createVNode(props.tag, {
26142
- "class": ['v-rating', {
26224
+ "class": vue.normalizeClass(['v-rating', {
26143
26225
  'v-rating--hover': props.hover,
26144
26226
  'v-rating--readonly': props.readonly
26145
- }, themeClasses.value, props.class],
26146
- "style": props.style
26227
+ }, themeClasses.value, props.class]),
26228
+ "style": vue.normalizeStyle(props.style)
26147
26229
  }, {
26148
26230
  default: () => [vue.createVNode(VRatingItem, {
26149
26231
  "value": 0,
26150
26232
  "index": -1,
26151
26233
  "showStar": false
26152
- }, null), range.value.map((value, i) => vue.createVNode("div", {
26234
+ }, null), range.value.map((value, i) => vue.createElementVNode("div", {
26153
26235
  "class": "v-rating__wrapper"
26154
26236
  }, [hasLabels && props.itemLabelPosition === 'top' ? createLabel({
26155
26237
  value,
26156
26238
  index: i,
26157
26239
  label: props.itemLabels?.[i]
26158
- }) : undefined, vue.createVNode("div", {
26240
+ }) : undefined, vue.createElementVNode("div", {
26159
26241
  "class": "v-rating__item"
26160
- }, [props.halfIncrements ? vue.createVNode(vue.Fragment, null, [vue.createVNode(VRatingItem, {
26242
+ }, [props.halfIncrements ? vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VRatingItem, {
26161
26243
  "value": value - 0.5,
26162
26244
  "index": i * 2
26163
26245
  }, null), vue.createVNode(VRatingItem, {
@@ -26214,8 +26296,8 @@
26214
26296
  };
26215
26297
  function genBone(type) {
26216
26298
  let children = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
26217
- return vue.createVNode("div", {
26218
- "class": ['v-skeleton-loader__bone', `v-skeleton-loader__${type}`]
26299
+ return vue.createElementVNode("div", {
26300
+ "class": vue.normalizeClass(['v-skeleton-loader__bone', `v-skeleton-loader__${type}`])
26219
26301
  }, [children]);
26220
26302
  }
26221
26303
  function genBones(bone) {
@@ -26301,7 +26383,7 @@
26301
26383
  ariaLabel: t(props.loadingText),
26302
26384
  role: 'alert'
26303
26385
  };
26304
- return vue.createVNode("div", vue.mergeProps({
26386
+ return vue.createElementVNode("div", vue.mergeProps({
26305
26387
  "class": ['v-skeleton-loader', {
26306
26388
  'v-skeleton-loader--boilerplate': props.boilerplate
26307
26389
  }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],
@@ -26507,7 +26589,7 @@
26507
26589
  "onTouchend": onTouchend,
26508
26590
  "onAfterLeave": onAfterLeave
26509
26591
  }, scopeId), {
26510
- default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && vue.createVNode("div", {
26592
+ default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && vue.createElementVNode("div", {
26511
26593
  "key": "timer",
26512
26594
  "class": "v-snackbar__timer"
26513
26595
  }, [vue.createVNode(VProgressLinear, {
@@ -26515,7 +26597,7 @@
26515
26597
  "color": typeof props.timer === 'string' ? props.timer : 'info',
26516
26598
  "max": props.timeout,
26517
26599
  "model-value": countdown.time.value
26518
- }, null)]), hasContent && vue.createVNode("div", {
26600
+ }, null)]), hasContent && vue.createElementVNode("div", {
26519
26601
  "key": "content",
26520
26602
  "class": "v-snackbar__content",
26521
26603
  "role": "status",
@@ -26529,7 +26611,7 @@
26529
26611
  }
26530
26612
  }
26531
26613
  }, {
26532
- default: () => [vue.createVNode("div", {
26614
+ default: () => [vue.createElementVNode("div", {
26533
26615
  "class": "v-snackbar__actions"
26534
26616
  }, [slots.actions({
26535
26617
  isActive
@@ -26613,7 +26695,7 @@
26613
26695
  modelValue: _,
26614
26696
  ...snackbarProps
26615
26697
  } = VSnackbar.filterProps(props);
26616
- return vue.createVNode(vue.Fragment, null, [isVisible.value && !!current.value && (slots.default ? vue.createVNode(VDefaultsProvider, {
26698
+ return vue.createElementVNode(vue.Fragment, null, [isVisible.value && !!current.value && (slots.default ? vue.createVNode(VDefaultsProvider, {
26617
26699
  "defaults": {
26618
26700
  VSnackbar: current.value
26619
26701
  }
@@ -26629,7 +26711,7 @@
26629
26711
  text: slots.text ? () => slots.text?.({
26630
26712
  item: current.value
26631
26713
  }) : undefined,
26632
- actions: hasActions ? () => vue.createVNode(vue.Fragment, null, [!slots.actions ? vue.createVNode(VBtn, vue.mergeProps(btnProps.value, {
26714
+ actions: hasActions ? () => vue.createElementVNode(vue.Fragment, null, [!slots.actions ? vue.createVNode(VBtn, vue.mergeProps(btnProps.value, {
26633
26715
  "onClick": onClickClose
26634
26716
  }), null) : vue.createVNode(VDefaultsProvider, {
26635
26717
  "defaults": {
@@ -26787,57 +26869,57 @@
26787
26869
  const smooth = vue.computed(() => typeof props.smooth === 'boolean' ? props.smooth ? 2 : 0 : Number(props.smooth));
26788
26870
  useRender(() => {
26789
26871
  const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();
26790
- return vue.createVNode("svg", {
26872
+ return vue.createElementVNode("svg", {
26791
26873
  "display": "block"
26792
- }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
26874
+ }, [vue.createElementVNode("defs", null, [vue.createElementVNode("linearGradient", {
26793
26875
  "id": id.value,
26794
26876
  "gradientUnits": "userSpaceOnUse",
26795
26877
  "x1": props.gradientDirection === 'left' ? '100%' : '0',
26796
26878
  "y1": props.gradientDirection === 'top' ? '100%' : '0',
26797
26879
  "x2": props.gradientDirection === 'right' ? '100%' : '0',
26798
26880
  "y2": props.gradientDirection === 'bottom' ? '100%' : '0'
26799
- }, [gradientData.map((color, index) => vue.createVNode("stop", {
26881
+ }, [gradientData.map((color, index) => vue.createElementVNode("stop", {
26800
26882
  "offset": index / Math.max(gradientData.length - 1, 1),
26801
26883
  "stop-color": color || 'currentColor'
26802
- }, null))])]), vue.createVNode("clipPath", {
26884
+ }, null))])]), vue.createElementVNode("clipPath", {
26803
26885
  "id": `${id.value}-clip`
26804
- }, [bars.value.map(item => vue.createVNode("rect", {
26886
+ }, [bars.value.map(item => vue.createElementVNode("rect", {
26805
26887
  "x": item.x + offsetX.value,
26806
26888
  "y": item.y,
26807
26889
  "width": lineWidth.value,
26808
26890
  "height": item.height,
26809
26891
  "rx": smooth.value,
26810
26892
  "ry": smooth.value
26811
- }, [props.autoDraw && vue.createVNode(vue.Fragment, null, [vue.createVNode("animate", {
26893
+ }, [props.autoDraw && vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("animate", {
26812
26894
  "attributeName": "y",
26813
26895
  "from": item.y + item.height,
26814
26896
  "to": item.y,
26815
26897
  "dur": `${autoDrawDuration.value}ms`,
26816
26898
  "fill": "freeze"
26817
- }, null), vue.createVNode("animate", {
26899
+ }, null), vue.createElementVNode("animate", {
26818
26900
  "attributeName": "height",
26819
26901
  "from": "0",
26820
26902
  "to": item.height,
26821
26903
  "dur": `${autoDrawDuration.value}ms`,
26822
26904
  "fill": "freeze"
26823
- }, null)])]))]), hasLabels.value && vue.createVNode("g", {
26905
+ }, null)])]))]), hasLabels.value && vue.createElementVNode("g", {
26824
26906
  "key": "labels",
26825
26907
  "style": {
26826
26908
  textAnchor: 'middle',
26827
26909
  dominantBaseline: 'mathematical',
26828
26910
  fill: 'currentColor'
26829
26911
  }
26830
- }, [parsedLabels.value.map((item, i) => vue.createVNode("text", {
26912
+ }, [parsedLabels.value.map((item, i) => vue.createElementVNode("text", {
26831
26913
  "x": item.x + offsetX.value + lineWidth.value / 2,
26832
26914
  "y": parseInt(props.height, 10) - 2 + (parseInt(props.labelSize, 10) || 7 * 0.75),
26833
26915
  "font-size": Number(props.labelSize) || 7
26834
26916
  }, [slots.label?.({
26835
26917
  index: i,
26836
26918
  value: item.value
26837
- }) ?? item.value]))]), vue.createVNode("g", {
26919
+ }) ?? item.value]))]), vue.createElementVNode("g", {
26838
26920
  "clip-path": `url(#${id.value}-clip)`,
26839
26921
  "fill": `url(#${id.value})`
26840
- }, [vue.createVNode("rect", {
26922
+ }, [vue.createElementVNode("rect", {
26841
26923
  "x": 0,
26842
26924
  "y": 0,
26843
26925
  "width": Math.max(props.modelValue.length * lineWidth.value, Number(props.width)),
@@ -27016,39 +27098,39 @@
27016
27098
  }
27017
27099
  useRender(() => {
27018
27100
  const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();
27019
- return vue.createVNode("svg", {
27101
+ return vue.createElementVNode("svg", {
27020
27102
  "display": "block",
27021
27103
  "stroke-width": parseFloat(props.lineWidth) ?? 4
27022
- }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
27104
+ }, [vue.createElementVNode("defs", null, [vue.createElementVNode("linearGradient", {
27023
27105
  "id": id.value,
27024
27106
  "gradientUnits": "userSpaceOnUse",
27025
27107
  "x1": props.gradientDirection === 'left' ? '100%' : '0',
27026
27108
  "y1": props.gradientDirection === 'top' ? '100%' : '0',
27027
27109
  "x2": props.gradientDirection === 'right' ? '100%' : '0',
27028
27110
  "y2": props.gradientDirection === 'bottom' ? '100%' : '0'
27029
- }, [gradientData.map((color, index) => vue.createVNode("stop", {
27111
+ }, [gradientData.map((color, index) => vue.createElementVNode("stop", {
27030
27112
  "offset": index / Math.max(gradientData.length - 1, 1),
27031
27113
  "stop-color": color || 'currentColor'
27032
- }, null))])]), hasLabels.value && vue.createVNode("g", {
27114
+ }, null))])]), hasLabels.value && vue.createElementVNode("g", {
27033
27115
  "key": "labels",
27034
27116
  "style": {
27035
27117
  textAnchor: 'middle',
27036
27118
  dominantBaseline: 'mathematical',
27037
27119
  fill: 'currentColor'
27038
27120
  }
27039
- }, [parsedLabels.value.map((item, i) => vue.createVNode("text", {
27121
+ }, [parsedLabels.value.map((item, i) => vue.createElementVNode("text", {
27040
27122
  "x": item.x + lineWidth.value / 2 + lineWidth.value / 2,
27041
27123
  "y": parseInt(props.height, 10) - 4 + (parseInt(props.labelSize, 10) || 7 * 0.75),
27042
27124
  "font-size": Number(props.labelSize) || 7
27043
27125
  }, [slots.label?.({
27044
27126
  index: i,
27045
27127
  value: item.value
27046
- }) ?? item.value]))]), vue.createVNode("path", {
27128
+ }) ?? item.value]))]), vue.createElementVNode("path", {
27047
27129
  "ref": path,
27048
27130
  "d": genPath$1(props.fill),
27049
27131
  "fill": props.fill ? `url(#${id.value})` : 'none',
27050
27132
  "stroke": props.fill ? 'none' : `url(#${id.value})`
27051
- }, null), props.fill && vue.createVNode("path", {
27133
+ }, null), props.fill && vue.createElementVNode("path", {
27052
27134
  "d": genPath$1(false),
27053
27135
  "fill": "none",
27054
27136
  "stroke": props.color ?? props.gradient?.[0]
@@ -27216,7 +27298,7 @@
27216
27298
  const nextSlotProps = {
27217
27299
  onClick: onClickNext
27218
27300
  };
27219
- return vue.createVNode("div", {
27301
+ return vue.createElementVNode("div", {
27220
27302
  "class": "v-stepper-actions"
27221
27303
  }, [vue.createVNode(VDefaultsProvider, {
27222
27304
  "defaults": {
@@ -27290,7 +27372,7 @@
27290
27372
  const VStepperItem = genericComponent()({
27291
27373
  name: 'VStepperItem',
27292
27374
  directives: {
27293
- Ripple
27375
+ vRipple: Ripple
27294
27376
  },
27295
27377
  props: makeVStepperItemProps(),
27296
27378
  emits: {
@@ -27329,12 +27411,12 @@
27329
27411
  function onClick() {
27330
27412
  group?.toggle();
27331
27413
  }
27332
- return vue.withDirectives(vue.createVNode("button", {
27333
- "class": ['v-stepper-item', {
27414
+ return vue.withDirectives(vue.createElementVNode("button", {
27415
+ "class": vue.normalizeClass(['v-stepper-item', {
27334
27416
  'v-stepper-item--complete': hasCompleted.value,
27335
27417
  'v-stepper-item--disabled': props.disabled,
27336
27418
  'v-stepper-item--error': hasError.value
27337
- }, group?.selectedClass.value],
27419
+ }, group?.selectedClass.value]),
27338
27420
  "disabled": !props.editable,
27339
27421
  "type": "button",
27340
27422
  "onClick": onClick
@@ -27347,15 +27429,15 @@
27347
27429
  default: () => [slots.icon?.(slotProps.value) ?? (icon.value ? vue.createVNode(VIcon, {
27348
27430
  "icon": icon.value
27349
27431
  }, null) : step.value)]
27350
- }), vue.createVNode("div", {
27432
+ }), vue.createElementVNode("div", {
27351
27433
  "class": "v-stepper-item__content"
27352
- }, [hasTitle && vue.createVNode("div", {
27434
+ }, [hasTitle && vue.createElementVNode("div", {
27353
27435
  "key": "title",
27354
27436
  "class": "v-stepper-item__title"
27355
- }, [slots.title?.(slotProps.value) ?? props.title]), hasSubtitle && vue.createVNode("div", {
27437
+ }, [slots.title?.(slotProps.value) ?? props.title]), hasSubtitle && vue.createElementVNode("div", {
27356
27438
  "key": "subtitle",
27357
27439
  "class": "v-stepper-item__subtitle"
27358
- }, [slots.subtitle?.(slotProps.value) ?? props.subtitle]), slots.default?.(slotProps.value)])]), [[vue.resolveDirective("ripple"), props.ripple && props.editable, null]]);
27440
+ }, [slots.subtitle?.(slotProps.value) ?? props.subtitle]), slots.default?.(slotProps.value)])]), [[Ripple, props.ripple && props.editable, null]]);
27359
27441
  });
27360
27442
  return {};
27361
27443
  }
@@ -27551,7 +27633,7 @@
27551
27633
  raw,
27552
27634
  ...item
27553
27635
  } = _ref2;
27554
- return vue.createVNode(vue.Fragment, null, [!!index && vue.createVNode(VDivider, null, null), vue.createVNode(VStepperItem, item, {
27636
+ return vue.createElementVNode(vue.Fragment, null, [!!index && vue.createVNode(VDivider, null, null), vue.createVNode(VStepperItem, item, {
27555
27637
  default: slots[`header-item.${item.value}`] ?? slots.header,
27556
27638
  icon: slots.icon,
27557
27639
  title: slots.title,
@@ -27692,14 +27774,14 @@
27692
27774
  backgroundColorClasses,
27693
27775
  backgroundColorStyles
27694
27776
  } = _ref3;
27695
- return vue.createVNode("div", {
27696
- "class": ['v-switch__track', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],
27697
- "style": backgroundColorStyles.value,
27777
+ return vue.createElementVNode("div", {
27778
+ "class": vue.normalizeClass(['v-switch__track', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined]),
27779
+ "style": vue.normalizeStyle(backgroundColorStyles.value),
27698
27780
  "onClick": onTrackClick
27699
- }, [slots['track-true'] && vue.createVNode("div", {
27781
+ }, [slots['track-true'] && vue.createElementVNode("div", {
27700
27782
  "key": "prepend",
27701
27783
  "class": "v-switch__track-true"
27702
- }, [slots['track-true'](slotProps)]), slots['track-false'] && vue.createVNode("div", {
27784
+ }, [slots['track-true'](slotProps)]), slots['track-false'] && vue.createElementVNode("div", {
27703
27785
  "key": "append",
27704
27786
  "class": "v-switch__track-false"
27705
27787
  }, [slots['track-false'](slotProps)])]);
@@ -27711,11 +27793,11 @@
27711
27793
  backgroundColorClasses,
27712
27794
  backgroundColorStyles
27713
27795
  } = _ref4;
27714
- return vue.createVNode(vue.Fragment, null, [inputNode, vue.createVNode("div", {
27715
- "class": ['v-switch__thumb', {
27796
+ return vue.createElementVNode(vue.Fragment, null, [inputNode, vue.createElementVNode("div", {
27797
+ "class": vue.normalizeClass(['v-switch__thumb', {
27716
27798
  'v-switch__thumb--filled': icon || props.loading
27717
- }, props.inset || isForcedColorsModeActive ? undefined : backgroundColorClasses.value],
27718
- "style": props.inset ? undefined : backgroundColorStyles.value
27799
+ }, props.inset || isForcedColorsModeActive ? undefined : backgroundColorClasses.value]),
27800
+ "style": vue.normalizeStyle(props.inset ? undefined : backgroundColorStyles.value)
27719
27801
  }, [slots.thumb ? vue.createVNode(VDefaultsProvider, {
27720
27802
  "defaults": {
27721
27803
  VIcon: {
@@ -27803,10 +27885,10 @@
27803
27885
  absolute: vue.toRef(() => props.absolute)
27804
27886
  });
27805
27887
  useRender(() => vue.createVNode(props.tag, {
27806
- "class": ['v-system-bar', {
27888
+ "class": vue.normalizeClass(['v-system-bar', {
27807
27889
  'v-system-bar--window': props.window
27808
- }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],
27809
- "style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style]
27890
+ }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
27891
+ "style": vue.normalizeStyle([backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style])
27810
27892
  }, slots));
27811
27893
  return {};
27812
27894
  }
@@ -27897,10 +27979,10 @@
27897
27979
  "onGroup:selected": updateSlider
27898
27980
  }), {
27899
27981
  ...slots,
27900
- default: () => vue.createVNode(vue.Fragment, null, [slots.default?.() ?? props.text, !props.hideSlider && vue.createVNode("div", {
27982
+ default: () => vue.createElementVNode(vue.Fragment, null, [slots.default?.() ?? props.text, !props.hideSlider && vue.createElementVNode("div", {
27901
27983
  "ref": sliderEl,
27902
- "class": ['v-tab__slider', sliderColorClasses.value],
27903
- "style": sliderColorStyles.value
27984
+ "class": vue.normalizeClass(['v-tab__slider', sliderColorClasses.value]),
27985
+ "style": vue.normalizeStyle(sliderColorStyles.value)
27904
27986
  }, null)])
27905
27987
  });
27906
27988
  });
@@ -28052,7 +28134,7 @@
28052
28134
  useRender(() => {
28053
28135
  const slideGroupProps = VSlideGroup.filterProps(props);
28054
28136
  const hasWindow = !!(slots.window || props.items.length > 0);
28055
- return vue.createVNode(vue.Fragment, null, [vue.createVNode(VSlideGroup, vue.mergeProps(slideGroupProps, {
28137
+ return vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VSlideGroup, vue.mergeProps(slideGroupProps, {
28056
28138
  "modelValue": model.value,
28057
28139
  "onUpdate:modelValue": $event => model.value = $event,
28058
28140
  "class": ['v-tabs', `v-tabs--${props.direction}`, `v-tabs--align-tabs-${props.alignTabs}`, {
@@ -28125,7 +28207,7 @@
28125
28207
  const VTextarea = genericComponent()({
28126
28208
  name: 'VTextarea',
28127
28209
  directives: {
28128
- Intersect
28210
+ vIntersect: Intersect
28129
28211
  },
28130
28212
  inheritAttrs: false,
28131
28213
  props: makeVTextareaProps(),
@@ -28298,9 +28380,9 @@
28298
28380
  ...slotProps
28299
28381
  }
28300
28382
  } = _ref3;
28301
- return vue.createVNode(vue.Fragment, null, [props.prefix && vue.createVNode("span", {
28383
+ return vue.createElementVNode(vue.Fragment, null, [props.prefix && vue.createElementVNode("span", {
28302
28384
  "class": "v-text-field__prefix"
28303
- }, [props.prefix]), vue.withDirectives(vue.createVNode("textarea", vue.mergeProps({
28385
+ }, [props.prefix]), vue.withDirectives(vue.createElementVNode("textarea", vue.mergeProps({
28304
28386
  "ref": textareaRef,
28305
28387
  "class": fieldClass,
28306
28388
  "value": model.value,
@@ -28313,24 +28395,24 @@
28313
28395
  "name": props.name,
28314
28396
  "onFocus": onFocus,
28315
28397
  "onBlur": blur
28316
- }, slotProps, inputAttrs), null), [[vue.resolveDirective("intersect"), {
28398
+ }, slotProps, inputAttrs), null), [[Intersect, {
28317
28399
  handler: onIntersect
28318
28400
  }, null, {
28319
28401
  once: true
28320
- }]]), props.autoGrow && vue.withDirectives(vue.createVNode("textarea", {
28321
- "class": [fieldClass, 'v-textarea__sizer'],
28402
+ }]]), props.autoGrow && vue.withDirectives(vue.createElementVNode("textarea", {
28403
+ "class": vue.normalizeClass([fieldClass, 'v-textarea__sizer']),
28322
28404
  "id": `${slotProps.id}-sizer`,
28323
28405
  "onUpdate:modelValue": $event => model.value = $event,
28324
28406
  "ref": sizerRef,
28325
28407
  "readonly": true,
28326
28408
  "aria-hidden": "true"
28327
- }, null), [[vue.vModelText, model.value]]), props.suffix && vue.createVNode("span", {
28409
+ }, null), [[vue.vModelText, model.value]]), props.suffix && vue.createElementVNode("span", {
28328
28410
  "class": "v-text-field__suffix"
28329
28411
  }, [props.suffix])]);
28330
28412
  }
28331
28413
  });
28332
28414
  },
28333
- details: hasDetails ? slotProps => vue.createVNode(vue.Fragment, null, [slots.details?.(slotProps), hasCounter && vue.createVNode(vue.Fragment, null, [vue.createVNode("span", null, null), vue.createVNode(VCounter, {
28415
+ details: hasDetails ? slotProps => vue.createElementVNode(vue.Fragment, null, [slots.details?.(slotProps), hasCounter && vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("span", null, null), vue.createVNode(VCounter, {
28334
28416
  "active": props.persistentCounter || isFocused.value,
28335
28417
  "value": counterValue.value,
28336
28418
  "max": max.value,
@@ -28361,8 +28443,8 @@
28361
28443
  return () => {
28362
28444
  if (!props.withBackground) return slots.default?.();
28363
28445
  return vue.createVNode(props.tag, {
28364
- "class": ['v-theme-provider', themeClasses.value, props.class],
28365
- "style": props.style
28446
+ "class": vue.normalizeClass(['v-theme-provider', themeClasses.value, props.class]),
28447
+ "style": vue.normalizeStyle(props.style)
28366
28448
  }, {
28367
28449
  default: () => [slots.default?.()]
28368
28450
  });
@@ -28407,21 +28489,21 @@
28407
28489
  backgroundColorClasses: lineColorClasses,
28408
28490
  backgroundColorStyles: lineColorStyles
28409
28491
  } = useBackgroundColor(() => props.lineColor);
28410
- useRender(() => vue.createVNode("div", {
28411
- "class": ['v-timeline-divider', {
28492
+ useRender(() => vue.createElementVNode("div", {
28493
+ "class": vue.normalizeClass(['v-timeline-divider', {
28412
28494
  'v-timeline-divider--fill-dot': props.fillDot
28413
- }, props.class],
28414
- "style": props.style
28415
- }, [vue.createVNode("div", {
28416
- "class": ['v-timeline-divider__before', lineColorClasses.value],
28417
- "style": lineColorStyles.value
28418
- }, null), !props.hideDot && vue.createVNode("div", {
28495
+ }, props.class]),
28496
+ "style": vue.normalizeStyle(props.style)
28497
+ }, [vue.createElementVNode("div", {
28498
+ "class": vue.normalizeClass(['v-timeline-divider__before', lineColorClasses.value]),
28499
+ "style": vue.normalizeStyle(lineColorStyles.value)
28500
+ }, null), !props.hideDot && vue.createElementVNode("div", {
28419
28501
  "key": "dot",
28420
- "class": ['v-timeline-divider__dot', elevationClasses.value, roundedClasses.value, sizeClasses.value],
28421
- "style": sizeStyles.value
28422
- }, [vue.createVNode("div", {
28423
- "class": ['v-timeline-divider__inner-dot', backgroundColorClasses.value, roundedClasses.value],
28424
- "style": backgroundColorStyles.value
28502
+ "class": vue.normalizeClass(['v-timeline-divider__dot', elevationClasses.value, roundedClasses.value, sizeClasses.value]),
28503
+ "style": vue.normalizeStyle(sizeStyles.value)
28504
+ }, [vue.createElementVNode("div", {
28505
+ "class": vue.normalizeClass(['v-timeline-divider__inner-dot', backgroundColorClasses.value, roundedClasses.value]),
28506
+ "style": vue.normalizeStyle(backgroundColorStyles.value)
28425
28507
  }, [!slots.default ? vue.createVNode(VIcon, {
28426
28508
  "key": "icon",
28427
28509
  "color": props.iconColor,
@@ -28437,9 +28519,9 @@
28437
28519
  size: props.size
28438
28520
  }
28439
28521
  }
28440
- }, slots.default)])]), vue.createVNode("div", {
28441
- "class": ['v-timeline-divider__after', lineColorClasses.value],
28442
- "style": lineColorStyles.value
28522
+ }, slots.default)])]), vue.createElementVNode("div", {
28523
+ "class": vue.normalizeClass(['v-timeline-divider__after', lineColorClasses.value]),
28524
+ "style": vue.normalizeStyle(lineColorStyles.value)
28443
28525
  }, null)]));
28444
28526
  return {};
28445
28527
  }
@@ -28490,19 +28572,19 @@
28490
28572
  }, {
28491
28573
  flush: 'post'
28492
28574
  });
28493
- useRender(() => vue.createVNode("div", {
28494
- "class": ['v-timeline-item', {
28575
+ useRender(() => vue.createElementVNode("div", {
28576
+ "class": vue.normalizeClass(['v-timeline-item', {
28495
28577
  'v-timeline-item--fill-dot': props.fillDot,
28496
28578
  'v-timeline-item--side-start': props.side === 'start',
28497
28579
  'v-timeline-item--side-end': props.side === 'end'
28498
- }, props.class],
28499
- "style": [{
28580
+ }, props.class]),
28581
+ "style": vue.normalizeStyle([{
28500
28582
  '--v-timeline-dot-size': convertToUnit(dotSize.value),
28501
28583
  '--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)
28502
- }, props.style]
28503
- }, [vue.createVNode("div", {
28584
+ }, props.style])
28585
+ }, [vue.createElementVNode("div", {
28504
28586
  "class": "v-timeline-item__body",
28505
- "style": dimensionStyles.value
28587
+ "style": vue.normalizeStyle(dimensionStyles.value)
28506
28588
  }, [slots.default?.()]), vue.createVNode(VTimelineDivider, {
28507
28589
  "ref": dotRef,
28508
28590
  "hideDot": props.hideDot,
@@ -28515,7 +28597,7 @@
28515
28597
  "rounded": props.rounded
28516
28598
  }, {
28517
28599
  default: slots.icon
28518
- }), props.density !== 'compact' && vue.createVNode("div", {
28600
+ }), props.density !== 'compact' && vue.createElementVNode("div", {
28519
28601
  "class": "v-timeline-item__opposite"
28520
28602
  }, [!props.hideOpposite && slots.opposite?.()])]));
28521
28603
  return {};
@@ -28608,12 +28690,12 @@
28608
28690
  }
28609
28691
  });
28610
28692
  useRender(() => vue.createVNode(props.tag, {
28611
- "class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
28693
+ "class": vue.normalizeClass(['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
28612
28694
  'v-timeline--inset-line': !!props.lineInset
28613
- }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class],
28614
- "style": [{
28695
+ }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class]),
28696
+ "style": vue.normalizeStyle([{
28615
28697
  '--v-timeline-line-thickness': convertToUnit(props.lineThickness)
28616
- }, props.style]
28698
+ }, props.style])
28617
28699
  }, slots));
28618
28700
  return {};
28619
28701
  }
@@ -28639,9 +28721,9 @@
28639
28721
  variant: vue.toRef(() => props.variant)
28640
28722
  }
28641
28723
  });
28642
- useRender(() => vue.createVNode("div", {
28643
- "class": ['v-toolbar-items', props.class],
28644
- "style": props.style
28724
+ useRender(() => vue.createElementVNode("div", {
28725
+ "class": vue.normalizeClass(['v-toolbar-items', props.class]),
28726
+ "style": vue.normalizeStyle(props.style)
28645
28727
  }, [slots.default?.()]));
28646
28728
  return {};
28647
28729
  }
@@ -29238,7 +29320,7 @@
29238
29320
  };
29239
29321
  });
29240
29322
  }
29241
- const version$1 = "3.8.5";
29323
+ const version$1 = "3.8.7";
29242
29324
  createVuetify$1.version = version$1;
29243
29325
 
29244
29326
  // Vue's inject() can only be used in setup
@@ -29263,7 +29345,7 @@
29263
29345
  ...options
29264
29346
  });
29265
29347
  };
29266
- const version = "3.8.5";
29348
+ const version = "3.8.7";
29267
29349
  createVuetify.version = version;
29268
29350
 
29269
29351
  exports.blueprints = index;