cladux-html 0.0.0-stage → 0.2.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/cl.css ADDED
@@ -0,0 +1,2243 @@
1
+ /*! cladux-html v0.2.0 | Apache-2.0 | https://cladux.vercel.app/docs/html */
2
+ @layer cl.base, cl.components, cl.utilities;
3
+
4
+ :root {
5
+ --radius: 0.625rem;
6
+ --background: oklch(1 0 0);
7
+ --foreground: oklch(0.145 0 0);
8
+ --card: oklch(1 0 0);
9
+ --card-foreground: oklch(0.145 0 0);
10
+ --popover: oklch(1 0 0);
11
+ --popover-foreground: oklch(0.145 0 0);
12
+ --primary: oklch(0.205 0 0);
13
+ --primary-foreground: oklch(0.985 0 0);
14
+ --secondary: oklch(0.97 0 0);
15
+ --secondary-foreground: oklch(0.205 0 0);
16
+ --muted: oklch(0.97 0 0);
17
+ --muted-foreground: oklch(0.556 0 0);
18
+ --accent: oklch(0.97 0 0);
19
+ --accent-foreground: oklch(0.205 0 0);
20
+ --destructive: oklch(0.577 0.245 27.325);
21
+ --border: oklch(0.922 0 0);
22
+ --input: oklch(0.922 0 0);
23
+ --ring: oklch(0.708 0 0);
24
+ --chart-1: oklch(0.87 0 0);
25
+ --chart-2: oklch(0.556 0 0);
26
+ --chart-3: oklch(0.439 0 0);
27
+ --chart-4: oklch(0.371 0 0);
28
+ --chart-5: oklch(0.269 0 0);
29
+ --sidebar: oklch(0.985 0 0);
30
+ --sidebar-foreground: oklch(0.145 0 0);
31
+ --sidebar-primary: oklch(0.205 0 0);
32
+ --sidebar-primary-foreground: oklch(0.985 0 0);
33
+ --sidebar-accent: oklch(0.97 0 0);
34
+ --sidebar-accent-foreground: oklch(0.205 0 0);
35
+ --sidebar-border: oklch(0.922 0 0);
36
+ --sidebar-ring: oklch(0.708 0 0);
37
+ }
38
+ .dark,
39
+ [data-theme=dark] {
40
+ --background: oklch(0.145 0 0);
41
+ --foreground: oklch(0.985 0 0);
42
+ --card: oklch(0.205 0 0);
43
+ --card-foreground: oklch(0.985 0 0);
44
+ --popover: oklch(0.205 0 0);
45
+ --popover-foreground: oklch(0.985 0 0);
46
+ --primary: oklch(0.922 0 0);
47
+ --primary-foreground: oklch(0.205 0 0);
48
+ --secondary: oklch(0.269 0 0);
49
+ --secondary-foreground: oklch(0.985 0 0);
50
+ --muted: oklch(0.269 0 0);
51
+ --muted-foreground: oklch(0.708 0 0);
52
+ --accent: oklch(0.269 0 0);
53
+ --accent-foreground: oklch(0.985 0 0);
54
+ --destructive: oklch(0.704 0.191 22.216);
55
+ --border: oklch(1 0 0 / 10%);
56
+ --input: oklch(1 0 0 / 15%);
57
+ --ring: oklch(0.556 0 0);
58
+ --chart-1: oklch(0.87 0 0);
59
+ --chart-2: oklch(0.556 0 0);
60
+ --chart-3: oklch(0.439 0 0);
61
+ --chart-4: oklch(0.371 0 0);
62
+ --chart-5: oklch(0.269 0 0);
63
+ --sidebar: oklch(0.205 0 0);
64
+ --sidebar-foreground: oklch(0.985 0 0);
65
+ --sidebar-primary: oklch(0.488 0.243 264.376);
66
+ --sidebar-primary-foreground: oklch(0.985 0 0);
67
+ --sidebar-accent: oklch(0.269 0 0);
68
+ --sidebar-accent-foreground: oklch(0.985 0 0);
69
+ --sidebar-border: oklch(1 0 0 / 10%);
70
+ --sidebar-ring: oklch(0.556 0 0);
71
+ }
72
+
73
+ @layer cl.base {
74
+ *,
75
+ *::before,
76
+ *::after {
77
+ box-sizing: border-box;
78
+ border: 0 solid var(--border);
79
+ outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
80
+ }
81
+ * {
82
+ margin: 0;
83
+ padding: 0;
84
+ }
85
+ html {
86
+ -webkit-text-size-adjust: 100%;
87
+ text-size-adjust: 100%;
88
+ font-family: var( --font-sans, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji" );
89
+ line-height: 1.5;
90
+ -webkit-font-smoothing: antialiased;
91
+ -moz-osx-font-smoothing: grayscale;
92
+ }
93
+ body {
94
+ min-height: 100dvh;
95
+ background-color: var(--background);
96
+ color: var(--foreground);
97
+ }
98
+ img,
99
+ picture,
100
+ video,
101
+ canvas,
102
+ svg {
103
+ display: block;
104
+ max-width: 100%;
105
+ }
106
+ input,
107
+ button,
108
+ textarea,
109
+ select {
110
+ font: inherit;
111
+ color: inherit;
112
+ background-color: transparent;
113
+ }
114
+ button {
115
+ cursor: pointer;
116
+ }
117
+ h1,
118
+ h2,
119
+ h3,
120
+ h4,
121
+ h5,
122
+ h6 {
123
+ font-size: inherit;
124
+ font-weight: inherit;
125
+ text-wrap: balance;
126
+ overflow-wrap: break-word;
127
+ }
128
+ p {
129
+ text-wrap: pretty;
130
+ overflow-wrap: break-word;
131
+ }
132
+ a {
133
+ color: inherit;
134
+ text-decoration: inherit;
135
+ }
136
+ code,
137
+ kbd,
138
+ samp,
139
+ pre {
140
+ font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);
141
+ }
142
+ }
143
+
144
+ @layer cl.components {
145
+ .cl-popover,
146
+ .cl-menu,
147
+ .cl-tooltip,
148
+ .cl-combobox-content {
149
+ --_slide: 0.5rem;
150
+ position: fixed;
151
+ inset: auto;
152
+ z-index: 50;
153
+ margin: 0;
154
+ border: 0 solid var(--border);
155
+ overflow: visible;
156
+ opacity: 0;
157
+ scale: 0.95;
158
+ transition-property:
159
+ opacity,
160
+ scale,
161
+ translate,
162
+ display,
163
+ overlay;
164
+ transition-duration: 100ms;
165
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
166
+ transition-behavior: allow-discrete;
167
+ }
168
+ .cl-popover:popover-open,
169
+ .cl-menu:popover-open,
170
+ .cl-tooltip:popover-open,
171
+ .cl-combobox-content:popover-open {
172
+ opacity: 1;
173
+ scale: 1;
174
+ }
175
+ @starting-style {
176
+ .cl-popover:popover-open,
177
+ .cl-menu:popover-open,
178
+ .cl-tooltip:popover-open,
179
+ .cl-combobox-content:popover-open {
180
+ opacity: 0;
181
+ scale: 0.95;
182
+ }
183
+ :is(.cl-popover, .cl-menu, .cl-tooltip, .cl-combobox-content):popover-open[data-placed=bottom] {
184
+ translate: 0 calc(var(--_slide) * -1);
185
+ }
186
+ :is(.cl-popover, .cl-menu, .cl-tooltip, .cl-combobox-content):popover-open[data-placed=top] {
187
+ translate: 0 var(--_slide);
188
+ }
189
+ :is(.cl-popover, .cl-menu, .cl-tooltip, .cl-combobox-content):popover-open[data-placed=left] {
190
+ translate: var(--_slide) 0;
191
+ }
192
+ :is(.cl-popover, .cl-menu, .cl-tooltip, .cl-combobox-content):popover-open[data-placed=right] {
193
+ translate: calc(var(--_slide) * -1) 0;
194
+ }
195
+ }
196
+ }
197
+
198
+ @layer cl.components {
199
+ .cl-accordion {
200
+ display: flex;
201
+ width: 100%;
202
+ flex-direction: column;
203
+ }
204
+ .cl-accordion-item:not(:last-child) {
205
+ border-bottom: 1px solid var(--border);
206
+ }
207
+ .cl-accordion-trigger {
208
+ position: relative;
209
+ display: flex;
210
+ flex: 1;
211
+ align-items: flex-start;
212
+ justify-content: space-between;
213
+ padding: 0.625rem 0;
214
+ border: 1px solid transparent;
215
+ border-radius: var(--radius);
216
+ font-size: 0.875rem;
217
+ line-height: 1.25rem;
218
+ font-weight: 500;
219
+ text-align: start;
220
+ outline: none;
221
+ cursor: pointer;
222
+ list-style: none;
223
+ transition-property: all;
224
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
225
+ transition-duration: 150ms;
226
+ }
227
+ .cl-accordion-trigger::-webkit-details-marker {
228
+ display: none;
229
+ }
230
+ @media (hover: hover) {
231
+ .cl-accordion-trigger:hover {
232
+ text-decoration: underline;
233
+ }
234
+ }
235
+ .cl-accordion-trigger:focus-visible {
236
+ border-color: var(--ring);
237
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
238
+ }
239
+ .cl-accordion-item[data-disabled] > .cl-accordion-trigger {
240
+ pointer-events: none;
241
+ opacity: 0.5;
242
+ }
243
+ .cl-accordion-trigger::after {
244
+ content: "";
245
+ flex-shrink: 0;
246
+ width: 1rem;
247
+ height: 1rem;
248
+ margin-inline-start: auto;
249
+ background-color: var(--muted-foreground);
250
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
251
+ }
252
+ .cl-accordion-item[open] > .cl-accordion-trigger::after {
253
+ rotate: 180deg;
254
+ }
255
+ .cl-accordion-item::details-content {
256
+ display: grid;
257
+ grid-template-rows: 0fr;
258
+ overflow: hidden;
259
+ font-size: 0.875rem;
260
+ line-height: 1.25rem;
261
+ transition: grid-template-rows 200ms ease-out, content-visibility 200ms ease-out allow-discrete;
262
+ }
263
+ .cl-accordion-item[open]::details-content {
264
+ grid-template-rows: 1fr;
265
+ }
266
+ .cl-accordion-item[data-closing]::details-content {
267
+ transition: none;
268
+ }
269
+ @media (prefers-reduced-motion: reduce) {
270
+ .cl-accordion-item::details-content {
271
+ transition: none;
272
+ }
273
+ }
274
+ .cl-accordion-content {
275
+ min-height: 0;
276
+ overflow: hidden;
277
+ font-size: 0.875rem;
278
+ line-height: 1.25rem;
279
+ }
280
+ .cl-accordion-content::after {
281
+ content: "";
282
+ display: block;
283
+ height: 0.625rem;
284
+ }
285
+ .cl-accordion-content a {
286
+ text-decoration: underline;
287
+ text-underline-offset: 3px;
288
+ }
289
+ @media (hover: hover) {
290
+ .cl-accordion-content a:hover {
291
+ color: var(--foreground);
292
+ }
293
+ }
294
+ .cl-accordion-content p:not(:last-child) {
295
+ margin-bottom: 1rem;
296
+ }
297
+ }
298
+
299
+ @layer cl.components {
300
+ .cl-badge {
301
+ --_ring: color-mix(in oklab, var(--ring) 50%, transparent);
302
+ display: inline-flex;
303
+ flex-shrink: 0;
304
+ align-items: center;
305
+ justify-content: center;
306
+ gap: 0.25rem;
307
+ width: fit-content;
308
+ height: 1.25rem;
309
+ overflow: hidden;
310
+ padding: 0.125rem 0.5rem;
311
+ border: 1px solid transparent;
312
+ border-radius: calc(var(--radius) * 2.6);
313
+ font-size: 0.75rem;
314
+ line-height: 1rem;
315
+ font-weight: 500;
316
+ white-space: nowrap;
317
+ text-decoration: none;
318
+ transition-property: all;
319
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
320
+ transition-duration: 150ms;
321
+ }
322
+ .cl-badge:has([data-icon=inline-start]) {
323
+ padding-inline-start: 0.375rem;
324
+ }
325
+ .cl-badge:has([data-icon=inline-end]) {
326
+ padding-inline-end: 0.375rem;
327
+ }
328
+ .cl-badge > svg {
329
+ pointer-events: none;
330
+ width: 0.75rem !important;
331
+ height: 0.75rem !important;
332
+ }
333
+ .cl-badge:not([data-variant]),
334
+ .cl-badge[data-variant=default] {
335
+ background-color: var(--primary);
336
+ color: var(--primary-foreground);
337
+ }
338
+ .cl-badge[data-variant=secondary] {
339
+ background-color: var(--secondary);
340
+ color: var(--secondary-foreground);
341
+ }
342
+ .cl-badge[data-variant=destructive] {
343
+ --_ring: color-mix(in oklab, var(--destructive) 20%, transparent);
344
+ background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
345
+ color: var(--destructive);
346
+ }
347
+ .cl-badge[data-variant=outline] {
348
+ border-color: var(--border);
349
+ color: var(--foreground);
350
+ }
351
+ .cl-badge[data-variant=link] {
352
+ color: var(--primary);
353
+ text-underline-offset: 4px;
354
+ }
355
+ @media (hover: hover) {
356
+ a.cl-badge:not([data-variant]):hover,
357
+ a.cl-badge[data-variant=default]:hover {
358
+ background-color: color-mix(in oklab, var(--primary) 80%, transparent);
359
+ }
360
+ a.cl-badge[data-variant=secondary]:hover {
361
+ background-color: color-mix(in oklab, var(--secondary) 80%, transparent);
362
+ }
363
+ a.cl-badge[data-variant=destructive]:hover {
364
+ background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
365
+ }
366
+ a.cl-badge[data-variant=outline]:hover,
367
+ .cl-badge[data-variant=ghost]:hover {
368
+ background-color: var(--muted);
369
+ color: var(--muted-foreground);
370
+ }
371
+ .cl-badge[data-variant=link]:hover {
372
+ text-decoration-line: underline;
373
+ }
374
+ }
375
+ :where(.dark, [data-theme=dark]) .cl-badge[data-variant=destructive] {
376
+ --_ring: color-mix(in oklab, var(--destructive) 40%, transparent);
377
+ background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
378
+ }
379
+ @media (hover: hover) {
380
+ :where(.dark, [data-theme=dark]) .cl-badge[data-variant=ghost]:hover {
381
+ background-color: color-mix(in oklab, var(--muted) 50%, transparent);
382
+ }
383
+ }
384
+ .cl-badge:focus-visible {
385
+ border-color: var(--ring);
386
+ box-shadow: 0 0 0 3px var(--_ring);
387
+ }
388
+ .cl-badge[aria-invalid=true] {
389
+ --_ring: color-mix(in oklab, var(--destructive) 20%, transparent);
390
+ border-color: var(--destructive);
391
+ }
392
+ :where(.dark, [data-theme=dark]) .cl-badge[aria-invalid=true] {
393
+ --_ring: color-mix(in oklab, var(--destructive) 40%, transparent);
394
+ }
395
+ }
396
+
397
+ @layer cl.components {
398
+ .cl-button {
399
+ --_h: 2rem;
400
+ --_px: 0.625rem;
401
+ --_px-icon: 0.5rem;
402
+ --_gap: 0.375rem;
403
+ --_svg: 1rem;
404
+ --_ring: color-mix(in oklab, var(--ring) 50%, transparent);
405
+ display: inline-flex;
406
+ flex-shrink: 0;
407
+ align-items: center;
408
+ justify-content: center;
409
+ gap: var(--_gap);
410
+ height: var(--_h);
411
+ padding: 0 var(--_px);
412
+ border: 1px solid transparent;
413
+ border-radius: var(--radius);
414
+ background-color: transparent;
415
+ background-clip: padding-box;
416
+ color: inherit;
417
+ font-size: 0.875rem;
418
+ line-height: 1.25rem;
419
+ font-weight: 500;
420
+ white-space: nowrap;
421
+ text-decoration: none;
422
+ cursor: pointer;
423
+ user-select: none;
424
+ -webkit-user-select: none;
425
+ outline: none;
426
+ transition-property: all;
427
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
428
+ transition-duration: 150ms;
429
+ }
430
+ .cl-button:has([data-icon=inline-start]) {
431
+ padding-inline-start: var(--_px-icon);
432
+ }
433
+ .cl-button:has([data-icon=inline-end]) {
434
+ padding-inline-end: var(--_px-icon);
435
+ }
436
+ .cl-button svg {
437
+ pointer-events: none;
438
+ flex-shrink: 0;
439
+ }
440
+ .cl-button svg:not([class*=size-]) {
441
+ width: var(--_svg);
442
+ height: var(--_svg);
443
+ }
444
+ .cl-button:active:not([aria-haspopup]) {
445
+ translate: 0 1px;
446
+ }
447
+ .cl-button:disabled,
448
+ .cl-button[aria-disabled=true] {
449
+ pointer-events: none;
450
+ opacity: 0.5;
451
+ }
452
+ .cl-button:not([data-variant]),
453
+ .cl-button[data-variant=default] {
454
+ background-color: var(--primary);
455
+ color: var(--primary-foreground);
456
+ }
457
+ .cl-button[data-variant=outline] {
458
+ border-color: var(--border);
459
+ background-color: var(--background);
460
+ }
461
+ .cl-button[data-variant=secondary] {
462
+ background-color: var(--secondary);
463
+ color: var(--secondary-foreground);
464
+ }
465
+ .cl-button[data-variant=destructive] {
466
+ --_ring: color-mix(in oklab, var(--destructive) 20%, transparent);
467
+ background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
468
+ color: var(--destructive);
469
+ }
470
+ .cl-button[data-variant=link] {
471
+ color: var(--primary);
472
+ text-underline-offset: 4px;
473
+ }
474
+ .cl-button:is([data-variant=outline], [data-variant=ghost])[aria-expanded=true] {
475
+ background-color: var(--muted);
476
+ color: var(--foreground);
477
+ }
478
+ @media (hover: hover) {
479
+ .cl-button:not([data-variant]):hover,
480
+ .cl-button[data-variant=default]:hover {
481
+ background-color: color-mix(in oklab, var(--primary) 80%, transparent);
482
+ }
483
+ .cl-button:is([data-variant=outline], [data-variant=ghost]):hover {
484
+ background-color: var(--muted);
485
+ color: var(--foreground);
486
+ }
487
+ .cl-button[data-variant=secondary]:hover {
488
+ background-color: color-mix(in oklch, var(--secondary), var(--foreground) 5%);
489
+ }
490
+ .cl-button[data-variant=destructive]:hover {
491
+ background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
492
+ }
493
+ .cl-button[data-variant=link]:hover {
494
+ text-decoration-line: underline;
495
+ }
496
+ }
497
+ :where(.dark, [data-theme=dark]) .cl-button[data-variant=outline] {
498
+ border-color: var(--input);
499
+ background-color: color-mix(in oklab, var(--input) 30%, transparent);
500
+ }
501
+ :where(.dark, [data-theme=dark]) .cl-button[data-variant=destructive] {
502
+ --_ring: color-mix(in oklab, var(--destructive) 40%, transparent);
503
+ background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
504
+ }
505
+ @media (hover: hover) {
506
+ :where(.dark, [data-theme=dark]) .cl-button[data-variant=outline]:hover {
507
+ background-color: color-mix(in oklab, var(--input) 50%, transparent);
508
+ }
509
+ :where(.dark, [data-theme=dark]) .cl-button[data-variant=ghost]:hover {
510
+ background-color: color-mix(in oklab, var(--muted) 50%, transparent);
511
+ }
512
+ :where(.dark, [data-theme=dark]) .cl-button[data-variant=destructive]:hover {
513
+ background-color: color-mix(in oklab, var(--destructive) 30%, transparent);
514
+ }
515
+ }
516
+ .cl-button:focus-visible {
517
+ border-color: var(--ring);
518
+ box-shadow: 0 0 0 3px var(--_ring);
519
+ }
520
+ .cl-button[data-variant=destructive]:focus-visible {
521
+ border-color: color-mix(in oklab, var(--destructive) 40%, transparent);
522
+ }
523
+ .cl-button[aria-invalid=true] {
524
+ border-color: var(--destructive);
525
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 20%, transparent);
526
+ }
527
+ :where(.dark, [data-theme=dark]) .cl-button[aria-invalid=true] {
528
+ border-color: color-mix(in oklab, var(--destructive) 50%, transparent);
529
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 40%, transparent);
530
+ }
531
+ .cl-button[data-size=xs] {
532
+ --_h: 1.5rem;
533
+ --_px: 0.5rem;
534
+ --_px-icon: 0.375rem;
535
+ --_gap: 0.25rem;
536
+ --_svg: 0.75rem;
537
+ border-radius: min(calc(var(--radius) * 0.8), 10px);
538
+ font-size: 0.75rem;
539
+ line-height: 1rem;
540
+ }
541
+ .cl-button[data-size=sm] {
542
+ --_h: 1.75rem;
543
+ --_px-icon: 0.375rem;
544
+ --_gap: 0.25rem;
545
+ --_svg: 0.875rem;
546
+ border-radius: min(calc(var(--radius) * 0.8), 12px);
547
+ font-size: 0.8rem;
548
+ line-height: inherit;
549
+ }
550
+ .cl-button[data-size=lg] {
551
+ --_h: 2.25rem;
552
+ }
553
+ .cl-button[data-size^=icon] {
554
+ --_px: 0;
555
+ --_px-icon: 0;
556
+ --_gap: normal;
557
+ width: var(--_h);
558
+ }
559
+ .cl-button[data-size=icon-xs] {
560
+ --_h: 1.5rem;
561
+ --_svg: 0.75rem;
562
+ border-radius: min(calc(var(--radius) * 0.8), 10px);
563
+ }
564
+ .cl-button[data-size=icon-sm] {
565
+ --_h: 1.75rem;
566
+ border-radius: min(calc(var(--radius) * 0.8), 12px);
567
+ }
568
+ .cl-button[data-size=icon-lg] {
569
+ --_h: 2.25rem;
570
+ }
571
+ }
572
+
573
+ @layer cl.components {
574
+ .cl-card {
575
+ --card-spacing: 1rem;
576
+ display: flex;
577
+ flex-direction: column;
578
+ gap: var(--card-spacing);
579
+ overflow: hidden;
580
+ padding-block: var(--card-spacing);
581
+ border-radius: calc(var(--radius) * 1.4);
582
+ background-color: var(--card);
583
+ color: var(--card-foreground);
584
+ font-size: 0.875rem;
585
+ line-height: 1.25rem;
586
+ box-shadow: 0 0 0 1px color-mix(in oklab, var(--foreground) 10%, transparent);
587
+ }
588
+ .cl-card[data-size=sm] {
589
+ --card-spacing: 0.75rem;
590
+ }
591
+ .cl-card:has(.cl-card-footer) {
592
+ padding-bottom: 0;
593
+ }
594
+ .cl-card:has(> img:first-child) {
595
+ padding-top: 0;
596
+ }
597
+ .cl-card > img:first-child {
598
+ border-top-left-radius: calc(var(--radius) * 1.4);
599
+ border-top-right-radius: calc(var(--radius) * 1.4);
600
+ }
601
+ .cl-card > img:last-child {
602
+ border-bottom-left-radius: calc(var(--radius) * 1.4);
603
+ border-bottom-right-radius: calc(var(--radius) * 1.4);
604
+ }
605
+ .cl-card-header {
606
+ container: card-header / inline-size;
607
+ display: grid;
608
+ grid-auto-rows: min-content;
609
+ align-items: flex-start;
610
+ gap: 0.25rem;
611
+ padding-inline: var(--card-spacing);
612
+ border-top-left-radius: calc(var(--radius) * 1.4);
613
+ border-top-right-radius: calc(var(--radius) * 1.4);
614
+ }
615
+ .cl-card-header:has(.cl-card-action) {
616
+ grid-template-columns: 1fr auto;
617
+ }
618
+ .cl-card-header:has(.cl-card-description) {
619
+ grid-template-rows: auto auto;
620
+ }
621
+ .cl-card-header.border-b,
622
+ .cl-card-header[data-border] {
623
+ padding-bottom: var(--card-spacing);
624
+ border-bottom-width: 1px;
625
+ }
626
+ .cl-card-title {
627
+ font-size: 1rem;
628
+ line-height: 1.375;
629
+ font-weight: 500;
630
+ }
631
+ .cl-card[data-size=sm] .cl-card-title {
632
+ font-size: 0.875rem;
633
+ }
634
+ .cl-card-description {
635
+ color: var(--muted-foreground);
636
+ font-size: 0.875rem;
637
+ line-height: 1.25rem;
638
+ }
639
+ .cl-card-action {
640
+ grid-column-start: 2;
641
+ grid-row: 1 / span 2;
642
+ align-self: flex-start;
643
+ justify-self: flex-end;
644
+ }
645
+ .cl-card-content {
646
+ padding-inline: var(--card-spacing);
647
+ }
648
+ .cl-card-footer {
649
+ display: flex;
650
+ align-items: center;
651
+ padding: var(--card-spacing);
652
+ border-top-width: 1px;
653
+ border-bottom-left-radius: calc(var(--radius) * 1.4);
654
+ border-bottom-right-radius: calc(var(--radius) * 1.4);
655
+ background-color: color-mix(in oklab, var(--muted) 50%, transparent);
656
+ }
657
+ }
658
+
659
+ @layer cl.components {
660
+ .cl-carousel {
661
+ --cl-carousel-per-view: 1;
662
+ --cl-carousel-gap: 1rem;
663
+ position: relative;
664
+ }
665
+ .cl-carousel-content {
666
+ display: flex;
667
+ gap: var(--cl-carousel-gap);
668
+ overflow: auto hidden;
669
+ overscroll-behavior-x: contain;
670
+ scroll-snap-type: x mandatory;
671
+ scrollbar-width: none;
672
+ border-radius: var(--radius);
673
+ outline: none;
674
+ }
675
+ .cl-carousel-content::-webkit-scrollbar {
676
+ display: none;
677
+ }
678
+ .cl-carousel-content:focus-visible {
679
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
680
+ }
681
+ .cl-carousel-content[data-dragging] {
682
+ scroll-snap-type: none;
683
+ cursor: grabbing;
684
+ -webkit-user-select: none;
685
+ user-select: none;
686
+ }
687
+ .cl-carousel-item {
688
+ flex: 0 0 calc((100% - (var(--cl-carousel-per-view) - 1) * var(--cl-carousel-gap)) / var(--cl-carousel-per-view));
689
+ min-width: 0;
690
+ scroll-snap-align: start;
691
+ }
692
+ .cl-carousel[data-orientation=vertical] .cl-carousel-content {
693
+ flex-direction: column;
694
+ overflow: hidden auto;
695
+ overscroll-behavior-x: auto;
696
+ overscroll-behavior-y: contain;
697
+ scroll-snap-type: y mandatory;
698
+ }
699
+ .cl-carousel :is(.cl-carousel-previous, .cl-carousel-next) {
700
+ position: absolute;
701
+ inset-block: 0;
702
+ margin-block: auto;
703
+ border-radius: calc(infinity * 1px);
704
+ touch-action: manipulation;
705
+ }
706
+ .cl-carousel-previous {
707
+ inset-inline-start: -3rem;
708
+ }
709
+ .cl-carousel-next {
710
+ inset-inline-end: -3rem;
711
+ }
712
+ .cl-carousel:not([data-orientation=vertical]) :is(.cl-carousel-previous, .cl-carousel-next):dir(rtl) svg {
713
+ rotate: 180deg;
714
+ }
715
+ .cl-carousel[data-orientation=vertical] :is(.cl-carousel-previous, .cl-carousel-next) {
716
+ inset: auto auto auto 50%;
717
+ margin: 0;
718
+ translate: -50% 0;
719
+ rotate: 90deg;
720
+ }
721
+ .cl-carousel[data-orientation=vertical] .cl-carousel-previous {
722
+ top: -3rem;
723
+ }
724
+ .cl-carousel[data-orientation=vertical] .cl-carousel-next {
725
+ bottom: -3rem;
726
+ }
727
+ }
728
+
729
+ @layer cl.components {
730
+ .cl-checkbox {
731
+ appearance: none;
732
+ -webkit-appearance: none;
733
+ position: relative;
734
+ display: inline-grid;
735
+ flex-shrink: 0;
736
+ place-content: center;
737
+ width: 1rem;
738
+ height: 1rem;
739
+ margin: 0;
740
+ border: 1px solid var(--input);
741
+ border-radius: 4px;
742
+ background-color: transparent;
743
+ color: inherit;
744
+ cursor: default;
745
+ outline: none;
746
+ transition-property:
747
+ color,
748
+ background-color,
749
+ border-color,
750
+ outline-color,
751
+ text-decoration-color,
752
+ fill,
753
+ stroke;
754
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
755
+ transition-duration: 150ms;
756
+ }
757
+ .cl-checkbox::before {
758
+ content: "";
759
+ width: 0.875rem;
760
+ height: 0.875rem;
761
+ background-color: currentColor;
762
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
763
+ visibility: hidden;
764
+ }
765
+ .cl-checkbox::after {
766
+ content: "";
767
+ position: absolute;
768
+ inset: -0.5rem -0.75rem;
769
+ }
770
+ .cl-checkbox:checked {
771
+ border-color: var(--primary);
772
+ background-color: var(--primary);
773
+ color: var(--primary-foreground);
774
+ }
775
+ .cl-checkbox:checked::before {
776
+ visibility: visible;
777
+ }
778
+ .cl-checkbox:focus-visible {
779
+ border-color: var(--ring);
780
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
781
+ }
782
+ .cl-checkbox:disabled {
783
+ cursor: not-allowed;
784
+ opacity: 0.5;
785
+ }
786
+ .cl-checkbox[aria-invalid=true] {
787
+ border-color: var(--destructive);
788
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 20%, transparent);
789
+ }
790
+ .cl-checkbox[aria-invalid=true]:checked {
791
+ border-color: var(--primary);
792
+ }
793
+ :where(.dark, [data-theme=dark]) .cl-checkbox {
794
+ background-color: color-mix(in oklab, var(--input) 30%, transparent);
795
+ }
796
+ :where(.dark, [data-theme=dark]) .cl-checkbox:checked {
797
+ background-color: var(--primary);
798
+ }
799
+ :where(.dark, [data-theme=dark]) .cl-checkbox[aria-invalid=true] {
800
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 40%, transparent);
801
+ }
802
+ :where(.dark, [data-theme=dark]) .cl-checkbox[aria-invalid=true]:not(:checked) {
803
+ border-color: color-mix(in oklab, var(--destructive) 50%, transparent);
804
+ }
805
+ }
806
+
807
+ @layer cl.components {
808
+ .cl-combobox {
809
+ position: relative;
810
+ display: flex;
811
+ align-items: center;
812
+ height: 2rem;
813
+ min-width: 0;
814
+ border: 1px solid var(--input);
815
+ border-radius: var(--radius);
816
+ transition-property:
817
+ color,
818
+ background-color,
819
+ border-color,
820
+ outline-color,
821
+ text-decoration-color,
822
+ fill,
823
+ stroke;
824
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
825
+ transition-duration: 150ms;
826
+ }
827
+ .cl-combobox:has(> .cl-combobox-input:focus-visible) {
828
+ border-color: var(--ring);
829
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
830
+ }
831
+ .cl-combobox:has(> .cl-combobox-input[aria-invalid=true]) {
832
+ border-color: var(--destructive);
833
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 20%, transparent);
834
+ }
835
+ .cl-combobox:has(> .cl-combobox-input:disabled) {
836
+ background-color: color-mix(in oklab, var(--input) 50%, transparent);
837
+ opacity: 0.5;
838
+ }
839
+ :where(.dark, [data-theme=dark]) .cl-combobox {
840
+ background-color: color-mix(in oklab, var(--input) 30%, transparent);
841
+ }
842
+ :where(.dark, [data-theme=dark]) .cl-combobox:has(> .cl-combobox-input:disabled) {
843
+ background-color: color-mix(in oklab, var(--input) 80%, transparent);
844
+ }
845
+ :where(.dark, [data-theme=dark]) .cl-combobox:has(> .cl-combobox-input[aria-invalid=true]) {
846
+ border-color: color-mix(in oklab, var(--destructive) 50%, transparent);
847
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 40%, transparent);
848
+ }
849
+ .cl-combobox-input {
850
+ flex: 1;
851
+ width: 100%;
852
+ min-width: 0;
853
+ height: 2rem;
854
+ padding: 0.25rem 0.375rem 0.25rem 0.625rem;
855
+ border: 0;
856
+ border-radius: 0;
857
+ background-color: transparent;
858
+ color: inherit;
859
+ font-size: 1rem;
860
+ line-height: 1.5rem;
861
+ outline: none;
862
+ }
863
+ .cl-combobox-input::placeholder {
864
+ color: var(--muted-foreground);
865
+ }
866
+ .cl-combobox-input:disabled {
867
+ pointer-events: none;
868
+ cursor: not-allowed;
869
+ }
870
+ @media (width >= 48rem) {
871
+ .cl-combobox-input {
872
+ font-size: 0.875rem;
873
+ line-height: 1.25rem;
874
+ }
875
+ }
876
+ .cl-combobox-trigger {
877
+ display: flex;
878
+ flex-shrink: 0;
879
+ align-items: center;
880
+ justify-content: center;
881
+ width: 1.5rem;
882
+ height: 1.5rem;
883
+ margin-inline-end: 0.2rem;
884
+ padding: 0;
885
+ border: 0;
886
+ border-radius: calc(var(--radius) - 3px);
887
+ background-color: transparent;
888
+ cursor: default;
889
+ transition-property: color, background-color;
890
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
891
+ transition-duration: 150ms;
892
+ }
893
+ .cl-combobox-trigger::before {
894
+ content: "";
895
+ width: 1rem;
896
+ height: 1rem;
897
+ background-color: var(--muted-foreground);
898
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
899
+ }
900
+ @media (hover: hover) {
901
+ .cl-combobox-trigger:hover {
902
+ background-color: var(--muted);
903
+ }
904
+ }
905
+ .cl-combobox-trigger:disabled {
906
+ pointer-events: none;
907
+ }
908
+ .cl-combobox-content {
909
+ display: none;
910
+ width: var(--cl-anchor-width, auto);
911
+ min-width: max(9rem, calc(var(--cl-anchor-width, 0px) + 1.75rem));
912
+ max-height: min(18rem, var(--cl-available-height, 18rem));
913
+ overflow: hidden;
914
+ padding: 0;
915
+ border-radius: var(--radius);
916
+ background-color: var(--popover);
917
+ color: var(--popover-foreground);
918
+ font-size: 1rem;
919
+ line-height: 1.5rem;
920
+ box-shadow:
921
+ 0 0 0 1px color-mix(in oklab, var(--foreground) 10%, transparent),
922
+ 0 4px 6px -1px rgb(0 0 0 / 0.1),
923
+ 0 2px 4px -2px rgb(0 0 0 / 0.1);
924
+ }
925
+ .cl-combobox-content:popover-open {
926
+ display: block;
927
+ }
928
+ .cl-combobox-list {
929
+ max-height: min(15.75rem, calc(var(--cl-available-height, 18rem) - 2.25rem));
930
+ overflow-y: auto;
931
+ overscroll-behavior: contain;
932
+ scroll-padding-block: 0.25rem;
933
+ scrollbar-width: none;
934
+ padding: 0.25rem;
935
+ }
936
+ .cl-combobox-list::-webkit-scrollbar {
937
+ display: none;
938
+ }
939
+ .cl-combobox-content[data-empty] .cl-combobox-list {
940
+ padding: 0;
941
+ }
942
+ .cl-combobox-item {
943
+ position: relative;
944
+ display: flex;
945
+ align-items: center;
946
+ gap: 0.5rem;
947
+ width: 100%;
948
+ padding-block: 0.25rem;
949
+ padding-inline: 0.375rem 2rem;
950
+ border-radius: calc(var(--radius) * 0.8);
951
+ font-size: 0.875rem;
952
+ line-height: 1.25rem;
953
+ cursor: default;
954
+ -webkit-user-select: none;
955
+ user-select: none;
956
+ outline: none;
957
+ }
958
+ .cl-combobox-item[hidden] {
959
+ display: none;
960
+ }
961
+ .cl-combobox-item[data-highlighted] {
962
+ background-color: var(--accent);
963
+ color: var(--accent-foreground);
964
+ }
965
+ .cl-combobox-item[aria-disabled=true] {
966
+ pointer-events: none;
967
+ opacity: 0.5;
968
+ }
969
+ .cl-combobox-item svg {
970
+ flex-shrink: 0;
971
+ width: 1rem;
972
+ height: 1rem;
973
+ pointer-events: none;
974
+ }
975
+ .cl-combobox-item[aria-selected=true]::after {
976
+ content: "";
977
+ position: absolute;
978
+ inset-inline-end: 0.5rem;
979
+ width: 1rem;
980
+ height: 1rem;
981
+ background-color: currentColor;
982
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
983
+ pointer-events: none;
984
+ }
985
+ .cl-combobox-label {
986
+ padding: 0.375rem 0.5rem;
987
+ color: var(--muted-foreground);
988
+ font-size: 0.75rem;
989
+ line-height: 1rem;
990
+ }
991
+ .cl-combobox-separator {
992
+ height: 1px;
993
+ margin: 0.25rem -0.25rem;
994
+ background-color: var(--border);
995
+ }
996
+ .cl-combobox-empty {
997
+ display: none;
998
+ justify-content: center;
999
+ width: 100%;
1000
+ padding-block: 0.5rem;
1001
+ color: var(--muted-foreground);
1002
+ font-size: 0.875rem;
1003
+ line-height: 1.25rem;
1004
+ text-align: center;
1005
+ }
1006
+ .cl-combobox-content[data-empty] .cl-combobox-empty {
1007
+ display: flex;
1008
+ }
1009
+ }
1010
+
1011
+ @layer cl.components {
1012
+ .cl-dialog {
1013
+ position: fixed;
1014
+ inset: 50% auto auto 50%;
1015
+ z-index: 50;
1016
+ gap: 1rem;
1017
+ width: 100%;
1018
+ height: auto;
1019
+ max-width: calc(100% - 2rem);
1020
+ max-height: none;
1021
+ margin: 0;
1022
+ padding: 1rem;
1023
+ border: 0;
1024
+ border-radius: calc(var(--radius) * 1.4);
1025
+ background-color: var(--popover);
1026
+ color: var(--popover-foreground);
1027
+ font-size: 0.875rem;
1028
+ line-height: 1.25rem;
1029
+ outline: none;
1030
+ box-shadow: 0 0 0 1px color-mix(in oklab, var(--foreground) 10%, transparent);
1031
+ translate: -50% -50%;
1032
+ opacity: 0;
1033
+ scale: 0.95;
1034
+ transition-property:
1035
+ opacity,
1036
+ scale,
1037
+ display,
1038
+ overlay;
1039
+ transition-duration: 100ms;
1040
+ transition-timing-function: ease;
1041
+ transition-behavior: allow-discrete;
1042
+ }
1043
+ .cl-dialog[open] {
1044
+ display: grid;
1045
+ opacity: 1;
1046
+ scale: 1;
1047
+ }
1048
+ @starting-style {
1049
+ .cl-dialog[open] {
1050
+ opacity: 0;
1051
+ scale: 0.95;
1052
+ }
1053
+ }
1054
+ @media (width >= 40rem) {
1055
+ .cl-dialog {
1056
+ max-width: 24rem;
1057
+ }
1058
+ }
1059
+ .cl-dialog::backdrop {
1060
+ background-color: rgb(0 0 0 / 0);
1061
+ transition-property:
1062
+ background-color,
1063
+ backdrop-filter,
1064
+ display,
1065
+ overlay;
1066
+ transition-duration: 100ms;
1067
+ transition-timing-function: ease;
1068
+ transition-behavior: allow-discrete;
1069
+ }
1070
+ .cl-dialog[open]::backdrop {
1071
+ background-color: rgb(0 0 0 / 0.1);
1072
+ -webkit-backdrop-filter: blur(4px);
1073
+ backdrop-filter: blur(4px);
1074
+ }
1075
+ @starting-style {
1076
+ .cl-dialog[open]::backdrop {
1077
+ background-color: rgb(0 0 0 / 0);
1078
+ -webkit-backdrop-filter: blur(0);
1079
+ backdrop-filter: blur(0);
1080
+ }
1081
+ }
1082
+ @media (prefers-reduced-motion: reduce) {
1083
+ .cl-dialog,
1084
+ .cl-dialog::backdrop {
1085
+ transition-duration: 0s;
1086
+ }
1087
+ }
1088
+ .cl-dialog-header {
1089
+ display: flex;
1090
+ flex-direction: column;
1091
+ gap: 0.5rem;
1092
+ }
1093
+ .cl-dialog-title {
1094
+ margin: 0;
1095
+ font-size: 1rem;
1096
+ line-height: 1;
1097
+ font-weight: 500;
1098
+ }
1099
+ .cl-dialog-description {
1100
+ margin: 0;
1101
+ color: var(--muted-foreground);
1102
+ font-size: 0.875rem;
1103
+ line-height: 1.25rem;
1104
+ }
1105
+ .cl-dialog-description > a {
1106
+ text-decoration-line: underline;
1107
+ text-underline-offset: 3px;
1108
+ }
1109
+ @media (hover: hover) {
1110
+ .cl-dialog-description > a:hover {
1111
+ color: var(--foreground);
1112
+ }
1113
+ }
1114
+ .cl-dialog-footer {
1115
+ display: flex;
1116
+ flex-direction: column-reverse;
1117
+ gap: 0.5rem;
1118
+ margin: 0 -1rem -1rem;
1119
+ padding: 1rem;
1120
+ border-top: 1px solid var(--border);
1121
+ border-radius: 0 0 calc(var(--radius) * 1.4) calc(var(--radius) * 1.4);
1122
+ background-color: color-mix(in oklab, var(--muted) 50%, transparent);
1123
+ }
1124
+ @media (width >= 40rem) {
1125
+ .cl-dialog-footer {
1126
+ flex-direction: row;
1127
+ justify-content: flex-end;
1128
+ }
1129
+ }
1130
+ .cl-dialog-close {
1131
+ position: absolute;
1132
+ top: 0.5rem;
1133
+ inset-inline-end: 0.5rem;
1134
+ }
1135
+ }
1136
+
1137
+ @layer cl.components {
1138
+ .cl-menu {
1139
+ display: none;
1140
+ width: var(--cl-anchor-width, auto);
1141
+ min-width: 8rem;
1142
+ max-height: var(--cl-available-height, none);
1143
+ overflow-x: hidden;
1144
+ overflow-y: auto;
1145
+ padding: 0.25rem;
1146
+ border-radius: var(--radius);
1147
+ background-color: var(--popover);
1148
+ color: var(--popover-foreground);
1149
+ font-size: 1rem;
1150
+ line-height: 1.5rem;
1151
+ outline: none;
1152
+ box-shadow:
1153
+ 0 0 0 1px color-mix(in oklab, var(--foreground) 10%, transparent),
1154
+ 0 4px 6px -1px rgb(0 0 0 / 0.1),
1155
+ 0 2px 4px -2px rgb(0 0 0 / 0.1);
1156
+ }
1157
+ .cl-menu:popover-open {
1158
+ display: block;
1159
+ }
1160
+ .cl-menu-item {
1161
+ position: relative;
1162
+ display: flex;
1163
+ align-items: center;
1164
+ gap: 0.375rem;
1165
+ width: 100%;
1166
+ padding: 0.25rem 0.375rem;
1167
+ border: 0 solid var(--border);
1168
+ border-radius: calc(var(--radius) * 0.8);
1169
+ background-color: transparent;
1170
+ color: inherit;
1171
+ font: inherit;
1172
+ font-size: 0.875rem;
1173
+ line-height: 1.25rem;
1174
+ text-align: start;
1175
+ text-decoration: none;
1176
+ cursor: default;
1177
+ outline: none;
1178
+ user-select: none;
1179
+ -webkit-user-select: none;
1180
+ }
1181
+ .cl-menu-item svg {
1182
+ pointer-events: none;
1183
+ flex-shrink: 0;
1184
+ }
1185
+ .cl-menu-item svg:not([class*=size-]) {
1186
+ width: 1rem;
1187
+ height: 1rem;
1188
+ }
1189
+ .cl-menu-item:focus {
1190
+ background-color: var(--accent);
1191
+ color: var(--accent-foreground);
1192
+ }
1193
+ .cl-menu-item:not([data-variant=destructive]):focus * {
1194
+ color: var(--accent-foreground);
1195
+ }
1196
+ .cl-menu-item[data-inset] {
1197
+ padding-inline-start: 1.75rem;
1198
+ }
1199
+ .cl-menu-item:disabled,
1200
+ .cl-menu-item[aria-disabled=true] {
1201
+ pointer-events: none;
1202
+ opacity: 0.5;
1203
+ }
1204
+ .cl-menu-item[data-variant=destructive],
1205
+ .cl-menu-item[data-variant=destructive] > svg {
1206
+ color: var(--destructive);
1207
+ }
1208
+ .cl-menu-item[data-variant=destructive]:focus {
1209
+ background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
1210
+ color: var(--destructive);
1211
+ }
1212
+ :where(.dark, [data-theme=dark]) .cl-menu-item[data-variant=destructive]:focus {
1213
+ background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
1214
+ }
1215
+ .cl-menu-item:is([role=menuitemcheckbox], [role=menuitemradio]) {
1216
+ padding-inline-end: 2rem;
1217
+ padding-inline-start: 0.375rem;
1218
+ }
1219
+ .cl-menu-item:is([role=menuitemcheckbox], [role=menuitemradio])::after {
1220
+ content: "";
1221
+ position: absolute;
1222
+ inset-inline-end: 0.5rem;
1223
+ width: 1rem;
1224
+ height: 1rem;
1225
+ background-color: currentColor;
1226
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
1227
+ visibility: hidden;
1228
+ }
1229
+ .cl-menu-item[aria-checked=true]::after {
1230
+ visibility: visible;
1231
+ }
1232
+ .cl-menu-label {
1233
+ padding: 0.25rem 0.375rem;
1234
+ color: var(--muted-foreground);
1235
+ font-size: 0.75rem;
1236
+ line-height: 1rem;
1237
+ font-weight: 500;
1238
+ }
1239
+ .cl-menu-label[data-inset] {
1240
+ padding-inline-start: 1.75rem;
1241
+ }
1242
+ .cl-menu-separator {
1243
+ height: 1px;
1244
+ margin: 0.25rem -0.25rem;
1245
+ background-color: var(--border);
1246
+ }
1247
+ .cl-menu-shortcut {
1248
+ margin-inline-start: auto;
1249
+ color: var(--muted-foreground);
1250
+ font-size: 0.75rem;
1251
+ line-height: 1rem;
1252
+ letter-spacing: 0.1em;
1253
+ }
1254
+ .cl-menu-item:focus .cl-menu-shortcut {
1255
+ color: var(--accent-foreground);
1256
+ }
1257
+ }
1258
+
1259
+ @layer cl.components {
1260
+ .cl-input {
1261
+ width: 100%;
1262
+ min-width: 0;
1263
+ height: 2rem;
1264
+ padding: 0.25rem 0.625rem;
1265
+ border: 1px solid var(--input);
1266
+ border-radius: var(--radius);
1267
+ background-color: transparent;
1268
+ color: inherit;
1269
+ font-size: 1rem;
1270
+ line-height: 1.5rem;
1271
+ outline: none;
1272
+ transition-property:
1273
+ color,
1274
+ background-color,
1275
+ border-color,
1276
+ outline-color,
1277
+ text-decoration-color,
1278
+ fill,
1279
+ stroke;
1280
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1281
+ transition-duration: 150ms;
1282
+ }
1283
+ .cl-input::placeholder {
1284
+ color: var(--muted-foreground);
1285
+ }
1286
+ .cl-input::file-selector-button {
1287
+ display: inline-flex;
1288
+ height: 1.5rem;
1289
+ border: 0;
1290
+ background-color: transparent;
1291
+ color: var(--foreground);
1292
+ font-size: 0.875rem;
1293
+ line-height: 1.25rem;
1294
+ font-weight: 500;
1295
+ }
1296
+ .cl-input:focus-visible {
1297
+ border-color: var(--ring);
1298
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
1299
+ }
1300
+ .cl-input:disabled {
1301
+ pointer-events: none;
1302
+ cursor: not-allowed;
1303
+ opacity: 0.5;
1304
+ background-color: color-mix(in oklab, var(--input) 50%, transparent);
1305
+ }
1306
+ .cl-input[aria-invalid=true] {
1307
+ border-color: var(--destructive);
1308
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 20%, transparent);
1309
+ }
1310
+ @media (width >= 48rem) {
1311
+ .cl-input {
1312
+ font-size: 0.875rem;
1313
+ line-height: 1.25rem;
1314
+ }
1315
+ }
1316
+ :where(.dark, [data-theme=dark]) .cl-input {
1317
+ background-color: color-mix(in oklab, var(--input) 30%, transparent);
1318
+ }
1319
+ :where(.dark, [data-theme=dark]) .cl-input:disabled {
1320
+ background-color: color-mix(in oklab, var(--input) 80%, transparent);
1321
+ }
1322
+ :where(.dark, [data-theme=dark]) .cl-input[aria-invalid=true] {
1323
+ border-color: color-mix(in oklab, var(--destructive) 50%, transparent);
1324
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 40%, transparent);
1325
+ }
1326
+ }
1327
+
1328
+ @layer cl.components {
1329
+ .cl-kbd {
1330
+ display: inline-flex;
1331
+ align-items: center;
1332
+ justify-content: center;
1333
+ gap: 0.25rem;
1334
+ width: fit-content;
1335
+ min-width: 1.25rem;
1336
+ height: 1.25rem;
1337
+ padding-inline: 0.25rem;
1338
+ border-radius: calc(var(--radius) * 0.6);
1339
+ background-color: var(--muted);
1340
+ color: var(--muted-foreground);
1341
+ font-family: var(--font-sans, ui-sans-serif, system-ui, sans-serif);
1342
+ font-size: 0.75rem;
1343
+ line-height: 1rem;
1344
+ font-weight: 500;
1345
+ pointer-events: none;
1346
+ user-select: none;
1347
+ -webkit-user-select: none;
1348
+ }
1349
+ .cl-kbd svg:not([class*=size-]) {
1350
+ width: 0.75rem;
1351
+ height: 0.75rem;
1352
+ }
1353
+ .cl-kbd-group {
1354
+ display: inline-flex;
1355
+ align-items: center;
1356
+ gap: 0.25rem;
1357
+ }
1358
+ }
1359
+
1360
+ @layer cl.components {
1361
+ .cl-label {
1362
+ display: flex;
1363
+ align-items: center;
1364
+ gap: 0.5rem;
1365
+ font-size: 0.875rem;
1366
+ line-height: 1;
1367
+ font-weight: 500;
1368
+ user-select: none;
1369
+ -webkit-user-select: none;
1370
+ }
1371
+ :disabled ~ .cl-label {
1372
+ cursor: not-allowed;
1373
+ opacity: 0.5;
1374
+ }
1375
+ :where([data-disabled=true]) .cl-label {
1376
+ pointer-events: none;
1377
+ opacity: 0.5;
1378
+ }
1379
+ }
1380
+
1381
+ @layer cl.components {
1382
+ .cl-popover {
1383
+ display: none;
1384
+ flex-direction: column;
1385
+ gap: 0.625rem;
1386
+ width: 18rem;
1387
+ padding: 0.625rem;
1388
+ border-radius: var(--radius);
1389
+ background-color: var(--popover);
1390
+ color: var(--popover-foreground);
1391
+ font-size: 0.875rem;
1392
+ line-height: 1.25rem;
1393
+ outline: none;
1394
+ box-shadow:
1395
+ 0 0 0 1px color-mix(in oklab, var(--foreground) 10%, transparent),
1396
+ 0 4px 6px -1px rgb(0 0 0 / 0.1),
1397
+ 0 2px 4px -2px rgb(0 0 0 / 0.1);
1398
+ }
1399
+ .cl-popover:popover-open {
1400
+ display: flex;
1401
+ }
1402
+ .cl-popover-header {
1403
+ display: flex;
1404
+ flex-direction: column;
1405
+ gap: 0.125rem;
1406
+ font-size: 0.875rem;
1407
+ line-height: 1.25rem;
1408
+ }
1409
+ .cl-popover-title {
1410
+ margin: 0;
1411
+ font-weight: 500;
1412
+ }
1413
+ .cl-popover-description {
1414
+ margin: 0;
1415
+ color: var(--muted-foreground);
1416
+ }
1417
+ }
1418
+
1419
+ @layer cl.components {
1420
+ .cl-select {
1421
+ --_h: 2rem;
1422
+ position: relative;
1423
+ width: fit-content;
1424
+ }
1425
+ .cl-select[data-size=sm] {
1426
+ --_h: 1.75rem;
1427
+ }
1428
+ .cl-select:has(select:disabled) {
1429
+ opacity: 0.5;
1430
+ }
1431
+ .cl-select > select {
1432
+ appearance: none;
1433
+ -webkit-appearance: none;
1434
+ width: 100%;
1435
+ min-width: 0;
1436
+ height: var(--_h);
1437
+ margin: 0;
1438
+ padding: 0.25rem 2rem 0.25rem 0.625rem;
1439
+ border: 1px solid var(--input);
1440
+ border-radius: var(--radius);
1441
+ background-color: transparent;
1442
+ color: inherit;
1443
+ font: inherit;
1444
+ font-size: 0.875rem;
1445
+ line-height: 1.25rem;
1446
+ outline: none;
1447
+ user-select: none;
1448
+ -webkit-user-select: none;
1449
+ transition-property:
1450
+ color,
1451
+ background-color,
1452
+ border-color,
1453
+ outline-color,
1454
+ text-decoration-color,
1455
+ fill,
1456
+ stroke;
1457
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1458
+ transition-duration: 150ms;
1459
+ }
1460
+ .cl-select[data-size=sm] > select {
1461
+ padding-block: 0.125rem;
1462
+ border-radius: min(calc(var(--radius) * 0.8), 10px);
1463
+ }
1464
+ .cl-select > select > :is(option, optgroup) {
1465
+ background-color: Canvas;
1466
+ color: CanvasText;
1467
+ }
1468
+ .cl-select::after {
1469
+ content: "";
1470
+ position: absolute;
1471
+ top: 50%;
1472
+ inset-inline-end: 0.625rem;
1473
+ width: 1rem;
1474
+ height: 1rem;
1475
+ translate: 0 -50%;
1476
+ background-color: var(--muted-foreground);
1477
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
1478
+ pointer-events: none;
1479
+ }
1480
+ .cl-select > select:focus-visible {
1481
+ border-color: var(--ring);
1482
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
1483
+ }
1484
+ .cl-select > select:disabled {
1485
+ pointer-events: none;
1486
+ cursor: not-allowed;
1487
+ }
1488
+ .cl-select > select[aria-invalid=true] {
1489
+ border-color: var(--destructive);
1490
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 20%, transparent);
1491
+ }
1492
+ :where(.dark, [data-theme=dark]) .cl-select > select {
1493
+ background-color: color-mix(in oklab, var(--input) 30%, transparent);
1494
+ }
1495
+ @media (hover: hover) {
1496
+ :where(.dark, [data-theme=dark]) .cl-select > select:hover {
1497
+ background-color: color-mix(in oklab, var(--input) 50%, transparent);
1498
+ }
1499
+ }
1500
+ :where(.dark, [data-theme=dark]) .cl-select > select[aria-invalid=true] {
1501
+ border-color: color-mix(in oklab, var(--destructive) 50%, transparent);
1502
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 40%, transparent);
1503
+ }
1504
+ }
1505
+
1506
+ @layer cl.components {
1507
+ .cl-separator {
1508
+ flex-shrink: 0;
1509
+ width: 100%;
1510
+ height: 1px;
1511
+ background-color: var(--border);
1512
+ }
1513
+ .cl-separator[data-orientation=vertical] {
1514
+ width: 1px;
1515
+ height: auto;
1516
+ align-self: stretch;
1517
+ }
1518
+ }
1519
+
1520
+ @layer cl.components {
1521
+ .cl-sheet {
1522
+ --_from: 2.5rem 0;
1523
+ position: fixed;
1524
+ inset: 0 0 0 auto;
1525
+ z-index: 50;
1526
+ gap: 1rem;
1527
+ width: 75%;
1528
+ height: 100%;
1529
+ max-width: none;
1530
+ max-height: none;
1531
+ margin: 0;
1532
+ padding: 0;
1533
+ border: 0 solid var(--border);
1534
+ border-left-width: 1px;
1535
+ background-color: var(--popover);
1536
+ background-clip: padding-box;
1537
+ color: var(--popover-foreground);
1538
+ font-size: 0.875rem;
1539
+ line-height: 1.25rem;
1540
+ outline: none;
1541
+ box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
1542
+ opacity: 0;
1543
+ translate: var(--_from);
1544
+ transition-property:
1545
+ opacity,
1546
+ translate,
1547
+ display,
1548
+ overlay;
1549
+ transition-duration: 200ms;
1550
+ transition-timing-function: ease-in-out;
1551
+ transition-behavior: allow-discrete;
1552
+ }
1553
+ .cl-sheet[open] {
1554
+ display: flex;
1555
+ flex-direction: column;
1556
+ opacity: 1;
1557
+ translate: 0 0;
1558
+ }
1559
+ @starting-style {
1560
+ .cl-sheet[open] {
1561
+ opacity: 0;
1562
+ translate: var(--_from);
1563
+ }
1564
+ }
1565
+ .cl-sheet[data-side=left] {
1566
+ --_from: -2.5rem 0;
1567
+ inset: 0 auto 0 0;
1568
+ border-left-width: 0;
1569
+ border-right-width: 1px;
1570
+ }
1571
+ .cl-sheet:is([data-side=top], [data-side=bottom]) {
1572
+ width: auto;
1573
+ height: auto;
1574
+ border-left-width: 0;
1575
+ }
1576
+ .cl-sheet[data-side=top] {
1577
+ --_from: 0 -2.5rem;
1578
+ inset: 0 0 auto 0;
1579
+ border-bottom-width: 1px;
1580
+ }
1581
+ .cl-sheet[data-side=bottom] {
1582
+ --_from: 0 2.5rem;
1583
+ inset: auto 0 0 0;
1584
+ border-top-width: 1px;
1585
+ }
1586
+ @media (width >= 40rem) {
1587
+ .cl-sheet:not([data-side=top], [data-side=bottom]) {
1588
+ max-width: 24rem;
1589
+ }
1590
+ }
1591
+ .cl-sheet::backdrop {
1592
+ background-color: rgb(0 0 0 / 0);
1593
+ transition-property:
1594
+ background-color,
1595
+ backdrop-filter,
1596
+ display,
1597
+ overlay;
1598
+ transition-duration: 100ms;
1599
+ transition-behavior: allow-discrete;
1600
+ }
1601
+ .cl-sheet[open]::backdrop {
1602
+ background-color: rgb(0 0 0 / 0.1);
1603
+ -webkit-backdrop-filter: blur(4px);
1604
+ backdrop-filter: blur(4px);
1605
+ }
1606
+ @starting-style {
1607
+ .cl-sheet[open]::backdrop {
1608
+ background-color: rgb(0 0 0 / 0);
1609
+ -webkit-backdrop-filter: blur(0);
1610
+ backdrop-filter: blur(0);
1611
+ }
1612
+ }
1613
+ @media (prefers-reduced-motion: reduce) {
1614
+ .cl-sheet,
1615
+ .cl-sheet::backdrop {
1616
+ transition-duration: 0s;
1617
+ }
1618
+ }
1619
+ .cl-sheet-header {
1620
+ display: flex;
1621
+ flex-direction: column;
1622
+ gap: 0.125rem;
1623
+ padding: 1rem;
1624
+ }
1625
+ .cl-sheet-footer {
1626
+ display: flex;
1627
+ flex-direction: column;
1628
+ gap: 0.5rem;
1629
+ margin-top: auto;
1630
+ padding: 1rem;
1631
+ }
1632
+ .cl-sheet-title {
1633
+ margin: 0;
1634
+ color: var(--foreground);
1635
+ font-size: 1rem;
1636
+ line-height: 1.5rem;
1637
+ font-weight: 500;
1638
+ }
1639
+ .cl-sheet-description {
1640
+ margin: 0;
1641
+ color: var(--muted-foreground);
1642
+ font-size: 0.875rem;
1643
+ line-height: 1.25rem;
1644
+ }
1645
+ .cl-sheet-close {
1646
+ position: absolute;
1647
+ top: 0.75rem;
1648
+ inset-inline-end: 0.75rem;
1649
+ }
1650
+ }
1651
+
1652
+ @layer cl.components {
1653
+ @keyframes cl-pulse {
1654
+ 50% {
1655
+ opacity: 0.5;
1656
+ }
1657
+ }
1658
+ .cl-skeleton {
1659
+ border-radius: calc(var(--radius) * 0.8);
1660
+ background-color: var(--muted);
1661
+ animation: cl-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
1662
+ }
1663
+ }
1664
+
1665
+ @layer cl.components {
1666
+ .cl-slider {
1667
+ appearance: none;
1668
+ -webkit-appearance: none;
1669
+ display: block;
1670
+ width: 100%;
1671
+ height: 1.75rem;
1672
+ margin: -0.75rem 0;
1673
+ padding: 0;
1674
+ background: transparent;
1675
+ touch-action: none;
1676
+ -webkit-user-select: none;
1677
+ user-select: none;
1678
+ outline: none;
1679
+ }
1680
+ .cl-slider:disabled {
1681
+ pointer-events: none;
1682
+ opacity: 0.5;
1683
+ }
1684
+ .cl-slider::-webkit-slider-runnable-track {
1685
+ height: 0.25rem;
1686
+ border-radius: calc(infinity * 1px);
1687
+ background:
1688
+ linear-gradient(
1689
+ to right,
1690
+ var(--primary) var(--cl-slider-fill, 0%),
1691
+ var(--muted) var(--cl-slider-fill, 0%));
1692
+ }
1693
+ .cl-slider:dir(rtl)::-webkit-slider-runnable-track {
1694
+ background:
1695
+ linear-gradient(
1696
+ to left,
1697
+ var(--primary) var(--cl-slider-fill, 0%),
1698
+ var(--muted) var(--cl-slider-fill, 0%));
1699
+ }
1700
+ .cl-slider::-moz-range-track {
1701
+ height: 0.25rem;
1702
+ border-radius: calc(infinity * 1px);
1703
+ background-color: var(--muted);
1704
+ }
1705
+ .cl-slider::-moz-range-progress {
1706
+ height: 0.25rem;
1707
+ border-radius: calc(infinity * 1px);
1708
+ background-color: var(--primary);
1709
+ }
1710
+ .cl-slider::-webkit-slider-thumb {
1711
+ appearance: none;
1712
+ -webkit-appearance: none;
1713
+ box-sizing: border-box;
1714
+ width: 0.75rem;
1715
+ height: 0.75rem;
1716
+ margin-top: -0.25rem;
1717
+ border: 1px solid var(--ring);
1718
+ border-radius: calc(infinity * 1px);
1719
+ background-color: white;
1720
+ transition-property: color, box-shadow;
1721
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1722
+ transition-duration: 150ms;
1723
+ }
1724
+ .cl-slider::-moz-range-thumb {
1725
+ box-sizing: border-box;
1726
+ width: 0.75rem;
1727
+ height: 0.75rem;
1728
+ border: 1px solid var(--ring);
1729
+ border-radius: calc(infinity * 1px);
1730
+ background-color: white;
1731
+ transition-property: color, box-shadow;
1732
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1733
+ transition-duration: 150ms;
1734
+ }
1735
+ .cl-slider:is(:focus-visible, :active)::-webkit-slider-thumb {
1736
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
1737
+ }
1738
+ .cl-slider:is(:focus-visible, :active)::-moz-range-thumb {
1739
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
1740
+ }
1741
+ @media (hover: hover) {
1742
+ .cl-slider::-webkit-slider-thumb:hover {
1743
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
1744
+ }
1745
+ .cl-slider::-moz-range-thumb:hover {
1746
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
1747
+ }
1748
+ }
1749
+ }
1750
+
1751
+ @layer cl.components {
1752
+ .cl-switch {
1753
+ --_w: 32px;
1754
+ --_h: 18.4px;
1755
+ --_thumb: 1rem;
1756
+ appearance: none;
1757
+ -webkit-appearance: none;
1758
+ position: relative;
1759
+ display: inline-flex;
1760
+ flex-shrink: 0;
1761
+ align-items: center;
1762
+ width: var(--_w);
1763
+ height: var(--_h);
1764
+ margin: 0;
1765
+ border: 1px solid transparent;
1766
+ border-radius: calc(infinity * 1px);
1767
+ background-color: var(--input);
1768
+ cursor: default;
1769
+ outline: none;
1770
+ transition-property: all;
1771
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1772
+ transition-duration: 150ms;
1773
+ }
1774
+ .cl-switch[data-size=sm] {
1775
+ --_w: 24px;
1776
+ --_h: 14px;
1777
+ --_thumb: 0.75rem;
1778
+ }
1779
+ .cl-switch::before {
1780
+ content: "";
1781
+ display: block;
1782
+ width: var(--_thumb);
1783
+ height: var(--_thumb);
1784
+ border-radius: calc(infinity * 1px);
1785
+ background-color: var(--background);
1786
+ pointer-events: none;
1787
+ transition-property:
1788
+ transform,
1789
+ translate,
1790
+ scale,
1791
+ rotate;
1792
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1793
+ transition-duration: 150ms;
1794
+ }
1795
+ .cl-switch::after {
1796
+ content: "";
1797
+ position: absolute;
1798
+ inset: -0.5rem -0.75rem;
1799
+ }
1800
+ .cl-switch:checked {
1801
+ background-color: var(--primary);
1802
+ }
1803
+ .cl-switch:checked::before {
1804
+ translate: calc(100% - 2px) 0;
1805
+ }
1806
+ .cl-switch:focus-visible {
1807
+ border-color: var(--ring);
1808
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
1809
+ }
1810
+ .cl-switch:disabled {
1811
+ cursor: not-allowed;
1812
+ opacity: 0.5;
1813
+ }
1814
+ .cl-switch[aria-invalid=true] {
1815
+ border-color: var(--destructive);
1816
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 20%, transparent);
1817
+ }
1818
+ :where(.dark, [data-theme=dark]) .cl-switch:not(:checked) {
1819
+ background-color: color-mix(in oklab, var(--input) 80%, transparent);
1820
+ }
1821
+ :where(.dark, [data-theme=dark]) .cl-switch::before {
1822
+ background-color: var(--foreground);
1823
+ }
1824
+ :where(.dark, [data-theme=dark]) .cl-switch:checked::before {
1825
+ background-color: var(--primary-foreground);
1826
+ }
1827
+ :where(.dark, [data-theme=dark]) .cl-switch[aria-invalid=true] {
1828
+ border-color: color-mix(in oklab, var(--destructive) 50%, transparent);
1829
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 40%, transparent);
1830
+ }
1831
+ }
1832
+
1833
+ @layer cl.components {
1834
+ .cl-tabs {
1835
+ display: flex;
1836
+ flex-direction: column;
1837
+ gap: 0.5rem;
1838
+ }
1839
+ .cl-tabs-list {
1840
+ display: inline-flex;
1841
+ align-items: center;
1842
+ justify-content: center;
1843
+ width: fit-content;
1844
+ height: 2rem;
1845
+ padding: 3px;
1846
+ border-radius: var(--radius);
1847
+ background-color: var(--muted);
1848
+ color: var(--muted-foreground);
1849
+ }
1850
+ .cl-tabs-list[data-variant=line] {
1851
+ gap: 0.25rem;
1852
+ border-radius: 0;
1853
+ background-color: transparent;
1854
+ }
1855
+ .cl-tabs-trigger {
1856
+ position: relative;
1857
+ display: inline-flex;
1858
+ flex: 1 1 0%;
1859
+ align-items: center;
1860
+ justify-content: center;
1861
+ gap: 0.375rem;
1862
+ height: calc(100% - 1px);
1863
+ padding: 0.125rem 0.375rem;
1864
+ border: 1px solid transparent;
1865
+ border-radius: calc(var(--radius) * 0.8);
1866
+ background-color: transparent;
1867
+ color: color-mix(in oklab, var(--foreground) 60%, transparent);
1868
+ font: inherit;
1869
+ font-size: 0.875rem;
1870
+ line-height: 1.25rem;
1871
+ font-weight: 500;
1872
+ white-space: nowrap;
1873
+ cursor: pointer;
1874
+ outline: none;
1875
+ transition-property: all;
1876
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1877
+ transition-duration: 150ms;
1878
+ }
1879
+ .cl-tabs-trigger svg {
1880
+ pointer-events: none;
1881
+ flex-shrink: 0;
1882
+ }
1883
+ .cl-tabs-trigger svg:not([class*=size-]) {
1884
+ width: 1rem;
1885
+ height: 1rem;
1886
+ }
1887
+ .cl-tabs-trigger:disabled {
1888
+ pointer-events: none;
1889
+ opacity: 0.5;
1890
+ }
1891
+ .cl-tabs-trigger[aria-selected=true] {
1892
+ background-color: var(--background);
1893
+ color: var(--foreground);
1894
+ }
1895
+ .cl-tabs-list:not([data-variant=line]) .cl-tabs-trigger[aria-selected=true] {
1896
+ box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
1897
+ }
1898
+ .cl-tabs-list[data-variant=line] .cl-tabs-trigger {
1899
+ background-color: transparent;
1900
+ }
1901
+ .cl-tabs-trigger::after {
1902
+ content: "";
1903
+ position: absolute;
1904
+ inset-inline: 0;
1905
+ bottom: -5px;
1906
+ height: 2px;
1907
+ background-color: var(--foreground);
1908
+ opacity: 0;
1909
+ transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);
1910
+ }
1911
+ .cl-tabs-list[data-variant=line] .cl-tabs-trigger[aria-selected=true]::after {
1912
+ opacity: 1;
1913
+ }
1914
+ @media (hover: hover) {
1915
+ .cl-tabs-trigger:hover {
1916
+ color: var(--foreground);
1917
+ }
1918
+ }
1919
+ .cl-tabs-trigger:focus-visible {
1920
+ border-color: var(--ring);
1921
+ outline: 1px solid var(--ring);
1922
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
1923
+ }
1924
+ :where(.dark, [data-theme=dark]) .cl-tabs-trigger {
1925
+ color: var(--muted-foreground);
1926
+ }
1927
+ @media (hover: hover) {
1928
+ :where(.dark, [data-theme=dark]) .cl-tabs-trigger:hover {
1929
+ color: var(--foreground);
1930
+ }
1931
+ }
1932
+ :where(.dark, [data-theme=dark]) .cl-tabs-trigger[aria-selected=true] {
1933
+ border-color: var(--input);
1934
+ background-color: color-mix(in oklab, var(--input) 30%, transparent);
1935
+ color: var(--foreground);
1936
+ }
1937
+ :where(.dark, [data-theme=dark]) .cl-tabs-list[data-variant=line] .cl-tabs-trigger[aria-selected=true] {
1938
+ border-color: transparent;
1939
+ background-color: transparent;
1940
+ }
1941
+ .cl-tabs-content {
1942
+ flex: 1 1 0%;
1943
+ font-size: 0.875rem;
1944
+ line-height: 1.25rem;
1945
+ outline: none;
1946
+ }
1947
+ .cl-tabs-content[hidden] {
1948
+ display: none;
1949
+ }
1950
+ }
1951
+
1952
+ @layer cl.components {
1953
+ .cl-textarea {
1954
+ display: flex;
1955
+ field-sizing: content;
1956
+ width: 100%;
1957
+ min-height: 4rem;
1958
+ padding: 0.5rem 0.625rem;
1959
+ border: 1px solid var(--input);
1960
+ border-radius: var(--radius);
1961
+ background-color: transparent;
1962
+ color: inherit;
1963
+ font-size: 1rem;
1964
+ line-height: 1.5rem;
1965
+ outline: none;
1966
+ transition-property:
1967
+ color,
1968
+ background-color,
1969
+ border-color,
1970
+ outline-color,
1971
+ text-decoration-color,
1972
+ fill,
1973
+ stroke;
1974
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1975
+ transition-duration: 150ms;
1976
+ }
1977
+ .cl-textarea::placeholder {
1978
+ color: var(--muted-foreground);
1979
+ }
1980
+ .cl-textarea:focus-visible {
1981
+ border-color: var(--ring);
1982
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
1983
+ }
1984
+ .cl-textarea:disabled {
1985
+ cursor: not-allowed;
1986
+ opacity: 0.5;
1987
+ background-color: color-mix(in oklab, var(--input) 50%, transparent);
1988
+ }
1989
+ .cl-textarea[aria-invalid=true] {
1990
+ border-color: var(--destructive);
1991
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 20%, transparent);
1992
+ }
1993
+ @media (width >= 48rem) {
1994
+ .cl-textarea {
1995
+ font-size: 0.875rem;
1996
+ line-height: 1.25rem;
1997
+ }
1998
+ }
1999
+ :where(.dark, [data-theme=dark]) .cl-textarea {
2000
+ background-color: color-mix(in oklab, var(--input) 30%, transparent);
2001
+ }
2002
+ :where(.dark, [data-theme=dark]) .cl-textarea:disabled {
2003
+ background-color: color-mix(in oklab, var(--input) 80%, transparent);
2004
+ }
2005
+ :where(.dark, [data-theme=dark]) .cl-textarea[aria-invalid=true] {
2006
+ border-color: color-mix(in oklab, var(--destructive) 50%, transparent);
2007
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--destructive) 40%, transparent);
2008
+ }
2009
+ }
2010
+
2011
+ @layer cl.components {
2012
+ .cl-toaster {
2013
+ --gap: 14px;
2014
+ position: fixed;
2015
+ inset-inline-end: 24px;
2016
+ bottom: 24px;
2017
+ z-index: 100;
2018
+ width: 356px;
2019
+ height: var(--front-height, 0px);
2020
+ margin: 0;
2021
+ padding: 0;
2022
+ list-style: none;
2023
+ }
2024
+ @media (width < 600px) {
2025
+ .cl-toaster {
2026
+ right: 16px;
2027
+ bottom: 16px;
2028
+ left: 16px;
2029
+ width: auto;
2030
+ }
2031
+ }
2032
+ .cl-toaster[data-expanded]::before {
2033
+ content: "";
2034
+ position: absolute;
2035
+ inset-inline: 0;
2036
+ bottom: 0;
2037
+ height: var(--expanded-height, 0px);
2038
+ }
2039
+ .cl-toast {
2040
+ --y: 0px;
2041
+ --scale: 1;
2042
+ position: absolute;
2043
+ right: 0;
2044
+ bottom: 0;
2045
+ left: 0;
2046
+ display: flex;
2047
+ align-items: center;
2048
+ gap: 6px;
2049
+ box-sizing: border-box;
2050
+ padding: 16px;
2051
+ overflow: hidden;
2052
+ border: 1px solid var(--border);
2053
+ border-radius: var(--radius);
2054
+ background-color: var(--popover);
2055
+ color: var(--popover-foreground);
2056
+ font-size: 13px;
2057
+ box-shadow: 0 4px 12px rgb(0 0 0 / 0.1);
2058
+ transform: translateY(var(--y)) scale(var(--scale));
2059
+ transform-origin: bottom center;
2060
+ transition-property:
2061
+ transform,
2062
+ opacity,
2063
+ height;
2064
+ transition-duration: 400ms;
2065
+ transition-timing-function: ease;
2066
+ }
2067
+ @starting-style {
2068
+ .cl-toast {
2069
+ opacity: 0;
2070
+ transform: translateY(100%);
2071
+ }
2072
+ }
2073
+ .cl-toaster:not([data-expanded]) .cl-toast:not([data-front]) {
2074
+ height: var(--front-height);
2075
+ }
2076
+ .cl-toaster:not([data-expanded]) .cl-toast:not([data-front]) > * {
2077
+ opacity: 0;
2078
+ }
2079
+ .cl-toast > * {
2080
+ transition: opacity 400ms;
2081
+ }
2082
+ .cl-toast[data-hidden],
2083
+ .cl-toast[data-removed] {
2084
+ opacity: 0;
2085
+ pointer-events: none;
2086
+ }
2087
+ .cl-toast[data-removed] {
2088
+ transform: translateY(calc(var(--y) + 25%)) scale(var(--scale));
2089
+ transition-duration: 200ms;
2090
+ }
2091
+ .cl-toast-icon {
2092
+ display: flex;
2093
+ flex-shrink: 0;
2094
+ align-self: center;
2095
+ margin-inline-end: 4px;
2096
+ }
2097
+ .cl-toast-icon svg {
2098
+ width: 1rem;
2099
+ height: 1rem;
2100
+ }
2101
+ .cl-toast[data-type=loading] .cl-toast-icon svg {
2102
+ animation: cl-spin 1s linear infinite;
2103
+ }
2104
+ @keyframes cl-spin {
2105
+ to {
2106
+ rotate: 360deg;
2107
+ }
2108
+ }
2109
+ .cl-toast-content {
2110
+ display: flex;
2111
+ flex-direction: column;
2112
+ gap: 2px;
2113
+ }
2114
+ .cl-toast-title {
2115
+ font-weight: 500;
2116
+ line-height: 1.5;
2117
+ }
2118
+ .cl-toast-description {
2119
+ color: #3f3f3f;
2120
+ font-weight: 400;
2121
+ line-height: 1.4;
2122
+ }
2123
+ :where(.dark, [data-theme=dark]) .cl-toast-description {
2124
+ color: hsl(0 0% 91%);
2125
+ }
2126
+ .cl-toast-action {
2127
+ flex-shrink: 0;
2128
+ height: 24px;
2129
+ margin-inline-start: auto;
2130
+ padding: 0 8px;
2131
+ border: 0;
2132
+ border-radius: 4px;
2133
+ background-color: var(--popover-foreground);
2134
+ color: var(--popover);
2135
+ font: inherit;
2136
+ font-size: 12px;
2137
+ font-weight: 500;
2138
+ cursor: pointer;
2139
+ }
2140
+ @media (prefers-reduced-motion: reduce) {
2141
+ .cl-toast,
2142
+ .cl-toast > * {
2143
+ transition-duration: 0ms;
2144
+ }
2145
+ }
2146
+ }
2147
+
2148
+ @layer cl.components {
2149
+ .cl-tooltip {
2150
+ display: none;
2151
+ align-items: center;
2152
+ gap: 0.375rem;
2153
+ width: fit-content;
2154
+ max-width: 20rem;
2155
+ padding: 0.375rem 0.75rem;
2156
+ border-radius: calc(var(--radius) * 0.8);
2157
+ background-color: var(--foreground);
2158
+ color: var(--background);
2159
+ font-size: 0.75rem;
2160
+ line-height: 1rem;
2161
+ pointer-events: none;
2162
+ }
2163
+ .cl-tooltip:popover-open {
2164
+ display: inline-flex;
2165
+ }
2166
+ .cl-tooltip:has(.cl-kbd) {
2167
+ padding-inline-end: 0.375rem;
2168
+ }
2169
+ .cl-tooltip::after {
2170
+ content: "";
2171
+ position: absolute;
2172
+ width: 0.625rem;
2173
+ height: 0.625rem;
2174
+ border-radius: 2px;
2175
+ background-color: var(--foreground);
2176
+ rotate: 45deg;
2177
+ z-index: -1;
2178
+ }
2179
+ .cl-tooltip[data-placed=top]::after {
2180
+ top: calc(100% - 7px);
2181
+ left: calc(50% - 5px);
2182
+ }
2183
+ .cl-tooltip[data-placed=bottom]::after {
2184
+ bottom: calc(100% - 7px);
2185
+ left: calc(50% - 5px);
2186
+ }
2187
+ .cl-tooltip[data-placed=left]::after {
2188
+ left: calc(100% - 7px);
2189
+ top: calc(50% - 5px);
2190
+ }
2191
+ .cl-tooltip[data-placed=right]::after {
2192
+ right: calc(100% - 7px);
2193
+ top: calc(50% - 5px);
2194
+ }
2195
+ .cl-tooltip .cl-kbd {
2196
+ position: relative;
2197
+ z-index: 50;
2198
+ border-radius: calc(var(--radius) * 0.6);
2199
+ background-color: color-mix(in oklab, var(--background) 20%, transparent);
2200
+ color: var(--background);
2201
+ }
2202
+ :where(.dark, [data-theme=dark]) .cl-tooltip .cl-kbd {
2203
+ background-color: color-mix(in oklab, var(--background) 10%, transparent);
2204
+ }
2205
+ }
2206
+
2207
+ @layer cl.components;
2208
+
2209
+ @layer cl.utilities {
2210
+ .cl-container {
2211
+ width: 100%;
2212
+ max-width: var(--cl-max, 72rem);
2213
+ margin-inline: auto;
2214
+ padding-inline: 1rem;
2215
+ }
2216
+ .cl-stack {
2217
+ display: flex;
2218
+ flex-direction: column;
2219
+ gap: var(--cl-gap, 1rem);
2220
+ }
2221
+ .cl-cluster {
2222
+ display: flex;
2223
+ flex-wrap: wrap;
2224
+ align-items: center;
2225
+ gap: var(--cl-gap, 0.5rem);
2226
+ }
2227
+ .cl-grid-auto {
2228
+ display: grid;
2229
+ grid-template-columns: repeat(auto-fit, minmax(min(var(--cl-min, 16rem), 100%), 1fr));
2230
+ gap: var(--cl-gap, 1rem);
2231
+ }
2232
+ .cl-sr-only {
2233
+ position: absolute;
2234
+ width: 1px;
2235
+ height: 1px;
2236
+ padding: 0;
2237
+ margin: -1px;
2238
+ overflow: hidden;
2239
+ clip-path: inset(50%);
2240
+ white-space: nowrap;
2241
+ border: 0;
2242
+ }
2243
+ }