vuetify 3.1.12 → 3.1.14

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 (490) hide show
  1. package/dist/_component-variables-labs.sass +2 -1
  2. package/dist/json/attributes.json +4138 -3902
  3. package/dist/json/importMap-labs.json +8 -4
  4. package/dist/json/importMap.json +154 -154
  5. package/dist/json/tags.json +608 -544
  6. package/dist/json/web-types.json +14730 -14109
  7. package/dist/vuetify-labs.css +479 -236
  8. package/dist/vuetify-labs.d.ts +2356 -1425
  9. package/dist/vuetify-labs.esm.js +716 -505
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +716 -507
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +156 -133
  14. package/dist/vuetify.d.ts +1772 -1110
  15. package/dist/vuetify.esm.js +556 -480
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +556 -482
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +202 -186
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  23. package/lib/components/VApp/VApp.mjs.map +1 -1
  24. package/lib/components/VApp/index.d.ts +2 -2
  25. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  26. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  27. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  28. package/lib/components/VAutocomplete/VAutocomplete.mjs +7 -5
  29. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  30. package/lib/components/VAutocomplete/index.d.ts +77 -71
  31. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  32. package/lib/components/VBadge/VBadge.mjs +1 -1
  33. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  34. package/lib/components/VBadge/index.d.ts +13 -13
  35. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  36. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  37. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  38. package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
  39. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  40. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  41. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  42. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  43. package/lib/components/VBtn/index.d.ts +4 -4
  44. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  45. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  46. package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
  47. package/lib/components/VCalendar/VCalendarCategory.mjs.map +1 -1
  48. package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
  49. package/lib/components/VCalendar/VCalendarMonthly.mjs.map +1 -1
  50. package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
  51. package/lib/components/VCalendar/mixins/calendar-base.mjs.map +1 -1
  52. package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
  53. package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +1 -1
  54. package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
  55. package/lib/components/VCalendar/mixins/times.mjs.map +1 -1
  56. package/lib/components/VCalendar/modes/column.mjs.map +1 -1
  57. package/lib/components/VCalendar/modes/common.mjs.map +1 -1
  58. package/lib/components/VCalendar/modes/stack.mjs.map +1 -1
  59. package/lib/components/VCalendar/util/events.mjs.map +1 -1
  60. package/lib/components/VCalendar/util/parser.mjs.map +1 -1
  61. package/lib/components/VCalendar/util/props.mjs.map +1 -1
  62. package/lib/components/VCalendar/util/timestamp.mjs.map +1 -1
  63. package/lib/components/VCard/VCard.mjs.map +1 -1
  64. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  65. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  66. package/lib/components/VCard/index.d.ts +1 -13
  67. package/lib/components/VCarousel/VCarousel.mjs +10 -10
  68. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  69. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  70. package/lib/components/VCarousel/index.d.ts +197 -19
  71. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  72. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  73. package/lib/components/VCheckbox/index.d.ts +14 -14
  74. package/lib/components/VChip/VChip.mjs +2 -2
  75. package/lib/components/VChip/VChip.mjs.map +1 -1
  76. package/lib/components/VChip/index.d.ts +14 -14
  77. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  78. package/lib/components/VColorPicker/VColorPicker.mjs +58 -61
  79. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  80. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  81. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  82. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  83. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  84. package/lib/components/VColorPicker/index.d.ts +113 -50
  85. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  86. package/lib/components/VCombobox/VCombobox.mjs +8 -6
  87. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  88. package/lib/components/VCombobox/index.d.ts +77 -71
  89. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  90. package/lib/components/VCounter/index.d.ts +123 -24
  91. package/lib/components/VData/VData.mjs.map +1 -1
  92. package/lib/components/VDataIterator/VDataFooter.mjs.map +1 -1
  93. package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
  94. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  95. package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +1 -1
  96. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
  97. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +1 -1
  98. package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +1 -1
  99. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  100. package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +1 -1
  101. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
  102. package/lib/components/VDatePicker/util/eventHelpers.mjs.map +1 -1
  103. package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +1 -1
  104. package/lib/components/VDatePicker/util/pad.mjs.map +1 -1
  105. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  106. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  107. package/lib/components/VDialog/index.d.ts +43 -43
  108. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  109. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  110. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  111. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  112. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  113. package/lib/components/VField/VField.mjs +3 -3
  114. package/lib/components/VField/VField.mjs.map +1 -1
  115. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  116. package/lib/components/VField/index.d.ts +20 -20
  117. package/lib/components/VFileInput/VFileInput.mjs +0 -1
  118. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  119. package/lib/components/VFileInput/index.d.ts +59 -65
  120. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  121. package/lib/components/VForm/VForm.mjs.map +1 -1
  122. package/lib/components/VGrid/VCol.mjs.map +1 -1
  123. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  124. package/lib/components/VGrid/VRow.mjs.map +1 -1
  125. package/lib/components/VHover/VHover.mjs.map +1 -1
  126. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  127. package/lib/components/VImg/VImg.mjs +3 -3
  128. package/lib/components/VImg/VImg.mjs.map +1 -1
  129. package/lib/components/VImg/index.d.ts +28 -28
  130. package/lib/components/VInput/InputIcon.mjs.map +1 -1
  131. package/lib/components/VInput/VInput.mjs +2 -2
  132. package/lib/components/VInput/VInput.mjs.map +1 -1
  133. package/lib/components/VInput/index.d.ts +14 -14
  134. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  135. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  136. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  137. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  138. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  139. package/lib/components/VLayout/index.d.ts +2 -2
  140. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  141. package/lib/components/VLazy/index.d.ts +13 -13
  142. package/lib/components/VList/VList.mjs +2 -1
  143. package/lib/components/VList/VList.mjs.map +1 -1
  144. package/lib/components/VList/VListChildren.mjs.map +1 -1
  145. package/lib/components/VList/VListGroup.mjs +24 -13
  146. package/lib/components/VList/VListGroup.mjs.map +1 -1
  147. package/lib/components/VList/VListItem.css +12 -0
  148. package/lib/components/VList/VListItem.mjs +2 -2
  149. package/lib/components/VList/VListItem.mjs.map +1 -1
  150. package/lib/components/VList/VListItem.sass +5 -0
  151. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  152. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  153. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  154. package/lib/components/VList/index.d.ts +14 -14
  155. package/lib/components/VList/list.mjs.map +1 -1
  156. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  157. package/lib/components/VMain/VMain.mjs.map +1 -1
  158. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  159. package/lib/components/VMenu/index.d.ts +43 -43
  160. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  161. package/lib/components/VMessages/index.d.ts +123 -24
  162. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +8 -2
  163. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  164. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  165. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  166. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  167. package/lib/components/VNoSsr/index.d.ts +1 -13
  168. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  169. package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
  170. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  171. package/lib/components/VOverlay/index.d.ts +15 -15
  172. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  173. package/lib/components/VOverlay/requestNewFrame.mjs.map +1 -1
  174. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  175. package/lib/components/VOverlay/useActivator.mjs +1 -0
  176. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  177. package/lib/components/VOverlay/util/point.mjs.map +1 -1
  178. package/lib/components/VPagination/VPagination.mjs +2 -2
  179. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  180. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  181. package/lib/components/VPicker/VPicker.mjs.map +1 -1
  182. package/lib/components/VProgressCircular/VProgressCircular.css +3 -1
  183. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  184. package/lib/components/VProgressCircular/VProgressCircular.sass +3 -1
  185. package/lib/components/VProgressCircular/_variables.scss +1 -0
  186. package/lib/components/VProgressLinear/VProgressLinear.css +6 -3
  187. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  188. package/lib/components/VProgressLinear/VProgressLinear.sass +3 -0
  189. package/lib/components/VProgressLinear/_variables.scss +1 -1
  190. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  191. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  192. package/lib/components/VRadioGroup/index.d.ts +14 -14
  193. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  194. package/lib/components/VRangeSlider/index.d.ts +14 -14
  195. package/lib/components/VRating/VRating.mjs.map +1 -1
  196. package/lib/components/VRating/index.d.ts +2 -2
  197. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  198. package/lib/components/VSelect/VSelect.mjs +31 -2
  199. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  200. package/lib/components/VSelect/index.d.ts +77 -71
  201. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  202. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  203. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  204. package/lib/components/VSlideGroup/VSlideGroup.mjs +29 -28
  205. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  206. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  207. package/lib/components/VSlideGroup/helpers.mjs.map +1 -1
  208. package/lib/components/VSlideGroup/index.d.ts +17 -17
  209. package/lib/components/VSlider/VSlider.mjs +1 -1
  210. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  211. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  212. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  213. package/lib/components/VSlider/index.d.ts +14 -14
  214. package/lib/components/VSlider/slider.mjs +1 -1
  215. package/lib/components/VSlider/slider.mjs.map +1 -1
  216. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  217. package/lib/components/VSnackbar/index.d.ts +43 -43
  218. package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
  219. package/lib/components/VSparkline/helpers/core.mjs.map +1 -1
  220. package/lib/components/VSparkline/helpers/math.mjs.map +1 -1
  221. package/lib/components/VSparkline/helpers/path.mjs.map +1 -1
  222. package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
  223. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  224. package/lib/components/VStepper/VStepperContent.mjs.map +1 -1
  225. package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
  226. package/lib/components/VSwitch/VSwitch.css +4 -0
  227. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  228. package/lib/components/VSwitch/VSwitch.sass +4 -0
  229. package/lib/components/VSwitch/index.d.ts +14 -14
  230. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  231. package/lib/components/VTable/VTable.css +1 -1
  232. package/lib/components/VTable/VTable.mjs.map +1 -1
  233. package/lib/components/VTable/VTable.sass +1 -1
  234. package/lib/components/VTabs/VTab.mjs.map +1 -1
  235. package/lib/components/VTabs/VTabs.mjs +25 -30
  236. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  237. package/lib/components/VTabs/index.d.ts +165 -28
  238. package/lib/components/VTextField/VTextField.mjs +3 -6
  239. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  240. package/lib/components/VTextField/index.d.ts +83 -77
  241. package/lib/components/VTextarea/VTextarea.mjs +9 -6
  242. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  243. package/lib/components/VTextarea/index.d.ts +56 -50
  244. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  245. package/lib/components/VTimePicker/SelectingTimes.mjs +3 -3
  246. package/lib/components/VTimePicker/SelectingTimes.mjs.map +1 -1
  247. package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
  248. package/lib/components/VTimePicker/VTimePickerClock.mjs.map +1 -1
  249. package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +1 -1
  250. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  251. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  252. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  253. package/lib/components/VTimeline/index.d.ts +8 -8
  254. package/lib/components/VToolbar/VToolbar.css +2 -0
  255. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  256. package/lib/components/VToolbar/VToolbar.sass +2 -0
  257. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  258. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  259. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  260. package/lib/components/VTooltip/index.d.ts +43 -43
  261. package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
  262. package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
  263. package/lib/components/VTreeview/util/filterTreeItems.mjs.map +1 -1
  264. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  265. package/lib/components/VWindow/VWindow.mjs +38 -37
  266. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  267. package/lib/components/VWindow/VWindowItem.mjs +2 -1
  268. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  269. package/lib/components/index.d.ts +1655 -993
  270. package/lib/components/transitions/createTransition.mjs +59 -50
  271. package/lib/components/transitions/createTransition.mjs.map +1 -1
  272. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  273. package/lib/components/transitions/expand-transition.mjs.map +1 -1
  274. package/lib/components/transitions/index.d.ts +150 -15
  275. package/lib/composables/border.mjs.map +1 -1
  276. package/lib/composables/color.mjs.map +1 -1
  277. package/lib/composables/defaults.mjs +1 -1
  278. package/lib/composables/defaults.mjs.map +1 -1
  279. package/lib/composables/delay.mjs.map +1 -1
  280. package/lib/composables/density.mjs.map +1 -1
  281. package/lib/composables/dimensions.mjs.map +1 -1
  282. package/lib/composables/display.mjs.map +1 -1
  283. package/lib/composables/elevation.mjs.map +1 -1
  284. package/lib/composables/filter.mjs.map +1 -1
  285. package/lib/composables/focus.mjs.map +1 -1
  286. package/lib/composables/form.mjs.map +1 -1
  287. package/lib/composables/forwardRefs.mjs +17 -0
  288. package/lib/composables/forwardRefs.mjs.map +1 -1
  289. package/lib/composables/group.mjs.map +1 -1
  290. package/lib/composables/hydration.mjs.map +1 -1
  291. package/lib/composables/icons.mjs.map +1 -1
  292. package/lib/composables/intersectionObserver.mjs.map +1 -1
  293. package/lib/composables/items.mjs.map +1 -1
  294. package/lib/composables/layout.mjs.map +1 -1
  295. package/lib/composables/lazy.mjs.map +1 -1
  296. package/lib/composables/loader.mjs.map +1 -1
  297. package/lib/composables/locale.mjs.map +1 -1
  298. package/lib/composables/location.mjs.map +1 -1
  299. package/lib/composables/mutationObserver.mjs.map +1 -1
  300. package/lib/composables/nested/nested.mjs.map +1 -1
  301. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  302. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  303. package/lib/composables/position.mjs.map +1 -1
  304. package/lib/composables/proxiedModel.mjs +2 -1
  305. package/lib/composables/proxiedModel.mjs.map +1 -1
  306. package/lib/composables/refs.mjs.map +1 -1
  307. package/lib/composables/resizeObserver.mjs.map +1 -1
  308. package/lib/composables/rounded.mjs.map +1 -1
  309. package/lib/composables/router.mjs.map +1 -1
  310. package/lib/composables/scopeId.mjs.map +1 -1
  311. package/lib/composables/scroll.mjs.map +1 -1
  312. package/lib/composables/selectLink.mjs.map +1 -1
  313. package/lib/composables/size.mjs.map +1 -1
  314. package/lib/composables/ssrBoot.mjs.map +1 -1
  315. package/lib/composables/stack.mjs.map +1 -1
  316. package/lib/composables/teleport.mjs.map +1 -1
  317. package/lib/composables/theme.mjs +1 -1
  318. package/lib/composables/theme.mjs.map +1 -1
  319. package/lib/composables/toggleScope.mjs.map +1 -1
  320. package/lib/composables/touch.mjs.map +1 -1
  321. package/lib/composables/transition.mjs.map +1 -1
  322. package/lib/composables/validation.mjs +1 -1
  323. package/lib/composables/validation.mjs.map +1 -1
  324. package/lib/composables/variant.mjs.map +1 -1
  325. package/lib/directives/click-outside/index.mjs.map +1 -1
  326. package/lib/directives/color/index.mjs.map +1 -1
  327. package/lib/directives/intersect/index.mjs.map +1 -1
  328. package/lib/directives/mutate/index.mjs.map +1 -1
  329. package/lib/directives/resize/index.mjs.map +1 -1
  330. package/lib/directives/ripple/index.mjs.map +1 -1
  331. package/lib/directives/scroll/index.mjs.map +1 -1
  332. package/lib/directives/touch/index.mjs.map +1 -1
  333. package/lib/entry-bundler.mjs +1 -1
  334. package/lib/entry-bundler.mjs.map +1 -1
  335. package/lib/framework.mjs +1 -1
  336. package/lib/framework.mjs.map +1 -1
  337. package/lib/index.d.ts +39 -39
  338. package/lib/labs/VDataTable/VDataTable.mjs +7 -5
  339. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  340. package/lib/labs/VDataTable/VDataTableColumn.mjs.map +1 -1
  341. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  342. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
  343. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  344. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  345. package/lib/labs/VDataTable/VDataTableRows.mjs +5 -7
  346. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  347. package/lib/labs/VDataTable/VDataTableServer.mjs +4 -3
  348. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  349. package/lib/labs/VDataTable/VDataTableVirtual.mjs +5 -3
  350. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  351. package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
  352. package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
  353. package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
  354. package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
  355. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  356. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  357. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  358. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
  359. package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
  360. package/lib/labs/VDataTable/index.d.ts +393 -340
  361. package/lib/labs/VSkeletonLoader/VSkeletonLoader.css +221 -0
  362. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +141 -0
  363. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -0
  364. package/lib/labs/VSkeletonLoader/VSkeletonLoader.sass +225 -0
  365. package/lib/labs/VSkeletonLoader/_variables.scss +44 -0
  366. package/lib/labs/VSkeletonLoader/index.d.ts +222 -0
  367. package/lib/labs/VSkeletonLoader/index.mjs +2 -0
  368. package/lib/labs/VSkeletonLoader/index.mjs.map +1 -0
  369. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  370. package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  371. package/lib/labs/components.d.ts +608 -341
  372. package/lib/labs/components.mjs +1 -0
  373. package/lib/labs/components.mjs.map +1 -1
  374. package/lib/labs/entry-bundler.mjs.map +1 -1
  375. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  376. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  377. package/lib/locale/af.mjs +2 -1
  378. package/lib/locale/af.mjs.map +1 -1
  379. package/lib/locale/ar.mjs +2 -1
  380. package/lib/locale/ar.mjs.map +1 -1
  381. package/lib/locale/az.mjs +2 -1
  382. package/lib/locale/az.mjs.map +1 -1
  383. package/lib/locale/bg.mjs +2 -1
  384. package/lib/locale/bg.mjs.map +1 -1
  385. package/lib/locale/ca.mjs +2 -1
  386. package/lib/locale/ca.mjs.map +1 -1
  387. package/lib/locale/ckb.mjs +2 -1
  388. package/lib/locale/ckb.mjs.map +1 -1
  389. package/lib/locale/cs.mjs +2 -1
  390. package/lib/locale/cs.mjs.map +1 -1
  391. package/lib/locale/da.mjs +2 -1
  392. package/lib/locale/da.mjs.map +1 -1
  393. package/lib/locale/de.mjs +2 -1
  394. package/lib/locale/de.mjs.map +1 -1
  395. package/lib/locale/el.mjs +2 -1
  396. package/lib/locale/el.mjs.map +1 -1
  397. package/lib/locale/en.mjs +2 -1
  398. package/lib/locale/en.mjs.map +1 -1
  399. package/lib/locale/es.mjs +2 -1
  400. package/lib/locale/es.mjs.map +1 -1
  401. package/lib/locale/et.mjs +2 -1
  402. package/lib/locale/et.mjs.map +1 -1
  403. package/lib/locale/fa.mjs +2 -1
  404. package/lib/locale/fa.mjs.map +1 -1
  405. package/lib/locale/fi.mjs +2 -1
  406. package/lib/locale/fi.mjs.map +1 -1
  407. package/lib/locale/fr.mjs +2 -1
  408. package/lib/locale/fr.mjs.map +1 -1
  409. package/lib/locale/he.mjs +2 -1
  410. package/lib/locale/he.mjs.map +1 -1
  411. package/lib/locale/hr.mjs +2 -1
  412. package/lib/locale/hr.mjs.map +1 -1
  413. package/lib/locale/hu.mjs +2 -1
  414. package/lib/locale/hu.mjs.map +1 -1
  415. package/lib/locale/id.mjs +2 -1
  416. package/lib/locale/id.mjs.map +1 -1
  417. package/lib/locale/index.d.ts +42 -0
  418. package/lib/locale/it.mjs +2 -1
  419. package/lib/locale/it.mjs.map +1 -1
  420. package/lib/locale/ja.mjs +2 -1
  421. package/lib/locale/ja.mjs.map +1 -1
  422. package/lib/locale/ko.mjs +2 -1
  423. package/lib/locale/ko.mjs.map +1 -1
  424. package/lib/locale/lt.mjs +2 -1
  425. package/lib/locale/lt.mjs.map +1 -1
  426. package/lib/locale/lv.mjs +2 -1
  427. package/lib/locale/lv.mjs.map +1 -1
  428. package/lib/locale/nl.mjs +2 -1
  429. package/lib/locale/nl.mjs.map +1 -1
  430. package/lib/locale/no.mjs +2 -1
  431. package/lib/locale/no.mjs.map +1 -1
  432. package/lib/locale/pl.mjs +2 -1
  433. package/lib/locale/pl.mjs.map +1 -1
  434. package/lib/locale/pt.mjs +2 -1
  435. package/lib/locale/pt.mjs.map +1 -1
  436. package/lib/locale/ro.mjs +2 -1
  437. package/lib/locale/ro.mjs.map +1 -1
  438. package/lib/locale/ru.mjs +2 -1
  439. package/lib/locale/ru.mjs.map +1 -1
  440. package/lib/locale/sk.mjs +2 -1
  441. package/lib/locale/sk.mjs.map +1 -1
  442. package/lib/locale/sl.mjs +2 -1
  443. package/lib/locale/sl.mjs.map +1 -1
  444. package/lib/locale/sr-Cyrl.mjs +2 -1
  445. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  446. package/lib/locale/sr-Latn.mjs +2 -1
  447. package/lib/locale/sr-Latn.mjs.map +1 -1
  448. package/lib/locale/sv.mjs +2 -1
  449. package/lib/locale/sv.mjs.map +1 -1
  450. package/lib/locale/th.mjs +2 -1
  451. package/lib/locale/th.mjs.map +1 -1
  452. package/lib/locale/tr.mjs +2 -1
  453. package/lib/locale/tr.mjs.map +1 -1
  454. package/lib/locale/uk.mjs +2 -1
  455. package/lib/locale/uk.mjs.map +1 -1
  456. package/lib/locale/vi.mjs +2 -1
  457. package/lib/locale/vi.mjs.map +1 -1
  458. package/lib/locale/zh-Hans.mjs +2 -1
  459. package/lib/locale/zh-Hans.mjs.map +1 -1
  460. package/lib/locale/zh-Hant.mjs +2 -1
  461. package/lib/locale/zh-Hant.mjs.map +1 -1
  462. package/lib/services/goto/index.mjs.map +1 -1
  463. package/lib/services/goto/util.mjs.map +1 -1
  464. package/lib/util/anchor.mjs.map +1 -1
  465. package/lib/util/animation.mjs.map +1 -1
  466. package/lib/util/box.mjs.map +1 -1
  467. package/lib/util/color/APCA.mjs.map +1 -1
  468. package/lib/util/color/transformCIELAB.mjs.map +1 -1
  469. package/lib/util/color/transformSRGB.mjs.map +1 -1
  470. package/lib/util/colorUtils.mjs.map +1 -1
  471. package/lib/util/console.mjs.map +1 -1
  472. package/lib/util/createSimpleFunctional.mjs.map +1 -1
  473. package/lib/util/dateTimeUtils.mjs.map +1 -1
  474. package/lib/util/defineComponent.mjs.map +1 -1
  475. package/lib/util/dom.mjs.map +1 -1
  476. package/lib/util/getCurrentInstance.mjs.map +1 -1
  477. package/lib/util/getScrollParent.mjs.map +1 -1
  478. package/lib/util/helpers.mjs +1 -1
  479. package/lib/util/helpers.mjs.map +1 -1
  480. package/lib/util/injectSelf.mjs.map +1 -1
  481. package/lib/util/isFixedPosition.mjs.map +1 -1
  482. package/lib/util/propsFactory.mjs.map +1 -1
  483. package/lib/util/useRender.mjs.map +1 -1
  484. package/package.json +25 -25
  485. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +0 -179
  486. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +0 -1
  487. package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +0 -377
  488. package/lib/components/VSkeletonLoader/_variables.scss +0 -54
  489. package/lib/components/VSkeletonLoader/index.mjs +0 -4
  490. package/lib/components/VSkeletonLoader/index.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.1.12
2
+ * Vuetify v3.1.14
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -339,7 +339,7 @@ function includes(arr, val) {
339
339
  }
340
340
  const onRE = /^on[^a-z]/;
341
341
  const isOn = key => onRE.test(key);
342
- const EventProp = [Function, Array];
342
+ const EventProp = () => [Function, Array];
343
343
  function hasEvent(props, name) {
344
344
  name = 'on' + capitalize(name);
345
345
  return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`]);
@@ -979,7 +979,7 @@ function provideDefaults(defaults, options) {
979
979
  }
980
980
  return properties;
981
981
  }
982
- return mergeDeep(properties.prev, properties);
982
+ return properties.prev ? mergeDeep(properties.prev, properties) : properties;
983
983
  });
984
984
  provide(DefaultsSymbol, newDefaults);
985
985
  return newDefaults;
@@ -1703,7 +1703,7 @@ function createTheme(options) {
1703
1703
  if (/^on-[a-z]/.test(key)) {
1704
1704
  createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
1705
1705
  } else {
1706
- createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`]);
1706
+ createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`]);
1707
1707
  createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
1708
1708
  createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]);
1709
1709
  }
@@ -1841,7 +1841,8 @@ function useProxiedModel(props, prop, defaultValue) {
1841
1841
  });
1842
1842
  const model = computed({
1843
1843
  get() {
1844
- return transformIn(isControlled.value ? props[prop] : internal.value);
1844
+ const externalValue = props[prop];
1845
+ return transformIn(isControlled.value ? externalValue : internal.value);
1845
1846
  },
1846
1847
  set(internalValue) {
1847
1848
  const newValue = transformOut(internalValue);
@@ -1933,7 +1934,8 @@ var en = {
1933
1934
  ariaLabel: {
1934
1935
  item: 'Rating {0} of {1}'
1935
1936
  }
1936
- }
1937
+ },
1938
+ loading: 'Loading...'
1937
1939
  };
1938
1940
 
1939
1941
  const LANG_PREFIX = '$vuetify.';
@@ -2210,6 +2212,7 @@ function createCssTransition(name) {
2210
2212
  return genericComponent()({
2211
2213
  name,
2212
2214
  props: {
2215
+ disabled: Boolean,
2213
2216
  group: Boolean,
2214
2217
  hideOnLeave: Boolean,
2215
2218
  leaveAbsolute: Boolean,
@@ -2226,56 +2229,62 @@ function createCssTransition(name) {
2226
2229
  let {
2227
2230
  slots
2228
2231
  } = _ref;
2232
+ const functions = {
2233
+ onBeforeEnter(el) {
2234
+ el.style.transformOrigin = props.origin;
2235
+ },
2236
+ onLeave(el) {
2237
+ if (props.leaveAbsolute) {
2238
+ const {
2239
+ offsetTop,
2240
+ offsetLeft,
2241
+ offsetWidth,
2242
+ offsetHeight
2243
+ } = el;
2244
+ el._transitionInitialStyles = {
2245
+ position: el.style.position,
2246
+ top: el.style.top,
2247
+ left: el.style.left,
2248
+ width: el.style.width,
2249
+ height: el.style.height
2250
+ };
2251
+ el.style.position = 'absolute';
2252
+ el.style.top = `${offsetTop}px`;
2253
+ el.style.left = `${offsetLeft}px`;
2254
+ el.style.width = `${offsetWidth}px`;
2255
+ el.style.height = `${offsetHeight}px`;
2256
+ }
2257
+ if (props.hideOnLeave) {
2258
+ el.style.setProperty('display', 'none', 'important');
2259
+ }
2260
+ },
2261
+ onAfterLeave(el) {
2262
+ if (props.leaveAbsolute && el?._transitionInitialStyles) {
2263
+ const {
2264
+ position,
2265
+ top,
2266
+ left,
2267
+ width,
2268
+ height
2269
+ } = el._transitionInitialStyles;
2270
+ delete el._transitionInitialStyles;
2271
+ el.style.position = position || '';
2272
+ el.style.top = top || '';
2273
+ el.style.left = left || '';
2274
+ el.style.width = width || '';
2275
+ el.style.height = height || '';
2276
+ }
2277
+ }
2278
+ };
2229
2279
  return () => {
2230
2280
  const tag = props.group ? TransitionGroup : Transition;
2231
2281
  return h(tag, {
2232
- name,
2233
- mode: props.mode,
2234
- onBeforeEnter(el) {
2235
- el.style.transformOrigin = props.origin;
2236
- },
2237
- onLeave(el) {
2238
- if (props.leaveAbsolute) {
2239
- const {
2240
- offsetTop,
2241
- offsetLeft,
2242
- offsetWidth,
2243
- offsetHeight
2244
- } = el;
2245
- el._transitionInitialStyles = {
2246
- position: el.style.position,
2247
- top: el.style.top,
2248
- left: el.style.left,
2249
- width: el.style.width,
2250
- height: el.style.height
2251
- };
2252
- el.style.position = 'absolute';
2253
- el.style.top = `${offsetTop}px`;
2254
- el.style.left = `${offsetLeft}px`;
2255
- el.style.width = `${offsetWidth}px`;
2256
- el.style.height = `${offsetHeight}px`;
2257
- }
2258
- if (props.hideOnLeave) {
2259
- el.style.setProperty('display', 'none', 'important');
2260
- }
2261
- },
2262
- onAfterLeave(el) {
2263
- if (props.leaveAbsolute && el?._transitionInitialStyles) {
2264
- const {
2265
- position,
2266
- top,
2267
- left,
2268
- width,
2269
- height
2270
- } = el._transitionInitialStyles;
2271
- delete el._transitionInitialStyles;
2272
- el.style.position = position || '';
2273
- el.style.top = top || '';
2274
- el.style.left = left || '';
2275
- el.style.width = width || '';
2276
- el.style.height = height || '';
2277
- }
2278
- }
2282
+ name: props.disabled ? '' : name,
2283
+ css: !props.disabled,
2284
+ ...(props.group ? undefined : {
2285
+ mode: props.mode
2286
+ }),
2287
+ ...(props.disabled ? {} : functions)
2279
2288
  }, slots.default);
2280
2289
  };
2281
2290
  }
@@ -2289,7 +2298,8 @@ function createJavascriptTransition(name, functions) {
2289
2298
  mode: {
2290
2299
  type: String,
2291
2300
  default: mode
2292
- }
2301
+ },
2302
+ disabled: Boolean
2293
2303
  },
2294
2304
  setup(props, _ref2) {
2295
2305
  let {
@@ -2297,9 +2307,10 @@ function createJavascriptTransition(name, functions) {
2297
2307
  } = _ref2;
2298
2308
  return () => {
2299
2309
  return h(Transition, {
2300
- name,
2310
+ name: props.disabled ? '' : name,
2311
+ css: !props.disabled,
2301
2312
  // mode: props.mode, // TODO: vuejs/vue-next#3104
2302
- ...functions
2313
+ ...(props.disabled ? {} : functions)
2303
2314
  }, slots.default);
2304
2315
  };
2305
2316
  }
@@ -2705,9 +2716,9 @@ const VImg = genericComponent()({
2705
2716
  ...makeTransitionProps()
2706
2717
  },
2707
2718
  emits: {
2708
- loadstart: event => true,
2709
- load: event => true,
2710
- error: event => true
2719
+ loadstart: value => true,
2720
+ load: value => true,
2721
+ error: value => true
2711
2722
  },
2712
2723
  setup(props, _ref) {
2713
2724
  let {
@@ -5332,9 +5343,9 @@ const makeVFieldProps = propsFactory({
5332
5343
  default: 'filled',
5333
5344
  validator: v => allowedVariants$1.includes(v)
5334
5345
  },
5335
- 'onClick:clear': EventProp,
5336
- 'onClick:appendInner': EventProp,
5337
- 'onClick:prependInner': EventProp,
5346
+ 'onClick:clear': EventProp(),
5347
+ 'onClick:appendInner': EventProp(),
5348
+ 'onClick:prependInner': EventProp(),
5338
5349
  ...makeThemeProps(),
5339
5350
  ...makeLoaderProps()
5340
5351
  }, 'v-field');
@@ -5833,7 +5844,7 @@ function useValidation(props) {
5833
5844
  const results = [];
5834
5845
  isValidating.value = true;
5835
5846
  for (const rule of props.rules) {
5836
- if (results.length >= (props.maxErrors ?? 1)) {
5847
+ if (results.length >= +(props.maxErrors ?? 1)) {
5837
5848
  break;
5838
5849
  }
5839
5850
  const handler = typeof rule === 'function' ? rule : () => rule;
@@ -5880,8 +5891,8 @@ const makeVInputProps = propsFactory({
5880
5891
  default: 'horizontal',
5881
5892
  validator: v => ['horizontal', 'vertical'].includes(v)
5882
5893
  },
5883
- 'onClick:prepend': EventProp,
5884
- 'onClick:append': EventProp,
5894
+ 'onClick:prepend': EventProp(),
5895
+ 'onClick:append': EventProp(),
5885
5896
  ...makeDensityProps(),
5886
5897
  ...makeValidationProps()
5887
5898
  }, 'v-input');
@@ -6038,6 +6049,9 @@ function forwardRefs(target) {
6038
6049
  if (Reflect.has(target, key)) {
6039
6050
  return Reflect.get(target, key);
6040
6051
  }
6052
+
6053
+ // Skip internal properties
6054
+ if (typeof key === 'symbol' || key.startsWith('__')) return;
6041
6055
  for (const ref of refs) {
6042
6056
  if (ref.value && Reflect.has(ref.value, key)) {
6043
6057
  const val = Reflect.get(ref.value, key);
@@ -6045,6 +6059,20 @@ function forwardRefs(target) {
6045
6059
  }
6046
6060
  }
6047
6061
  },
6062
+ has(target, key) {
6063
+ if (Reflect.has(target, key)) {
6064
+ return true;
6065
+ }
6066
+
6067
+ // Skip internal properties
6068
+ if (typeof key === 'symbol' || key.startsWith('__')) return false;
6069
+ for (const ref of refs) {
6070
+ if (ref.value && Reflect.has(ref.value, key)) {
6071
+ return true;
6072
+ }
6073
+ }
6074
+ return false;
6075
+ },
6048
6076
  getOwnPropertyDescriptor(target, key) {
6049
6077
  const descriptor = Reflect.getOwnPropertyDescriptor(target, key);
6050
6078
  if (descriptor) return descriptor;
@@ -6095,6 +6123,7 @@ const makeVTextFieldProps = propsFactory({
6095
6123
  type: String,
6096
6124
  default: 'text'
6097
6125
  },
6126
+ modelModifiers: Object,
6098
6127
  ...makeVInputProps(),
6099
6128
  ...makeVFieldProps()
6100
6129
  }, 'v-text-field');
@@ -6169,7 +6198,7 @@ const VTextField = genericComponent()({
6169
6198
  function onInput(e) {
6170
6199
  const el = e.target;
6171
6200
  model.value = el.value;
6172
- if (['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {
6201
+ if (props.modelModifiers?.trim && ['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {
6173
6202
  const caretPosition = [el.selectionStart, el.selectionEnd];
6174
6203
  nextTick(() => {
6175
6204
  el.selectionStart = caretPosition[0];
@@ -6234,9 +6263,6 @@ const VTextField = genericComponent()({
6234
6263
  ...slotProps
6235
6264
  }
6236
6265
  } = _ref3;
6237
- const placeholder = computed(() => {
6238
- return (props.persistentPlaceholder || isFocused.value) && !isDirty.value ? props.placeholder : '';
6239
- });
6240
6266
  const inputNode = withDirectives(createVNode("input", mergeProps({
6241
6267
  "ref": inputRef,
6242
6268
  "value": model.value,
@@ -6245,7 +6271,7 @@ const VTextField = genericComponent()({
6245
6271
  "readonly": isReadonly.value,
6246
6272
  "disabled": isDisabled.value,
6247
6273
  "name": props.name,
6248
- "placeholder": placeholder.value,
6274
+ "placeholder": props.placeholder,
6249
6275
  "size": 1,
6250
6276
  "type": props.type,
6251
6277
  "onFocus": onFocus,
@@ -6809,8 +6835,8 @@ const VChip = genericComponent()({
6809
6835
  type: Boolean,
6810
6836
  default: true
6811
6837
  },
6812
- onClick: EventProp,
6813
- onClickOnce: EventProp,
6838
+ onClick: EventProp(),
6839
+ onClickOnce: EventProp(),
6814
6840
  ...makeBorderProps(),
6815
6841
  ...makeDensityProps(),
6816
6842
  ...makeElevationProps(),
@@ -7561,6 +7587,9 @@ const VListGroup = genericComponent()({
7561
7587
  } = useNestedItem(toRef(props, 'value'), true);
7562
7588
  const id = computed(() => `v-list-group--id-${String(_id.value)}`);
7563
7589
  const list = useList();
7590
+ const {
7591
+ isBooted
7592
+ } = useSsrBoot();
7564
7593
  function onClick(e) {
7565
7594
  open(!isOpen.value, e);
7566
7595
  }
@@ -7570,6 +7599,17 @@ const VListGroup = genericComponent()({
7570
7599
  id: id.value
7571
7600
  }));
7572
7601
  const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon);
7602
+ const activatorDefaults = computed(() => ({
7603
+ VListItem: {
7604
+ active: isOpen.value,
7605
+ activeColor: props.activeColor,
7606
+ color: props.color,
7607
+ prependIcon: props.prependIcon || props.subgroup && toggleIcon.value,
7608
+ appendIcon: props.appendIcon || !props.subgroup && toggleIcon.value,
7609
+ title: props.title,
7610
+ value: props.value
7611
+ }
7612
+ }));
7573
7613
  useRender(() => createVNode(props.tag, {
7574
7614
  "class": ['v-list-group', {
7575
7615
  'v-list-group--prepend': list?.hasPrepend.value,
@@ -7579,17 +7619,7 @@ const VListGroup = genericComponent()({
7579
7619
  }]
7580
7620
  }, {
7581
7621
  default: () => [slots.activator && createVNode(VDefaultsProvider, {
7582
- "defaults": {
7583
- VListItem: {
7584
- active: isOpen.value,
7585
- activeColor: props.activeColor,
7586
- color: props.color,
7587
- prependIcon: props.prependIcon || props.subgroup && toggleIcon.value,
7588
- appendIcon: props.appendIcon || !props.subgroup && toggleIcon.value,
7589
- title: props.title,
7590
- value: props.value
7591
- }
7592
- }
7622
+ "defaults": activatorDefaults.value
7593
7623
  }, {
7594
7624
  default: () => [createVNode(VListGroupActivator, null, {
7595
7625
  default: () => [slots.activator({
@@ -7597,7 +7627,12 @@ const VListGroup = genericComponent()({
7597
7627
  isOpen: isOpen.value
7598
7628
  })]
7599
7629
  })]
7600
- }), createVNode(VExpandTransition, null, {
7630
+ }), createVNode(MaybeTransition, {
7631
+ "transition": {
7632
+ component: VExpandTransition
7633
+ },
7634
+ "disabled": !isBooted.value
7635
+ }, {
7601
7636
  default: () => [withDirectives(createVNode("div", {
7602
7637
  "class": "v-list-group__items",
7603
7638
  "role": "group",
@@ -7645,8 +7680,8 @@ const VListItem = genericComponent()({
7645
7680
  subtitle: [String, Number, Boolean],
7646
7681
  title: [String, Number, Boolean],
7647
7682
  value: null,
7648
- onClick: EventProp,
7649
- onClickOnce: EventProp,
7683
+ onClick: EventProp(),
7684
+ onClickOnce: EventProp(),
7650
7685
  ...makeBorderProps(),
7651
7686
  ...makeDensityProps(),
7652
7687
  ...makeDimensionProps(),
@@ -8188,7 +8223,8 @@ const VList = genericComponent()({
8188
8223
  }
8189
8224
  function focus(location) {
8190
8225
  if (!contentRef.value) return;
8191
- const focusable = [...contentRef.value.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')].filter(el => !el.hasAttribute('disabled'));
8226
+ const targets = ['button', '[href]', 'input', 'select', 'textarea', '[tabindex]'].map(s => `${s}:not([tabindex="-1"])`).join(', ');
8227
+ const focusable = [...contentRef.value.querySelectorAll(targets)].filter(el => !el.hasAttribute('disabled'));
8192
8228
  const idx = focusable.indexOf(document.activeElement);
8193
8229
  if (!location) {
8194
8230
  if (!contentRef.value.contains(document.activeElement)) {
@@ -8369,6 +8405,7 @@ function useActivator(props, _ref) {
8369
8405
  isActive.value = !isActive.value;
8370
8406
  },
8371
8407
  mouseenter: e => {
8408
+ if (e.sourceCapabilities?.firesTouchEvents) return;
8372
8409
  isHovered = true;
8373
8410
  activatorEl.value = e.currentTarget || e.target;
8374
8411
  runOpenDelay();
@@ -9895,6 +9932,9 @@ const VSelect = genericComponent()({
9895
9932
  });
9896
9933
  });
9897
9934
  const selected = computed(() => selections.value.map(selection => selection.props.value));
9935
+ const isFocused = ref(false);
9936
+ let keyboardLookupPrefix = '';
9937
+ let keyboardLookupLastTime;
9898
9938
  const displayItems = computed(() => {
9899
9939
  if (props.hideSelected) {
9900
9940
  return items.value.filter(item => !selections.value.some(s => s === item));
@@ -9931,6 +9971,26 @@ const VSelect = genericComponent()({
9931
9971
  } else if (e.key === 'End') {
9932
9972
  listRef.value?.focus('last');
9933
9973
  }
9974
+
9975
+ // html select hotkeys
9976
+ const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
9977
+
9978
+ function checkPrintable(e) {
9979
+ const isPrintableChar = e.key.length === 1;
9980
+ const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
9981
+ return isPrintableChar && noModifier;
9982
+ }
9983
+ if (props.multiple || !checkPrintable(e)) return;
9984
+ const now = performance.now();
9985
+ if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
9986
+ keyboardLookupPrefix = '';
9987
+ }
9988
+ keyboardLookupPrefix += e.key.toLowerCase();
9989
+ keyboardLookupLastTime = now;
9990
+ const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix));
9991
+ if (item !== undefined) {
9992
+ model.value = [item];
9993
+ }
9934
9994
  }
9935
9995
  function select(item) {
9936
9996
  if (props.multiple) {
@@ -9960,7 +10020,9 @@ const VSelect = genericComponent()({
9960
10020
  useRender(() => {
9961
10021
  const hasChips = !!(props.chips || slots.chip);
9962
10022
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
10023
+ const isDirty = model.value.length > 0;
9963
10024
  const [textFieldProps] = VTextField.filterProps(props);
10025
+ const placeholder = isDirty || !isFocused.value && props.label && !props.persistentPlaceholder ? undefined : props.placeholder;
9964
10026
  return createVNode(VTextField, mergeProps({
9965
10027
  "ref": vTextFieldRef
9966
10028
  }, textFieldProps, {
@@ -9968,8 +10030,10 @@ const VSelect = genericComponent()({
9968
10030
  "onUpdate:modelValue": v => {
9969
10031
  if (v == null) model.value = [];
9970
10032
  },
10033
+ "focused": isFocused.value,
10034
+ "onUpdate:focused": $event => isFocused.value = $event,
9971
10035
  "validationValue": model.externalValue,
9972
- "dirty": model.value.length > 0,
10036
+ "dirty": isDirty,
9973
10037
  "class": ['v-select', {
9974
10038
  'v-select--active-menu': menu.value,
9975
10039
  'v-select--chips': !!props.chips,
@@ -9978,6 +10042,7 @@ const VSelect = genericComponent()({
9978
10042
  }],
9979
10043
  "appendInnerIcon": props.menuIcon,
9980
10044
  "readonly": true,
10045
+ "placeholder": placeholder,
9981
10046
  "onClick:clear": onClear,
9982
10047
  "onMousedown:control": onMousedownControl,
9983
10048
  "onBlur": onBlur,
@@ -10026,7 +10091,8 @@ const VSelect = genericComponent()({
10026
10091
  } = _ref2;
10027
10092
  return props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
10028
10093
  "modelValue": isSelected,
10029
- "ripple": false
10094
+ "ripple": false,
10095
+ "tabindex": "-1"
10030
10096
  }, null) : undefined;
10031
10097
  }
10032
10098
  });
@@ -10353,6 +10419,7 @@ const VAutocomplete = genericComponent()({
10353
10419
  useRender(() => {
10354
10420
  const hasChips = !!(props.chips || slots.chip);
10355
10421
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
10422
+ const isDirty = model.value.length > 0;
10356
10423
  const [textFieldProps] = VTextField.filterProps(props);
10357
10424
  return createVNode(VTextField, mergeProps({
10358
10425
  "ref": vTextFieldRef
@@ -10362,7 +10429,7 @@ const VAutocomplete = genericComponent()({
10362
10429
  if (v == null) model.value = [];
10363
10430
  },
10364
10431
  "validationValue": model.externalValue,
10365
- "dirty": model.value.length > 0,
10432
+ "dirty": isDirty,
10366
10433
  "onInput": onInput,
10367
10434
  "class": ['v-autocomplete', {
10368
10435
  'v-autocomplete--active-menu': menu.value,
@@ -10372,6 +10439,7 @@ const VAutocomplete = genericComponent()({
10372
10439
  }],
10373
10440
  "appendInnerIcon": props.menuIcon,
10374
10441
  "readonly": props.readonly,
10442
+ "placeholder": isDirty ? undefined : props.placeholder,
10375
10443
  "onClick:clear": onClear,
10376
10444
  "onMousedown:control": onMousedownControl,
10377
10445
  "onFocus": () => isFocused.value = true,
@@ -10402,14 +10470,13 @@ const VAutocomplete = genericComponent()({
10402
10470
  }, {
10403
10471
  default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
10404
10472
  "title": t(props.noDataText)
10405
- }, null)), slots['prepend-item']?.(), displayItems.value.map((item, index) => slots.item?.({
10473
+ }, null)), slots['prepend-item']?.(), displayItems.value.map(item => slots.item?.({
10406
10474
  item,
10407
- index,
10408
10475
  props: mergeProps(item.props, {
10409
10476
  onClick: () => select(item)
10410
10477
  })
10411
10478
  }) ?? createVNode(VListItem, mergeProps({
10412
- "key": index
10479
+ "key": item.value
10413
10480
  }, item.props, {
10414
10481
  "onClick": () => select(item)
10415
10482
  }), {
@@ -10419,7 +10486,8 @@ const VAutocomplete = genericComponent()({
10419
10486
  } = _ref2;
10420
10487
  return props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
10421
10488
  "modelValue": isSelected,
10422
- "ripple": false
10489
+ "ripple": false,
10490
+ "tabindex": "-1"
10423
10491
  }, null) : undefined;
10424
10492
  },
10425
10493
  title: () => {
@@ -10544,7 +10612,7 @@ const VBadge = genericComponent()({
10544
10612
  });
10545
10613
  useRender(() => {
10546
10614
  const value = Number(props.content);
10547
- const content = !props.max || isNaN(value) ? props.content : value <= props.max ? value : `${props.max}+`;
10615
+ const content = !props.max || isNaN(value) ? props.content : value <= +props.max ? value : `${props.max}+`;
10548
10616
  const [badgeAttrs, attrs] = pick(ctx.attrs, ['aria-atomic', 'aria-label', 'aria-live', 'role', 'title']);
10549
10617
  return createVNode(props.tag, mergeProps({
10550
10618
  "class": ['v-badge', {
@@ -11341,47 +11409,48 @@ const Touch = {
11341
11409
 
11342
11410
  const VWindowSymbol = Symbol.for('vuetify:v-window');
11343
11411
  const VWindowGroupSymbol = Symbol.for('vuetify:v-window-group');
11412
+ const makeVWindowProps = propsFactory({
11413
+ continuous: Boolean,
11414
+ nextIcon: {
11415
+ type: [Boolean, String, Function, Object],
11416
+ default: '$next'
11417
+ },
11418
+ prevIcon: {
11419
+ type: [Boolean, String, Function, Object],
11420
+ default: '$prev'
11421
+ },
11422
+ reverse: Boolean,
11423
+ showArrows: {
11424
+ type: [Boolean, String],
11425
+ validator: v => typeof v === 'boolean' || v === 'hover'
11426
+ },
11427
+ touch: {
11428
+ type: [Object, Boolean],
11429
+ default: undefined
11430
+ },
11431
+ direction: {
11432
+ type: String,
11433
+ default: 'horizontal'
11434
+ },
11435
+ modelValue: null,
11436
+ disabled: Boolean,
11437
+ selectedClass: {
11438
+ type: String,
11439
+ default: 'v-window-item--active'
11440
+ },
11441
+ // TODO: mandatory should probably not be exposed but do this for now
11442
+ mandatory: {
11443
+ default: 'force'
11444
+ },
11445
+ ...makeTagProps(),
11446
+ ...makeThemeProps()
11447
+ }, 'v-window');
11344
11448
  const VWindow = genericComponent()({
11345
11449
  name: 'VWindow',
11346
11450
  directives: {
11347
11451
  Touch
11348
11452
  },
11349
- props: {
11350
- continuous: Boolean,
11351
- nextIcon: {
11352
- type: [Boolean, String, Function, Object],
11353
- default: '$next'
11354
- },
11355
- prevIcon: {
11356
- type: [Boolean, String, Function, Object],
11357
- default: '$prev'
11358
- },
11359
- reverse: Boolean,
11360
- showArrows: {
11361
- type: [Boolean, String],
11362
- validator: v => typeof v === 'boolean' || v === 'hover'
11363
- },
11364
- touch: {
11365
- type: [Object, Boolean],
11366
- default: undefined
11367
- },
11368
- direction: {
11369
- type: String,
11370
- default: 'horizontal'
11371
- },
11372
- modelValue: null,
11373
- disabled: Boolean,
11374
- selectedClass: {
11375
- type: String,
11376
- default: 'v-window-item--active'
11377
- },
11378
- // TODO: mandatory should probably not be exposed but do this for now
11379
- mandatory: {
11380
- default: 'force'
11381
- },
11382
- ...makeTagProps(),
11383
- ...makeThemeProps()
11384
- },
11453
+ props: makeVWindowProps(),
11385
11454
  emits: {
11386
11455
  'update:modelValue': v => true
11387
11456
  },
@@ -11509,112 +11578,6 @@ const VWindow = genericComponent()({
11509
11578
  }
11510
11579
  });
11511
11580
 
11512
- const VWindowItem = genericComponent()({
11513
- name: 'VWindowItem',
11514
- directives: {
11515
- Touch
11516
- },
11517
- props: {
11518
- reverseTransition: {
11519
- type: [Boolean, String],
11520
- default: undefined
11521
- },
11522
- transition: {
11523
- type: [Boolean, String],
11524
- default: undefined
11525
- },
11526
- ...makeGroupItemProps(),
11527
- ...makeLazyProps()
11528
- },
11529
- emits: {
11530
- 'group:selected': val => true
11531
- },
11532
- setup(props, _ref) {
11533
- let {
11534
- slots
11535
- } = _ref;
11536
- const window = inject$1(VWindowSymbol);
11537
- const groupItem = useGroupItem(props, VWindowGroupSymbol);
11538
- const {
11539
- isBooted
11540
- } = useSsrBoot();
11541
- if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow');
11542
- const isTransitioning = ref(false);
11543
- const hasTransition = computed(() => window.isReversed.value ? props.reverseTransition !== false : props.transition !== false);
11544
- function onAfterTransition() {
11545
- if (!isTransitioning.value || !window) {
11546
- return;
11547
- }
11548
-
11549
- // Finalize transition state.
11550
- isTransitioning.value = false;
11551
- if (window.transitionCount.value > 0) {
11552
- window.transitionCount.value -= 1;
11553
-
11554
- // Remove container height if we are out of transition.
11555
- if (window.transitionCount.value === 0) {
11556
- window.transitionHeight.value = undefined;
11557
- }
11558
- }
11559
- }
11560
- function onBeforeTransition() {
11561
- if (isTransitioning.value || !window) {
11562
- return;
11563
- }
11564
-
11565
- // Initialize transition state here.
11566
- isTransitioning.value = true;
11567
- if (window.transitionCount.value === 0) {
11568
- // Set initial height for height transition.
11569
- window.transitionHeight.value = convertToUnit(window.rootRef.value?.clientHeight);
11570
- }
11571
- window.transitionCount.value += 1;
11572
- }
11573
- function onTransitionCancelled() {
11574
- onAfterTransition(); // This should have the same path as normal transition end.
11575
- }
11576
-
11577
- function onEnterTransition(el) {
11578
- if (!isTransitioning.value) {
11579
- return;
11580
- }
11581
- nextTick(() => {
11582
- // Do not set height if no transition or cancelled.
11583
- if (!hasTransition.value || !isTransitioning.value || !window) {
11584
- return;
11585
- }
11586
-
11587
- // Set transition target height.
11588
- window.transitionHeight.value = convertToUnit(el.clientHeight);
11589
- });
11590
- }
11591
- const transition = computed(() => {
11592
- const name = window.isReversed.value ? props.reverseTransition : props.transition;
11593
- return !hasTransition.value ? false : {
11594
- name: typeof name !== 'string' ? window.transition.value : name,
11595
- onBeforeEnter: onBeforeTransition,
11596
- onAfterEnter: onAfterTransition,
11597
- onEnterCancelled: onTransitionCancelled,
11598
- onBeforeLeave: onBeforeTransition,
11599
- onAfterLeave: onAfterTransition,
11600
- onLeaveCancelled: onTransitionCancelled,
11601
- onEnter: onEnterTransition
11602
- };
11603
- });
11604
- const {
11605
- hasContent
11606
- } = useLazy(props, groupItem.isSelected);
11607
- useRender(() => createVNode(MaybeTransition, {
11608
- "transition": isBooted.value && transition.value
11609
- }, {
11610
- default: () => [withDirectives(createVNode("div", {
11611
- "class": ['v-window-item', groupItem.selectedClass.value]
11612
- }, [hasContent.value && slots.default?.()]), [[vShow, groupItem.isSelected.value]])]
11613
- }));
11614
- return {};
11615
- }
11616
- });
11617
-
11618
11581
  // Types
11619
11582
 
11620
11583
  const VCarousel = genericComponent()({
@@ -11635,16 +11598,15 @@ const VCarousel = genericComponent()({
11635
11598
  interval: {
11636
11599
  type: [Number, String],
11637
11600
  default: 6000,
11638
- validator: value => value > 0
11601
+ validator: value => Number(value) > 0
11639
11602
  },
11640
- modelValue: null,
11641
11603
  progress: [Boolean, String],
11642
- showArrows: {
11643
- type: [Boolean, String],
11644
- default: true,
11645
- validator: v => typeof v === 'boolean' || v === 'hover'
11646
- },
11647
- verticalDelimiters: [Boolean, String]
11604
+ verticalDelimiters: [Boolean, String],
11605
+ ...makeVWindowProps({
11606
+ continuous: true,
11607
+ mandatory: 'force',
11608
+ showArrows: true
11609
+ })
11648
11610
  },
11649
11611
  emits: {
11650
11612
  'update:modelValue': val => true
@@ -11712,6 +11674,7 @@ const VCarousel = genericComponent()({
11712
11674
  }, {
11713
11675
  default: () => [group.items.value.map((item, index) => {
11714
11676
  const props = {
11677
+ id: `carousel-item-${item.id}`,
11715
11678
  'aria-label': t('$vuetify.carousel.ariaLabel.delimiter', index + 1, group.items.value.length),
11716
11679
  class: [group.isSelected(item.id) && 'v-btn--active'],
11717
11680
  onClick: () => group.select(item.id, true)
@@ -11734,29 +11697,189 @@ const VCarousel = genericComponent()({
11734
11697
  }
11735
11698
  });
11736
11699
 
11737
- // Types
11738
-
11739
- const VCarouselItem = genericComponent()({
11740
- name: 'VCarouselItem',
11741
- inheritAttrs: false,
11700
+ const VWindowItem = genericComponent()({
11701
+ name: 'VWindowItem',
11702
+ directives: {
11703
+ Touch
11704
+ },
11742
11705
  props: {
11743
- value: null
11706
+ reverseTransition: {
11707
+ type: [Boolean, String],
11708
+ default: undefined
11709
+ },
11710
+ transition: {
11711
+ type: [Boolean, String],
11712
+ default: undefined
11713
+ },
11714
+ ...makeGroupItemProps(),
11715
+ ...makeLazyProps()
11716
+ },
11717
+ emits: {
11718
+ 'group:selected': val => true
11744
11719
  },
11745
11720
  setup(props, _ref) {
11746
11721
  let {
11747
- slots,
11748
- attrs
11722
+ slots
11749
11723
  } = _ref;
11750
- useRender(() => createVNode(VWindowItem, {
11751
- "class": "v-carousel-item",
11752
- "value": props.value
11753
- }, {
11754
- default: () => [createVNode(VImg, attrs, slots)]
11755
- }));
11756
- }
11757
- });
11758
-
11759
- const VCode = createSimpleFunctional('v-code');
11724
+ const window = inject$1(VWindowSymbol);
11725
+ const groupItem = useGroupItem(props, VWindowGroupSymbol);
11726
+ const {
11727
+ isBooted
11728
+ } = useSsrBoot();
11729
+ if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow');
11730
+ const isTransitioning = ref(false);
11731
+ const hasTransition = computed(() => window.isReversed.value ? props.reverseTransition !== false : props.transition !== false);
11732
+ function onAfterTransition() {
11733
+ if (!isTransitioning.value || !window) {
11734
+ return;
11735
+ }
11736
+
11737
+ // Finalize transition state.
11738
+ isTransitioning.value = false;
11739
+ if (window.transitionCount.value > 0) {
11740
+ window.transitionCount.value -= 1;
11741
+
11742
+ // Remove container height if we are out of transition.
11743
+ if (window.transitionCount.value === 0) {
11744
+ window.transitionHeight.value = undefined;
11745
+ }
11746
+ }
11747
+ }
11748
+ function onBeforeTransition() {
11749
+ if (isTransitioning.value || !window) {
11750
+ return;
11751
+ }
11752
+
11753
+ // Initialize transition state here.
11754
+ isTransitioning.value = true;
11755
+ if (window.transitionCount.value === 0) {
11756
+ // Set initial height for height transition.
11757
+ window.transitionHeight.value = convertToUnit(window.rootRef.value?.clientHeight);
11758
+ }
11759
+ window.transitionCount.value += 1;
11760
+ }
11761
+ function onTransitionCancelled() {
11762
+ onAfterTransition(); // This should have the same path as normal transition end.
11763
+ }
11764
+
11765
+ function onEnterTransition(el) {
11766
+ if (!isTransitioning.value) {
11767
+ return;
11768
+ }
11769
+ nextTick(() => {
11770
+ // Do not set height if no transition or cancelled.
11771
+ if (!hasTransition.value || !isTransitioning.value || !window) {
11772
+ return;
11773
+ }
11774
+
11775
+ // Set transition target height.
11776
+ window.transitionHeight.value = convertToUnit(el.clientHeight);
11777
+ });
11778
+ }
11779
+ const transition = computed(() => {
11780
+ const name = window.isReversed.value ? props.reverseTransition : props.transition;
11781
+ return !hasTransition.value ? false : {
11782
+ name: typeof name !== 'string' ? window.transition.value : name,
11783
+ onBeforeEnter: onBeforeTransition,
11784
+ onAfterEnter: onAfterTransition,
11785
+ onEnterCancelled: onTransitionCancelled,
11786
+ onBeforeLeave: onBeforeTransition,
11787
+ onAfterLeave: onAfterTransition,
11788
+ onLeaveCancelled: onTransitionCancelled,
11789
+ onEnter: onEnterTransition
11790
+ };
11791
+ });
11792
+ const {
11793
+ hasContent
11794
+ } = useLazy(props, groupItem.isSelected);
11795
+ useRender(() => createVNode(MaybeTransition, {
11796
+ "transition": transition.value,
11797
+ "disabled": !isBooted.value
11798
+ }, {
11799
+ default: () => [withDirectives(createVNode("div", {
11800
+ "class": ['v-window-item', groupItem.selectedClass.value]
11801
+ }, [hasContent.value && slots.default?.()]), [[vShow, groupItem.isSelected.value]])]
11802
+ }));
11803
+ return {};
11804
+ }
11805
+ });
11806
+
11807
+ // Types
11808
+
11809
+ const VCarouselItem = genericComponent()({
11810
+ name: 'VCarouselItem',
11811
+ inheritAttrs: false,
11812
+ props: {
11813
+ value: null
11814
+ },
11815
+ setup(props, _ref) {
11816
+ let {
11817
+ slots,
11818
+ attrs
11819
+ } = _ref;
11820
+ useRender(() => createVNode(VWindowItem, {
11821
+ "class": "v-carousel-item",
11822
+ "value": props.value
11823
+ }, {
11824
+ default: () => [createVNode(VImg, attrs, slots)]
11825
+ }));
11826
+ }
11827
+ });
11828
+
11829
+ const VCode = createSimpleFunctional('v-code');
11830
+
11831
+ const makeVSheetProps = propsFactory({
11832
+ color: String,
11833
+ ...makeBorderProps(),
11834
+ ...makeDimensionProps(),
11835
+ ...makeElevationProps(),
11836
+ ...makeLocationProps(),
11837
+ ...makePositionProps(),
11838
+ ...makeRoundedProps(),
11839
+ ...makeTagProps(),
11840
+ ...makeThemeProps()
11841
+ }, 'v-sheet');
11842
+ const VSheet = genericComponent()({
11843
+ name: 'VSheet',
11844
+ props: {
11845
+ ...makeVSheetProps()
11846
+ },
11847
+ setup(props, _ref) {
11848
+ let {
11849
+ slots
11850
+ } = _ref;
11851
+ const {
11852
+ themeClasses
11853
+ } = provideTheme(props);
11854
+ const {
11855
+ backgroundColorClasses,
11856
+ backgroundColorStyles
11857
+ } = useBackgroundColor(toRef(props, 'color'));
11858
+ const {
11859
+ borderClasses
11860
+ } = useBorder(props);
11861
+ const {
11862
+ dimensionStyles
11863
+ } = useDimension(props);
11864
+ const {
11865
+ elevationClasses
11866
+ } = useElevation(props);
11867
+ const {
11868
+ locationStyles
11869
+ } = useLocation(props);
11870
+ const {
11871
+ positionClasses
11872
+ } = usePosition(props);
11873
+ const {
11874
+ roundedClasses
11875
+ } = useRounded(props);
11876
+ useRender(() => createVNode(props.tag, {
11877
+ "class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value],
11878
+ "style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value]
11879
+ }, slots));
11880
+ return {};
11881
+ }
11882
+ });
11760
11883
 
11761
11884
  // Types
11762
11885
 
@@ -12300,7 +12423,7 @@ const useSlider = _ref => {
12300
12423
  });
12301
12424
  const min = computed(() => parseFloat(props.min));
12302
12425
  const max = computed(() => parseFloat(props.max));
12303
- const step = computed(() => props.step > 0 ? parseFloat(props.step) : 0);
12426
+ const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
12304
12427
  const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
12305
12428
  const thumbSize = computed(() => parseInt(props.thumbSize, 10));
12306
12429
  const tickSize = computed(() => parseInt(props.tickSize, 10));
@@ -12794,7 +12917,7 @@ const VSlider = genericComponent()({
12794
12917
  }), {
12795
12918
  ...slots,
12796
12919
  prepend: hasPrepend ? slotProps => createVNode(Fragment, null, [slots.label?.(slotProps) ?? props.label ? createVNode(VLabel, {
12797
- "id": slotProps.id,
12920
+ "id": slotProps.id.value,
12798
12921
  "class": "v-slider__label",
12799
12922
  "text": props.label
12800
12923
  }, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
@@ -13279,59 +13402,6 @@ const VColorPickerSwatches = defineComponent({
13279
13402
  }
13280
13403
  });
13281
13404
 
13282
- const makeVSheetProps = propsFactory({
13283
- color: String,
13284
- ...makeBorderProps(),
13285
- ...makeDimensionProps(),
13286
- ...makeElevationProps(),
13287
- ...makeLocationProps(),
13288
- ...makePositionProps(),
13289
- ...makeRoundedProps(),
13290
- ...makeTagProps(),
13291
- ...makeThemeProps()
13292
- }, 'v-sheet');
13293
- const VSheet = genericComponent()({
13294
- name: 'VSheet',
13295
- props: {
13296
- ...makeVSheetProps()
13297
- },
13298
- setup(props, _ref) {
13299
- let {
13300
- slots
13301
- } = _ref;
13302
- const {
13303
- themeClasses
13304
- } = provideTheme(props);
13305
- const {
13306
- backgroundColorClasses,
13307
- backgroundColorStyles
13308
- } = useBackgroundColor(toRef(props, 'color'));
13309
- const {
13310
- borderClasses
13311
- } = useBorder(props);
13312
- const {
13313
- dimensionStyles
13314
- } = useDimension(props);
13315
- const {
13316
- elevationClasses
13317
- } = useElevation(props);
13318
- const {
13319
- locationStyles
13320
- } = useLocation(props);
13321
- const {
13322
- positionClasses
13323
- } = usePosition(props);
13324
- const {
13325
- roundedClasses
13326
- } = useRounded(props);
13327
- useRender(() => createVNode(props.tag, {
13328
- "class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value],
13329
- "style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value]
13330
- }, slots));
13331
- return {};
13332
- }
13333
- });
13334
-
13335
13405
  // Types
13336
13406
 
13337
13407
  const VColorPicker = defineComponent({
@@ -13368,13 +13438,9 @@ const VColorPicker = defineComponent({
13368
13438
  modelValue: {
13369
13439
  type: [Object, String]
13370
13440
  },
13371
- width: {
13372
- type: [Number, String],
13373
- default: 300
13374
- },
13375
- ...makeElevationProps(),
13376
- ...makeRoundedProps(),
13377
- ...makeThemeProps()
13441
+ ...omit(makeVSheetProps({
13442
+ width: 300
13443
+ }), ['height', 'location', 'minHeight', 'maxHeight', 'minWidth', 'maxWidth'])
13378
13444
  },
13379
13445
  emits: {
13380
13446
  'update:modelValue': color => true,
@@ -13412,53 +13478,57 @@ const VColorPicker = defineComponent({
13412
13478
  trackFillColor: undefined
13413
13479
  }
13414
13480
  });
13415
- useRender(() => createVNode(VSheet, {
13416
- "rounded": props.rounded,
13417
- "elevation": props.elevation,
13418
- "theme": props.theme,
13419
- "class": ['v-color-picker'],
13420
- "style": {
13421
- '--v-color-picker-color-hsv': HSVtoCSS({
13422
- ...(currentColor.value ?? nullColor),
13423
- a: 1
13424
- })
13425
- },
13426
- "maxWidth": props.width
13427
- }, {
13428
- default: () => [!props.hideCanvas && createVNode(VColorPickerCanvas, {
13429
- "key": "canvas",
13430
- "color": currentColor.value,
13431
- "onUpdate:color": updateColor,
13432
- "disabled": props.disabled,
13433
- "dotSize": props.dotSize,
13434
- "width": props.width,
13435
- "height": props.canvasHeight
13436
- }, null), (!props.hideSliders || !props.hideInputs) && createVNode("div", {
13437
- "key": "controls",
13438
- "class": "v-color-picker__controls"
13439
- }, [!props.hideSliders && createVNode(VColorPickerPreview, {
13440
- "key": "preview",
13441
- "color": currentColor.value,
13442
- "onUpdate:color": updateColor,
13443
- "hideAlpha": !mode.value.endsWith('a'),
13444
- "disabled": props.disabled
13445
- }, null), !props.hideInputs && createVNode(VColorPickerEdit, {
13446
- "key": "edit",
13447
- "modes": props.modes,
13448
- "mode": mode.value,
13449
- "onUpdate:mode": m => mode.value = m,
13450
- "color": currentColor.value,
13451
- "onUpdate:color": updateColor,
13452
- "disabled": props.disabled
13453
- }, null)]), props.showSwatches && createVNode(VColorPickerSwatches, {
13454
- "key": "swatches",
13455
- "color": currentColor.value,
13456
- "onUpdate:color": updateColor,
13457
- "maxHeight": props.swatchesMaxHeight,
13458
- "swatches": props.swatches,
13459
- "disabled": props.disabled
13460
- }, null)]
13461
- }));
13481
+ useRender(() => {
13482
+ const [sheetProps] = VSheet.filterProps(props);
13483
+ return createVNode(VSheet, mergeProps({
13484
+ "rounded": props.rounded,
13485
+ "elevation": props.elevation,
13486
+ "theme": props.theme,
13487
+ "class": ['v-color-picker'],
13488
+ "style": {
13489
+ '--v-color-picker-color-hsv': HSVtoCSS({
13490
+ ...(currentColor.value ?? nullColor),
13491
+ a: 1
13492
+ })
13493
+ }
13494
+ }, sheetProps, {
13495
+ "maxWidth": props.width
13496
+ }), {
13497
+ default: () => [!props.hideCanvas && createVNode(VColorPickerCanvas, {
13498
+ "key": "canvas",
13499
+ "color": currentColor.value,
13500
+ "onUpdate:color": updateColor,
13501
+ "disabled": props.disabled,
13502
+ "dotSize": props.dotSize,
13503
+ "width": props.width,
13504
+ "height": props.canvasHeight
13505
+ }, null), (!props.hideSliders || !props.hideInputs) && createVNode("div", {
13506
+ "key": "controls",
13507
+ "class": "v-color-picker__controls"
13508
+ }, [!props.hideSliders && createVNode(VColorPickerPreview, {
13509
+ "key": "preview",
13510
+ "color": currentColor.value,
13511
+ "onUpdate:color": updateColor,
13512
+ "hideAlpha": !mode.value.endsWith('a'),
13513
+ "disabled": props.disabled
13514
+ }, null), !props.hideInputs && createVNode(VColorPickerEdit, {
13515
+ "key": "edit",
13516
+ "modes": props.modes,
13517
+ "mode": mode.value,
13518
+ "onUpdate:mode": m => mode.value = m,
13519
+ "color": currentColor.value,
13520
+ "onUpdate:color": updateColor,
13521
+ "disabled": props.disabled
13522
+ }, null)]), props.showSwatches && createVNode(VColorPickerSwatches, {
13523
+ "key": "swatches",
13524
+ "color": currentColor.value,
13525
+ "onUpdate:color": updateColor,
13526
+ "maxHeight": props.swatchesMaxHeight,
13527
+ "swatches": props.swatches,
13528
+ "disabled": props.disabled
13529
+ }, null)]
13530
+ });
13531
+ });
13462
13532
  return {};
13463
13533
  }
13464
13534
  });
@@ -13533,7 +13603,7 @@ const VCombobox = genericComponent()({
13533
13603
  textColorClasses,
13534
13604
  textColorStyles
13535
13605
  } = useTextColor(color);
13536
- const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v || [])), v => {
13606
+ const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
13537
13607
  const transformed = transformOut(v);
13538
13608
  return props.multiple ? transformed : transformed[0] ?? null;
13539
13609
  });
@@ -13711,6 +13781,7 @@ const VCombobox = genericComponent()({
13711
13781
  useRender(() => {
13712
13782
  const hasChips = !!(props.chips || slots.chip);
13713
13783
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
13784
+ const isDirty = model.value.length > 0;
13714
13785
  const [textFieldProps] = VTextField.filterProps(props);
13715
13786
  return createVNode(VTextField, mergeProps({
13716
13787
  "ref": vTextFieldRef
@@ -13720,7 +13791,7 @@ const VCombobox = genericComponent()({
13720
13791
  if (v == null) model.value = [];
13721
13792
  }],
13722
13793
  "validationValue": model.externalValue,
13723
- "dirty": model.value.length > 0,
13794
+ "dirty": isDirty,
13724
13795
  "class": ['v-combobox', {
13725
13796
  'v-combobox--active-menu': menu.value,
13726
13797
  'v-combobox--chips': !!props.chips,
@@ -13729,6 +13800,7 @@ const VCombobox = genericComponent()({
13729
13800
  }],
13730
13801
  "appendInnerIcon": props.items.length ? props.menuIcon : undefined,
13731
13802
  "readonly": props.readonly,
13803
+ "placeholder": isDirty ? undefined : props.placeholder,
13732
13804
  "onClick:clear": onClear,
13733
13805
  "onMousedown:control": onMousedownControl,
13734
13806
  "onFocus": () => isFocused.value = true,
@@ -13759,14 +13831,13 @@ const VCombobox = genericComponent()({
13759
13831
  }, {
13760
13832
  default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
13761
13833
  "title": t(props.noDataText)
13762
- }, null)), slots['prepend-item']?.(), displayItems.value.map((item, index) => slots.item?.({
13834
+ }, null)), slots['prepend-item']?.(), displayItems.value.map(item => slots.item?.({
13763
13835
  item,
13764
- index,
13765
13836
  props: mergeProps(item.props, {
13766
13837
  onClick: () => select(item)
13767
13838
  })
13768
13839
  }) ?? createVNode(VListItem, mergeProps({
13769
- "key": index
13840
+ "key": item.value
13770
13841
  }, item.props, {
13771
13842
  "onClick": () => select(item)
13772
13843
  }), {
@@ -13776,7 +13847,8 @@ const VCombobox = genericComponent()({
13776
13847
  } = _ref2;
13777
13848
  return props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
13778
13849
  "modelValue": isSelected,
13779
- "ripple": false
13850
+ "ripple": false,
13851
+ "tabindex": "-1"
13780
13852
  }, null) : undefined;
13781
13853
  },
13782
13854
  title: () => {
@@ -14186,7 +14258,6 @@ const VFileInput = genericComponent()({
14186
14258
  multiple: Boolean,
14187
14259
  hint: String,
14188
14260
  persistentHint: Boolean,
14189
- placeholder: String,
14190
14261
  showSize: {
14191
14262
  type: [Boolean, Number],
14192
14263
  default: false,
@@ -15510,12 +15581,18 @@ const VNavigationDrawer = genericComponent()({
15510
15581
  bgColor: 'transparent'
15511
15582
  }
15512
15583
  });
15584
+ function onMouseenter() {
15585
+ isHovering.value = true;
15586
+ }
15587
+ function onMouseleave() {
15588
+ isHovering.value = false;
15589
+ }
15513
15590
  useRender(() => {
15514
15591
  const hasImage = slots.image || props.image;
15515
15592
  return createVNode(Fragment, null, [createVNode(props.tag, mergeProps({
15516
15593
  "ref": rootEl,
15517
- "onMouseenter": () => isHovering.value = true,
15518
- "onMouseleave": () => isHovering.value = false,
15594
+ "onMouseenter": onMouseenter,
15595
+ "onMouseleave": onMouseleave,
15519
15596
  "class": ['v-navigation-drawer', `v-navigation-drawer--${location.value}`, {
15520
15597
  'v-navigation-drawer--expand-on-hover': props.expandOnHover,
15521
15598
  'v-navigation-drawer--floating': props.floating,
@@ -15791,7 +15868,7 @@ const VPagination = genericComponent()({
15791
15868
  ref,
15792
15869
  ellipsis: false,
15793
15870
  icon: true,
15794
- disabled: !!props.disabled || props.length < 2,
15871
+ disabled: !!props.disabled || +props.length < 2,
15795
15872
  color: isActive ? props.activeColor : props.color,
15796
15873
  ariaCurrent: isActive,
15797
15874
  ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
@@ -15840,7 +15917,7 @@ const VPagination = genericComponent()({
15840
15917
  refs.value[currentIndex]?.$el.focus();
15841
15918
  }
15842
15919
  function onKeydown(e) {
15843
- if (e.key === keyValues.left && !props.disabled && page.value > props.start) {
15920
+ if (e.key === keyValues.left && !props.disabled && page.value > +props.start) {
15844
15921
  page.value = page.value - 1;
15845
15922
  nextTick(updateFocus);
15846
15923
  } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {
@@ -16544,35 +16621,36 @@ function calculateCenteredOffset(_ref2) {
16544
16621
  // Types
16545
16622
 
16546
16623
  const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');
16624
+ const makeVSlideGroupProps = propsFactory({
16625
+ centerActive: Boolean,
16626
+ direction: {
16627
+ type: String,
16628
+ default: 'horizontal'
16629
+ },
16630
+ symbol: {
16631
+ type: null,
16632
+ default: VSlideGroupSymbol
16633
+ },
16634
+ nextIcon: {
16635
+ type: IconValue,
16636
+ default: '$next'
16637
+ },
16638
+ prevIcon: {
16639
+ type: IconValue,
16640
+ default: '$prev'
16641
+ },
16642
+ showArrows: {
16643
+ type: [Boolean, String],
16644
+ validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
16645
+ },
16646
+ ...makeTagProps(),
16647
+ ...makeGroupProps({
16648
+ selectedClass: 'v-slide-group-item--active'
16649
+ })
16650
+ }, 'v-slide-group');
16547
16651
  const VSlideGroup = genericComponent()({
16548
16652
  name: 'VSlideGroup',
16549
- props: {
16550
- centerActive: Boolean,
16551
- direction: {
16552
- type: String,
16553
- default: 'horizontal'
16554
- },
16555
- symbol: {
16556
- type: null,
16557
- default: VSlideGroupSymbol
16558
- },
16559
- nextIcon: {
16560
- type: IconValue,
16561
- default: '$next'
16562
- },
16563
- prevIcon: {
16564
- type: IconValue,
16565
- default: '$prev'
16566
- },
16567
- showArrows: {
16568
- type: [Boolean, String],
16569
- validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
16570
- },
16571
- ...makeTagProps(),
16572
- ...makeGroupProps({
16573
- selectedClass: 'v-slide-group-item--active'
16574
- })
16575
- },
16653
+ props: makeVSlideGroupProps(),
16576
16654
  emits: {
16577
16655
  'update:modelValue': value => true
16578
16656
  },
@@ -17281,10 +17359,6 @@ const VTabs = genericComponent()({
17281
17359
  default: 'start'
17282
17360
  },
17283
17361
  color: String,
17284
- direction: {
17285
- type: String,
17286
- default: 'horizontal'
17287
- },
17288
17362
  fixedTabs: Boolean,
17289
17363
  items: {
17290
17364
  type: Array,
@@ -17299,11 +17373,9 @@ const VTabs = genericComponent()({
17299
17373
  },
17300
17374
  hideSlider: Boolean,
17301
17375
  sliderColor: String,
17302
- modelValue: null,
17303
- mandatory: {
17304
- type: [Boolean, String],
17305
- default: 'force'
17306
- },
17376
+ ...makeVSlideGroupProps({
17377
+ mandatory: 'force'
17378
+ }),
17307
17379
  ...makeDensityProps(),
17308
17380
  ...makeTagProps()
17309
17381
  },
@@ -17333,26 +17405,27 @@ const VTabs = genericComponent()({
17333
17405
  hideSlider: toRef(props, 'hideSlider')
17334
17406
  }
17335
17407
  });
17336
- useRender(() => createVNode(VSlideGroup, {
17337
- "modelValue": model.value,
17338
- "onUpdate:modelValue": $event => model.value = $event,
17339
- "class": ['v-tabs', `v-tabs--${props.direction}`, `v-tabs--align-tabs-${props.alignTabs}`, {
17340
- 'v-tabs--fixed-tabs': props.fixedTabs,
17341
- 'v-tabs--grow': props.grow,
17342
- 'v-tabs--stacked': props.stacked
17343
- }, densityClasses.value, backgroundColorClasses.value],
17344
- "style": [{
17345
- '--v-tabs-height': convertToUnit(props.height)
17346
- }, backgroundColorStyles.value],
17347
- "role": "tablist",
17348
- "symbol": VTabsSymbol,
17349
- "mandatory": props.mandatory,
17350
- "direction": props.direction
17351
- }, {
17352
- default: () => [slots.default ? slots.default() : parsedItems.value.map(item => createVNode(VTab, mergeProps(item, {
17353
- "key": item.title
17354
- }), null))]
17355
- }));
17408
+ useRender(() => {
17409
+ const [slideGroupProps] = VSlideGroup.filterProps(props);
17410
+ return createVNode(VSlideGroup, mergeProps(slideGroupProps, {
17411
+ "modelValue": model.value,
17412
+ "onUpdate:modelValue": $event => model.value = $event,
17413
+ "class": ['v-tabs', `v-tabs--${props.direction}`, `v-tabs--align-tabs-${props.alignTabs}`, {
17414
+ 'v-tabs--fixed-tabs': props.fixedTabs,
17415
+ 'v-tabs--grow': props.grow,
17416
+ 'v-tabs--stacked': props.stacked
17417
+ }, densityClasses.value, backgroundColorClasses.value],
17418
+ "style": [{
17419
+ '--v-tabs-height': convertToUnit(props.height)
17420
+ }, backgroundColorStyles.value],
17421
+ "role": "tablist",
17422
+ "symbol": VTabsSymbol
17423
+ }), {
17424
+ default: () => [slots.default ? slots.default() : parsedItems.value.map(item => createVNode(VTab, mergeProps(item, {
17425
+ "key": item.title
17426
+ }), null))]
17427
+ });
17428
+ });
17356
17429
  return {};
17357
17430
  }
17358
17431
  });
@@ -17429,6 +17502,7 @@ const VTextarea = genericComponent()({
17429
17502
  validator: v => !isNaN(parseFloat(v))
17430
17503
  },
17431
17504
  suffix: String,
17505
+ modelModifiers: Object,
17432
17506
  ...makeVInputProps(),
17433
17507
  ...makeVFieldProps()
17434
17508
  },
@@ -17468,7 +17542,7 @@ const VTextarea = genericComponent()({
17468
17542
  const textareaRef = ref();
17469
17543
  const isActive = computed(() => isFocused.value || props.persistentPlaceholder);
17470
17544
  const messages = computed(() => {
17471
- return props.messages.length ? props.messages : isActive.value || props.persistentHint ? props.hint : '';
17545
+ return props.messages.length ? props.messages : isFocused.value || props.persistentHint ? props.hint : '';
17472
17546
  });
17473
17547
  function onFocus() {
17474
17548
  if (textareaRef.value !== document.activeElement) {
@@ -17493,12 +17567,14 @@ const VTextarea = genericComponent()({
17493
17567
  }
17494
17568
  function onInput(e) {
17495
17569
  const el = e.target;
17496
- const caretPosition = [el.selectionStart, el.selectionEnd];
17497
17570
  model.value = el.value;
17498
- nextTick(() => {
17499
- el.selectionStart = caretPosition[0];
17500
- el.selectionEnd = caretPosition[1];
17501
- });
17571
+ if (props.modelModifiers?.trim) {
17572
+ const caretPosition = [el.selectionStart, el.selectionEnd];
17573
+ nextTick(() => {
17574
+ el.selectionStart = caretPosition[0];
17575
+ el.selectionEnd = caretPosition[1];
17576
+ });
17577
+ }
17502
17578
  }
17503
17579
  const sizerRef = ref();
17504
17580
  function calculateInputHeight() {
@@ -18842,10 +18918,8 @@ const VDataTableRows = genericComponent()({
18842
18918
  type: String,
18843
18919
  default: '$vuetify.noDataText'
18844
18920
  },
18845
- rowHeight: Number
18846
- },
18847
- emits: {
18848
- 'click:row': (event, value) => true
18921
+ rowHeight: Number,
18922
+ 'onClick:row': Function
18849
18923
  },
18850
18924
  setup(props, _ref) {
18851
18925
  let {
@@ -18909,14 +18983,14 @@ const VDataTableRows = genericComponent()({
18909
18983
  };
18910
18984
  return createVNode(Fragment, null, [slots.item ? slots.item(slotProps) : createVNode(VDataTableRow, {
18911
18985
  "key": `item_${item.value}`,
18912
- "onClick": event => {
18986
+ "onClick": expandOnClick.value || props['onClick:row'] ? event => {
18913
18987
  if (expandOnClick.value) {
18914
18988
  toggleExpand(item);
18915
18989
  }
18916
- emit('click:row', event, {
18990
+ props['onClick:row']?.(event, {
18917
18991
  item
18918
18992
  });
18919
- },
18993
+ } : undefined,
18920
18994
  "index": index,
18921
18995
  "item": item
18922
18996
  }, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
@@ -19219,6 +19293,7 @@ const makeVDataTableProps = propsFactory({
19219
19293
  ...makeDataTableItemProps(),
19220
19294
  ...makeDataTableHeaderProps(),
19221
19295
  hideNoData: Boolean,
19296
+ hover: Boolean,
19222
19297
  noDataText: {
19223
19298
  type: String,
19224
19299
  default: '$vuetify.noDataText'
@@ -19226,7 +19301,8 @@ const makeVDataTableProps = propsFactory({
19226
19301
  height: [String, Number],
19227
19302
  width: [String, Number],
19228
19303
  fixedHeader: Boolean,
19229
- fixedFooter: Boolean
19304
+ fixedFooter: Boolean,
19305
+ 'onClick:row': Function
19230
19306
  }, 'v-data-table');
19231
19307
  const VDataTable = genericComponent()({
19232
19308
  name: 'VDataTable',
@@ -19247,8 +19323,7 @@ const VDataTable = genericComponent()({
19247
19323
  'update:sortBy': value => true,
19248
19324
  'update:options': value => true,
19249
19325
  'update:groupBy': value => true,
19250
- 'update:expanded': value => true,
19251
- 'click:row': (event, value) => true
19326
+ 'update:expanded': value => true
19252
19327
  },
19253
19328
  setup(props, _ref) {
19254
19329
  let {
@@ -19343,7 +19418,8 @@ const VDataTable = genericComponent()({
19343
19418
  }],
19344
19419
  "fixedHeader": props.fixedHeader,
19345
19420
  "fixedFooter": props.fixedFooter,
19346
- "height": props.height
19421
+ "height": props.height,
19422
+ "hover": props.hover
19347
19423
  }, {
19348
19424
  top: slots.top,
19349
19425
  default: slots.default ?? (() => createVNode(Fragment, null, [slots.colgroup?.({
@@ -19353,7 +19429,7 @@ const VDataTable = genericComponent()({
19353
19429
  "multiSort": props.multiSort
19354
19430
  }, slots)]), slots.thead?.(), createVNode("tbody", null, [slots.body ? slots.body() : createVNode(VDataTableRows, {
19355
19431
  "items": paginatedItems.value,
19356
- "onClick:row": (event, value) => emit('click:row', event, value)
19432
+ "onClick:row": props['onClick:row']
19357
19433
  }, slots)]), slots.tbody?.(), slots.tfoot?.()])),
19358
19434
  bottom: slots.bottom ?? (() => createVNode(VDataTableFooter, null, {
19359
19435
  prepend: slots['footer.prepend']
@@ -19464,7 +19540,7 @@ const VDataTableVirtual = genericComponent()({
19464
19540
  'update:options': value => true,
19465
19541
  'update:groupBy': value => true,
19466
19542
  'update:expanded': value => true,
19467
- 'click:row': (event, value) => true
19543
+ 'click:row': (e, value) => true
19468
19544
  },
19469
19545
  setup(props, _ref) {
19470
19546
  let {
@@ -19548,8 +19624,10 @@ const VDataTableVirtual = genericComponent()({
19548
19624
  "style": {
19549
19625
  '--v-table-row-height': convertToUnit(itemHeight.value)
19550
19626
  },
19627
+ "fixedHeader": props.fixedHeader,
19628
+ "fixedFooter": props.fixedFooter,
19551
19629
  "height": props.height,
19552
- "fixedHeader": props.fixedHeader
19630
+ "hover": props.hover
19553
19631
  }, {
19554
19632
  top: slots.top,
19555
19633
  wrapper: () => createVNode("div", {
@@ -19575,7 +19653,7 @@ const VDataTableVirtual = genericComponent()({
19575
19653
  }
19576
19654
  }, null)]), createVNode(VDataTableRows, {
19577
19655
  "items": visibleItems.value,
19578
- "onClick:row": (event, value) => emit('click:row', event, value)
19656
+ "onClick:row": props['onClick:row']
19579
19657
  }, slots), createVNode("tr", {
19580
19658
  "style": {
19581
19659
  height: convertToUnit(paddingBottom.value),
@@ -19625,7 +19703,7 @@ const VDataTableServer = genericComponent()({
19625
19703
  'update:options': options => true,
19626
19704
  'update:expanded': options => true,
19627
19705
  'update:groupBy': value => true,
19628
- 'click:row': (event, value) => true
19706
+ 'click:row': (e, value) => true
19629
19707
  },
19630
19708
  setup(props, _ref) {
19631
19709
  let {
@@ -19703,7 +19781,8 @@ const VDataTableServer = genericComponent()({
19703
19781
  }],
19704
19782
  "fixedHeader": props.fixedHeader,
19705
19783
  "fixedFooter": props.fixedFooter,
19706
- "height": props.height
19784
+ "height": props.height,
19785
+ "hover": props.hover
19707
19786
  }, {
19708
19787
  top: slots.top,
19709
19788
  default: slots.default ?? (() => createVNode(Fragment, null, [slots.colgroup?.({
@@ -19720,7 +19799,7 @@ const VDataTableServer = genericComponent()({
19720
19799
  "role": "rowgroup"
19721
19800
  }, [slots.body ? slots.body() : createVNode(VDataTableRows, {
19722
19801
  "items": flatItems.value,
19723
- "onClick:row": (event, value) => emit('click:row', event, value)
19802
+ "onClick:row": props['onClick:row']
19724
19803
  }, slots)]), slots.tbody?.(), slots.tfoot?.()])),
19725
19804
  bottom: slots.bottom ?? (() => createVNode(VDataTableFooter, null, {
19726
19805
  prepend: slots['footer.prepend']
@@ -19729,6 +19808,137 @@ const VDataTableServer = genericComponent()({
19729
19808
  }
19730
19809
  });
19731
19810
 
19811
+ // Types
19812
+
19813
+ const rootTypes = {
19814
+ actions: 'button@2',
19815
+ article: 'heading, paragraph',
19816
+ avatar: 'avatar',
19817
+ button: 'button',
19818
+ card: 'image, heading',
19819
+ 'card-avatar': 'image, list-item-avatar',
19820
+ chip: 'chip',
19821
+ 'date-picker': 'list-item, heading, divider, date-picker-options, date-picker-days, actions',
19822
+ 'date-picker-options': 'text, avatar@2',
19823
+ 'date-picker-days': 'avatar@28',
19824
+ heading: 'heading',
19825
+ image: 'image',
19826
+ 'list-item': 'text',
19827
+ 'list-item-avatar': 'avatar, text',
19828
+ 'list-item-two-line': 'sentences',
19829
+ 'list-item-avatar-two-line': 'avatar, sentences',
19830
+ 'list-item-three-line': 'paragraph',
19831
+ 'list-item-avatar-three-line': 'avatar, paragraph',
19832
+ paragraph: 'text@3',
19833
+ sentences: 'text@2',
19834
+ subtitle: 'text',
19835
+ table: 'table-heading, table-thead, table-tbody, table-tfoot',
19836
+ 'table-heading': 'chip, text',
19837
+ 'table-thead': 'heading@6',
19838
+ 'table-tbody': 'table-row-divider@6',
19839
+ 'table-row-divider': 'table-row, divider',
19840
+ 'table-row': 'text@6',
19841
+ 'table-tfoot': 'text@2, avatar@2',
19842
+ text: 'text'
19843
+ };
19844
+ function genBone(type) {
19845
+ let children = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
19846
+ return createVNode("div", {
19847
+ "class": ['v-skeleton-loader__bone', `v-skeleton-loader__${type}`]
19848
+ }, [children]);
19849
+ }
19850
+ function genBones(bone) {
19851
+ // e.g. 'text@3'
19852
+ const [type, length] = bone.split('@');
19853
+
19854
+ // Generate a length array based upon
19855
+ // value after @ in the bone string
19856
+ return Array.from({
19857
+ length
19858
+ }).map(() => genStructure(type));
19859
+ }
19860
+ function genStructure(type) {
19861
+ let children = [];
19862
+ if (!type) return children;
19863
+
19864
+ // TODO: figure out a better way to type this
19865
+ const bone = rootTypes[type];
19866
+
19867
+ // End of recursion, do nothing
19868
+ /* eslint-disable-next-line no-empty, brace-style */
19869
+ if (type === bone) ;
19870
+ // Array of values - e.g. 'heading, paragraph, text@2'
19871
+ else if (type.includes(',')) return mapBones(type);
19872
+ // Array of values - e.g. 'paragraph@4'
19873
+ else if (type.includes('@')) return genBones(type);
19874
+ // Array of values - e.g. 'card@2'
19875
+ else if (bone.includes(',')) children = mapBones(bone);
19876
+ // Array of values - e.g. 'list-item@2'
19877
+ else if (bone.includes('@')) children = genBones(bone);
19878
+ // Single value - e.g. 'card-heading'
19879
+ else if (bone) children.push(genStructure(bone));
19880
+ return [genBone(type, children)];
19881
+ }
19882
+ function mapBones(bones) {
19883
+ // Remove spaces and return array of structures
19884
+ return bones.replace(/\s/g, '').split(',').map(genStructure);
19885
+ }
19886
+ const VSkeletonLoader = genericComponent()({
19887
+ name: 'VSkeletonLoader',
19888
+ props: {
19889
+ boilerplate: Boolean,
19890
+ color: String,
19891
+ loading: Boolean,
19892
+ loadingText: {
19893
+ type: String,
19894
+ default: '$vuetify.loading'
19895
+ },
19896
+ type: {
19897
+ type: [String, Array],
19898
+ default: 'image'
19899
+ },
19900
+ ...makeDimensionProps(),
19901
+ ...makeElevationProps(),
19902
+ ...makeThemeProps()
19903
+ },
19904
+ setup(props, _ref) {
19905
+ let {
19906
+ slots
19907
+ } = _ref;
19908
+ const {
19909
+ backgroundColorClasses,
19910
+ backgroundColorStyles
19911
+ } = useBackgroundColor(toRef(props, 'color'));
19912
+ const {
19913
+ dimensionStyles
19914
+ } = useDimension(props);
19915
+ const {
19916
+ elevationClasses
19917
+ } = useElevation(props);
19918
+ const {
19919
+ themeClasses
19920
+ } = provideTheme(props);
19921
+ const {
19922
+ t
19923
+ } = useLocale();
19924
+ const items = computed(() => genStructure(wrapInArray(props.type).join(',')));
19925
+ useRender(() => {
19926
+ const isLoading = !slots.default || props.loading;
19927
+ return createVNode("div", {
19928
+ "class": ['v-skeleton-loader', {
19929
+ 'v-skeleton-loader--boilerplate': props.boilerplate
19930
+ }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],
19931
+ "style": [backgroundColorStyles.value, isLoading ? dimensionStyles.value : {}],
19932
+ "aria-busy": !props.boilerplate ? isLoading : undefined,
19933
+ "aria-live": !props.boilerplate ? 'polite' : undefined,
19934
+ "aria-label": !props.boilerplate ? t(props.loadingText) : undefined,
19935
+ "role": !props.boilerplate ? 'alert' : undefined
19936
+ }, [isLoading ? items.value : slots.default?.()]);
19937
+ });
19938
+ return {};
19939
+ }
19940
+ });
19941
+
19732
19942
  const VVirtualScrollItem = genericComponent()({
19733
19943
  name: 'VVirtualScrollItem',
19734
19944
  props: {
@@ -19902,12 +20112,12 @@ const VVirtualScroll = genericComponent()({
19902
20112
 
19903
20113
  var components = /*#__PURE__*/Object.freeze({
19904
20114
  __proto__: null,
20115
+ VAlert: VAlert,
20116
+ VAlertTitle: VAlertTitle,
19905
20117
  VApp: VApp,
19906
20118
  VAppBar: VAppBar,
19907
20119
  VAppBarNavIcon: VAppBarNavIcon,
19908
20120
  VAppBarTitle: VAppBarTitle,
19909
- VAlert: VAlert,
19910
- VAlertTitle: VAlertTitle,
19911
20121
  VAutocomplete: VAutocomplete,
19912
20122
  VAvatar: VAvatar,
19913
20123
  VBadge: VBadge,
@@ -19916,8 +20126,8 @@ var components = /*#__PURE__*/Object.freeze({
19916
20126
  VBannerText: VBannerText,
19917
20127
  VBottomNavigation: VBottomNavigation,
19918
20128
  VBreadcrumbs: VBreadcrumbs,
19919
- VBreadcrumbsItem: VBreadcrumbsItem,
19920
20129
  VBreadcrumbsDivider: VBreadcrumbsDivider,
20130
+ VBreadcrumbsItem: VBreadcrumbsItem,
19921
20131
  VBtn: VBtn,
19922
20132
  VBtnGroup: VBtnGroup,
19923
20133
  VBtnToggle: VBtnToggle,
@@ -19933,41 +20143,51 @@ var components = /*#__PURE__*/Object.freeze({
19933
20143
  VCheckboxBtn: VCheckboxBtn,
19934
20144
  VChip: VChip,
19935
20145
  VChipGroup: VChipGroup,
20146
+ VClassIcon: VClassIcon,
19936
20147
  VCode: VCode,
20148
+ VCol: VCol,
19937
20149
  VColorPicker: VColorPicker,
19938
20150
  VCombobox: VCombobox,
20151
+ VComponentIcon: VComponentIcon,
20152
+ VContainer: VContainer,
19939
20153
  VCounter: VCounter,
20154
+ VDataTable: VDataTable,
20155
+ VDataTableFooter: VDataTableFooter,
20156
+ VDataTableRow: VDataTableRow,
20157
+ VDataTableRows: VDataTableRows,
20158
+ VDataTableServer: VDataTableServer,
20159
+ VDataTableVirtual: VDataTableVirtual,
19940
20160
  VDefaultsProvider: VDefaultsProvider,
19941
20161
  VDialog: VDialog,
20162
+ VDialogBottomTransition: VDialogBottomTransition,
20163
+ VDialogTopTransition: VDialogTopTransition,
20164
+ VDialogTransition: VDialogTransition,
19942
20165
  VDivider: VDivider,
19943
- VExpansionPanels: VExpansionPanels,
20166
+ VExpandTransition: VExpandTransition,
20167
+ VExpandXTransition: VExpandXTransition,
19944
20168
  VExpansionPanel: VExpansionPanel,
19945
20169
  VExpansionPanelText: VExpansionPanelText,
19946
20170
  VExpansionPanelTitle: VExpansionPanelTitle,
20171
+ VExpansionPanels: VExpansionPanels,
20172
+ VFabTransition: VFabTransition,
20173
+ VFadeTransition: VFadeTransition,
19947
20174
  VField: VField,
19948
20175
  VFieldLabel: VFieldLabel,
19949
20176
  VFileInput: VFileInput,
19950
20177
  VFooter: VFooter,
19951
20178
  VForm: VForm,
19952
- VContainer: VContainer,
19953
- VCol: VCol,
19954
- VRow: VRow,
19955
- VSpacer: VSpacer,
19956
20179
  VHover: VHover,
19957
20180
  VIcon: VIcon,
19958
- VComponentIcon: VComponentIcon,
19959
- VSvgIcon: VSvgIcon,
19960
- VLigatureIcon: VLigatureIcon,
19961
- VClassIcon: VClassIcon,
19962
20181
  VImg: VImg,
19963
20182
  VInput: VInput,
19964
- VItemGroup: VItemGroup,
19965
20183
  VItem: VItem,
20184
+ VItemGroup: VItemGroup,
19966
20185
  VKbd: VKbd,
19967
20186
  VLabel: VLabel,
19968
20187
  VLayout: VLayout,
19969
20188
  VLayoutItem: VLayoutItem,
19970
20189
  VLazy: VLazy,
20190
+ VLigatureIcon: VLigatureIcon,
19971
20191
  VList: VList,
19972
20192
  VListGroup: VListGroup,
19973
20193
  VListImg: VListImg,
@@ -19993,54 +20213,45 @@ var components = /*#__PURE__*/Object.freeze({
19993
20213
  VRangeSlider: VRangeSlider,
19994
20214
  VRating: VRating,
19995
20215
  VResponsive: VResponsive,
20216
+ VRow: VRow,
20217
+ VScaleTransition: VScaleTransition,
20218
+ VScrollXReverseTransition: VScrollXReverseTransition,
20219
+ VScrollXTransition: VScrollXTransition,
20220
+ VScrollYReverseTransition: VScrollYReverseTransition,
20221
+ VScrollYTransition: VScrollYTransition,
19996
20222
  VSelect: VSelect,
19997
20223
  VSelectionControl: VSelectionControl,
19998
20224
  VSelectionControlGroup: VSelectionControlGroup,
19999
20225
  VSheet: VSheet,
20226
+ VSkeletonLoader: VSkeletonLoader,
20000
20227
  VSlideGroup: VSlideGroup,
20001
20228
  VSlideGroupItem: VSlideGroupItem,
20229
+ VSlideXReverseTransition: VSlideXReverseTransition,
20230
+ VSlideXTransition: VSlideXTransition,
20231
+ VSlideYReverseTransition: VSlideYReverseTransition,
20232
+ VSlideYTransition: VSlideYTransition,
20002
20233
  VSlider: VSlider,
20003
20234
  VSnackbar: VSnackbar,
20235
+ VSpacer: VSpacer,
20236
+ VSvgIcon: VSvgIcon,
20004
20237
  VSwitch: VSwitch,
20005
20238
  VSystemBar: VSystemBar,
20006
- VTabs: VTabs,
20007
20239
  VTab: VTab,
20008
20240
  VTable: VTable,
20009
- VTextarea: VTextarea,
20241
+ VTabs: VTabs,
20010
20242
  VTextField: VTextField,
20243
+ VTextarea: VTextarea,
20011
20244
  VThemeProvider: VThemeProvider,
20012
20245
  VTimeline: VTimeline,
20013
20246
  VTimelineItem: VTimelineItem,
20014
20247
  VToolbar: VToolbar,
20015
- VToolbarTitle: VToolbarTitle,
20016
20248
  VToolbarItems: VToolbarItems,
20249
+ VToolbarTitle: VToolbarTitle,
20017
20250
  VTooltip: VTooltip,
20018
20251
  VValidation: VValidation,
20252
+ VVirtualScroll: VVirtualScroll,
20019
20253
  VWindow: VWindow,
20020
- VWindowItem: VWindowItem,
20021
- VDialogTransition: VDialogTransition,
20022
- VFabTransition: VFabTransition,
20023
- VDialogBottomTransition: VDialogBottomTransition,
20024
- VDialogTopTransition: VDialogTopTransition,
20025
- VFadeTransition: VFadeTransition,
20026
- VScaleTransition: VScaleTransition,
20027
- VScrollXTransition: VScrollXTransition,
20028
- VScrollXReverseTransition: VScrollXReverseTransition,
20029
- VScrollYTransition: VScrollYTransition,
20030
- VScrollYReverseTransition: VScrollYReverseTransition,
20031
- VSlideXTransition: VSlideXTransition,
20032
- VSlideXReverseTransition: VSlideXReverseTransition,
20033
- VSlideYTransition: VSlideYTransition,
20034
- VSlideYReverseTransition: VSlideYReverseTransition,
20035
- VExpandTransition: VExpandTransition,
20036
- VExpandXTransition: VExpandXTransition,
20037
- VDataTable: VDataTable,
20038
- VDataTableRows: VDataTableRows,
20039
- VDataTableRow: VDataTableRow,
20040
- VDataTableVirtual: VDataTableVirtual,
20041
- VDataTableServer: VDataTableServer,
20042
- VDataTableFooter: VDataTableFooter,
20043
- VVirtualScroll: VVirtualScroll
20254
+ VWindowItem: VWindowItem
20044
20255
  });
20045
20256
 
20046
20257
  // Types
@@ -20251,7 +20462,7 @@ function createVuetify$1() {
20251
20462
  locale
20252
20463
  };
20253
20464
  }
20254
- const version$1 = "3.1.12";
20465
+ const version$1 = "3.1.14";
20255
20466
  createVuetify$1.version = version$1;
20256
20467
 
20257
20468
  // Vue's inject() can only be used in setup
@@ -20263,7 +20474,7 @@ function inject(key) {
20263
20474
  }
20264
20475
  }
20265
20476
 
20266
- const version = "3.1.12";
20477
+ const version = "3.1.14";
20267
20478
 
20268
20479
  const createVuetify = function () {
20269
20480
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};