@larose-ui/react 0.1.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,1730 @@
1
+ /* src/Spinner/Spinner.module.css */
2
+ .spinner {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ }
7
+ .spinner[data-size=sm] .circle {
8
+ width: 1rem;
9
+ height: 1rem;
10
+ border-width: 2px;
11
+ }
12
+ .spinner[data-size=md] .circle {
13
+ width: 1.5rem;
14
+ height: 1.5rem;
15
+ border-width: 2px;
16
+ }
17
+ .spinner[data-size=lg] .circle {
18
+ width: 2rem;
19
+ height: 2rem;
20
+ border-width: 3px;
21
+ }
22
+ .circle {
23
+ border: 2px solid var(--lr-color-border);
24
+ border-top-color: var(--lr-color-primary);
25
+ border-radius: var(--lr-radius-full);
26
+ animation: spin 0.8s linear infinite;
27
+ }
28
+ @keyframes spin {
29
+ to {
30
+ transform: rotate(360deg);
31
+ }
32
+ }
33
+ @media (prefers-reduced-motion: reduce) {
34
+ .circle {
35
+ animation: none;
36
+ border-top-color: var(--lr-color-primary);
37
+ opacity: 0.7;
38
+ }
39
+ }
40
+
41
+ /* src/Button/Button.module.css */
42
+ .button {
43
+ display: inline-flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ gap: var(--lr-space-2);
47
+ font-family: var(--lr-font-family-sans);
48
+ font-weight: var(--lr-font-weight-medium);
49
+ line-height: var(--lr-line-height-tight);
50
+ border: 1px solid transparent;
51
+ border-radius: var(--lr-radius-md);
52
+ cursor: pointer;
53
+ transition:
54
+ background-color var(--lr-duration-normal) var(--lr-easing-default),
55
+ border-color var(--lr-duration-normal) var(--lr-easing-default),
56
+ color var(--lr-duration-normal) var(--lr-easing-default),
57
+ opacity var(--lr-duration-normal) var(--lr-easing-default);
58
+ position: relative;
59
+ }
60
+ .button:focus-visible {
61
+ outline: 2px solid var(--lr-color-primary);
62
+ outline-offset: 2px;
63
+ }
64
+ .button[data-size=sm] {
65
+ padding: var(--lr-space-1) var(--lr-space-3);
66
+ font-size: var(--lr-font-size-sm);
67
+ min-height: 2rem;
68
+ }
69
+ .button[data-size=md] {
70
+ padding: var(--lr-space-2) var(--lr-space-4);
71
+ font-size: var(--lr-font-size-md);
72
+ min-height: 2.5rem;
73
+ }
74
+ .button[data-size=lg] {
75
+ padding: var(--lr-space-3) var(--lr-space-6);
76
+ font-size: var(--lr-font-size-lg);
77
+ min-height: 3rem;
78
+ }
79
+ .button[data-variant=primary] {
80
+ background-color: var(--lr-color-primary);
81
+ color: var(--lr-color-text-inverse);
82
+ }
83
+ .button[data-variant=primary]:hover:not(:disabled) {
84
+ background-color: var(--lr-color-primary-hover);
85
+ }
86
+ .button[data-variant=primary]:active:not(:disabled) {
87
+ background-color: var(--lr-color-primary-active);
88
+ }
89
+ .button[data-variant=secondary] {
90
+ background-color: var(--lr-color-surface);
91
+ color: var(--lr-color-text);
92
+ border-color: var(--lr-color-border);
93
+ }
94
+ .button[data-variant=secondary]:hover:not(:disabled) {
95
+ background-color: var(--lr-color-surface-elevated);
96
+ }
97
+ .button[data-variant=outline] {
98
+ background-color: transparent;
99
+ color: var(--lr-color-primary);
100
+ border-color: var(--lr-color-primary);
101
+ }
102
+ .button[data-variant=outline]:hover:not(:disabled) {
103
+ background-color: var(--lr-color-surface);
104
+ }
105
+ .button[data-variant=ghost] {
106
+ background-color: transparent;
107
+ color: var(--lr-color-text);
108
+ }
109
+ .button[data-variant=ghost]:hover:not(:disabled) {
110
+ background-color: var(--lr-color-surface);
111
+ }
112
+ .button[data-variant=destructive] {
113
+ background-color: var(--lr-color-error);
114
+ color: var(--lr-color-text-inverse);
115
+ }
116
+ .button[data-variant=destructive]:hover:not(:disabled) {
117
+ opacity: 0.9;
118
+ }
119
+ .button[data-state=loading],
120
+ .button[data-state=disabled],
121
+ .button:disabled {
122
+ opacity: 0.6;
123
+ cursor: not-allowed;
124
+ }
125
+ .button[data-state=error] {
126
+ border-color: var(--lr-color-error);
127
+ }
128
+ .spinner {
129
+ display: inline-flex;
130
+ }
131
+ .icon {
132
+ display: inline-flex;
133
+ flex-shrink: 0;
134
+ }
135
+ .content {
136
+ display: inline-flex;
137
+ align-items: center;
138
+ }
139
+ .errorMessage {
140
+ position: absolute;
141
+ bottom: calc(100% + var(--lr-space-1));
142
+ left: 50%;
143
+ transform: translateX(-50%);
144
+ font-size: var(--lr-font-size-xs);
145
+ color: var(--lr-color-error);
146
+ white-space: nowrap;
147
+ }
148
+
149
+ /* src/Input/Input.module.css */
150
+ .wrapper {
151
+ display: flex;
152
+ flex-direction: column;
153
+ gap: var(--lr-space-1);
154
+ }
155
+ .label {
156
+ font-size: var(--lr-font-size-sm);
157
+ font-weight: var(--lr-font-weight-medium);
158
+ color: var(--lr-color-text);
159
+ }
160
+ .inputContainer {
161
+ position: relative;
162
+ }
163
+ .input {
164
+ width: 100%;
165
+ font-family: var(--lr-font-family-sans);
166
+ color: var(--lr-color-text);
167
+ background-color: var(--lr-color-background);
168
+ border: 1px solid var(--lr-color-border);
169
+ border-radius: var(--lr-radius-md);
170
+ transition: border-color var(--lr-duration-normal) var(--lr-easing-default), box-shadow var(--lr-duration-normal) var(--lr-easing-default);
171
+ }
172
+ .input:focus {
173
+ outline: none;
174
+ border-color: var(--lr-color-primary);
175
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--lr-color-primary) 20%, transparent);
176
+ }
177
+ .input[data-size=sm] {
178
+ padding: var(--lr-space-1) var(--lr-space-2);
179
+ font-size: var(--lr-font-size-sm);
180
+ }
181
+ .input[data-size=md] {
182
+ padding: var(--lr-space-2) var(--lr-space-3);
183
+ font-size: var(--lr-font-size-md);
184
+ }
185
+ .input[data-size=lg] {
186
+ padding: var(--lr-space-3) var(--lr-space-4);
187
+ font-size: var(--lr-font-size-lg);
188
+ }
189
+ .input[data-state=disabled],
190
+ .input:disabled {
191
+ opacity: 0.6;
192
+ cursor: not-allowed;
193
+ background-color: var(--lr-color-surface);
194
+ }
195
+ .input[data-state=readonly],
196
+ .input:read-only {
197
+ background-color: var(--lr-color-surface);
198
+ cursor: default;
199
+ }
200
+ .input[data-state=error] {
201
+ border-color: var(--lr-color-error);
202
+ }
203
+ .input[data-state=error]:focus {
204
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--lr-color-error) 20%, transparent);
205
+ }
206
+ .loadingIndicator {
207
+ position: absolute;
208
+ right: var(--lr-space-3);
209
+ top: 50%;
210
+ transform: translateY(-50%);
211
+ width: 1rem;
212
+ height: 1rem;
213
+ border: 2px solid var(--lr-color-border);
214
+ border-top-color: var(--lr-color-primary);
215
+ border-radius: var(--lr-radius-full);
216
+ animation: spin 0.8s linear infinite;
217
+ }
218
+ @keyframes spin {
219
+ to {
220
+ transform: translateY(-50%) rotate(360deg);
221
+ }
222
+ }
223
+ .hint {
224
+ font-size: var(--lr-font-size-xs);
225
+ color: var(--lr-color-text-muted);
226
+ }
227
+ .error {
228
+ font-size: var(--lr-font-size-xs);
229
+ color: var(--lr-color-error);
230
+ }
231
+
232
+ /* src/Textarea/Textarea.module.css */
233
+ .wrapper {
234
+ display: flex;
235
+ flex-direction: column;
236
+ gap: var(--lr-space-1);
237
+ }
238
+ .label {
239
+ font-size: var(--lr-font-size-sm);
240
+ font-weight: var(--lr-font-weight-medium);
241
+ color: var(--lr-color-text);
242
+ }
243
+ .inputContainer {
244
+ position: relative;
245
+ }
246
+ .textarea {
247
+ width: 100%;
248
+ min-height: 5rem;
249
+ resize: vertical;
250
+ font-family: var(--lr-font-family-sans);
251
+ color: var(--lr-color-text);
252
+ background-color: var(--lr-color-background);
253
+ border: 1px solid var(--lr-color-border);
254
+ border-radius: var(--lr-radius-md);
255
+ transition: border-color var(--lr-duration-normal) var(--lr-easing-default), box-shadow var(--lr-duration-normal) var(--lr-easing-default);
256
+ }
257
+ .textarea:focus {
258
+ outline: none;
259
+ border-color: var(--lr-color-primary);
260
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--lr-color-primary) 20%, transparent);
261
+ }
262
+ .textarea[data-size=sm] {
263
+ padding: var(--lr-space-1) var(--lr-space-2);
264
+ font-size: var(--lr-font-size-sm);
265
+ }
266
+ .textarea[data-size=md] {
267
+ padding: var(--lr-space-2) var(--lr-space-3);
268
+ font-size: var(--lr-font-size-md);
269
+ }
270
+ .textarea[data-size=lg] {
271
+ padding: var(--lr-space-3) var(--lr-space-4);
272
+ font-size: var(--lr-font-size-lg);
273
+ }
274
+ .textarea[data-state=disabled],
275
+ .textarea:disabled {
276
+ opacity: 0.6;
277
+ cursor: not-allowed;
278
+ background-color: var(--lr-color-surface);
279
+ }
280
+ .textarea[data-state=readonly],
281
+ .textarea:read-only {
282
+ background-color: var(--lr-color-surface);
283
+ cursor: default;
284
+ }
285
+ .textarea[data-state=error] {
286
+ border-color: var(--lr-color-error);
287
+ }
288
+ .textarea[data-state=error]:focus {
289
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--lr-color-error) 20%, transparent);
290
+ }
291
+ .loadingIndicator {
292
+ position: absolute;
293
+ right: var(--lr-space-3);
294
+ top: var(--lr-space-3);
295
+ width: 1rem;
296
+ height: 1rem;
297
+ border: 2px solid var(--lr-color-border);
298
+ border-top-color: var(--lr-color-primary);
299
+ border-radius: var(--lr-radius-full);
300
+ animation: spin 0.8s linear infinite;
301
+ }
302
+ @keyframes spin {
303
+ to {
304
+ transform: rotate(360deg);
305
+ }
306
+ }
307
+ .hint {
308
+ font-size: var(--lr-font-size-xs);
309
+ color: var(--lr-color-text-muted);
310
+ }
311
+ .error {
312
+ font-size: var(--lr-font-size-xs);
313
+ color: var(--lr-color-error);
314
+ }
315
+
316
+ /* src/Select/Select.module.css */
317
+ .wrapper {
318
+ display: flex;
319
+ flex-direction: column;
320
+ gap: var(--lr-space-1);
321
+ }
322
+ .label {
323
+ font-size: var(--lr-font-size-sm);
324
+ font-weight: var(--lr-font-weight-medium);
325
+ color: var(--lr-color-text);
326
+ }
327
+ .inputContainer {
328
+ position: relative;
329
+ }
330
+ .select {
331
+ width: 100%;
332
+ font-family: var(--lr-font-family-sans);
333
+ color: var(--lr-color-text);
334
+ background-color: var(--lr-color-background);
335
+ border: 1px solid var(--lr-color-border);
336
+ border-radius: var(--lr-radius-md);
337
+ transition: border-color var(--lr-duration-normal) var(--lr-easing-default), box-shadow var(--lr-duration-normal) var(--lr-easing-default);
338
+ }
339
+ .select:focus {
340
+ outline: none;
341
+ border-color: var(--lr-color-primary);
342
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--lr-color-primary) 20%, transparent);
343
+ }
344
+ .select[data-size=sm] {
345
+ padding: var(--lr-space-1) var(--lr-space-2);
346
+ font-size: var(--lr-font-size-sm);
347
+ }
348
+ .select[data-size=md] {
349
+ padding: var(--lr-space-2) var(--lr-space-3);
350
+ font-size: var(--lr-font-size-md);
351
+ }
352
+ .select[data-size=lg] {
353
+ padding: var(--lr-space-3) var(--lr-space-4);
354
+ font-size: var(--lr-font-size-lg);
355
+ }
356
+ .select[data-state=disabled],
357
+ .select:disabled {
358
+ opacity: 0.6;
359
+ cursor: not-allowed;
360
+ background-color: var(--lr-color-surface);
361
+ }
362
+ .select[data-state=error] {
363
+ border-color: var(--lr-color-error);
364
+ }
365
+ .select[data-state=error]:focus {
366
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--lr-color-error) 20%, transparent);
367
+ }
368
+ .loadingIndicator {
369
+ position: absolute;
370
+ right: var(--lr-space-8);
371
+ top: 50%;
372
+ transform: translateY(-50%);
373
+ width: 1rem;
374
+ height: 1rem;
375
+ border: 2px solid var(--lr-color-border);
376
+ border-top-color: var(--lr-color-primary);
377
+ border-radius: var(--lr-radius-full);
378
+ animation: spin 0.8s linear infinite;
379
+ pointer-events: none;
380
+ }
381
+ @keyframes spin {
382
+ to {
383
+ transform: translateY(-50%) rotate(360deg);
384
+ }
385
+ }
386
+ .hint {
387
+ font-size: var(--lr-font-size-xs);
388
+ color: var(--lr-color-text-muted);
389
+ }
390
+ .error {
391
+ font-size: var(--lr-font-size-xs);
392
+ color: var(--lr-color-error);
393
+ }
394
+
395
+ /* src/Checkbox/Checkbox.module.css */
396
+ .wrapper {
397
+ display: flex;
398
+ flex-direction: column;
399
+ gap: var(--lr-space-1);
400
+ }
401
+ .row {
402
+ display: inline-flex;
403
+ align-items: flex-start;
404
+ gap: var(--lr-space-2);
405
+ cursor: pointer;
406
+ }
407
+ .input {
408
+ margin-top: 0.15rem;
409
+ accent-color: var(--lr-color-primary);
410
+ cursor: pointer;
411
+ }
412
+ .input[data-size=sm] {
413
+ width: 0.875rem;
414
+ height: 0.875rem;
415
+ }
416
+ .input[data-size=md] {
417
+ width: 1rem;
418
+ height: 1rem;
419
+ }
420
+ .input[data-size=lg] {
421
+ width: 1.125rem;
422
+ height: 1.125rem;
423
+ }
424
+ .input:disabled {
425
+ cursor: not-allowed;
426
+ opacity: 0.6;
427
+ }
428
+ .label {
429
+ font-size: var(--lr-font-size-sm);
430
+ color: var(--lr-color-text);
431
+ }
432
+ .hint {
433
+ margin-left: calc(1rem + var(--lr-space-2));
434
+ font-size: var(--lr-font-size-xs);
435
+ color: var(--lr-color-text-muted);
436
+ }
437
+ .error {
438
+ margin-left: calc(1rem + var(--lr-space-2));
439
+ font-size: var(--lr-font-size-xs);
440
+ color: var(--lr-color-error);
441
+ }
442
+
443
+ /* src/Radio/Radio.module.css */
444
+ .wrapper {
445
+ display: flex;
446
+ flex-direction: column;
447
+ gap: var(--lr-space-1);
448
+ }
449
+ .row {
450
+ display: inline-flex;
451
+ align-items: flex-start;
452
+ gap: var(--lr-space-2);
453
+ cursor: pointer;
454
+ }
455
+ .input {
456
+ margin-top: 0.15rem;
457
+ accent-color: var(--lr-color-primary);
458
+ cursor: pointer;
459
+ }
460
+ .input[data-size=sm] {
461
+ width: 0.875rem;
462
+ height: 0.875rem;
463
+ }
464
+ .input[data-size=md] {
465
+ width: 1rem;
466
+ height: 1rem;
467
+ }
468
+ .input[data-size=lg] {
469
+ width: 1.125rem;
470
+ height: 1.125rem;
471
+ }
472
+ .input:disabled {
473
+ cursor: not-allowed;
474
+ opacity: 0.6;
475
+ }
476
+ .label {
477
+ font-size: var(--lr-font-size-sm);
478
+ color: var(--lr-color-text);
479
+ }
480
+ .hint {
481
+ margin-left: calc(1rem + var(--lr-space-2));
482
+ font-size: var(--lr-font-size-xs);
483
+ color: var(--lr-color-text-muted);
484
+ }
485
+ .error {
486
+ margin-left: calc(1rem + var(--lr-space-2));
487
+ font-size: var(--lr-font-size-xs);
488
+ color: var(--lr-color-error);
489
+ }
490
+
491
+ /* src/Switch/Switch.module.css */
492
+ .wrapper {
493
+ display: flex;
494
+ flex-direction: column;
495
+ gap: var(--lr-space-1);
496
+ }
497
+ .row {
498
+ display: inline-flex;
499
+ align-items: center;
500
+ gap: var(--lr-space-3);
501
+ }
502
+ .track {
503
+ position: relative;
504
+ display: inline-flex;
505
+ align-items: center;
506
+ border: none;
507
+ border-radius: var(--lr-radius-full);
508
+ background: var(--lr-color-border);
509
+ cursor: pointer;
510
+ transition: background-color var(--lr-duration-normal) var(--lr-easing-default);
511
+ }
512
+ .track[data-state=on] {
513
+ background: var(--lr-color-primary);
514
+ }
515
+ .track[data-size=sm] {
516
+ width: 2rem;
517
+ height: 1.125rem;
518
+ }
519
+ .track[data-size=md] {
520
+ width: 2.5rem;
521
+ height: 1.375rem;
522
+ }
523
+ .track[data-size=lg] {
524
+ width: 3rem;
525
+ height: 1.625rem;
526
+ }
527
+ .track:disabled {
528
+ opacity: 0.6;
529
+ cursor: not-allowed;
530
+ }
531
+ .thumb {
532
+ position: absolute;
533
+ left: 0.125rem;
534
+ border-radius: var(--lr-radius-full);
535
+ background: var(--lr-color-text-inverse);
536
+ transition: transform var(--lr-duration-normal) var(--lr-easing-default);
537
+ }
538
+ .track[data-size=sm] .thumb {
539
+ width: 0.875rem;
540
+ height: 0.875rem;
541
+ }
542
+ .track[data-size=md] .thumb {
543
+ width: 1.125rem;
544
+ height: 1.125rem;
545
+ }
546
+ .track[data-size=lg] .thumb {
547
+ width: 1.375rem;
548
+ height: 1.375rem;
549
+ }
550
+ .track[data-state=on][data-size=sm] .thumb {
551
+ transform: translateX(0.875rem);
552
+ }
553
+ .track[data-state=on][data-size=md] .thumb {
554
+ transform: translateX(1.125rem);
555
+ }
556
+ .track[data-state=on][data-size=lg] .thumb {
557
+ transform: translateX(1.375rem);
558
+ }
559
+ .label {
560
+ font-size: var(--lr-font-size-sm);
561
+ color: var(--lr-color-text);
562
+ cursor: pointer;
563
+ }
564
+ .hint {
565
+ font-size: var(--lr-font-size-xs);
566
+ color: var(--lr-color-text-muted);
567
+ }
568
+
569
+ /* src/Progress/Progress.module.css */
570
+ .wrapper {
571
+ display: flex;
572
+ flex-direction: column;
573
+ gap: var(--lr-space-2);
574
+ }
575
+ .header {
576
+ display: flex;
577
+ align-items: center;
578
+ justify-content: space-between;
579
+ gap: var(--lr-space-2);
580
+ }
581
+ .label {
582
+ font-size: var(--lr-font-size-sm);
583
+ font-weight: var(--lr-font-weight-medium);
584
+ color: var(--lr-color-text);
585
+ }
586
+ .value {
587
+ font-size: var(--lr-font-size-xs);
588
+ color: var(--lr-color-text-muted);
589
+ }
590
+ .track {
591
+ width: 100%;
592
+ height: 0.5rem;
593
+ border-radius: var(--lr-radius-full);
594
+ background: var(--lr-color-surface);
595
+ overflow: hidden;
596
+ }
597
+ .bar {
598
+ height: 100%;
599
+ border-radius: inherit;
600
+ background: var(--lr-color-primary);
601
+ transition: width var(--lr-duration-normal) var(--lr-easing-default);
602
+ }
603
+ .track[data-variant=success] .bar {
604
+ background: var(--lr-color-success);
605
+ }
606
+ .track[data-variant=error] .bar {
607
+ background: var(--lr-color-error);
608
+ }
609
+ .track[data-state=loading] .bar {
610
+ background:
611
+ linear-gradient(
612
+ 90deg,
613
+ var(--lr-color-primary) 0%,
614
+ color-mix(in srgb, var(--lr-color-primary) 60%, white) 50%,
615
+ var(--lr-color-primary) 100%);
616
+ background-size: 200% 100%;
617
+ animation: shimmer 1.2s linear infinite;
618
+ }
619
+ @keyframes shimmer {
620
+ from {
621
+ background-position: 200% 0;
622
+ }
623
+ to {
624
+ background-position: -200% 0;
625
+ }
626
+ }
627
+
628
+ /* src/Alert/Alert.module.css */
629
+ .alert {
630
+ display: flex;
631
+ align-items: flex-start;
632
+ gap: var(--lr-space-3);
633
+ padding: var(--lr-space-3) var(--lr-space-4);
634
+ border-radius: var(--lr-radius-md);
635
+ border: 1px solid transparent;
636
+ font-size: var(--lr-font-size-sm);
637
+ }
638
+ .alert[data-variant=info] {
639
+ background-color: color-mix(in srgb, var(--lr-color-info) 10%, var(--lr-color-surface));
640
+ border-color: color-mix(in srgb, var(--lr-color-info) 30%, transparent);
641
+ color: var(--lr-color-text);
642
+ }
643
+ .alert[data-variant=success] {
644
+ background-color: color-mix(in srgb, var(--lr-color-success) 10%, var(--lr-color-surface));
645
+ border-color: color-mix(in srgb, var(--lr-color-success) 30%, transparent);
646
+ color: var(--lr-color-text);
647
+ }
648
+ .alert[data-variant=warning] {
649
+ background-color: color-mix(in srgb, var(--lr-color-warning) 10%, var(--lr-color-surface));
650
+ border-color: color-mix(in srgb, var(--lr-color-warning) 30%, transparent);
651
+ color: var(--lr-color-text);
652
+ }
653
+ .alert[data-variant=error] {
654
+ background-color: color-mix(in srgb, var(--lr-color-error) 10%, var(--lr-color-surface));
655
+ border-color: color-mix(in srgb, var(--lr-color-error) 30%, transparent);
656
+ color: var(--lr-color-text);
657
+ }
658
+ .content {
659
+ flex: 1;
660
+ }
661
+ .title {
662
+ display: block;
663
+ font-weight: var(--lr-font-weight-semibold);
664
+ margin-bottom: var(--lr-space-1);
665
+ }
666
+ .message {
667
+ line-height: var(--lr-line-height-normal);
668
+ }
669
+ .dismiss {
670
+ background: none;
671
+ border: none;
672
+ font-size: var(--lr-font-size-xl);
673
+ line-height: 1;
674
+ cursor: pointer;
675
+ color: var(--lr-color-text-muted);
676
+ padding: 0;
677
+ min-width: 1.5rem;
678
+ min-height: 1.5rem;
679
+ }
680
+ .dismiss:hover {
681
+ color: var(--lr-color-text);
682
+ }
683
+ .dismiss:focus-visible {
684
+ outline: 2px solid var(--lr-color-primary);
685
+ outline-offset: 2px;
686
+ border-radius: var(--lr-radius-sm);
687
+ }
688
+
689
+ /* src/Modal/Modal.module.css */
690
+ .overlay {
691
+ position: fixed;
692
+ inset: 0;
693
+ z-index: 1000;
694
+ display: flex;
695
+ align-items: center;
696
+ justify-content: center;
697
+ background-color: rgb(0 0 0 / 0.5);
698
+ padding: var(--lr-space-4);
699
+ }
700
+ .modal {
701
+ background: var(--lr-color-surface-elevated);
702
+ border-radius: var(--lr-radius-lg);
703
+ box-shadow: var(--lr-shadow-lg);
704
+ max-width: 32rem;
705
+ width: 100%;
706
+ max-height: 90vh;
707
+ overflow-y: auto;
708
+ padding: var(--lr-space-6);
709
+ }
710
+ .title {
711
+ margin: 0 0 var(--lr-space-2);
712
+ font-size: var(--lr-font-size-xl);
713
+ font-weight: var(--lr-font-weight-semibold);
714
+ }
715
+ .description {
716
+ margin: 0 0 var(--lr-space-4);
717
+ color: var(--lr-color-text-muted);
718
+ font-size: var(--lr-font-size-sm);
719
+ }
720
+ .content {
721
+ display: flex;
722
+ flex-direction: column;
723
+ gap: var(--lr-space-4);
724
+ }
725
+
726
+ /* src/Dialog/Dialog.module.css */
727
+ .body {
728
+ font-size: var(--lr-font-size-sm);
729
+ line-height: var(--lr-line-height-normal);
730
+ }
731
+ .actions {
732
+ display: flex;
733
+ justify-content: flex-end;
734
+ gap: var(--lr-space-2);
735
+ margin-top: var(--lr-space-4);
736
+ }
737
+
738
+ /* src/Card/Card.module.css */
739
+ .card {
740
+ background: var(--lr-color-surface-elevated);
741
+ border: 1px solid var(--lr-color-border);
742
+ border-radius: var(--lr-radius-lg);
743
+ box-shadow: var(--lr-shadow-sm);
744
+ overflow: hidden;
745
+ }
746
+ .card[data-padding=none] .body,
747
+ .card[data-padding=none] .header,
748
+ .card[data-padding=none] .footer {
749
+ padding: 0;
750
+ }
751
+ .card[data-padding=sm] .body,
752
+ .card[data-padding=sm] .header,
753
+ .card[data-padding=sm] .footer {
754
+ padding: var(--lr-space-3);
755
+ }
756
+ .card[data-padding=md] .body,
757
+ .card[data-padding=md] .header,
758
+ .card[data-padding=md] .footer {
759
+ padding: var(--lr-space-4);
760
+ }
761
+ .card[data-padding=lg] .body,
762
+ .card[data-padding=lg] .header,
763
+ .card[data-padding=lg] .footer {
764
+ padding: var(--lr-space-6);
765
+ }
766
+ .header {
767
+ border-bottom: 1px solid var(--lr-color-border);
768
+ }
769
+ .title {
770
+ margin: 0;
771
+ font-size: var(--lr-font-size-lg);
772
+ font-weight: var(--lr-font-weight-semibold);
773
+ }
774
+ .description {
775
+ margin: var(--lr-space-1) 0 0;
776
+ font-size: var(--lr-font-size-sm);
777
+ color: var(--lr-color-text-muted);
778
+ }
779
+ .body {
780
+ font-size: var(--lr-font-size-sm);
781
+ }
782
+ .footer {
783
+ border-top: 1px solid var(--lr-color-border);
784
+ display: flex;
785
+ justify-content: flex-end;
786
+ gap: var(--lr-space-2);
787
+ }
788
+
789
+ /* src/Badge/Badge.module.css */
790
+ .badge {
791
+ display: inline-flex;
792
+ align-items: center;
793
+ padding: var(--lr-space-1) var(--lr-space-2);
794
+ font-size: var(--lr-font-size-xs);
795
+ font-weight: var(--lr-font-weight-medium);
796
+ border-radius: var(--lr-radius-full);
797
+ line-height: 1;
798
+ }
799
+ .badge[data-variant=default] {
800
+ background: var(--lr-color-surface);
801
+ color: var(--lr-color-text);
802
+ border: 1px solid var(--lr-color-border);
803
+ }
804
+ .badge[data-variant=success] {
805
+ background: color-mix(in srgb, var(--lr-color-success) 15%, transparent);
806
+ color: var(--lr-color-success);
807
+ }
808
+ .badge[data-variant=warning] {
809
+ background: color-mix(in srgb, var(--lr-color-warning) 15%, transparent);
810
+ color: var(--lr-color-warning);
811
+ }
812
+ .badge[data-variant=error] {
813
+ background: color-mix(in srgb, var(--lr-color-error) 15%, transparent);
814
+ color: var(--lr-color-error);
815
+ }
816
+ .badge[data-variant=info] {
817
+ background: color-mix(in srgb, var(--lr-color-info) 15%, transparent);
818
+ color: var(--lr-color-info);
819
+ }
820
+
821
+ /* src/Skeleton/Skeleton.module.css */
822
+ .skeleton {
823
+ background:
824
+ linear-gradient(
825
+ 90deg,
826
+ var(--lr-color-surface) 25%,
827
+ var(--lr-color-border) 50%,
828
+ var(--lr-color-surface) 75%);
829
+ background-size: 200% 100%;
830
+ animation: shimmer 1.5s infinite;
831
+ border-radius: var(--lr-radius-sm);
832
+ }
833
+ .skeleton[data-variant=circular] {
834
+ border-radius: var(--lr-radius-full);
835
+ }
836
+ .skeleton[data-variant=rectangular] {
837
+ border-radius: var(--lr-radius-md);
838
+ }
839
+ .group {
840
+ display: flex;
841
+ flex-direction: column;
842
+ gap: var(--lr-space-2);
843
+ }
844
+ @keyframes shimmer {
845
+ 0% {
846
+ background-position: 200% 0;
847
+ }
848
+ 100% {
849
+ background-position: -200% 0;
850
+ }
851
+ }
852
+ @media (prefers-reduced-motion: reduce) {
853
+ .skeleton {
854
+ animation: none;
855
+ background: var(--lr-color-surface);
856
+ }
857
+ }
858
+
859
+ /* src/EmptyState/EmptyState.module.css */
860
+ .empty {
861
+ display: flex;
862
+ flex-direction: column;
863
+ align-items: center;
864
+ justify-content: center;
865
+ text-align: center;
866
+ padding: var(--lr-space-8) var(--lr-space-4);
867
+ gap: var(--lr-space-3);
868
+ }
869
+ .empty[data-state=offline] .title {
870
+ color: var(--lr-color-warning);
871
+ }
872
+ .empty[data-state=unauthorized] .title {
873
+ color: var(--lr-color-error);
874
+ }
875
+ .icon {
876
+ font-size: var(--lr-font-size-2xl);
877
+ color: var(--lr-color-text-muted);
878
+ }
879
+ .title {
880
+ margin: 0;
881
+ font-size: var(--lr-font-size-lg);
882
+ font-weight: var(--lr-font-weight-semibold);
883
+ }
884
+ .description {
885
+ margin: 0;
886
+ max-width: 24rem;
887
+ color: var(--lr-color-text-muted);
888
+ font-size: var(--lr-font-size-sm);
889
+ line-height: var(--lr-line-height-relaxed);
890
+ }
891
+
892
+ /* src/Tooltip/Tooltip.module.css */
893
+ .wrapper {
894
+ position: relative;
895
+ display: inline-flex;
896
+ }
897
+ .tooltip {
898
+ position: absolute;
899
+ z-index: 50;
900
+ max-width: 16rem;
901
+ padding: var(--lr-space-2) var(--lr-space-3);
902
+ border-radius: var(--lr-radius-md);
903
+ background: var(--lr-color-text);
904
+ color: var(--lr-color-text-inverse);
905
+ font-size: var(--lr-font-size-xs);
906
+ line-height: var(--lr-line-height-normal);
907
+ box-shadow: var(--lr-shadow-md);
908
+ pointer-events: none;
909
+ white-space: normal;
910
+ }
911
+ .tooltip[data-side=top] {
912
+ bottom: calc(100% + var(--lr-space-2));
913
+ left: 50%;
914
+ transform: translateX(-50%);
915
+ }
916
+ .tooltip[data-side=bottom] {
917
+ top: calc(100% + var(--lr-space-2));
918
+ left: 50%;
919
+ transform: translateX(-50%);
920
+ }
921
+ .tooltip[data-side=left] {
922
+ right: calc(100% + var(--lr-space-2));
923
+ top: 50%;
924
+ transform: translateY(-50%);
925
+ }
926
+ .tooltip[data-side=right] {
927
+ left: calc(100% + var(--lr-space-2));
928
+ top: 50%;
929
+ transform: translateY(-50%);
930
+ }
931
+
932
+ /* src/Toast/Toast.module.css */
933
+ .viewport {
934
+ position: fixed;
935
+ z-index: 100;
936
+ display: flex;
937
+ flex-direction: column;
938
+ gap: var(--lr-space-2);
939
+ width: min(24rem, calc(100vw - var(--lr-space-8)));
940
+ pointer-events: none;
941
+ }
942
+ .viewport[data-placement=bottom-right] {
943
+ right: var(--lr-space-4);
944
+ bottom: var(--lr-space-4);
945
+ }
946
+ .viewport[data-placement=bottom-left] {
947
+ left: var(--lr-space-4);
948
+ bottom: var(--lr-space-4);
949
+ }
950
+ .viewport[data-placement=top-right] {
951
+ right: var(--lr-space-4);
952
+ top: var(--lr-space-4);
953
+ }
954
+ .viewport[data-placement=top-left] {
955
+ left: var(--lr-space-4);
956
+ top: var(--lr-space-4);
957
+ }
958
+ .toast {
959
+ display: flex;
960
+ align-items: flex-start;
961
+ gap: var(--lr-space-3);
962
+ padding: var(--lr-space-3) var(--lr-space-4);
963
+ border-radius: var(--lr-radius-md);
964
+ border: 1px solid transparent;
965
+ background: var(--lr-color-surface-elevated);
966
+ box-shadow: var(--lr-shadow-lg);
967
+ pointer-events: auto;
968
+ }
969
+ .toast[data-variant=info] {
970
+ border-color: color-mix(in srgb, var(--lr-color-info) 30%, transparent);
971
+ }
972
+ .toast[data-variant=success] {
973
+ border-color: color-mix(in srgb, var(--lr-color-success) 30%, transparent);
974
+ }
975
+ .toast[data-variant=warning] {
976
+ border-color: color-mix(in srgb, var(--lr-color-warning) 30%, transparent);
977
+ }
978
+ .toast[data-variant=error] {
979
+ border-color: color-mix(in srgb, var(--lr-color-error) 30%, transparent);
980
+ }
981
+ .content {
982
+ flex: 1;
983
+ min-width: 0;
984
+ }
985
+ .title {
986
+ display: block;
987
+ font-size: var(--lr-font-size-sm);
988
+ font-weight: var(--lr-font-weight-semibold);
989
+ margin-bottom: var(--lr-space-1);
990
+ color: var(--lr-color-text);
991
+ }
992
+ .message {
993
+ font-size: var(--lr-font-size-sm);
994
+ color: var(--lr-color-text-muted);
995
+ }
996
+ .dismiss {
997
+ background: none;
998
+ border: none;
999
+ font-size: var(--lr-font-size-xl);
1000
+ line-height: 1;
1001
+ cursor: pointer;
1002
+ color: var(--lr-color-text-muted);
1003
+ padding: 0;
1004
+ min-width: 1.5rem;
1005
+ min-height: 1.5rem;
1006
+ }
1007
+ .dismiss:hover {
1008
+ color: var(--lr-color-text);
1009
+ }
1010
+ .dismiss:focus-visible {
1011
+ outline: 2px solid var(--lr-color-primary);
1012
+ outline-offset: 2px;
1013
+ border-radius: var(--lr-radius-sm);
1014
+ }
1015
+
1016
+ /* src/Tabs/Tabs.module.css */
1017
+ .tabs {
1018
+ display: flex;
1019
+ flex-direction: column;
1020
+ gap: var(--lr-space-4);
1021
+ }
1022
+ .list {
1023
+ display: inline-flex;
1024
+ flex-wrap: wrap;
1025
+ gap: var(--lr-space-1);
1026
+ padding: var(--lr-space-1);
1027
+ border-radius: var(--lr-radius-md);
1028
+ background: var(--lr-color-surface);
1029
+ border: 1px solid var(--lr-color-border);
1030
+ }
1031
+ .trigger {
1032
+ border: none;
1033
+ background: transparent;
1034
+ color: var(--lr-color-text-muted);
1035
+ font-family: var(--lr-font-family-sans);
1036
+ font-size: var(--lr-font-size-sm);
1037
+ font-weight: var(--lr-font-weight-medium);
1038
+ padding: var(--lr-space-2) var(--lr-space-3);
1039
+ border-radius: var(--lr-radius-sm);
1040
+ cursor: pointer;
1041
+ transition: background-color var(--lr-duration-normal) var(--lr-easing-default), color var(--lr-duration-normal) var(--lr-easing-default);
1042
+ }
1043
+ .trigger[data-state=active] {
1044
+ background: var(--lr-color-background);
1045
+ color: var(--lr-color-text);
1046
+ box-shadow: var(--lr-shadow-sm);
1047
+ }
1048
+ .trigger:disabled {
1049
+ opacity: 0.6;
1050
+ cursor: not-allowed;
1051
+ }
1052
+ .trigger:focus-visible {
1053
+ outline: 2px solid var(--lr-color-primary);
1054
+ outline-offset: 2px;
1055
+ }
1056
+ .panel {
1057
+ font-size: var(--lr-font-size-sm);
1058
+ color: var(--lr-color-text);
1059
+ }
1060
+ .panel:focus {
1061
+ outline: none;
1062
+ }
1063
+ .panel:focus-visible {
1064
+ outline: 2px solid var(--lr-color-primary);
1065
+ outline-offset: 2px;
1066
+ border-radius: var(--lr-radius-sm);
1067
+ }
1068
+
1069
+ /* src/Drawer/Drawer.module.css */
1070
+ .overlay {
1071
+ position: fixed;
1072
+ inset: 0;
1073
+ z-index: 1000;
1074
+ background-color: rgb(0 0 0 / 0.45);
1075
+ }
1076
+ .panel {
1077
+ position: fixed;
1078
+ top: 0;
1079
+ bottom: 0;
1080
+ width: min(24rem, 100vw);
1081
+ max-width: 100%;
1082
+ background: var(--lr-color-surface-elevated);
1083
+ box-shadow: var(--lr-shadow-lg);
1084
+ padding: var(--lr-space-6);
1085
+ overflow-y: auto;
1086
+ outline: none;
1087
+ }
1088
+ .panel[data-side=right] {
1089
+ right: 0;
1090
+ animation: slide-in-right var(--lr-duration-normal) var(--lr-easing-default);
1091
+ }
1092
+ .panel[data-side=left] {
1093
+ left: 0;
1094
+ animation: slide-in-left var(--lr-duration-normal) var(--lr-easing-default);
1095
+ }
1096
+ .title {
1097
+ margin: 0 0 var(--lr-space-2);
1098
+ font-size: var(--lr-font-size-xl);
1099
+ font-weight: var(--lr-font-weight-semibold);
1100
+ }
1101
+ .description {
1102
+ margin: 0 0 var(--lr-space-4);
1103
+ color: var(--lr-color-text-muted);
1104
+ font-size: var(--lr-font-size-sm);
1105
+ }
1106
+ .content {
1107
+ display: flex;
1108
+ flex-direction: column;
1109
+ gap: var(--lr-space-4);
1110
+ }
1111
+ @keyframes slide-in-right {
1112
+ from {
1113
+ transform: translateX(100%);
1114
+ }
1115
+ to {
1116
+ transform: translateX(0);
1117
+ }
1118
+ }
1119
+ @keyframes slide-in-left {
1120
+ from {
1121
+ transform: translateX(-100%);
1122
+ }
1123
+ to {
1124
+ transform: translateX(0);
1125
+ }
1126
+ }
1127
+ @media (prefers-reduced-motion: reduce) {
1128
+ .panel[data-side=right],
1129
+ .panel[data-side=left] {
1130
+ animation: none;
1131
+ }
1132
+ }
1133
+
1134
+ /* src/Popover/Popover.module.css */
1135
+ .wrapper {
1136
+ position: relative;
1137
+ display: inline-flex;
1138
+ }
1139
+ .popover {
1140
+ position: absolute;
1141
+ z-index: 60;
1142
+ min-width: 12rem;
1143
+ max-width: 20rem;
1144
+ padding: var(--lr-space-3);
1145
+ border-radius: var(--lr-radius-md);
1146
+ border: 1px solid var(--lr-color-border);
1147
+ background: var(--lr-color-surface-elevated);
1148
+ box-shadow: var(--lr-shadow-lg);
1149
+ font-size: var(--lr-font-size-sm);
1150
+ color: var(--lr-color-text);
1151
+ }
1152
+ .popover[data-side=top] {
1153
+ bottom: calc(100% + var(--lr-space-2));
1154
+ left: 50%;
1155
+ transform: translateX(-50%);
1156
+ }
1157
+ .popover[data-side=bottom] {
1158
+ top: calc(100% + var(--lr-space-2));
1159
+ left: 50%;
1160
+ transform: translateX(-50%);
1161
+ }
1162
+ .popover[data-side=left] {
1163
+ right: calc(100% + var(--lr-space-2));
1164
+ top: 50%;
1165
+ transform: translateY(-50%);
1166
+ }
1167
+ .popover[data-side=right] {
1168
+ left: calc(100% + var(--lr-space-2));
1169
+ top: 50%;
1170
+ transform: translateY(-50%);
1171
+ }
1172
+
1173
+ /* src/Breadcrumb/Breadcrumb.module.css */
1174
+ .nav {
1175
+ font-size: var(--lr-font-size-sm);
1176
+ }
1177
+ .list {
1178
+ display: flex;
1179
+ flex-wrap: wrap;
1180
+ align-items: center;
1181
+ gap: var(--lr-space-1);
1182
+ margin: 0;
1183
+ padding: 0;
1184
+ list-style: none;
1185
+ }
1186
+ .item {
1187
+ display: inline-flex;
1188
+ align-items: center;
1189
+ gap: var(--lr-space-1);
1190
+ }
1191
+ .link,
1192
+ .linkButton {
1193
+ color: var(--lr-color-text-muted);
1194
+ text-decoration: none;
1195
+ background: none;
1196
+ border: none;
1197
+ padding: 0;
1198
+ font: inherit;
1199
+ cursor: pointer;
1200
+ }
1201
+ .link:hover,
1202
+ .linkButton:hover {
1203
+ color: var(--lr-color-primary);
1204
+ }
1205
+ .link:focus-visible,
1206
+ .linkButton:focus-visible {
1207
+ outline: 2px solid var(--lr-color-primary);
1208
+ outline-offset: 2px;
1209
+ border-radius: var(--lr-radius-sm);
1210
+ }
1211
+ .current {
1212
+ color: var(--lr-color-text);
1213
+ font-weight: var(--lr-font-weight-medium);
1214
+ }
1215
+ .separator {
1216
+ color: var(--lr-color-text-muted);
1217
+ }
1218
+
1219
+ /* src/Accordion/Accordion.module.css */
1220
+ .accordion {
1221
+ display: flex;
1222
+ flex-direction: column;
1223
+ gap: var(--lr-space-2);
1224
+ }
1225
+ .item {
1226
+ border: 1px solid var(--lr-color-border);
1227
+ border-radius: var(--lr-radius-md);
1228
+ background: var(--lr-color-surface);
1229
+ overflow: hidden;
1230
+ }
1231
+ .trigger {
1232
+ width: 100%;
1233
+ display: flex;
1234
+ align-items: center;
1235
+ justify-content: space-between;
1236
+ gap: var(--lr-space-3);
1237
+ padding: var(--lr-space-3) var(--lr-space-4);
1238
+ border: none;
1239
+ background: transparent;
1240
+ color: var(--lr-color-text);
1241
+ font-family: var(--lr-font-family-sans);
1242
+ font-size: var(--lr-font-size-sm);
1243
+ font-weight: var(--lr-font-weight-medium);
1244
+ text-align: start;
1245
+ cursor: pointer;
1246
+ transition: background-color var(--lr-duration-normal) var(--lr-easing-default);
1247
+ }
1248
+ .trigger:hover:not(:disabled) {
1249
+ background: var(--lr-color-surface-elevated);
1250
+ }
1251
+ .trigger[data-state=open] {
1252
+ border-bottom: 1px solid var(--lr-color-border);
1253
+ }
1254
+ .trigger:disabled {
1255
+ opacity: 0.6;
1256
+ cursor: not-allowed;
1257
+ }
1258
+ .trigger:focus-visible {
1259
+ outline: 2px solid var(--lr-color-primary);
1260
+ outline-offset: -2px;
1261
+ }
1262
+ .icon {
1263
+ flex-shrink: 0;
1264
+ color: var(--lr-color-text-muted);
1265
+ transition: transform var(--lr-duration-normal) var(--lr-easing-default);
1266
+ }
1267
+ .trigger[data-state=open] .icon {
1268
+ transform: rotate(180deg);
1269
+ }
1270
+ .content {
1271
+ padding: var(--lr-space-4);
1272
+ font-size: var(--lr-font-size-sm);
1273
+ color: var(--lr-color-text);
1274
+ }
1275
+ .content[data-state=closed] {
1276
+ display: none;
1277
+ }
1278
+
1279
+ /* src/Pagination/Pagination.module.css */
1280
+ .pagination {
1281
+ display: inline-flex;
1282
+ align-items: center;
1283
+ gap: var(--lr-space-1);
1284
+ flex-wrap: wrap;
1285
+ }
1286
+ .pageButton {
1287
+ display: inline-flex;
1288
+ align-items: center;
1289
+ justify-content: center;
1290
+ min-width: 2.25rem;
1291
+ min-height: 2.25rem;
1292
+ padding: 0 var(--lr-space-2);
1293
+ border: 1px solid var(--lr-color-border);
1294
+ border-radius: var(--lr-radius-sm);
1295
+ background: var(--lr-color-surface);
1296
+ color: var(--lr-color-text);
1297
+ font-family: var(--lr-font-family-sans);
1298
+ font-size: var(--lr-font-size-sm);
1299
+ font-weight: var(--lr-font-weight-medium);
1300
+ cursor: pointer;
1301
+ transition:
1302
+ background-color var(--lr-duration-normal) var(--lr-easing-default),
1303
+ border-color var(--lr-duration-normal) var(--lr-easing-default),
1304
+ color var(--lr-duration-normal) var(--lr-easing-default);
1305
+ }
1306
+ .pageButton:hover:not(:disabled) {
1307
+ background: var(--lr-color-surface-elevated);
1308
+ }
1309
+ .pageButton[data-state=active] {
1310
+ background: var(--lr-color-primary);
1311
+ border-color: var(--lr-color-primary);
1312
+ color: var(--lr-color-text-inverse);
1313
+ }
1314
+ .pageButton:disabled {
1315
+ opacity: 0.5;
1316
+ cursor: not-allowed;
1317
+ }
1318
+ .pageButton:focus-visible {
1319
+ outline: 2px solid var(--lr-color-primary);
1320
+ outline-offset: 2px;
1321
+ }
1322
+ .ellipsis {
1323
+ display: inline-flex;
1324
+ align-items: center;
1325
+ justify-content: center;
1326
+ min-width: 2.25rem;
1327
+ min-height: 2.25rem;
1328
+ color: var(--lr-color-text-muted);
1329
+ font-size: var(--lr-font-size-sm);
1330
+ }
1331
+
1332
+ /* src/DataTable/DataTable.module.css */
1333
+ .wrapper {
1334
+ width: 100%;
1335
+ overflow-x: auto;
1336
+ border: 1px solid var(--lr-color-border);
1337
+ border-radius: var(--lr-radius-md);
1338
+ background: var(--lr-color-surface);
1339
+ }
1340
+ .table {
1341
+ width: 100%;
1342
+ border-collapse: collapse;
1343
+ }
1344
+ .caption {
1345
+ caption-side: top;
1346
+ padding: var(--lr-space-3) var(--lr-space-4);
1347
+ text-align: start;
1348
+ font-family: var(--lr-font-family-sans);
1349
+ font-size: var(--lr-font-size-sm);
1350
+ font-weight: var(--lr-font-weight-semibold);
1351
+ color: var(--lr-color-text);
1352
+ }
1353
+ .headCell {
1354
+ padding: var(--lr-space-3) var(--lr-space-4);
1355
+ text-align: start;
1356
+ border-bottom: 2px solid var(--lr-color-border);
1357
+ font-family: var(--lr-font-family-sans);
1358
+ font-size: var(--lr-font-size-xs);
1359
+ font-weight: var(--lr-font-weight-semibold);
1360
+ color: var(--lr-color-text-muted);
1361
+ text-transform: uppercase;
1362
+ letter-spacing: 0.04em;
1363
+ white-space: nowrap;
1364
+ }
1365
+ .cell {
1366
+ padding: var(--lr-space-3) var(--lr-space-4);
1367
+ border-bottom: 1px solid var(--lr-color-border);
1368
+ font-family: var(--lr-font-family-sans);
1369
+ font-size: var(--lr-font-size-sm);
1370
+ color: var(--lr-color-text);
1371
+ }
1372
+ .row:last-child .cell {
1373
+ border-bottom: none;
1374
+ }
1375
+ .row[data-striped=true]:nth-child(even) {
1376
+ background: var(--lr-color-surface-elevated);
1377
+ }
1378
+ .row[data-state=loading] .cell {
1379
+ padding-block: var(--lr-space-2);
1380
+ }
1381
+ .empty {
1382
+ padding: var(--lr-space-6);
1383
+ }
1384
+ .skeletonRow {
1385
+ display: flex;
1386
+ gap: var(--lr-space-3);
1387
+ padding: var(--lr-space-3) var(--lr-space-4);
1388
+ border-bottom: 1px solid var(--lr-color-border);
1389
+ }
1390
+ .skeletonRow:last-child {
1391
+ border-bottom: none;
1392
+ }
1393
+
1394
+ /* src/FileUpload/FileUpload.module.css */
1395
+ .wrapper {
1396
+ display: flex;
1397
+ flex-direction: column;
1398
+ gap: var(--lr-space-1);
1399
+ }
1400
+ .label {
1401
+ font-family: var(--lr-font-family-sans);
1402
+ font-size: var(--lr-font-size-sm);
1403
+ font-weight: var(--lr-font-weight-medium);
1404
+ color: var(--lr-color-text);
1405
+ }
1406
+ .dropzone {
1407
+ display: flex;
1408
+ flex-direction: column;
1409
+ align-items: center;
1410
+ justify-content: center;
1411
+ gap: var(--lr-space-2);
1412
+ padding: var(--lr-space-6);
1413
+ border: 1px dashed var(--lr-color-border);
1414
+ border-radius: var(--lr-radius-md);
1415
+ background: var(--lr-color-surface);
1416
+ color: var(--lr-color-text-muted);
1417
+ font-family: var(--lr-font-family-sans);
1418
+ font-size: var(--lr-font-size-sm);
1419
+ cursor: pointer;
1420
+ transition: border-color var(--lr-duration-normal) var(--lr-easing-default), background-color var(--lr-duration-normal) var(--lr-easing-default);
1421
+ }
1422
+ .dropzone:hover:not([data-state=disabled]) {
1423
+ border-color: var(--lr-color-primary);
1424
+ background: var(--lr-color-surface-elevated);
1425
+ }
1426
+ .dropzone[data-state=dragover] {
1427
+ border-color: var(--lr-color-primary);
1428
+ background: var(--lr-color-surface-elevated);
1429
+ }
1430
+ .dropzone[data-state=error] {
1431
+ border-color: var(--lr-color-error);
1432
+ }
1433
+ .dropzone[data-state=disabled] {
1434
+ opacity: 0.6;
1435
+ cursor: not-allowed;
1436
+ }
1437
+ .dropzone:focus-within {
1438
+ outline: 2px solid var(--lr-color-primary);
1439
+ outline-offset: 2px;
1440
+ }
1441
+ .input {
1442
+ position: absolute;
1443
+ width: 1px;
1444
+ height: 1px;
1445
+ padding: 0;
1446
+ margin: -1px;
1447
+ overflow: hidden;
1448
+ clip: rect(0, 0, 0, 0);
1449
+ white-space: nowrap;
1450
+ border: 0;
1451
+ }
1452
+ .fileList {
1453
+ display: flex;
1454
+ flex-direction: column;
1455
+ gap: var(--lr-space-1);
1456
+ margin: 0;
1457
+ padding: 0;
1458
+ list-style: none;
1459
+ }
1460
+ .fileItem {
1461
+ font-family: var(--lr-font-family-sans);
1462
+ font-size: var(--lr-font-size-sm);
1463
+ color: var(--lr-color-text);
1464
+ }
1465
+ .hint {
1466
+ font-size: var(--lr-font-size-xs);
1467
+ color: var(--lr-color-text-muted);
1468
+ }
1469
+ .error {
1470
+ font-size: var(--lr-font-size-xs);
1471
+ color: var(--lr-color-error);
1472
+ }
1473
+
1474
+ /* src/Sidebar/Sidebar.module.css */
1475
+ .sidebar {
1476
+ display: flex;
1477
+ flex-direction: column;
1478
+ width: 16rem;
1479
+ min-height: 100%;
1480
+ border-inline-end: 1px solid var(--lr-color-border);
1481
+ background: var(--lr-color-surface);
1482
+ }
1483
+ .header {
1484
+ padding: var(--lr-space-4);
1485
+ border-bottom: 1px solid var(--lr-color-border);
1486
+ font-family: var(--lr-font-family-sans);
1487
+ font-size: var(--lr-font-size-md);
1488
+ font-weight: var(--lr-font-weight-semibold);
1489
+ color: var(--lr-color-text);
1490
+ }
1491
+ .nav {
1492
+ display: flex;
1493
+ flex-direction: column;
1494
+ gap: var(--lr-space-1);
1495
+ padding: var(--lr-space-3);
1496
+ flex: 1;
1497
+ }
1498
+ .groupLabel {
1499
+ padding: var(--lr-space-2) var(--lr-space-3);
1500
+ font-family: var(--lr-font-family-sans);
1501
+ font-size: var(--lr-font-size-xs);
1502
+ font-weight: var(--lr-font-weight-semibold);
1503
+ color: var(--lr-color-text-muted);
1504
+ text-transform: uppercase;
1505
+ letter-spacing: 0.04em;
1506
+ }
1507
+ .item {
1508
+ display: flex;
1509
+ align-items: center;
1510
+ gap: var(--lr-space-2);
1511
+ width: 100%;
1512
+ padding: var(--lr-space-2) var(--lr-space-3);
1513
+ border: none;
1514
+ border-radius: var(--lr-radius-sm);
1515
+ background: transparent;
1516
+ color: var(--lr-color-text-muted);
1517
+ font-family: var(--lr-font-family-sans);
1518
+ font-size: var(--lr-font-size-sm);
1519
+ font-weight: var(--lr-font-weight-medium);
1520
+ text-align: start;
1521
+ text-decoration: none;
1522
+ cursor: pointer;
1523
+ transition: background-color var(--lr-duration-normal) var(--lr-easing-default), color var(--lr-duration-normal) var(--lr-easing-default);
1524
+ }
1525
+ .item:hover:not([data-state=disabled]) {
1526
+ background: var(--lr-color-surface-elevated);
1527
+ color: var(--lr-color-text);
1528
+ }
1529
+ .item[data-state=active] {
1530
+ background: var(--lr-color-background);
1531
+ color: var(--lr-color-primary);
1532
+ box-shadow: var(--lr-shadow-sm);
1533
+ }
1534
+ .item[data-state=disabled] {
1535
+ opacity: 0.5;
1536
+ cursor: not-allowed;
1537
+ }
1538
+ .item:focus-visible {
1539
+ outline: 2px solid var(--lr-color-primary);
1540
+ outline-offset: 2px;
1541
+ }
1542
+
1543
+ /* src/Header/Header.module.css */
1544
+ .header {
1545
+ display: flex;
1546
+ align-items: center;
1547
+ justify-content: space-between;
1548
+ gap: var(--lr-space-4);
1549
+ padding: var(--lr-space-3) var(--lr-space-4);
1550
+ border-bottom: 1px solid var(--lr-color-border);
1551
+ background: var(--lr-color-surface-elevated);
1552
+ }
1553
+ .title {
1554
+ margin: 0;
1555
+ font-family: var(--lr-font-family-sans);
1556
+ font-size: var(--lr-font-size-lg);
1557
+ font-weight: var(--lr-font-weight-semibold);
1558
+ color: var(--lr-color-text);
1559
+ }
1560
+ .brand {
1561
+ font-family: var(--lr-font-family-sans);
1562
+ font-size: var(--lr-font-size-md);
1563
+ font-weight: var(--lr-font-weight-bold);
1564
+ color: var(--lr-color-primary);
1565
+ }
1566
+ .actions {
1567
+ display: flex;
1568
+ align-items: center;
1569
+ gap: var(--lr-space-2);
1570
+ flex-wrap: wrap;
1571
+ }
1572
+
1573
+ /* src/CommandPalette/CommandPalette.module.css */
1574
+ .overlay {
1575
+ position: fixed;
1576
+ inset: 0;
1577
+ z-index: 1000;
1578
+ display: flex;
1579
+ align-items: flex-start;
1580
+ justify-content: center;
1581
+ padding: 10vh var(--lr-space-4) var(--lr-space-4);
1582
+ background: rgb(15 23 42 / 0.45);
1583
+ }
1584
+ .dialog {
1585
+ width: min(32rem, 100%);
1586
+ border: 1px solid var(--lr-color-border);
1587
+ border-radius: var(--lr-radius-lg);
1588
+ background: var(--lr-color-surface-elevated);
1589
+ box-shadow: var(--lr-shadow-lg);
1590
+ overflow: hidden;
1591
+ }
1592
+ .search {
1593
+ width: 100%;
1594
+ padding: var(--lr-space-4);
1595
+ border: none;
1596
+ border-bottom: 1px solid var(--lr-color-border);
1597
+ background: transparent;
1598
+ color: var(--lr-color-text);
1599
+ font-family: var(--lr-font-family-sans);
1600
+ font-size: var(--lr-font-size-md);
1601
+ }
1602
+ .search:focus {
1603
+ outline: none;
1604
+ }
1605
+ .search:focus-visible {
1606
+ outline: 2px solid var(--lr-color-primary);
1607
+ outline-offset: -2px;
1608
+ }
1609
+ .list {
1610
+ max-height: 18rem;
1611
+ overflow-y: auto;
1612
+ margin: 0;
1613
+ padding: var(--lr-space-2);
1614
+ list-style: none;
1615
+ }
1616
+ .groupLabel {
1617
+ padding: var(--lr-space-2) var(--lr-space-3);
1618
+ font-family: var(--lr-font-family-sans);
1619
+ font-size: var(--lr-font-size-xs);
1620
+ font-weight: var(--lr-font-weight-semibold);
1621
+ color: var(--lr-color-text-muted);
1622
+ text-transform: uppercase;
1623
+ }
1624
+ .item {
1625
+ display: flex;
1626
+ width: 100%;
1627
+ padding: var(--lr-space-2) var(--lr-space-3);
1628
+ border: none;
1629
+ border-radius: var(--lr-radius-sm);
1630
+ background: transparent;
1631
+ color: var(--lr-color-text);
1632
+ font-family: var(--lr-font-family-sans);
1633
+ font-size: var(--lr-font-size-sm);
1634
+ text-align: start;
1635
+ cursor: pointer;
1636
+ }
1637
+ .item[data-state=active] {
1638
+ background: var(--lr-color-primary);
1639
+ color: var(--lr-color-text-inverse);
1640
+ }
1641
+ .item:focus-visible {
1642
+ outline: 2px solid var(--lr-color-primary);
1643
+ outline-offset: 2px;
1644
+ }
1645
+ .empty {
1646
+ padding: var(--lr-space-4);
1647
+ color: var(--lr-color-text-muted);
1648
+ font-family: var(--lr-font-family-sans);
1649
+ font-size: var(--lr-font-size-sm);
1650
+ }
1651
+
1652
+ /* src/DatePicker/datetime-field.module.css */
1653
+ .wrapper {
1654
+ display: flex;
1655
+ flex-direction: column;
1656
+ gap: var(--lr-space-1);
1657
+ }
1658
+ .label {
1659
+ font-size: var(--lr-font-size-sm);
1660
+ font-weight: var(--lr-font-weight-medium);
1661
+ color: var(--lr-color-text);
1662
+ }
1663
+ .inputContainer {
1664
+ position: relative;
1665
+ }
1666
+ .input {
1667
+ width: 100%;
1668
+ font-family: var(--lr-font-family-sans);
1669
+ color: var(--lr-color-text);
1670
+ background-color: var(--lr-color-background);
1671
+ border: 1px solid var(--lr-color-border);
1672
+ border-radius: var(--lr-radius-md);
1673
+ transition: border-color var(--lr-duration-normal) var(--lr-easing-default), box-shadow var(--lr-duration-normal) var(--lr-easing-default);
1674
+ }
1675
+ .input:focus {
1676
+ outline: none;
1677
+ border-color: var(--lr-color-primary);
1678
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--lr-color-primary) 20%, transparent);
1679
+ }
1680
+ .input[data-size=sm] {
1681
+ padding: var(--lr-space-1) var(--lr-space-2);
1682
+ font-size: var(--lr-font-size-sm);
1683
+ }
1684
+ .input[data-size=md] {
1685
+ padding: var(--lr-space-2) var(--lr-space-3);
1686
+ font-size: var(--lr-font-size-md);
1687
+ }
1688
+ .input[data-size=lg] {
1689
+ padding: var(--lr-space-3) var(--lr-space-4);
1690
+ font-size: var(--lr-font-size-lg);
1691
+ }
1692
+ .input[data-state=disabled],
1693
+ .input:disabled {
1694
+ opacity: 0.6;
1695
+ cursor: not-allowed;
1696
+ background-color: var(--lr-color-surface);
1697
+ }
1698
+ .input[data-state=readonly],
1699
+ .input:read-only {
1700
+ background-color: var(--lr-color-surface);
1701
+ cursor: default;
1702
+ }
1703
+ .input[data-state=error] {
1704
+ border-color: var(--lr-color-error);
1705
+ }
1706
+ .input[data-state=error]:focus {
1707
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--lr-color-error) 20%, transparent);
1708
+ }
1709
+ .range {
1710
+ display: flex;
1711
+ align-items: center;
1712
+ gap: var(--lr-space-2);
1713
+ flex-wrap: wrap;
1714
+ }
1715
+ .rangeField {
1716
+ flex: 1 1 10rem;
1717
+ min-width: 0;
1718
+ }
1719
+ .separator {
1720
+ color: var(--lr-color-text-muted);
1721
+ font-size: var(--lr-font-size-sm);
1722
+ }
1723
+ .hint {
1724
+ font-size: var(--lr-font-size-xs);
1725
+ color: var(--lr-color-text-muted);
1726
+ }
1727
+ .error {
1728
+ font-size: var(--lr-font-size-xs);
1729
+ color: var(--lr-color-error);
1730
+ }