@volverjs/style 0.1.28 → 0.1.30-beta.1

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 (158) hide show
  1. package/design-tokens.json +503 -7
  2. package/dist/base.css +1 -1
  3. package/dist/components/vv-alert.css +1 -1
  4. package/dist/components/vv-attachment-group.css +1 -0
  5. package/dist/components/vv-attachment.css +1 -0
  6. package/dist/components/vv-avatar.css +1 -1
  7. package/dist/components/vv-badge.css +1 -1
  8. package/dist/components/vv-breadcrumb.css +1 -1
  9. package/dist/components/vv-bubble-group.css +1 -0
  10. package/dist/components/vv-bubble.css +1 -0
  11. package/dist/components/vv-button.css +1 -1
  12. package/dist/components/vv-calendar.css +1 -0
  13. package/dist/components/vv-checkbox-group.css +1 -1
  14. package/dist/components/vv-checkbox.css +1 -1
  15. package/dist/components/vv-command.css +1 -0
  16. package/dist/components/vv-dialog.css +1 -1
  17. package/dist/components/vv-dropdown-action.css +1 -1
  18. package/dist/components/vv-dropdown-option.css +1 -1
  19. package/dist/components/vv-empty.css +1 -0
  20. package/dist/components/vv-field.css +1 -0
  21. package/dist/components/vv-input-file.css +1 -1
  22. package/dist/components/vv-input-otp.css +1 -0
  23. package/dist/components/vv-input-range.css +1 -1
  24. package/dist/components/vv-input-text.css +1 -1
  25. package/dist/components/vv-item-group.css +1 -0
  26. package/dist/components/vv-item.css +1 -0
  27. package/dist/components/vv-kbd-group.css +1 -0
  28. package/dist/components/vv-kbd.css +1 -0
  29. package/dist/components/vv-marker.css +1 -0
  30. package/dist/components/vv-message-scroller.css +1 -0
  31. package/dist/components/vv-message.css +1 -0
  32. package/dist/components/vv-nav.css +1 -1
  33. package/dist/components/vv-pagination.css +1 -0
  34. package/dist/components/vv-popover.css +1 -0
  35. package/dist/components/vv-progress.css +1 -1
  36. package/dist/components/vv-prose.css +1 -0
  37. package/dist/components/vv-questionnaire.css +1 -0
  38. package/dist/components/vv-radio-group.css +1 -1
  39. package/dist/components/vv-radio.css +1 -1
  40. package/dist/components/vv-select.css +1 -1
  41. package/dist/components/vv-separator.css +1 -0
  42. package/dist/components/vv-sidebar.css +1 -0
  43. package/dist/components/vv-spinner.css +1 -0
  44. package/dist/components/vv-table.css +1 -1
  45. package/dist/components/vv-text.css +1 -1
  46. package/dist/components/vv-textarea.css +1 -1
  47. package/dist/components.css +1 -1
  48. package/dist/export.css +1 -1
  49. package/dist/props/colors.css +1 -1
  50. package/dist/props/input.css +1 -1
  51. package/dist/props.css +1 -1
  52. package/dist/themes/dark/components.css +1 -1
  53. package/dist/themes/dark/props.css +1 -1
  54. package/dist/themes/dark/volver.css +1 -1
  55. package/dist/utilities/colors.css +1 -1
  56. package/dist/utilities/layout.css +1 -1
  57. package/dist/utilities.css +1 -1
  58. package/dist/volver.css +1 -1
  59. package/package.json +49 -1
  60. package/src/_config.scss +23 -0
  61. package/src/_preflight.scss +14 -2
  62. package/src/components/index.scss +28 -0
  63. package/src/components/vv-attachment-group.scss +17 -0
  64. package/src/components/vv-attachment.scss +17 -0
  65. package/src/components/vv-bubble-group.scss +17 -0
  66. package/src/components/vv-bubble.scss +17 -0
  67. package/src/components/vv-calendar.scss +25 -0
  68. package/src/components/vv-command.scss +17 -0
  69. package/src/components/vv-empty.scss +17 -0
  70. package/src/components/vv-field.scss +25 -0
  71. package/src/components/vv-input-otp.scss +17 -0
  72. package/src/components/vv-item-group.scss +17 -0
  73. package/src/components/vv-item.scss +39 -0
  74. package/src/components/vv-kbd-group.scss +17 -0
  75. package/src/components/vv-kbd.scss +17 -0
  76. package/src/components/vv-marker.scss +17 -0
  77. package/src/components/vv-message-scroller.scss +24 -0
  78. package/src/components/vv-message.scss +25 -0
  79. package/src/components/vv-pagination.scss +17 -0
  80. package/src/components/vv-popover.scss +17 -0
  81. package/src/components/vv-prose.scss +17 -0
  82. package/src/components/vv-questionnaire.scss +28 -0
  83. package/src/components/vv-separator.scss +17 -0
  84. package/src/components/vv-sidebar.scss +17 -0
  85. package/src/components/vv-spinner.scss +27 -0
  86. package/src/presets/_outlined-fields.scss +346 -0
  87. package/src/props/colors.scss +6 -0
  88. package/src/props/index.scss +4 -1
  89. package/src/props/media.scss +21 -6
  90. package/src/settings/_colors.scss +161 -61
  91. package/src/settings/_index.scss +26 -0
  92. package/src/settings/_input.scss +9 -0
  93. package/src/settings/components/_choice.scss +104 -0
  94. package/src/settings/components/_vv-alert.scss +37 -12
  95. package/src/settings/components/_vv-attachment-group.scss +10 -0
  96. package/src/settings/components/_vv-attachment.scss +135 -0
  97. package/src/settings/components/_vv-avatar.scss +17 -7
  98. package/src/settings/components/_vv-badge.scss +21 -13
  99. package/src/settings/components/_vv-breadcrumb.scss +1 -1
  100. package/src/settings/components/_vv-bubble-group.scss +31 -0
  101. package/src/settings/components/_vv-bubble.scss +69 -0
  102. package/src/settings/components/_vv-button.scss +48 -5
  103. package/src/settings/components/_vv-calendar.scss +102 -0
  104. package/src/settings/components/_vv-checkbox-group.scss +33 -2
  105. package/src/settings/components/_vv-checkbox.scss +7 -2
  106. package/src/settings/components/_vv-command.scss +99 -0
  107. package/src/settings/components/_vv-dialog.scss +129 -26
  108. package/src/settings/components/_vv-dropdown-action.scss +2 -1
  109. package/src/settings/components/_vv-dropdown-option.scss +3 -3
  110. package/src/settings/components/_vv-empty.scss +71 -0
  111. package/src/settings/components/_vv-field.scss +111 -0
  112. package/src/settings/components/_vv-input-file.scss +6 -6
  113. package/src/settings/components/_vv-input-otp.scss +55 -0
  114. package/src/settings/components/_vv-input-range.scss +2 -2
  115. package/src/settings/components/_vv-input-text.scss +6 -6
  116. package/src/settings/components/_vv-item-group.scss +68 -0
  117. package/src/settings/components/_vv-item.scss +201 -0
  118. package/src/settings/components/_vv-kbd-group.scss +9 -0
  119. package/src/settings/components/_vv-kbd.scss +20 -0
  120. package/src/settings/components/_vv-marker.scss +32 -0
  121. package/src/settings/components/_vv-message-scroller.scss +65 -0
  122. package/src/settings/components/_vv-message.scss +95 -0
  123. package/src/settings/components/_vv-nav.scss +7 -3
  124. package/src/settings/components/_vv-pagination.scss +78 -0
  125. package/src/settings/components/_vv-popover.scss +53 -0
  126. package/src/settings/components/_vv-progress.scss +4 -4
  127. package/src/settings/components/_vv-prose.scss +274 -0
  128. package/src/settings/components/_vv-questionnaire.scss +77 -0
  129. package/src/settings/components/_vv-radio.scss +6 -2
  130. package/src/settings/components/_vv-select.scss +5 -5
  131. package/src/settings/components/_vv-separator.scss +79 -0
  132. package/src/settings/components/_vv-sidebar.scss +91 -0
  133. package/src/settings/components/_vv-spinner.scss +26 -0
  134. package/src/settings/components/_vv-table.scss +63 -0
  135. package/src/settings/components/_vv-text.scss +2 -2
  136. package/src/settings/components/_vv-textarea.scss +6 -6
  137. package/src/themes/dark/components/_vv-checkbox.scss +27 -0
  138. package/src/themes/dark/components/_vv-radio.scss +27 -0
  139. package/src/themes/dark/components/index.scss +2 -0
  140. package/src/themes/dark/props/_colors.scss +6 -0
  141. package/src/themes/dark/settings/_colors.scss +97 -32
  142. package/src/themes/dark/settings/_index.scss +2 -0
  143. package/src/themes/dark/settings/components/_choice.scss +15 -0
  144. package/src/themes/dark/settings/components/_vv-alert.scss +6 -48
  145. package/src/themes/dark/settings/components/_vv-avatar.scss +1 -16
  146. package/src/themes/dark/settings/components/_vv-badge.scss +1 -32
  147. package/src/themes/dark/settings/components/_vv-button.scss +0 -8
  148. package/src/themes/dark/settings/components/_vv-checkbox.scss +7 -0
  149. package/src/themes/dark/settings/components/_vv-dropdown-action.scss +2 -3
  150. package/src/themes/dark/settings/components/_vv-dropdown-option.scss +2 -19
  151. package/src/themes/dark/settings/components/_vv-nav.scss +2 -15
  152. package/src/themes/dark/settings/components/_vv-radio.scss +7 -0
  153. package/src/tools/_functions.scss +430 -2
  154. package/src/tools/mixin-modules/_bem.scss +5 -39
  155. package/src/tools/mixin-modules/_states.scss +77 -0
  156. package/src/tools/mixin-modules/_theme.scss +135 -121
  157. package/src/utilities/colors.scss +49 -4
  158. package/src/utilities/layout.scss +25 -0
package/package.json CHANGED
@@ -24,7 +24,7 @@
24
24
  "bugs": {
25
25
  "url": "https://github.com/volverjs/style/issues"
26
26
  },
27
- "version": "0.1.28",
27
+ "version": "0.1.30-beta.1",
28
28
  "engines": {
29
29
  "node": ">= 20.x"
30
30
  },
@@ -100,29 +100,52 @@
100
100
  "./components/vv-accordion-group": "./dist/components/vv-accordion-group.css",
101
101
  "./components/vv-alert": "./dist/components/vv-alert.css",
102
102
  "./components/vv-alert-group": "./dist/components/vv-alert-group.css",
103
+ "./components/vv-attachment": "./dist/components/vv-attachment.css",
104
+ "./components/vv-attachment-group": "./dist/components/vv-attachment-group.css",
103
105
  "./components/vv-avatar": "./dist/components/vv-avatar.css",
104
106
  "./components/vv-avatar-group": "./dist/components/vv-avatar-group.css",
105
107
  "./components/vv-badge": "./dist/components/vv-badge.css",
106
108
  "./components/vv-breadcrumb": "./dist/components/vv-breadcrumb.css",
109
+ "./components/vv-bubble": "./dist/components/vv-bubble.css",
110
+ "./components/vv-bubble-group": "./dist/components/vv-bubble-group.css",
107
111
  "./components/vv-button": "./dist/components/vv-button.css",
108
112
  "./components/vv-button-group": "./dist/components/vv-button-group.css",
113
+ "./components/vv-calendar": "./dist/components/vv-calendar.css",
109
114
  "./components/vv-card": "./dist/components/vv-card.css",
110
115
  "./components/vv-checkbox": "./dist/components/vv-checkbox.css",
111
116
  "./components/vv-checkbox-group": "./dist/components/vv-checkbox-group.css",
117
+ "./components/vv-command": "./dist/components/vv-command.css",
112
118
  "./components/vv-dialog": "./dist/components/vv-dialog.css",
113
119
  "./components/vv-dropdown": "./dist/components/vv-dropdown.css",
114
120
  "./components/vv-dropdown-action": "./dist/components/vv-dropdown-action.css",
115
121
  "./components/vv-dropdown-optgroup": "./dist/components/vv-dropdown-optgroup.css",
116
122
  "./components/vv-dropdown-option": "./dist/components/vv-dropdown-option.css",
123
+ "./components/vv-empty": "./dist/components/vv-empty.css",
124
+ "./components/vv-field": "./dist/components/vv-field.css",
117
125
  "./components/vv-input-file": "./dist/components/vv-input-file.css",
126
+ "./components/vv-input-otp": "./dist/components/vv-input-otp.css",
118
127
  "./components/vv-input-range": "./dist/components/vv-input-range.css",
119
128
  "./components/vv-input-text": "./dist/components/vv-input-text.css",
129
+ "./components/vv-item": "./dist/components/vv-item.css",
130
+ "./components/vv-item-group": "./dist/components/vv-item-group.css",
131
+ "./components/vv-kbd": "./dist/components/vv-kbd.css",
132
+ "./components/vv-kbd-group": "./dist/components/vv-kbd-group.css",
133
+ "./components/vv-marker": "./dist/components/vv-marker.css",
134
+ "./components/vv-message": "./dist/components/vv-message.css",
135
+ "./components/vv-message-scroller": "./dist/components/vv-message-scroller.css",
120
136
  "./components/vv-nav": "./dist/components/vv-nav.css",
137
+ "./components/vv-pagination": "./dist/components/vv-pagination.css",
138
+ "./components/vv-popover": "./dist/components/vv-popover.css",
121
139
  "./components/vv-progress": "./dist/components/vv-progress.css",
140
+ "./components/vv-prose": "./dist/components/vv-prose.css",
141
+ "./components/vv-questionnaire": "./dist/components/vv-questionnaire.css",
122
142
  "./components/vv-radio": "./dist/components/vv-radio.css",
123
143
  "./components/vv-radio-group": "./dist/components/vv-radio-group.css",
124
144
  "./components/vv-select": "./dist/components/vv-select.css",
145
+ "./components/vv-separator": "./dist/components/vv-separator.css",
146
+ "./components/vv-sidebar": "./dist/components/vv-sidebar.css",
125
147
  "./components/vv-skeleton": "./dist/components/vv-skeleton.css",
148
+ "./components/vv-spinner": "./dist/components/vv-spinner.css",
126
149
  "./components/vv-tab": "./dist/components/vv-tab.css",
127
150
  "./components/vv-table": "./dist/components/vv-table.css",
128
151
  "./components/vv-text": "./dist/components/vv-text.css",
@@ -151,29 +174,52 @@
151
174
  "./scss/components/vv-accordion-group": "./src/components/vv-accordion-group.scss",
152
175
  "./scss/components/vv-alert": "./src/components/vv-alert.scss",
153
176
  "./scss/components/vv-alert-group": "./src/components/vv-alert-group.scss",
177
+ "./scss/components/vv-attachment": "./src/components/vv-attachment.scss",
178
+ "./scss/components/vv-attachment-group": "./src/components/vv-attachment-group.scss",
154
179
  "./scss/components/vv-avatar": "./src/components/vv-avatar.scss",
155
180
  "./scss/components/vv-avatar-group": "./src/components/vv-avatar-group.scss",
156
181
  "./scss/components/vv-badge": "./src/components/vv-badge.scss",
157
182
  "./scss/components/vv-breadcrumb": "./src/components/vv-breadcrumb.scss",
183
+ "./scss/components/vv-bubble": "./src/components/vv-bubble.scss",
184
+ "./scss/components/vv-bubble-group": "./src/components/vv-bubble-group.scss",
158
185
  "./scss/components/vv-button": "./src/components/vv-button.scss",
159
186
  "./scss/components/vv-button-group": "./src/components/vv-button-group.scss",
187
+ "./scss/components/vv-calendar": "./src/components/vv-calendar.scss",
160
188
  "./scss/components/vv-card": "./src/components/vv-card.scss",
161
189
  "./scss/components/vv-checkbox": "./src/components/vv-checkbox.scss",
162
190
  "./scss/components/vv-checkbox-group": "./src/components/vv-checkbox-group.scss",
191
+ "./scss/components/vv-command": "./src/components/vv-command.scss",
163
192
  "./scss/components/vv-dialog": "./src/components/vv-dialog.scss",
164
193
  "./scss/components/vv-dropdown": "./src/components/vv-dropdown.scss",
165
194
  "./scss/components/vv-dropdown-action": "./src/components/vv-dropdown-action.scss",
166
195
  "./scss/components/vv-dropdown-optgroup": "./src/components/vv-dropdown-optgroup.scss",
167
196
  "./scss/components/vv-dropdown-option": "./src/components/vv-dropdown-option.scss",
197
+ "./scss/components/vv-empty": "./src/components/vv-empty.scss",
198
+ "./scss/components/vv-field": "./src/components/vv-field.scss",
168
199
  "./scss/components/vv-input-file": "./src/components/vv-input-file.scss",
200
+ "./scss/components/vv-input-otp": "./src/components/vv-input-otp.scss",
169
201
  "./scss/components/vv-input-range": "./src/components/vv-input-range.scss",
170
202
  "./scss/components/vv-input-text": "./src/components/vv-input-text.scss",
203
+ "./scss/components/vv-item": "./src/components/vv-item.scss",
204
+ "./scss/components/vv-item-group": "./src/components/vv-item-group.scss",
205
+ "./scss/components/vv-kbd": "./src/components/vv-kbd.scss",
206
+ "./scss/components/vv-kbd-group": "./src/components/vv-kbd-group.scss",
207
+ "./scss/components/vv-marker": "./src/components/vv-marker.scss",
208
+ "./scss/components/vv-message": "./src/components/vv-message.scss",
209
+ "./scss/components/vv-message-scroller": "./src/components/vv-message-scroller.scss",
171
210
  "./scss/components/vv-nav": "./src/components/vv-nav.scss",
211
+ "./scss/components/vv-pagination": "./src/components/vv-pagination.scss",
212
+ "./scss/components/vv-popover": "./src/components/vv-popover.scss",
172
213
  "./scss/components/vv-progress": "./src/components/vv-progress.scss",
214
+ "./scss/components/vv-prose": "./src/components/vv-prose.scss",
215
+ "./scss/components/vv-questionnaire": "./src/components/vv-questionnaire.scss",
173
216
  "./scss/components/vv-radio": "./src/components/vv-radio.scss",
174
217
  "./scss/components/vv-radio-group": "./src/components/vv-radio-group.scss",
175
218
  "./scss/components/vv-select": "./src/components/vv-select.scss",
219
+ "./scss/components/vv-separator": "./src/components/vv-separator.scss",
220
+ "./scss/components/vv-sidebar": "./src/components/vv-sidebar.scss",
176
221
  "./scss/components/vv-skeleton": "./src/components/vv-skeleton.scss",
222
+ "./scss/components/vv-spinner": "./src/components/vv-spinner.scss",
177
223
  "./scss/components/vv-tab": "./src/components/vv-tab.scss",
178
224
  "./scss/components/vv-table": "./src/components/vv-table.scss",
179
225
  "./scss/components/vv-text": "./src/components/vv-text.scss",
@@ -184,6 +230,7 @@
184
230
  "./scss/functions": "./src/tools/_functions.scss",
185
231
  "./scss/mixins": "./src/tools/_mixins.scss",
186
232
  "./scss/preflight": "./src/_preflight.scss",
233
+ "./scss/presets/outlined-fields": "./src/presets/_outlined-fields.scss",
187
234
  "./scss/props": "./src/props/index.scss",
188
235
  "./scss/props/background": "./src/props/background.scss",
189
236
  "./scss/props/borders": "./src/props/borders.scss",
@@ -246,6 +293,7 @@
246
293
  "dev": "vite --port 3000 --open",
247
294
  "build": "node ./scripts/build.js && node ./scripts/generateDesignTokens.js",
248
295
  "design-tokens": "node ./scripts/generateDesignTokens.js",
296
+ "check:colors": "node ./scripts/checkColors.js",
249
297
  "styleguide": "vite-ssg build",
250
298
  "preview": "vite preview",
251
299
  "lint": "eslint .",
package/src/_config.scss CHANGED
@@ -36,29 +36,52 @@ $components-names: (
36
36
  vv-accordion: $components-prefix + -accordion,
37
37
  vv-alert-group: $components-prefix + -alert-group,
38
38
  vv-alert: $components-prefix + -alert,
39
+ vv-attachment-group: $components-prefix + -attachment-group,
40
+ vv-attachment: $components-prefix + -attachment,
39
41
  vv-avatar-group: $components-prefix + -avatar-group,
40
42
  vv-avatar: $components-prefix + -avatar,
41
43
  vv-badge: $components-prefix + -badge,
42
44
  vv-breadcrumb: $components-prefix + -breadcrumb,
45
+ vv-bubble-group: $components-prefix + -bubble-group,
46
+ vv-bubble: $components-prefix + -bubble,
43
47
  vv-button-group: $components-prefix + -button-group,
44
48
  vv-button: $components-prefix + -button,
49
+ vv-calendar: $components-prefix + -calendar,
45
50
  vv-card: $components-prefix + -card,
46
51
  vv-checkbox-group: $components-prefix + -checkbox-group,
47
52
  vv-checkbox: $components-prefix + -checkbox,
53
+ vv-command: $components-prefix + -command,
48
54
  vv-dialog: $components-prefix + -dialog,
49
55
  vv-dropdown-action: $components-prefix + -dropdown-action,
50
56
  vv-dropdown-optgroup: $components-prefix + -dropdown-optgroup,
51
57
  vv-dropdown-option: $components-prefix + -dropdown-option,
52
58
  vv-dropdown: $components-prefix + -dropdown,
59
+ vv-empty: $components-prefix + -empty,
60
+ vv-field: $components-prefix + -field,
53
61
  vv-input-file: $components-prefix + -input-file,
62
+ vv-input-otp: $components-prefix + -input-otp,
54
63
  vv-input-range: $components-prefix + -input-range,
55
64
  vv-input-text: $components-prefix + -input-text,
65
+ vv-item-group: $components-prefix + -item-group,
66
+ vv-item: $components-prefix + -item,
67
+ vv-kbd-group: $components-prefix + -kbd-group,
68
+ vv-kbd: $components-prefix + -kbd,
69
+ vv-marker: $components-prefix + -marker,
70
+ vv-message-scroller: $components-prefix + -message-scroller,
71
+ vv-message: $components-prefix + -message,
56
72
  vv-nav: $components-prefix + -nav,
73
+ vv-pagination: $components-prefix + -pagination,
74
+ vv-popover: $components-prefix + -popover,
57
75
  vv-progress: $components-prefix + -progress,
76
+ vv-prose: $components-prefix + -prose,
77
+ vv-questionnaire: $components-prefix + -questionnaire,
58
78
  vv-radio-group: $components-prefix + -radio-group,
59
79
  vv-radio: $components-prefix + -radio,
60
80
  vv-select: $components-prefix + -select,
81
+ vv-separator: $components-prefix + -separator,
82
+ vv-sidebar: $components-prefix + -sidebar,
61
83
  vv-skeleton: $components-prefix + -skeleton,
84
+ vv-spinner: $components-prefix + -spinner,
62
85
  vv-tab: $components-prefix + -tab,
63
86
  vv-table: $components-prefix + -table,
64
87
  vv-text: $components-prefix + -text,
@@ -12,7 +12,16 @@
12
12
  @include layer(preflight, $use-css-layers, $layer-prefix) {
13
13
  @if $preflight {
14
14
  :where(.preflight) {
15
- :not(.preflight-revert *) {
15
+ // An element that carries a class of a component is drawn by that
16
+ // component and left alone here: the rules below sit at (0,1,0) and
17
+ // would win over the component's zero specificity rules, dressing a
18
+ // `button.vv-badge__button` as a primary button or a
19
+ // `label.vv-radio--segment` as a plain radio. Both arguments of the
20
+ // `:not()` weigh a class, so the specificity does not move. A bare
21
+ // child a component styles through an `_alias` has no class to tell
22
+ // it apart and is still dressed, except inside `vv-prose`, whose whole
23
+ // content is bare tags it draws itself.
24
+ :not(.preflight-revert *, .#{map.get($components-names, vv-prose)} *, [class*='#{$components-prefix}-']) {
16
25
  // typography
17
26
  &:where(h1, h2, h3, h4, h5, h6) {
18
27
  @extend %vv-text !optional;
@@ -145,8 +154,11 @@
145
154
  @extend %text-smaller !optional;
146
155
  }
147
156
 
157
+ // A filled color: the text takes its contrast token, not the
158
+ // word color, which is light in the dark theme
148
159
  &:where(mark) {
149
160
  @extend %bg-warning !optional;
161
+ @extend %text-warning-contrast !optional;
150
162
  }
151
163
 
152
164
  &:where(pre) {
@@ -170,7 +182,7 @@
170
182
  }
171
183
 
172
184
  // anchor
173
- &:where(a:not(.#{map.get($components-names, vv-button)})) {
185
+ &:where(a) {
174
186
  @extend %vv-text !optional;
175
187
  @extend %vv-text--link !optional;
176
188
 
@@ -12,6 +12,7 @@
12
12
  @use 'vv-dropdown-action';
13
13
  @use 'vv-dropdown-option';
14
14
  @use 'vv-dropdown-optgroup';
15
+ @use 'vv-empty';
15
16
  @use 'vv-checkbox';
16
17
  @use 'vv-checkbox-group';
17
18
  @use 'vv-radio';
@@ -19,14 +20,41 @@
19
20
  @use 'vv-avatar';
20
21
  @use 'vv-avatar-group';
21
22
  @use 'vv-input-text';
23
+ @use 'vv-item';
24
+ @use 'vv-item-group';
22
25
  @use 'vv-input-file';
23
26
  @use 'vv-input-range';
27
+
28
+ // After vv-checkbox and vv-radio: a switch used as its control takes the
29
+ // control's margin over its own
30
+ @use 'vv-field';
24
31
  @use 'vv-nav';
32
+ @use 'vv-pagination';
25
33
  @use 'vv-progress';
34
+ @use 'vv-prose';
26
35
  @use 'vv-select';
36
+ @use 'vv-separator';
27
37
  @use 'vv-skeleton';
38
+ @use 'vv-spinner';
28
39
  @use 'vv-tab';
29
40
  @use 'vv-table';
30
41
  @use 'vv-text';
31
42
  @use 'vv-textarea';
32
43
  @use 'vv-tooltip';
44
+ @use 'vv-attachment';
45
+ @use 'vv-attachment-group';
46
+ @use 'vv-bubble';
47
+
48
+ // After vv-bubble: the joined corners of a group win over the bubble's own
49
+ @use 'vv-bubble-group';
50
+ @use 'vv-marker';
51
+ @use 'vv-message';
52
+ @use 'vv-message-scroller';
53
+ @use 'vv-questionnaire';
54
+ @use 'vv-calendar';
55
+ @use 'vv-command';
56
+ @use 'vv-input-otp';
57
+ @use 'vv-kbd';
58
+ @use 'vv-kbd-group';
59
+ @use 'vv-popover';
60
+ @use 'vv-sidebar';
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-attachment-group);
6
+ $component-map: $vv-attachment-group;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-attachment);
6
+ $component-map: $vv-attachment;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-bubble-group);
6
+ $component-map: $vv-bubble-group;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-bubble);
6
+ $component-map: $vv-bubble;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,25 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-calendar);
6
+ $component-map: $vv-calendar;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ // The keyboard ring of a day. The shared `focus-visible` state leaves out
18
+ // `tabindex="-1"`, and a grid moved across with a roving tabindex gives it to
19
+ // every day but one, so the ring is written here, on the pseudo-class alone.
20
+ @include wrap-with-where($selector: '#{$component-selector}__day:focus-visible', $enabled: $zero-specificity-for-components) {
21
+ outline: var(--spacing-px) solid var(--color-brand);
22
+ outline-offset: var(--spacing-2);
23
+ }
24
+
25
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-command);
6
+ $component-map: $vv-command;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-empty);
6
+ $component-map: $vv-empty;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,25 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-field);
6
+ $component-map: $vv-field;
7
+
8
+ @include spread-map-into-bem(
9
+ $map: $component-map,
10
+ $block: $component-name,
11
+ $use-custom-props: $use-custom-props-for-components,
12
+ $zero-specificity: $zero-specificity-for-components,
13
+ $bps: $breakpoints
14
+ );
15
+
16
+ // disabled and readonly, from the attribute of the control
17
+ @include spread-map-into-control-states(
18
+ $map: $component-map,
19
+ $block: $component-name,
20
+ $control: '.#{$component-name}__control',
21
+ $states: ('disabled', 'readonly'),
22
+ $zero-specificity: $zero-specificity-for-components
23
+ );
24
+
25
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-input-otp);
6
+ $component-map: $vv-input-otp;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-item-group);
6
+ $component-map: $vv-item-group;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,39 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-item);
6
+ $component-map: $vv-item;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ // A title over a description carries the weight of a heading on every row,
18
+ // or a list of titles over grey descriptions reads as one run of grey. The
19
+ // step of weight a chosen or a current row takes would be lost next to it,
20
+ // so on those rows the surface and the bar carry the state alone. The map
21
+ // cannot say "a title that has a description beside it", and this rule comes
22
+ // after the state rules it has to win over at the same specificity.
23
+ @include wrap-with-where(
24
+ $selector: '#{$component-selector}__content:has(> #{$component-selector}__description) > #{$component-selector}__title',
25
+ $enabled: $zero-specificity-for-components
26
+ ) {
27
+ font-weight: var(--font-semibold);
28
+ }
29
+
30
+ // A row whose entry is disabled answers no pointer: the row itself never
31
+ // carries the attribute, so its hover state would still light it up
32
+ @include wrap-with-where(
33
+ $selector: '#{$component-selector}:has(> #{$component-selector}__entry:is(:disabled, [aria-disabled="true"]))',
34
+ $enabled: $zero-specificity-for-components
35
+ ) {
36
+ background-color: transparent;
37
+ }
38
+
39
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-kbd-group);
6
+ $component-map: $vv-kbd-group;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-kbd);
6
+ $component-map: $vv-kbd;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-marker);
6
+ $component-map: $vv-marker;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,24 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-message-scroller);
6
+ $component-map: $vv-message-scroller;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ // The reset hides `[hidden]` at zero specificity, before the components, so
18
+ // the `display` of the button would win over it: the script hides the button
19
+ // with the attribute while the reader is at the bottom
20
+ @include wrap-with-where($selector: '#{$component-selector}__jump[hidden]', $enabled: $zero-specificity-for-components) {
21
+ display: none;
22
+ }
23
+
24
+ }
@@ -0,0 +1,25 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-message);
6
+ $component-map: $vv-message;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ // A device that cannot hover never reveals what shows on hover: the metadata
18
+ // of a message is always there. The map cannot express a media feature.
19
+ @media (hover: none) {
20
+ @include wrap-with-where($selector: '#{$component-selector}__meta', $enabled: $zero-specificity-for-components) {
21
+ opacity: var(--opacity-100);
22
+ }
23
+ }
24
+
25
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-pagination);
6
+ $component-map: $vv-pagination;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-popover);
6
+ $component-map: $vv-popover;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }