vuetify 3.8.6 → 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 (341) hide show
  1. package/dist/json/attributes.json +1767 -1767
  2. package/dist/json/importMap-labs.json +20 -20
  3. package/dist/json/importMap.json +176 -176
  4. package/dist/json/web-types.json +3266 -3266
  5. package/dist/vuetify-labs.cjs +1002 -904
  6. package/dist/vuetify-labs.css +6207 -6207
  7. package/dist/vuetify-labs.d.ts +62 -62
  8. package/dist/vuetify-labs.esm.js +1003 -905
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +1002 -904
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.cjs +889 -791
  13. package/dist/vuetify.cjs.map +1 -1
  14. package/dist/vuetify.css +3094 -3094
  15. package/dist/vuetify.d.ts +62 -62
  16. package/dist/vuetify.esm.js +890 -792
  17. package/dist/vuetify.esm.js.map +1 -1
  18. package/dist/vuetify.js +889 -791
  19. package/dist/vuetify.js.map +1 -1
  20. package/dist/vuetify.min.css +2 -2
  21. package/dist/vuetify.min.js +971 -963
  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.js +9 -9
  28. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  29. package/lib/components/VAvatar/VAvatar.js +4 -4
  30. package/lib/components/VAvatar/VAvatar.js.map +1 -1
  31. package/lib/components/VBadge/VBadge.js +3 -3
  32. package/lib/components/VBadge/VBadge.js.map +1 -1
  33. package/lib/components/VBanner/VBanner.js +6 -6
  34. package/lib/components/VBanner/VBanner.js.map +1 -1
  35. package/lib/components/VBanner/VBannerActions.js +4 -4
  36. package/lib/components/VBanner/VBannerActions.js.map +1 -1
  37. package/lib/components/VBottomNavigation/VBottomNavigation.js +6 -6
  38. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  39. package/lib/components/VBreadcrumbs/VBreadcrumbs.js +5 -5
  40. package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  41. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.js +4 -4
  42. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.js.map +1 -1
  43. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +5 -5
  44. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  45. package/lib/components/VBtn/VBtn.js +7 -7
  46. package/lib/components/VBtn/VBtn.js.map +1 -1
  47. package/lib/components/VBtnGroup/VBtnGroup.js +4 -4
  48. package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
  49. package/lib/components/VCard/VCard.js +5 -5
  50. package/lib/components/VCard/VCard.js.map +1 -1
  51. package/lib/components/VCard/VCardActions.js +4 -4
  52. package/lib/components/VCard/VCardActions.js.map +1 -1
  53. package/lib/components/VCard/VCardItem.js +9 -9
  54. package/lib/components/VCard/VCardItem.js.map +1 -1
  55. package/lib/components/VCard/VCardSubtitle.js +4 -4
  56. package/lib/components/VCard/VCardSubtitle.js.map +1 -1
  57. package/lib/components/VCard/VCardText.js +4 -4
  58. package/lib/components/VCard/VCardText.js.map +1 -1
  59. package/lib/components/VCarousel/VCarousel.js +4 -4
  60. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  61. package/lib/components/VChip/VChip.js +11 -11
  62. package/lib/components/VChip/VChip.js.map +1 -1
  63. package/lib/components/VColorPicker/VColorPicker.js +3 -3
  64. package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
  65. package/lib/components/VColorPicker/VColorPickerCanvas.js +9 -9
  66. package/lib/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
  67. package/lib/components/VColorPicker/VColorPickerEdit.js +6 -6
  68. package/lib/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  69. package/lib/components/VColorPicker/VColorPickerPreview.js +11 -11
  70. package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  71. package/lib/components/VColorPicker/VColorPickerSwatches.js +10 -10
  72. package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  73. package/lib/components/VCombobox/VCombobox.js +9 -9
  74. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  75. package/lib/components/VConfirmEdit/VConfirmEdit.js +3 -3
  76. package/lib/components/VConfirmEdit/VConfirmEdit.js.map +1 -1
  77. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.js +3 -3
  78. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.js.map +1 -1
  79. package/lib/components/VCounter/VCounter.js +5 -5
  80. package/lib/components/VCounter/VCounter.js.map +1 -1
  81. package/lib/components/VDataIterator/VDataIterator.js +5 -5
  82. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  83. package/lib/components/VDataTable/VDataTable.js +4 -4
  84. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  85. package/lib/components/VDataTable/VDataTableColumn.js +5 -5
  86. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  87. package/lib/components/VDataTable/VDataTableFooter.js +6 -6
  88. package/lib/components/VDataTable/VDataTableFooter.js.map +1 -1
  89. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +7 -7
  90. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
  91. package/lib/components/VDataTable/VDataTableHeaders.js +11 -11
  92. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  93. package/lib/components/VDataTable/VDataTableRow.js +6 -6
  94. package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
  95. package/lib/components/VDataTable/VDataTableRows.js +7 -7
  96. package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
  97. package/lib/components/VDataTable/VDataTableServer.js +4 -4
  98. package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
  99. package/lib/components/VDataTable/VDataTableVirtual.js +14 -14
  100. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  101. package/lib/components/VDatePicker/VDatePicker.js +3 -3
  102. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  103. package/lib/components/VDatePicker/VDatePickerControls.js +5 -5
  104. package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
  105. package/lib/components/VDatePicker/VDatePickerHeader.js +8 -8
  106. package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  107. package/lib/components/VDatePicker/VDatePickerMonth.js +10 -10
  108. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  109. package/lib/components/VDatePicker/VDatePickerMonths.js +5 -5
  110. package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
  111. package/lib/components/VDatePicker/VDatePickerYears.js +5 -5
  112. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  113. package/lib/components/VDialog/__test__/VDialog.spec.browser.js +5 -5
  114. package/lib/components/VDialog/__test__/VDialog.spec.browser.js.map +1 -1
  115. package/lib/components/VDivider/VDivider.js +10 -10
  116. package/lib/components/VDivider/VDivider.js.map +1 -1
  117. package/lib/components/VEmptyState/VEmptyState.js +14 -14
  118. package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
  119. package/lib/components/VExpansionPanel/VExpansionPanel.js +6 -6
  120. package/lib/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
  121. package/lib/components/VExpansionPanel/VExpansionPanelText.js +5 -5
  122. package/lib/components/VExpansionPanel/VExpansionPanelText.js.map +1 -1
  123. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js +10 -10
  124. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js.map +1 -1
  125. package/lib/components/VExpansionPanel/VExpansionPanels.js +4 -4
  126. package/lib/components/VExpansionPanel/VExpansionPanels.js.map +1 -1
  127. package/lib/components/VFab/VFab.js +7 -7
  128. package/lib/components/VFab/VFab.js.map +1 -1
  129. package/lib/components/VField/VField.js +20 -18
  130. package/lib/components/VField/VField.js.map +1 -1
  131. package/lib/components/VField/VFieldLabel.js +4 -4
  132. package/lib/components/VField/VFieldLabel.js.map +1 -1
  133. package/lib/components/VFileInput/VFileInput.js +5 -5
  134. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  135. package/lib/components/VFooter/VFooter.js +4 -4
  136. package/lib/components/VFooter/VFooter.js.map +1 -1
  137. package/lib/components/VForm/VForm.js +4 -4
  138. package/lib/components/VForm/VForm.js.map +1 -1
  139. package/lib/components/VGrid/VContainer.js +4 -4
  140. package/lib/components/VGrid/VContainer.js.map +1 -1
  141. package/lib/components/VIcon/VIcon.js +5 -5
  142. package/lib/components/VIcon/VIcon.js.map +1 -1
  143. package/lib/components/VImg/VImg.js +19 -19
  144. package/lib/components/VImg/VImg.js.map +1 -1
  145. package/lib/components/VInfiniteScroll/VInfiniteScroll.js +10 -10
  146. package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
  147. package/lib/components/VInput/InputIcon.d.ts +1 -1
  148. package/lib/components/VInput/InputIcon.js +5 -4
  149. package/lib/components/VInput/InputIcon.js.map +1 -1
  150. package/lib/components/VInput/VInput.js +9 -9
  151. package/lib/components/VInput/VInput.js.map +1 -1
  152. package/lib/components/VItemGroup/VItemGroup.js +3 -3
  153. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  154. package/lib/components/VLabel/VLabel.js +5 -5
  155. package/lib/components/VLabel/VLabel.js.map +1 -1
  156. package/lib/components/VLayout/VLayout.js +4 -4
  157. package/lib/components/VLayout/VLayout.js.map +1 -1
  158. package/lib/components/VLayout/VLayoutItem.js +4 -4
  159. package/lib/components/VLayout/VLayoutItem.js.map +1 -1
  160. package/lib/components/VLazy/VLazy.js +6 -6
  161. package/lib/components/VLazy/VLazy.js.map +1 -1
  162. package/lib/components/VList/VList.js +4 -4
  163. package/lib/components/VList/VList.js.map +1 -1
  164. package/lib/components/VList/VListGroup.js +5 -5
  165. package/lib/components/VList/VListGroup.js.map +1 -1
  166. package/lib/components/VList/VListItem.js +11 -11
  167. package/lib/components/VList/VListItem.js.map +1 -1
  168. package/lib/components/VList/VListItemAction.js +4 -4
  169. package/lib/components/VList/VListItemAction.js.map +1 -1
  170. package/lib/components/VList/VListItemMedia.js +4 -4
  171. package/lib/components/VList/VListItemMedia.js.map +1 -1
  172. package/lib/components/VList/VListItemSubtitle.js +4 -4
  173. package/lib/components/VList/VListItemSubtitle.js.map +1 -1
  174. package/lib/components/VList/VListSubheader.js +6 -6
  175. package/lib/components/VList/VListSubheader.js.map +1 -1
  176. package/lib/components/VLocaleProvider/VLocaleProvider.js +4 -4
  177. package/lib/components/VLocaleProvider/VLocaleProvider.js.map +1 -1
  178. package/lib/components/VMain/VMain.js +5 -5
  179. package/lib/components/VMain/VMain.js.map +1 -1
  180. package/lib/components/VMessages/VMessages.js +4 -4
  181. package/lib/components/VMessages/VMessages.js.map +1 -1
  182. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +7 -7
  183. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  184. package/lib/components/VNavigationDrawer/touch.js +2 -4
  185. package/lib/components/VNavigationDrawer/touch.js.map +1 -1
  186. package/lib/components/VNumberInput/VNumberInput.js +38 -22
  187. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  188. package/lib/components/VOtpInput/VOtpInput.js +7 -7
  189. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  190. package/lib/components/VOverlay/VOverlay.js +8 -8
  191. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  192. package/lib/components/VOverlay/locationStrategies.js +16 -8
  193. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  194. package/lib/components/VPagination/VPagination.js +11 -11
  195. package/lib/components/VPagination/VPagination.js.map +1 -1
  196. package/lib/components/VParallax/VParallax.js +4 -4
  197. package/lib/components/VParallax/VParallax.js.map +1 -1
  198. package/lib/components/VProgressCircular/VProgressCircular.js +14 -14
  199. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  200. package/lib/components/VProgressLinear/VProgressLinear.js +26 -26
  201. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  202. package/lib/components/VRadioGroup/VRadioGroup.js +2 -2
  203. package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
  204. package/lib/components/VRangeSlider/VRangeSlider.js +5 -5
  205. package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
  206. package/lib/components/VRating/VRating.js +14 -14
  207. package/lib/components/VRating/VRating.js.map +1 -1
  208. package/lib/components/VResponsive/VResponsive.js +9 -9
  209. package/lib/components/VResponsive/VResponsive.js.map +1 -1
  210. package/lib/components/VSelect/VSelect.js +43 -14
  211. package/lib/components/VSelect/VSelect.js.map +1 -1
  212. package/lib/components/VSelectionControl/VSelectionControl.js +11 -11
  213. package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
  214. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js +5 -5
  215. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js.map +1 -1
  216. package/lib/components/VSheet/VSheet.js +3 -3
  217. package/lib/components/VSheet/VSheet.js.map +1 -1
  218. package/lib/components/VSkeletonLoader/VSkeletonLoader.js +4 -4
  219. package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  220. package/lib/components/VSlideGroup/VSlideGroup.js +12 -12
  221. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  222. package/lib/components/VSlider/VSlider.js +4 -4
  223. package/lib/components/VSlider/VSlider.js.map +1 -1
  224. package/lib/components/VSlider/VSliderThumb.js +19 -19
  225. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  226. package/lib/components/VSlider/VSliderTrack.js +23 -23
  227. package/lib/components/VSlider/VSliderTrack.js.map +1 -1
  228. package/lib/components/VSlider/slider.js +1 -1
  229. package/lib/components/VSlider/slider.js.map +1 -1
  230. package/lib/components/VSnackbar/VSnackbar.js +4 -4
  231. package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
  232. package/lib/components/VSnackbarQueue/VSnackbarQueue.js +3 -3
  233. package/lib/components/VSnackbarQueue/VSnackbarQueue.js.map +1 -1
  234. package/lib/components/VSparkline/VBarline.js +12 -12
  235. package/lib/components/VSparkline/VBarline.js.map +1 -1
  236. package/lib/components/VSparkline/VTrendline.js +8 -8
  237. package/lib/components/VSparkline/VTrendline.js.map +1 -1
  238. package/lib/components/VStepper/VStepper.js +2 -2
  239. package/lib/components/VStepper/VStepper.js.map +1 -1
  240. package/lib/components/VStepper/VStepperActions.js +2 -2
  241. package/lib/components/VStepper/VStepperActions.js.map +1 -1
  242. package/lib/components/VStepper/VStepperItem.js +10 -10
  243. package/lib/components/VStepper/VStepperItem.js.map +1 -1
  244. package/lib/components/VSwitch/VSwitch.js +10 -10
  245. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  246. package/lib/components/VSystemBar/VSystemBar.js +4 -4
  247. package/lib/components/VSystemBar/VSystemBar.js.map +1 -1
  248. package/lib/components/VTable/VTable.js +8 -8
  249. package/lib/components/VTable/VTable.js.map +1 -1
  250. package/lib/components/VTabs/VTab.js +4 -4
  251. package/lib/components/VTabs/VTab.js.map +1 -1
  252. package/lib/components/VTabs/VTabs.js +2 -2
  253. package/lib/components/VTabs/VTabs.js.map +1 -1
  254. package/lib/components/VTextField/VTextField.js +12 -12
  255. package/lib/components/VTextField/VTextField.js.map +1 -1
  256. package/lib/components/VTextarea/VTextarea.js +10 -10
  257. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  258. package/lib/components/VThemeProvider/VThemeProvider.js +3 -3
  259. package/lib/components/VThemeProvider/VThemeProvider.js.map +1 -1
  260. package/lib/components/VTimeline/VTimeline.js +5 -5
  261. package/lib/components/VTimeline/VTimeline.js.map +1 -1
  262. package/lib/components/VTimeline/VTimelineDivider.js +17 -17
  263. package/lib/components/VTimeline/VTimelineDivider.js.map +1 -1
  264. package/lib/components/VTimeline/VTimelineItem.js +9 -9
  265. package/lib/components/VTimeline/VTimelineItem.js.map +1 -1
  266. package/lib/components/VToolbar/VToolbar.js +13 -13
  267. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  268. package/lib/components/VToolbar/VToolbarItems.js +4 -4
  269. package/lib/components/VToolbar/VToolbarItems.js.map +1 -1
  270. package/lib/components/VToolbar/VToolbarTitle.js +4 -4
  271. package/lib/components/VToolbar/VToolbarTitle.js.map +1 -1
  272. package/lib/components/VVirtualScroll/VVirtualScroll.js +13 -13
  273. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  274. package/lib/components/VVirtualScroll/VVirtualScrollItem.js +3 -3
  275. package/lib/components/VVirtualScroll/VVirtualScrollItem.js.map +1 -1
  276. package/lib/components/VWindow/VWindow.js +13 -13
  277. package/lib/components/VWindow/VWindow.js.map +1 -1
  278. package/lib/components/VWindow/VWindowItem.js +6 -6
  279. package/lib/components/VWindow/VWindowItem.js.map +1 -1
  280. package/lib/composables/filter.js +8 -8
  281. package/lib/composables/filter.js.map +1 -1
  282. package/lib/composables/goto.js +1 -1
  283. package/lib/composables/goto.js.map +1 -1
  284. package/lib/composables/icons.js +6 -6
  285. package/lib/composables/icons.js.map +1 -1
  286. package/lib/composables/loader.js +3 -3
  287. package/lib/composables/loader.js.map +1 -1
  288. package/lib/composables/variant.js +5 -5
  289. package/lib/composables/variant.js.map +1 -1
  290. package/lib/entry-bundler.js +1 -1
  291. package/lib/framework.d.ts +62 -62
  292. package/lib/framework.js +1 -1
  293. package/lib/labs/VCalendar/VCalendar.js +15 -15
  294. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  295. package/lib/labs/VCalendar/VCalendarDay.js +4 -4
  296. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  297. package/lib/labs/VCalendar/VCalendarHeader.js +4 -4
  298. package/lib/labs/VCalendar/VCalendarHeader.js.map +1 -1
  299. package/lib/labs/VCalendar/VCalendarInterval.js +10 -10
  300. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  301. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +2 -2
  302. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  303. package/lib/labs/VCalendar/VCalendarMonthDay.js +6 -6
  304. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  305. package/lib/labs/VColorInput/VColorInput.js +3 -3
  306. package/lib/labs/VColorInput/VColorInput.js.map +1 -1
  307. package/lib/labs/VDateInput/VDateInput.js +2 -2
  308. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  309. package/lib/labs/VFileUpload/VFileUpload.js +9 -9
  310. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  311. package/lib/labs/VFileUpload/VFileUploadItem.js +3 -3
  312. package/lib/labs/VFileUpload/VFileUploadItem.js.map +1 -1
  313. package/lib/labs/VIconBtn/VIconBtn.js +7 -7
  314. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  315. package/lib/labs/VPicker/VPicker.js +7 -7
  316. package/lib/labs/VPicker/VPicker.js.map +1 -1
  317. package/lib/labs/VPullToRefresh/VPullToRefresh.js +13 -13
  318. package/lib/labs/VPullToRefresh/VPullToRefresh.js.map +1 -1
  319. package/lib/labs/VStepperVertical/VStepperVertical.js +2 -2
  320. package/lib/labs/VStepperVertical/VStepperVertical.js.map +1 -1
  321. package/lib/labs/VStepperVertical/VStepperVerticalItem.js +5 -5
  322. package/lib/labs/VStepperVertical/VStepperVerticalItem.js.map +1 -1
  323. package/lib/labs/VTimePicker/VTimePicker.js +2 -2
  324. package/lib/labs/VTimePicker/VTimePicker.js.map +1 -1
  325. package/lib/labs/VTimePicker/VTimePickerClock.js +15 -15
  326. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  327. package/lib/labs/VTimePicker/VTimePickerControls.js +24 -24
  328. package/lib/labs/VTimePicker/VTimePickerControls.js.map +1 -1
  329. package/lib/labs/VTreeview/VTreeviewChildren.js +2 -2
  330. package/lib/labs/VTreeview/VTreeviewChildren.js.map +1 -1
  331. package/lib/labs/VTreeview/VTreeviewGroup.js +2 -2
  332. package/lib/labs/VTreeview/VTreeviewGroup.js.map +1 -1
  333. package/lib/labs/VTreeview/VTreeviewItem.js +3 -3
  334. package/lib/labs/VTreeview/VTreeviewItem.js.map +1 -1
  335. package/lib/util/box.d.ts +1 -0
  336. package/lib/util/box.js +27 -0
  337. package/lib/util/box.js.map +1 -1
  338. package/lib/util/helpers.d.ts +1 -0
  339. package/lib/util/helpers.js +15 -0
  340. package/lib/util/helpers.js.map +1 -1
  341. package/package.json +7 -7
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.6
2
+ * Vuetify v3.8.7
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -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({
@@ -7329,31 +7372,31 @@
7329
7372
  const hasAppend = !!(slots.append || props.appendIcon);
7330
7373
  const hasMessages = messages.value.length > 0;
7331
7374
  const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
7332
- return vue.createVNode("div", {
7333
- "class": ['v-input', `v-input--${props.direction}`, {
7375
+ return vue.createElementVNode("div", {
7376
+ "class": vue.normalizeClass(['v-input', `v-input--${props.direction}`, {
7334
7377
  'v-input--center-affix': props.centerAffix,
7335
7378
  'v-input--focused': props.focused,
7336
7379
  'v-input--glow': props.glow,
7337
7380
  'v-input--hide-spin-buttons': props.hideSpinButtons
7338
- }, densityClasses.value, themeClasses.value, rtlClasses.value, validationClasses.value, props.class],
7339
- "style": [dimensionStyles.value, props.style]
7340
- }, [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", {
7341
7384
  "key": "prepend",
7342
7385
  "class": "v-input__prepend"
7343
7386
  }, [slots.prepend?.(slotProps.value), props.prependIcon && vue.createVNode(InputIcon, {
7344
7387
  "key": "prepend-icon",
7345
7388
  "name": "prepend",
7346
7389
  "color": iconColor.value
7347
- }, null)]), slots.default && vue.createVNode("div", {
7390
+ }, null)]), slots.default && vue.createElementVNode("div", {
7348
7391
  "class": "v-input__control"
7349
- }, [slots.default?.(slotProps.value)]), hasAppend && vue.createVNode("div", {
7392
+ }, [slots.default?.(slotProps.value)]), hasAppend && vue.createElementVNode("div", {
7350
7393
  "key": "append",
7351
7394
  "class": "v-input__append"
7352
7395
  }, [props.appendIcon && vue.createVNode(InputIcon, {
7353
7396
  "key": "append-icon",
7354
7397
  "name": "append",
7355
7398
  "color": iconColor.value
7356
- }, null), slots.append?.(slotProps.value)]), hasDetails && vue.createVNode("div", {
7399
+ }, null), slots.append?.(slotProps.value)]), hasDetails && vue.createElementVNode("div", {
7357
7400
  "id": messagesId.value,
7358
7401
  "class": "v-input__details",
7359
7402
  "role": "alert",
@@ -7744,7 +7787,7 @@
7744
7787
  min = 0;
7745
7788
  max = scrollHeight + -containerHeight;
7746
7789
  }
7747
- return Math.max(Math.min(value, max), min);
7790
+ return clamp(value, min, max);
7748
7791
  }
7749
7792
 
7750
7793
  function calculateUpdatedTarget(_ref) {
@@ -8102,42 +8145,42 @@
8102
8145
  return scrollSizeMax - Math.abs(scrollOffset.value) > 1;
8103
8146
  });
8104
8147
  useRender(() => vue.createVNode(props.tag, {
8105
- "class": ['v-slide-group', {
8148
+ "class": vue.normalizeClass(['v-slide-group', {
8106
8149
  'v-slide-group--vertical': !isHorizontal.value,
8107
8150
  'v-slide-group--has-affixes': hasAffixes.value,
8108
8151
  'v-slide-group--is-overflowing': isOverflowing.value
8109
- }, displayClasses.value, props.class],
8110
- "style": props.style,
8152
+ }, displayClasses.value, props.class]),
8153
+ "style": vue.normalizeStyle(props.style),
8111
8154
  "tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
8112
8155
  "onFocus": onFocus
8113
8156
  }, {
8114
- default: () => [hasAffixes.value && vue.createVNode("div", {
8157
+ default: () => [hasAffixes.value && vue.createElementVNode("div", {
8115
8158
  "key": "prev",
8116
- "class": ['v-slide-group__prev', {
8159
+ "class": vue.normalizeClass(['v-slide-group__prev', {
8117
8160
  'v-slide-group__prev--disabled': !hasPrev.value
8118
- }],
8161
+ }]),
8119
8162
  "onMousedown": onFocusAffixes,
8120
8163
  "onClick": () => hasPrev.value && scrollTo('prev')
8121
8164
  }, [slots.prev?.(slotProps.value) ?? vue.createVNode(VFadeTransition, null, {
8122
8165
  default: () => [vue.createVNode(VIcon, {
8123
8166
  "icon": isRtl.value ? props.nextIcon : props.prevIcon
8124
8167
  }, null)]
8125
- })]), vue.createVNode("div", {
8168
+ })]), vue.createElementVNode("div", {
8126
8169
  "key": "container",
8127
8170
  "ref": containerRef,
8128
8171
  "class": "v-slide-group__container",
8129
8172
  "onScroll": onScroll
8130
- }, [vue.createVNode("div", {
8173
+ }, [vue.createElementVNode("div", {
8131
8174
  "ref": contentRef,
8132
8175
  "class": "v-slide-group__content",
8133
8176
  "onFocusin": onFocusin,
8134
8177
  "onFocusout": onFocusout,
8135
8178
  "onKeydown": onKeydown
8136
- }, [slots.default?.(slotProps.value)])]), hasAffixes.value && vue.createVNode("div", {
8179
+ }, [slots.default?.(slotProps.value)])]), hasAffixes.value && vue.createElementVNode("div", {
8137
8180
  "key": "next",
8138
- "class": ['v-slide-group__next', {
8181
+ "class": vue.normalizeClass(['v-slide-group__next', {
8139
8182
  'v-slide-group__next--disabled': !hasNext.value
8140
- }],
8183
+ }]),
8141
8184
  "onMousedown": onFocusAffixes,
8142
8185
  "onClick": () => hasNext.value && scrollTo('next')
8143
8186
  }, [slots.next?.(slotProps.value) ?? vue.createVNode(VFadeTransition, null, {
@@ -8292,7 +8335,7 @@
8292
8335
  const VChip = genericComponent()({
8293
8336
  name: 'VChip',
8294
8337
  directives: {
8295
- Ripple
8338
+ vRipple: Ripple
8296
8339
  },
8297
8340
  props: makeVChipProps(),
8298
8341
  emits: {
@@ -8392,7 +8435,7 @@
8392
8435
  default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && vue.createVNode(VExpandXTransition, {
8393
8436
  "key": "filter"
8394
8437
  }, {
8395
- default: () => [vue.withDirectives(vue.createVNode("div", {
8438
+ default: () => [vue.withDirectives(vue.createElementVNode("div", {
8396
8439
  "class": "v-chip__filter"
8397
8440
  }, [!slots.filter ? vue.createVNode(VIcon, {
8398
8441
  "key": "filter-icon",
@@ -8406,10 +8449,10 @@
8406
8449
  }
8407
8450
  }
8408
8451
  }, slots.filter)]), [[vue.vShow, group.isSelected.value]])]
8409
- }), hasPrepend && vue.createVNode("div", {
8452
+ }), hasPrepend && vue.createElementVNode("div", {
8410
8453
  "key": "prepend",
8411
8454
  "class": "v-chip__prepend"
8412
- }, [!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, {
8413
8456
  "key": "prepend-icon",
8414
8457
  "icon": props.prependIcon,
8415
8458
  "start": true
@@ -8430,7 +8473,7 @@
8430
8473
  start: true
8431
8474
  }
8432
8475
  }
8433
- }, slots.prepend)]), vue.createVNode("div", {
8476
+ }, slots.prepend)]), vue.createElementVNode("div", {
8434
8477
  "class": "v-chip__content",
8435
8478
  "data-no-activator": ""
8436
8479
  }, [slots.default?.({
@@ -8440,10 +8483,10 @@
8440
8483
  toggle: group?.toggle,
8441
8484
  value: group?.value.value,
8442
8485
  disabled: props.disabled
8443
- }) ?? vue.toDisplayString(props.text)]), hasAppend && vue.createVNode("div", {
8486
+ }) ?? vue.toDisplayString(props.text)]), hasAppend && vue.createElementVNode("div", {
8444
8487
  "key": "append",
8445
8488
  "class": "v-chip__append"
8446
- }, [!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, {
8447
8490
  "key": "append-icon",
8448
8491
  "end": true,
8449
8492
  "icon": props.appendIcon
@@ -8464,7 +8507,7 @@
8464
8507
  icon: props.appendIcon
8465
8508
  }
8466
8509
  }
8467
- }, slots.append)]), hasClose && vue.createVNode("button", vue.mergeProps({
8510
+ }, slots.append)]), hasClose && vue.createElementVNode("button", vue.mergeProps({
8468
8511
  "key": "close",
8469
8512
  "class": "v-chip__close",
8470
8513
  "type": "button",
@@ -8482,7 +8525,7 @@
8482
8525
  }
8483
8526
  }
8484
8527
  }, slots.close)])]
8485
- }), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple, null]]);
8528
+ }), [[Ripple, isClickable.value && props.ripple, null]]);
8486
8529
  };
8487
8530
  }
8488
8531
  });
@@ -9255,13 +9298,13 @@
9255
9298
  }
9256
9299
  }));
9257
9300
  useRender(() => vue.createVNode(props.tag, {
9258
- "class": ['v-list-group', {
9301
+ "class": vue.normalizeClass(['v-list-group', {
9259
9302
  'v-list-group--prepend': list?.hasPrepend.value,
9260
9303
  'v-list-group--fluid': props.fluid,
9261
9304
  'v-list-group--subgroup': props.subgroup,
9262
9305
  'v-list-group--open': isOpen.value
9263
- }, props.class],
9264
- "style": props.style
9306
+ }, props.class]),
9307
+ "style": vue.normalizeStyle(props.style)
9265
9308
  }, {
9266
9309
  default: () => [slots.activator && vue.createVNode(VDefaultsProvider, {
9267
9310
  "defaults": activatorDefaults.value
@@ -9278,7 +9321,7 @@
9278
9321
  },
9279
9322
  "disabled": !isBooted.value
9280
9323
  }, {
9281
- default: () => [vue.withDirectives(vue.createVNode("div", {
9324
+ default: () => [vue.withDirectives(vue.createElementVNode("div", {
9282
9325
  "class": "v-list-group__items",
9283
9326
  "role": "group",
9284
9327
  "aria-labelledby": id.value
@@ -9304,10 +9347,10 @@
9304
9347
  slots
9305
9348
  } = _ref;
9306
9349
  useRender(() => vue.createVNode(props.tag, {
9307
- "class": ['v-list-item-subtitle', props.class],
9308
- "style": [{
9350
+ "class": vue.normalizeClass(['v-list-item-subtitle', props.class]),
9351
+ "style": vue.normalizeStyle([{
9309
9352
  '--v-list-item-subtitle-opacity': props.opacity
9310
- }, props.style]
9353
+ }, props.style])
9311
9354
  }, slots));
9312
9355
  return {};
9313
9356
  }
@@ -9370,7 +9413,7 @@
9370
9413
  const VListItem = genericComponent()({
9371
9414
  name: 'VListItem',
9372
9415
  directives: {
9373
- Ripple
9416
+ vRipple: Ripple
9374
9417
  },
9375
9418
  props: makeVListItemProps(),
9376
9419
  emits: {
@@ -9505,10 +9548,10 @@
9505
9548
  "onClick": onClick,
9506
9549
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
9507
9550
  }, link.linkProps), {
9508
- 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", {
9509
9552
  "key": "prepend",
9510
9553
  "class": "v-list-item__prepend"
9511
- }, [!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, {
9512
9555
  "key": "prepend-avatar",
9513
9556
  "density": props.density,
9514
9557
  "image": props.prependAvatar
@@ -9534,9 +9577,9 @@
9534
9577
  }
9535
9578
  }, {
9536
9579
  default: () => [slots.prepend?.(slotProps.value)]
9537
- }), vue.createVNode("div", {
9580
+ }), vue.createElementVNode("div", {
9538
9581
  "class": "v-list-item__spacer"
9539
- }, null)]), vue.createVNode("div", {
9582
+ }, null)]), vue.createElementVNode("div", {
9540
9583
  "class": "v-list-item__content",
9541
9584
  "data-no-activator": ""
9542
9585
  }, [hasTitle && vue.createVNode(VListItemTitle, {
@@ -9551,10 +9594,10 @@
9551
9594
  default: () => [slots.subtitle?.({
9552
9595
  subtitle: props.subtitle
9553
9596
  }) ?? vue.toDisplayString(props.subtitle)]
9554
- }), slots.default?.(slotProps.value)]), hasAppend && vue.createVNode("div", {
9597
+ }), slots.default?.(slotProps.value)]), hasAppend && vue.createElementVNode("div", {
9555
9598
  "key": "append",
9556
9599
  "class": "v-list-item__append"
9557
- }, [!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, {
9558
9601
  "key": "append-icon",
9559
9602
  "density": props.density,
9560
9603
  "icon": props.appendIcon
@@ -9580,10 +9623,10 @@
9580
9623
  }
9581
9624
  }, {
9582
9625
  default: () => [slots.append?.(slotProps.value)]
9583
- }), vue.createVNode("div", {
9626
+ }), vue.createElementVNode("div", {
9584
9627
  "class": "v-list-item__spacer"
9585
9628
  }, null)])]
9586
- }), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
9629
+ }), [[Ripple, isClickable.value && props.ripple]]);
9587
9630
  });
9588
9631
  return {
9589
9632
  activate,
@@ -9621,15 +9664,15 @@
9621
9664
  useRender(() => {
9622
9665
  const hasText = !!(slots.default || props.title);
9623
9666
  return vue.createVNode(props.tag, {
9624
- "class": ['v-list-subheader', {
9667
+ "class": vue.normalizeClass(['v-list-subheader', {
9625
9668
  'v-list-subheader--inset': props.inset,
9626
9669
  'v-list-subheader--sticky': props.sticky
9627
- }, textColorClasses.value, props.class],
9628
- "style": [{
9670
+ }, textColorClasses.value, props.class]),
9671
+ "style": vue.normalizeStyle([{
9629
9672
  textColorStyles
9630
- }, props.style]
9673
+ }, props.style])
9631
9674
  }, {
9632
- default: () => [hasText && vue.createVNode("div", {
9675
+ default: () => [hasText && vue.createElementVNode("div", {
9633
9676
  "class": "v-list-subheader__text"
9634
9677
  }, [slots.default?.() ?? props.title])]
9635
9678
  });
@@ -9674,25 +9717,25 @@
9674
9717
  return styles;
9675
9718
  });
9676
9719
  useRender(() => {
9677
- const divider = vue.createVNode("hr", {
9678
- "class": [{
9720
+ const divider = vue.createElementVNode("hr", {
9721
+ "class": vue.normalizeClass([{
9679
9722
  'v-divider': true,
9680
9723
  'v-divider--inset': props.inset,
9681
9724
  'v-divider--vertical': props.vertical
9682
- }, themeClasses.value, textColorClasses.value, props.class],
9683
- "style": [dividerStyles.value, textColorStyles.value, {
9725
+ }, themeClasses.value, textColorClasses.value, props.class]),
9726
+ "style": vue.normalizeStyle([dividerStyles.value, textColorStyles.value, {
9684
9727
  '--v-border-opacity': props.opacity
9685
- }, props.style],
9728
+ }, props.style]),
9686
9729
  "aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
9687
9730
  "role": `${attrs.role || 'separator'}`
9688
9731
  }, null);
9689
9732
  if (!slots.default) return divider;
9690
- return vue.createVNode("div", {
9691
- "class": ['v-divider__wrapper', {
9733
+ return vue.createElementVNode("div", {
9734
+ "class": vue.normalizeClass(['v-divider__wrapper', {
9692
9735
  'v-divider__wrapper--vertical': props.vertical,
9693
9736
  'v-divider__wrapper--inset': props.inset
9694
- }]
9695
- }, [divider, vue.createVNode("div", {
9737
+ }])
9738
+ }, [divider, vue.createElementVNode("div", {
9696
9739
  "class": "v-divider__content"
9697
9740
  }, [slots.default()]), divider]);
9698
9741
  });
@@ -10111,12 +10154,12 @@
10111
10154
  useRender(() => {
10112
10155
  return vue.createVNode(props.tag, {
10113
10156
  "ref": contentRef,
10114
- "class": ['v-list', {
10157
+ "class": vue.normalizeClass(['v-list', {
10115
10158
  'v-list--disabled': props.disabled,
10116
10159
  'v-list--nav': props.nav,
10117
10160
  'v-list--slim': props.slim
10118
- }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
10119
- "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]),
10120
10163
  "tabindex": props.disabled ? -1 : 0,
10121
10164
  "role": "listbox",
10122
10165
  "aria-activedescendant": undefined,
@@ -10160,11 +10203,11 @@
10160
10203
  slots
10161
10204
  } = _ref;
10162
10205
  useRender(() => vue.createVNode(props.tag, {
10163
- "class": ['v-list-item-action', {
10206
+ "class": vue.normalizeClass(['v-list-item-action', {
10164
10207
  'v-list-item-action--start': props.start,
10165
10208
  'v-list-item-action--end': props.end
10166
- }, props.class],
10167
- "style": props.style
10209
+ }, props.class]),
10210
+ "style": vue.normalizeStyle(props.style)
10168
10211
  }, slots));
10169
10212
  return {};
10170
10213
  }
@@ -10185,11 +10228,11 @@
10185
10228
  } = _ref;
10186
10229
  useRender(() => {
10187
10230
  return vue.createVNode(props.tag, {
10188
- "class": ['v-list-item-media', {
10231
+ "class": vue.normalizeClass(['v-list-item-media', {
10189
10232
  'v-list-item-media--start': props.start,
10190
10233
  'v-list-item-media--end': props.end
10191
- }, props.class],
10192
- "style": props.style
10234
+ }, props.class]),
10235
+ "style": vue.normalizeStyle(props.style)
10193
10236
  }, slots);
10194
10237
  });
10195
10238
  return {};
@@ -10278,11 +10321,19 @@
10278
10321
  vue.watch(() => props.locationStrategy, reset);
10279
10322
  vue.onScopeDispose(() => {
10280
10323
  window.removeEventListener('resize', onResize);
10324
+ visualViewport?.removeEventListener('resize', onVisualResize);
10325
+ visualViewport?.removeEventListener('scroll', onVisualScroll);
10281
10326
  updateLocation.value = undefined;
10282
10327
  });
10283
10328
  window.addEventListener('resize', onResize, {
10284
10329
  passive: true
10285
10330
  });
10331
+ visualViewport?.addEventListener('resize', onVisualResize, {
10332
+ passive: true
10333
+ });
10334
+ visualViewport?.addEventListener('scroll', onVisualScroll, {
10335
+ passive: true
10336
+ });
10286
10337
  if (typeof props.locationStrategy === 'function') {
10287
10338
  updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation;
10288
10339
  } else {
@@ -10293,6 +10344,12 @@
10293
10344
  function onResize(e) {
10294
10345
  updateLocation.value?.(e);
10295
10346
  }
10347
+ function onVisualResize(e) {
10348
+ updateLocation.value?.(e);
10349
+ }
10350
+ function onVisualScroll(e) {
10351
+ updateLocation.value?.(e);
10352
+ }
10296
10353
  return {
10297
10354
  contentStyles,
10298
10355
  updateLocation
@@ -10444,13 +10501,7 @@
10444
10501
  }
10445
10502
  }
10446
10503
  const viewport = scrollParents.reduce((box, el) => {
10447
- const rect = el.getBoundingClientRect();
10448
- const scrollBox = new Box({
10449
- x: el === document.documentElement ? 0 : rect.x,
10450
- y: el === document.documentElement ? 0 : rect.y,
10451
- width: el.clientWidth,
10452
- height: el.clientHeight
10453
- });
10504
+ const scrollBox = getElementBox(el);
10454
10505
  if (box) {
10455
10506
  return new Box({
10456
10507
  x: Math.max(box.left, scrollBox.left),
@@ -11341,7 +11392,7 @@
11341
11392
  "name": "fade-transition",
11342
11393
  "appear": true
11343
11394
  }, {
11344
- default: () => [props.modelValue && vue.createVNode("div", vue.mergeProps({
11395
+ default: () => [props.modelValue && vue.createElementVNode("div", vue.mergeProps({
11345
11396
  "class": ['v-overlay__scrim', props.color.backgroundColorClasses.value],
11346
11397
  "style": props.color.backgroundColorStyles.value
11347
11398
  }, rest), null)]
@@ -11382,7 +11433,7 @@
11382
11433
  const VOverlay = genericComponent()({
11383
11434
  name: 'VOverlay',
11384
11435
  directives: {
11385
- ClickOutside
11436
+ vClickOutside: ClickOutside
11386
11437
  },
11387
11438
  inheritAttrs: false,
11388
11439
  props: {
@@ -11562,7 +11613,7 @@
11562
11613
  _onAfterLeave();
11563
11614
  emit('afterLeave');
11564
11615
  }
11565
- useRender(() => vue.createVNode(vue.Fragment, null, [slots.activator?.({
11616
+ useRender(() => vue.createElementVNode(vue.Fragment, null, [slots.activator?.({
11566
11617
  isActive: isActive.value,
11567
11618
  targetRef,
11568
11619
  props: vue.mergeProps({
@@ -11572,7 +11623,7 @@
11572
11623
  "disabled": !teleportTarget.value,
11573
11624
  "to": teleportTarget.value
11574
11625
  }, {
11575
- default: () => [vue.createVNode("div", vue.mergeProps({
11626
+ default: () => [vue.createElementVNode("div", vue.mergeProps({
11576
11627
  "class": ['v-overlay', {
11577
11628
  'v-overlay--absolute': props.absolute || props.contained,
11578
11629
  'v-overlay--active': isActive.value,
@@ -11596,13 +11647,13 @@
11596
11647
  "onAfterEnter": onAfterEnter,
11597
11648
  "onAfterLeave": onAfterLeave
11598
11649
  }, {
11599
- default: () => [vue.withDirectives(vue.createVNode("div", vue.mergeProps({
11650
+ default: () => [vue.withDirectives(vue.createElementVNode("div", vue.mergeProps({
11600
11651
  "ref": contentEl,
11601
11652
  "class": ['v-overlay__content', props.contentClass],
11602
11653
  "style": [dimensionStyles.value, contentStyles.value]
11603
11654
  }, contentEvents.value, props.contentProps), [slots.default?.({
11604
11655
  isActive
11605
- })]), [[vue.vShow, isActive.value], [vue.resolveDirective("click-outside"), {
11656
+ })]), [[vue.vShow, isActive.value], [ClickOutside, {
11606
11657
  handler: onClickOutside,
11607
11658
  closeConditional,
11608
11659
  include: () => [activatorEl.value]
@@ -11931,11 +11982,11 @@
11931
11982
  useRender(() => vue.createVNode(MaybeTransition, {
11932
11983
  "transition": props.transition
11933
11984
  }, {
11934
- default: () => [vue.withDirectives(vue.createVNode("div", {
11935
- "class": ['v-counter', {
11985
+ default: () => [vue.withDirectives(vue.createElementVNode("div", {
11986
+ "class": vue.normalizeClass(['v-counter', {
11936
11987
  'text-error': props.max && !props.disabled && parseFloat(props.value) > parseFloat(props.max)
11937
- }, props.class],
11938
- "style": props.style
11988
+ }, props.class]),
11989
+ "style": vue.normalizeStyle(props.style)
11939
11990
  }, [slots.default ? slots.default({
11940
11991
  counter: counter.value,
11941
11992
  max: props.max,
@@ -11958,10 +12009,10 @@
11958
12009
  slots
11959
12010
  } = _ref;
11960
12011
  useRender(() => vue.createVNode(VLabel, {
11961
- "class": ['v-field-label', {
12012
+ "class": vue.normalizeClass(['v-field-label', {
11962
12013
  'v-field-label--floating': props.floating
11963
- }, props.class],
11964
- "style": props.style,
12014
+ }, props.class]),
12015
+ "style": vue.normalizeStyle(props.style),
11965
12016
  "aria-hidden": props.floating || undefined
11966
12017
  }, slots));
11967
12018
  return {};
@@ -12138,7 +12189,7 @@
12138
12189
  for: id.value
12139
12190
  }
12140
12191
  }) : props.label;
12141
- return vue.createVNode("div", vue.mergeProps({
12192
+ return vue.createElementVNode("div", vue.mergeProps({
12142
12193
  "class": ['v-field', {
12143
12194
  'v-field--active': isActive.value,
12144
12195
  'v-field--appended': hasAppend,
@@ -12158,7 +12209,7 @@
12158
12209
  }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
12159
12210
  "style": [backgroundColorStyles.value, props.style],
12160
12211
  "onClick": onClick
12161
- }, attrs), [vue.createVNode("div", {
12212
+ }, attrs), [vue.createElementVNode("div", {
12162
12213
  "class": "v-field__overlay"
12163
12214
  }, null), vue.createVNode(LoaderSlot, {
12164
12215
  "name": "v-field",
@@ -12166,23 +12217,23 @@
12166
12217
  "color": props.error ? 'error' : typeof props.loading === 'string' ? props.loading : props.color
12167
12218
  }, {
12168
12219
  default: slots.loader
12169
- }), hasPrepend && vue.createVNode("div", {
12220
+ }), hasPrepend && vue.createElementVNode("div", {
12170
12221
  "key": "prepend",
12171
12222
  "class": "v-field__prepend-inner"
12172
12223
  }, [props.prependInnerIcon && vue.createVNode(InputIcon, {
12173
12224
  "key": "prepend-icon",
12174
12225
  "name": "prependInner",
12175
12226
  "color": iconColor.value
12176
- }, null), slots['prepend-inner']?.(slotProps.value)]), vue.createVNode("div", {
12227
+ }, null), slots['prepend-inner']?.(slotProps.value)]), vue.createElementVNode("div", {
12177
12228
  "class": "v-field__field",
12178
12229
  "data-no-activator": ""
12179
12230
  }, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasFloatingLabel.value && vue.createVNode(VFieldLabel, {
12180
12231
  "key": "floating-label",
12181
12232
  "ref": floatingLabelRef,
12182
- "class": [textColorClasses.value],
12233
+ "class": vue.normalizeClass([textColorClasses.value]),
12183
12234
  "floating": true,
12184
12235
  "for": id.value,
12185
- "style": textColorStyles.value
12236
+ "style": vue.normalizeStyle(textColorStyles.value)
12186
12237
  }, {
12187
12238
  default: () => [label()]
12188
12239
  }), hasLabel.value && vue.createVNode(VFieldLabel, {
@@ -12200,14 +12251,14 @@
12200
12251
  },
12201
12252
  focus,
12202
12253
  blur
12203
- }) ?? vue.createVNode("div", {
12254
+ }) ?? vue.createElementVNode("div", {
12204
12255
  "id": id.value,
12205
12256
  "class": "v-field__input",
12206
12257
  "aria-describedby": messagesId.value
12207
12258
  }, null)]), hasClear && vue.createVNode(VExpandXTransition, {
12208
12259
  "key": "clear"
12209
12260
  }, {
12210
- default: () => [vue.withDirectives(vue.createVNode("div", {
12261
+ default: () => [vue.withDirectives(vue.createElementVNode("div", {
12211
12262
  "class": "v-field__clearable",
12212
12263
  "onMousedown": e => {
12213
12264
  e.preventDefault();
@@ -12225,27 +12276,29 @@
12225
12276
  props: {
12226
12277
  onFocus: focus,
12227
12278
  onBlur: blur,
12228
- onClick: props['onClick:clear']
12279
+ onClick: props['onClick:clear'],
12280
+ tabindex: -1
12229
12281
  }
12230
12282
  }) : vue.createVNode(InputIcon, {
12231
12283
  "name": "clear",
12232
12284
  "onFocus": focus,
12233
- "onBlur": blur
12285
+ "onBlur": blur,
12286
+ "tabindex": -1
12234
12287
  }, null)]
12235
12288
  })]), [[vue.vShow, props.dirty]])]
12236
- }), hasAppend && vue.createVNode("div", {
12289
+ }), hasAppend && vue.createElementVNode("div", {
12237
12290
  "key": "append",
12238
12291
  "class": "v-field__append-inner"
12239
12292
  }, [slots['append-inner']?.(slotProps.value), props.appendInnerIcon && vue.createVNode(InputIcon, {
12240
12293
  "key": "append-icon",
12241
12294
  "name": "appendInner",
12242
12295
  "color": iconColor.value
12243
- }, null)]), vue.createVNode("div", {
12244
- "class": ['v-field__outline', textColorClasses.value],
12245
- "style": textColorStyles.value
12246
- }, [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", {
12247
12300
  "class": "v-field__outline__start"
12248
- }, null), hasFloatingLabel.value && vue.createVNode("div", {
12301
+ }, null), hasFloatingLabel.value && vue.createElementVNode("div", {
12249
12302
  "class": "v-field__outline__notch"
12250
12303
  }, [vue.createVNode(VFieldLabel, {
12251
12304
  "ref": floatingLabelRef,
@@ -12253,7 +12306,7 @@
12253
12306
  "for": id.value
12254
12307
  }, {
12255
12308
  default: () => [label()]
12256
- })]), vue.createVNode("div", {
12309
+ })]), vue.createElementVNode("div", {
12257
12310
  "class": "v-field__outline__end"
12258
12311
  }, null)]), isPlainOrUnderlined.value && hasFloatingLabel.value && vue.createVNode(VFieldLabel, {
12259
12312
  "ref": floatingLabelRef,
@@ -12294,7 +12347,7 @@
12294
12347
  const VTextField = genericComponent()({
12295
12348
  name: 'VTextField',
12296
12349
  directives: {
12297
- Intersect
12350
+ vIntersect: Intersect
12298
12351
  },
12299
12352
  inheritAttrs: false,
12300
12353
  props: makeVTextFieldProps(),
@@ -12426,7 +12479,7 @@
12426
12479
  ...slotProps
12427
12480
  }
12428
12481
  } = _ref3;
12429
- const inputNode = vue.withDirectives(vue.createVNode("input", vue.mergeProps({
12482
+ const inputNode = vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
12430
12483
  "ref": inputRef,
12431
12484
  "value": model.value,
12432
12485
  "onInput": onInput,
@@ -12439,29 +12492,29 @@
12439
12492
  "type": props.type,
12440
12493
  "onFocus": onFocus,
12441
12494
  "onBlur": blur
12442
- }, slotProps, inputAttrs), null), [[vue.resolveDirective("intersect"), {
12495
+ }, slotProps, inputAttrs), null), [[Intersect, {
12443
12496
  handler: onIntersect
12444
12497
  }, null, {
12445
12498
  once: true
12446
12499
  }]]);
12447
- return vue.createVNode(vue.Fragment, null, [props.prefix && vue.createVNode("span", {
12500
+ return vue.createElementVNode(vue.Fragment, null, [props.prefix && vue.createElementVNode("span", {
12448
12501
  "class": "v-text-field__prefix"
12449
- }, [vue.createVNode("span", {
12502
+ }, [vue.createElementVNode("span", {
12450
12503
  "class": "v-text-field__prefix__text"
12451
- }, [props.prefix])]), slots.default ? vue.createVNode("div", {
12452
- "class": fieldClass,
12504
+ }, [props.prefix])]), slots.default ? vue.createElementVNode("div", {
12505
+ "class": vue.normalizeClass(fieldClass),
12453
12506
  "data-no-activator": ""
12454
12507
  }, [slots.default(), inputNode]) : vue.cloneVNode(inputNode, {
12455
12508
  class: fieldClass
12456
- }), props.suffix && vue.createVNode("span", {
12509
+ }), props.suffix && vue.createElementVNode("span", {
12457
12510
  "class": "v-text-field__suffix"
12458
- }, [vue.createVNode("span", {
12511
+ }, [vue.createElementVNode("span", {
12459
12512
  "class": "v-text-field__suffix__text"
12460
12513
  }, [props.suffix])])]);
12461
12514
  }
12462
12515
  });
12463
12516
  },
12464
- 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, {
12465
12518
  "active": props.persistentCounter || isFocused.value,
12466
12519
  "value": counterValue.value,
12467
12520
  "max": max.value,
@@ -12499,9 +12552,9 @@
12499
12552
  vue.watch(() => contentRect.value?.height, height => {
12500
12553
  if (height != null) emit('update:height', height);
12501
12554
  });
12502
- useRender(() => props.renderless ? vue.createVNode(vue.Fragment, null, [slots.default?.({
12555
+ useRender(() => props.renderless ? vue.createElementVNode(vue.Fragment, null, [slots.default?.({
12503
12556
  itemRef: resizeRef
12504
- })]) : vue.createVNode("div", vue.mergeProps({
12557
+ })]) : vue.createElementVNode("div", vue.mergeProps({
12505
12558
  "ref": resizeRef,
12506
12559
  "class": ['v-virtual-scroll__item', props.class],
12507
12560
  "style": props.style
@@ -12836,30 +12889,30 @@
12836
12889
  ...slotProps
12837
12890
  })
12838
12891
  }));
12839
- return props.renderless ? vue.createVNode(vue.Fragment, null, [vue.createVNode("div", {
12892
+ return props.renderless ? vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("div", {
12840
12893
  "ref": markerRef,
12841
12894
  "class": "v-virtual-scroll__spacer",
12842
- "style": {
12895
+ "style": vue.normalizeStyle({
12843
12896
  paddingTop: convertToUnit(paddingTop.value)
12844
- }
12845
- }, null), children, vue.createVNode("div", {
12897
+ })
12898
+ }, null), children, vue.createElementVNode("div", {
12846
12899
  "class": "v-virtual-scroll__spacer",
12847
- "style": {
12900
+ "style": vue.normalizeStyle({
12848
12901
  paddingBottom: convertToUnit(paddingBottom.value)
12849
- }
12850
- }, null)]) : vue.createVNode("div", {
12902
+ })
12903
+ }, null)]) : vue.createElementVNode("div", {
12851
12904
  "ref": containerRef,
12852
- "class": ['v-virtual-scroll', props.class],
12905
+ "class": vue.normalizeClass(['v-virtual-scroll', props.class]),
12853
12906
  "onScrollPassive": handleScroll,
12854
12907
  "onScrollend": handleScrollend,
12855
- "style": [dimensionStyles.value, props.style]
12856
- }, [vue.createVNode("div", {
12908
+ "style": vue.normalizeStyle([dimensionStyles.value, props.style])
12909
+ }, [vue.createElementVNode("div", {
12857
12910
  "ref": markerRef,
12858
12911
  "class": "v-virtual-scroll__container",
12859
- "style": {
12912
+ "style": vue.normalizeStyle({
12860
12913
  paddingTop: convertToUnit(paddingTop.value),
12861
12914
  paddingBottom: convertToUnit(paddingBottom.value)
12862
- }
12915
+ })
12863
12916
  }, [children])]);
12864
12917
  });
12865
12918
  return {
@@ -13021,6 +13074,7 @@
13021
13074
  const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
13022
13075
  const isFocused = vue.shallowRef(false);
13023
13076
  let keyboardLookupPrefix = '';
13077
+ let keyboardLookupIndex = -1;
13024
13078
  let keyboardLookupLastTime;
13025
13079
  const displayItems = vue.computed(() => {
13026
13080
  if (props.hideSelected) {
@@ -13088,18 +13142,46 @@
13088
13142
  const now = performance.now();
13089
13143
  if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
13090
13144
  keyboardLookupPrefix = '';
13145
+ keyboardLookupIndex = -1;
13091
13146
  }
13092
13147
  keyboardLookupPrefix += e.key.toLowerCase();
13093
13148
  keyboardLookupLastTime = now;
13094
- const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix));
13095
- if (item !== undefined) {
13096
- if (!props.multiple) {
13097
- model.value = [item];
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;
13098
13158
  }
13099
- const index = displayItems.value.indexOf(item);
13100
- if (~index && IN_BROWSER) {
13101
- listRef.value?.focus(index);
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
+ }
13102
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) {
13184
+ model.value = [item];
13103
13185
  }
13104
13186
  }
13105
13187
 
@@ -13201,7 +13283,7 @@
13201
13283
  "title": t(label.value)
13202
13284
  }), {
13203
13285
  ...slots,
13204
- default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
13286
+ default: () => vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
13205
13287
  "ref": vMenuRef,
13206
13288
  "modelValue": menu.value,
13207
13289
  "onUpdate:modelValue": $event => menu.value = $event,
@@ -13259,7 +13341,7 @@
13259
13341
  let {
13260
13342
  isSelected
13261
13343
  } = _ref3;
13262
- 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, {
13263
13345
  "key": item.value,
13264
13346
  "modelValue": isSelected,
13265
13347
  "ripple": false,
@@ -13305,7 +13387,7 @@
13305
13387
  index
13306
13388
  })) : undefined;
13307
13389
  if (hasSlot && !slotContent) return undefined;
13308
- return vue.createVNode("div", {
13390
+ return vue.createElementVNode("div", {
13309
13391
  "key": item.value,
13310
13392
  "class": "v-select__selection"
13311
13393
  }, [hasChips ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
@@ -13325,9 +13407,9 @@
13325
13407
  }
13326
13408
  }, {
13327
13409
  default: () => [slotContent]
13328
- }) : slotContent ?? vue.createVNode("span", {
13410
+ }) : slotContent ?? vue.createElementVNode("span", {
13329
13411
  "class": "v-select__selection-text"
13330
- }, [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", {
13331
13413
  "class": "v-select__selection-comma"
13332
13414
  }, [vue.createTextVNode(",")])])]);
13333
13415
  })]),
@@ -13335,7 +13417,7 @@
13335
13417
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13336
13418
  args[_key] = arguments[_key];
13337
13419
  }
13338
- 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, {
13339
13421
  "class": "v-select__menu-icon",
13340
13422
  "color": vTextFieldRef.value?.fieldIconColor,
13341
13423
  "icon": props.menuIcon
@@ -13486,17 +13568,17 @@
13486
13568
  if (matches == null || !matches.length) return text;
13487
13569
  return matches.map((match, i) => {
13488
13570
  const start = i === 0 ? 0 : matches[i - 1][1];
13489
- const result = [vue.createVNode("span", {
13490
- "class": `${name}__unmask`
13491
- }, [text.slice(start, match[0])]), vue.createVNode("span", {
13492
- "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`)
13493
13575
  }, [text.slice(match[0], match[1])])];
13494
13576
  if (i === matches.length - 1) {
13495
- result.push(vue.createVNode("span", {
13496
- "class": `${name}__unmask`
13577
+ result.push(vue.createElementVNode("span", {
13578
+ "class": vue.normalizeClass(`${name}__unmask`)
13497
13579
  }, [text.slice(match[1])]));
13498
13580
  }
13499
- return vue.createVNode(vue.Fragment, null, [result]);
13581
+ return vue.createElementVNode(vue.Fragment, null, [result]);
13500
13582
  });
13501
13583
  }
13502
13584
 
@@ -13798,7 +13880,7 @@
13798
13880
  "onKeydown": onKeydown
13799
13881
  }), {
13800
13882
  ...slots,
13801
- default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
13883
+ default: () => vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
13802
13884
  "ref": vMenuRef,
13803
13885
  "modelValue": menu.value,
13804
13886
  "onUpdate:modelValue": $event => menu.value = $event,
@@ -13857,7 +13939,7 @@
13857
13939
  let {
13858
13940
  isSelected
13859
13941
  } = _ref4;
13860
- 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, {
13861
13943
  "key": item.value,
13862
13944
  "modelValue": isSelected,
13863
13945
  "ripple": false,
@@ -13906,10 +13988,10 @@
13906
13988
  index
13907
13989
  })) : undefined;
13908
13990
  if (hasSlot && !slotContent) return undefined;
13909
- return vue.createVNode("div", {
13991
+ return vue.createElementVNode("div", {
13910
13992
  "key": item.value,
13911
- "class": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],
13912
- "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 : {})
13913
13995
  }, [hasChips.value ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
13914
13996
  "key": "chip",
13915
13997
  "closable": props.closableChips,
@@ -13927,9 +14009,9 @@
13927
14009
  }
13928
14010
  }, {
13929
14011
  default: () => [slotContent]
13930
- }) : slotContent ?? vue.createVNode("span", {
14012
+ }) : slotContent ?? vue.createElementVNode("span", {
13931
14013
  "class": "v-autocomplete__selection-text"
13932
- }, [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", {
13933
14015
  "class": "v-autocomplete__selection-comma"
13934
14016
  }, [vue.createTextVNode(",")])])]);
13935
14017
  })]),
@@ -13937,7 +14019,7 @@
13937
14019
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13938
14020
  args[_key] = arguments[_key];
13939
14021
  }
13940
- 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, {
13941
14023
  "class": "v-autocomplete__menu-icon",
13942
14024
  "color": vTextFieldRef.value?.fieldIconColor,
13943
14025
  "icon": props.menuIcon,
@@ -14034,12 +14116,12 @@
14034
14116
  }, attrs, {
14035
14117
  "style": props.style
14036
14118
  }), {
14037
- default: () => [vue.createVNode("div", {
14119
+ default: () => [vue.createElementVNode("div", {
14038
14120
  "class": "v-badge__wrapper"
14039
14121
  }, [ctx.slots.default?.(), vue.createVNode(MaybeTransition, {
14040
14122
  "transition": props.transition
14041
14123
  }, {
14042
- default: () => [vue.withDirectives(vue.createVNode("span", vue.mergeProps({
14124
+ default: () => [vue.withDirectives(vue.createElementVNode("span", vue.mergeProps({
14043
14125
  "class": ['v-badge__badge', themeClasses.value, backgroundColorClasses.value, roundedClasses.value, textColorClasses.value],
14044
14126
  "style": [backgroundColorStyles.value, textColorStyles.value, props.inline ? {} : locationStyles.value],
14045
14127
  "aria-atomic": "true",
@@ -14076,9 +14158,9 @@
14076
14158
  variant: 'text'
14077
14159
  }
14078
14160
  });
14079
- useRender(() => vue.createVNode("div", {
14080
- "class": ['v-banner-actions', props.class],
14081
- "style": props.style
14161
+ useRender(() => vue.createElementVNode("div", {
14162
+ "class": vue.normalizeClass(['v-banner-actions', props.class]),
14163
+ "style": vue.normalizeStyle(props.style)
14082
14164
  }, [slots.default?.()]));
14083
14165
  return {};
14084
14166
  }
@@ -14164,15 +14246,15 @@
14164
14246
  const hasPrependMedia = !!(props.avatar || props.icon);
14165
14247
  const hasPrepend = !!(hasPrependMedia || slots.prepend);
14166
14248
  return vue.createVNode(props.tag, {
14167
- "class": ['v-banner', {
14249
+ "class": vue.normalizeClass(['v-banner', {
14168
14250
  'v-banner--stacked': props.stacked || mobile.value,
14169
14251
  'v-banner--sticky': props.sticky,
14170
14252
  [`v-banner--${props.lines}-line`]: !!props.lines
14171
- }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
14172
- "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]),
14173
14255
  "role": "banner"
14174
14256
  }, {
14175
- default: () => [hasPrepend && vue.createVNode("div", {
14257
+ default: () => [hasPrepend && vue.createElementVNode("div", {
14176
14258
  "key": "prepend",
14177
14259
  "class": "v-banner__prepend"
14178
14260
  }, [!slots.prepend ? vue.createVNode(VAvatar, {
@@ -14192,7 +14274,7 @@
14192
14274
  image: props.avatar
14193
14275
  }
14194
14276
  }
14195
- }, slots.prepend)]), vue.createVNode("div", {
14277
+ }, slots.prepend)]), vue.createElementVNode("div", {
14196
14278
  "class": "v-banner__content"
14197
14279
  }, [hasText && vue.createVNode(VBannerText, {
14198
14280
  "key": "text"
@@ -14301,16 +14383,16 @@
14301
14383
  });
14302
14384
  useRender(() => {
14303
14385
  return vue.createVNode(props.tag, {
14304
- "class": ['v-bottom-navigation', {
14386
+ "class": vue.normalizeClass(['v-bottom-navigation', {
14305
14387
  'v-bottom-navigation--active': isActive.value,
14306
14388
  'v-bottom-navigation--grow': props.grow,
14307
14389
  'v-bottom-navigation--shift': props.mode === 'shift'
14308
- }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
14309
- "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, {
14310
14392
  height: convertToUnit(height.value)
14311
- }, ssrBootStyles.value, props.style]
14393
+ }, ssrBootStyles.value, props.style])
14312
14394
  }, {
14313
- default: () => [slots.default && vue.createVNode("div", {
14395
+ default: () => [slots.default && vue.createElementVNode("div", {
14314
14396
  "class": "v-bottom-navigation__content"
14315
14397
  }, [slots.default()])]
14316
14398
  });
@@ -14497,10 +14579,10 @@
14497
14579
  let {
14498
14580
  slots
14499
14581
  } = _ref;
14500
- useRender(() => vue.createVNode("li", {
14582
+ useRender(() => vue.createElementVNode("li", {
14501
14583
  "aria-hidden": "true",
14502
- "class": ['v-breadcrumbs-divider', props.class],
14503
- "style": props.style
14584
+ "class": vue.normalizeClass(['v-breadcrumbs-divider', props.class]),
14585
+ "style": vue.normalizeStyle(props.style)
14504
14586
  }, [slots?.default?.() ?? props.divider]));
14505
14587
  return {};
14506
14588
  }
@@ -14535,15 +14617,15 @@
14535
14617
  } = useTextColor(() => isActive.value ? props.activeColor : props.color);
14536
14618
  useRender(() => {
14537
14619
  return vue.createVNode(props.tag, {
14538
- "class": ['v-breadcrumbs-item', {
14620
+ "class": vue.normalizeClass(['v-breadcrumbs-item', {
14539
14621
  'v-breadcrumbs-item--active': isActive.value,
14540
14622
  'v-breadcrumbs-item--disabled': props.disabled,
14541
14623
  [`${props.activeClass}`]: isActive.value && props.activeClass
14542
- }, textColorClasses.value, props.class],
14543
- "style": [textColorStyles.value, props.style],
14624
+ }, textColorClasses.value, props.class]),
14625
+ "style": vue.normalizeStyle([textColorStyles.value, props.style]),
14544
14626
  "aria-current": isActive.value ? 'page' : undefined
14545
14627
  }, {
14546
- 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({
14547
14629
  "class": "v-breadcrumbs-item--link",
14548
14630
  "onClick": link.navigate
14549
14631
  }, link.linkProps), [slots.default?.() ?? props.title])]
@@ -14619,10 +14701,10 @@
14619
14701
  useRender(() => {
14620
14702
  const hasPrepend = !!(slots.prepend || props.icon);
14621
14703
  return vue.createVNode(props.tag, {
14622
- "class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],
14623
- "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])
14624
14706
  }, {
14625
- default: () => [hasPrepend && vue.createVNode("li", {
14707
+ default: () => [hasPrepend && vue.createElementVNode("li", {
14626
14708
  "key": "prepend",
14627
14709
  "class": "v-breadcrumbs__prepend"
14628
14710
  }, [!slots.prepend ? vue.createVNode(VIcon, {
@@ -14643,7 +14725,7 @@
14643
14725
  item,
14644
14726
  raw
14645
14727
  } = _ref2;
14646
- return vue.createVNode(vue.Fragment, null, [slots.item?.({
14728
+ return vue.createElementVNode(vue.Fragment, null, [slots.item?.({
14647
14729
  item,
14648
14730
  index
14649
14731
  }) ?? vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
@@ -14682,9 +14764,9 @@
14682
14764
  variant: 'text'
14683
14765
  }
14684
14766
  });
14685
- useRender(() => vue.createVNode("div", {
14686
- "class": ['v-card-actions', props.class],
14687
- "style": props.style
14767
+ useRender(() => vue.createElementVNode("div", {
14768
+ "class": vue.normalizeClass(['v-card-actions', props.class]),
14769
+ "style": vue.normalizeStyle(props.style)
14688
14770
  }, [slots.default?.()]));
14689
14771
  return {};
14690
14772
  }
@@ -14703,10 +14785,10 @@
14703
14785
  slots
14704
14786
  } = _ref;
14705
14787
  useRender(() => vue.createVNode(props.tag, {
14706
- "class": ['v-card-subtitle', props.class],
14707
- "style": [{
14788
+ "class": vue.normalizeClass(['v-card-subtitle', props.class]),
14789
+ "style": vue.normalizeStyle([{
14708
14790
  '--v-card-subtitle-opacity': props.opacity
14709
- }, props.style]
14791
+ }, props.style])
14710
14792
  }, slots));
14711
14793
  return {};
14712
14794
  }
@@ -14745,13 +14827,13 @@
14745
14827
  const hasAppend = !!(hasAppendMedia || slots.append);
14746
14828
  const hasTitle = !!(props.title != null || slots.title);
14747
14829
  const hasSubtitle = !!(props.subtitle != null || slots.subtitle);
14748
- return vue.createVNode("div", {
14749
- "class": ['v-card-item', props.class],
14750
- "style": props.style
14751
- }, [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", {
14752
14834
  "key": "prepend",
14753
14835
  "class": "v-card-item__prepend"
14754
- }, [!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, {
14755
14837
  "key": "prepend-avatar",
14756
14838
  "density": props.density,
14757
14839
  "image": props.prependAvatar
@@ -14772,7 +14854,7 @@
14772
14854
  icon: props.prependIcon
14773
14855
  }
14774
14856
  }
14775
- }, slots.prepend)]), vue.createVNode("div", {
14857
+ }, slots.prepend)]), vue.createElementVNode("div", {
14776
14858
  "class": "v-card-item__content"
14777
14859
  }, [hasTitle && vue.createVNode(VCardTitle, {
14778
14860
  "key": "title"
@@ -14782,10 +14864,10 @@
14782
14864
  "key": "subtitle"
14783
14865
  }, {
14784
14866
  default: () => [slots.subtitle?.() ?? vue.toDisplayString(props.subtitle)]
14785
- }), slots.default?.()]), hasAppend && vue.createVNode("div", {
14867
+ }), slots.default?.()]), hasAppend && vue.createElementVNode("div", {
14786
14868
  "key": "append",
14787
14869
  "class": "v-card-item__append"
14788
- }, [!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, {
14789
14871
  "key": "append-icon",
14790
14872
  "density": props.density,
14791
14873
  "icon": props.appendIcon
@@ -14825,10 +14907,10 @@
14825
14907
  slots
14826
14908
  } = _ref;
14827
14909
  useRender(() => vue.createVNode(props.tag, {
14828
- "class": ['v-card-text', props.class],
14829
- "style": [{
14910
+ "class": vue.normalizeClass(['v-card-text', props.class]),
14911
+ "style": vue.normalizeStyle([{
14830
14912
  '--v-card-text-opacity': props.opacity
14831
- }, props.style]
14913
+ }, props.style])
14832
14914
  }, slots));
14833
14915
  return {};
14834
14916
  }
@@ -14884,7 +14966,7 @@
14884
14966
  const VCard = genericComponent()({
14885
14967
  name: 'VCard',
14886
14968
  directives: {
14887
- Ripple
14969
+ vRipple: Ripple
14888
14970
  },
14889
14971
  props: makeVCardProps(),
14890
14972
  setup(props, _ref) {
@@ -14948,7 +15030,7 @@
14948
15030
  "onClick": isClickable && link.navigate,
14949
15031
  "tabindex": props.disabled ? -1 : undefined
14950
15032
  }, link.linkProps), {
14951
- default: () => [hasImage && vue.createVNode("div", {
15033
+ default: () => [hasImage && vue.createElementVNode("div", {
14952
15034
  "key": "image",
14953
15035
  "class": "v-card__image"
14954
15036
  }, [!slots.image ? vue.createVNode(VImg, {
@@ -14991,7 +15073,7 @@
14991
15073
  }), slots.default?.(), slots.actions && vue.createVNode(VCardActions, null, {
14992
15074
  default: slots.actions
14993
15075
  }), genOverlays(isClickable, 'v-card')]
14994
- }), [[vue.resolveDirective("ripple"), isClickable && props.ripple]]);
15076
+ }), [[Ripple, isClickable && props.ripple]]);
14995
15077
  });
14996
15078
  return {};
14997
15079
  }
@@ -15150,7 +15232,7 @@
15150
15232
  const VWindow = genericComponent()({
15151
15233
  name: 'VWindow',
15152
15234
  directives: {
15153
- Touch
15235
+ vTouch: Touch
15154
15236
  },
15155
15237
  props: makeVWindowProps(),
15156
15238
  emits: {
@@ -15222,7 +15304,7 @@
15222
15304
  };
15223
15305
  arrows.push(canMoveBack.value ? slots.prev ? slots.prev({
15224
15306
  props: prevProps
15225
- }) : vue.createVNode(VBtn, prevProps, null) : vue.createVNode("div", null, null));
15307
+ }) : vue.createVNode(VBtn, prevProps, null) : vue.createElementVNode("div", null, null));
15226
15308
  const nextProps = {
15227
15309
  icon: isRtl.value ? props.prevIcon : props.nextIcon,
15228
15310
  class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,
@@ -15231,7 +15313,7 @@
15231
15313
  };
15232
15314
  arrows.push(canMoveForward.value ? slots.next ? slots.next({
15233
15315
  props: nextProps
15234
- }) : vue.createVNode(VBtn, nextProps, null) : vue.createVNode("div", null, null));
15316
+ }) : vue.createVNode(VBtn, nextProps, null) : vue.createElementVNode("div", null, null));
15235
15317
  return arrows;
15236
15318
  });
15237
15319
  const touchOptions = vue.computed(() => {
@@ -15257,24 +15339,24 @@
15257
15339
  });
15258
15340
  useRender(() => vue.withDirectives(vue.createVNode(props.tag, {
15259
15341
  "ref": rootRef,
15260
- "class": ['v-window', {
15342
+ "class": vue.normalizeClass(['v-window', {
15261
15343
  'v-window--show-arrows-on-hover': props.showArrows === 'hover'
15262
- }, themeClasses.value, props.class],
15263
- "style": props.style
15344
+ }, themeClasses.value, props.class]),
15345
+ "style": vue.normalizeStyle(props.style)
15264
15346
  }, {
15265
- default: () => [vue.createVNode("div", {
15347
+ default: () => [vue.createElementVNode("div", {
15266
15348
  "class": "v-window__container",
15267
- "style": {
15349
+ "style": vue.normalizeStyle({
15268
15350
  height: transitionHeight.value
15269
- }
15351
+ })
15270
15352
  }, [slots.default?.({
15271
15353
  group
15272
- }), props.showArrows !== false && vue.createVNode("div", {
15354
+ }), props.showArrows !== false && vue.createElementVNode("div", {
15273
15355
  "class": "v-window__controls"
15274
15356
  }, [arrows.value])]), slots.additional?.({
15275
15357
  group
15276
15358
  })]
15277
- }), [[vue.resolveDirective("touch"), touchOptions.value]]));
15359
+ }), [[Touch, touchOptions.value]]));
15278
15360
  return {
15279
15361
  group
15280
15362
  };
@@ -15359,12 +15441,12 @@
15359
15441
  let {
15360
15442
  group
15361
15443
  } = _ref2;
15362
- return vue.createVNode(vue.Fragment, null, [!props.hideDelimiters && vue.createVNode("div", {
15444
+ return vue.createElementVNode(vue.Fragment, null, [!props.hideDelimiters && vue.createElementVNode("div", {
15363
15445
  "class": "v-carousel__controls",
15364
- "style": {
15446
+ "style": vue.normalizeStyle({
15365
15447
  left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',
15366
15448
  right: props.verticalDelimiters === 'right' ? 0 : 'auto'
15367
- }
15449
+ })
15368
15450
  }, [group.items.value.length > 0 && vue.createVNode(VDefaultsProvider, {
15369
15451
  "defaults": {
15370
15452
  VBtn: {
@@ -15418,7 +15500,7 @@
15418
15500
  const VWindowItem = genericComponent()({
15419
15501
  name: 'VWindowItem',
15420
15502
  directives: {
15421
- Touch
15503
+ vTouch: Touch
15422
15504
  },
15423
15505
  props: makeVWindowItemProps(),
15424
15506
  emits: {
@@ -15502,9 +15584,9 @@
15502
15584
  "transition": transition.value,
15503
15585
  "disabled": !isBooted.value
15504
15586
  }, {
15505
- default: () => [vue.withDirectives(vue.createVNode("div", {
15506
- "class": ['v-window-item', groupItem.selectedClass.value, props.class],
15507
- "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)
15508
15590
  }, [hasContent.value && slots.default?.()]), [[vue.vShow, groupItem.isSelected.value]])]
15509
15591
  }));
15510
15592
  return {
@@ -15704,21 +15786,21 @@
15704
15786
  immediate: true
15705
15787
  });
15706
15788
  vue.onMounted(() => updateCanvas());
15707
- useRender(() => vue.createVNode("div", {
15789
+ useRender(() => vue.createElementVNode("div", {
15708
15790
  "ref": resizeRef,
15709
- "class": ['v-color-picker-canvas', props.class],
15710
- "style": props.style,
15791
+ "class": vue.normalizeClass(['v-color-picker-canvas', props.class]),
15792
+ "style": vue.normalizeStyle(props.style),
15711
15793
  "onMousedown": handleMouseDown,
15712
15794
  "onTouchstartPassive": handleMouseDown
15713
- }, [vue.createVNode("canvas", {
15795
+ }, [vue.createElementVNode("canvas", {
15714
15796
  "ref": canvasRef,
15715
15797
  "width": canvasWidth.value,
15716
15798
  "height": canvasHeight.value
15717
- }, null), props.color && vue.createVNode("div", {
15718
- "class": ['v-color-picker-canvas__dot', {
15799
+ }, null), props.color && vue.createElementVNode("div", {
15800
+ "class": vue.normalizeClass(['v-color-picker-canvas__dot', {
15719
15801
  'v-color-picker-canvas__dot--disabled': props.disabled
15720
- }],
15721
- "style": dotStyles.value
15802
+ }]),
15803
+ "style": vue.normalizeStyle(dotStyles.value)
15722
15804
  }, null)]));
15723
15805
  return {};
15724
15806
  }
@@ -15918,9 +16000,9 @@
15918
16000
  label,
15919
16001
  ...rest
15920
16002
  } = _ref;
15921
- return vue.createVNode("div", {
16003
+ return vue.createElementVNode("div", {
15922
16004
  "class": "v-color-picker-edit__input"
15923
- }, [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])]);
15924
16006
  };
15925
16007
  const makeVColorPickerEditProps = propsFactory({
15926
16008
  color: Object,
@@ -15977,9 +16059,9 @@
15977
16059
  };
15978
16060
  });
15979
16061
  });
15980
- useRender(() => vue.createVNode("div", {
15981
- "class": ['v-color-picker-edit', props.class],
15982
- "style": props.style
16062
+ useRender(() => vue.createElementVNode("div", {
16063
+ "class": vue.normalizeClass(['v-color-picker-edit', props.class]),
16064
+ "style": vue.normalizeStyle(props.style)
15983
16065
  }, [inputs.value?.map(props => vue.createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && vue.createVNode(VBtn, {
15984
16066
  "icon": "$unfold",
15985
16067
  "size": "x-small",
@@ -16143,7 +16225,7 @@
16143
16225
  const clickOffset = getPosition(e, position);
16144
16226
 
16145
16227
  // It is possible for left to be NaN, force to number
16146
- let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0;
16228
+ let clickPos = clamp((clickOffset - trackStart - startOffset.value) / trackLength) || 0;
16147
16229
  if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos;
16148
16230
  return roundValue(min.value + clickPos * (max.value - min.value));
16149
16231
  }
@@ -16322,7 +16404,7 @@
16322
16404
  const VSliderThumb = genericComponent()({
16323
16405
  name: 'VSliderThumb',
16324
16406
  directives: {
16325
- Ripple
16407
+ vRipple: Ripple
16326
16408
  },
16327
16409
  props: makeVSliderThumbProps(),
16328
16410
  emits: {
@@ -16402,15 +16484,15 @@
16402
16484
  }
16403
16485
  useRender(() => {
16404
16486
  const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%');
16405
- return vue.createVNode("div", {
16406
- "class": ['v-slider-thumb', {
16487
+ return vue.createElementVNode("div", {
16488
+ "class": vue.normalizeClass(['v-slider-thumb', {
16407
16489
  'v-slider-thumb--focused': props.focused,
16408
16490
  'v-slider-thumb--pressed': props.focused && mousePressed.value
16409
- }, props.class, rtlClasses.value],
16410
- "style": [{
16491
+ }, props.class, rtlClasses.value]),
16492
+ "style": vue.normalizeStyle([{
16411
16493
  '--v-slider-thumb-position': positionPercentage,
16412
16494
  '--v-slider-thumb-size': convertToUnit(thumbSize.value)
16413
- }, props.style],
16495
+ }, props.style]),
16414
16496
  "role": "slider",
16415
16497
  "tabindex": disabled.value ? -1 : 0,
16416
16498
  "aria-label": props.name,
@@ -16420,25 +16502,25 @@
16420
16502
  "aria-readonly": !!readonly.value,
16421
16503
  "aria-orientation": direction.value,
16422
16504
  "onKeydown": !readonly.value ? onKeydown : undefined
16423
- }, [vue.createVNode("div", {
16424
- "class": ['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value],
16425
- "style": {
16505
+ }, [vue.createElementVNode("div", {
16506
+ "class": vue.normalizeClass(['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value]),
16507
+ "style": vue.normalizeStyle({
16426
16508
  ...textColorStyles.value
16427
- }
16428
- }, null), vue.withDirectives(vue.createVNode("div", {
16429
- "class": ['v-slider-thumb__ripple', textColorClasses.value],
16430
- "style": textColorStyles.value
16431
- }, 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, {
16432
16514
  circle: true,
16433
16515
  center: true
16434
16516
  }]]), vue.createVNode(VScaleTransition, {
16435
16517
  "origin": "bottom center"
16436
16518
  }, {
16437
- default: () => [vue.withDirectives(vue.createVNode("div", {
16519
+ default: () => [vue.withDirectives(vue.createElementVNode("div", {
16438
16520
  "class": "v-slider-thumb__label-container"
16439
- }, [vue.createVNode("div", {
16521
+ }, [vue.createElementVNode("div", {
16440
16522
  "class": ['v-slider-thumb__label']
16441
- }, [vue.createVNode("div", null, [slots['thumb-label']?.({
16523
+ }, [vue.createElementVNode("div", null, [slots['thumb-label']?.({
16442
16524
  modelValue: props.modelValue
16443
16525
  }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[vue.vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
16444
16526
  })]);
@@ -16515,17 +16597,17 @@
16515
16597
  const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value;
16516
16598
  return ticks.map((tick, index) => {
16517
16599
  const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined;
16518
- return vue.createVNode("div", {
16600
+ return vue.createElementVNode("div", {
16519
16601
  "key": tick.value,
16520
- "class": ['v-slider-track__tick', {
16602
+ "class": vue.normalizeClass(['v-slider-track__tick', {
16521
16603
  'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,
16522
16604
  'v-slider-track__tick--first': tick.value === min.value,
16523
16605
  'v-slider-track__tick--last': tick.value === max.value
16524
- }],
16525
- "style": {
16606
+ }]),
16607
+ "style": vue.normalizeStyle({
16526
16608
  [startDir.value]: directionValue
16527
- }
16528
- }, [(tick.label || slots['tick-label']) && vue.createVNode("div", {
16609
+ })
16610
+ }, [(tick.label || slots['tick-label']) && vue.createElementVNode("div", {
16529
16611
  "class": "v-slider-track__tick-label"
16530
16612
  }, [slots['tick-label']?.({
16531
16613
  tick,
@@ -16534,30 +16616,30 @@
16534
16616
  });
16535
16617
  });
16536
16618
  useRender(() => {
16537
- return vue.createVNode("div", {
16538
- "class": ['v-slider-track', roundedClasses.value, props.class],
16539
- "style": [{
16619
+ return vue.createElementVNode("div", {
16620
+ "class": vue.normalizeClass(['v-slider-track', roundedClasses.value, props.class]),
16621
+ "style": vue.normalizeStyle([{
16540
16622
  '--v-slider-track-size': convertToUnit(trackSize.value),
16541
16623
  '--v-slider-tick-size': convertToUnit(tickSize.value)
16542
- }, props.style]
16543
- }, [vue.createVNode("div", {
16544
- "class": ['v-slider-track__background', trackColorClasses.value, {
16624
+ }, props.style])
16625
+ }, [vue.createElementVNode("div", {
16626
+ "class": vue.normalizeClass(['v-slider-track__background', trackColorClasses.value, {
16545
16627
  'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
16546
- }],
16547
- "style": {
16628
+ }]),
16629
+ "style": vue.normalizeStyle({
16548
16630
  ...backgroundStyles.value,
16549
16631
  ...trackColorStyles.value
16550
- }
16551
- }, null), vue.createVNode("div", {
16552
- "class": ['v-slider-track__fill', trackFillColorClasses.value],
16553
- "style": {
16632
+ })
16633
+ }, null), vue.createElementVNode("div", {
16634
+ "class": vue.normalizeClass(['v-slider-track__fill', trackFillColorClasses.value]),
16635
+ "style": vue.normalizeStyle({
16554
16636
  ...trackFillStyles.value,
16555
16637
  ...trackFillColorStyles.value
16556
- }
16557
- }, null), showTicks.value && vue.createVNode("div", {
16558
- "class": ['v-slider-track__ticks', {
16638
+ })
16639
+ }, null), showTicks.value && vue.createElementVNode("div", {
16640
+ "class": vue.normalizeClass(['v-slider-track__ticks', {
16559
16641
  'v-slider-track__ticks--always-show': showTicks.value === 'always'
16560
- }]
16642
+ }])
16561
16643
  }, [computedTicks.value])]);
16562
16644
  });
16563
16645
  return {};
@@ -16651,7 +16733,7 @@
16651
16733
  "focused": isFocused.value
16652
16734
  }), {
16653
16735
  ...slots,
16654
- 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, {
16655
16737
  "id": slotProps.id.value,
16656
16738
  "class": "v-slider__label",
16657
16739
  "text": props.label
@@ -16661,11 +16743,11 @@
16661
16743
  id,
16662
16744
  messagesId
16663
16745
  } = _ref4;
16664
- return vue.createVNode("div", {
16746
+ return vue.createElementVNode("div", {
16665
16747
  "class": "v-slider__container",
16666
16748
  "onMousedown": !readonly.value ? onSliderMousedown : undefined,
16667
16749
  "onTouchstartPassive": !readonly.value ? onSliderTouchstart : undefined
16668
- }, [vue.createVNode("input", {
16750
+ }, [vue.createElementVNode("input", {
16669
16751
  "id": id.value,
16670
16752
  "name": props.name || id.value,
16671
16753
  "disabled": !!props.disabled,
@@ -16738,12 +16820,12 @@
16738
16820
  });
16739
16821
  } catch (e) {}
16740
16822
  }
16741
- useRender(() => vue.createVNode("div", {
16742
- "class": ['v-color-picker-preview', {
16823
+ useRender(() => vue.createElementVNode("div", {
16824
+ "class": vue.normalizeClass(['v-color-picker-preview', {
16743
16825
  'v-color-picker-preview--hide-alpha': props.hideAlpha
16744
- }, props.class],
16745
- "style": props.style
16746
- }, [SUPPORTS_EYE_DROPPER && vue.createVNode("div", {
16826
+ }, props.class]),
16827
+ "style": vue.normalizeStyle(props.style)
16828
+ }, [SUPPORTS_EYE_DROPPER && vue.createElementVNode("div", {
16747
16829
  "class": "v-color-picker-preview__eye-dropper",
16748
16830
  "key": "eyeDropper"
16749
16831
  }, [vue.createVNode(VBtn, {
@@ -16752,13 +16834,13 @@
16752
16834
  "icon": "$eyeDropper",
16753
16835
  "variant": "plain",
16754
16836
  "onClick": openEyeDropper
16755
- }, null)]), vue.createVNode("div", {
16837
+ }, null)]), vue.createElementVNode("div", {
16756
16838
  "class": "v-color-picker-preview__dot"
16757
- }, [vue.createVNode("div", {
16758
- "style": {
16839
+ }, [vue.createElementVNode("div", {
16840
+ "style": vue.normalizeStyle({
16759
16841
  background: HSVtoCSS(props.color ?? nullColor)
16760
- }
16761
- }, null)]), vue.createVNode("div", {
16842
+ })
16843
+ }, null)]), vue.createElementVNode("div", {
16762
16844
  "class": "v-color-picker-preview__sliders"
16763
16845
  }, [vue.createVNode(VSlider, {
16764
16846
  "class": "v-color-picker-preview__track v-color-picker-preview__hue",
@@ -17143,24 +17225,24 @@
17143
17225
  let {
17144
17226
  emit
17145
17227
  } = _ref;
17146
- useRender(() => vue.createVNode("div", {
17147
- "class": ['v-color-picker-swatches', props.class],
17148
- "style": [{
17228
+ useRender(() => vue.createElementVNode("div", {
17229
+ "class": vue.normalizeClass(['v-color-picker-swatches', props.class]),
17230
+ "style": vue.normalizeStyle([{
17149
17231
  maxHeight: convertToUnit(props.maxHeight)
17150
- }, props.style]
17151
- }, [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", {
17152
17234
  "class": "v-color-picker-swatches__swatch"
17153
17235
  }, [swatch.map(color => {
17154
17236
  const rgba = parseColor(color);
17155
17237
  const hsva = RGBtoHSV(rgba);
17156
17238
  const background = RGBtoCSS(rgba);
17157
- return vue.createVNode("div", {
17239
+ return vue.createElementVNode("div", {
17158
17240
  "class": "v-color-picker-swatches__color",
17159
17241
  "onClick": () => hsva && emit('update:color', hsva)
17160
- }, [vue.createVNode("div", {
17161
- "style": {
17242
+ }, [vue.createElementVNode("div", {
17243
+ "style": vue.normalizeStyle({
17162
17244
  background
17163
- }
17245
+ })
17164
17246
  }, [props.color && deepEqual(props.color, hsva) ? vue.createVNode(VIcon, {
17165
17247
  "size": "x-small",
17166
17248
  "icon": "$success",
@@ -17219,8 +17301,8 @@
17219
17301
  roundedClasses
17220
17302
  } = useRounded(props);
17221
17303
  useRender(() => vue.createVNode(props.tag, {
17222
- "class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
17223
- "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])
17224
17306
  }, slots));
17225
17307
  return {};
17226
17308
  }
@@ -17259,17 +17341,17 @@
17259
17341
  }, props.class],
17260
17342
  "style": props.style
17261
17343
  }), {
17262
- default: () => [!props.hideHeader && vue.createVNode("div", {
17344
+ default: () => [!props.hideHeader && vue.createElementVNode("div", {
17263
17345
  "key": "header",
17264
- "class": [backgroundColorClasses.value],
17265
- "style": [backgroundColorStyles.value]
17346
+ "class": vue.normalizeClass([backgroundColorClasses.value]),
17347
+ "style": vue.normalizeStyle([backgroundColorStyles.value])
17266
17348
  }, [hasTitle && vue.createVNode(VPickerTitle, {
17267
17349
  "key": "picker-title"
17268
17350
  }, {
17269
17351
  default: () => [slots.title?.() ?? props.title]
17270
- }), slots.header && vue.createVNode("div", {
17352
+ }), slots.header && vue.createElementVNode("div", {
17271
17353
  "class": "v-picker__header"
17272
- }, [slots.header()])]), vue.createVNode("div", {
17354
+ }, [slots.header()])]), vue.createElementVNode("div", {
17273
17355
  "class": "v-picker__body"
17274
17356
  }, [slots.default?.()]), slots.actions && vue.createVNode(VDefaultsProvider, {
17275
17357
  "defaults": {
@@ -17279,7 +17361,7 @@
17279
17361
  }
17280
17362
  }
17281
17363
  }, {
17282
- default: () => [vue.createVNode("div", {
17364
+ default: () => [vue.createElementVNode("div", {
17283
17365
  "class": "v-picker__actions"
17284
17366
  }, [slots.actions()])]
17285
17367
  })]
@@ -18141,7 +18223,7 @@
18141
18223
  }, props.style]
18142
18224
  }), {
18143
18225
  ...slots,
18144
- default: () => vue.createVNode(vue.Fragment, null, [!props.hideCanvas && vue.createVNode(VColorPickerCanvas, {
18226
+ default: () => vue.createElementVNode(vue.Fragment, null, [!props.hideCanvas && vue.createVNode(VColorPickerCanvas, {
18145
18227
  "key": "canvas",
18146
18228
  "color": currentColor.value,
18147
18229
  "onUpdate:color": updateColor,
@@ -18149,7 +18231,7 @@
18149
18231
  "dotSize": props.dotSize,
18150
18232
  "width": props.width,
18151
18233
  "height": props.canvasHeight
18152
- }, null), (!props.hideSliders || !props.hideInputs) && vue.createVNode("div", {
18234
+ }, null), (!props.hideSliders || !props.hideInputs) && vue.createElementVNode("div", {
18153
18235
  "key": "controls",
18154
18236
  "class": "v-color-picker__controls"
18155
18237
  }, [!props.hideSliders && vue.createVNode(VColorPickerPreview, {
@@ -18524,7 +18606,7 @@
18524
18606
  "onKeydown": onKeydown
18525
18607
  }), {
18526
18608
  ...slots,
18527
- default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
18609
+ default: () => vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
18528
18610
  "ref": vMenuRef,
18529
18611
  "modelValue": menu.value,
18530
18612
  "onUpdate:modelValue": $event => menu.value = $event,
@@ -18583,7 +18665,7 @@
18583
18665
  let {
18584
18666
  isSelected
18585
18667
  } = _ref5;
18586
- 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, {
18587
18669
  "key": item.value,
18588
18670
  "modelValue": isSelected,
18589
18671
  "ripple": false,
@@ -18632,10 +18714,10 @@
18632
18714
  index
18633
18715
  })) : undefined;
18634
18716
  if (hasSlot && !slotContent) return undefined;
18635
- return vue.createVNode("div", {
18717
+ return vue.createElementVNode("div", {
18636
18718
  "key": item.value,
18637
- "class": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],
18638
- "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 : {})
18639
18721
  }, [hasChips.value ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
18640
18722
  "key": "chip",
18641
18723
  "closable": props.closableChips,
@@ -18653,9 +18735,9 @@
18653
18735
  }
18654
18736
  }, {
18655
18737
  default: () => [slotContent]
18656
- }) : slotContent ?? vue.createVNode("span", {
18738
+ }) : slotContent ?? vue.createElementVNode("span", {
18657
18739
  "class": "v-combobox__selection-text"
18658
- }, [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", {
18659
18741
  "class": "v-combobox__selection-comma"
18660
18742
  }, [vue.createTextVNode(",")])])]);
18661
18743
  })]),
@@ -18663,7 +18745,7 @@
18663
18745
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
18664
18746
  args[_key] = arguments[_key];
18665
18747
  }
18666
- 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, {
18667
18749
  "class": "v-combobox__menu-icon",
18668
18750
  "color": vTextFieldRef.value?.fieldIconColor,
18669
18751
  "icon": props.menuIcon,
@@ -18751,7 +18833,7 @@
18751
18833
  emit('cancel');
18752
18834
  }
18753
18835
  function actions(actionsProps) {
18754
- return vue.createVNode(vue.Fragment, null, [vue.createVNode(VBtn, vue.mergeProps({
18836
+ return vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VBtn, vue.mergeProps({
18755
18837
  "disabled": isCancelDisabled.value,
18756
18838
  "variant": "text",
18757
18839
  "color": props.color,
@@ -18767,7 +18849,7 @@
18767
18849
  }
18768
18850
  let actionsUsed = false;
18769
18851
  useRender(() => {
18770
- return vue.createVNode(vue.Fragment, null, [slots.default?.({
18852
+ return vue.createElementVNode(vue.Fragment, null, [slots.default?.({
18771
18853
  model: internalModel,
18772
18854
  save,
18773
18855
  cancel,
@@ -19650,10 +19732,10 @@
19650
19732
  groupedItems: paginatedItems.value
19651
19733
  }));
19652
19734
  useRender(() => vue.createVNode(props.tag, {
19653
- "class": ['v-data-iterator', {
19735
+ "class": vue.normalizeClass(['v-data-iterator', {
19654
19736
  'v-data-iterator--loading': props.loading
19655
- }, props.class],
19656
- "style": props.style
19737
+ }, props.class]),
19738
+ "style": vue.normalizeStyle(props.style)
19657
19739
  }, {
19658
19740
  default: () => [slots.header?.(slotProps.value), vue.createVNode(MaybeTransition, {
19659
19741
  "transition": props.transition
@@ -19664,7 +19746,7 @@
19664
19746
  "active": true
19665
19747
  }, {
19666
19748
  default: slotProps => slots.loader?.(slotProps)
19667
- }) : vue.createVNode("div", {
19749
+ }) : vue.createElementVNode("div", {
19668
19750
  "key": "items"
19669
19751
  }, [!paginatedItems.value.length ? slots['no-data']?.() : slots.default?.(slotProps.value)])]
19670
19752
  }), slots.footer?.(slotProps.value)]
@@ -19958,44 +20040,44 @@
19958
20040
  }
19959
20041
  useRender(() => vue.createVNode(props.tag, {
19960
20042
  "ref": resizeRef,
19961
- "class": ['v-pagination', themeClasses.value, props.class],
19962
- "style": props.style,
20043
+ "class": vue.normalizeClass(['v-pagination', themeClasses.value, props.class]),
20044
+ "style": vue.normalizeStyle(props.style),
19963
20045
  "role": "navigation",
19964
20046
  "aria-label": t(props.ariaLabel),
19965
20047
  "onKeydown": onKeydown,
19966
20048
  "data-test": "v-pagination-root"
19967
20049
  }, {
19968
- default: () => [vue.createVNode("ul", {
20050
+ default: () => [vue.createElementVNode("ul", {
19969
20051
  "class": "v-pagination__list"
19970
- }, [props.showFirstLastPage && vue.createVNode("li", {
20052
+ }, [props.showFirstLastPage && vue.createElementVNode("li", {
19971
20053
  "key": "first",
19972
20054
  "class": "v-pagination__first",
19973
20055
  "data-test": "v-pagination-first"
19974
20056
  }, [slots.first ? slots.first(controls.value.first) : vue.createVNode(VBtn, vue.mergeProps({
19975
20057
  "_as": "VPaginationBtn"
19976
- }, controls.value.first), null)]), vue.createVNode("li", {
20058
+ }, controls.value.first), null)]), vue.createElementVNode("li", {
19977
20059
  "key": "prev",
19978
20060
  "class": "v-pagination__prev",
19979
20061
  "data-test": "v-pagination-prev"
19980
20062
  }, [slots.prev ? slots.prev(controls.value.prev) : vue.createVNode(VBtn, vue.mergeProps({
19981
20063
  "_as": "VPaginationBtn"
19982
- }, 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", {
19983
20065
  "key": item.key,
19984
- "class": ['v-pagination__item', {
20066
+ "class": vue.normalizeClass(['v-pagination__item', {
19985
20067
  'v-pagination__item--is-active': item.isActive
19986
- }],
20068
+ }]),
19987
20069
  "data-test": "v-pagination-item"
19988
20070
  }, [slots.item ? slots.item(item) : vue.createVNode(VBtn, vue.mergeProps({
19989
20071
  "_as": "VPaginationBtn"
19990
20072
  }, item.props), {
19991
20073
  default: () => [item.page]
19992
- })])), vue.createVNode("li", {
20074
+ })])), vue.createElementVNode("li", {
19993
20075
  "key": "next",
19994
20076
  "class": "v-pagination__next",
19995
20077
  "data-test": "v-pagination-next"
19996
20078
  }, [slots.next ? slots.next(controls.value.next) : vue.createVNode(VBtn, vue.mergeProps({
19997
20079
  "_as": "VPaginationBtn"
19998
- }, controls.value.next), null)]), props.showFirstLastPage && vue.createVNode("li", {
20080
+ }, controls.value.next), null)]), props.showFirstLastPage && vue.createElementVNode("li", {
19999
20081
  "key": "last",
20000
20082
  "class": "v-pagination__last",
20001
20083
  "data-test": "v-pagination-last"
@@ -20104,20 +20186,20 @@
20104
20186
  }));
20105
20187
  useRender(() => {
20106
20188
  const paginationProps = VPagination.filterProps(props);
20107
- return vue.createVNode("div", {
20189
+ return vue.createElementVNode("div", {
20108
20190
  "class": "v-data-table-footer"
20109
- }, [slots.prepend?.(), vue.createVNode("div", {
20191
+ }, [slots.prepend?.(), vue.createElementVNode("div", {
20110
20192
  "class": "v-data-table-footer__items-per-page"
20111
- }, [vue.createVNode("span", null, [t(props.itemsPerPageText)]), vue.createVNode(VSelect, {
20193
+ }, [vue.createElementVNode("span", null, [t(props.itemsPerPageText)]), vue.createVNode(VSelect, {
20112
20194
  "items": itemsPerPageOptions.value,
20113
20195
  "modelValue": itemsPerPage.value,
20114
20196
  "onUpdate:modelValue": v => setItemsPerPage(Number(v)),
20115
20197
  "density": "compact",
20116
20198
  "variant": "outlined",
20117
20199
  "hide-details": true
20118
- }, null)]), vue.createVNode("div", {
20200
+ }, null)]), vue.createElementVNode("div", {
20119
20201
  "class": "v-data-table-footer__info"
20120
- }, [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", {
20121
20203
  "class": "v-data-table-footer__pagination"
20122
20204
  }, [vue.createVNode(VPagination, vue.mergeProps({
20123
20205
  "modelValue": page.value,
@@ -20160,18 +20242,18 @@
20160
20242
  } = _ref;
20161
20243
  const Tag = props.tag ?? 'td';
20162
20244
  return vue.createVNode(Tag, {
20163
- "class": ['v-data-table__td', {
20245
+ "class": vue.normalizeClass(['v-data-table__td', {
20164
20246
  'v-data-table-column--fixed': props.fixed,
20165
20247
  'v-data-table-column--last-fixed': props.lastFixed,
20166
20248
  'v-data-table-column--no-padding': props.noPadding,
20167
20249
  'v-data-table-column--nowrap': props.nowrap
20168
- }, `v-data-table-column--align-${props.align}`],
20169
- "style": {
20250
+ }, `v-data-table-column--align-${props.align}`]),
20251
+ "style": vue.normalizeStyle({
20170
20252
  height: convertToUnit(props.height),
20171
20253
  width: convertToUnit(props.width),
20172
20254
  maxWidth: convertToUnit(props.maxWidth),
20173
20255
  left: convertToUnit(props.fixedOffset || null)
20174
- }
20256
+ })
20175
20257
  }, {
20176
20258
  default: () => [slots.default?.()]
20177
20259
  });
@@ -20581,16 +20663,16 @@
20581
20663
  "onUpdate:modelValue": selectAll
20582
20664
  }, null));
20583
20665
  }
20584
- return vue.createVNode("div", {
20666
+ return vue.createElementVNode("div", {
20585
20667
  "class": "v-data-table-header__content"
20586
- }, [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, {
20587
20669
  "key": "icon",
20588
20670
  "class": "v-data-table-header__sort-icon",
20589
20671
  "icon": getSortIcon(column)
20590
- }, null), props.multiSort && isSorted(column) && vue.createVNode("div", {
20672
+ }, null), props.multiSort && isSorted(column) && vue.createElementVNode("div", {
20591
20673
  "key": "badge",
20592
- "class": ['v-data-table-header__sort-badge', ...backgroundColorClasses.value],
20593
- "style": backgroundColorStyles.value
20674
+ "class": vue.normalizeClass(['v-data-table-header__sort-badge', ...backgroundColorClasses.value]),
20675
+ "style": vue.normalizeStyle(backgroundColorStyles.value)
20594
20676
  }, [sortBy.value.findIndex(x => x.key === column.key) + 1])]);
20595
20677
  }
20596
20678
  });
@@ -20609,7 +20691,7 @@
20609
20691
  "class": [...headerCellClasses.value],
20610
20692
  "colspan": headers.value.length + 1
20611
20693
  }, props.headerProps), {
20612
- default: () => [vue.createVNode("div", {
20694
+ default: () => [vue.createElementVNode("div", {
20613
20695
  "class": "v-data-table-header__content"
20614
20696
  }, [vue.createVNode(VSelect, {
20615
20697
  "chips": true,
@@ -20633,7 +20715,7 @@
20633
20715
  }
20634
20716
  }, {
20635
20717
  default: () => [props.item.title, vue.createVNode(VIcon, {
20636
- "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']),
20637
20719
  "icon": getSortIcon(props.item.raw),
20638
20720
  "size": "small"
20639
20721
  }, null)]
@@ -20642,13 +20724,13 @@
20642
20724
  });
20643
20725
  };
20644
20726
  useRender(() => {
20645
- 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, {
20646
20728
  "column": column,
20647
20729
  "x": x,
20648
20730
  "y": y
20649
- }, null))])), props.loading && vue.createVNode("tr", {
20731
+ }, null))])), props.loading && vue.createElementVNode("tr", {
20650
20732
  "class": "v-data-table-progress"
20651
- }, [vue.createVNode("th", {
20733
+ }, [vue.createElementVNode("th", {
20652
20734
  "colspan": columns.value.length
20653
20735
  }, [vue.createVNode(LoaderSlot, {
20654
20736
  "name": "v-data-table-progress",
@@ -20694,11 +20776,11 @@
20694
20776
  const rows = vue.computed(() => {
20695
20777
  return extractRows([props.item]);
20696
20778
  });
20697
- return () => vue.createVNode("tr", {
20779
+ return () => vue.createElementVNode("tr", {
20698
20780
  "class": "v-data-table-group-header-row",
20699
- "style": {
20781
+ "style": vue.normalizeStyle({
20700
20782
  '--v-data-table-group-header-row-depth': props.item.depth
20701
- }
20783
+ })
20702
20784
  }, [columns.value.map(column => {
20703
20785
  if (column.key === 'data-table-group') {
20704
20786
  const icon = isGroupOpen(props.item) ? '$expand' : '$next';
@@ -20718,7 +20800,7 @@
20718
20800
  "variant": "text",
20719
20801
  "icon": icon,
20720
20802
  "onClick": onClick
20721
- }, 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(")")])]
20722
20804
  });
20723
20805
  }
20724
20806
  if (column.key === 'data-table-select') {
@@ -20731,13 +20813,13 @@
20731
20813
  indeterminate,
20732
20814
  'onUpdate:modelValue': selectGroup
20733
20815
  }
20734
- }) ?? vue.createVNode("td", null, [vue.createVNode(VCheckboxBtn, {
20816
+ }) ?? vue.createElementVNode("td", null, [vue.createVNode(VCheckboxBtn, {
20735
20817
  "modelValue": modelValue,
20736
20818
  "indeterminate": indeterminate,
20737
20819
  "onUpdate:modelValue": selectGroup
20738
20820
  }, null)]);
20739
20821
  }
20740
- return vue.createVNode("td", null, null);
20822
+ return vue.createElementVNode("td", null, null);
20741
20823
  })]);
20742
20824
  }
20743
20825
  });
@@ -20783,10 +20865,10 @@
20783
20865
  const {
20784
20866
  columns
20785
20867
  } = useHeaders();
20786
- useRender(() => vue.createVNode("tr", {
20787
- "class": ['v-data-table__tr', {
20868
+ useRender(() => vue.createElementVNode("tr", {
20869
+ "class": vue.normalizeClass(['v-data-table__tr', {
20788
20870
  'v-data-table__tr--clickable': !!(props.onClick || props.onContextmenu || props.onDblclick)
20789
- }, displayClasses.value],
20871
+ }, displayClasses.value]),
20790
20872
  "onClick": props.onClick,
20791
20873
  "onContextmenu": props.onContextmenu,
20792
20874
  "onDblclick": props.onDblclick
@@ -20875,9 +20957,9 @@
20875
20957
  }
20876
20958
  if (slots[slotName] && !mobile.value) return slots[slotName](slotProps);
20877
20959
  const displayValue = vue.toDisplayString(slotProps.value);
20878
- 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", {
20879
20961
  "class": "v-data-table__td-title"
20880
- }, [slots[headerSlotName]?.(columnSlotProps) ?? column.title]), vue.createVNode("div", {
20962
+ }, [slots[headerSlotName]?.(columnSlotProps) ?? column.title]), vue.createElementVNode("div", {
20881
20963
  "class": "v-data-table__td-value"
20882
20964
  }, [slots[slotName]?.(slotProps) ?? displayValue])]);
20883
20965
  }
@@ -20940,22 +21022,22 @@
20940
21022
  } = useDisplay(props);
20941
21023
  useRender(() => {
20942
21024
  if (props.loading && (!props.items.length || slots.loading)) {
20943
- return vue.createVNode("tr", {
21025
+ return vue.createElementVNode("tr", {
20944
21026
  "class": "v-data-table-rows-loading",
20945
21027
  "key": "loading"
20946
- }, [vue.createVNode("td", {
21028
+ }, [vue.createElementVNode("td", {
20947
21029
  "colspan": columns.value.length
20948
21030
  }, [slots.loading?.() ?? t(props.loadingText)])]);
20949
21031
  }
20950
21032
  if (!props.loading && !props.items.length && !props.hideNoData) {
20951
- return vue.createVNode("tr", {
21033
+ return vue.createElementVNode("tr", {
20952
21034
  "class": "v-data-table-rows-no-data",
20953
21035
  "key": "no-data"
20954
- }, [vue.createVNode("td", {
21036
+ }, [vue.createElementVNode("td", {
20955
21037
  "colspan": columns.value.length
20956
21038
  }, [slots['no-data']?.() ?? t(props.noDataText)])]);
20957
21039
  }
20958
- return vue.createVNode(vue.Fragment, null, [props.items.map((item, index) => {
21040
+ return vue.createElementVNode(vue.Fragment, null, [props.items.map((item, index) => {
20959
21041
  if (item.type === 'group') {
20960
21042
  const slotProps = {
20961
21043
  index,
@@ -21000,7 +21082,7 @@
21000
21082
  internalItem: slotProps.internalItem
21001
21083
  }) : props.rowProps)
21002
21084
  };
21003
- return vue.createVNode(vue.Fragment, {
21085
+ return vue.createElementVNode(vue.Fragment, {
21004
21086
  "key": itemSlotProps.props.key
21005
21087
  }, [slots.item ? slots.item(itemSlotProps) : vue.createVNode(VDataTableRow, itemSlotProps.props, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
21006
21088
  })]);
@@ -21034,22 +21116,22 @@
21034
21116
  densityClasses
21035
21117
  } = useDensity(props);
21036
21118
  useRender(() => vue.createVNode(props.tag, {
21037
- "class": ['v-table', {
21119
+ "class": vue.normalizeClass(['v-table', {
21038
21120
  'v-table--fixed-height': !!props.height,
21039
21121
  'v-table--fixed-header': props.fixedHeader,
21040
21122
  'v-table--fixed-footer': props.fixedFooter,
21041
21123
  'v-table--has-top': !!slots.top,
21042
21124
  'v-table--has-bottom': !!slots.bottom,
21043
21125
  'v-table--hover': props.hover
21044
- }, themeClasses.value, densityClasses.value, props.class],
21045
- "style": props.style
21126
+ }, themeClasses.value, densityClasses.value, props.class]),
21127
+ "style": vue.normalizeStyle(props.style)
21046
21128
  }, {
21047
- default: () => [slots.top?.(), slots.default ? vue.createVNode("div", {
21129
+ default: () => [slots.top?.(), slots.default ? vue.createElementVNode("div", {
21048
21130
  "class": "v-table__wrapper",
21049
- "style": {
21131
+ "style": vue.normalizeStyle({
21050
21132
  height: convertToUnit(props.height)
21051
- }
21052
- }, [vue.createVNode("table", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]
21133
+ })
21134
+ }, [vue.createElementVNode("table", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]
21053
21135
  }));
21054
21136
  return {};
21055
21137
  }
@@ -21302,12 +21384,12 @@
21302
21384
  "fixedHeader": props.fixedHeader || props.sticky
21303
21385
  }), {
21304
21386
  top: () => slots.top?.(slotProps.value),
21305
- 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", {
21306
21388
  "key": "thead"
21307
- }, [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, {
21308
21390
  "items": paginatedItems.value
21309
21391
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
21310
- 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, {
21311
21393
  prepend: slots['footer.prepend']
21312
21394
  })])
21313
21395
  });
@@ -21478,25 +21560,25 @@
21478
21560
  "fixedHeader": props.fixedHeader || props.sticky
21479
21561
  }), {
21480
21562
  top: () => slots.top?.(slotProps.value),
21481
- wrapper: () => vue.createVNode("div", {
21563
+ wrapper: () => vue.createElementVNode("div", {
21482
21564
  "ref": containerRef,
21483
21565
  "onScrollPassive": handleScroll,
21484
21566
  "onScrollend": handleScrollend,
21485
21567
  "class": "v-table__wrapper",
21486
- "style": {
21568
+ "style": vue.normalizeStyle({
21487
21569
  height: convertToUnit(props.height)
21488
- }
21489
- }, [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", {
21490
21572
  "key": "thead"
21491
- }, [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", {
21492
21574
  "key": "tbody"
21493
- }, [vue.createVNode("tr", {
21575
+ }, [vue.createElementVNode("tr", {
21494
21576
  "ref": markerRef,
21495
- "style": {
21577
+ "style": vue.normalizeStyle({
21496
21578
  height: convertToUnit(paddingTop.value),
21497
21579
  border: 0
21498
- }
21499
- }, [vue.createVNode("td", {
21580
+ })
21581
+ }, [vue.createElementVNode("td", {
21500
21582
  "colspan": columns.value.length,
21501
21583
  "style": {
21502
21584
  height: 0,
@@ -21525,12 +21607,12 @@
21525
21607
  }), slots);
21526
21608
  }
21527
21609
  })
21528
- }), slots['body.append']?.(slotProps.value), vue.createVNode("tr", {
21529
- "style": {
21610
+ }), slots['body.append']?.(slotProps.value), vue.createElementVNode("tr", {
21611
+ "style": vue.normalizeStyle({
21530
21612
  height: convertToUnit(paddingBottom.value),
21531
21613
  border: 0
21532
- }
21533
- }, [vue.createVNode("td", {
21614
+ })
21615
+ }, [vue.createElementVNode("td", {
21534
21616
  "colspan": columns.value.length,
21535
21617
  "style": {
21536
21618
  height: 0,
@@ -21703,17 +21785,17 @@
21703
21785
  "fixedHeader": props.fixedHeader || props.sticky
21704
21786
  }), {
21705
21787
  top: () => slots.top?.(slotProps.value),
21706
- 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", {
21707
21789
  "key": "thead",
21708
21790
  "class": "v-data-table__thead",
21709
21791
  "role": "rowgroup"
21710
- }, [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", {
21711
21793
  "class": "v-data-table__tbody",
21712
21794
  "role": "rowgroup"
21713
21795
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
21714
21796
  "items": flatItems.value
21715
21797
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
21716
- 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, {
21717
21799
  prepend: slots['footer.prepend']
21718
21800
  })])
21719
21801
  });
@@ -21744,10 +21826,10 @@
21744
21826
  dimensionStyles
21745
21827
  } = useDimension(props);
21746
21828
  useRender(() => vue.createVNode(props.tag, {
21747
- "class": ['v-container', {
21829
+ "class": vue.normalizeClass(['v-container', {
21748
21830
  'v-container--fluid': props.fluid
21749
- }, rtlClasses.value, props.class],
21750
- "style": [dimensionStyles.value, props.style]
21831
+ }, rtlClasses.value, props.class]),
21832
+ "style": vue.normalizeStyle([dimensionStyles.value, props.style])
21751
21833
  }, slots));
21752
21834
  return {};
21753
21835
  }
@@ -22066,11 +22148,11 @@
22066
22148
  }
22067
22149
  useRender(() => {
22068
22150
  // TODO: add slot support and scope defaults
22069
- return vue.createVNode("div", {
22151
+ return vue.createElementVNode("div", {
22070
22152
  "class": ['v-date-picker-controls'],
22071
- "style": {
22153
+ "style": vue.normalizeStyle({
22072
22154
  '--v-date-picker-controls-height': convertToUnit(props.controlHeight)
22073
- }
22155
+ })
22074
22156
  }, [vue.createVNode(VBtn, {
22075
22157
  "class": "v-date-picker-controls__month-btn",
22076
22158
  "data-testid": "month-btn",
@@ -22087,7 +22169,7 @@
22087
22169
  "icon": props.modeIcon,
22088
22170
  "variant": "text",
22089
22171
  "onClick": onClickYear
22090
- }, null), vue.createVNode(VSpacer, null, null), vue.createVNode("div", {
22172
+ }, null), vue.createVNode(VSpacer, null, null), vue.createElementVNode("div", {
22091
22173
  "class": "v-date-picker-controls__month"
22092
22174
  }, [vue.createVNode(VBtn, {
22093
22175
  "data-testid": "prev-month",
@@ -22143,24 +22225,24 @@
22143
22225
  useRender(() => {
22144
22226
  const hasContent = !!(slots.default || props.header);
22145
22227
  const hasAppend = !!(slots.append || props.appendIcon);
22146
- return vue.createVNode("div", {
22147
- "class": ['v-date-picker-header', {
22228
+ return vue.createElementVNode("div", {
22229
+ "class": vue.normalizeClass(['v-date-picker-header', {
22148
22230
  'v-date-picker-header--clickable': !!props.onClick
22149
- }, backgroundColorClasses.value],
22150
- "style": backgroundColorStyles.value,
22231
+ }, backgroundColorClasses.value]),
22232
+ "style": vue.normalizeStyle(backgroundColorStyles.value),
22151
22233
  "onClick": onClick
22152
- }, [slots.prepend && vue.createVNode("div", {
22234
+ }, [slots.prepend && vue.createElementVNode("div", {
22153
22235
  "key": "prepend",
22154
22236
  "class": "v-date-picker-header__prepend"
22155
22237
  }, [slots.prepend()]), hasContent && vue.createVNode(MaybeTransition, {
22156
22238
  "key": "content",
22157
22239
  "name": props.transition
22158
22240
  }, {
22159
- default: () => [vue.createVNode("div", {
22241
+ default: () => [vue.createElementVNode("div", {
22160
22242
  "key": props.header,
22161
22243
  "class": "v-date-picker-header__content"
22162
22244
  }, [slots.default?.() ?? props.header])]
22163
- }), hasAppend && vue.createVNode("div", {
22245
+ }), hasAppend && vue.createElementVNode("div", {
22164
22246
  "class": "v-date-picker-header__append"
22165
22247
  }, [!slots.append ? vue.createVNode(VBtn, {
22166
22248
  "key": "append-btn",
@@ -22446,24 +22528,24 @@
22446
22528
  model.value = [value];
22447
22529
  }
22448
22530
  }
22449
- useRender(() => vue.createVNode("div", {
22531
+ useRender(() => vue.createElementVNode("div", {
22450
22532
  "class": "v-date-picker-month"
22451
- }, [props.showWeek && vue.createVNode("div", {
22533
+ }, [props.showWeek && vue.createElementVNode("div", {
22452
22534
  "key": "weeks",
22453
22535
  "class": "v-date-picker-month__weeks"
22454
- }, [!props.hideWeekdays && vue.createVNode("div", {
22536
+ }, [!props.hideWeekdays && vue.createElementVNode("div", {
22455
22537
  "key": "hide-week-days",
22456
22538
  "class": "v-date-picker-month__day"
22457
- }, [vue.createTextVNode("\xA0")]), weekNumbers.value.map(week => vue.createVNode("div", {
22539
+ }, [vue.createTextVNode("\xA0")]), weekNumbers.value.map(week => vue.createElementVNode("div", {
22458
22540
  "class": ['v-date-picker-month__day', 'v-date-picker-month__day--adjacent']
22459
22541
  }, [week]))]), vue.createVNode(MaybeTransition, {
22460
22542
  "name": transition.value
22461
22543
  }, {
22462
- default: () => [vue.createVNode("div", {
22544
+ default: () => [vue.createElementVNode("div", {
22463
22545
  "ref": daysRef,
22464
22546
  "key": daysInMonth.value[0].date?.toString(),
22465
22547
  "class": "v-date-picker-month__days"
22466
- }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => vue.createVNode("div", {
22548
+ }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => vue.createElementVNode("div", {
22467
22549
  "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
22468
22550
  }, [weekDay])), daysInMonth.value.map((item, i) => {
22469
22551
  const slotProps = {
@@ -22483,14 +22565,14 @@
22483
22565
  if (atMax.value && !item.isSelected) {
22484
22566
  item.isDisabled = true;
22485
22567
  }
22486
- return vue.createVNode("div", {
22487
- "class": ['v-date-picker-month__day', {
22568
+ return vue.createElementVNode("div", {
22569
+ "class": vue.normalizeClass(['v-date-picker-month__day', {
22488
22570
  'v-date-picker-month__day--adjacent': item.isAdjacent,
22489
22571
  'v-date-picker-month__day--hide-adjacent': item.isHidden,
22490
22572
  'v-date-picker-month__day--selected': item.isSelected,
22491
22573
  'v-date-picker-month__day--week-end': item.isWeekEnd,
22492
22574
  'v-date-picker-month__day--week-start': item.isWeekStart
22493
- }],
22575
+ }]),
22494
22576
  "data-v-date": !item.isDisabled ? item.isoDate : undefined
22495
22577
  }, [(props.showAdjacentMonths || !item.isAdjacent) && (slots.day?.(slotProps) ?? vue.createVNode(VBtn, slotProps.props, null))]);
22496
22578
  })])]
@@ -22540,12 +22622,12 @@
22540
22622
  vue.watchEffect(() => {
22541
22623
  model.value = model.value ?? adapter.getMonth(adapter.date());
22542
22624
  });
22543
- useRender(() => vue.createVNode("div", {
22625
+ useRender(() => vue.createElementVNode("div", {
22544
22626
  "class": "v-date-picker-months",
22545
- "style": {
22627
+ "style": vue.normalizeStyle({
22546
22628
  height: convertToUnit(props.height)
22547
- }
22548
- }, [vue.createVNode("div", {
22629
+ })
22630
+ }, [vue.createElementVNode("div", {
22549
22631
  "class": "v-date-picker-months__content"
22550
22632
  }, [months.value.map((month, i) => {
22551
22633
  const btnProps = {
@@ -22631,12 +22713,12 @@
22631
22713
  block: 'center'
22632
22714
  });
22633
22715
  });
22634
- useRender(() => vue.createVNode("div", {
22716
+ useRender(() => vue.createElementVNode("div", {
22635
22717
  "class": "v-date-picker-years",
22636
- "style": {
22718
+ "style": vue.normalizeStyle({
22637
22719
  height: convertToUnit(props.height)
22638
- }
22639
- }, [vue.createVNode("div", {
22720
+ })
22721
+ }, [vue.createElementVNode("div", {
22640
22722
  "class": "v-date-picker-years__content"
22641
22723
  }, [years.value.map((year, i) => {
22642
22724
  const btnProps = {
@@ -22873,7 +22955,7 @@
22873
22955
  }, rtlClasses.value, props.class],
22874
22956
  "style": props.style
22875
22957
  }), {
22876
- title: () => slots.title?.() ?? vue.createVNode("div", {
22958
+ title: () => slots.title?.() ?? vue.createElementVNode("div", {
22877
22959
  "class": "v-date-picker__title"
22878
22960
  }, [t(props.title)]),
22879
22961
  header: () => slots.header ? vue.createVNode(VDefaultsProvider, {
@@ -22892,7 +22974,7 @@
22892
22974
  ...slots,
22893
22975
  default: undefined
22894
22976
  }),
22895
- 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, {
22896
22978
  "disabled": disabled.value,
22897
22979
  "text": text.value,
22898
22980
  "onClick:next": onClickNext,
@@ -23001,15 +23083,15 @@
23001
23083
  const hasText = !!(slots.text || props.text);
23002
23084
  const hasMedia = !!(slots.media || props.image || props.icon);
23003
23085
  const size = props.size || (props.image ? 200 : 96);
23004
- return vue.createVNode("div", {
23005
- "class": ['v-empty-state', {
23086
+ return vue.createElementVNode("div", {
23087
+ "class": vue.normalizeClass(['v-empty-state', {
23006
23088
  [`v-empty-state--${props.justify}`]: true
23007
- }, themeClasses.value, backgroundColorClasses.value, displayClasses.value, props.class],
23008
- "style": [backgroundColorStyles.value, dimensionStyles.value, props.style]
23009
- }, [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", {
23010
23092
  "key": "media",
23011
23093
  "class": "v-empty-state__media"
23012
- }, [!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, {
23013
23095
  "key": "image",
23014
23096
  "src": props.image,
23015
23097
  "height": size
@@ -23032,22 +23114,22 @@
23032
23114
  }
23033
23115
  }, {
23034
23116
  default: () => [slots.media()]
23035
- })]), hasHeadline && vue.createVNode("div", {
23117
+ })]), hasHeadline && vue.createElementVNode("div", {
23036
23118
  "key": "headline",
23037
23119
  "class": "v-empty-state__headline"
23038
- }, [slots.headline?.() ?? props.headline]), hasTitle && vue.createVNode("div", {
23120
+ }, [slots.headline?.() ?? props.headline]), hasTitle && vue.createElementVNode("div", {
23039
23121
  "key": "title",
23040
23122
  "class": "v-empty-state__title"
23041
- }, [slots.title?.() ?? props.title]), hasText && vue.createVNode("div", {
23123
+ }, [slots.title?.() ?? props.title]), hasText && vue.createElementVNode("div", {
23042
23124
  "key": "text",
23043
23125
  "class": "v-empty-state__text",
23044
- "style": {
23126
+ "style": vue.normalizeStyle({
23045
23127
  maxWidth: convertToUnit(props.textWidth)
23046
- }
23047
- }, [slots.text?.() ?? props.text]), slots.default && vue.createVNode("div", {
23128
+ })
23129
+ }, [slots.text?.() ?? props.text]), slots.default && vue.createElementVNode("div", {
23048
23130
  "key": "content",
23049
23131
  "class": "v-empty-state__content"
23050
- }, [slots.default()]), hasActions && vue.createVNode("div", {
23132
+ }, [slots.default()]), hasActions && vue.createElementVNode("div", {
23051
23133
  "key": "actions",
23052
23134
  "class": "v-empty-state__actions"
23053
23135
  }, [vue.createVNode(VDefaultsProvider, {
@@ -23098,10 +23180,10 @@
23098
23180
  useRender(() => vue.createVNode(VExpandTransition, {
23099
23181
  "onAfterLeave": onAfterLeave
23100
23182
  }, {
23101
- default: () => [vue.withDirectives(vue.createVNode("div", {
23102
- "class": ['v-expansion-panel-text', props.class],
23103
- "style": props.style
23104
- }, [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", {
23105
23187
  "class": "v-expansion-panel-text__wrapper"
23106
23188
  }, [slots.default?.()])]), [[vue.vShow, expansionPanel.isSelected.value]])]
23107
23189
  }));
@@ -23135,7 +23217,7 @@
23135
23217
  const VExpansionPanelTitle = genericComponent()({
23136
23218
  name: 'VExpansionPanelTitle',
23137
23219
  directives: {
23138
- Ripple
23220
+ vRipple: Ripple
23139
23221
  },
23140
23222
  props: makeVExpansionPanelTitleProps(),
23141
23223
  setup(props, _ref) {
@@ -23159,19 +23241,19 @@
23159
23241
  readonly: props.readonly
23160
23242
  }));
23161
23243
  const icon = vue.toRef(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);
23162
- useRender(() => vue.withDirectives(vue.createVNode("button", {
23163
- "class": ['v-expansion-panel-title', {
23244
+ useRender(() => vue.withDirectives(vue.createElementVNode("button", {
23245
+ "class": vue.normalizeClass(['v-expansion-panel-title', {
23164
23246
  'v-expansion-panel-title--active': expansionPanel.isSelected.value,
23165
23247
  'v-expansion-panel-title--focusable': props.focusable,
23166
23248
  'v-expansion-panel-title--static': props.static
23167
- }, backgroundColorClasses.value, props.class],
23168
- "style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
23249
+ }, backgroundColorClasses.value, props.class]),
23250
+ "style": vue.normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, props.style]),
23169
23251
  "type": "button",
23170
23252
  "tabindex": expansionPanel.disabled.value ? -1 : undefined,
23171
23253
  "disabled": expansionPanel.disabled.value,
23172
23254
  "aria-expanded": expansionPanel.isSelected.value,
23173
23255
  "onClick": !props.readonly ? expansionPanel.toggle : undefined
23174
- }, [vue.createVNode("span", {
23256
+ }, [vue.createElementVNode("span", {
23175
23257
  "class": "v-expansion-panel-title__overlay"
23176
23258
  }, null), slots.default?.(slotProps.value), !props.hideActions && vue.createVNode(VDefaultsProvider, {
23177
23259
  "defaults": {
@@ -23180,10 +23262,10 @@
23180
23262
  }
23181
23263
  }
23182
23264
  }, {
23183
- default: () => [vue.createVNode("span", {
23265
+ default: () => [vue.createElementVNode("span", {
23184
23266
  "class": "v-expansion-panel-title__icon"
23185
23267
  }, [slots.actions?.(slotProps.value) ?? vue.createVNode(VIcon, null, null)])]
23186
- })]), [[vue.resolveDirective("ripple"), props.ripple]]));
23268
+ })]), [[Ripple, props.ripple]]));
23187
23269
  return {};
23188
23270
  }
23189
23271
  });
@@ -23240,16 +23322,16 @@
23240
23322
  const expansionPanelTitleProps = VExpansionPanelTitle.filterProps(props);
23241
23323
  const expansionPanelTextProps = VExpansionPanelText.filterProps(props);
23242
23324
  return vue.createVNode(props.tag, {
23243
- "class": ['v-expansion-panel', {
23325
+ "class": vue.normalizeClass(['v-expansion-panel', {
23244
23326
  'v-expansion-panel--active': groupItem.isSelected.value,
23245
23327
  'v-expansion-panel--before-active': isBeforeSelected.value,
23246
23328
  'v-expansion-panel--after-active': isAfterSelected.value,
23247
23329
  'v-expansion-panel--disabled': isDisabled.value
23248
- }, roundedClasses.value, backgroundColorClasses.value, props.class],
23249
- "style": [backgroundColorStyles.value, props.style]
23330
+ }, roundedClasses.value, backgroundColorClasses.value, props.class]),
23331
+ "style": vue.normalizeStyle([backgroundColorStyles.value, props.style])
23250
23332
  }, {
23251
- default: () => [vue.createVNode("div", {
23252
- "class": ['v-expansion-panel__shadow', ...elevationClasses.value]
23333
+ default: () => [vue.createElementVNode("div", {
23334
+ "class": vue.normalizeClass(['v-expansion-panel__shadow', ...elevationClasses.value])
23253
23335
  }, null), vue.createVNode(VDefaultsProvider, {
23254
23336
  "defaults": {
23255
23337
  VExpansionPanelTitle: {
@@ -23329,11 +23411,11 @@
23329
23411
  }
23330
23412
  });
23331
23413
  useRender(() => vue.createVNode(props.tag, {
23332
- "class": ['v-expansion-panels', {
23414
+ "class": vue.normalizeClass(['v-expansion-panels', {
23333
23415
  'v-expansion-panels--flat': props.flat,
23334
23416
  'v-expansion-panels--tile': props.tile
23335
- }, themeClasses.value, variantClass.value, props.class],
23336
- "style": props.style
23417
+ }, themeClasses.value, variantClass.value, props.class]),
23418
+ "style": vue.normalizeStyle(props.style)
23337
23419
  }, {
23338
23420
  default: () => [slots.default?.({
23339
23421
  prev,
@@ -23413,22 +23495,22 @@
23413
23495
  const vFabRef = vue.ref();
23414
23496
  useRender(() => {
23415
23497
  const btnProps = VBtn.filterProps(props);
23416
- return vue.createVNode("div", {
23498
+ return vue.createElementVNode("div", {
23417
23499
  "ref": vFabRef,
23418
- "class": ['v-fab', {
23500
+ "class": vue.normalizeClass(['v-fab', {
23419
23501
  'v-fab--absolute': props.absolute,
23420
23502
  'v-fab--app': !!props.app,
23421
23503
  'v-fab--extended': props.extended,
23422
23504
  'v-fab--offset': props.offset,
23423
23505
  [`v-fab--${position.value}`]: hasPosition.value,
23424
23506
  [`v-fab--${orientation.value}`]: hasPosition.value
23425
- }, props.class],
23426
- "style": [props.app ? {
23507
+ }, props.class]),
23508
+ "style": vue.normalizeStyle([props.app ? {
23427
23509
  ...layoutItemStyles.value
23428
23510
  } : {
23429
23511
  height: props.absolute ? '100%' : 'inherit'
23430
- }, props.style]
23431
- }, [vue.createVNode("div", {
23512
+ }, props.style])
23513
+ }, [vue.createElementVNode("div", {
23432
23514
  "class": "v-fab__container"
23433
23515
  }, [vue.createVNode(MaybeTransition, {
23434
23516
  "appear": props.appear,
@@ -23644,7 +23726,7 @@
23644
23726
  ...slotProps
23645
23727
  }
23646
23728
  } = _ref4;
23647
- return vue.createVNode(vue.Fragment, null, [vue.createVNode("input", vue.mergeProps({
23729
+ return vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("input", vue.mergeProps({
23648
23730
  "ref": inputRef,
23649
23731
  "type": "file",
23650
23732
  "readonly": isReadonly.value,
@@ -23664,8 +23746,8 @@
23664
23746
  "onDragleave": onDragleave,
23665
23747
  "onFocus": onFocus,
23666
23748
  "onBlur": blur
23667
- }, slotProps, inputAttrs), null), vue.createVNode("div", {
23668
- "class": fieldClass
23749
+ }, slotProps, inputAttrs), null), vue.createElementVNode("div", {
23750
+ "class": vue.normalizeClass(fieldClass)
23669
23751
  }, [!!model.value?.length && !props.hideInput && (slots.selection ? slots.selection({
23670
23752
  fileNames: fileNames.value,
23671
23753
  totalBytes: totalBytes.value,
@@ -23678,7 +23760,7 @@
23678
23760
  }
23679
23761
  });
23680
23762
  },
23681
- 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, {
23682
23764
  "active": !!model.value?.length,
23683
23765
  "value": counterValue.value,
23684
23766
  "disabled": props.disabled
@@ -23754,10 +23836,10 @@
23754
23836
  });
23755
23837
  useRender(() => vue.createVNode(props.tag, {
23756
23838
  "ref": resizeRef,
23757
- "class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
23758
- "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 : {
23759
23841
  height: convertToUnit(props.height)
23760
- }, props.style]
23842
+ }, props.style])
23761
23843
  }, slots));
23762
23844
  return {};
23763
23845
  }
@@ -23806,10 +23888,10 @@
23806
23888
  }
23807
23889
  e.preventDefault();
23808
23890
  }
23809
- useRender(() => vue.createVNode("form", {
23891
+ useRender(() => vue.createElementVNode("form", {
23810
23892
  "ref": formRef,
23811
- "class": ['v-form', props.class],
23812
- "style": props.style,
23893
+ "class": vue.normalizeClass(['v-form', props.class]),
23894
+ "style": vue.normalizeStyle(props.style),
23813
23895
  "novalidate": true,
23814
23896
  "onReset": onReset,
23815
23897
  "onSubmit": onSubmit
@@ -23906,11 +23988,11 @@
23906
23988
  vue.watch(isIntersecting, async val => {
23907
23989
  emit('intersect', props.side, val);
23908
23990
  });
23909
- useRender(() => vue.createVNode("div", {
23991
+ useRender(() => vue.createElementVNode("div", {
23910
23992
  "class": "v-infinite-scroll-intersect",
23911
- "style": {
23993
+ "style": vue.normalizeStyle({
23912
23994
  '--v-infinite-margin-size': props.rootMargin
23913
- },
23995
+ }),
23914
23996
  "ref": intersectionRef
23915
23997
  }, [vue.createTextVNode("\xA0")]));
23916
23998
  return {};
@@ -24022,7 +24104,7 @@
24022
24104
  }
24023
24105
  };
24024
24106
  if (status === 'error') return slots.error?.(slotProps);
24025
- 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)]);
24026
24108
  if (props.mode === 'manual') {
24027
24109
  if (status === 'loading') {
24028
24110
  return slots.loading?.(slotProps) ?? vue.createVNode(VProgressCircular, {
@@ -24053,13 +24135,13 @@
24053
24135
  const intersectMode = props.mode === 'intersect';
24054
24136
  return vue.createVNode(Tag, {
24055
24137
  "ref": rootEl,
24056
- "class": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
24138
+ "class": vue.normalizeClass(['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
24057
24139
  'v-infinite-scroll--start': hasStartIntersect,
24058
24140
  'v-infinite-scroll--end': hasEndIntersect
24059
- }],
24060
- "style": dimensionStyles.value
24141
+ }]),
24142
+ "style": vue.normalizeStyle(dimensionStyles.value)
24061
24143
  }, {
24062
- default: () => [vue.createVNode("div", {
24144
+ default: () => [vue.createElementVNode("div", {
24063
24145
  "class": "v-infinite-scroll__side"
24064
24146
  }, [renderSide('start', startStatus.value)]), hasStartIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
24065
24147
  "key": "start",
@@ -24071,7 +24153,7 @@
24071
24153
  "side": "end",
24072
24154
  "onIntersect": handleIntersect,
24073
24155
  "rootMargin": margin.value
24074
- }, null), vue.createVNode("div", {
24156
+ }, null), vue.createElementVNode("div", {
24075
24157
  "class": "v-infinite-scroll__side"
24076
24158
  }, [renderSide('end', endStatus.value)])]
24077
24159
  });
@@ -24111,8 +24193,8 @@
24111
24193
  selected
24112
24194
  } = useGroup(props, VItemGroupSymbol);
24113
24195
  return () => vue.createVNode(props.tag, {
24114
- "class": ['v-item-group', themeClasses.value, props.class],
24115
- "style": props.style
24196
+ "class": vue.normalizeClass(['v-item-group', themeClasses.value, props.class]),
24197
+ "style": vue.normalizeStyle(props.style)
24116
24198
  }, {
24117
24199
  default: () => [slots.default?.({
24118
24200
  isSelected,
@@ -24180,10 +24262,10 @@
24180
24262
  const {
24181
24263
  dimensionStyles
24182
24264
  } = useDimension(props);
24183
- useRender(() => vue.createVNode("div", {
24265
+ useRender(() => vue.createElementVNode("div", {
24184
24266
  "ref": layoutRef,
24185
- "class": [layoutClasses.value, props.class],
24186
- "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])
24187
24269
  }, [slots.default?.()]));
24188
24270
  return {
24189
24271
  getLayoutItem,
@@ -24225,9 +24307,9 @@
24225
24307
  active: vue.toRef(() => props.modelValue),
24226
24308
  absolute: vue.toRef(() => props.absolute)
24227
24309
  });
24228
- return () => vue.createVNode("div", {
24229
- "class": ['v-layout-item', props.class],
24230
- "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])
24231
24313
  }, [slots.default?.()]);
24232
24314
  }
24233
24315
  });
@@ -24256,7 +24338,7 @@
24256
24338
  const VLazy = genericComponent()({
24257
24339
  name: 'VLazy',
24258
24340
  directives: {
24259
- intersect: Intersect
24341
+ vIntersect: Intersect
24260
24342
  },
24261
24343
  props: makeVLazyProps(),
24262
24344
  emits: {
@@ -24275,8 +24357,8 @@
24275
24357
  isActive.value = isIntersecting;
24276
24358
  }
24277
24359
  useRender(() => vue.withDirectives(vue.createVNode(props.tag, {
24278
- "class": ['v-lazy', props.class],
24279
- "style": [dimensionStyles.value, props.style]
24360
+ "class": vue.normalizeClass(['v-lazy', props.class]),
24361
+ "style": vue.normalizeStyle([dimensionStyles.value, props.style])
24280
24362
  }, {
24281
24363
  default: () => [isActive.value && vue.createVNode(MaybeTransition, {
24282
24364
  "transition": props.transition,
@@ -24284,7 +24366,7 @@
24284
24366
  }, {
24285
24367
  default: () => [slots.default?.()]
24286
24368
  })]
24287
- }), [[vue.resolveDirective("intersect"), {
24369
+ }), [[Intersect, {
24288
24370
  handler: onIntersect,
24289
24371
  options: props.options
24290
24372
  }, null]]));
@@ -24312,9 +24394,9 @@
24312
24394
  const {
24313
24395
  rtlClasses
24314
24396
  } = provideLocale(props);
24315
- useRender(() => vue.createVNode("div", {
24316
- "class": ['v-locale-provider', rtlClasses.value, props.class],
24317
- "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)
24318
24400
  }, [slots.default?.()]));
24319
24401
  return {};
24320
24402
  }
@@ -24345,12 +24427,12 @@
24345
24427
  ssrBootStyles
24346
24428
  } = useSsrBoot();
24347
24429
  useRender(() => vue.createVNode(props.tag, {
24348
- "class": ['v-main', {
24430
+ "class": vue.normalizeClass(['v-main', {
24349
24431
  'v-main--scrollable': props.scrollable
24350
- }, props.class],
24351
- "style": [mainStyles.value, ssrBootStyles.value, dimensionStyles.value, props.style]
24432
+ }, props.class]),
24433
+ "style": vue.normalizeStyle([mainStyles.value, ssrBootStyles.value, dimensionStyles.value, props.style])
24352
24434
  }, {
24353
- default: () => [props.scrollable ? vue.createVNode("div", {
24435
+ default: () => [props.scrollable ? vue.createElementVNode("div", {
24354
24436
  "class": "v-main__scroller"
24355
24437
  }, [slots.default?.()]) : slots.default?.()]
24356
24438
  }));
@@ -24581,7 +24663,7 @@
24581
24663
  function getProgress(pos) {
24582
24664
  let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
24583
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();
24584
- return limit ? Math.max(0, Math.min(1, progress)) : progress;
24666
+ return limit ? clamp(progress) : progress;
24585
24667
  }
24586
24668
  function onTouchstart(e) {
24587
24669
  if (touchless.value) return;
@@ -24861,7 +24943,7 @@
24861
24943
  });
24862
24944
  useRender(() => {
24863
24945
  const hasImage = slots.image || props.image;
24864
- 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({
24865
24947
  "ref": rootEl,
24866
24948
  "onMouseenter": runOpenDelay,
24867
24949
  "onMouseleave": runCloseDelay,
@@ -24877,7 +24959,7 @@
24877
24959
  }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],
24878
24960
  "style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
24879
24961
  }, scopeId, attrs), {
24880
- default: () => [hasImage && vue.createVNode("div", {
24962
+ default: () => [hasImage && vue.createElementVNode("div", {
24881
24963
  "key": "image",
24882
24964
  "class": "v-navigation-drawer__img"
24883
24965
  }, [!slots.image ? vue.createVNode(VImg, {
@@ -24897,17 +24979,17 @@
24897
24979
  src: props.image
24898
24980
  }
24899
24981
  }
24900
- }, slots.image)]), slots.prepend && vue.createVNode("div", {
24982
+ }, slots.image)]), slots.prepend && vue.createElementVNode("div", {
24901
24983
  "class": "v-navigation-drawer__prepend"
24902
- }, [slots.prepend?.()]), vue.createVNode("div", {
24984
+ }, [slots.prepend?.()]), vue.createElementVNode("div", {
24903
24985
  "class": "v-navigation-drawer__content"
24904
- }, [slots.default?.()]), slots.append && vue.createVNode("div", {
24986
+ }, [slots.default?.()]), slots.append && vue.createElementVNode("div", {
24905
24987
  "class": "v-navigation-drawer__append"
24906
24988
  }, [slots.append?.()])]
24907
24989
  }), vue.createVNode(vue.Transition, {
24908
24990
  "name": "fade-transition"
24909
24991
  }, {
24910
- 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({
24911
24993
  "class": ['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value],
24912
24994
  "style": [scrimStyles.value, scrimColor.backgroundColorStyles.value],
24913
24995
  "onClick": () => {
@@ -25066,6 +25148,9 @@
25066
25148
  const controlNodeDefaultHeight = vue.toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
25067
25149
  const incrementSlotProps = {
25068
25150
  props: {
25151
+ style: {
25152
+ touchAction: 'none'
25153
+ },
25069
25154
  onClick: onControlClick,
25070
25155
  onPointerup: onControlMouseup,
25071
25156
  onPointerdown: onUpControlMousedown
@@ -25073,6 +25158,9 @@
25073
25158
  };
25074
25159
  const decrementSlotProps = {
25075
25160
  props: {
25161
+ style: {
25162
+ touchAction: 'none'
25163
+ },
25076
25164
  onClick: onControlClick,
25077
25165
  onPointerup: onControlMouseup,
25078
25166
  onPointerdown: onDownControlMousedown
@@ -25105,25 +25193,33 @@
25105
25193
  }
25106
25194
  function onBeforeinput(e) {
25107
25195
  if (!e.data) return;
25108
- const existingTxt = e.target?.value;
25109
- const selectionStart = e.target?.selectionStart;
25110
- const selectionEnd = e.target?.selectionEnd;
25196
+ const inputElement = e.target;
25197
+ const {
25198
+ value: existingTxt,
25199
+ selectionStart,
25200
+ selectionEnd
25201
+ } = inputElement ?? {};
25111
25202
  const potentialNewInputVal = existingTxt ? existingTxt.slice(0, selectionStart) + e.data + existingTxt.slice(selectionEnd) : e.data;
25203
+ const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision);
25204
+
25112
25205
  // Only numbers, "-", "." are allowed
25113
25206
  // AND "-", "." are allowed only once
25114
25207
  // AND "-" is only allowed at the start
25115
25208
  if (!/^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(potentialNewInputVal)) {
25116
25209
  e.preventDefault();
25210
+ inputElement.value = potentialNewNumber;
25117
25211
  }
25118
25212
  if (props.precision == null) return;
25119
25213
 
25120
25214
  // Ignore decimal digits above precision limit
25121
25215
  if (potentialNewInputVal.split('.')[1]?.length > props.precision) {
25122
25216
  e.preventDefault();
25217
+ inputElement.value = potentialNewNumber;
25123
25218
  }
25124
25219
  // Ignore decimal separator when precision = 0
25125
25220
  if (props.precision === 0 && potentialNewInputVal.includes('.')) {
25126
25221
  e.preventDefault();
25222
+ inputElement.value = potentialNewNumber;
25127
25223
  }
25128
25224
  }
25129
25225
  async function onKeydown(e) {
@@ -25205,17 +25301,18 @@
25205
25301
  } = VTextField.filterProps(props);
25206
25302
  function incrementControlNode() {
25207
25303
  return !slots.increment ? vue.createVNode(VBtn, {
25304
+ "aria-hidden": "true",
25305
+ "data-testid": "increment",
25208
25306
  "disabled": !canIncrease.value,
25209
25307
  "flat": true,
25210
- "key": "increment-btn",
25211
25308
  "height": controlNodeDefaultHeight.value,
25212
- "data-testid": "increment",
25213
- "aria-hidden": "true",
25214
25309
  "icon": incrementIcon.value,
25310
+ "key": "increment-btn",
25215
25311
  "onClick": onControlClick,
25216
- "onPointerup": onControlMouseup,
25217
25312
  "onPointerdown": onUpControlMousedown,
25313
+ "onPointerup": onControlMouseup,
25218
25314
  "size": controlNodeSize.value,
25315
+ "style": "touch-action: none",
25219
25316
  "tabindex": "-1"
25220
25317
  }, null) : vue.createVNode(VDefaultsProvider, {
25221
25318
  "key": "increment-defaults",
@@ -25234,18 +25331,19 @@
25234
25331
  }
25235
25332
  function decrementControlNode() {
25236
25333
  return !slots.decrement ? vue.createVNode(VBtn, {
25334
+ "aria-hidden": "true",
25335
+ "data-testid": "decrement",
25237
25336
  "disabled": !canDecrease.value,
25238
25337
  "flat": true,
25239
- "key": "decrement-btn",
25240
25338
  "height": controlNodeDefaultHeight.value,
25241
- "data-testid": "decrement",
25242
- "aria-hidden": "true",
25243
25339
  "icon": decrementIcon.value,
25244
- "size": controlNodeSize.value,
25245
- "tabindex": "-1",
25340
+ "key": "decrement-btn",
25246
25341
  "onClick": onControlClick,
25342
+ "onPointerdown": onDownControlMousedown,
25247
25343
  "onPointerup": onControlMouseup,
25248
- "onPointerdown": onDownControlMousedown
25344
+ "size": controlNodeSize.value,
25345
+ "style": "touch-action: none",
25346
+ "tabindex": "-1"
25249
25347
  }, null) : vue.createVNode(VDefaultsProvider, {
25250
25348
  "key": "decrement-defaults",
25251
25349
  "defaults": {
@@ -25262,7 +25360,7 @@
25262
25360
  });
25263
25361
  }
25264
25362
  function controlNode() {
25265
- return vue.createVNode("div", {
25363
+ return vue.createElementVNode("div", {
25266
25364
  "class": "v-number-input__control"
25267
25365
  }, [decrementControlNode(), vue.createVNode(VDivider, {
25268
25366
  "vertical": controlVariant.value !== 'stacked'
@@ -25273,17 +25371,17 @@
25273
25371
  "vertical": true
25274
25372
  }, null) : undefined;
25275
25373
  }
25276
- const appendInnerControl = controlVariant.value === 'split' ? vue.createVNode("div", {
25374
+ const appendInnerControl = controlVariant.value === 'split' ? vue.createElementVNode("div", {
25277
25375
  "class": "v-number-input__control"
25278
25376
  }, [vue.createVNode(VDivider, {
25279
25377
  "vertical": true
25280
- }, 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()]);
25281
25379
  const hasAppendInner = slots['append-inner'] || appendInnerControl;
25282
- const prependInnerControl = controlVariant.value === 'split' ? vue.createVNode("div", {
25380
+ const prependInnerControl = controlVariant.value === 'split' ? vue.createElementVNode("div", {
25283
25381
  "class": "v-number-input__control"
25284
25382
  }, [decrementControlNode(), vue.createVNode(VDivider, {
25285
25383
  "vertical": true
25286
- }, 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;
25287
25385
  const hasPrependInner = slots['prepend-inner'] || prependInnerControl;
25288
25386
  return vue.createVNode(VTextField, vue.mergeProps({
25289
25387
  "ref": vTextFieldRef,
@@ -25311,13 +25409,13 @@
25311
25409
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
25312
25410
  args[_key] = arguments[_key];
25313
25411
  }
25314
- return vue.createVNode(vue.Fragment, null, [slots['append-inner']?.(...args), appendInnerControl]);
25412
+ return vue.createElementVNode(vue.Fragment, null, [slots['append-inner']?.(...args), appendInnerControl]);
25315
25413
  } : undefined,
25316
25414
  'prepend-inner': hasPrependInner ? function () {
25317
25415
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
25318
25416
  args[_key2] = arguments[_key2];
25319
25417
  }
25320
- return vue.createVNode(vue.Fragment, null, [prependInnerControl, slots['prepend-inner']?.(...args)]);
25418
+ return vue.createElementVNode(vue.Fragment, null, [prependInnerControl, slots['prepend-inner']?.(...args)]);
25321
25419
  } : undefined
25322
25420
  });
25323
25421
  });
@@ -25481,16 +25579,16 @@
25481
25579
  });
25482
25580
  useRender(() => {
25483
25581
  const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
25484
- return vue.createVNode("div", vue.mergeProps({
25582
+ return vue.createElementVNode("div", vue.mergeProps({
25485
25583
  "class": ['v-otp-input', {
25486
25584
  'v-otp-input--divided': !!props.divider
25487
25585
  }, props.class],
25488
25586
  "style": [props.style]
25489
- }, rootAttrs), [vue.createVNode("div", {
25587
+ }, rootAttrs), [vue.createElementVNode("div", {
25490
25588
  "ref": contentRef,
25491
25589
  "class": "v-otp-input__content",
25492
- "style": [dimensionStyles.value]
25493
- }, [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", {
25494
25592
  "class": "v-otp-input__divider"
25495
25593
  }, [props.divider]), vue.createVNode(VField, {
25496
25594
  "focused": isFocused.value && props.focusAll || focusIndex.value === i,
@@ -25499,7 +25597,7 @@
25499
25597
  ...slots,
25500
25598
  loader: undefined,
25501
25599
  default: () => {
25502
- return vue.createVNode("input", {
25600
+ return vue.createElementVNode("input", {
25503
25601
  "ref": val => inputRef.value[i] = val,
25504
25602
  "aria-label": t(props.label, i + 1),
25505
25603
  "autofocus": i === 0 && props.autofocus,
@@ -25519,7 +25617,7 @@
25519
25617
  "onPaste": event => onPaste(i, event)
25520
25618
  }, null);
25521
25619
  }
25522
- })])), vue.createVNode("input", vue.mergeProps({
25620
+ })])), vue.createElementVNode("input", vue.mergeProps({
25523
25621
  "class": "v-otp-input-input",
25524
25622
  "type": "hidden"
25525
25623
  }, inputAttrs, {
@@ -25624,10 +25722,10 @@
25624
25722
  });
25625
25723
  }
25626
25724
  useRender(() => vue.createVNode(VImg, {
25627
- "class": ['v-parallax', {
25725
+ "class": vue.normalizeClass(['v-parallax', {
25628
25726
  'v-parallax--active': isIntersecting.value
25629
- }, props.class],
25630
- "style": props.style,
25727
+ }, props.class]),
25728
+ "style": vue.normalizeStyle(props.style),
25631
25729
  "ref": root,
25632
25730
  "cover": true,
25633
25731
  "onLoadstart": onScroll,
@@ -25727,7 +25825,7 @@
25727
25825
  isDisabled,
25728
25826
  isReadonly
25729
25827
  } = _ref2;
25730
- return vue.createVNode(vue.Fragment, null, [label && vue.createVNode(VLabel, {
25828
+ return vue.createElementVNode(vue.Fragment, null, [label && vue.createVNode(VLabel, {
25731
25829
  "id": id.value
25732
25830
  }, {
25733
25831
  default: () => [label]
@@ -25865,7 +25963,7 @@
25865
25963
  "focused": isFocused.value
25866
25964
  }), {
25867
25965
  ...slots,
25868
- 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, {
25869
25967
  "class": "v-slider__label",
25870
25968
  "text": props.label
25871
25969
  }, null) : undefined), slots.prepend?.(slotProps)]) : undefined,
@@ -25874,18 +25972,18 @@
25874
25972
  id,
25875
25973
  messagesId
25876
25974
  } = _ref4;
25877
- return vue.createVNode("div", {
25975
+ return vue.createElementVNode("div", {
25878
25976
  "class": "v-slider__container",
25879
25977
  "onMousedown": !readonly.value ? onSliderMousedown : undefined,
25880
25978
  "onTouchstartPassive": !readonly.value ? onSliderTouchstart : undefined
25881
- }, [vue.createVNode("input", {
25979
+ }, [vue.createElementVNode("input", {
25882
25980
  "id": `${id.value}_start`,
25883
25981
  "name": props.name || id.value,
25884
25982
  "disabled": !!props.disabled,
25885
25983
  "readonly": !!props.readonly,
25886
25984
  "tabindex": "-1",
25887
25985
  "value": model.value[0]
25888
- }, null), vue.createVNode("input", {
25986
+ }, null), vue.createElementVNode("input", {
25889
25987
  "id": `${id.value}_stop`,
25890
25988
  "name": props.name || id.value,
25891
25989
  "disabled": !!props.disabled,
@@ -26084,16 +26182,16 @@
26084
26182
  size: props.size,
26085
26183
  variant: 'plain'
26086
26184
  };
26087
- return vue.createVNode(vue.Fragment, null, [vue.createVNode("label", {
26185
+ return vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("label", {
26088
26186
  "for": id,
26089
- "class": {
26187
+ "class": vue.normalizeClass({
26090
26188
  'v-rating__item--half': props.halfIncrements && value % 1 > 0,
26091
26189
  'v-rating__item--full': props.halfIncrements && value % 1 === 0
26092
- },
26190
+ }),
26093
26191
  "onMouseenter": onMouseenter,
26094
26192
  "onMouseleave": onMouseleave,
26095
26193
  "onClick": onClick
26096
- }, [vue.createVNode("span", {
26194
+ }, [vue.createElementVNode("span", {
26097
26195
  "class": "v-rating__hidden"
26098
26196
  }, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({
26099
26197
  ...itemState.value[index],
@@ -26103,7 +26201,7 @@
26103
26201
  rating: normalizedValue.value
26104
26202
  }) : vue.createVNode(VBtn, vue.mergeProps({
26105
26203
  "aria-label": t(props.itemAriaLabel, value, props.length)
26106
- }, btnProps), null)]), vue.createVNode("input", {
26204
+ }, btnProps), null)]), vue.createElementVNode("input", {
26107
26205
  "class": "v-rating__hidden",
26108
26206
  "name": name.value,
26109
26207
  "id": id,
@@ -26117,31 +26215,31 @@
26117
26215
  }
26118
26216
  function createLabel(labelProps) {
26119
26217
  if (slots['item-label']) return slots['item-label'](labelProps);
26120
- if (labelProps.label) return vue.createVNode("span", null, [labelProps.label]);
26121
- 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")]);
26122
26220
  }
26123
26221
  useRender(() => {
26124
26222
  const hasLabels = !!props.itemLabels?.length || slots['item-label'];
26125
26223
  return vue.createVNode(props.tag, {
26126
- "class": ['v-rating', {
26224
+ "class": vue.normalizeClass(['v-rating', {
26127
26225
  'v-rating--hover': props.hover,
26128
26226
  'v-rating--readonly': props.readonly
26129
- }, themeClasses.value, props.class],
26130
- "style": props.style
26227
+ }, themeClasses.value, props.class]),
26228
+ "style": vue.normalizeStyle(props.style)
26131
26229
  }, {
26132
26230
  default: () => [vue.createVNode(VRatingItem, {
26133
26231
  "value": 0,
26134
26232
  "index": -1,
26135
26233
  "showStar": false
26136
- }, null), range.value.map((value, i) => vue.createVNode("div", {
26234
+ }, null), range.value.map((value, i) => vue.createElementVNode("div", {
26137
26235
  "class": "v-rating__wrapper"
26138
26236
  }, [hasLabels && props.itemLabelPosition === 'top' ? createLabel({
26139
26237
  value,
26140
26238
  index: i,
26141
26239
  label: props.itemLabels?.[i]
26142
- }) : undefined, vue.createVNode("div", {
26240
+ }) : undefined, vue.createElementVNode("div", {
26143
26241
  "class": "v-rating__item"
26144
- }, [props.halfIncrements ? vue.createVNode(vue.Fragment, null, [vue.createVNode(VRatingItem, {
26242
+ }, [props.halfIncrements ? vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VRatingItem, {
26145
26243
  "value": value - 0.5,
26146
26244
  "index": i * 2
26147
26245
  }, null), vue.createVNode(VRatingItem, {
@@ -26198,8 +26296,8 @@
26198
26296
  };
26199
26297
  function genBone(type) {
26200
26298
  let children = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
26201
- return vue.createVNode("div", {
26202
- "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}`])
26203
26301
  }, [children]);
26204
26302
  }
26205
26303
  function genBones(bone) {
@@ -26285,7 +26383,7 @@
26285
26383
  ariaLabel: t(props.loadingText),
26286
26384
  role: 'alert'
26287
26385
  };
26288
- return vue.createVNode("div", vue.mergeProps({
26386
+ return vue.createElementVNode("div", vue.mergeProps({
26289
26387
  "class": ['v-skeleton-loader', {
26290
26388
  'v-skeleton-loader--boilerplate': props.boilerplate
26291
26389
  }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],
@@ -26491,7 +26589,7 @@
26491
26589
  "onTouchend": onTouchend,
26492
26590
  "onAfterLeave": onAfterLeave
26493
26591
  }, scopeId), {
26494
- 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", {
26495
26593
  "key": "timer",
26496
26594
  "class": "v-snackbar__timer"
26497
26595
  }, [vue.createVNode(VProgressLinear, {
@@ -26499,7 +26597,7 @@
26499
26597
  "color": typeof props.timer === 'string' ? props.timer : 'info',
26500
26598
  "max": props.timeout,
26501
26599
  "model-value": countdown.time.value
26502
- }, null)]), hasContent && vue.createVNode("div", {
26600
+ }, null)]), hasContent && vue.createElementVNode("div", {
26503
26601
  "key": "content",
26504
26602
  "class": "v-snackbar__content",
26505
26603
  "role": "status",
@@ -26513,7 +26611,7 @@
26513
26611
  }
26514
26612
  }
26515
26613
  }, {
26516
- default: () => [vue.createVNode("div", {
26614
+ default: () => [vue.createElementVNode("div", {
26517
26615
  "class": "v-snackbar__actions"
26518
26616
  }, [slots.actions({
26519
26617
  isActive
@@ -26597,7 +26695,7 @@
26597
26695
  modelValue: _,
26598
26696
  ...snackbarProps
26599
26697
  } = VSnackbar.filterProps(props);
26600
- 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, {
26601
26699
  "defaults": {
26602
26700
  VSnackbar: current.value
26603
26701
  }
@@ -26613,7 +26711,7 @@
26613
26711
  text: slots.text ? () => slots.text?.({
26614
26712
  item: current.value
26615
26713
  }) : undefined,
26616
- 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, {
26617
26715
  "onClick": onClickClose
26618
26716
  }), null) : vue.createVNode(VDefaultsProvider, {
26619
26717
  "defaults": {
@@ -26771,57 +26869,57 @@
26771
26869
  const smooth = vue.computed(() => typeof props.smooth === 'boolean' ? props.smooth ? 2 : 0 : Number(props.smooth));
26772
26870
  useRender(() => {
26773
26871
  const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();
26774
- return vue.createVNode("svg", {
26872
+ return vue.createElementVNode("svg", {
26775
26873
  "display": "block"
26776
- }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
26874
+ }, [vue.createElementVNode("defs", null, [vue.createElementVNode("linearGradient", {
26777
26875
  "id": id.value,
26778
26876
  "gradientUnits": "userSpaceOnUse",
26779
26877
  "x1": props.gradientDirection === 'left' ? '100%' : '0',
26780
26878
  "y1": props.gradientDirection === 'top' ? '100%' : '0',
26781
26879
  "x2": props.gradientDirection === 'right' ? '100%' : '0',
26782
26880
  "y2": props.gradientDirection === 'bottom' ? '100%' : '0'
26783
- }, [gradientData.map((color, index) => vue.createVNode("stop", {
26881
+ }, [gradientData.map((color, index) => vue.createElementVNode("stop", {
26784
26882
  "offset": index / Math.max(gradientData.length - 1, 1),
26785
26883
  "stop-color": color || 'currentColor'
26786
- }, null))])]), vue.createVNode("clipPath", {
26884
+ }, null))])]), vue.createElementVNode("clipPath", {
26787
26885
  "id": `${id.value}-clip`
26788
- }, [bars.value.map(item => vue.createVNode("rect", {
26886
+ }, [bars.value.map(item => vue.createElementVNode("rect", {
26789
26887
  "x": item.x + offsetX.value,
26790
26888
  "y": item.y,
26791
26889
  "width": lineWidth.value,
26792
26890
  "height": item.height,
26793
26891
  "rx": smooth.value,
26794
26892
  "ry": smooth.value
26795
- }, [props.autoDraw && vue.createVNode(vue.Fragment, null, [vue.createVNode("animate", {
26893
+ }, [props.autoDraw && vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("animate", {
26796
26894
  "attributeName": "y",
26797
26895
  "from": item.y + item.height,
26798
26896
  "to": item.y,
26799
26897
  "dur": `${autoDrawDuration.value}ms`,
26800
26898
  "fill": "freeze"
26801
- }, null), vue.createVNode("animate", {
26899
+ }, null), vue.createElementVNode("animate", {
26802
26900
  "attributeName": "height",
26803
26901
  "from": "0",
26804
26902
  "to": item.height,
26805
26903
  "dur": `${autoDrawDuration.value}ms`,
26806
26904
  "fill": "freeze"
26807
- }, null)])]))]), hasLabels.value && vue.createVNode("g", {
26905
+ }, null)])]))]), hasLabels.value && vue.createElementVNode("g", {
26808
26906
  "key": "labels",
26809
26907
  "style": {
26810
26908
  textAnchor: 'middle',
26811
26909
  dominantBaseline: 'mathematical',
26812
26910
  fill: 'currentColor'
26813
26911
  }
26814
- }, [parsedLabels.value.map((item, i) => vue.createVNode("text", {
26912
+ }, [parsedLabels.value.map((item, i) => vue.createElementVNode("text", {
26815
26913
  "x": item.x + offsetX.value + lineWidth.value / 2,
26816
26914
  "y": parseInt(props.height, 10) - 2 + (parseInt(props.labelSize, 10) || 7 * 0.75),
26817
26915
  "font-size": Number(props.labelSize) || 7
26818
26916
  }, [slots.label?.({
26819
26917
  index: i,
26820
26918
  value: item.value
26821
- }) ?? item.value]))]), vue.createVNode("g", {
26919
+ }) ?? item.value]))]), vue.createElementVNode("g", {
26822
26920
  "clip-path": `url(#${id.value}-clip)`,
26823
26921
  "fill": `url(#${id.value})`
26824
- }, [vue.createVNode("rect", {
26922
+ }, [vue.createElementVNode("rect", {
26825
26923
  "x": 0,
26826
26924
  "y": 0,
26827
26925
  "width": Math.max(props.modelValue.length * lineWidth.value, Number(props.width)),
@@ -27000,39 +27098,39 @@
27000
27098
  }
27001
27099
  useRender(() => {
27002
27100
  const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();
27003
- return vue.createVNode("svg", {
27101
+ return vue.createElementVNode("svg", {
27004
27102
  "display": "block",
27005
27103
  "stroke-width": parseFloat(props.lineWidth) ?? 4
27006
- }, [vue.createVNode("defs", null, [vue.createVNode("linearGradient", {
27104
+ }, [vue.createElementVNode("defs", null, [vue.createElementVNode("linearGradient", {
27007
27105
  "id": id.value,
27008
27106
  "gradientUnits": "userSpaceOnUse",
27009
27107
  "x1": props.gradientDirection === 'left' ? '100%' : '0',
27010
27108
  "y1": props.gradientDirection === 'top' ? '100%' : '0',
27011
27109
  "x2": props.gradientDirection === 'right' ? '100%' : '0',
27012
27110
  "y2": props.gradientDirection === 'bottom' ? '100%' : '0'
27013
- }, [gradientData.map((color, index) => vue.createVNode("stop", {
27111
+ }, [gradientData.map((color, index) => vue.createElementVNode("stop", {
27014
27112
  "offset": index / Math.max(gradientData.length - 1, 1),
27015
27113
  "stop-color": color || 'currentColor'
27016
- }, null))])]), hasLabels.value && vue.createVNode("g", {
27114
+ }, null))])]), hasLabels.value && vue.createElementVNode("g", {
27017
27115
  "key": "labels",
27018
27116
  "style": {
27019
27117
  textAnchor: 'middle',
27020
27118
  dominantBaseline: 'mathematical',
27021
27119
  fill: 'currentColor'
27022
27120
  }
27023
- }, [parsedLabels.value.map((item, i) => vue.createVNode("text", {
27121
+ }, [parsedLabels.value.map((item, i) => vue.createElementVNode("text", {
27024
27122
  "x": item.x + lineWidth.value / 2 + lineWidth.value / 2,
27025
27123
  "y": parseInt(props.height, 10) - 4 + (parseInt(props.labelSize, 10) || 7 * 0.75),
27026
27124
  "font-size": Number(props.labelSize) || 7
27027
27125
  }, [slots.label?.({
27028
27126
  index: i,
27029
27127
  value: item.value
27030
- }) ?? item.value]))]), vue.createVNode("path", {
27128
+ }) ?? item.value]))]), vue.createElementVNode("path", {
27031
27129
  "ref": path,
27032
27130
  "d": genPath$1(props.fill),
27033
27131
  "fill": props.fill ? `url(#${id.value})` : 'none',
27034
27132
  "stroke": props.fill ? 'none' : `url(#${id.value})`
27035
- }, null), props.fill && vue.createVNode("path", {
27133
+ }, null), props.fill && vue.createElementVNode("path", {
27036
27134
  "d": genPath$1(false),
27037
27135
  "fill": "none",
27038
27136
  "stroke": props.color ?? props.gradient?.[0]
@@ -27200,7 +27298,7 @@
27200
27298
  const nextSlotProps = {
27201
27299
  onClick: onClickNext
27202
27300
  };
27203
- return vue.createVNode("div", {
27301
+ return vue.createElementVNode("div", {
27204
27302
  "class": "v-stepper-actions"
27205
27303
  }, [vue.createVNode(VDefaultsProvider, {
27206
27304
  "defaults": {
@@ -27274,7 +27372,7 @@
27274
27372
  const VStepperItem = genericComponent()({
27275
27373
  name: 'VStepperItem',
27276
27374
  directives: {
27277
- Ripple
27375
+ vRipple: Ripple
27278
27376
  },
27279
27377
  props: makeVStepperItemProps(),
27280
27378
  emits: {
@@ -27313,12 +27411,12 @@
27313
27411
  function onClick() {
27314
27412
  group?.toggle();
27315
27413
  }
27316
- return vue.withDirectives(vue.createVNode("button", {
27317
- "class": ['v-stepper-item', {
27414
+ return vue.withDirectives(vue.createElementVNode("button", {
27415
+ "class": vue.normalizeClass(['v-stepper-item', {
27318
27416
  'v-stepper-item--complete': hasCompleted.value,
27319
27417
  'v-stepper-item--disabled': props.disabled,
27320
27418
  'v-stepper-item--error': hasError.value
27321
- }, group?.selectedClass.value],
27419
+ }, group?.selectedClass.value]),
27322
27420
  "disabled": !props.editable,
27323
27421
  "type": "button",
27324
27422
  "onClick": onClick
@@ -27331,15 +27429,15 @@
27331
27429
  default: () => [slots.icon?.(slotProps.value) ?? (icon.value ? vue.createVNode(VIcon, {
27332
27430
  "icon": icon.value
27333
27431
  }, null) : step.value)]
27334
- }), vue.createVNode("div", {
27432
+ }), vue.createElementVNode("div", {
27335
27433
  "class": "v-stepper-item__content"
27336
- }, [hasTitle && vue.createVNode("div", {
27434
+ }, [hasTitle && vue.createElementVNode("div", {
27337
27435
  "key": "title",
27338
27436
  "class": "v-stepper-item__title"
27339
- }, [slots.title?.(slotProps.value) ?? props.title]), hasSubtitle && vue.createVNode("div", {
27437
+ }, [slots.title?.(slotProps.value) ?? props.title]), hasSubtitle && vue.createElementVNode("div", {
27340
27438
  "key": "subtitle",
27341
27439
  "class": "v-stepper-item__subtitle"
27342
- }, [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]]);
27343
27441
  });
27344
27442
  return {};
27345
27443
  }
@@ -27535,7 +27633,7 @@
27535
27633
  raw,
27536
27634
  ...item
27537
27635
  } = _ref2;
27538
- 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, {
27539
27637
  default: slots[`header-item.${item.value}`] ?? slots.header,
27540
27638
  icon: slots.icon,
27541
27639
  title: slots.title,
@@ -27676,14 +27774,14 @@
27676
27774
  backgroundColorClasses,
27677
27775
  backgroundColorStyles
27678
27776
  } = _ref3;
27679
- return vue.createVNode("div", {
27680
- "class": ['v-switch__track', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],
27681
- "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),
27682
27780
  "onClick": onTrackClick
27683
- }, [slots['track-true'] && vue.createVNode("div", {
27781
+ }, [slots['track-true'] && vue.createElementVNode("div", {
27684
27782
  "key": "prepend",
27685
27783
  "class": "v-switch__track-true"
27686
- }, [slots['track-true'](slotProps)]), slots['track-false'] && vue.createVNode("div", {
27784
+ }, [slots['track-true'](slotProps)]), slots['track-false'] && vue.createElementVNode("div", {
27687
27785
  "key": "append",
27688
27786
  "class": "v-switch__track-false"
27689
27787
  }, [slots['track-false'](slotProps)])]);
@@ -27695,11 +27793,11 @@
27695
27793
  backgroundColorClasses,
27696
27794
  backgroundColorStyles
27697
27795
  } = _ref4;
27698
- return vue.createVNode(vue.Fragment, null, [inputNode, vue.createVNode("div", {
27699
- "class": ['v-switch__thumb', {
27796
+ return vue.createElementVNode(vue.Fragment, null, [inputNode, vue.createElementVNode("div", {
27797
+ "class": vue.normalizeClass(['v-switch__thumb', {
27700
27798
  'v-switch__thumb--filled': icon || props.loading
27701
- }, props.inset || isForcedColorsModeActive ? undefined : backgroundColorClasses.value],
27702
- "style": props.inset ? undefined : backgroundColorStyles.value
27799
+ }, props.inset || isForcedColorsModeActive ? undefined : backgroundColorClasses.value]),
27800
+ "style": vue.normalizeStyle(props.inset ? undefined : backgroundColorStyles.value)
27703
27801
  }, [slots.thumb ? vue.createVNode(VDefaultsProvider, {
27704
27802
  "defaults": {
27705
27803
  VIcon: {
@@ -27787,10 +27885,10 @@
27787
27885
  absolute: vue.toRef(() => props.absolute)
27788
27886
  });
27789
27887
  useRender(() => vue.createVNode(props.tag, {
27790
- "class": ['v-system-bar', {
27888
+ "class": vue.normalizeClass(['v-system-bar', {
27791
27889
  'v-system-bar--window': props.window
27792
- }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],
27793
- "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])
27794
27892
  }, slots));
27795
27893
  return {};
27796
27894
  }
@@ -27881,10 +27979,10 @@
27881
27979
  "onGroup:selected": updateSlider
27882
27980
  }), {
27883
27981
  ...slots,
27884
- 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", {
27885
27983
  "ref": sliderEl,
27886
- "class": ['v-tab__slider', sliderColorClasses.value],
27887
- "style": sliderColorStyles.value
27984
+ "class": vue.normalizeClass(['v-tab__slider', sliderColorClasses.value]),
27985
+ "style": vue.normalizeStyle(sliderColorStyles.value)
27888
27986
  }, null)])
27889
27987
  });
27890
27988
  });
@@ -28036,7 +28134,7 @@
28036
28134
  useRender(() => {
28037
28135
  const slideGroupProps = VSlideGroup.filterProps(props);
28038
28136
  const hasWindow = !!(slots.window || props.items.length > 0);
28039
- 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, {
28040
28138
  "modelValue": model.value,
28041
28139
  "onUpdate:modelValue": $event => model.value = $event,
28042
28140
  "class": ['v-tabs', `v-tabs--${props.direction}`, `v-tabs--align-tabs-${props.alignTabs}`, {
@@ -28109,7 +28207,7 @@
28109
28207
  const VTextarea = genericComponent()({
28110
28208
  name: 'VTextarea',
28111
28209
  directives: {
28112
- Intersect
28210
+ vIntersect: Intersect
28113
28211
  },
28114
28212
  inheritAttrs: false,
28115
28213
  props: makeVTextareaProps(),
@@ -28282,9 +28380,9 @@
28282
28380
  ...slotProps
28283
28381
  }
28284
28382
  } = _ref3;
28285
- return vue.createVNode(vue.Fragment, null, [props.prefix && vue.createVNode("span", {
28383
+ return vue.createElementVNode(vue.Fragment, null, [props.prefix && vue.createElementVNode("span", {
28286
28384
  "class": "v-text-field__prefix"
28287
- }, [props.prefix]), vue.withDirectives(vue.createVNode("textarea", vue.mergeProps({
28385
+ }, [props.prefix]), vue.withDirectives(vue.createElementVNode("textarea", vue.mergeProps({
28288
28386
  "ref": textareaRef,
28289
28387
  "class": fieldClass,
28290
28388
  "value": model.value,
@@ -28297,24 +28395,24 @@
28297
28395
  "name": props.name,
28298
28396
  "onFocus": onFocus,
28299
28397
  "onBlur": blur
28300
- }, slotProps, inputAttrs), null), [[vue.resolveDirective("intersect"), {
28398
+ }, slotProps, inputAttrs), null), [[Intersect, {
28301
28399
  handler: onIntersect
28302
28400
  }, null, {
28303
28401
  once: true
28304
- }]]), props.autoGrow && vue.withDirectives(vue.createVNode("textarea", {
28305
- "class": [fieldClass, 'v-textarea__sizer'],
28402
+ }]]), props.autoGrow && vue.withDirectives(vue.createElementVNode("textarea", {
28403
+ "class": vue.normalizeClass([fieldClass, 'v-textarea__sizer']),
28306
28404
  "id": `${slotProps.id}-sizer`,
28307
28405
  "onUpdate:modelValue": $event => model.value = $event,
28308
28406
  "ref": sizerRef,
28309
28407
  "readonly": true,
28310
28408
  "aria-hidden": "true"
28311
- }, null), [[vue.vModelText, model.value]]), props.suffix && vue.createVNode("span", {
28409
+ }, null), [[vue.vModelText, model.value]]), props.suffix && vue.createElementVNode("span", {
28312
28410
  "class": "v-text-field__suffix"
28313
28411
  }, [props.suffix])]);
28314
28412
  }
28315
28413
  });
28316
28414
  },
28317
- 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, {
28318
28416
  "active": props.persistentCounter || isFocused.value,
28319
28417
  "value": counterValue.value,
28320
28418
  "max": max.value,
@@ -28345,8 +28443,8 @@
28345
28443
  return () => {
28346
28444
  if (!props.withBackground) return slots.default?.();
28347
28445
  return vue.createVNode(props.tag, {
28348
- "class": ['v-theme-provider', themeClasses.value, props.class],
28349
- "style": props.style
28446
+ "class": vue.normalizeClass(['v-theme-provider', themeClasses.value, props.class]),
28447
+ "style": vue.normalizeStyle(props.style)
28350
28448
  }, {
28351
28449
  default: () => [slots.default?.()]
28352
28450
  });
@@ -28391,21 +28489,21 @@
28391
28489
  backgroundColorClasses: lineColorClasses,
28392
28490
  backgroundColorStyles: lineColorStyles
28393
28491
  } = useBackgroundColor(() => props.lineColor);
28394
- useRender(() => vue.createVNode("div", {
28395
- "class": ['v-timeline-divider', {
28492
+ useRender(() => vue.createElementVNode("div", {
28493
+ "class": vue.normalizeClass(['v-timeline-divider', {
28396
28494
  'v-timeline-divider--fill-dot': props.fillDot
28397
- }, props.class],
28398
- "style": props.style
28399
- }, [vue.createVNode("div", {
28400
- "class": ['v-timeline-divider__before', lineColorClasses.value],
28401
- "style": lineColorStyles.value
28402
- }, 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", {
28403
28501
  "key": "dot",
28404
- "class": ['v-timeline-divider__dot', elevationClasses.value, roundedClasses.value, sizeClasses.value],
28405
- "style": sizeStyles.value
28406
- }, [vue.createVNode("div", {
28407
- "class": ['v-timeline-divider__inner-dot', backgroundColorClasses.value, roundedClasses.value],
28408
- "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)
28409
28507
  }, [!slots.default ? vue.createVNode(VIcon, {
28410
28508
  "key": "icon",
28411
28509
  "color": props.iconColor,
@@ -28421,9 +28519,9 @@
28421
28519
  size: props.size
28422
28520
  }
28423
28521
  }
28424
- }, slots.default)])]), vue.createVNode("div", {
28425
- "class": ['v-timeline-divider__after', lineColorClasses.value],
28426
- "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)
28427
28525
  }, null)]));
28428
28526
  return {};
28429
28527
  }
@@ -28474,19 +28572,19 @@
28474
28572
  }, {
28475
28573
  flush: 'post'
28476
28574
  });
28477
- useRender(() => vue.createVNode("div", {
28478
- "class": ['v-timeline-item', {
28575
+ useRender(() => vue.createElementVNode("div", {
28576
+ "class": vue.normalizeClass(['v-timeline-item', {
28479
28577
  'v-timeline-item--fill-dot': props.fillDot,
28480
28578
  'v-timeline-item--side-start': props.side === 'start',
28481
28579
  'v-timeline-item--side-end': props.side === 'end'
28482
- }, props.class],
28483
- "style": [{
28580
+ }, props.class]),
28581
+ "style": vue.normalizeStyle([{
28484
28582
  '--v-timeline-dot-size': convertToUnit(dotSize.value),
28485
28583
  '--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)
28486
- }, props.style]
28487
- }, [vue.createVNode("div", {
28584
+ }, props.style])
28585
+ }, [vue.createElementVNode("div", {
28488
28586
  "class": "v-timeline-item__body",
28489
- "style": dimensionStyles.value
28587
+ "style": vue.normalizeStyle(dimensionStyles.value)
28490
28588
  }, [slots.default?.()]), vue.createVNode(VTimelineDivider, {
28491
28589
  "ref": dotRef,
28492
28590
  "hideDot": props.hideDot,
@@ -28499,7 +28597,7 @@
28499
28597
  "rounded": props.rounded
28500
28598
  }, {
28501
28599
  default: slots.icon
28502
- }), props.density !== 'compact' && vue.createVNode("div", {
28600
+ }), props.density !== 'compact' && vue.createElementVNode("div", {
28503
28601
  "class": "v-timeline-item__opposite"
28504
28602
  }, [!props.hideOpposite && slots.opposite?.()])]));
28505
28603
  return {};
@@ -28592,12 +28690,12 @@
28592
28690
  }
28593
28691
  });
28594
28692
  useRender(() => vue.createVNode(props.tag, {
28595
- "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, {
28596
28694
  'v-timeline--inset-line': !!props.lineInset
28597
- }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class],
28598
- "style": [{
28695
+ }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class]),
28696
+ "style": vue.normalizeStyle([{
28599
28697
  '--v-timeline-line-thickness': convertToUnit(props.lineThickness)
28600
- }, props.style]
28698
+ }, props.style])
28601
28699
  }, slots));
28602
28700
  return {};
28603
28701
  }
@@ -28623,9 +28721,9 @@
28623
28721
  variant: vue.toRef(() => props.variant)
28624
28722
  }
28625
28723
  });
28626
- useRender(() => vue.createVNode("div", {
28627
- "class": ['v-toolbar-items', props.class],
28628
- "style": props.style
28724
+ useRender(() => vue.createElementVNode("div", {
28725
+ "class": vue.normalizeClass(['v-toolbar-items', props.class]),
28726
+ "style": vue.normalizeStyle(props.style)
28629
28727
  }, [slots.default?.()]));
28630
28728
  return {};
28631
28729
  }
@@ -29222,7 +29320,7 @@
29222
29320
  };
29223
29321
  });
29224
29322
  }
29225
- const version$1 = "3.8.6";
29323
+ const version$1 = "3.8.7";
29226
29324
  createVuetify$1.version = version$1;
29227
29325
 
29228
29326
  // Vue's inject() can only be used in setup
@@ -29247,7 +29345,7 @@
29247
29345
  ...options
29248
29346
  });
29249
29347
  };
29250
- const version = "3.8.6";
29348
+ const version = "3.8.7";
29251
29349
  createVuetify.version = version;
29252
29350
 
29253
29351
  exports.blueprints = index;