@zelelo/iskra-ui 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css ADDED
@@ -0,0 +1,1240 @@
1
+ /* src/components/Accordion/Accordion.module.css */
2
+ .Accordion_accordion {
3
+ display: flex;
4
+ flex-direction: column;
5
+ width: 100%;
6
+ border-radius: var(--uikit-radius-md);
7
+ border: 1px solid var(--uikit-color-border);
8
+ overflow: hidden;
9
+ }
10
+ .Accordion_item {
11
+ border-bottom: 1px solid var(--uikit-color-border);
12
+ }
13
+ .Accordion_item:last-child {
14
+ border-bottom: none;
15
+ }
16
+ .Accordion_item.Accordion_disabled {
17
+ opacity: 0.5;
18
+ }
19
+ .Accordion_header {
20
+ margin: 0;
21
+ }
22
+ .Accordion_trigger {
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: space-between;
26
+ width: 100%;
27
+ padding: 16px;
28
+ background-color: transparent;
29
+ border: none;
30
+ font-family: inherit;
31
+ font-size: var(--uikit-font-size-md);
32
+ font-weight: var(--uikit-font-weight-medium);
33
+ color: var(--uikit-color-text);
34
+ cursor: pointer;
35
+ text-align: left;
36
+ transition: background-color 0.2s ease;
37
+ }
38
+ .Accordion_trigger:hover:not(:disabled) {
39
+ background-color: var(--uikit-color-surface-hover);
40
+ }
41
+ .Accordion_trigger:focus-visible {
42
+ outline: 2px solid var(--uikit-color-accent);
43
+ outline-offset: -2px;
44
+ }
45
+ .Accordion_trigger:disabled {
46
+ cursor: not-allowed;
47
+ }
48
+ .Accordion_icon {
49
+ transition: transform 0.2s ease;
50
+ flex-shrink: 0;
51
+ }
52
+ .Accordion_iconOpen {
53
+ transform: rotate(180deg);
54
+ }
55
+ .Accordion_contentWrapper {
56
+ display: grid;
57
+ grid-template-rows: 0fr;
58
+ transition: grid-template-rows 0.3s ease-out;
59
+ }
60
+ .Accordion_contentWrapperOpen {
61
+ grid-template-rows: 1fr;
62
+ }
63
+ .Accordion_contentInner {
64
+ overflow: hidden;
65
+ }
66
+ .Accordion_contentInner > * {
67
+ padding: 0 16px 16px 16px;
68
+ margin: 0;
69
+ font-size: var(--uikit-font-size-sm);
70
+ color: var(--uikit-color-text-muted);
71
+ line-height: 1.5;
72
+ }
73
+
74
+ /* src/components/Alert/Alert.module.css */
75
+ .Alert_alert {
76
+ display: flex;
77
+ align-items: flex-start;
78
+ gap: 12px;
79
+ padding: 12px 16px;
80
+ border-radius: 8px;
81
+ }
82
+ .Alert_content {
83
+ flex: 1;
84
+ min-width: 0;
85
+ }
86
+ .Alert_title {
87
+ font-size: var(--uikit-font-size-lg);
88
+ font-weight: var(--uikit-font-weight-bold);
89
+ margin-bottom: 4px;
90
+ }
91
+ .Alert_description {
92
+ font-size: var(--uikit-font-size-sm);
93
+ line-height: 1.5;
94
+ }
95
+ .Alert_closeButton {
96
+ background: none;
97
+ border: none;
98
+ cursor: pointer;
99
+ font-size: var(--uikit-font-size-xl);
100
+ line-height: 1;
101
+ padding: 0;
102
+ color: inherit;
103
+ opacity: 0.6;
104
+ }
105
+ .Alert_closeButton:hover {
106
+ opacity: 1;
107
+ }
108
+ .Alert_info {
109
+ background-color: var(--uikit-color-info-bg);
110
+ color: var(--uikit-color-info-text);
111
+ }
112
+ .Alert_success {
113
+ background-color: var(--uikit-color-success-bg);
114
+ color: var(--uikit-color-success-text);
115
+ }
116
+ .Alert_warning {
117
+ background-color: var(--uikit-color-warning-bg);
118
+ color: var(--uikit-color-warning-text);
119
+ }
120
+ .Alert_error {
121
+ background-color: var(--uikit-color-error-bg);
122
+ color: var(--uikit-color-error-text);
123
+ }
124
+
125
+ /* src/components/Badge/Badge.module.css */
126
+ .Badge_badge {
127
+ display: inline-flex;
128
+ align-items: center;
129
+ justify-content: center;
130
+ align-self: flex-start;
131
+ flex: none;
132
+ border-radius: 999px;
133
+ }
134
+ .Badge_count {
135
+ padding: 2px 8px;
136
+ font-size: var(--uikit-font-size-xs);
137
+ font-weight: var(--uikit-font-weight-medium);
138
+ line-height: 1.4;
139
+ }
140
+ .Badge_dot {
141
+ width: 8px;
142
+ height: 8px;
143
+ padding: 0;
144
+ }
145
+ .Badge_blue {
146
+ background-color: var(--uikit-color-accent);
147
+ color: var(--uikit-color-text-on-accent);
148
+ }
149
+ .Badge_red {
150
+ background-color: var(--uikit-color-danger);
151
+ color: var(--uikit-color-text-on-accent);
152
+ }
153
+ .Badge_green {
154
+ background-color: var(--uikit-color-success);
155
+ color: var(--uikit-color-text-on-accent);
156
+ }
157
+
158
+ /* src/components/Button/Button.module.css */
159
+ .Button_button {
160
+ box-sizing: border-box;
161
+ display: inline-flex;
162
+ align-items: center;
163
+ justify-content: center;
164
+ gap: 0.5em;
165
+ border: 1px solid transparent;
166
+ border-radius: 6px;
167
+ line-height: 1.2;
168
+ cursor: pointer;
169
+ transition: background-color 0.15s ease, border-color 0.15s ease;
170
+ }
171
+ .Button_button:disabled {
172
+ cursor: not-allowed;
173
+ opacity: 0.5;
174
+ }
175
+ .Button_primary {
176
+ background-color: var(--uikit-color-accent);
177
+ color: var(--uikit-color-text-on-accent);
178
+ }
179
+ .Button_primary:not(:disabled):hover {
180
+ background-color: var(--uikit-color-accent-hover);
181
+ }
182
+ .Button_secondary {
183
+ background-color: var(--uikit-color-surface);
184
+ border-color: var(--uikit-color-border);
185
+ color: var(--uikit-color-text);
186
+ }
187
+ .Button_secondary:not(:disabled):hover {
188
+ background-color: var(--uikit-color-surface-hover);
189
+ }
190
+ .Button_sm {
191
+ height: 32px;
192
+ padding: 0 10px;
193
+ font-size: var(--uikit-font-size-xs);
194
+ font-weight: var(--uikit-font-weight-medium);
195
+ }
196
+ .Button_md {
197
+ height: 40px;
198
+ padding: 0 16px;
199
+ font-size: var(--uikit-font-size-sm);
200
+ font-weight: var(--uikit-font-weight-medium);
201
+ }
202
+ .Button_lg {
203
+ height: 48px;
204
+ padding: 0 20px;
205
+ font-size: var(--uikit-font-size-md);
206
+ font-weight: var(--uikit-font-weight-medium);
207
+ }
208
+
209
+ /* src/components/Checkbox/Checkbox.module.css */
210
+ .Checkbox_sm {
211
+ --checkbox-size: 14px;
212
+ --checkbox-radius: 3px;
213
+ --checkbox-gap: 6px;
214
+ --checkbox-label-size: var(--uikit-font-size-xs);
215
+ --checkbox-message-size: var(--uikit-font-size-2xs);
216
+ }
217
+ .Checkbox_md {
218
+ --checkbox-size: 16px;
219
+ --checkbox-radius: 4px;
220
+ --checkbox-gap: 8px;
221
+ --checkbox-label-size: var(--uikit-font-size-sm);
222
+ --checkbox-message-size: var(--uikit-font-size-xs);
223
+ }
224
+ .Checkbox_lg {
225
+ --checkbox-size: 20px;
226
+ --checkbox-radius: 4px;
227
+ --checkbox-gap: 10px;
228
+ --checkbox-label-size: var(--uikit-font-size-md);
229
+ --checkbox-message-size: var(--uikit-font-size-sm);
230
+ }
231
+ .Checkbox_root {
232
+ display: inline-flex;
233
+ flex-direction: column;
234
+ }
235
+ .Checkbox_label {
236
+ display: inline-flex;
237
+ align-items: center;
238
+ gap: var(--checkbox-gap);
239
+ font-size: var(--checkbox-label-size);
240
+ color: var(--uikit-color-text);
241
+ cursor: pointer;
242
+ }
243
+ .Checkbox_input {
244
+ appearance: none;
245
+ flex: none;
246
+ box-sizing: border-box;
247
+ width: var(--checkbox-size);
248
+ height: var(--checkbox-size);
249
+ margin: 0;
250
+ border: 1.5px solid var(--uikit-color-text-muted);
251
+ border-radius: var(--checkbox-radius);
252
+ background: var(--uikit-color-surface) center / 100% no-repeat;
253
+ cursor: pointer;
254
+ transition: background-color 0.15s ease, border-color 0.15s ease;
255
+ }
256
+ .Checkbox_input:hover:not(:disabled) {
257
+ border-color: var(--uikit-color-accent);
258
+ }
259
+ .Checkbox_input:checked,
260
+ .Checkbox_input:indeterminate {
261
+ border-color: var(--uikit-color-accent);
262
+ background-color: var(--uikit-color-accent);
263
+ }
264
+ .Checkbox_input:checked:hover:not(:disabled),
265
+ .Checkbox_input:indeterminate:hover:not(:disabled) {
266
+ border-color: var(--uikit-color-accent-hover);
267
+ background-color: var(--uikit-color-accent-hover);
268
+ }
269
+ .Checkbox_input:checked {
270
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3.5 8.5 6.5 11.5 12.5 4.5'/%3E%3C/svg%3E");
271
+ }
272
+ .Checkbox_input:indeterminate {
273
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Cline x1='4' y1='8' x2='12' y2='8'/%3E%3C/svg%3E");
274
+ }
275
+ .Checkbox_input:focus-visible {
276
+ outline: none;
277
+ box-shadow: 0 0 0 3px var(--uikit-color-ring-accent);
278
+ }
279
+ .Checkbox_input[aria-invalid=true]:not(:checked):not(:indeterminate) {
280
+ border-color: var(--uikit-color-danger);
281
+ }
282
+ .Checkbox_input[aria-invalid=true]:focus-visible {
283
+ box-shadow: 0 0 0 3px var(--uikit-color-ring-error);
284
+ }
285
+ .Checkbox_disabled {
286
+ opacity: 0.5;
287
+ }
288
+ .Checkbox_disabled .Checkbox_label,
289
+ .Checkbox_disabled .Checkbox_input {
290
+ cursor: not-allowed;
291
+ }
292
+ .Checkbox_required {
293
+ color: var(--uikit-color-danger);
294
+ }
295
+ .Checkbox_error {
296
+ margin: 4px 0 0;
297
+ padding-left: calc(var(--checkbox-size) + var(--checkbox-gap));
298
+ font-size: var(--checkbox-message-size);
299
+ color: var(--uikit-color-danger);
300
+ }
301
+ @media (prefers-reduced-motion: reduce) {
302
+ .Checkbox_input {
303
+ transition: none;
304
+ }
305
+ }
306
+
307
+ /* src/components/Input/Input.module.css */
308
+ .Input_sm {
309
+ --input-height: var(--uikit-input-height-sm);
310
+ --input-font-size: var(--uikit-font-size-xs);
311
+ --input-label-size: var(--uikit-font-size-xs);
312
+ --input-message-size: var(--uikit-font-size-2xs);
313
+ }
314
+ .Input_md {
315
+ --input-height: var(--uikit-input-height-md);
316
+ --input-font-size: var(--uikit-font-size-sm);
317
+ --input-label-size: var(--uikit-font-size-sm);
318
+ --input-message-size: var(--uikit-font-size-xs);
319
+ }
320
+ .Input_lg {
321
+ --input-height: var(--uikit-input-height-lg);
322
+ --input-font-size: var(--uikit-font-size-md);
323
+ --input-label-size: var(--uikit-font-size-md);
324
+ --input-message-size: var(--uikit-font-size-sm);
325
+ }
326
+ .Input_root {
327
+ display: flex;
328
+ flex-direction: column;
329
+ gap: 6px;
330
+ }
331
+ .Input_label {
332
+ font-size: var(--uikit-font-size-sm);
333
+ font-weight: var(--uikit-font-weight-medium);
334
+ color: var(--uikit-color-text);
335
+ font-size: var(--input-label-size);
336
+ }
337
+ .Input_required {
338
+ color: var(--uikit-color-danger);
339
+ }
340
+ .Input_field {
341
+ height: var(--input-height);
342
+ font-size: var(--input-font-size);
343
+ box-sizing: border-box;
344
+ display: flex;
345
+ align-items: center;
346
+ gap: 8px;
347
+ padding: 0 12px;
348
+ border: 1px solid var(--uikit-color-border);
349
+ border-radius: var(--uikit-radius-md);
350
+ background: var(--uikit-color-surface);
351
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
352
+ }
353
+ .Input_field:hover:not(.Input_disabled) {
354
+ border-color: var(--uikit-color-border-hover);
355
+ }
356
+ .Input_field:focus-within {
357
+ border-color: var(--uikit-color-border-focus);
358
+ box-shadow: 0 0 0 3px var(--uikit-color-ring-accent);
359
+ }
360
+ .Input_invalid,
361
+ .Input_invalid:hover:not(.Input_disabled) {
362
+ border-color: var(--uikit-color-danger);
363
+ }
364
+ .Input_invalid:focus-within {
365
+ box-shadow: 0 0 0 3px var(--uikit-color-ring-error);
366
+ }
367
+ .Input_disabled {
368
+ opacity: 0.5;
369
+ cursor: not-allowed;
370
+ }
371
+ .Input_input {
372
+ flex: 1;
373
+ min-width: 0;
374
+ height: 100%;
375
+ padding: 0;
376
+ border: none;
377
+ outline: none;
378
+ background: transparent;
379
+ color: var(--uikit-color-text);
380
+ font: inherit;
381
+ }
382
+ .Input_input::placeholder {
383
+ color: var(--uikit-color-text-placeholder);
384
+ }
385
+ .Input_input:disabled {
386
+ cursor: not-allowed;
387
+ pointer-events: none;
388
+ }
389
+ .Input_icon {
390
+ display: inline-flex;
391
+ flex: none;
392
+ color: var(--uikit-color-text-muted);
393
+ }
394
+ .Input_message {
395
+ margin: 0;
396
+ font-size: var(--input-message-size);
397
+ color: var(--uikit-color-text-muted);
398
+ }
399
+ .Input_error {
400
+ color: var(--uikit-color-danger);
401
+ }
402
+
403
+ /* src/components/Modal/Modal.module.css */
404
+ body:has(.Modal_modal[open]) {
405
+ overflow: hidden;
406
+ }
407
+ .Modal_modal {
408
+ width: calc(100% - 32px);
409
+ max-height: calc(100dvh - 32px);
410
+ padding: 0;
411
+ border: none;
412
+ border-radius: var(--uikit-radius-lg);
413
+ background: var(--uikit-color-surface);
414
+ color: var(--uikit-color-text);
415
+ box-shadow: 0 20px 50px rgb(0 0 0 / 0.2);
416
+ }
417
+ .Modal_modal[open] {
418
+ display: flex;
419
+ flex-direction: column;
420
+ animation: Modal_modal-in 0.2s ease-out;
421
+ }
422
+ .Modal_modal::backdrop {
423
+ background: var(--uikit-color-overlay);
424
+ }
425
+ .Modal_modal[open]::backdrop {
426
+ animation: Modal_fade-in 0.2s ease-out;
427
+ }
428
+ .Modal_sm {
429
+ max-width: 400px;
430
+ }
431
+ .Modal_md {
432
+ max-width: 560px;
433
+ }
434
+ .Modal_lg {
435
+ max-width: 800px;
436
+ }
437
+ .Modal_content {
438
+ display: flex;
439
+ flex-direction: column;
440
+ flex: 1;
441
+ min-height: 0;
442
+ }
443
+ .Modal_header {
444
+ display: flex;
445
+ align-items: center;
446
+ justify-content: space-between;
447
+ gap: 16px;
448
+ padding: 16px 20px;
449
+ border-bottom: 1px solid var(--uikit-color-border);
450
+ }
451
+ .Modal_title {
452
+ margin: 0;
453
+ font-size: 1.125rem;
454
+ font-weight: 600;
455
+ }
456
+ .Modal_close {
457
+ display: inline-flex;
458
+ align-items: center;
459
+ justify-content: center;
460
+ width: 32px;
461
+ height: 32px;
462
+ margin: -4px -8px -4px 0;
463
+ border: none;
464
+ border-radius: 50%;
465
+ background: none;
466
+ color: inherit;
467
+ font-size: 1.5rem;
468
+ line-height: 1;
469
+ cursor: pointer;
470
+ }
471
+ .Modal_close:hover {
472
+ background: var(--uikit-color-surface-hover);
473
+ }
474
+ .Modal_body {
475
+ flex: 1;
476
+ padding: 20px;
477
+ overflow-y: auto;
478
+ }
479
+ .Modal_footer {
480
+ display: flex;
481
+ justify-content: flex-end;
482
+ gap: 8px;
483
+ padding: 16px 20px;
484
+ border-top: 1px solid var(--uikit-color-border);
485
+ }
486
+ .Modal_close:focus-visible {
487
+ outline: 2px solid var(--uikit-color-accent-focus);
488
+ outline-offset: 2px;
489
+ }
490
+ @keyframes Modal_modal-in {
491
+ from {
492
+ opacity: 0;
493
+ transform: translateY(8px) scale(0.98);
494
+ }
495
+ }
496
+ @keyframes Modal_fade-in {
497
+ from {
498
+ opacity: 0;
499
+ }
500
+ }
501
+ @media (prefers-reduced-motion: reduce) {
502
+ .Modal_modal[open],
503
+ .Modal_modal[open]::backdrop {
504
+ animation: none;
505
+ }
506
+ }
507
+
508
+ /* src/components/Radio/Radio.module.css */
509
+ .Radio_sm {
510
+ --radio-size: 14px;
511
+ --radio-dot-space: 2px;
512
+ --radio-gap: 6px;
513
+ --radio-label-size: var(--uikit-font-size-xs);
514
+ --radio-message-size: var(--uikit-font-size-2xs);
515
+ }
516
+ .Radio_md {
517
+ --radio-size: 16px;
518
+ --radio-dot-space: 3px;
519
+ --radio-gap: 8px;
520
+ --radio-label-size: var(--uikit-font-size-sm);
521
+ --radio-message-size: var(--uikit-font-size-xs);
522
+ }
523
+ .Radio_lg {
524
+ --radio-size: 20px;
525
+ --radio-dot-space: 4px;
526
+ --radio-gap: 10px;
527
+ --radio-label-size: var(--uikit-font-size-md);
528
+ --radio-message-size: var(--uikit-font-size-sm);
529
+ }
530
+ .Radio_root {
531
+ display: inline-flex;
532
+ flex-direction: column;
533
+ }
534
+ .Radio_label {
535
+ display: inline-flex;
536
+ align-items: center;
537
+ gap: var(--radio-gap);
538
+ font-size: var(--radio-label-size);
539
+ color: var(--uikit-color-text);
540
+ cursor: pointer;
541
+ }
542
+ .Radio_input {
543
+ appearance: none;
544
+ flex: none;
545
+ box-sizing: border-box;
546
+ width: var(--radio-size);
547
+ height: var(--radio-size);
548
+ margin: 0;
549
+ border: 1.5px solid var(--uikit-color-text-muted);
550
+ border-radius: 50%;
551
+ background: var(--uikit-color-surface) center / 100% no-repeat;
552
+ cursor: pointer;
553
+ transition: background-color 0.15s ease, border-color 0.15s ease;
554
+ }
555
+ .Radio_input:hover:not(:disabled) {
556
+ border-color: var(--uikit-color-accent);
557
+ }
558
+ .Radio_input:checked {
559
+ border-color: var(--uikit-color-accent);
560
+ background-color: var(--uikit-color-accent);
561
+ padding: var(--radio-dot-space);
562
+ background-clip: content-box;
563
+ }
564
+ .Radio_input:checked:hover:not(:disabled) {
565
+ border-color: var(--uikit-color-accent-hover);
566
+ background-color: var(--uikit-color-accent-hover);
567
+ }
568
+ .Radio_input:focus-visible {
569
+ outline: none;
570
+ box-shadow: 0 0 0 3px var(--uikit-color-ring-accent);
571
+ }
572
+ .Radio_hasError .Radio_input:not(:checked) {
573
+ border-color: var(--uikit-color-danger);
574
+ }
575
+ .Radio_hasError .Radio_input:focus-visible {
576
+ box-shadow: 0 0 0 3px var(--uikit-color-ring-error);
577
+ }
578
+ .Radio_disabled {
579
+ opacity: 0.5;
580
+ }
581
+ .Radio_disabled .Radio_label,
582
+ .Radio_disabled .Radio_input {
583
+ cursor: not-allowed;
584
+ }
585
+ .Radio_required {
586
+ color: var(--uikit-color-danger);
587
+ }
588
+ .Radio_error {
589
+ margin: 4px 0 0;
590
+ padding-left: calc(var(--radio-size) + var(--radio-gap));
591
+ font-size: var(--radio-message-size);
592
+ color: var(--uikit-color-danger);
593
+ }
594
+ @media (prefers-reduced-motion: reduce) {
595
+ .Radio_input {
596
+ transition: none;
597
+ }
598
+ }
599
+
600
+ /* src/components/RadioGroup/RadioGroup.module.css */
601
+ .RadioGroup_root {
602
+ display: flex;
603
+ flex-direction: column;
604
+ gap: 8px;
605
+ }
606
+ .RadioGroup_disabled {
607
+ opacity: 0.6;
608
+ cursor: not-allowed;
609
+ }
610
+ .RadioGroup_groupLabel {
611
+ font-size: var(--uikit-font-size-sm);
612
+ font-weight: var(--uikit-font-weight-medium);
613
+ color: var(--uikit-color-text);
614
+ margin-bottom: 4px;
615
+ }
616
+ .RadioGroup_required {
617
+ color: var(--uikit-color-danger);
618
+ }
619
+ .RadioGroup_options {
620
+ display: flex;
621
+ flex-direction: column;
622
+ gap: 8px;
623
+ }
624
+ .RadioGroup_error {
625
+ font-size: var(--uikit-font-size-xs);
626
+ color: var(--uikit-color-danger);
627
+ margin: 4px 0 0 0;
628
+ }
629
+
630
+ /* src/components/Skeleton/Skeleton.module.css */
631
+ .Skeleton_skeleton {
632
+ position: relative;
633
+ display: block;
634
+ overflow: hidden;
635
+ background-color: var(--uikit-color-surface-subtle);
636
+ border-radius: var(--uikit-radius-sm);
637
+ }
638
+ .Skeleton_text {
639
+ height: 1em;
640
+ }
641
+ .Skeleton_rect {
642
+ border-radius: var(--uikit-radius-md);
643
+ }
644
+ .Skeleton_circle {
645
+ border-radius: 50%;
646
+ flex-shrink: 0;
647
+ }
648
+ .Skeleton_lines {
649
+ display: flex;
650
+ flex-direction: column;
651
+ gap: 0.5em;
652
+ }
653
+ .Skeleton_withChildren {
654
+ width: fit-content;
655
+ height: auto;
656
+ }
657
+ .Skeleton_hidden {
658
+ visibility: hidden;
659
+ }
660
+ .Skeleton_pulse {
661
+ animation: Skeleton_pulse 1.5s ease-in-out infinite;
662
+ }
663
+ .Skeleton_wave::after {
664
+ content: "";
665
+ position: absolute;
666
+ inset: 0;
667
+ transform: translateX(-100%);
668
+ background:
669
+ linear-gradient(
670
+ 90deg,
671
+ transparent,
672
+ var(--uikit-color-skeleton-highlight),
673
+ transparent);
674
+ animation: Skeleton_wave 1.6s linear infinite;
675
+ }
676
+ @keyframes Skeleton_pulse {
677
+ 50% {
678
+ opacity: 0.5;
679
+ }
680
+ }
681
+ @keyframes Skeleton_wave {
682
+ to {
683
+ transform: translateX(100%);
684
+ }
685
+ }
686
+ @media (prefers-reduced-motion: reduce) {
687
+ .Skeleton_pulse,
688
+ .Skeleton_wave::after {
689
+ animation: none;
690
+ }
691
+ }
692
+
693
+ /* src/components/Spinner/Spinner.module.css */
694
+ .Spinner_spinner {
695
+ --speed: 1;
696
+ position: relative;
697
+ display: inline-flex;
698
+ align-items: center;
699
+ justify-content: center;
700
+ width: var(--spinner-size);
701
+ height: var(--spinner-size);
702
+ color: var(--uikit-color-accent);
703
+ flex-shrink: 0;
704
+ }
705
+ .Spinner_sm {
706
+ --spinner-size: var(--uikit-spinner-size-sm);
707
+ }
708
+ .Spinner_md {
709
+ --spinner-size: var(--uikit-spinner-size-md);
710
+ }
711
+ .Spinner_lg {
712
+ --spinner-size: var(--uikit-spinner-size-lg);
713
+ }
714
+ .Spinner_item {
715
+ display: block;
716
+ flex-shrink: 0;
717
+ background-color: currentColor;
718
+ }
719
+ .Spinner_circle {
720
+ border: calc(var(--spinner-size) / 8) solid currentColor;
721
+ border-right-color: transparent;
722
+ border-radius: 50%;
723
+ animation: Spinner_spin calc(0.75s * var(--speed)) linear infinite;
724
+ }
725
+ .Spinner_dots {
726
+ gap: calc(var(--spinner-size) / 8);
727
+ }
728
+ .Spinner_dots .Spinner_item {
729
+ width: calc(var(--spinner-size) / 4);
730
+ height: calc(var(--spinner-size) / 4);
731
+ border-radius: 50%;
732
+ animation: Spinner_beat calc(0.7s * var(--speed)) linear infinite both;
733
+ animation-delay: calc(var(--i) * 0.35s * var(--speed));
734
+ }
735
+ .Spinner_spiral .Spinner_item {
736
+ position: absolute;
737
+ top: calc(var(--i) * 1.75%);
738
+ left: calc(var(--i) * 0.875%);
739
+ width: calc(100% - var(--i) * 20%);
740
+ height: calc(100% - var(--i) * 20%);
741
+ box-sizing: border-box;
742
+ background-color: transparent;
743
+ border-radius: 50%;
744
+ border-top: calc(var(--spinner-size) / 16) solid currentColor;
745
+ border-left: calc(var(--spinner-size) / 16) solid currentColor;
746
+ animation: Spinner_spin calc(1s * var(--speed)) linear infinite;
747
+ animation-delay: calc(var(--i) * 0.2s * var(--speed));
748
+ }
749
+ .Spinner_propagate {
750
+ width: calc(var(--spinner-size) / 4 * 11);
751
+ }
752
+ .Spinner_propagate .Spinner_item {
753
+ --step: calc(var(--spinner-size) / 4);
754
+ --dir: -1;
755
+ position: absolute;
756
+ width: var(--step);
757
+ height: var(--step);
758
+ border-radius: 50%;
759
+ animation: Spinner_propagate calc(1.5s * var(--speed)) ease infinite;
760
+ }
761
+ .Spinner_propagate .Spinner_item:nth-child(n+4) {
762
+ --dir: 1;
763
+ }
764
+ .Spinner_propagate .Spinner_item:is(:nth-child(1), :nth-child(6)) {
765
+ --x50: 3;
766
+ --s50: 0.6;
767
+ --x75: 5;
768
+ --s75: 0.5;
769
+ }
770
+ .Spinner_propagate .Spinner_item:is(:nth-child(2), :nth-child(5)) {
771
+ --x50: 3;
772
+ --s50: 0.6;
773
+ --x75: 3;
774
+ --s75: 0.6;
775
+ }
776
+ .Spinner_propagate .Spinner_item:is(:nth-child(3), :nth-child(4)) {
777
+ --x50: 1;
778
+ --s50: 0.75;
779
+ --x75: 1;
780
+ --s75: 0.75;
781
+ }
782
+ @keyframes Spinner_spin {
783
+ to {
784
+ transform: rotate(360deg);
785
+ }
786
+ }
787
+ @keyframes Spinner_beat {
788
+ 50% {
789
+ transform: scale(0.75);
790
+ opacity: 0.2;
791
+ }
792
+ 100% {
793
+ transform: scale(1);
794
+ opacity: 1;
795
+ }
796
+ }
797
+ @keyframes Spinner_propagate {
798
+ 25% {
799
+ transform: translateX(calc(var(--dir) * var(--step))) scale(0.75);
800
+ }
801
+ 50% {
802
+ transform: translateX(calc(var(--dir) * var(--x50) * var(--step))) scale(var(--s50));
803
+ }
804
+ 75% {
805
+ transform: translateX(calc(var(--dir) * var(--x75) * var(--step))) scale(var(--s75));
806
+ }
807
+ 95% {
808
+ transform: none;
809
+ }
810
+ }
811
+
812
+ /* src/components/Switch/Switch.module.css */
813
+ .Switch_sm {
814
+ --switch-width: 28px;
815
+ --switch-height: 16px;
816
+ --switch-font-size: var(--uikit-font-size-xs);
817
+ }
818
+ .Switch_md {
819
+ --switch-width: 36px;
820
+ --switch-height: 20px;
821
+ --switch-font-size: var(--uikit-font-size-sm);
822
+ }
823
+ .Switch_lg {
824
+ --switch-width: 44px;
825
+ --switch-height: 24px;
826
+ --switch-font-size: var(--uikit-font-size-md);
827
+ }
828
+ .Switch_root {
829
+ --switch-gap: 2px;
830
+ --switch-thumb: calc(var(--switch-height) - var(--switch-gap) * 2);
831
+ position: relative;
832
+ display: inline-flex;
833
+ align-items: center;
834
+ gap: 8px;
835
+ font-size: var(--switch-font-size);
836
+ color: var(--uikit-color-text);
837
+ cursor: pointer;
838
+ }
839
+ .Switch_input {
840
+ position: absolute;
841
+ width: 1px;
842
+ height: 1px;
843
+ margin: 0;
844
+ opacity: 0;
845
+ }
846
+ .Switch_track {
847
+ position: relative;
848
+ flex: none;
849
+ width: var(--switch-width);
850
+ height: var(--switch-height);
851
+ border-radius: 999px;
852
+ background: var(--uikit-color-border);
853
+ transition: background-color 0.15s ease;
854
+ }
855
+ .Switch_thumb {
856
+ position: absolute;
857
+ top: var(--switch-gap);
858
+ left: var(--switch-gap);
859
+ width: var(--switch-thumb);
860
+ height: var(--switch-thumb);
861
+ border-radius: 50%;
862
+ background: var(--uikit-white);
863
+ box-shadow: 0 1px 2px rgb(0 0 0 / 0.2);
864
+ transition: transform 0.15s ease;
865
+ }
866
+ .Switch_input:checked + .Switch_track {
867
+ background: var(--uikit-color-accent);
868
+ }
869
+ .Switch_input:checked + .Switch_track .Switch_thumb {
870
+ transform: translateX(calc(var(--switch-width) - var(--switch-thumb) - var(--switch-gap) * 2));
871
+ }
872
+ .Switch_root:hover .Switch_input:not(:disabled):not(:checked) + .Switch_track {
873
+ background: var(--uikit-color-border-hover);
874
+ }
875
+ .Switch_root:hover .Switch_input:not(:disabled):checked + .Switch_track {
876
+ background: var(--uikit-color-accent-hover);
877
+ }
878
+ .Switch_input:focus-visible + .Switch_track {
879
+ box-shadow: 0 0 0 3px var(--uikit-color-ring-accent);
880
+ }
881
+ .Switch_disabled {
882
+ opacity: 0.5;
883
+ cursor: not-allowed;
884
+ }
885
+ @media (prefers-reduced-motion: reduce) {
886
+ .Switch_track,
887
+ .Switch_thumb {
888
+ transition: none;
889
+ }
890
+ }
891
+
892
+ /* src/components/Tabs/Tabs.module.css */
893
+ .Tabs_tabs {
894
+ display: flex;
895
+ flex-direction: column;
896
+ gap: 12px;
897
+ }
898
+ .Tabs_list {
899
+ display: flex;
900
+ gap: 4px;
901
+ border-bottom: 1px solid var(--uikit-color-border);
902
+ }
903
+ .Tabs_tab {
904
+ padding: 8px 12px;
905
+ margin-bottom: -1px;
906
+ border: none;
907
+ border-bottom: 2px solid transparent;
908
+ background: none;
909
+ color: var(--uikit-color-text-muted);
910
+ font: inherit;
911
+ cursor: pointer;
912
+ }
913
+ .Tabs_tab:hover:not(:disabled) {
914
+ color: var(--uikit-color-text);
915
+ }
916
+ .Tabs_tab[aria-selected=true] {
917
+ color: var(--uikit-color-text);
918
+ border-bottom-color: var(--uikit-color-accent);
919
+ }
920
+ .Tabs_tab:disabled {
921
+ opacity: 0.5;
922
+ cursor: not-allowed;
923
+ }
924
+ .Tabs_tab:focus-visible,
925
+ .Tabs_panel:focus-visible {
926
+ outline: 2px solid var(--uikit-color-accent-focus);
927
+ outline-offset: 2px;
928
+ }
929
+ .Tabs_panel {
930
+ color: var(--uikit-color-text);
931
+ }
932
+
933
+ /* src/components/Toast/Toast.module.css */
934
+ .Toast_toast {
935
+ display: flex;
936
+ align-items: flex-start;
937
+ gap: 12px;
938
+ padding: 12px 16px;
939
+ border-radius: 8px;
940
+ min-width: 280px;
941
+ max-width: 400px;
942
+ box-shadow: var(--uikit-shadow-md);
943
+ animation: Toast_toast-in 0.2s ease-out;
944
+ }
945
+ @keyframes Toast_toast-in {
946
+ from {
947
+ opacity: 0;
948
+ transform: translateX(16px);
949
+ }
950
+ to {
951
+ opacity: 1;
952
+ transform: translateX(0);
953
+ }
954
+ }
955
+ .Toast_content {
956
+ flex: 1;
957
+ min-width: 0;
958
+ }
959
+ .Toast_title {
960
+ font-size: var(--uikit-font-size-lg);
961
+ font-weight: var(--uikit-font-weight-bold);
962
+ margin-bottom: 4px;
963
+ }
964
+ .Toast_description {
965
+ font-size: var(--uikit-font-size-sm);
966
+ line-height: 1.5;
967
+ }
968
+ .Toast_closeButton {
969
+ background: none;
970
+ border: none;
971
+ cursor: pointer;
972
+ font-size: var(--uikit-font-size-xl);
973
+ line-height: 1;
974
+ padding: 0;
975
+ color: inherit;
976
+ opacity: 0.6;
977
+ }
978
+ .Toast_closeButton:hover {
979
+ opacity: 1;
980
+ }
981
+ .Toast_info {
982
+ background-color: var(--uikit-color-info-bg);
983
+ color: var(--uikit-color-info-text);
984
+ }
985
+ .Toast_success {
986
+ background-color: var(--uikit-color-success-bg);
987
+ color: var(--uikit-color-success-text);
988
+ }
989
+ .Toast_warning {
990
+ background-color: var(--uikit-color-warning-bg);
991
+ color: var(--uikit-color-warning-text);
992
+ }
993
+ .Toast_error {
994
+ background-color: var(--uikit-color-error-bg);
995
+ color: var(--uikit-color-error-text);
996
+ }
997
+
998
+ /* src/components/Toast/ToastProvider/ToastContainer.module.css */
999
+ .ToastContainer_container {
1000
+ position: fixed;
1001
+ display: flex;
1002
+ flex-direction: column;
1003
+ gap: 8px;
1004
+ z-index: var(--uikit-z-index-toast);
1005
+ padding: 16px;
1006
+ pointer-events: none;
1007
+ }
1008
+ .ToastContainer_container > * {
1009
+ pointer-events: auto;
1010
+ }
1011
+ .ToastContainer_top-right {
1012
+ top: 0;
1013
+ right: 0;
1014
+ align-items: flex-end;
1015
+ }
1016
+ .ToastContainer_top-left {
1017
+ top: 0;
1018
+ left: 0;
1019
+ align-items: flex-start;
1020
+ }
1021
+ .ToastContainer_top-center {
1022
+ top: 0;
1023
+ left: 50%;
1024
+ transform: translateX(-50%);
1025
+ align-items: center;
1026
+ }
1027
+ .ToastContainer_bottom-right {
1028
+ bottom: 0;
1029
+ right: 0;
1030
+ align-items: flex-end;
1031
+ flex-direction: column-reverse;
1032
+ }
1033
+ .ToastContainer_bottom-left {
1034
+ bottom: 0;
1035
+ left: 0;
1036
+ align-items: flex-start;
1037
+ flex-direction: column-reverse;
1038
+ }
1039
+ .ToastContainer_bottom-center {
1040
+ bottom: 0;
1041
+ left: 50%;
1042
+ transform: translateX(-50%);
1043
+ align-items: center;
1044
+ flex-direction: column-reverse;
1045
+ }
1046
+
1047
+ /* src/styles/tokens.css */
1048
+ :root {
1049
+ --uikit-white: #ffffff;
1050
+ --uikit-black: #000000;
1051
+ --uikit-gray-50: #f9fafb;
1052
+ --uikit-gray-100: #f3f4f6;
1053
+ --uikit-gray-200: #e5e7eb;
1054
+ --uikit-gray-300: #d1d5db;
1055
+ --uikit-gray-400: #9ca3af;
1056
+ --uikit-gray-500: #6b7280;
1057
+ --uikit-gray-600: #4b5563;
1058
+ --uikit-gray-700: #374151;
1059
+ --uikit-gray-800: #1f2937;
1060
+ --uikit-gray-900: #111827;
1061
+ --uikit-blue-400: #60a5fa;
1062
+ --uikit-blue-500: #3b82f6;
1063
+ --uikit-blue-600: #2563eb;
1064
+ --uikit-blue-700: #1d4ed8;
1065
+ --uikit-blue-800: #1d52e4;
1066
+ --uikit-red-400: #f87171;
1067
+ --uikit-red-500: #ef4444;
1068
+ --uikit-red-700: #b3261e;
1069
+ --uikit-green-500: #22c55e;
1070
+ --uikit-green-700: #15803d;
1071
+ --uikit-color-surface: var(--uikit-white);
1072
+ --uikit-color-surface-subtle: var(--uikit-gray-100);
1073
+ --uikit-color-surface-hover: var(--uikit-gray-100);
1074
+ --uikit-color-surface-active: var(--uikit-gray-200);
1075
+ --uikit-color-surface-inverse: var(--uikit-gray-800);
1076
+ --uikit-color-overlay: rgb(0 0 0 / 0.5);
1077
+ --uikit-color-text: var(--uikit-gray-900);
1078
+ --uikit-color-text-muted: var(--uikit-gray-500);
1079
+ --uikit-color-text-subtle: var(--uikit-gray-400);
1080
+ --uikit-color-text-placeholder: var(--uikit-gray-400);
1081
+ --uikit-color-text-inverse: var(--uikit-white);
1082
+ --uikit-color-text-on-accent: var(--uikit-white);
1083
+ --uikit-color-border: var(--uikit-gray-300);
1084
+ --uikit-color-border-subtle: var(--uikit-gray-200);
1085
+ --uikit-color-border-hover: var(--uikit-gray-400);
1086
+ --uikit-color-border-focus: var(--uikit-blue-700);
1087
+ --uikit-color-accent: var(--uikit-blue-600);
1088
+ --uikit-color-accent-hover: var(--uikit-blue-700);
1089
+ --uikit-color-accent-focus: var(--uikit-blue-800);
1090
+ --uikit-color-danger: var(--uikit-red-700);
1091
+ --uikit-color-success: var(--uikit-green-700);
1092
+ --uikit-color-info-bg: #b8e7fb;
1093
+ --uikit-color-info-text: #014361;
1094
+ --uikit-color-success-bg: #cce8cd;
1095
+ --uikit-color-success-text: #1e4620;
1096
+ --uikit-color-warning-bg: #ffe2b7;
1097
+ --uikit-color-warning-text: #663c00;
1098
+ --uikit-color-error-bg: #f4c7c7;
1099
+ --uikit-color-error-text: #5f2120;
1100
+ --uikit-color-ring-accent: rgba(37, 99, 235, 0.25);
1101
+ --uikit-color-ring-error: rgba(179, 38, 30, 0.25);
1102
+ --uikit-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.15);
1103
+ --uikit-color-skeleton-highlight: rgba(255, 255, 255, 0.5);
1104
+ --uikit-radius-sm: 4px;
1105
+ --uikit-radius-md: 8px;
1106
+ --uikit-radius-lg: 12px;
1107
+ --uikit-font-size-2xs: 11px;
1108
+ --uikit-font-size-xs: 12px;
1109
+ --uikit-font-size-sm: 14px;
1110
+ --uikit-font-size-md: 16px;
1111
+ --uikit-font-size-lg: 18px;
1112
+ --uikit-font-size-xl: 20px;
1113
+ --uikit-font-weight-regular: 400;
1114
+ --uikit-font-weight-medium: 500;
1115
+ --uikit-font-weight-semibold: 600;
1116
+ --uikit-font-weight-bold: 700;
1117
+ --uikit-z-index-toast: 1000;
1118
+ --uikit-z-index-tooltip: 1100;
1119
+ --uikit-spinner-size-sm: 16px;
1120
+ --uikit-spinner-size-md: 24px;
1121
+ --uikit-spinner-size-lg: 32px;
1122
+ --uikit-input-height-sm: 32px;
1123
+ --uikit-input-height-md: 40px;
1124
+ --uikit-input-height-lg: 48px;
1125
+ }
1126
+ [data-theme=dark] {
1127
+ --uikit-color-surface: var(--uikit-gray-800);
1128
+ --uikit-color-surface-subtle: var(--uikit-gray-700);
1129
+ --uikit-color-surface-hover: var(--uikit-gray-700);
1130
+ --uikit-color-surface-active: var(--uikit-gray-600);
1131
+ --uikit-color-surface-inverse: var(--uikit-gray-100);
1132
+ --uikit-color-overlay: rgb(0 0 0 / 0.7);
1133
+ --uikit-color-text: var(--uikit-gray-100);
1134
+ --uikit-color-text-muted: var(--uikit-gray-400);
1135
+ --uikit-color-text-subtle: var(--uikit-gray-500);
1136
+ --uikit-color-text-placeholder: var(--uikit-gray-500);
1137
+ --uikit-color-text-inverse: var(--uikit-gray-900);
1138
+ --uikit-color-text-on-accent: var(--uikit-white);
1139
+ --uikit-color-border: var(--uikit-gray-600);
1140
+ --uikit-color-border-subtle: var(--uikit-gray-700);
1141
+ --uikit-color-border-hover: var(--uikit-gray-500);
1142
+ --uikit-color-border-focus: var(--uikit-blue-400);
1143
+ --uikit-color-accent: var(--uikit-blue-500);
1144
+ --uikit-color-accent-hover: var(--uikit-blue-400);
1145
+ --uikit-color-accent-focus: var(--uikit-blue-400);
1146
+ --uikit-color-danger: var(--uikit-red-500);
1147
+ --uikit-color-success: var(--uikit-green-500);
1148
+ --uikit-color-info-bg: #014361;
1149
+ --uikit-color-info-text: #b8e7fb;
1150
+ --uikit-color-success-bg: #1e4620;
1151
+ --uikit-color-success-text: #cce8cd;
1152
+ --uikit-color-warning-bg: #663c00;
1153
+ --uikit-color-warning-text: #ffe2b7;
1154
+ --uikit-color-error-bg: #5f2120;
1155
+ --uikit-color-error-text: #f4c7c7;
1156
+ --uikit-color-ring-accent: rgba(59, 130, 246, 0.35);
1157
+ --uikit-color-ring-error: rgba(239, 68, 68, 0.35);
1158
+ --uikit-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.5);
1159
+ --uikit-color-skeleton-highlight: rgba(255, 255, 255, 0.08);
1160
+ }
1161
+
1162
+ /* src/components/Tooltip/Tooltip.module.css */
1163
+ .Tooltip_tooltip {
1164
+ z-index: var(--uikit-z-index-tooltip);
1165
+ max-width: 250px;
1166
+ padding: 6px 12px;
1167
+ font-size: var(--uikit-font-size-xs);
1168
+ font-weight: var(--uikit-font-weight-medium);
1169
+ line-height: 1.4;
1170
+ color: var(--uikit-color-text-inverse);
1171
+ background-color: var(--uikit-color-surface-inverse);
1172
+ border-radius: var(--uikit-radius-sm);
1173
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
1174
+ pointer-events: none;
1175
+ animation: Tooltip_fadeIn 0.15s ease-out;
1176
+ }
1177
+ .Tooltip_arrow {
1178
+ position: absolute;
1179
+ width: 8px;
1180
+ height: 8px;
1181
+ background-color: inherit;
1182
+ transform: rotate(45deg);
1183
+ }
1184
+ .Tooltip_tooltip[data-placement^=top] .Tooltip_arrow {
1185
+ bottom: -4px;
1186
+ left: calc(50% - 4px);
1187
+ }
1188
+ .Tooltip_tooltip[data-placement=top-start] .Tooltip_arrow {
1189
+ left: 12px;
1190
+ right: auto;
1191
+ }
1192
+ .Tooltip_tooltip[data-placement=top-end] .Tooltip_arrow {
1193
+ left: auto;
1194
+ right: 12px;
1195
+ }
1196
+ .Tooltip_tooltip[data-placement^=bottom] .Tooltip_arrow {
1197
+ top: -4px;
1198
+ left: calc(50% - 4px);
1199
+ }
1200
+ .Tooltip_tooltip[data-placement=bottom-start] .Tooltip_arrow {
1201
+ left: 12px;
1202
+ right: auto;
1203
+ }
1204
+ .Tooltip_tooltip[data-placement=bottom-end] .Tooltip_arrow {
1205
+ left: auto;
1206
+ right: 12px;
1207
+ }
1208
+ .Tooltip_tooltip[data-placement^=left] .Tooltip_arrow {
1209
+ right: -4px;
1210
+ top: calc(50% - 4px);
1211
+ }
1212
+ .Tooltip_tooltip[data-placement=left-start] .Tooltip_arrow {
1213
+ top: 8px;
1214
+ bottom: auto;
1215
+ }
1216
+ .Tooltip_tooltip[data-placement=left-end] .Tooltip_arrow {
1217
+ top: auto;
1218
+ bottom: 8px;
1219
+ }
1220
+ .Tooltip_tooltip[data-placement^=right] .Tooltip_arrow {
1221
+ left: -4px;
1222
+ top: calc(50% - 4px);
1223
+ }
1224
+ .Tooltip_tooltip[data-placement=right-start] .Tooltip_arrow {
1225
+ top: 8px;
1226
+ bottom: auto;
1227
+ }
1228
+ .Tooltip_tooltip[data-placement=right-end] .Tooltip_arrow {
1229
+ top: auto;
1230
+ bottom: 8px;
1231
+ }
1232
+ @keyframes Tooltip_fadeIn {
1233
+ from {
1234
+ opacity: 0;
1235
+ }
1236
+ to {
1237
+ opacity: 1;
1238
+ }
1239
+ }
1240
+ /*# sourceMappingURL=index.css.map */