voa-ds-core 1.0.11 → 1.0.13

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 (59) hide show
  1. package/dist/collection/components/GetStarted/ComoUsar.stories.js +32 -3
  2. package/dist/collection/components/GetStarted/ComoUsar.stories.js.map +1 -1
  3. package/dist/collection/components/voa-tag/voa-tag.stories.js +6 -6
  4. package/dist/collection/components/voa-tag/voa-tag.stories.js.map +1 -1
  5. package/dist/collection/index.js +2 -0
  6. package/dist/collection/index.js.map +1 -0
  7. package/dist/styles/voa-components.css +4839 -0
  8. package/dist/types/index.d.ts +2 -0
  9. package/dist/types/types/index.d.ts +1 -0
  10. package/package.json +5 -2
  11. package/dist/collection/components/GetStarted/ImportandoEstilos.stories.js +0 -414
  12. package/dist/collection/components/GetStarted/ImportandoEstilos.stories.js.map +0 -1
  13. package/dist/collection/styles/external/saas-dashboard.css +0 -566
  14. package/dist/collection/styles/external/voa-accordion.external.css +0 -295
  15. package/dist/collection/styles/external/voa-alert.external.css +0 -348
  16. package/dist/collection/styles/external/voa-avatar.external.css +0 -118
  17. package/dist/collection/styles/external/voa-badge.external.css +0 -346
  18. package/dist/collection/styles/external/voa-breadcrumbs.external.css +0 -183
  19. package/dist/collection/styles/external/voa-button.external.css +0 -257
  20. package/dist/collection/styles/external/voa-card.external.css +0 -30
  21. package/dist/collection/styles/external/voa-checkbox.external.css +0 -303
  22. package/dist/collection/styles/external/voa-input-addon.external.css +0 -204
  23. package/dist/collection/styles/external/voa-input.external.css +0 -307
  24. package/dist/collection/styles/external/voa-keybinding.external.css +0 -34
  25. package/dist/collection/styles/external/voa-option.external.css +0 -213
  26. package/dist/collection/styles/external/voa-pagination.external.css +0 -125
  27. package/dist/collection/styles/external/voa-radio.external.css +0 -235
  28. package/dist/collection/styles/external/voa-radio.styles.ts +0 -155
  29. package/dist/collection/styles/external/voa-select.external.css +0 -568
  30. package/dist/collection/styles/external/voa-switch.external.css +0 -215
  31. package/dist/collection/styles/external/voa-tab.external.css +0 -284
  32. package/dist/collection/styles/external/voa-tag.external.css +0 -206
  33. package/dist/collection/styles/external/voa-text-area.external.css +0 -174
  34. package/dist/collection/styles/external/voa-tooltip.external.css +0 -320
  35. package/dist/collection/styles/voa-components.css +0 -32
  36. package/dist/types/components/GetStarted/ImportandoEstilos.stories.d.ts +0 -4
  37. package/dist/voa/styles/external/saas-dashboard.css +0 -566
  38. package/dist/voa/styles/external/voa-accordion.external.css +0 -295
  39. package/dist/voa/styles/external/voa-alert.external.css +0 -348
  40. package/dist/voa/styles/external/voa-avatar.external.css +0 -118
  41. package/dist/voa/styles/external/voa-badge.external.css +0 -346
  42. package/dist/voa/styles/external/voa-breadcrumbs.external.css +0 -183
  43. package/dist/voa/styles/external/voa-button.external.css +0 -257
  44. package/dist/voa/styles/external/voa-card.external.css +0 -30
  45. package/dist/voa/styles/external/voa-checkbox.external.css +0 -303
  46. package/dist/voa/styles/external/voa-input-addon.external.css +0 -204
  47. package/dist/voa/styles/external/voa-input.external.css +0 -307
  48. package/dist/voa/styles/external/voa-keybinding.external.css +0 -34
  49. package/dist/voa/styles/external/voa-option.external.css +0 -213
  50. package/dist/voa/styles/external/voa-pagination.external.css +0 -125
  51. package/dist/voa/styles/external/voa-radio.external.css +0 -235
  52. package/dist/voa/styles/external/voa-radio.styles.ts +0 -155
  53. package/dist/voa/styles/external/voa-select.external.css +0 -568
  54. package/dist/voa/styles/external/voa-switch.external.css +0 -215
  55. package/dist/voa/styles/external/voa-tab.external.css +0 -284
  56. package/dist/voa/styles/external/voa-tag.external.css +0 -206
  57. package/dist/voa/styles/external/voa-text-area.external.css +0 -174
  58. package/dist/voa/styles/external/voa-tooltip.external.css +0 -320
  59. package/dist/voa/styles/voa-components.css +0 -32
@@ -1,568 +0,0 @@
1
- /**
2
- * External Styling for VoaSelect Component
3
- *
4
- * This file demonstrates how to style the voa-select component
5
- * using CSS Parts API and semantic design tokens.
6
- *
7
- * Based on Figma design:
8
- * https://www.figma.com/design/wDStUEuqpl7Tu1oHpiAml6/Voa-Design-System?node-id=607-1011&m=dev
9
- *
10
- * Usage:
11
- * @import '@voa-ds/tokens/global.css';
12
- * @import '@voa-ds/styles/voa-select.css';
13
- *
14
- * DESIGN TOKEN MAPPING (Figma → CSS Variables):
15
- *
16
- * Typography (from Figma):
17
- * - Label: family-name:var(--base/family/family-sans,'Lato:SemiBold') 20px / 32px (Desktop/Body-lg/Bold)
18
- * - Input: family-name:var(--base/family/family-sans,'Lato:Regular') 16px / 24px (Desktop/Body-md/Regular)
19
- * - Info: Lato Regular 14px / 16px
20
- * - Error: Lato Regular 12px / 16px
21
- *
22
- * Colors (from Figma):
23
- * - Background: var(--structure-colors/bg-base, #ffffff)
24
- * - Border: var(--structure-colors/border-color, #adb5bd)
25
- * - Border Active: var(--asset-colors/brand-base, #0064cb)
26
- * - Text Primary: var(--asset-colors/text-primary, #0b1215)
27
- * - Text Secondary: var(--asset-colors/text-secondary, #495057)
28
- * - Text Placeholder: var(--asset-colors/text-placeholder, #9f9fa8)
29
- * - Text Disabled: rgba(11, 18, 21, 0.25)
30
- * - Background Disabled: rgba(255, 255, 255, 0.25)
31
- * - Border Disabled: rgba(24, 24, 27, 0.06)
32
- * - Focus Shadow: rgba(0, 100, 203, 0.5) - Input/active effect
33
- *
34
- * Spacing (from Figma):
35
- * - Gap header to input: 6px
36
- * - Gap label to info: var(--spacing/spacing-xs, 4px)
37
- * - Input padding: 12px
38
- * - Input gap: 8px
39
- * - Badge gap: var(--spacing/spacing-xs, 4px)
40
- *
41
- * Border Radius (from Figma):
42
- * - Input: 15.75px
43
- * - Badge: var(--radius-round, 1024px)
44
- *
45
- * Border Width (from Figma):
46
- * - Input: 1.125px
47
- * - Badge: 1px dashed
48
- */
49
-
50
- /* ============================================
51
- BASE - Container principal do select
52
- ============================================ */
53
- voa-select::part(base) {
54
- /* Estrutura apenas - estilos visuais aplicados via parts específicos */
55
- box-sizing: border-box;
56
- }
57
-
58
- /* ============================================
59
- HEADER - Container do label e info
60
- ============================================ */
61
- voa-select::part(header) {
62
- /* Gap entre header e input - valor específico do Figma (6px) */
63
- margin-bottom: var(--structure-slim-spacing-xs);
64
-
65
- /* Gap entre label e info - Figma: spacing/spacing-xs (4px) */
66
- gap: var(--structure-large-spacing-xs);
67
-
68
- box-sizing: border-box;
69
- }
70
-
71
- /* ============================================
72
- LABEL - Label text
73
- ============================================ */
74
- voa-select::part(label) {
75
- /* Typography - Figma: Desktop/Body-lg/Bold (Lato SemiBold 20px / 32px) */
76
- font-family: var(--branding-coi-type-family-sans, 'Lato', sans-serif);
77
- font-size: 20px;
78
- font-weight: var(--typography-base-body-sm-bold-weight);
79
- line-height: 32px;
80
- font-style: normal;
81
-
82
- /* Color - Figma: asset-colors/text-primary */
83
- color: var(--text-primary, #0b1215);
84
-
85
- box-sizing: border-box;
86
- }
87
-
88
- /* ============================================
89
- INFO - Container de informação
90
- ============================================ */
91
- voa-select::part(info) {
92
- /* Gap entre texto e ícone - Figma: spacing/spacing-xs (4px) */
93
- gap: var(--structure-large-spacing-xs, 4px);
94
-
95
- box-sizing: border-box;
96
- }
97
-
98
- voa-select::part(info) .voa-select__info-message {
99
- /* Typography - Figma: Lato Regular 14px / 16px */
100
- font-family: var(--branding-coi-type-family-sans, 'Lato', sans-serif);
101
- font-size: var(--typography-base-body-sm-regular-size);
102
- font-weight: var(--typography-base-body-sm-regular-weight);
103
- line-height: var(--line-height-body-sm);
104
- font-style: normal;
105
-
106
- /* Color - Figma: asset-colors/text-secondary */
107
- color: var(--text-secondary, #495057);
108
- }
109
-
110
- voa-select::part(info) svg {
111
- /* Icon size - Figma: 16px */
112
- width: 16px;
113
- height: 16px;
114
-
115
- /* Color - Figma: asset-colors/text-secondary */
116
- color: var(--text-secondary, #495057);
117
- }
118
-
119
- /* ============================================
120
- INPUT - Input container (with border)
121
- ============================================ */
122
- voa-select::part(input) {
123
- /* Background - Figma: structure-colors/bg-base */
124
- background-color: var(--colors-structure-bg-base, #ffffff);
125
-
126
- /* Border - Figma: 1.125px solid border-color */
127
- border: var(--border-width-medium) solid var(--colors-structure-border-color, #adb5bd);
128
-
129
- /* Border-radius - Figma: 15.75px */
130
- border-radius: var(--structure-large-radius-lg);
131
-
132
- /* Padding - Figma: 12px */
133
- padding: 0 var(--structure-large-spacing-rg, 12px);
134
-
135
- /* CSS variable for dropdown positioning (inherited to shadow DOM via scoped: false) */
136
- --select-input-padding: 12px;
137
-
138
- /* Allow input to wrap content dynamically (especially for multi-select) */
139
- min-height: 48px;
140
- height: auto;
141
-
142
- /* Box-sizing */
143
- box-sizing: border-box;
144
-
145
- /* Transitions for state changes */
146
- transition: border-color 0.2s ease, box-shadow 0.2s ease;
147
- }
148
-
149
- /* ============================================
150
- INPUT WRAPPER - Container interno com flexbox
151
- ============================================ */
152
- voa-select::part(input-wrapper) {
153
- /* Gap entre ícone e conteúdo - Figma: 8px */
154
- gap: var(--structure-large-spacing-sm, 8px);
155
-
156
- box-sizing: border-box;
157
- }
158
-
159
- /* ============================================
160
- ICON - Left icon slot
161
- ============================================ */
162
- voa-select::part(icon) {
163
- /* Icon size - Figma: 24px */
164
- width: 24px;
165
- height: 24px;
166
- flex-shrink: 0;
167
-
168
- /* Color - Figma: asset-colors/text-secondary */
169
- color: var(--text-secondary, #495057);
170
-
171
- box-sizing: border-box;
172
- }
173
-
174
- voa-select [slot="icon"],
175
- voa-select [slot="prefix"] {
176
- width: 100%;
177
- height: 100%;
178
- display: block;
179
- }
180
-
181
- /* ============================================
182
- INPUT STATES
183
- ============================================ */
184
-
185
- /* State: Default - already applied above */
186
-
187
- /* State: Selected/Filled - Item selected (blue border) */
188
- voa-select[data-state="selected"]::part(input),
189
- voa-select[data-state="filled"]::part(input) {
190
- /* Border-color - Figma: asset-colors/brand-base */
191
- border-color: var(--branding-coi-colors-light-primary-light, #0064cb);
192
- }
193
-
194
- /* State: Focused - Field in focus (blue border + inner shadow) */
195
- voa-select[data-state="focused"]::part(input),
196
- voa-select::part(input):focus-within {
197
- /* Border-color - Figma: asset-colors/brand-base */
198
- border-color: var(--branding-coi-colors-light-primary-light, #0064cb);
199
-
200
- /* Box-shadow - Figma: Input/active effect (inset 0px 0px 8px 2px rgba(0,100,203,0.5)) */
201
- box-shadow: inset 0px 0px 8px 2px var(--branding-coi-colors-light-primary-light-opacity-50, rgba(0, 100, 203, 0.5));
202
- }
203
-
204
- /* State: Disabled - Field disabled */
205
- voa-select[disabled]::part(input),
206
- voa-select[data-state="disabled"]::part(input) {
207
- /* Background - Figma: structure-colors/bg-base-disabled */
208
- background-color: var(--colors-structure-bg-base-disabled, var(--branding-coi-colors-light-primary-light-opacity-15, rgba(255, 255, 255, 0.25)));
209
-
210
- /* Border-color - Figma: structure-colors/fill-secondary */
211
- border-color: var(--colors-structure-fill-secondary, var(--colors-structure-fill-15, rgba(24, 24, 27, 0.06)));
212
-
213
- cursor: not-allowed;
214
- }
215
-
216
- /* State: Error - Field with error */
217
- voa-select[error]::part(input) {
218
- /* Border-color - Use danger color or keep brand-base per Figma */
219
- border-color: var(--colors-semantic-danger, var(--branding-coi-colors-light-primary-light, #0064cb));
220
- }
221
-
222
- /* ============================================
223
- SUBCOMPONENT STYLES - voa-select-base
224
- ============================================ */
225
-
226
- /* Control button - the clickable trigger */
227
- voa-select-base::part(control) {
228
- /* Make it fill the container */
229
- width: 100%;
230
- display: flex;
231
- align-items: center;
232
- justify-content: space-between;
233
-
234
- /* Remove button styling */
235
- background: transparent;
236
- border: none;
237
- padding: 0;
238
- cursor: pointer;
239
-
240
- /* Typography inherited from parent */
241
- font-family: inherit;
242
- font-size: inherit;
243
- color: inherit;
244
- text-align: left;
245
-
246
- box-sizing: border-box;
247
- }
248
-
249
- /* Placeholder and text inside select-base */
250
- voa-select-base::part(value) {
251
- /* Typography - Figma: Desktop/Body-md/Regular (Lato Regular 16px / 24px) */
252
- font-family: var(--branding-coi-type-family-sans, 'Lato', sans-serif);
253
- font-size: var(--typography-base-type-scale-6);
254
- font-weight: var(--typography-base-body-sm-regular-weight);
255
- line-height: var(--line-height-body-md);
256
- font-style: normal;
257
-
258
- /* Color - Figma: asset-colors/text-placeholder */
259
- color: var(--text-placeholder, #9f9fa8);
260
-
261
- /* Text alignment */
262
- text-align: left;
263
-
264
- box-sizing: border-box;
265
- }
266
-
267
- /* When value is selected (filled) */
268
- voa-select-base[value]::part(value) {
269
- /* Color - Figma: asset-colors/text-primary */
270
- color: var(--text-primary, #0b1215);
271
- }
272
-
273
- /* Disabled state for label */
274
- voa-select[disabled]::part(label),
275
- voa-select[data-state="disabled"]::part(label) {
276
- /* Color - Figma: text-disabled with opacity */
277
- color: var(--text-disabled-with-opacity, rgba(11, 18, 21, 0.25));
278
- }
279
-
280
- /* Disabled state for placeholder and content */
281
- voa-select[disabled] voa-select-base::part(value),
282
- voa-select[data-state="disabled"] voa-select-base::part(value) {
283
- /* Color - Figma: text-disabled with opacity */
284
- color: var(--text-disabled-with-opacity, rgba(11, 18, 21, 0.25));
285
- }
286
-
287
- /* ============================================
288
- ERROR MESSAGE - Error message
289
- ============================================ */
290
- voa-select::part(error-message) {
291
- /* Typography - Figma: Lato Regular 12px / 16px */
292
- font-family: var(--branding-coi-type-family-sans, 'Lato', sans-serif);
293
- font-size: var(--typography-base-type-scale-8);
294
- font-weight: var(--typography-base-body-sm-regular-weight);
295
- line-height: var(--line-height-body-sm);
296
- font-style: normal;
297
-
298
- /* Color - Figma: asset-colors/text-secondary */
299
- color: var(--text-secondary, #495057);
300
-
301
- /* Margin-top - Figma: 6px gap after input */
302
- margin-top: 6px;
303
-
304
- box-sizing: border-box;
305
- }
306
-
307
- /* ============================================
308
- MULTI-SELECT STYLES
309
- ============================================ */
310
-
311
- /* Remove vertical padding from input when multi-select */
312
- voa-select[type="multi"]::part(input) {
313
- /* Remove vertical padding (top and bottom), keep only horizontal - Figma: 12px */
314
- padding-top: 0;
315
- padding-bottom: 0;
316
- padding-left: var(--structure-large-spacing-rg, 12px);
317
- padding-right: var(--structure-large-spacing-rg, 12px);
318
- }
319
-
320
- /* Multi-select container inside input */
321
- voa-select .voa-select__content voa-container-multi-select::part(base) {
322
- /* Layout adjustments if needed */
323
- box-sizing: border-box;
324
- }
325
-
326
- /* ============================================
327
- BADGES INSIDE MULTI-SELECT - voa-badge styling
328
- ============================================ */
329
- /*
330
- * IMPORTANT: Since badges are inside the Shadow DOM of voa-container-multi-select,
331
- * and voa-container-multi-select is inside the Shadow DOM of voa-select,
332
- * we need to apply badge styles here as well (external CSS).
333
- *
334
- * Base badge styles are applied in voa-container-multi-select.css (inside Shadow DOM),
335
- * but we apply them here too to ensure they work even when the container CSS
336
- * cannot fully penetrate the badge's Shadow DOM.
337
- */
338
-
339
- /* Badge base inside multi-select */
340
- voa-select voa-container-multi-select .voa-container-multi-select__badge-wrapper voa-badge::part(base) {
341
- /* Background - Figma: brand-base with 15% opacity */
342
- background-color: var(--branding-coi-colors-light-primary-light-opacity-15, rgba(0, 100, 203, 0.15)) !important;
343
-
344
- /* Border - Figma: 1px dashed brand-base */
345
- border: var(--border-width-thin) dashed var(--branding-coi-colors-light-primary-light, #0064cb) !important;
346
-
347
- /* Border-radius - Figma: pill shape (1024px from tokens) */
348
- border-radius: var(--structure-large-radius-round) !important;
349
-
350
- /* Padding - Figma: 2px vertical, 4px horizontal */
351
- padding-block: var(--structure-large-spacing-xxs) !important;
352
- padding-inline: var(--structure-large-spacing-xs) !important;
353
-
354
- /* Typography - Figma: Lato Regular 16px / 24px */
355
- font-family: var(--branding-coi-type-family-sans, 'Lato', sans-serif) !important;
356
- font-size: var(--typography-base-type-scale-6) !important;
357
- font-weight: var(--typography-base-body-sm-regular-weight) !important;
358
- line-height: var(--line-height-body-md) !important;
359
- font-style: normal !important;
360
-
361
- /* Text color - Figma: brand-base */
362
- color: var(--branding-coi-colors-light-primary-light, #0064cb) !important;
363
-
364
- /* Display and layout */
365
- display: inline-flex !important;
366
- align-items: center !important;
367
- gap: var(--structure-large-spacing-xxs, 2px) !important;
368
-
369
- /* Transitions */
370
- transition: background-color 0.2s ease, border-color 0.2s ease !important;
371
- }
372
-
373
- /* Badge hover state */
374
- voa-select voa-container-multi-select .voa-container-multi-select__badge-wrapper:hover voa-badge::part(base) {
375
- background-color: var(--branding-coi-colors-light-primary-light-opacity-25, rgba(0, 100, 203, 0.25)) !important;
376
- border-color: var(--branding-coi-colors-light-primary-light-400, #0071c8) !important;
377
- }
378
-
379
- /* Badge label */
380
- voa-select voa-container-multi-select .voa-container-multi-select__badge-wrapper voa-badge::part(label) {
381
- color: var(--branding-coi-colors-light-primary-light, #0064cb) !important;
382
- white-space: nowrap;
383
- }
384
-
385
- /* Leading icon - hide */
386
- voa-select voa-container-multi-select .voa-container-multi-select__badge-wrapper voa-badge::part(icon-leading) {
387
- display: none !important;
388
- }
389
-
390
- /* Trailing icon (close) of badge */
391
- voa-select voa-container-multi-select .voa-container-multi-select__badge-wrapper voa-badge::part(icon-trailing) {
392
- display: inline-flex !important;
393
- align-items: center !important;
394
- justify-content: center !important;
395
- cursor: pointer !important;
396
- color: var(--branding-coi-colors-light-primary-light, #0064cb) !important;
397
- flex-shrink: 0;
398
- margin-left: var(--structure-large-spacing-xxs, 2px);
399
- }
400
-
401
- voa-select voa-container-multi-select .voa-container-multi-select__badge-wrapper voa-badge::part(icon-trailing) svg {
402
- width: 12px !important;
403
- height: 12px !important;
404
- display: block !important;
405
- flex-shrink: 0;
406
- }
407
-
408
- /* Close icon hover */
409
- voa-select voa-container-multi-select .voa-container-multi-select__badge-wrapper:hover voa-badge::part(icon-trailing) {
410
- opacity: 0.8;
411
- }
412
-
413
- /* Disabled state */
414
- voa-select[disabled] voa-container-multi-select .voa-container-multi-select__badge-wrapper voa-badge::part(base) {
415
- opacity: 0.5 !important;
416
- cursor: not-allowed !important;
417
- pointer-events: none !important;
418
- }
419
-
420
- /* ============================================
421
- DROPDOWN - Options menu
422
- ============================================ */
423
-
424
- /* Animation for dropdown entrance and exit */
425
- @keyframes dropdownEnter {
426
- from {
427
- opacity: 0;
428
- transform: translateY(-8px);
429
- }
430
- to {
431
- opacity: 1;
432
- transform: translateY(0);
433
- }
434
- }
435
-
436
- @keyframes dropdownExit {
437
- from {
438
- opacity: 1;
439
- transform: translateY(0);
440
- }
441
- to {
442
- opacity: 0;
443
- transform: translateY(-8px);
444
- }
445
- }
446
-
447
- /* Dropdown inside voa-select-base - visual styles only */
448
- /* Structural positioning is in voa-select-base.css */
449
- /* Listbox container (role="listbox") */
450
- voa-select-base::part(dropdown) {
451
- /* Visual styles - Figma specs */
452
- background-color: var(--colors-structure-bg-base, #ffffff);
453
-
454
- /* Outline - 1.125px border using design token */
455
- border: var(--border-width-medium) solid var(--colors-structure-border-color, #adb5bd);
456
- border-radius: 15.75px;
457
-
458
- /* Shadow for elevation - Figma: drop shadow effect with enhanced depth */
459
- box-shadow: var(--voa-shadow-option, 0px 8px 16px rgba(0, 0, 0, 0.15)),
460
- 0px 0px 0px 0.5px var(--colors-structure-border-color, #adb5bd),
461
- inset 0px 0px 0px 1px var(--colors-structure-border-color, #adb5bd);
462
-
463
- /* Padding inside dropdown - vertical only */
464
- padding: var(--structure-large-spacing-sm, 8px) 0;
465
-
466
- /* Animation - entrance effect */
467
- animation: dropdownEnter 0.2s ease-out forwards;
468
- opacity: 1;
469
- transform: translateY(0);
470
-
471
- /* Box-sizing */
472
- box-sizing: border-box;
473
-
474
- /* Ensure proper stacking context */
475
- position: relative;
476
- z-index: 1000;
477
- }
478
-
479
- /* Exit animation state - when dropdown is hidden */
480
- voa-select-base::part(dropdown).voa-select__dropdown--hidden {
481
- animation: dropdownExit 0.15s ease-in forwards;
482
- visibility: hidden;
483
- pointer-events: none;
484
- }
485
-
486
- /* ============================================
487
- DROPDOWN OPTION - Individual option
488
- ============================================ */
489
-
490
- voa-select-base::part(option) {
491
- /* Padding for options - Figma: 8px vertical, 12px horizontal */
492
- padding: 8px 12px;
493
-
494
- /* Typography - Figma: Lato Regular 16px / 24px */
495
- font-family: var(--branding-coi-type-family-sans, 'Lato', sans-serif);
496
- font-size: 16px;
497
- font-weight: var(--typography-base-body-sm-regular-weight);
498
- line-height: 24px;
499
- font-style: normal;
500
-
501
- /* Color - Figma: text-primary */
502
- color: var(--text-primary, #0b1215);
503
-
504
- /* Box-sizing */
505
- box-sizing: border-box;
506
-
507
- /* Smooth transitions for all state changes */
508
- transition: background-color 0.2s ease, color 0.2s ease;
509
- }
510
-
511
- /* Hover state for options */
512
- voa-select-base::part(option):hover {
513
- background-color: var(--colors-structure-bg-container, #f1f3f5);
514
- cursor: pointer;
515
- }
516
-
517
- /* Active state for options (keyboard navigation highlight) */
518
- voa-select-base .voa-select__option--active {
519
- background-color: var(--colors-structure-bg-container, #f1f3f5);
520
- }
521
-
522
- /* Selected state for options */
523
- voa-select-base .voa-select__option--selected {
524
- background-color: var(--branding-coi-colors-light-primary-light-opacity-15, rgba(0, 100, 203, 0.15));
525
- color: var(--branding-coi-colors-light-primary-light, #0064cb);
526
- }
527
-
528
- /* Disabled state for options */
529
- voa-select-base .voa-select__option--disabled {
530
- opacity: 0.5;
531
- cursor: not-allowed;
532
- pointer-events: none;
533
- }
534
-
535
- /* ============================================
536
- DROPDOWN INDICATOR - Dropdown icon
537
- ============================================ */
538
-
539
- /* Dropdown icon is inside voa-select-base */
540
- voa-select-base::part(indicator) {
541
- /* Icon size - Figma: 24px */
542
- width: 24px;
543
- height: 24px;
544
- flex-shrink: 0;
545
-
546
- /* Color - Figma: text-primary */
547
- color: var(--text-primary, #0b1215);
548
-
549
- /* Ensure proper display */
550
- display: flex;
551
- align-items: center;
552
- justify-content: center;
553
-
554
- box-sizing: border-box;
555
- }
556
-
557
- voa-select-base::part(indicator) svg {
558
- width: 100%;
559
- height: 100%;
560
- display: block;
561
- }
562
-
563
- /* Disabled state for dropdown indicator */
564
- voa-select[disabled] voa-select-base::part(indicator),
565
- voa-select[data-state="disabled"] voa-select-base::part(indicator) {
566
- /* Color - Figma: text-disabled with opacity */
567
- color: var(--text-disabled-with-opacity, rgba(11, 18, 21, 0.25));
568
- }