arco-clone-react 1.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 ADDED
@@ -0,0 +1,1258 @@
1
+ /* src/components/Stack/Stack.module.css */
2
+ /**
3
+ * Stack Component Styles
4
+ * One-directional flex container with consistent spacing
5
+ */
6
+
7
+ .stack {
8
+ display: flex;
9
+ gap: var(--stack-spacing, 16px);
10
+ }
11
+
12
+ /* Direction */
13
+ .stack--vertical {
14
+ flex-direction: column;
15
+ }
16
+
17
+ .stack--horizontal {
18
+ flex-direction: row;
19
+ }
20
+
21
+ /* Wrap */
22
+ .stack--wrap {
23
+ flex-wrap: wrap;
24
+ }
25
+
26
+ /* Alignment */
27
+ .stack--align-start {
28
+ align-items: start;
29
+ }
30
+
31
+ .stack--align-center {
32
+ align-items: center;
33
+ }
34
+
35
+ .stack--align-end {
36
+ align-items: end;
37
+ }
38
+
39
+ .stack--align-stretch {
40
+ align-items: stretch;
41
+ }
42
+
43
+ .stack--align-baseline {
44
+ align-items: baseline;
45
+ }
46
+
47
+ /* Justify */
48
+ .stack--justify-start {
49
+ justify-content: start;
50
+ }
51
+
52
+ .stack--justify-center {
53
+ justify-content: center;
54
+ }
55
+
56
+ .stack--justify-end {
57
+ justify-content: end;
58
+ }
59
+
60
+ .stack--justify-space-between {
61
+ justify-content: space-between;
62
+ }
63
+
64
+ .stack--justify-space-around {
65
+ justify-content: space-around;
66
+ }
67
+
68
+ .stack--justify-space-evenly {
69
+ justify-content: space-evenly;
70
+ }
71
+
72
+ /* Divider */
73
+ .stackDivider {
74
+ flex-shrink: 0;
75
+ }
76
+
77
+ .stack--vertical .stackDivider {
78
+ width: 100%;
79
+ height: 1px;
80
+ }
81
+
82
+ .stack--horizontal .stackDivider {
83
+ width: 1px;
84
+ height: 100%;
85
+ }
86
+
87
+
88
+ /* src/components/Tabs/Tabs.module.css */
89
+ /* Tabs Component Styles */
90
+
91
+ .tabs {
92
+ display: flex;
93
+ flex-direction: column;
94
+ width: 100%;
95
+ }
96
+
97
+ /* Tab List */
98
+ .tabList {
99
+ display: flex;
100
+ gap: 0;
101
+ margin: 0;
102
+ padding: 0;
103
+ list-style: none;
104
+ }
105
+
106
+ /* Individual Tab */
107
+ .tab {
108
+ position: relative;
109
+ display: flex;
110
+ align-items: center;
111
+ justify-content: center;
112
+ gap: 0.5rem;
113
+ padding: 0.75rem 1rem;
114
+ font-size: 0.875rem;
115
+ font-weight: 500;
116
+ color: var(--color-text-secondary, #666);
117
+ background: transparent;
118
+ border: none;
119
+ cursor: pointer;
120
+ transition: all 0.2s ease;
121
+ white-space: nowrap;
122
+ outline: none;
123
+ }
124
+
125
+ .tab:hover:not(.disabled) {
126
+ color: var(--color-primary, #1890ff);
127
+ background: var(--color-bg-hover, rgba(0, 0, 0, 0.04));
128
+ }
129
+
130
+ .tab:focus-visible {
131
+ outline: 2px solid var(--color-primary, #1890ff);
132
+ outline-offset: -2px;
133
+ z-index: 1;
134
+ }
135
+
136
+ .tab.active {
137
+ color: var(--color-primary, #1890ff);
138
+ /* Removed font-weight change to prevent layout shift */
139
+ /* The color change is sufficient to indicate active state */
140
+ }
141
+
142
+ .tab.disabled {
143
+ color: var(--color-text-disabled, #ccc);
144
+ cursor: not-allowed;
145
+ opacity: 0.5;
146
+ }
147
+
148
+ /* Icon */
149
+ .icon {
150
+ display: inline-flex;
151
+ font-size: 1em;
152
+ }
153
+
154
+ /* Label */
155
+ .label {
156
+ display: inline-flex;
157
+ }
158
+
159
+ /* Content */
160
+ .content {
161
+ padding: 1rem 0;
162
+ min-height: 100px;
163
+ }
164
+
165
+ .content.animated {
166
+ animation: fadeIn 0.3s ease;
167
+ }
168
+
169
+ @keyframes fadeIn {
170
+ from {
171
+ opacity: 0;
172
+ transform: translateY(-4px);
173
+ }
174
+ to {
175
+ opacity: 1;
176
+ transform: translateY(0);
177
+ }
178
+ }
179
+
180
+ /* Variant: Line (default) */
181
+ .tabs.line .tabList {
182
+ border-bottom: 2px solid var(--color-border, #e0e0e0);
183
+ }
184
+
185
+ .tabs.line .tab {
186
+ border-bottom: 2px solid transparent;
187
+ margin-bottom: -2px;
188
+ }
189
+
190
+ .tabs.line .tab.active {
191
+ border-bottom-color: var(--color-primary, #1890ff);
192
+ }
193
+
194
+ /* Variant: Card */
195
+ .tabs.card .tabList {
196
+ gap: 0.25rem;
197
+ background: var(--color-bg, #f5f5f5);
198
+ padding: 0.25rem;
199
+ border-radius: 0.5rem;
200
+ }
201
+
202
+ .tabs.card .tab {
203
+ border-radius: 0.375rem;
204
+ }
205
+
206
+ .tabs.card .tab.active {
207
+ background: var(--color-bg-white, #fff);
208
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
209
+ }
210
+
211
+ /* Variant: Pill */
212
+ .tabs.pill .tabList {
213
+ gap: 0.5rem;
214
+ }
215
+
216
+ .tabs.pill .tab {
217
+ border-radius: 9999px;
218
+ padding: 0.5rem 1.25rem;
219
+ border: 1px solid var(--color-border, #e0e0e0);
220
+ }
221
+
222
+ .tabs.pill .tab.active {
223
+ background: var(--color-primary, #1890ff);
224
+ color: white;
225
+ border-color: var(--color-primary, #1890ff);
226
+ }
227
+
228
+ .tabs.pill .tab.active:hover {
229
+ background: var(--color-primary-dark, #1677d2);
230
+ color: white;
231
+ }
232
+
233
+ /* Size: Small */
234
+ .tabs.small .tab {
235
+ padding: 0.5rem 0.75rem;
236
+ font-size: 0.75rem;
237
+ }
238
+
239
+ .tabs.small .content {
240
+ padding: 0.75rem 0;
241
+ }
242
+
243
+ /* Size: Medium (default) */
244
+ .tabs.medium .tab {
245
+ padding: 0.75rem 1rem;
246
+ font-size: 0.875rem;
247
+ }
248
+
249
+ .tabs.medium .content {
250
+ padding: 1rem 0;
251
+ }
252
+
253
+ /* Size: Large */
254
+ .tabs.large .tab {
255
+ padding: 1rem 1.5rem;
256
+ font-size: 1rem;
257
+ }
258
+
259
+ .tabs.large .content {
260
+ padding: 1.5rem 0;
261
+ }
262
+
263
+ /* Full Width */
264
+ .tabs.fullWidth .tabList {
265
+ display: grid;
266
+ }
267
+
268
+ .tabs.fullWidth .tab {
269
+ flex: 1;
270
+ }
271
+
272
+
273
+ /* src/components/Inline/Inline.module.css */
274
+ /**
275
+ * Inline Component Styles
276
+ * Wrapping flex container for inline content
277
+ */
278
+
279
+ .inline {
280
+ display: flex;
281
+ flex-wrap: wrap;
282
+ gap: var(--inline-spacing, 8px);
283
+ }
284
+
285
+ /* Alignment */
286
+ .inline--align-start {
287
+ align-items: start;
288
+ }
289
+
290
+ .inline--align-center {
291
+ align-items: center;
292
+ }
293
+
294
+ .inline--align-end {
295
+ align-items: end;
296
+ }
297
+
298
+ .inline--align-stretch {
299
+ align-items: stretch;
300
+ }
301
+
302
+ .inline--align-baseline {
303
+ align-items: baseline;
304
+ }
305
+
306
+ /* Justify */
307
+ .inline--justify-start {
308
+ justify-content: start;
309
+ }
310
+
311
+ .inline--justify-center {
312
+ justify-content: center;
313
+ }
314
+
315
+ .inline--justify-end {
316
+ justify-content: end;
317
+ }
318
+
319
+ .inline--justify-space-between {
320
+ justify-content: space-between;
321
+ }
322
+
323
+ .inline--justify-space-around {
324
+ justify-content: space-around;
325
+ }
326
+
327
+ .inline--justify-space-evenly {
328
+ justify-content: space-evenly;
329
+ }
330
+
331
+
332
+ /* src/components/Grid/GridItem.module.css */
333
+ /**
334
+ * GridItem Component Styles
335
+ */
336
+
337
+ .gridItem {
338
+ /* Prevent grid blowout */
339
+ min-width: 0;
340
+ }
341
+
342
+ .gridItem--flex {
343
+ display: flex;
344
+ }
345
+
346
+
347
+ /* src/components/Grid/Grid.module.css */
348
+ /**
349
+ * Grid Component Styles
350
+ * 24-column responsive grid system based on CSS Grid
351
+ */
352
+
353
+ .grid {
354
+ display: grid;
355
+ grid-template-columns: repeat(24, 1fr);
356
+ gap: var(--grid-gutter-row, 0) var(--grid-gutter-col, 0);
357
+ }
358
+
359
+ /* Alignment */
360
+ .grid--align-start {
361
+ align-items: start;
362
+ }
363
+
364
+ .grid--align-center {
365
+ align-items: center;
366
+ }
367
+
368
+ .grid--align-end {
369
+ align-items: end;
370
+ }
371
+
372
+ .grid--align-stretch {
373
+ align-items: stretch;
374
+ }
375
+
376
+ .grid--align-baseline {
377
+ align-items: baseline;
378
+ }
379
+
380
+ /* Justify */
381
+ .grid--justify-start {
382
+ justify-content: start;
383
+ }
384
+
385
+ .grid--justify-center {
386
+ justify-content: center;
387
+ }
388
+
389
+ .grid--justify-end {
390
+ justify-content: end;
391
+ }
392
+
393
+ .grid--justify-space-between {
394
+ justify-content: space-between;
395
+ }
396
+
397
+ .grid--justify-space-around {
398
+ justify-content: space-around;
399
+ }
400
+
401
+ .grid--justify-space-evenly {
402
+ justify-content: space-evenly;
403
+ }
404
+
405
+
406
+ /* src/components/Flex/Flex.module.css */
407
+ /**
408
+ * Flex Component Styles
409
+ * Generic flex container with full control
410
+ */
411
+
412
+ .flex {
413
+ display: flex;
414
+ gap: var(--flex-gap, 0);
415
+ }
416
+
417
+ /* Inline variant */
418
+ .flex--inline {
419
+ display: inline-flex;
420
+ }
421
+
422
+ /* Direction */
423
+ .flex--row {
424
+ flex-direction: row;
425
+ }
426
+
427
+ .flex--row-reverse {
428
+ flex-direction: row-reverse;
429
+ }
430
+
431
+ .flex--column {
432
+ flex-direction: column;
433
+ }
434
+
435
+ .flex--column-reverse {
436
+ flex-direction: column-reverse;
437
+ }
438
+
439
+ /* Wrap */
440
+ .flex--nowrap {
441
+ flex-wrap: nowrap;
442
+ }
443
+
444
+ .flex--wrap {
445
+ flex-wrap: wrap;
446
+ }
447
+
448
+ .flex--wrap-reverse {
449
+ flex-wrap: wrap-reverse;
450
+ }
451
+
452
+ /* Alignment */
453
+ .flex--align-start {
454
+ align-items: start;
455
+ }
456
+
457
+ .flex--align-center {
458
+ align-items: center;
459
+ }
460
+
461
+ .flex--align-end {
462
+ align-items: end;
463
+ }
464
+
465
+ .flex--align-stretch {
466
+ align-items: stretch;
467
+ }
468
+
469
+ .flex--align-baseline {
470
+ align-items: baseline;
471
+ }
472
+
473
+ /* Justify */
474
+ .flex--justify-start {
475
+ justify-content: start;
476
+ }
477
+
478
+ .flex--justify-center {
479
+ justify-content: center;
480
+ }
481
+
482
+ .flex--justify-end {
483
+ justify-content: end;
484
+ }
485
+
486
+ .flex--justify-space-between {
487
+ justify-content: space-between;
488
+ }
489
+
490
+ .flex--justify-space-around {
491
+ justify-content: space-around;
492
+ }
493
+
494
+ .flex--justify-space-evenly {
495
+ justify-content: space-evenly;
496
+ }
497
+
498
+
499
+ /* src/components/Collapse/Collapse.module.css */
500
+ /**
501
+ * Collapse Component Styles
502
+ *
503
+ * Styling for Collapse component with smooth animations.
504
+ */
505
+
506
+ .collapse {
507
+ display: block;
508
+ background-color: #ffffff;
509
+ overflow: hidden;
510
+ }
511
+
512
+ .bordered {
513
+ border: 1px solid #e5e6eb;
514
+ border-radius: 4px;
515
+ }
516
+
517
+ .disabled {
518
+ opacity: 0.6;
519
+ cursor: not-allowed;
520
+ }
521
+
522
+ /* Header */
523
+ .header {
524
+ display: flex;
525
+ align-items: center;
526
+ gap: 8px;
527
+ cursor: pointer;
528
+ user-select: none;
529
+ transition: background-color 0.2s ease;
530
+ font-family:
531
+ 'Nunito Sans',
532
+ -apple-system,
533
+ BlinkMacSystemFont,
534
+ 'Segoe UI',
535
+ Roboto,
536
+ sans-serif;
537
+ font-weight: 600;
538
+ color: #1d2129;
539
+ }
540
+
541
+ .header:hover:not(.disabled .header) {
542
+ background-color: #f7f8fa;
543
+ }
544
+
545
+ .header:focus-visible {
546
+ outline: 2px solid #165dff;
547
+ outline-offset: -2px;
548
+ }
549
+
550
+ .disabled .header {
551
+ cursor: not-allowed;
552
+ }
553
+
554
+ /* Sizes */
555
+ .small .header {
556
+ padding: 8px 12px;
557
+ font-size: 12px;
558
+ }
559
+
560
+ .medium .header {
561
+ padding: 12px 16px;
562
+ font-size: 14px;
563
+ }
564
+
565
+ .large .header {
566
+ padding: 16px 20px;
567
+ font-size: 16px;
568
+ }
569
+
570
+ /* Icon */
571
+ .icon {
572
+ display: inline-flex;
573
+ align-items: center;
574
+ justify-content: center;
575
+ width: 16px;
576
+ height: 16px;
577
+ font-size: 10px;
578
+ color: #86909c;
579
+ transition: transform 0.3s ease;
580
+ flex-shrink: 0;
581
+ }
582
+
583
+ .expanded .icon {
584
+ transform: rotate(0deg);
585
+ }
586
+
587
+ .header:not(.expanded) .icon {
588
+ transform: rotate(-90deg);
589
+ }
590
+
591
+ /* Header content */
592
+ .headerContent {
593
+ flex: 1;
594
+ }
595
+
596
+ /* Content */
597
+ .content {
598
+ height: 0;
599
+ overflow: hidden;
600
+ transition: height 0.3s ease;
601
+ }
602
+
603
+ .contentExpanded {
604
+ overflow: visible;
605
+ }
606
+
607
+ .contentInner {
608
+ padding: 0 16px 16px 16px;
609
+ color: #4e5969;
610
+ font-family:
611
+ 'Nunito Sans',
612
+ -apple-system,
613
+ BlinkMacSystemFont,
614
+ 'Segoe UI',
615
+ Roboto,
616
+ sans-serif;
617
+ }
618
+
619
+ .small .contentInner {
620
+ padding: 0 12px 8px 12px;
621
+ font-size: 12px;
622
+ }
623
+
624
+ .medium .contentInner {
625
+ padding: 0 16px 12px 16px;
626
+ font-size: 14px;
627
+ }
628
+
629
+ .large .contentInner {
630
+ padding: 0 20px 16px 20px;
631
+ font-size: 16px;
632
+ }
633
+
634
+
635
+ /* src/components/Carousel/Carousel.module.css */
636
+ /* Carousel Component Styles */
637
+
638
+ .carousel {
639
+ position: relative;
640
+ width: 100%;
641
+ overflow: hidden;
642
+ user-select: none;
643
+ }
644
+
645
+ /* Items Container */
646
+ .itemsContainer {
647
+ display: flex;
648
+ width: 100%;
649
+ will-change: transform;
650
+ user-select: none;
651
+ -webkit-user-drag: none;
652
+ }
653
+
654
+ .itemsContainer.animated {
655
+ transition: transform 0.3s ease;
656
+ }
657
+
658
+ /* Individual Item */
659
+ .item {
660
+ flex: 0 0 100%;
661
+ width: 100%;
662
+ min-width: 100%;
663
+ display: flex;
664
+ align-items: center;
665
+ justify-content: center;
666
+ }
667
+
668
+ /* Navigation Arrows */
669
+ .arrow {
670
+ position: absolute;
671
+ top: 50%;
672
+ transform: translateY(-50%);
673
+ z-index: 10;
674
+ display: flex;
675
+ align-items: center;
676
+ justify-content: center;
677
+ padding: 0.75rem;
678
+ background: rgba(255, 255, 255, 0.9);
679
+ border: none;
680
+ border-radius: 50%;
681
+ cursor: pointer;
682
+ transition: all 0.2s ease;
683
+ color: var(--color-text-primary, #333);
684
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
685
+ }
686
+
687
+ .arrow:hover:not(:disabled) {
688
+ background: rgba(255, 255, 255, 1);
689
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
690
+ transform: translateY(-50%) scale(1.05);
691
+ }
692
+
693
+ .arrow:focus-visible {
694
+ outline: 2px solid var(--color-primary, #1890ff);
695
+ outline-offset: 2px;
696
+ }
697
+
698
+ .arrow:active:not(:disabled) {
699
+ transform: translateY(-50%) scale(0.95);
700
+ }
701
+
702
+ .arrow:disabled {
703
+ opacity: 0.3;
704
+ cursor: not-allowed;
705
+ background: rgba(255, 255, 255, 0.6);
706
+ box-shadow: none;
707
+ }
708
+
709
+ .arrowPrev {
710
+ left: 1rem;
711
+ }
712
+
713
+ .arrowNext {
714
+ right: 1rem;
715
+ }
716
+
717
+ /* Dots Indicators */
718
+ .dots {
719
+ position: absolute;
720
+ bottom: 1rem;
721
+ left: 50%;
722
+ transform: translateX(-50%);
723
+ z-index: 10;
724
+ display: flex;
725
+ gap: 0.5rem;
726
+ padding: 0.5rem 1rem;
727
+ background: rgba(0, 0, 0, 0.4);
728
+ border-radius: 9999px;
729
+ backdrop-filter: blur(4px);
730
+ }
731
+
732
+ .dot {
733
+ width: 0.5rem;
734
+ height: 0.5rem;
735
+ padding: 0;
736
+ background: rgba(255, 255, 255, 0.5);
737
+ border: none;
738
+ border-radius: 50%;
739
+ cursor: pointer;
740
+ transition: all 0.2s ease;
741
+ }
742
+
743
+ .dot:hover {
744
+ background: rgba(255, 255, 255, 0.8);
745
+ transform: scale(1.2);
746
+ }
747
+
748
+ .dot:focus-visible {
749
+ outline: 2px solid var(--color-primary, #1890ff);
750
+ outline-offset: 2px;
751
+ }
752
+
753
+ .dotActive {
754
+ background: white;
755
+ width: 1.5rem;
756
+ border-radius: 0.25rem;
757
+ }
758
+
759
+ /* Size: Small */
760
+ .carousel.small {
761
+ min-height: 200px;
762
+ }
763
+
764
+ .carousel.small .arrow {
765
+ padding: 0.5rem;
766
+ }
767
+
768
+ .carousel.small .arrow svg {
769
+ width: 16px;
770
+ height: 16px;
771
+ }
772
+
773
+ .carousel.small .arrowPrev {
774
+ left: 0.5rem;
775
+ }
776
+
777
+ .carousel.small .arrowNext {
778
+ right: 0.5rem;
779
+ }
780
+
781
+ .carousel.small .dots {
782
+ bottom: 0.5rem;
783
+ padding: 0.375rem 0.75rem;
784
+ }
785
+
786
+ .carousel.small .dot {
787
+ width: 0.375rem;
788
+ height: 0.375rem;
789
+ }
790
+
791
+ .carousel.small .dotActive {
792
+ width: 1rem;
793
+ }
794
+
795
+ /* Size: Medium (default) */
796
+ .carousel.medium {
797
+ min-height: 300px;
798
+ }
799
+
800
+ .carousel.medium .arrow {
801
+ padding: 0.75rem;
802
+ }
803
+
804
+ .carousel.medium .arrow svg {
805
+ width: 24px;
806
+ height: 24px;
807
+ }
808
+
809
+ .carousel.medium .arrowPrev {
810
+ left: 1rem;
811
+ }
812
+
813
+ .carousel.medium .arrowNext {
814
+ right: 1rem;
815
+ }
816
+
817
+ .carousel.medium .dots {
818
+ bottom: 1rem;
819
+ padding: 0.5rem 1rem;
820
+ }
821
+
822
+ .carousel.medium .dot {
823
+ width: 0.5rem;
824
+ height: 0.5rem;
825
+ }
826
+
827
+ .carousel.medium .dotActive {
828
+ width: 1.5rem;
829
+ }
830
+
831
+ /* Size: Large */
832
+ .carousel.large {
833
+ min-height: 400px;
834
+ }
835
+
836
+ .carousel.large .arrow {
837
+ padding: 1rem;
838
+ }
839
+
840
+ .carousel.large .arrow svg {
841
+ width: 32px;
842
+ height: 32px;
843
+ }
844
+
845
+ .carousel.large .arrowPrev {
846
+ left: 1.5rem;
847
+ }
848
+
849
+ .carousel.large .arrowNext {
850
+ right: 1.5rem;
851
+ }
852
+
853
+ .carousel.large .dots {
854
+ bottom: 1.5rem;
855
+ padding: 0.625rem 1.25rem;
856
+ }
857
+
858
+ .carousel.large .dot {
859
+ width: 0.625rem;
860
+ height: 0.625rem;
861
+ }
862
+
863
+ .carousel.large .dotActive {
864
+ width: 2rem;
865
+ }
866
+
867
+ /* Responsive adjustments */
868
+ @media (max-width: 768px) {
869
+ .arrow {
870
+ padding: 0.5rem;
871
+ }
872
+
873
+ .arrow svg {
874
+ width: 20px;
875
+ height: 20px;
876
+ }
877
+
878
+ .arrowPrev {
879
+ left: 0.5rem !important;
880
+ }
881
+
882
+ .arrowNext {
883
+ right: 0.5rem !important;
884
+ }
885
+
886
+ .dots {
887
+ bottom: 0.5rem !important;
888
+ padding: 0.375rem 0.75rem !important;
889
+ }
890
+
891
+ .dot {
892
+ width: 0.375rem !important;
893
+ height: 0.375rem !important;
894
+ }
895
+
896
+ .dotActive {
897
+ width: 1rem !important;
898
+ }
899
+ }
900
+
901
+
902
+ /* src/components/Button/Button.module.css */
903
+ /**
904
+ * Button Component Styles
905
+ *
906
+ * Styling for Button component with variants and sizes.
907
+ */
908
+
909
+ .button {
910
+ display: inline-flex;
911
+ align-items: center;
912
+ justify-content: center;
913
+ gap: 8px;
914
+ font-weight: 600;
915
+ border-radius: 4px;
916
+ border: 1px solid transparent;
917
+ cursor: pointer;
918
+ transition: all 0.2s ease;
919
+ font-family:
920
+ 'Nunito Sans',
921
+ -apple-system,
922
+ BlinkMacSystemFont,
923
+ 'Segoe UI',
924
+ Roboto,
925
+ sans-serif;
926
+ white-space: nowrap;
927
+ user-select: none;
928
+ }
929
+
930
+ .button:focus-visible {
931
+ outline: 2px solid #165dff;
932
+ outline-offset: 2px;
933
+ }
934
+
935
+ /* Sizes */
936
+ .small {
937
+ height: 28px;
938
+ padding: 0 12px;
939
+ font-size: 12px;
940
+ line-height: 26px;
941
+ }
942
+
943
+ .medium {
944
+ height: 36px;
945
+ padding: 0 16px;
946
+ font-size: 14px;
947
+ line-height: 34px;
948
+ }
949
+
950
+ .large {
951
+ height: 44px;
952
+ padding: 0 20px;
953
+ font-size: 16px;
954
+ line-height: 42px;
955
+ }
956
+
957
+ /* Full width */
958
+ .fullWidth {
959
+ width: 100%;
960
+ }
961
+
962
+ /* Disabled state */
963
+ .button:disabled {
964
+ cursor: not-allowed;
965
+ opacity: 0.5;
966
+ }
967
+
968
+ /* Loading state */
969
+ .loading {
970
+ pointer-events: none;
971
+ opacity: 0.7;
972
+ }
973
+
974
+ /* Variants - Primary */
975
+ .primary {
976
+ background-color: #165dff;
977
+ color: #ffffff;
978
+ border-color: #165dff;
979
+ }
980
+
981
+ .primary:hover:not(:disabled) {
982
+ background-color: #4080ff;
983
+ border-color: #4080ff;
984
+ }
985
+
986
+ .primary:active:not(:disabled) {
987
+ background-color: #0e42d2;
988
+ border-color: #0e42d2;
989
+ }
990
+
991
+ /* Variants - Secondary */
992
+ .secondary {
993
+ background-color: #ffffff;
994
+ color: #1d2129;
995
+ border-color: #c9cdd4;
996
+ }
997
+
998
+ .secondary:hover:not(:disabled) {
999
+ background-color: #f7f8fa;
1000
+ border-color: #a9aeb8;
1001
+ }
1002
+
1003
+ .secondary:active:not(:disabled) {
1004
+ background-color: #f2f3f5;
1005
+ border-color: #86909c;
1006
+ }
1007
+
1008
+ /* Variants - Success */
1009
+ .success {
1010
+ background-color: #00b42a;
1011
+ color: #ffffff;
1012
+ border-color: #00b42a;
1013
+ }
1014
+
1015
+ .success:hover:not(:disabled) {
1016
+ background-color: #23c343;
1017
+ border-color: #23c343;
1018
+ }
1019
+
1020
+ .success:active:not(:disabled) {
1021
+ background-color: #009a29;
1022
+ border-color: #009a29;
1023
+ }
1024
+
1025
+ /* Variants - Warning */
1026
+ .warning {
1027
+ background-color: #ff7d00;
1028
+ color: #ffffff;
1029
+ border-color: #ff7d00;
1030
+ }
1031
+
1032
+ .warning:hover:not(:disabled) {
1033
+ background-color: #ff9a2e;
1034
+ border-color: #ff9a2e;
1035
+ }
1036
+
1037
+ .warning:active:not(:disabled) {
1038
+ background-color: #d25f00;
1039
+ border-color: #d25f00;
1040
+ }
1041
+
1042
+ /* Variants - Danger */
1043
+ .danger {
1044
+ background-color: #f53f3f;
1045
+ color: #ffffff;
1046
+ border-color: #f53f3f;
1047
+ }
1048
+
1049
+ .danger:hover:not(:disabled) {
1050
+ background-color: #f76560;
1051
+ border-color: #f76560;
1052
+ }
1053
+
1054
+ .danger:active:not(:disabled) {
1055
+ background-color: #cb272d;
1056
+ border-color: #cb272d;
1057
+ }
1058
+
1059
+ /* Variants - Ghost */
1060
+ .ghost {
1061
+ background-color: transparent;
1062
+ color: #4e5969;
1063
+ border-color: transparent;
1064
+ }
1065
+
1066
+ .ghost:hover:not(:disabled) {
1067
+ background-color: #f2f3f5;
1068
+ }
1069
+
1070
+ .ghost:active:not(:disabled) {
1071
+ background-color: #e5e6eb;
1072
+ }
1073
+
1074
+ /* Loading spinner */
1075
+ .spinner {
1076
+ display: inline-block;
1077
+ width: 14px;
1078
+ height: 14px;
1079
+ border: 2px solid currentColor;
1080
+ border-radius: 50%;
1081
+ border-top-color: transparent;
1082
+ animation: spin 0.6s linear infinite;
1083
+ }
1084
+
1085
+ @keyframes spin {
1086
+ to {
1087
+ transform: rotate(360deg);
1088
+ }
1089
+ }
1090
+
1091
+
1092
+ /* src/components/Badge/Badge.module.css */
1093
+ /**
1094
+ * Badge Component Styles
1095
+ *
1096
+ * Styling for Badge component with variants and sizes.
1097
+ */
1098
+
1099
+ .badge {
1100
+ display: inline-flex;
1101
+ align-items: center;
1102
+ justify-content: center;
1103
+ font-weight: 600;
1104
+ border-radius: 12px;
1105
+ white-space: nowrap;
1106
+ transition: all 0.2s ease;
1107
+ font-family:
1108
+ 'Nunito Sans',
1109
+ -apple-system,
1110
+ BlinkMacSystemFont,
1111
+ 'Segoe UI',
1112
+ Roboto,
1113
+ sans-serif;
1114
+ }
1115
+
1116
+ /* Sizes */
1117
+ .small {
1118
+ padding: 0 6px;
1119
+ height: 18px;
1120
+ font-size: 10px;
1121
+ line-height: 18px;
1122
+ }
1123
+
1124
+ .medium {
1125
+ padding: 0 8px;
1126
+ height: 22px;
1127
+ font-size: 12px;
1128
+ line-height: 22px;
1129
+ }
1130
+
1131
+ .large {
1132
+ padding: 0 12px;
1133
+ height: 28px;
1134
+ font-size: 14px;
1135
+ line-height: 28px;
1136
+ }
1137
+
1138
+ /* Dot variant */
1139
+ .dot {
1140
+ padding: 0;
1141
+ width: 8px;
1142
+ height: 8px;
1143
+ border-radius: 50%;
1144
+ }
1145
+
1146
+ .dot.small {
1147
+ width: 6px;
1148
+ height: 6px;
1149
+ }
1150
+
1151
+ .dot.medium {
1152
+ width: 8px;
1153
+ height: 8px;
1154
+ }
1155
+
1156
+ .dot.large {
1157
+ width: 10px;
1158
+ height: 10px;
1159
+ }
1160
+
1161
+ /* Variants - Default */
1162
+ .default {
1163
+ background-color: #f2f3f5;
1164
+ color: #4e5969;
1165
+ border: 1px solid #e5e6eb;
1166
+ }
1167
+
1168
+ /* Variants - Primary */
1169
+ .primary {
1170
+ background-color: #e8f3ff;
1171
+ color: #165dff;
1172
+ border: 1px solid #bedaff;
1173
+ }
1174
+
1175
+ /* Variants - Success */
1176
+ .success {
1177
+ background-color: #e8ffea;
1178
+ color: #00b42a;
1179
+ border: 1px solid #aff0b5;
1180
+ }
1181
+
1182
+ /* Variants - Warning */
1183
+ .warning {
1184
+ background-color: #fff7e8;
1185
+ color: #ff7d00;
1186
+ border: 1px solid #ffcf8b;
1187
+ }
1188
+
1189
+ /* Variants - Danger */
1190
+ .danger {
1191
+ background-color: #ffece8;
1192
+ color: #f53f3f;
1193
+ border: 1px solid #ffb9aa;
1194
+ }
1195
+
1196
+
1197
+ /* src/components/Container/Container.module.css */
1198
+ /**
1199
+ * Container Component Styles
1200
+ * Responsive container with max-widths at each breakpoint
1201
+ */
1202
+
1203
+ .container {
1204
+ width: 100%;
1205
+ margin-left: auto;
1206
+ margin-right: auto;
1207
+ max-width: var(--container-max-width, 100%);
1208
+ }
1209
+
1210
+ /* Padded variant */
1211
+ .container--padded {
1212
+ padding-left: var(--container-padding, 16px);
1213
+ padding-right: var(--container-padding, 16px);
1214
+ }
1215
+
1216
+ /* Fluid variant - no max-width */
1217
+ .container--fluid {
1218
+ max-width: none;
1219
+ }
1220
+
1221
+ /* Responsive max-widths (when not fluid) */
1222
+ @media (min-width: 576px) {
1223
+ .container:not(.container--fluid) {
1224
+ max-width: 540px;
1225
+ }
1226
+ }
1227
+
1228
+ @media (min-width: 768px) {
1229
+ .container:not(.container--fluid) {
1230
+ max-width: 720px;
1231
+ }
1232
+ }
1233
+
1234
+ @media (min-width: 992px) {
1235
+ .container:not(.container--fluid) {
1236
+ max-width: 960px;
1237
+ }
1238
+ }
1239
+
1240
+ @media (min-width: 1200px) {
1241
+ .container:not(.container--fluid) {
1242
+ max-width: 1152px;
1243
+ }
1244
+ }
1245
+
1246
+ @media (min-width: 1600px) {
1247
+ .container:not(.container--fluid) {
1248
+ max-width: 1536px;
1249
+ }
1250
+ }
1251
+
1252
+ @media (min-width: 2000px) {
1253
+ .container:not(.container--fluid) {
1254
+ max-width: 1920px;
1255
+ }
1256
+ }
1257
+
1258
+