@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,7 +1,10 @@
1
+ /** if false, disabled buttons will be greyed out */
1
2
  .v-btn {
2
3
  align-items: center;
3
4
  border-radius: 4px;
4
- display: inline-flex;
5
+ display: inline-grid;
6
+ grid-template-areas: "prepend content append";
7
+ grid-template-columns: max-content auto max-content;
5
8
  font-weight: 500;
6
9
  justify-content: center;
7
10
  letter-spacing: 0.0892857143em;
@@ -167,6 +170,8 @@
167
170
  border-radius: 50%;
168
171
  min-width: 0;
169
172
  padding: 0;
173
+ }
174
+ .v-btn--icon.v-btn--size-default {
170
175
  font-size: 1rem;
171
176
  }
172
177
  .v-btn--icon.v-btn--density-default {
@@ -198,28 +203,51 @@
198
203
  }
199
204
  .v-btn--disabled {
200
205
  pointer-events: none;
206
+ opacity: 0.26;
201
207
  }
202
- .v-btn--disabled.v-btn--disabled {
203
- color: rgba(var(--v-theme-on-surface), 0.26);
208
+ .v-btn--disabled.v-btn--variant-elevated, .v-btn--disabled.v-btn--variant-flat {
209
+ box-shadow: none;
204
210
  opacity: 1;
205
- }
206
- .v-btn--disabled.v-btn--variant-elevated {
211
+ color: rgba(var(--v-theme-on-surface), 0.26);
207
212
  background: rgb(var(--v-theme-surface));
208
- box-shadow: none;
209
213
  }
210
- .v-btn--disabled.v-btn--variant-elevated .v-btn__overlay {
214
+ .v-btn--disabled.v-btn--variant-elevated .v-btn__overlay, .v-btn--disabled.v-btn--variant-flat .v-btn__overlay {
211
215
  opacity: 0.4615384615;
212
216
  }
213
217
  .v-btn--loading {
214
218
  pointer-events: none;
215
219
  }
216
- .v-btn--loading .v-btn__content {
220
+ .v-btn--loading .v-btn__content,
221
+ .v-btn--loading .v-btn__prepend,
222
+ .v-btn--loading .v-btn__append {
217
223
  opacity: 0;
218
224
  }
219
225
  .v-btn--stacked {
226
+ grid-template-areas: "prepend" "content" "append";
227
+ grid-template-columns: auto;
228
+ grid-template-rows: max-content max-content max-content;
229
+ justify-items: center;
230
+ align-content: center;
231
+ }
232
+ .v-btn--stacked .v-btn__content {
220
233
  flex-direction: column;
221
234
  line-height: 1.25;
222
235
  }
236
+ .v-btn--stacked .v-btn__prepend,
237
+ .v-btn--stacked .v-btn__append,
238
+ .v-btn--stacked .v-btn__content > .v-icon--start,
239
+ .v-btn--stacked .v-btn__content > .v-icon--end {
240
+ margin-inline-start: 0;
241
+ margin-inline-end: 0;
242
+ }
243
+ .v-btn--stacked .v-btn__prepend,
244
+ .v-btn--stacked .v-btn__content > .v-icon--start {
245
+ margin-bottom: 4px;
246
+ }
247
+ .v-btn--stacked .v-btn__append,
248
+ .v-btn--stacked .v-btn__content > .v-icon--end {
249
+ margin-top: 4px;
250
+ }
223
251
  .v-btn--stacked.v-btn--size-x-small {
224
252
  --v-btn-size: 0.625rem;
225
253
  --v-btn-height: 56px;
@@ -296,25 +324,58 @@
296
324
  width: 100%;
297
325
  }
298
326
 
299
- .v-btn__content {
327
+ .v-btn__content,
328
+ .v-btn__prepend,
329
+ .v-btn__append {
330
+ align-items: center;
331
+ display: flex;
300
332
  transition: transform, opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
333
+ }
334
+
335
+ .v-btn__prepend {
336
+ grid-area: prepend;
337
+ margin-inline-start: calc(var(--v-btn-height) / -9);
338
+ margin-inline-end: calc(var(--v-btn-height) / 4.5);
339
+ }
340
+
341
+ .v-btn__append {
342
+ grid-area: append;
343
+ margin-inline-start: calc(var(--v-btn-height) / 4.5);
344
+ margin-inline-end: calc(var(--v-btn-height) / -9);
345
+ }
346
+
347
+ .v-btn__content {
348
+ grid-area: content;
349
+ justify-content: center;
301
350
  white-space: nowrap;
302
351
  }
352
+ .v-btn__content > .v-icon--start {
353
+ margin-inline-start: calc(var(--v-btn-height) / -9);
354
+ margin-inline-end: calc(var(--v-btn-height) / 4.5);
355
+ }
356
+ .v-btn__content > .v-icon--end {
357
+ margin-inline-start: calc(var(--v-btn-height) / 4.5);
358
+ margin-inline-end: calc(var(--v-btn-height) / -9);
359
+ }
303
360
  .v-btn--stacked .v-btn__content {
304
361
  white-space: normal;
305
362
  }
306
363
 
307
364
  .v-btn__overlay {
365
+ background-color: currentColor;
366
+ border-radius: inherit;
367
+ opacity: 0;
368
+ transition: opacity 0.2s ease-in-out;
369
+ }
370
+
371
+ .v-btn__overlay,
372
+ .v-btn__underlay {
308
373
  position: absolute;
309
374
  top: 0;
310
375
  left: 0;
311
376
  width: 100%;
312
377
  height: 100%;
313
- background-color: currentColor;
314
- border-radius: inherit;
315
378
  pointer-events: none;
316
- opacity: 0;
317
- transition: opacity 0.2s ease-in-out;
318
379
  }
319
380
 
320
381
  .v-app-bar .v-btn {
@@ -336,6 +397,9 @@
336
397
  .v-pagination .v-btn {
337
398
  border-radius: 4px;
338
399
  }
400
+ .v-btn__overlay {
401
+ transition: none;
402
+ }
339
403
  .v-pagination__item--is-active .v-btn__overlay {
340
404
  opacity: var(--v-border-opacity);
341
405
  }
@@ -3,14 +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 { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
6
7
  import { VIcon } from "../VIcon/index.mjs";
7
- import { VProgressCircular } from "../VProgressCircular/index.mjs"; // Composables
8
+ import { VProgressCircular } from "../VProgressCircular/index.mjs"; // Directives
8
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";
9
14
  import { makeBorderProps, useBorder } from "../../composables/border.mjs";
10
15
  import { makeDensityProps, useDensity } from "../../composables/density.mjs";
11
16
  import { makeDimensionProps, useDimension } from "../../composables/dimensions.mjs";
12
17
  import { makeElevationProps, useElevation } from "../../composables/elevation.mjs";
13
18
  import { makeGroupItemProps, useGroupItem } from "../../composables/group.mjs";
19
+ import { makeLoaderProps, useLoader } from "../../composables/loader.mjs";
14
20
  import { makeLocationProps, useLocation } from "../../composables/location.mjs";
15
21
  import { makePositionProps, usePosition } from "../../composables/position.mjs";
16
22
  import { makeRoundedProps, useRounded } from "../../composables/rounded.mjs";
@@ -18,14 +24,10 @@ import { makeRouterProps, useLink } from "../../composables/router.mjs";
18
24
  import { makeSizeProps, useSize } from "../../composables/size.mjs";
19
25
  import { makeTagProps } from "../../composables/tag.mjs";
20
26
  import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
21
- import { genOverlays, makeVariantProps, useVariant } from "../../composables/variant.mjs";
22
- import { useSelectLink } from "../../composables/selectLink.mjs";
23
- import { IconValue } from "../../composables/icons.mjs"; // Directives
24
-
25
- import { Ripple } from "../../directives/ripple/index.mjs"; // Utilities
27
+ import { useSelectLink } from "../../composables/selectLink.mjs"; // Utilities
26
28
 
27
29
  import { computed } from 'vue';
28
- import { defineComponent } from "../../util/index.mjs"; // Types
30
+ import { defineComponent, useRender } from "../../util/index.mjs"; // Types
29
31
 
30
32
  export const VBtn = defineComponent({
31
33
  name: 'VBtn',
@@ -44,7 +46,6 @@ export const VBtn = defineComponent({
44
46
  appendIcon: IconValue,
45
47
  block: Boolean,
46
48
  stacked: Boolean,
47
- loading: Boolean,
48
49
  ripple: {
49
50
  type: Boolean,
50
51
  default: true
@@ -55,6 +56,7 @@ export const VBtn = defineComponent({
55
56
  ...makeDimensionProps(),
56
57
  ...makeElevationProps(),
57
58
  ...makeGroupItemProps(),
59
+ ...makeLoaderProps(),
58
60
  ...makeLocationProps(),
59
61
  ...makePositionProps(),
60
62
  ...makeRouterProps(),
@@ -67,6 +69,9 @@ export const VBtn = defineComponent({
67
69
  variant: 'elevated'
68
70
  })
69
71
  },
72
+ emits: {
73
+ 'group:selected': val => true
74
+ },
70
75
 
71
76
  setup(props, _ref) {
72
77
  let {
@@ -93,6 +98,9 @@ export const VBtn = defineComponent({
93
98
  const {
94
99
  elevationClasses
95
100
  } = useElevation(props);
101
+ const {
102
+ loaderClasses
103
+ } = useLoader(props);
96
104
  const {
97
105
  locationStyles
98
106
  } = useLocation(props);
@@ -112,11 +120,13 @@ export const VBtn = defineComponent({
112
120
  return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
113
121
  });
114
122
  useSelectLink(link, group == null ? void 0 : group.select);
115
- return () => {
116
- var _slots$default;
123
+ useRender(() => {
124
+ var _slots$prepend, _slots$prepend2, _slots$default, _slots$default2, _slots$append, _slots$append2, _slots$loader, _slots$loader2;
117
125
 
118
126
  const Tag = link.isLink.value ? 'a' : props.tag;
119
127
  const hasColor = !group || group.isSelected.value;
128
+ const hasPrepend = !!(props.prependIcon || slots.prepend);
129
+ const hasAppend = !!(props.appendIcon || slots.append);
120
130
  return _withDirectives(_createVNode(Tag, {
121
131
  "type": Tag === 'a' ? undefined : 'button',
122
132
  "class": ['v-btn', group == null ? void 0 : group.selectedClass.value, {
@@ -126,9 +136,9 @@ export const VBtn = defineComponent({
126
136
  'v-btn--elevated': isElevated.value,
127
137
  'v-btn--flat': props.flat,
128
138
  'v-btn--icon': !!props.icon,
129
- 'v-btn--stacked': props.stacked,
130
- 'v-btn--loading': props.loading
131
- }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
139
+ 'v-btn--loading': props.loading,
140
+ 'v-btn--stacked': props.stacked
141
+ }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
132
142
  "style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value],
133
143
  "disabled": isDisabled.value || undefined,
134
144
  "href": link.href.value,
@@ -140,30 +150,54 @@ export const VBtn = defineComponent({
140
150
  group == null ? void 0 : group.toggle();
141
151
  }
142
152
  }, {
143
- default: () => [genOverlays(true, 'v-btn'), _createVNode("span", {
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", {
144
165
  "class": "v-btn__content",
145
166
  "data-no-activator": ""
146
- }, [!props.icon && props.prependIcon && _createVNode(VIcon, {
147
- "class": "v-btn__icon",
148
- "icon": props.prependIcon,
149
- "start": true
150
- }, null), typeof props.icon === 'boolean' ? (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots) : _createVNode(VIcon, {
151
- "class": "v-btn__icon",
152
- "icon": props.icon,
153
- "size": props.size
154
- }, null), !props.icon && props.appendIcon && _createVNode(VIcon, {
155
- "class": "v-btn__icon",
156
- "icon": props.appendIcon,
157
- "end": true
158
- }, null)]), props.loading && _createVNode("span", {
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",
159
191
  "class": "v-btn__loader"
160
- }, [slots.loader ? slots.loader() : _createVNode(VProgressCircular, {
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,
161
194
  "indeterminate": true,
162
195
  "size": "23",
163
196
  "width": "2"
164
197
  }, null)])]
165
198
  }), [[_resolveDirective("ripple"), !isDisabled.value && props.ripple, null]]);
166
- };
199
+ });
200
+ return {};
167
201
  }
168
202
 
169
203
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VBtn.mjs","names":["VBtnToggleSymbol","VIcon","VProgressCircular","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","loading","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","loader"],"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'\nimport { VProgressCircular } from '@/components/VProgressCircular'\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 loading: 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: 'elevated' } 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 === 'elevated' && !(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 'v-btn--loading': props.loading,\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 <span class=\"v-btn__content\" data-no-activator=\"\">\n { !props.icon && props.prependIcon && (\n <VIcon\n class=\"v-btn__icon\"\n icon={ props.prependIcon }\n start\n />\n ) }\n\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\n { !props.icon && props.appendIcon && (\n <VIcon\n class=\"v-btn__icon\"\n icon={ props.appendIcon }\n end\n />\n ) }\n </span>\n\n { props.loading && (\n <span class=\"v-btn__loader\">\n { slots.loader ? slots.loader() : (\n <VProgressCircular\n indeterminate\n size=\"23\"\n width=\"2\"\n />\n )}\n </span>\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":";AAAA;AACA,oB,CAEA;;SACSA,gB;SACAC,iB;SACAC,K;SACAC,iB,0CAET;;SACSC,M,6CAET;;SACSC,W,EAAaC,gB,EAAkBC,U;SAC/BC,S;SACAC,e,EAAiBC,S;SACjBC,gB,EAAkBC,U;SAClBC,kB,EAAoBC,Y;SACpBC,kB,EAAoBC,Y;SACpBC,kB,EAAoBC,Y;SACpBC,e,EAAiBC,S;SACjBC,iB,EAAmBC,W;SACnBC,iB,EAAmBC,W;SACnBC,gB,EAAkBC,U;SAClBC,e,EAAiBC,O;SACjBC,a,EAAeC,O;SACfC,Y;SACAC,c,EAAgBC,Y;SAChBC,a,4CAET;;AACA,SAASC,QAAT,QAAyB,KAAzB;SACSC,e,EAAiBC,S,gCAE1B;;AAGA,OAAO,MAAMC,IAAI,GAAGF,eAAe,CAAC;EAClCG,IAAI,EAAE,MAD4B;EAGlCC,UAAU,EAAE;IAAEpC;EAAF,CAHsB;EAKlCqC,KAAK,EAAE;IACLC,MAAM,EAAEC,OADH;IAELC,MAAM,EAAE;MACNC,IAAI,EAAE,IADA;MAENC,OAAO,EAAE9C;IAFH,CAFH;IAML+C,IAAI,EAAEJ,OAND;IAOLK,IAAI,EAAE,CAACL,OAAD,EAAUM,MAAV,EAAkBC,QAAlB,EAA4BC,MAA5B,CAPD;IAQLC,WAAW,EAAE5C,SARR;IASL6C,UAAU,EAAE7C,SATP;IAWL8C,KAAK,EAAEX,OAXF;IAYLY,OAAO,EAAEZ,OAZJ;IAcLa,MAAM,EAAE;MACNX,IAAI,EAAEF,OADA;MAENG,OAAO,EAAE;IAFH,CAdH;IAmBL,GAAGrC,eAAe,EAnBb;IAoBL,GAAGgB,gBAAgB,EApBd;IAqBL,GAAGd,gBAAgB,EArBd;IAsBL,GAAGE,kBAAkB,EAtBhB;IAuBL,GAAGE,kBAAkB,EAvBhB;IAwBL,GAAGE,kBAAkB,EAxBhB;IAyBL,GAAGE,eAAe,EAzBb;IA0BL,GAAGE,iBAAiB,EA1Bf;IA2BL,GAAGE,iBAAiB,EA3Bf;IA4BL,GAAGI,eAAe,EA5Bb;IA6BL,GAAGE,aAAa,EA7BX;IA8BL,GAAGE,YAAY,CAAC;MAAE0B,GAAG,EAAE;IAAP,CAAD,CA9BV;IA+BL,GAAGzB,cAAc,EA/BZ;IAgCL,GAAG1B,gBAAgB,CAAC;MAAEoD,OAAO,EAAE;IAAX,CAAD;EAhCd,CAL2B;EAwClCC,KAAK,EAAE;IACL,kBAAmBC,GAAD,IAA6B;EAD1C,CAxC2B;;EA4ClCC,KAAK,CAAEpB,KAAF,QAA2B;IAAA,IAAlB;MAAEqB,KAAF;MAASC;IAAT,CAAkB;IAC9B,MAAM;MAAEC;IAAF,IAAmB/B,YAAY,CAACQ,KAAD,CAArC;IACA,MAAM;MAAEwB;IAAF,IAAoBvD,SAAS,CAAC+B,KAAD,CAAnC;IACA,MAAM;MAAEyB,YAAF;MAAgBC,WAAhB;MAA6BC;IAA7B,IAAgD7D,UAAU,CAACkC,KAAD,CAAhE;IACA,MAAM;MAAE4B;IAAF,IAAqBzD,UAAU,CAAC6B,KAAD,CAArC;IACA,MAAM;MAAE6B;IAAF,IAAsBxD,YAAY,CAAC2B,KAAD,CAAxC;IACA,MAAM;MAAE8B;IAAF,IAAuBvD,YAAY,CAACyB,KAAD,CAAzC;IACA,MAAM;MAAE+B;IAAF,IAAoBpD,SAAS,CAACqB,KAAD,CAAnC;IACA,MAAM;MAAEgC;IAAF,IAAqBnD,WAAW,CAACmB,KAAD,CAAtC;IACA,MAAM;MAAEiC;IAAF,IAAsBlD,WAAW,CAACiB,KAAD,CAAvC;IACA,MAAM;MAAEkC;IAAF,IAAqBjD,UAAU,CAACe,KAAD,CAArC;IACA,MAAM;MAAEmC;IAAF,IAAkB9C,OAAO,CAACW,KAAD,CAA/B;IACA,MAAMoC,KAAK,GAAG3D,YAAY,CAACuB,KAAD,EAAQA,KAAK,CAACG,MAAd,EAAsB,KAAtB,CAA1B;IACA,MAAMkC,IAAI,GAAGlD,OAAO,CAACa,KAAD,EAAQqB,KAAR,CAApB;IACA,MAAMiB,UAAU,GAAG5C,QAAQ,CAAC,MAAM,CAAA0C,KAAK,QAAL,YAAAA,KAAK,CAAEG,QAAP,CAAgBC,KAAhB,KAAyBxC,KAAK,CAACuC,QAAtC,CAA3B;IACA,MAAME,UAAU,GAAG/C,QAAQ,CAAC,MAAM;MAChC,OAAOM,KAAK,CAACiB,OAAN,KAAkB,UAAlB,IAAgC,EAAEjB,KAAK,CAACuC,QAAN,IAAkBvC,KAAK,CAACM,IAAxB,IAAgCN,KAAK,CAAC0C,MAAxC,CAAvC;IACD,CAF0B,CAA3B;IAIAjD,aAAa,CAAC4C,IAAD,EAAOD,KAAP,oBAAOA,KAAK,CAAEO,MAAd,CAAb;IAEA/C,SAAS,CAAC,MAAM;MAAA;;MACd,MAAMgD,GAAG,GAAIP,IAAI,CAACQ,MAAL,CAAYL,KAAb,GAAsB,GAAtB,GAA4BxC,KAAK,CAACgB,GAA9C;MACA,MAAM8B,QAAQ,GAAG,CAACV,KAAD,IAAUA,KAAK,CAACW,UAAN,CAAiBP,KAA5C;MACA,MAAMQ,UAAU,GAAG,CAAC,EAAEhD,KAAK,CAACW,WAAN,IAAqBW,KAAK,CAAC2B,OAA7B,CAApB;MACA,MAAMC,SAAS,GAAG,CAAC,EAAElD,KAAK,CAACY,UAAN,IAAoBU,KAAK,CAAC6B,MAA5B,CAAnB;MAEA;QAAA,QAEWP,GAAG,KAAK,GAAR,GAAcQ,SAAd,GAA0B,QAFrC;QAAA,SAGW,CACL,OADK,EAELhB,KAFK,oBAELA,KAAK,CAAEiB,aAAP,CAAqBb,KAFhB,EAGL;UACE,iBAAiBxC,KAAK,CAACC,MADzB;UAEE,gBAAgBD,KAAK,CAACa,KAFxB;UAGE,mBAAmByB,UAAU,CAACE,KAHhC;UAIE,mBAAmBC,UAAU,CAACD,KAJhC;UAKE,eAAexC,KAAK,CAACM,IALvB;UAME,eAAe,CAAC,CAACN,KAAK,CAACO,IANzB;UAOE,kBAAkBP,KAAK,CAACsD,OAP1B;UAQE,kBAAkBtD,KAAK,CAACc;QAR1B,CAHK,EAaLS,YAAY,CAACiB,KAbR,EAcLhB,aAAa,CAACgB,KAdT,EAeLM,QAAQ,GAAGrB,YAAY,CAACe,KAAhB,GAAwBY,SAf3B,EAgBLxB,cAAc,CAACY,KAhBV,EAiBLV,gBAAgB,CAACU,KAjBZ,EAkBLT,aAAa,CAACS,KAlBT,EAmBLP,eAAe,CAACO,KAnBX,EAoBLN,cAAc,CAACM,KApBV,EAqBLL,WAAW,CAACK,KArBP,EAsBLb,cAAc,CAACa,KAtBV,CAHX;QAAA,SA2BW,CACLM,QAAQ,GAAGpB,WAAW,CAACc,KAAf,GAAuBY,SAD1B,EAELvB,eAAe,CAACW,KAFX,EAGLR,cAAc,CAACQ,KAHV,CA3BX;QAAA,YAgCeF,UAAU,CAACE,KAAX,IAAoBY,SAhCnC;QAAA,QAiCWf,IAAI,CAACkB,IAAL,CAAUf,KAjCrB;QAAA,WAuCegB,CAAD,IAAmB;UAAA;;UAC3B,IAAIlB,UAAU,CAACE,KAAf,EAAsB;UAEtB,kBAAAH,IAAI,CAACoB,QAAL,yCAAApB,IAAI,EAAYmB,CAAZ,CAAJ;UACApB,KAAK,QAAL,YAAAA,KAAK,CAAEsB,MAAP;QACD;MA5CL;QAAA,gBA8CM9F,WAAW,CAAC,IAAD,EAAO,OAAP,CA9CjB,EAgDM,CAACoC,KAAK,CAACO,IAAP,IAAeyC,UAAf;UAAA,OAEM,SAFN;UAAA,YAGY;YACRvF,KAAK,EAAE;cACL8C,IAAI,EAAEP,KAAK,CAACW;YADP;UADC;QAHZ;UAAA;YAAA,SASc;UATd,yCAUMW,KAAK,CAAC2B,OAVZ,qBAUM,qBAAA3B,KAAK,CAVX;QAAA,EAhDN;UAAA,SA+DgB,gBA/DhB;UAAA,qBA+DmD;QA/DnD;UAAA,OAiEY,SAjEZ;UAAA,YAkEkB;YACR7D,KAAK,EAAE;cACL8C,IAAI,EAAE,OAAOP,KAAK,CAACO,IAAb,KAAsB,QAAtB,GACFP,KAAK,CAACO,IADJ,GAEF6C;YAHC;UADC;QAlElB;UAAA,qDA0EU9B,KAAK,CAACjB,OA1EhB,qBA0EU,qBAAAiB,KAAK,CA1Ef,6BA2EU,OAAOtB,KAAK,CAACO,IAAb,KAAsB,QAAtB;YAAA,OACa;UADb,QA3EV;QAAA,MAkFM,CAACP,KAAK,CAACO,IAAP,IAAe2C,SAAf;UAAA,OAEM,QAFN;UAAA,YAGY;YACRzF,KAAK,EAAE;cACL8C,IAAI,EAAEP,KAAK,CAACY;YADP;UADC;QAHZ;UAAA;YAAA,SASc;UATd,uCAUMU,KAAK,CAAC6B,MAVZ,qBAUM,oBAAA7B,KAAK,CAVX;QAAA,EAlFN,EAiGM,CAAC,CAACtB,KAAK,CAACsD,OAAR;UAAA,OACU,QADV;UAAA,SACyB;QADzB,uCAEIhC,KAAK,CAACqC,MAFV,qBAEI,oBAAArC,KAAK,CAFT;UAAA,SAIc,OAAOtB,KAAK,CAACsD,OAAb,KAAyB,SAAzB,GAAqCF,SAArC,GAAiDpD,KAAK,CAACsD,OAJrE;UAAA;UAAA,QAMW,IANX;UAAA,SAOY;QAPZ,UAjGN;MAAA,mCAmCM,CAAChB,UAAU,CAACE,KAAZ,IAAqBxC,KAAK,CAACe,MAnCjC,EAoCM,IApCN;IA+GD,CArHQ,CAAT;IAuHA,OAAO,EAAP;EACD;;AAzLiC,CAAD,CAA5B"}
@@ -8,7 +8,9 @@
8
8
  .v-btn
9
9
  align-items: center
10
10
  border-radius: $button-border-radius
11
- display: inline-flex
11
+ display: inline-grid
12
+ grid-template-areas: "prepend content append"
13
+ grid-template-columns: max-content auto max-content
12
14
  font-weight: $button-font-weight
13
15
  justify-content: center
14
16
  letter-spacing: $button-text-letter-spacing
@@ -51,7 +53,11 @@
51
53
  border-radius: $button-icon-border-radius
52
54
  min-width: 0
53
55
  padding: 0
54
- 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
55
61
 
56
62
  @at-root &
57
63
  @include button-density(('width', 'height'), $button-icon-density)
@@ -75,28 +81,63 @@
75
81
  &--disabled
76
82
  pointer-events: none
77
83
 
78
- &.v-btn--disabled
79
- color: rgba(var(--v-theme-on-surface), $button-disabled-opacity)
84
+ @if ($button-colored-disabled)
85
+ opacity: $button-disabled-opacity
86
+ @else
80
87
  opacity: 1
88
+ &.v-btn
89
+ // specificity has to be higher to override theme !important
90
+ color: rgba(var(--v-theme-on-surface), $button-disabled-opacity) !important
81
91
 
82
- &.v-btn--variant-elevated
83
- background: rgb(var(--v-theme-surface))
92
+ &.v-btn--variant-elevated,
93
+ &.v-btn--variant-flat
84
94
  box-shadow: none
85
95
 
96
+ @if ($button-colored-disabled)
97
+ opacity: 1
98
+ color: rgba(var(--v-theme-on-surface), $button-disabled-opacity)
99
+ background: rgb(var(--v-theme-surface))
100
+ @else
101
+ background: rgb(var(--v-theme-surface)) !important
102
+
86
103
  .v-btn__overlay
87
- // This is multiplied by the text opacity,
88
- // so we need to divide it to get the desired value
104
+ // __overlay uses currentColor, so we need to divide
105
+ // by the text opacity to get the correct value
89
106
  opacity: math.div($button-disabled-overlay, $button-disabled-opacity)
90
107
 
91
108
  &--loading
92
109
  pointer-events: none
93
110
 
94
- .v-btn__content
111
+ .v-btn__content,
112
+ .v-btn__prepend,
113
+ .v-btn__append
95
114
  opacity: 0
96
115
 
97
116
  &--stacked
98
- flex-direction: column
99
- line-height: $button-stacked-line-height
117
+ grid-template-areas: "prepend" "content" "append"
118
+ grid-template-columns: auto
119
+ grid-template-rows: max-content max-content max-content
120
+ justify-items: center
121
+ align-content: center
122
+
123
+ .v-btn__content
124
+ flex-direction: column
125
+ line-height: $button-stacked-line-height
126
+
127
+ .v-btn__prepend,
128
+ .v-btn__append,
129
+ .v-btn__content > .v-icon--start,
130
+ .v-btn__content > .v-icon--end
131
+ margin-inline-start: 0
132
+ margin-inline-end: 0
133
+
134
+ .v-btn__prepend,
135
+ .v-btn__content > .v-icon--start
136
+ margin-bottom: $button-stacked-icon-margin
137
+
138
+ .v-btn__append,
139
+ .v-btn__content > .v-icon--end
140
+ margin-top: $button-stacked-icon-margin
100
141
 
101
142
  @at-root
102
143
  @include button-sizes($button-stacked-sizes, true)
@@ -126,21 +167,50 @@
126
167
  top: 0
127
168
  width: 100%
128
169
 
129
- .v-btn__content
170
+ .v-btn__content,
171
+ .v-btn__prepend,
172
+ .v-btn__append
173
+ align-items: center
174
+ display: flex
130
175
  transition: $button-content-transition
176
+
177
+ .v-btn__prepend
178
+ grid-area: prepend
179
+ margin-inline-start: $button-margin-start
180
+ margin-inline-end: $button-margin-end
181
+
182
+ .v-btn__append
183
+ grid-area: append
184
+ margin-inline-start: $button-margin-end
185
+ margin-inline-end: $button-margin-start
186
+
187
+ .v-btn__content
188
+ grid-area: content
189
+ justify-content: center
131
190
  white-space: $button-white-space
132
191
 
192
+ > .v-icon--start
193
+ margin-inline-start: $button-margin-start
194
+ margin-inline-end: $button-margin-end
195
+
196
+ > .v-icon--end
197
+ margin-inline-start: $button-margin-end
198
+ margin-inline-end: $button-margin-start
199
+
133
200
  .v-btn--stacked &
134
201
  white-space: normal
135
202
 
136
203
  .v-btn__overlay
137
- @include tools.absolute()
138
204
  background-color: currentColor
139
205
  border-radius: inherit
140
- pointer-events: none
141
206
  opacity: 0
142
207
  transition: opacity .2s ease-in-out
143
208
 
209
+ .v-btn__overlay,
210
+ .v-btn__underlay
211
+ @include tools.absolute()
212
+ pointer-events: none
213
+
144
214
  // VAppBar
145
215
  .v-btn
146
216
  .v-app-bar &
@@ -168,6 +238,8 @@
168
238
  @include tools.rounded($button-pagination-border-radius)
169
239
 
170
240
  &__overlay
241
+ transition: none
242
+
171
243
  .v-pagination__item--is-active &
172
244
  opacity: $button-pagination-active-overlay-opacity
173
245
 
@@ -4,6 +4,9 @@
4
4
  @use '../../styles/tools';
5
5
 
6
6
  // Defaults
7
+ /** if false, disabled buttons will be greyed out */
8
+ $button-colored-disabled: true !default;
9
+
7
10
  $button-app-bar-elevation: 0 !default;
8
11
  $button-background: rgb(var(--v-theme-surface)) !default;
9
12
  $button-color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)) !default;
@@ -26,14 +29,18 @@ $button-font-size: tools.map-deep-get(settings.$typography, 'button', 'size') !d
26
29
  $button-font-weight: tools.map-deep-get(settings.$typography, 'button', 'weight') !default;
27
30
  $button-height: 36px !default;
28
31
  $button-stacked-height: 72px !default;
32
+ $button-stacked-icon-margin: 4px !default;
29
33
  $button-icon-border-radius: map.get(settings.$rounded, 'circle') !default;
30
34
  $button-icon-font-size: 1rem !default;
31
- $button-icon-size: 48px !default;
32
35
  $button-line-height: normal !default;
33
36
  $button-stacked-line-height: 1.25 !default;
34
37
  $button-plain-opacity: .62 !default;
35
38
  $button-padding-ratio: 2.25 !default;
36
39
  $button-stacked-padding-ratio: 4.5 !default;
40
+ $button-margin-start-multiplier: -9 !default;
41
+ $button-margin-end-multiplier: 4.5 !default;
42
+ $button-margin-start: calc(var(--v-btn-height) / #{$button-margin-start-multiplier}) !default;
43
+ $button-margin-end: calc(var(--v-btn-height) / #{$button-margin-end-multiplier}) !default;
37
44
  $button-max-width: 100% !default;
38
45
  $button-positions: absolute fixed !default;
39
46
  $button-text-letter-spacing: tools.map-deep-get(settings.$typography, 'button', 'letter-spacing') !default;
@@ -1,3 +1,4 @@
1
+ /** if false, disabled buttons will be greyed out */
1
2
  .v-btn-group {
2
3
  display: inline-flex;
3
4
  flex-wrap: nowrap;
@@ -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,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;