@aortl/admin-css 0.0.1 → 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.
Files changed (39) hide show
  1. package/README.md +0 -22
  2. package/dist/admin.css +2918 -248
  3. package/dist/admin.min.css +1 -1
  4. package/dist/admin.scoped.css +3383 -0
  5. package/dist/admin.scoped.min.css +46 -0
  6. package/package.json +15 -3
  7. package/src/base.css +13 -7
  8. package/src/components/accordion.css +79 -0
  9. package/src/components/alert.css +83 -0
  10. package/src/components/app-shell.css +59 -0
  11. package/src/components/badge.css +44 -0
  12. package/src/components/brand-tile.css +9 -0
  13. package/src/components/breadcrumbs.css +38 -0
  14. package/src/components/button-group.css +73 -0
  15. package/src/components/button.css +50 -1
  16. package/src/components/card.css +1 -1
  17. package/src/components/checkbox.css +38 -0
  18. package/src/components/dialog.css +91 -0
  19. package/src/components/field.css +29 -2
  20. package/src/components/file-input.css +36 -0
  21. package/src/components/footer.css +26 -0
  22. package/src/components/index.css +24 -0
  23. package/src/components/input-group.css +38 -0
  24. package/src/components/input.css +7 -0
  25. package/src/components/menu.css +88 -0
  26. package/src/components/navbar.css +66 -0
  27. package/src/components/pagination.css +43 -0
  28. package/src/components/progress.css +97 -0
  29. package/src/components/radio.css +45 -0
  30. package/src/components/select.css +114 -0
  31. package/src/components/sidebar.css +225 -0
  32. package/src/components/spinner.css +40 -0
  33. package/src/components/switch.css +62 -0
  34. package/src/components/table.css +124 -0
  35. package/src/components/tabs.css +172 -0
  36. package/src/components/textarea.css +33 -0
  37. package/src/fonts.css +88 -0
  38. package/src/index.css +1 -0
  39. package/src/theme.css +122 -29
package/dist/admin.css CHANGED
@@ -3,10 +3,9 @@
3
3
  @layer theme, base, components, utilities;
4
4
  @layer theme {
5
5
  :root, :host {
6
- --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
7
- "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
8
- --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
9
- "Courier New", monospace;
6
+ --font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
7
+ --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono",
8
+ monospace;
10
9
  --spacing: 0.25rem;
11
10
  --text-xs: 0.75rem;
12
11
  --text-xs--line-height: calc(1 / 0.75);
@@ -16,10 +15,16 @@
16
15
  --text-base--line-height: calc(1.5 / 1);
17
16
  --text-lg: 1.125rem;
18
17
  --text-lg--line-height: calc(1.75 / 1.125);
18
+ --text-xl: 1.25rem;
19
+ --text-xl--line-height: calc(1.75 / 1.25);
19
20
  --font-weight-medium: 500;
20
21
  --font-weight-semibold: 600;
22
+ --tracking-wide: 0.025em;
21
23
  --leading-tight: 1.25;
24
+ --leading-snug: 1.375;
22
25
  --leading-relaxed: 1.625;
26
+ --radius-sm: 0.25rem;
27
+ --radius-md: 0.375rem;
23
28
  --radius-lg: 0.5rem;
24
29
  --radius-xl: 0.75rem;
25
30
  --default-transition-duration: 150ms;
@@ -145,33 +150,59 @@
145
150
  --color-magenta-850: #4f1b39;
146
151
  --color-magenta-900: #39172b;
147
152
  --color-magenta-950: #24131d;
148
- --color-surface: var(--color-paper);
149
- --color-surface-muted: var(--color-base-50);
150
- --color-surface-strong: var(--color-base-100);
151
- --color-text: var(--color-black);
152
- --color-text-muted: var(--color-base-600);
153
- --color-border: var(--color-base-150);
154
- --color-border-strong: var(--color-base-300);
155
- --color-primary: var(--color-blue-600);
156
- --color-primary-hover: var(--color-blue-700);
157
- --color-primary-muted: var(--color-blue-50);
158
- --color-primary-content: var(--color-paper);
159
- --color-danger: var(--color-red-600);
160
- --color-danger-hover: var(--color-red-700);
161
- --color-danger-muted: var(--color-red-50);
162
- --color-danger-content: var(--color-paper);
163
- --color-success: var(--color-green-600);
164
- --color-success-hover: var(--color-green-700);
165
- --color-success-muted: var(--color-green-50);
166
- --color-success-content: var(--color-paper);
153
+ --color-surface: light-dark(var(--color-paper), var(--color-black));
154
+ --color-surface-muted: light-dark(var(--color-base-50), var(--color-base-950));
155
+ --color-surface-strong: light-dark(var(--color-base-100), var(--color-base-900));
156
+ --color-text: light-dark(var(--color-black), var(--color-base-200));
157
+ --color-text-muted: light-dark(var(--color-base-600), var(--color-base-500));
158
+ --color-border: light-dark(var(--color-base-150), var(--color-base-850));
159
+ --color-border-strong: light-dark(var(--color-base-300), var(--color-base-700));
160
+ --color-primary: light-dark(var(--color-blue-600), var(--color-blue-400));
161
+ --color-primary-hover: light-dark(var(--color-blue-700), var(--color-blue-300));
162
+ --color-primary-muted: light-dark(var(--color-blue-50), var(--color-blue-950));
163
+ --color-primary-content: light-dark(var(--color-paper), var(--color-black));
164
+ --color-system-accent: light-dark(var(--color-base-600), var(--color-base-400));
165
+ --color-system-accent-hover: color-mix(
166
+ in oklch,
167
+ light-dark(var(--color-base-600), var(--color-base-400)),
168
+ light-dark(var(--color-black), var(--color-base-200)) 12%
169
+ );
170
+ @supports (color: color-mix(in lab, red, red)) {
171
+ --color-system-accent-hover: color-mix(
172
+ in oklch,
173
+ var(--color-system-accent),
174
+ var(--color-text) 12%
175
+ );
176
+ }
177
+ --color-system-accent-muted: color-mix(
178
+ in oklch,
179
+ light-dark(var(--color-base-600), var(--color-base-400)) 12%,
180
+ light-dark(var(--color-paper), var(--color-black))
181
+ );
182
+ @supports (color: color-mix(in lab, red, red)) {
183
+ --color-system-accent-muted: color-mix(
184
+ in oklch,
185
+ var(--color-system-accent) 12%,
186
+ var(--color-surface)
187
+ );
188
+ }
189
+ --color-system-accent-content: light-dark(var(--color-paper), var(--color-black));
190
+ --color-danger: light-dark(var(--color-red-600), var(--color-red-400));
191
+ --color-danger-hover: light-dark(var(--color-red-700), var(--color-red-300));
192
+ --color-danger-muted: light-dark(var(--color-red-50), var(--color-red-950));
193
+ --color-danger-content: light-dark(var(--color-paper), var(--color-black));
194
+ --color-success: light-dark(var(--color-green-600), var(--color-green-400));
195
+ --color-success-hover: light-dark(var(--color-green-700), var(--color-green-300));
196
+ --color-success-muted: light-dark(var(--color-green-50), var(--color-green-950));
197
+ --color-success-content: light-dark(var(--color-paper), var(--color-black));
167
198
  --color-warning: var(--color-yellow-400);
168
- --color-warning-hover: var(--color-yellow-500);
169
- --color-warning-muted: var(--color-yellow-50);
199
+ --color-warning-hover: light-dark(var(--color-yellow-500), var(--color-yellow-300));
200
+ --color-warning-muted: light-dark(var(--color-yellow-50), var(--color-yellow-950));
170
201
  --color-warning-content: var(--color-black);
171
- --color-info: var(--color-cyan-600);
172
- --color-info-hover: var(--color-cyan-700);
173
- --color-info-muted: var(--color-cyan-50);
174
- --color-info-content: var(--color-paper);
202
+ --color-info: light-dark(var(--color-cyan-600), var(--color-cyan-400));
203
+ --color-info-hover: light-dark(var(--color-cyan-700), var(--color-cyan-300));
204
+ --color-info-muted: light-dark(var(--color-cyan-50), var(--color-cyan-950));
205
+ --color-info-content: light-dark(var(--color-paper), var(--color-black));
175
206
  }
176
207
  }
177
208
  @layer base {
@@ -322,7 +353,69 @@
322
353
  display: none !important;
323
354
  }
324
355
  }
325
- @layer utilities;
356
+ @layer utilities {
357
+ .shadow {
358
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
359
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
360
+ }
361
+ }
362
+ @font-face {
363
+ font-family: "IBM Plex Sans";
364
+ font-style: normal;
365
+ font-weight: 400 600;
366
+ font-display: optional;
367
+ src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbABA.woff2) format("woff2");
368
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
369
+ }
370
+ @font-face {
371
+ font-family: "IBM Plex Sans";
372
+ font-style: normal;
373
+ font-weight: 400 600;
374
+ font-display: optional;
375
+ src: url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxeKYY.woff2) format("woff2");
376
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
377
+ }
378
+ @font-face {
379
+ font-family: "IBM Plex Mono";
380
+ font-style: normal;
381
+ font-weight: 400;
382
+ font-display: optional;
383
+ src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iEq129k.woff2) format("woff2");
384
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
385
+ }
386
+ @font-face {
387
+ font-family: "IBM Plex Mono";
388
+ font-style: normal;
389
+ font-weight: 400;
390
+ font-display: optional;
391
+ src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1i8q1w.woff2) format("woff2");
392
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
393
+ }
394
+ @font-face {
395
+ font-family: "IBM Plex Mono";
396
+ font-style: normal;
397
+ font-weight: 500;
398
+ font-display: optional;
399
+ src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl5FgtIU.woff2) format("woff2");
400
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
401
+ }
402
+ @font-face {
403
+ font-family: "IBM Plex Mono";
404
+ font-style: normal;
405
+ font-weight: 500;
406
+ font-display: optional;
407
+ src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwlBFgg.woff2) format("woff2");
408
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
409
+ }
410
+ :root {
411
+ color-scheme: light dark;
412
+ }
413
+ [data-theme="dark"] {
414
+ color-scheme: dark;
415
+ }
416
+ [data-theme="light"] {
417
+ color-scheme: light;
418
+ }
326
419
  @layer base {
327
420
  html {
328
421
  color: var(--color-text);
@@ -330,36 +423,78 @@
330
423
  -webkit-text-size-adjust: 100%;
331
424
  }
332
425
  body {
333
- font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
426
+ font-family: var(--font-sans);
427
+ font-size: var(--text-sm);
428
+ line-height: var(--tw-leading, var(--text-sm--line-height));
334
429
  line-height: 1.5;
335
430
  }
431
+ h1 {
432
+ font-size: var(--text-xl);
433
+ line-height: var(--tw-leading, var(--text-xl--line-height));
434
+ --tw-leading: var(--leading-tight);
435
+ line-height: var(--leading-tight);
436
+ --tw-font-weight: var(--font-weight-semibold);
437
+ font-weight: var(--font-weight-semibold);
438
+ }
439
+ h2 {
440
+ font-size: var(--text-base);
441
+ line-height: var(--tw-leading, var(--text-base--line-height));
442
+ --tw-leading: var(--leading-tight);
443
+ line-height: var(--leading-tight);
444
+ --tw-font-weight: var(--font-weight-semibold);
445
+ font-weight: var(--font-weight-semibold);
446
+ }
447
+ h3 {
448
+ font-size: var(--text-sm);
449
+ line-height: var(--tw-leading, var(--text-sm--line-height));
450
+ --tw-leading: var(--leading-snug);
451
+ line-height: var(--leading-snug);
452
+ --tw-font-weight: var(--font-weight-semibold);
453
+ font-weight: var(--font-weight-semibold);
454
+ }
336
455
  }
337
456
  @layer components {
338
- .btn {
339
- display: inline-flex;
457
+ .accordion {
458
+ display: flex;
459
+ flex-direction: column;
460
+ }
461
+ .accordion-item {
462
+ border-style: var(--tw-border-style);
463
+ border-width: 1px;
464
+ border-color: var(--color-border);
465
+ background-color: var(--color-surface);
466
+ interpolate-size: allow-keywords;
467
+ }
468
+ .accordion-item:first-child {
469
+ border-top-left-radius: var(--radius-lg);
470
+ border-top-right-radius: var(--radius-lg);
471
+ }
472
+ .accordion-item:last-child {
473
+ border-bottom-right-radius: var(--radius-lg);
474
+ border-bottom-left-radius: var(--radius-lg);
475
+ }
476
+ .accordion-item + .accordion-item {
477
+ border-top: 0;
478
+ }
479
+ .accordion-summary {
480
+ display: flex;
340
481
  cursor: pointer;
341
482
  align-items: center;
342
- justify-content: center;
343
483
  gap: calc(var(--spacing) * 2);
344
- border-radius: var(--radius-lg);
345
- border-style: var(--tw-border-style);
346
- border-width: 1px;
347
- border-color: transparent;
348
484
  padding-inline: calc(var(--spacing) * 4);
349
- padding-block: calc(var(--spacing) * 2);
485
+ padding-block: calc(var(--spacing) * 3);
350
486
  font-size: var(--text-sm);
351
487
  line-height: var(--tw-leading, var(--text-sm--line-height));
352
- --tw-leading: 1;
353
- line-height: 1;
354
488
  --tw-font-weight: var(--font-weight-medium);
355
489
  font-weight: var(--font-weight-medium);
356
- transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
357
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
358
- transition-duration: var(--tw-duration, var(--default-transition-duration));
359
- --tw-duration: 150ms;
360
- transition-duration: 150ms;
490
+ color: var(--color-text);
361
491
  -webkit-user-select: none;
362
492
  user-select: none;
493
+ &:hover {
494
+ @media (hover: hover) {
495
+ background-color: var(--color-surface-muted);
496
+ }
497
+ }
363
498
  &:focus-visible {
364
499
  outline-style: var(--tw-outline-style);
365
500
  outline-width: 2px;
@@ -370,253 +505,2718 @@
370
505
  &:focus-visible {
371
506
  outline-color: var(--color-primary);
372
507
  }
373
- &:disabled {
374
- pointer-events: none;
375
- }
376
- &:disabled {
377
- cursor: not-allowed;
378
- }
379
- &:disabled {
380
- opacity: 50%;
381
- }
382
- }
383
- .btn-primary {
384
- background-color: var(--color-primary);
385
- color: var(--color-primary-content);
386
- &:hover {
387
- @media (hover: hover) {
388
- background-color: var(--color-primary-hover);
389
- }
390
- }
508
+ list-style: none;
391
509
  }
392
- .btn-secondary {
510
+ .accordion-summary::-webkit-details-marker {
511
+ display: none;
512
+ }
513
+ .accordion-summary::after {
514
+ content: "";
515
+ width: 0.5rem;
516
+ height: 0.5rem;
517
+ border-right: 2px solid currentColor;
518
+ border-bottom: 2px solid currentColor;
519
+ transform: rotate(45deg);
520
+ transition: transform 150ms ease;
521
+ flex-shrink: 0;
522
+ margin-left: auto;
523
+ }
524
+ .accordion-item[open] > .accordion-summary::after {
525
+ transform: rotate(-135deg);
526
+ }
527
+ .accordion-content {
528
+ border-top-style: var(--tw-border-style);
529
+ border-top-width: 1px;
393
530
  border-color: var(--color-border);
394
- background-color: var(--color-surface-muted);
395
- color: var(--color-text);
396
- &:hover {
397
- @media (hover: hover) {
398
- background-color: var(--color-surface-strong);
399
- }
400
- }
401
- }
402
- .btn-ghost {
403
- background-color: transparent;
531
+ padding-inline: calc(var(--spacing) * 4);
532
+ padding-block: calc(var(--spacing) * 3);
533
+ font-size: var(--text-sm);
534
+ line-height: var(--tw-leading, var(--text-sm--line-height));
404
535
  color: var(--color-text);
405
- &:hover {
406
- @media (hover: hover) {
407
- background-color: var(--color-surface-muted);
408
- }
409
- }
410
- }
411
- .btn-danger {
412
- background-color: var(--color-danger);
413
- color: var(--color-danger-content);
414
- &:hover {
415
- @media (hover: hover) {
416
- opacity: 90%;
417
- }
418
- }
419
- }
420
- .btn-sm {
421
- gap: calc(var(--spacing) * 1.5);
422
- padding-inline: calc(var(--spacing) * 3);
423
- padding-block: calc(var(--spacing) * 1.5);
424
- font-size: var(--text-xs);
425
- line-height: var(--tw-leading, var(--text-xs--line-height));
426
536
  }
427
- .btn-lg {
428
- gap: calc(var(--spacing) * 2.5);
429
- padding-inline: calc(var(--spacing) * 5);
430
- padding-block: calc(var(--spacing) * 2.5);
431
- font-size: var(--text-base);
432
- line-height: var(--tw-leading, var(--text-base--line-height));
537
+ .accordion-item::details-content {
538
+ opacity: 0;
539
+ height: 0;
540
+ overflow: clip;
541
+ content-visibility: visible;
542
+ transition: opacity 200ms ease, height 200ms ease;
433
543
  }
434
- .btn-block {
435
- width: 100%;
544
+ .accordion-item[open]::details-content {
545
+ opacity: 1;
546
+ height: auto;
436
547
  }
437
548
  }
438
549
  @layer components {
439
- .input {
440
- display: inline-flex;
550
+ .alert {
551
+ display: flex;
441
552
  width: 100%;
442
- align-items: center;
443
- border-radius: var(--radius-lg);
553
+ flex-direction: column;
554
+ gap: calc(var(--spacing) * 1);
555
+ border-radius: var(--radius-md);
444
556
  border-style: var(--tw-border-style);
445
557
  border-width: 1px;
446
- border-color: transparent;
447
- background-color: var(--color-surface);
448
558
  padding-inline: calc(var(--spacing) * 3);
449
559
  padding-block: calc(var(--spacing) * 2);
450
560
  font-size: var(--text-sm);
451
561
  line-height: var(--tw-leading, var(--text-sm--line-height));
452
- --tw-leading: 1;
453
- line-height: 1;
454
562
  color: var(--color-text);
455
- transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
456
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
457
- transition-duration: var(--tw-duration, var(--default-transition-duration));
458
- --tw-duration: 150ms;
459
- transition-duration: 150ms;
460
- &::placeholder {
461
- color: var(--color-text-muted);
462
- }
463
- &:focus-visible {
464
- outline-style: var(--tw-outline-style);
465
- outline-width: 2px;
466
- }
467
- &:focus-visible {
468
- outline-offset: 2px;
469
- }
470
- &:focus-visible {
471
- outline-color: var(--color-primary);
472
- }
473
- &:disabled {
474
- cursor: not-allowed;
475
- }
476
- &:disabled {
477
- opacity: 50%;
478
- }
479
563
  }
480
- .input-bordered {
481
- border-color: var(--color-border);
482
- &:hover {
483
- @media (hover: hover) {
484
- border-color: var(--color-border-strong);
485
- }
486
- }
564
+ .alert:has(> :is(i, svg):first-child) {
565
+ display: grid;
566
+ grid-template-columns: auto 1fr;
567
+ column-gap: 0.5rem;
568
+ row-gap: 0.25rem;
569
+ align-items: center;
487
570
  }
488
- .input-ghost {
489
- background-color: transparent;
490
- &:hover {
491
- @media (hover: hover) {
492
- background-color: var(--color-surface-muted);
493
- }
494
- }
571
+ .alert > :is(i, svg):first-child {
572
+ font-size: 1rem;
573
+ line-height: 1.25;
495
574
  }
496
- .input-danger {
497
- border-color: var(--color-danger);
498
- &:focus-visible {
499
- outline-color: var(--color-danger);
500
- }
575
+ .alert:has(> :is(i, svg):first-child):has(> .alert-title) {
576
+ grid-template-rows: auto auto;
577
+ align-items: start;
501
578
  }
502
- .input-sm {
503
- padding-inline: calc(var(--spacing) * 2.5);
504
- padding-block: calc(var(--spacing) * 1.5);
505
- font-size: var(--text-xs);
506
- line-height: var(--tw-leading, var(--text-xs--line-height));
579
+ .alert:has(> .alert-title) > :is(i, svg):first-child {
580
+ grid-row: 1 / -1;
507
581
  }
508
- .input-lg {
509
- padding-inline: calc(var(--spacing) * 4);
510
- padding-block: calc(var(--spacing) * 2.5);
511
- font-size: var(--text-base);
512
- line-height: var(--tw-leading, var(--text-base--line-height));
582
+ .alert > :is(.alert-title, .alert-description) {
583
+ grid-column: 2;
584
+ }
585
+ .alert-info {
586
+ border-color: var(--color-info-muted);
587
+ background-color: var(--color-info-muted);
588
+ }
589
+ .alert-success {
590
+ border-color: var(--color-success-muted);
591
+ background-color: var(--color-success-muted);
592
+ }
593
+ .alert-warning {
594
+ border-color: var(--color-warning-muted);
595
+ background-color: var(--color-warning-muted);
596
+ }
597
+ .alert-danger {
598
+ border-color: var(--color-danger-muted);
599
+ background-color: var(--color-danger-muted);
600
+ }
601
+ .alert-title {
602
+ --tw-font-weight: var(--font-weight-medium);
603
+ font-weight: var(--font-weight-medium);
604
+ }
605
+ .alert-info .alert-title, .alert-info > :is(i, svg):first-child {
606
+ color: var(--color-info);
607
+ }
608
+ .alert-success .alert-title, .alert-success > :is(i, svg):first-child {
609
+ color: var(--color-success);
610
+ }
611
+ .alert-warning .alert-title, .alert-warning > :is(i, svg):first-child {
612
+ color: var(--color-warning);
613
+ }
614
+ .alert-danger .alert-title, .alert-danger > :is(i, svg):first-child {
615
+ color: var(--color-danger);
616
+ }
617
+ .alert-description {
618
+ color: var(--color-text-muted);
513
619
  }
514
620
  }
515
621
  @layer components {
516
- .card {
517
- display: flex;
518
- flex-direction: column;
519
- overflow: hidden;
520
- border-radius: var(--radius-xl);
521
- border-style: var(--tw-border-style);
522
- border-width: 1px;
523
- border-color: var(--color-border);
622
+ .app-shell {
623
+ --app-shell-sidebar-w: 240px;
624
+ --app-shell-sidebar-w-collapsed: 56px;
625
+ display: grid;
626
+ min-height: 100vh;
627
+ width: 100%;
524
628
  background-color: var(--color-surface);
525
629
  color: var(--color-text);
526
- --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
527
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
630
+ grid-template-columns: 1fr;
631
+ grid-template-rows: auto 1fr auto;
632
+ grid-template-areas: "header" "main" "footer";
528
633
  }
529
- .card-body {
530
- display: flex;
531
- flex-direction: column;
532
- gap: calc(var(--spacing) * 3);
533
- padding: calc(var(--spacing) * 5);
634
+ .app-shell > .navbar {
635
+ grid-area: header;
534
636
  }
535
- .card-title {
536
- font-size: var(--text-lg);
537
- line-height: var(--tw-leading, var(--text-lg--line-height));
538
- --tw-leading: var(--leading-tight);
539
- line-height: var(--leading-tight);
540
- --tw-font-weight: var(--font-weight-semibold);
541
- font-weight: var(--font-weight-semibold);
637
+ .app-shell > main, .app-shell-main {
638
+ grid-area: main;
639
+ min-width: 0;
542
640
  }
543
- .card-description {
544
- font-size: var(--text-sm);
545
- line-height: var(--tw-leading, var(--text-sm--line-height));
546
- color: var(--color-text-muted);
641
+ .app-shell > .footer {
642
+ grid-area: footer;
547
643
  }
548
- .card-actions {
549
- margin-top: auto;
550
- display: flex;
551
- flex-wrap: wrap;
552
- align-items: center;
553
- gap: calc(var(--spacing) * 2);
554
- padding-top: calc(var(--spacing) * 2);
644
+ .app-shell-with-sidebar {
645
+ grid-template-columns: auto 1fr;
646
+ grid-template-areas: "header header" "sidebar main" "footer footer";
555
647
  }
556
- .card-compact .card-body {
557
- gap: calc(var(--spacing) * 2);
558
- padding: calc(var(--spacing) * 3);
648
+ .app-shell-with-sidebar > .sidebar {
649
+ grid-area: sidebar;
559
650
  }
560
- .card-bordered {
561
- border-color: var(--color-border-strong);
562
- --tw-shadow: 0 0 #0000;
563
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
651
+ @media (max-width: 48rem) {
652
+ .app-shell-with-sidebar {
653
+ grid-template-columns: 1fr;
654
+ grid-template-areas: "header" "main" "footer";
655
+ }
656
+ .app-shell-with-sidebar > .sidebar {
657
+ display: none;
658
+ }
564
659
  }
565
660
  }
566
661
  @layer components {
567
- .field {
568
- display: flex;
569
- flex-direction: column;
570
- gap: calc(var(--spacing) * 1.5);
662
+ .badge {
663
+ display: inline-flex;
664
+ height: calc(var(--spacing) * 5);
665
+ align-items: center;
666
+ justify-content: center;
667
+ gap: calc(var(--spacing) * 1);
668
+ border-radius: calc(infinity * 1px);
669
+ border-style: var(--tw-border-style);
670
+ border-width: 1px;
671
+ border-color: transparent;
672
+ padding-inline: calc(var(--spacing) * 2);
673
+ font-size: var(--text-xs);
674
+ line-height: var(--tw-leading, var(--text-xs--line-height));
675
+ --tw-leading: 1;
676
+ line-height: 1;
677
+ --tw-font-weight: var(--font-weight-medium);
678
+ font-weight: var(--font-weight-medium);
679
+ white-space: nowrap;
680
+ }
681
+ .badge-neutral {
682
+ background-color: var(--color-surface-strong);
683
+ color: var(--color-text);
684
+ }
685
+ .badge-info {
686
+ border-color: var(--color-info-muted);
687
+ background-color: var(--color-info-muted);
688
+ color: var(--color-info);
689
+ }
690
+ .badge-success {
691
+ border-color: var(--color-success-muted);
692
+ background-color: var(--color-success-muted);
693
+ color: var(--color-success);
694
+ }
695
+ .badge-warning {
696
+ border-color: var(--color-warning-muted);
697
+ background-color: var(--color-warning-muted);
698
+ color: var(--color-warning);
699
+ }
700
+ .badge-danger {
701
+ border-color: var(--color-danger-muted);
702
+ background-color: var(--color-danger-muted);
703
+ color: var(--color-danger);
704
+ }
705
+ .badge-primary {
706
+ background-color: var(--color-primary);
707
+ color: var(--color-primary-content);
708
+ }
709
+ .badge-sm {
710
+ height: calc(var(--spacing) * 4);
711
+ gap: calc(var(--spacing) * 0.5);
712
+ padding-inline: calc(var(--spacing) * 1.5);
713
+ font-size: 0.625rem;
714
+ }
715
+ .badge-lg {
716
+ height: calc(var(--spacing) * 6);
717
+ gap: calc(var(--spacing) * 1.5);
718
+ padding-inline: calc(var(--spacing) * 2.5);
719
+ font-size: var(--text-sm);
720
+ line-height: var(--tw-leading, var(--text-sm--line-height));
721
+ }
722
+ }
723
+ @layer components {
724
+ .brand-tile {
725
+ display: inline-flex;
726
+ width: calc(var(--spacing) * 6);
727
+ height: calc(var(--spacing) * 6);
728
+ flex-shrink: 0;
729
+ align-items: center;
730
+ justify-content: center;
731
+ border-radius: 0.25rem;
732
+ background-color: var(--color-system-accent);
733
+ font-size: 11px;
734
+ --tw-leading: 1;
735
+ line-height: 1;
736
+ --tw-font-weight: var(--font-weight-semibold);
737
+ font-weight: var(--font-weight-semibold);
738
+ color: var(--color-system-accent-content);
739
+ -webkit-user-select: none;
740
+ user-select: none;
741
+ }
742
+ }
743
+ @layer components {
744
+ .spinner {
745
+ display: inline-block;
746
+ width: 1rem;
747
+ height: 1rem;
748
+ flex-shrink: 0;
749
+ border-radius: 9999px;
750
+ border: 2px solid currentColor;
751
+ @supports (color: color-mix(in lab, red, red)) {
752
+ border: 2px solid color-mix(in oklab, currentColor 25%, transparent);
753
+ }
754
+ border-top-color: currentColor;
755
+ animation: spinner-spin 0.6s linear infinite;
756
+ }
757
+ .spinner-sm {
758
+ width: 0.75rem;
759
+ height: 0.75rem;
760
+ border-width: 1.5px;
761
+ }
762
+ .spinner-lg {
763
+ width: 1.5rem;
764
+ height: 1.5rem;
765
+ border-width: 3px;
766
+ }
767
+ @media (prefers-reduced-motion: reduce) {
768
+ .spinner {
769
+ animation-duration: 2s;
770
+ }
771
+ }
772
+ @keyframes spinner-spin {
773
+ to {
774
+ transform: rotate(360deg);
775
+ }
776
+ }
777
+ }
778
+ @layer components {
779
+ .progress {
780
+ appearance: none;
781
+ -webkit-appearance: none;
782
+ display: block;
783
+ width: 100%;
784
+ height: 0.375rem;
785
+ border: 0;
786
+ border-radius: 9999px;
787
+ overflow: hidden;
788
+ background-color: var(--color-surface-strong);
789
+ color: var(--color-primary);
790
+ }
791
+ .progress::-webkit-progress-bar {
792
+ background-color: var(--color-surface-strong);
793
+ border-radius: 9999px;
794
+ }
795
+ .progress::-webkit-progress-value {
796
+ background-color: currentColor;
797
+ border-radius: 9999px;
798
+ transition: inline-size 200ms ease;
799
+ }
800
+ .progress::-moz-progress-bar {
801
+ background-color: currentColor;
802
+ border-radius: 9999px;
803
+ transition: inline-size 200ms ease;
804
+ }
805
+ .progress-sm {
806
+ height: 0.25rem;
807
+ }
808
+ .progress-lg {
809
+ height: 0.5rem;
810
+ }
811
+ .progress-success {
812
+ color: var(--color-success);
813
+ }
814
+ .progress-warning {
815
+ color: var(--color-warning);
816
+ }
817
+ .progress-danger {
818
+ color: var(--color-danger);
819
+ }
820
+ .progress:indeterminate {
821
+ background-image: linear-gradient( 90deg, var(--color-surface-strong) 0%, var(--color-surface-strong) 40%, currentColor 50%, var(--color-surface-strong) 60%, var(--color-surface-strong) 100% );
822
+ background-size: 250% 100%;
823
+ background-repeat: no-repeat;
824
+ animation: progress-indeterminate 1.2s linear infinite;
825
+ }
826
+ .progress:indeterminate::-webkit-progress-bar {
827
+ background-color: transparent;
828
+ }
829
+ .progress:indeterminate::-webkit-progress-value, .progress:indeterminate::-moz-progress-bar {
830
+ background-color: transparent;
831
+ }
832
+ @media (prefers-reduced-motion: reduce) {
833
+ .progress:indeterminate {
834
+ animation-duration: 3s;
835
+ }
836
+ }
837
+ @keyframes progress-indeterminate {
838
+ from {
839
+ background-position: 100% 0;
840
+ }
841
+ to {
842
+ background-position: 0 0;
843
+ }
844
+ }
845
+ }
846
+ @layer components {
847
+ .breadcrumbs {
848
+ font-size: var(--text-sm);
849
+ line-height: var(--tw-leading, var(--text-sm--line-height));
850
+ color: var(--color-text-muted);
851
+ }
852
+ .breadcrumbs > ol {
853
+ margin: calc(var(--spacing) * 0);
854
+ display: inline-flex;
855
+ list-style-type: none;
856
+ flex-wrap: wrap;
857
+ align-items: center;
858
+ gap: calc(var(--spacing) * 1.5);
859
+ padding: calc(var(--spacing) * 0);
860
+ }
861
+ .breadcrumb-item {
862
+ display: inline-flex;
863
+ align-items: center;
864
+ gap: calc(var(--spacing) * 1.5);
865
+ color: var(--color-text-muted);
866
+ text-decoration-line: none;
867
+ &:hover {
868
+ @media (hover: hover) {
869
+ color: var(--color-text);
870
+ }
871
+ }
872
+ &:focus-visible {
873
+ outline-style: var(--tw-outline-style);
874
+ outline-width: 2px;
875
+ }
876
+ &:focus-visible {
877
+ outline-offset: 2px;
878
+ }
879
+ &:focus-visible {
880
+ outline-color: var(--color-primary);
881
+ }
882
+ }
883
+ .breadcrumb-item[aria-current="page"] {
884
+ pointer-events: none;
885
+ --tw-font-weight: var(--font-weight-medium);
886
+ font-weight: var(--font-weight-medium);
887
+ color: var(--color-text);
888
+ }
889
+ .breadcrumb-separator {
890
+ display: inline-flex;
891
+ align-items: center;
892
+ color: color-mix(in srgb, light-dark(var(--color-base-600), var(--color-base-500)) 60%, transparent);
893
+ @supports (color: color-mix(in lab, red, red)) {
894
+ color: color-mix(in oklab, var(--color-text-muted) 60%, transparent);
895
+ }
896
+ -webkit-user-select: none;
897
+ user-select: none;
898
+ }
899
+ .breadcrumb-separator:empty::before {
900
+ content: "/";
901
+ }
902
+ .breadcrumb-separator > :is(i, svg) {
903
+ width: 0.875rem;
904
+ height: 0.875rem;
905
+ }
906
+ }
907
+ @layer components {
908
+ .pagination > ol, .pagination > ul {
909
+ margin: calc(var(--spacing) * 0);
910
+ display: inline-flex;
911
+ list-style-type: none;
912
+ align-items: center;
913
+ gap: calc(var(--spacing) * 1);
914
+ padding: calc(var(--spacing) * 0);
915
+ }
916
+ .page-item {
917
+ display: inline-flex;
918
+ }
919
+ .page-link {
920
+ display: inline-flex;
921
+ height: calc(var(--spacing) * 8);
922
+ min-width: calc(var(--spacing) * 8);
923
+ cursor: pointer;
924
+ align-items: center;
925
+ justify-content: center;
926
+ border-radius: var(--radius-md);
927
+ border-style: var(--tw-border-style);
928
+ border-width: 1px;
929
+ border-color: transparent;
930
+ background-color: transparent;
931
+ padding-inline: calc(var(--spacing) * 2);
932
+ font-size: var(--text-sm);
933
+ line-height: var(--tw-leading, var(--text-sm--line-height));
934
+ --tw-leading: 1;
935
+ line-height: 1;
936
+ --tw-font-weight: var(--font-weight-medium);
937
+ font-weight: var(--font-weight-medium);
938
+ color: var(--color-text);
939
+ text-decoration-line: none;
940
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
941
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
942
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
943
+ --tw-duration: 150ms;
944
+ transition-duration: 150ms;
945
+ -webkit-user-select: none;
946
+ user-select: none;
947
+ &:hover {
948
+ @media (hover: hover) {
949
+ background-color: var(--color-surface-muted);
950
+ }
951
+ }
952
+ &:focus-visible {
953
+ outline-style: var(--tw-outline-style);
954
+ outline-width: 2px;
955
+ }
956
+ &:focus-visible {
957
+ outline-offset: 2px;
958
+ }
959
+ &:focus-visible {
960
+ outline-color: var(--color-primary);
961
+ }
962
+ &:disabled {
963
+ pointer-events: none;
964
+ }
965
+ &:disabled {
966
+ cursor: not-allowed;
967
+ }
968
+ &:disabled {
969
+ opacity: 50%;
970
+ }
971
+ }
972
+ .page-link.active, .page-link[aria-current="page"] {
973
+ border-color: var(--color-primary-muted);
974
+ background-color: var(--color-primary-muted);
975
+ color: var(--color-primary);
976
+ }
977
+ .page-link[aria-disabled="true"] {
978
+ pointer-events: none;
979
+ cursor: not-allowed;
980
+ opacity: 50%;
981
+ }
982
+ .page-ellipsis {
983
+ display: inline-flex;
984
+ height: calc(var(--spacing) * 8);
985
+ min-width: calc(var(--spacing) * 8);
986
+ align-items: center;
987
+ justify-content: center;
988
+ padding-inline: calc(var(--spacing) * 2);
989
+ font-size: var(--text-sm);
990
+ line-height: var(--tw-leading, var(--text-sm--line-height));
991
+ color: var(--color-text-muted);
992
+ -webkit-user-select: none;
993
+ user-select: none;
994
+ }
995
+ }
996
+ @layer components {
997
+ .btn {
998
+ display: inline-flex;
999
+ cursor: pointer;
1000
+ align-items: center;
1001
+ justify-content: center;
1002
+ gap: calc(var(--spacing) * 2);
1003
+ border-radius: var(--radius-lg);
1004
+ border-style: var(--tw-border-style);
1005
+ border-width: 1px;
1006
+ border-color: transparent;
1007
+ padding-inline: calc(var(--spacing) * 4);
1008
+ padding-block: calc(var(--spacing) * 2);
1009
+ font-size: var(--text-sm);
1010
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1011
+ --tw-leading: 1;
1012
+ line-height: 1;
1013
+ --tw-font-weight: var(--font-weight-medium);
1014
+ font-weight: var(--font-weight-medium);
1015
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
1016
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1017
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1018
+ --tw-duration: 150ms;
1019
+ transition-duration: 150ms;
1020
+ -webkit-user-select: none;
1021
+ user-select: none;
1022
+ &:focus-visible {
1023
+ outline-style: var(--tw-outline-style);
1024
+ outline-width: 2px;
1025
+ }
1026
+ &:focus-visible {
1027
+ outline-offset: 2px;
1028
+ }
1029
+ &:focus-visible {
1030
+ outline-color: var(--color-primary);
1031
+ }
1032
+ &:disabled {
1033
+ pointer-events: none;
1034
+ }
1035
+ &:disabled {
1036
+ cursor: not-allowed;
1037
+ }
1038
+ &:disabled {
1039
+ opacity: 50%;
1040
+ }
1041
+ }
1042
+ .btn-primary {
1043
+ background-color: var(--color-primary);
1044
+ color: var(--color-primary-content);
1045
+ &:hover {
1046
+ @media (hover: hover) {
1047
+ background-color: var(--color-primary-hover);
1048
+ }
1049
+ }
1050
+ }
1051
+ .btn-secondary {
1052
+ border-color: var(--color-border);
1053
+ background-color: var(--color-surface-muted);
1054
+ color: var(--color-text);
1055
+ &:hover {
1056
+ @media (hover: hover) {
1057
+ background-color: var(--color-surface-strong);
1058
+ }
1059
+ }
1060
+ }
1061
+ .btn-ghost {
1062
+ background-color: transparent;
1063
+ color: var(--color-text);
1064
+ &:hover {
1065
+ @media (hover: hover) {
1066
+ background-color: var(--color-surface-muted);
1067
+ }
1068
+ }
1069
+ }
1070
+ .btn-danger {
1071
+ background-color: var(--color-danger);
1072
+ color: var(--color-danger-content);
1073
+ &:hover {
1074
+ @media (hover: hover) {
1075
+ opacity: 90%;
1076
+ }
1077
+ }
1078
+ }
1079
+ .btn-sm {
1080
+ gap: calc(var(--spacing) * 1.5);
1081
+ padding-inline: calc(var(--spacing) * 3);
1082
+ padding-block: calc(var(--spacing) * 1.5);
1083
+ font-size: var(--text-xs);
1084
+ line-height: var(--tw-leading, var(--text-xs--line-height));
1085
+ }
1086
+ .btn-lg {
1087
+ gap: calc(var(--spacing) * 2.5);
1088
+ padding-inline: calc(var(--spacing) * 5);
1089
+ padding-block: calc(var(--spacing) * 2.5);
1090
+ font-size: var(--text-base);
1091
+ line-height: var(--tw-leading, var(--text-base--line-height));
1092
+ }
1093
+ .btn-full-width {
1094
+ width: 100%;
1095
+ }
1096
+ .btn-square {
1097
+ padding-inline: calc(var(--spacing) * 2);
1098
+ }
1099
+ .btn-sm.btn-square {
1100
+ padding-inline: calc(var(--spacing) * 1.5);
1101
+ }
1102
+ .btn-lg.btn-square {
1103
+ padding-inline: calc(var(--spacing) * 2.5);
1104
+ }
1105
+ .btn-loading {
1106
+ pointer-events: none;
1107
+ cursor: not-allowed;
1108
+ opacity: 50%;
1109
+ }
1110
+ .btn-loading::before {
1111
+ content: "";
1112
+ display: inline-block;
1113
+ width: 1em;
1114
+ height: 1em;
1115
+ flex-shrink: 0;
1116
+ border-radius: 9999px;
1117
+ border: 0.125em solid currentColor;
1118
+ @supports (color: color-mix(in lab, red, red)) {
1119
+ border: 0.125em solid color-mix(in oklab, currentColor 25%, transparent);
1120
+ }
1121
+ border-top-color: currentColor;
1122
+ animation: spinner-spin 0.6s linear infinite;
1123
+ }
1124
+ .btn-loading > :is(i, svg):first-child {
1125
+ display: none;
1126
+ }
1127
+ @media (prefers-reduced-motion: reduce) {
1128
+ .btn-loading::before {
1129
+ animation-duration: 2s;
1130
+ }
1131
+ }
1132
+ }
1133
+ @layer components {
1134
+ .btn-group {
1135
+ display: inline-flex;
1136
+ }
1137
+ .btn-group > .btn {
1138
+ position: relative;
1139
+ border-radius: 0;
1140
+ &:focus-visible {
1141
+ z-index: 10;
1142
+ }
1143
+ }
1144
+ .btn-group > .btn:not(:first-child) {
1145
+ margin-left: -1px;
1146
+ }
1147
+ .btn-group > .btn:first-child {
1148
+ border-top-left-radius: var(--radius-lg);
1149
+ border-bottom-left-radius: var(--radius-lg);
1150
+ }
1151
+ .btn-group > .btn:last-child {
1152
+ border-top-right-radius: var(--radius-lg);
1153
+ border-bottom-right-radius: var(--radius-lg);
1154
+ }
1155
+ .btn-group > .menu {
1156
+ position: relative;
1157
+ &:focus-visible {
1158
+ z-index: 10;
1159
+ }
1160
+ display: inline-flex;
1161
+ }
1162
+ .btn-group > .menu:not(:first-child) {
1163
+ margin-left: -1px;
1164
+ }
1165
+ .btn-group > .menu > .menu-trigger {
1166
+ border-radius: 0;
1167
+ }
1168
+ .btn-group > .menu:first-child > .menu-trigger {
1169
+ border-top-left-radius: var(--radius-lg);
1170
+ border-bottom-left-radius: var(--radius-lg);
1171
+ }
1172
+ .btn-group > .menu:last-child > .menu-trigger {
1173
+ border-top-right-radius: var(--radius-lg);
1174
+ border-bottom-right-radius: var(--radius-lg);
1175
+ }
1176
+ .btn-group > .btn:not(:first-child), .btn-group > .menu:not(:first-child) > .menu-trigger {
1177
+ border-left-color: currentColor;
1178
+ @supports (color: color-mix(in lab, red, red)) {
1179
+ border-left-color: color-mix(in srgb, currentColor 25%, transparent);
1180
+ }
1181
+ }
1182
+ .btn-group-vertical {
1183
+ display: inline-flex;
1184
+ flex-direction: column;
1185
+ }
1186
+ .btn-group-vertical > .btn:not(:first-child) {
1187
+ margin-top: -1px;
1188
+ margin-left: calc(var(--spacing) * 0);
1189
+ }
1190
+ .btn-group-vertical > .btn:first-child {
1191
+ border-top-left-radius: var(--radius-lg);
1192
+ border-top-right-radius: var(--radius-lg);
1193
+ border-bottom-left-radius: 0;
1194
+ }
1195
+ .btn-group-vertical > .btn:last-child {
1196
+ border-top-right-radius: 0;
1197
+ border-bottom-right-radius: var(--radius-lg);
1198
+ border-bottom-left-radius: var(--radius-lg);
1199
+ }
1200
+ }
1201
+ @layer components {
1202
+ .input {
1203
+ display: inline-flex;
1204
+ width: 100%;
1205
+ align-items: center;
1206
+ border-radius: var(--radius-lg);
1207
+ border-style: var(--tw-border-style);
1208
+ border-width: 1px;
1209
+ border-color: transparent;
1210
+ background-color: var(--color-surface);
1211
+ padding-inline: calc(var(--spacing) * 3);
1212
+ padding-block: calc(var(--spacing) * 2);
1213
+ font-size: var(--text-sm);
1214
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1215
+ --tw-leading: 1;
1216
+ line-height: 1;
1217
+ color: var(--color-text);
1218
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
1219
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1220
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1221
+ --tw-duration: 150ms;
1222
+ transition-duration: 150ms;
1223
+ &::placeholder {
1224
+ color: var(--color-text-muted);
1225
+ }
1226
+ &:focus-visible {
1227
+ outline-style: var(--tw-outline-style);
1228
+ outline-width: 2px;
1229
+ }
1230
+ &:focus-visible {
1231
+ outline-offset: 2px;
1232
+ }
1233
+ &:focus-visible {
1234
+ outline-color: var(--color-primary);
1235
+ }
1236
+ &:disabled {
1237
+ cursor: not-allowed;
1238
+ }
1239
+ &:disabled {
1240
+ opacity: 50%;
1241
+ }
1242
+ }
1243
+ .input-bordered {
1244
+ border-color: var(--color-border);
1245
+ &:hover {
1246
+ @media (hover: hover) {
1247
+ border-color: var(--color-border-strong);
1248
+ }
1249
+ }
1250
+ }
1251
+ .input-ghost {
1252
+ background-color: transparent;
1253
+ &:hover {
1254
+ @media (hover: hover) {
1255
+ background-color: var(--color-surface-muted);
1256
+ }
1257
+ }
1258
+ }
1259
+ .input-danger {
1260
+ border-color: var(--color-danger);
1261
+ &:focus-visible {
1262
+ outline-color: var(--color-danger);
1263
+ }
1264
+ }
1265
+ .input-sm {
1266
+ padding-inline: calc(var(--spacing) * 2.5);
1267
+ padding-block: calc(var(--spacing) * 1.5);
1268
+ font-size: var(--text-xs);
1269
+ line-height: var(--tw-leading, var(--text-xs--line-height));
1270
+ }
1271
+ .input-lg {
1272
+ padding-inline: calc(var(--spacing) * 4);
1273
+ padding-block: calc(var(--spacing) * 2.5);
1274
+ font-size: var(--text-base);
1275
+ line-height: var(--tw-leading, var(--text-base--line-height));
1276
+ }
1277
+ .input::-webkit-calendar-picker-indicator {
1278
+ cursor: pointer;
1279
+ opacity: 60%;
1280
+ &:hover {
1281
+ @media (hover: hover) {
1282
+ opacity: 100%;
1283
+ }
1284
+ }
1285
+ }
1286
+ }
1287
+ @layer components {
1288
+ .input-group {
1289
+ display: inline-flex;
1290
+ width: 100%;
1291
+ }
1292
+ .input-group > * {
1293
+ border-radius: 0;
1294
+ }
1295
+ .input-group > :first-child {
1296
+ border-top-left-radius: var(--radius-lg);
1297
+ border-bottom-left-radius: var(--radius-lg);
1298
+ }
1299
+ .input-group > :last-child {
1300
+ border-top-right-radius: var(--radius-lg);
1301
+ border-bottom-right-radius: var(--radius-lg);
1302
+ }
1303
+ .input-group > :not(:first-child) {
1304
+ margin-left: -1px;
1305
+ }
1306
+ .input-group > :focus, .input-group > :focus-within {
1307
+ position: relative;
1308
+ z-index: 10;
1309
+ }
1310
+ .input-group-addon {
1311
+ display: inline-flex;
1312
+ align-items: center;
1313
+ border-style: var(--tw-border-style);
1314
+ border-width: 1px;
1315
+ border-color: var(--color-border);
1316
+ background-color: var(--color-surface-muted);
1317
+ padding-inline: calc(var(--spacing) * 3);
1318
+ font-size: var(--text-sm);
1319
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1320
+ --tw-leading: 1;
1321
+ line-height: 1;
1322
+ white-space: nowrap;
1323
+ color: var(--color-text-muted);
1324
+ }
1325
+ }
1326
+ @layer components {
1327
+ .textarea {
1328
+ display: block;
1329
+ min-height: calc(var(--spacing) * 20);
1330
+ width: 100%;
1331
+ resize: vertical;
1332
+ border-radius: var(--radius-lg);
1333
+ border-style: var(--tw-border-style);
1334
+ border-width: 1px;
1335
+ border-color: transparent;
1336
+ background-color: var(--color-surface);
1337
+ padding-inline: calc(var(--spacing) * 3);
1338
+ padding-block: calc(var(--spacing) * 2);
1339
+ font-size: var(--text-sm);
1340
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1341
+ color: var(--color-text);
1342
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
1343
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1344
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1345
+ --tw-duration: 150ms;
1346
+ transition-duration: 150ms;
1347
+ &::placeholder {
1348
+ color: var(--color-text-muted);
1349
+ }
1350
+ &:focus-visible {
1351
+ outline-style: var(--tw-outline-style);
1352
+ outline-width: 2px;
1353
+ }
1354
+ &:focus-visible {
1355
+ outline-offset: 2px;
1356
+ }
1357
+ &:focus-visible {
1358
+ outline-color: var(--color-primary);
1359
+ }
1360
+ &:disabled {
1361
+ cursor: not-allowed;
1362
+ }
1363
+ &:disabled {
1364
+ opacity: 50%;
1365
+ }
1366
+ }
1367
+ .textarea-bordered {
1368
+ border-color: var(--color-border);
1369
+ &:hover {
1370
+ @media (hover: hover) {
1371
+ border-color: var(--color-border-strong);
1372
+ }
1373
+ }
1374
+ }
1375
+ .textarea-ghost {
1376
+ background-color: transparent;
1377
+ &:hover {
1378
+ @media (hover: hover) {
1379
+ background-color: var(--color-surface-muted);
1380
+ }
1381
+ }
1382
+ }
1383
+ .textarea-danger {
1384
+ border-color: var(--color-danger);
1385
+ &:focus-visible {
1386
+ outline-color: var(--color-danger);
1387
+ }
1388
+ }
1389
+ .textarea-sm {
1390
+ min-height: calc(var(--spacing) * 16);
1391
+ padding-inline: calc(var(--spacing) * 2.5);
1392
+ padding-block: calc(var(--spacing) * 1.5);
1393
+ font-size: var(--text-xs);
1394
+ line-height: var(--tw-leading, var(--text-xs--line-height));
1395
+ }
1396
+ .textarea-lg {
1397
+ min-height: calc(var(--spacing) * 24);
1398
+ padding-inline: calc(var(--spacing) * 4);
1399
+ padding-block: calc(var(--spacing) * 2.5);
1400
+ font-size: var(--text-base);
1401
+ line-height: var(--tw-leading, var(--text-base--line-height));
1402
+ }
1403
+ }
1404
+ @layer components {
1405
+ .checkbox {
1406
+ display: inline-flex;
1407
+ width: calc(var(--spacing) * 4);
1408
+ height: calc(var(--spacing) * 4);
1409
+ flex-shrink: 0;
1410
+ cursor: pointer;
1411
+ align-items: center;
1412
+ justify-content: center;
1413
+ border-radius: var(--radius-sm);
1414
+ border-style: var(--tw-border-style);
1415
+ border-width: 1px;
1416
+ background-color: var(--color-surface);
1417
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
1418
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1419
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1420
+ --tw-duration: 150ms;
1421
+ transition-duration: 150ms;
1422
+ &:focus-visible {
1423
+ outline-style: var(--tw-outline-style);
1424
+ outline-width: 2px;
1425
+ }
1426
+ &:focus-visible {
1427
+ outline-offset: 2px;
1428
+ }
1429
+ &:focus-visible {
1430
+ outline-color: var(--color-primary);
1431
+ }
1432
+ &:disabled {
1433
+ cursor: not-allowed;
1434
+ }
1435
+ &:disabled {
1436
+ opacity: 50%;
1437
+ }
1438
+ }
1439
+ .checkbox[data-unchecked] {
1440
+ border-color: var(--color-border-strong);
1441
+ &:hover {
1442
+ @media (hover: hover) {
1443
+ border-color: var(--color-text-muted);
1444
+ }
1445
+ }
1446
+ }
1447
+ .checkbox[data-checked], .checkbox[data-indeterminate] {
1448
+ border-color: var(--color-primary);
1449
+ background-color: var(--color-primary);
1450
+ &:hover {
1451
+ @media (hover: hover) {
1452
+ background-color: var(--color-primary-hover);
1453
+ }
1454
+ }
1455
+ }
1456
+ .checkbox[data-disabled] {
1457
+ cursor: not-allowed;
1458
+ opacity: 50%;
1459
+ }
1460
+ .checkbox-indicator {
1461
+ display: inline-flex;
1462
+ width: calc(var(--spacing) * 3);
1463
+ height: calc(var(--spacing) * 3);
1464
+ align-items: center;
1465
+ justify-content: center;
1466
+ color: var(--color-primary-content);
1467
+ }
1468
+ label:has(> .checkbox) {
1469
+ display: inline-flex;
1470
+ cursor: pointer;
1471
+ align-items: center;
1472
+ gap: calc(var(--spacing) * 2);
1473
+ }
1474
+ label:has(> .checkbox:disabled), label:has(> .checkbox[data-disabled]) {
1475
+ cursor: not-allowed;
1476
+ opacity: 60%;
1477
+ }
1478
+ }
1479
+ @layer components {
1480
+ .radio {
1481
+ display: inline-flex;
1482
+ width: calc(var(--spacing) * 4);
1483
+ height: calc(var(--spacing) * 4);
1484
+ flex-shrink: 0;
1485
+ cursor: pointer;
1486
+ align-items: center;
1487
+ justify-content: center;
1488
+ border-radius: calc(infinity * 1px);
1489
+ border-style: var(--tw-border-style);
1490
+ border-width: 1px;
1491
+ background-color: var(--color-surface);
1492
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
1493
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1494
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1495
+ --tw-duration: 150ms;
1496
+ transition-duration: 150ms;
1497
+ &:focus-visible {
1498
+ outline-style: var(--tw-outline-style);
1499
+ outline-width: 2px;
1500
+ }
1501
+ &:focus-visible {
1502
+ outline-offset: 2px;
1503
+ }
1504
+ &:focus-visible {
1505
+ outline-color: var(--color-primary);
1506
+ }
1507
+ &:disabled {
1508
+ cursor: not-allowed;
1509
+ }
1510
+ &:disabled {
1511
+ opacity: 50%;
1512
+ }
1513
+ }
1514
+ .radio[data-unchecked] {
1515
+ border-color: var(--color-border-strong);
1516
+ &:hover {
1517
+ @media (hover: hover) {
1518
+ border-color: var(--color-text-muted);
1519
+ }
1520
+ }
1521
+ }
1522
+ .radio[data-checked] {
1523
+ border-color: var(--color-primary);
1524
+ background-color: var(--color-primary);
1525
+ &:hover {
1526
+ @media (hover: hover) {
1527
+ background-color: var(--color-primary-hover);
1528
+ }
1529
+ }
1530
+ }
1531
+ .radio[data-disabled] {
1532
+ cursor: not-allowed;
1533
+ opacity: 50%;
1534
+ }
1535
+ .radio-indicator {
1536
+ display: inline-flex;
1537
+ width: calc(var(--spacing) * 1.5);
1538
+ height: calc(var(--spacing) * 1.5);
1539
+ border-radius: calc(infinity * 1px);
1540
+ background-color: var(--color-primary-content);
1541
+ }
1542
+ .radio-group {
1543
+ display: inline-flex;
1544
+ flex-wrap: wrap;
1545
+ gap: calc(var(--spacing) * 4);
1546
+ }
1547
+ .radio-group-vertical {
1548
+ flex-direction: column;
1549
+ align-items: flex-start;
1550
+ gap: calc(var(--spacing) * 2);
1551
+ }
1552
+ label:has(> .radio) {
1553
+ display: inline-flex;
1554
+ cursor: pointer;
1555
+ align-items: center;
1556
+ gap: calc(var(--spacing) * 2);
1557
+ }
1558
+ label:has(> .radio:disabled), label:has(> .radio[data-disabled]) {
1559
+ cursor: not-allowed;
1560
+ opacity: 60%;
1561
+ }
1562
+ }
1563
+ @layer components {
1564
+ .switch {
1565
+ position: relative;
1566
+ display: inline-flex;
1567
+ height: calc(var(--spacing) * 5);
1568
+ width: calc(var(--spacing) * 9);
1569
+ flex-shrink: 0;
1570
+ cursor: pointer;
1571
+ align-items: center;
1572
+ border-radius: calc(infinity * 1px);
1573
+ border-style: var(--tw-border-style);
1574
+ border-width: 1px;
1575
+ border-color: transparent;
1576
+ padding: calc(var(--spacing) * 0.5);
1577
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
1578
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1579
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1580
+ --tw-duration: 150ms;
1581
+ transition-duration: 150ms;
1582
+ &:focus-visible {
1583
+ outline-style: var(--tw-outline-style);
1584
+ outline-width: 2px;
1585
+ }
1586
+ &:focus-visible {
1587
+ outline-offset: 2px;
1588
+ }
1589
+ &:focus-visible {
1590
+ outline-color: var(--color-primary);
1591
+ }
1592
+ &:disabled {
1593
+ cursor: not-allowed;
1594
+ }
1595
+ &:disabled {
1596
+ opacity: 50%;
1597
+ }
1598
+ }
1599
+ .switch[data-unchecked] {
1600
+ background-color: var(--color-border-strong);
1601
+ }
1602
+ .switch[data-checked] {
1603
+ background-color: var(--color-primary);
1604
+ }
1605
+ .switch[data-disabled] {
1606
+ cursor: not-allowed;
1607
+ opacity: 50%;
1608
+ }
1609
+ .switch-thumb {
1610
+ width: calc(var(--spacing) * 4);
1611
+ height: calc(var(--spacing) * 4);
1612
+ border-radius: calc(infinity * 1px);
1613
+ background-color: var(--color-paper);
1614
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1615
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1616
+ transition-property: transform, translate, scale, rotate;
1617
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1618
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1619
+ --tw-duration: 150ms;
1620
+ transition-duration: 150ms;
1621
+ }
1622
+ .switch[data-checked] .switch-thumb {
1623
+ --tw-translate-x: calc(var(--spacing) * 4);
1624
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1625
+ }
1626
+ input.switch {
1627
+ margin: calc(var(--spacing) * 0);
1628
+ appearance: none;
1629
+ background-color: var(--color-border-strong);
1630
+ }
1631
+ input.switch:checked {
1632
+ background-color: var(--color-primary);
1633
+ }
1634
+ input.switch::before {
1635
+ content: "";
1636
+ width: calc(var(--spacing) * 4);
1637
+ height: calc(var(--spacing) * 4);
1638
+ border-radius: calc(infinity * 1px);
1639
+ background-color: var(--color-paper);
1640
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1641
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1642
+ transition-property: transform, translate, scale, rotate;
1643
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1644
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1645
+ --tw-duration: 150ms;
1646
+ transition-duration: 150ms;
1647
+ }
1648
+ input.switch:checked::before {
1649
+ --tw-translate-x: calc(var(--spacing) * 4);
1650
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1651
+ }
1652
+ label:has(> .switch) {
1653
+ display: inline-flex;
1654
+ cursor: pointer;
1655
+ align-items: center;
1656
+ gap: calc(var(--spacing) * 3);
1657
+ }
1658
+ label:has(> .switch:disabled), label:has(> .switch[data-disabled]) {
1659
+ cursor: not-allowed;
1660
+ opacity: 60%;
1661
+ }
1662
+ }
1663
+ @layer components {
1664
+ .select {
1665
+ display: inline-flex;
1666
+ width: 100%;
1667
+ cursor: pointer;
1668
+ align-items: center;
1669
+ justify-content: space-between;
1670
+ gap: calc(var(--spacing) * 2);
1671
+ border-radius: var(--radius-lg);
1672
+ border-style: var(--tw-border-style);
1673
+ border-width: 1px;
1674
+ border-color: transparent;
1675
+ background-color: var(--color-surface);
1676
+ padding-inline: calc(var(--spacing) * 3);
1677
+ padding-block: calc(var(--spacing) * 2);
1678
+ text-align: left;
1679
+ font-size: var(--text-sm);
1680
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1681
+ --tw-leading: 1;
1682
+ line-height: 1;
1683
+ color: var(--color-text);
1684
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
1685
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1686
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1687
+ --tw-duration: 150ms;
1688
+ transition-duration: 150ms;
1689
+ -webkit-user-select: none;
1690
+ user-select: none;
1691
+ &:focus-visible {
1692
+ outline-style: var(--tw-outline-style);
1693
+ outline-width: 2px;
1694
+ }
1695
+ &:focus-visible {
1696
+ outline-offset: 2px;
1697
+ }
1698
+ &:focus-visible {
1699
+ outline-color: var(--color-primary);
1700
+ }
1701
+ &:disabled {
1702
+ cursor: not-allowed;
1703
+ }
1704
+ &:disabled {
1705
+ opacity: 50%;
1706
+ }
1707
+ }
1708
+ .select[data-popup-open] {
1709
+ outline-style: var(--tw-outline-style);
1710
+ outline-width: 2px;
1711
+ outline-offset: 2px;
1712
+ outline-color: var(--color-primary);
1713
+ }
1714
+ .select[data-placeholder] {
1715
+ color: var(--color-text-muted);
1716
+ }
1717
+ .select-bordered {
1718
+ border-color: var(--color-border);
1719
+ &:hover {
1720
+ @media (hover: hover) {
1721
+ border-color: var(--color-border-strong);
1722
+ }
1723
+ }
1724
+ }
1725
+ .select-ghost {
1726
+ background-color: transparent;
1727
+ &:hover {
1728
+ @media (hover: hover) {
1729
+ background-color: var(--color-surface-muted);
1730
+ }
1731
+ }
1732
+ }
1733
+ .select-danger {
1734
+ border-color: var(--color-danger);
1735
+ &:focus-visible {
1736
+ outline-color: var(--color-danger);
1737
+ }
1738
+ }
1739
+ .select-sm {
1740
+ padding-inline: calc(var(--spacing) * 2.5);
1741
+ padding-block: calc(var(--spacing) * 1.5);
1742
+ font-size: var(--text-xs);
1743
+ line-height: var(--tw-leading, var(--text-xs--line-height));
1744
+ }
1745
+ .select-lg {
1746
+ padding-inline: calc(var(--spacing) * 4);
1747
+ padding-block: calc(var(--spacing) * 2.5);
1748
+ font-size: var(--text-base);
1749
+ line-height: var(--tw-leading, var(--text-base--line-height));
1750
+ }
1751
+ select.select {
1752
+ appearance: none;
1753
+ padding-right: 2rem;
1754
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23878580' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
1755
+ background-repeat: no-repeat;
1756
+ background-position: right 0.5rem center;
1757
+ background-size: 1rem;
1758
+ }
1759
+ select.select-sm {
1760
+ padding-right: 1.75rem;
1761
+ background-size: 0.875rem;
1762
+ }
1763
+ select.select-lg {
1764
+ padding-right: 2.25rem;
1765
+ }
1766
+ .select-icon {
1767
+ display: inline-flex;
1768
+ width: calc(var(--spacing) * 4);
1769
+ height: calc(var(--spacing) * 4);
1770
+ flex-shrink: 0;
1771
+ align-items: center;
1772
+ justify-content: center;
1773
+ color: var(--color-text-muted);
1774
+ transition-property: transform, translate, scale, rotate;
1775
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1776
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1777
+ --tw-duration: 150ms;
1778
+ transition-duration: 150ms;
1779
+ }
1780
+ .select[data-popup-open] .select-icon {
1781
+ rotate: 180deg;
1782
+ }
1783
+ .select-popup {
1784
+ max-height: calc(var(--spacing) * 72);
1785
+ min-width: var(--anchor-width);
1786
+ overflow: auto;
1787
+ border-radius: var(--radius-lg);
1788
+ border-style: var(--tw-border-style);
1789
+ border-width: 1px;
1790
+ border-color: var(--color-border);
1791
+ background-color: var(--color-surface);
1792
+ padding-block: calc(var(--spacing) * 1);
1793
+ color: var(--color-text);
1794
+ --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1795
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1796
+ transition-property: opacity,transform;
1797
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1798
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1799
+ --tw-duration: 100ms;
1800
+ transition-duration: 100ms;
1801
+ --tw-outline-style: none;
1802
+ outline-style: none;
1803
+ }
1804
+ .select-popup[data-starting-style], .select-popup[data-ending-style] {
1805
+ opacity: 0%;
1806
+ }
1807
+ .select-popup[data-starting-style] {
1808
+ --tw-translate-y: calc(var(--spacing) * -1);
1809
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1810
+ }
1811
+ .select-item {
1812
+ display: flex;
1813
+ cursor: pointer;
1814
+ align-items: center;
1815
+ gap: calc(var(--spacing) * 2);
1816
+ padding-inline: calc(var(--spacing) * 3);
1817
+ padding-block: calc(var(--spacing) * 1.5);
1818
+ font-size: var(--text-sm);
1819
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1820
+ --tw-outline-style: none;
1821
+ outline-style: none;
1822
+ -webkit-user-select: none;
1823
+ user-select: none;
1824
+ }
1825
+ .select-item[data-highlighted] {
1826
+ background-color: var(--color-surface-muted);
1827
+ }
1828
+ .select-item[data-selected] {
1829
+ --tw-font-weight: var(--font-weight-medium);
1830
+ font-weight: var(--font-weight-medium);
1831
+ }
1832
+ .select-item[data-disabled] {
1833
+ cursor: not-allowed;
1834
+ opacity: 50%;
1835
+ }
1836
+ .select-item-indicator {
1837
+ margin-left: auto;
1838
+ display: inline-flex;
1839
+ width: calc(var(--spacing) * 4);
1840
+ height: calc(var(--spacing) * 4);
1841
+ align-items: center;
1842
+ justify-content: center;
1843
+ color: var(--color-primary);
1844
+ }
1845
+ .select-group-label {
1846
+ padding-inline: calc(var(--spacing) * 3);
1847
+ padding-top: calc(var(--spacing) * 2);
1848
+ padding-bottom: calc(var(--spacing) * 1);
1849
+ font-size: var(--text-xs);
1850
+ line-height: var(--tw-leading, var(--text-xs--line-height));
1851
+ --tw-tracking: var(--tracking-wide);
1852
+ letter-spacing: var(--tracking-wide);
1853
+ color: var(--color-text-muted);
1854
+ text-transform: uppercase;
1855
+ }
1856
+ }
1857
+ @layer components {
1858
+ .card {
1859
+ display: flex;
1860
+ flex-direction: column;
1861
+ overflow: hidden;
1862
+ border-radius: var(--radius-xl);
1863
+ border-style: var(--tw-border-style);
1864
+ border-width: 1px;
1865
+ border-color: var(--color-border);
1866
+ background-color: var(--color-surface);
1867
+ color: var(--color-text);
1868
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
1869
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1870
+ }
1871
+ .card-body {
1872
+ display: flex;
1873
+ flex-direction: column;
1874
+ gap: calc(var(--spacing) * 3);
1875
+ padding: calc(var(--spacing) * 5);
1876
+ }
1877
+ .card-title {
1878
+ display: flex;
1879
+ align-items: center;
1880
+ gap: calc(var(--spacing) * 2);
1881
+ font-size: var(--text-lg);
1882
+ line-height: var(--tw-leading, var(--text-lg--line-height));
1883
+ --tw-leading: var(--leading-tight);
1884
+ line-height: var(--leading-tight);
1885
+ --tw-font-weight: var(--font-weight-semibold);
1886
+ font-weight: var(--font-weight-semibold);
1887
+ }
1888
+ .card-description {
1889
+ font-size: var(--text-sm);
1890
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1891
+ color: var(--color-text-muted);
1892
+ }
1893
+ .card-actions {
1894
+ margin-top: auto;
1895
+ display: flex;
1896
+ flex-wrap: wrap;
1897
+ align-items: center;
1898
+ gap: calc(var(--spacing) * 2);
1899
+ padding-top: calc(var(--spacing) * 2);
1900
+ }
1901
+ .card-compact .card-body {
1902
+ gap: calc(var(--spacing) * 2);
1903
+ padding: calc(var(--spacing) * 3);
1904
+ }
1905
+ .card-bordered {
1906
+ border-color: var(--color-border-strong);
1907
+ --tw-shadow: 0 0 #0000;
1908
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1909
+ }
1910
+ }
1911
+ @layer components {
1912
+ .dialog {
1913
+ margin: auto;
1914
+ flex-direction: column;
1915
+ overflow: hidden;
1916
+ border-radius: var(--radius-xl);
1917
+ border-style: var(--tw-border-style);
1918
+ border-width: 1px;
1919
+ border-color: var(--color-border);
1920
+ background-color: var(--color-surface);
1921
+ padding: calc(var(--spacing) * 0);
1922
+ color: var(--color-text);
1923
+ --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1924
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1925
+ width: calc(100% - 2rem);
1926
+ max-width: 32rem;
1927
+ max-height: calc(100dvh - 2rem);
1928
+ opacity: 1;
1929
+ transform: translateY(0) scale(1);
1930
+ transition: display 150ms allow-discrete, overlay 150ms allow-discrete, opacity 150ms ease-out, transform 150ms ease-out;
1931
+ }
1932
+ .dialog[open] {
1933
+ display: flex;
1934
+ }
1935
+ .dialog::backdrop {
1936
+ background: rgb(0 0 0 / 0.4);
1937
+ transition: display 150ms allow-discrete, overlay 150ms allow-discrete, background 150ms ease-out;
1938
+ }
1939
+ @starting-style {
1940
+ .dialog[open] {
1941
+ opacity: 0;
1942
+ transform: translateY(-0.5rem) scale(0.98);
1943
+ }
1944
+ .dialog[open]::backdrop {
1945
+ background: rgb(0 0 0 / 0);
1946
+ }
1947
+ }
1948
+ .dialog-sm {
1949
+ max-width: 24rem;
1950
+ }
1951
+ .dialog-lg {
1952
+ max-width: 48rem;
1953
+ }
1954
+ .dialog-header {
1955
+ display: flex;
1956
+ align-items: flex-start;
1957
+ gap: calc(var(--spacing) * 3);
1958
+ padding-inline: calc(var(--spacing) * 5);
1959
+ padding-top: calc(var(--spacing) * 5);
1960
+ padding-bottom: calc(var(--spacing) * 3);
1961
+ }
1962
+ .dialog-title {
1963
+ margin: calc(var(--spacing) * 0);
1964
+ display: flex;
1965
+ flex: 1;
1966
+ align-items: center;
1967
+ gap: calc(var(--spacing) * 2);
1968
+ font-size: var(--text-lg);
1969
+ line-height: var(--tw-leading, var(--text-lg--line-height));
1970
+ --tw-leading: var(--leading-tight);
1971
+ line-height: var(--leading-tight);
1972
+ --tw-font-weight: var(--font-weight-semibold);
1973
+ font-weight: var(--font-weight-semibold);
1974
+ }
1975
+ .dialog-description {
1976
+ margin-top: calc(var(--spacing) * -2);
1977
+ margin-bottom: calc(var(--spacing) * 3);
1978
+ padding-inline: calc(var(--spacing) * 5);
1979
+ font-size: var(--text-sm);
1980
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1981
+ color: var(--color-text-muted);
1982
+ }
1983
+ .dialog-body {
1984
+ display: flex;
1985
+ flex-direction: column;
1986
+ gap: calc(var(--spacing) * 3);
1987
+ overflow-y: auto;
1988
+ padding-inline: calc(var(--spacing) * 5);
1989
+ padding-block: calc(var(--spacing) * 3);
1990
+ }
1991
+ .dialog-footer {
1992
+ display: flex;
1993
+ flex-wrap: wrap;
1994
+ align-items: center;
1995
+ justify-content: flex-end;
1996
+ gap: calc(var(--spacing) * 2);
1997
+ border-top-style: var(--tw-border-style);
1998
+ border-top-width: 1px;
1999
+ border-color: var(--color-border);
2000
+ background-color: var(--color-surface-muted);
2001
+ padding-inline: calc(var(--spacing) * 5);
2002
+ padding-block: calc(var(--spacing) * 3);
2003
+ }
2004
+ .dialog-close {
2005
+ display: inline-flex;
2006
+ width: calc(var(--spacing) * 7);
2007
+ height: calc(var(--spacing) * 7);
2008
+ flex-shrink: 0;
2009
+ cursor: pointer;
2010
+ align-items: center;
2011
+ justify-content: center;
2012
+ border-radius: var(--radius-md);
2013
+ background-color: transparent;
2014
+ color: var(--color-text-muted);
2015
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
2016
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2017
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2018
+ --tw-duration: 150ms;
2019
+ transition-duration: 150ms;
2020
+ &:hover {
2021
+ @media (hover: hover) {
2022
+ background-color: var(--color-surface-strong);
2023
+ }
2024
+ }
2025
+ &:hover {
2026
+ @media (hover: hover) {
2027
+ color: var(--color-text);
2028
+ }
2029
+ }
2030
+ &:focus-visible {
2031
+ outline-style: var(--tw-outline-style);
2032
+ outline-width: 2px;
2033
+ }
2034
+ &:focus-visible {
2035
+ outline-offset: 2px;
2036
+ }
2037
+ &:focus-visible {
2038
+ outline-color: var(--color-primary);
2039
+ }
2040
+ }
2041
+ }
2042
+ @layer components {
2043
+ .field {
2044
+ display: flex;
2045
+ flex-direction: column;
2046
+ gap: calc(var(--spacing) * 1.5);
2047
+ }
2048
+ .field-row {
2049
+ flex-direction: row;
2050
+ align-items: center;
2051
+ gap: calc(var(--spacing) * 3);
2052
+ }
2053
+ .field-label {
2054
+ font-size: var(--text-sm);
2055
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2056
+ --tw-leading: 1;
2057
+ line-height: 1;
2058
+ --tw-font-weight: var(--font-weight-medium);
2059
+ font-weight: var(--font-weight-medium);
2060
+ color: var(--color-text);
2061
+ }
2062
+ .field-label[data-required]::after {
2063
+ content: " *";
2064
+ color: var(--color-danger);
2065
+ }
2066
+ .asteriskField {
2067
+ color: var(--color-danger);
2068
+ }
2069
+ .field-description {
2070
+ font-size: var(--text-xs);
2071
+ line-height: var(--tw-leading, var(--text-xs--line-height));
2072
+ --tw-leading: var(--leading-relaxed);
2073
+ line-height: var(--leading-relaxed);
2074
+ color: var(--color-text-muted);
2075
+ }
2076
+ .field-error {
2077
+ font-size: var(--text-xs);
2078
+ line-height: var(--tw-leading, var(--text-xs--line-height));
2079
+ --tw-leading: var(--leading-relaxed);
2080
+ line-height: var(--leading-relaxed);
2081
+ color: var(--color-danger);
2082
+ }
2083
+ .field[data-invalid] .input, .field[data-invalid] .textarea, .field[data-invalid] .select, .field[data-invalid] .file-input {
2084
+ border-color: var(--color-danger);
2085
+ }
2086
+ .field[data-invalid] .checkbox[data-unchecked], .field[data-invalid] .radio[data-unchecked] {
2087
+ border-color: var(--color-danger);
2088
+ }
2089
+ .field[data-invalid] .switch[data-unchecked] {
2090
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2091
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2092
+ --tw-ring-color: var(--color-danger);
2093
+ }
2094
+ }
2095
+ @layer components {
2096
+ .file-input {
2097
+ display: inline-flex;
2098
+ width: 100%;
2099
+ align-items: center;
2100
+ overflow: hidden;
2101
+ border-radius: var(--radius-lg);
2102
+ border-style: var(--tw-border-style);
2103
+ border-width: 1px;
2104
+ border-color: transparent;
2105
+ background-color: var(--color-surface);
2106
+ padding-right: calc(var(--spacing) * 3);
2107
+ font-size: var(--text-sm);
2108
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2109
+ --tw-leading: 1;
2110
+ line-height: 1;
2111
+ color: var(--color-text);
2112
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
2113
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2114
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2115
+ --tw-duration: 150ms;
2116
+ transition-duration: 150ms;
2117
+ &::file-selector-button {
2118
+ margin-right: calc(var(--spacing) * 3);
2119
+ }
2120
+ &::file-selector-button {
2121
+ cursor: pointer;
2122
+ }
2123
+ &::file-selector-button {
2124
+ border-style: var(--tw-border-style);
2125
+ border-width: 0px;
2126
+ }
2127
+ &::file-selector-button {
2128
+ border-right-style: var(--tw-border-style);
2129
+ border-right-width: 1px;
2130
+ }
2131
+ &::file-selector-button {
2132
+ border-color: var(--color-border);
2133
+ }
2134
+ &::file-selector-button {
2135
+ background-color: var(--color-surface-muted);
2136
+ }
2137
+ &::file-selector-button {
2138
+ padding-inline: calc(var(--spacing) * 3);
2139
+ }
2140
+ &::file-selector-button {
2141
+ padding-block: calc(var(--spacing) * 2);
2142
+ }
2143
+ &::file-selector-button {
2144
+ font-size: var(--text-sm);
2145
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2146
+ }
2147
+ &::file-selector-button {
2148
+ --tw-leading: 1;
2149
+ line-height: 1;
2150
+ }
2151
+ &::file-selector-button {
2152
+ --tw-font-weight: var(--font-weight-medium);
2153
+ font-weight: var(--font-weight-medium);
2154
+ }
2155
+ &::file-selector-button {
2156
+ color: var(--color-text);
2157
+ }
2158
+ &:hover {
2159
+ @media (hover: hover) {
2160
+ &::file-selector-button {
2161
+ background-color: var(--color-surface-strong);
2162
+ }
2163
+ }
2164
+ }
2165
+ &:focus-visible {
2166
+ outline-style: var(--tw-outline-style);
2167
+ outline-width: 2px;
2168
+ }
2169
+ &:focus-visible {
2170
+ outline-offset: 2px;
2171
+ }
2172
+ &:focus-visible {
2173
+ outline-color: var(--color-primary);
2174
+ }
2175
+ &:disabled {
2176
+ cursor: not-allowed;
2177
+ }
2178
+ &:disabled {
2179
+ opacity: 50%;
2180
+ }
2181
+ }
2182
+ .file-input-bordered {
2183
+ border-color: var(--color-border);
2184
+ &:hover {
2185
+ @media (hover: hover) {
2186
+ border-color: var(--color-border-strong);
2187
+ }
2188
+ }
2189
+ }
2190
+ .file-input-ghost {
2191
+ background-color: transparent;
2192
+ &:hover {
2193
+ @media (hover: hover) {
2194
+ background-color: var(--color-surface-muted);
2195
+ }
2196
+ }
2197
+ }
2198
+ .file-input-danger {
2199
+ border-color: var(--color-danger);
2200
+ &:focus-visible {
2201
+ outline-color: var(--color-danger);
2202
+ }
2203
+ }
2204
+ .file-input-sm {
2205
+ font-size: var(--text-xs);
2206
+ line-height: var(--tw-leading, var(--text-xs--line-height));
2207
+ &::file-selector-button {
2208
+ margin-right: calc(var(--spacing) * 2.5);
2209
+ }
2210
+ &::file-selector-button {
2211
+ padding-inline: calc(var(--spacing) * 2.5);
2212
+ }
2213
+ &::file-selector-button {
2214
+ padding-block: calc(var(--spacing) * 1.5);
2215
+ }
2216
+ &::file-selector-button {
2217
+ font-size: var(--text-xs);
2218
+ line-height: var(--tw-leading, var(--text-xs--line-height));
2219
+ }
2220
+ }
2221
+ .file-input-lg {
2222
+ font-size: var(--text-base);
2223
+ line-height: var(--tw-leading, var(--text-base--line-height));
2224
+ &::file-selector-button {
2225
+ margin-right: calc(var(--spacing) * 4);
2226
+ }
2227
+ &::file-selector-button {
2228
+ padding-inline: calc(var(--spacing) * 4);
2229
+ }
2230
+ &::file-selector-button {
2231
+ padding-block: calc(var(--spacing) * 2.5);
2232
+ }
2233
+ &::file-selector-button {
2234
+ font-size: var(--text-base);
2235
+ line-height: var(--tw-leading, var(--text-base--line-height));
2236
+ }
2237
+ }
2238
+ }
2239
+ @layer components {
2240
+ .footer {
2241
+ display: flex;
2242
+ flex-wrap: wrap;
2243
+ align-items: center;
2244
+ justify-content: space-between;
2245
+ gap: calc(var(--spacing) * 3);
2246
+ border-top-style: var(--tw-border-style);
2247
+ border-top-width: 2px;
2248
+ border-color: var(--color-system-accent);
2249
+ background-color: var(--color-surface-muted);
2250
+ padding-inline: calc(var(--spacing) * 4);
2251
+ padding-block: calc(var(--spacing) * 3);
2252
+ font-size: var(--text-xs);
2253
+ line-height: var(--tw-leading, var(--text-xs--line-height));
2254
+ color: var(--color-text-muted);
2255
+ }
2256
+ .footer-links {
2257
+ display: flex;
2258
+ flex-wrap: wrap;
2259
+ align-items: center;
2260
+ gap: calc(var(--spacing) * 3);
2261
+ }
2262
+ .footer-link {
2263
+ border-radius: var(--radius-sm);
2264
+ color: var(--color-text-muted);
2265
+ text-decoration-line: none;
2266
+ &:hover {
2267
+ @media (hover: hover) {
2268
+ color: var(--color-text);
2269
+ }
2270
+ }
2271
+ &:hover {
2272
+ @media (hover: hover) {
2273
+ text-decoration-line: underline;
2274
+ }
2275
+ }
2276
+ &:focus-visible {
2277
+ outline-style: var(--tw-outline-style);
2278
+ outline-width: 2px;
2279
+ }
2280
+ &:focus-visible {
2281
+ outline-offset: 2px;
2282
+ }
2283
+ &:focus-visible {
2284
+ outline-color: var(--color-primary);
2285
+ }
2286
+ }
2287
+ .footer-meta {
2288
+ color: var(--color-text-muted);
2289
+ }
2290
+ }
2291
+ @layer components {
2292
+ .menu {
2293
+ position: relative;
2294
+ display: inline-block;
2295
+ }
2296
+ .menu-trigger {
2297
+ display: inline-flex;
2298
+ cursor: pointer;
2299
+ align-items: center;
2300
+ gap: calc(var(--spacing) * 1.5);
2301
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
2302
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2303
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2304
+ --tw-duration: 150ms;
2305
+ transition-duration: 150ms;
2306
+ -webkit-user-select: none;
2307
+ user-select: none;
2308
+ &:focus-visible {
2309
+ outline-style: var(--tw-outline-style);
2310
+ outline-width: 2px;
2311
+ }
2312
+ &:focus-visible {
2313
+ outline-offset: 2px;
2314
+ }
2315
+ &:focus-visible {
2316
+ outline-color: var(--color-primary);
2317
+ }
2318
+ list-style: none;
2319
+ }
2320
+ .menu-trigger::-webkit-details-marker {
2321
+ display: none;
2322
+ }
2323
+ .menu-trigger:not(.btn) {
2324
+ border-radius: var(--radius-md);
2325
+ background-color: transparent;
2326
+ padding-inline: calc(var(--spacing) * 2.5);
2327
+ padding-block: calc(var(--spacing) * 1.5);
2328
+ font-size: var(--text-sm);
2329
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2330
+ --tw-leading: 1;
2331
+ line-height: 1;
2332
+ color: var(--color-text);
2333
+ &:hover {
2334
+ @media (hover: hover) {
2335
+ background-color: var(--color-surface-strong);
2336
+ }
2337
+ }
2338
+ }
2339
+ .menu-trigger::after {
2340
+ content: "";
2341
+ width: 0.5em;
2342
+ height: 0.5em;
2343
+ border-right: 2px solid currentColor;
2344
+ border-bottom: 2px solid currentColor;
2345
+ transform: rotate(45deg);
2346
+ transition: transform 150ms ease;
2347
+ flex-shrink: 0;
2348
+ }
2349
+ .menu-trigger:empty {
2350
+ justify-content: center;
2351
+ }
2352
+ .menu[open] > .menu-trigger::after {
2353
+ transform: rotate(-135deg);
2354
+ }
2355
+ .menu-popup {
2356
+ position: absolute;
2357
+ top: 100%;
2358
+ left: calc(var(--spacing) * 0);
2359
+ z-index: 30;
2360
+ margin-top: calc(var(--spacing) * 1);
2361
+ max-height: calc(var(--spacing) * 72);
2362
+ min-width: calc(var(--spacing) * 44);
2363
+ overflow: auto;
2364
+ border-radius: var(--radius-lg);
2365
+ border-style: var(--tw-border-style);
2366
+ border-width: 1px;
2367
+ border-color: var(--color-border);
2368
+ background-color: var(--color-surface);
2369
+ padding-block: calc(var(--spacing) * 1);
2370
+ color: var(--color-text);
2371
+ --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
2372
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2373
+ }
2374
+ .menu-item {
2375
+ display: flex;
2376
+ width: 100%;
2377
+ cursor: pointer;
2378
+ align-items: center;
2379
+ gap: calc(var(--spacing) * 2);
2380
+ border-style: var(--tw-border-style);
2381
+ border-width: 0px;
2382
+ background-color: transparent;
2383
+ padding-inline: calc(var(--spacing) * 3);
2384
+ padding-block: calc(var(--spacing) * 1.5);
2385
+ text-align: left;
2386
+ font-size: var(--text-sm);
2387
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2388
+ --tw-leading: 1;
2389
+ line-height: 1;
2390
+ color: var(--color-text);
2391
+ text-decoration-line: none;
2392
+ -webkit-user-select: none;
2393
+ user-select: none;
2394
+ &:hover {
2395
+ @media (hover: hover) {
2396
+ background-color: var(--color-surface-muted);
2397
+ }
2398
+ }
2399
+ &:focus-visible {
2400
+ background-color: var(--color-surface-muted);
2401
+ }
2402
+ &:focus-visible {
2403
+ --tw-outline-style: none;
2404
+ outline-style: none;
2405
+ }
2406
+ &:disabled {
2407
+ cursor: not-allowed;
2408
+ }
2409
+ &:disabled {
2410
+ opacity: 50%;
2411
+ }
2412
+ }
2413
+ .menu-item[aria-disabled="true"] {
2414
+ cursor: not-allowed;
2415
+ opacity: 50%;
2416
+ }
2417
+ .menu-separator {
2418
+ margin-block: calc(var(--spacing) * 1);
2419
+ height: 1px;
2420
+ border-style: var(--tw-border-style);
2421
+ border-width: 0px;
2422
+ background-color: var(--color-border);
2423
+ }
2424
+ .menu-group {
2425
+ display: flex;
2426
+ flex-direction: column;
2427
+ }
2428
+ .menu-group-label {
2429
+ padding-inline: calc(var(--spacing) * 3);
2430
+ padding-top: calc(var(--spacing) * 2);
2431
+ padding-bottom: calc(var(--spacing) * 1);
2432
+ font-size: var(--text-xs);
2433
+ line-height: var(--tw-leading, var(--text-xs--line-height));
2434
+ --tw-tracking: var(--tracking-wide);
2435
+ letter-spacing: var(--tracking-wide);
2436
+ color: var(--color-text-muted);
2437
+ text-transform: uppercase;
2438
+ }
2439
+ }
2440
+ @layer components {
2441
+ .navbar {
2442
+ display: flex;
2443
+ height: calc(var(--spacing) * 12);
2444
+ align-items: center;
2445
+ gap: calc(var(--spacing) * 3);
2446
+ border-bottom-style: var(--tw-border-style);
2447
+ border-bottom-width: 2px;
2448
+ border-color: var(--color-system-accent);
2449
+ background-color: var(--color-surface-muted);
2450
+ padding-inline: calc(var(--spacing) * 4);
2451
+ color: var(--color-text);
2452
+ }
2453
+ .navbar-brand {
2454
+ display: flex;
2455
+ flex-shrink: 0;
2456
+ align-items: center;
2457
+ gap: calc(var(--spacing) * 2);
2458
+ font-size: var(--text-sm);
2459
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2460
+ --tw-font-weight: var(--font-weight-semibold);
2461
+ font-weight: var(--font-weight-semibold);
2462
+ color: var(--color-text);
2463
+ }
2464
+ .navbar-items {
2465
+ display: flex;
2466
+ align-items: center;
2467
+ gap: calc(var(--spacing) * 0.5);
2468
+ }
2469
+ .navbar-item {
2470
+ display: inline-flex;
2471
+ cursor: pointer;
2472
+ align-items: center;
2473
+ gap: calc(var(--spacing) * 1.5);
2474
+ border-radius: var(--radius-md);
2475
+ background-color: transparent;
2476
+ padding-inline: calc(var(--spacing) * 2.5);
2477
+ padding-block: calc(var(--spacing) * 1.5);
2478
+ font-size: var(--text-sm);
2479
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2480
+ --tw-leading: 1;
2481
+ line-height: 1;
2482
+ color: var(--color-text);
2483
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
2484
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2485
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2486
+ --tw-duration: 150ms;
2487
+ transition-duration: 150ms;
2488
+ -webkit-user-select: none;
2489
+ user-select: none;
2490
+ &:hover {
2491
+ @media (hover: hover) {
2492
+ background-color: var(--color-surface-strong);
2493
+ }
2494
+ }
2495
+ &:focus-visible {
2496
+ outline-style: var(--tw-outline-style);
2497
+ outline-width: 2px;
2498
+ }
2499
+ &:focus-visible {
2500
+ outline-offset: 2px;
2501
+ }
2502
+ &:focus-visible {
2503
+ outline-color: var(--color-primary);
2504
+ }
2505
+ }
2506
+ .navbar-item[aria-current="page"], .navbar-item[data-active] {
2507
+ background-color: var(--color-primary-muted);
2508
+ color: var(--color-primary);
2509
+ }
2510
+ .navbar-actions {
2511
+ margin-left: auto;
2512
+ display: flex;
2513
+ align-items: center;
2514
+ gap: calc(var(--spacing) * 2);
2515
+ }
2516
+ .navbar-mobile-toggle {
2517
+ margin-left: calc(var(--spacing) * -2);
2518
+ display: inline-flex;
2519
+ width: calc(var(--spacing) * 9);
2520
+ height: calc(var(--spacing) * 9);
2521
+ cursor: pointer;
2522
+ align-items: center;
2523
+ justify-content: center;
2524
+ border-radius: var(--radius-md);
2525
+ background-color: transparent;
2526
+ color: var(--color-text);
2527
+ &:hover {
2528
+ @media (hover: hover) {
2529
+ background-color: var(--color-surface-strong);
2530
+ }
2531
+ }
2532
+ &:focus-visible {
2533
+ outline-style: var(--tw-outline-style);
2534
+ outline-width: 2px;
2535
+ }
2536
+ &:focus-visible {
2537
+ outline-offset: 2px;
2538
+ }
2539
+ &:focus-visible {
2540
+ outline-color: var(--color-primary);
2541
+ }
2542
+ }
2543
+ .navbar-mobile-toggle::before {
2544
+ content: "";
2545
+ display: block;
2546
+ width: 18px;
2547
+ height: 2px;
2548
+ background: currentColor;
2549
+ border-radius: 1px;
2550
+ box-shadow: 0 -6px 0 currentColor, 0 6px 0 currentColor;
2551
+ }
2552
+ @media (min-width: 48rem) {
2553
+ .navbar-mobile-toggle {
2554
+ display: none;
2555
+ }
2556
+ }
2557
+ }
2558
+ @layer components {
2559
+ .sidebar {
2560
+ display: flex;
2561
+ flex-shrink: 0;
2562
+ flex-direction: column;
2563
+ border-right-style: var(--tw-border-style);
2564
+ border-right-width: 1px;
2565
+ border-color: var(--color-border);
2566
+ background-color: var(--color-surface-muted);
2567
+ color: var(--color-text);
2568
+ width: var(--app-shell-sidebar-w, 240px);
2569
+ transition: width 150ms ease;
2570
+ }
2571
+ .sidebar-toggle {
2572
+ position: absolute;
2573
+ width: 1px;
2574
+ height: 1px;
2575
+ margin: 0;
2576
+ padding: 0;
2577
+ border: 0;
2578
+ opacity: 0;
2579
+ pointer-events: none;
2580
+ }
2581
+ .sidebar:has(.sidebar-toggle:checked) {
2582
+ width: var(--app-shell-sidebar-w-collapsed, 56px);
2583
+ }
2584
+ .sidebar:has(.sidebar-toggle:checked) .sidebar-label, .sidebar:has(.sidebar-toggle:checked) .sidebar-group-label, .sidebar:has(.sidebar-toggle:checked) .sidebar-badge, .sidebar:has(.sidebar-toggle:checked) .sidebar-collapsible-panel, .sidebar:has(.sidebar-toggle:checked) .sidebar-collapsible-trigger::after {
2585
+ display: none;
2586
+ }
2587
+ .sidebar:has(.sidebar-toggle:checked) .sidebar-item, .sidebar:has(.sidebar-toggle:checked) .sidebar-subitem, .sidebar:has(.sidebar-toggle:checked) .sidebar-collapsible-trigger {
2588
+ justify-content: center;
2589
+ padding-inline: calc(var(--spacing) * 1);
2590
+ }
2591
+ .sidebar-header {
2592
+ display: flex;
2593
+ height: calc(var(--spacing) * 12);
2594
+ flex-shrink: 0;
2595
+ align-items: center;
2596
+ gap: calc(var(--spacing) * 2);
2597
+ border-bottom-style: var(--tw-border-style);
2598
+ border-bottom-width: 1px;
2599
+ border-color: var(--color-border);
2600
+ padding-inline: calc(var(--spacing) * 3);
2601
+ }
2602
+ .sidebar-nav {
2603
+ display: flex;
2604
+ flex: 1;
2605
+ flex-direction: column;
2606
+ gap: calc(var(--spacing) * 0.5);
2607
+ overflow: auto;
2608
+ padding-inline: calc(var(--spacing) * 2);
2609
+ padding-block: calc(var(--spacing) * 2);
2610
+ }
2611
+ .sidebar-group {
2612
+ display: flex;
2613
+ flex-direction: column;
2614
+ gap: calc(var(--spacing) * 0.5);
2615
+ }
2616
+ .sidebar-group + .sidebar-group {
2617
+ margin-top: calc(var(--spacing) * 2);
2618
+ }
2619
+ .sidebar-group-label {
2620
+ padding-inline: calc(var(--spacing) * 2);
2621
+ padding-top: calc(var(--spacing) * 2);
2622
+ padding-bottom: calc(var(--spacing) * 1);
2623
+ font-size: var(--text-xs);
2624
+ line-height: var(--tw-leading, var(--text-xs--line-height));
2625
+ --tw-tracking: var(--tracking-wide);
2626
+ letter-spacing: var(--tracking-wide);
2627
+ color: var(--color-text-muted);
2628
+ text-transform: uppercase;
2629
+ }
2630
+ .sidebar-item {
2631
+ display: flex;
2632
+ cursor: pointer;
2633
+ align-items: center;
2634
+ gap: calc(var(--spacing) * 2);
2635
+ border-radius: var(--radius-md);
2636
+ background-color: transparent;
2637
+ padding-inline: calc(var(--spacing) * 2);
2638
+ padding-block: calc(var(--spacing) * 1.5);
2639
+ font-size: var(--text-sm);
2640
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2641
+ --tw-leading: 1;
2642
+ line-height: 1;
2643
+ color: var(--color-text);
2644
+ text-decoration-line: none;
2645
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
2646
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2647
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2648
+ --tw-duration: 150ms;
2649
+ transition-duration: 150ms;
2650
+ -webkit-user-select: none;
2651
+ user-select: none;
2652
+ &:hover {
2653
+ @media (hover: hover) {
2654
+ background-color: var(--color-surface-strong);
2655
+ }
2656
+ }
2657
+ &:focus-visible {
2658
+ outline-style: var(--tw-outline-style);
2659
+ outline-width: 2px;
2660
+ }
2661
+ &:focus-visible {
2662
+ outline-offset: 2px;
2663
+ }
2664
+ &:focus-visible {
2665
+ outline-color: var(--color-primary);
2666
+ }
2667
+ }
2668
+ .sidebar-item[aria-current="page"], .sidebar-item[data-active] {
2669
+ background-color: var(--color-primary-muted);
2670
+ --tw-font-weight: var(--font-weight-medium);
2671
+ font-weight: var(--font-weight-medium);
2672
+ color: var(--color-primary);
2673
+ }
2674
+ .sidebar-icon {
2675
+ display: inline-flex;
2676
+ width: calc(var(--spacing) * 4);
2677
+ height: calc(var(--spacing) * 4);
2678
+ flex-shrink: 0;
2679
+ align-items: center;
2680
+ justify-content: center;
2681
+ color: var(--color-text-muted);
2682
+ }
2683
+ .sidebar-item[aria-current="page"] .sidebar-icon, .sidebar-item[data-active] .sidebar-icon {
2684
+ color: var(--color-primary);
2685
+ }
2686
+ .sidebar-label {
2687
+ min-width: calc(var(--spacing) * 0);
2688
+ flex: 1;
2689
+ overflow: hidden;
2690
+ text-overflow: ellipsis;
2691
+ white-space: nowrap;
2692
+ }
2693
+ .sidebar-badge {
2694
+ margin-left: auto;
2695
+ display: inline-flex;
2696
+ height: calc(var(--spacing) * 5);
2697
+ min-width: calc(var(--spacing) * 5);
2698
+ align-items: center;
2699
+ justify-content: center;
2700
+ border-radius: calc(infinity * 1px);
2701
+ background-color: var(--color-surface-strong);
2702
+ padding-inline: calc(var(--spacing) * 1.5);
2703
+ font-size: var(--text-xs);
2704
+ line-height: var(--tw-leading, var(--text-xs--line-height));
2705
+ --tw-font-weight: var(--font-weight-medium);
2706
+ font-weight: var(--font-weight-medium);
2707
+ color: var(--color-text-muted);
2708
+ }
2709
+ .sidebar-collapsible {
2710
+ display: flex;
2711
+ flex-direction: column;
2712
+ interpolate-size: allow-keywords;
2713
+ }
2714
+ .sidebar-collapsible-trigger {
2715
+ display: flex;
2716
+ width: 100%;
2717
+ cursor: pointer;
2718
+ align-items: center;
2719
+ gap: calc(var(--spacing) * 2);
2720
+ border-radius: var(--radius-md);
2721
+ background-color: transparent;
2722
+ padding-inline: calc(var(--spacing) * 2);
2723
+ padding-block: calc(var(--spacing) * 1.5);
2724
+ text-align: left;
2725
+ font-size: var(--text-sm);
2726
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2727
+ --tw-leading: 1;
2728
+ line-height: 1;
2729
+ color: var(--color-text);
2730
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
2731
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2732
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2733
+ --tw-duration: 150ms;
2734
+ transition-duration: 150ms;
2735
+ -webkit-user-select: none;
2736
+ user-select: none;
2737
+ &:hover {
2738
+ @media (hover: hover) {
2739
+ background-color: var(--color-surface-strong);
2740
+ }
2741
+ }
2742
+ &:focus-visible {
2743
+ outline-style: var(--tw-outline-style);
2744
+ outline-width: 2px;
2745
+ }
2746
+ &:focus-visible {
2747
+ outline-offset: 2px;
2748
+ }
2749
+ &:focus-visible {
2750
+ outline-color: var(--color-primary);
2751
+ }
2752
+ list-style: none;
2753
+ }
2754
+ .sidebar-collapsible-trigger::-webkit-details-marker {
2755
+ display: none;
2756
+ }
2757
+ .sidebar-collapsible-trigger::after {
2758
+ content: "";
2759
+ margin-left: auto;
2760
+ width: 0.375rem;
2761
+ height: 0.375rem;
2762
+ border-right: 2px solid currentColor;
2763
+ border-bottom: 2px solid currentColor;
2764
+ color: var(--color-text-muted);
2765
+ transform: rotate(-45deg);
2766
+ transition: transform 150ms ease;
2767
+ flex-shrink: 0;
2768
+ }
2769
+ .sidebar-collapsible[open] > .sidebar-collapsible-trigger::after {
2770
+ transform: rotate(45deg);
2771
+ }
2772
+ .sidebar-collapsible-panel {
2773
+ margin-top: calc(var(--spacing) * 0.5);
2774
+ display: flex;
2775
+ flex-direction: column;
2776
+ gap: calc(var(--spacing) * 0.5);
2777
+ padding-left: calc(var(--spacing) * 4);
2778
+ overflow: hidden;
2779
+ }
2780
+ .sidebar-collapsible::details-content {
2781
+ opacity: 0;
2782
+ height: 0;
2783
+ overflow: clip;
2784
+ transition: opacity 150ms ease, height 150ms ease, content-visibility 150ms;
2785
+ transition-behavior: allow-discrete;
2786
+ }
2787
+ .sidebar-collapsible[open]::details-content {
2788
+ opacity: 1;
2789
+ height: auto;
2790
+ }
2791
+ .sidebar-subitem {
2792
+ display: flex;
2793
+ cursor: pointer;
2794
+ align-items: center;
2795
+ gap: calc(var(--spacing) * 2);
2796
+ border-radius: var(--radius-md);
2797
+ background-color: transparent;
2798
+ padding-inline: calc(var(--spacing) * 2);
2799
+ padding-block: calc(var(--spacing) * 1);
2800
+ font-size: var(--text-sm);
2801
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2802
+ --tw-leading: 1;
2803
+ line-height: 1;
2804
+ color: var(--color-text);
2805
+ text-decoration-line: none;
2806
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
2807
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2808
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2809
+ --tw-duration: 150ms;
2810
+ transition-duration: 150ms;
2811
+ -webkit-user-select: none;
2812
+ user-select: none;
2813
+ &:hover {
2814
+ @media (hover: hover) {
2815
+ background-color: var(--color-surface-strong);
2816
+ }
2817
+ }
2818
+ &:focus-visible {
2819
+ outline-style: var(--tw-outline-style);
2820
+ outline-width: 2px;
2821
+ }
2822
+ &:focus-visible {
2823
+ outline-offset: 2px;
2824
+ }
2825
+ &:focus-visible {
2826
+ outline-color: var(--color-primary);
2827
+ }
2828
+ }
2829
+ .sidebar-subitem[aria-current="page"], .sidebar-subitem[data-active] {
2830
+ background-color: var(--color-primary-muted);
2831
+ --tw-font-weight: var(--font-weight-medium);
2832
+ font-weight: var(--font-weight-medium);
2833
+ color: var(--color-primary);
2834
+ }
2835
+ .sidebar-footer {
2836
+ display: flex;
2837
+ flex-direction: column;
2838
+ gap: calc(var(--spacing) * 1);
2839
+ border-top-style: var(--tw-border-style);
2840
+ border-top-width: 1px;
2841
+ border-color: var(--color-border);
2842
+ padding-inline: calc(var(--spacing) * 2);
2843
+ padding-block: calc(var(--spacing) * 2);
2844
+ }
2845
+ .sidebar-collapse-toggle {
2846
+ position: relative;
2847
+ display: inline-flex;
2848
+ width: calc(var(--spacing) * 7);
2849
+ height: calc(var(--spacing) * 7);
2850
+ cursor: pointer;
2851
+ align-items: center;
2852
+ justify-content: center;
2853
+ border-radius: var(--radius-md);
2854
+ background-color: transparent;
2855
+ color: var(--color-text-muted);
2856
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
2857
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2858
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2859
+ --tw-duration: 150ms;
2860
+ transition-duration: 150ms;
2861
+ -webkit-user-select: none;
2862
+ user-select: none;
2863
+ &:hover {
2864
+ @media (hover: hover) {
2865
+ background-color: var(--color-surface-strong);
2866
+ }
2867
+ }
2868
+ &:hover {
2869
+ @media (hover: hover) {
2870
+ color: var(--color-text);
2871
+ }
2872
+ }
571
2873
  }
572
- .field-label {
2874
+ .sidebar-collapse-toggle:has(.sidebar-toggle:focus-visible) {
2875
+ outline-style: var(--tw-outline-style);
2876
+ outline-width: 2px;
2877
+ outline-offset: 2px;
2878
+ outline-color: var(--color-primary);
2879
+ }
2880
+ .sidebar-collapse-toggle::before {
2881
+ content: "";
2882
+ width: 0.5rem;
2883
+ height: 0.5rem;
2884
+ border-left: 2px solid currentColor;
2885
+ border-bottom: 2px solid currentColor;
2886
+ transform: rotate(45deg);
2887
+ transition: transform 150ms ease;
2888
+ }
2889
+ .sidebar:has(.sidebar-toggle:checked) .sidebar-collapse-toggle::before {
2890
+ transform: rotate(-135deg);
2891
+ }
2892
+ .sidebar-drawer-backdrop {
2893
+ position: fixed;
2894
+ inset: calc(var(--spacing) * 0);
2895
+ z-index: 40;
2896
+ background-color: color-mix(in srgb, #100f0f 40%, transparent);
2897
+ @supports (color: color-mix(in lab, red, red)) {
2898
+ background-color: color-mix(in oklab, var(--color-black) 40%, transparent);
2899
+ }
2900
+ transition-property: opacity;
2901
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2902
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2903
+ --tw-duration: 150ms;
2904
+ transition-duration: 150ms;
2905
+ }
2906
+ .sidebar-drawer-backdrop[data-starting-style], .sidebar-drawer-backdrop[data-ending-style] {
2907
+ opacity: 0%;
2908
+ }
2909
+ .sidebar-drawer {
2910
+ position: fixed;
2911
+ inset-block: calc(var(--spacing) * 0);
2912
+ left: calc(var(--spacing) * 0);
2913
+ z-index: 50;
2914
+ display: flex;
2915
+ flex-direction: column;
2916
+ border-right-style: var(--tw-border-style);
2917
+ border-right-width: 1px;
2918
+ border-color: var(--color-border);
2919
+ background-color: var(--color-surface-muted);
2920
+ color: var(--color-text);
2921
+ transition-property: transform, translate, scale, rotate;
2922
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2923
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2924
+ --tw-duration: 150ms;
2925
+ transition-duration: 150ms;
2926
+ width: min(var(--app-shell-sidebar-w, 240px), 80vw);
2927
+ }
2928
+ .sidebar-drawer[data-starting-style], .sidebar-drawer[data-ending-style] {
2929
+ --tw-translate-x: -100%;
2930
+ translate: var(--tw-translate-x) var(--tw-translate-y);
2931
+ }
2932
+ }
2933
+ @layer components {
2934
+ .tabs {
2935
+ display: flex;
2936
+ flex-direction: column;
2937
+ }
2938
+ .tabs .tab-list {
2939
+ display: inline-flex;
2940
+ align-items: center;
2941
+ gap: calc(var(--spacing) * 1);
2942
+ border-bottom-style: var(--tw-border-style);
2943
+ border-bottom-width: 1px;
2944
+ border-color: var(--color-border);
2945
+ position: relative;
2946
+ }
2947
+ .tabs .tab {
2948
+ display: inline-flex;
2949
+ height: calc(var(--spacing) * 9);
2950
+ cursor: pointer;
2951
+ align-items: center;
2952
+ gap: calc(var(--spacing) * 1.5);
2953
+ border-style: var(--tw-border-style);
2954
+ border-width: 0px;
2955
+ background-color: transparent;
2956
+ padding-inline: calc(var(--spacing) * 3);
573
2957
  font-size: var(--text-sm);
574
2958
  line-height: var(--tw-leading, var(--text-sm--line-height));
575
2959
  --tw-leading: 1;
576
2960
  line-height: 1;
577
2961
  --tw-font-weight: var(--font-weight-medium);
578
2962
  font-weight: var(--font-weight-medium);
2963
+ color: var(--color-text-muted);
2964
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
2965
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2966
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2967
+ --tw-duration: 150ms;
2968
+ transition-duration: 150ms;
2969
+ -webkit-user-select: none;
2970
+ user-select: none;
2971
+ &:hover {
2972
+ @media (hover: hover) {
2973
+ color: var(--color-text);
2974
+ }
2975
+ }
2976
+ &:focus-visible {
2977
+ outline-style: var(--tw-outline-style);
2978
+ outline-width: 2px;
2979
+ }
2980
+ &:focus-visible {
2981
+ outline-offset: 2px;
2982
+ }
2983
+ &:focus-visible {
2984
+ outline-color: var(--color-primary);
2985
+ }
2986
+ &:disabled {
2987
+ cursor: not-allowed;
2988
+ }
2989
+ &:disabled {
2990
+ opacity: 50%;
2991
+ }
2992
+ }
2993
+ .tabs .tab[data-selected], .tabs .tab[aria-selected="true"] {
579
2994
  color: var(--color-text);
580
2995
  }
581
- .field-description {
582
- font-size: var(--text-xs);
583
- line-height: var(--tw-leading, var(--text-xs--line-height));
584
- --tw-leading: var(--leading-relaxed);
585
- line-height: var(--leading-relaxed);
586
- color: var(--color-text-muted);
2996
+ .tabs .tab-input {
2997
+ position: absolute;
2998
+ width: 1px;
2999
+ height: 1px;
3000
+ margin: 0;
3001
+ padding: 0;
3002
+ border: 0;
3003
+ opacity: 0;
3004
+ pointer-events: none;
587
3005
  }
588
- .field-error {
3006
+ .tabs .tab-input:checked + .tab {
3007
+ color: var(--color-text);
3008
+ }
3009
+ .tabs .tab-input:focus-visible + .tab {
3010
+ outline-style: var(--tw-outline-style);
3011
+ outline-width: 2px;
3012
+ outline-offset: 2px;
3013
+ outline-color: var(--color-primary);
3014
+ }
3015
+ .tabs-bordered .tab, .tabs:not(.tabs-boxed) .tab {
3016
+ position: relative;
3017
+ }
3018
+ .tabs-bordered .tab::after, .tabs:not(.tabs-boxed) .tab::after {
3019
+ content: "";
3020
+ position: absolute;
3021
+ inset-inline: 0;
3022
+ inset-block-end: -1px;
3023
+ block-size: 2px;
3024
+ background-color: var(--color-primary);
3025
+ transform: scaleX(0);
3026
+ transition: transform 150ms ease;
3027
+ }
3028
+ .tabs-bordered .tab[data-selected]::after, .tabs-bordered .tab[aria-selected="true"]::after, .tabs-bordered .tab-input:checked + .tab::after, .tabs:not(.tabs-boxed) .tab[data-selected]::after, .tabs:not(.tabs-boxed) .tab[aria-selected="true"]::after, .tabs:not(.tabs-boxed) .tab-input:checked + .tab::after {
3029
+ transform: scaleX(1);
3030
+ }
3031
+ .tabs-boxed .tab-list {
3032
+ gap: calc(var(--spacing) * 0);
3033
+ border-radius: var(--radius-md);
3034
+ border-style: var(--tw-border-style);
3035
+ border-width: 1px;
3036
+ border-color: var(--color-border);
3037
+ background-color: var(--color-surface-muted);
3038
+ padding: calc(var(--spacing) * 0.5);
3039
+ }
3040
+ .tabs-boxed .tab {
3041
+ border-radius: 0.25rem;
3042
+ }
3043
+ .tabs-boxed .tab[data-selected], .tabs-boxed .tab[aria-selected="true"], .tabs-boxed .tab-input:checked + .tab {
3044
+ background-color: var(--color-surface);
3045
+ color: var(--color-text);
3046
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
3047
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3048
+ }
3049
+ .tabs-full-width:not([data-orientation="vertical"]) .tab-list {
3050
+ display: flex;
3051
+ width: 100%;
3052
+ }
3053
+ .tabs-full-width:not([data-orientation="vertical"]) .tab {
3054
+ flex: 1;
3055
+ justify-content: center;
3056
+ }
3057
+ .tabs-sm .tab {
3058
+ height: calc(var(--spacing) * 7);
3059
+ padding-inline: calc(var(--spacing) * 2);
589
3060
  font-size: var(--text-xs);
590
3061
  line-height: var(--tw-leading, var(--text-xs--line-height));
591
- --tw-leading: var(--leading-relaxed);
592
- line-height: var(--leading-relaxed);
593
- color: var(--color-danger);
594
3062
  }
595
- .field[data-invalid] .input {
596
- border-color: var(--color-danger);
3063
+ .tabs-lg .tab {
3064
+ height: calc(var(--spacing) * 11);
3065
+ padding-inline: calc(var(--spacing) * 4);
3066
+ font-size: var(--text-base);
3067
+ line-height: var(--tw-leading, var(--text-base--line-height));
3068
+ }
3069
+ .tabs .tab-panel {
3070
+ padding-top: calc(var(--spacing) * 3);
3071
+ --tw-outline-style: none;
3072
+ outline-style: none;
3073
+ }
3074
+ .tabs .tab-panel {
3075
+ display: none;
3076
+ }
3077
+ .tabs:has(.tab-input[value="1"]:checked) .tab-panel[data-value="1"], .tabs:has(.tab-input[value="2"]:checked) .tab-panel[data-value="2"], .tabs:has(.tab-input[value="3"]:checked) .tab-panel[data-value="3"], .tabs:has(.tab-input[value="4"]:checked) .tab-panel[data-value="4"], .tabs:has(.tab-input[value="5"]:checked) .tab-panel[data-value="5"], .tabs:has(.tab-input[value="6"]:checked) .tab-panel[data-value="6"] {
3078
+ display: block;
3079
+ }
3080
+ .tabs .tab-panel:not([hidden]):not([data-value]) {
3081
+ display: block;
3082
+ }
3083
+ .tabs[data-orientation="vertical"] {
3084
+ flex-direction: row;
3085
+ gap: calc(var(--spacing) * 3);
3086
+ }
3087
+ .tabs[data-orientation="vertical"] .tab-list {
3088
+ flex-direction: column;
3089
+ align-items: stretch;
3090
+ border-right-style: var(--tw-border-style);
3091
+ border-right-width: 1px;
3092
+ border-bottom-style: var(--tw-border-style);
3093
+ border-bottom-width: 0px;
3094
+ border-color: var(--color-border);
3095
+ }
3096
+ .tabs[data-orientation="vertical"] .tab {
3097
+ width: 100%;
3098
+ justify-content: flex-start;
3099
+ }
3100
+ .tabs[data-orientation="vertical"].tabs-bordered .tab::after, .tabs[data-orientation="vertical"]:not(.tabs-boxed) .tab::after {
3101
+ inset-inline: auto;
3102
+ inset-inline-end: -1px;
3103
+ inset-block: 0;
3104
+ inline-size: 2px;
3105
+ block-size: auto;
3106
+ transform: scaleY(0);
3107
+ }
3108
+ .tabs[data-orientation="vertical"].tabs-bordered .tab[data-selected]::after, .tabs[data-orientation="vertical"].tabs-bordered .tab[aria-selected="true"]::after, .tabs[data-orientation="vertical"]:not(.tabs-boxed) .tab[data-selected]::after, .tabs[data-orientation="vertical"]:not(.tabs-boxed) .tab[aria-selected="true"]::after {
3109
+ transform: scaleY(1);
597
3110
  }
598
3111
  }
599
- @property --tw-border-style {
600
- syntax: "*";
601
- inherits: false;
602
- initial-value: solid;
603
- }
604
- @property --tw-leading {
605
- syntax: "*";
606
- inherits: false;
607
- }
608
- @property --tw-font-weight {
609
- syntax: "*";
610
- inherits: false;
611
- }
612
- @property --tw-duration {
613
- syntax: "*";
614
- inherits: false;
615
- }
616
- @property --tw-outline-style {
617
- syntax: "*";
618
- inherits: false;
619
- initial-value: solid;
3112
+ @layer components {
3113
+ .table {
3114
+ width: 100%;
3115
+ border-collapse: collapse;
3116
+ font-size: var(--text-sm);
3117
+ line-height: var(--tw-leading, var(--text-sm--line-height));
3118
+ color: var(--color-text);
3119
+ }
3120
+ .table :where(th, td), .table-cell, .table-header-cell {
3121
+ border-bottom-style: var(--tw-border-style);
3122
+ border-bottom-width: 1px;
3123
+ border-color: var(--color-border);
3124
+ padding-inline: calc(var(--spacing) * 3);
3125
+ padding-block: calc(var(--spacing) * 1.5);
3126
+ text-align: left;
3127
+ vertical-align: middle;
3128
+ }
3129
+ .table :where(thead th), .table-header-cell {
3130
+ border-bottom-color: var(--color-border-strong);
3131
+ background-color: var(--color-surface-muted);
3132
+ --tw-font-weight: var(--font-weight-medium);
3133
+ font-weight: var(--font-weight-medium);
3134
+ white-space: nowrap;
3135
+ color: var(--color-text-muted);
3136
+ }
3137
+ .table > :last-child > tr:last-child :where(td), .table > :last-child > tr:last-child .table-cell {
3138
+ border-bottom-style: var(--tw-border-style);
3139
+ border-bottom-width: 0px;
3140
+ }
3141
+ .table :where(th, td)[data-align="right"] {
3142
+ text-align: right;
3143
+ }
3144
+ .table :where(th, td)[data-align="center"] {
3145
+ text-align: center;
3146
+ }
3147
+ .table-cell-numeric {
3148
+ text-align: right;
3149
+ --tw-numeric-spacing: tabular-nums;
3150
+ font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
3151
+ }
3152
+ .table-cell-gutter {
3153
+ width: calc(var(--spacing) * 6);
3154
+ padding-inline: calc(var(--spacing) * 0);
3155
+ text-align: center;
3156
+ color: var(--color-text-muted);
3157
+ }
3158
+ .table-cell-gutter > :is(i, svg) {
3159
+ font-size: 1rem;
3160
+ line-height: 1;
3161
+ vertical-align: middle;
3162
+ }
3163
+ .table-striped tbody tr:nth-child(even) :where(td) {
3164
+ background-color: var(--color-surface-muted);
3165
+ }
3166
+ .table-bordered {
3167
+ border-style: var(--tw-border-style);
3168
+ border-width: 1px;
3169
+ border-color: var(--color-border);
3170
+ }
3171
+ .table-bordered :where(th, td) {
3172
+ border-style: var(--tw-border-style);
3173
+ border-width: 1px;
3174
+ border-color: var(--color-border);
3175
+ }
3176
+ .table-relaxed :where(th, td) {
3177
+ padding-inline: calc(var(--spacing) * 4);
3178
+ padding-block: calc(var(--spacing) * 3);
3179
+ }
3180
+ .table-sticky thead :where(th) {
3181
+ position: sticky;
3182
+ top: calc(var(--spacing) * 0);
3183
+ z-index: 10;
3184
+ background-color: var(--color-surface-muted);
3185
+ }
3186
+ .table tbody tr {
3187
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
3188
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3189
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3190
+ --tw-duration: 75ms;
3191
+ transition-duration: 75ms;
3192
+ }
3193
+ .table tbody tr:hover :where(td) {
3194
+ background-color: var(--color-surface-muted);
3195
+ }
3196
+ .table tbody tr:has(input[type="checkbox"]:checked), .table tbody tr:has(.checkbox[data-checked]), .table tbody tr[data-selected] {
3197
+ background-color: var(--color-primary-muted);
3198
+ }
3199
+ .table tbody tr:has(input[type="checkbox"]:checked):hover :where(td), .table tbody tr:has(.checkbox[data-checked]):hover :where(td), .table tbody tr[data-selected]:hover :where(td) {
3200
+ background-color: var(--color-primary-muted);
3201
+ }
3202
+ .table-row-link {
3203
+ position: relative;
3204
+ cursor: pointer;
3205
+ }
3206
+ .table-row-link:hover :where(td) {
3207
+ background-color: var(--color-surface-muted);
3208
+ }
3209
+ .table-row-link a:first-of-type::after {
3210
+ content: "";
3211
+ position: absolute;
3212
+ inset: calc(var(--spacing) * 0);
3213
+ }
3214
+ .table-row-link:focus-within {
3215
+ outline-style: var(--tw-outline-style);
3216
+ outline-width: 2px;
3217
+ outline-offset: calc(2px * -1);
3218
+ outline-color: var(--color-primary);
3219
+ }
620
3220
  }
621
3221
  @property --tw-shadow {
622
3222
  syntax: "*";
@@ -683,14 +3283,70 @@
683
3283
  inherits: false;
684
3284
  initial-value: 0 0 #0000;
685
3285
  }
3286
+ @property --tw-leading {
3287
+ syntax: "*";
3288
+ inherits: false;
3289
+ }
3290
+ @property --tw-font-weight {
3291
+ syntax: "*";
3292
+ inherits: false;
3293
+ }
3294
+ @property --tw-border-style {
3295
+ syntax: "*";
3296
+ inherits: false;
3297
+ initial-value: solid;
3298
+ }
3299
+ @property --tw-outline-style {
3300
+ syntax: "*";
3301
+ inherits: false;
3302
+ initial-value: solid;
3303
+ }
3304
+ @property --tw-duration {
3305
+ syntax: "*";
3306
+ inherits: false;
3307
+ }
3308
+ @property --tw-translate-x {
3309
+ syntax: "*";
3310
+ inherits: false;
3311
+ initial-value: 0;
3312
+ }
3313
+ @property --tw-translate-y {
3314
+ syntax: "*";
3315
+ inherits: false;
3316
+ initial-value: 0;
3317
+ }
3318
+ @property --tw-translate-z {
3319
+ syntax: "*";
3320
+ inherits: false;
3321
+ initial-value: 0;
3322
+ }
3323
+ @property --tw-tracking {
3324
+ syntax: "*";
3325
+ inherits: false;
3326
+ }
3327
+ @property --tw-ordinal {
3328
+ syntax: "*";
3329
+ inherits: false;
3330
+ }
3331
+ @property --tw-slashed-zero {
3332
+ syntax: "*";
3333
+ inherits: false;
3334
+ }
3335
+ @property --tw-numeric-figure {
3336
+ syntax: "*";
3337
+ inherits: false;
3338
+ }
3339
+ @property --tw-numeric-spacing {
3340
+ syntax: "*";
3341
+ inherits: false;
3342
+ }
3343
+ @property --tw-numeric-fraction {
3344
+ syntax: "*";
3345
+ inherits: false;
3346
+ }
686
3347
  @layer properties {
687
3348
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
688
3349
  *, ::before, ::after, ::backdrop {
689
- --tw-border-style: solid;
690
- --tw-leading: initial;
691
- --tw-font-weight: initial;
692
- --tw-duration: initial;
693
- --tw-outline-style: solid;
694
3350
  --tw-shadow: 0 0 #0000;
695
3351
  --tw-shadow-color: initial;
696
3352
  --tw-shadow-alpha: 100%;
@@ -705,6 +3361,20 @@
705
3361
  --tw-ring-offset-width: 0px;
706
3362
  --tw-ring-offset-color: #fff;
707
3363
  --tw-ring-offset-shadow: 0 0 #0000;
3364
+ --tw-leading: initial;
3365
+ --tw-font-weight: initial;
3366
+ --tw-border-style: solid;
3367
+ --tw-outline-style: solid;
3368
+ --tw-duration: initial;
3369
+ --tw-translate-x: 0;
3370
+ --tw-translate-y: 0;
3371
+ --tw-translate-z: 0;
3372
+ --tw-tracking: initial;
3373
+ --tw-ordinal: initial;
3374
+ --tw-slashed-zero: initial;
3375
+ --tw-numeric-figure: initial;
3376
+ --tw-numeric-spacing: initial;
3377
+ --tw-numeric-fraction: initial;
708
3378
  }
709
3379
  }
710
3380
  }