vuetify 3.1.3 → 3.1.5

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 (520) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/json/attributes.json +3104 -3068
  3. package/dist/json/importMap-labs.json +4 -0
  4. package/dist/json/importMap.json +38 -38
  5. package/dist/json/tags.json +18 -4
  6. package/dist/json/web-types.json +9059 -6289
  7. package/dist/vuetify-labs.css +374 -3262
  8. package/dist/vuetify-labs.d.ts +14446 -22245
  9. package/dist/vuetify-labs.esm.js +1661 -1922
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +1660 -1921
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +162 -3058
  14. package/dist/vuetify.d.ts +13666 -21503
  15. package/dist/vuetify.esm.js +1435 -1706
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +1434 -1705
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +1084 -1305
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/index.d.ts +9 -9
  23. package/lib/blueprints/md1.d.ts +9 -9
  24. package/lib/blueprints/md2.d.ts +9 -9
  25. package/lib/blueprints/md3.d.ts +9 -9
  26. package/lib/blueprints/md3.mjs.map +1 -1
  27. package/lib/components/VAlert/VAlert.mjs +5 -6
  28. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  29. package/lib/components/VAlert/index.d.ts +135 -157
  30. package/lib/components/VApp/VApp.mjs +9 -12
  31. package/lib/components/VApp/VApp.mjs.map +1 -1
  32. package/lib/components/VApp/index.d.ts +27 -13
  33. package/lib/components/VAppBar/VAppBar.mjs +9 -5
  34. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  35. package/lib/components/VAppBar/VAppBarNavIcon.mjs +2 -2
  36. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  37. package/lib/components/VAppBar/VAppBarTitle.mjs +5 -6
  38. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  39. package/lib/components/VAppBar/index.d.ts +173 -342
  40. package/lib/components/VAutocomplete/VAutocomplete.mjs +100 -104
  41. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  42. package/lib/components/VAutocomplete/index.d.ts +494 -636
  43. package/lib/components/VAvatar/VAvatar.mjs +19 -22
  44. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  45. package/lib/components/VAvatar/index.d.ts +46 -66
  46. package/lib/components/VBadge/VBadge.mjs +7 -5
  47. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  48. package/lib/components/VBadge/index.d.ts +74 -100
  49. package/lib/components/VBanner/VBanner.mjs +3 -4
  50. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  51. package/lib/components/VBanner/VBannerActions.mjs +5 -8
  52. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  53. package/lib/components/VBanner/index.d.ts +134 -98
  54. package/lib/components/VBottomNavigation/VBottomNavigation.css +2 -1
  55. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +8 -4
  56. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  57. package/lib/components/VBottomNavigation/VBottomNavigation.sass +2 -1
  58. package/lib/components/VBottomNavigation/_variables.scss +1 -1
  59. package/lib/components/VBottomNavigation/index.d.ts +67 -131
  60. package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -4
  61. package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
  62. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +9 -16
  63. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  64. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +5 -8
  65. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  66. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +4 -8
  67. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  68. package/lib/components/VBreadcrumbs/index.d.ts +87 -61
  69. package/lib/components/VBtn/VBtn.css +7 -7
  70. package/lib/components/VBtn/VBtn.mjs +14 -17
  71. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  72. package/lib/components/VBtn/index.d.ts +118 -179
  73. package/lib/components/VBtnGroup/VBtnGroup.mjs +19 -12
  74. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  75. package/lib/components/VBtnGroup/index.d.ts +42 -56
  76. package/lib/components/VBtnToggle/VBtnToggle.mjs +10 -7
  77. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  78. package/lib/components/VBtnToggle/index.d.ts +65 -131
  79. package/lib/components/VCalendar/VCalendar.mjs +3 -0
  80. package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
  81. package/lib/components/VCalendar/VCalendarCategory.sass +9 -3
  82. package/lib/components/VCalendar/VCalendarDaily.mjs +20 -8
  83. package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
  84. package/lib/components/VCalendar/VCalendarWeekly.mjs +25 -5
  85. package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
  86. package/lib/components/VCalendar/mixins/calendar-with-events.mjs +20 -16
  87. package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
  88. package/lib/components/VCalendar/mixins/mouse.mjs +15 -30
  89. package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
  90. package/lib/components/VCard/VCard.css +7 -7
  91. package/lib/components/VCard/VCard.mjs +5 -6
  92. package/lib/components/VCard/VCard.mjs.map +1 -1
  93. package/lib/components/VCard/VCardActions.mjs +5 -8
  94. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  95. package/lib/components/VCard/VCardItem.mjs +7 -8
  96. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  97. package/lib/components/VCard/index.d.ts +286 -186
  98. package/lib/components/VCarousel/VCarousel.mjs +2 -2
  99. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  100. package/lib/components/VCarousel/VCarouselItem.mjs +2 -2
  101. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  102. package/lib/components/VCarousel/index.d.ts +238 -61
  103. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  104. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  105. package/lib/components/VCheckbox/VCheckboxBtn.mjs +2 -2
  106. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  107. package/lib/components/VCheckbox/index.d.ts +277 -254
  108. package/lib/components/VChip/VChip.css +7 -7
  109. package/lib/components/VChip/VChip.mjs +21 -15
  110. package/lib/components/VChip/VChip.mjs.map +1 -1
  111. package/lib/components/VChip/index.d.ts +118 -168
  112. package/lib/components/VChipGroup/VChipGroup.css +1 -0
  113. package/lib/components/VChipGroup/VChipGroup.mjs +15 -18
  114. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  115. package/lib/components/VChipGroup/VChipGroup.sass +1 -0
  116. package/lib/components/VChipGroup/index.d.ts +49 -68
  117. package/lib/components/VCode/index.d.ts +21 -9
  118. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +4 -9
  119. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  120. package/lib/components/VColorPicker/VColorPickerEdit.mjs +12 -16
  121. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  122. package/lib/components/VColorPicker/VColorPickerPreview.mjs +43 -46
  123. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  124. package/lib/components/VColorPicker/index.d.ts +1 -1
  125. package/lib/components/VColorPicker/util/index.mjs +1 -2
  126. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  127. package/lib/components/VCombobox/VCombobox.mjs +104 -113
  128. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  129. package/lib/components/VCombobox/index.d.ts +496 -638
  130. package/lib/components/VCounter/VCounter.mjs +2 -2
  131. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  132. package/lib/components/VCounter/index.d.ts +139 -197
  133. package/lib/components/VData/VData.mjs +2 -4
  134. package/lib/components/VData/VData.mjs.map +1 -1
  135. package/lib/components/VDatePicker/VDatePicker.mjs +7 -5
  136. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  137. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +4 -9
  138. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  139. package/lib/components/VDefaultsProvider/index.d.ts +33 -14
  140. package/lib/components/VDialog/VDialog.mjs +6 -9
  141. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  142. package/lib/components/VDialog/index.d.ts +430 -1610
  143. package/lib/components/VDivider/VDivider.mjs +2 -2
  144. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  145. package/lib/components/VDivider/index.d.ts +35 -15
  146. package/lib/components/VExpansionPanel/VExpansionPanel.css +7 -7
  147. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +4 -5
  148. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  149. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +11 -14
  150. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  151. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +19 -22
  152. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  153. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +2 -2
  154. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  155. package/lib/components/VExpansionPanel/index.d.ts +180 -158
  156. package/lib/components/VField/VField.css +2 -2
  157. package/lib/components/VField/VField.mjs +3 -6
  158. package/lib/components/VField/VField.mjs.map +1 -1
  159. package/lib/components/VField/VField.sass +2 -2
  160. package/lib/components/VField/VFieldLabel.mjs +2 -2
  161. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  162. package/lib/components/VField/index.d.ts +46 -34
  163. package/lib/components/VFileInput/VFileInput.mjs +16 -18
  164. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  165. package/lib/components/VFileInput/index.d.ts +330 -355
  166. package/lib/components/VFooter/VFooter.mjs +2 -2
  167. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  168. package/lib/components/VFooter/index.d.ts +45 -65
  169. package/lib/components/VForm/VForm.mjs +10 -14
  170. package/lib/components/VForm/VForm.mjs.map +1 -1
  171. package/lib/components/VForm/index.d.ts +29 -23
  172. package/lib/components/VGrid/VCol.mjs +5 -8
  173. package/lib/components/VGrid/VCol.mjs.map +1 -1
  174. package/lib/components/VGrid/VContainer.mjs +2 -2
  175. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  176. package/lib/components/VGrid/VGrid.css +0 -125
  177. package/lib/components/VGrid/VRow.mjs +5 -8
  178. package/lib/components/VGrid/VRow.mjs.map +1 -1
  179. package/lib/components/VGrid/index.d.ts +112 -121
  180. package/lib/components/VHover/VHover.mjs +9 -12
  181. package/lib/components/VHover/VHover.mjs.map +1 -1
  182. package/lib/components/VHover/index.d.ts +53 -15
  183. package/lib/components/VIcon/VIcon.mjs +22 -26
  184. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  185. package/lib/components/VIcon/index.d.ts +68 -56
  186. package/lib/components/VImg/VImg.mjs +7 -11
  187. package/lib/components/VImg/VImg.mjs.map +1 -1
  188. package/lib/components/VImg/index.d.ts +67 -58
  189. package/lib/components/VInput/VInput.mjs +5 -6
  190. package/lib/components/VInput/VInput.mjs.map +1 -1
  191. package/lib/components/VInput/index.d.ts +94 -283
  192. package/lib/components/VItemGroup/VItem.mjs +8 -11
  193. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  194. package/lib/components/VItemGroup/VItemGroup.mjs +13 -16
  195. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  196. package/lib/components/VItemGroup/index.d.ts +76 -149
  197. package/lib/components/VKbd/index.d.ts +21 -9
  198. package/lib/components/VLabel/VLabel.mjs +7 -10
  199. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  200. package/lib/components/VLabel/index.d.ts +29 -9
  201. package/lib/components/VLayout/VLayout.mjs +9 -12
  202. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  203. package/lib/components/VLayout/VLayoutItem.mjs +6 -9
  204. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  205. package/lib/components/VLayout/index.d.ts +60 -43
  206. package/lib/components/VLazy/VLazy.mjs +12 -15
  207. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  208. package/lib/components/VLazy/index.d.ts +48 -71
  209. package/lib/components/VList/VList.mjs +4 -8
  210. package/lib/components/VList/VList.mjs.map +1 -1
  211. package/lib/components/VList/VListChildren.mjs +59 -77
  212. package/lib/components/VList/VListChildren.mjs.map +1 -1
  213. package/lib/components/VList/VListGroup.mjs +33 -39
  214. package/lib/components/VList/VListGroup.mjs.map +1 -1
  215. package/lib/components/VList/VListItem.css +9 -9
  216. package/lib/components/VList/VListItem.mjs +10 -18
  217. package/lib/components/VList/VListItem.mjs.map +1 -1
  218. package/lib/components/VList/VListItem.sass +0 -2
  219. package/lib/components/VList/VListItemAction.mjs +2 -2
  220. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  221. package/lib/components/VList/VListItemMedia.mjs +2 -2
  222. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  223. package/lib/components/VList/VListSubheader.mjs +3 -4
  224. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  225. package/lib/components/VList/index.d.ts +418 -686
  226. package/lib/components/VList/list.mjs +1 -1
  227. package/lib/components/VList/list.mjs.map +1 -1
  228. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -8
  229. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  230. package/lib/components/VLocaleProvider/index.d.ts +28 -16
  231. package/lib/components/VMain/VMain.mjs +12 -15
  232. package/lib/components/VMain/VMain.mjs.map +1 -1
  233. package/lib/components/VMain/index.d.ts +23 -17
  234. package/lib/components/VMenu/VMenu.mjs +10 -10
  235. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  236. package/lib/components/VMenu/index.d.ts +428 -1641
  237. package/lib/components/VMessages/VMessages.mjs +2 -2
  238. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  239. package/lib/components/VMessages/index.d.ts +144 -204
  240. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +6 -7
  241. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  242. package/lib/components/VNavigationDrawer/index.d.ts +92 -124
  243. package/lib/components/VNoSsr/VNoSsr.mjs +1 -4
  244. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  245. package/lib/components/VNoSsr/index.d.ts +20 -4
  246. package/lib/components/VOtpInput/VOtpInput.mjs +25 -50
  247. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  248. package/lib/components/VOverflowBtn/VOverflowBtn.mjs +3 -0
  249. package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
  250. package/lib/components/VOverlay/VOverlay.mjs +44 -47
  251. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  252. package/lib/components/VOverlay/index.d.ts +150 -468
  253. package/lib/components/VOverlay/locationStrategies.mjs +3 -6
  254. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  255. package/lib/components/VOverlay/scrollStrategies.mjs +7 -12
  256. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  257. package/lib/components/VOverlay/useActivator.mjs +4 -7
  258. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  259. package/lib/components/VPagination/VPagination.mjs +4 -5
  260. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  261. package/lib/components/VPagination/index.d.ts +107 -207
  262. package/lib/components/VParallax/VParallax.mjs +12 -15
  263. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  264. package/lib/components/VParallax/index.d.ts +39 -9
  265. package/lib/components/VProgressCircular/VProgressCircular.mjs +2 -2
  266. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  267. package/lib/components/VProgressCircular/index.d.ts +41 -58
  268. package/lib/components/VProgressLinear/VProgressLinear.mjs +2 -2
  269. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  270. package/lib/components/VProgressLinear/index.d.ts +91 -95
  271. package/lib/components/VRadio/VRadio.mjs +2 -2
  272. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  273. package/lib/components/VRadio/index.d.ts +108 -85
  274. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
  275. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  276. package/lib/components/VRadioGroup/index.d.ts +164 -147
  277. package/lib/components/VRangeSlider/VRangeSlider.mjs +21 -31
  278. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  279. package/lib/components/VRangeSlider/index.d.ts +154 -210
  280. package/lib/components/VRating/VRating.mjs +28 -34
  281. package/lib/components/VRating/VRating.mjs.map +1 -1
  282. package/lib/components/VRating/index.d.ts +77 -311
  283. package/lib/components/VResponsive/VResponsive.mjs +11 -14
  284. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  285. package/lib/components/VResponsive/index.d.ts +44 -20
  286. package/lib/components/VSelect/VSelect.mjs +100 -102
  287. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  288. package/lib/components/VSelect/index.d.ts +729 -673
  289. package/lib/components/VSelectionControl/VSelectionControl.css +2 -2
  290. package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -4
  291. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  292. package/lib/components/VSelectionControl/index.d.ts +31 -19
  293. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +8 -11
  294. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  295. package/lib/components/VSelectionControlGroup/index.d.ts +58 -70
  296. package/lib/components/VSheet/VSheet.mjs +2 -2
  297. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  298. package/lib/components/VSheet/index.d.ts +52 -56
  299. package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +1 -1
  300. package/lib/components/VSlideGroup/VSlideGroup.mjs +51 -60
  301. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  302. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +6 -9
  303. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  304. package/lib/components/VSlideGroup/index.d.ts +144 -366
  305. package/lib/components/VSlider/VSlider.mjs +8 -14
  306. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  307. package/lib/components/VSlider/VSliderThumb.css +0 -1
  308. package/lib/components/VSlider/VSliderThumb.mjs +4 -5
  309. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  310. package/lib/components/VSlider/VSliderTrack.mjs +4 -5
  311. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  312. package/lib/components/VSlider/index.d.ts +151 -207
  313. package/lib/components/VSlider/slider.mjs +3 -6
  314. package/lib/components/VSlider/slider.mjs.map +1 -1
  315. package/lib/components/VSnackbar/VSnackbar.mjs +1 -1
  316. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  317. package/lib/components/VSnackbar/index.d.ts +358 -1519
  318. package/lib/components/VStepper/VStepper.sass +6 -6
  319. package/lib/components/VStepper/VStepperStep.mjs +12 -2
  320. package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
  321. package/lib/components/VSwitch/VSwitch.mjs +3 -4
  322. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  323. package/lib/components/VSwitch/index.d.ts +180 -151
  324. package/lib/components/VSystemBar/VSystemBar.mjs +8 -4
  325. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  326. package/lib/components/VSystemBar/index.d.ts +43 -51
  327. package/lib/components/VTable/VTable.mjs +19 -22
  328. package/lib/components/VTable/VTable.mjs.map +1 -1
  329. package/lib/components/VTable/index.d.ts +54 -30
  330. package/lib/components/VTabs/VTab.mjs +3 -4
  331. package/lib/components/VTabs/VTab.mjs.map +1 -1
  332. package/lib/components/VTabs/VTabs.mjs +2 -2
  333. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  334. package/lib/components/VTabs/index.d.ts +122 -150
  335. package/lib/components/VTextField/VTextField.mjs +16 -19
  336. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  337. package/lib/components/VTextField/index.d.ts +331 -1489
  338. package/lib/components/VTextarea/VTextarea.mjs +17 -19
  339. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  340. package/lib/components/VTextarea/index.d.ts +320 -334
  341. package/lib/components/VThemeProvider/VThemeProvider.mjs +4 -5
  342. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  343. package/lib/components/VThemeProvider/index.d.ts +27 -13
  344. package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
  345. package/lib/components/VTimeline/VTimeline.mjs +2 -2
  346. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  347. package/lib/components/VTimeline/VTimelineDivider.mjs +20 -23
  348. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  349. package/lib/components/VTimeline/VTimelineItem.mjs +33 -34
  350. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  351. package/lib/components/VTimeline/_mixins.sass +1 -1
  352. package/lib/components/VTimeline/index.d.ts +123 -135
  353. package/lib/components/VToolbar/VToolbar.css +1 -0
  354. package/lib/components/VToolbar/VToolbar.mjs +7 -9
  355. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  356. package/lib/components/VToolbar/VToolbar.sass +1 -0
  357. package/lib/components/VToolbar/VToolbarItems.mjs +5 -8
  358. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  359. package/lib/components/VToolbar/VToolbarTitle.mjs +7 -7
  360. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  361. package/lib/components/VToolbar/index.d.ts +146 -351
  362. package/lib/components/VTooltip/VTooltip.mjs +1 -2
  363. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  364. package/lib/components/VTooltip/index.d.ts +361 -1619
  365. package/lib/components/VTreeview/VTreeview.mjs +1 -1
  366. package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
  367. package/lib/components/VValidation/VValidation.mjs +3 -6
  368. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  369. package/lib/components/VValidation/index.d.ts +48 -46
  370. package/lib/components/VWindow/VWindow.mjs +19 -22
  371. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  372. package/lib/components/VWindow/VWindowItem.mjs +10 -14
  373. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  374. package/lib/components/VWindow/index.d.ts +152 -284
  375. package/lib/components/index.d.ts +13667 -21504
  376. package/lib/components/transitions/createTransition.mjs +4 -4
  377. package/lib/components/transitions/createTransition.mjs.map +1 -1
  378. package/lib/components/transitions/dialog-transition.mjs +8 -8
  379. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  380. package/lib/components/transitions/index.d.ts +477 -342
  381. package/lib/composables/defaults.mjs +6 -4
  382. package/lib/composables/defaults.mjs.map +1 -1
  383. package/lib/composables/delay.mjs +1 -1
  384. package/lib/composables/delay.mjs.map +1 -1
  385. package/lib/composables/filter.mjs +11 -12
  386. package/lib/composables/filter.mjs.map +1 -1
  387. package/lib/composables/group.mjs +2 -2
  388. package/lib/composables/group.mjs.map +1 -1
  389. package/lib/composables/icons.mjs +4 -6
  390. package/lib/composables/icons.mjs.map +1 -1
  391. package/lib/composables/intersectionObserver.mjs +1 -1
  392. package/lib/composables/intersectionObserver.mjs.map +1 -1
  393. package/lib/composables/layout.mjs +2 -5
  394. package/lib/composables/layout.mjs.map +1 -1
  395. package/lib/composables/loader.mjs +2 -3
  396. package/lib/composables/loader.mjs.map +1 -1
  397. package/lib/composables/locale.mjs +2 -2
  398. package/lib/composables/locale.mjs.map +1 -1
  399. package/lib/composables/mutationObserver.mjs +8 -8
  400. package/lib/composables/mutationObserver.mjs.map +1 -1
  401. package/lib/composables/nested/nested.mjs +2 -1
  402. package/lib/composables/nested/nested.mjs.map +1 -1
  403. package/lib/composables/nested/selectStrategies.mjs +1 -1
  404. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  405. package/lib/composables/proxiedModel.mjs +9 -10
  406. package/lib/composables/proxiedModel.mjs.map +1 -1
  407. package/lib/composables/resizeObserver.mjs +1 -1
  408. package/lib/composables/resizeObserver.mjs.map +1 -1
  409. package/lib/composables/router.mjs +12 -21
  410. package/lib/composables/router.mjs.map +1 -1
  411. package/lib/composables/scroll.mjs +2 -4
  412. package/lib/composables/scroll.mjs.map +1 -1
  413. package/lib/composables/selectLink.mjs +1 -4
  414. package/lib/composables/selectLink.mjs.map +1 -1
  415. package/lib/composables/stack.mjs +6 -8
  416. package/lib/composables/stack.mjs.map +1 -1
  417. package/lib/composables/teleport.mjs +1 -1
  418. package/lib/composables/teleport.mjs.map +1 -1
  419. package/lib/composables/theme.mjs +2 -3
  420. package/lib/composables/theme.mjs.map +1 -1
  421. package/lib/composables/toggleScope.mjs +3 -6
  422. package/lib/composables/toggleScope.mjs.map +1 -1
  423. package/lib/composables/touch.mjs +1 -2
  424. package/lib/composables/touch.mjs.map +1 -1
  425. package/lib/composables/validation.mjs +7 -7
  426. package/lib/composables/validation.mjs.map +1 -1
  427. package/lib/directives/click-outside/index.mjs +2 -3
  428. package/lib/directives/click-outside/index.mjs.map +1 -1
  429. package/lib/directives/index.d.ts +1 -1
  430. package/lib/directives/intersect/index.mjs +2 -4
  431. package/lib/directives/intersect/index.mjs.map +1 -1
  432. package/lib/directives/mutate/index.mjs +7 -8
  433. package/lib/directives/mutate/index.mjs.map +1 -1
  434. package/lib/directives/resize/index.mjs +3 -5
  435. package/lib/directives/resize/index.mjs.map +1 -1
  436. package/lib/directives/ripple/VRipple.css +3 -0
  437. package/lib/directives/ripple/VRipple.sass +3 -0
  438. package/lib/directives/ripple/_variables.scss +1 -1
  439. package/lib/directives/ripple/index.mjs +8 -18
  440. package/lib/directives/ripple/index.mjs.map +1 -1
  441. package/lib/directives/scroll/index.mjs +1 -2
  442. package/lib/directives/scroll/index.mjs.map +1 -1
  443. package/lib/directives/touch/index.mjs +9 -14
  444. package/lib/directives/touch/index.mjs.map +1 -1
  445. package/lib/entry-bundler.mjs +1 -1
  446. package/lib/framework.mjs +2 -3
  447. package/lib/framework.mjs.map +1 -1
  448. package/lib/iconsets/fa-svg.d.ts +2 -2
  449. package/lib/iconsets/fa.d.ts +2 -2
  450. package/lib/iconsets/fa4.d.ts +2 -2
  451. package/lib/iconsets/md.d.ts +2 -2
  452. package/lib/iconsets/mdi-svg.d.ts +2 -2
  453. package/lib/iconsets/mdi.d.ts +2 -2
  454. package/lib/index.d.ts +20 -20
  455. package/lib/labs/VDataTable/VDataTable.mjs +12 -19
  456. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  457. package/lib/labs/VDataTable/VDataTableColumn.mjs +1 -2
  458. package/lib/labs/VDataTable/VDataTableColumn.mjs.map +1 -1
  459. package/lib/labs/VDataTable/VDataTableFooter.css +9 -0
  460. package/lib/labs/VDataTable/VDataTableFooter.mjs +80 -45
  461. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  462. package/lib/labs/VDataTable/VDataTableFooter.sass +7 -0
  463. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +6 -8
  464. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
  465. package/lib/labs/VDataTable/VDataTableHeaders.mjs +3 -4
  466. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  467. package/lib/labs/VDataTable/VDataTableRow.mjs +2 -4
  468. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  469. package/lib/labs/VDataTable/VDataTableRows.mjs +45 -49
  470. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  471. package/lib/labs/VDataTable/VDataTableServer.mjs +17 -26
  472. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  473. package/lib/labs/VDataTable/VDataTableVirtual.mjs +2 -5
  474. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  475. package/lib/labs/VDataTable/composables/headers.mjs +3 -4
  476. package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
  477. package/lib/labs/VDataTable/composables/options.mjs +0 -6
  478. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  479. package/lib/labs/VDataTable/composables/paginate.mjs +2 -7
  480. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  481. package/lib/labs/VDataTable/composables/sort.mjs +1 -1
  482. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
  483. package/lib/labs/VDataTable/index.d.ts +593 -526
  484. package/lib/labs/VDataTable/index.mjs +1 -0
  485. package/lib/labs/VDataTable/index.mjs.map +1 -1
  486. package/lib/labs/VVirtualScroll/VVirtualScroll.css +0 -1
  487. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs +48 -34
  488. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  489. package/lib/labs/VVirtualScroll/VVirtualScroll.sass +0 -1
  490. package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs +22 -16
  491. package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  492. package/lib/labs/VVirtualScroll/index.d.ts +26 -57
  493. package/lib/labs/components.d.ts +619 -583
  494. package/lib/locale/adapters/vue-i18n.d.ts +1 -1
  495. package/lib/locale/adapters/vuetify.mjs +3 -3
  496. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  497. package/lib/locale/ar.mjs +20 -20
  498. package/lib/locale/ar.mjs.map +1 -1
  499. package/lib/locale/es.mjs +3 -3
  500. package/lib/locale/es.mjs.map +1 -1
  501. package/lib/locale/fi.mjs +5 -5
  502. package/lib/locale/fi.mjs.map +1 -1
  503. package/lib/locale/it.mjs +6 -6
  504. package/lib/locale/it.mjs.map +1 -1
  505. package/lib/locale/sv.mjs +7 -7
  506. package/lib/locale/sv.mjs.map +1 -1
  507. package/lib/styles/main.css +40 -2816
  508. package/lib/styles/settings/_variables.scss +6 -6
  509. package/lib/styles/tools/_states.sass +3 -3
  510. package/lib/util/console.mjs +1 -1
  511. package/lib/util/console.mjs.map +1 -1
  512. package/lib/util/createSimpleFunctional.mjs +5 -8
  513. package/lib/util/createSimpleFunctional.mjs.map +1 -1
  514. package/lib/util/defineComponent.mjs +6 -8
  515. package/lib/util/defineComponent.mjs.map +1 -1
  516. package/lib/util/getCurrentInstance.mjs +1 -1
  517. package/lib/util/getCurrentInstance.mjs.map +1 -1
  518. package/lib/util/helpers.mjs +2 -21
  519. package/lib/util/helpers.mjs.map +1 -1
  520. package/package.json +19 -19
@@ -73,7 +73,15 @@ export const VSelect = genericComponent()({
73
73
  t
74
74
  } = useLocale();
75
75
  const vTextFieldRef = ref();
76
- const menu = useProxiedModel(props, 'menu');
76
+ const vMenuRef = ref();
77
+ const _menu = useProxiedModel(props, 'menu');
78
+ const menu = computed({
79
+ get: () => _menu.value,
80
+ set: v => {
81
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
82
+ _menu.value = v;
83
+ }
84
+ });
77
85
  const {
78
86
  items,
79
87
  transformIn,
@@ -98,17 +106,16 @@ export const VSelect = genericComponent()({
98
106
  });
99
107
  const listRef = ref();
100
108
  function onClear(e) {
101
- model.value = [];
102
109
  if (props.openOnClear) {
103
110
  menu.value = true;
104
111
  }
105
112
  }
106
- function onClickControl() {
107
- if (props.hideNoData && !items.value.length || props.readonly || form != null && form.isReadonly.value) return;
113
+ function onMousedownControl() {
114
+ if (props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value) return;
108
115
  menu.value = !menu.value;
109
116
  }
110
117
  function onKeydown(e) {
111
- if (props.readonly || form != null && form.isReadonly.value) return;
118
+ if (props.readonly || form?.isReadonly.value) return;
112
119
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
113
120
  e.preventDefault();
114
121
  }
@@ -119,17 +126,13 @@ export const VSelect = genericComponent()({
119
126
  menu.value = false;
120
127
  }
121
128
  if (e.key === 'ArrowDown') {
122
- var _listRef$value;
123
- (_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
129
+ listRef.value?.focus('next');
124
130
  } else if (e.key === 'ArrowUp') {
125
- var _listRef$value2;
126
- (_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
131
+ listRef.value?.focus('prev');
127
132
  } else if (e.key === 'Home') {
128
- var _listRef$value3;
129
- (_listRef$value3 = listRef.value) == null ? void 0 : _listRef$value3.focus('first');
133
+ listRef.value?.focus('first');
130
134
  } else if (e.key === 'End') {
131
- var _listRef$value4;
132
- (_listRef$value4 = listRef.value) == null ? void 0 : _listRef$value4.focus('last');
135
+ listRef.value?.focus('last');
133
136
  }
134
137
  }
135
138
  function select(item) {
@@ -148,15 +151,13 @@ export const VSelect = genericComponent()({
148
151
  }
149
152
  }
150
153
  function onBlur(e) {
151
- var _listRef$value5;
152
- if (!((_listRef$value5 = listRef.value) != null && _listRef$value5.$el.contains(e.relatedTarget))) {
154
+ if (!listRef.value?.$el.contains(e.relatedTarget)) {
153
155
  menu.value = false;
154
156
  }
155
157
  }
156
158
  function onFocusout(e) {
157
159
  if (e.relatedTarget == null) {
158
- var _vTextFieldRef$value;
159
- (_vTextFieldRef$value = vTextFieldRef.value) == null ? void 0 : _vTextFieldRef$value.focus();
160
+ vTextFieldRef.value?.focus();
160
161
  }
161
162
  }
162
163
  useRender(() => {
@@ -181,99 +182,96 @@ export const VSelect = genericComponent()({
181
182
  "appendInnerIcon": props.menuIcon,
182
183
  "readonly": true,
183
184
  "onClick:clear": onClear,
184
- "onClick:control": onClickControl,
185
+ "onMousedown:control": onMousedownControl,
185
186
  "onBlur": onBlur,
186
187
  "onKeydown": onKeydown
187
188
  }), {
188
189
  ...slots,
189
- default: () => {
190
- var _slots$noData, _slots$prependItem, _slots$appendItem;
191
- return _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({
192
- "modelValue": menu.value,
193
- "onUpdate:modelValue": $event => menu.value = $event,
194
- "activator": "parent",
195
- "contentClass": "v-select__content",
196
- "eager": props.eager,
197
- "maxHeight": 310,
198
- "openOnClick": false,
199
- "closeOnContentClick": false,
200
- "transition": props.transition
201
- }, props.menuProps), {
202
- default: () => [hasList && _createVNode(VList, {
203
- "ref": listRef,
204
- "selected": selected.value,
205
- "selectStrategy": props.multiple ? 'independent' : 'single-independent',
206
- "onMousedown": e => e.preventDefault(),
207
- "onFocusout": onFocusout
208
- }, {
209
- default: () => [!displayItems.value.length && !props.hideNoData && (((_slots$noData = slots['no-data']) == null ? void 0 : _slots$noData.call(slots)) ?? _createVNode(VListItem, {
210
- "title": t(props.noDataText)
211
- }, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), displayItems.value.map((item, index) => {
212
- if (slots.item) {
213
- var _slots$item;
214
- return (_slots$item = slots.item) == null ? void 0 : _slots$item.call(slots, {
215
- item,
216
- index,
217
- props: mergeProps(item.props, {
218
- onClick: () => select(item)
219
- })
220
- });
221
- }
222
- return _createVNode(VListItem, _mergeProps({
223
- "key": index
224
- }, item.props, {
225
- "onClick": () => select(item)
226
- }), {
227
- prepend: _ref2 => {
228
- let {
229
- isSelected
230
- } = _ref2;
231
- return props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {
232
- "modelValue": isSelected,
233
- "ripple": false
234
- }, null) : undefined;
235
- }
190
+ default: () => _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({
191
+ "ref": vMenuRef,
192
+ "modelValue": menu.value,
193
+ "onUpdate:modelValue": $event => menu.value = $event,
194
+ "activator": "parent",
195
+ "contentClass": "v-select__content",
196
+ "eager": props.eager,
197
+ "maxHeight": 310,
198
+ "openOnClick": false,
199
+ "closeOnContentClick": false,
200
+ "transition": props.transition
201
+ }, props.menuProps), {
202
+ default: () => [hasList && _createVNode(VList, {
203
+ "ref": listRef,
204
+ "selected": selected.value,
205
+ "selectStrategy": props.multiple ? 'independent' : 'single-independent',
206
+ "onMousedown": e => e.preventDefault(),
207
+ "onFocusout": onFocusout
208
+ }, {
209
+ default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {
210
+ "title": t(props.noDataText)
211
+ }, null)), slots['prepend-item']?.(), displayItems.value.map((item, index) => {
212
+ if (slots.item) {
213
+ return slots.item?.({
214
+ item,
215
+ index,
216
+ props: mergeProps(item.props, {
217
+ onClick: () => select(item)
218
+ })
236
219
  });
237
- }), (_slots$appendItem = slots['append-item']) == null ? void 0 : _slots$appendItem.call(slots)]
238
- })]
239
- }), selections.value.map((item, index) => {
240
- function onChipClose(e) {
241
- e.stopPropagation();
242
- e.preventDefault();
243
- select(item);
244
- }
245
- const slotProps = {
246
- 'onClick:close': onChipClose,
247
- modelValue: true,
248
- 'onUpdate:modelValue': undefined
249
- };
250
- return _createVNode("div", {
251
- "key": item.value,
252
- "class": "v-select__selection"
253
- }, [hasChips ? _createVNode(VDefaultsProvider, {
254
- "defaults": {
255
- VChip: {
256
- closable: props.closableChips,
257
- size: 'small',
258
- text: item.title
220
+ }
221
+ return _createVNode(VListItem, _mergeProps({
222
+ "key": index
223
+ }, item.props, {
224
+ "onClick": () => select(item)
225
+ }), {
226
+ prepend: _ref2 => {
227
+ let {
228
+ isSelected
229
+ } = _ref2;
230
+ return props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {
231
+ "modelValue": isSelected,
232
+ "ripple": false
233
+ }, null) : undefined;
259
234
  }
235
+ });
236
+ }), slots['append-item']?.()]
237
+ })]
238
+ }), selections.value.map((item, index) => {
239
+ function onChipClose(e) {
240
+ e.stopPropagation();
241
+ e.preventDefault();
242
+ select(item);
243
+ }
244
+ const slotProps = {
245
+ 'onClick:close': onChipClose,
246
+ modelValue: true,
247
+ 'onUpdate:modelValue': undefined
248
+ };
249
+ return _createVNode("div", {
250
+ "key": item.value,
251
+ "class": "v-select__selection"
252
+ }, [hasChips ? _createVNode(VDefaultsProvider, {
253
+ "defaults": {
254
+ VChip: {
255
+ closable: props.closableChips,
256
+ size: 'small',
257
+ text: item.title
260
258
  }
261
- }, {
262
- default: () => [slots.chip ? slots.chip({
263
- item,
264
- index,
265
- props: slotProps
266
- }) : _createVNode(VChip, slotProps, null)]
267
- }) : slots.selection ? slots.selection({
259
+ }
260
+ }, {
261
+ default: () => [slots.chip ? slots.chip({
268
262
  item,
269
- index
270
- }) : _createVNode("span", {
271
- "class": "v-select__selection-text"
272
- }, [item.title, props.multiple && index < selections.value.length - 1 && _createVNode("span", {
273
- "class": "v-select__selection-comma"
274
- }, [_createTextVNode(",")])])]);
275
- })]);
276
- }
263
+ index,
264
+ props: slotProps
265
+ }) : _createVNode(VChip, slotProps, null)]
266
+ }) : slots.selection ? slots.selection({
267
+ item,
268
+ index
269
+ }) : _createVNode("span", {
270
+ "class": "v-select__selection-text"
271
+ }, [item.title, props.multiple && index < selections.value.length - 1 && _createVNode("span", {
272
+ "class": "v-select__selection-comma"
273
+ }, [_createTextVNode(",")])])]);
274
+ })])
277
275
  });
278
276
  });
279
277
  return forwardRefs({
@@ -1 +1 @@
1
- {"version":3,"file":"VSelect.mjs","names":["filterVTextFieldProps","makeVTextFieldProps","VCheckboxBtn","VChip","VDefaultsProvider","VDialogTransition","VList","VListItem","VMenu","VTextField","forwardRefs","IconValue","makeItemsProps","useItems","makeTransitionProps","useForm","useLocale","useProxiedModel","computed","mergeProps","ref","deepEqual","genericComponent","omit","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","menu","menuIcon","type","default","menuProps","Object","multiple","noDataText","String","openOnClear","valueComparator","Function","itemChildren","VSelect","name","props","modelValue","transition","component","emits","val","setup","slots","t","vTextFieldRef","items","transformIn","transformOut","model","v","transformed","form","selections","value","map","find","item","selected","selection","displayItems","filter","some","s","listRef","onClear","e","onClickControl","length","readonly","isReadonly","onKeydown","includes","key","preventDefault","focus","select","index","findIndex","splice","onBlur","$el","contains","relatedTarget","onFocusout","hasChips","chip","hasList","prepend","append","textFieldProps","join","externalValue","onClick","isSelected","undefined","onChipClose","stopPropagation","slotProps","closable","size","text","title"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { filterVTextFieldProps, makeVTextFieldProps } from '@/components/VTextField/VTextField'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDialogTransition } from '@/components/transitions'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useForm } from '@/composables/form'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, mergeProps, ref } from 'vue'\nimport { deepEqual, genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'v-select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const form = useForm()\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return items.value.filter(item => !selections.value.some(s => s === item))\n }\n return items.value\n })\n\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly || form?.isReadonly.value\n ) return\n\n menu.value = !menu.value\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly || form?.isReadonly.value) return\n\n if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n\n if (e.key === 'ArrowDown') {\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n listRef.value?.focus('prev')\n } else if (e.key === 'Home') {\n listRef.value?.focus('first')\n } else if (e.key === 'End') {\n listRef.value?.focus('last')\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value))\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n function onBlur (e: FocusEvent) {\n if (!listRef.value?.$el.contains(e.relatedTarget as HTMLElement)) {\n menu.value = false\n }\n }\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const hasList = !!((!props.hideNoData || displayItems.value.length) || slots.prepend || slots.append || slots['no-data'])\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n maxHeight={ 310 }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n { ...props.menuProps }\n >\n { hasList && (\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusout={ onFocusout }\n >\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { displayItems.value.map((item, index) => {\n if (slots.item) {\n return slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n })\n }\n\n return (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n }}\n </VListItem>\n )\n })}\n\n { slots['append-item']?.() }\n </VList>\n ) }\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-select__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSelect.mjs","names":["filterVTextFieldProps","makeVTextFieldProps","VCheckboxBtn","VChip","VDefaultsProvider","VDialogTransition","VList","VListItem","VMenu","VTextField","forwardRefs","IconValue","makeItemsProps","useItems","makeTransitionProps","useForm","useLocale","useProxiedModel","computed","mergeProps","ref","deepEqual","genericComponent","omit","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","menu","menuIcon","type","default","menuProps","Object","multiple","noDataText","String","openOnClear","valueComparator","Function","itemChildren","VSelect","name","props","modelValue","transition","component","emits","val","setup","slots","t","vTextFieldRef","vMenuRef","_menu","get","value","set","v","ΨopenChildren","items","transformIn","transformOut","model","transformed","form","selections","map","find","item","selected","selection","displayItems","filter","some","s","listRef","onClear","e","onMousedownControl","length","readonly","isReadonly","onKeydown","includes","key","preventDefault","focus","select","index","findIndex","splice","onBlur","$el","contains","relatedTarget","onFocusout","hasChips","chip","hasList","prepend","append","textFieldProps","join","externalValue","onClick","isSelected","undefined","onChipClose","stopPropagation","slotProps","closable","size","text","title"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { filterVTextFieldProps, makeVTextFieldProps } from '@/components/VTextField/VTextField'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDialogTransition } from '@/components/transitions'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useForm } from '@/composables/form'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, mergeProps, ref } from 'vue'\nimport { deepEqual, genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'v-select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const vMenuRef = ref<VMenu>()\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return\n _menu.value = v\n },\n })\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const form = useForm()\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return items.value.filter(item => !selections.value.some(s => s === item))\n }\n return items.value\n })\n\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onMousedownControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly || form?.isReadonly.value\n ) return\n\n menu.value = !menu.value\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly || form?.isReadonly.value) return\n\n if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n\n if (e.key === 'ArrowDown') {\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n listRef.value?.focus('prev')\n } else if (e.key === 'Home') {\n listRef.value?.focus('first')\n } else if (e.key === 'End') {\n listRef.value?.focus('last')\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value))\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n function onBlur (e: FocusEvent) {\n if (!listRef.value?.$el.contains(e.relatedTarget as HTMLElement)) {\n menu.value = false\n }\n }\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const hasList = !!((!props.hideNoData || displayItems.value.length) || slots.prepend || slots.append || slots['no-data'])\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n ref={ vMenuRef }\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n maxHeight={ 310 }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n { ...props.menuProps }\n >\n { hasList && (\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusout={ onFocusout }\n >\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { displayItems.value.map((item, index) => {\n if (slots.item) {\n return slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n })\n }\n\n return (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n }}\n </VListItem>\n )\n })}\n\n { slots['append-item']?.() }\n </VList>\n ) }\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-select__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":"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"}