@vuetify/nightly 3.8.1-next.2025-04-18 → 3.8.2-dev.2025-04-28

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 (222) hide show
  1. package/CHANGELOG.md +7 -16
  2. package/dist/json/attributes.json +2825 -2817
  3. package/dist/json/importMap-labs.json +20 -20
  4. package/dist/json/importMap.json +168 -168
  5. package/dist/json/tags.json +2 -0
  6. package/dist/json/web-types.json +5590 -5610
  7. package/dist/vuetify-labs.cjs +180 -249
  8. package/dist/vuetify-labs.css +25246 -23473
  9. package/dist/vuetify-labs.d.ts +715 -279
  10. package/dist/vuetify-labs.esm.js +180 -249
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +180 -249
  13. package/dist/vuetify-labs.min.css +4 -3
  14. package/dist/vuetify.cjs +156 -231
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +23931 -22162
  17. package/dist/vuetify.d.ts +753 -317
  18. package/dist/vuetify.esm.js +156 -231
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +156 -231
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +4 -3
  23. package/dist/vuetify.min.js +295 -280
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/blueprints/md3.js +18 -5
  26. package/lib/blueprints/md3.js.map +1 -1
  27. package/lib/components/VAlert/VAlert.css +215 -207
  28. package/lib/components/VApp/VApp.css +15 -16
  29. package/lib/components/VAppBar/VAppBar.css +12 -14
  30. package/lib/components/VAutocomplete/VAutocomplete.css +84 -85
  31. package/lib/components/VAutocomplete/VAutocomplete.d.ts +9 -18
  32. package/lib/components/VAutocomplete/VAutocomplete.js +3 -6
  33. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  34. package/lib/components/VAvatar/VAvatar.css +106 -108
  35. package/lib/components/VBadge/VBadge.css +77 -77
  36. package/lib/components/VBanner/VBanner.css +166 -161
  37. package/lib/components/VBottomNavigation/VBottomNavigation.css +64 -65
  38. package/lib/components/VBottomSheet/VBottomSheet.css +31 -34
  39. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +57 -54
  40. package/lib/components/VBtn/VBtn.css +408 -372
  41. package/lib/components/VBtn/VBtn.sass +23 -10
  42. package/lib/components/VBtn/_variables.scss +1 -1
  43. package/lib/components/VBtnGroup/VBtnGroup.css +87 -63
  44. package/lib/components/VBtnGroup/VBtnGroup.d.ts +58 -32
  45. package/lib/components/VBtnGroup/VBtnGroup.js +7 -3
  46. package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
  47. package/lib/components/VBtnGroup/VBtnGroup.sass +44 -17
  48. package/lib/components/VBtnToggle/VBtnToggle.css +14 -16
  49. package/lib/components/VBtnToggle/VBtnToggle.d.ts +25 -0
  50. package/lib/components/VCard/VCard.css +302 -294
  51. package/lib/components/VCarousel/VCarousel.css +65 -63
  52. package/lib/components/VCarousel/VCarousel.sass +1 -1
  53. package/lib/components/VCheckbox/VCheckbox.css +5 -7
  54. package/lib/components/VChip/VChip.css +411 -378
  55. package/lib/components/VChipGroup/VChipGroup.css +18 -19
  56. package/lib/components/VCode/VCode.css +11 -10
  57. package/lib/components/VCode/VCode.sass +3 -0
  58. package/lib/components/VColorPicker/VColorPicker.css +23 -23
  59. package/lib/components/VColorPicker/VColorPickerCanvas.css +22 -24
  60. package/lib/components/VColorPicker/VColorPickerEdit.css +28 -29
  61. package/lib/components/VColorPicker/VColorPickerPreview.css +67 -69
  62. package/lib/components/VColorPicker/VColorPickerPreview.sass +2 -4
  63. package/lib/components/VColorPicker/VColorPickerSwatches.css +34 -34
  64. package/lib/components/VCombobox/VCombobox.css +84 -85
  65. package/lib/components/VCombobox/VCombobox.d.ts +9 -18
  66. package/lib/components/VCombobox/VCombobox.js +3 -6
  67. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  68. package/lib/components/VCounter/VCounter.css +5 -7
  69. package/lib/components/VDataTable/VDataTable.css +186 -189
  70. package/lib/components/VDataTable/VDataTable.sass +11 -21
  71. package/lib/components/VDataTable/VDataTableFooter.css +31 -33
  72. package/lib/components/VDatePicker/VDatePicker.css +6 -8
  73. package/lib/components/VDatePicker/VDatePicker.d.ts +7 -7
  74. package/lib/components/VDatePicker/VDatePickerControls.css +57 -55
  75. package/lib/components/VDatePicker/VDatePickerHeader.css +60 -56
  76. package/lib/components/VDatePicker/VDatePickerMonth.css +55 -51
  77. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +7 -7
  78. package/lib/components/VDatePicker/VDatePickerMonths.css +19 -20
  79. package/lib/components/VDatePicker/VDatePickerYears.css +15 -16
  80. package/lib/components/VDialog/VDialog.css +98 -98
  81. package/lib/components/VDivider/VDivider.css +52 -52
  82. package/lib/components/VEmptyState/VEmptyState.css +67 -62
  83. package/lib/components/VExpansionPanel/VExpansionPanel.css +209 -203
  84. package/lib/components/VExpansionPanel/VExpansionPanel.sass +25 -27
  85. package/lib/components/VFab/VFab.css +73 -78
  86. package/lib/components/VFab/VFab.sass +4 -5
  87. package/lib/components/VField/VField.css +589 -541
  88. package/lib/components/VField/VField.sass +11 -4
  89. package/lib/components/VField/_variables.scss +1 -1
  90. package/lib/components/VFileInput/VFileInput.css +28 -30
  91. package/lib/components/VFooter/VFooter.css +36 -38
  92. package/lib/components/VForm/VForm.d.ts +531 -111
  93. package/lib/components/VForm/VForm.js +1 -11
  94. package/lib/components/VForm/VForm.js.map +1 -1
  95. package/lib/components/VGrid/VGrid.css +592 -565
  96. package/lib/components/VIcon/VIcon.css +53 -52
  97. package/lib/components/VImg/VImg.css +51 -50
  98. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +37 -36
  99. package/lib/components/VInput/VInput.css +147 -136
  100. package/lib/components/VInput/VInput.d.ts +1 -1
  101. package/lib/components/VItemGroup/VItemGroup.css +5 -7
  102. package/lib/components/VKbd/VKbd.css +11 -13
  103. package/lib/components/VLabel/VLabel.css +15 -16
  104. package/lib/components/VLayout/VLayout.css +8 -10
  105. package/lib/components/VLayout/VLayoutItem.css +7 -8
  106. package/lib/components/VList/VList.css +108 -104
  107. package/lib/components/VList/VList.sass +1 -1
  108. package/lib/components/VList/VListItem.css +452 -440
  109. package/lib/components/VList/VListItem.sass +1 -2
  110. package/lib/components/VLocaleProvider/VLocaleProvider.css +2 -4
  111. package/lib/components/VMain/VMain.css +30 -32
  112. package/lib/components/VMenu/VMenu.css +19 -21
  113. package/lib/components/VMessages/VMessages.css +15 -17
  114. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +104 -102
  115. package/lib/components/VNumberInput/VNumberInput.css +46 -48
  116. package/lib/components/VOtpInput/VOtpInput.css +58 -56
  117. package/lib/components/VOverlay/VOverlay.css +64 -61
  118. package/lib/components/VOverlay/VOverlay.sass +13 -14
  119. package/lib/components/VOverlay/_variables.scss +1 -1
  120. package/lib/components/VPagination/VPagination.css +8 -10
  121. package/lib/components/VParallax/VParallax.css +6 -8
  122. package/lib/components/VProgressCircular/VProgressCircular.css +101 -95
  123. package/lib/components/VProgressLinear/VProgressLinear.css +222 -209
  124. package/lib/components/VRadioGroup/VRadioGroup.css +12 -14
  125. package/lib/components/VRating/VRating.css +53 -52
  126. package/lib/components/VResponsive/VResponsive.css +26 -25
  127. package/lib/components/VSelect/VSelect.css +51 -53
  128. package/lib/components/VSelect/VSelect.d.ts +9 -18
  129. package/lib/components/VSelect/VSelect.js +3 -6
  130. package/lib/components/VSelect/VSelect.js.map +1 -1
  131. package/lib/components/VSelectionControl/VSelectionControl.css +100 -98
  132. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +8 -10
  133. package/lib/components/VSheet/VSheet.css +36 -38
  134. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +224 -225
  135. package/lib/components/VSlideGroup/VSlideGroup.css +55 -53
  136. package/lib/components/VSlider/VSlider.css +57 -53
  137. package/lib/components/VSlider/VSliderThumb.css +153 -142
  138. package/lib/components/VSlider/VSliderTrack.css +174 -155
  139. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  140. package/lib/components/VSpeedDial/VSpeedDial.css +41 -43
  141. package/lib/components/VStepper/VStepper.css +56 -55
  142. package/lib/components/VStepper/VStepperItem.css +115 -112
  143. package/lib/components/VSwitch/VSwitch.css +139 -129
  144. package/lib/components/VSystemBar/VSystemBar.css +43 -45
  145. package/lib/components/VTable/VTable.css +141 -140
  146. package/lib/components/VTable/VTable.sass +2 -4
  147. package/lib/components/VTabs/VTab.css +29 -30
  148. package/lib/components/VTabs/VTabs.css +65 -59
  149. package/lib/components/VTextField/VTextField.css +85 -77
  150. package/lib/components/VTextarea/VTextarea.css +40 -48
  151. package/lib/components/VTextarea/VTextarea.sass +2 -4
  152. package/lib/components/VThemeProvider/VThemeProvider.css +3 -5
  153. package/lib/components/VTimeline/VTimeline.css +427 -388
  154. package/lib/components/VToolbar/VToolbar.css +144 -137
  155. package/lib/components/VTooltip/VTooltip.css +23 -27
  156. package/lib/components/VTooltip/VTooltip.sass +6 -8
  157. package/lib/components/VVirtualScroll/VVirtualScroll.css +9 -11
  158. package/lib/components/VWindow/VWindow.css +70 -73
  159. package/lib/composables/calendar.d.ts +3 -2
  160. package/lib/composables/calendar.js +5 -7
  161. package/lib/composables/calendar.js.map +1 -1
  162. package/lib/composables/date/DateAdapter.d.ts +1 -0
  163. package/lib/composables/date/DateAdapter.js.map +1 -1
  164. package/lib/composables/date/adapters/vuetify.d.ts +1 -0
  165. package/lib/composables/date/adapters/vuetify.js +101 -160
  166. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  167. package/lib/composables/date/date.d.ts +1 -1
  168. package/lib/composables/date/date.js +0 -20
  169. package/lib/composables/date/date.js.map +1 -1
  170. package/lib/composables/filter.js +2 -1
  171. package/lib/composables/filter.js.map +1 -1
  172. package/lib/composables/theme.js +5 -5
  173. package/lib/composables/theme.js.map +1 -1
  174. package/lib/composables/validation.js +5 -0
  175. package/lib/composables/validation.js.map +1 -1
  176. package/lib/directives/ripple/VRipple.css +36 -38
  177. package/lib/entry-bundler.d.ts +1 -0
  178. package/lib/entry-bundler.js +1 -1
  179. package/lib/entry-bundler.js.map +1 -1
  180. package/lib/framework.d.ts +62 -59
  181. package/lib/framework.js +1 -1
  182. package/lib/framework.js.map +1 -1
  183. package/lib/labs/VCalendar/VCalendar.css +225 -219
  184. package/lib/labs/VCalendar/VCalendar.d.ts +7 -7
  185. package/lib/labs/VCalendar/VCalendarDay.css +32 -33
  186. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  187. package/lib/labs/VCalendar/VCalendarInterval.css +42 -43
  188. package/lib/labs/VCalendar/VCalendarInterval.js +25 -19
  189. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  190. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +5 -7
  191. package/lib/labs/VCalendar/VCalendarMonthDay.css +58 -61
  192. package/lib/labs/VCalendar/VCalendarMonthDay.sass +2 -3
  193. package/lib/labs/VDateInput/VDateInput.d.ts +7 -7
  194. package/lib/labs/VFileUpload/VFileUpload.css +77 -74
  195. package/lib/labs/VIconBtn/VIconBtn.css +164 -162
  196. package/lib/labs/VPicker/VPicker.css +63 -58
  197. package/lib/labs/VTimePicker/VTimePicker.css +7 -9
  198. package/lib/labs/VTimePicker/VTimePickerClock.css +129 -126
  199. package/lib/labs/VTimePicker/VTimePickerControls.css +103 -102
  200. package/lib/labs/VTreeview/VTreeviewItem.css +28 -30
  201. package/lib/labs/VTreeview/VTreeviewItem.sass +2 -3
  202. package/lib/labs/entry-bundler.d.ts +1 -0
  203. package/lib/styles/elements/_global.sass +1 -1
  204. package/lib/styles/generic/_colors.scss +3 -3
  205. package/lib/styles/generic/_layers.scss +1 -13
  206. package/lib/styles/generic/_reset.scss +1 -0
  207. package/lib/styles/generic/_transitions.scss +32 -32
  208. package/lib/styles/main.css +16142 -14667
  209. package/lib/styles/settings/_utilities.scss +5 -0
  210. package/lib/styles/settings/_variables.scss +3 -2
  211. package/lib/styles/tools/_bootable.sass +3 -0
  212. package/lib/styles/tools/_border.sass +4 -4
  213. package/lib/styles/tools/_display.sass +10 -0
  214. package/lib/styles/tools/_elevation.sass +2 -2
  215. package/lib/styles/tools/_index.sass +2 -0
  216. package/lib/styles/tools/_layer.scss +2 -4
  217. package/lib/styles/tools/_position.sass +2 -2
  218. package/lib/styles/tools/_radius.sass +10 -0
  219. package/lib/styles/tools/_rounded.sass +2 -2
  220. package/lib/styles/tools/_utilities.sass +5 -1
  221. package/lib/styles/utilities/_elevation.scss +1 -1
  222. package/package.json +46 -45
@@ -9,8 +9,9 @@
9
9
  .v-btn
10
10
  align-items: center
11
11
  border-radius: $button-border-radius
12
- display: inline-flex
13
- flex-direction: row
12
+ display: inline-grid
13
+ grid-template-areas: "prepend content append"
14
+ grid-template-columns: max-content auto max-content
14
15
  font-weight: $button-font-weight
15
16
  justify-content: center
16
17
  letter-spacing: $button-text-letter-spacing
@@ -87,8 +88,9 @@
87
88
  opacity: $button-disabled-opacity
88
89
  @else
89
90
  opacity: 1
90
- @include tools.layer('trumps')
91
- color: rgba(var(--v-theme-on-surface), $button-disabled-opacity)
91
+ &.v-btn
92
+ // specificity has to be higher to override theme !important
93
+ color: rgba(var(--v-theme-on-surface), $button-disabled-opacity) !important
92
94
 
93
95
  &.v-btn--variant-elevated,
94
96
  &.v-btn--variant-flat
@@ -99,8 +101,7 @@
99
101
  color: rgba(var(--v-theme-on-surface), $button-disabled-opacity)
100
102
  background: rgb(var(--v-theme-surface))
101
103
  @else
102
- @include tools.layer('trumps')
103
- background: rgb(var(--v-theme-surface))
104
+ background: rgb(var(--v-theme-surface)) !important
104
105
 
105
106
  .v-btn__overlay
106
107
  // __overlay uses currentColor, so we need to divide
@@ -116,10 +117,11 @@
116
117
  opacity: 0
117
118
 
118
119
  &--stacked
119
- align-items: center
120
- flex-direction: column
121
- justify-content: center
122
- gap: $button-stacked-gap
120
+ grid-template-areas: "prepend" "content" "append"
121
+ grid-template-columns: auto
122
+ grid-template-rows: max-content max-content max-content
123
+ justify-items: center
124
+ align-content: center
123
125
 
124
126
  .v-btn__content
125
127
  flex-direction: column
@@ -131,6 +133,14 @@
131
133
  .v-btn__content > .v-icon--end
132
134
  margin-inline: 0
133
135
 
136
+ .v-btn__prepend,
137
+ .v-btn__content > .v-icon--start
138
+ margin-bottom: $button-stacked-icon-margin
139
+
140
+ .v-btn__append,
141
+ .v-btn__content > .v-icon--end
142
+ margin-top: $button-stacked-icon-margin
143
+
134
144
  @at-root
135
145
  @include button-sizes($button-stacked-sizes, true)
136
146
  @include button-density('height', $button-stacked-density)
@@ -183,18 +193,21 @@
183
193
  transition: $button-content-transition
184
194
 
185
195
  .v-btn__prepend
196
+ grid-area: prepend
186
197
  margin-inline: $button-margin-start $button-margin-end
187
198
 
188
199
  .v-btn--slim &
189
200
  margin-inline-start: 0
190
201
 
191
202
  .v-btn__append
203
+ grid-area: append
192
204
  margin-inline: $button-margin-end $button-margin-start
193
205
 
194
206
  .v-btn--slim &
195
207
  margin-inline-end: 0
196
208
 
197
209
  .v-btn__content
210
+ grid-area: content
198
211
  justify-content: center
199
212
  white-space: $button-white-space
200
213
 
@@ -27,7 +27,7 @@ $button-font-size: tools.map-deep-get(settings.$typography, 'button', 'size') !d
27
27
  $button-font-weight: tools.map-deep-get(settings.$typography, 'button', 'weight') !default;
28
28
  $button-height: 36px !default;
29
29
  $button-stacked-height: 72px !default;
30
- $button-stacked-gap: 4px !default;
30
+ $button-stacked-icon-margin: 4px !default;
31
31
  $button-icon-border-radius: map.get(settings.$rounded, 'circle') !default;
32
32
  $button-icon-font-size: 1rem !default;
33
33
  $button-line-height: normal !default;
@@ -1,64 +1,88 @@
1
- @layer vuetify.components {
2
- .v-btn-group {
3
- display: inline-flex;
4
- flex-wrap: nowrap;
5
- max-width: 100%;
6
- min-width: 0;
7
- overflow: hidden;
8
- vertical-align: middle;
9
- }
10
- .v-btn-group {
11
- border-color: rgba(var(--v-border-color), var(--v-border-opacity));
12
- border-style: solid;
13
- border-width: 0;
14
- }
15
- .v-btn-group--border {
16
- border-width: thin;
17
- box-shadow: none;
18
- }
19
- .v-btn-group {
20
- box-shadow: 0px 0px 0px 0px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 0px 0px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 0px 0px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
21
- }
22
- .v-btn-group {
23
- border-radius: 4px;
24
- }
25
- .v-btn-group {
26
- background: transparent;
27
- color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));
28
- }
29
- .v-btn-group--density-default.v-btn-group {
30
- height: 48px;
31
- }
32
- .v-btn-group--density-comfortable.v-btn-group {
33
- height: 40px;
34
- }
35
- .v-btn-group--density-compact.v-btn-group {
36
- height: 36px;
37
- }
38
- .v-btn-group .v-btn {
39
- border-radius: 0;
40
- border-color: inherit;
41
- }
42
- .v-btn-group .v-btn:not(:last-child) {
43
- border-inline-end: none;
44
- }
45
- .v-btn-group .v-btn:not(:first-child) {
46
- border-inline-start: none;
47
- }
48
- .v-btn-group .v-btn:first-child {
49
- border-start-start-radius: inherit;
50
- border-end-start-radius: inherit;
51
- }
52
- .v-btn-group .v-btn:last-child {
53
- border-start-end-radius: inherit;
54
- border-end-end-radius: inherit;
55
- }
56
- .v-btn-group--divided .v-btn:not(:last-child) {
57
- border-inline-end-width: thin;
58
- border-inline-end-style: solid;
59
- border-inline-end-color: rgba(var(--v-border-color), var(--v-border-opacity));
60
- }
61
- .v-btn-group--tile {
62
- border-radius: 0;
63
- }
1
+ .v-btn-group {
2
+ display: inline-flex;
3
+ flex-wrap: nowrap;
4
+ max-width: 100%;
5
+ min-width: 0;
6
+ overflow: hidden;
7
+ vertical-align: middle;
8
+ }
9
+ .v-btn-group {
10
+ border-color: rgba(var(--v-border-color), var(--v-border-opacity));
11
+ border-style: solid;
12
+ border-width: 0;
13
+ }
14
+ .v-btn-group--border {
15
+ border-width: thin;
16
+ box-shadow: none;
17
+ }
18
+ .v-btn-group {
19
+ box-shadow: 0px 0px 0px 0px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 0px 0px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 0px 0px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
20
+ }
21
+ .v-btn-group {
22
+ border-radius: 4px;
23
+ }
24
+ .v-btn-group {
25
+ background: transparent;
26
+ color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));
27
+ }
28
+ .v-btn-group--density-default.v-btn-group {
29
+ height: 48px;
30
+ }
31
+
32
+ .v-btn-group--density-comfortable.v-btn-group {
33
+ height: 40px;
34
+ }
35
+
36
+ .v-btn-group--density-compact.v-btn-group {
37
+ height: 36px;
38
+ }
39
+
40
+ .v-btn-group .v-btn {
41
+ border-radius: 0;
42
+ border-color: inherit;
43
+ }
44
+ .v-btn-group--tile {
45
+ border-radius: 0;
46
+ }
47
+ .v-btn-group--horizontal .v-btn:not(:last-child) {
48
+ border-inline-end: none;
49
+ }
50
+ .v-btn-group--horizontal .v-btn:not(:first-child) {
51
+ border-inline-start: none;
52
+ }
53
+ .v-btn-group--horizontal .v-btn:first-child {
54
+ border-start-start-radius: inherit;
55
+ border-end-start-radius: inherit;
56
+ }
57
+ .v-btn-group--horizontal .v-btn:last-child {
58
+ border-start-end-radius: inherit;
59
+ border-end-end-radius: inherit;
60
+ }
61
+ .v-btn-group--horizontal.v-btn-group--divided .v-btn:not(:last-child) {
62
+ border-inline-end-width: thin;
63
+ border-inline-end-style: solid;
64
+ border-inline-end-color: rgba(var(--v-border-color), var(--v-border-opacity));
65
+ }
66
+ .v-btn-group--vertical {
67
+ flex-direction: column;
68
+ height: auto !important;
69
+ }
70
+ .v-btn-group--vertical .v-btn:not(:last-child) {
71
+ border-block-end: none;
72
+ }
73
+ .v-btn-group--vertical .v-btn:not(:first-child) {
74
+ border-block-start: none;
75
+ }
76
+ .v-btn-group--vertical .v-btn:first-child {
77
+ border-start-start-radius: inherit;
78
+ border-start-end-radius: inherit;
79
+ }
80
+ .v-btn-group--vertical .v-btn:last-child {
81
+ border-end-start-radius: inherit;
82
+ border-end-end-radius: inherit;
83
+ }
84
+ .v-btn-group--vertical.v-btn-group--divided .v-btn:not(:last-child) {
85
+ border-block-end-width: thin;
86
+ border-block-end-style: solid;
87
+ border-block-end-color: rgba(var(--v-border-color), var(--v-border-opacity));
64
88
  }
@@ -1,3 +1,4 @@
1
+ import type { PropType } from 'vue';
1
2
  export declare const makeVBtnGroupProps: <Defaults extends {
2
3
  color?: unknown;
3
4
  variant?: unknown;
@@ -12,35 +13,36 @@ export declare const makeVBtnGroupProps: <Defaults extends {
12
13
  border?: unknown;
13
14
  baseColor?: unknown;
14
15
  divided?: unknown;
16
+ direction?: unknown;
15
17
  } = {}>(defaults?: Defaults | undefined) => {
16
18
  color: unknown extends Defaults["color"] ? StringConstructor : {
17
- type: import("vue").PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
19
+ type: PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
18
20
  default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
19
21
  };
20
22
  variant: unknown extends Defaults["variant"] ? {
21
- type: import("vue").PropType<import("../../composables/variant.js").Variant>;
23
+ type: PropType<import("../../composables/variant.js").Variant>;
22
24
  default: string;
23
25
  validator: (v: any) => boolean;
24
26
  } : Omit<{
25
- type: import("vue").PropType<import("../../composables/variant.js").Variant>;
27
+ type: PropType<import("../../composables/variant.js").Variant>;
26
28
  default: string;
27
29
  validator: (v: any) => boolean;
28
30
  }, "type" | "default"> & {
29
- type: import("vue").PropType<unknown extends Defaults["variant"] ? "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" : "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" | Defaults["variant"]>;
31
+ type: PropType<unknown extends Defaults["variant"] ? "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" : "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" | Defaults["variant"]>;
30
32
  default: unknown extends Defaults["variant"] ? "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" : NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"> | Defaults["variant"];
31
33
  };
32
34
  theme: unknown extends Defaults["theme"] ? StringConstructor : {
33
- type: import("vue").PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
35
+ type: PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
34
36
  default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
35
37
  };
36
38
  tag: unknown extends Defaults["tag"] ? {
37
- type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
39
+ type: PropType<string | import("../../util/index.js").JSXComponent>;
38
40
  default: string;
39
41
  } : Omit<{
40
- type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
42
+ type: PropType<string | import("../../util/index.js").JSXComponent>;
41
43
  default: string;
42
44
  }, "type" | "default"> & {
43
- type: import("vue").PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | import("../../util/index.js").JSXComponent | Defaults["tag"]>;
45
+ type: PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | import("../../util/index.js").JSXComponent | Defaults["tag"]>;
44
46
  default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : NonNullable<string | import("../../util/index.js").JSXComponent> | Defaults["tag"];
45
47
  };
46
48
  rounded: unknown extends Defaults["rounded"] ? {
@@ -50,11 +52,11 @@ export declare const makeVBtnGroupProps: <Defaults extends {
50
52
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
51
53
  default: undefined;
52
54
  }, "type" | "default"> & {
53
- type: import("vue").PropType<unknown extends Defaults["rounded"] ? string | number | boolean : string | number | boolean | Defaults["rounded"]>;
55
+ type: PropType<unknown extends Defaults["rounded"] ? string | number | boolean : string | number | boolean | Defaults["rounded"]>;
54
56
  default: unknown extends Defaults["rounded"] ? string | number | boolean : NonNullable<string | number | boolean> | Defaults["rounded"];
55
57
  };
56
58
  tile: unknown extends Defaults["tile"] ? BooleanConstructor : {
57
- type: import("vue").PropType<unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]>;
59
+ type: PropType<unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]>;
58
60
  default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"];
59
61
  };
60
62
  elevation: unknown extends Defaults["elevation"] ? {
@@ -64,51 +66,62 @@ export declare const makeVBtnGroupProps: <Defaults extends {
64
66
  type: (StringConstructor | NumberConstructor)[];
65
67
  validator(v: any): boolean;
66
68
  }, "type" | "default"> & {
67
- type: import("vue").PropType<unknown extends Defaults["elevation"] ? string | number : string | number | Defaults["elevation"]>;
69
+ type: PropType<unknown extends Defaults["elevation"] ? string | number : string | number | Defaults["elevation"]>;
68
70
  default: unknown extends Defaults["elevation"] ? string | number : NonNullable<string | number> | Defaults["elevation"];
69
71
  };
70
72
  density: unknown extends Defaults["density"] ? {
71
- type: import("vue").PropType<import("../../composables/density.js").Density>;
73
+ type: PropType<import("../../composables/density.js").Density>;
72
74
  default: string;
73
75
  validator: (v: any) => boolean;
74
76
  } : Omit<{
75
- type: import("vue").PropType<import("../../composables/density.js").Density>;
77
+ type: PropType<import("../../composables/density.js").Density>;
76
78
  default: string;
77
79
  validator: (v: any) => boolean;
78
80
  }, "type" | "default"> & {
79
- type: import("vue").PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : import("../../composables/density.js").Density | Defaults["density"]>;
81
+ type: PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : import("../../composables/density.js").Density | Defaults["density"]>;
80
82
  default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : NonNullable<import("../../composables/density.js").Density> | Defaults["density"];
81
83
  };
82
- class: unknown extends Defaults["class"] ? import("vue").PropType<any> : {
83
- type: import("vue").PropType<unknown extends Defaults["class"] ? any : any>;
84
+ class: unknown extends Defaults["class"] ? PropType<any> : {
85
+ type: PropType<unknown extends Defaults["class"] ? any : any>;
84
86
  default: unknown extends Defaults["class"] ? any : any;
85
87
  };
86
88
  style: unknown extends Defaults["style"] ? {
87
- type: import("vue").PropType<import("vue").StyleValue>;
89
+ type: PropType<import("vue").StyleValue>;
88
90
  default: null;
89
91
  } : Omit<{
90
- type: import("vue").PropType<import("vue").StyleValue>;
92
+ type: PropType<import("vue").StyleValue>;
91
93
  default: null;
92
94
  }, "type" | "default"> & {
93
- type: import("vue").PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : import("vue").StyleValue | Defaults["style"]>;
95
+ type: PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : import("vue").StyleValue | Defaults["style"]>;
94
96
  default: unknown extends Defaults["style"] ? import("vue").StyleValue : NonNullable<import("vue").StyleValue> | Defaults["style"];
95
97
  };
96
98
  border: unknown extends Defaults["border"] ? (StringConstructor | BooleanConstructor | NumberConstructor)[] : {
97
- type: import("vue").PropType<unknown extends Defaults["border"] ? string | number | boolean : string | number | boolean | Defaults["border"]>;
99
+ type: PropType<unknown extends Defaults["border"] ? string | number | boolean : string | number | boolean | Defaults["border"]>;
98
100
  default: unknown extends Defaults["border"] ? string | number | boolean : NonNullable<string | number | boolean> | Defaults["border"];
99
101
  };
100
102
  baseColor: unknown extends Defaults["baseColor"] ? StringConstructor : {
101
- type: import("vue").PropType<unknown extends Defaults["baseColor"] ? string : string | Defaults["baseColor"]>;
103
+ type: PropType<unknown extends Defaults["baseColor"] ? string : string | Defaults["baseColor"]>;
102
104
  default: unknown extends Defaults["baseColor"] ? string : string | Defaults["baseColor"];
103
105
  };
104
106
  divided: unknown extends Defaults["divided"] ? BooleanConstructor : {
105
- type: import("vue").PropType<unknown extends Defaults["divided"] ? boolean : boolean | Defaults["divided"]>;
107
+ type: PropType<unknown extends Defaults["divided"] ? boolean : boolean | Defaults["divided"]>;
106
108
  default: unknown extends Defaults["divided"] ? boolean : boolean | Defaults["divided"];
107
109
  };
110
+ direction: unknown extends Defaults["direction"] ? {
111
+ type: PropType<"horizontal" | "vertical">;
112
+ default: string;
113
+ } : Omit<{
114
+ type: PropType<"horizontal" | "vertical">;
115
+ default: string;
116
+ }, "type" | "default"> & {
117
+ type: PropType<unknown extends Defaults["direction"] ? "horizontal" | "vertical" : "horizontal" | "vertical" | Defaults["direction"]>;
118
+ default: unknown extends Defaults["direction"] ? "horizontal" | "vertical" : Defaults["direction"] | NonNullable<"horizontal" | "vertical">;
119
+ };
108
120
  };
109
121
  export declare const VBtnGroup: {
110
122
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
111
123
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
124
+ direction: "horizontal" | "vertical";
112
125
  style: import("vue").StyleValue;
113
126
  tag: string | import("../../util/index.js").JSXComponent;
114
127
  density: import("../../composables/density.js").Density;
@@ -133,6 +146,7 @@ export declare const VBtnGroup: {
133
146
  "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
134
147
  }, void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
135
148
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
149
+ direction: "horizontal" | "vertical";
136
150
  style: import("vue").StyleValue;
137
151
  tag: string | import("../../util/index.js").JSXComponent;
138
152
  density: import("../../composables/density.js").Density;
@@ -150,6 +164,7 @@ export declare const VBtnGroup: {
150
164
  Defaults: {};
151
165
  }, {
152
166
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
167
+ direction: "horizontal" | "vertical";
153
168
  style: import("vue").StyleValue;
154
169
  tag: string | import("../../util/index.js").JSXComponent;
155
170
  density: import("../../composables/density.js").Density;
@@ -174,6 +189,7 @@ export declare const VBtnGroup: {
174
189
  "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
175
190
  }, {}, {}, {}, {}, {
176
191
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
192
+ direction: "horizontal" | "vertical";
177
193
  style: import("vue").StyleValue;
178
194
  tag: string | import("../../util/index.js").JSXComponent;
179
195
  density: import("../../composables/density.js").Density;
@@ -186,6 +202,7 @@ export declare const VBtnGroup: {
186
202
  __isSuspense?: never;
187
203
  } & import("vue").ComponentOptionsBase<{
188
204
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
205
+ direction: "horizontal" | "vertical";
189
206
  style: import("vue").StyleValue;
190
207
  tag: string | import("../../util/index.js").JSXComponent;
191
208
  density: import("../../composables/density.js").Density;
@@ -210,6 +227,7 @@ export declare const VBtnGroup: {
210
227
  "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
211
228
  }, void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
212
229
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
230
+ direction: "horizontal" | "vertical";
213
231
  style: import("vue").StyleValue;
214
232
  tag: string | import("../../util/index.js").JSXComponent;
215
233
  density: import("../../composables/density.js").Density;
@@ -221,13 +239,13 @@ export declare const VBtnGroup: {
221
239
  }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
222
240
  color: StringConstructor;
223
241
  variant: {
224
- type: import("vue").PropType<import("../../composables/variant.js").Variant>;
242
+ type: PropType<import("../../composables/variant.js").Variant>;
225
243
  default: string;
226
244
  validator: (v: any) => boolean;
227
245
  };
228
246
  theme: StringConstructor;
229
247
  tag: {
230
- type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
248
+ type: PropType<string | import("../../util/index.js").JSXComponent>;
231
249
  default: string;
232
250
  };
233
251
  rounded: {
@@ -240,28 +258,32 @@ export declare const VBtnGroup: {
240
258
  validator(v: any): boolean;
241
259
  };
242
260
  density: {
243
- type: import("vue").PropType<import("../../composables/density.js").Density>;
261
+ type: PropType<import("../../composables/density.js").Density>;
244
262
  default: string;
245
263
  validator: (v: any) => boolean;
246
264
  };
247
- class: import("vue").PropType<import("../../composables/component.js").ClassValue>;
265
+ class: PropType<import("../../composables/component.js").ClassValue>;
248
266
  style: {
249
- type: import("vue").PropType<import("vue").StyleValue>;
267
+ type: PropType<import("vue").StyleValue>;
250
268
  default: null;
251
269
  };
252
270
  border: (StringConstructor | BooleanConstructor | NumberConstructor)[];
253
271
  baseColor: StringConstructor;
254
272
  divided: BooleanConstructor;
273
+ direction: {
274
+ type: PropType<"horizontal" | "vertical">;
275
+ default: string;
276
+ };
255
277
  }, import("vue").ExtractPropTypes<{
256
278
  color: StringConstructor;
257
279
  variant: {
258
- type: import("vue").PropType<import("../../composables/variant.js").Variant>;
280
+ type: PropType<import("../../composables/variant.js").Variant>;
259
281
  default: string;
260
282
  validator: (v: any) => boolean;
261
283
  };
262
284
  theme: StringConstructor;
263
285
  tag: {
264
- type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
286
+ type: PropType<string | import("../../util/index.js").JSXComponent>;
265
287
  default: string;
266
288
  };
267
289
  rounded: {
@@ -274,17 +296,21 @@ export declare const VBtnGroup: {
274
296
  validator(v: any): boolean;
275
297
  };
276
298
  density: {
277
- type: import("vue").PropType<import("../../composables/density.js").Density>;
299
+ type: PropType<import("../../composables/density.js").Density>;
278
300
  default: string;
279
301
  validator: (v: any) => boolean;
280
302
  };
281
- class: import("vue").PropType<import("../../composables/component.js").ClassValue>;
303
+ class: PropType<import("../../composables/component.js").ClassValue>;
282
304
  style: {
283
- type: import("vue").PropType<import("vue").StyleValue>;
305
+ type: PropType<import("vue").StyleValue>;
284
306
  default: null;
285
307
  };
286
308
  border: (StringConstructor | BooleanConstructor | NumberConstructor)[];
287
309
  baseColor: StringConstructor;
288
310
  divided: BooleanConstructor;
311
+ direction: {
312
+ type: PropType<"horizontal" | "vertical">;
313
+ default: string;
314
+ };
289
315
  }>>;
290
316
  export type VBtnGroup = InstanceType<typeof VBtnGroup>;
@@ -13,10 +13,14 @@ import { makeTagProps } from "../../composables/tag.js";
13
13
  import { makeThemeProps, provideTheme } from "../../composables/theme.js";
14
14
  import { makeVariantProps } from "../../composables/variant.js"; // Utilities
15
15
  import { toRef } from 'vue';
16
- import { genericComponent, propsFactory, useRender } from "../../util/index.js";
16
+ import { genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
17
17
  export const makeVBtnGroupProps = propsFactory({
18
18
  baseColor: String,
19
19
  divided: Boolean,
20
+ direction: {
21
+ type: String,
22
+ default: 'horizontal'
23
+ },
20
24
  ...makeBorderProps(),
21
25
  ...makeComponentProps(),
22
26
  ...makeDensityProps(),
@@ -50,7 +54,7 @@ export const VBtnGroup = genericComponent()({
50
54
  } = useRounded(props);
51
55
  provideDefaults({
52
56
  VBtn: {
53
- height: 'auto',
57
+ height: props.direction === 'horizontal' ? 'auto' : null,
54
58
  baseColor: toRef(props, 'baseColor'),
55
59
  color: toRef(props, 'color'),
56
60
  density: toRef(props, 'density'),
@@ -60,7 +64,7 @@ export const VBtnGroup = genericComponent()({
60
64
  });
61
65
  useRender(() => {
62
66
  return _createVNode(props.tag, {
63
- "class": ['v-btn-group', {
67
+ "class": ['v-btn-group', `v-btn-group--${props.direction}`, {
64
68
  'v-btn-group--divided': props.divided
65
69
  }, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
66
70
  "style": props.style
@@ -1 +1 @@
1
- {"version":3,"file":"VBtnGroup.js","names":["makeBorderProps","useBorder","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","toRef","genericComponent","propsFactory","useRender","makeVBtnGroupProps","baseColor","String","divided","Boolean","VBtnGroup","name","props","setup","_ref","slots","themeClasses","densityClasses","borderClasses","elevationClasses","roundedClasses","VBtn","height","color","density","flat","variant","_createVNode","tag","value","class","style"],"sources":["../../../src/components/VBtnGroup/VBtnGroup.tsx"],"sourcesContent":["// Styles\nimport './VBtnGroup.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVBtnGroupProps = propsFactory({\n baseColor: String,\n divided: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps(),\n}, 'VBtnGroup')\n\nexport const VBtnGroup = genericComponent()({\n name: 'VBtnGroup',\n\n props: makeVBtnGroupProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBtn: {\n height: 'auto',\n baseColor: toRef(props, 'baseColor'),\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n flat: true,\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-btn-group',\n {\n 'v-btn-group--divided': props.divided,\n },\n themeClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={ props.style }\n v-slots={ slots }\n />\n )\n })\n },\n})\n\nexport type VBtnGroup = InstanceType<typeof VBtnGroup>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,eAAe,EAAEC,SAAS;AAAA,SAC1BC,kBAAkB;AAAA,SAClBC,eAAe;AAAA,SACfC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,gBAAgB,wCAEzB;AACA,SAASC,KAAK,QAAQ,KAAK;AAAA,SAClBC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAElD,OAAO,MAAMC,kBAAkB,GAAGF,YAAY,CAAC;EAC7CG,SAAS,EAAEC,MAAM;EACjBC,OAAO,EAAEC,OAAO;EAEhB,GAAGtB,eAAe,CAAC,CAAC;EACpB,GAAGE,kBAAkB,CAAC,CAAC;EACvB,GAAGE,gBAAgB,CAAC,CAAC;EACrB,GAAGE,kBAAkB,CAAC,CAAC;EACvB,GAAGE,gBAAgB,CAAC,CAAC;EACrB,GAAGE,YAAY,CAAC,CAAC;EACjB,GAAGC,cAAc,CAAC,CAAC;EACnB,GAAGE,gBAAgB,CAAC;AACtB,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,MAAMU,SAAS,GAAGR,gBAAgB,CAAC,CAAC,CAAC;EAC1CS,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAEP,kBAAkB,CAAC,CAAC;EAE3BQ,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAa,CAAC,GAAGjB,YAAY,CAACa,KAAK,CAAC;IAC5C,MAAM;MAAEK;IAAe,CAAC,GAAGzB,UAAU,CAACoB,KAAK,CAAC;IAC5C,MAAM;MAAEM;IAAc,CAAC,GAAG9B,SAAS,CAACwB,KAAK,CAAC;IAC1C,MAAM;MAAEO;IAAiB,CAAC,GAAGzB,YAAY,CAACkB,KAAK,CAAC;IAChD,MAAM;MAAEQ;IAAe,CAAC,GAAGxB,UAAU,CAACgB,KAAK,CAAC;IAE5CtB,eAAe,CAAC;MACd+B,IAAI,EAAE;QACJC,MAAM,EAAE,MAAM;QACdhB,SAAS,EAAEL,KAAK,CAACW,KAAK,EAAE,WAAW,CAAC;QACpCW,KAAK,EAAEtB,KAAK,CAACW,KAAK,EAAE,OAAO,CAAC;QAC5BY,OAAO,EAAEvB,KAAK,CAACW,KAAK,EAAE,SAAS,CAAC;QAChCa,IAAI,EAAE,IAAI;QACVC,OAAO,EAAEzB,KAAK,CAACW,KAAK,EAAE,SAAS;MACjC;IACF,CAAC,CAAC;IAEFR,SAAS,CAAC,MAAM;MACd,OAAAuB,YAAA,CAAAf,KAAA,CAAAgB,GAAA;QAAA,SAEW,CACL,aAAa,EACb;UACE,sBAAsB,EAAEhB,KAAK,CAACJ;QAChC,CAAC,EACDQ,YAAY,CAACa,KAAK,EAClBX,aAAa,CAACW,KAAK,EACnBZ,cAAc,CAACY,KAAK,EACpBV,gBAAgB,CAACU,KAAK,EACtBT,cAAc,CAACS,KAAK,EACpBjB,KAAK,CAACkB,KAAK,CACZ;QAAA,SACOlB,KAAK,CAACmB;MAAK,GACThB,KAAK;IAGrB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VBtnGroup.js","names":["makeBorderProps","useBorder","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","toRef","genericComponent","propsFactory","useRender","makeVBtnGroupProps","baseColor","String","divided","Boolean","direction","type","default","VBtnGroup","name","props","setup","_ref","slots","themeClasses","densityClasses","borderClasses","elevationClasses","roundedClasses","VBtn","height","color","density","flat","variant","_createVNode","tag","value","class","style"],"sources":["../../../src/components/VBtnGroup/VBtnGroup.tsx"],"sourcesContent":["// Styles\nimport './VBtnGroup.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVBtnGroupProps = propsFactory({\n baseColor: String,\n divided: Boolean,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps(),\n}, 'VBtnGroup')\n\nexport const VBtnGroup = genericComponent()({\n name: 'VBtnGroup',\n\n props: makeVBtnGroupProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBtn: {\n height: props.direction === 'horizontal' ? 'auto' : null,\n baseColor: toRef(props, 'baseColor'),\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n flat: true,\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-btn-group',\n `v-btn-group--${props.direction}`,\n {\n 'v-btn-group--divided': props.divided,\n },\n themeClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={ props.style }\n v-slots={ slots }\n />\n )\n })\n },\n})\n\nexport type VBtnGroup = InstanceType<typeof VBtnGroup>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,eAAe,EAAEC,SAAS;AAAA,SAC1BC,kBAAkB;AAAA,SAClBC,eAAe;AAAA,SACfC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,gBAAgB,wCAEzB;AACA,SAASC,KAAK,QAAQ,KAAK;AAAA,SAClBC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,+BAElD;AAGA,OAAO,MAAMC,kBAAkB,GAAGF,YAAY,CAAC;EAC7CG,SAAS,EAAEC,MAAM;EACjBC,OAAO,EAAEC,OAAO;EAChBC,SAAS,EAAE;IACTC,IAAI,EAAEJ,MAA6C;IACnDK,OAAO,EAAE;EACX,CAAC;EAED,GAAGzB,eAAe,CAAC,CAAC;EACpB,GAAGE,kBAAkB,CAAC,CAAC;EACvB,GAAGE,gBAAgB,CAAC,CAAC;EACrB,GAAGE,kBAAkB,CAAC,CAAC;EACvB,GAAGE,gBAAgB,CAAC,CAAC;EACrB,GAAGE,YAAY,CAAC,CAAC;EACjB,GAAGC,cAAc,CAAC,CAAC;EACnB,GAAGE,gBAAgB,CAAC;AACtB,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,MAAMa,SAAS,GAAGX,gBAAgB,CAAC,CAAC,CAAC;EAC1CY,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAEV,kBAAkB,CAAC,CAAC;EAE3BW,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAa,CAAC,GAAGpB,YAAY,CAACgB,KAAK,CAAC;IAC5C,MAAM;MAAEK;IAAe,CAAC,GAAG5B,UAAU,CAACuB,KAAK,CAAC;IAC5C,MAAM;MAAEM;IAAc,CAAC,GAAGjC,SAAS,CAAC2B,KAAK,CAAC;IAC1C,MAAM;MAAEO;IAAiB,CAAC,GAAG5B,YAAY,CAACqB,KAAK,CAAC;IAChD,MAAM;MAAEQ;IAAe,CAAC,GAAG3B,UAAU,CAACmB,KAAK,CAAC;IAE5CzB,eAAe,CAAC;MACdkC,IAAI,EAAE;QACJC,MAAM,EAAEV,KAAK,CAACL,SAAS,KAAK,YAAY,GAAG,MAAM,GAAG,IAAI;QACxDJ,SAAS,EAAEL,KAAK,CAACc,KAAK,EAAE,WAAW,CAAC;QACpCW,KAAK,EAAEzB,KAAK,CAACc,KAAK,EAAE,OAAO,CAAC;QAC5BY,OAAO,EAAE1B,KAAK,CAACc,KAAK,EAAE,SAAS,CAAC;QAChCa,IAAI,EAAE,IAAI;QACVC,OAAO,EAAE5B,KAAK,CAACc,KAAK,EAAE,SAAS;MACjC;IACF,CAAC,CAAC;IAEFX,SAAS,CAAC,MAAM;MACd,OAAA0B,YAAA,CAAAf,KAAA,CAAAgB,GAAA;QAAA,SAEW,CACL,aAAa,EACb,gBAAgBhB,KAAK,CAACL,SAAS,EAAE,EACjC;UACE,sBAAsB,EAAEK,KAAK,CAACP;QAChC,CAAC,EACDW,YAAY,CAACa,KAAK,EAClBX,aAAa,CAACW,KAAK,EACnBZ,cAAc,CAACY,KAAK,EACpBV,gBAAgB,CAACU,KAAK,EACtBT,cAAc,CAACS,KAAK,EACpBjB,KAAK,CAACkB,KAAK,CACZ;QAAA,SACOlB,KAAK,CAACmB;MAAK,GACThB,KAAK;IAGrB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -28,25 +28,52 @@
28
28
  border-radius: 0
29
29
  border-color: inherit
30
30
 
31
- &:not(:last-child)
32
- border-inline-end: none
31
+ &--tile
32
+ @include tools.rounded($btn-group-tile-border-radius)
33
33
 
34
- &:not(:first-child)
35
- border-inline-start: none
34
+ &--horizontal
35
+ .v-btn
36
+ &:not(:last-child)
37
+ border-inline-end: none
36
38
 
37
- &:first-child
38
- border-start-start-radius: inherit
39
- border-end-start-radius: inherit
39
+ &:not(:first-child)
40
+ border-inline-start: none
40
41
 
41
- &:last-child
42
- border-start-end-radius: inherit
43
- border-end-end-radius: inherit
42
+ &:first-child
43
+ border-start-start-radius: inherit
44
+ border-end-start-radius: inherit
44
45
 
45
- &--divided
46
- .v-btn:not(:last-child)
47
- border-inline-end-width: $btn-group-border-thin-width
48
- border-inline-end-style: $btn-group-border-style
49
- border-inline-end-color: $btn-group-border-color
46
+ &:last-child
47
+ border-start-end-radius: inherit
48
+ border-end-end-radius: inherit
50
49
 
51
- &--tile
52
- @include tools.rounded($btn-group-tile-border-radius)
50
+ &.v-btn-group--divided
51
+ .v-btn:not(:last-child)
52
+ border-inline-end-width: $btn-group-border-thin-width
53
+ border-inline-end-style: $btn-group-border-style
54
+ border-inline-end-color: $btn-group-border-color
55
+
56
+ &--vertical
57
+ flex-direction: column
58
+ height: auto !important
59
+
60
+ .v-btn
61
+ &:not(:last-child)
62
+ border-block-end: none
63
+
64
+ &:not(:first-child)
65
+ border-block-start: none
66
+
67
+ &:first-child
68
+ border-start-start-radius: inherit
69
+ border-start-end-radius: inherit
70
+
71
+ &:last-child
72
+ border-end-start-radius: inherit
73
+ border-end-end-radius: inherit
74
+
75
+ &.v-btn-group--divided
76
+ .v-btn:not(:last-child)
77
+ border-block-end-width: $btn-group-border-thin-width
78
+ border-block-end-style: $btn-group-border-style
79
+ border-block-end-color: $btn-group-border-color