vuetify 3.1.4 → 3.1.6

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 (474) hide show
  1. package/dist/json/attributes.json +2734 -2738
  2. package/dist/json/importMap.json +32 -32
  3. package/dist/json/tags.json +0 -1
  4. package/dist/json/web-types.json +9073 -6416
  5. package/dist/vuetify-labs.css +3119 -6004
  6. package/dist/vuetify-labs.d.ts +12865 -20825
  7. package/dist/vuetify-labs.esm.js +1674 -1914
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +1673 -1913
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +54 -2948
  12. package/dist/vuetify.d.ts +12215 -20183
  13. package/dist/vuetify.esm.js +1495 -1736
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +1494 -1735
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +1134 -1353
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.ts +9 -9
  21. package/lib/blueprints/md1.d.ts +9 -9
  22. package/lib/blueprints/md2.d.ts +9 -9
  23. package/lib/blueprints/md3.d.ts +9 -9
  24. package/lib/blueprints/md3.mjs.map +1 -1
  25. package/lib/components/VAlert/VAlert.mjs +5 -6
  26. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  27. package/lib/components/VAlert/index.d.ts +135 -157
  28. package/lib/components/VApp/VApp.mjs +9 -12
  29. package/lib/components/VApp/VApp.mjs.map +1 -1
  30. package/lib/components/VApp/index.d.ts +27 -13
  31. package/lib/components/VAppBar/VAppBar.mjs +9 -5
  32. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  33. package/lib/components/VAppBar/VAppBarNavIcon.mjs +2 -2
  34. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  35. package/lib/components/VAppBar/VAppBarTitle.mjs +2 -2
  36. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  37. package/lib/components/VAppBar/index.d.ts +169 -350
  38. package/lib/components/VAutocomplete/VAutocomplete.mjs +100 -104
  39. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  40. package/lib/components/VAutocomplete/index.d.ts +494 -636
  41. package/lib/components/VAvatar/VAvatar.mjs +19 -22
  42. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  43. package/lib/components/VAvatar/index.d.ts +46 -66
  44. package/lib/components/VBadge/VBadge.mjs +7 -5
  45. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  46. package/lib/components/VBadge/index.d.ts +74 -100
  47. package/lib/components/VBanner/VBanner.mjs +3 -4
  48. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  49. package/lib/components/VBanner/VBannerActions.mjs +5 -8
  50. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  51. package/lib/components/VBanner/index.d.ts +134 -98
  52. package/lib/components/VBottomNavigation/VBottomNavigation.css +2 -1
  53. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +8 -4
  54. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  55. package/lib/components/VBottomNavigation/VBottomNavigation.sass +2 -1
  56. package/lib/components/VBottomNavigation/_variables.scss +1 -1
  57. package/lib/components/VBottomNavigation/index.d.ts +67 -131
  58. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +9 -16
  59. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  60. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +5 -8
  61. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  62. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +4 -8
  63. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  64. package/lib/components/VBreadcrumbs/index.d.ts +87 -61
  65. package/lib/components/VBtn/VBtn.mjs +14 -17
  66. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  67. package/lib/components/VBtn/index.d.ts +118 -179
  68. package/lib/components/VBtnGroup/VBtnGroup.mjs +5 -2
  69. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  70. package/lib/components/VBtnGroup/index.d.ts +42 -57
  71. package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -2
  72. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  73. package/lib/components/VBtnToggle/index.d.ts +60 -247
  74. package/lib/components/VCalendar/mixins/mouse.mjs +2 -3
  75. package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
  76. package/lib/components/VCard/VCard.mjs +5 -6
  77. package/lib/components/VCard/VCard.mjs.map +1 -1
  78. package/lib/components/VCard/VCardActions.mjs +5 -8
  79. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  80. package/lib/components/VCard/VCardItem.mjs +7 -8
  81. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  82. package/lib/components/VCard/index.d.ts +286 -186
  83. package/lib/components/VCarousel/VCarousel.mjs +2 -2
  84. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  85. package/lib/components/VCarousel/VCarouselItem.mjs +2 -2
  86. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  87. package/lib/components/VCarousel/index.d.ts +238 -61
  88. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  89. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  90. package/lib/components/VCheckbox/VCheckboxBtn.mjs +2 -2
  91. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  92. package/lib/components/VCheckbox/index.d.ts +277 -254
  93. package/lib/components/VChip/VChip.mjs +15 -14
  94. package/lib/components/VChip/VChip.mjs.map +1 -1
  95. package/lib/components/VChip/index.d.ts +118 -168
  96. package/lib/components/VChipGroup/VChipGroup.css +1 -0
  97. package/lib/components/VChipGroup/VChipGroup.mjs +15 -18
  98. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  99. package/lib/components/VChipGroup/VChipGroup.sass +1 -0
  100. package/lib/components/VChipGroup/index.d.ts +49 -68
  101. package/lib/components/VCode/index.d.ts +21 -9
  102. package/lib/components/VColorPicker/VColorPicker.mjs +9 -1
  103. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  104. package/lib/components/VColorPicker/VColorPickerCanvas.css +2 -1
  105. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +40 -27
  106. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  107. package/lib/components/VColorPicker/VColorPickerCanvas.sass +2 -1
  108. package/lib/components/VColorPicker/VColorPickerEdit.mjs +16 -20
  109. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  110. package/lib/components/VColorPicker/VColorPickerPreview.mjs +43 -46
  111. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  112. package/lib/components/VColorPicker/index.d.ts +1 -1
  113. package/lib/components/VColorPicker/util/index.mjs +3 -7
  114. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  115. package/lib/components/VCombobox/VCombobox.mjs +104 -113
  116. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  117. package/lib/components/VCombobox/index.d.ts +496 -638
  118. package/lib/components/VCounter/VCounter.mjs +2 -2
  119. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  120. package/lib/components/VCounter/index.d.ts +139 -197
  121. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +4 -9
  122. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  123. package/lib/components/VDefaultsProvider/index.d.ts +33 -14
  124. package/lib/components/VDialog/VDialog.mjs +6 -9
  125. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  126. package/lib/components/VDialog/index.d.ts +430 -1610
  127. package/lib/components/VDivider/VDivider.mjs +2 -2
  128. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  129. package/lib/components/VDivider/index.d.ts +35 -15
  130. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +4 -5
  131. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  132. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +11 -14
  133. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  134. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +19 -22
  135. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  136. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +2 -2
  137. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  138. package/lib/components/VExpansionPanel/index.d.ts +180 -158
  139. package/lib/components/VField/VField.mjs +3 -6
  140. package/lib/components/VField/VField.mjs.map +1 -1
  141. package/lib/components/VField/VFieldLabel.mjs +2 -2
  142. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  143. package/lib/components/VField/index.d.ts +46 -34
  144. package/lib/components/VFileInput/VFileInput.mjs +16 -18
  145. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  146. package/lib/components/VFileInput/index.d.ts +330 -355
  147. package/lib/components/VFooter/VFooter.mjs +2 -2
  148. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  149. package/lib/components/VFooter/index.d.ts +46 -66
  150. package/lib/components/VForm/VForm.mjs +10 -14
  151. package/lib/components/VForm/VForm.mjs.map +1 -1
  152. package/lib/components/VForm/index.d.ts +29 -23
  153. package/lib/components/VGrid/VCol.mjs +5 -8
  154. package/lib/components/VGrid/VCol.mjs.map +1 -1
  155. package/lib/components/VGrid/VContainer.mjs +2 -2
  156. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  157. package/lib/components/VGrid/VGrid.css +0 -125
  158. package/lib/components/VGrid/VRow.mjs +5 -8
  159. package/lib/components/VGrid/VRow.mjs.map +1 -1
  160. package/lib/components/VGrid/index.d.ts +112 -121
  161. package/lib/components/VHover/VHover.mjs +9 -12
  162. package/lib/components/VHover/VHover.mjs.map +1 -1
  163. package/lib/components/VHover/index.d.ts +53 -15
  164. package/lib/components/VIcon/VIcon.mjs +22 -26
  165. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  166. package/lib/components/VIcon/index.d.ts +68 -56
  167. package/lib/components/VImg/VImg.mjs +7 -11
  168. package/lib/components/VImg/VImg.mjs.map +1 -1
  169. package/lib/components/VImg/index.d.ts +67 -58
  170. package/lib/components/VInput/VInput.mjs +5 -6
  171. package/lib/components/VInput/VInput.mjs.map +1 -1
  172. package/lib/components/VInput/index.d.ts +94 -283
  173. package/lib/components/VItemGroup/VItem.mjs +8 -11
  174. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  175. package/lib/components/VItemGroup/VItemGroup.mjs +13 -16
  176. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  177. package/lib/components/VItemGroup/index.d.ts +76 -149
  178. package/lib/components/VKbd/index.d.ts +21 -9
  179. package/lib/components/VLabel/VLabel.mjs +7 -10
  180. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  181. package/lib/components/VLabel/index.d.ts +29 -9
  182. package/lib/components/VLayout/VLayout.mjs +9 -12
  183. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  184. package/lib/components/VLayout/VLayoutItem.mjs +6 -9
  185. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  186. package/lib/components/VLayout/index.d.ts +60 -43
  187. package/lib/components/VLazy/VLazy.mjs +12 -15
  188. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  189. package/lib/components/VLazy/index.d.ts +48 -71
  190. package/lib/components/VList/VList.mjs +4 -8
  191. package/lib/components/VList/VList.mjs.map +1 -1
  192. package/lib/components/VList/VListChildren.mjs +59 -77
  193. package/lib/components/VList/VListChildren.mjs.map +1 -1
  194. package/lib/components/VList/VListGroup.mjs +33 -39
  195. package/lib/components/VList/VListGroup.mjs.map +1 -1
  196. package/lib/components/VList/VListItem.css +2 -2
  197. package/lib/components/VList/VListItem.mjs +10 -18
  198. package/lib/components/VList/VListItem.mjs.map +1 -1
  199. package/lib/components/VList/VListItem.sass +0 -2
  200. package/lib/components/VList/VListItemAction.mjs +2 -2
  201. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  202. package/lib/components/VList/VListItemMedia.mjs +2 -2
  203. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  204. package/lib/components/VList/VListSubheader.mjs +3 -4
  205. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  206. package/lib/components/VList/index.d.ts +418 -686
  207. package/lib/components/VList/list.mjs +1 -1
  208. package/lib/components/VList/list.mjs.map +1 -1
  209. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -8
  210. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  211. package/lib/components/VLocaleProvider/index.d.ts +28 -16
  212. package/lib/components/VMain/VMain.mjs +12 -15
  213. package/lib/components/VMain/VMain.mjs.map +1 -1
  214. package/lib/components/VMain/index.d.ts +23 -17
  215. package/lib/components/VMenu/VMenu.mjs +10 -10
  216. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  217. package/lib/components/VMenu/index.d.ts +428 -1641
  218. package/lib/components/VMessages/VMessages.mjs +2 -2
  219. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  220. package/lib/components/VMessages/index.d.ts +144 -204
  221. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +6 -7
  222. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  223. package/lib/components/VNavigationDrawer/index.d.ts +92 -124
  224. package/lib/components/VNoSsr/VNoSsr.mjs +1 -4
  225. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  226. package/lib/components/VNoSsr/index.d.ts +20 -4
  227. package/lib/components/VOtpInput/VOtpInput.mjs +5 -6
  228. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  229. package/lib/components/VOverlay/VOverlay.mjs +44 -47
  230. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  231. package/lib/components/VOverlay/index.d.ts +150 -468
  232. package/lib/components/VOverlay/locationStrategies.mjs +3 -6
  233. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  234. package/lib/components/VOverlay/scrollStrategies.mjs +8 -13
  235. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  236. package/lib/components/VOverlay/useActivator.mjs +4 -7
  237. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  238. package/lib/components/VPagination/VPagination.mjs +4 -5
  239. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  240. package/lib/components/VPagination/index.d.ts +107 -207
  241. package/lib/components/VParallax/VParallax.mjs +12 -15
  242. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  243. package/lib/components/VParallax/index.d.ts +39 -9
  244. package/lib/components/VProgressCircular/VProgressCircular.mjs +2 -2
  245. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  246. package/lib/components/VProgressCircular/index.d.ts +41 -58
  247. package/lib/components/VProgressLinear/VProgressLinear.mjs +2 -2
  248. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  249. package/lib/components/VProgressLinear/index.d.ts +91 -95
  250. package/lib/components/VRadio/VRadio.mjs +2 -2
  251. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  252. package/lib/components/VRadio/index.d.ts +108 -85
  253. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
  254. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  255. package/lib/components/VRadioGroup/index.d.ts +164 -147
  256. package/lib/components/VRangeSlider/VRangeSlider.mjs +21 -31
  257. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  258. package/lib/components/VRangeSlider/index.d.ts +154 -210
  259. package/lib/components/VRating/VRating.mjs +28 -34
  260. package/lib/components/VRating/VRating.mjs.map +1 -1
  261. package/lib/components/VRating/index.d.ts +77 -311
  262. package/lib/components/VResponsive/VResponsive.mjs +11 -14
  263. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  264. package/lib/components/VResponsive/index.d.ts +44 -20
  265. package/lib/components/VSelect/VSelect.mjs +100 -102
  266. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  267. package/lib/components/VSelect/index.d.ts +729 -673
  268. package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -4
  269. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  270. package/lib/components/VSelectionControl/index.d.ts +31 -19
  271. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +8 -11
  272. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  273. package/lib/components/VSelectionControlGroup/index.d.ts +58 -70
  274. package/lib/components/VSheet/VSheet.mjs +23 -13
  275. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  276. package/lib/components/VSheet/index.d.ts +52 -56
  277. package/lib/components/VSlideGroup/VSlideGroup.mjs +51 -60
  278. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  279. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +6 -9
  280. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  281. package/lib/components/VSlideGroup/index.d.ts +144 -366
  282. package/lib/components/VSlider/VSlider.mjs +8 -14
  283. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  284. package/lib/components/VSlider/VSliderThumb.css +0 -1
  285. package/lib/components/VSlider/VSliderThumb.mjs +4 -5
  286. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  287. package/lib/components/VSlider/VSliderTrack.mjs +4 -5
  288. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  289. package/lib/components/VSlider/index.d.ts +151 -207
  290. package/lib/components/VSlider/slider.mjs +3 -6
  291. package/lib/components/VSlider/slider.mjs.map +1 -1
  292. package/lib/components/VSnackbar/VSnackbar.mjs +1 -1
  293. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  294. package/lib/components/VSnackbar/index.d.ts +358 -1519
  295. package/lib/components/VSwitch/VSwitch.mjs +3 -4
  296. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  297. package/lib/components/VSwitch/index.d.ts +180 -151
  298. package/lib/components/VSystemBar/VSystemBar.css +5 -1
  299. package/lib/components/VSystemBar/VSystemBar.mjs +8 -4
  300. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  301. package/lib/components/VSystemBar/VSystemBar.sass +5 -1
  302. package/lib/components/VSystemBar/_variables.scss +4 -1
  303. package/lib/components/VSystemBar/index.d.ts +43 -51
  304. package/lib/components/VTable/VTable.mjs +19 -22
  305. package/lib/components/VTable/VTable.mjs.map +1 -1
  306. package/lib/components/VTable/index.d.ts +54 -30
  307. package/lib/components/VTabs/VTab.mjs +3 -4
  308. package/lib/components/VTabs/VTab.mjs.map +1 -1
  309. package/lib/components/VTabs/VTabs.mjs +2 -2
  310. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  311. package/lib/components/VTabs/index.d.ts +122 -150
  312. package/lib/components/VTextField/VTextField.mjs +16 -19
  313. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  314. package/lib/components/VTextField/index.d.ts +331 -1489
  315. package/lib/components/VTextarea/VTextarea.mjs +17 -19
  316. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  317. package/lib/components/VTextarea/index.d.ts +320 -334
  318. package/lib/components/VThemeProvider/VThemeProvider.mjs +4 -5
  319. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  320. package/lib/components/VThemeProvider/index.d.ts +27 -13
  321. package/lib/components/VTimeline/VTimeline.mjs +2 -2
  322. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  323. package/lib/components/VTimeline/VTimelineDivider.mjs +20 -23
  324. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  325. package/lib/components/VTimeline/VTimelineItem.mjs +33 -34
  326. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  327. package/lib/components/VTimeline/index.d.ts +123 -135
  328. package/lib/components/VToolbar/VToolbar.css +1 -0
  329. package/lib/components/VToolbar/VToolbar.mjs +7 -9
  330. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  331. package/lib/components/VToolbar/VToolbar.sass +1 -0
  332. package/lib/components/VToolbar/VToolbarItems.mjs +5 -8
  333. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  334. package/lib/components/VToolbar/VToolbarTitle.mjs +1 -2
  335. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  336. package/lib/components/VToolbar/index.d.ts +146 -351
  337. package/lib/components/VTooltip/VTooltip.mjs +1 -2
  338. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  339. package/lib/components/VTooltip/index.d.ts +361 -1619
  340. package/lib/components/VValidation/VValidation.mjs +3 -6
  341. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  342. package/lib/components/VValidation/index.d.ts +48 -46
  343. package/lib/components/VWindow/VWindow.mjs +19 -22
  344. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  345. package/lib/components/VWindow/VWindowItem.mjs +10 -14
  346. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  347. package/lib/components/VWindow/index.d.ts +152 -284
  348. package/lib/components/index.d.ts +13684 -21652
  349. package/lib/components/transitions/createTransition.mjs +4 -4
  350. package/lib/components/transitions/createTransition.mjs.map +1 -1
  351. package/lib/components/transitions/dialog-transition.mjs +8 -8
  352. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  353. package/lib/components/transitions/index.d.ts +477 -342
  354. package/lib/composables/defaults.mjs +6 -4
  355. package/lib/composables/defaults.mjs.map +1 -1
  356. package/lib/composables/delay.mjs +1 -1
  357. package/lib/composables/delay.mjs.map +1 -1
  358. package/lib/composables/filter.mjs +11 -12
  359. package/lib/composables/filter.mjs.map +1 -1
  360. package/lib/composables/group.mjs +2 -2
  361. package/lib/composables/group.mjs.map +1 -1
  362. package/lib/composables/icons.mjs +4 -6
  363. package/lib/composables/icons.mjs.map +1 -1
  364. package/lib/composables/intersectionObserver.mjs +1 -1
  365. package/lib/composables/intersectionObserver.mjs.map +1 -1
  366. package/lib/composables/layout.mjs +2 -5
  367. package/lib/composables/layout.mjs.map +1 -1
  368. package/lib/composables/loader.mjs +2 -3
  369. package/lib/composables/loader.mjs.map +1 -1
  370. package/lib/composables/locale.mjs +2 -2
  371. package/lib/composables/locale.mjs.map +1 -1
  372. package/lib/composables/mutationObserver.mjs +8 -8
  373. package/lib/composables/mutationObserver.mjs.map +1 -1
  374. package/lib/composables/nested/nested.mjs +2 -2
  375. package/lib/composables/nested/nested.mjs.map +1 -1
  376. package/lib/composables/nested/selectStrategies.mjs +8 -2
  377. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  378. package/lib/composables/proxiedModel.mjs +8 -9
  379. package/lib/composables/proxiedModel.mjs.map +1 -1
  380. package/lib/composables/resizeObserver.mjs +1 -1
  381. package/lib/composables/resizeObserver.mjs.map +1 -1
  382. package/lib/composables/router.mjs +12 -21
  383. package/lib/composables/router.mjs.map +1 -1
  384. package/lib/composables/scroll.mjs +2 -4
  385. package/lib/composables/scroll.mjs.map +1 -1
  386. package/lib/composables/selectLink.mjs +1 -4
  387. package/lib/composables/selectLink.mjs.map +1 -1
  388. package/lib/composables/stack.mjs +6 -8
  389. package/lib/composables/stack.mjs.map +1 -1
  390. package/lib/composables/teleport.mjs +1 -1
  391. package/lib/composables/teleport.mjs.map +1 -1
  392. package/lib/composables/theme.mjs +23 -16
  393. package/lib/composables/theme.mjs.map +1 -1
  394. package/lib/composables/toggleScope.mjs +3 -6
  395. package/lib/composables/toggleScope.mjs.map +1 -1
  396. package/lib/composables/touch.mjs +1 -2
  397. package/lib/composables/touch.mjs.map +1 -1
  398. package/lib/composables/validation.mjs +7 -7
  399. package/lib/composables/validation.mjs.map +1 -1
  400. package/lib/directives/click-outside/index.mjs +2 -3
  401. package/lib/directives/click-outside/index.mjs.map +1 -1
  402. package/lib/directives/index.d.ts +1 -1
  403. package/lib/directives/intersect/index.mjs +2 -4
  404. package/lib/directives/intersect/index.mjs.map +1 -1
  405. package/lib/directives/mutate/index.mjs +7 -8
  406. package/lib/directives/mutate/index.mjs.map +1 -1
  407. package/lib/directives/resize/index.mjs +3 -5
  408. package/lib/directives/resize/index.mjs.map +1 -1
  409. package/lib/directives/ripple/index.mjs +8 -13
  410. package/lib/directives/ripple/index.mjs.map +1 -1
  411. package/lib/directives/scroll/index.mjs +1 -2
  412. package/lib/directives/scroll/index.mjs.map +1 -1
  413. package/lib/directives/touch/index.mjs +9 -14
  414. package/lib/directives/touch/index.mjs.map +1 -1
  415. package/lib/entry-bundler.mjs +1 -1
  416. package/lib/framework.mjs +2 -3
  417. package/lib/framework.mjs.map +1 -1
  418. package/lib/iconsets/fa-svg.d.ts +2 -2
  419. package/lib/iconsets/fa.d.ts +2 -2
  420. package/lib/iconsets/fa4.d.ts +2 -2
  421. package/lib/iconsets/md.d.ts +2 -2
  422. package/lib/iconsets/mdi-svg.d.ts +2 -2
  423. package/lib/iconsets/mdi.d.ts +2 -2
  424. package/lib/index.d.ts +18 -18
  425. package/lib/labs/VDataTable/VDataTable.mjs +11 -14
  426. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  427. package/lib/labs/VDataTable/VDataTableColumn.mjs +1 -2
  428. package/lib/labs/VDataTable/VDataTableColumn.mjs.map +1 -1
  429. package/lib/labs/VDataTable/VDataTableFooter.css +9 -0
  430. package/lib/labs/VDataTable/VDataTableFooter.mjs +80 -45
  431. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  432. package/lib/labs/VDataTable/VDataTableFooter.sass +7 -0
  433. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +6 -8
  434. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
  435. package/lib/labs/VDataTable/VDataTableHeaders.mjs +3 -4
  436. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  437. package/lib/labs/VDataTable/VDataTableRow.mjs +2 -4
  438. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  439. package/lib/labs/VDataTable/VDataTableRows.mjs +45 -49
  440. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  441. package/lib/labs/VDataTable/VDataTableServer.mjs +17 -20
  442. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  443. package/lib/labs/VDataTable/VDataTableVirtual.mjs +2 -2
  444. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  445. package/lib/labs/VDataTable/composables/headers.mjs +3 -4
  446. package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
  447. package/lib/labs/VDataTable/composables/paginate.mjs +1 -6
  448. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  449. package/lib/labs/VDataTable/composables/sort.mjs +1 -1
  450. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
  451. package/lib/labs/VDataTable/index.d.ts +583 -575
  452. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs +14 -18
  453. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  454. package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs +7 -13
  455. package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  456. package/lib/labs/VVirtualScroll/index.d.ts +18 -18
  457. package/lib/labs/components.d.ts +601 -593
  458. package/lib/locale/adapters/vue-i18n.d.ts +1 -1
  459. package/lib/locale/adapters/vuetify.mjs +3 -3
  460. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  461. package/lib/styles/main.css +40 -2816
  462. package/lib/util/colorUtils.mjs +4 -5
  463. package/lib/util/colorUtils.mjs.map +1 -1
  464. package/lib/util/console.mjs +1 -1
  465. package/lib/util/console.mjs.map +1 -1
  466. package/lib/util/createSimpleFunctional.mjs +5 -8
  467. package/lib/util/createSimpleFunctional.mjs.map +1 -1
  468. package/lib/util/defineComponent.mjs +6 -8
  469. package/lib/util/defineComponent.mjs.map +1 -1
  470. package/lib/util/getCurrentInstance.mjs +1 -1
  471. package/lib/util/getCurrentInstance.mjs.map +1 -1
  472. package/lib/util/helpers.mjs +2 -3
  473. package/lib/util/helpers.mjs.map +1 -1
  474. package/package.json +19 -20
@@ -1,26 +1,36 @@
1
1
  import * as vue from 'vue';
2
2
  import { PropType, JSXComponent } from 'vue';
3
3
 
4
- declare type IconValue = string | JSXComponent;
4
+ type IconValue = string | JSXComponent;
5
5
  declare const IconValue: PropType<IconValue>;
6
6
  declare const VComponentIcon: vue.DefineComponent<{
7
- icon: {
8
- type: PropType<IconValue>;
9
- };
10
- tag: {
11
- type: StringConstructor;
12
- required: true;
13
- };
14
- }, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
15
- icon: {
16
- type: PropType<IconValue>;
17
- };
18
- tag: {
19
- type: StringConstructor;
20
- required: true;
21
- };
22
- }>>, {}>;
23
- declare type VComponentIcon = InstanceType<typeof VComponentIcon>;
7
+ tag: string;
8
+ } & {
9
+ icon?: IconValue | undefined;
10
+ } & {
11
+ $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
12
+ default?: (() => vue.VNodeChild) | undefined;
13
+ };
14
+ 'v-slots'?: {
15
+ default?: false | (() => vue.VNodeChild) | undefined;
16
+ } | undefined;
17
+ } & {
18
+ "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
19
+ }, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, {
20
+ tag: string;
21
+ } & {
22
+ icon?: IconValue | undefined;
23
+ } & {
24
+ $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
25
+ default?: (() => vue.VNodeChild) | undefined;
26
+ };
27
+ 'v-slots'?: {
28
+ default?: false | (() => vue.VNodeChild) | undefined;
29
+ } | undefined;
30
+ } & {
31
+ "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
32
+ }, {}>;
33
+ type VComponentIcon = InstanceType<typeof VComponentIcon>;
24
34
  declare const VSvgIcon: vue.DefineComponent<{
25
35
  icon: {
26
36
  type: PropType<IconValue>;
@@ -38,7 +48,7 @@ declare const VSvgIcon: vue.DefineComponent<{
38
48
  required: true;
39
49
  };
40
50
  }>>, {}>;
41
- declare type VSvgIcon = InstanceType<typeof VSvgIcon>;
51
+ type VSvgIcon = InstanceType<typeof VSvgIcon>;
42
52
  declare const VLigatureIcon: vue.DefineComponent<{
43
53
  icon: {
44
54
  type: PropType<IconValue>;
@@ -56,7 +66,7 @@ declare const VLigatureIcon: vue.DefineComponent<{
56
66
  required: true;
57
67
  };
58
68
  }>>, {}>;
59
- declare type VLigatureIcon = InstanceType<typeof VLigatureIcon>;
69
+ type VLigatureIcon = InstanceType<typeof VLigatureIcon>;
60
70
  declare const VClassIcon: vue.DefineComponent<{
61
71
  icon: {
62
72
  type: PropType<IconValue>;
@@ -74,48 +84,50 @@ declare const VClassIcon: vue.DefineComponent<{
74
84
  required: true;
75
85
  };
76
86
  }>>, {}>;
77
- declare type VClassIcon = InstanceType<typeof VClassIcon>;
87
+ type VClassIcon = InstanceType<typeof VClassIcon>;
78
88
 
79
89
  declare const VIcon: vue.DefineComponent<{
80
- theme: StringConstructor;
81
- tag: Omit<{
82
- type: StringConstructor;
83
- default: string;
84
- }, "type" | "default"> & {
85
- type: vue.PropType<string>;
86
- default: string;
87
- };
88
- size: {
89
- type: (StringConstructor | NumberConstructor)[];
90
- default: string;
91
- };
92
- color: StringConstructor;
93
- start: BooleanConstructor;
94
- end: BooleanConstructor;
95
- icon: vue.PropType<IconValue>;
96
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
97
- theme: StringConstructor;
98
- tag: Omit<{
99
- type: StringConstructor;
100
- default: string;
101
- }, "type" | "default"> & {
102
- type: vue.PropType<string>;
103
- default: string;
104
- };
105
- size: {
106
- type: (StringConstructor | NumberConstructor)[];
107
- default: string;
108
- };
109
- color: StringConstructor;
110
- start: BooleanConstructor;
111
- end: BooleanConstructor;
112
- icon: vue.PropType<IconValue>;
113
- }>>, {
90
+ end: boolean;
91
+ start: boolean;
92
+ size: string | number;
93
+ tag: string;
94
+ } & {
95
+ color?: string | undefined;
96
+ icon?: IconValue | undefined;
97
+ theme?: string | undefined;
98
+ } & {
99
+ $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
100
+ default?: (() => vue.VNodeChild) | undefined;
101
+ };
102
+ 'v-slots'?: {
103
+ default?: false | (() => vue.VNodeChild) | undefined;
104
+ } | undefined;
105
+ } & {
106
+ "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
107
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, {
108
+ end: boolean;
109
+ start: boolean;
110
+ size: string | number;
111
+ tag: string;
112
+ } & {
113
+ color?: string | undefined;
114
+ icon?: IconValue | undefined;
115
+ theme?: string | undefined;
116
+ } & {
117
+ $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
118
+ default?: (() => vue.VNodeChild) | undefined;
119
+ };
120
+ 'v-slots'?: {
121
+ default?: false | (() => vue.VNodeChild) | undefined;
122
+ } | undefined;
123
+ } & {
124
+ "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
125
+ }, {
114
126
  end: boolean;
115
127
  start: boolean;
116
128
  size: string | number;
117
129
  tag: string;
118
130
  }>;
119
- declare type VIcon = InstanceType<typeof VIcon>;
131
+ type VIcon = InstanceType<typeof VIcon>;
120
132
 
121
133
  export { VClassIcon, VComponentIcon, VIcon, VLigatureIcon, VSvgIcon };
@@ -6,8 +6,8 @@ import { VResponsive } from "../VResponsive/index.mjs"; // Directives
6
6
  import intersect from "../../directives/intersect/index.mjs"; // Composables
7
7
  import { makeTransitionProps, MaybeTransition } from "../../composables/transition.mjs"; // Utilities
8
8
  import { computed, nextTick, onBeforeMount, ref, vShow, watch, withDirectives } from 'vue';
9
- import { convertToUnit, defineComponent, SUPPORTS_INTERSECTION, useRender } from "../../util/index.mjs"; // Types
10
- export const VImg = defineComponent({
9
+ import { convertToUnit, genericComponent, SUPPORTS_INTERSECTION, useRender } from "../../util/index.mjs"; // Types
10
+ export const VImg = genericComponent()({
11
11
  name: 'VImg',
12
12
  directives: {
13
13
  intersect
@@ -92,9 +92,8 @@ export const VImg = defineComponent({
92
92
  }
93
93
  if (!normalisedSrc.value.src) return;
94
94
  nextTick(() => {
95
- var _image$value, _image$value2;
96
- emit('loadstart', ((_image$value = image.value) == null ? void 0 : _image$value.currentSrc) || normalisedSrc.value.src);
97
- if ((_image$value2 = image.value) != null && _image$value2.complete) {
95
+ emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src);
96
+ if (image.value?.complete) {
98
97
  if (!image.value.naturalWidth) {
99
98
  onError();
100
99
  }
@@ -108,15 +107,13 @@ export const VImg = defineComponent({
108
107
  });
109
108
  }
110
109
  function onLoad() {
111
- var _image$value3;
112
110
  getSrc();
113
111
  state.value = 'loaded';
114
- emit('load', ((_image$value3 = image.value) == null ? void 0 : _image$value3.currentSrc) || normalisedSrc.value.src);
112
+ emit('load', image.value?.currentSrc || normalisedSrc.value.src);
115
113
  }
116
114
  function onError() {
117
- var _image$value4;
118
115
  state.value = 'error';
119
- emit('error', ((_image$value4 = image.value) == null ? void 0 : _image$value4.currentSrc) || normalisedSrc.value.src);
116
+ emit('error', image.value?.currentSrc || normalisedSrc.value.src);
120
117
  }
121
118
  function getSrc() {
122
119
  const img = image.value;
@@ -148,7 +145,6 @@ export const VImg = defineComponent({
148
145
  'v-img__img--contain': !props.cover
149
146
  }));
150
147
  const __image = () => {
151
- var _slots$sources;
152
148
  if (!normalisedSrc.value.src || state.value === 'idle') return null;
153
149
  const img = _createVNode("img", {
154
150
  "class": ['v-img__img', containClasses.value],
@@ -160,7 +156,7 @@ export const VImg = defineComponent({
160
156
  "onLoad": onLoad,
161
157
  "onError": onError
162
158
  }, null);
163
- const sources = (_slots$sources = slots.sources) == null ? void 0 : _slots$sources.call(slots);
159
+ const sources = slots.sources?.();
164
160
  return _createVNode(MaybeTransition, {
165
161
  "transition": props.transition,
166
162
  "appear": true
@@ -1 +1 @@
1
- {"version":3,"file":"VImg.mjs","names":["VResponsive","intersect","makeTransitionProps","MaybeTransition","computed","nextTick","onBeforeMount","ref","vShow","watch","withDirectives","convertToUnit","defineComponent","SUPPORTS_INTERSECTION","useRender","VImg","name","directives","props","aspectRatio","String","Number","alt","cover","Boolean","eager","gradient","lazySrc","options","type","Object","default","root","undefined","rootMargin","threshold","sizes","src","srcset","width","emits","loadstart","event","load","error","setup","emit","slots","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","value","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","complete","onError","onLoad","getSrc","img","timer","timeout","poll","clearTimeout","imgHeight","imgWidth","window","setTimeout","endsWith","startsWith","containClasses","__image","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","additional","handler"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["import './VImg.sass'\n\n// Components\nimport { VResponsive } from '@/components/VResponsive'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Composables\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n ref,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n defineComponent,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport const VImg = defineComponent({\n name: 'VImg',\n\n directives: { intersect },\n\n props: {\n aspectRatio: [String, Number],\n alt: String,\n cover: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n srcset: String,\n width: [String, Number],\n\n ...makeTransitionProps(),\n },\n\n emits: {\n loadstart: (event: string | undefined) => true,\n load: (event: string | undefined) => true,\n error: (event: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const currentSrc = ref('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = ref<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = ref<number>()\n const naturalHeight = ref<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n }\n\n function onLoad () {\n getSrc()\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n <img\n class={['v-img__img', containClasses.value]}\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt=\"\"\n sizes={ props.sizes }\n ref={ image }\n onLoad={ onLoad }\n onError={ onError }\n />\n )\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n }\n\n const __preloadImage = () => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n src={ normalisedSrc.value.lazySrc }\n alt=\"\"\n />\n )}\n </MaybeTransition>\n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n }\n\n const isBooted = ref(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n ]}\n style={{ width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) }}\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n >{{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n </>\n ),\n default: slots.default,\n }}</VResponsive>\n ))\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VImg.mjs","names":["VResponsive","intersect","makeTransitionProps","MaybeTransition","computed","nextTick","onBeforeMount","ref","vShow","watch","withDirectives","convertToUnit","genericComponent","SUPPORTS_INTERSECTION","useRender","VImg","name","directives","props","aspectRatio","String","Number","alt","cover","Boolean","eager","gradient","lazySrc","options","type","Object","default","root","undefined","rootMargin","threshold","sizes","src","srcset","width","emits","loadstart","event","load","error","setup","emit","slots","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","value","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","complete","onError","onLoad","getSrc","img","timer","timeout","poll","clearTimeout","imgHeight","imgWidth","window","setTimeout","endsWith","startsWith","containClasses","__image","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","additional","handler"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["import './VImg.sass'\n\n// Components\nimport { VResponsive } from '@/components/VResponsive'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Composables\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n ref,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: []\n placeholder: []\n error: []\n sources: []\n}\n\nexport const VImg = genericComponent<VImgSlots>()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: {\n aspectRatio: [String, Number],\n alt: String,\n cover: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n srcset: String,\n width: [String, Number],\n\n ...makeTransitionProps(),\n },\n\n emits: {\n loadstart: (event: string | undefined) => true,\n load: (event: string | undefined) => true,\n error: (event: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const currentSrc = ref('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = ref<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = ref<number>()\n const naturalHeight = ref<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n }\n\n function onLoad () {\n getSrc()\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n <img\n class={['v-img__img', containClasses.value]}\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt=\"\"\n sizes={ props.sizes }\n ref={ image }\n onLoad={ onLoad }\n onError={ onError }\n />\n )\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n }\n\n const __preloadImage = () => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n src={ normalisedSrc.value.lazySrc }\n alt=\"\"\n />\n )}\n </MaybeTransition>\n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n }\n\n const isBooted = ref(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n ]}\n style={{ width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) }}\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n >{{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n </>\n ),\n default: slots.default,\n }}</VResponsive>\n ))\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import * as vue from 'vue';
2
- import { PropType } from 'vue';
3
2
 
4
3
  interface srcObject {
5
4
  src?: string;
@@ -8,34 +7,39 @@ interface srcObject {
8
7
  aspect: number;
9
8
  }
10
9
  declare const VImg: vue.DefineComponent<{
11
- transition: {
12
- type: PropType<string | boolean | (vue.TransitionProps & {
13
- component?: vue.Component<any, any, any, vue.ComputedOptions, vue.MethodOptions> | undefined;
14
- })>;
15
- default: string;
16
- validator: (val: unknown) => boolean;
17
- };
18
- aspectRatio: (StringConstructor | NumberConstructor)[];
19
- alt: StringConstructor;
20
- cover: BooleanConstructor;
21
- eager: BooleanConstructor;
22
- gradient: StringConstructor;
23
- lazySrc: StringConstructor;
24
- options: {
25
- type: PropType<IntersectionObserverInit>;
26
- default: () => {
27
- root: undefined;
28
- rootMargin: undefined;
29
- threshold: undefined;
30
- };
31
- };
32
- sizes: StringConstructor;
33
- src: {
34
- type: PropType<string | srcObject>;
35
- default: string;
10
+ transition: string | boolean | (vue.TransitionProps & {
11
+ component?: vue.Component<any, any, any, vue.ComputedOptions, vue.MethodOptions> | undefined;
12
+ });
13
+ eager: boolean;
14
+ options: IntersectionObserverInit;
15
+ cover: boolean;
16
+ src: string | srcObject;
17
+ } & {
18
+ width?: string | number | undefined;
19
+ aspectRatio?: string | number | undefined;
20
+ alt?: string | undefined;
21
+ sizes?: string | undefined;
22
+ srcset?: string | undefined;
23
+ gradient?: string | undefined;
24
+ lazySrc?: string | undefined;
25
+ } & {
26
+ $children?: {} | vue.VNodeChild | {
27
+ default?: (() => vue.VNodeChild) | undefined;
28
+ placeholder?: (() => vue.VNodeChild) | undefined;
29
+ error?: (() => vue.VNodeChild) | undefined;
30
+ sources?: (() => vue.VNodeChild) | undefined;
36
31
  };
37
- srcset: StringConstructor;
38
- width: (StringConstructor | NumberConstructor)[];
32
+ 'v-slots'?: {
33
+ default?: false | (() => vue.VNodeChild) | undefined;
34
+ placeholder?: false | (() => vue.VNodeChild) | undefined;
35
+ error?: false | (() => vue.VNodeChild) | undefined;
36
+ sources?: false | (() => vue.VNodeChild) | undefined;
37
+ } | undefined;
38
+ } & {
39
+ "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
40
+ "v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
41
+ "v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
42
+ "v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
39
43
  }, {
40
44
  currentSrc: vue.Ref<string>;
41
45
  image: vue.Ref<HTMLImageElement | undefined>;
@@ -46,36 +50,41 @@ declare const VImg: vue.DefineComponent<{
46
50
  loadstart: (event: string | undefined) => true;
47
51
  load: (event: string | undefined) => true;
48
52
  error: (event: string | undefined) => true;
49
- }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
50
- transition: {
51
- type: PropType<string | boolean | (vue.TransitionProps & {
52
- component?: vue.Component<any, any, any, vue.ComputedOptions, vue.MethodOptions> | undefined;
53
- })>;
54
- default: string;
55
- validator: (val: unknown) => boolean;
56
- };
57
- aspectRatio: (StringConstructor | NumberConstructor)[];
58
- alt: StringConstructor;
59
- cover: BooleanConstructor;
60
- eager: BooleanConstructor;
61
- gradient: StringConstructor;
62
- lazySrc: StringConstructor;
63
- options: {
64
- type: PropType<IntersectionObserverInit>;
65
- default: () => {
66
- root: undefined;
67
- rootMargin: undefined;
68
- threshold: undefined;
69
- };
70
- };
71
- sizes: StringConstructor;
72
- src: {
73
- type: PropType<string | srcObject>;
74
- default: string;
53
+ }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, {
54
+ transition: string | boolean | (vue.TransitionProps & {
55
+ component?: vue.Component<any, any, any, vue.ComputedOptions, vue.MethodOptions> | undefined;
56
+ });
57
+ eager: boolean;
58
+ options: IntersectionObserverInit;
59
+ cover: boolean;
60
+ src: string | srcObject;
61
+ } & {
62
+ width?: string | number | undefined;
63
+ aspectRatio?: string | number | undefined;
64
+ alt?: string | undefined;
65
+ sizes?: string | undefined;
66
+ srcset?: string | undefined;
67
+ gradient?: string | undefined;
68
+ lazySrc?: string | undefined;
69
+ } & {
70
+ $children?: {} | vue.VNodeChild | {
71
+ default?: (() => vue.VNodeChild) | undefined;
72
+ placeholder?: (() => vue.VNodeChild) | undefined;
73
+ error?: (() => vue.VNodeChild) | undefined;
74
+ sources?: (() => vue.VNodeChild) | undefined;
75
75
  };
76
- srcset: StringConstructor;
77
- width: (StringConstructor | NumberConstructor)[];
78
- }>> & {
76
+ 'v-slots'?: {
77
+ default?: false | (() => vue.VNodeChild) | undefined;
78
+ placeholder?: false | (() => vue.VNodeChild) | undefined;
79
+ error?: false | (() => vue.VNodeChild) | undefined;
80
+ sources?: false | (() => vue.VNodeChild) | undefined;
81
+ } | undefined;
82
+ } & {
83
+ "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
84
+ "v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
85
+ "v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
86
+ "v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
87
+ } & {
79
88
  onError?: ((event: string | undefined) => any) | undefined;
80
89
  onLoad?: ((event: string | undefined) => any) | undefined;
81
90
  onLoadstart?: ((event: string | undefined) => any) | undefined;
@@ -88,6 +97,6 @@ declare const VImg: vue.DefineComponent<{
88
97
  cover: boolean;
89
98
  src: string | srcObject;
90
99
  }>;
91
- declare type VImg = InstanceType<typeof VImg>;
100
+ type VImg = InstanceType<typeof VImg>;
92
101
 
93
102
  export { VImg };
@@ -79,28 +79,27 @@ export const VInput = genericComponent()({
79
79
  validate
80
80
  }));
81
81
  useRender(() => {
82
- var _props$messages, _slots$prepend, _slots$default, _slots$append, _slots$details;
83
82
  const hasPrepend = !!(slots.prepend || props.prependIcon);
84
83
  const hasAppend = !!(slots.append || props.appendIcon);
85
- const hasMessages = !!((_props$messages = props.messages) != null && _props$messages.length || errorMessages.value.length);
84
+ const hasMessages = !!(props.messages?.length || errorMessages.value.length);
86
85
  const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
87
86
  return _createVNode("div", {
88
87
  "class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value]
89
88
  }, [hasPrepend && _createVNode("div", {
90
89
  "key": "prepend",
91
90
  "class": "v-input__prepend"
92
- }, [(_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value), props.prependIcon && _createVNode(InputIcon, {
91
+ }, [slots.prepend?.(slotProps.value), props.prependIcon && _createVNode(InputIcon, {
93
92
  "key": "prepend-icon",
94
93
  "name": "prepend"
95
94
  }, null)]), slots.default && _createVNode("div", {
96
95
  "class": "v-input__control"
97
- }, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && _createVNode("div", {
96
+ }, [slots.default?.(slotProps.value)]), hasAppend && _createVNode("div", {
98
97
  "key": "append",
99
98
  "class": "v-input__append"
100
99
  }, [props.appendIcon && _createVNode(InputIcon, {
101
100
  "key": "append-icon",
102
101
  "name": "append"
103
- }, null), (_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots, slotProps.value)]), hasDetails && _createVNode("div", {
102
+ }, null), slots.append?.(slotProps.value)]), hasDetails && _createVNode("div", {
104
103
  "class": "v-input__details"
105
104
  }, [_createVNode(VMessages, {
106
105
  "id": messagesId.value,
@@ -108,7 +107,7 @@ export const VInput = genericComponent()({
108
107
  "messages": errorMessages.value.length > 0 ? errorMessages.value : props.messages
109
108
  }, {
110
109
  message: slots.message
111
- }), (_slots$details = slots.details) == null ? void 0 : _slots$details.call(slots, slotProps.value)])]);
110
+ }), slots.details?.(slotProps.value)])]);
112
111
  });
113
112
  return {
114
113
  reset,
@@ -1 +1 @@
1
- {"version":3,"file":"VInput.mjs","names":["VMessages","IconValue","makeDensityProps","useDensity","makeValidationProps","useValidation","computed","EventProp","genericComponent","getUid","isOn","pick","propsFactory","useRender","useInputIcon","makeVInputProps","id","String","appendIcon","prependIcon","hideDetails","Boolean","messages","type","Array","default","direction","validator","v","includes","VInput","name","props","emits","val","setup","attrs","slots","emit","densityClasses","InputIcon","uid","messagesId","value","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","slotProps","hasPrepend","prepend","hasAppend","append","hasMessages","length","hasDetails","details","message","filterInputProps","keys","Object","filter","k"],"sources":["../../../src/components/VInput/VInput.tsx"],"sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { VMessages } from '@/components/VMessages'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, getUid, isOn, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n messagesId: ComputedRef<string>\n isDirty: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isPristine: Ref<boolean>\n isValid: ComputedRef<boolean | null>\n isValidating: Ref<boolean>\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n prependIcon: IconValue,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n 'onClick:prepend': EventProp,\n 'onClick:append': EventProp,\n\n ...makeDensityProps(),\n ...makeValidationProps(),\n}, 'v-input')\n\nexport type VInputSlots = MakeSlots<{\n default: [VInputSlot]\n prepend: [VInputSlot]\n append: [VInputSlot]\n details: [VInputSlot]\n}>\n\nexport const VInput = genericComponent<new () => {\n $props: SlotsToProps<VInputSlots>\n}>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const { InputIcon } = useInputIcon(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props, 'v-input', id)\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = !!(\n props.messages?.length ||\n errorMessages.value.length\n )\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || !!slots.details)\n )\n\n return (\n <div class={[\n 'v-input',\n `v-input--${props.direction}`,\n densityClasses.value,\n validationClasses.value,\n ]}\n >\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-input__prepend\">\n { slots.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <InputIcon\n key=\"prepend-icon\"\n name=\"prepend\"\n />\n ) }\n </div>\n ) }\n\n { slots.default && (\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n ) }\n\n { hasAppend && (\n <div key=\"append\" class=\"v-input__append\">\n { props.appendIcon && (\n <InputIcon\n key=\"append-icon\"\n name=\"append\"\n />\n ) }\n\n { slots.append?.(slotProps.value) }\n </div>\n ) }\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\n id={ messagesId.value }\n active={ hasMessages }\n messages={ errorMessages.value.length > 0\n ? errorMessages.value\n : props.messages\n }\n v-slots={{ message: slots.message }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n ) }\n </div>\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n\nexport function filterInputProps (props: Record<string, unknown>) {\n const keys = Object.keys(VInput.props).filter(k => !isOn(k))\n return pick(props, keys)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"VInput.mjs","names":["VMessages","IconValue","makeDensityProps","useDensity","makeValidationProps","useValidation","computed","EventProp","genericComponent","getUid","isOn","pick","propsFactory","useRender","useInputIcon","makeVInputProps","id","String","appendIcon","prependIcon","hideDetails","Boolean","messages","type","Array","default","direction","validator","v","includes","VInput","name","props","emits","val","setup","attrs","slots","emit","densityClasses","InputIcon","uid","messagesId","value","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","slotProps","hasPrepend","prepend","hasAppend","append","hasMessages","length","hasDetails","details","message","filterInputProps","keys","Object","filter","k"],"sources":["../../../src/components/VInput/VInput.tsx"],"sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { VMessages } from '@/components/VMessages'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, getUid, isOn, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n messagesId: ComputedRef<string>\n isDirty: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isPristine: Ref<boolean>\n isValid: ComputedRef<boolean | null>\n isValidating: Ref<boolean>\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n prependIcon: IconValue,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n 'onClick:prepend': EventProp,\n 'onClick:append': EventProp,\n\n ...makeDensityProps(),\n ...makeValidationProps(),\n}, 'v-input')\n\nexport type VInputSlots = MakeSlots<{\n default: [VInputSlot]\n prepend: [VInputSlot]\n append: [VInputSlot]\n details: [VInputSlot]\n}>\n\nexport const VInput = genericComponent<VInputSlots>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const { InputIcon } = useInputIcon(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props, 'v-input', id)\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = !!(\n props.messages?.length ||\n errorMessages.value.length\n )\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || !!slots.details)\n )\n\n return (\n <div class={[\n 'v-input',\n `v-input--${props.direction}`,\n densityClasses.value,\n validationClasses.value,\n ]}\n >\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-input__prepend\">\n { slots.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <InputIcon\n key=\"prepend-icon\"\n name=\"prepend\"\n />\n ) }\n </div>\n ) }\n\n { slots.default && (\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n ) }\n\n { hasAppend && (\n <div key=\"append\" class=\"v-input__append\">\n { props.appendIcon && (\n <InputIcon\n key=\"append-icon\"\n name=\"append\"\n />\n ) }\n\n { slots.append?.(slotProps.value) }\n </div>\n ) }\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\n id={ messagesId.value }\n active={ hasMessages }\n messages={ errorMessages.value.length > 0\n ? errorMessages.value\n : props.messages\n }\n v-slots={{ message: slots.message }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n ) }\n </div>\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n\nexport function filterInputProps (props: Record<string, unknown>) {\n const keys = Object.keys(VInput.props).filter(k => !isOn(k))\n return pick(props, keys)\n}\n"],"mappings":"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"}