@volverjs/style 0.1.2-beta.9 → 0.1.2

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 (180) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +53 -46
  3. package/dist/components/vv-accordion.css +1 -1
  4. package/dist/components/vv-alert.css +1 -0
  5. package/dist/components/vv-avatar.css +1 -0
  6. package/dist/components/vv-badge.css +1 -1
  7. package/dist/components/vv-breadcrumb.css +1 -1
  8. package/dist/components/vv-button-group.css +1 -1
  9. package/dist/components/vv-button.css +1 -1
  10. package/dist/components/vv-card.css +1 -1
  11. package/dist/components/vv-checkbox-group.css +1 -0
  12. package/dist/components/vv-checkbox.css +1 -0
  13. package/dist/components/vv-dialog.css +1 -1
  14. package/dist/components/vv-dropdown.css +1 -1
  15. package/dist/components/vv-input-text.css +1 -1
  16. package/dist/components/vv-nav.css +1 -1
  17. package/dist/components/vv-progress.css +1 -1
  18. package/dist/components/vv-radio-group.css +1 -0
  19. package/dist/components/vv-radio.css +1 -0
  20. package/dist/components/vv-select.css +1 -1
  21. package/dist/components/vv-skeleton.css +1 -0
  22. package/dist/components/vv-tab.css +1 -0
  23. package/dist/components/vv-table.css +1 -1
  24. package/dist/components/vv-text.css +1 -1
  25. package/dist/components/vv-textarea.css +1 -1
  26. package/dist/components/vv-toast.css +1 -0
  27. package/dist/components/vv-tooltip.css +1 -0
  28. package/dist/components.css +1 -1
  29. package/dist/export.css +1 -1
  30. package/dist/props/background.css +1 -1
  31. package/dist/props/breakpoints.css +1 -0
  32. package/dist/props/colors.css +1 -1
  33. package/dist/props/filters.css +1 -1
  34. package/dist/props/input.css +1 -1
  35. package/dist/props/layout.css +1 -1
  36. package/dist/props/spacing.css +1 -1
  37. package/dist/props/transitions.css +1 -0
  38. package/dist/props.css +1 -1
  39. package/dist/themes/dark/components.css +1 -1
  40. package/dist/themes/dark/props.css +1 -1
  41. package/dist/themes/dark/volver.css +1 -1
  42. package/dist/utilities/backgrounds.css +1 -1
  43. package/dist/utilities/borders.css +1 -1
  44. package/dist/utilities/colors.css +1 -1
  45. package/dist/utilities/effects.css +1 -1
  46. package/dist/utilities/filters.css +1 -1
  47. package/dist/utilities/flexbox.css +1 -1
  48. package/dist/utilities/interactivity.css +1 -0
  49. package/dist/utilities/layout.css +1 -1
  50. package/dist/utilities/sizing.css +1 -1
  51. package/dist/utilities/spacing.css +1 -1
  52. package/dist/utilities/transitions.css +1 -0
  53. package/dist/utilities/typography.css +1 -1
  54. package/dist/utilities.css +1 -1
  55. package/dist/volver.css +1 -1
  56. package/package.json +56 -36
  57. package/src/_config.scss +17 -11
  58. package/src/_context.scss +3 -3
  59. package/src/_preflight.scss +308 -247
  60. package/src/components/index.scss +25 -19
  61. package/src/components/vv-accordion.scss +3 -2
  62. package/src/components/vv-alert.scss +13 -0
  63. package/src/components/vv-avatar.scss +13 -0
  64. package/src/components/vv-badge.scss +3 -2
  65. package/src/components/vv-breadcrumb.scss +3 -2
  66. package/src/components/vv-button-group.scss +11 -10
  67. package/src/components/vv-button.scss +5 -8
  68. package/src/components/vv-card.scss +3 -2
  69. package/src/components/vv-checkbox-group.scss +13 -0
  70. package/src/components/{vv-input-checkbox.scss → vv-checkbox.scss} +7 -6
  71. package/src/components/vv-dialog.scss +3 -2
  72. package/src/components/vv-dropdown.scss +3 -2
  73. package/src/components/vv-input-text.scss +6 -5
  74. package/src/components/vv-nav.scss +3 -2
  75. package/src/components/vv-progress.scss +3 -2
  76. package/src/components/vv-radio-group.scss +13 -0
  77. package/src/components/{vv-input-radio.scss → vv-radio.scss} +6 -5
  78. package/src/components/vv-select.scss +6 -5
  79. package/src/components/vv-skeleton.scss +14 -0
  80. package/src/components/vv-tab.scss +13 -0
  81. package/src/components/vv-table.scss +3 -2
  82. package/src/components/vv-text.scss +3 -2
  83. package/src/components/vv-textarea.scss +6 -5
  84. package/src/components/vv-toast.scss +13 -0
  85. package/src/components/vv-tooltip.scss +33 -0
  86. package/src/export.scss +89 -27
  87. package/src/props/background.scss +1 -1
  88. package/src/props/borders.scss +1 -1
  89. package/src/props/breakpoints.scss +15 -0
  90. package/src/props/colors.scss +1 -1
  91. package/src/props/effects.scss +1 -1
  92. package/src/props/filters.scss +2 -1
  93. package/src/props/index.scss +13 -12
  94. package/src/props/input.scss +1 -1
  95. package/src/props/layout.scss +1 -1
  96. package/src/props/media.scss +1 -1
  97. package/src/props/sizing.scss +1 -1
  98. package/src/props/spacing.scss +2 -2
  99. package/src/props/{animation.scss → transitions.scss} +53 -2
  100. package/src/props/typography.scss +2 -2
  101. package/src/settings/_background.scss +6 -1
  102. package/src/settings/_breakpoints.scss +2 -0
  103. package/src/settings/_colors.scss +23 -4
  104. package/src/settings/_effects.scss +47 -2
  105. package/src/settings/_filters.scss +9 -0
  106. package/src/settings/_index.scss +40 -33
  107. package/src/settings/_input.scss +8 -6
  108. package/src/settings/_interactivity.scss +39 -0
  109. package/src/settings/_layout.scss +18 -10
  110. package/src/settings/_spacing.scss +1 -0
  111. package/src/settings/_transitions.scss +44 -0
  112. package/src/settings/components/_vv-accordion.scss +40 -34
  113. package/src/settings/components/_vv-alert.scss +161 -0
  114. package/src/settings/components/_vv-avatar.scss +55 -0
  115. package/src/settings/components/_vv-badge.scss +43 -11
  116. package/src/settings/components/_vv-breadcrumb.scss +23 -15
  117. package/src/settings/components/_vv-button-group.scss +4 -0
  118. package/src/settings/components/_vv-button.scss +30 -25
  119. package/src/settings/components/_vv-card.scss +2 -2
  120. package/src/settings/components/{_vv-input-checkbox-group.scss → _vv-checkbox-group.scss} +2 -1
  121. package/src/settings/components/{_vv-input-checkbox.scss → _vv-checkbox.scss} +46 -11
  122. package/src/settings/components/_vv-dialog.scss +71 -89
  123. package/src/settings/components/_vv-input-text.scss +83 -37
  124. package/src/settings/components/_vv-nav.scss +98 -13
  125. package/src/settings/components/_vv-progress.scss +1 -1
  126. package/src/settings/components/_vv-radio-group.scss +3 -0
  127. package/src/settings/components/{_vv-input-radio.scss → _vv-radio.scss} +33 -4
  128. package/src/settings/components/_vv-select.scss +34 -43
  129. package/src/settings/components/_vv-skeleton.scss +22 -0
  130. package/src/settings/components/_vv-tab.scss +16 -0
  131. package/src/settings/components/_vv-table.scss +8 -1
  132. package/src/settings/components/_vv-text.scss +20 -0
  133. package/src/settings/components/_vv-textarea.scss +49 -24
  134. package/src/settings/components/_vv-toast.scss +259 -0
  135. package/src/settings/components/_vv-tooltip.scss +74 -0
  136. package/src/themes/dark/_context.scss +7 -4
  137. package/src/themes/dark/components/_vv-button.scss +2 -4
  138. package/src/themes/dark/components/index.scss +1 -2
  139. package/src/themes/dark/props/_background.scss +1 -1
  140. package/src/themes/dark/props/_colors.scss +1 -1
  141. package/src/themes/dark/props/_input.scss +15 -0
  142. package/src/themes/dark/props/index.scss +3 -2
  143. package/src/themes/dark/settings/_background.scss +5 -0
  144. package/src/themes/dark/settings/_colors.scss +22 -2
  145. package/src/themes/dark/settings/_index.scss +4 -4
  146. package/src/themes/dark/settings/_input.scss +8 -0
  147. package/src/themes/dark/settings/components/_vv-button.scss +9 -9
  148. package/src/themes/dark/volver.scss +2 -2
  149. package/src/tools/_breakpoints.scss +7 -7
  150. package/src/tools/_functions.scss +95 -37
  151. package/src/tools/_index.scss +3 -3
  152. package/src/tools/_mixins.scss +166 -35
  153. package/src/utilities/backgrounds.scss +15 -8
  154. package/src/utilities/borders.scss +22 -9
  155. package/src/utilities/colors.scss +9 -5
  156. package/src/utilities/effects.scss +23 -5
  157. package/src/utilities/filters.scss +15 -4
  158. package/src/utilities/flexbox.scss +15 -8
  159. package/src/utilities/grid.scss +17 -9
  160. package/src/utilities/index.scss +13 -12
  161. package/src/utilities/interactivity.scss +10 -0
  162. package/src/utilities/layout.scss +35 -23
  163. package/src/utilities/sizing.scss +23 -26
  164. package/src/utilities/spacing.scss +1 -1
  165. package/src/utilities/transitions.scss +47 -0
  166. package/src/utilities/typography.scss +34 -17
  167. package/src/volver.scss +4 -4
  168. package/dist/components/vv-input-checkbox-group.css +0 -1
  169. package/dist/components/vv-input-checkbox.css +0 -1
  170. package/dist/components/vv-input-radio-group.css +0 -1
  171. package/dist/components/vv-input-radio.css +0 -1
  172. package/dist/props/animation.css +0 -1
  173. package/dist/utilities/animation.css +0 -1
  174. package/src/components/vv-input-checkbox-group.scss +0 -12
  175. package/src/components/vv-input-radio-group.scss +0 -12
  176. package/src/settings/_animation.scss +0 -9
  177. package/src/settings/components/_vv-input-radio-group.scss +0 -1
  178. package/src/themes/dark/components/_vv-input-checkbox.scss +0 -24
  179. package/src/themes/dark/settings/components/_vv-input-checkbox.scss +0 -26
  180. package/src/utilities/animation.scss +0 -8
@@ -1,4 +1,7 @@
1
- :where(:host, :root, [class*='theme']) {
1
+ @use 'sass:map';
2
+ @use 'context' as *;
3
+
4
+ :where(:host, :root, .theme) {
2
5
  accent-color: var(--color-brand);
3
6
  background: var(--color-surface);
4
7
  caret-color: var(--color-brand);
@@ -9,343 +12,401 @@
9
12
  }
10
13
 
11
14
  :where(.preflight) {
12
- // typography
13
- :where(h1, h2, h3, h4, h5, h6) {
14
- @extend %vv-text !optional;
15
- @extend %vv-text--headline !optional;
16
- }
17
-
18
- :where(h1) {
19
- @extend %vv-text--size-1 !optional;
20
- }
21
-
22
- :where(h2) {
23
- @extend %vv-text--size-2 !optional;
24
- }
25
-
26
- :where(h3) {
27
- @extend %vv-text--size-3 !optional;
28
- }
29
-
30
- :where(h4) {
31
- @extend %vv-text--size-4 !optional;
32
- }
33
-
34
- :where(h5) {
35
- @extend %vv-text--size-5 !optional;
36
- }
37
-
38
- :where(h6) {
39
- @extend %vv-text--size-6 !optional;
40
- }
41
-
42
- :where(p) {
43
- @extend %vv-text !optional;
44
- @extend %vv-text--copy !optional;
45
- }
46
-
47
- :where(blockquote) {
48
- @extend %vv-text !optional;
49
- @extend %vv-text--quote !optional;
50
- }
51
-
52
- :where(ul, ol) {
53
- @extend %list-inside !optional;
54
- @extend %my-sm !optional;
55
- @extend %pl-lg !optional;
56
- }
57
-
58
- :where(ul) {
59
- @extend %list-disc !optional;
60
- }
15
+ :not(.preflight-revert *) {
16
+ // typography
17
+ &:where(h1, h2, h3, h4, h5, h6) {
18
+ @extend %vv-text !optional;
19
+ @extend %vv-text--headline !optional;
20
+ }
61
21
 
62
- :where(ol) {
63
- @extend %list-decimal !optional;
64
- }
22
+ &:where(h1) {
23
+ @extend %vv-text--size-1 !optional;
24
+ }
65
25
 
66
- :where(b, strong, th) {
67
- @extend %font-bold !optional;
68
- }
26
+ &:where(h2) {
27
+ @extend %vv-text--size-2 !optional;
28
+ }
69
29
 
70
- :where(em, i, cite, dfn, var) {
71
- @extend %italic !optional;
72
- }
30
+ &:where(h3) {
31
+ @extend %vv-text--size-3 !optional;
32
+ }
73
33
 
74
- :where(dfn, var) {
75
- @extend %font-serif !optional;
76
- }
34
+ &:where(h4) {
35
+ @extend %vv-text--size-4 !optional;
36
+ }
77
37
 
78
- :where(del, s) {
79
- @extend %line-through !optional;
80
- }
38
+ &:where(h5) {
39
+ @extend %vv-text--size-5 !optional;
40
+ }
81
41
 
82
- :where(ins, u, cite, a) {
83
- @extend %underline !optional;
84
- }
42
+ &:where(h6) {
43
+ @extend %vv-text--size-6 !optional;
44
+ }
85
45
 
86
- :where(abbr) {
87
- @extend %underline !optional;
88
- @extend %decoration-dotted !optional;
89
- }
46
+ &:where(p) {
47
+ @extend %vv-text !optional;
48
+ @extend %vv-text--copy !optional;
49
+ }
90
50
 
91
- :where(code) {
92
- @extend %font-mono !optional;
93
- }
51
+ &:where(blockquote) {
52
+ @extend %vv-text !optional;
53
+ @extend %vv-text--quote !optional;
54
+ }
94
55
 
95
- :where(sub) {
96
- @extend %align-sub !optional;
97
- @extend %text-smaller !optional;
98
- }
56
+ &:where(ul, ol) {
57
+ @extend %list-inside !optional;
58
+ @extend %my-sm !optional;
59
+ @extend %pl-lg !optional;
60
+ }
99
61
 
100
- :where(sup) {
101
- @extend %align-super !optional;
102
- @extend %text-smaller !optional;
103
- }
62
+ &:where(ul) {
63
+ @extend %list-disc !optional;
64
+ }
104
65
 
105
- :where(q) {
106
- @extend %font-serif !optional;
107
- }
66
+ &:where(ol) {
67
+ @extend %list-decimal !optional;
68
+ }
108
69
 
109
- :where(small) {
110
- @extend %text-smaller !optional;
111
- }
70
+ &:where(b, strong, th) {
71
+ @extend %font-bold !optional;
72
+ }
112
73
 
113
- :where(mark) {
114
- @extend %bg-warning !optional;
115
- }
74
+ &:where(em, i, cite, dfn, var) {
75
+ @extend %italic !optional;
76
+ }
116
77
 
117
- :where(pre) {
118
- @extend %font-mono !optional;
119
- @extend %whitespace-pre-line !optional;
120
- }
78
+ &:where(svg) {
79
+ @extend %align-middle !optional;
80
+ }
121
81
 
122
- :where(dl) {
123
- @extend %my-sm !optional;
124
- }
82
+ &:where(dfn, var) {
83
+ @extend %font-serif !optional;
84
+ }
125
85
 
126
- :where(dd) {
127
- @extend %ml-sm !optional;
128
- }
86
+ &:where(del, s) {
87
+ @extend %line-through !optional;
88
+ }
129
89
 
130
- :where(hr) {
131
- @extend %my-lg !optional;
132
- @extend %border !optional;
133
- @extend %border-solid !optional;
134
- @extend %border-surface-3 !optional;
135
- }
90
+ &:where(ins, u, cite) {
91
+ @extend %underline !optional;
92
+ }
136
93
 
137
- // buttons
138
- :where(button, input[type='button'], input[type='submit'], input[type='reset']) {
139
- @extend %vv-button !optional;
94
+ &:where(abbr) {
95
+ @extend %underline !optional;
96
+ @extend %decoration-dotted !optional;
97
+ }
140
98
 
141
- &:where([type='button']) {
142
- @extend %vv-button--primary !optional;
99
+ &:where(code) {
100
+ @extend %font-mono !optional;
143
101
  }
144
102
 
145
- &:where([type='reset']) {
146
- @extend %vv-button--secondary !optional;
103
+ &:where(sub) {
104
+ @extend %align-sub !optional;
105
+ @extend %text-smaller !optional;
147
106
  }
148
107
 
149
- &:where(:disabled) {
150
- @extend %vv-button--disabled !optional;
108
+ &:where(sup) {
109
+ @extend %align-super !optional;
110
+ @extend %text-smaller !optional;
151
111
  }
152
112
 
153
- &:where(:hover) {
154
- @extend %vv-button--hover !optional;
113
+ &:where(q) {
114
+ @extend %font-serif !optional;
155
115
  }
156
116
 
157
- &:where(:focus) {
158
- @extend %vv-button--focus !optional;
117
+ &:where(small) {
118
+ @extend %text-smaller !optional;
159
119
  }
160
120
 
161
- &:where(:focus-visible) {
162
- @extend %vv-button--focus-visible !optional;
121
+ &:where(mark) {
122
+ @extend %bg-warning !optional;
163
123
  }
164
124
 
165
- &:where(:visited) {
166
- @extend %vv-button--visited !optional;
125
+ &:where(pre) {
126
+ @extend %font-mono !optional;
127
+ @extend %whitespace-pre !optional;
167
128
  }
168
129
 
169
- &:where(:active) {
170
- @extend %vv-button--active !optional;
130
+ &:where(dl) {
131
+ @extend %my-sm !optional;
171
132
  }
172
133
 
173
- &
174
- + :where(button, input[type='button'], input[type='submit'], input[type='reset']) {
134
+ &:where(dd) {
175
135
  @extend %ml-sm !optional;
176
136
  }
177
- }
178
-
179
- // table
180
- :where(table) {
181
- @extend %vv-table !optional;
182
137
 
183
- :where(tr) {
184
- @extend %vv-table__tr !optional;
138
+ &:where(hr) {
139
+ @extend %my-lg !optional;
140
+ @extend %border !optional;
141
+ @extend %border-solid !optional;
142
+ @extend %border-surface-3 !optional;
185
143
  }
186
144
 
187
- :where(td) {
188
- @extend %vv-table__td !optional;
189
- }
145
+ // anchor
146
+ &:where(a:not(.#{map.get($components-names, vv-button)})) {
147
+ @extend %vv-text !optional;
148
+ @extend %vv-text--link !optional;
190
149
 
191
- :where(th) {
192
- @extend %vv-table__th !optional;
193
- }
194
- }
150
+ &:where(:hover) {
151
+ @extend %vv-button-modifier-link--hover !optional;
152
+ }
195
153
 
196
- // progress
197
- :where(progress) {
198
- @extend %vv-progress !optional;
199
- }
154
+ &:where(:focus) {
155
+ @extend %vv-button-modifier-link--focus !optional;
156
+ }
200
157
 
201
- // checkbox
202
- :where(fieldset:has(input[type='checkbox'])) {
203
- @extend %vv-input-checkbox-group !optional;
158
+ &:where(:focus-visible) {
159
+ @extend %vv-button-modifier-link--focus-visible !optional;
160
+ }
204
161
 
205
- :where(legend) {
206
- @extend %vv-input-checkbox-group__legend !optional;
162
+ &:where(:visited) {
163
+ @extend %vv-button-modifier-link--visited !optional;
164
+ }
165
+
166
+ &:where(:active) {
167
+ @extend %vv-button-modifier-link--active !optional;
168
+ }
207
169
  }
208
- }
209
170
 
210
- :where(label:has(input[type='checkbox'])) {
211
- @extend %w-full !optional;
212
- @extend %vv-input-checkbox !optional;
171
+ // buttons
172
+ &:where(
173
+ button,
174
+ input[type='button'],
175
+ input[type='submit'],
176
+ input[type='reset']
177
+ ) {
178
+ @extend %vv-button !optional;
179
+
180
+ &:where([type='button']) {
181
+ @extend %vv-button--primary !optional;
182
+ }
213
183
 
214
- :where(input[type='checkbox']) {
215
- @extend %vv-input-checkbox__input !optional;
184
+ &:where([type='reset']) {
185
+ @extend %vv-button--secondary !optional;
186
+ }
216
187
 
217
- &:checked {
218
- @extend %vv-input-checkbox-element-input--checked !optional;
188
+ &:where(:disabled) {
189
+ @extend %vv-button--disabled !optional;
219
190
  }
220
191
 
221
- &:indeterminate {
222
- @extend %vv-input-checkbox-element-input--indeterminate
223
- !optional;
192
+ &:where(:hover) {
193
+ @extend %vv-button--hover !optional;
224
194
  }
225
195
 
226
- &:focus-visible {
227
- @extend %vv-input-checkbox-element-input--focus-visible
228
- !optional;
196
+ &:where(:focus) {
197
+ @extend %vv-button--focus !optional;
229
198
  }
230
- }
231
- }
232
199
 
233
- // switch
234
- :where(label:has(input[type='checkbox'][role='switch'])) {
235
- @extend %vv-input-checkbox--switch !optional;
200
+ &:where(:focus-visible) {
201
+ @extend %vv-button--focus-visible !optional;
202
+ }
203
+
204
+ &:where(:visited) {
205
+ @extend %vv-button--visited !optional;
206
+ }
236
207
 
237
- :where(input[type='checkbox'][role='switch']) {
238
- @extend %vv-input-checkbox-modifier-switch__input !optional;
208
+ &:where(:active) {
209
+ @extend %vv-button--active !optional;
210
+ }
239
211
 
240
- &:hover {
241
- @extend %vv-input-checkbox-modifier-switch-element-input--hover
242
- !optional;
212
+ &
213
+ + :where(
214
+ button,
215
+ input[type='button'],
216
+ input[type='submit'],
217
+ input[type='reset']
218
+ ) {
219
+ @extend %ml-sm !optional;
243
220
  }
221
+ }
222
+
223
+ // table
224
+ &:where(table) {
225
+ @extend %vv-table !optional;
244
226
 
245
- &:active {
246
- @extend %vv-input-checkbox-modifier-switch-element-input--active
247
- !optional;
227
+ :where(tr) {
228
+ @extend %vv-table__tr !optional;
248
229
  }
249
230
 
250
- &:checked {
251
- @extend %vv-input-checkbox-modifier-switch-element-input--checked
252
- !optional;
231
+ :where(td) {
232
+ @extend %vv-table__td !optional;
253
233
  }
254
234
 
255
- &:focus-visible {
256
- @extend %vv-input-checkbox-modifier-switch-element-input--focus-visible
257
- !optional;
235
+ :where(th) {
236
+ @extend %vv-table__th !optional;
258
237
  }
259
238
  }
260
- }
261
239
 
262
- :where(label:has(input[type='checkbox']:disabled)) {
263
- @extend %vv-input-checkbox--disabled !optional;
264
- }
240
+ // progress
241
+ &:where(progress) {
242
+ @extend %vv-progress !optional;
243
+ }
265
244
 
266
- // radio
267
- :where(fieldset:has(input[type='radio'])) {
268
- @extend %vv-input-radio-group !optional;
245
+ // checkbox
246
+ &:where(fieldset:has(input[type='checkbox'])) {
247
+ @extend %vv-checkbox-group !optional;
269
248
 
270
- :where(legend) {
271
- @extend %vv-input-radio-group__legend !optional;
249
+ :where(legend) {
250
+ @extend %vv-checkbox-group__legend !optional;
251
+ }
272
252
  }
273
- }
274
253
 
275
- :where(label:has(input[type='radio'])) {
276
- @extend %w-full !optional;
277
- @extend %vv-input-radio !optional;
254
+ &:where(label:has(input[type='checkbox'])) {
255
+ @extend %w-full !optional;
256
+ @extend %vv-checkbox !optional;
257
+
258
+ :where(input[type='checkbox']) {
259
+ @extend %vv-checkbox__input !optional;
278
260
 
279
- :where(input[type='radio']) {
280
- @extend %vv-input-radio__input !optional;
261
+ &:checked {
262
+ @extend %vv-checkbox-element-input--checked !optional;
263
+ }
281
264
 
282
- &:checked {
283
- @extend %vv-input-radio-element-input--checked !optional;
265
+ &:indeterminate {
266
+ @extend %vv-checkbox-element-input--indeterminate !optional;
267
+ }
268
+
269
+ &:focus-visible {
270
+ @extend %vv-checkbox-element-input--focus-visible !optional;
271
+ }
284
272
  }
273
+ }
274
+
275
+ // switch
276
+ &:where(label:has(input[type='checkbox'][role='switch'])) {
277
+ @extend %vv-checkbox--switch !optional;
285
278
 
286
- &:focus-visible {
287
- @extend %vv-input-radio-element-input--focus-visible !optional;
279
+ :where(input[type='checkbox'][role='switch']) {
280
+ @extend %vv-checkbox-modifier-switch__input !optional;
281
+
282
+ &:hover {
283
+ @extend %vv-checkbox-modifier-switch-element-input--hover
284
+ !optional;
285
+ }
286
+
287
+ &:active {
288
+ @extend %vv-checkbox-modifier-switch-element-input--active
289
+ !optional;
290
+ }
291
+
292
+ &:checked {
293
+ @extend %vv-checkbox-modifier-switch-element-input--checked
294
+ !optional;
295
+ }
296
+
297
+ &:focus-visible {
298
+ @extend %vv-checkbox-modifier-switch-element-input--focus-visible
299
+ !optional;
300
+ }
288
301
  }
289
302
  }
290
- }
291
303
 
292
- :where(label:has(input[type='radio']:disabled)) {
293
- @extend %vv-input-radio--disabled !optional;
294
- }
304
+ &:where(label:has(input[type='checkbox']:disabled)) {
305
+ @extend %vv-checkbox--disabled !optional;
306
+ }
295
307
 
296
- // textarea
297
- :where(label:has(+ textarea)) {
298
- @extend %vv-textarea__label !optional;
299
- }
308
+ // radio
309
+ &:where(fieldset:has(input[type='radio'])) {
310
+ @extend %vv-radio-group !optional;
300
311
 
301
- :where(textarea) {
302
- @extend %w-full !optional;
303
- @extend %vv-textarea !optional;
304
- @extend %vv-textarea__wrapper !optional;
305
- @extend %vv-textarea__input !optional;
312
+ :where(legend) {
313
+ @extend %vv-radio-group__legend !optional;
314
+ }
315
+ }
316
+
317
+ &:where(label:has(input[type='radio'])) {
318
+ @extend %w-full !optional;
319
+ @extend %vv-radio !optional;
320
+
321
+ :where(input[type='radio']) {
322
+ @extend %vv-radio__input !optional;
306
323
 
307
- &:disabled {
308
- @extend %vv-textarea--disabled !optional;
324
+ &:checked {
325
+ @extend %vv-radio-element-input--checked !optional;
326
+ }
327
+
328
+ &:focus-visible {
329
+ @extend %vv-radio-element-input--focus-visible !optional;
330
+ }
331
+ }
309
332
  }
310
333
 
311
- &:readonly {
312
- @extend %vv-textarea--readonly !optional;
334
+ &:where(label:has(input[type='radio']:disabled)) {
335
+ @extend %vv-radio--disabled !optional;
313
336
  }
314
- }
315
337
 
316
- // select
317
- :where(label:has(+ select)) {
318
- @extend %vv-select__label !optional;
319
- }
338
+ // textarea
339
+ &:where(label:has(+ textarea)) {
340
+ @extend %vv-textarea__label !optional;
341
+ }
320
342
 
321
- :where(select) {
322
- @extend %w-full !optional;
323
- @extend %vv-select !optional;
324
- @extend %vv-select__wrapper !optional;
325
- @extend %vv-select__input !optional;
343
+ &:where(textarea) {
344
+ @extend %w-full !optional;
345
+ @extend %vv-textarea !optional;
346
+ @extend %vv-textarea__wrapper !optional;
347
+ @extend %vv-textarea__input !optional;
348
+
349
+ &:disabled {
350
+ @extend %vv-textarea--disabled !optional;
351
+ }
326
352
 
327
- &:disabled {
328
- @extend %vv-select--disabled !optional;
353
+ &:readonly {
354
+ @extend %vv-textarea--readonly !optional;
355
+ }
329
356
  }
330
- }
331
357
 
332
- // input text
333
- :where(label:has(+ input:not([type='radio'], [type='checkbox'], [type='button'], [type='submit'], [type='reset']))) {
334
- @extend %vv-input-text__label !optional;
335
- }
358
+ // select
359
+ &:where(label:has(+ select)) {
360
+ @extend %vv-select__label !optional;
361
+ }
362
+
363
+ &:where(select) {
364
+ @extend %w-full !optional;
365
+ @extend %vv-select !optional;
366
+ @extend %vv-select__wrapper !optional;
367
+ @extend %vv-select__input !optional;
336
368
 
337
- :where(input:not([type='radio'], [type='checkbox'], [type='button'], [type='submit'], [type='reset'])) {
338
- @extend %w-full !optional;
339
- @extend %vv-input-text !optional;
340
- @extend %vv-input-text__wrapper !optional;
341
- @extend %vv-input-text__input !optional;
369
+ &:disabled {
370
+ @extend %vv-select--disabled !optional;
371
+ }
372
+ }
342
373
 
343
- &:disabled {
344
- @extend %vv-input-text--disabled !optional;
374
+ // input text
375
+ &:where(
376
+ label:has(
377
+ + input:not(
378
+ [type='radio'],
379
+ [type='checkbox'],
380
+ [type='button'],
381
+ [type='submit'],
382
+ [type='reset']
383
+ )
384
+ )
385
+ ) {
386
+ @extend %vv-input-text__label !optional;
345
387
  }
346
388
 
347
- &:readonly {
348
- @extend %vv-input-text--readonly !optional;
389
+ &:where(
390
+ input:not(
391
+ [type='radio'],
392
+ [type='checkbox'],
393
+ [type='button'],
394
+ [type='submit'],
395
+ [type='reset']
396
+ )
397
+ ) {
398
+ @extend %w-full !optional;
399
+ @extend %vv-input-text !optional;
400
+ @extend %vv-input-text__wrapper !optional;
401
+ @extend %vv-input-text__input !optional;
402
+
403
+ &:disabled {
404
+ @extend %vv-input-text--disabled !optional;
405
+ }
406
+
407
+ &:readonly {
408
+ @extend %vv-input-text--readonly !optional;
409
+ }
349
410
  }
350
411
  }
351
412
  }