@boostdev/design-system-components 0.1.2 → 0.1.4

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.
@@ -0,0 +1,2536 @@
1
+ /* src/components/ui/Accordion/Accordion.module.css */
2
+ @layer component {
3
+ .bds014-accordion {
4
+ display: flex;
5
+ flex-direction: column;
6
+ border: 1px solid var(--color_bg--subtle);
7
+ border-radius: var(--border_radius--s);
8
+ overflow: hidden;
9
+ }
10
+ .bds014-item {
11
+ border-bottom: 1px solid var(--color_bg--subtle);
12
+ }
13
+ .bds014-item:last-child {
14
+ border-bottom: none;
15
+ }
16
+ .bds014-heading {
17
+ margin: 0;
18
+ }
19
+ .bds014-trigger {
20
+ all: unset;
21
+ display: flex;
22
+ align-items: center;
23
+ justify-content: space-between;
24
+ width: 100%;
25
+ padding: var(--space_m);
26
+ font-family: var(--font_family--body);
27
+ font-size: var(--font_size--body);
28
+ font-weight: var(--font_weight--semibold);
29
+ color: var(--color_on-bg);
30
+ cursor: pointer;
31
+ transition: var(--animation_transition);
32
+ box-sizing: border-box;
33
+ }
34
+ .bds014-trigger:disabled {
35
+ opacity: 0.4;
36
+ cursor: not-allowed;
37
+ }
38
+ .bds014-trigger:focus-visible {
39
+ outline: var(--outline_default);
40
+ outline-offset: calc(var(--outline_offset) * -1);
41
+ border-radius: var(--border_radius--xs);
42
+ }
43
+ @media (hover: hover) and (pointer: fine) {
44
+ .bds014-trigger:not(:disabled):hover {
45
+ background-color: var(--color_bg--subtle);
46
+ }
47
+ }
48
+ .bds014-triggerLabel {
49
+ flex: 1;
50
+ text-align: start;
51
+ }
52
+ .bds014-chevron {
53
+ width: 1.25rem;
54
+ height: 1.25rem;
55
+ flex-shrink: 0;
56
+ transition: transform var(--animation_transition-duration) var(--animation_easing);
57
+ }
58
+ .bds014-item.bds014---open .bds014-chevron {
59
+ transform: rotate(180deg);
60
+ }
61
+ .bds014-panel {
62
+ overflow: hidden;
63
+ }
64
+ .bds014-panelContent {
65
+ padding: 0 var(--space_m) var(--space_m);
66
+ color: var(--color_on-bg);
67
+ font-size: var(--font_size--body);
68
+ line-height: var(--font_line-height--body);
69
+ }
70
+ @media (prefers-reduced-motion: reduce) {
71
+ .bds014-chevron {
72
+ transition: none;
73
+ }
74
+ }
75
+ }
76
+
77
+ /* src/components/ui/Alert/Alert.module.css */
78
+ @layer component {
79
+ .bds014-alert {
80
+ --alert_bg: var(--color_blue--subtle);
81
+ --alert_text: var(--color_on-blue--subtle);
82
+ --alert_border: var(--color_blue);
83
+ display: flex;
84
+ align-items: flex-start;
85
+ gap: var(--space_s);
86
+ padding: var(--space_m);
87
+ border-radius: var(--border_radius--s);
88
+ border-inline-start: var(--space_s) solid var(--alert_border);
89
+ background-color: var(--alert_bg);
90
+ color: var(--alert_text);
91
+ font-size: var(--font_size--body);
92
+ line-height: var(--font_line-height--body);
93
+ }
94
+ .bds014---variant_info {
95
+ --alert_bg: var(--color_blue--subtle);
96
+ --alert_text: var(--color_on-blue--subtle);
97
+ --alert_border: var(--color_blue);
98
+ }
99
+ .bds014---variant_success {
100
+ --alert_bg: var(--color_green--subtle);
101
+ --alert_text: var(--color_on-green--subtle);
102
+ --alert_border: var(--color_green);
103
+ }
104
+ .bds014---variant_warning {
105
+ --alert_bg: var(--color_orange--subtle);
106
+ --alert_text: var(--color_on-orange--subtle);
107
+ --alert_border: var(--color_warning);
108
+ }
109
+ .bds014---variant_error {
110
+ --alert_bg: rgb(from var(--color_error) r g b / 12%);
111
+ --alert_text: var(--color_on-bg);
112
+ --alert_border: var(--color_error);
113
+ }
114
+ .bds014-icon {
115
+ display: flex;
116
+ align-items: center;
117
+ flex-shrink: 0;
118
+ margin-block-start: 0.1em;
119
+ }
120
+ .bds014-content {
121
+ flex: 1;
122
+ display: flex;
123
+ flex-direction: column;
124
+ gap: var(--space_xxs);
125
+ }
126
+ .bds014-title {
127
+ font-weight: var(--font_weight--semibold);
128
+ font-size: var(--font_size--body);
129
+ }
130
+ .bds014-dismiss {
131
+ all: unset;
132
+ display: flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ flex-shrink: 0;
136
+ cursor: pointer;
137
+ color: currentcolor;
138
+ transition: var(--animation_transition);
139
+ border: 1px solid currentcolor;
140
+ border-radius: 50%;
141
+ }
142
+ .bds014-dismiss svg {
143
+ width: 1rem;
144
+ height: 1rem;
145
+ }
146
+ .bds014-dismiss:focus-visible {
147
+ outline: var(--outline_default);
148
+ outline-offset: var(--outline_offset);
149
+ }
150
+ @media (hover: hover) and (pointer: fine) {
151
+ .bds014-dismiss:hover {
152
+ opacity: 0.7;
153
+ }
154
+ }
155
+ }
156
+
157
+ /* src/components/ui/Avatar/Avatar.module.css */
158
+ @layer component {
159
+ .bds014-avatar {
160
+ --avatar_size: 3em;
161
+ --avatar_bg: var(--color_blue);
162
+ --avatar_text: var(--color_on-blue);
163
+ display: inline-flex;
164
+ align-items: center;
165
+ justify-content: center;
166
+ width: var(--avatar_size);
167
+ height: var(--avatar_size);
168
+ border-radius: 50%;
169
+ overflow: hidden;
170
+ flex-shrink: 0;
171
+ }
172
+ .bds014-avatar.bds014---fallback {
173
+ background-color: var(--avatar_bg);
174
+ color: var(--avatar_text);
175
+ font-weight: var(--font_weight--semibold);
176
+ }
177
+ .bds014-avatar.bds014---size_small {
178
+ --avatar_size: 2em;
179
+ }
180
+ .bds014-avatar.bds014---size_medium {
181
+ --avatar_size: 3em;
182
+ }
183
+ .bds014-avatar.bds014---size_large {
184
+ --avatar_size: 4.5em;
185
+ }
186
+ .bds014-image {
187
+ width: 100%;
188
+ height: 100%;
189
+ object-fit: cover;
190
+ display: block;
191
+ }
192
+ .bds014-initials {
193
+ line-height: 1;
194
+ user-select: none;
195
+ font-size: var(--font_size--body);
196
+ }
197
+ .bds014-avatar.bds014---size_small .bds014-initials {
198
+ font-size: var(--font_size--body--s);
199
+ }
200
+ .bds014-avatar.bds014---size_large .bds014-initials {
201
+ font-size: var(--font_size--heading-3);
202
+ }
203
+ }
204
+
205
+ /* src/components/ui/Badge/Badge.module.css */
206
+ @layer component {
207
+ .bds014-badge {
208
+ --badge_bg: var(--color_blue);
209
+ --badge_text: var(--color_on-blue);
210
+ --badge_radius: 2em;
211
+ --badge_font-size: var(--font_size--body--s);
212
+ display: inline-flex;
213
+ align-items: center;
214
+ justify-content: center;
215
+ padding: var(--space_xxs) var(--space_xs);
216
+ border-radius: var(--badge_radius);
217
+ font-size: var(--badge_font-size);
218
+ font-weight: var(--font_weight--semibold);
219
+ line-height: 1;
220
+ white-space: nowrap;
221
+ background-color: var(--badge_bg);
222
+ color: var(--badge_text);
223
+ }
224
+ .bds014---variant_primary {
225
+ --badge_bg: var(--color_interactive);
226
+ --badge_text: var(--color_on-interactive);
227
+ }
228
+ .bds014---variant_secondary {
229
+ --badge_bg: var(--color_bg);
230
+ --badge_text: var(--color_on-bg);
231
+ }
232
+ .bds014---variant_success {
233
+ --badge_bg: var(--color_success);
234
+ --badge_text: var(--color_on-success);
235
+ }
236
+ .bds014---variant_error {
237
+ --badge_bg: var(--color_error);
238
+ --badge_text: var(--color_on-error);
239
+ }
240
+ .bds014---variant_warning {
241
+ --badge_bg: var(--color_warning);
242
+ --badge_text: var(--color_on-warning);
243
+ }
244
+ }
245
+
246
+ /* src/components/ui/Breadcrumb/Breadcrumb.module.css */
247
+ @layer component {
248
+ .bds014-breadcrumb {
249
+ font-size: var(--font_size--body--s);
250
+ }
251
+ .bds014-list {
252
+ display: flex;
253
+ flex-wrap: wrap;
254
+ align-items: center;
255
+ gap: var(--space_xxs);
256
+ list-style: none;
257
+ margin: 0;
258
+ padding: 0;
259
+ }
260
+ .bds014-item {
261
+ display: flex;
262
+ align-items: center;
263
+ gap: var(--space_xxs);
264
+ }
265
+ .bds014-link {
266
+ color: var(--color_interactive);
267
+ text-decoration: none;
268
+ transition: var(--animation_transition);
269
+ }
270
+ .bds014-link:focus-visible {
271
+ outline: var(--outline_default);
272
+ outline-offset: var(--outline_offset);
273
+ border-radius: var(--border_radius--xs);
274
+ }
275
+ @media (hover: hover) and (pointer: fine) {
276
+ .bds014-link:hover {
277
+ text-decoration: underline;
278
+ text-underline-offset: 0.2em;
279
+ }
280
+ }
281
+ .bds014-separator {
282
+ color: var(--color_on-bg--subtle);
283
+ user-select: none;
284
+ }
285
+ .bds014-current {
286
+ color: var(--color_on-bg--subtle);
287
+ font-weight: var(--font_weight--semibold);
288
+ }
289
+ }
290
+
291
+ /* src/components/ui/Calendar/Calendar.module.css */
292
+ @layer component {
293
+ .bds014-calendar {
294
+ display: inline-flex;
295
+ flex-direction: column;
296
+ gap: var(--space_s);
297
+ background-color: var(--color_bg);
298
+ border: 1px solid var(--color_bg--subtle);
299
+ border-radius: var(--border_radius--m);
300
+ padding: var(--space_m);
301
+ box-shadow: var(--shadow_s);
302
+ width: 20rem;
303
+ }
304
+ .bds014-header {
305
+ display: flex;
306
+ align-items: center;
307
+ justify-content: space-between;
308
+ }
309
+ .bds014-monthYear {
310
+ font-size: var(--font_size--body);
311
+ font-weight: var(--font_weight--semibold);
312
+ color: var(--color_on-bg);
313
+ }
314
+ .bds014-navBtn {
315
+ all: unset;
316
+ display: flex;
317
+ align-items: center;
318
+ justify-content: center;
319
+ width: 2rem;
320
+ height: 2rem;
321
+ border-radius: 50%;
322
+ cursor: pointer;
323
+ color: var(--color_on-bg);
324
+ transition: var(--animation_transition);
325
+ }
326
+ .bds014-navBtn svg {
327
+ width: 1rem;
328
+ height: 1rem;
329
+ }
330
+ .bds014-navBtn:focus-visible {
331
+ outline: var(--outline_default);
332
+ outline-offset: var(--outline_offset);
333
+ }
334
+ @media (hover: hover) and (pointer: fine) {
335
+ .bds014-navBtn:hover {
336
+ background-color: var(--color_bg--subtle);
337
+ }
338
+ }
339
+ .bds014-grid {
340
+ border-collapse: collapse;
341
+ width: 100%;
342
+ table-layout: fixed;
343
+ }
344
+ .bds014-weekday {
345
+ font-size: var(--font_size--body--s);
346
+ font-weight: var(--font_weight--semibold);
347
+ color: var(--color_on-bg--muted);
348
+ text-align: center;
349
+ padding-block-end: var(--space_xs);
350
+ }
351
+ .bds014-empty {
352
+ padding: 0;
353
+ }
354
+ .bds014-day {
355
+ all: unset;
356
+ display: flex;
357
+ align-items: center;
358
+ justify-content: center;
359
+ width: 100%;
360
+ aspect-ratio: 1;
361
+ border-radius: 50%;
362
+ font-size: var(--font_size--body--s);
363
+ color: var(--color_on-bg);
364
+ cursor: pointer;
365
+ transition: var(--animation_transition);
366
+ box-sizing: border-box;
367
+ }
368
+ .bds014-day:focus-visible {
369
+ outline: var(--outline_default);
370
+ outline-offset: var(--outline_offset);
371
+ }
372
+ @media (hover: hover) and (pointer: fine) {
373
+ .bds014-day:not(.bds014-disabled, .bds014-selected):hover {
374
+ background-color: var(--color_bg--subtle);
375
+ }
376
+ }
377
+ .bds014-today {
378
+ border: 2px solid var(--color_interactive);
379
+ font-weight: var(--font_weight--semibold);
380
+ }
381
+ .bds014-selected {
382
+ background-color: var(--color_interactive);
383
+ color: var(--color_on-interactive);
384
+ font-weight: var(--font_weight--semibold);
385
+ }
386
+ .bds014-disabled {
387
+ opacity: 0.35;
388
+ cursor: not-allowed;
389
+ }
390
+ @media (prefers-reduced-motion: reduce) {
391
+ .bds014-day {
392
+ transition: none;
393
+ }
394
+ }
395
+ }
396
+
397
+ /* src/components/ui/Carousel/Carousel.module.css */
398
+ @layer component {
399
+ .bds014-carousel {
400
+ position: relative;
401
+ display: flex;
402
+ align-items: center;
403
+ gap: var(--space_xs);
404
+ }
405
+ .bds014-track {
406
+ display: flex;
407
+ gap: var(--space_m);
408
+ overflow-x: auto;
409
+ scroll-snap-type: x mandatory;
410
+ scrollbar-width: none;
411
+ flex: 1;
412
+ scroll-behavior: smooth;
413
+ }
414
+ .bds014-track::-webkit-scrollbar {
415
+ display: none;
416
+ }
417
+ .bds014-slide {
418
+ scroll-snap-align: start;
419
+ flex-shrink: 0;
420
+ }
421
+ .bds014-navBtn {
422
+ all: unset;
423
+ display: flex;
424
+ align-items: center;
425
+ justify-content: center;
426
+ width: 2.5rem;
427
+ height: 2.5rem;
428
+ border-radius: 50%;
429
+ background-color: var(--color_bg);
430
+ border: 1px solid var(--color_on-bg);
431
+ color: var(--color_on-bg);
432
+ cursor: pointer;
433
+ flex-shrink: 0;
434
+ transition: var(--animation_transition);
435
+ box-shadow: var(--shadow_s);
436
+ }
437
+ .bds014-navBtn svg {
438
+ width: 1.25rem;
439
+ height: 1.25rem;
440
+ }
441
+ .bds014-navBtn:focus-visible {
442
+ outline: var(--outline_default);
443
+ outline-offset: var(--outline_offset);
444
+ }
445
+ @media (hover: hover) and (pointer: fine) {
446
+ .bds014-navBtn:hover {
447
+ background-color: var(--color_bg--subtle);
448
+ }
449
+ }
450
+ @media (prefers-reduced-motion: reduce) {
451
+ .bds014-track {
452
+ scroll-behavior: auto;
453
+ }
454
+ }
455
+ }
456
+
457
+ /* src/components/ui/DescriptionList/DescriptionList.module.css */
458
+ @layer component {
459
+ .bds014-list {
460
+ display: flex;
461
+ flex-direction: column;
462
+ gap: var(--space_s);
463
+ margin: 0;
464
+ padding: 0;
465
+ font-size: var(--font_size--body);
466
+ color: var(--color_on-bg);
467
+ }
468
+ .bds014-group {
469
+ display: flex;
470
+ flex-direction: column;
471
+ gap: var(--space_xxs);
472
+ }
473
+ .bds014-term {
474
+ font-weight: var(--font_weight--semibold);
475
+ color: var(--color_on-bg);
476
+ }
477
+ .bds014-details {
478
+ margin: 0;
479
+ color: var(--color_on-bg--muted);
480
+ }
481
+ .bds014---layout_inline .bds014-group {
482
+ display: grid;
483
+ grid-template-columns: minmax(8rem, 1fr) 2fr;
484
+ gap: var(--space_xs);
485
+ align-items: baseline;
486
+ }
487
+ .bds014---layout_inline .bds014-term {
488
+ grid-column: 1;
489
+ }
490
+ .bds014---layout_inline .bds014-details {
491
+ grid-column: 2;
492
+ }
493
+ }
494
+
495
+ /* src/components/ui/Link/Link.module.css */
496
+ @layer component {
497
+ .bds014-link {
498
+ --link_color: var(--color_interactive);
499
+ --link_color-hover: var(--color_blue--strong);
500
+ color: var(--link_color);
501
+ text-decoration: underline;
502
+ text-underline-offset: 0.2em;
503
+ transition: var(--animation_transition);
504
+ cursor: pointer;
505
+ }
506
+ .bds014-link:focus-visible {
507
+ outline: var(--outline_default);
508
+ outline-offset: var(--outline_offset);
509
+ border-radius: var(--border_radius--xs);
510
+ }
511
+ @media (hover: hover) and (pointer: fine) {
512
+ .bds014-link:hover {
513
+ --link_color: var(--link_color-hover);
514
+ }
515
+ }
516
+ .bds014---variant_default {
517
+ --link_color: var(--color_interactive);
518
+ --link_color-hover: var(--color_blue--strong);
519
+ }
520
+ .bds014---variant_subtle {
521
+ --link_color: var(--color_on-bg);
522
+ --link_color-hover: var(--color_interactive);
523
+ }
524
+ .bds014---variant_standalone {
525
+ --link_color: var(--color_interactive);
526
+ --link_color-hover: var(--color_blue--strong);
527
+ display: inline-flex;
528
+ align-items: center;
529
+ gap: var(--space_xxs);
530
+ font-weight: var(--font_weight--semibold);
531
+ text-decoration: none;
532
+ }
533
+ @media (hover: hover) and (pointer: fine) {
534
+ .bds014---variant_standalone:hover {
535
+ text-decoration: underline;
536
+ text-underline-offset: 0.2em;
537
+ }
538
+ }
539
+ .bds014-externalLabel {
540
+ position: absolute;
541
+ width: 1px;
542
+ height: 1px;
543
+ padding: 0;
544
+ margin: -1px;
545
+ overflow: hidden;
546
+ clip: rect(0, 0, 0, 0);
547
+ white-space: nowrap;
548
+ border-width: 0;
549
+ }
550
+ }
551
+
552
+ /* src/components/ui/Loading/Loading.module.css */
553
+ @layer component {
554
+ .bds014-loading {
555
+ display: flex;
556
+ justify-content: center;
557
+ align-items: center;
558
+ }
559
+ .bds014-spinner {
560
+ width: 2.5em;
561
+ height: 2.5em;
562
+ border: 4px solid var(--color_bg);
563
+ border-top: 4px solid var(--color_interactive);
564
+ border-radius: 50%;
565
+ animation: spin 1s linear infinite;
566
+ }
567
+ .bds014---size_small .bds014-spinner {
568
+ width: 1.5em;
569
+ height: 1.5em;
570
+ border-width: 2px;
571
+ }
572
+ .bds014---size_large .bds014-spinner {
573
+ width: 4em;
574
+ height: 4em;
575
+ border-width: 6px;
576
+ }
577
+ }
578
+ @keyframes spin {
579
+ 0% {
580
+ transform: rotate(0deg);
581
+ }
582
+ 100% {
583
+ transform: rotate(360deg);
584
+ }
585
+ }
586
+
587
+ /* src/components/ui/NotificationBanner/NotificationBanner.module.css */
588
+ @layer component {
589
+ .bds014-banner {
590
+ --banner_bg: var(--color_blue--subtle);
591
+ --banner_text: var(--color_on-blue--subtle);
592
+ --banner_border: var(--color_blue);
593
+ display: flex;
594
+ align-items: center;
595
+ gap: var(--space_m);
596
+ padding: var(--space_s) var(--space_m);
597
+ background-color: var(--banner_bg);
598
+ color: var(--banner_text);
599
+ border-block-end: 3px solid var(--banner_border);
600
+ font-size: var(--font_size--body);
601
+ line-height: var(--font_line-height--body);
602
+ width: 100%;
603
+ }
604
+ .bds014---variant_info {
605
+ --banner_bg: var(--color_blue--subtle);
606
+ --banner_text: var(--color_on-blue--subtle);
607
+ --banner_border: var(--color_blue);
608
+ }
609
+ .bds014---variant_success {
610
+ --banner_bg: var(--color_green--subtle);
611
+ --banner_text: var(--color_on-green--subtle);
612
+ --banner_border: var(--color_green);
613
+ }
614
+ .bds014---variant_warning {
615
+ --banner_bg: var(--color_orange--subtle);
616
+ --banner_text: var(--color_on-orange--subtle);
617
+ --banner_border: var(--color_warning);
618
+ }
619
+ .bds014---variant_error {
620
+ --banner_bg: rgb(from var(--color_error) r g b / 12%);
621
+ --banner_text: var(--color_on-bg);
622
+ --banner_border: var(--color_error);
623
+ }
624
+ .bds014-content {
625
+ flex: 1;
626
+ }
627
+ .bds014-action {
628
+ flex-shrink: 0;
629
+ }
630
+ .bds014-dismiss {
631
+ all: unset;
632
+ display: flex;
633
+ align-items: center;
634
+ justify-content: center;
635
+ flex-shrink: 0;
636
+ cursor: pointer;
637
+ color: currentcolor;
638
+ border-radius: 50%;
639
+ border: 1px solid currentcolor;
640
+ transition: var(--animation_transition);
641
+ }
642
+ .bds014-dismiss svg {
643
+ width: 1rem;
644
+ height: 1rem;
645
+ }
646
+ .bds014-dismiss:focus-visible {
647
+ outline: var(--outline_default);
648
+ outline-offset: var(--outline_offset);
649
+ }
650
+ @media (hover: hover) and (pointer: fine) {
651
+ .bds014-dismiss:hover {
652
+ opacity: 0.7;
653
+ }
654
+ }
655
+ }
656
+
657
+ /* src/components/ui/Pagination/Pagination.module.css */
658
+ @layer component {
659
+ .bds014-pagination {
660
+ display: flex;
661
+ justify-content: center;
662
+ }
663
+ .bds014-list {
664
+ display: flex;
665
+ align-items: center;
666
+ gap: var(--space_xxs);
667
+ list-style: none;
668
+ margin: 0;
669
+ padding: 0;
670
+ }
671
+ .bds014-button {
672
+ --btn_bg: transparent;
673
+ --btn_color: var(--color_on-bg);
674
+ --btn_border: var(--color_bg--subtle);
675
+ all: unset;
676
+ display: inline-flex;
677
+ align-items: center;
678
+ justify-content: center;
679
+ min-width: 2.25rem;
680
+ height: 2.25rem;
681
+ padding-inline: var(--space_xs);
682
+ border-radius: var(--border_radius--xs);
683
+ border: 1px solid var(--btn_border);
684
+ background-color: var(--btn_bg);
685
+ color: var(--btn_color);
686
+ font-family: var(--font_family--body);
687
+ font-size: var(--font_size--body);
688
+ font-variant-numeric: tabular-nums;
689
+ cursor: pointer;
690
+ transition: var(--animation_transition);
691
+ box-sizing: border-box;
692
+ }
693
+ .bds014-button:disabled {
694
+ opacity: 0.4;
695
+ cursor: not-allowed;
696
+ }
697
+ .bds014-button:focus-visible {
698
+ outline: var(--outline_default);
699
+ outline-offset: var(--outline_offset);
700
+ }
701
+ @media (hover: hover) and (pointer: fine) {
702
+ .bds014-button:not(:disabled, .bds014---active):hover {
703
+ --btn_bg: var(--color_bg--subtle);
704
+ --btn_color: var(--color_interactive);
705
+ }
706
+ }
707
+ .bds014-button.bds014---active {
708
+ --btn_bg: var(--color_interactive);
709
+ --btn_color: var(--color_on-interactive);
710
+ --btn_border: var(--color_interactive);
711
+ }
712
+ .bds014-button.bds014---nav svg {
713
+ width: 1rem;
714
+ height: 1rem;
715
+ }
716
+ .bds014-ellipsis {
717
+ display: inline-flex;
718
+ align-items: center;
719
+ justify-content: center;
720
+ min-width: 2.25rem;
721
+ height: 2.25rem;
722
+ color: var(--color_on-bg--subtle);
723
+ font-size: var(--font_size--body);
724
+ user-select: none;
725
+ }
726
+ }
727
+
728
+ /* src/components/ui/Progress/Progress.module.css */
729
+ @layer component {
730
+ .bds014-container {
731
+ display: flex;
732
+ flex-direction: column;
733
+ gap: var(--space_xxs);
734
+ width: 100%;
735
+ }
736
+ .bds014-labelRow {
737
+ display: flex;
738
+ justify-content: space-between;
739
+ align-items: baseline;
740
+ font-size: var(--font_size--body--s);
741
+ color: var(--color_on-bg);
742
+ }
743
+ .bds014-label {
744
+ font-weight: var(--font_weight--semibold);
745
+ }
746
+ .bds014-value {
747
+ font-variant-numeric: tabular-nums;
748
+ }
749
+ .bds014-track {
750
+ --progress_height: var(--space_xs);
751
+ width: 100%;
752
+ height: var(--progress_height);
753
+ background-color: var(--color_bg--subtle);
754
+ border-radius: 999px;
755
+ overflow: hidden;
756
+ }
757
+ .bds014-track.bds014---size_small {
758
+ --progress_height: var(--space_xxs);
759
+ }
760
+ .bds014-track.bds014---size_medium {
761
+ --progress_height: var(--space_xs);
762
+ }
763
+ .bds014-track.bds014---size_large {
764
+ --progress_height: var(--space_s);
765
+ }
766
+ .bds014-fill {
767
+ height: 100%;
768
+ background-color: var(--color_green);
769
+ border-radius: 999px;
770
+ transition: width var(--animation_transition-duration) var(--animation_easing);
771
+ }
772
+ @media (prefers-reduced-motion: reduce) {
773
+ .bds014-fill {
774
+ transition: none;
775
+ }
776
+ }
777
+ }
778
+
779
+ /* src/components/ui/ProgressCircle/ProgressCircle.module.css */
780
+ @layer component {
781
+ .bds014-wrapper {
782
+ position: relative;
783
+ display: inline-flex;
784
+ align-items: center;
785
+ justify-content: center;
786
+ }
787
+ .bds014-svg {
788
+ display: block;
789
+ }
790
+ .bds014-track {
791
+ stroke: var(--color_bg--subtle);
792
+ }
793
+ .bds014-fill {
794
+ stroke: var(--color_green);
795
+ transition: stroke-dashoffset var(--animation_transition-duration) var(--animation_easing);
796
+ }
797
+ .bds014-value {
798
+ position: absolute;
799
+ font-size: var(--font_size--body--s);
800
+ font-weight: var(--font_weight--semibold);
801
+ font-variant-numeric: tabular-nums;
802
+ color: var(--color_on-bg);
803
+ line-height: 1;
804
+ }
805
+ .bds014---size_small .bds014-value {
806
+ font-size: 0.5rem;
807
+ }
808
+ .bds014---size_medium .bds014-value {
809
+ font-size: var(--font_size--body--s);
810
+ }
811
+ .bds014---size_large .bds014-value {
812
+ font-size: var(--font_size--body);
813
+ }
814
+ @media (prefers-reduced-motion: reduce) {
815
+ .bds014-fill {
816
+ transition: none;
817
+ }
818
+ }
819
+ }
820
+
821
+ /* src/components/ui/Separator/Separator.module.css */
822
+ @layer component {
823
+ .bds014-separator {
824
+ border: none;
825
+ background-color: var(--separator_color, var(--color_border));
826
+ }
827
+ .bds014-separator.bds014---horizontal {
828
+ display: block;
829
+ width: 100%;
830
+ height: var(--separator_thickness, 1px);
831
+ margin-block: var(--space_m);
832
+ }
833
+ .bds014-separator.bds014---vertical {
834
+ display: inline-block;
835
+ width: var(--separator_thickness, 1px);
836
+ align-self: stretch;
837
+ margin-inline: var(--space_m);
838
+ }
839
+ }
840
+
841
+ /* src/components/ui/Skeleton/Skeleton.module.css */
842
+ @layer component {
843
+ .bds014-skeleton {
844
+ background:
845
+ linear-gradient(
846
+ 90deg,
847
+ var(--color_grey--subtle) 25%,
848
+ var(--color_bg) 50%,
849
+ var(--color_grey--subtle) 75%);
850
+ background-size: 200% 100%;
851
+ animation: shimmer 1.5s infinite;
852
+ border-radius: var(--border_radius--xs);
853
+ min-height: var(--space_m);
854
+ }
855
+ }
856
+ @keyframes shimmer {
857
+ 0% {
858
+ background-position: 200% 0;
859
+ }
860
+ 100% {
861
+ background-position: -200% 0;
862
+ }
863
+ }
864
+
865
+ /* src/components/ui/SkipLink/SkipLink.module.css */
866
+ @layer component {
867
+ .bds014-skipLink {
868
+ position: absolute;
869
+ inset-block-start: var(--space_s);
870
+ inset-inline-start: var(--space_s);
871
+ z-index: var(--z_overlay);
872
+ padding: var(--space_xs) var(--space_m);
873
+ background-color: var(--color_bg);
874
+ color: var(--color_on-bg);
875
+ font-size: var(--font_size--body);
876
+ font-weight: var(--font_weight--semibold);
877
+ border-radius: var(--border_radius--s);
878
+ border: 2px solid var(--color_focus);
879
+ text-decoration: none;
880
+ transform: translateY(-200%);
881
+ transition: transform var(--animation_transition-duration) var(--animation_easing);
882
+ }
883
+ .bds014-skipLink:focus-visible {
884
+ transform: translateY(0);
885
+ outline: var(--outline_default);
886
+ outline-offset: var(--outline_offset);
887
+ }
888
+ @media (prefers-reduced-motion: reduce) {
889
+ .bds014-skipLink {
890
+ transition: none;
891
+ }
892
+ }
893
+ }
894
+
895
+ /* src/components/ui/Table/Table.module.css */
896
+ @layer component {
897
+ .bds014-wrapper {
898
+ width: 100%;
899
+ overflow-x: auto;
900
+ border-radius: var(--border_radius--s);
901
+ border: 1px solid var(--color_bg--subtle);
902
+ }
903
+ .bds014-table {
904
+ width: 100%;
905
+ border-collapse: collapse;
906
+ font-size: var(--font_size--body);
907
+ font-family: var(--font_family--body);
908
+ }
909
+ .bds014-caption {
910
+ caption-side: top;
911
+ text-align: start;
912
+ padding: var(--space_s) var(--space_m);
913
+ font-weight: var(--font_weight--semibold);
914
+ color: var(--color_on-bg);
915
+ }
916
+ .bds014-thead {
917
+ background-color: var(--color_bg--subtle);
918
+ }
919
+ .bds014-th {
920
+ padding: var(--space_s) var(--space_m);
921
+ text-align: start;
922
+ font-weight: var(--font_weight--semibold);
923
+ font-size: var(--font_size--body--s);
924
+ color: var(--color_on-bg--subtle);
925
+ white-space: nowrap;
926
+ border-bottom: 1px solid var(--color_bg--subtle);
927
+ }
928
+ .bds014-th.bds014---sortable {
929
+ padding: 0;
930
+ }
931
+ .bds014-sortButton {
932
+ all: unset;
933
+ display: flex;
934
+ align-items: center;
935
+ gap: var(--space_xxs);
936
+ padding: var(--space_s) var(--space_m);
937
+ width: 100%;
938
+ cursor: pointer;
939
+ color: var(--color_on-bg--subtle);
940
+ font-weight: var(--font_weight--semibold);
941
+ font-size: var(--font_size--body--s);
942
+ transition: var(--animation_transition);
943
+ box-sizing: border-box;
944
+ }
945
+ .bds014-sortButton:focus-visible {
946
+ outline: var(--outline_default);
947
+ outline-offset: calc(var(--outline_offset) * -1);
948
+ }
949
+ @media (hover: hover) and (pointer: fine) {
950
+ .bds014-sortButton:hover {
951
+ color: var(--color_on-bg);
952
+ }
953
+ }
954
+ .bds014-sortIcon {
955
+ width: 1rem;
956
+ height: 1rem;
957
+ opacity: 0.4;
958
+ transition: transform var(--animation_transition-duration) var(--animation_easing), opacity var(--animation_transition-duration) var(--animation_easing);
959
+ }
960
+ .bds014-sortIcon.bds014---sort-active {
961
+ opacity: 1;
962
+ color: var(--color_interactive);
963
+ }
964
+ .bds014-sortIcon.bds014---sort-desc {
965
+ transform: rotate(180deg);
966
+ }
967
+ .bds014-tbody .bds014-tr {
968
+ border-bottom: 1px solid var(--color_bg--subtle);
969
+ transition: var(--animation_transition);
970
+ }
971
+ .bds014-tbody .bds014-tr:last-child {
972
+ border-bottom: none;
973
+ }
974
+ @media (hover: hover) and (pointer: fine) {
975
+ .bds014-tbody .bds014-tr:hover {
976
+ background-color: var(--color_bg--subtle);
977
+ }
978
+ }
979
+ .bds014-td {
980
+ padding: var(--space_s) var(--space_m);
981
+ color: var(--color_on-bg);
982
+ vertical-align: middle;
983
+ }
984
+ @media (prefers-reduced-motion: reduce) {
985
+ .bds014-sortIcon {
986
+ transition: none;
987
+ }
988
+ }
989
+ }
990
+
991
+ /* src/components/ui/Tabs/Tabs.module.css */
992
+ @layer component {
993
+ .bds014-tabs {
994
+ display: flex;
995
+ flex-direction: column;
996
+ }
997
+ .bds014-tabList {
998
+ display: flex;
999
+ border-bottom: 1px solid var(--color_bg--subtle);
1000
+ gap: var(--space_xxs);
1001
+ }
1002
+ .bds014-tab {
1003
+ --tab_color: var(--color_on-bg);
1004
+ --tab_border-color: transparent;
1005
+ all: unset;
1006
+ display: inline-flex;
1007
+ align-items: center;
1008
+ padding: var(--space_s) var(--space_m);
1009
+ font-family: var(--font_family--body);
1010
+ font-size: var(--font_size--body);
1011
+ font-weight: var(--font_weight--semibold);
1012
+ color: var(--tab_color);
1013
+ border-bottom: 2px solid var(--tab_border-color);
1014
+ margin-bottom: -1px;
1015
+ cursor: pointer;
1016
+ transition: var(--animation_transition);
1017
+ }
1018
+ .bds014-tab.bds014---active {
1019
+ --tab_color: var(--color_interactive);
1020
+ --tab_border-color: var(--color_interactive);
1021
+ }
1022
+ .bds014-tab:disabled {
1023
+ opacity: 0.4;
1024
+ cursor: not-allowed;
1025
+ }
1026
+ .bds014-tab:focus-visible {
1027
+ outline: var(--outline_default);
1028
+ outline-offset: var(--outline_offset);
1029
+ border-radius: var(--border_radius--xs);
1030
+ }
1031
+ @media (hover: hover) and (pointer: fine) {
1032
+ .bds014-tab:not(:disabled, .bds014---active):hover {
1033
+ --tab_color: var(--color_interactive);
1034
+ }
1035
+ }
1036
+ .bds014-panel {
1037
+ padding-block-start: var(--space_m);
1038
+ }
1039
+ .bds014-panel:focus-visible {
1040
+ outline: var(--outline_default);
1041
+ outline-offset: var(--outline_offset);
1042
+ }
1043
+ }
1044
+
1045
+ /* src/components/ui/Tooltip/Tooltip.module.css */
1046
+ @layer component {
1047
+ .bds014-wrapper {
1048
+ position: relative;
1049
+ display: inline-flex;
1050
+ align-items: center;
1051
+ }
1052
+ .bds014-tooltip {
1053
+ --tooltip_bg: var(--color_on-bg);
1054
+ --tooltip_text: var(--color_bg);
1055
+ position: absolute;
1056
+ z-index: var(--z-index_popover);
1057
+ padding: var(--space_xxs) var(--space_xs);
1058
+ border-radius: var(--border_radius--xs);
1059
+ background-color: var(--tooltip_bg);
1060
+ color: var(--tooltip_text);
1061
+ font-size: var(--font_size--body--s);
1062
+ line-height: var(--font_line-height--body);
1063
+ white-space: nowrap;
1064
+ pointer-events: none;
1065
+ visibility: hidden;
1066
+ opacity: 0;
1067
+ transition: opacity var(--animation_transition-duration) var(--animation_easing);
1068
+ }
1069
+ .bds014-wrapper:hover .bds014-tooltip,
1070
+ .bds014-wrapper:focus-within .bds014-tooltip {
1071
+ visibility: visible;
1072
+ opacity: 1;
1073
+ }
1074
+ .bds014---placement_top {
1075
+ bottom: calc(100% + var(--space_xs));
1076
+ left: 50%;
1077
+ transform: translateX(-50%);
1078
+ }
1079
+ .bds014---placement_bottom {
1080
+ top: calc(100% + var(--space_xs));
1081
+ left: 50%;
1082
+ transform: translateX(-50%);
1083
+ }
1084
+ .bds014---placement_left {
1085
+ right: calc(100% + var(--space_xs));
1086
+ top: 50%;
1087
+ transform: translateY(-50%);
1088
+ }
1089
+ .bds014---placement_right {
1090
+ left: calc(100% + var(--space_xs));
1091
+ top: 50%;
1092
+ transform: translateY(-50%);
1093
+ }
1094
+ @media (prefers-reduced-motion: reduce) {
1095
+ .bds014-tooltip {
1096
+ transition: none;
1097
+ }
1098
+ }
1099
+ }
1100
+
1101
+ /* src/components/ui/Typography/Typography.module.css */
1102
+ @layer component {
1103
+ .bds014-typography {
1104
+ margin: 0;
1105
+ font-family: var(--font_family--body);
1106
+ color: var(--typography_color, var(--color_on-bg));
1107
+ }
1108
+ .bds014---h1 {
1109
+ font-family: var(--font_family--heading);
1110
+ font-size: var(--font_size--heading-1);
1111
+ font-weight: var(--font_weight--bold);
1112
+ line-height: var(--font_line-height--heading);
1113
+ }
1114
+ .bds014---h2 {
1115
+ font-family: var(--font_family--heading);
1116
+ font-size: var(--font_size--heading-2);
1117
+ font-weight: var(--font_weight--semibold);
1118
+ line-height: var(--font_line-height--heading);
1119
+ }
1120
+ .bds014---h3 {
1121
+ font-family: var(--font_family--heading);
1122
+ font-size: var(--font_size--heading-3);
1123
+ font-weight: var(--font_weight--semibold);
1124
+ line-height: var(--font_line-height--heading);
1125
+ }
1126
+ .bds014---body {
1127
+ font-size: var(--font_size--body);
1128
+ line-height: var(--font_line-height--body);
1129
+ }
1130
+ .bds014---body_s {
1131
+ font-size: var(--font_size--body--s);
1132
+ line-height: var(--font_line-height--body);
1133
+ }
1134
+ }
1135
+
1136
+ /* src/components/interaction/Button/Button.module.css */
1137
+ @keyframes pulse {
1138
+ 0% {
1139
+ transform: scale(1);
1140
+ box-shadow: 0 0 0 0 rgb(from var(--button_pulse-color) r g b / 50%);
1141
+ }
1142
+ 70% {
1143
+ transform: scale(1.01);
1144
+ box-shadow: 0 0 0 var(--space_m) rgb(from var(--button_pulse-color) r g b / 0%);
1145
+ }
1146
+ 100% {
1147
+ transform: scale(1);
1148
+ box-shadow: 0 0 0 0 rgb(from var(--button_pulse-color) r g b / 0%);
1149
+ }
1150
+ }
1151
+ @layer component {
1152
+ .bds014-button,
1153
+ .bds014-button[href] {
1154
+ --button_height: 3em;
1155
+ --button_font-size: inherit;
1156
+ --button_bg: var(--color_cta);
1157
+ --button_text: var(--color_on-cta);
1158
+ --button_border-color: var(--color_cta);
1159
+ --button_pulse-color: var(--button_bg);
1160
+ all: unset;
1161
+ position: relative;
1162
+ font: inherit;
1163
+ padding-inline: var(--space_l);
1164
+ display: inline-flex;
1165
+ gap: var(--space_xs);
1166
+ border-radius: var(--border_radius--s);
1167
+ align-items: center;
1168
+ cursor: pointer;
1169
+ scroll-padding-block-end: var(--space_l);
1170
+ justify-content: center;
1171
+ height: var(--button_height);
1172
+ font-size: var(--button_font-size);
1173
+ white-space: nowrap;
1174
+ line-height: 1;
1175
+ background-color: var(--button_bg);
1176
+ color: var(--button_text);
1177
+ border: 2px solid var(--button_border-color);
1178
+ transition: var(--animation_transition);
1179
+ }
1180
+ .bds014-button.bds014---primary {
1181
+ --button_bg: var(--color_cta);
1182
+ --button_text: var(--color_on-cta);
1183
+ --button_border-color: transparent;
1184
+ }
1185
+ .bds014-button.bds014---secondary {
1186
+ --button_bg: var(--color_bg);
1187
+ --button_text: var(--color_on-bg);
1188
+ --button_border-color: var(--button_text);
1189
+ }
1190
+ .bds014-button.bds014---size_small {
1191
+ --button_height: 2.25em;
1192
+ --button_font-size: var(--font_size--body--s);
1193
+ padding-inline: var(--space_m);
1194
+ }
1195
+ .bds014-button.bds014---size_medium {
1196
+ --button_height: 3em;
1197
+ padding-inline: var(--space_l);
1198
+ }
1199
+ .bds014-button.bds014---size_large {
1200
+ --button_height: 3.75em;
1201
+ --button_font-size: var(--font_size--heading-3);
1202
+ padding-inline: var(--space_xl);
1203
+ }
1204
+ .bds014-button.bds014---hasPulse {
1205
+ animation: pulse 3s infinite;
1206
+ }
1207
+ .bds014-button[href] {
1208
+ text-decoration: none;
1209
+ }
1210
+ .bds014-button svg {
1211
+ --icon__stroke: currentcolor;
1212
+ fill: currentcolor;
1213
+ color: currentcolor;
1214
+ flex-shrink: 0;
1215
+ }
1216
+ .bds014-prefix {
1217
+ display: flex;
1218
+ align-items: center;
1219
+ margin-inline-start: calc(var(--space_s) * -1);
1220
+ transition: var(--animation_transition);
1221
+ }
1222
+ .bds014-suffix {
1223
+ display: flex;
1224
+ align-items: center;
1225
+ margin-inline-end: calc(var(--space_s) * -1);
1226
+ transition: var(--animation_transition);
1227
+ }
1228
+ @media (hover: hover) and (pointer: fine) {
1229
+ .bds014-button:hover .bds014-prefix svg {
1230
+ animation: 2s infinite fadeZoom ease-out;
1231
+ }
1232
+ .bds014-button:hover .bds014-suffix svg {
1233
+ animation: 2s infinite fadeZoom ease-out;
1234
+ }
1235
+ }
1236
+ .bds014-button:focus-visible {
1237
+ outline-offset: var(--outline_offset);
1238
+ outline: var(--outline_default);
1239
+ border-radius: var(--border_radius--s);
1240
+ }
1241
+ @media (hover: hover) and (pointer: fine) {
1242
+ .bds014-button:hover {
1243
+ --button_bg: var(--color_bg);
1244
+ --button_text: var(--color_interactive);
1245
+ --button_pulse-color: var(--color_interactive);
1246
+ --button_border-color: currentcolor;
1247
+ }
1248
+ }
1249
+ }
1250
+
1251
+ /* src/components/interaction/Command/Command.module.css */
1252
+ @layer component {
1253
+ .bds014-dialog {
1254
+ padding: 0;
1255
+ border: none;
1256
+ border-radius: var(--border_radius--m);
1257
+ background: transparent;
1258
+ width: min(40rem, 90vw);
1259
+ max-height: 70vh;
1260
+ overflow: visible;
1261
+ margin-block-start: 10vh;
1262
+ }
1263
+ .bds014-dialog::backdrop {
1264
+ background: rgb(0 0 0 / 50%);
1265
+ }
1266
+ .bds014-palette {
1267
+ display: flex;
1268
+ flex-direction: column;
1269
+ background-color: var(--color_bg);
1270
+ border-radius: var(--border_radius--m);
1271
+ box-shadow: var(--shadow_xl);
1272
+ overflow: hidden;
1273
+ max-height: 70vh;
1274
+ border: 1px solid var(--color_bg--subtle);
1275
+ }
1276
+ .bds014-searchRow {
1277
+ display: flex;
1278
+ align-items: center;
1279
+ gap: var(--space_xs);
1280
+ padding: var(--space_s) var(--space_m);
1281
+ border-block-end: 1px solid var(--color_bg--subtle);
1282
+ flex-shrink: 0;
1283
+ }
1284
+ .bds014-searchIcon {
1285
+ width: 1.25rem;
1286
+ height: 1.25rem;
1287
+ color: var(--color_on-bg--muted);
1288
+ flex-shrink: 0;
1289
+ }
1290
+ .bds014-search {
1291
+ flex: 1;
1292
+ border: none;
1293
+ outline: none;
1294
+ font-family: var(--font_family--body);
1295
+ font-size: var(--font_size--body);
1296
+ color: var(--color_on-bg);
1297
+ background: transparent;
1298
+ min-width: 0;
1299
+ }
1300
+ .bds014-search::placeholder {
1301
+ color: var(--color_on-bg--muted);
1302
+ }
1303
+ .bds014-escHint {
1304
+ font-size: var(--font_size--body--s);
1305
+ color: var(--color_on-bg--muted);
1306
+ border: 1px solid var(--color_on-bg--muted);
1307
+ border-radius: var(--border_radius--xs);
1308
+ padding: 0.1em 0.4em;
1309
+ flex-shrink: 0;
1310
+ }
1311
+ .bds014-list {
1312
+ overflow-y: auto;
1313
+ list-style: none;
1314
+ margin: 0;
1315
+ padding: var(--space_xs) 0;
1316
+ }
1317
+ .bds014-groupList {
1318
+ list-style: none;
1319
+ margin: 0;
1320
+ padding: 0;
1321
+ }
1322
+ .bds014-group {
1323
+ padding: var(--space_xs) var(--space_m);
1324
+ font-size: var(--font_size--body--s);
1325
+ font-weight: var(--font_weight--semibold);
1326
+ color: var(--color_on-bg--muted);
1327
+ text-transform: uppercase;
1328
+ letter-spacing: 0.05em;
1329
+ }
1330
+ .bds014-item {
1331
+ display: flex;
1332
+ align-items: center;
1333
+ gap: var(--space_s);
1334
+ padding: var(--space_s) var(--space_m);
1335
+ cursor: pointer;
1336
+ transition: background-color var(--animation_transition-duration) var(--animation_easing);
1337
+ }
1338
+ .bds014-itemActive {
1339
+ background-color: var(--color_bg--subtle);
1340
+ }
1341
+ .bds014-itemLabel {
1342
+ flex: 1;
1343
+ font-size: var(--font_size--body);
1344
+ color: var(--color_on-bg);
1345
+ }
1346
+ .bds014-itemDesc {
1347
+ font-size: var(--font_size--body--s);
1348
+ color: var(--color_on-bg--muted);
1349
+ }
1350
+ .bds014-shortcut {
1351
+ font-size: var(--font_size--body--s);
1352
+ color: var(--color_on-bg--muted);
1353
+ border: 1px solid var(--color_on-bg--muted);
1354
+ border-radius: var(--border_radius--xs);
1355
+ padding: 0.1em 0.4em;
1356
+ }
1357
+ .bds014-empty {
1358
+ padding: var(--space_l) var(--space_m);
1359
+ text-align: center;
1360
+ color: var(--color_on-bg--muted);
1361
+ font-size: var(--font_size--body);
1362
+ }
1363
+ }
1364
+
1365
+ /* src/components/interaction/Dialog/Dialog.module.css */
1366
+ @layer component {
1367
+ .bds014-dialog {
1368
+ display: grid;
1369
+ gap: var(--grid_gap);
1370
+ font-size: var(--font_size--body--s);
1371
+ border: 2px solid currentcolor;
1372
+ background-color: var(--color_grey--subtle);
1373
+ color: var(--color_on-grey--subtle);
1374
+ border-radius: var(--border_radius--m);
1375
+ padding: var(--space_l);
1376
+ overflow: visible;
1377
+ max-width: 90svw;
1378
+ }
1379
+ .bds014-closeForm {
1380
+ position: absolute;
1381
+ inset-block-start: -1em;
1382
+ inset-inline-end: -1em;
1383
+ }
1384
+ .bds014-closeButton {
1385
+ all: unset;
1386
+ width: 2em;
1387
+ height: 2em;
1388
+ display: flex;
1389
+ align-items: center;
1390
+ justify-content: center;
1391
+ border-radius: 50%;
1392
+ background-color: var(--color_bg);
1393
+ color: var(--color_on-bg);
1394
+ border: 2px solid currentcolor;
1395
+ cursor: pointer;
1396
+ }
1397
+ .bds014-closeButton svg {
1398
+ width: 1.25em;
1399
+ height: 1.25em;
1400
+ }
1401
+ }
1402
+
1403
+ /* src/components/interaction/Drawer/Drawer.module.css */
1404
+ @layer component {
1405
+ .bds014-drawer {
1406
+ position: fixed;
1407
+ inset: 0;
1408
+ margin: 0;
1409
+ padding: 0;
1410
+ width: 100%;
1411
+ max-width: 100%;
1412
+ height: 100%;
1413
+ max-height: 100%;
1414
+ border: none;
1415
+ background: transparent;
1416
+ overflow: hidden;
1417
+ }
1418
+ .bds014-drawer::backdrop {
1419
+ background: rgb(0 0 0 / 50%);
1420
+ }
1421
+ .bds014-panel {
1422
+ position: absolute;
1423
+ inset-block: 0;
1424
+ display: flex;
1425
+ flex-direction: column;
1426
+ width: min(28rem, 90vw);
1427
+ height: 100%;
1428
+ background-color: var(--color_bg);
1429
+ color: var(--color_on-bg);
1430
+ box-shadow: var(--shadow_xl);
1431
+ overflow: hidden;
1432
+ transition: transform var(--animation_transition-duration) var(--animation_easing);
1433
+ }
1434
+ .bds014---side_right .bds014-panel {
1435
+ inset-inline-end: 0;
1436
+ }
1437
+ .bds014---side_left .bds014-panel {
1438
+ inset-inline-start: 0;
1439
+ }
1440
+ .bds014-header {
1441
+ display: flex;
1442
+ align-items: center;
1443
+ justify-content: space-between;
1444
+ padding: var(--space_m) var(--space_l);
1445
+ border-block-end: 1px solid var(--color_bg--subtle);
1446
+ flex-shrink: 0;
1447
+ }
1448
+ .bds014-title {
1449
+ margin: 0;
1450
+ font-size: var(--font_size--heading--s);
1451
+ font-weight: var(--font_weight--semibold);
1452
+ line-height: var(--font_line-height--heading);
1453
+ }
1454
+ .bds014-closeButton {
1455
+ all: unset;
1456
+ display: flex;
1457
+ align-items: center;
1458
+ justify-content: center;
1459
+ width: 2rem;
1460
+ height: 2rem;
1461
+ border-radius: 50%;
1462
+ cursor: pointer;
1463
+ color: var(--color_on-bg);
1464
+ transition: var(--animation_transition);
1465
+ }
1466
+ .bds014-closeButton svg {
1467
+ width: 1.25rem;
1468
+ height: 1.25rem;
1469
+ }
1470
+ .bds014-closeButton:focus-visible {
1471
+ outline: var(--outline_default);
1472
+ outline-offset: var(--outline_offset);
1473
+ }
1474
+ @media (hover: hover) and (pointer: fine) {
1475
+ .bds014-closeButton:hover {
1476
+ background-color: var(--color_bg--subtle);
1477
+ }
1478
+ }
1479
+ .bds014-body {
1480
+ flex: 1;
1481
+ overflow-y: auto;
1482
+ padding: var(--space_l);
1483
+ }
1484
+ @media (prefers-reduced-motion: reduce) {
1485
+ .bds014-panel {
1486
+ transition: none;
1487
+ }
1488
+ }
1489
+ }
1490
+
1491
+ /* src/components/interaction/DropdownMenu/DropdownMenu.module.css */
1492
+ @layer component {
1493
+ .bds014-wrapper {
1494
+ position: relative;
1495
+ display: inline-flex;
1496
+ }
1497
+ .bds014-menu {
1498
+ position: absolute;
1499
+ top: calc(100% + var(--space_xxs));
1500
+ z-index: var(--z-index_dropdown);
1501
+ min-width: 10rem;
1502
+ padding: var(--space_xxs) 0;
1503
+ border-radius: var(--border_radius--s);
1504
+ border: 1px solid var(--color_bg--subtle);
1505
+ background-color: var(--color_bg);
1506
+ box-shadow: var(--shadow_m);
1507
+ list-style: none;
1508
+ margin: 0;
1509
+ }
1510
+ .bds014---placement_bottom-start {
1511
+ left: 0;
1512
+ }
1513
+ .bds014---placement_bottom-end {
1514
+ right: 0;
1515
+ }
1516
+ .bds014-separator {
1517
+ border: none;
1518
+ border-top: 1px solid var(--color_bg--subtle);
1519
+ margin: var(--space_xxs) 0;
1520
+ }
1521
+ .bds014-item {
1522
+ all: unset;
1523
+ display: flex;
1524
+ align-items: center;
1525
+ gap: var(--space_xs);
1526
+ width: 100%;
1527
+ padding: var(--space_xs) var(--space_m);
1528
+ font-family: var(--font_family--body);
1529
+ font-size: var(--font_size--body);
1530
+ color: var(--color_on-bg);
1531
+ cursor: pointer;
1532
+ box-sizing: border-box;
1533
+ transition: var(--animation_transition);
1534
+ }
1535
+ .bds014-item:disabled {
1536
+ opacity: 0.4;
1537
+ cursor: not-allowed;
1538
+ }
1539
+ .bds014-item:focus-visible {
1540
+ outline: var(--outline_default);
1541
+ outline-offset: calc(var(--outline_offset) * -1);
1542
+ border-radius: var(--border_radius--xs);
1543
+ }
1544
+ @media (hover: hover) and (pointer: fine) {
1545
+ .bds014-item:not(:disabled):hover {
1546
+ background-color: var(--color_bg--subtle);
1547
+ color: var(--color_interactive);
1548
+ }
1549
+ }
1550
+ .bds014-icon {
1551
+ display: flex;
1552
+ align-items: center;
1553
+ flex-shrink: 0;
1554
+ }
1555
+ }
1556
+
1557
+ /* src/components/interaction/Popover/Popover.module.css */
1558
+ @layer component {
1559
+ .bds014-wrapper {
1560
+ position: relative;
1561
+ display: inline-flex;
1562
+ }
1563
+ .bds014-panel {
1564
+ position: absolute;
1565
+ z-index: var(--z-index_popover);
1566
+ min-width: 12rem;
1567
+ padding: var(--space_m);
1568
+ border-radius: var(--border_radius--s);
1569
+ border: 1px solid var(--color_bg--subtle);
1570
+ background-color: var(--color_bg);
1571
+ box-shadow: var(--shadow_m);
1572
+ color: var(--color_on-bg);
1573
+ font-size: var(--font_size--body);
1574
+ }
1575
+ .bds014---placement_bottom {
1576
+ top: calc(100% + var(--space_xs));
1577
+ left: 0;
1578
+ }
1579
+ .bds014---placement_top {
1580
+ bottom: calc(100% + var(--space_xs));
1581
+ left: 0;
1582
+ }
1583
+ .bds014---placement_right {
1584
+ left: calc(100% + var(--space_xs));
1585
+ top: 0;
1586
+ }
1587
+ .bds014---placement_left {
1588
+ right: calc(100% + var(--space_xs));
1589
+ top: 0;
1590
+ }
1591
+ }
1592
+
1593
+ /* src/components/interaction/Rating/Rating.module.css */
1594
+ @layer component {
1595
+ .bds014-rating {
1596
+ display: inline-flex;
1597
+ gap: var(--space_xxxs);
1598
+ color: var(--color_bg);
1599
+ }
1600
+ .bds014-star {
1601
+ width: 1.5em;
1602
+ height: 1.5em;
1603
+ }
1604
+ .bds014---filled {
1605
+ color: var(--color_warning);
1606
+ }
1607
+ }
1608
+
1609
+ /* src/components/interaction/Toast/Toast.module.css */
1610
+ @layer component {
1611
+ .bds014-toastContainer {
1612
+ position: fixed;
1613
+ bottom: var(--space_xl);
1614
+ right: var(--space_xl);
1615
+ display: flex;
1616
+ flex-direction: column;
1617
+ gap: var(--space_m);
1618
+ z-index: var(--z-index_toast);
1619
+ }
1620
+ .bds014-toast {
1621
+ padding: var(--space_m) var(--space_l);
1622
+ background-color: var(--color_bg);
1623
+ color: var(--color_on-bg);
1624
+ border-radius: var(--border_radius--s);
1625
+ box-shadow: var(--shadow_s);
1626
+ display: flex;
1627
+ align-items: center;
1628
+ gap: var(--space_m);
1629
+ min-width: 300px;
1630
+ animation: slideIn var(--animation_duration--fast) var(--animation_easing);
1631
+ }
1632
+ .bds014---variant_success {
1633
+ border-left: 4px solid var(--color_success);
1634
+ }
1635
+ .bds014---variant_error {
1636
+ border-left: 4px solid var(--color_error);
1637
+ }
1638
+ .bds014---variant_info {
1639
+ border-left: 4px solid var(--color_interactive);
1640
+ }
1641
+ }
1642
+ @keyframes slideIn {
1643
+ from {
1644
+ transform: translateX(100%);
1645
+ opacity: 0;
1646
+ }
1647
+ to {
1648
+ transform: translateX(0);
1649
+ opacity: 1;
1650
+ }
1651
+ }
1652
+
1653
+ /* src/components/interaction/form/Checkbox/Checkbox.module.css */
1654
+ @layer component {
1655
+ .bds014-checkboxGroup {
1656
+ --inputSize: calc(var(--space_s) * 2);
1657
+ display: flex;
1658
+ flex-direction: column;
1659
+ margin-block-end: var(--space_m);
1660
+ }
1661
+ .bds014-inputWrapper {
1662
+ display: flex;
1663
+ align-items: stretch;
1664
+ gap: var(--space_xs);
1665
+ }
1666
+ .bds014-checkbox {
1667
+ margin-block-start: 0.25em;
1668
+ width: var(--inputSize);
1669
+ height: var(--inputSize);
1670
+ border: 1px solid var(--color_border);
1671
+ border-radius: var(--border_radius--xs);
1672
+ appearance: none;
1673
+ background-color: var(--color_bg);
1674
+ cursor: pointer;
1675
+ position: relative;
1676
+ transition: background-color 0.3s ease, border-color 0.3s ease;
1677
+ }
1678
+ .bds014-checkbox:checked {
1679
+ background-color: var(--color_green);
1680
+ border-color: var(--color_green);
1681
+ box-shadow: 0 0 0 2px var(--color_green);
1682
+ }
1683
+ .bds014-checkbox:checked::after {
1684
+ content: "";
1685
+ position: absolute;
1686
+ left: 0.6em;
1687
+ top: 0.2em;
1688
+ width: 0.5em;
1689
+ height: 1em;
1690
+ border: solid var(--color_on-green);
1691
+ border-width: 0 2px 2px 0;
1692
+ transform: rotate(45deg);
1693
+ }
1694
+ .bds014-checkbox:focus {
1695
+ outline: none;
1696
+ border-color: var(--color_interactive);
1697
+ box-shadow: 0 0 0 2px var(--color_green);
1698
+ }
1699
+ .bds014-checkboxError {
1700
+ border-color: var(--color_error);
1701
+ }
1702
+ .bds014-checkboxError:focus {
1703
+ border-color: var(--color_error);
1704
+ box-shadow: 0 0 0 2px rgb(from var(--color_error) r g b / 20%);
1705
+ }
1706
+ }
1707
+
1708
+ /* src/components/interaction/form/atoms/Message.module.css */
1709
+ @layer component {
1710
+ .bds014-error,
1711
+ .bds014-hint {
1712
+ font-size: var(--font_size--body--s);
1713
+ margin-inline-start: var(--labelPosition);
1714
+ }
1715
+ .bds014-error {
1716
+ color: var(--color_error);
1717
+ }
1718
+ }
1719
+
1720
+ /* src/components/interaction/form/atoms/Label.module.css */
1721
+ @layer component {
1722
+ .bds014-label {
1723
+ display: flex;
1724
+ align-items: center;
1725
+ font-family: var(--font_family--body);
1726
+ font-weight: var(--font_weight--semibold);
1727
+ color: var(--color_on-bg);
1728
+ cursor: pointer;
1729
+ }
1730
+ }
1731
+
1732
+ /* src/components/interaction/form/atoms/InputContainer.module.css */
1733
+ @layer component {
1734
+ .bds014-container {
1735
+ --labelPosition: calc(var(--inputSize) + var(--space_m));
1736
+ display: flex;
1737
+ flex-direction: column;
1738
+ gap: var(--space_xxxs);
1739
+ }
1740
+ }
1741
+
1742
+ /* src/components/interaction/form/Combobox/Combobox.module.css */
1743
+ @layer component {
1744
+ .bds014-formGroup {
1745
+ display: flex;
1746
+ flex-direction: column;
1747
+ }
1748
+ .bds014-inputWrapper {
1749
+ position: relative;
1750
+ display: flex;
1751
+ align-items: center;
1752
+ }
1753
+ .bds014-input {
1754
+ --combobox_border-color: var(--color_on-bg);
1755
+ --combobox_focus-ring: 0 0 0 2px rgb(from var(--color_interactive) r g b / 20%);
1756
+ appearance: none;
1757
+ width: 100%;
1758
+ font-family: var(--font_family--body);
1759
+ font-size: var(--font_size--body);
1760
+ padding: var(--space_s);
1761
+ padding-inline-end: var(--space_xxl);
1762
+ border: 1px solid var(--combobox_border-color);
1763
+ border-radius: var(--border_radius--xs);
1764
+ background-color: var(--color_bg);
1765
+ color: var(--color_on-bg);
1766
+ transition: var(--animation_transition);
1767
+ }
1768
+ .bds014-input:focus {
1769
+ --combobox_border-color: var(--color_interactive);
1770
+ outline: none;
1771
+ box-shadow: var(--combobox_focus-ring);
1772
+ }
1773
+ .bds014-input:disabled {
1774
+ opacity: 0.5;
1775
+ cursor: not-allowed;
1776
+ }
1777
+ .bds014-inputError {
1778
+ --combobox_border-color: var(--color_error);
1779
+ }
1780
+ .bds014-inputError:focus {
1781
+ --combobox_focus-ring: 0 0 0 2px rgb(from var(--color_error) r g b / 20%);
1782
+ }
1783
+ .bds014-chevron {
1784
+ position: absolute;
1785
+ inset-inline-end: var(--space_s);
1786
+ display: flex;
1787
+ align-items: center;
1788
+ pointer-events: none;
1789
+ color: var(--color_on-bg);
1790
+ }
1791
+ .bds014-chevron svg {
1792
+ width: 1rem;
1793
+ height: 1rem;
1794
+ }
1795
+ .bds014-listbox {
1796
+ position: absolute;
1797
+ top: calc(100% + var(--space_xxs));
1798
+ left: 0;
1799
+ right: 0;
1800
+ z-index: var(--z-index_dropdown);
1801
+ max-height: 15rem;
1802
+ overflow-y: auto;
1803
+ list-style: none;
1804
+ margin: 0;
1805
+ padding: var(--space_xxs) 0;
1806
+ border-radius: var(--border_radius--xs);
1807
+ border: 1px solid var(--color_bg--subtle);
1808
+ background-color: var(--color_bg);
1809
+ box-shadow: var(--shadow_m);
1810
+ }
1811
+ .bds014-option {
1812
+ display: flex;
1813
+ align-items: center;
1814
+ padding: var(--space_xs) var(--space_m);
1815
+ font-size: var(--font_size--body);
1816
+ color: var(--color_on-bg);
1817
+ cursor: pointer;
1818
+ transition: var(--animation_transition);
1819
+ }
1820
+ .bds014-option.bds014---highlighted {
1821
+ background-color: var(--color_bg--subtle);
1822
+ color: var(--color_interactive);
1823
+ }
1824
+ .bds014-option.bds014---selected {
1825
+ font-weight: var(--font_weight--semibold);
1826
+ }
1827
+ .bds014-option.bds014---disabled {
1828
+ opacity: 0.4;
1829
+ cursor: not-allowed;
1830
+ }
1831
+ }
1832
+
1833
+ /* src/components/interaction/form/FileInput/FileInput.module.css */
1834
+ @layer component {
1835
+ .bds014-formGroup {
1836
+ display: flex;
1837
+ flex-direction: column;
1838
+ }
1839
+ .bds014-dropZone {
1840
+ display: flex;
1841
+ flex-direction: column;
1842
+ align-items: center;
1843
+ justify-content: center;
1844
+ gap: var(--space_xs);
1845
+ padding: var(--space_l) var(--space_m);
1846
+ border: 2px dashed var(--color_on-bg);
1847
+ border-radius: var(--border_radius--s);
1848
+ cursor: pointer;
1849
+ text-align: center;
1850
+ transition: var(--animation_transition);
1851
+ color: var(--color_on-bg--muted);
1852
+ }
1853
+ .bds014-dropZone:focus-within {
1854
+ outline: var(--outline_default);
1855
+ outline-offset: var(--outline_offset);
1856
+ border-color: var(--color_interactive);
1857
+ }
1858
+ .bds014-isDragging {
1859
+ border-color: var(--color_interactive);
1860
+ background-color: rgb(from var(--color_interactive) r g b / 8%);
1861
+ }
1862
+ .bds014-hasError {
1863
+ border-color: var(--color_error);
1864
+ }
1865
+ .bds014-isDisabled {
1866
+ opacity: 0.5;
1867
+ cursor: not-allowed;
1868
+ }
1869
+ .bds014-icon {
1870
+ width: 2rem;
1871
+ height: 2rem;
1872
+ flex-shrink: 0;
1873
+ }
1874
+ .bds014-prompt {
1875
+ font-size: var(--font_size--body);
1876
+ color: var(--color_on-bg--muted);
1877
+ }
1878
+ .bds014-prompt strong {
1879
+ color: var(--color_interactive);
1880
+ font-weight: var(--font_weight--semibold);
1881
+ }
1882
+ .bds014-acceptHint {
1883
+ font-size: var(--font_size--body--s);
1884
+ color: var(--color_on-bg--muted);
1885
+ }
1886
+ .bds014-hiddenInput {
1887
+ position: absolute;
1888
+ width: 1px;
1889
+ height: 1px;
1890
+ overflow: hidden;
1891
+ clip: rect(0, 0, 0, 0);
1892
+ white-space: nowrap;
1893
+ border: 0;
1894
+ }
1895
+ @media (hover: hover) and (pointer: fine) {
1896
+ .bds014-dropZone:not(.bds014-isDisabled):hover {
1897
+ border-color: var(--color_interactive);
1898
+ background-color: rgb(from var(--color_interactive) r g b / 4%);
1899
+ }
1900
+ }
1901
+ }
1902
+
1903
+ /* src/components/interaction/form/FormInput/FormInput.module.css */
1904
+ @layer component {
1905
+ .bds014-formGroup {
1906
+ --labelPosition: 0;
1907
+ display: flex;
1908
+ flex-direction: column;
1909
+ }
1910
+ .bds014-input {
1911
+ --input_border-color: var(--color_on-bg);
1912
+ --input_radius: var(--border_radius--xs);
1913
+ --input_focus-ring: 0 0 0 2px rgb(from var(--color_interactive) r g b / 20%);
1914
+ font-family: var(--font_family--body);
1915
+ font-size: var(--font_size--body);
1916
+ padding: var(--space_s);
1917
+ border: 1px solid var(--input_border-color);
1918
+ border-radius: var(--input_radius);
1919
+ transition: var(--animation_transition);
1920
+ }
1921
+ .bds014-input:focus {
1922
+ --input_border-color: var(--color_interactive);
1923
+ outline: none;
1924
+ box-shadow: var(--input_focus-ring);
1925
+ }
1926
+ .bds014-inputError {
1927
+ --input_border-color: var(--color_error);
1928
+ }
1929
+ .bds014-inputError:focus {
1930
+ --input_focus-ring: 0 0 0 2px rgb(from var(--color_error) r g b / 20%);
1931
+ }
1932
+ }
1933
+
1934
+ /* src/components/interaction/form/NumberInput/NumberInput.module.css */
1935
+ @layer component {
1936
+ .bds014-formGroup {
1937
+ display: flex;
1938
+ flex-direction: column;
1939
+ }
1940
+ .bds014-inputRow {
1941
+ display: flex;
1942
+ align-items: stretch;
1943
+ border: 1px solid var(--color_on-bg);
1944
+ border-radius: var(--border_radius--xs);
1945
+ overflow: hidden;
1946
+ transition: var(--animation_transition);
1947
+ }
1948
+ .bds014-inputRow:focus-within {
1949
+ border-color: var(--color_interactive);
1950
+ box-shadow: 0 0 0 2px rgb(from var(--color_interactive) r g b / 20%);
1951
+ }
1952
+ .bds014-input {
1953
+ flex: 1;
1954
+ border: none;
1955
+ outline: none;
1956
+ font-family: var(--font_family--body);
1957
+ font-size: var(--font_size--body);
1958
+ text-align: center;
1959
+ padding: var(--space_s);
1960
+ background: transparent;
1961
+ color: var(--color_on-bg);
1962
+ min-width: 0;
1963
+ appearance: textfield;
1964
+ }
1965
+ .bds014-input::-webkit-inner-spin-button,
1966
+ .bds014-input::-webkit-outer-spin-button {
1967
+ appearance: none;
1968
+ }
1969
+ .bds014-inputError {
1970
+ border-color: var(--color_error);
1971
+ }
1972
+ .bds014-inputError:focus-within {
1973
+ border-color: var(--color_error);
1974
+ box-shadow: 0 0 0 2px rgb(from var(--color_error) r g b / 20%);
1975
+ }
1976
+ .bds014-stepper {
1977
+ all: unset;
1978
+ display: flex;
1979
+ align-items: center;
1980
+ justify-content: center;
1981
+ padding: var(--space_xs);
1982
+ background-color: var(--color_bg--subtle);
1983
+ color: var(--color_on-bg);
1984
+ cursor: pointer;
1985
+ transition: var(--animation_transition);
1986
+ flex-shrink: 0;
1987
+ }
1988
+ .bds014-stepper svg {
1989
+ width: 1rem;
1990
+ height: 1rem;
1991
+ }
1992
+ .bds014-stepper:disabled {
1993
+ opacity: 0.4;
1994
+ cursor: not-allowed;
1995
+ }
1996
+ @media (hover: hover) and (pointer: fine) {
1997
+ .bds014-stepper:not(:disabled):hover {
1998
+ background-color: var(--color_bg--subtle);
1999
+ opacity: 0.7;
2000
+ }
2001
+ }
2002
+ }
2003
+
2004
+ /* src/components/interaction/form/Radio/Radio.module.css */
2005
+ @layer component {
2006
+ .bds014-radioGroup {
2007
+ --inputSize: calc(var(--space_s) * 2);
2008
+ --labelPosition: calc(var(--inputSize) + var(--space_m));
2009
+ display: flex;
2010
+ flex-direction: column;
2011
+ }
2012
+ .bds014-inputWrapper {
2013
+ display: flex;
2014
+ align-items: stretch;
2015
+ gap: var(--space_xs);
2016
+ }
2017
+ .bds014-radio {
2018
+ flex-shrink: 0;
2019
+ margin-block-start: 0.25em;
2020
+ width: var(--inputSize);
2021
+ height: var(--inputSize);
2022
+ border: 1px solid var(--color_border);
2023
+ border-radius: 50%;
2024
+ appearance: none;
2025
+ background-color: var(--color_bg);
2026
+ cursor: pointer;
2027
+ position: relative;
2028
+ transition: background-color 0.3s ease, border-color 0.3s ease;
2029
+ }
2030
+ .bds014-radio:checked {
2031
+ background-color: var(--color_green);
2032
+ border-color: var(--color_green);
2033
+ box-shadow: 0 0 0 2px var(--color_green);
2034
+ }
2035
+ .bds014-radio:checked::after {
2036
+ content: "";
2037
+ position: absolute;
2038
+ left: 0.6em;
2039
+ top: 0.25em;
2040
+ width: 0.5em;
2041
+ height: 1em;
2042
+ border: solid var(--color_on-green);
2043
+ border-width: 0 2px 2px 0;
2044
+ transform: rotate(45deg);
2045
+ }
2046
+ .bds014-radio:focus {
2047
+ outline: none;
2048
+ border-color: var(--color_interactive);
2049
+ box-shadow: 0 0 0 2px var(--color_green);
2050
+ }
2051
+ .bds014-radioError {
2052
+ border-color: var(--color_error);
2053
+ }
2054
+ .bds014-radioError:focus {
2055
+ border-color: var(--color_error);
2056
+ box-shadow: 0 0 0 2px rgb(from var(--color_error) r g b / 20%);
2057
+ }
2058
+ }
2059
+
2060
+ /* src/components/interaction/form/Select/Select.module.css */
2061
+ @layer component {
2062
+ .bds014-formGroup {
2063
+ display: flex;
2064
+ flex-direction: column;
2065
+ }
2066
+ .bds014-selectWrapper {
2067
+ position: relative;
2068
+ display: flex;
2069
+ align-items: center;
2070
+ }
2071
+ .bds014-select {
2072
+ --select_border-color: var(--color_on-bg);
2073
+ --select_focus-ring: 0 0 0 2px rgb(from var(--color_interactive) r g b / 20%);
2074
+ appearance: none;
2075
+ width: 100%;
2076
+ font-family: var(--font_family--body);
2077
+ font-size: var(--font_size--body);
2078
+ padding: var(--space_s);
2079
+ padding-inline-end: var(--space_xxl);
2080
+ border: 1px solid var(--select_border-color);
2081
+ border-radius: var(--border_radius--xs);
2082
+ background-color: var(--color_bg);
2083
+ color: var(--color_on-bg);
2084
+ cursor: pointer;
2085
+ transition: var(--animation_transition);
2086
+ }
2087
+ .bds014-select:focus {
2088
+ --select_border-color: var(--color_interactive);
2089
+ outline: none;
2090
+ box-shadow: var(--select_focus-ring);
2091
+ }
2092
+ .bds014-select:disabled {
2093
+ opacity: 0.5;
2094
+ cursor: not-allowed;
2095
+ }
2096
+ .bds014-selectError {
2097
+ --select_border-color: var(--color_error);
2098
+ }
2099
+ .bds014-selectError:focus {
2100
+ --select_focus-ring: 0 0 0 2px rgb(from var(--color_error) r g b / 20%);
2101
+ }
2102
+ .bds014-chevron {
2103
+ position: absolute;
2104
+ inset-inline-end: var(--space_s);
2105
+ display: flex;
2106
+ align-items: center;
2107
+ pointer-events: none;
2108
+ color: var(--color_on-bg);
2109
+ }
2110
+ .bds014-chevron svg {
2111
+ width: 1rem;
2112
+ height: 1rem;
2113
+ }
2114
+ }
2115
+
2116
+ /* src/components/interaction/form/Slider/Slider.module.css */
2117
+ @layer component {
2118
+ .bds014-formGroup {
2119
+ display: flex;
2120
+ flex-direction: column;
2121
+ gap: var(--space_xxs);
2122
+ }
2123
+ .bds014-labelRow {
2124
+ display: flex;
2125
+ justify-content: space-between;
2126
+ align-items: baseline;
2127
+ }
2128
+ .bds014-value {
2129
+ font-size: var(--font_size--body--s);
2130
+ font-variant-numeric: tabular-nums;
2131
+ color: var(--color_on-bg--subtle);
2132
+ }
2133
+ .bds014-slider {
2134
+ --slider_fill: 0%;
2135
+ --slider_track-height: var(--space_xxs);
2136
+ --slider_thumb-size: calc(var(--space_s) * 2);
2137
+ appearance: none;
2138
+ width: 100%;
2139
+ height: var(--slider_track-height);
2140
+ border-radius: 999px;
2141
+ background:
2142
+ linear-gradient(
2143
+ to right,
2144
+ var(--color_green) 0%,
2145
+ var(--color_green) var(--slider_fill),
2146
+ var(--color_bg--subtle) var(--slider_fill),
2147
+ var(--color_bg--subtle) 100%);
2148
+ cursor: pointer;
2149
+ transition: var(--animation_transition);
2150
+ }
2151
+ .bds014-slider:focus-visible {
2152
+ outline: var(--outline_default);
2153
+ outline-offset: var(--outline_offset);
2154
+ border-radius: 999px;
2155
+ }
2156
+ .bds014-slider:disabled {
2157
+ opacity: 0.4;
2158
+ cursor: not-allowed;
2159
+ }
2160
+ .bds014-slider::-webkit-slider-thumb {
2161
+ appearance: none;
2162
+ width: var(--slider_thumb-size);
2163
+ height: var(--slider_thumb-size);
2164
+ border-radius: 50%;
2165
+ background-color: var(--color_green);
2166
+ box-shadow: var(--shadow_s);
2167
+ transition: var(--animation_transition);
2168
+ cursor: pointer;
2169
+ }
2170
+ .bds014-slider::-moz-range-thumb {
2171
+ width: var(--slider_thumb-size);
2172
+ height: var(--slider_thumb-size);
2173
+ border: none;
2174
+ border-radius: 50%;
2175
+ background-color: var(--color_green);
2176
+ box-shadow: var(--shadow_s);
2177
+ cursor: pointer;
2178
+ }
2179
+ .bds014-sliderError {
2180
+ background:
2181
+ linear-gradient(
2182
+ to right,
2183
+ var(--color_error) 0%,
2184
+ var(--color_error) var(--slider_fill),
2185
+ var(--color_bg--subtle) var(--slider_fill),
2186
+ var(--color_bg--subtle) 100%);
2187
+ }
2188
+ .bds014-sliderError::-webkit-slider-thumb {
2189
+ background-color: var(--color_error);
2190
+ }
2191
+ .bds014-sliderError::-moz-range-thumb {
2192
+ background-color: var(--color_error);
2193
+ }
2194
+ @media (prefers-reduced-motion: reduce) {
2195
+ .bds014-slider,
2196
+ .bds014-slider::-webkit-slider-thumb,
2197
+ .bds014-slider::-moz-range-thumb {
2198
+ transition: none;
2199
+ }
2200
+ }
2201
+ }
2202
+
2203
+ /* src/components/interaction/form/Switch/Switch.module.css */
2204
+ @layer component {
2205
+ .bds014-switchGroup {
2206
+ --switch_thumb-size: 1.25em;
2207
+ --switch_track-pad: var(--space_xxxs);
2208
+ --switch_track-height: calc(var(--switch_thumb-size) + var(--switch_track-pad) * 2);
2209
+ --switch_track-width: calc(var(--switch_thumb-size) * 2 + var(--switch_track-pad) * 2);
2210
+ --track_bg: var(--color_grey--subtle);
2211
+ --track_active: var(--color_green--subtle);
2212
+ --thumb_bg: var(--color_grey);
2213
+ --thumb_bg--active: var(--color_green--strong);
2214
+ display: flex;
2215
+ flex-direction: column;
2216
+ margin-block-end: var(--space_m);
2217
+ }
2218
+ .bds014-switchGroup.bds014---size_small {
2219
+ --switch_thumb-size: 1em;
2220
+ }
2221
+ .bds014-switchGroup.bds014---size_medium {
2222
+ --switch_thumb-size: 1.25em;
2223
+ }
2224
+ .bds014-switchGroup.bds014---size_large {
2225
+ --switch_thumb-size: 1.5em;
2226
+ }
2227
+ .bds014-inputWrapper {
2228
+ display: flex;
2229
+ align-items: center;
2230
+ gap: var(--space_xs);
2231
+ }
2232
+ .bds014-trackWrapper {
2233
+ position: relative;
2234
+ display: inline-flex;
2235
+ align-items: center;
2236
+ flex-shrink: 0;
2237
+ width: var(--switch_track-width);
2238
+ height: var(--switch_track-height);
2239
+ }
2240
+ .bds014-switch {
2241
+ position: absolute;
2242
+ inset: 0;
2243
+ appearance: none;
2244
+ opacity: 0;
2245
+ width: 100%;
2246
+ height: 100%;
2247
+ margin: 0;
2248
+ cursor: pointer;
2249
+ z-index: 1;
2250
+ }
2251
+ .bds014-switch:disabled {
2252
+ cursor: not-allowed;
2253
+ }
2254
+ .bds014-track {
2255
+ display: inline-flex;
2256
+ align-items: center;
2257
+ width: var(--switch_track-width);
2258
+ height: var(--switch_track-height);
2259
+ border-radius: 999px;
2260
+ background-color: var(--track_bg);
2261
+ padding-inline: var(--switch_track-pad);
2262
+ pointer-events: none;
2263
+ transition: var(--animation_transition);
2264
+ outline: 1px solid var(--thumb_bg);
2265
+ outline-offset: var(--outline_offset);
2266
+ }
2267
+ .bds014-thumb {
2268
+ display: block;
2269
+ width: var(--switch_thumb-size);
2270
+ height: var(--switch_thumb-size);
2271
+ border-radius: 50%;
2272
+ background-color: var(--thumb_bg);
2273
+ box-shadow: var(--shadow_s);
2274
+ transition: var(--animation_transition);
2275
+ transform: translateX(0);
2276
+ }
2277
+ .bds014-switch.bds014-switchError + .bds014-track {
2278
+ outline: 1px solid var(--color_error);
2279
+ }
2280
+ .bds014-switch:checked + .bds014-track {
2281
+ background-color: var(--track_active);
2282
+ outline-color: var(--thumb_bg--active);
2283
+ }
2284
+ .bds014-switch:checked + .bds014-track .bds014-thumb {
2285
+ background-color: var(--thumb_bg--active);
2286
+ transform: translateX(var(--switch_thumb-size));
2287
+ }
2288
+ .bds014-switch:focus-visible + .bds014-track {
2289
+ outline: var(--outline_default);
2290
+ outline-offset: var(--outline_offset);
2291
+ border-radius: 999px;
2292
+ }
2293
+ .bds014-switch:disabled + .bds014-track {
2294
+ opacity: 0.4;
2295
+ }
2296
+ @media (prefers-reduced-motion: reduce) {
2297
+ .bds014-track,
2298
+ .bds014-thumb {
2299
+ transition: none;
2300
+ }
2301
+ }
2302
+ }
2303
+
2304
+ /* src/components/interaction/form/Textarea/Textarea.module.css */
2305
+ @layer component {
2306
+ .bds014-formGroup {
2307
+ display: flex;
2308
+ flex-direction: column;
2309
+ }
2310
+ .bds014-textarea {
2311
+ --textarea_border-color: var(--color_on-bg);
2312
+ --textarea_focus-ring: 0 0 0 2px rgb(from var(--color_interactive) r g b / 20%);
2313
+ font-family: var(--font_family--body);
2314
+ font-size: var(--font_size--body);
2315
+ line-height: var(--font_line-height--body);
2316
+ padding: var(--space_s);
2317
+ border: 1px solid var(--textarea_border-color);
2318
+ border-radius: var(--border_radius--xs);
2319
+ background-color: var(--color_bg);
2320
+ color: var(--color_on-bg);
2321
+ resize: vertical;
2322
+ min-height: calc(var(--space_m) * 5);
2323
+ transition: var(--animation_transition);
2324
+ }
2325
+ .bds014-textarea:focus {
2326
+ --textarea_border-color: var(--color_interactive);
2327
+ outline: none;
2328
+ box-shadow: var(--textarea_focus-ring);
2329
+ }
2330
+ .bds014-textarea:disabled {
2331
+ opacity: 0.5;
2332
+ cursor: not-allowed;
2333
+ resize: none;
2334
+ }
2335
+ .bds014-textareaError {
2336
+ --textarea_border-color: var(--color_error);
2337
+ }
2338
+ .bds014-textareaError:focus {
2339
+ --textarea_focus-ring: 0 0 0 2px rgb(from var(--color_error) r g b / 20%);
2340
+ }
2341
+ }
2342
+
2343
+ /* src/components/layout/ButtonGroup/ButtonGroup.module.css */
2344
+ @layer component {
2345
+ .bds014-buttonGroup {
2346
+ container-type: inline-size;
2347
+ container-name: button-group;
2348
+ grid-column: var(--grid_span-100);
2349
+ }
2350
+ .bds014-buttonGroup .bds014-container {
2351
+ position: relative;
2352
+ display: flex;
2353
+ flex-direction: column-reverse;
2354
+ gap: var(--space_l);
2355
+ align-items: center;
2356
+ }
2357
+ .bds014-buttonGroup.bds014---variant__card .bds014-container {
2358
+ align-items: stretch;
2359
+ }
2360
+ .bds014-buttonGroup.bds014---variant__flow .bds014-container,
2361
+ .bds014-buttonGroup.bds014---variant__modal .bds014-container {
2362
+ align-items: center;
2363
+ }
2364
+ .bds014-buttonGroup.bds014---variant__content .bds014-container {
2365
+ align-items: flex-start;
2366
+ }
2367
+ @supports (contain: inline-size) {
2368
+ @container button-group (min-width: 30rem) {
2369
+ .bds014-buttonGroup .bds014-container {
2370
+ flex-direction: row;
2371
+ justify-content: space-between;
2372
+ }
2373
+ .bds014-buttonGroup.bds014---variant__modal .bds014-container > :first-child:last-child,
2374
+ .bds014-buttonGroup.bds014---variant__flow .bds014-container > :first-child:last-child {
2375
+ margin-inline-start: auto;
2376
+ }
2377
+ .bds014-buttonGroup.bds014---variant__card .bds014-container {
2378
+ justify-content: center;
2379
+ }
2380
+ .bds014-buttonGroup.bds014---variant__modal .bds014-container {
2381
+ justify-content: flex-end;
2382
+ }
2383
+ .bds014-buttonGroup.bds014---variant__content .bds014-container {
2384
+ justify-content: flex-start;
2385
+ align-items: center;
2386
+ }
2387
+ .bds014-buttonGroup.bds014---variant__grid .bds014-container {
2388
+ justify-content: center;
2389
+ }
2390
+ }
2391
+ }
2392
+ }
2393
+
2394
+ /* src/components/layout/Card/Card.module.css */
2395
+ @layer component {
2396
+ .bds014-card {
2397
+ background-color: var(--color_bg);
2398
+ border-radius: var(--border_radius--m);
2399
+ transition: all 0.3s ease;
2400
+ position: relative;
2401
+ }
2402
+ .bds014-card.bds014---default {
2403
+ box-shadow: var(--shadow_s);
2404
+ }
2405
+ .bds014-card.bds014---elevated {
2406
+ box-shadow: var(--shadow_m);
2407
+ }
2408
+ .bds014-card.bds014---outlined {
2409
+ border: 1px solid var(--color_on-bg);
2410
+ box-shadow: var(--shadow_s);
2411
+ }
2412
+ .bds014-card.bds014---clickable {
2413
+ cursor: pointer;
2414
+ }
2415
+ .bds014-card.bds014---padding-none {
2416
+ padding: 0;
2417
+ }
2418
+ .bds014-card.bds014---padding-small {
2419
+ padding: var(--space_s);
2420
+ }
2421
+ .bds014-card.bds014---padding-medium {
2422
+ padding: var(--space_m);
2423
+ }
2424
+ .bds014-card.bds014---padding-large {
2425
+ padding: var(--space_l);
2426
+ }
2427
+ .bds014-card.bds014---text-start {
2428
+ text-align: left;
2429
+ }
2430
+ .bds014-card.bds014---text-center {
2431
+ text-align: center;
2432
+ }
2433
+ .bds014-card.bds014---text-end {
2434
+ text-align: right;
2435
+ }
2436
+ @media (hover: hover) and (pointer: fine) {
2437
+ .bds014-card.bds014---clickable:hover {
2438
+ transform: translateY(-2px);
2439
+ box-shadow: var(--shadow_xl);
2440
+ }
2441
+ .bds014-card.bds014---default:hover {
2442
+ box-shadow: var(--shadow_m);
2443
+ }
2444
+ .bds014-card.bds014---elevated:hover {
2445
+ box-shadow: var(--shadow_2xl);
2446
+ }
2447
+ .bds014-card.bds014---outlined:hover {
2448
+ box-shadow: var(--shadow_s);
2449
+ }
2450
+ }
2451
+ }
2452
+
2453
+ /* src/components/layout/SectionHeader/SectionHeader.module.css */
2454
+ @layer component {
2455
+ .bds014-sectionHeader {
2456
+ display: flex;
2457
+ flex-direction: column;
2458
+ gap: var(--space_m);
2459
+ grid-column: var(--grid_span-100);
2460
+ margin-block-end: var(--space_xl);
2461
+ }
2462
+ .bds014-title {
2463
+ color: var(--sectionHeader-title-color, var(--color_on-bg));
2464
+ margin: 0;
2465
+ font-family: var(--font_family--body);
2466
+ }
2467
+ .bds014-subtitle {
2468
+ color: var(--sectionHeader_subtitle-color, var(--color_grey--strong));
2469
+ margin: 0;
2470
+ font-family: var(--font_family--body);
2471
+ font-weight: var(--font_weight--medium);
2472
+ }
2473
+ .bds014-sectionHeader.bds014---start {
2474
+ align-items: flex-start;
2475
+ text-align: left;
2476
+ }
2477
+ .bds014-sectionHeader.bds014---center {
2478
+ align-items: center;
2479
+ text-align: center;
2480
+ }
2481
+ .bds014-sectionHeader.bds014---end {
2482
+ align-items: flex-end;
2483
+ text-align: right;
2484
+ }
2485
+ .bds014-sectionHeader.bds014---small .bds014-title {
2486
+ font-size: var(--font_size--heading-1);
2487
+ line-height: var(--font_line-height--heading);
2488
+ font-weight: var(--font_weight--bold);
2489
+ }
2490
+ .bds014-sectionHeader.bds014---small .bds014-subtitle {
2491
+ font-size: var(--font_size--body);
2492
+ line-height: 1.4;
2493
+ }
2494
+ .bds014-sectionHeader.bds014---medium .bds014-title {
2495
+ font-size: var(--font_size--display);
2496
+ line-height: var(--font_line-height--display);
2497
+ font-weight: var(--font_weight--bold);
2498
+ }
2499
+ .bds014-sectionHeader.bds014---medium .bds014-subtitle {
2500
+ font-size: var(--font_size--heading-3);
2501
+ line-height: 1.3;
2502
+ }
2503
+ .bds014-sectionHeader.bds014---large .bds014-title {
2504
+ font-size: var(--font_size--display);
2505
+ line-height: var(--font_line-height--display);
2506
+ font-weight: var(--font_weight--bold);
2507
+ letter-spacing: var(--font_tracking--tight);
2508
+ }
2509
+ .bds014-sectionHeader.bds014---large .bds014-subtitle {
2510
+ font-size: var(--font_size--heading-2);
2511
+ line-height: 1.3;
2512
+ font-weight: var(--font_weight--medium);
2513
+ }
2514
+ }
2515
+
2516
+ /* src/components/layout/IconWrapper/IconWrapper.module.css */
2517
+ @layer component {
2518
+ .bds014-wrapper {
2519
+ width: 2em;
2520
+ height: 2em;
2521
+ font-size: 3em;
2522
+ border-radius: 50%;
2523
+ display: flex;
2524
+ align-items: center;
2525
+ justify-content: center;
2526
+ margin: var(--space_l) auto var(--space_m);
2527
+ background: var(--icon-wrapper-color, var(--color_bg));
2528
+ color: var(--color_on-icon-wrapper-color, var(--color_on-bg));
2529
+ fill: var(--color_on-icon-wrapper-color, var(--color_on-bg));
2530
+ position: relative;
2531
+ transition: var(--animation_transition);
2532
+ }
2533
+ .bds014-wrapper svg {
2534
+ fill: currentcolor;
2535
+ }
2536
+ }