@vuetify/nightly 3.0.0-beta.4 → 3.0.0-beta.9

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 (433) hide show
  1. package/CHANGELOG.md +10 -24
  2. package/dist/json/attributes.json +187 -203
  3. package/dist/json/importMap.json +99 -147
  4. package/dist/json/tags.json +49 -102
  5. package/dist/json/web-types.json +761 -949
  6. package/dist/vuetify.css +13059 -13058
  7. package/dist/vuetify.d.ts +1663 -5104
  8. package/dist/vuetify.esm.js +8655 -7971
  9. package/dist/vuetify.esm.js.map +1 -1
  10. package/dist/vuetify.js +8654 -7969
  11. package/dist/vuetify.js.map +1 -1
  12. package/dist/vuetify.min.css +3 -3
  13. package/dist/vuetify.min.js +1115 -1077
  14. package/dist/vuetify.min.js.map +1 -1
  15. package/lib/blueprints/index.mjs +4 -0
  16. package/lib/blueprints/index.mjs.map +1 -0
  17. package/lib/blueprints/md1.mjs +63 -0
  18. package/lib/blueprints/md1.mjs.map +1 -0
  19. package/lib/blueprints/md2.mjs +60 -0
  20. package/lib/blueprints/md2.mjs.map +1 -0
  21. package/lib/blueprints/md3.mjs +74 -0
  22. package/lib/blueprints/md3.mjs.map +1 -0
  23. package/lib/components/VAlert/VAlert.css +0 -3
  24. package/lib/components/VAlert/VAlert.mjs +27 -11
  25. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  26. package/lib/components/VAlert/VAlert.sass +0 -3
  27. package/lib/components/VApp/VApp.css +2 -5
  28. package/lib/components/VApp/VApp.mjs +3 -4
  29. package/lib/components/VApp/VApp.mjs.map +1 -1
  30. package/lib/components/VApp/VApp.sass +11 -12
  31. package/lib/components/VApp/variables.scss +6 -0
  32. package/lib/components/VAppBar/VAppBar.mjs +4 -3
  33. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  34. package/lib/components/VAppBar/VAppBarNavIcon.mjs +7 -12
  35. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  36. package/lib/components/VAppBar/VAppBarTitle.mjs +4 -3
  37. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  38. package/lib/components/VAppBar/_variables.scss +2 -0
  39. package/lib/components/VAutocomplete/VAutocomplete.css +10 -0
  40. package/lib/components/VAutocomplete/VAutocomplete.mjs +11 -8
  41. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  42. package/lib/components/VAutocomplete/VAutocomplete.sass +10 -0
  43. package/lib/components/VAutocomplete/_variables.scss +1 -0
  44. package/lib/components/VAvatar/VAvatar.css +2 -0
  45. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  46. package/lib/components/VAvatar/VAvatar.sass +3 -0
  47. package/lib/components/VBadge/VBadge.mjs +8 -7
  48. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  49. package/lib/components/VBadge/_variables.scss +2 -2
  50. package/lib/components/VBanner/VBanner.css +7 -7
  51. package/lib/components/VBanner/VBanner.mjs +24 -17
  52. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  53. package/lib/components/VBanner/VBanner.sass +6 -7
  54. package/lib/components/VBanner/VBannerActions.mjs +1 -1
  55. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  56. package/lib/components/VBanner/index.mjs +0 -2
  57. package/lib/components/VBanner/index.mjs.map +1 -1
  58. package/lib/components/VBottomNavigation/VBottomNavigation.css +4 -11
  59. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +4 -3
  60. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  61. package/lib/components/VBottomNavigation/VBottomNavigation.sass +5 -12
  62. package/lib/components/VBottomNavigation/_variables.scss +7 -8
  63. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +13 -6
  64. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +30 -19
  65. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  66. package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +8 -3
  67. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +5 -8
  68. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  69. package/lib/components/VBreadcrumbs/_variables.scss +2 -1
  70. package/lib/components/VBtn/VBtn.css +77 -13
  71. package/lib/components/VBtn/VBtn.mjs +63 -29
  72. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  73. package/lib/components/VBtn/VBtn.sass +86 -14
  74. package/lib/components/VBtn/_variables.scss +8 -1
  75. package/lib/components/VBtnGroup/VBtnGroup.css +1 -0
  76. package/lib/components/VBtnGroup/_variables.scss +2 -0
  77. package/lib/components/VBtnToggle/_variables.scss +1 -0
  78. package/lib/components/VCard/VCard.css +81 -64
  79. package/lib/components/VCard/VCard.mjs +62 -71
  80. package/lib/components/VCard/VCard.mjs.map +1 -1
  81. package/lib/components/VCard/VCard.sass +74 -61
  82. package/lib/components/VCard/VCardActions.mjs +1 -1
  83. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  84. package/lib/components/VCard/VCardItem.mjs +88 -0
  85. package/lib/components/VCard/VCardItem.mjs.map +1 -0
  86. package/lib/components/VCard/_variables.scss +40 -24
  87. package/lib/components/VCard/index.mjs +1 -5
  88. package/lib/components/VCard/index.mjs.map +1 -1
  89. package/lib/components/VCarousel/VCarousel.mjs +5 -4
  90. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  91. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  92. package/lib/components/VCarousel/_variables.scss +1 -0
  93. package/lib/components/VChip/VChip.css +137 -60
  94. package/lib/components/VChip/VChip.mjs +76 -37
  95. package/lib/components/VChip/VChip.mjs.map +1 -1
  96. package/lib/components/VChip/VChip.sass +6 -0
  97. package/lib/components/VChip/_mixins.scss +26 -6
  98. package/lib/components/VChip/_variables.scss +1 -5
  99. package/lib/components/VChipGroup/VChipGroup.mjs +4 -3
  100. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  101. package/lib/components/VChipGroup/VChipGroup.sass +1 -1
  102. package/lib/components/VChipGroup/_variables.scss +1 -1
  103. package/lib/components/VColorPicker/VColorPicker.mjs +16 -10
  104. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  105. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -4
  106. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  107. package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -3
  108. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  109. package/lib/components/VColorPicker/VColorPickerPreview.mjs +4 -3
  110. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  111. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +6 -5
  112. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  113. package/lib/components/VColorPicker/_variables.scss +17 -10
  114. package/lib/components/VCombobox/VCombobox.css +10 -0
  115. package/lib/components/VCombobox/VCombobox.mjs +15 -17
  116. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  117. package/lib/components/VCombobox/VCombobox.sass +10 -0
  118. package/lib/components/VCombobox/_variables.scss +1 -0
  119. package/lib/components/VCounter/VCounter.mjs +16 -16
  120. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  121. package/lib/components/VCounter/VCounter.sass +1 -1
  122. package/lib/components/VCounter/_variables.scss +2 -1
  123. package/lib/components/VDialog/VDialog.css +2 -5
  124. package/lib/components/VDialog/VDialog.mjs +26 -26
  125. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  126. package/lib/components/VDialog/VDialog.sass +1 -4
  127. package/lib/components/VDialog/_variables.scss +0 -1
  128. package/lib/components/VDivider/VDivider.mjs +16 -17
  129. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  130. package/lib/components/VDivider/_variables.scss +3 -1
  131. package/lib/components/VExpansionPanel/VExpansionPanel.css +1 -0
  132. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +9 -4
  133. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  134. package/lib/components/VExpansionPanel/VExpansionPanel.sass +1 -0
  135. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +7 -7
  136. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  137. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  138. package/lib/components/VExpansionPanel/_variables.scss +15 -10
  139. package/lib/components/VField/VField.css +43 -24
  140. package/lib/components/VField/VField.mjs +18 -11
  141. package/lib/components/VField/VField.mjs.map +1 -1
  142. package/lib/components/VField/VField.sass +32 -18
  143. package/lib/components/VField/VFieldLabel.mjs +8 -9
  144. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  145. package/lib/components/VField/_variables.scss +3 -2
  146. package/lib/components/VFileInput/VFileInput.css +3 -3
  147. package/lib/components/VFileInput/VFileInput.mjs +14 -9
  148. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  149. package/lib/components/VFileInput/VFileInput.sass +3 -3
  150. package/lib/components/VFooter/VFooter.mjs +4 -3
  151. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  152. package/lib/components/VFooter/_variables.scss +2 -1
  153. package/lib/components/VForm/VForm.mjs +4 -4
  154. package/lib/components/VForm/VForm.mjs.map +1 -1
  155. package/lib/components/VGrid/VCol.mjs +2 -1
  156. package/lib/components/VGrid/VCol.mjs.map +1 -1
  157. package/lib/components/VGrid/VContainer.mjs +4 -3
  158. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  159. package/lib/components/VGrid/VRow.mjs +8 -3
  160. package/lib/components/VGrid/VRow.mjs.map +1 -1
  161. package/lib/components/VIcon/VIcon.css +0 -18
  162. package/lib/components/VIcon/VIcon.mjs +20 -21
  163. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  164. package/lib/components/VIcon/VIcon.sass +0 -18
  165. package/lib/components/VIcon/_variables.scss +2 -6
  166. package/lib/components/VIcon/index.mjs.map +1 -1
  167. package/lib/components/VImg/VImg.mjs +1 -0
  168. package/lib/components/VImg/VImg.mjs.map +1 -1
  169. package/lib/components/VInput/VInput.css +2 -1
  170. package/lib/components/VInput/VInput.mjs +10 -6
  171. package/lib/components/VInput/VInput.mjs.map +1 -1
  172. package/lib/components/VInput/VInput.sass +2 -1
  173. package/lib/components/VInput/_variables.scss +0 -1
  174. package/lib/components/VItemGroup/VItem.mjs +3 -0
  175. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  176. package/lib/components/VLabel/VLabel.mjs +4 -3
  177. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  178. package/lib/components/VLabel/_variables.scss +1 -0
  179. package/lib/components/VLayout/VLayout.css +0 -2
  180. package/lib/components/VLayout/VLayout.sass +0 -2
  181. package/lib/components/VLazy/VLazy.mjs +5 -3
  182. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  183. package/lib/components/VList/VList.css +6 -3
  184. package/lib/components/VList/VList.mjs +15 -17
  185. package/lib/components/VList/VList.mjs.map +1 -1
  186. package/lib/components/VList/VList.sass +6 -2
  187. package/lib/components/VList/VListChildren.mjs +25 -7
  188. package/lib/components/VList/VListChildren.mjs.map +1 -1
  189. package/lib/components/VList/VListGroup.mjs +47 -42
  190. package/lib/components/VList/VListGroup.mjs.map +1 -1
  191. package/lib/components/VList/VListItem.css +78 -52
  192. package/lib/components/VList/VListItem.mjs +94 -54
  193. package/lib/components/VList/VListItem.mjs.map +1 -1
  194. package/lib/components/VList/VListItem.sass +67 -38
  195. package/lib/components/VList/VListItemAction.mjs +8 -9
  196. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  197. package/lib/components/VList/VListItemMedia.mjs +4 -3
  198. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  199. package/lib/components/VList/VListSubheader.mjs +4 -3
  200. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  201. package/lib/components/VList/_variables.scss +12 -5
  202. package/lib/components/VList/index.mjs +2 -5
  203. package/lib/components/VList/index.mjs.map +1 -1
  204. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -3
  205. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  206. package/lib/components/VMain/VMain.css +21 -3
  207. package/lib/components/VMain/VMain.mjs +17 -11
  208. package/lib/components/VMain/VMain.mjs.map +1 -1
  209. package/lib/components/VMain/VMain.sass +18 -3
  210. package/lib/components/VMain/_variables.scss +1 -1
  211. package/lib/components/VMenu/VMenu.mjs +6 -6
  212. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  213. package/lib/components/VMessages/VMessages.mjs +5 -3
  214. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  215. package/lib/components/VMessages/_variables.scss +1 -1
  216. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +12 -17
  217. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +54 -19
  218. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  219. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +15 -20
  220. package/lib/components/VNavigationDrawer/_variables.scss +3 -2
  221. package/lib/components/VNavigationDrawer/sticky.mjs +72 -0
  222. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -0
  223. package/lib/components/VNavigationDrawer/touch.mjs +5 -2
  224. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  225. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  226. package/lib/components/VOverlay/VOverlay.mjs +18 -14
  227. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  228. package/lib/components/VOverlay/_variables.scss +1 -1
  229. package/lib/components/VOverlay/locationStrategies.mjs +267 -78
  230. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  231. package/lib/components/VOverlay/useActivator.mjs +5 -4
  232. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  233. package/lib/components/VOverlay/util/point.mjs +3 -3
  234. package/lib/components/VOverlay/util/point.mjs.map +1 -1
  235. package/lib/components/VPagination/VPagination.mjs +42 -24
  236. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  237. package/lib/components/VParallax/VParallax.mjs +5 -5
  238. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  239. package/lib/components/VProgressCircular/VProgressCircular.mjs +6 -5
  240. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  241. package/lib/components/VProgressCircular/_variables.scss +2 -0
  242. package/lib/components/VProgressLinear/VProgressLinear.mjs +5 -3
  243. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  244. package/lib/components/VProgressLinear/_variables.scss +1 -0
  245. package/lib/components/VRadio/VRadio.mjs +8 -17
  246. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  247. package/lib/components/VRadioGroup/VRadioGroup.mjs +22 -5
  248. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  249. package/lib/components/VRadioGroup/VRadioGroup.sass +5 -3
  250. package/lib/components/VRadioGroup/_variables.scss +3 -4
  251. package/lib/components/VRangeSlider/VRangeSlider.mjs +12 -13
  252. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  253. package/lib/components/VRating/VRating.mjs +6 -5
  254. package/lib/components/VRating/VRating.mjs.map +1 -1
  255. package/lib/components/VRating/VRating.sass +2 -0
  256. package/lib/components/VResponsive/VResponsive.mjs +7 -6
  257. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  258. package/lib/components/VSelect/VSelect.css +10 -0
  259. package/lib/components/VSelect/VSelect.mjs +14 -11
  260. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  261. package/lib/components/VSelect/VSelect.sass +10 -0
  262. package/lib/components/VSelect/_variables.scss +1 -0
  263. package/lib/components/VSelectionControl/VSelectionControl.mjs +15 -9
  264. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  265. package/lib/components/VSelectionControl/_variables.scss +1 -0
  266. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -3
  267. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  268. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +1 -5
  269. package/lib/components/VSelectionControlGroup/_variables.scss +1 -4
  270. package/lib/components/VSheet/VSheet.mjs +3 -3
  271. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  272. package/lib/components/VSheet/_variables.scss +3 -2
  273. package/lib/components/VSlideGroup/VSlideGroup.mjs +47 -49
  274. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  275. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +7 -3
  276. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  277. package/lib/components/VSlideGroup/_variables.scss +0 -5
  278. package/lib/components/VSlideGroup/index.mjs +2 -2
  279. package/lib/components/VSlideGroup/index.mjs.map +1 -1
  280. package/lib/components/VSlider/VSlider.mjs +7 -9
  281. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  282. package/lib/components/VSlider/VSliderThumb.mjs +6 -5
  283. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  284. package/lib/components/VSlider/VSliderTrack.mjs +11 -10
  285. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  286. package/lib/components/VSlider/slider.mjs +4 -4
  287. package/lib/components/VSlider/slider.mjs.map +1 -1
  288. package/lib/components/VSnackbar/VSnackbar.css +1 -1
  289. package/lib/components/VSnackbar/VSnackbar.mjs +50 -50
  290. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  291. package/lib/components/VSnackbar/_variables.scss +3 -3
  292. package/lib/components/VSwitch/VSwitch.css +7 -0
  293. package/lib/components/VSwitch/VSwitch.sass +6 -0
  294. package/lib/components/VSwitch/_variables.scss +1 -0
  295. package/lib/components/VSystemBar/VSystemBar.mjs +5 -13
  296. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  297. package/lib/components/VSystemBar/_variables.scss +2 -1
  298. package/lib/components/VTable/VTable.css +1 -0
  299. package/lib/components/VTable/VTable.mjs +9 -8
  300. package/lib/components/VTable/VTable.mjs.map +1 -1
  301. package/lib/components/VTable/VTable.sass +1 -0
  302. package/lib/components/VTable/_variables.scss +2 -0
  303. package/lib/components/VTabs/VTab.css +3 -2
  304. package/lib/components/VTabs/VTab.mjs +4 -4
  305. package/lib/components/VTabs/VTab.mjs.map +1 -1
  306. package/lib/components/VTabs/VTab.sass +4 -2
  307. package/lib/components/VTabs/VTabs.mjs +15 -12
  308. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  309. package/lib/components/VTabs/_variables.scss +3 -1
  310. package/lib/components/VTextField/VTextField.css +2 -1
  311. package/lib/components/VTextField/VTextField.mjs +31 -23
  312. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  313. package/lib/components/VTextField/VTextField.sass +2 -1
  314. package/lib/components/VTextField/_variables.scss +1 -1
  315. package/lib/components/VTextarea/VTextarea.css +6 -2
  316. package/lib/components/VTextarea/VTextarea.mjs +39 -22
  317. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  318. package/lib/components/VTextarea/VTextarea.sass +9 -2
  319. package/lib/components/VTextarea/_variables.scss +1 -1
  320. package/lib/components/VTimeline/VTimeline.css +123 -112
  321. package/lib/components/VTimeline/VTimeline.mjs +24 -25
  322. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  323. package/lib/components/VTimeline/VTimeline.sass +132 -113
  324. package/lib/components/VTimeline/VTimelineDivider.mjs +44 -38
  325. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  326. package/lib/components/VTimeline/VTimelineItem.mjs +13 -12
  327. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  328. package/lib/components/VTimeline/_variables.scss +11 -6
  329. package/lib/components/VToolbar/VToolbar.css +17 -32
  330. package/lib/components/VToolbar/VToolbar.mjs +12 -13
  331. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  332. package/lib/components/VToolbar/VToolbar.sass +17 -18
  333. package/lib/components/VToolbar/VToolbarItems.mjs +12 -8
  334. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  335. package/lib/components/VToolbar/_variables.scss +7 -7
  336. package/lib/components/VTooltip/VTooltip.mjs +41 -39
  337. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  338. package/lib/components/VTooltip/_variables.scss +1 -0
  339. package/lib/components/VWindow/VWindow.mjs +4 -4
  340. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  341. package/lib/components/VWindow/VWindowItem.mjs +13 -9
  342. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  343. package/lib/components/VWindow/_variables.scss +1 -0
  344. package/lib/components/index.d.ts +1653 -5068
  345. package/lib/components/transitions/dialog-transition.mjs +3 -0
  346. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  347. package/lib/components/transitions/index.mjs +0 -5
  348. package/lib/components/transitions/index.mjs.map +1 -1
  349. package/lib/composables/border.mjs +5 -6
  350. package/lib/composables/border.mjs.map +1 -1
  351. package/lib/composables/color.mjs +19 -26
  352. package/lib/composables/color.mjs.map +1 -1
  353. package/lib/composables/defaults.mjs +1 -1
  354. package/lib/composables/defaults.mjs.map +1 -1
  355. package/lib/composables/form.mjs +29 -9
  356. package/lib/composables/form.mjs.map +1 -1
  357. package/lib/composables/{forwardRef.mjs → forwardRefs.mjs} +29 -3
  358. package/lib/composables/forwardRefs.mjs.map +1 -0
  359. package/lib/composables/group.mjs.map +1 -1
  360. package/lib/composables/index.mjs +3 -2
  361. package/lib/composables/index.mjs.map +1 -1
  362. package/lib/composables/layout.mjs +12 -12
  363. package/lib/composables/layout.mjs.map +1 -1
  364. package/lib/composables/location.mjs +4 -8
  365. package/lib/composables/location.mjs.map +1 -1
  366. package/lib/composables/proxiedModel.mjs +2 -1
  367. package/lib/composables/proxiedModel.mjs.map +1 -1
  368. package/lib/composables/rtl.mjs +2 -2
  369. package/lib/composables/rtl.mjs.map +1 -1
  370. package/lib/composables/size.mjs +18 -14
  371. package/lib/composables/size.mjs.map +1 -1
  372. package/lib/composables/stack.mjs +22 -12
  373. package/lib/composables/stack.mjs.map +1 -1
  374. package/lib/composables/theme.mjs +18 -10
  375. package/lib/composables/theme.mjs.map +1 -1
  376. package/lib/composables/validation.mjs +14 -4
  377. package/lib/composables/validation.mjs.map +1 -1
  378. package/lib/composables/variant.mjs +4 -2
  379. package/lib/composables/variant.mjs.map +1 -1
  380. package/lib/entry-bundler.mjs +1 -1
  381. package/lib/framework.mjs +7 -2
  382. package/lib/framework.mjs.map +1 -1
  383. package/lib/index.d.ts +39 -47
  384. package/lib/styles/generic/_colors.scss +17 -9
  385. package/lib/styles/generic/_transitions.scss +13 -77
  386. package/lib/styles/main.css +1170 -1420
  387. package/lib/styles/settings/_utilities.scss +16 -5
  388. package/lib/styles/utilities/_index.sass +0 -1
  389. package/lib/util/anchor.mjs +33 -29
  390. package/lib/util/anchor.mjs.map +1 -1
  391. package/lib/util/animation.mjs +2 -2
  392. package/lib/util/animation.mjs.map +1 -1
  393. package/lib/util/box.mjs +12 -0
  394. package/lib/util/box.mjs.map +1 -1
  395. package/lib/util/colorUtils.mjs +2 -2
  396. package/lib/util/colorUtils.mjs.map +1 -1
  397. package/lib/util/colors.mjs +1 -1
  398. package/lib/util/colors.mjs.map +1 -1
  399. package/lib/util/defineComponent.mjs +6 -3
  400. package/lib/util/defineComponent.mjs.map +1 -1
  401. package/lib/util/helpers.mjs +24 -1
  402. package/lib/util/helpers.mjs.map +1 -1
  403. package/lib/util/injectSelf.mjs +12 -0
  404. package/lib/util/injectSelf.mjs.map +1 -0
  405. package/package.json +10 -10
  406. package/lib/components/VBanner/VBannerAvatar.mjs +0 -20
  407. package/lib/components/VBanner/VBannerAvatar.mjs.map +0 -1
  408. package/lib/components/VBanner/VBannerIcon.mjs +0 -20
  409. package/lib/components/VBanner/VBannerIcon.mjs.map +0 -1
  410. package/lib/components/VBreadcrumbs/shared.mjs +0 -2
  411. package/lib/components/VBreadcrumbs/shared.mjs.map +0 -1
  412. package/lib/components/VCard/VCardAvatar.mjs +0 -3
  413. package/lib/components/VCard/VCardAvatar.mjs.map +0 -1
  414. package/lib/components/VCard/VCardContent.mjs +0 -3
  415. package/lib/components/VCard/VCardContent.mjs.map +0 -1
  416. package/lib/components/VCard/VCardHeader.mjs +0 -3
  417. package/lib/components/VCard/VCardHeader.mjs.map +0 -1
  418. package/lib/components/VCard/VCardHeaderText.mjs +0 -3
  419. package/lib/components/VCard/VCardHeaderText.mjs.map +0 -1
  420. package/lib/components/VCard/VCardImg.mjs +0 -3
  421. package/lib/components/VCard/VCardImg.mjs.map +0 -1
  422. package/lib/components/VList/VListItemAvatar.mjs +0 -23
  423. package/lib/components/VList/VListItemAvatar.mjs.map +0 -1
  424. package/lib/components/VList/VListItemHeader.mjs +0 -3
  425. package/lib/components/VList/VListItemHeader.mjs.map +0 -1
  426. package/lib/components/VList/VListItemIcon.mjs +0 -23
  427. package/lib/components/VList/VListItemIcon.mjs.map +0 -1
  428. package/lib/components/VTimeline/shared.mjs +0 -2
  429. package/lib/components/VTimeline/shared.mjs.map +0 -1
  430. package/lib/composables/forwardRef.mjs.map +0 -1
  431. package/lib/presets/default/index.mjs +0 -71
  432. package/lib/presets/default/index.mjs.map +0 -1
  433. package/lib/styles/utilities/_text.sass +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"VRow.mjs","names":["makeTagProps","capitalize","computed","h","defineComponent","breakpoints","ALIGNMENT","makeRowProps","prefix","def","reduce","props","val","alignValidator","str","includes","alignProps","type","String","default","validator","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","Object","keys","justify","alignContent","classMap","breakpointClass","prop","className","undefined","breakpoint","replace","toLowerCase","VRow","name","dense","Boolean","noGutters","setup","slots","classes","classList","forEach","value","push","tag","class"],"sources":["../../../src/components/VGrid/VRow.ts"],"sourcesContent":["// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nconst breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nconst ALIGNMENT = ['start', 'end', 'center'] as const\n\nfunction makeRowProps (prefix: string, def: () => Prop<string, null>) {\n return breakpoints.reduce((props, val) => {\n props[prefix + capitalize(val)] = def()\n return props\n }, {} as Record<string, Prop<string, null>>)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeRowProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeRowProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeRowProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport const VRow = defineComponent({\n name: 'VRow',\n\n props: {\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: ['v-row', classes.value],\n }, slots.default?.())\n },\n})\n"],"mappings":"AAAA;AACA,qB,CAEA;;SACSA,Y,qCAET;;AACA,SAASC,UAAT,EAAqBC,QAArB,EAA+BC,CAA/B,QAAwC,KAAxC;SACSC,e,gCAET;;AAGA,MAAMC,WAAW,GAAG,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,KAAzB,CAApB,C,CAA6D;;AAE7D,MAAMC,SAAS,GAAG,CAAC,OAAD,EAAU,KAAV,EAAiB,QAAjB,CAAlB;;AAEA,SAASC,YAAT,CAAuBC,MAAvB,EAAuCC,GAAvC,EAAsE;EACpE,OAAOJ,WAAW,CAACK,MAAZ,CAAmB,CAACC,KAAD,EAAQC,GAAR,KAAgB;IACxCD,KAAK,CAACH,MAAM,GAAGP,UAAU,CAACW,GAAD,CAApB,CAAL,GAAkCH,GAAG,EAArC;IACA,OAAOE,KAAP;EACD,CAHM,EAGJ,EAHI,CAAP;AAID;;AAED,MAAME,cAAc,GAAIC,GAAD,IAAc,CAAC,GAAGR,SAAJ,EAAe,UAAf,EAA2B,SAA3B,EAAsCS,QAAtC,CAA+CD,GAA/C,CAArC;;AACA,MAAME,UAAU,GAAGT,YAAY,CAAC,OAAD,EAAU,OAAO;EAC9CU,IAAI,EAAEC,MADwC;EAE9CC,OAAO,EAAE,IAFqC;EAG9CC,SAAS,EAAEP;AAHmC,CAAP,CAAV,CAA/B;;AAMA,MAAMQ,gBAAgB,GAAIP,GAAD,IAAc,CAAC,GAAGR,SAAJ,EAAe,eAAf,EAAgC,cAAhC,EAAgDS,QAAhD,CAAyDD,GAAzD,CAAvC;;AACA,MAAMQ,YAAY,GAAGf,YAAY,CAAC,SAAD,EAAY,OAAO;EAClDU,IAAI,EAAEC,MAD4C;EAElDC,OAAO,EAAE,IAFyC;EAGlDC,SAAS,EAAEC;AAHuC,CAAP,CAAZ,CAAjC;;AAMA,MAAME,qBAAqB,GAAIT,GAAD,IAAc,CAAC,GAAGR,SAAJ,EAAe,eAAf,EAAgC,cAAhC,EAAgD,SAAhD,EAA2DS,QAA3D,CAAoED,GAApE,CAA5C;;AACA,MAAMU,iBAAiB,GAAGjB,YAAY,CAAC,cAAD,EAAiB,OAAO;EAC5DU,IAAI,EAAEC,MADsD;EAE5DC,OAAO,EAAE,IAFmD;EAG5DC,SAAS,EAAEG;AAHiD,CAAP,CAAjB,CAAtC;AAMA,MAAME,OAAO,GAAG;EACdC,KAAK,EAAEC,MAAM,CAACC,IAAP,CAAYZ,UAAZ,CADO;EAEda,OAAO,EAAEF,MAAM,CAACC,IAAP,CAAYN,YAAZ,CAFK;EAGdQ,YAAY,EAAEH,MAAM,CAACC,IAAP,CAAYJ,iBAAZ;AAHA,CAAhB;AAMA,MAAMO,QAAQ,GAAG;EACfL,KAAK,EAAE,OADQ;EAEfG,OAAO,EAAE,SAFM;EAGfC,YAAY,EAAE;AAHC,CAAjB;;AAMA,SAASE,eAAT,CAA0Bf,IAA1B,EAAsDgB,IAAtD,EAAoErB,GAApE,EAAiF;EAC/E,IAAIsB,SAAS,GAAGH,QAAQ,CAACd,IAAD,CAAxB;;EACA,IAAIL,GAAG,IAAI,IAAX,EAAiB;IACf,OAAOuB,SAAP;EACD;;EACD,IAAIF,IAAJ,EAAU;IACR;IACA,MAAMG,UAAU,GAAGH,IAAI,CAACI,OAAL,CAAapB,IAAb,EAAmB,EAAnB,CAAnB;IACAiB,SAAS,IAAK,IAAGE,UAAW,EAA5B;EACD,CAT8E,CAU/E;;;EACAF,SAAS,IAAK,IAAGtB,GAAI,EAArB;EACA,OAAOsB,SAAS,CAACI,WAAV,EAAP;AACD;;AAED,OAAO,MAAMC,IAAI,GAAGnC,eAAe,CAAC;EAClCoC,IAAI,EAAE,MAD4B;EAGlC7B,KAAK,EAAE;IACL8B,KAAK,EAAEC,OADF;IAELC,SAAS,EAAED,OAFN;IAGLhB,KAAK,EAAE;MACLT,IAAI,EAAEC,MADD;MAELC,OAAO,EAAE,IAFJ;MAGLC,SAAS,EAAEP;IAHN,CAHF;IAQL,GAAGG,UARE;IASLa,OAAO,EAAE;MACPZ,IAAI,EAAEC,MADC;MAEPC,OAAO,EAAE,IAFF;MAGPC,SAAS,EAAEC;IAHJ,CATJ;IAcL,GAAGC,YAdE;IAeLQ,YAAY,EAAE;MACZb,IAAI,EAAEC,MADM;MAEZC,OAAO,EAAE,IAFG;MAGZC,SAAS,EAAEG;IAHC,CAfT;IAoBL,GAAGC,iBApBE;IAqBL,GAAGxB,YAAY;EArBV,CAH2B;;EA2BlC4C,KAAK,CAAEjC,KAAF,QAAoB;IAAA,IAAX;MAAEkC;IAAF,CAAW;IACvB,MAAMC,OAAO,GAAG5C,QAAQ,CAAC,MAAM;MAC7B,MAAM6C,SAAgB,GAAG,EAAzB,CAD6B,CAG7B;;MACA,IAAI9B,IAAJ;;MACA,KAAKA,IAAL,IAAaQ,OAAb,EAAsB;QACpBA,OAAO,CAACR,IAAD,CAAP,CAAc+B,OAAd,CAAsBf,IAAI,IAAI;UAC5B,MAAMgB,KAAa,GAAItC,KAAD,CAAesB,IAAf,CAAtB;UACA,MAAMC,SAAS,GAAGF,eAAe,CAACf,IAAD,EAAOgB,IAAP,EAAagB,KAAb,CAAjC;UACA,IAAIf,SAAJ,EAAea,SAAS,CAAEG,IAAX,CAAgBhB,SAAhB;QAChB,CAJD;MAKD;;MAEDa,SAAS,CAACG,IAAV,CAAe;QACb,qBAAqBvC,KAAK,CAACgC,SADd;QAEb,gBAAgBhC,KAAK,CAAC8B,KAFT;QAGb,CAAE,SAAQ9B,KAAK,CAACe,KAAM,EAAtB,GAA0Bf,KAAK,CAACe,KAHnB;QAIb,CAAE,WAAUf,KAAK,CAACkB,OAAQ,EAA1B,GAA8BlB,KAAK,CAACkB,OAJvB;QAKb,CAAE,iBAAgBlB,KAAK,CAACmB,YAAa,EAArC,GAAyCnB,KAAK,CAACmB;MALlC,CAAf;MAQA,OAAOiB,SAAP;IACD,CAtBuB,CAAxB;IAwBA,OAAO;MAAA;;MAAA,OAAM5C,CAAC,CAACQ,KAAK,CAACwC,GAAP,EAAY;QACxBC,KAAK,EAAE,CAAC,OAAD,EAAUN,OAAO,CAACG,KAAlB;MADiB,CAAZ,oBAEXJ,KAAK,CAAC1B,OAFK,qBAEX,oBAAA0B,KAAK,CAFM,CAAP;IAAA,CAAP;EAGD;;AAvDiC,CAAD,CAA5B"}
1
+ {"version":3,"file":"VRow.mjs","names":["makeTagProps","capitalize","computed","h","defineComponent","breakpoints","ALIGNMENT","SPACE","makeRowProps","prefix","def","reduce","props","val","ALIGN_VALUES","alignValidator","str","includes","alignProps","type","String","default","validator","JUSTIFY_VALUES","justifyValidator","justifyProps","ALIGN_CONTENT_VALUES","alignContentValidator","alignContentProps","propMap","align","Object","keys","justify","alignContent","classMap","breakpointClass","prop","className","undefined","breakpoint","replace","toLowerCase","VRow","name","dense","Boolean","noGutters","setup","slots","classes","classList","forEach","value","push","tag","class"],"sources":["../../../src/components/VGrid/VRow.ts"],"sourcesContent":["// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\n\nconst breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nconst ALIGNMENT = ['start', 'end', 'center'] as const\n\nconst SPACE = ['space-between', 'space-around', 'space-evenly'] as const\n\nfunction makeRowProps <T> (prefix: string, def: () => Prop<T, null>) {\n return breakpoints.reduce((props, val) => {\n props[prefix + capitalize(val)] = def()\n return props\n }, {} as Record<string, Prop<T, null>>)\n}\n\nconst ALIGN_VALUES = [...ALIGNMENT, 'baseline', 'stretch'] as const\nconst alignValidator = (str: any) => ALIGN_VALUES.includes(str)\nconst alignProps = makeRowProps('align', () => ({\n type: String as PropType<typeof ALIGN_VALUES[number]>,\n default: null,\n validator: alignValidator,\n}))\n\nconst JUSTIFY_VALUES = [...ALIGNMENT, ...SPACE] as const\nconst justifyValidator = (str: any) => JUSTIFY_VALUES.includes(str)\nconst justifyProps = makeRowProps('justify', () => ({\n type: String as PropType<typeof JUSTIFY_VALUES[number]>,\n default: null,\n validator: justifyValidator,\n}))\n\nconst ALIGN_CONTENT_VALUES = [...ALIGNMENT, ...SPACE, 'stretch'] as const\nconst alignContentValidator = (str: any) => ALIGN_CONTENT_VALUES.includes(str)\nconst alignContentProps = makeRowProps('alignContent', () => ({\n type: String as PropType<typeof ALIGN_CONTENT_VALUES[number]>,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport const VRow = defineComponent({\n name: 'VRow',\n\n props: {\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String as PropType<typeof ALIGN_VALUES[number]>,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String as PropType<typeof ALIGN_CONTENT_VALUES[number]>,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String as PropType<typeof ALIGN_CONTENT_VALUES[number]>,\n default: null,\n validator: alignContentValidator,\n },\n\n ...alignContentProps,\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: ['v-row', classes.value],\n }, slots.default?.())\n },\n})\n\nexport type VRow = InstanceType<typeof VRow>\n"],"mappings":"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"}
@@ -41,25 +41,7 @@
41
41
  .v-icon--start {
42
42
  margin-inline-end: 8px;
43
43
  }
44
- .v-btn:not(.v-btn--icon) .v-icon--start {
45
- margin-inline-start: calc(var(--v-btn-height) / -9);
46
- margin-inline-end: calc(var(--v-btn-height) / 4.5);
47
- }
48
- .v-btn.v-btn--stacked .v-icon--start {
49
- margin-inline-start: 0;
50
- margin-inline-end: 0;
51
- margin-bottom: 4px;
52
- }
53
44
 
54
45
  .v-icon--end {
55
46
  margin-inline-start: 8px;
56
- }
57
- .v-btn:not(.v-btn--icon) .v-icon--end {
58
- margin-inline-start: calc(var(--v-btn-height) / 4.5);
59
- margin-inline-end: calc(var(--v-btn-height) / -9);
60
- }
61
- .v-btn.v-btn--stacked .v-icon--end {
62
- margin-inline-start: 0;
63
- margin-inline-end: 0;
64
- margin-top: 4px;
65
47
  }
@@ -2,14 +2,14 @@ import { createVNode as _createVNode } from "vue";
2
2
  // Styles
3
3
  import "./VIcon.css"; // Composables
4
4
 
5
+ import { IconValue, useIcon } from "../../composables/icons.mjs";
5
6
  import { makeSizeProps, useSize } from "../../composables/size.mjs";
6
7
  import { makeTagProps } from "../../composables/tag.mjs";
7
- import { IconValue, useIcon } from "../../composables/icons.mjs";
8
- import { useTextColor } from "../../composables/color.mjs";
9
- import { makeThemeProps, provideTheme } from "../../composables/theme.mjs"; // Utilities
8
+ import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
9
+ import { useTextColor } from "../../composables/color.mjs"; // Utilities
10
10
 
11
11
  import { computed, toRef } from 'vue';
12
- import { convertToUnit, defineComponent, flattenFragments, propsFactory } from "../../util/index.mjs"; // Types
12
+ import { convertToUnit, defineComponent, flattenFragments, propsFactory, useRender } from "../../util/index.mjs"; // Types
13
13
 
14
14
  export const makeVIconProps = propsFactory({
15
15
  color: String,
@@ -56,23 +56,22 @@ export const VIcon = defineComponent({
56
56
  textColorClasses,
57
57
  textColorStyles
58
58
  } = useTextColor(toRef(props, 'color'));
59
- return () => {
60
- return _createVNode(iconData.value.component, {
61
- "tag": props.tag,
62
- "icon": iconData.value.icon,
63
- "class": ['v-icon', 'notranslate', sizeClasses.value, textColorClasses.value, themeClasses.value, {
64
- 'v-icon--clickable': !!attrs.onClick,
65
- 'v-icon--start': props.start,
66
- 'v-icon--end': props.end
67
- }],
68
- "style": [!sizeClasses.value ? {
69
- fontSize: convertToUnit(props.size),
70
- width: convertToUnit(props.size),
71
- height: convertToUnit(props.size)
72
- } : undefined, textColorStyles.value],
73
- "aria-hidden": "true"
74
- }, null);
75
- };
59
+ useRender(() => _createVNode(iconData.value.component, {
60
+ "tag": props.tag,
61
+ "icon": iconData.value.icon,
62
+ "class": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
63
+ 'v-icon--clickable': !!attrs.onClick,
64
+ 'v-icon--start': props.start,
65
+ 'v-icon--end': props.end
66
+ }],
67
+ "style": [!sizeClasses.value ? {
68
+ fontSize: convertToUnit(props.size),
69
+ height: convertToUnit(props.size),
70
+ width: convertToUnit(props.size)
71
+ } : undefined, textColorStyles.value],
72
+ "aria-hidden": "true"
73
+ }, null));
74
+ return {};
76
75
  }
77
76
 
78
77
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VIcon.mjs","names":["makeSizeProps","useSize","makeTagProps","IconValue","useIcon","useTextColor","makeThemeProps","provideTheme","computed","toRef","convertToUnit","defineComponent","flattenFragments","propsFactory","makeVIconProps","color","String","start","Boolean","end","icon","tag","VIcon","name","props","setup","attrs","slots","slotIcon","default","slot","filter","node","children","themeClasses","iconData","sizeClasses","textColorClasses","textColorStyles","value","onClick","fontSize","size","width","height","undefined"],"sources":["../../../src/components/VIcon/VIcon.tsx"],"sourcesContent":["// Styles\nimport './VIcon.sass'\n\n// Composables\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { IconValue, useIcon } from '@/composables/icons'\nimport { useTextColor } from '@/composables/color'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, defineComponent, flattenFragments, propsFactory } from '@/util'\n\n// Types\nimport type { ComputedRef } from 'vue'\n\nexport const makeVIconProps = propsFactory({\n color: String,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'i' }),\n ...makeThemeProps(),\n}, 'v-icon')\n\nexport const VIcon = defineComponent({\n name: 'VIcon',\n\n props: makeVIconProps(),\n\n setup (props, { attrs, slots }) {\n let slotIcon: ComputedRef<string | undefined> | undefined\n if (slots.default) {\n slotIcon = computed(() => {\n const slot = slots.default?.()\n if (!slot) return\n\n return flattenFragments(slot).filter(node =>\n node.children && typeof node.children === 'string'\n )[0]?.children as string\n })\n }\n\n const { themeClasses } = provideTheme(props)\n const { iconData } = useIcon(slotIcon || props)\n const { sizeClasses } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n return () => {\n return (\n <iconData.value.component\n tag={ props.tag }\n icon={ iconData.value.icon }\n class={[\n 'v-icon',\n 'notranslate',\n sizeClasses.value,\n textColorClasses.value,\n themeClasses.value,\n {\n 'v-icon--clickable': !!attrs.onClick,\n 'v-icon--start': props.start,\n 'v-icon--end': props.end,\n },\n ]}\n style={[\n !sizeClasses.value ? ({\n fontSize: convertToUnit(props.size),\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }) : undefined,\n textColorStyles.value,\n ]}\n aria-hidden=\"true\"\n />\n )\n }\n },\n})\n"],"mappings":";AAAA;AACA,qB,CAEA;;SACSA,a,EAAeC,O;SACfC,Y;SACAC,S,EAAWC,O;SACXC,Y;SACAC,c,EAAgBC,Y,uCAEzB;;AACA,SAASC,QAAT,EAAmBC,KAAnB,QAAgC,KAAhC;SACSC,a,EAAeC,e,EAAiBC,gB,EAAkBC,Y,gCAE3D;;AAGA,OAAO,MAAMC,cAAc,GAAGD,YAAY,CAAC;EACzCE,KAAK,EAAEC,MADkC;EAEzCC,KAAK,EAAEC,OAFkC;EAGzCC,GAAG,EAAED,OAHoC;EAIzCE,IAAI,EAAEjB,SAJmC;EAMzC,GAAGH,aAAa,EANyB;EAOzC,GAAGE,YAAY,CAAC;IAAEmB,GAAG,EAAE;EAAP,CAAD,CAP0B;EAQzC,GAAGf,cAAc;AARwB,CAAD,EASvC,QATuC,CAAnC;AAWP,OAAO,MAAMgB,KAAK,GAAGX,eAAe,CAAC;EACnCY,IAAI,EAAE,OAD6B;EAGnCC,KAAK,EAAEV,cAAc,EAHc;;EAKnCW,KAAK,CAAED,KAAF,QAA2B;IAAA,IAAlB;MAAEE,KAAF;MAASC;IAAT,CAAkB;IAC9B,IAAIC,QAAJ;;IACA,IAAID,KAAK,CAACE,OAAV,EAAmB;MACjBD,QAAQ,GAAGpB,QAAQ,CAAC,MAAM;QAAA;;QACxB,MAAMsB,IAAI,qBAAGH,KAAK,CAACE,OAAT,qBAAG,oBAAAF,KAAK,CAAlB;QACA,IAAI,CAACG,IAAL,EAAW;QAEX,gCAAOlB,gBAAgB,CAACkB,IAAD,CAAhB,CAAuBC,MAAvB,CAA8BC,IAAI,IACvCA,IAAI,CAACC,QAAL,IAAiB,OAAOD,IAAI,CAACC,QAAZ,KAAyB,QADrC,EAEL,CAFK,CAAP,qBAAO,sBAEDA,QAFN;MAGD,CAPkB,CAAnB;IAQD;;IAED,MAAM;MAAEC;IAAF,IAAmB3B,YAAY,CAACiB,KAAD,CAArC;IACA,MAAM;MAAEW;IAAF,IAAe/B,OAAO,CAACwB,QAAQ,IAAIJ,KAAb,CAA5B;IACA,MAAM;MAAEY;IAAF,IAAkBnC,OAAO,CAACuB,KAAD,CAA/B;IACA,MAAM;MAAEa,gBAAF;MAAoBC;IAApB,IAAwCjC,YAAY,CAACI,KAAK,CAACe,KAAD,EAAQ,OAAR,CAAN,CAA1D;IAEA,OAAO,MAAM;MACX;QAAA,OAEUA,KAAK,CAACH,GAFhB;QAAA,QAGWc,QAAQ,CAACI,KAAT,CAAenB,IAH1B;QAAA,SAIW,CACL,QADK,EAEL,aAFK,EAGLgB,WAAW,CAACG,KAHP,EAILF,gBAAgB,CAACE,KAJZ,EAKLL,YAAY,CAACK,KALR,EAML;UACE,qBAAqB,CAAC,CAACb,KAAK,CAACc,OAD/B;UAEE,iBAAiBhB,KAAK,CAACP,KAFzB;UAGE,eAAeO,KAAK,CAACL;QAHvB,CANK,CAJX;QAAA,SAgBW,CACL,CAACiB,WAAW,CAACG,KAAb,GAAsB;UACpBE,QAAQ,EAAE/B,aAAa,CAACc,KAAK,CAACkB,IAAP,CADH;UAEpBC,KAAK,EAAEjC,aAAa,CAACc,KAAK,CAACkB,IAAP,CAFA;UAGpBE,MAAM,EAAElC,aAAa,CAACc,KAAK,CAACkB,IAAP;QAHD,CAAtB,GAIKG,SALA,EAMLP,eAAe,CAACC,KANX,CAhBX;QAAA,eAwBgB;MAxBhB;IA2BD,CA5BD;EA6BD;;AApDkC,CAAD,CAA7B"}
1
+ {"version":3,"file":"VIcon.mjs","names":["IconValue","useIcon","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useTextColor","computed","toRef","convertToUnit","defineComponent","flattenFragments","propsFactory","useRender","makeVIconProps","color","String","start","Boolean","end","icon","tag","VIcon","name","props","setup","attrs","slots","slotIcon","default","slot","filter","node","children","themeClasses","iconData","sizeClasses","textColorClasses","textColorStyles","value","onClick","fontSize","size","height","width","undefined"],"sources":["../../../src/components/VIcon/VIcon.tsx"],"sourcesContent":["// Styles\nimport './VIcon.sass'\n\n// Composables\nimport { IconValue, useIcon } from '@/composables/icons'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, defineComponent, flattenFragments, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef } from 'vue'\n\nexport const makeVIconProps = propsFactory({\n color: String,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'i' }),\n ...makeThemeProps(),\n}, 'v-icon')\n\nexport const VIcon = defineComponent({\n name: 'VIcon',\n\n props: makeVIconProps(),\n\n setup (props, { attrs, slots }) {\n let slotIcon: ComputedRef<string | undefined> | undefined\n if (slots.default) {\n slotIcon = computed(() => {\n const slot = slots.default?.()\n if (!slot) return\n\n return flattenFragments(slot).filter(node =>\n node.children && typeof node.children === 'string'\n )[0]?.children as string\n })\n }\n\n const { themeClasses } = provideTheme(props)\n const { iconData } = useIcon(slotIcon || props)\n const { sizeClasses } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => (\n <iconData.value.component\n tag={ props.tag }\n icon={ iconData.value.icon }\n class={[\n 'v-icon',\n 'notranslate',\n themeClasses.value,\n sizeClasses.value,\n textColorClasses.value,\n {\n 'v-icon--clickable': !!attrs.onClick,\n 'v-icon--start': props.start,\n 'v-icon--end': props.end,\n },\n ]}\n style={[\n !sizeClasses.value ? ({\n fontSize: convertToUnit(props.size),\n height: convertToUnit(props.size),\n width: convertToUnit(props.size),\n }) : undefined,\n textColorStyles.value,\n ]}\n aria-hidden=\"true\"\n />\n ))\n\n return {}\n },\n})\n"],"mappings":";AAAA;AACA,qB,CAEA;;SACSA,S,EAAWC,O;SACXC,a,EAAeC,O;SACfC,Y;SACAC,c,EAAgBC,Y;SAChBC,Y,uCAET;;AACA,SAASC,QAAT,EAAmBC,KAAnB,QAAgC,KAAhC;SACSC,a,EAAeC,e,EAAiBC,gB,EAAkBC,Y,EAAcC,S,gCAEzE;;AAGA,OAAO,MAAMC,cAAc,GAAGF,YAAY,CAAC;EACzCG,KAAK,EAAEC,MADkC;EAEzCC,KAAK,EAAEC,OAFkC;EAGzCC,GAAG,EAAED,OAHoC;EAIzCE,IAAI,EAAErB,SAJmC;EAMzC,GAAGE,aAAa,EANyB;EAOzC,GAAGE,YAAY,CAAC;IAAEkB,GAAG,EAAE;EAAP,CAAD,CAP0B;EAQzC,GAAGjB,cAAc;AARwB,CAAD,EASvC,QATuC,CAAnC;AAWP,OAAO,MAAMkB,KAAK,GAAGZ,eAAe,CAAC;EACnCa,IAAI,EAAE,OAD6B;EAGnCC,KAAK,EAAEV,cAAc,EAHc;;EAKnCW,KAAK,CAAED,KAAF,QAA2B;IAAA,IAAlB;MAAEE,KAAF;MAASC;IAAT,CAAkB;IAC9B,IAAIC,QAAJ;;IACA,IAAID,KAAK,CAACE,OAAV,EAAmB;MACjBD,QAAQ,GAAGrB,QAAQ,CAAC,MAAM;QAAA;;QACxB,MAAMuB,IAAI,qBAAGH,KAAK,CAACE,OAAT,qBAAG,oBAAAF,KAAK,CAAlB;QACA,IAAI,CAACG,IAAL,EAAW;QAEX,gCAAOnB,gBAAgB,CAACmB,IAAD,CAAhB,CAAuBC,MAAvB,CAA8BC,IAAI,IACvCA,IAAI,CAACC,QAAL,IAAiB,OAAOD,IAAI,CAACC,QAAZ,KAAyB,QADrC,EAEL,CAFK,CAAP,qBAAO,sBAEDA,QAFN;MAGD,CAPkB,CAAnB;IAQD;;IAED,MAAM;MAAEC;IAAF,IAAmB7B,YAAY,CAACmB,KAAD,CAArC;IACA,MAAM;MAAEW;IAAF,IAAenC,OAAO,CAAC4B,QAAQ,IAAIJ,KAAb,CAA5B;IACA,MAAM;MAAEY;IAAF,IAAkBlC,OAAO,CAACsB,KAAD,CAA/B;IACA,MAAM;MAAEa,gBAAF;MAAoBC;IAApB,IAAwChC,YAAY,CAACE,KAAK,CAACgB,KAAD,EAAQ,OAAR,CAAN,CAA1D;IAEAX,SAAS,CAAC;MAAA,OAEAW,KAAK,CAACH,GAFN;MAAA,QAGCc,QAAQ,CAACI,KAAT,CAAenB,IAHhB;MAAA,SAIC,CACL,QADK,EAEL,aAFK,EAGLc,YAAY,CAACK,KAHR,EAILH,WAAW,CAACG,KAJP,EAKLF,gBAAgB,CAACE,KALZ,EAML;QACE,qBAAqB,CAAC,CAACb,KAAK,CAACc,OAD/B;QAEE,iBAAiBhB,KAAK,CAACP,KAFzB;QAGE,eAAeO,KAAK,CAACL;MAHvB,CANK,CAJD;MAAA,SAgBC,CACL,CAACiB,WAAW,CAACG,KAAb,GAAsB;QACpBE,QAAQ,EAAEhC,aAAa,CAACe,KAAK,CAACkB,IAAP,CADH;QAEpBC,MAAM,EAAElC,aAAa,CAACe,KAAK,CAACkB,IAAP,CAFD;QAGpBE,KAAK,EAAEnC,aAAa,CAACe,KAAK,CAACkB,IAAP;MAHA,CAAtB,GAIKG,SALA,EAMLP,eAAe,CAACC,KANX,CAhBD;MAAA,eAwBM;IAxBN,QAAD,CAAT;IA4BA,OAAO,EAAP;EACD;;AApDkC,CAAD,CAA7B"}
@@ -32,23 +32,5 @@
32
32
  .v-icon--start
33
33
  margin-inline-end: $icon-margin-start
34
34
 
35
- .v-btn:not(.v-btn--icon) &
36
- margin-inline-start: $icon-btn-margin-start
37
- margin-inline-end: $icon-btn-margin-end
38
-
39
- .v-btn.v-btn--stacked &
40
- margin-inline-start: 0
41
- margin-inline-end: 0
42
- margin-bottom: $icon-btn-stacked-margin
43
-
44
35
  .v-icon--end
45
36
  margin-inline-start: $icon-margin-end
46
-
47
- .v-btn:not(.v-btn--icon) &
48
- margin-inline-start: $icon-btn-margin-end
49
- margin-inline-end: $icon-btn-margin-start
50
-
51
- .v-btn.v-btn--stacked &
52
- margin-inline-start: 0
53
- margin-inline-end: 0
54
- margin-top: $icon-btn-stacked-margin
@@ -2,12 +2,7 @@
2
2
  @use '../../styles/settings';
3
3
  @use '../../styles/tools';
4
4
 
5
- // Defaults
6
- $icon-btn-margin-start-multiplier: -9 !default;
7
- $icon-btn-margin-end-multiplier: 4.5 !default;
8
- $icon-btn-margin-start: calc(var(--v-btn-height) / #{$icon-btn-margin-start-multiplier}) !default;
9
- $icon-btn-margin-end: calc(var(--v-btn-height) / #{$icon-btn-margin-end-multiplier}) !default;
10
- $icon-btn-stacked-margin: 4px !default;
5
+ // VIcon
11
6
  $icon-left-margin-left: map.get(settings.$grid-gutters, 'md') !default;
12
7
  $icon-letter-spacing: normal !default;
13
8
  $icon-line-height: 1 !default;
@@ -17,6 +12,7 @@ $icon-size: 1em !default;
17
12
  $icon-text-indent: 0 !default;
18
13
  $icon-vertical-align: middle !default;
19
14
 
15
+ // Lists
20
16
  $icon-sizes: () !default;
21
17
  $icon-sizes: tools.map-deep-merge(
22
18
  (
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["VIcon","VComponentIcon","VSvgIcon","VLigatureIcon","VClassIcon"],"sources":["../../../src/components/VIcon/index.ts"],"sourcesContent":["export { VIcon } from './VIcon'\nexport {\n VComponentIcon,\n VSvgIcon,\n VLigatureIcon,\n VClassIcon,\n} from '@/composables/icons'\n"],"mappings":"SAASA,K;SAEPC,c,EACAC,Q,EACAC,a,EACAC,U"}
1
+ {"version":3,"file":"index.mjs","names":["VIcon","VComponentIcon","VSvgIcon","VLigatureIcon","VClassIcon"],"sources":["../../../src/components/VIcon/index.ts"],"sourcesContent":["export { VIcon } from './VIcon'\nexport { VComponentIcon, VSvgIcon, VLigatureIcon, VClassIcon } from '@/composables/icons'\n"],"mappings":"SAASA,K;SACAC,c,EAAgBC,Q,EAAUC,a,EAAeC,U"}
@@ -164,6 +164,7 @@ export const VImg = defineComponent({
164
164
  class: ['v-img__img', containClasses.value],
165
165
  src: normalisedSrc.value.src,
166
166
  srcset: normalisedSrc.value.srcset,
167
+ alt: '',
167
168
  sizes: props.sizes,
168
169
  ref: image,
169
170
  onLoad,
@@ -1 +1 @@
1
- {"version":3,"file":"VImg.mjs","names":["VResponsive","intersect","makeTransitionProps","MaybeTransition","computed","h","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","setup","emit","slots","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","value","init","isIntersecting","lazyImg","Image","pollForSize","complete","onError","onLoad","getSrc","img","timeout","poll","imgHeight","imgWidth","setTimeout","endsWith","startsWith","containClasses","__image","class","sources","transition","__preloadImage","__placeholder","placeholder","error","__error","__gradient","backgroundImage","isBooted","stop","val","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 h,\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: ['loadstart', 'load', 'error'],\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),\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 // 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 function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\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 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 = computed(() => {\n if (!normalisedSrc.value.src || state.value === 'idle') return\n\n const img = h('img', {\n class: ['v-img__img', containClasses.value],\n src: normalisedSrc.value.src,\n srcset: normalisedSrc.value.srcset,\n sizes: props.sizes,\n ref: image,\n onLoad,\n onError,\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 = computed(() => (\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 = computed(() => {\n if (!slots.placeholder) return\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 = computed(() => {\n if (!slots.error) return\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 = computed(() => {\n if (!props.gradient) return\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 v-slots={{\n additional: () => [__image.value, __preloadImage.value, __gradient.value, __placeholder.value, __error.value],\n default: slots.default,\n }}\n />\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","h","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","setup","emit","slots","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","value","init","isIntersecting","lazyImg","Image","pollForSize","complete","onError","onLoad","getSrc","img","timeout","poll","imgHeight","imgWidth","setTimeout","endsWith","startsWith","containClasses","__image","class","sources","transition","__preloadImage","__placeholder","placeholder","error","__error","__gradient","backgroundImage","isBooted","stop","val","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 h,\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: ['loadstart', 'load', 'error'],\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),\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 // 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 function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\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 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 = computed(() => {\n if (!normalisedSrc.value.src || state.value === 'idle') return\n\n const img = h('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,\n onError,\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 = computed(() => (\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 = computed(() => {\n if (!slots.placeholder) return\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 = computed(() => {\n if (!slots.error) return\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 = computed(() => {\n if (!props.gradient) return\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 v-slots={{\n additional: () => [__image.value, __preloadImage.value, __gradient.value, __placeholder.value, __error.value],\n default: slots.default,\n }}\n />\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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"}
@@ -3,6 +3,7 @@
3
3
  flex: 1 1 auto;
4
4
  font-size: 1rem;
5
5
  font-weight: 400;
6
+ line-height: 1.5;
6
7
  }
7
8
  .v-input--disabled {
8
9
  pointer-events: none;
@@ -54,7 +55,6 @@
54
55
  grid-area: messages;
55
56
  letter-spacing: 0.0333333333em;
56
57
  line-height: normal;
57
- margin-bottom: 16px;
58
58
  min-height: 22px;
59
59
  padding-top: 6px;
60
60
  overflow: hidden;
@@ -108,5 +108,6 @@
108
108
  }
109
109
 
110
110
  .v-input__control {
111
+ display: flex;
111
112
  grid-area: control;
112
113
  }
@@ -5,9 +5,9 @@ import "./VInput.css"; // Components
5
5
  import { VIcon } from "../VIcon/index.mjs";
6
6
  import { VMessages } from "../VMessages/index.mjs"; // Composables
7
7
 
8
+ import { IconValue } from "../../composables/icons.mjs";
8
9
  import { makeDensityProps, useDensity } from "../../composables/density.mjs";
9
- import { makeValidationProps, useValidation } from "../../composables/validation.mjs";
10
- import { IconValue } from "../../composables/icons.mjs"; // Utilities
10
+ import { makeValidationProps, useValidation } from "../../composables/validation.mjs"; // Utilities
11
11
 
12
12
  import { computed } from 'vue';
13
13
  import { genericComponent, getUid, pick, propsFactory, useRender } from "../../util/index.mjs"; // Types
@@ -79,19 +79,23 @@ export const VInput = genericComponent()({
79
79
  const hasPrepend = !!(slots.prepend || props.prependIcon);
80
80
  const hasAppend = !!(slots.append || props.appendIcon);
81
81
  const hasMessages = !!((_props$messages = props.messages) != null && _props$messages.length || errorMessages.value.length);
82
- const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && hasMessages;
82
+ const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
83
83
  return _createVNode("div", {
84
84
  "class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value]
85
85
  }, [hasPrepend && _createVNode("div", {
86
+ "key": "prepend",
86
87
  "class": "v-input__prepend"
87
- }, [slots == null ? void 0 : (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value), props.prependIcon && _createVNode(VIcon, {
88
+ }, [props.prependIcon && _createVNode(VIcon, {
89
+ "key": "prepend-icon",
88
90
  "onClick": attrs['onClick:prepend'],
89
91
  "icon": props.prependIcon
90
- }, null)]), slots.default && _createVNode("div", {
92
+ }, null), (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value)]), slots.default && _createVNode("div", {
91
93
  "class": "v-input__control"
92
94
  }, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && _createVNode("div", {
95
+ "key": "append",
93
96
  "class": "v-input__append"
94
- }, [slots == null ? void 0 : (_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots, slotProps.value), props.appendIcon && _createVNode(VIcon, {
97
+ }, [(_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots, slotProps.value), props.appendIcon && _createVNode(VIcon, {
98
+ "key": "append-icon",
95
99
  "onClick": attrs['onClick:append'],
96
100
  "icon": props.appendIcon
97
101
  }, null)]), hasDetails && _createVNode("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"VInput.mjs","names":["VIcon","VMessages","makeDensityProps","useDensity","makeValidationProps","useValidation","IconValue","computed","genericComponent","getUid","pick","propsFactory","useRender","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","uid","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","slotProps","hasPrepend","prepend","hasAppend","append","hasMessages","length","value","hasDetails","message","details","filterInputProps","Object","keys"],"sources":["../../../src/components/VInput/VInput.tsx"],"sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VMessages } from '@/components/VMessages'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, getUid, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, ExtractPropTypes, PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport interface VInputSlot {\n id: 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 ...makeDensityProps(),\n ...makeValidationProps(),\n})\n\nexport type VInputSlots = MakeSlots<{\n default: [VInputSlot]\n prepend: [VInputSlot]\n append: [VInputSlot]\n details: [VInputSlot]\n}>\n\nexport const VInput = genericComponent<new <T>() => {\n $slots: 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\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\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 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\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\n class=\"v-input__prepend\"\n >\n { slots?.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <VIcon\n onClick={ attrs['onClick:prepend'] }\n icon={ props.prependIcon }\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\n class=\"v-input__append\"\n >\n { slots?.append?.(slotProps.value) }\n\n { props.appendIcon && (\n <VIcon\n onClick={ attrs['onClick:append'] }\n icon={ props.appendIcon }\n />\n ) }\n </div>\n ) }\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\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: ExtractPropTypes<ReturnType<typeof makeVInputProps>>) {\n return pick(props, Object.keys(VInput.props) as any)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"VInput.mjs","names":["VIcon","VMessages","IconValue","makeDensityProps","useDensity","makeValidationProps","useValidation","computed","genericComponent","getUid","pick","propsFactory","useRender","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","uid","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","slotProps","hasPrepend","prepend","hasAppend","append","hasMessages","length","value","hasDetails","details","message","filterInputProps","Object","keys"],"sources":["../../../src/components/VInput/VInput.tsx"],"sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\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 { genericComponent, getUid, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, ExtractPropTypes, PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport interface VInputSlot {\n id: 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 ...makeDensityProps(),\n ...makeValidationProps(),\n})\n\nexport type VInputSlots = MakeSlots<{\n default: [VInputSlot]\n prepend: [VInputSlot]\n append: [VInputSlot]\n details: [VInputSlot]\n}>\n\nexport const VInput = genericComponent<new <T>() => {\n $slots: 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\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\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 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 { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n onClick={ attrs['onClick:prepend'] }\n icon={ props.prependIcon }\n />\n ) }\n\n { slots.prepend?.(slotProps.value) }\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 { slots.append?.(slotProps.value) }\n\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n onClick={ attrs['onClick:append'] }\n icon={ props.appendIcon }\n />\n ) }\n </div>\n ) }\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\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: ExtractPropTypes<ReturnType<typeof makeVInputProps>>) {\n return pick(props, Object.keys(VInput.props) as any)\n}\n"],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  flex: 1 1 auto
7
7
  font-size: $input-font-size
8
8
  font-weight: $input-font-weight
9
+ line-height: 1.5
9
10
 
10
11
  &--disabled
11
12
  pointer-events: none
@@ -45,7 +46,6 @@
45
46
  grid-area: messages
46
47
  letter-spacing: $input-details-letter-spacing
47
48
  line-height: $input-details-line-height
48
- margin-bottom: $input-details-margin-bottom
49
49
  min-height: $input-details-min-height
50
50
  padding-top: $input-details-padding-above
51
51
  overflow: hidden
@@ -83,4 +83,5 @@
83
83
  grid-area: append
84
84
 
85
85
  .v-input__control
86
+ display: flex
86
87
  grid-area: control
@@ -13,7 +13,6 @@ $input-details-font-size: .75rem !default;
13
13
  $input-details-font-weight: 400 !default;
14
14
  $input-details-letter-spacing: .0333333333em !default;
15
15
  $input-details-line-height: normal !default;
16
- $input-details-margin-bottom: 16px !default;
17
16
  $input-details-min-height: 22px !default;
18
17
  $input-details-padding-above: 6px !default;
19
18
  $input-details-transition: 150ms settings.$standard-easing !default;
@@ -7,6 +7,9 @@ import { genericComponent } from "../../util/index.mjs"; // Types
7
7
  export const VItem = genericComponent()({
8
8
  name: 'VItem',
9
9
  props: makeGroupItemProps(),
10
+ emits: {
11
+ 'group:selected': val => true
12
+ },
10
13
 
11
14
  setup(props, _ref) {
12
15
  let {
@@ -1 +1 @@
1
- {"version":3,"file":"VItem.mjs","names":["makeGroupItemProps","useGroupItem","VItemGroupSymbol","genericComponent","VItem","name","props","setup","slots","isSelected","select","toggle","selectedClass","value","disabled","default"],"sources":["../../../src/components/VItemGroup/VItem.tsx"],"sourcesContent":["// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { VItemGroupSymbol } from './VItemGroup'\n\n// Utilities\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VItem = genericComponent<new () => {\n $slots: MakeSlots<{\n default: [GroupItemProvide]\n }>\n}>()({\n name: 'VItem',\n\n props: makeGroupItemProps(),\n\n setup (props, { slots }) {\n const { isSelected, select, toggle, selectedClass, value, disabled } = useGroupItem(props, VItemGroupSymbol)\n return () => slots.default?.({\n isSelected: isSelected.value,\n selectedClass: selectedClass.value,\n select,\n toggle,\n value: value.value,\n disabled: disabled.value,\n })\n },\n})\n\nexport type VItem = InstanceType<typeof VItem>\n"],"mappings":"AAAA;SACSA,kB,EAAoBC,Y;SACpBC,gB,4BAET;;SACSC,gB,gCAET;;AAIA,OAAO,MAAMC,KAAK,GAAGD,gBAAgB,GAIhC;EACHE,IAAI,EAAE,OADH;EAGHC,KAAK,EAAEN,kBAAkB,EAHtB;;EAKHO,KAAK,CAAED,KAAF,QAAoB;IAAA,IAAX;MAAEE;IAAF,CAAW;IACvB,MAAM;MAAEC,UAAF;MAAcC,MAAd;MAAsBC,MAAtB;MAA8BC,aAA9B;MAA6CC,KAA7C;MAAoDC;IAApD,IAAiEb,YAAY,CAACK,KAAD,EAAQJ,gBAAR,CAAnF;IACA,OAAO;MAAA;;MAAA,yBAAMM,KAAK,CAACO,OAAZ,qBAAM,oBAAAP,KAAK,EAAW;QAC3BC,UAAU,EAAEA,UAAU,CAACI,KADI;QAE3BD,aAAa,EAAEA,aAAa,CAACC,KAFF;QAG3BH,MAH2B;QAI3BC,MAJ2B;QAK3BE,KAAK,EAAEA,KAAK,CAACA,KALc;QAM3BC,QAAQ,EAAEA,QAAQ,CAACD;MANQ,CAAX,CAAX;IAAA,CAAP;EAQD;;AAfE,CAJgC,CAA9B"}
1
+ {"version":3,"file":"VItem.mjs","names":["makeGroupItemProps","useGroupItem","VItemGroupSymbol","genericComponent","VItem","name","props","emits","val","setup","slots","isSelected","select","toggle","selectedClass","value","disabled","default"],"sources":["../../../src/components/VItemGroup/VItem.tsx"],"sourcesContent":["// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { VItemGroupSymbol } from './VItemGroup'\n\n// Utilities\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VItem = genericComponent<new () => {\n $slots: MakeSlots<{\n default: [GroupItemProvide]\n }>\n}>()({\n name: 'VItem',\n\n props: makeGroupItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const { isSelected, select, toggle, selectedClass, value, disabled } = useGroupItem(props, VItemGroupSymbol)\n return () => slots.default?.({\n isSelected: isSelected.value,\n selectedClass: selectedClass.value,\n select,\n toggle,\n value: value.value,\n disabled: disabled.value,\n })\n },\n})\n\nexport type VItem = InstanceType<typeof VItem>\n"],"mappings":"AAAA;SACSA,kB,EAAoBC,Y;SACpBC,gB,4BAET;;SACSC,gB,gCAET;;AAIA,OAAO,MAAMC,KAAK,GAAGD,gBAAgB,GAIhC;EACHE,IAAI,EAAE,OADH;EAGHC,KAAK,EAAEN,kBAAkB,EAHtB;EAKHO,KAAK,EAAE;IACL,kBAAmBC,GAAD,IAA6B;EAD1C,CALJ;;EASHC,KAAK,CAAEH,KAAF,QAAoB;IAAA,IAAX;MAAEI;IAAF,CAAW;IACvB,MAAM;MAAEC,UAAF;MAAcC,MAAd;MAAsBC,MAAtB;MAA8BC,aAA9B;MAA6CC,KAA7C;MAAoDC;IAApD,IAAiEf,YAAY,CAACK,KAAD,EAAQJ,gBAAR,CAAnF;IACA,OAAO;MAAA;;MAAA,yBAAMQ,KAAK,CAACO,OAAZ,qBAAM,oBAAAP,KAAK,EAAW;QAC3BC,UAAU,EAAEA,UAAU,CAACI,KADI;QAE3BD,aAAa,EAAEA,aAAa,CAACC,KAFF;QAG3BH,MAH2B;QAI3BC,MAJ2B;QAK3BE,KAAK,EAAEA,KAAK,CAACA,KALc;QAM3BC,QAAQ,EAAEA,QAAQ,CAACD;MANQ,CAAX,CAAX;IAAA,CAAP;EAQD;;AAnBE,CAJgC,CAA9B"}
@@ -4,7 +4,7 @@ import "./VLabel.css"; // Composables
4
4
 
5
5
  import { makeThemeProps } from "../../composables/theme.mjs"; // Utilities
6
6
 
7
- import { defineComponent } from "../../util/index.mjs";
7
+ import { defineComponent, useRender } from "../../util/index.mjs";
8
8
  export const VLabel = defineComponent({
9
9
  name: 'VLabel',
10
10
  props: {
@@ -16,13 +16,14 @@ export const VLabel = defineComponent({
16
16
  let {
17
17
  slots
18
18
  } = _ref;
19
- return () => {
19
+ useRender(() => {
20
20
  var _slots$default;
21
21
 
22
22
  return _createVNode("label", {
23
23
  "class": "v-label"
24
24
  }, [props.text, (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]);
25
- };
25
+ });
26
+ return {};
26
27
  }
27
28
 
28
29
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VLabel.mjs","names":["makeThemeProps","defineComponent","VLabel","name","props","text","String","setup","slots","default"],"sources":["../../../src/components/VLabel/VLabel.tsx"],"sourcesContent":["// Styles\nimport './VLabel.sass'\n\n// Composables\nimport { makeThemeProps } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VLabel = defineComponent({\n name: 'VLabel',\n\n props: {\n text: String,\n\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n return () => (\n <label class=\"v-label\">\n { props.text }\n\n { slots.default?.() }\n </label>\n )\n },\n})\n\nexport type VLabel = InstanceType<typeof VLabel>\n"],"mappings":";AAAA;AACA,sB,CAEA;;SACSA,c,uCAET;;SACSC,e;AAET,OAAO,MAAMC,MAAM,GAAGD,eAAe,CAAC;EACpCE,IAAI,EAAE,QAD8B;EAGpCC,KAAK,EAAE;IACLC,IAAI,EAAEC,MADD;IAGL,GAAGN,cAAc;EAHZ,CAH6B;;EASpCO,KAAK,CAAEH,KAAF,QAAoB;IAAA,IAAX;MAAEI;IAAF,CAAW;IACvB,OAAO;MAAA;;MAAA;QAAA,SACQ;MADR,IAEDJ,KAAK,CAACC,IAFL,oBAIDG,KAAK,CAACC,OAJL,qBAID,oBAAAD,KAAK,CAJJ;IAAA,CAAP;EAOD;;AAjBmC,CAAD,CAA9B"}
1
+ {"version":3,"file":"VLabel.mjs","names":["makeThemeProps","defineComponent","useRender","VLabel","name","props","text","String","setup","slots","default"],"sources":["../../../src/components/VLabel/VLabel.tsx"],"sourcesContent":["// Styles\nimport './VLabel.sass'\n\n// Composables\nimport { makeThemeProps } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VLabel = defineComponent({\n name: 'VLabel',\n\n props: {\n text: String,\n\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n useRender(() => (\n <label class=\"v-label\">\n { props.text }\n\n { slots.default?.() }\n </label>\n ))\n\n return {}\n },\n})\n\nexport type VLabel = InstanceType<typeof VLabel>\n"],"mappings":";AAAA;AACA,sB,CAEA;;SACSA,c,uCAET;;SACSC,e,EAAiBC,S;AAE1B,OAAO,MAAMC,MAAM,GAAGF,eAAe,CAAC;EACpCG,IAAI,EAAE,QAD8B;EAGpCC,KAAK,EAAE;IACLC,IAAI,EAAEC,MADD;IAGL,GAAGP,cAAc;EAHZ,CAH6B;;EASpCQ,KAAK,CAAEH,KAAF,QAAoB;IAAA,IAAX;MAAEI;IAAF,CAAW;IACvBP,SAAS,CAAC;MAAA;;MAAA;QAAA,SACK;MADL,IAEJG,KAAK,CAACC,IAFF,oBAIJG,KAAK,CAACC,OAJF,qBAIJ,oBAAAD,KAAK,CAJD;IAAA,CAAD,CAAT;IAQA,OAAO,EAAP;EACD;;AAnBmC,CAAD,CAA9B"}
@@ -1,5 +1,6 @@
1
1
  @use '../../styles/settings';
2
2
 
3
+ // VLabel
3
4
  $label-color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)) !default;
4
5
  $label-disabled-color: rgba(var(--v-theme-on-surface), var(--v-disabled-opacity)) !default;
5
6
  $label-display: inline-flex !default;
@@ -1,9 +1,7 @@
1
1
  .v-layout {
2
2
  --v-scrollbar-offset: 0px;
3
- position: relative;
4
3
  display: flex;
5
4
  flex: 1 1 auto;
6
- overflow: hidden;
7
5
  }
8
6
  .v-layout--full-height {
9
7
  --v-scrollbar-offset: inherit;
@@ -1,9 +1,7 @@
1
1
  .v-layout
2
2
  --v-scrollbar-offset: 0px
3
- position: relative
4
3
  display: flex
5
4
  flex: 1 1 auto
6
- overflow: hidden
7
5
 
8
6
  &--full-height
9
7
  --v-scrollbar-offset: inherit
@@ -7,7 +7,8 @@ import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Directi
7
7
 
8
8
  import intersect from "../../directives/intersect/index.mjs"; // Utilities
9
9
 
10
- import { defineComponent } from "../../util/index.mjs";
10
+ import { defineComponent, useRender } from "../../util/index.mjs"; // Types
11
+
11
12
  export const VLazy = defineComponent({
12
13
  name: 'VLazy',
13
14
  directives: {
@@ -49,7 +50,7 @@ export const VLazy = defineComponent({
49
50
  isActive.value = isIntersecting;
50
51
  }
51
52
 
52
- return () => {
53
+ useRender(() => {
53
54
  var _slots$default;
54
55
 
55
56
  return _withDirectives(_createVNode(props.tag, {
@@ -62,7 +63,8 @@ export const VLazy = defineComponent({
62
63
  default: () => [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]
63
64
  })]
64
65
  }), [[_resolveDirective("intersect"), onIntersect, props.options]]);
65
- };
66
+ });
67
+ return {};
66
68
  }
67
69
 
68
70
  });