@reinvented/design 0.1.0 → 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 (47) hide show
  1. package/DESIGN_GUIDE.md +148 -0
  2. package/README.md +39 -162
  3. package/docs/components/index.md +50 -0
  4. package/docs/conventions.md +74 -0
  5. package/docs/layouts/index.md +32 -0
  6. package/docs/patterns/index.md +39 -0
  7. package/docs/rules.md +43 -0
  8. package/docs/visual-polish.md +141 -0
  9. package/package.json +40 -61
  10. package/src/components/ui/avatar/Avatar.vue +14 -0
  11. package/src/components/ui/avatar/index.ts +1 -0
  12. package/src/components/ui/badge/Badge.vue +27 -0
  13. package/src/components/ui/badge/index.ts +1 -0
  14. package/src/components/ui/button/Button.vue +66 -0
  15. package/src/components/ui/button/index.ts +1 -0
  16. package/src/components/ui/card/Card.vue +13 -0
  17. package/src/components/ui/card/CardContent.vue +7 -0
  18. package/src/components/ui/card/CardDescription.vue +7 -0
  19. package/src/components/ui/card/CardFooter.vue +7 -0
  20. package/src/components/ui/card/CardHeader.vue +9 -0
  21. package/src/components/ui/card/CardTitle.vue +7 -0
  22. package/src/components/ui/card/index.ts +6 -0
  23. package/src/components/ui/input/Input.vue +23 -0
  24. package/src/components/ui/input/index.ts +1 -0
  25. package/src/components/ui/lib/utils.ts +2 -0
  26. package/src/components/ui/scroll-area/ScrollArea.vue +13 -0
  27. package/src/components/ui/scroll-area/index.ts +1 -0
  28. package/src/components/ui/separator/Separator.vue +16 -0
  29. package/src/components/ui/separator/index.ts +1 -0
  30. package/src/components/ui/skeleton/Skeleton.vue +9 -0
  31. package/src/components/ui/skeleton/index.ts +1 -0
  32. package/src/env.d.ts +7 -0
  33. package/src/index.ts +209 -0
  34. package/src/lib/utils.ts +7 -0
  35. package/src/patterns/DetailView.vue +46 -0
  36. package/src/patterns/EmptyState.vue +27 -0
  37. package/src/patterns/FormView.vue +34 -0
  38. package/src/patterns/ListView.vue +45 -0
  39. package/src/styles/index.css +4 -0
  40. package/src/styles/tokens.css +144 -0
  41. package/tailwind.config.js +108 -0
  42. package/tsconfig.json +7 -0
  43. package/dist/index.css +0 -1890
  44. package/dist/index.d.ts +0 -406
  45. package/dist/index.js +0 -1721
  46. package/dist/index.js.map +0 -1
  47. package/tailwind.config.ts +0 -174
package/dist/index.css DELETED
@@ -1,1890 +0,0 @@
1
- /* ═══════════════════════════════════════════════
2
- @reinvented/design — Design Tokens
3
- Linear-inspired, dark-first, premium aesthetic
4
- ═══════════════════════════════════════════════ */
5
-
6
- :root {
7
- /* ── Color: Background Layers ── */
8
- --bg-base: #0a0a0b;
9
- --bg-surface: #111113;
10
- --bg-elevated: #191a1f;
11
- --bg-overlay: rgba(0, 0, 0, 0.72);
12
-
13
- /* ── Color: Foreground ── */
14
- --fg-primary: #ededef;
15
- --fg-secondary: #a1a1a6;
16
- --fg-muted: #6e6e76;
17
- --fg-disabled: #3c3c43;
18
-
19
- /* ── Color: Accent (cool violet-blue, used sparingly) ── */
20
- --accent: #5b6af0;
21
- --accent-hover: #6e7bf7;
22
- --accent-muted: rgba(91, 106, 240, 0.15);
23
- --accent-foreground: #ffffff;
24
-
25
- /* ── Color: Semantic ── */
26
- --success: #45d483;
27
- --success-muted: rgba(69, 212, 131, 0.15);
28
- --warning: #f0b429;
29
- --warning-muted: rgba(240, 180, 41, 0.15);
30
- --error: #ef4444;
31
- --error-muted: rgba(239, 68, 68, 0.15);
32
- --info: #38bdf8;
33
- --info-muted: rgba(56, 189, 248, 0.15);
34
-
35
- /* ── Color: Border ── */
36
- --border-default: rgba(255, 255, 255, 0.08);
37
- --border-subtle: rgba(255, 255, 255, 0.04);
38
- --border-strong: rgba(255, 255, 255, 0.16);
39
-
40
- /* ── Typography ── */
41
- --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
42
- sans-serif;
43
- --font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;
44
-
45
- --text-xs: 0.6875rem; /* 11px */
46
- --text-sm: 0.8125rem; /* 13px */
47
- --text-base: 0.875rem; /* 14px */
48
- --text-lg: 1rem; /* 16px */
49
- --text-xl: 1.125rem; /* 18px */
50
- --text-2xl: 1.375rem; /* 22px */
51
- --text-3xl: 1.75rem; /* 28px */
52
- --text-4xl: 2.25rem; /* 36px */
53
-
54
- --font-normal: 400;
55
- --font-medium: 500;
56
- --font-semibold: 600;
57
- --font-bold: 700;
58
-
59
- --leading-tight: 1.2;
60
- --leading-normal: 1.5;
61
- --leading-relaxed: 1.625;
62
-
63
- --tracking-tight: -0.02em;
64
- --tracking-normal: 0em;
65
- --tracking-wide: 0.02em;
66
-
67
- /* ── Spacing (4px grid) ── */
68
- --space-0: 0px;
69
- --space-px: 1px;
70
- --space-0-5: 2px;
71
- --space-1: 4px;
72
- --space-1-5: 6px;
73
- --space-2: 8px;
74
- --space-3: 12px;
75
- --space-4: 16px;
76
- --space-5: 20px;
77
- --space-6: 24px;
78
- --space-8: 32px;
79
- --space-10: 40px;
80
- --space-12: 48px;
81
- --space-16: 64px;
82
- --space-20: 80px;
83
- --space-24: 96px;
84
-
85
- /* ── Border Radius ── */
86
- --radius-sm: 4px;
87
- --radius-md: 6px;
88
- --radius-lg: 8px;
89
- --radius-xl: 12px;
90
- --radius-full: 9999px;
91
-
92
- /* ── Shadows (subtle in dark mode) ── */
93
- --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
94
- --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.4);
95
- --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.5);
96
- --shadow-xl: 0 16px 48px rgba(0, 0, 0, 0.6);
97
-
98
- /* ── Transitions ── */
99
- --ease-default: cubic-bezier(0.25, 0.1, 0.25, 1);
100
- --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
101
- --duration-fast: 120ms;
102
- --duration-normal: 200ms;
103
- --duration-slow: 350ms;
104
-
105
- /* ── Z-Index Scale ── */
106
- --z-base: 0;
107
- --z-raised: 10;
108
- --z-dropdown: 50;
109
- --z-sticky: 100;
110
- --z-overlay: 200;
111
- --z-modal: 300;
112
- --z-toast: 400;
113
- --z-tooltip: 500;
114
- }
115
-
116
- /* ── Light Mode ── */
117
-
118
- [data-theme="light"] {
119
- --bg-base: #ffffff;
120
- --bg-surface: #f8f8fa;
121
- --bg-elevated: #f0f0f3;
122
- --bg-overlay: rgba(255, 255, 255, 0.85);
123
-
124
- --fg-primary: #111113;
125
- --fg-secondary: #5c5c66;
126
- --fg-muted: #9898a3;
127
- --fg-disabled: #c4c4cc;
128
-
129
- --accent: #4f5bd5;
130
- --accent-hover: #3d49c2;
131
- --accent-muted: rgba(79, 91, 213, 0.1);
132
- --accent-foreground: #ffffff;
133
-
134
- --border-default: rgba(0, 0, 0, 0.08);
135
- --border-subtle: rgba(0, 0, 0, 0.04);
136
- --border-strong: rgba(0, 0, 0, 0.15);
137
-
138
- --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
139
- --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.08);
140
- --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);
141
- --shadow-xl: 0 16px 48px rgba(0, 0, 0, 0.16);
142
- }
143
-
144
- *, ::before, ::after {
145
- --tw-border-spacing-x: 0;
146
- --tw-border-spacing-y: 0;
147
- --tw-translate-x: 0;
148
- --tw-translate-y: 0;
149
- --tw-rotate: 0;
150
- --tw-skew-x: 0;
151
- --tw-skew-y: 0;
152
- --tw-scale-x: 1;
153
- --tw-scale-y: 1;
154
- --tw-pan-x: ;
155
- --tw-pan-y: ;
156
- --tw-pinch-zoom: ;
157
- --tw-scroll-snap-strictness: proximity;
158
- --tw-gradient-from-position: ;
159
- --tw-gradient-via-position: ;
160
- --tw-gradient-to-position: ;
161
- --tw-ordinal: ;
162
- --tw-slashed-zero: ;
163
- --tw-numeric-figure: ;
164
- --tw-numeric-spacing: ;
165
- --tw-numeric-fraction: ;
166
- --tw-ring-inset: ;
167
- --tw-ring-offset-width: 0px;
168
- --tw-ring-offset-color: #fff;
169
- --tw-ring-color: rgb(59 130 246 / 0.5);
170
- --tw-ring-offset-shadow: 0 0 #0000;
171
- --tw-ring-shadow: 0 0 #0000;
172
- --tw-shadow: 0 0 #0000;
173
- --tw-shadow-colored: 0 0 #0000;
174
- --tw-blur: ;
175
- --tw-brightness: ;
176
- --tw-contrast: ;
177
- --tw-grayscale: ;
178
- --tw-hue-rotate: ;
179
- --tw-invert: ;
180
- --tw-saturate: ;
181
- --tw-sepia: ;
182
- --tw-drop-shadow: ;
183
- --tw-backdrop-blur: ;
184
- --tw-backdrop-brightness: ;
185
- --tw-backdrop-contrast: ;
186
- --tw-backdrop-grayscale: ;
187
- --tw-backdrop-hue-rotate: ;
188
- --tw-backdrop-invert: ;
189
- --tw-backdrop-opacity: ;
190
- --tw-backdrop-saturate: ;
191
- --tw-backdrop-sepia: ;
192
- --tw-contain-size: ;
193
- --tw-contain-layout: ;
194
- --tw-contain-paint: ;
195
- --tw-contain-style: ;
196
- }
197
-
198
- ::backdrop {
199
- --tw-border-spacing-x: 0;
200
- --tw-border-spacing-y: 0;
201
- --tw-translate-x: 0;
202
- --tw-translate-y: 0;
203
- --tw-rotate: 0;
204
- --tw-skew-x: 0;
205
- --tw-skew-y: 0;
206
- --tw-scale-x: 1;
207
- --tw-scale-y: 1;
208
- --tw-pan-x: ;
209
- --tw-pan-y: ;
210
- --tw-pinch-zoom: ;
211
- --tw-scroll-snap-strictness: proximity;
212
- --tw-gradient-from-position: ;
213
- --tw-gradient-via-position: ;
214
- --tw-gradient-to-position: ;
215
- --tw-ordinal: ;
216
- --tw-slashed-zero: ;
217
- --tw-numeric-figure: ;
218
- --tw-numeric-spacing: ;
219
- --tw-numeric-fraction: ;
220
- --tw-ring-inset: ;
221
- --tw-ring-offset-width: 0px;
222
- --tw-ring-offset-color: #fff;
223
- --tw-ring-color: rgb(59 130 246 / 0.5);
224
- --tw-ring-offset-shadow: 0 0 #0000;
225
- --tw-ring-shadow: 0 0 #0000;
226
- --tw-shadow: 0 0 #0000;
227
- --tw-shadow-colored: 0 0 #0000;
228
- --tw-blur: ;
229
- --tw-brightness: ;
230
- --tw-contrast: ;
231
- --tw-grayscale: ;
232
- --tw-hue-rotate: ;
233
- --tw-invert: ;
234
- --tw-saturate: ;
235
- --tw-sepia: ;
236
- --tw-drop-shadow: ;
237
- --tw-backdrop-blur: ;
238
- --tw-backdrop-brightness: ;
239
- --tw-backdrop-contrast: ;
240
- --tw-backdrop-grayscale: ;
241
- --tw-backdrop-hue-rotate: ;
242
- --tw-backdrop-invert: ;
243
- --tw-backdrop-opacity: ;
244
- --tw-backdrop-saturate: ;
245
- --tw-backdrop-sepia: ;
246
- --tw-contain-size: ;
247
- --tw-contain-layout: ;
248
- --tw-contain-paint: ;
249
- --tw-contain-style: ;
250
- }
251
-
252
- /* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */
253
-
254
- /*
255
- 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
256
- 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
257
- */
258
-
259
- *,
260
- ::before,
261
- ::after {
262
- box-sizing: border-box; /* 1 */
263
- border-width: 0; /* 2 */
264
- border-style: solid; /* 2 */
265
- border-color: #e5e7eb; /* 2 */
266
- }
267
-
268
- ::before,
269
- ::after {
270
- --tw-content: '';
271
- }
272
-
273
- /*
274
- 1. Use a consistent sensible line-height in all browsers.
275
- 2. Prevent adjustments of font size after orientation changes in iOS.
276
- 3. Use a more readable tab size.
277
- 4. Use the user's configured `sans` font-family by default.
278
- 5. Use the user's configured `sans` font-feature-settings by default.
279
- 6. Use the user's configured `sans` font-variation-settings by default.
280
- 7. Disable tap highlights on iOS
281
- */
282
-
283
- html,
284
- :host {
285
- line-height: 1.5; /* 1 */
286
- -webkit-text-size-adjust: 100%; /* 2 */
287
- -moz-tab-size: 4; /* 3 */
288
- -o-tab-size: 4;
289
- tab-size: 4; /* 3 */
290
- font-family: var(--font-sans); /* 4 */
291
- font-feature-settings: normal; /* 5 */
292
- font-variation-settings: normal; /* 6 */
293
- -webkit-tap-highlight-color: transparent; /* 7 */
294
- }
295
-
296
- /*
297
- 1. Remove the margin in all browsers.
298
- 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
299
- */
300
-
301
- body {
302
- margin: 0; /* 1 */
303
- line-height: inherit; /* 2 */
304
- }
305
-
306
- /*
307
- 1. Add the correct height in Firefox.
308
- 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
309
- 3. Ensure horizontal rules are visible by default.
310
- */
311
-
312
- hr {
313
- height: 0; /* 1 */
314
- color: inherit; /* 2 */
315
- border-top-width: 1px; /* 3 */
316
- }
317
-
318
- /*
319
- Add the correct text decoration in Chrome, Edge, and Safari.
320
- */
321
-
322
- abbr:where([title]) {
323
- -webkit-text-decoration: underline dotted;
324
- text-decoration: underline dotted;
325
- }
326
-
327
- /*
328
- Remove the default font size and weight for headings.
329
- */
330
-
331
- h1,
332
- h2,
333
- h3,
334
- h4,
335
- h5,
336
- h6 {
337
- font-size: inherit;
338
- font-weight: inherit;
339
- }
340
-
341
- /*
342
- Reset links to optimize for opt-in styling instead of opt-out.
343
- */
344
-
345
- a {
346
- color: inherit;
347
- text-decoration: inherit;
348
- }
349
-
350
- /*
351
- Add the correct font weight in Edge and Safari.
352
- */
353
-
354
- b,
355
- strong {
356
- font-weight: bolder;
357
- }
358
-
359
- /*
360
- 1. Use the user's configured `mono` font-family by default.
361
- 2. Use the user's configured `mono` font-feature-settings by default.
362
- 3. Use the user's configured `mono` font-variation-settings by default.
363
- 4. Correct the odd `em` font sizing in all browsers.
364
- */
365
-
366
- code,
367
- kbd,
368
- samp,
369
- pre {
370
- font-family: var(--font-mono); /* 1 */
371
- font-feature-settings: normal; /* 2 */
372
- font-variation-settings: normal; /* 3 */
373
- font-size: 1em; /* 4 */
374
- }
375
-
376
- /*
377
- Add the correct font size in all browsers.
378
- */
379
-
380
- small {
381
- font-size: 80%;
382
- }
383
-
384
- /*
385
- Prevent `sub` and `sup` elements from affecting the line height in all browsers.
386
- */
387
-
388
- sub,
389
- sup {
390
- font-size: 75%;
391
- line-height: 0;
392
- position: relative;
393
- vertical-align: baseline;
394
- }
395
-
396
- sub {
397
- bottom: -0.25em;
398
- }
399
-
400
- sup {
401
- top: -0.5em;
402
- }
403
-
404
- /*
405
- 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
406
- 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
407
- 3. Remove gaps between table borders by default.
408
- */
409
-
410
- table {
411
- text-indent: 0; /* 1 */
412
- border-color: inherit; /* 2 */
413
- border-collapse: collapse; /* 3 */
414
- }
415
-
416
- /*
417
- 1. Change the font styles in all browsers.
418
- 2. Remove the margin in Firefox and Safari.
419
- 3. Remove default padding in all browsers.
420
- */
421
-
422
- button,
423
- input,
424
- optgroup,
425
- select,
426
- textarea {
427
- font-family: inherit; /* 1 */
428
- font-feature-settings: inherit; /* 1 */
429
- font-variation-settings: inherit; /* 1 */
430
- font-size: 100%; /* 1 */
431
- font-weight: inherit; /* 1 */
432
- line-height: inherit; /* 1 */
433
- letter-spacing: inherit; /* 1 */
434
- color: inherit; /* 1 */
435
- margin: 0; /* 2 */
436
- padding: 0; /* 3 */
437
- }
438
-
439
- /*
440
- Remove the inheritance of text transform in Edge and Firefox.
441
- */
442
-
443
- button,
444
- select {
445
- text-transform: none;
446
- }
447
-
448
- /*
449
- 1. Correct the inability to style clickable types in iOS and Safari.
450
- 2. Remove default button styles.
451
- */
452
-
453
- button,
454
- input:where([type='button']),
455
- input:where([type='reset']),
456
- input:where([type='submit']) {
457
- -webkit-appearance: button; /* 1 */
458
- background-color: transparent; /* 2 */
459
- background-image: none; /* 2 */
460
- }
461
-
462
- /*
463
- Use the modern Firefox focus style for all focusable elements.
464
- */
465
-
466
- :-moz-focusring {
467
- outline: auto;
468
- }
469
-
470
- /*
471
- Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
472
- */
473
-
474
- :-moz-ui-invalid {
475
- box-shadow: none;
476
- }
477
-
478
- /*
479
- Add the correct vertical alignment in Chrome and Firefox.
480
- */
481
-
482
- progress {
483
- vertical-align: baseline;
484
- }
485
-
486
- /*
487
- Correct the cursor style of increment and decrement buttons in Safari.
488
- */
489
-
490
- ::-webkit-inner-spin-button,
491
- ::-webkit-outer-spin-button {
492
- height: auto;
493
- }
494
-
495
- /*
496
- 1. Correct the odd appearance in Chrome and Safari.
497
- 2. Correct the outline style in Safari.
498
- */
499
-
500
- [type='search'] {
501
- -webkit-appearance: textfield; /* 1 */
502
- outline-offset: -2px; /* 2 */
503
- }
504
-
505
- /*
506
- Remove the inner padding in Chrome and Safari on macOS.
507
- */
508
-
509
- ::-webkit-search-decoration {
510
- -webkit-appearance: none;
511
- }
512
-
513
- /*
514
- 1. Correct the inability to style clickable types in iOS and Safari.
515
- 2. Change font properties to `inherit` in Safari.
516
- */
517
-
518
- ::-webkit-file-upload-button {
519
- -webkit-appearance: button; /* 1 */
520
- font: inherit; /* 2 */
521
- }
522
-
523
- /*
524
- Add the correct display in Chrome and Safari.
525
- */
526
-
527
- summary {
528
- display: list-item;
529
- }
530
-
531
- /*
532
- Removes the default spacing and border for appropriate elements.
533
- */
534
-
535
- blockquote,
536
- dl,
537
- dd,
538
- h1,
539
- h2,
540
- h3,
541
- h4,
542
- h5,
543
- h6,
544
- hr,
545
- figure,
546
- p,
547
- pre {
548
- margin: 0;
549
- }
550
-
551
- fieldset {
552
- margin: 0;
553
- padding: 0;
554
- }
555
-
556
- legend {
557
- padding: 0;
558
- }
559
-
560
- ol,
561
- ul,
562
- menu {
563
- list-style: none;
564
- margin: 0;
565
- padding: 0;
566
- }
567
-
568
- /*
569
- Reset default styling for dialogs.
570
- */
571
-
572
- dialog {
573
- padding: 0;
574
- }
575
-
576
- /*
577
- Prevent resizing textareas horizontally by default.
578
- */
579
-
580
- textarea {
581
- resize: vertical;
582
- }
583
-
584
- /*
585
- 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
586
- 2. Set the default placeholder color to the user's configured gray 400 color.
587
- */
588
-
589
- input::-moz-placeholder, textarea::-moz-placeholder {
590
- opacity: 1; /* 1 */
591
- color: #9ca3af; /* 2 */
592
- }
593
-
594
- input::placeholder,
595
- textarea::placeholder {
596
- opacity: 1; /* 1 */
597
- color: #9ca3af; /* 2 */
598
- }
599
-
600
- /*
601
- Set the default cursor for buttons.
602
- */
603
-
604
- button,
605
- [role="button"] {
606
- cursor: pointer;
607
- }
608
-
609
- /*
610
- Make sure disabled buttons don't get the pointer cursor.
611
- */
612
-
613
- :disabled {
614
- cursor: default;
615
- }
616
-
617
- /*
618
- 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
619
- 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
620
- This can trigger a poorly considered lint error in some tools but is included by design.
621
- */
622
-
623
- img,
624
- svg,
625
- video,
626
- canvas,
627
- audio,
628
- iframe,
629
- embed,
630
- object {
631
- display: block; /* 1 */
632
- vertical-align: middle; /* 2 */
633
- }
634
-
635
- /*
636
- Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
637
- */
638
-
639
- img,
640
- video {
641
- max-width: 100%;
642
- height: auto;
643
- }
644
-
645
- /* Make elements with the HTML hidden attribute stay hidden by default */
646
-
647
- [hidden]:where(:not([hidden="until-found"])) {
648
- display: none;
649
- }
650
-
651
- @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");
652
-
653
- *,
654
- *::before,
655
- *::after {
656
- border-color: var(--border-default);
657
- }
658
-
659
- html {
660
- font-family: var(--font-sans);
661
- font-size: var(--text-base);
662
- line-height: var(--leading-normal);
663
- color: var(--fg-primary);
664
- background: var(--bg-base);
665
- -webkit-font-smoothing: antialiased;
666
- -moz-osx-font-smoothing: grayscale;
667
- }
668
-
669
- body {
670
- min-height: 100vh;
671
- }
672
-
673
- /* Subtle scrollbar */
674
-
675
- ::-webkit-scrollbar {
676
- width: 6px;
677
- height: 6px;
678
- }
679
-
680
- ::-webkit-scrollbar-track {
681
- background: transparent;
682
- }
683
-
684
- ::-webkit-scrollbar-thumb {
685
- background: var(--border-default);
686
- border-radius: var(--radius-full);
687
- }
688
-
689
- ::-webkit-scrollbar-thumb:hover {
690
- background: var(--border-strong);
691
- }
692
-
693
- .sr-only {
694
- position: absolute;
695
- width: 1px;
696
- height: 1px;
697
- padding: 0;
698
- margin: -1px;
699
- overflow: hidden;
700
- clip: rect(0, 0, 0, 0);
701
- white-space: nowrap;
702
- border-width: 0;
703
- }
704
-
705
- .pointer-events-none {
706
- pointer-events: none;
707
- }
708
-
709
- .pointer-events-auto {
710
- pointer-events: auto;
711
- }
712
-
713
- .static {
714
- position: static;
715
- }
716
-
717
- .fixed {
718
- position: fixed;
719
- }
720
-
721
- .absolute {
722
- position: absolute;
723
- }
724
-
725
- .relative {
726
- position: relative;
727
- }
728
-
729
- .sticky {
730
- position: sticky;
731
- }
732
-
733
- .inset-0 {
734
- inset: 0px;
735
- }
736
-
737
- .inset-x-0 {
738
- left: 0px;
739
- right: 0px;
740
- }
741
-
742
- .inset-y-0 {
743
- top: 0px;
744
- bottom: 0px;
745
- }
746
-
747
- .bottom-0 {
748
- bottom: 0px;
749
- }
750
-
751
- .left-0 {
752
- left: 0px;
753
- }
754
-
755
- .left-1\/2 {
756
- left: 50%;
757
- }
758
-
759
- .left-2 {
760
- left: var(--space-2);
761
- }
762
-
763
- .right-0 {
764
- right: 0px;
765
- }
766
-
767
- .right-2 {
768
- right: var(--space-2);
769
- }
770
-
771
- .right-4 {
772
- right: var(--space-4);
773
- }
774
-
775
- .top-0 {
776
- top: 0px;
777
- }
778
-
779
- .top-1\/2 {
780
- top: 50%;
781
- }
782
-
783
- .top-2 {
784
- top: var(--space-2);
785
- }
786
-
787
- .top-4 {
788
- top: var(--space-4);
789
- }
790
-
791
- .top-\[20\%\] {
792
- top: 20%;
793
- }
794
-
795
- .z-dropdown {
796
- z-index: var(--z-dropdown);
797
- }
798
-
799
- .z-modal {
800
- z-index: var(--z-modal);
801
- }
802
-
803
- .z-overlay {
804
- z-index: var(--z-overlay);
805
- }
806
-
807
- .z-toast {
808
- z-index: var(--z-toast);
809
- }
810
-
811
- .z-tooltip {
812
- z-index: var(--z-tooltip);
813
- }
814
-
815
- .-mx-1 {
816
- margin-left: calc(var(--space-1) * -1);
817
- margin-right: calc(var(--space-1) * -1);
818
- }
819
-
820
- .mx-auto {
821
- margin-left: auto;
822
- margin-right: auto;
823
- }
824
-
825
- .my-1 {
826
- margin-top: var(--space-1);
827
- margin-bottom: var(--space-1);
828
- }
829
-
830
- .ml-auto {
831
- margin-left: auto;
832
- }
833
-
834
- .mt-2 {
835
- margin-top: var(--space-2);
836
- }
837
-
838
- .block {
839
- display: block;
840
- }
841
-
842
- .flex {
843
- display: flex;
844
- }
845
-
846
- .inline-flex {
847
- display: inline-flex;
848
- }
849
-
850
- .hidden {
851
- display: none;
852
- }
853
-
854
- .aspect-square {
855
- aspect-ratio: 1 / 1;
856
- }
857
-
858
- .h-1\.5 {
859
- height: var(--space-1-5);
860
- }
861
-
862
- .h-10 {
863
- height: var(--space-10);
864
- }
865
-
866
- .h-12 {
867
- height: var(--space-12);
868
- }
869
-
870
- .h-3 {
871
- height: var(--space-3);
872
- }
873
-
874
- .h-3\.5 {
875
- height: 0.875rem;
876
- }
877
-
878
- .h-4 {
879
- height: var(--space-4);
880
- }
881
-
882
- .h-5 {
883
- height: var(--space-5);
884
- }
885
-
886
- .h-7 {
887
- height: 1.75rem;
888
- }
889
-
890
- .h-8 {
891
- height: var(--space-8);
892
- }
893
-
894
- .h-\[var\(--radix-select-trigger-height\)\] {
895
- height: var(--radix-select-trigger-height);
896
- }
897
-
898
- .h-auto {
899
- height: auto;
900
- }
901
-
902
- .h-full {
903
- height: 100%;
904
- }
905
-
906
- .h-px {
907
- height: var(--space-px);
908
- }
909
-
910
- .h-screen {
911
- height: 100vh;
912
- }
913
-
914
- .max-h-60 {
915
- max-height: 15rem;
916
- }
917
-
918
- .max-h-\[300px\] {
919
- max-height: 300px;
920
- }
921
-
922
- .max-h-screen {
923
- max-height: 100vh;
924
- }
925
-
926
- .w-1\.5 {
927
- width: var(--space-1-5);
928
- }
929
-
930
- .w-12 {
931
- width: var(--space-12);
932
- }
933
-
934
- .w-3 {
935
- width: var(--space-3);
936
- }
937
-
938
- .w-3\.5 {
939
- width: 0.875rem;
940
- }
941
-
942
- .w-3\/4 {
943
- width: 75%;
944
- }
945
-
946
- .w-4 {
947
- width: var(--space-4);
948
- }
949
-
950
- .w-8 {
951
- width: var(--space-8);
952
- }
953
-
954
- .w-9 {
955
- width: 2.25rem;
956
- }
957
-
958
- .w-full {
959
- width: 100%;
960
- }
961
-
962
- .w-px {
963
- width: var(--space-px);
964
- }
965
-
966
- .w-screen {
967
- width: 100vw;
968
- }
969
-
970
- .min-w-\[8rem\] {
971
- min-width: 8rem;
972
- }
973
-
974
- .min-w-\[var\(--radix-select-trigger-width\)\] {
975
- min-width: var(--radix-select-trigger-width);
976
- }
977
-
978
- .max-w-5xl {
979
- max-width: 64rem;
980
- }
981
-
982
- .max-w-lg {
983
- max-width: 32rem;
984
- }
985
-
986
- .flex-1 {
987
- flex: 1 1 0%;
988
- }
989
-
990
- .shrink-0 {
991
- flex-shrink: 0;
992
- }
993
-
994
- .-translate-x-1\/2 {
995
- --tw-translate-x: -50%;
996
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
997
- }
998
-
999
- .-translate-y-1\/2 {
1000
- --tw-translate-y: -50%;
1001
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1002
- }
1003
-
1004
- @keyframes fade-in {
1005
-
1006
- 0% {
1007
- opacity: 0;
1008
- }
1009
-
1010
- 100% {
1011
- opacity: 1;
1012
- }
1013
- }
1014
-
1015
- .animate-fade-in {
1016
- animation: fade-in var(--duration-normal) var(--ease-default);
1017
- }
1018
-
1019
- @keyframes pulse-subtle {
1020
-
1021
- 0%, 100% {
1022
- opacity: 1;
1023
- }
1024
-
1025
- 50% {
1026
- opacity: 0.6;
1027
- }
1028
- }
1029
-
1030
- .animate-pulse-subtle {
1031
- animation: pulse-subtle 2s var(--ease-default) infinite;
1032
- }
1033
-
1034
- @keyframes scale-in {
1035
-
1036
- 0% {
1037
- opacity: 0;
1038
- transform: scale(0.95);
1039
- }
1040
-
1041
- 100% {
1042
- opacity: 1;
1043
- transform: scale(1);
1044
- }
1045
- }
1046
-
1047
- .animate-scale-in {
1048
- animation: scale-in var(--duration-normal) var(--ease-spring);
1049
- }
1050
-
1051
- @keyframes spin-slow {
1052
-
1053
- 0% {
1054
- transform: rotate(0deg);
1055
- }
1056
-
1057
- 100% {
1058
- transform: rotate(360deg);
1059
- }
1060
- }
1061
-
1062
- .animate-spin-slow {
1063
- animation: spin-slow 1s linear infinite;
1064
- }
1065
-
1066
- .cursor-pointer {
1067
- cursor: pointer;
1068
- }
1069
-
1070
- .touch-none {
1071
- touch-action: none;
1072
- }
1073
-
1074
- .select-none {
1075
- -webkit-user-select: none;
1076
- -moz-user-select: none;
1077
- user-select: none;
1078
- }
1079
-
1080
- .flex-col {
1081
- flex-direction: column;
1082
- }
1083
-
1084
- .flex-col-reverse {
1085
- flex-direction: column-reverse;
1086
- }
1087
-
1088
- .items-center {
1089
- align-items: center;
1090
- }
1091
-
1092
- .justify-end {
1093
- justify-content: flex-end;
1094
- }
1095
-
1096
- .justify-center {
1097
- justify-content: center;
1098
- }
1099
-
1100
- .justify-between {
1101
- justify-content: space-between;
1102
- }
1103
-
1104
- .justify-around {
1105
- justify-content: space-around;
1106
- }
1107
-
1108
- .gap-0\.5 {
1109
- gap: var(--space-0-5);
1110
- }
1111
-
1112
- .gap-1 {
1113
- gap: var(--space-1);
1114
- }
1115
-
1116
- .gap-1\.5 {
1117
- gap: var(--space-1-5);
1118
- }
1119
-
1120
- .gap-2 {
1121
- gap: var(--space-2);
1122
- }
1123
-
1124
- .gap-3 {
1125
- gap: var(--space-3);
1126
- }
1127
-
1128
- .gap-4 {
1129
- gap: var(--space-4);
1130
- }
1131
-
1132
- .overflow-hidden {
1133
- overflow: hidden;
1134
- }
1135
-
1136
- .overflow-y-auto {
1137
- overflow-y: auto;
1138
- }
1139
-
1140
- .overflow-x-hidden {
1141
- overflow-x: hidden;
1142
- }
1143
-
1144
- .whitespace-nowrap {
1145
- white-space: nowrap;
1146
- }
1147
-
1148
- .rounded-\[inherit\] {
1149
- border-radius: inherit;
1150
- }
1151
-
1152
- .rounded-full {
1153
- border-radius: var(--radius-full);
1154
- }
1155
-
1156
- .rounded-lg {
1157
- border-radius: var(--radius-lg);
1158
- }
1159
-
1160
- .rounded-md {
1161
- border-radius: var(--radius-md);
1162
- }
1163
-
1164
- .rounded-sm {
1165
- border-radius: var(--radius-sm);
1166
- }
1167
-
1168
- .border {
1169
- border-width: 1px;
1170
- }
1171
-
1172
- .border-2 {
1173
- border-width: 2px;
1174
- }
1175
-
1176
- .border-b {
1177
- border-bottom-width: 1px;
1178
- }
1179
-
1180
- .border-l {
1181
- border-left-width: 1px;
1182
- }
1183
-
1184
- .border-r {
1185
- border-right-width: 1px;
1186
- }
1187
-
1188
- .border-t {
1189
- border-top-width: 1px;
1190
- }
1191
-
1192
- .border-border {
1193
- border-color: var(--border-default);
1194
- }
1195
-
1196
- .border-border-subtle {
1197
- border-color: var(--border-subtle);
1198
- }
1199
-
1200
- .border-semantic-error {
1201
- border-color: var(--error);
1202
- }
1203
-
1204
- .border-transparent {
1205
- border-color: transparent;
1206
- }
1207
-
1208
- .border-l-transparent {
1209
- border-left-color: transparent;
1210
- }
1211
-
1212
- .border-t-transparent {
1213
- border-top-color: transparent;
1214
- }
1215
-
1216
- .bg-accent {
1217
- background-color: var(--accent);
1218
- }
1219
-
1220
- .bg-accent-muted {
1221
- background-color: var(--accent-muted);
1222
- }
1223
-
1224
- .bg-bg-base {
1225
- background-color: var(--bg-base);
1226
- }
1227
-
1228
- .bg-bg-elevated {
1229
- background-color: var(--bg-elevated);
1230
- }
1231
-
1232
- .bg-bg-overlay {
1233
- background-color: var(--bg-overlay);
1234
- }
1235
-
1236
- .bg-bg-surface {
1237
- background-color: var(--bg-surface);
1238
- }
1239
-
1240
- .bg-border {
1241
- background-color: var(--border-default);
1242
- }
1243
-
1244
- .bg-border-strong {
1245
- background-color: var(--border-strong);
1246
- }
1247
-
1248
- .bg-semantic-error {
1249
- background-color: var(--error);
1250
- }
1251
-
1252
- .bg-semantic-error-muted {
1253
- background-color: var(--error-muted);
1254
- }
1255
-
1256
- .bg-semantic-info-muted {
1257
- background-color: var(--info-muted);
1258
- }
1259
-
1260
- .bg-semantic-success-muted {
1261
- background-color: var(--success-muted);
1262
- }
1263
-
1264
- .bg-semantic-warning-muted {
1265
- background-color: var(--warning-muted);
1266
- }
1267
-
1268
- .bg-transparent {
1269
- background-color: transparent;
1270
- }
1271
-
1272
- .bg-white {
1273
- --tw-bg-opacity: 1;
1274
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1275
- }
1276
-
1277
- .object-cover {
1278
- -o-object-fit: cover;
1279
- object-fit: cover;
1280
- }
1281
-
1282
- .p-0 {
1283
- padding: 0px;
1284
- }
1285
-
1286
- .p-0\.5 {
1287
- padding: var(--space-0-5);
1288
- }
1289
-
1290
- .p-1 {
1291
- padding: var(--space-1);
1292
- }
1293
-
1294
- .p-4 {
1295
- padding: var(--space-4);
1296
- }
1297
-
1298
- .p-6 {
1299
- padding: var(--space-6);
1300
- }
1301
-
1302
- .p-px {
1303
- padding: var(--space-px);
1304
- }
1305
-
1306
- .px-2 {
1307
- padding-left: var(--space-2);
1308
- padding-right: var(--space-2);
1309
- }
1310
-
1311
- .px-3 {
1312
- padding-left: var(--space-3);
1313
- padding-right: var(--space-3);
1314
- }
1315
-
1316
- .px-4 {
1317
- padding-left: var(--space-4);
1318
- padding-right: var(--space-4);
1319
- }
1320
-
1321
- .px-5 {
1322
- padding-left: var(--space-5);
1323
- padding-right: var(--space-5);
1324
- }
1325
-
1326
- .py-0\.5 {
1327
- padding-top: var(--space-0-5);
1328
- padding-bottom: var(--space-0-5);
1329
- }
1330
-
1331
- .py-1 {
1332
- padding-top: var(--space-1);
1333
- padding-bottom: var(--space-1);
1334
- }
1335
-
1336
- .py-1\.5 {
1337
- padding-top: var(--space-1-5);
1338
- padding-bottom: var(--space-1-5);
1339
- }
1340
-
1341
- .py-2 {
1342
- padding-top: var(--space-2);
1343
- padding-bottom: var(--space-2);
1344
- }
1345
-
1346
- .py-3 {
1347
- padding-top: var(--space-3);
1348
- padding-bottom: var(--space-3);
1349
- }
1350
-
1351
- .py-6 {
1352
- padding-top: var(--space-6);
1353
- padding-bottom: var(--space-6);
1354
- }
1355
-
1356
- .pb-4 {
1357
- padding-bottom: var(--space-4);
1358
- }
1359
-
1360
- .pl-8 {
1361
- padding-left: var(--space-8);
1362
- }
1363
-
1364
- .pr-2 {
1365
- padding-right: var(--space-2);
1366
- }
1367
-
1368
- .pt-0 {
1369
- padding-top: 0px;
1370
- }
1371
-
1372
- .pt-4 {
1373
- padding-top: var(--space-4);
1374
- }
1375
-
1376
- .text-left {
1377
- text-align: left;
1378
- }
1379
-
1380
- .text-center {
1381
- text-align: center;
1382
- }
1383
-
1384
- .text-base {
1385
- font-size: var(--text-base);
1386
- line-height: var(--leading-normal);
1387
- }
1388
-
1389
- .text-lg {
1390
- font-size: var(--text-lg);
1391
- line-height: var(--leading-normal);
1392
- }
1393
-
1394
- .text-sm {
1395
- font-size: var(--text-sm);
1396
- line-height: var(--leading-normal);
1397
- }
1398
-
1399
- .text-xs {
1400
- font-size: var(--text-xs);
1401
- line-height: var(--leading-normal);
1402
- }
1403
-
1404
- .font-medium {
1405
- font-weight: 500;
1406
- }
1407
-
1408
- .font-semibold {
1409
- font-weight: 600;
1410
- }
1411
-
1412
- .leading-none {
1413
- line-height: 1;
1414
- }
1415
-
1416
- .tracking-tight {
1417
- letter-spacing: -0.025em;
1418
- }
1419
-
1420
- .tracking-wide {
1421
- letter-spacing: 0.025em;
1422
- }
1423
-
1424
- .text-accent {
1425
- color: var(--accent);
1426
- }
1427
-
1428
- .text-accent-foreground {
1429
- color: var(--accent-foreground);
1430
- }
1431
-
1432
- .text-current {
1433
- color: currentColor;
1434
- }
1435
-
1436
- .text-fg-muted {
1437
- color: var(--fg-muted);
1438
- }
1439
-
1440
- .text-fg-primary {
1441
- color: var(--fg-primary);
1442
- }
1443
-
1444
- .text-fg-secondary {
1445
- color: var(--fg-secondary);
1446
- }
1447
-
1448
- .text-semantic-error {
1449
- color: var(--error);
1450
- }
1451
-
1452
- .text-semantic-info {
1453
- color: var(--info);
1454
- }
1455
-
1456
- .text-semantic-success {
1457
- color: var(--success);
1458
- }
1459
-
1460
- .text-semantic-warning {
1461
- color: var(--warning);
1462
- }
1463
-
1464
- .text-white {
1465
- --tw-text-opacity: 1;
1466
- color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1467
- }
1468
-
1469
- .underline-offset-4 {
1470
- text-underline-offset: 4px;
1471
- }
1472
-
1473
- .opacity-25 {
1474
- opacity: 0.25;
1475
- }
1476
-
1477
- .opacity-75 {
1478
- opacity: 0.75;
1479
- }
1480
-
1481
- .shadow-lg {
1482
- --tw-shadow: var(--shadow-lg);
1483
- --tw-shadow-colored: var(--shadow-lg);
1484
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1485
- }
1486
-
1487
- .shadow-md {
1488
- --tw-shadow: var(--shadow-md);
1489
- --tw-shadow-colored: var(--shadow-md);
1490
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1491
- }
1492
-
1493
- .shadow-sm {
1494
- --tw-shadow: var(--shadow-sm);
1495
- --tw-shadow-colored: var(--shadow-sm);
1496
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1497
- }
1498
-
1499
- .shadow-xl {
1500
- --tw-shadow: var(--shadow-xl);
1501
- --tw-shadow-colored: var(--shadow-xl);
1502
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1503
- }
1504
-
1505
- .outline-none {
1506
- outline: 2px solid transparent;
1507
- outline-offset: 2px;
1508
- }
1509
-
1510
- .ring-offset-bg-base {
1511
- --tw-ring-offset-color: var(--bg-base);
1512
- }
1513
-
1514
- .backdrop-blur-sm {
1515
- --tw-backdrop-blur: blur(4px);
1516
- backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
1517
- }
1518
-
1519
- .transition {
1520
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
1521
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1522
- transition-duration: 150ms;
1523
- }
1524
-
1525
- .transition-all {
1526
- transition-property: all;
1527
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1528
- transition-duration: 150ms;
1529
- }
1530
-
1531
- .transition-colors {
1532
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
1533
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1534
- transition-duration: 150ms;
1535
- }
1536
-
1537
- .transition-transform {
1538
- transition-property: transform;
1539
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1540
- transition-duration: 150ms;
1541
- }
1542
-
1543
- .duration-fast {
1544
- transition-duration: var(--duration-fast);
1545
- }
1546
-
1547
- .duration-normal {
1548
- transition-duration: var(--duration-normal);
1549
- }
1550
-
1551
- .duration-slow {
1552
- transition-duration: var(--duration-slow);
1553
- }
1554
-
1555
- .ease-default {
1556
- transition-timing-function: var(--ease-default);
1557
- }
1558
-
1559
- .placeholder\:text-fg-muted::-moz-placeholder {
1560
- color: var(--fg-muted);
1561
- }
1562
-
1563
- .placeholder\:text-fg-muted::placeholder {
1564
- color: var(--fg-muted);
1565
- }
1566
-
1567
- .hover\:border-border-strong:hover {
1568
- border-color: var(--border-strong);
1569
- }
1570
-
1571
- .hover\:bg-accent-hover:hover {
1572
- background-color: var(--accent-hover);
1573
- }
1574
-
1575
- .hover\:bg-bg-elevated:hover {
1576
- background-color: var(--bg-elevated);
1577
- }
1578
-
1579
- .hover\:bg-bg-surface:hover {
1580
- background-color: var(--bg-surface);
1581
- }
1582
-
1583
- .hover\:text-fg-primary:hover {
1584
- color: var(--fg-primary);
1585
- }
1586
-
1587
- .hover\:text-fg-secondary:hover {
1588
- color: var(--fg-secondary);
1589
- }
1590
-
1591
- .hover\:underline:hover {
1592
- text-decoration-line: underline;
1593
- }
1594
-
1595
- .focus\:border-accent:focus {
1596
- border-color: var(--accent);
1597
- }
1598
-
1599
- .focus\:bg-bg-surface:focus {
1600
- background-color: var(--bg-surface);
1601
- }
1602
-
1603
- .focus\:text-fg-primary:focus {
1604
- color: var(--fg-primary);
1605
- }
1606
-
1607
- .focus\:outline-none:focus {
1608
- outline: 2px solid transparent;
1609
- outline-offset: 2px;
1610
- }
1611
-
1612
- .focus\:ring-2:focus {
1613
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1614
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1615
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1616
- }
1617
-
1618
- .focus-visible\:border-accent:focus-visible {
1619
- border-color: var(--accent);
1620
- }
1621
-
1622
- .focus-visible\:outline-none:focus-visible {
1623
- outline: 2px solid transparent;
1624
- outline-offset: 2px;
1625
- }
1626
-
1627
- .focus-visible\:ring-2:focus-visible {
1628
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1629
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1630
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1631
- }
1632
-
1633
- .focus-visible\:ring-offset-2:focus-visible {
1634
- --tw-ring-offset-width: 2px;
1635
- }
1636
-
1637
- .focus-visible\:ring-offset-bg-base:focus-visible {
1638
- --tw-ring-offset-color: var(--bg-base);
1639
- }
1640
-
1641
- .active\:brightness-90:active {
1642
- --tw-brightness: brightness(.9);
1643
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1644
- }
1645
-
1646
- .disabled\:pointer-events-none:disabled {
1647
- pointer-events: none;
1648
- }
1649
-
1650
- .disabled\:cursor-not-allowed:disabled {
1651
- cursor: not-allowed;
1652
- }
1653
-
1654
- .disabled\:opacity-40:disabled {
1655
- opacity: 0.4;
1656
- }
1657
-
1658
- .peer:disabled ~ .peer-disabled\:cursor-not-allowed {
1659
- cursor: not-allowed;
1660
- }
1661
-
1662
- .peer:disabled ~ .peer-disabled\:opacity-40 {
1663
- opacity: 0.4;
1664
- }
1665
-
1666
- .data-\[disabled\=true\]\:pointer-events-none[data-disabled="true"] {
1667
- pointer-events: none;
1668
- }
1669
-
1670
- .data-\[disabled\]\:pointer-events-none[data-disabled] {
1671
- pointer-events: none;
1672
- }
1673
-
1674
- .data-\[side\=bottom\]\:translate-y-1[data-side="bottom"] {
1675
- --tw-translate-y: var(--space-1);
1676
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1677
- }
1678
-
1679
- .data-\[side\=top\]\:-translate-y-1[data-side="top"] {
1680
- --tw-translate-y: calc(var(--space-1) * -1);
1681
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1682
- }
1683
-
1684
- .data-\[state\=checked\]\:translate-x-4[data-state="checked"] {
1685
- --tw-translate-x: var(--space-4);
1686
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1687
- }
1688
-
1689
- .data-\[state\=unchecked\]\:translate-x-0[data-state="unchecked"] {
1690
- --tw-translate-x: 0px;
1691
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1692
- }
1693
-
1694
- .data-\[swipe\=cancel\]\:translate-x-0[data-swipe="cancel"] {
1695
- --tw-translate-x: 0px;
1696
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1697
- }
1698
-
1699
- .data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe="end"] {
1700
- --tw-translate-x: var(--radix-toast-swipe-end-x);
1701
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1702
- }
1703
-
1704
- .data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe="move"] {
1705
- --tw-translate-x: var(--radix-toast-swipe-move-x);
1706
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1707
- }
1708
-
1709
- @keyframes fade-in {
1710
-
1711
- 0% {
1712
- opacity: 0;
1713
- }
1714
-
1715
- 100% {
1716
- opacity: 1;
1717
- }
1718
- }
1719
-
1720
- .data-\[state\=active\]\:animate-fade-in[data-state="active"] {
1721
- animation: fade-in var(--duration-normal) var(--ease-default);
1722
- }
1723
-
1724
- @keyframes fade-out {
1725
-
1726
- 0% {
1727
- opacity: 1;
1728
- }
1729
-
1730
- 100% {
1731
- opacity: 0;
1732
- }
1733
- }
1734
-
1735
- .data-\[state\=closed\]\:animate-fade-out[data-state="closed"] {
1736
- animation: fade-out var(--duration-normal) var(--ease-default);
1737
- }
1738
-
1739
- @keyframes fade-in {
1740
-
1741
- 0% {
1742
- opacity: 0;
1743
- }
1744
-
1745
- 100% {
1746
- opacity: 1;
1747
- }
1748
- }
1749
-
1750
- .data-\[state\=open\]\:animate-fade-in[data-state="open"] {
1751
- animation: fade-in var(--duration-normal) var(--ease-default);
1752
- }
1753
-
1754
- @keyframes scale-in {
1755
-
1756
- 0% {
1757
- opacity: 0;
1758
- transform: scale(0.95);
1759
- }
1760
-
1761
- 100% {
1762
- opacity: 1;
1763
- transform: scale(1);
1764
- }
1765
- }
1766
-
1767
- .data-\[state\=open\]\:animate-scale-in[data-state="open"] {
1768
- animation: scale-in var(--duration-normal) var(--ease-spring);
1769
- }
1770
-
1771
- @keyframes slide-up {
1772
-
1773
- 0% {
1774
- opacity: 0;
1775
- transform: translateY(8px);
1776
- }
1777
-
1778
- 100% {
1779
- opacity: 1;
1780
- transform: translateY(0);
1781
- }
1782
- }
1783
-
1784
- .data-\[state\=open\]\:animate-slide-up[data-state="open"] {
1785
- animation: slide-up var(--duration-normal) var(--ease-default);
1786
- }
1787
-
1788
- .data-\[state\=checked\]\:border-accent[data-state="checked"] {
1789
- border-color: var(--accent);
1790
- }
1791
-
1792
- .data-\[selected\=true\]\:bg-bg-surface[data-selected="true"] {
1793
- background-color: var(--bg-surface);
1794
- }
1795
-
1796
- .data-\[state\=active\]\:bg-bg-elevated[data-state="active"] {
1797
- background-color: var(--bg-elevated);
1798
- }
1799
-
1800
- .data-\[state\=checked\]\:bg-accent[data-state="checked"] {
1801
- background-color: var(--accent);
1802
- }
1803
-
1804
- .data-\[state\=unchecked\]\:bg-bg-elevated[data-state="unchecked"] {
1805
- background-color: var(--bg-elevated);
1806
- }
1807
-
1808
- .data-\[selected\=true\]\:text-fg-primary[data-selected="true"] {
1809
- color: var(--fg-primary);
1810
- }
1811
-
1812
- .data-\[state\=active\]\:text-fg-primary[data-state="active"] {
1813
- color: var(--fg-primary);
1814
- }
1815
-
1816
- .data-\[state\=checked\]\:text-accent-foreground[data-state="checked"] {
1817
- color: var(--accent-foreground);
1818
- }
1819
-
1820
- .data-\[disabled\=true\]\:opacity-40[data-disabled="true"] {
1821
- opacity: 0.4;
1822
- }
1823
-
1824
- .data-\[disabled\]\:opacity-40[data-disabled] {
1825
- opacity: 0.4;
1826
- }
1827
-
1828
- .data-\[state\=active\]\:shadow-sm[data-state="active"] {
1829
- --tw-shadow: var(--shadow-sm);
1830
- --tw-shadow-colored: var(--shadow-sm);
1831
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1832
- }
1833
-
1834
- .data-\[swipe\=move\]\:transition-none[data-swipe="move"] {
1835
- transition-property: none;
1836
- }
1837
-
1838
- @media (min-width: 640px) {
1839
-
1840
- .sm\:max-w-\[420px\] {
1841
- max-width: 420px;
1842
- }
1843
-
1844
- .sm\:max-w-sm {
1845
- max-width: 24rem;
1846
- }
1847
-
1848
- .sm\:px-6 {
1849
- padding-left: var(--space-6);
1850
- padding-right: var(--space-6);
1851
- }
1852
- }
1853
-
1854
- @media (min-width: 768px) {
1855
-
1856
- .md\:hidden {
1857
- display: none;
1858
- }
1859
- }
1860
-
1861
- @media (min-width: 1024px) {
1862
-
1863
- .lg\:px-8 {
1864
- padding-left: var(--space-8);
1865
- padding-right: var(--space-8);
1866
- }
1867
- }
1868
-
1869
- .\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading] {
1870
- padding-left: var(--space-2);
1871
- padding-right: var(--space-2);
1872
- }
1873
-
1874
- .\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading] {
1875
- padding-top: var(--space-1-5);
1876
- padding-bottom: var(--space-1-5);
1877
- }
1878
-
1879
- .\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading] {
1880
- font-size: var(--text-xs);
1881
- line-height: var(--leading-normal);
1882
- }
1883
-
1884
- .\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading] {
1885
- font-weight: 500;
1886
- }
1887
-
1888
- .\[\&_\[cmdk-group-heading\]\]\:text-fg-muted [cmdk-group-heading] {
1889
- color: var(--fg-muted);
1890
- }