@vuetify/nightly 3.0.0-beta.3 → 3.0.0-beta.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 (441) hide show
  1. package/CHANGELOG.md +43 -2
  2. package/dist/_component-variables.sass +61 -0
  3. package/dist/json/attributes.json +261 -205
  4. package/dist/json/importMap.json +175 -219
  5. package/dist/json/tags.json +74 -104
  6. package/dist/json/web-types.json +880 -835
  7. package/dist/vuetify.css +597 -407
  8. package/dist/vuetify.d.ts +6770 -2144
  9. package/dist/vuetify.esm.js +9075 -8454
  10. package/dist/vuetify.esm.js.map +1 -1
  11. package/dist/vuetify.js +9074 -8453
  12. package/dist/vuetify.js.map +1 -1
  13. package/dist/vuetify.min.css +2 -2
  14. package/dist/vuetify.min.js +1078 -1040
  15. package/dist/vuetify.min.js.map +1 -1
  16. package/lib/blueprints/index.mjs +4 -0
  17. package/lib/blueprints/index.mjs.map +1 -0
  18. package/lib/blueprints/md1.mjs +63 -0
  19. package/lib/blueprints/md1.mjs.map +1 -0
  20. package/lib/blueprints/md2.mjs +60 -0
  21. package/lib/blueprints/md2.mjs.map +1 -0
  22. package/lib/blueprints/md3.mjs +74 -0
  23. package/lib/blueprints/md3.mjs.map +1 -0
  24. package/lib/components/VAlert/VAlert.css +5 -5
  25. package/lib/components/VAlert/VAlert.mjs +8 -2
  26. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  27. package/lib/components/VAlert/VAlert.sass +0 -2
  28. package/lib/components/VApp/VApp.css +2 -5
  29. package/lib/components/VApp/VApp.mjs +3 -4
  30. package/lib/components/VApp/VApp.mjs.map +1 -1
  31. package/lib/components/VApp/VApp.sass +11 -12
  32. package/lib/components/VApp/variables.scss +6 -0
  33. package/lib/components/VAppBar/VAppBar.mjs +4 -3
  34. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  35. package/lib/components/VAppBar/VAppBar.sass +0 -1
  36. package/lib/components/VAppBar/VAppBarNavIcon.mjs +7 -12
  37. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  38. package/lib/components/VAppBar/VAppBarTitle.mjs +4 -3
  39. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  40. package/lib/components/VAppBar/_variables.scss +2 -0
  41. package/lib/components/VAutocomplete/VAutocomplete.mjs +54 -21
  42. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  43. package/lib/components/VAutocomplete/VAutocomplete.sass +0 -2
  44. package/lib/components/VAvatar/VAvatar.css +1 -1
  45. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  46. package/lib/components/VAvatar/VAvatar.sass +1 -2
  47. package/lib/components/VAvatar/_mixins.scss +0 -1
  48. package/lib/components/VBadge/VBadge.mjs +8 -7
  49. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  50. package/lib/components/VBadge/VBadge.sass +0 -1
  51. package/lib/components/VBadge/_variables.scss +2 -2
  52. package/lib/components/VBanner/VBanner.css +7 -7
  53. package/lib/components/VBanner/VBanner.mjs +24 -17
  54. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  55. package/lib/components/VBanner/VBanner.sass +6 -8
  56. package/lib/components/VBanner/VBannerActions.mjs +1 -1
  57. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  58. package/lib/components/VBanner/index.mjs +0 -2
  59. package/lib/components/VBanner/index.mjs.map +1 -1
  60. package/lib/components/VBottomNavigation/VBottomNavigation.css +4 -11
  61. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +4 -3
  62. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  63. package/lib/components/VBottomNavigation/VBottomNavigation.sass +5 -13
  64. package/lib/components/VBottomNavigation/_variables.scss +7 -8
  65. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +13 -6
  66. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +30 -19
  67. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  68. package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +8 -4
  69. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +5 -8
  70. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  71. package/lib/components/VBreadcrumbs/_variables.scss +2 -1
  72. package/lib/components/VBtn/VBtn.css +72 -15
  73. package/lib/components/VBtn/VBtn.mjs +70 -27
  74. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  75. package/lib/components/VBtn/VBtn.sass +70 -13
  76. package/lib/components/VBtn/_variables.scss +4 -1
  77. package/lib/components/VBtnGroup/VBtnGroup.sass +0 -1
  78. package/lib/components/VBtnGroup/_variables.scss +2 -0
  79. package/lib/components/VBtnToggle/VBtnToggle.sass +0 -1
  80. package/lib/components/VBtnToggle/_variables.scss +1 -0
  81. package/lib/components/VCard/VCard.css +86 -69
  82. package/lib/components/VCard/VCard.mjs +52 -66
  83. package/lib/components/VCard/VCard.mjs.map +1 -1
  84. package/lib/components/VCard/VCard.sass +74 -62
  85. package/lib/components/VCard/VCardActions.mjs +1 -1
  86. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  87. package/lib/components/VCard/VCardItem.mjs +88 -0
  88. package/lib/components/VCard/VCardItem.mjs.map +1 -0
  89. package/lib/components/VCard/_variables.scss +40 -24
  90. package/lib/components/VCard/index.mjs +1 -5
  91. package/lib/components/VCard/index.mjs.map +1 -1
  92. package/lib/components/VCarousel/VCarousel.mjs +5 -4
  93. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  94. package/lib/components/VCarousel/VCarousel.sass +0 -1
  95. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  96. package/lib/components/VCarousel/_variables.scss +1 -0
  97. package/lib/components/VCheckbox/VCheckbox.mjs +13 -46
  98. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  99. package/lib/components/VCheckbox/VCheckbox.sass +0 -1
  100. package/lib/components/VCheckbox/VCheckboxBtn.mjs +67 -0
  101. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -0
  102. package/lib/components/VCheckbox/index.mjs +1 -0
  103. package/lib/components/VCheckbox/index.mjs.map +1 -1
  104. package/lib/components/VChip/VChip.css +142 -65
  105. package/lib/components/VChip/VChip.mjs +77 -38
  106. package/lib/components/VChip/VChip.mjs.map +1 -1
  107. package/lib/components/VChip/VChip.sass +6 -1
  108. package/lib/components/VChip/_mixins.scss +26 -6
  109. package/lib/components/VChip/_variables.scss +1 -5
  110. package/lib/components/VChipGroup/VChipGroup.mjs +5 -4
  111. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  112. package/lib/components/VChipGroup/VChipGroup.sass +1 -1
  113. package/lib/components/VChipGroup/_variables.scss +1 -1
  114. package/lib/components/VCode/VCode.sass +1 -2
  115. package/lib/components/VCode/_variables.scss +1 -1
  116. package/lib/components/VColorPicker/VColorPicker.mjs +16 -10
  117. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  118. package/lib/components/VColorPicker/VColorPicker.sass +0 -1
  119. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -4
  120. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  121. package/lib/components/VColorPicker/VColorPickerCanvas.sass +0 -1
  122. package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -3
  123. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  124. package/lib/components/VColorPicker/VColorPickerEdit.sass +0 -1
  125. package/lib/components/VColorPicker/VColorPickerPreview.mjs +4 -3
  126. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  127. package/lib/components/VColorPicker/VColorPickerPreview.sass +0 -1
  128. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +6 -5
  129. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  130. package/lib/components/VColorPicker/VColorPickerSwatches.sass +0 -1
  131. package/lib/components/VColorPicker/_variables.scss +17 -10
  132. package/lib/components/VCombobox/VCombobox.mjs +52 -36
  133. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  134. package/lib/components/VCombobox/VCombobox.sass +0 -2
  135. package/lib/components/VCounter/VCounter.mjs +16 -16
  136. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  137. package/lib/components/VCounter/VCounter.sass +1 -2
  138. package/lib/components/VCounter/_variables.scss +2 -1
  139. package/lib/components/VDialog/VDialog.css +2 -5
  140. package/lib/components/VDialog/VDialog.mjs +25 -25
  141. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  142. package/lib/components/VDialog/VDialog.sass +1 -5
  143. package/lib/components/VDialog/_variables.scss +0 -1
  144. package/lib/components/VDivider/VDivider.mjs +16 -17
  145. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  146. package/lib/components/VDivider/VDivider.sass +0 -1
  147. package/lib/components/VDivider/_variables.scss +3 -1
  148. package/lib/components/VExpansionPanel/VExpansionPanel.css +1 -0
  149. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +9 -4
  150. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  151. package/lib/components/VExpansionPanel/VExpansionPanel.sass +1 -1
  152. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +7 -7
  153. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  154. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  155. package/lib/components/VExpansionPanel/_variables.scss +15 -10
  156. package/lib/components/VField/VField.css +11 -11
  157. package/lib/components/VField/VField.mjs +19 -12
  158. package/lib/components/VField/VField.mjs.map +1 -1
  159. package/lib/components/VField/VField.sass +8 -10
  160. package/lib/components/VField/VFieldLabel.mjs +8 -9
  161. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  162. package/lib/components/VField/_variables.scss +3 -3
  163. package/lib/components/VFileInput/VFileInput.css +3 -3
  164. package/lib/components/VFileInput/VFileInput.mjs +12 -7
  165. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  166. package/lib/components/VFileInput/VFileInput.sass +3 -4
  167. package/lib/components/VFooter/VFooter.mjs +4 -3
  168. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  169. package/lib/components/VFooter/VFooter.sass +0 -1
  170. package/lib/components/VFooter/_variables.scss +2 -1
  171. package/lib/components/VForm/VForm.mjs +3 -3
  172. package/lib/components/VForm/VForm.mjs.map +1 -1
  173. package/lib/components/VGrid/VCol.mjs.map +1 -1
  174. package/lib/components/VGrid/VContainer.mjs +4 -3
  175. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  176. package/lib/components/VGrid/VRow.mjs.map +1 -1
  177. package/lib/components/VIcon/VIcon.css +0 -8
  178. package/lib/components/VIcon/VIcon.mjs +20 -21
  179. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  180. package/lib/components/VIcon/VIcon.sass +0 -9
  181. package/lib/components/VIcon/_variables.scss +2 -5
  182. package/lib/components/VIcon/index.mjs.map +1 -1
  183. package/lib/components/VImg/VImg.sass +0 -1
  184. package/lib/components/VInput/VInput.mjs +13 -9
  185. package/lib/components/VInput/VInput.mjs.map +1 -1
  186. package/lib/components/VInput/VInput.sass +0 -1
  187. package/lib/components/VItemGroup/VItem.mjs +3 -0
  188. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  189. package/lib/components/VItemGroup/VItemGroup.sass +0 -1
  190. package/lib/components/VKbd/VKbd.sass +0 -1
  191. package/lib/components/VKbd/_variables.scss +1 -1
  192. package/lib/components/VLabel/VLabel.mjs +4 -3
  193. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  194. package/lib/components/VLabel/VLabel.sass +0 -1
  195. package/lib/components/VLabel/_variables.scss +1 -0
  196. package/lib/components/VLazy/VLazy.mjs +5 -3
  197. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  198. package/lib/components/VList/VList.css +2 -2
  199. package/lib/components/VList/VList.mjs +16 -18
  200. package/lib/components/VList/VList.mjs.map +1 -1
  201. package/lib/components/VList/VList.sass +1 -2
  202. package/lib/components/VList/VListChildren.mjs +7 -6
  203. package/lib/components/VList/VListChildren.mjs.map +1 -1
  204. package/lib/components/VList/VListGroup.mjs +45 -31
  205. package/lib/components/VList/VListGroup.mjs.map +1 -1
  206. package/lib/components/VList/VListItem.css +84 -58
  207. package/lib/components/VList/VListItem.mjs +78 -45
  208. package/lib/components/VList/VListItem.mjs.map +1 -1
  209. package/lib/components/VList/VListItem.sass +68 -40
  210. package/lib/components/VList/VListItemAction.mjs +8 -9
  211. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  212. package/lib/components/VList/VListItemMedia.mjs +4 -3
  213. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  214. package/lib/components/VList/VListSubheader.mjs +4 -3
  215. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  216. package/lib/components/VList/_variables.scss +11 -5
  217. package/lib/components/VList/index.mjs +2 -5
  218. package/lib/components/VList/index.mjs.map +1 -1
  219. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -3
  220. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  221. package/lib/components/VMain/VMain.mjs +4 -3
  222. package/lib/components/VMain/VMain.mjs.map +1 -1
  223. package/lib/components/VMain/VMain.sass +0 -1
  224. package/lib/components/VMain/_variables.scss +1 -1
  225. package/lib/components/VMenu/VMenu.mjs +5 -5
  226. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  227. package/lib/components/VMenu/VMenu.sass +0 -1
  228. package/lib/components/VMessages/VMessages.mjs +5 -3
  229. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  230. package/lib/components/VMessages/VMessages.sass +0 -1
  231. package/lib/components/VMessages/_variables.scss +1 -1
  232. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +10 -4
  233. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  234. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
  235. package/lib/components/VNavigationDrawer/_variables.scss +2 -1
  236. package/lib/components/VNavigationDrawer/touch.mjs +5 -2
  237. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  238. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  239. package/lib/components/VOverlay/VOverlay.mjs +10 -8
  240. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  241. package/lib/components/VOverlay/VOverlay.sass +0 -1
  242. package/lib/components/VOverlay/locationStrategies.mjs +267 -78
  243. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  244. package/lib/components/VOverlay/useActivator.mjs +4 -3
  245. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  246. package/lib/components/VOverlay/util/point.mjs +3 -3
  247. package/lib/components/VOverlay/util/point.mjs.map +1 -1
  248. package/lib/components/VPagination/VPagination.mjs +41 -23
  249. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  250. package/lib/components/VPagination/VPagination.sass +0 -1
  251. package/lib/components/VParallax/VParallax.mjs +5 -5
  252. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  253. package/lib/components/VProgressCircular/VProgressCircular.mjs +6 -5
  254. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  255. package/lib/components/VProgressCircular/VProgressCircular.sass +0 -1
  256. package/lib/components/VProgressCircular/_variables.scss +2 -0
  257. package/lib/components/VProgressLinear/VProgressLinear.mjs +5 -3
  258. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  259. package/lib/components/VProgressLinear/VProgressLinear.sass +0 -1
  260. package/lib/components/VProgressLinear/_variables.scss +1 -0
  261. package/lib/components/VRadioGroup/VRadioGroup.mjs +6 -3
  262. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  263. package/lib/components/VRadioGroup/VRadioGroup.sass +5 -3
  264. package/lib/components/VRadioGroup/_variables.scss +3 -4
  265. package/lib/components/VRangeSlider/VRangeSlider.mjs +12 -13
  266. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  267. package/lib/components/VRating/VRating.mjs +6 -5
  268. package/lib/components/VRating/VRating.mjs.map +1 -1
  269. package/lib/components/VRating/VRating.sass +2 -1
  270. package/lib/components/VResponsive/VResponsive.mjs +7 -6
  271. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  272. package/lib/components/VSelect/VSelect.mjs +61 -22
  273. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  274. package/lib/components/VSelect/VSelect.sass +0 -2
  275. package/lib/components/VSelectionControl/VSelectionControl.css +1 -0
  276. package/lib/components/VSelectionControl/VSelectionControl.mjs +12 -10
  277. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  278. package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
  279. package/lib/components/VSelectionControl/_variables.scss +1 -0
  280. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -3
  281. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  282. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +1 -6
  283. package/lib/components/VSelectionControlGroup/_variables.scss +1 -4
  284. package/lib/components/VSheet/VSheet.mjs +3 -3
  285. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  286. package/lib/components/VSheet/VSheet.sass +0 -1
  287. package/lib/components/VSheet/_variables.scss +3 -2
  288. package/lib/components/VSlideGroup/VSlideGroup.mjs +47 -49
  289. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  290. package/lib/components/VSlideGroup/VSlideGroup.sass +0 -1
  291. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +7 -3
  292. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  293. package/lib/components/VSlideGroup/_variables.scss +0 -5
  294. package/lib/components/VSlideGroup/index.mjs +2 -2
  295. package/lib/components/VSlideGroup/index.mjs.map +1 -1
  296. package/lib/components/VSlider/VSlider.mjs +7 -9
  297. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  298. package/lib/components/VSlider/VSlider.sass +0 -2
  299. package/lib/components/VSlider/VSliderThumb.mjs +6 -5
  300. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  301. package/lib/components/VSlider/VSliderThumb.sass +0 -2
  302. package/lib/components/VSlider/VSliderTrack.mjs +11 -10
  303. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  304. package/lib/components/VSlider/VSliderTrack.sass +0 -2
  305. package/lib/components/VSlider/slider.mjs +4 -4
  306. package/lib/components/VSlider/slider.mjs.map +1 -1
  307. package/lib/components/VSnackbar/VSnackbar.css +5 -5
  308. package/lib/components/VSnackbar/VSnackbar.mjs +49 -49
  309. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  310. package/lib/components/VSnackbar/VSnackbar.sass +0 -1
  311. package/lib/components/VSnackbar/_variables.scss +2 -0
  312. package/lib/components/VSwitch/VSwitch.css +7 -0
  313. package/lib/components/VSwitch/VSwitch.mjs +8 -2
  314. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  315. package/lib/components/VSwitch/VSwitch.sass +6 -1
  316. package/lib/components/VSwitch/_variables.scss +1 -0
  317. package/lib/components/VSystemBar/VSystemBar.mjs +5 -13
  318. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  319. package/lib/components/VSystemBar/VSystemBar.sass +0 -1
  320. package/lib/components/VSystemBar/_variables.scss +2 -1
  321. package/lib/components/VTable/VTable.css +1 -0
  322. package/lib/components/VTable/VTable.mjs +9 -8
  323. package/lib/components/VTable/VTable.mjs.map +1 -1
  324. package/lib/components/VTable/VTable.sass +1 -1
  325. package/lib/components/VTable/_variables.scss +2 -0
  326. package/lib/components/VTabs/VTab.css +3 -1
  327. package/lib/components/VTabs/VTab.mjs +4 -4
  328. package/lib/components/VTabs/VTab.mjs.map +1 -1
  329. package/lib/components/VTabs/VTab.sass +4 -2
  330. package/lib/components/VTabs/VTabs.mjs +15 -12
  331. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  332. package/lib/components/VTabs/VTabs.sass +0 -1
  333. package/lib/components/VTabs/_variables.scss +2 -0
  334. package/lib/components/VTextField/VTextField.mjs +25 -13
  335. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  336. package/lib/components/VTextField/VTextField.sass +0 -1
  337. package/lib/components/VTextField/_variables.scss +1 -1
  338. package/lib/components/VTextarea/VTextarea.mjs +22 -12
  339. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  340. package/lib/components/VTextarea/VTextarea.sass +0 -2
  341. package/lib/components/VTextarea/_variables.scss +1 -0
  342. package/lib/components/VTimeline/VTimeline.mjs +24 -25
  343. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  344. package/lib/components/VTimeline/VTimeline.sass +3 -3
  345. package/lib/components/VTimeline/VTimelineDivider.mjs +41 -38
  346. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  347. package/lib/components/VTimeline/VTimelineItem.mjs +10 -11
  348. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  349. package/lib/components/VTimeline/_variables.scss +11 -6
  350. package/lib/components/VToolbar/VToolbar.css +15 -6
  351. package/lib/components/VToolbar/VToolbar.mjs +9 -9
  352. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  353. package/lib/components/VToolbar/VToolbar.sass +15 -7
  354. package/lib/components/VToolbar/VToolbarItems.mjs +12 -8
  355. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  356. package/lib/components/VToolbar/_variables.scss +6 -2
  357. package/lib/components/VTooltip/VTooltip.mjs +41 -39
  358. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  359. package/lib/components/VTooltip/VTooltip.sass +0 -1
  360. package/lib/components/VTooltip/_variables.scss +1 -0
  361. package/lib/components/VWindow/VWindow.mjs +4 -4
  362. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  363. package/lib/components/VWindow/VWindow.sass +0 -2
  364. package/lib/components/VWindow/VWindowItem.mjs +21 -11
  365. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  366. package/lib/components/VWindow/_variables.scss +1 -0
  367. package/lib/components/index.d.ts +7316 -2666
  368. package/lib/components/transitions/dialog-transition.mjs +3 -0
  369. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  370. package/lib/components/transitions/index.mjs +0 -5
  371. package/lib/components/transitions/index.mjs.map +1 -1
  372. package/lib/composables/border.mjs +5 -6
  373. package/lib/composables/border.mjs.map +1 -1
  374. package/lib/composables/display.mjs +13 -11
  375. package/lib/composables/display.mjs.map +1 -1
  376. package/lib/composables/form.mjs +6 -6
  377. package/lib/composables/form.mjs.map +1 -1
  378. package/lib/composables/group.mjs.map +1 -1
  379. package/lib/composables/items.mjs +2 -2
  380. package/lib/composables/items.mjs.map +1 -1
  381. package/lib/composables/location.mjs +4 -8
  382. package/lib/composables/location.mjs.map +1 -1
  383. package/lib/composables/proxiedModel.mjs +2 -1
  384. package/lib/composables/proxiedModel.mjs.map +1 -1
  385. package/lib/composables/size.mjs +2 -2
  386. package/lib/composables/size.mjs.map +1 -1
  387. package/lib/composables/ssrBoot.mjs +3 -2
  388. package/lib/composables/ssrBoot.mjs.map +1 -1
  389. package/lib/composables/stack.mjs +7 -7
  390. package/lib/composables/stack.mjs.map +1 -1
  391. package/lib/composables/theme.mjs +15 -6
  392. package/lib/composables/theme.mjs.map +1 -1
  393. package/lib/composables/validation.mjs +15 -8
  394. package/lib/composables/validation.mjs.map +1 -1
  395. package/lib/composables/variant.mjs +7 -5
  396. package/lib/composables/variant.mjs.map +1 -1
  397. package/lib/directives/ripple/VRipple.sass +0 -1
  398. package/lib/entry-bundler.mjs +1 -1
  399. package/lib/framework.mjs +29 -7
  400. package/lib/framework.mjs.map +1 -1
  401. package/lib/index.d.ts +68 -70
  402. package/lib/styles/generic/_transitions.scss +13 -77
  403. package/lib/styles/main.css +44 -58
  404. package/lib/styles/tools/_variant.sass +6 -6
  405. package/lib/util/anchor.mjs +34 -28
  406. package/lib/util/anchor.mjs.map +1 -1
  407. package/lib/util/animation.mjs +2 -2
  408. package/lib/util/animation.mjs.map +1 -1
  409. package/lib/util/box.mjs +12 -0
  410. package/lib/util/box.mjs.map +1 -1
  411. package/lib/util/getCurrentInstance.mjs +19 -0
  412. package/lib/util/getCurrentInstance.mjs.map +1 -1
  413. package/lib/util/helpers.mjs +21 -5
  414. package/lib/util/helpers.mjs.map +1 -1
  415. package/package.json +16 -10
  416. package/lib/components/VBanner/VBannerAvatar.mjs +0 -20
  417. package/lib/components/VBanner/VBannerAvatar.mjs.map +0 -1
  418. package/lib/components/VBanner/VBannerIcon.mjs +0 -20
  419. package/lib/components/VBanner/VBannerIcon.mjs.map +0 -1
  420. package/lib/components/VBreadcrumbs/shared.mjs +0 -2
  421. package/lib/components/VBreadcrumbs/shared.mjs.map +0 -1
  422. package/lib/components/VCard/VCardAvatar.mjs +0 -3
  423. package/lib/components/VCard/VCardAvatar.mjs.map +0 -1
  424. package/lib/components/VCard/VCardContent.mjs +0 -3
  425. package/lib/components/VCard/VCardContent.mjs.map +0 -1
  426. package/lib/components/VCard/VCardHeader.mjs +0 -3
  427. package/lib/components/VCard/VCardHeader.mjs.map +0 -1
  428. package/lib/components/VCard/VCardHeaderText.mjs +0 -3
  429. package/lib/components/VCard/VCardHeaderText.mjs.map +0 -1
  430. package/lib/components/VCard/VCardImg.mjs +0 -3
  431. package/lib/components/VCard/VCardImg.mjs.map +0 -1
  432. package/lib/components/VList/VListItemAvatar.mjs +0 -23
  433. package/lib/components/VList/VListItemAvatar.mjs.map +0 -1
  434. package/lib/components/VList/VListItemHeader.mjs +0 -3
  435. package/lib/components/VList/VListItemHeader.mjs.map +0 -1
  436. package/lib/components/VList/VListItemIcon.mjs +0 -23
  437. package/lib/components/VList/VListItemIcon.mjs.map +0 -1
  438. package/lib/components/VTimeline/shared.mjs +0 -2
  439. package/lib/components/VTimeline/shared.mjs.map +0 -1
  440. package/lib/presets/default/index.mjs +0 -71
  441. package/lib/presets/default/index.mjs.map +0 -1
@@ -1,7 +1,9 @@
1
1
  .v-btn {
2
2
  align-items: center;
3
3
  border-radius: 4px;
4
- display: inline-flex;
4
+ display: inline-grid;
5
+ grid-template-areas: "prepend content append";
6
+ grid-template-columns: max-content auto max-content;
5
7
  font-weight: 500;
6
8
  justify-content: center;
7
9
  letter-spacing: 0.0892857143em;
@@ -104,7 +106,7 @@
104
106
  .v-btn--active:focus > .v-btn__overlay, .v-btn[aria-haspopup=menu][aria-expanded=true]:focus > .v-btn__overlay {
105
107
  opacity: calc(0.16 * var(--v-theme-overlay-multiplier));
106
108
  }
107
- .v-btn--variant-plain, .v-btn--variant-outlined, .v-btn--variant-text, .v-btn--variant-contained-text {
109
+ .v-btn--variant-plain, .v-btn--variant-outlined, .v-btn--variant-text, .v-btn--variant-tonal {
108
110
  background: transparent;
109
111
  color: inherit;
110
112
  }
@@ -117,14 +119,14 @@
117
119
  .v-btn--variant-plain .v-btn__overlay {
118
120
  display: none;
119
121
  }
120
- .v-btn--variant-contained, .v-btn--variant-contained-flat {
122
+ .v-btn--variant-elevated, .v-btn--variant-flat {
121
123
  background: rgb(var(--v-theme-surface));
122
124
  color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));
123
125
  }
124
- .v-btn--variant-contained {
126
+ .v-btn--variant-elevated {
125
127
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
126
128
  }
127
- .v-btn--variant-contained-flat {
129
+ .v-btn--variant-flat {
128
130
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
129
131
  }
130
132
  .v-btn--variant-outlined {
@@ -133,7 +135,7 @@
133
135
  .v-btn--variant-text .v-btn__overlay {
134
136
  background: currentColor;
135
137
  }
136
- .v-btn--variant-contained-text .v-btn__underlay {
138
+ .v-btn--variant-tonal .v-btn__underlay {
137
139
  background: currentColor;
138
140
  opacity: var(--v-activated-opacity);
139
141
  border-radius: inherit;
@@ -167,6 +169,8 @@
167
169
  border-radius: 50%;
168
170
  min-width: 0;
169
171
  padding: 0;
172
+ }
173
+ .v-btn--icon.v-btn--size-default {
170
174
  font-size: 1rem;
171
175
  }
172
176
  .v-btn--icon.v-btn--density-default {
@@ -201,16 +205,25 @@
201
205
  }
202
206
  .v-btn--disabled.v-btn--disabled {
203
207
  color: rgba(var(--v-theme-on-surface), 0.26);
204
- opacity: 1;
208
+ opacity: 0.4615384615;
205
209
  }
206
- .v-btn--disabled.v-btn--variant-contained {
210
+ .v-btn--disabled.v-btn--variant-elevated, .v-btn--disabled.v-btn--variant-flat {
207
211
  background: rgb(var(--v-theme-surface));
208
212
  box-shadow: none;
213
+ opacity: 1;
209
214
  }
210
- .v-btn--disabled.v-btn--variant-contained .v-btn__overlay {
215
+ .v-btn--disabled.v-btn--variant-elevated .v-btn__overlay, .v-btn--disabled.v-btn--variant-flat .v-btn__overlay {
211
216
  opacity: 0.4615384615;
212
217
  }
213
- .v-btn--stacked {
218
+ .v-btn--loading {
219
+ pointer-events: none;
220
+ }
221
+ .v-btn--loading .v-btn__content,
222
+ .v-btn--loading .v-btn__prepend,
223
+ .v-btn--loading .v-btn__append {
224
+ opacity: 0;
225
+ }
226
+ .v-btn--stacked .v-btn__content {
214
227
  flex-direction: column;
215
228
  line-height: 1.25;
216
229
  }
@@ -279,25 +292,69 @@
279
292
  --v-icon-size-multiplier: 1.1428571429;
280
293
  }
281
294
 
282
- .v-btn__content {
295
+ .v-btn__loader {
296
+ align-items: center;
297
+ display: flex;
298
+ height: 100%;
299
+ justify-content: center;
300
+ left: 0;
301
+ position: absolute;
302
+ top: 0;
303
+ width: 100%;
304
+ }
305
+
306
+ .v-btn__content,
307
+ .v-btn__prepend,
308
+ .v-btn__append {
309
+ align-items: center;
310
+ display: flex;
283
311
  transition: transform, opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
312
+ }
313
+
314
+ .v-btn__prepend {
315
+ grid-area: prepend;
316
+ margin-inline-start: calc(var(--v-btn-height) / -9);
317
+ margin-inline-end: calc(var(--v-btn-height) / 4.5);
318
+ }
319
+
320
+ .v-btn__append {
321
+ grid-area: append;
322
+ margin-inline-start: calc(var(--v-btn-height) / 4.5);
323
+ margin-inline-end: calc(var(--v-btn-height) / -9);
324
+ }
325
+
326
+ .v-btn__content {
327
+ grid-area: content;
328
+ justify-content: center;
284
329
  white-space: nowrap;
285
330
  }
331
+ .v-btn__content > .v-icon--start {
332
+ margin-inline-start: calc(var(--v-btn-height) / -9);
333
+ margin-inline-end: calc(var(--v-btn-height) / 4.5);
334
+ }
335
+ .v-btn__content > .v-icon--end {
336
+ margin-inline-start: calc(var(--v-btn-height) / 4.5);
337
+ margin-inline-end: calc(var(--v-btn-height) / -9);
338
+ }
286
339
  .v-btn--stacked .v-btn__content {
287
340
  white-space: normal;
288
341
  }
289
342
 
290
343
  .v-btn__overlay {
344
+ background-color: currentColor;
345
+ border-radius: inherit;
346
+ opacity: 0;
347
+ transition: opacity 0.2s ease-in-out;
348
+ }
349
+
350
+ .v-btn__overlay,
351
+ .v-btn__underlay {
291
352
  position: absolute;
292
353
  top: 0;
293
354
  left: 0;
294
355
  width: 100%;
295
356
  height: 100%;
296
- background-color: currentColor;
297
- border-radius: inherit;
298
357
  pointer-events: none;
299
- opacity: 0;
300
- transition: opacity 0.2s ease-in-out;
301
358
  }
302
359
 
303
360
  .v-app-bar .v-btn {
@@ -3,13 +3,20 @@ import { withDirectives as _withDirectives, resolveDirective as _resolveDirectiv
3
3
  import "./VBtn.css"; // Components
4
4
 
5
5
  import { VBtnToggleSymbol } from "../VBtnToggle/VBtnToggle.mjs";
6
- import { VIcon } from "../VIcon/index.mjs"; // Composables
6
+ import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
7
+ import { VIcon } from "../VIcon/index.mjs";
8
+ import { VProgressCircular } from "../VProgressCircular/index.mjs"; // Directives
7
9
 
10
+ import { Ripple } from "../../directives/ripple/index.mjs"; // Composables
11
+
12
+ import { genOverlays, makeVariantProps, useVariant } from "../../composables/variant.mjs";
13
+ import { IconValue } from "../../composables/icons.mjs";
8
14
  import { makeBorderProps, useBorder } from "../../composables/border.mjs";
9
15
  import { makeDensityProps, useDensity } from "../../composables/density.mjs";
10
16
  import { makeDimensionProps, useDimension } from "../../composables/dimensions.mjs";
11
17
  import { makeElevationProps, useElevation } from "../../composables/elevation.mjs";
12
18
  import { makeGroupItemProps, useGroupItem } from "../../composables/group.mjs";
19
+ import { makeLoaderProps, useLoader } from "../../composables/loader.mjs";
13
20
  import { makeLocationProps, useLocation } from "../../composables/location.mjs";
14
21
  import { makePositionProps, usePosition } from "../../composables/position.mjs";
15
22
  import { makeRoundedProps, useRounded } from "../../composables/rounded.mjs";
@@ -17,14 +24,10 @@ import { makeRouterProps, useLink } from "../../composables/router.mjs";
17
24
  import { makeSizeProps, useSize } from "../../composables/size.mjs";
18
25
  import { makeTagProps } from "../../composables/tag.mjs";
19
26
  import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
20
- import { genOverlays, makeVariantProps, useVariant } from "../../composables/variant.mjs";
21
- import { useSelectLink } from "../../composables/selectLink.mjs";
22
- import { IconValue } from "../../composables/icons.mjs"; // Directives
23
-
24
- import { Ripple } from "../../directives/ripple/index.mjs"; // Utilities
27
+ import { useSelectLink } from "../../composables/selectLink.mjs"; // Utilities
25
28
 
26
29
  import { computed } from 'vue';
27
- import { defineComponent } from "../../util/index.mjs"; // Types
30
+ import { defineComponent, useRender } from "../../util/index.mjs"; // Types
28
31
 
29
32
  export const VBtn = defineComponent({
30
33
  name: 'VBtn',
@@ -53,6 +56,7 @@ export const VBtn = defineComponent({
53
56
  ...makeDimensionProps(),
54
57
  ...makeElevationProps(),
55
58
  ...makeGroupItemProps(),
59
+ ...makeLoaderProps(),
56
60
  ...makeLocationProps(),
57
61
  ...makePositionProps(),
58
62
  ...makeRouterProps(),
@@ -62,9 +66,12 @@ export const VBtn = defineComponent({
62
66
  }),
63
67
  ...makeThemeProps(),
64
68
  ...makeVariantProps({
65
- variant: 'contained'
69
+ variant: 'elevated'
66
70
  })
67
71
  },
72
+ emits: {
73
+ 'group:selected': val => true
74
+ },
68
75
 
69
76
  setup(props, _ref) {
70
77
  let {
@@ -91,6 +98,9 @@ export const VBtn = defineComponent({
91
98
  const {
92
99
  elevationClasses
93
100
  } = useElevation(props);
101
+ const {
102
+ loaderClasses
103
+ } = useLoader(props);
94
104
  const {
95
105
  locationStyles
96
106
  } = useLocation(props);
@@ -107,14 +117,16 @@ export const VBtn = defineComponent({
107
117
  const link = useLink(props, attrs);
108
118
  const isDisabled = computed(() => (group == null ? void 0 : group.disabled.value) || props.disabled);
109
119
  const isElevated = computed(() => {
110
- return props.variant === 'contained' && !(props.disabled || props.flat || props.border);
120
+ return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
111
121
  });
112
122
  useSelectLink(link, group == null ? void 0 : group.select);
113
- return () => {
114
- var _slots$default;
123
+ useRender(() => {
124
+ var _slots$prepend, _slots$prepend2, _slots$default, _slots$default2, _slots$append, _slots$append2, _slots$loader, _slots$loader2;
115
125
 
116
126
  const Tag = link.isLink.value ? 'a' : props.tag;
117
127
  const hasColor = !group || group.isSelected.value;
128
+ const hasPrepend = !!(props.prependIcon || slots.prepend);
129
+ const hasAppend = !!(props.appendIcon || slots.append);
118
130
  return _withDirectives(_createVNode(Tag, {
119
131
  "type": Tag === 'a' ? undefined : 'button',
120
132
  "class": ['v-btn', group == null ? void 0 : group.selectedClass.value, {
@@ -124,8 +136,9 @@ export const VBtn = defineComponent({
124
136
  'v-btn--elevated': isElevated.value,
125
137
  'v-btn--flat': props.flat,
126
138
  'v-btn--icon': !!props.icon,
139
+ 'v-btn--loading': props.loading,
127
140
  'v-btn--stacked': props.stacked
128
- }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
141
+ }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
129
142
  "style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value],
130
143
  "disabled": isDisabled.value || undefined,
131
144
  "href": link.href.value,
@@ -137,24 +150,54 @@ export const VBtn = defineComponent({
137
150
  group == null ? void 0 : group.toggle();
138
151
  }
139
152
  }, {
140
- default: () => [genOverlays(true, 'v-btn'), !props.icon && props.prependIcon && _createVNode(VIcon, {
141
- "class": "v-btn__icon",
142
- "icon": props.prependIcon,
143
- "start": true
144
- }, null), _createVNode("div", {
153
+ default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && _createVNode(VDefaultsProvider, {
154
+ "key": "prepend",
155
+ "defaults": {
156
+ VIcon: {
157
+ icon: props.prependIcon
158
+ }
159
+ }
160
+ }, {
161
+ default: () => [_createVNode("span", {
162
+ "class": "v-btn__prepend"
163
+ }, [(_slots$prepend = (_slots$prepend2 = slots.prepend) == null ? void 0 : _slots$prepend2.call(slots)) != null ? _slots$prepend : _createVNode(VIcon, null, null)])]
164
+ }), _createVNode("span", {
145
165
  "class": "v-btn__content",
146
166
  "data-no-activator": ""
147
- }, [typeof props.icon === 'boolean' ? (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots) : _createVNode(VIcon, {
148
- "class": "v-btn__icon",
149
- "icon": props.icon,
150
- "size": props.size
151
- }, null)]), !props.icon && props.appendIcon && _createVNode(VIcon, {
152
- "class": "v-btn__icon",
153
- "icon": props.appendIcon,
154
- "end": true
155
- }, null)]
167
+ }, [_createVNode(VDefaultsProvider, {
168
+ "key": "content",
169
+ "defaults": {
170
+ VIcon: {
171
+ icon: typeof props.icon === 'string' ? props.icon : undefined
172
+ }
173
+ }
174
+ }, {
175
+ default: () => [(_slots$default = (_slots$default2 = slots.default) == null ? void 0 : _slots$default2.call(slots)) != null ? _slots$default : typeof props.icon === 'string' && _createVNode(VIcon, {
176
+ "key": "icon"
177
+ }, null)]
178
+ })]), !props.icon && hasAppend && _createVNode(VDefaultsProvider, {
179
+ "key": "append",
180
+ "defaults": {
181
+ VIcon: {
182
+ icon: props.appendIcon
183
+ }
184
+ }
185
+ }, {
186
+ default: () => [_createVNode("span", {
187
+ "class": "v-btn__append"
188
+ }, [(_slots$append = (_slots$append2 = slots.append) == null ? void 0 : _slots$append2.call(slots)) != null ? _slots$append : _createVNode(VIcon, null, null)])]
189
+ }), !!props.loading && _createVNode("span", {
190
+ "key": "loader",
191
+ "class": "v-btn__loader"
192
+ }, [(_slots$loader = (_slots$loader2 = slots.loader) == null ? void 0 : _slots$loader2.call(slots)) != null ? _slots$loader : _createVNode(VProgressCircular, {
193
+ "color": typeof props.loading === 'boolean' ? undefined : props.loading,
194
+ "indeterminate": true,
195
+ "size": "23",
196
+ "width": "2"
197
+ }, null)])]
156
198
  }), [[_resolveDirective("ripple"), !isDisabled.value && props.ripple, null]]);
157
- };
199
+ });
200
+ return {};
158
201
  }
159
202
 
160
203
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VBtn.mjs","names":["VBtnToggleSymbol","VIcon","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeRouterProps","useLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","useSelectLink","IconValue","Ripple","computed","defineComponent","VBtn","name","directives","props","active","Boolean","symbol","type","default","flat","icon","String","Function","Object","prependIcon","appendIcon","block","stacked","ripple","tag","variant","setup","attrs","slots","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","sizeClasses","group","link","isDisabled","disabled","value","isElevated","border","select","Tag","isLink","hasColor","isSelected","undefined","selectedClass","href","e","navigate","toggle","size"],"sources":["../../../src/components/VBtn/VBtn.tsx"],"sourcesContent":["// Styles\nimport './VBtn.sass'\n\n// Components\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { useSelectLink } from '@/composables/selectLink'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VBtn = defineComponent({\n name: 'VBtn',\n\n directives: { Ripple },\n\n props: {\n active: Boolean,\n symbol: {\n type: null,\n default: VBtnToggleSymbol,\n },\n flat: Boolean,\n icon: [Boolean, String, Function, Object] as PropType<boolean | IconValue>,\n prependIcon: IconValue,\n appendIcon: IconValue,\n\n block: Boolean,\n stacked: Boolean,\n\n ripple: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeRoundedProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'button' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'contained' } as const),\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const group = useGroupItem(props, props.symbol, false)\n const link = useLink(props, attrs)\n const isDisabled = computed(() => group?.disabled.value || props.disabled)\n const isElevated = computed(() => {\n return props.variant === 'contained' && !(props.disabled || props.flat || props.border)\n })\n\n useSelectLink(link, group?.select)\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasColor = !group || group.isSelected.value\n\n return (\n <Tag\n type={ Tag === 'a' ? undefined : 'button' }\n class={[\n 'v-btn',\n group?.selectedClass.value,\n {\n 'v-btn--active': props.active,\n 'v-btn--block': props.block,\n 'v-btn--disabled': isDisabled.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--flat': props.flat,\n 'v-btn--icon': !!props.icon,\n 'v-btn--stacked': props.stacked,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n disabled={ isDisabled.value || undefined }\n href={ link.href.value }\n v-ripple={[\n !isDisabled.value && props.ripple,\n null,\n props.icon ? ['center'] : null,\n ]}\n onClick={ (e: MouseEvent) => {\n if (isDisabled.value) return\n\n link.navigate?.(e)\n group?.toggle()\n } }\n >\n { genOverlays(true, 'v-btn') }\n\n { !props.icon && props.prependIcon && (\n <VIcon\n class=\"v-btn__icon\"\n icon={ props.prependIcon }\n start\n />\n ) }\n\n <div class=\"v-btn__content\" data-no-activator=\"\">\n { typeof props.icon === 'boolean'\n ? slots.default?.()\n : (\n <VIcon\n class=\"v-btn__icon\"\n icon={ props.icon }\n size={ props.size }\n />\n )\n }\n </div>\n\n { !props.icon && props.appendIcon && (\n <VIcon\n class=\"v-btn__icon\"\n icon={ props.appendIcon }\n end\n />\n ) }\n </Tag>\n )\n }\n },\n})\n\nexport type VBtn = InstanceType<typeof VBtn>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VBtn.mjs","names":["VBtnToggleSymbol","VDefaultsProvider","VIcon","VProgressCircular","Ripple","genOverlays","makeVariantProps","useVariant","IconValue","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeLoaderProps","useLoader","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeRouterProps","useLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useSelectLink","computed","defineComponent","useRender","VBtn","name","directives","props","active","Boolean","symbol","type","default","flat","icon","String","Function","Object","prependIcon","appendIcon","block","stacked","ripple","tag","variant","emits","val","setup","attrs","slots","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","loaderClasses","locationStyles","positionClasses","roundedClasses","sizeClasses","group","link","isDisabled","disabled","value","isElevated","border","select","Tag","isLink","hasColor","isSelected","hasPrepend","prepend","hasAppend","append","undefined","selectedClass","loading","href","e","navigate","toggle","loader"],"sources":["../../../src/components/VBtn/VBtn.tsx"],"sourcesContent":["// Styles\nimport './VBtn.sass'\n\n// Components\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useSelectLink } from '@/composables/selectLink'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VBtn = defineComponent({\n name: 'VBtn',\n\n directives: { Ripple },\n\n props: {\n active: Boolean,\n symbol: {\n type: null,\n default: VBtnToggleSymbol,\n },\n flat: Boolean,\n icon: [Boolean, String, Function, Object] as PropType<boolean | IconValue>,\n prependIcon: IconValue,\n appendIcon: IconValue,\n\n block: Boolean,\n stacked: Boolean,\n\n ripple: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeRoundedProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'button' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n },\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const group = useGroupItem(props, props.symbol, false)\n const link = useLink(props, attrs)\n const isDisabled = computed(() => group?.disabled.value || props.disabled)\n const isElevated = computed(() => {\n return props.variant === 'elevated' && !(props.disabled || props.flat || props.border)\n })\n\n useSelectLink(link, group?.select)\n\n useRender(() => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasColor = !group || group.isSelected.value\n const hasPrepend = !!(props.prependIcon || slots.prepend)\n const hasAppend = !!(props.appendIcon || slots.append)\n\n return (\n <Tag\n type={ Tag === 'a' ? undefined : 'button' }\n class={[\n 'v-btn',\n group?.selectedClass.value,\n {\n 'v-btn--active': props.active,\n 'v-btn--block': props.block,\n 'v-btn--disabled': isDisabled.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--flat': props.flat,\n 'v-btn--icon': !!props.icon,\n 'v-btn--loading': props.loading,\n 'v-btn--stacked': props.stacked,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n loaderClasses.value,\n positionClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n disabled={ isDisabled.value || undefined }\n href={ link.href.value }\n v-ripple={[\n !isDisabled.value && props.ripple,\n null,\n props.icon ? ['center'] : null,\n ]}\n onClick={ (e: MouseEvent) => {\n if (isDisabled.value) return\n\n link.navigate?.(e)\n group?.toggle()\n } }\n >\n { genOverlays(true, 'v-btn') }\n\n { !props.icon && hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VIcon: {\n icon: props.prependIcon,\n },\n }}\n >\n <span class=\"v-btn__prepend\">\n { slots.prepend?.() ?? (<VIcon />) }\n </span>\n </VDefaultsProvider>\n ) }\n\n <span class=\"v-btn__content\" data-no-activator=\"\">\n <VDefaultsProvider\n key=\"content\"\n defaults={{\n VIcon: {\n icon: typeof props.icon === 'string'\n ? props.icon\n : undefined,\n },\n }}\n >\n { slots.default?.() ?? (\n typeof props.icon === 'string' && (\n <VIcon key=\"icon\" />\n )\n ) }\n </VDefaultsProvider>\n </span>\n\n { !props.icon && hasAppend && (\n <VDefaultsProvider\n key=\"append\"\n defaults={{\n VIcon: {\n icon: props.appendIcon,\n },\n }}\n >\n <span class=\"v-btn__append\">\n { slots.append?.() ?? (<VIcon />) }\n </span>\n </VDefaultsProvider>\n ) }\n\n { !!props.loading && (\n <span key=\"loader\" class=\"v-btn__loader\">\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n size=\"23\"\n width=\"2\"\n />\n ) }\n </span>\n ) }\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBtn = InstanceType<typeof VBtn>\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  @use 'sass:math'
2
- @forward './variables'
3
2
  @use 'sass:map'
4
3
  @use '../../styles/settings'
5
4
  @use '../../styles/tools'
@@ -9,7 +8,9 @@
9
8
  .v-btn
10
9
  align-items: center
11
10
  border-radius: $button-border-radius
12
- display: inline-flex
11
+ display: inline-grid
12
+ grid-template-areas: "prepend content append"
13
+ grid-template-columns: max-content auto max-content
13
14
  font-weight: $button-font-weight
14
15
  justify-content: center
15
16
  letter-spacing: $button-text-letter-spacing
@@ -52,7 +53,11 @@
52
53
  border-radius: $button-icon-border-radius
53
54
  min-width: 0
54
55
  padding: 0
55
- font-size: $button-icon-font-size
56
+
57
+ // ensure that default
58
+ // v-icon size is 24px
59
+ &.v-btn--size-default
60
+ font-size: $button-icon-font-size
56
61
 
57
62
  @at-root &
58
63
  @include button-density(('width', 'height'), $button-icon-density)
@@ -76,22 +81,35 @@
76
81
  &--disabled
77
82
  pointer-events: none
78
83
 
84
+ // This is multiplied by the text opacity,
85
+ // so we need to divide it to get the desired value
86
+ $button-overlay-opacity: math.div($button-disabled-overlay, $button-disabled-opacity)
87
+
79
88
  &.v-btn--disabled
80
89
  color: rgba(var(--v-theme-on-surface), $button-disabled-opacity)
81
- opacity: 1
90
+ opacity: $button-overlay-opacity
82
91
 
83
- &.v-btn--variant-contained
92
+ &.v-btn--variant-elevated,
93
+ &.v-btn--variant-flat
84
94
  background: rgb(var(--v-theme-surface))
85
95
  box-shadow: none
96
+ opacity: 1
86
97
 
87
98
  .v-btn__overlay
88
- // This is multiplied by the text opacity,
89
- // so we need to divide it to get the desired value
90
- opacity: math.div($button-disabled-overlay, $button-disabled-opacity)
99
+ opacity: $button-overlay-opacity
100
+
101
+ &--loading
102
+ pointer-events: none
103
+
104
+ .v-btn__content,
105
+ .v-btn__prepend,
106
+ .v-btn__append
107
+ opacity: 0
91
108
 
92
109
  &--stacked
93
- flex-direction: column
94
- line-height: $button-stacked-line-height
110
+ .v-btn__content
111
+ flex-direction: column
112
+ line-height: $button-stacked-line-height
95
113
 
96
114
  @at-root
97
115
  @include button-sizes($button-stacked-sizes, true)
@@ -111,21 +129,60 @@
111
129
  .v-icon
112
130
  --v-icon-size-multiplier: #{calc(24/21)}
113
131
 
114
- .v-btn__content
132
+ .v-btn__loader
133
+ align-items: center
134
+ display: flex
135
+ height: 100%
136
+ justify-content: center
137
+ left: 0
138
+ position: absolute
139
+ top: 0
140
+ width: 100%
141
+
142
+ .v-btn__content,
143
+ .v-btn__prepend,
144
+ .v-btn__append
145
+ align-items: center
146
+ display: flex
115
147
  transition: $button-content-transition
148
+
149
+ .v-btn__prepend
150
+ grid-area: prepend
151
+ margin-inline-start: $button-margin-start
152
+ margin-inline-end: $button-margin-end
153
+
154
+ .v-btn__append
155
+ grid-area: append
156
+ margin-inline-start: $button-margin-end
157
+ margin-inline-end: $button-margin-start
158
+
159
+ .v-btn__content
160
+ grid-area: content
161
+ justify-content: center
116
162
  white-space: $button-white-space
117
163
 
164
+ > .v-icon--start
165
+ margin-inline-start: $button-margin-start
166
+ margin-inline-end: $button-margin-end
167
+
168
+ > .v-icon--end
169
+ margin-inline-start: $button-margin-end
170
+ margin-inline-end: $button-margin-start
171
+
118
172
  .v-btn--stacked &
119
173
  white-space: normal
120
174
 
121
175
  .v-btn__overlay
122
- @include tools.absolute()
123
176
  background-color: currentColor
124
177
  border-radius: inherit
125
- pointer-events: none
126
178
  opacity: 0
127
179
  transition: opacity .2s ease-in-out
128
180
 
181
+ .v-btn__overlay,
182
+ .v-btn__underlay
183
+ @include tools.absolute()
184
+ pointer-events: none
185
+
129
186
  // VAppBar
130
187
  .v-btn
131
188
  .v-app-bar &
@@ -28,12 +28,15 @@ $button-height: 36px !default;
28
28
  $button-stacked-height: 72px !default;
29
29
  $button-icon-border-radius: map.get(settings.$rounded, 'circle') !default;
30
30
  $button-icon-font-size: 1rem !default;
31
- $button-icon-size: 48px !default;
32
31
  $button-line-height: normal !default;
33
32
  $button-stacked-line-height: 1.25 !default;
34
33
  $button-plain-opacity: .62 !default;
35
34
  $button-padding-ratio: 2.25 !default;
36
35
  $button-stacked-padding-ratio: 4.5 !default;
36
+ $button-margin-start-multiplier: -9 !default;
37
+ $button-margin-end-multiplier: 4.5 !default;
38
+ $button-margin-start: calc(var(--v-btn-height) / #{$button-margin-start-multiplier}) !default;
39
+ $button-margin-end: calc(var(--v-btn-height) / #{$button-margin-end-multiplier}) !default;
37
40
  $button-max-width: 100% !default;
38
41
  $button-positions: absolute fixed !default;
39
42
  $button-text-letter-spacing: tools.map-deep-get(settings.$typography, 'button', 'letter-spacing') !default;
@@ -1,4 +1,3 @@
1
- @forward './variables'
2
1
  @use 'sass:selector'
3
2
  @use '../../styles/tools'
4
3
  @use '../VBtn/variables' as *
@@ -1,6 +1,7 @@
1
1
  @use '../../styles/settings';
2
2
  @use '../../styles/tools';
3
3
 
4
+ // VBtnGroup
4
5
  $btn-group-background: transparent !default;
5
6
  $btn-group-border-color: settings.$border-color-root !default;
6
7
  $btn-group-border-radius: settings.$border-radius-root !default;
@@ -12,6 +13,7 @@ $btn-group-height: 48px !default;
12
13
  $btn-group-elevation: 0 !default;
13
14
  $btn-group-tile-border-radius: 0 !default;
14
15
 
16
+ // Lists
15
17
  $btn-group-border: (
16
18
  $btn-group-border-color,
17
19
  $btn-group-border-style,
@@ -1,4 +1,3 @@
1
- @forward './variables'
2
1
  @use './variables' as *
3
2
 
4
3
  .v-btn-toggle
@@ -1,4 +1,5 @@
1
1
  @use '../../styles/settings';
2
2
  @use '../../styles/tools';
3
3
 
4
+ // VBtnToggle
4
5
  $btn-toggle-selected-opacity: var(--v-activated-opacity) !default;