@jho951/ui-components 0.1.0 → 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.
@@ -43,9 +43,12 @@ function generateId() {
43
43
  return window.crypto.randomUUID();
44
44
  }
45
45
  if (typeof window !== "undefined" && window.crypto?.getRandomValues) {
46
- return ("10000000-1000-4000-8000" + -1e11).replace(
46
+ return "10000000-1000-4000-8000-100000000000".replace(
47
47
  /[018]/g,
48
- (c) => (c ^ window.crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
48
+ (char) => {
49
+ const c = Number(char);
50
+ return (c ^ window.crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16);
51
+ }
49
52
  );
50
53
  }
51
54
  return `${timestamp}-${randomPart}`;
@@ -0,0 +1,23 @@
1
+ // assert/svg/arrow.svg
2
+ var arrow_default = '<svg\n xmlns="http://www.w3.org/2000/svg"\n viewBox="0 0 24 24"\n fill="none"\n stroke="currentColor"\n stroke-width="2"\n stroke-linecap="round"\n stroke-linejoin="round"\n>\n <polyline points="6 9 12 15 18 9" />\n</svg>';
3
+
4
+ // assert/svg/close.svg
5
+ var close_default = '<svg\n viewBox="0 0 32 32"\n fill="none"\n xmlns="http://www.w3.org/2000/svg"\n aria-hidden="true"\n focusable="false"\n>\n <line x1="8" y1="8" x2="24" y2="24" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"/>\n <line x1="24" y1="8" x2="8" y2="24" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"/>\n</svg>\n';
6
+
7
+ // assert/svg/spinner.svg
8
+ var spinner_default = '<svg\n width="24"\n height="24"\n viewBox="0 0 24 24"\n fill="none"\n stroke="currentColor"\n stroke-width="3"\n stroke-linecap="round"\n stroke-linejoin="round"\n xmlns="http://www.w3.org/2000/svg"\n>\n <circle\n cx="12"\n cy="12"\n r="10"\n stroke="currentColor"\n opacity="0.25"\n fill="none"\n />\n <path\n d="M12 2a10 10 0 0 1 10 10"\n stroke="currentColor"\n />\n</svg>\n';
9
+
10
+ // assert/svg/required.svg
11
+ var required_default = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M12 2L15.09 8.26L22 9.27L17 14.14L18.18 21.02L12 17.77L5.82 21.02L7 14.14L2 9.27L8.91 8.26L12 2Z"\n fill="currentColor"\n stroke="currentColor"\n stroke-width="2"\n stroke-linejoin="round"/>\n</svg>';
12
+
13
+ // assert/svg/index.ts
14
+ var SVG_ASSETS = {
15
+ arrow: arrow_default,
16
+ close: close_default,
17
+ spinner: spinner_default,
18
+ required: required_default
19
+ };
20
+
21
+ export {
22
+ SVG_ASSETS
23
+ };
package/dist/index.css CHANGED
@@ -26,6 +26,678 @@
26
26
  transform: rotate(180deg);
27
27
  }
28
28
 
29
+ /* ui/input/Input.module.css */
30
+ .root {
31
+ display: flex;
32
+ flex-direction: column;
33
+ gap: 0.4rem;
34
+ width: fit-content;
35
+ }
36
+ .fullWidth {
37
+ width: 100%;
38
+ }
39
+ .label {
40
+ font-size: var(--font-s, 1.4rem);
41
+ color: var(--color-black, #111111);
42
+ }
43
+ .control {
44
+ display: flex;
45
+ align-items: center;
46
+ gap: 0.6rem;
47
+ padding: 0.6rem 0.9rem;
48
+ border: 1px solid var(--color-gray, #e6e9ef);
49
+ border-radius: var(--border-radius, 1rem);
50
+ background: var(--color-white, #ffffff);
51
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
52
+ }
53
+ .control:focus-within {
54
+ border-color: var(--color-primary, #333333);
55
+ box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.08);
56
+ }
57
+ .input {
58
+ flex: 1;
59
+ min-width: 0;
60
+ border: none;
61
+ outline: none;
62
+ background: transparent;
63
+ font-size: var(--font-m, 1.6rem);
64
+ color: var(--color-black, #111111);
65
+ }
66
+ .icon {
67
+ display: inline-flex;
68
+ align-items: center;
69
+ justify-content: center;
70
+ }
71
+ .helper {
72
+ font-size: var(--font-s, 1.3rem);
73
+ color: var(--color-gray, #8a8f98);
74
+ }
75
+ .error {
76
+ font-size: var(--font-s, 1.3rem);
77
+ color: var(--color-danger, #d64545);
78
+ }
79
+ .invalid {
80
+ border-color: var(--color-danger, #d64545);
81
+ }
82
+ .disabled {
83
+ background: var(--color-gray, #f4f5f7);
84
+ color: var(--color-gray, #8a8f98);
85
+ }
86
+ .s {
87
+ padding: 0.4rem 0.7rem;
88
+ }
89
+ .m {
90
+ padding: 0.6rem 0.9rem;
91
+ }
92
+ .l {
93
+ padding: 0.8rem 1.1rem;
94
+ }
95
+
96
+ /* ui/select/Select.module.css */
97
+ .root {
98
+ display: flex;
99
+ flex-direction: column;
100
+ gap: 0.4rem;
101
+ width: fit-content;
102
+ }
103
+ .fullWidth {
104
+ width: 100%;
105
+ }
106
+ .label {
107
+ font-size: var(--font-s, 1.4rem);
108
+ color: var(--color-black, #111111);
109
+ }
110
+ .control {
111
+ position: relative;
112
+ display: flex;
113
+ align-items: center;
114
+ border: 1px solid var(--color-gray, #e6e9ef);
115
+ border-radius: var(--border-radius, 1rem);
116
+ background: var(--color-white, #ffffff);
117
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
118
+ }
119
+ .control:focus-within {
120
+ border-color: var(--color-primary, #333333);
121
+ box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.08);
122
+ }
123
+ .select {
124
+ width: 100%;
125
+ appearance: none;
126
+ border: none;
127
+ outline: none;
128
+ background: transparent;
129
+ padding: 0.6rem 2.2rem 0.6rem 0.9rem;
130
+ font-size: var(--font-m, 1.6rem);
131
+ color: var(--color-black, #111111);
132
+ }
133
+ .caret {
134
+ position: absolute;
135
+ right: 0.8rem;
136
+ pointer-events: none;
137
+ font-size: 1.2rem;
138
+ color: var(--color-gray, #8a8f98);
139
+ }
140
+ .helper {
141
+ font-size: var(--font-s, 1.3rem);
142
+ color: var(--color-gray, #8a8f98);
143
+ }
144
+ .error {
145
+ font-size: var(--font-s, 1.3rem);
146
+ color: var(--color-danger, #d64545);
147
+ }
148
+ .invalid {
149
+ border-color: var(--color-danger, #d64545);
150
+ }
151
+ .disabled {
152
+ background: var(--color-gray, #f4f5f7);
153
+ color: var(--color-gray, #8a8f98);
154
+ }
155
+ .s .select {
156
+ padding: 0.4rem 2.1rem 0.4rem 0.7rem;
157
+ font-size: var(--font-s, 1.4rem);
158
+ }
159
+ .m .select {
160
+ padding: 0.6rem 2.2rem 0.6rem 0.9rem;
161
+ }
162
+ .l .select {
163
+ padding: 0.8rem 2.3rem 0.8rem 1.1rem;
164
+ font-size: var(--font-l, 1.8rem);
165
+ }
166
+
167
+ /* ui/dropdown/Dropdown.module.css */
168
+ .root {
169
+ position: relative;
170
+ display: inline-flex;
171
+ flex-direction: column;
172
+ gap: 0.4rem;
173
+ }
174
+ .label {
175
+ font-size: var(--font-s, 1.4rem);
176
+ color: var(--color-black, #111111);
177
+ }
178
+ .trigger {
179
+ display: inline-flex;
180
+ align-items: center;
181
+ justify-content: space-between;
182
+ gap: 0.8rem;
183
+ padding: 0.6rem 0.9rem;
184
+ border: 1px solid var(--color-gray, #e6e9ef);
185
+ border-radius: var(--border-radius, 1rem);
186
+ background: var(--color-white, #ffffff);
187
+ min-width: 16rem;
188
+ cursor: pointer;
189
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
190
+ }
191
+ .trigger:focus-visible {
192
+ outline: none;
193
+ border-color: var(--color-primary, #333333);
194
+ box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.08);
195
+ }
196
+ .value {
197
+ font-size: var(--font-m, 1.6rem);
198
+ color: var(--color-black, #111111);
199
+ }
200
+ .caret {
201
+ font-size: 1.2rem;
202
+ color: var(--color-gray, #8a8f98);
203
+ }
204
+ .menu {
205
+ position: absolute;
206
+ top: calc(100% + 0.4rem);
207
+ z-index: 20;
208
+ background: var(--color-white, #ffffff);
209
+ border: 1px solid var(--color-gray, #e6e9ef);
210
+ border-radius: 1rem;
211
+ padding: 0.4rem;
212
+ min-width: 16rem;
213
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
214
+ }
215
+ .menu.start {
216
+ left: 0;
217
+ }
218
+ .menu.end {
219
+ right: 0;
220
+ }
221
+ .item {
222
+ width: 100%;
223
+ text-align: left;
224
+ border: none;
225
+ background: transparent;
226
+ padding: 0.6rem 0.8rem;
227
+ border-radius: 0.8rem;
228
+ cursor: pointer;
229
+ font-size: var(--font-s, 1.4rem);
230
+ color: var(--color-black, #111111);
231
+ }
232
+ .item:hover,
233
+ .item:focus-visible {
234
+ background: var(--color-gray, #f4f5f7);
235
+ outline: none;
236
+ }
237
+ .itemDisabled {
238
+ color: var(--color-gray, #8a8f98);
239
+ cursor: not-allowed;
240
+ }
241
+ .disabled {
242
+ opacity: 0.6;
243
+ cursor: not-allowed;
244
+ }
245
+ .s {
246
+ padding: 0.4rem 0.7rem;
247
+ }
248
+ .m {
249
+ padding: 0.6rem 0.9rem;
250
+ }
251
+ .l {
252
+ padding: 0.8rem 1.1rem;
253
+ }
254
+
255
+ /* ui/tooltip/Tooltip.module.css */
256
+ .wrapper {
257
+ position: relative;
258
+ display: inline-flex;
259
+ align-items: center;
260
+ }
261
+ .target {
262
+ display: inline-flex;
263
+ align-items: center;
264
+ outline: none;
265
+ }
266
+ .tooltip {
267
+ position: absolute;
268
+ opacity: 0;
269
+ pointer-events: none;
270
+ padding: 0.5rem 0.8rem;
271
+ border-radius: 0.6rem;
272
+ background: var(--color-black, #111111);
273
+ color: var(--color-white, #ffffff);
274
+ font-size: var(--font-s, 1.2rem);
275
+ white-space: nowrap;
276
+ transform: translateY(4px);
277
+ transition: opacity 0.2s ease, transform 0.2s ease;
278
+ z-index: 30;
279
+ }
280
+ .wrapper:hover .tooltip,
281
+ .wrapper:focus-within .tooltip {
282
+ opacity: 1;
283
+ transform: translateY(0);
284
+ }
285
+ .top {
286
+ bottom: calc(100% + 0.6rem);
287
+ left: 50%;
288
+ transform: translate(-50%, 4px);
289
+ }
290
+ .right {
291
+ left: calc(100% + 0.6rem);
292
+ top: 50%;
293
+ transform: translate(4px, -50%);
294
+ }
295
+ .bottom {
296
+ top: calc(100% + 0.6rem);
297
+ left: 50%;
298
+ transform: translate(-50%, -4px);
299
+ }
300
+ .left {
301
+ right: calc(100% + 0.6rem);
302
+ top: 50%;
303
+ transform: translate(-4px, -50%);
304
+ }
305
+ .wrapper:hover .top,
306
+ .wrapper:focus-within .top {
307
+ transform: translate(-50%, 0);
308
+ }
309
+ .wrapper:hover .right,
310
+ .wrapper:focus-within .right {
311
+ transform: translate(0, -50%);
312
+ }
313
+ .wrapper:hover .bottom,
314
+ .wrapper:focus-within .bottom {
315
+ transform: translate(-50%, 0);
316
+ }
317
+ .wrapper:hover .left,
318
+ .wrapper:focus-within .left {
319
+ transform: translate(0, -50%);
320
+ }
321
+
322
+ /* ui/toast/Toast.module.css */
323
+ .toast {
324
+ display: flex;
325
+ align-items: flex-start;
326
+ gap: 1rem;
327
+ padding: 1rem 1.2rem;
328
+ border-radius: 1.2rem;
329
+ box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
330
+ background: var(--color-white, #ffffff);
331
+ color: var(--color-black, #111111);
332
+ max-width: 32rem;
333
+ }
334
+ .body {
335
+ display: flex;
336
+ flex-direction: column;
337
+ gap: 0.4rem;
338
+ flex: 1;
339
+ }
340
+ .title {
341
+ font-size: var(--font-m, 1.6rem);
342
+ }
343
+ .message {
344
+ font-size: var(--font-s, 1.4rem);
345
+ color: var(--color-gray, #666666);
346
+ }
347
+ .close {
348
+ border: none;
349
+ background: transparent;
350
+ font-size: 1.8rem;
351
+ cursor: pointer;
352
+ color: inherit;
353
+ }
354
+ .info {
355
+ border: 1px solid var(--color-gray, #e6e9ef);
356
+ }
357
+ .success {
358
+ border: 1px solid var(--color-success, #2f9e44);
359
+ }
360
+ .warning {
361
+ border: 1px solid var(--color-warning, #f59f00);
362
+ }
363
+ .error {
364
+ border: 1px solid var(--color-danger, #d64545);
365
+ }
366
+
367
+ /* ui/tabs/Tabs.module.css */
368
+ .root {
369
+ display: flex;
370
+ flex-direction: column;
371
+ gap: 1rem;
372
+ }
373
+ .tablist {
374
+ display: flex;
375
+ gap: 0.6rem;
376
+ border-bottom: 1px solid var(--color-gray, #e6e9ef);
377
+ }
378
+ .tab {
379
+ border: none;
380
+ background: transparent;
381
+ padding: 0.6rem 0.8rem;
382
+ cursor: pointer;
383
+ font-size: var(--font-s, 1.4rem);
384
+ color: var(--color-gray, #666666);
385
+ border-bottom: 2px solid transparent;
386
+ }
387
+ .tab:focus-visible {
388
+ outline: none;
389
+ color: var(--color-black, #111111);
390
+ }
391
+ .active {
392
+ color: var(--color-black, #111111);
393
+ border-color: var(--color-primary, #333333);
394
+ }
395
+ .disabled {
396
+ color: var(--color-gray, #b0b4bb);
397
+ cursor: not-allowed;
398
+ }
399
+ .panel {
400
+ font-size: var(--font-s, 1.4rem);
401
+ color: var(--color-black, #111111);
402
+ }
403
+
404
+ /* ui/accordion/Accordion.module.css */
405
+ .root {
406
+ display: flex;
407
+ flex-direction: column;
408
+ gap: 0.6rem;
409
+ }
410
+ .item {
411
+ border: 1px solid var(--color-gray, #e6e9ef);
412
+ border-radius: 1rem;
413
+ background: var(--color-white, #ffffff);
414
+ overflow: hidden;
415
+ }
416
+ .trigger {
417
+ width: 100%;
418
+ display: flex;
419
+ align-items: center;
420
+ justify-content: space-between;
421
+ padding: 0.8rem 1rem;
422
+ border: none;
423
+ background: transparent;
424
+ cursor: pointer;
425
+ font-size: var(--font-m, 1.6rem);
426
+ color: var(--color-black, #111111);
427
+ }
428
+ .trigger:focus-visible {
429
+ outline: 2px solid rgba(0, 0, 0, 0.1);
430
+ }
431
+ .panel {
432
+ padding: 0.6rem 1rem 1rem;
433
+ font-size: var(--font-s, 1.4rem);
434
+ color: var(--color-gray, #666666);
435
+ }
436
+ .icon {
437
+ font-size: 1.6rem;
438
+ }
439
+ .disabled {
440
+ opacity: 0.6;
441
+ }
442
+
443
+ /* ui/table/Table.module.css */
444
+ .wrapper {
445
+ width: 100%;
446
+ overflow-x: auto;
447
+ }
448
+ .table {
449
+ width: 100%;
450
+ border-collapse: collapse;
451
+ min-width: 32rem;
452
+ font-size: var(--font-s, 1.4rem);
453
+ }
454
+ th,
455
+ td {
456
+ padding: 0.8rem 1rem;
457
+ border-bottom: 1px solid var(--color-gray, #e6e9ef);
458
+ text-align: left;
459
+ }
460
+ th {
461
+ font-weight: 600;
462
+ color: var(--color-black, #111111);
463
+ background: var(--color-white, #ffffff);
464
+ }
465
+ .striped tbody tr:nth-child(even) {
466
+ background: var(--color-gray, #f6f7f9);
467
+ }
468
+ .compact th,
469
+ .compact td {
470
+ padding: 0.5rem 0.6rem;
471
+ }
472
+ .caption {
473
+ text-align: left;
474
+ padding: 0.6rem 0;
475
+ color: var(--color-gray, #666666);
476
+ }
477
+
478
+ /* ui/pagination/Pagination.module.css */
479
+ .nav {
480
+ display: flex;
481
+ align-items: center;
482
+ gap: 0.8rem;
483
+ flex-wrap: wrap;
484
+ }
485
+ .list {
486
+ display: flex;
487
+ gap: 0.4rem;
488
+ list-style: none;
489
+ padding: 0;
490
+ margin: 0;
491
+ }
492
+ .page,
493
+ .arrow {
494
+ border: 1px solid var(--color-gray, #e6e9ef);
495
+ background: var(--color-white, #ffffff);
496
+ padding: 0.4rem 0.8rem;
497
+ border-radius: 0.8rem;
498
+ cursor: pointer;
499
+ font-size: var(--font-s, 1.4rem);
500
+ }
501
+ .page:focus-visible,
502
+ .arrow:focus-visible {
503
+ outline: 2px solid rgba(0, 0, 0, 0.1);
504
+ }
505
+ .active {
506
+ background: var(--color-primary, #333333);
507
+ color: var(--color-white, #ffffff);
508
+ }
509
+ .arrow:disabled {
510
+ opacity: 0.5;
511
+ cursor: not-allowed;
512
+ }
513
+ .ellipsis {
514
+ padding: 0.4rem 0.6rem;
515
+ color: var(--color-gray, #8a8f98);
516
+ }
517
+
518
+ /* ui/breadcrumb/Breadcrumb.module.css */
519
+ .nav {
520
+ display: block;
521
+ }
522
+ .list {
523
+ display: flex;
524
+ align-items: center;
525
+ gap: 0.4rem;
526
+ list-style: none;
527
+ padding: 0;
528
+ margin: 0;
529
+ font-size: var(--font-s, 1.4rem);
530
+ }
531
+ .item {
532
+ display: flex;
533
+ align-items: center;
534
+ gap: 0.4rem;
535
+ }
536
+ .link {
537
+ color: var(--color-gray, #666666);
538
+ text-decoration: none;
539
+ }
540
+ .link:hover {
541
+ color: var(--color-black, #111111);
542
+ }
543
+ .current {
544
+ color: var(--color-black, #111111);
545
+ font-weight: 600;
546
+ }
547
+ .separator {
548
+ color: var(--color-gray, #b0b4bb);
549
+ }
550
+
551
+ /* ui/avatar/Avatar.module.css */
552
+ .avatar {
553
+ display: inline-flex;
554
+ align-items: center;
555
+ justify-content: center;
556
+ background: var(--color-gray, #e6e9ef);
557
+ color: var(--color-black, #111111);
558
+ overflow: hidden;
559
+ font-size: var(--font-s, 1.4rem);
560
+ font-weight: 600;
561
+ }
562
+ .image {
563
+ width: 100%;
564
+ height: 100%;
565
+ object-fit: cover;
566
+ }
567
+ .fallback {
568
+ padding: 0 0.4rem;
569
+ }
570
+ .circle {
571
+ border-radius: 50%;
572
+ }
573
+ .square {
574
+ border-radius: 0.6rem;
575
+ }
576
+ .s {
577
+ width: 2.4rem;
578
+ height: 2.4rem;
579
+ }
580
+ .m {
581
+ width: 3.6rem;
582
+ height: 3.6rem;
583
+ }
584
+ .l {
585
+ width: 4.8rem;
586
+ height: 4.8rem;
587
+ }
588
+
589
+ /* ui/badge/Badge.module.css */
590
+ .badge {
591
+ display: inline-flex;
592
+ align-items: center;
593
+ justify-content: center;
594
+ border-radius: 999px;
595
+ padding: 0.2rem 0.6rem;
596
+ font-size: var(--font-s, 1.2rem);
597
+ font-weight: 600;
598
+ }
599
+ .s {
600
+ font-size: 1.1rem;
601
+ padding: 0.1rem 0.5rem;
602
+ }
603
+ .m {
604
+ font-size: var(--font-s, 1.2rem);
605
+ }
606
+ .default {
607
+ background: var(--color-gray, #e6e9ef);
608
+ color: var(--color-black, #111111);
609
+ }
610
+ .primary {
611
+ background: var(--color-primary, #333333);
612
+ color: var(--color-white, #ffffff);
613
+ }
614
+ .success {
615
+ background: var(--color-success, #2f9e44);
616
+ color: var(--color-white, #ffffff);
617
+ }
618
+ .warning {
619
+ background: var(--color-warning, #f59f00);
620
+ color: var(--color-white, #ffffff);
621
+ }
622
+ .danger {
623
+ background: var(--color-danger, #d64545);
624
+ color: var(--color-white, #ffffff);
625
+ }
626
+
627
+ /* ui/alert/Alert.module.css */
628
+ .alert {
629
+ display: flex;
630
+ align-items: flex-start;
631
+ gap: 1rem;
632
+ padding: 1rem 1.2rem;
633
+ border-radius: 1rem;
634
+ background: var(--color-white, #ffffff);
635
+ border: 1px solid var(--color-gray, #e6e9ef);
636
+ }
637
+ .body {
638
+ flex: 1;
639
+ display: flex;
640
+ flex-direction: column;
641
+ gap: 0.4rem;
642
+ }
643
+ .title {
644
+ font-size: var(--font-m, 1.6rem);
645
+ font-weight: 600;
646
+ }
647
+ .content {
648
+ font-size: var(--font-s, 1.4rem);
649
+ color: var(--color-gray, #666666);
650
+ }
651
+ .close {
652
+ border: none;
653
+ background: transparent;
654
+ font-size: 1.8rem;
655
+ cursor: pointer;
656
+ }
657
+ .info {
658
+ border-color: var(--color-gray, #e6e9ef);
659
+ }
660
+ .success {
661
+ border-color: var(--color-success, #2f9e44);
662
+ }
663
+ .warning {
664
+ border-color: var(--color-warning, #f59f00);
665
+ }
666
+ .error {
667
+ border-color: var(--color-danger, #d64545);
668
+ }
669
+
670
+ /* ui/skeleton/Skeleton.module.css */
671
+ .skeleton {
672
+ position: relative;
673
+ overflow: hidden;
674
+ background: var(--color-gray, #e6e9ef);
675
+ border-radius: 0.6rem;
676
+ }
677
+ .skeleton::after {
678
+ content: "";
679
+ position: absolute;
680
+ top: 0;
681
+ left: -100%;
682
+ width: 100%;
683
+ height: 100%;
684
+ background:
685
+ linear-gradient(
686
+ 90deg,
687
+ transparent,
688
+ rgba(255, 255, 255, 0.6),
689
+ transparent);
690
+ animation: shimmer 1.6s infinite;
691
+ }
692
+ .circle {
693
+ border-radius: 50%;
694
+ }
695
+ @keyframes shimmer {
696
+ 100% {
697
+ left: 100%;
698
+ }
699
+ }
700
+
29
701
  /* ui/backdrop/BackDrop.module.css */
30
702
  .backdrop {
31
703
  position: fixed;
@@ -42,7 +714,7 @@
42
714
  transition: opacity 0.3s ease, visibility 0.3s ease;
43
715
  will-change: opacity, backdrop-filter;
44
716
  }
45
- .backdrop.is-active {
717
+ .backdrop.isActive {
46
718
  opacity: 1;
47
719
  visibility: visible;
48
720
  pointer-events: auto;