@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.
- package/design-tokens.json +503 -7
- package/dist/base.css +1 -1
- package/dist/components/vv-alert.css +1 -1
- package/dist/components/vv-attachment-group.css +1 -0
- package/dist/components/vv-attachment.css +1 -0
- package/dist/components/vv-avatar.css +1 -1
- package/dist/components/vv-badge.css +1 -1
- package/dist/components/vv-breadcrumb.css +1 -1
- package/dist/components/vv-bubble-group.css +1 -0
- package/dist/components/vv-bubble.css +1 -0
- package/dist/components/vv-button.css +1 -1
- package/dist/components/vv-calendar.css +1 -0
- package/dist/components/vv-checkbox-group.css +1 -1
- package/dist/components/vv-checkbox.css +1 -1
- package/dist/components/vv-command.css +1 -0
- package/dist/components/vv-dialog.css +1 -1
- package/dist/components/vv-dropdown-action.css +1 -1
- package/dist/components/vv-dropdown-option.css +1 -1
- package/dist/components/vv-empty.css +1 -0
- package/dist/components/vv-field.css +1 -0
- package/dist/components/vv-input-file.css +1 -1
- package/dist/components/vv-input-otp.css +1 -0
- package/dist/components/vv-input-range.css +1 -1
- package/dist/components/vv-input-text.css +1 -1
- package/dist/components/vv-item-group.css +1 -0
- package/dist/components/vv-item.css +1 -0
- package/dist/components/vv-kbd-group.css +1 -0
- package/dist/components/vv-kbd.css +1 -0
- package/dist/components/vv-marker.css +1 -0
- package/dist/components/vv-message-scroller.css +1 -0
- package/dist/components/vv-message.css +1 -0
- package/dist/components/vv-nav.css +1 -1
- package/dist/components/vv-pagination.css +1 -0
- package/dist/components/vv-popover.css +1 -0
- package/dist/components/vv-progress.css +1 -1
- package/dist/components/vv-prose.css +1 -0
- package/dist/components/vv-questionnaire.css +1 -0
- package/dist/components/vv-radio-group.css +1 -1
- package/dist/components/vv-radio.css +1 -1
- package/dist/components/vv-select.css +1 -1
- package/dist/components/vv-separator.css +1 -0
- package/dist/components/vv-sidebar.css +1 -0
- package/dist/components/vv-spinner.css +1 -0
- package/dist/components/vv-table.css +1 -1
- package/dist/components/vv-text.css +1 -1
- package/dist/components/vv-textarea.css +1 -1
- package/dist/components.css +1 -1
- package/dist/export.css +1 -1
- package/dist/props/colors.css +1 -1
- package/dist/props/input.css +1 -1
- package/dist/props.css +1 -1
- package/dist/themes/dark/components.css +1 -1
- package/dist/themes/dark/props.css +1 -1
- package/dist/themes/dark/volver.css +1 -1
- package/dist/utilities/colors.css +1 -1
- package/dist/utilities/layout.css +1 -1
- package/dist/utilities.css +1 -1
- package/dist/volver.css +1 -1
- package/package.json +49 -1
- package/src/_config.scss +23 -0
- package/src/_preflight.scss +14 -2
- package/src/components/index.scss +28 -0
- package/src/components/vv-attachment-group.scss +17 -0
- package/src/components/vv-attachment.scss +17 -0
- package/src/components/vv-bubble-group.scss +17 -0
- package/src/components/vv-bubble.scss +17 -0
- package/src/components/vv-calendar.scss +25 -0
- package/src/components/vv-command.scss +17 -0
- package/src/components/vv-empty.scss +17 -0
- package/src/components/vv-field.scss +25 -0
- package/src/components/vv-input-otp.scss +17 -0
- package/src/components/vv-item-group.scss +17 -0
- package/src/components/vv-item.scss +39 -0
- package/src/components/vv-kbd-group.scss +17 -0
- package/src/components/vv-kbd.scss +17 -0
- package/src/components/vv-marker.scss +17 -0
- package/src/components/vv-message-scroller.scss +24 -0
- package/src/components/vv-message.scss +25 -0
- package/src/components/vv-pagination.scss +17 -0
- package/src/components/vv-popover.scss +17 -0
- package/src/components/vv-prose.scss +17 -0
- package/src/components/vv-questionnaire.scss +28 -0
- package/src/components/vv-separator.scss +17 -0
- package/src/components/vv-sidebar.scss +17 -0
- package/src/components/vv-spinner.scss +27 -0
- package/src/presets/_outlined-fields.scss +346 -0
- package/src/props/colors.scss +6 -0
- package/src/props/index.scss +4 -1
- package/src/props/media.scss +21 -6
- package/src/settings/_colors.scss +161 -61
- package/src/settings/_index.scss +26 -0
- package/src/settings/_input.scss +9 -0
- package/src/settings/components/_choice.scss +104 -0
- package/src/settings/components/_vv-alert.scss +37 -12
- package/src/settings/components/_vv-attachment-group.scss +10 -0
- package/src/settings/components/_vv-attachment.scss +135 -0
- package/src/settings/components/_vv-avatar.scss +17 -7
- package/src/settings/components/_vv-badge.scss +21 -13
- package/src/settings/components/_vv-breadcrumb.scss +1 -1
- package/src/settings/components/_vv-bubble-group.scss +31 -0
- package/src/settings/components/_vv-bubble.scss +69 -0
- package/src/settings/components/_vv-button.scss +48 -5
- package/src/settings/components/_vv-calendar.scss +102 -0
- package/src/settings/components/_vv-checkbox-group.scss +33 -2
- package/src/settings/components/_vv-checkbox.scss +7 -2
- package/src/settings/components/_vv-command.scss +99 -0
- package/src/settings/components/_vv-dialog.scss +129 -26
- package/src/settings/components/_vv-dropdown-action.scss +2 -1
- package/src/settings/components/_vv-dropdown-option.scss +3 -3
- package/src/settings/components/_vv-empty.scss +71 -0
- package/src/settings/components/_vv-field.scss +111 -0
- package/src/settings/components/_vv-input-file.scss +6 -6
- package/src/settings/components/_vv-input-otp.scss +55 -0
- package/src/settings/components/_vv-input-range.scss +2 -2
- package/src/settings/components/_vv-input-text.scss +6 -6
- package/src/settings/components/_vv-item-group.scss +68 -0
- package/src/settings/components/_vv-item.scss +201 -0
- package/src/settings/components/_vv-kbd-group.scss +9 -0
- package/src/settings/components/_vv-kbd.scss +20 -0
- package/src/settings/components/_vv-marker.scss +32 -0
- package/src/settings/components/_vv-message-scroller.scss +65 -0
- package/src/settings/components/_vv-message.scss +95 -0
- package/src/settings/components/_vv-nav.scss +7 -3
- package/src/settings/components/_vv-pagination.scss +78 -0
- package/src/settings/components/_vv-popover.scss +53 -0
- package/src/settings/components/_vv-progress.scss +4 -4
- package/src/settings/components/_vv-prose.scss +274 -0
- package/src/settings/components/_vv-questionnaire.scss +77 -0
- package/src/settings/components/_vv-radio.scss +6 -2
- package/src/settings/components/_vv-select.scss +5 -5
- package/src/settings/components/_vv-separator.scss +79 -0
- package/src/settings/components/_vv-sidebar.scss +91 -0
- package/src/settings/components/_vv-spinner.scss +26 -0
- package/src/settings/components/_vv-table.scss +63 -0
- package/src/settings/components/_vv-text.scss +2 -2
- package/src/settings/components/_vv-textarea.scss +6 -6
- package/src/themes/dark/components/_vv-checkbox.scss +27 -0
- package/src/themes/dark/components/_vv-radio.scss +27 -0
- package/src/themes/dark/components/index.scss +2 -0
- package/src/themes/dark/props/_colors.scss +6 -0
- package/src/themes/dark/settings/_colors.scss +97 -32
- package/src/themes/dark/settings/_index.scss +2 -0
- package/src/themes/dark/settings/components/_choice.scss +15 -0
- package/src/themes/dark/settings/components/_vv-alert.scss +6 -48
- package/src/themes/dark/settings/components/_vv-avatar.scss +1 -16
- package/src/themes/dark/settings/components/_vv-badge.scss +1 -32
- package/src/themes/dark/settings/components/_vv-button.scss +0 -8
- package/src/themes/dark/settings/components/_vv-checkbox.scss +7 -0
- package/src/themes/dark/settings/components/_vv-dropdown-action.scss +2 -3
- package/src/themes/dark/settings/components/_vv-dropdown-option.scss +2 -19
- package/src/themes/dark/settings/components/_vv-nav.scss +2 -15
- package/src/themes/dark/settings/components/_vv-radio.scss +7 -0
- package/src/tools/_functions.scss +430 -2
- package/src/tools/mixin-modules/_bem.scss +5 -39
- package/src/tools/mixin-modules/_states.scss +77 -0
- package/src/tools/mixin-modules/_theme.scss +135 -121
- package/src/utilities/colors.scss +49 -4
- 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.
|
|
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,
|
package/src/_preflight.scss
CHANGED
|
@@ -12,7 +12,16 @@
|
|
|
12
12
|
@include layer(preflight, $use-css-layers, $layer-prefix) {
|
|
13
13
|
@if $preflight {
|
|
14
14
|
:where(.preflight) {
|
|
15
|
-
|
|
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
|
|
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
|
+
}
|