@moto-nrw/design-system 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css DELETED
@@ -1,1550 +0,0 @@
1
- /* src/components/Accordion/Accordion.module.css */
2
- .accordion {
3
- border-top: 1px solid var(--semantic-color-border-default);
4
- }
5
- .trigger {
6
- display: flex;
7
- width: 100%;
8
- align-items: center;
9
- justify-content: space-between;
10
- padding: 12px 20px;
11
- border: none;
12
- background: none;
13
- font-family: var(--font-family-sans);
14
- font-size: var(--font-size-sm);
15
- font-weight: var(--font-weight-medium);
16
- color: var(--semantic-color-text-secondary);
17
- cursor: pointer;
18
- transition: color 150ms ease;
19
- }
20
- .trigger:hover {
21
- color: var(--semantic-color-text-default);
22
- }
23
- .label {
24
- display: flex;
25
- align-items: center;
26
- gap: 8px;
27
- }
28
- .badge {
29
- display: inline-flex;
30
- }
31
- .chevron {
32
- flex-shrink: 0;
33
- color: var(--semantic-color-text-muted);
34
- transition: transform 200ms ease;
35
- }
36
- .chevronOpen {
37
- transform: rotate(180deg);
38
- }
39
- .content {
40
- display: grid;
41
- transition: grid-template-rows 200ms ease;
42
- }
43
- .contentOpen {
44
- grid-template-rows: 1fr;
45
- }
46
- .contentClosed {
47
- grid-template-rows: 0fr;
48
- }
49
- .contentInner {
50
- overflow: hidden;
51
- }
52
-
53
- /* src/components/Alert/Alert.module.css */
54
- .alert {
55
- display: flex;
56
- align-items: center;
57
- gap: var(--spacing-2);
58
- padding: var(--spacing-3) var(--spacing-4);
59
- border-radius: var(--radius-md);
60
- border: 1px solid transparent;
61
- font-family: var(--font-family-sans);
62
- font-size: var(--font-size-sm);
63
- box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
64
- }
65
- .icon {
66
- flex-shrink: 0;
67
- display: flex;
68
- }
69
- .error {
70
- background-color: var(--semantic-color-feedback-error-light);
71
- color: var(--color-red-600);
72
- border-color: var(--color-red-400);
73
- }
74
- .success {
75
- background-color: var(--semantic-color-brand-primary-light);
76
- color: var(--color-sage-700);
77
- border-color: var(--color-sage-300);
78
- }
79
- .warning {
80
- background-color: var(--semantic-color-brand-secondary-light);
81
- color: var(--color-warm-700);
82
- border-color: var(--color-warm-300);
83
- }
84
- .info {
85
- background-color: var(--semantic-color-bg-muted);
86
- color: var(--color-steel-700);
87
- border-color: var(--color-steel-300);
88
- }
89
-
90
- /* src/components/Avatar/Avatar.module.css */
91
- .avatar {
92
- position: relative;
93
- display: flex;
94
- flex-shrink: 0;
95
- align-items: center;
96
- justify-content: center;
97
- overflow: hidden;
98
- border-radius: 9999px;
99
- background:
100
- linear-gradient(
101
- 135deg,
102
- var(--color-steel-800),
103
- var(--color-steel-500));
104
- color: var(--semantic-color-text-inverse);
105
- font-family: var(--font-family-sans);
106
- font-weight: var(--font-weight-semibold);
107
- }
108
- .sm {
109
- width: 32px;
110
- height: 32px;
111
- font-size: var(--font-size-sm);
112
- box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
113
- outline: 2px solid white;
114
- outline-offset: -2px;
115
- }
116
- .md {
117
- width: 44px;
118
- height: 44px;
119
- font-size: var(--font-size-base);
120
- box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
121
- }
122
- .lg {
123
- width: 64px;
124
- height: 64px;
125
- font-size: var(--font-size-xl);
126
- box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
127
- }
128
- .image {
129
- width: 100%;
130
- height: 100%;
131
- object-fit: cover;
132
- }
133
- .initials {
134
- user-select: none;
135
- }
136
-
137
- /* src/components/Badge/Badge.module.css */
138
- .badge {
139
- display: inline-flex;
140
- align-items: center;
141
- border-radius: 9999px;
142
- border: 1px solid var(--semantic-color-border-default);
143
- background-color: var(--semantic-color-bg-subtle);
144
- font-family: var(--font-family-sans);
145
- }
146
- .sm {
147
- padding: 6px 8px;
148
- gap: 6px;
149
- }
150
- .md {
151
- padding: 6px 12px;
152
- gap: 8px;
153
- }
154
- .icon {
155
- display: flex;
156
- color: var(--semantic-color-text-muted);
157
- }
158
- .count {
159
- font-size: var(--font-size-sm);
160
- font-weight: var(--font-weight-semibold);
161
- color: var(--semantic-color-text-default);
162
- }
163
- .label {
164
- font-size: var(--font-size-xs);
165
- color: var(--semantic-color-text-muted);
166
- }
167
-
168
- /* src/components/Button/Button.module.css */
169
- .button {
170
- display: inline-flex;
171
- align-items: center;
172
- justify-content: center;
173
- gap: var(--spacing-2);
174
- border: 1px solid transparent;
175
- border-radius: var(--radius-md);
176
- font-family: var(--font-family-sans);
177
- font-weight: var(--font-weight-medium);
178
- cursor: pointer;
179
- transition:
180
- background-color 150ms ease,
181
- border-color 150ms ease,
182
- box-shadow 150ms ease,
183
- color 150ms ease,
184
- transform 150ms ease;
185
- }
186
- .button:focus-visible {
187
- outline: none;
188
- }
189
- .button:disabled {
190
- opacity: 0.5;
191
- cursor: not-allowed;
192
- }
193
- .primary {
194
- background-color: var(--color-steel-900);
195
- color: var(--semantic-color-text-inverse);
196
- box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
197
- }
198
- .primary:hover:not(:disabled) {
199
- background-color: var(--color-steel-700);
200
- box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
201
- }
202
- .secondary {
203
- background-color: var(--color-steel-200);
204
- color: var(--color-steel-800);
205
- box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
206
- }
207
- .secondary:hover:not(:disabled) {
208
- background-color: var(--color-steel-300);
209
- box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
210
- }
211
- .outline {
212
- background-color: transparent;
213
- color: var(--color-steel-700);
214
- border-color: var(--semantic-color-border-strong);
215
- }
216
- .outline:hover:not(:disabled) {
217
- background-color: var(--semantic-color-bg-subtle);
218
- border-color: var(--color-steel-400);
219
- }
220
- .outline_danger {
221
- background-color: var(--color-red-50);
222
- color: var(--color-red-600);
223
- border-color: var(--color-red-400);
224
- }
225
- .outline_danger:hover:not(:disabled) {
226
- background-color: var(--semantic-color-feedback-error-light);
227
- border-color: var(--color-red-500);
228
- }
229
- .danger {
230
- background-color: var(--color-red-600);
231
- color: var(--semantic-color-text-inverse);
232
- box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
233
- }
234
- .danger:hover:not(:disabled) {
235
- background-color: var(--color-red-500);
236
- box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
237
- }
238
- .success {
239
- background-color: var(--semantic-color-brand-primary);
240
- color: var(--semantic-color-text-inverse);
241
- box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
242
- }
243
- .success:hover:not(:disabled) {
244
- background-color: var(--semantic-color-brand-primary-hover);
245
- box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
246
- }
247
- .success:active:not(:disabled) {
248
- transform: scale(0.95);
249
- }
250
- .ghost {
251
- background-color: transparent;
252
- color: var(--semantic-color-text-default);
253
- }
254
- .ghost:hover:not(:disabled) {
255
- background-color: var(--semantic-color-bg-muted);
256
- }
257
- .sm {
258
- padding: var(--spacing-1) var(--spacing-3);
259
- font-size: var(--font-size-sm);
260
- line-height: var(--font-line-height-normal);
261
- }
262
- .md {
263
- padding: var(--spacing-2) var(--spacing-5);
264
- font-size: var(--font-size-base);
265
- line-height: var(--font-line-height-normal);
266
- }
267
- .lg {
268
- padding: var(--spacing-3) var(--spacing-5);
269
- font-size: var(--font-size-lg);
270
- line-height: var(--font-line-height-normal);
271
- }
272
- .xl {
273
- padding: var(--spacing-3) var(--spacing-6);
274
- font-size: var(--font-size-xl);
275
- line-height: var(--font-line-height-normal);
276
- }
277
-
278
- /* src/components/Card/Card.module.css */
279
- .card {
280
- position: relative;
281
- overflow: hidden;
282
- border-radius: 24px;
283
- background-color: var(--semantic-color-bg-default);
284
- transition:
285
- transform 150ms ease,
286
- box-shadow 150ms ease,
287
- border-color 150ms ease,
288
- background-color 150ms ease;
289
- }
290
- .default {
291
- border: 1px solid var(--semantic-color-border-default);
292
- }
293
- .elevated {
294
- border: 1px solid rgb(0 0 0 / 0.05);
295
- background-color: rgb(255 255 255 / 0.9);
296
- box-shadow: 0 8px 30px rgb(0 0 0 / 0.12);
297
- backdrop-filter: blur(12px);
298
- }
299
- .glass {
300
- background-color: rgb(255 255 255 / 0.8);
301
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
302
- backdrop-filter: blur(12px);
303
- }
304
- .hoverable {
305
- cursor: pointer;
306
- border: 1px solid rgb(0 0 0 / 0.05);
307
- background-color: rgb(255 255 255 / 0.9);
308
- box-shadow: 0 8px 30px rgb(0 0 0 / 0.12);
309
- backdrop-filter: blur(12px);
310
- }
311
- .hoverable:hover {
312
- transform: translateY(-2px);
313
- border-color: rgb(148 163 184 / 0.5);
314
- background-color: rgb(255 255 255);
315
- box-shadow: 0 12px 40px rgb(0 0 0 / 0.18);
316
- }
317
- .hoverable:active {
318
- transform: scale(0.98);
319
- }
320
- .gradientOverlay {
321
- position: absolute;
322
- inset: 0;
323
- border-radius: 24px;
324
- background:
325
- linear-gradient(
326
- to bottom right,
327
- rgb(248 250 252 / 0.8),
328
- rgb(241 245 249 / 0.8));
329
- opacity: 0.03;
330
- pointer-events: none;
331
- }
332
- .innerGlow {
333
- position: absolute;
334
- inset: 1px;
335
- border-radius: 24px;
336
- background:
337
- linear-gradient(
338
- to bottom right,
339
- rgb(255 255 255 / 0.8),
340
- rgb(255 255 255 / 0.2));
341
- pointer-events: none;
342
- }
343
- .ringHighlight {
344
- position: absolute;
345
- inset: 0;
346
- border-radius: 24px;
347
- box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.2);
348
- transition: box-shadow 150ms ease;
349
- pointer-events: none;
350
- }
351
- .hoverable:hover .ringHighlight {
352
- box-shadow: inset 0 0 0 1px rgb(148 163 184 / 0.4);
353
- }
354
- .glowBorder {
355
- position: absolute;
356
- inset: 0;
357
- border-radius: 24px;
358
- background:
359
- linear-gradient(
360
- to right,
361
- transparent,
362
- rgb(148 163 184 / 0.2),
363
- transparent);
364
- opacity: 0;
365
- transition: opacity 150ms ease;
366
- pointer-events: none;
367
- }
368
- .hoverable:hover .glowBorder {
369
- opacity: 1;
370
- }
371
- .cardContent {
372
- position: relative;
373
- }
374
- .padding-sm {
375
- padding: var(--spacing-4);
376
- }
377
- .padding-md {
378
- padding: var(--spacing-6);
379
- }
380
- .padding-lg {
381
- padding: var(--spacing-10);
382
- }
383
-
384
- /* src/components/Checkbox/Checkbox.module.css */
385
- .wrapper {
386
- display: flex;
387
- align-items: center;
388
- gap: 12px;
389
- padding: 6px 8px;
390
- border-radius: var(--radius-md);
391
- cursor: pointer;
392
- transition: background-color 150ms ease;
393
- }
394
- .wrapper:hover {
395
- background-color: var(--semantic-color-bg-subtle);
396
- }
397
- .input {
398
- width: 16px;
399
- height: 16px;
400
- border-radius: var(--radius-sm);
401
- border: 1px solid var(--semantic-color-border-strong);
402
- accent-color: var(--color-steel-900);
403
- cursor: pointer;
404
- }
405
- .input:disabled {
406
- opacity: 0.5;
407
- cursor: not-allowed;
408
- }
409
- .label {
410
- font-family: var(--font-family-sans);
411
- font-size: var(--font-size-sm);
412
- color: var(--semantic-color-text-default);
413
- user-select: none;
414
- }
415
-
416
- /* src/components/Divider/Divider.module.css */
417
- .divider {
418
- border: none;
419
- border-top: 1px solid var(--semantic-color-border-default);
420
- }
421
- .labeled {
422
- display: flex;
423
- align-items: center;
424
- gap: 16px;
425
- }
426
- .line {
427
- flex: 1;
428
- border: none;
429
- border-top: 1px solid var(--semantic-color-border-default);
430
- }
431
- .label {
432
- font-family: var(--font-family-sans);
433
- font-size: var(--font-size-xs);
434
- font-weight: var(--font-weight-medium);
435
- color: var(--semantic-color-text-muted);
436
- white-space: nowrap;
437
- }
438
- .sm {
439
- margin: var(--spacing-2) 0;
440
- }
441
- .md {
442
- margin: var(--spacing-4) 0;
443
- }
444
- .lg {
445
- margin: var(--spacing-8) 0;
446
- }
447
-
448
- /* src/components/DropdownMenu/DropdownMenu.module.css */
449
- .trigger {
450
- display: flex;
451
- align-items: center;
452
- justify-content: center;
453
- padding: 4px;
454
- border: none;
455
- border-radius: var(--radius-md);
456
- background: none;
457
- color: var(--semantic-color-text-muted);
458
- cursor: pointer;
459
- transition: background-color 150ms ease, color 150ms ease;
460
- }
461
- .trigger:hover {
462
- background-color: var(--semantic-color-bg-muted);
463
- color: var(--semantic-color-text-secondary);
464
- }
465
- .dotsIcon {
466
- width: 20px;
467
- height: 20px;
468
- }
469
- .menu {
470
- position: fixed;
471
- z-index: 9999;
472
- width: 144px;
473
- padding: 4px;
474
- border: 1px solid var(--semantic-color-border-default);
475
- border-radius: var(--radius-md);
476
- background-color: var(--semantic-color-bg-default);
477
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
478
- }
479
- .menuItem {
480
- display: flex;
481
- width: 100%;
482
- align-items: center;
483
- padding: 6px 12px;
484
- border: none;
485
- border-radius: var(--radius-sm);
486
- background: none;
487
- font-family: var(--font-family-sans);
488
- font-size: var(--font-size-sm);
489
- color: var(--color-steel-700);
490
- text-align: left;
491
- cursor: pointer;
492
- transition: background-color 150ms ease;
493
- }
494
- .menuItem:hover {
495
- background-color: var(--semantic-color-bg-muted);
496
- }
497
- .menuItemDanger {
498
- color: var(--color-red-600);
499
- }
500
- .menuItemDanger:hover {
501
- background-color: var(--semantic-color-feedback-error-light);
502
- }
503
-
504
- /* src/components/FilterChips/FilterChips.module.css */
505
- .wrapper {
506
- display: flex;
507
- align-items: center;
508
- justify-content: space-between;
509
- }
510
- .chips {
511
- display: flex;
512
- flex-wrap: wrap;
513
- gap: 8px;
514
- }
515
- .chip {
516
- display: inline-flex;
517
- align-items: center;
518
- gap: 4px;
519
- padding: 4px 12px;
520
- border-radius: 9999px;
521
- background-color: var(--semantic-color-brand-primary-light);
522
- font-family: var(--font-family-sans);
523
- font-size: var(--font-size-xs);
524
- font-weight: var(--font-weight-medium);
525
- color: var(--color-sage-900);
526
- }
527
- .removeButton {
528
- display: flex;
529
- padding: 0;
530
- border: none;
531
- background: none;
532
- color: inherit;
533
- cursor: pointer;
534
- transition: color 150ms ease;
535
- }
536
- .removeButton:hover {
537
- color: var(--color-sage-700);
538
- }
539
- .clearAll {
540
- padding: 0;
541
- border: none;
542
- background: none;
543
- font-family: var(--font-family-sans);
544
- font-size: var(--font-size-xs);
545
- font-weight: var(--font-weight-medium);
546
- color: var(--semantic-color-brand-primary);
547
- cursor: pointer;
548
- white-space: nowrap;
549
- transition: color 150ms ease;
550
- }
551
- .clearAll:hover {
552
- color: var(--semantic-color-brand-primary-hover);
553
- }
554
-
555
- /* src/components/Input/Input.module.css */
556
- .wrapper {
557
- display: flex;
558
- flex-direction: column;
559
- gap: var(--spacing-2);
560
- }
561
- .label {
562
- font-family: var(--font-family-sans);
563
- font-size: var(--font-size-sm);
564
- font-weight: var(--font-weight-medium);
565
- color: var(--semantic-color-text-default);
566
- }
567
- .container {
568
- position: relative;
569
- }
570
- .input {
571
- display: block;
572
- width: 100%;
573
- border: 1px solid var(--semantic-color-border-default);
574
- border-radius: var(--radius-md);
575
- background-color: var(--semantic-color-bg-default);
576
- padding: var(--spacing-3) var(--spacing-4);
577
- font-family: var(--font-family-sans);
578
- font-size: var(--font-size-base);
579
- color: var(--semantic-color-text-default);
580
- box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
581
- transition: border-color 150ms ease, box-shadow 150ms ease;
582
- }
583
- .input::placeholder {
584
- color: var(--semantic-color-text-muted);
585
- }
586
- .input:focus {
587
- outline: none;
588
- border-color: var(--semantic-color-border-strong);
589
- }
590
- .input:disabled {
591
- opacity: 0.5;
592
- cursor: not-allowed;
593
- background-color: var(--semantic-color-bg-subtle);
594
- }
595
- .input.hasToggle {
596
- padding-right: var(--spacing-10);
597
- }
598
- .input.error {
599
- border-color: var(--color-red-500);
600
- }
601
- .toggle {
602
- position: absolute;
603
- top: 50%;
604
- right: var(--spacing-3);
605
- transform: translateY(-50%);
606
- display: flex;
607
- align-items: center;
608
- justify-content: center;
609
- padding: 0;
610
- border: none;
611
- background: none;
612
- color: var(--semantic-color-text-muted);
613
- cursor: pointer;
614
- transition: color 150ms ease;
615
- }
616
- .toggle:hover {
617
- color: var(--semantic-color-text-default);
618
- }
619
- .errorText {
620
- font-family: var(--font-family-sans);
621
- font-size: var(--font-size-xs);
622
- color: var(--color-red-600);
623
- margin: 0;
624
- }
625
-
626
- /* src/components/Modal/Modal.module.css */
627
- .overlay {
628
- position: fixed;
629
- inset: 0;
630
- z-index: 9999;
631
- display: flex;
632
- align-items: center;
633
- justify-content: center;
634
- }
635
- .backdrop {
636
- position: absolute;
637
- inset: 0;
638
- border: none;
639
- padding: 0;
640
- cursor: default;
641
- background-color: rgb(0 0 0 / 0);
642
- transition: background-color 150ms ease-out;
643
- }
644
- .backdropVisible {
645
- background-color: rgb(0 0 0 / 0.4);
646
- }
647
- .dialog {
648
- position: relative;
649
- width: calc(100% - 2rem);
650
- max-width: 32rem;
651
- max-height: calc(100vh - 4rem);
652
- margin: 0 1rem;
653
- overflow: hidden;
654
- border-radius: var(--radius-xl);
655
- border: 1px solid var(--semantic-color-border-default);
656
- background:
657
- linear-gradient(
658
- 135deg,
659
- rgb(255 255 255 / 0.95) 0%,
660
- rgb(248 250 252 / 0.98) 100%);
661
- backdrop-filter: blur(20px);
662
- box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25), 0 8px 16px -8px rgb(0 0 0 / 0.1);
663
- }
664
- .dialogEnter {
665
- animation: modalEnter 250ms ease-out both;
666
- }
667
- .dialogExit {
668
- animation: modalExit 200ms ease-in both;
669
- }
670
- @keyframes modalEnter {
671
- from {
672
- opacity: 0;
673
- transform: scale(0.95) translateY(8px);
674
- }
675
- to {
676
- opacity: 1;
677
- transform: scale(1) translateY(0);
678
- }
679
- }
680
- @keyframes modalExit {
681
- from {
682
- opacity: 1;
683
- transform: scale(1) translateY(0);
684
- }
685
- to {
686
- opacity: 0;
687
- transform: scale(0.95) translateY(8px);
688
- }
689
- }
690
- .header {
691
- display: flex;
692
- align-items: center;
693
- justify-content: space-between;
694
- padding: var(--spacing-4) var(--spacing-6);
695
- border-bottom: 1px solid var(--color-steel-100);
696
- }
697
- .title {
698
- font-family: var(--font-family-sans);
699
- font-size: var(--font-size-lg);
700
- font-weight: var(--font-weight-semibold);
701
- color: var(--semantic-color-text-default);
702
- margin: 0;
703
- padding-right: var(--spacing-4);
704
- }
705
- .closeAbsolute {
706
- position: absolute;
707
- top: var(--spacing-4);
708
- right: var(--spacing-4);
709
- z-index: 10;
710
- }
711
- .closeButton {
712
- display: flex;
713
- align-items: center;
714
- justify-content: center;
715
- flex-shrink: 0;
716
- width: 36px;
717
- height: 36px;
718
- padding: 0;
719
- border: none;
720
- border-radius: var(--radius-lg);
721
- background: none;
722
- color: var(--semantic-color-text-muted);
723
- cursor: pointer;
724
- transition:
725
- background-color 150ms ease,
726
- color 150ms ease,
727
- transform 150ms ease;
728
- }
729
- .closeButton:hover {
730
- background-color: var(--semantic-color-bg-muted);
731
- color: var(--semantic-color-text-default);
732
- transform: scale(1.05);
733
- }
734
- .closeButton:active {
735
- transform: scale(0.95);
736
- }
737
- .closeIcon {
738
- transition: transform 150ms ease;
739
- }
740
- .closeButton:hover .closeIcon {
741
- transform: rotate(90deg);
742
- }
743
- .content {
744
- padding: var(--spacing-4) var(--spacing-6);
745
- overflow-y: auto;
746
- max-height: calc(100vh - 8rem);
747
- color: var(--semantic-color-text-default);
748
- font-family: var(--font-family-sans);
749
- line-height: 1.6;
750
- opacity: 0;
751
- }
752
- .contentVisible {
753
- animation: contentReveal 300ms ease-out 50ms both;
754
- }
755
- @keyframes contentReveal {
756
- from {
757
- opacity: 0;
758
- transform: translateY(4px);
759
- }
760
- to {
761
- opacity: 1;
762
- transform: translateY(0);
763
- }
764
- }
765
- .footer {
766
- display: flex;
767
- justify-content: flex-end;
768
- gap: var(--spacing-3);
769
- padding: var(--spacing-4) var(--spacing-6);
770
- border-top: 1px solid var(--color-steel-100);
771
- background-color: rgb(249 250 251 / 0.5);
772
- }
773
- .cancelButton {
774
- flex: 1;
775
- padding: var(--spacing-2) var(--spacing-4);
776
- border: 1px solid var(--semantic-color-border-strong);
777
- border-radius: var(--radius-md);
778
- background: none;
779
- font-family: var(--font-family-sans);
780
- font-size: var(--font-size-sm);
781
- font-weight: var(--font-weight-medium);
782
- color: var(--color-steel-700);
783
- white-space: nowrap;
784
- cursor: pointer;
785
- transition:
786
- background-color 150ms ease,
787
- border-color 150ms ease,
788
- transform 150ms ease,
789
- box-shadow 150ms ease;
790
- }
791
- .cancelButton:hover {
792
- background-color: var(--semantic-color-bg-subtle);
793
- border-color: var(--color-steel-400);
794
- transform: scale(1.05);
795
- box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
796
- }
797
- .cancelButton:active {
798
- transform: scale(1);
799
- }
800
- .confirmButton {
801
- flex: 1;
802
- padding: var(--spacing-2) var(--spacing-4);
803
- border: none;
804
- border-radius: var(--radius-md);
805
- font-family: var(--font-family-sans);
806
- font-size: var(--font-size-sm);
807
- font-weight: var(--font-weight-medium);
808
- color: var(--semantic-color-text-inverse);
809
- white-space: nowrap;
810
- cursor: pointer;
811
- transition: transform 150ms ease, box-shadow 150ms ease;
812
- }
813
- .confirmButton:hover:not(:disabled) {
814
- transform: scale(1.05);
815
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
816
- }
817
- .confirmButton:active:not(:disabled) {
818
- transform: scale(1);
819
- }
820
- .confirmButton:disabled {
821
- opacity: 0.5;
822
- cursor: not-allowed;
823
- }
824
- .confirmButton:disabled:hover {
825
- transform: none;
826
- }
827
- .confirmPrimary {
828
- background-color: var(--color-steel-900);
829
- }
830
- .confirmDanger {
831
- background-color: var(--color-red-600);
832
- }
833
- .confirmLoading {
834
- display: flex;
835
- align-items: center;
836
- justify-content: center;
837
- gap: var(--spacing-2);
838
- }
839
- .confirmSpinner {
840
- width: 16px;
841
- height: 16px;
842
- animation: spin 0.7s linear infinite;
843
- }
844
- @keyframes spin {
845
- to {
846
- transform: rotate(360deg);
847
- }
848
- }
849
-
850
- /* src/components/Pill/Pill.module.css */
851
- .pill {
852
- display: inline-flex;
853
- align-items: center;
854
- border-radius: 9999px;
855
- font-family: var(--font-family-sans);
856
- font-weight: var(--font-weight-bold);
857
- white-space: nowrap;
858
- }
859
- .sm {
860
- padding: 2px 8px;
861
- font-size: 11px;
862
- }
863
- .md {
864
- padding: 6px 12px;
865
- font-size: var(--font-size-xs);
866
- }
867
- .lg {
868
- padding: 8px 16px;
869
- font-size: var(--font-size-sm);
870
- }
871
- .dot {
872
- border-radius: 9999px;
873
- background-color: currentColor;
874
- opacity: 0.8;
875
- }
876
- .dot-sm {
877
- width: 4px;
878
- height: 4px;
879
- margin-right: 6px;
880
- }
881
- .dot-md {
882
- width: 6px;
883
- height: 6px;
884
- margin-right: 8px;
885
- }
886
- .dot-lg {
887
- width: 8px;
888
- height: 8px;
889
- margin-right: 10px;
890
- }
891
- .solid-red {
892
- background-color: var(--color-red-450);
893
- color: var(--semantic-color-text-inverse);
894
- }
895
- .solid-green {
896
- background-color: var(--semantic-color-brand-primary);
897
- color: var(--semantic-color-text-inverse);
898
- }
899
- .solid-blue {
900
- background-color: var(--color-steel-600);
901
- color: var(--semantic-color-text-inverse);
902
- }
903
- .solid-orange {
904
- background-color: var(--color-warm-400);
905
- color: var(--semantic-color-text-inverse);
906
- }
907
- .solid-purple {
908
- background-color: var(--color-steel-500);
909
- color: var(--semantic-color-text-inverse);
910
- }
911
- .solid-gray {
912
- background-color: var(--color-steel-400);
913
- color: var(--semantic-color-text-inverse);
914
- }
915
- .subtle-red {
916
- background-color: var(--semantic-color-feedback-error-light);
917
- color: var(--color-red-600);
918
- }
919
- .subtle-green {
920
- background-color: var(--semantic-color-brand-primary-light);
921
- color: var(--color-sage-700);
922
- }
923
- .subtle-blue {
924
- background-color: var(--semantic-color-bg-muted);
925
- color: var(--color-steel-700);
926
- }
927
- .subtle-orange {
928
- background-color: var(--semantic-color-brand-secondary-light);
929
- color: var(--color-warm-700);
930
- }
931
- .subtle-purple {
932
- background-color: var(--semantic-color-bg-muted);
933
- color: var(--color-steel-600);
934
- }
935
- .subtle-gray {
936
- background-color: var(--semantic-color-bg-muted);
937
- color: var(--semantic-color-text-secondary);
938
- }
939
-
940
- /* src/components/Radio/Radio.module.css */
941
- .wrapper {
942
- display: flex;
943
- align-items: center;
944
- gap: 10px;
945
- padding: 6px 8px;
946
- border-radius: var(--radius-md);
947
- cursor: pointer;
948
- transition: background-color 150ms ease;
949
- }
950
- .wrapper:hover {
951
- background-color: var(--semantic-color-bg-subtle);
952
- }
953
- .input {
954
- width: 16px;
955
- height: 16px;
956
- border-radius: 9999px;
957
- border: 1px solid var(--semantic-color-border-strong);
958
- accent-color: var(--color-steel-900);
959
- cursor: pointer;
960
- }
961
- .input:disabled {
962
- opacity: 0.5;
963
- cursor: not-allowed;
964
- }
965
- .label {
966
- font-family: var(--font-family-sans);
967
- font-size: var(--font-size-sm);
968
- color: var(--semantic-color-text-default);
969
- user-select: none;
970
- }
971
-
972
- /* src/components/SearchBar/SearchBar.module.css */
973
- .wrapper {
974
- position: relative;
975
- }
976
- .searchIcon {
977
- position: absolute;
978
- top: 50%;
979
- left: 12px;
980
- transform: translateY(-50%);
981
- color: var(--semantic-color-text-muted);
982
- }
983
- .icon-sm {
984
- width: 16px;
985
- height: 16px;
986
- }
987
- .icon-md {
988
- width: 16px;
989
- height: 16px;
990
- }
991
- .icon-lg {
992
- width: 20px;
993
- height: 20px;
994
- }
995
- .input {
996
- width: 100%;
997
- border: 1px solid var(--semantic-color-border-default);
998
- border-radius: 16px;
999
- background-color: var(--semantic-color-bg-default);
1000
- color: var(--semantic-color-text-default);
1001
- font-family: var(--font-family-sans);
1002
- transition: border-color 150ms ease;
1003
- }
1004
- .input::placeholder {
1005
- color: var(--semantic-color-text-muted);
1006
- }
1007
- .input:focus {
1008
- outline: none;
1009
- border-color: var(--semantic-color-border-strong);
1010
- }
1011
- .sm {
1012
- padding: 8px 12px 8px 36px;
1013
- font-size: var(--font-size-sm);
1014
- }
1015
- .md {
1016
- padding: 10px 40px 10px 36px;
1017
- font-size: var(--font-size-sm);
1018
- }
1019
- .lg {
1020
- padding: 12px 40px 12px 40px;
1021
- font-size: var(--font-size-base);
1022
- }
1023
- .clearButton {
1024
- position: absolute;
1025
- top: 50%;
1026
- right: 8px;
1027
- transform: translateY(-50%);
1028
- display: flex;
1029
- align-items: center;
1030
- justify-content: center;
1031
- padding: 4px;
1032
- border: none;
1033
- border-radius: 9999px;
1034
- background: none;
1035
- cursor: pointer;
1036
- transition: background-color 150ms ease;
1037
- }
1038
- .clearButton:hover {
1039
- background-color: var(--semantic-color-bg-muted);
1040
- }
1041
- .clearIcon {
1042
- color: var(--semantic-color-text-muted);
1043
- }
1044
-
1045
- /* src/components/Select/Select.module.css */
1046
- .wrapper {
1047
- display: flex;
1048
- flex-direction: column;
1049
- gap: var(--spacing-1);
1050
- }
1051
- .label {
1052
- font-family: var(--font-family-sans);
1053
- font-size: var(--font-size-sm);
1054
- font-weight: var(--font-weight-medium);
1055
- color: var(--semantic-color-text-default);
1056
- }
1057
- .container {
1058
- position: relative;
1059
- }
1060
- .select {
1061
- width: 100%;
1062
- appearance: none;
1063
- border: 1px solid var(--semantic-color-border-default);
1064
- border-radius: var(--radius-md);
1065
- background-color: var(--semantic-color-bg-default);
1066
- padding: var(--spacing-2) var(--spacing-10) var(--spacing-2) var(--spacing-3);
1067
- font-family: var(--font-family-sans);
1068
- font-size: var(--font-size-base);
1069
- color: var(--semantic-color-text-default);
1070
- cursor: pointer;
1071
- transition: border-color 150ms ease, box-shadow 150ms ease;
1072
- }
1073
- .select:focus {
1074
- outline: none;
1075
- border-color: var(--semantic-color-border-strong);
1076
- }
1077
- .select:disabled {
1078
- opacity: 0.5;
1079
- cursor: not-allowed;
1080
- }
1081
- .chevron {
1082
- position: absolute;
1083
- top: 0;
1084
- right: 0;
1085
- bottom: 0;
1086
- display: flex;
1087
- align-items: center;
1088
- padding-right: var(--spacing-3);
1089
- color: var(--semantic-color-text-muted);
1090
- pointer-events: none;
1091
- }
1092
-
1093
- /* src/components/Skeleton/Skeleton.module.css */
1094
- .skeleton {
1095
- background:
1096
- linear-gradient(
1097
- 90deg,
1098
- var(--semantic-color-bg-muted) 25%,
1099
- var(--semantic-color-bg-subtle) 50%,
1100
- var(--semantic-color-bg-muted) 75%);
1101
- background-size: 200% 100%;
1102
- animation: wave 1.5s ease-in-out infinite;
1103
- }
1104
- .group {
1105
- display: flex;
1106
- flex-direction: column;
1107
- }
1108
- @keyframes wave {
1109
- 0% {
1110
- background-position: 200% 0;
1111
- }
1112
- 100% {
1113
- background-position: -200% 0;
1114
- }
1115
- }
1116
-
1117
- /* src/components/Spinner/Spinner.module.css */
1118
- .wrapper {
1119
- display: flex;
1120
- flex-direction: column;
1121
- align-items: center;
1122
- gap: var(--spacing-3);
1123
- }
1124
- .svg {
1125
- animation: spin 0.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
1126
- }
1127
- .label {
1128
- font-family: var(--font-family-sans);
1129
- font-size: var(--font-size-sm);
1130
- color: var(--semantic-color-text-muted);
1131
- margin: 0;
1132
- }
1133
- .srOnly {
1134
- position: absolute;
1135
- width: 1px;
1136
- height: 1px;
1137
- padding: 0;
1138
- margin: -1px;
1139
- overflow: hidden;
1140
- clip: rect(0, 0, 0, 0);
1141
- white-space: nowrap;
1142
- border: 0;
1143
- }
1144
- @keyframes spin {
1145
- to {
1146
- transform: rotate(360deg);
1147
- }
1148
- }
1149
-
1150
- /* src/components/StatusDot/StatusDot.module.css */
1151
- .dot {
1152
- flex-shrink: 0;
1153
- border-radius: 9999px;
1154
- }
1155
- .sm {
1156
- width: 10px;
1157
- height: 10px;
1158
- }
1159
- .md {
1160
- width: 12px;
1161
- height: 12px;
1162
- }
1163
- .green {
1164
- background-color: var(--semantic-color-brand-primary);
1165
- }
1166
- .yellow {
1167
- background-color: var(--color-warm-400);
1168
- }
1169
- .red {
1170
- background-color: var(--color-red-500);
1171
- }
1172
- .gray {
1173
- background-color: var(--color-steel-400);
1174
- }
1175
- .pulse {
1176
- animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
1177
- }
1178
- @keyframes pulse {
1179
- 0%, 100% {
1180
- opacity: 1;
1181
- }
1182
- 50% {
1183
- opacity: 0.5;
1184
- }
1185
- }
1186
-
1187
- /* src/components/Tabs/Tabs.module.css */
1188
- .wrapper {
1189
- position: relative;
1190
- }
1191
- .tabsContainer {
1192
- position: relative;
1193
- }
1194
- .hiddenMobile {
1195
- display: none;
1196
- }
1197
- @media (min-width: 768px) {
1198
- .hiddenMobile {
1199
- display: block;
1200
- }
1201
- }
1202
- .scrollable {
1203
- position: relative;
1204
- display: flex;
1205
- gap: 32px;
1206
- overflow-x: auto;
1207
- scrollbar-width: none;
1208
- }
1209
- .scrollable::-webkit-scrollbar {
1210
- display: none;
1211
- }
1212
- .tab {
1213
- position: relative;
1214
- padding: 0 0 12px;
1215
- border: none;
1216
- background: none;
1217
- font-family: var(--font-family-sans);
1218
- font-size: var(--font-size-sm);
1219
- font-weight: var(--font-weight-medium);
1220
- cursor: pointer;
1221
- transition: color 150ms ease;
1222
- white-space: nowrap;
1223
- }
1224
- .tabActive {
1225
- color: var(--semantic-color-text-default);
1226
- font-weight: var(--font-weight-semibold);
1227
- }
1228
- .tabInactive {
1229
- color: var(--semantic-color-text-muted);
1230
- }
1231
- .tabInactive:hover {
1232
- color: var(--color-steel-700);
1233
- }
1234
- .tabLabel {
1235
- white-space: nowrap;
1236
- }
1237
- .indicator {
1238
- position: absolute;
1239
- bottom: 0;
1240
- height: 2px;
1241
- border-radius: 9999px;
1242
- background-color: var(--color-steel-900);
1243
- transition: left 300ms ease-out, width 300ms ease-out;
1244
- }
1245
- .fadeLeft {
1246
- position: absolute;
1247
- top: 0;
1248
- bottom: 0;
1249
- left: 0;
1250
- z-index: 10;
1251
- width: 24px;
1252
- background:
1253
- linear-gradient(
1254
- to right,
1255
- white,
1256
- transparent);
1257
- pointer-events: none;
1258
- }
1259
- .fadeRight {
1260
- position: absolute;
1261
- top: 0;
1262
- right: 0;
1263
- bottom: 0;
1264
- z-index: 10;
1265
- width: 24px;
1266
- background:
1267
- linear-gradient(
1268
- to left,
1269
- white,
1270
- transparent);
1271
- pointer-events: none;
1272
- }
1273
- .mobileDropdown {
1274
- position: relative;
1275
- }
1276
- @media (min-width: 768px) {
1277
- .mobileDropdown {
1278
- display: none;
1279
- }
1280
- }
1281
- .mobileToggle {
1282
- display: flex;
1283
- align-items: center;
1284
- gap: 8px;
1285
- padding: 10px 16px;
1286
- border: none;
1287
- border-radius: var(--radius-lg);
1288
- background-color: var(--semantic-color-bg-default);
1289
- font-family: var(--font-family-sans);
1290
- font-size: var(--font-size-base);
1291
- font-weight: var(--font-weight-semibold);
1292
- color: var(--semantic-color-text-default);
1293
- box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
1294
- cursor: pointer;
1295
- transition: background-color 150ms ease;
1296
- }
1297
- .mobileToggleOpen {
1298
- background-color: var(--semantic-color-bg-subtle);
1299
- }
1300
- .mobileChevron {
1301
- flex-shrink: 0;
1302
- color: var(--semantic-color-text-muted);
1303
- transition: transform 150ms ease;
1304
- }
1305
- .mobileChevronOpen {
1306
- transform: rotate(180deg);
1307
- }
1308
- .mobileMenu {
1309
- position: absolute;
1310
- top: 100%;
1311
- left: 0;
1312
- z-index: 50;
1313
- margin-top: 4px;
1314
- min-width: 192px;
1315
- border: 1px solid var(--semantic-color-border-default);
1316
- border-radius: var(--radius-lg);
1317
- background-color: var(--semantic-color-bg-default);
1318
- padding: 4px 0;
1319
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
1320
- }
1321
- .mobileMenuItem {
1322
- display: block;
1323
- width: 100%;
1324
- padding: 10px 16px;
1325
- border: none;
1326
- background: none;
1327
- text-align: left;
1328
- font-family: var(--font-family-sans);
1329
- font-size: var(--font-size-base);
1330
- color: var(--semantic-color-text-secondary);
1331
- cursor: pointer;
1332
- transition: background-color 150ms ease;
1333
- }
1334
- .mobileMenuItem:hover {
1335
- background-color: var(--semantic-color-bg-subtle);
1336
- }
1337
- .mobileMenuItemActive {
1338
- background-color: var(--semantic-color-bg-subtle);
1339
- font-weight: var(--font-weight-semibold);
1340
- color: var(--semantic-color-text-default);
1341
- }
1342
-
1343
- /* src/components/Textarea/Textarea.module.css */
1344
- .wrapper {
1345
- display: flex;
1346
- flex-direction: column;
1347
- gap: var(--spacing-2);
1348
- }
1349
- .label {
1350
- font-family: var(--font-family-sans);
1351
- font-size: var(--font-size-sm);
1352
- font-weight: var(--font-weight-medium);
1353
- color: var(--semantic-color-text-default);
1354
- }
1355
- .textarea {
1356
- display: block;
1357
- width: 100%;
1358
- resize: vertical;
1359
- border: 1px solid var(--semantic-color-border-default);
1360
- border-radius: var(--radius-md);
1361
- background-color: var(--semantic-color-bg-default);
1362
- padding: var(--spacing-2) var(--spacing-3);
1363
- font-family: var(--font-family-sans);
1364
- font-size: var(--font-size-sm);
1365
- color: var(--semantic-color-text-default);
1366
- transition: border-color 150ms ease;
1367
- }
1368
- .textarea::placeholder {
1369
- color: var(--semantic-color-text-muted);
1370
- }
1371
- .textarea:focus {
1372
- outline: none;
1373
- border-color: var(--semantic-color-border-strong);
1374
- }
1375
- .textarea:disabled {
1376
- opacity: 0.5;
1377
- cursor: not-allowed;
1378
- background-color: var(--semantic-color-bg-subtle);
1379
- }
1380
- .textarea.error {
1381
- border-color: var(--color-red-500);
1382
- }
1383
- .errorText {
1384
- font-family: var(--font-family-sans);
1385
- font-size: var(--font-size-xs);
1386
- color: var(--color-red-600);
1387
- margin: 0;
1388
- }
1389
-
1390
- /* src/components/Toast/Toast.module.css */
1391
- .container {
1392
- position: fixed;
1393
- top: 24px;
1394
- right: 24px;
1395
- z-index: 99999;
1396
- pointer-events: none;
1397
- }
1398
- .toast {
1399
- display: flex;
1400
- align-items: center;
1401
- gap: 10px;
1402
- padding: 12px 16px;
1403
- border-radius: var(--radius-lg);
1404
- background-color: var(--semantic-color-bg-default);
1405
- border: 1px solid var(--semantic-color-border-default);
1406
- box-shadow: 0 10px 25px -5px rgb(0 0 0 / 0.15);
1407
- font-family: var(--font-family-sans);
1408
- font-size: var(--font-size-sm);
1409
- color: var(--semantic-color-text-default);
1410
- pointer-events: auto;
1411
- max-width: 400px;
1412
- }
1413
- .enter {
1414
- animation: slideIn 200ms ease-out both;
1415
- }
1416
- .exit {
1417
- animation: slideOut 200ms ease-in both;
1418
- }
1419
- @keyframes slideIn {
1420
- from {
1421
- opacity: 0;
1422
- transform: translateX(100%);
1423
- }
1424
- to {
1425
- opacity: 1;
1426
- transform: translateX(0);
1427
- }
1428
- }
1429
- @keyframes slideOut {
1430
- from {
1431
- opacity: 1;
1432
- transform: translateX(0);
1433
- }
1434
- to {
1435
- opacity: 0;
1436
- transform: translateX(100%);
1437
- }
1438
- }
1439
- .icon {
1440
- display: flex;
1441
- flex-shrink: 0;
1442
- }
1443
- .message {
1444
- flex: 1;
1445
- line-height: 1.4;
1446
- }
1447
- .close {
1448
- display: flex;
1449
- flex-shrink: 0;
1450
- padding: 2px;
1451
- border: none;
1452
- border-radius: var(--radius-sm);
1453
- background: none;
1454
- color: var(--semantic-color-text-muted);
1455
- cursor: pointer;
1456
- transition: color 150ms ease;
1457
- }
1458
- .close:hover {
1459
- color: var(--semantic-color-text-default);
1460
- }
1461
- .success {
1462
- border-left: 3px solid var(--semantic-color-brand-primary);
1463
- }
1464
- .success .icon {
1465
- color: var(--semantic-color-brand-primary);
1466
- }
1467
- .error {
1468
- border-left: 3px solid var(--color-red-500);
1469
- }
1470
- .error .icon {
1471
- color: var(--color-red-500);
1472
- }
1473
- .warning {
1474
- border-left: 3px solid var(--color-warm-400);
1475
- }
1476
- .warning .icon {
1477
- color: var(--color-warm-400);
1478
- }
1479
- .info {
1480
- border-left: 3px solid var(--color-steel-400);
1481
- }
1482
- .info .icon {
1483
- color: var(--color-steel-400);
1484
- }
1485
-
1486
- /* src/components/Toggle/Toggle.module.css */
1487
- .wrapper {
1488
- display: inline-flex;
1489
- align-items: center;
1490
- gap: 10px;
1491
- cursor: pointer;
1492
- }
1493
- .input {
1494
- position: absolute;
1495
- width: 1px;
1496
- height: 1px;
1497
- overflow: hidden;
1498
- clip: rect(0, 0, 0, 0);
1499
- }
1500
- .track {
1501
- position: relative;
1502
- border-radius: 9999px;
1503
- background-color: var(--color-steel-300);
1504
- transition: background-color 150ms ease;
1505
- }
1506
- .sm {
1507
- width: 36px;
1508
- height: 20px;
1509
- }
1510
- .md {
1511
- width: 44px;
1512
- height: 24px;
1513
- }
1514
- .thumb {
1515
- position: absolute;
1516
- top: 2px;
1517
- left: 2px;
1518
- border-radius: 9999px;
1519
- background-color: var(--semantic-color-bg-default);
1520
- box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
1521
- transition: transform 150ms ease, width 150ms ease;
1522
- }
1523
- .sm .thumb {
1524
- width: 16px;
1525
- height: 16px;
1526
- }
1527
- .md .thumb {
1528
- width: 20px;
1529
- height: 20px;
1530
- }
1531
- .input:checked + .track {
1532
- background-color: var(--semantic-color-brand-primary);
1533
- }
1534
- .input:checked + .sm .thumb {
1535
- transform: translateX(16px);
1536
- }
1537
- .input:checked + .md .thumb {
1538
- transform: translateX(20px);
1539
- }
1540
- .input:disabled + .track {
1541
- opacity: 0.5;
1542
- cursor: not-allowed;
1543
- }
1544
- .label {
1545
- font-family: var(--font-family-sans);
1546
- font-size: var(--font-size-sm);
1547
- color: var(--semantic-color-text-default);
1548
- user-select: none;
1549
- }
1550
- /*# sourceMappingURL=index.css.map */