defuss-shadcn 0.5.1 → 0.6.2

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.
@@ -0,0 +1,3760 @@
1
+ /*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
2
+ @layer properties;
3
+ @layer theme, base, components, utilities;
4
+ @layer theme {
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;
10
+ --color-black: #000;
11
+ --color-white: #fff;
12
+ --spacing: 0.25rem;
13
+ --container-xs: 20rem;
14
+ --container-lg: 32rem;
15
+ --text-xs: 0.75rem;
16
+ --text-xs--line-height: calc(1 / 0.75);
17
+ --text-sm: 0.875rem;
18
+ --text-sm--line-height: calc(1.25 / 0.875);
19
+ --text-base: 1rem;
20
+ --text-base--line-height: calc(1.5 / 1);
21
+ --text-lg: 1.125rem;
22
+ --text-lg--line-height: calc(1.75 / 1.125);
23
+ --font-weight-normal: 400;
24
+ --font-weight-medium: 500;
25
+ --font-weight-semibold: 600;
26
+ --tracking-tight: -0.025em;
27
+ --leading-snug: 1.375;
28
+ --leading-normal: 1.5;
29
+ --leading-relaxed: 1.625;
30
+ --radius-xs: 0.125rem;
31
+ --radius-sm: calc(var(--defuss-radius) - 4px);
32
+ --radius-md: calc(var(--defuss-radius) - 2px);
33
+ --radius-lg: var(--defuss-radius);
34
+ --radius-xl: calc(var(--defuss-radius) + 4px);
35
+ --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
36
+ --default-transition-duration: 150ms;
37
+ --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
38
+ --default-font-family: var(--font-sans);
39
+ --default-mono-font-family: var(--font-mono);
40
+ --color-background: var(--defuss-background);
41
+ --color-foreground: var(--defuss-foreground);
42
+ --color-card: var(--defuss-card);
43
+ --color-card-foreground: var(--defuss-card-foreground);
44
+ --color-popover: var(--defuss-popover);
45
+ --color-popover-foreground: var(--defuss-popover-foreground);
46
+ --color-primary: var(--defuss-primary);
47
+ --color-primary-foreground: var(--defuss-primary-foreground);
48
+ --color-secondary: var(--defuss-secondary);
49
+ --color-secondary-foreground: var(--defuss-secondary-foreground);
50
+ --color-muted: var(--defuss-muted);
51
+ --color-muted-foreground: var(--defuss-muted-foreground);
52
+ --color-accent: var(--defuss-accent);
53
+ --color-accent-foreground: var(--defuss-accent-foreground);
54
+ --color-destructive: var(--defuss-destructive);
55
+ --color-border: var(--defuss-border);
56
+ --color-input: var(--defuss-input);
57
+ --color-ring: var(--defuss-ring);
58
+ --color-sidebar: var(--defuss-sidebar);
59
+ --color-sidebar-foreground: var(--defuss-sidebar-foreground);
60
+ --color-sidebar-primary: var(--defuss-sidebar-primary);
61
+ --color-sidebar-primary-foreground: var(--defuss-sidebar-primary-foreground);
62
+ --color-sidebar-accent: var(--defuss-sidebar-accent);
63
+ --color-sidebar-accent-foreground: var(--defuss-sidebar-accent-foreground);
64
+ --color-sidebar-border: var(--defuss-sidebar-border);
65
+ --color-sidebar-ring: var(--defuss-sidebar-ring);
66
+ }
67
+ }
68
+ @layer base {
69
+ *, ::after, ::before, ::backdrop, ::file-selector-button {
70
+ box-sizing: border-box;
71
+ margin: 0;
72
+ padding: 0;
73
+ border: 0 solid;
74
+ }
75
+ html, :host {
76
+ line-height: 1.5;
77
+ -webkit-text-size-adjust: 100%;
78
+ tab-size: 4;
79
+ font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
80
+ font-feature-settings: var(--default-font-feature-settings, normal);
81
+ font-variation-settings: var(--default-font-variation-settings, normal);
82
+ -webkit-tap-highlight-color: transparent;
83
+ }
84
+ hr {
85
+ height: 0;
86
+ color: inherit;
87
+ border-top-width: 1px;
88
+ }
89
+ abbr:where([title]) {
90
+ -webkit-text-decoration: underline dotted;
91
+ text-decoration: underline dotted;
92
+ }
93
+ h1, h2, h3, h4, h5, h6 {
94
+ font-size: inherit;
95
+ font-weight: inherit;
96
+ }
97
+ a {
98
+ color: inherit;
99
+ -webkit-text-decoration: inherit;
100
+ text-decoration: inherit;
101
+ }
102
+ b, strong {
103
+ font-weight: bolder;
104
+ }
105
+ code, kbd, samp, pre {
106
+ font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
107
+ font-feature-settings: var(--default-mono-font-feature-settings, normal);
108
+ font-variation-settings: var(--default-mono-font-variation-settings, normal);
109
+ font-size: 1em;
110
+ }
111
+ small {
112
+ font-size: 80%;
113
+ }
114
+ sub, sup {
115
+ font-size: 75%;
116
+ line-height: 0;
117
+ position: relative;
118
+ vertical-align: baseline;
119
+ }
120
+ sub {
121
+ bottom: -0.25em;
122
+ }
123
+ sup {
124
+ top: -0.5em;
125
+ }
126
+ table {
127
+ text-indent: 0;
128
+ border-color: inherit;
129
+ border-collapse: collapse;
130
+ }
131
+ :-moz-focusring {
132
+ outline: auto;
133
+ }
134
+ progress {
135
+ vertical-align: baseline;
136
+ }
137
+ summary {
138
+ display: list-item;
139
+ }
140
+ ol, ul, menu {
141
+ list-style: none;
142
+ }
143
+ img, svg, video, canvas, audio, iframe, embed, object {
144
+ display: block;
145
+ vertical-align: middle;
146
+ }
147
+ img, video {
148
+ max-width: 100%;
149
+ height: auto;
150
+ }
151
+ button, input, select, optgroup, textarea, ::file-selector-button {
152
+ font: inherit;
153
+ font-feature-settings: inherit;
154
+ font-variation-settings: inherit;
155
+ letter-spacing: inherit;
156
+ color: inherit;
157
+ border-radius: 0;
158
+ background-color: transparent;
159
+ opacity: 1;
160
+ }
161
+ :where(select:is([multiple], [size])) optgroup {
162
+ font-weight: bolder;
163
+ }
164
+ :where(select:is([multiple], [size])) optgroup option {
165
+ padding-inline-start: 20px;
166
+ }
167
+ ::file-selector-button {
168
+ margin-inline-end: 4px;
169
+ }
170
+ ::placeholder {
171
+ opacity: 1;
172
+ }
173
+ @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
174
+ ::placeholder {
175
+ color: currentcolor;
176
+ @supports (color: color-mix(in lab, red, red)) {
177
+ color: color-mix(in oklab, currentcolor 50%, transparent);
178
+ }
179
+ }
180
+ }
181
+ textarea {
182
+ resize: vertical;
183
+ }
184
+ ::-webkit-search-decoration {
185
+ -webkit-appearance: none;
186
+ }
187
+ ::-webkit-date-and-time-value {
188
+ min-height: 1lh;
189
+ text-align: inherit;
190
+ }
191
+ ::-webkit-datetime-edit {
192
+ display: inline-flex;
193
+ }
194
+ ::-webkit-datetime-edit-fields-wrapper {
195
+ padding: 0;
196
+ }
197
+ ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
198
+ padding-block: 0;
199
+ }
200
+ ::-webkit-calendar-picker-indicator {
201
+ line-height: 1;
202
+ }
203
+ :-moz-ui-invalid {
204
+ box-shadow: none;
205
+ }
206
+ button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
207
+ appearance: button;
208
+ }
209
+ ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
210
+ height: auto;
211
+ }
212
+ [hidden]:where(:not([hidden="until-found"])) {
213
+ display: none !important;
214
+ }
215
+ }
216
+ @layer utilities;
217
+ .defuss-shadcn {
218
+ --defuss-radius: 0.625rem;
219
+ --defuss-background: oklch(1 0 0);
220
+ --defuss-foreground: oklch(0.145 0 0);
221
+ --defuss-card: oklch(1 0 0);
222
+ --defuss-card-foreground: oklch(0.145 0 0);
223
+ --defuss-popover: oklch(1 0 0);
224
+ --defuss-popover-foreground: oklch(0.145 0 0);
225
+ --defuss-primary: oklch(0.205 0 0);
226
+ --defuss-primary-foreground: oklch(0.985 0 0);
227
+ --defuss-secondary: oklch(0.97 0 0);
228
+ --defuss-secondary-foreground: oklch(0.205 0 0);
229
+ --defuss-muted: oklch(0.97 0 0);
230
+ --defuss-muted-foreground: oklch(0.556 0 0);
231
+ --defuss-accent: oklch(0.97 0 0);
232
+ --defuss-accent-foreground: oklch(0.205 0 0);
233
+ --defuss-destructive: oklch(0.577 0.245 27.325);
234
+ --defuss-border: oklch(0.922 0 0);
235
+ --defuss-input: oklch(0.922 0 0);
236
+ --defuss-ring: oklch(0.708 0 0);
237
+ --defuss-chart-1: oklch(0.646 0.222 41.116);
238
+ --defuss-chart-2: oklch(0.6 0.118 184.704);
239
+ --defuss-chart-3: oklch(0.398 0.07 227.392);
240
+ --defuss-chart-4: oklch(0.828 0.189 84.429);
241
+ --defuss-chart-5: oklch(0.769 0.188 70.08);
242
+ --defuss-sidebar: oklch(0.985 0 0);
243
+ --defuss-sidebar-foreground: oklch(0.145 0 0);
244
+ --defuss-sidebar-primary: oklch(0.205 0 0);
245
+ --defuss-sidebar-primary-foreground: oklch(0.985 0 0);
246
+ --defuss-sidebar-accent: oklch(0.97 0 0);
247
+ --defuss-sidebar-accent-foreground: oklch(0.205 0 0);
248
+ --defuss-sidebar-border: oklch(0.922 0 0);
249
+ --defuss-sidebar-ring: oklch(0.708 0 0);
250
+ --defuss-sidebar-width: 16rem;
251
+ --defuss-sidebar-mobile-width: 18rem;
252
+ --defuss-scrollbar-track: transparent;
253
+ --defuss-scrollbar-thumb: rgba(0, 0, 0, 0.3);
254
+ --defuss-scrollbar-width: 6px;
255
+ --defuss-scrollbar-radius: 6px;
256
+ --defuss-chevron-down-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.556 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>');
257
+ --defuss-chevron-down-icon-50: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.556 0 0 / 0.5)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>');
258
+ --defuss-check-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.556 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check-icon lucide-check"><path d="M20 6 9 17l-5-5"/></svg>');
259
+ }
260
+ :is(.defuss-shadcn.dark, .dark .defuss-shadcn) {
261
+ --defuss-background: oklch(0.145 0 0);
262
+ --defuss-foreground: oklch(0.985 0 0);
263
+ --defuss-card: oklch(0.205 0 0);
264
+ --defuss-card-foreground: oklch(0.985 0 0);
265
+ --defuss-popover: oklch(0.269 0 0);
266
+ --defuss-popover-foreground: oklch(0.985 0 0);
267
+ --defuss-primary: oklch(0.922 0 0);
268
+ --defuss-primary-foreground: oklch(0.205 0 0);
269
+ --defuss-secondary: oklch(0.269 0 0);
270
+ --defuss-secondary-foreground: oklch(0.985 0 0);
271
+ --defuss-muted: oklch(0.269 0 0);
272
+ --defuss-muted-foreground: oklch(0.708 0 0);
273
+ --defuss-accent: oklch(0.371 0 0);
274
+ --defuss-accent-foreground: oklch(0.985 0 0);
275
+ --defuss-destructive: oklch(0.704 0.191 22.216);
276
+ --defuss-border: oklch(1 0 0 / 10%);
277
+ --defuss-input: oklch(1 0 0 / 15%);
278
+ --defuss-ring: oklch(0.556 0 0);
279
+ --defuss-chart-1: oklch(0.488 0.243 264.376);
280
+ --defuss-chart-2: oklch(0.696 0.17 162.48);
281
+ --defuss-chart-3: oklch(0.769 0.188 70.08);
282
+ --defuss-chart-4: oklch(0.627 0.265 303.9);
283
+ --defuss-chart-5: oklch(0.645 0.246 16.439);
284
+ --defuss-sidebar: oklch(0.205 0 0);
285
+ --defuss-sidebar-foreground: oklch(0.985 0 0);
286
+ --defuss-sidebar-primary: oklch(0.488 0.243 264.376);
287
+ --defuss-sidebar-primary-foreground: oklch(0.985 0 0);
288
+ --defuss-sidebar-accent: oklch(0.269 0 0);
289
+ --defuss-sidebar-accent-foreground: oklch(0.985 0 0);
290
+ --defuss-sidebar-border: oklch(1 0 0 / 10%);
291
+ --defuss-sidebar-ring: oklch(0.439 0 0);
292
+ --defuss-scrollbar-thumb: rgba(255, 255, 255, 0.3);
293
+ --defuss-chevron-down-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.708 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>');
294
+ --defuss-chevron-down-icon-50: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.708 0 0 / 0.5)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>');
295
+ --defuss-check-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.708 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check-icon lucide-check"><path d="M20 6 9 17l-5-5"/></svg>');
296
+ color-scheme: dark;
297
+ }
298
+ @layer base {
299
+ .defuss-shadcn, .defuss-shadcn * {
300
+ border-color: var(--color-border);
301
+ outline-color: var(--color-ring);
302
+ @supports (color: color-mix(in lab, red, red)) {
303
+ outline-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
304
+ }
305
+ }
306
+ .defuss-shadcn {
307
+ overscroll-behavior: none;
308
+ scroll-behavior: smooth;
309
+ background-color: var(--color-background);
310
+ color: var(--color-foreground);
311
+ -webkit-font-smoothing: antialiased;
312
+ -moz-osx-font-smoothing: grayscale;
313
+ }
314
+ .defuss-shadcn .scrollbar {
315
+ scrollbar-width: thin;
316
+ scrollbar-color: var(--defuss-scrollbar-thumb) var(--defuss-scrollbar-track);
317
+ &::-webkit-scrollbar {
318
+ width: var(--defuss-scrollbar-width);
319
+ }
320
+ &::-webkit-scrollbar-track {
321
+ background: var(--defuss-scrollbar-track);
322
+ }
323
+ &::-webkit-scrollbar-thumb {
324
+ background: var(--defuss-scrollbar-thumb);
325
+ border-radius: var(--defuss-scrollbar-radius);
326
+ }
327
+ }
328
+ }
329
+ @layer components {
330
+ .defuss-shadcn {
331
+ .alert, .alert-destructive {
332
+ position: relative;
333
+ display: grid;
334
+ width: 100%;
335
+ grid-template-columns: 0 1fr;
336
+ align-items: flex-start;
337
+ row-gap: calc(var(--spacing) * 0.5);
338
+ border-radius: var(--radius-lg);
339
+ border-style: var(--tw-border-style);
340
+ border-width: 1px;
341
+ padding-inline: calc(var(--spacing) * 4);
342
+ padding-block: calc(var(--spacing) * 3);
343
+ font-size: var(--text-sm);
344
+ line-height: var(--tw-leading, var(--text-sm--line-height));
345
+ &:has(>svg) {
346
+ grid-template-columns: calc(var(--spacing) * 4) 1fr;
347
+ }
348
+ &:has(>svg) {
349
+ column-gap: calc(var(--spacing) * 3);
350
+ }
351
+ &>svg {
352
+ width: calc(var(--spacing) * 4);
353
+ height: calc(var(--spacing) * 4);
354
+ }
355
+ &>svg {
356
+ --tw-translate-y: calc(var(--spacing) * 0.5);
357
+ translate: var(--tw-translate-x) var(--tw-translate-y);
358
+ }
359
+ &>svg {
360
+ color: currentcolor;
361
+ }
362
+ > h2, > h3, > h4, > h5, > h6, > strong, > [data-title] {
363
+ grid-column-start: 2;
364
+ overflow: hidden;
365
+ display: -webkit-box;
366
+ -webkit-box-orient: vertical;
367
+ -webkit-line-clamp: 1;
368
+ min-height: calc(var(--spacing) * 4);
369
+ --tw-font-weight: var(--font-weight-medium);
370
+ font-weight: var(--font-weight-medium);
371
+ --tw-tracking: var(--tracking-tight);
372
+ letter-spacing: var(--tracking-tight);
373
+ }
374
+ > section {
375
+ grid-column-start: 2;
376
+ display: grid;
377
+ justify-items: start;
378
+ gap: calc(var(--spacing) * 1);
379
+ font-size: var(--text-sm);
380
+ line-height: var(--tw-leading, var(--text-sm--line-height));
381
+ color: var(--color-muted-foreground);
382
+ & p {
383
+ --tw-leading: var(--leading-relaxed);
384
+ line-height: var(--leading-relaxed);
385
+ }
386
+ ul {
387
+ list-style-position: inside;
388
+ list-style-type: disc;
389
+ font-size: var(--text-sm);
390
+ line-height: var(--tw-leading, var(--text-sm--line-height));
391
+ }
392
+ }
393
+ }
394
+ .alert {
395
+ background-color: var(--color-card);
396
+ color: var(--color-card-foreground);
397
+ }
398
+ .alert-destructive {
399
+ background-color: var(--color-card);
400
+ color: var(--color-destructive);
401
+ &>svg {
402
+ color: currentcolor;
403
+ }
404
+ > section {
405
+ color: var(--color-destructive);
406
+ }
407
+ }
408
+ }
409
+ }
410
+ @layer components {
411
+ .defuss-shadcn {
412
+ .badge, .badge-primary, .badge-secondary, .badge-destructive, .badge-outline {
413
+ display: inline-flex;
414
+ width: fit-content;
415
+ flex-shrink: 0;
416
+ align-items: center;
417
+ justify-content: center;
418
+ gap: calc(var(--spacing) * 1);
419
+ overflow: hidden;
420
+ border-radius: calc(infinity * 1px);
421
+ border-style: var(--tw-border-style);
422
+ border-width: 1px;
423
+ padding-inline: calc(var(--spacing) * 2);
424
+ padding-block: calc(var(--spacing) * 0.5);
425
+ font-size: var(--text-xs);
426
+ line-height: var(--tw-leading, var(--text-xs--line-height));
427
+ --tw-font-weight: var(--font-weight-medium);
428
+ font-weight: var(--font-weight-medium);
429
+ white-space: nowrap;
430
+ transition-property: color,box-shadow;
431
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
432
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
433
+ &:focus-visible {
434
+ border-color: var(--color-ring);
435
+ }
436
+ &:focus-visible {
437
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
438
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
439
+ }
440
+ &:focus-visible {
441
+ --tw-ring-color: var(--color-ring);
442
+ @supports (color: color-mix(in lab, red, red)) {
443
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
444
+ }
445
+ }
446
+ &[aria-invalid="true"] {
447
+ border-color: var(--color-destructive);
448
+ }
449
+ &[aria-invalid="true"] {
450
+ --tw-ring-color: var(--color-destructive);
451
+ @supports (color: color-mix(in lab, red, red)) {
452
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);
453
+ }
454
+ }
455
+ &:is(.dark *) {
456
+ &[aria-invalid="true"] {
457
+ --tw-ring-color: var(--color-destructive);
458
+ @supports (color: color-mix(in lab, red, red)) {
459
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);
460
+ }
461
+ }
462
+ }
463
+ &>svg {
464
+ pointer-events: none;
465
+ }
466
+ &>svg {
467
+ width: calc(var(--spacing) * 3);
468
+ height: calc(var(--spacing) * 3);
469
+ }
470
+ }
471
+ .badge, .badge-primary {
472
+ border-color: transparent;
473
+ background-color: var(--color-primary);
474
+ color: var(--color-primary-foreground);
475
+ a& {
476
+ &:hover {
477
+ @media (hover: hover) {
478
+ background-color: var(--color-primary);
479
+ @supports (color: color-mix(in lab, red, red)) {
480
+ background-color: color-mix(in oklab, var(--color-primary) 90%, transparent);
481
+ }
482
+ }
483
+ }
484
+ }
485
+ }
486
+ .badge-secondary {
487
+ border-color: transparent;
488
+ background-color: var(--color-secondary);
489
+ color: var(--color-secondary-foreground);
490
+ a& {
491
+ &:hover {
492
+ @media (hover: hover) {
493
+ background-color: var(--color-secondary);
494
+ @supports (color: color-mix(in lab, red, red)) {
495
+ background-color: color-mix(in oklab, var(--color-secondary) 90%, transparent);
496
+ }
497
+ }
498
+ }
499
+ }
500
+ }
501
+ .badge-destructive {
502
+ border-color: transparent;
503
+ background-color: var(--color-destructive);
504
+ color: var(--color-white);
505
+ &:focus-visible {
506
+ --tw-ring-color: var(--color-destructive);
507
+ @supports (color: color-mix(in lab, red, red)) {
508
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);
509
+ }
510
+ }
511
+ &:is(.dark *) {
512
+ background-color: var(--color-destructive);
513
+ @supports (color: color-mix(in lab, red, red)) {
514
+ background-color: color-mix(in oklab, var(--color-destructive) 60%, transparent);
515
+ }
516
+ }
517
+ &:is(.dark *) {
518
+ &:focus-visible {
519
+ --tw-ring-color: var(--color-destructive);
520
+ @supports (color: color-mix(in lab, red, red)) {
521
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);
522
+ }
523
+ }
524
+ }
525
+ a& {
526
+ &:hover {
527
+ @media (hover: hover) {
528
+ background-color: var(--color-destructive);
529
+ @supports (color: color-mix(in lab, red, red)) {
530
+ background-color: color-mix(in oklab, var(--color-destructive) 90%, transparent);
531
+ }
532
+ }
533
+ }
534
+ }
535
+ }
536
+ .badge-outline {
537
+ color: var(--color-foreground);
538
+ a& {
539
+ &:hover {
540
+ @media (hover: hover) {
541
+ background-color: var(--color-accent);
542
+ }
543
+ }
544
+ }
545
+ a& {
546
+ &:hover {
547
+ @media (hover: hover) {
548
+ color: var(--color-accent-foreground);
549
+ }
550
+ }
551
+ }
552
+ }
553
+ }
554
+ }
555
+ @layer components {
556
+ .defuss-shadcn {
557
+ .defuss-skeleton {
558
+ border-radius: var(--radius-md);
559
+ background-color: var(--defuss-skeleton-bg, var(--color-accent, var(--defuss-accent, oklch(0.97 0 0))));
560
+ animation: defuss-skeleton-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
561
+ }
562
+ .btn, .btn-primary, .btn-secondary, .btn-outline, .btn-ghost, .btn-link, .btn-destructive, .btn-sm, .btn-sm-primary, .btn-sm-secondary, .btn-sm-outline, .btn-sm-ghost, .btn-sm-link, .btn-sm-destructive, .btn-lg, .btn-lg-primary, .btn-lg-secondary, .btn-lg-outline, .btn-lg-ghost, .btn-lg-link, .btn-lg-destructive, .btn-icon, .btn-icon-primary, .btn-icon-secondary, .btn-icon-outline, .btn-icon-ghost, .btn-icon-link, .btn-icon-destructive, .btn-sm-icon, .btn-sm-icon-primary, .btn-sm-icon-secondary, .btn-sm-icon-outline, .btn-sm-icon-ghost, .btn-sm-icon-link, .btn-sm-icon-destructive, .btn-lg-icon, .btn-lg-icon-primary, .btn-lg-icon-secondary, .btn-lg-icon-outline, .btn-lg-icon-ghost, .btn-lg-icon-link, .btn-lg-icon-destructive {
563
+ display: inline-flex;
564
+ flex-shrink: 0;
565
+ cursor: pointer;
566
+ align-items: center;
567
+ justify-content: center;
568
+ border-radius: var(--radius-md);
569
+ font-size: var(--text-sm);
570
+ line-height: var(--tw-leading, var(--text-sm--line-height));
571
+ --tw-font-weight: var(--font-weight-medium);
572
+ font-weight: var(--font-weight-medium);
573
+ white-space: nowrap;
574
+ transition-property: all;
575
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
576
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
577
+ --tw-outline-style: none;
578
+ outline-style: none;
579
+ &:focus-visible {
580
+ border-color: var(--color-ring);
581
+ }
582
+ &:focus-visible {
583
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
584
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
585
+ }
586
+ &:focus-visible {
587
+ --tw-ring-color: var(--color-ring);
588
+ @supports (color: color-mix(in lab, red, red)) {
589
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
590
+ }
591
+ }
592
+ &:disabled {
593
+ pointer-events: none;
594
+ }
595
+ &:disabled {
596
+ opacity: 50%;
597
+ }
598
+ &[aria-invalid="true"] {
599
+ border-color: var(--color-destructive);
600
+ }
601
+ &[aria-invalid="true"] {
602
+ --tw-ring-color: var(--color-destructive);
603
+ @supports (color: color-mix(in lab, red, red)) {
604
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);
605
+ }
606
+ }
607
+ &:is(.dark *) {
608
+ &[aria-invalid="true"] {
609
+ --tw-ring-color: var(--color-destructive);
610
+ @supports (color: color-mix(in lab, red, red)) {
611
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);
612
+ }
613
+ }
614
+ }
615
+ & svg {
616
+ pointer-events: none;
617
+ }
618
+ & svg {
619
+ flex-shrink: 0;
620
+ }
621
+ & svg:not([class*='size-']) {
622
+ width: calc(var(--spacing) * 4);
623
+ height: calc(var(--spacing) * 4);
624
+ }
625
+ }
626
+ .btn, .btn-primary, .btn-secondary, .btn-outline, .btn-ghost, .btn-link, .btn-destructive {
627
+ height: calc(var(--spacing) * 9);
628
+ gap: calc(var(--spacing) * 2);
629
+ padding-inline: calc(var(--spacing) * 4);
630
+ padding-block: calc(var(--spacing) * 2);
631
+ &:has(>svg) {
632
+ padding-inline: calc(var(--spacing) * 3);
633
+ }
634
+ }
635
+ .btn-icon, .btn-icon-primary, .btn-icon-secondary, .btn-icon-outline, .btn-icon-ghost, .btn-icon-link, .btn-icon-destructive {
636
+ width: calc(var(--spacing) * 9);
637
+ height: calc(var(--spacing) * 9);
638
+ }
639
+ .btn-sm, .btn-sm-primary, .btn-sm-secondary, .btn-sm-outline, .btn-sm-ghost, .btn-sm-link, .btn-sm-destructive {
640
+ height: calc(var(--spacing) * 8);
641
+ gap: calc(var(--spacing) * 1.5);
642
+ padding-inline: calc(var(--spacing) * 3);
643
+ &:has(>svg) {
644
+ padding-inline: calc(var(--spacing) * 2.5);
645
+ }
646
+ }
647
+ .btn-sm-icon, .btn-sm-icon-primary, .btn-sm-icon-secondary, .btn-sm-icon-outline, .btn-sm-icon-ghost, .btn-sm-icon-link, .btn-sm-icon-destructive {
648
+ width: calc(var(--spacing) * 8);
649
+ height: calc(var(--spacing) * 8);
650
+ }
651
+ .btn-lg, .btn-lg-primary, .btn-lg-secondary, .btn-lg-outline, .btn-lg-ghost, .btn-lg-link, .btn-lg-destructive {
652
+ height: calc(var(--spacing) * 10);
653
+ gap: calc(var(--spacing) * 2);
654
+ padding-inline: calc(var(--spacing) * 6);
655
+ &:has(>svg) {
656
+ padding-inline: calc(var(--spacing) * 4);
657
+ }
658
+ }
659
+ .btn-lg-icon, .btn-lg-icon-primary, .btn-lg-icon-secondary, .btn-lg-icon-outline, .btn-lg-icon-ghost, .btn-lg-icon-link, .btn-lg-icon-destructive {
660
+ width: calc(var(--spacing) * 10);
661
+ height: calc(var(--spacing) * 10);
662
+ }
663
+ .btn, .btn-primary, .btn-sm, .btn-sm-primary, .btn-lg, .btn-lg-primary, .btn-icon, .btn-icon-primary, .btn-sm-icon, .btn-sm-icon-primary, .btn-lg-icon, .btn-lg-icon-primary {
664
+ background-color: var(--color-primary);
665
+ color: var(--color-primary-foreground);
666
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
667
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
668
+ &:hover {
669
+ @media (hover: hover) {
670
+ background-color: var(--color-primary);
671
+ @supports (color: color-mix(in lab, red, red)) {
672
+ background-color: color-mix(in oklab, var(--color-primary) 90%, transparent);
673
+ }
674
+ }
675
+ }
676
+ &[aria-pressed='true'] {
677
+ background-color: var(--color-primary);
678
+ @supports (color: color-mix(in lab, red, red)) {
679
+ background-color: color-mix(in oklab, var(--color-primary) 90%, transparent);
680
+ }
681
+ }
682
+ }
683
+ .btn-secondary, .btn-sm-secondary, .btn-lg-secondary, .btn-icon-secondary, .btn-sm-icon-secondary, .btn-lg-icon-secondary {
684
+ background-color: var(--color-secondary);
685
+ color: var(--color-secondary-foreground);
686
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
687
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
688
+ &:hover, &[aria-pressed='true'] {
689
+ background-color: var(--color-secondary);
690
+ @supports (color: color-mix(in lab, red, red)) {
691
+ background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent);
692
+ }
693
+ }
694
+ }
695
+ .btn-outline, .btn-sm-outline, .btn-lg-outline, .btn-icon-outline, .btn-sm-icon-outline, .btn-lg-icon-outline {
696
+ border-style: var(--tw-border-style);
697
+ border-width: 1px;
698
+ background-color: var(--color-background);
699
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
700
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
701
+ &:is(.dark *) {
702
+ border-color: var(--color-input);
703
+ }
704
+ &:is(.dark *) {
705
+ background-color: var(--color-input);
706
+ @supports (color: color-mix(in lab, red, red)) {
707
+ background-color: color-mix(in oklab, var(--color-input) 30%, transparent);
708
+ }
709
+ }
710
+ &:hover, &[aria-pressed='true'] {
711
+ background-color: var(--color-accent);
712
+ color: var(--color-accent-foreground);
713
+ &:is(.dark *) {
714
+ background-color: var(--color-accent);
715
+ @supports (color: color-mix(in lab, red, red)) {
716
+ background-color: color-mix(in oklab, var(--color-accent) 50%, transparent);
717
+ }
718
+ }
719
+ }
720
+ }
721
+ .btn-ghost, .btn-sm-ghost, .btn-lg-ghost, .btn-icon-ghost, .btn-sm-icon-ghost, .btn-lg-icon-ghost {
722
+ &:hover, &[aria-pressed='true'] {
723
+ background-color: var(--color-accent);
724
+ color: var(--color-accent-foreground);
725
+ &:is(.dark *) {
726
+ background-color: var(--color-accent);
727
+ @supports (color: color-mix(in lab, red, red)) {
728
+ background-color: color-mix(in oklab, var(--color-accent) 50%, transparent);
729
+ }
730
+ }
731
+ }
732
+ }
733
+ .btn-link, .btn-sm-link, .btn-lg-link, .btn-icon-link, .btn-sm-icon-link, .btn-lg-icon-link {
734
+ color: var(--color-primary);
735
+ text-underline-offset: 4px;
736
+ &:hover, &[aria-pressed='true'] {
737
+ &:hover {
738
+ @media (hover: hover) {
739
+ text-decoration-line: underline;
740
+ }
741
+ }
742
+ }
743
+ }
744
+ .btn-destructive, .btn-sm-destructive, .btn-lg-destructive, .btn-icon-destructive, .btn-sm-icon-destructive, .btn-lg-icon-destructive {
745
+ background-color: var(--color-destructive);
746
+ color: var(--color-white);
747
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
748
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
749
+ &:focus-visible {
750
+ --tw-ring-color: var(--color-destructive);
751
+ @supports (color: color-mix(in lab, red, red)) {
752
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);
753
+ }
754
+ }
755
+ &:is(.dark *) {
756
+ background-color: var(--color-destructive);
757
+ @supports (color: color-mix(in lab, red, red)) {
758
+ background-color: color-mix(in oklab, var(--color-destructive) 60%, transparent);
759
+ }
760
+ }
761
+ &:is(.dark *) {
762
+ &:focus-visible {
763
+ --tw-ring-color: var(--color-destructive);
764
+ @supports (color: color-mix(in lab, red, red)) {
765
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);
766
+ }
767
+ }
768
+ }
769
+ &:hover, &[aria-pressed='true'] {
770
+ background-color: var(--color-destructive);
771
+ @supports (color: color-mix(in lab, red, red)) {
772
+ background-color: color-mix(in oklab, var(--color-destructive) 90%, transparent);
773
+ }
774
+ &:is(.dark *) {
775
+ background-color: var(--color-destructive);
776
+ @supports (color: color-mix(in lab, red, red)) {
777
+ background-color: color-mix(in oklab, var(--color-destructive) 50%, transparent);
778
+ }
779
+ }
780
+ }
781
+ }
782
+ }
783
+ }
784
+ @layer components {
785
+ .defuss-shadcn {
786
+ .button-group {
787
+ display: inline-flex;
788
+ width: fit-content;
789
+ align-items: stretch;
790
+ > *:focus-visible, > :is(.dropdown-menu, .popover, .select) > button:focus-visible {
791
+ position: relative;
792
+ z-index: 10;
793
+ }
794
+ > hr[role='separator'] {
795
+ margin: calc(var(--spacing) * 0);
796
+ height: auto;
797
+ width: calc(var(--spacing) * 0);
798
+ flex-shrink: 0;
799
+ align-self: stretch;
800
+ border-style: var(--tw-border-style);
801
+ border-width: 1px;
802
+ border-color: var(--color-input);
803
+ }
804
+ &:not([data-orientation='vertical']) {
805
+ > *:not(:first-child), > :is(.dropdown-menu, .popover, .select):not(:first-child) > button {
806
+ border-top-left-radius: 0;
807
+ border-bottom-left-radius: 0;
808
+ border-left-style: var(--tw-border-style);
809
+ border-left-width: 0px;
810
+ }
811
+ > *:not(:last-child), > :is(.dropdown-menu, .popover, .select):not(:last-child) > button {
812
+ border-top-right-radius: 0;
813
+ border-bottom-right-radius: 0;
814
+ }
815
+ }
816
+ &[data-orientation='vertical'] {
817
+ flex-direction: column;
818
+ > hr[role='separator'] {
819
+ height: 1px;
820
+ width: auto;
821
+ }
822
+ > *:not(:first-child), > :is(.dropdown-menu, .popover, .select):not(:first-child) > button {
823
+ border-top-left-radius: 0;
824
+ border-top-right-radius: 0;
825
+ border-top-style: var(--tw-border-style);
826
+ border-top-width: 0px;
827
+ }
828
+ > *:not(:last-child), > :is(.dropdown-menu, .popover, .select):not(:last-child) > button {
829
+ border-bottom-right-radius: 0;
830
+ border-bottom-left-radius: 0;
831
+ }
832
+ }
833
+ }
834
+ }
835
+ }
836
+ @layer components {
837
+ .defuss-shadcn {
838
+ .card {
839
+ display: flex;
840
+ flex-direction: column;
841
+ gap: calc(var(--spacing) * 6);
842
+ border-radius: var(--radius-xl);
843
+ border-style: var(--tw-border-style);
844
+ border-width: 1px;
845
+ background-color: var(--color-card);
846
+ padding-block: calc(var(--spacing) * 6);
847
+ color: var(--color-card-foreground);
848
+ --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));
849
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
850
+ > header {
851
+ container-type: inline-size;
852
+ container-name: card-header;
853
+ display: grid;
854
+ grid-auto-rows: min-content;
855
+ grid-template-rows: auto auto;
856
+ align-items: flex-start;
857
+ gap: calc(var(--spacing) * 1.5);
858
+ padding-inline: calc(var(--spacing) * 6);
859
+ &:has(*[data-slot="card-action"]) {
860
+ grid-template-columns: 1fr auto;
861
+ }
862
+ &:is(.border-b) {
863
+ padding-bottom: calc(var(--spacing) * 6);
864
+ }
865
+ h2 {
866
+ --tw-leading: 1;
867
+ line-height: 1;
868
+ --tw-font-weight: var(--font-weight-semibold);
869
+ font-weight: var(--font-weight-semibold);
870
+ }
871
+ p {
872
+ font-size: var(--text-sm);
873
+ line-height: var(--tw-leading, var(--text-sm--line-height));
874
+ color: var(--color-muted-foreground);
875
+ }
876
+ }
877
+ > section {
878
+ padding-inline: calc(var(--spacing) * 6);
879
+ }
880
+ > footer {
881
+ display: flex;
882
+ align-items: center;
883
+ padding-inline: calc(var(--spacing) * 6);
884
+ &:is(.border-t) {
885
+ padding-top: calc(var(--spacing) * 6);
886
+ }
887
+ }
888
+ }
889
+ }
890
+ }
891
+ @layer components {
892
+ .defuss-shadcn {
893
+ :is(.form, .field) input[type='checkbox']:not([role='switch']), .input[type='checkbox']:not([role='switch']) {
894
+ width: calc(var(--spacing) * 4);
895
+ height: calc(var(--spacing) * 4);
896
+ flex-shrink: 0;
897
+ appearance: none;
898
+ border-radius: 4px;
899
+ border-style: var(--tw-border-style);
900
+ border-width: 1px;
901
+ border-color: var(--color-input);
902
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
903
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
904
+ transition-property: box-shadow;
905
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
906
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
907
+ --tw-outline-style: none;
908
+ outline-style: none;
909
+ &:checked {
910
+ border-color: var(--color-primary);
911
+ }
912
+ &:checked {
913
+ background-color: var(--color-primary);
914
+ }
915
+ &:focus-visible {
916
+ border-color: var(--color-ring);
917
+ }
918
+ &:focus-visible {
919
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
920
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
921
+ }
922
+ &:focus-visible {
923
+ --tw-ring-color: var(--color-ring);
924
+ @supports (color: color-mix(in lab, red, red)) {
925
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
926
+ }
927
+ }
928
+ &:disabled {
929
+ cursor: not-allowed;
930
+ }
931
+ &:disabled {
932
+ opacity: 50%;
933
+ }
934
+ &[aria-invalid="true"] {
935
+ border-color: var(--color-destructive);
936
+ }
937
+ &[aria-invalid="true"] {
938
+ --tw-ring-color: var(--color-destructive);
939
+ @supports (color: color-mix(in lab, red, red)) {
940
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);
941
+ }
942
+ }
943
+ &:is(.dark *) {
944
+ background-color: var(--color-input);
945
+ @supports (color: color-mix(in lab, red, red)) {
946
+ background-color: color-mix(in oklab, var(--color-input) 30%, transparent);
947
+ }
948
+ }
949
+ &:is(.dark *) {
950
+ &:checked {
951
+ background-color: var(--color-primary);
952
+ }
953
+ }
954
+ &:is(.dark *) {
955
+ &[aria-invalid="true"] {
956
+ --tw-ring-color: var(--color-destructive);
957
+ @supports (color: color-mix(in lab, red, red)) {
958
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);
959
+ }
960
+ }
961
+ }
962
+ &:checked:after {
963
+ display: block;
964
+ width: calc(var(--spacing) * 3.5);
965
+ height: calc(var(--spacing) * 3.5);
966
+ background-color: var(--color-primary-foreground);
967
+ --tw-content: '';
968
+ content: var(--tw-content);
969
+ mask-image: var(--defuss-check-icon);
970
+ mask-size: 0.875rem;
971
+ mask-position: center;
972
+ mask-repeat: no-repeat;
973
+ }
974
+ }
975
+ }
976
+ }
977
+ @layer components {
978
+ .defuss-shadcn {
979
+ details {
980
+ &::details-content {
981
+ block-size: 0;
982
+ display: block;
983
+ opacity: 0%;
984
+ transition-property: all;
985
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
986
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
987
+ transition-behavior: allow-discrete;
988
+ }
989
+ &[open]::details-content {
990
+ block-size: auto;
991
+ block-size: calc-size(auto, size);
992
+ opacity: 100%;
993
+ }
994
+ summary {
995
+ display: inline-flex;
996
+ cursor: pointer;
997
+ align-items: center;
998
+ }
999
+ }
1000
+ details > summary::-webkit-details-marker {
1001
+ display: none;
1002
+ }
1003
+ }
1004
+ }
1005
+ @layer components {
1006
+ .defuss-shadcn {
1007
+ .command-dialog {
1008
+ inset-block: calc(var(--spacing) * 0);
1009
+ opacity: 0%;
1010
+ transition-property: all;
1011
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1012
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1013
+ transition-behavior: allow-discrete;
1014
+ &:is([open],:popover-open) {
1015
+ opacity: 100%;
1016
+ &::backdrop {
1017
+ opacity: 100%;
1018
+ }
1019
+ > * {
1020
+ --tw-scale-x: 100%;
1021
+ --tw-scale-y: 100%;
1022
+ --tw-scale-z: 100%;
1023
+ scale: var(--tw-scale-x) var(--tw-scale-y);
1024
+ }
1025
+ @starting-style {
1026
+ opacity: 0%;
1027
+ &::backdrop {
1028
+ opacity: 0%;
1029
+ }
1030
+ > * {
1031
+ --tw-scale-x: 95%;
1032
+ --tw-scale-y: 95%;
1033
+ --tw-scale-z: 95%;
1034
+ scale: var(--tw-scale-x) var(--tw-scale-y);
1035
+ }
1036
+ }
1037
+ }
1038
+ &::backdrop {
1039
+ background-color: color-mix(in srgb, #000 50%, transparent);
1040
+ @supports (color: color-mix(in lab, red, red)) {
1041
+ background-color: color-mix(in oklab, var(--color-black) 50%, transparent);
1042
+ }
1043
+ opacity: 0%;
1044
+ transition-property: all;
1045
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1046
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1047
+ transition-behavior: allow-discrete;
1048
+ }
1049
+ > * {
1050
+ position: fixed;
1051
+ top: 50%;
1052
+ left: 50%;
1053
+ z-index: 50;
1054
+ display: flex;
1055
+ max-height: min(640px, calc(100% - 2rem));
1056
+ width: 100%;
1057
+ max-width: calc(100% - 2rem);
1058
+ --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
1059
+ --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
1060
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1061
+ flex-direction: column;
1062
+ overflow: hidden;
1063
+ border-radius: var(--radius-lg);
1064
+ border-style: var(--tw-border-style);
1065
+ border-width: 1px;
1066
+ background-color: var(--color-background);
1067
+ --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));
1068
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1069
+ @media (width >= 40rem) {
1070
+ max-width: var(--container-lg);
1071
+ }
1072
+ --tw-scale-x: 95%;
1073
+ --tw-scale-y: 95%;
1074
+ --tw-scale-z: 95%;
1075
+ scale: var(--tw-scale-x) var(--tw-scale-y);
1076
+ transition-property: all;
1077
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1078
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1079
+ > button, > form[method='dialog'] {
1080
+ position: absolute;
1081
+ top: calc(var(--spacing) * 4);
1082
+ right: calc(var(--spacing) * 4);
1083
+ }
1084
+ > button, > form[method='dialog'] > button {
1085
+ border-radius: var(--radius-xs);
1086
+ opacity: 70%;
1087
+ --tw-ring-offset-color: var(--color-background);
1088
+ transition-property: opacity;
1089
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1090
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1091
+ &:hover {
1092
+ @media (hover: hover) {
1093
+ opacity: 100%;
1094
+ }
1095
+ }
1096
+ &:focus {
1097
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1098
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1099
+ }
1100
+ &:focus {
1101
+ --tw-ring-color: var(--color-ring);
1102
+ }
1103
+ &:focus {
1104
+ --tw-ring-offset-width: 2px;
1105
+ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1106
+ }
1107
+ &:focus {
1108
+ --tw-outline-style: none;
1109
+ outline-style: none;
1110
+ @media (forced-colors: active) {
1111
+ outline: 2px solid transparent;
1112
+ outline-offset: 2px;
1113
+ }
1114
+ }
1115
+ &:disabled {
1116
+ pointer-events: none;
1117
+ }
1118
+ &[data-state="open"] {
1119
+ background-color: var(--color-accent);
1120
+ }
1121
+ &[data-state="open"] {
1122
+ color: var(--color-muted-foreground);
1123
+ }
1124
+ & svg {
1125
+ pointer-events: none;
1126
+ }
1127
+ & svg {
1128
+ flex-shrink: 0;
1129
+ }
1130
+ & svg:not([class*='size-']) {
1131
+ width: calc(var(--spacing) * 4);
1132
+ height: calc(var(--spacing) * 4);
1133
+ }
1134
+ }
1135
+ }
1136
+ .command {
1137
+ > header input {
1138
+ height: calc(var(--spacing) * 12);
1139
+ }
1140
+ [role='menu'] {
1141
+ padding-inline: calc(var(--spacing) * 2);
1142
+ [role='menuitem'] {
1143
+ padding-inline: calc(var(--spacing) * 2);
1144
+ padding-block: calc(var(--spacing) * 3);
1145
+ & svg {
1146
+ width: calc(var(--spacing) * 5);
1147
+ height: calc(var(--spacing) * 5);
1148
+ }
1149
+ }
1150
+ [role='heading'] {
1151
+ padding-inline: calc(var(--spacing) * 2);
1152
+ padding-block: calc(var(--spacing) * 1.5);
1153
+ --tw-font-weight: var(--font-weight-medium);
1154
+ font-weight: var(--font-weight-medium);
1155
+ color: var(--color-muted-foreground);
1156
+ }
1157
+ }
1158
+ }
1159
+ }
1160
+ .command {
1161
+ > header {
1162
+ display: flex;
1163
+ align-items: center;
1164
+ gap: calc(var(--spacing) * 2);
1165
+ border-bottom-style: var(--tw-border-style);
1166
+ border-bottom-width: 1px;
1167
+ padding-inline: calc(var(--spacing) * 3);
1168
+ svg {
1169
+ width: calc(var(--spacing) * 4);
1170
+ height: calc(var(--spacing) * 4);
1171
+ flex-shrink: 0;
1172
+ opacity: 50%;
1173
+ }
1174
+ input {
1175
+ display: flex;
1176
+ height: calc(var(--spacing) * 10);
1177
+ width: 100%;
1178
+ border-radius: var(--radius-md);
1179
+ background-color: transparent;
1180
+ padding-block: calc(var(--spacing) * 3);
1181
+ font-size: var(--text-sm);
1182
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1183
+ --tw-outline-style: none;
1184
+ outline-style: none;
1185
+ @media (forced-colors: active) {
1186
+ outline: 2px solid transparent;
1187
+ outline-offset: 2px;
1188
+ }
1189
+ &::placeholder {
1190
+ color: var(--color-muted-foreground);
1191
+ }
1192
+ &:disabled {
1193
+ cursor: not-allowed;
1194
+ }
1195
+ &:disabled {
1196
+ opacity: 50%;
1197
+ }
1198
+ }
1199
+ }
1200
+ [role='menu'] {
1201
+ max-height: 300px;
1202
+ overflow-x: hidden;
1203
+ overflow-y: auto;
1204
+ padding: calc(var(--spacing) * 1);
1205
+ [role='menuitem'] {
1206
+ position: relative;
1207
+ display: flex;
1208
+ width: 100%;
1209
+ cursor: default;
1210
+ align-items: center;
1211
+ gap: calc(var(--spacing) * 2);
1212
+ overflow: hidden;
1213
+ text-overflow: ellipsis;
1214
+ white-space: nowrap;
1215
+ border-radius: var(--radius-sm);
1216
+ padding-inline: calc(var(--spacing) * 2);
1217
+ padding-block: calc(var(--spacing) * 1.5);
1218
+ font-size: var(--text-sm);
1219
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1220
+ --tw-outline-style: none;
1221
+ outline-style: none;
1222
+ @media (forced-colors: active) {
1223
+ outline: 2px solid transparent;
1224
+ outline-offset: 2px;
1225
+ }
1226
+ -webkit-user-select: none;
1227
+ user-select: none;
1228
+ &:disabled {
1229
+ pointer-events: none;
1230
+ }
1231
+ &:disabled {
1232
+ opacity: 50%;
1233
+ }
1234
+ &[aria-disabled="true"] {
1235
+ pointer-events: none;
1236
+ }
1237
+ &[aria-disabled="true"] {
1238
+ opacity: 50%;
1239
+ }
1240
+ &[aria-hidden="true"] {
1241
+ display: none;
1242
+ }
1243
+ & svg {
1244
+ pointer-events: none;
1245
+ }
1246
+ & svg {
1247
+ flex-shrink: 0;
1248
+ }
1249
+ & svg:not([class*='size-']) {
1250
+ width: calc(var(--spacing) * 4);
1251
+ height: calc(var(--spacing) * 4);
1252
+ }
1253
+ & svg:not([class*='text-']) {
1254
+ color: var(--color-muted-foreground);
1255
+ }
1256
+ &.active {
1257
+ background-color: var(--color-accent);
1258
+ color: var(--color-accent-foreground);
1259
+ }
1260
+ }
1261
+ [role='heading'] {
1262
+ display: flex;
1263
+ padding-inline: calc(var(--spacing) * 2);
1264
+ padding-block: calc(var(--spacing) * 1.5);
1265
+ font-size: var(--text-xs);
1266
+ line-height: var(--tw-leading, var(--text-xs--line-height));
1267
+ --tw-font-weight: var(--font-weight-medium);
1268
+ font-weight: var(--font-weight-medium);
1269
+ color: var(--color-muted-foreground);
1270
+ }
1271
+ [role='group']:not(:has([role='menuitem']:not([aria-hidden='true']))) {
1272
+ display: none;
1273
+ }
1274
+ [role='separator'] {
1275
+ margin-inline: calc(var(--spacing) * -1);
1276
+ margin-block: calc(var(--spacing) * 1);
1277
+ border-color: var(--color-border);
1278
+ }
1279
+ &:not(:has([role='menuitem']:not([aria-hidden='true'])))::before {
1280
+ margin: calc(var(--spacing) * -1);
1281
+ display: flex;
1282
+ align-items: center;
1283
+ justify-content: center;
1284
+ overflow: hidden;
1285
+ text-overflow: ellipsis;
1286
+ white-space: nowrap;
1287
+ padding-inline: calc(var(--spacing) * 3);
1288
+ padding-block: calc(var(--spacing) * 6);
1289
+ font-size: var(--text-sm);
1290
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1291
+ }
1292
+ &[data-empty]:not(:has([role='menuitem']:not([aria-hidden='true'])))::before {
1293
+ --tw-content: attr(data-empty);
1294
+ content: var(--tw-content);
1295
+ }
1296
+ &:not([data-empty]):not(:has([role='menuitem']:not([aria-hidden='true'])))::before {
1297
+ --tw-content: 'No results found';
1298
+ content: var(--tw-content);
1299
+ }
1300
+ }
1301
+ &:not([data-command-initialized]) [role='menuitem'] {
1302
+ &:hover {
1303
+ @media (hover: hover) {
1304
+ background-color: var(--color-accent);
1305
+ }
1306
+ }
1307
+ &:hover {
1308
+ @media (hover: hover) {
1309
+ color: var(--color-accent-foreground);
1310
+ }
1311
+ }
1312
+ }
1313
+ &:has(> header input:not(:placeholder-shown)) [role='separator'] {
1314
+ display: none;
1315
+ }
1316
+ }
1317
+ }
1318
+ }
1319
+ @layer components {
1320
+ .defuss-shadcn {
1321
+ .dialog {
1322
+ inset-block: calc(var(--spacing) * 0);
1323
+ opacity: 0%;
1324
+ transition-property: all;
1325
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1326
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1327
+ transition-behavior: allow-discrete;
1328
+ &:is([open],:popover-open) {
1329
+ opacity: 100%;
1330
+ &::backdrop {
1331
+ opacity: 100%;
1332
+ }
1333
+ > * {
1334
+ --tw-scale-x: 100%;
1335
+ --tw-scale-y: 100%;
1336
+ --tw-scale-z: 100%;
1337
+ scale: var(--tw-scale-x) var(--tw-scale-y);
1338
+ }
1339
+ @starting-style {
1340
+ opacity: 0%;
1341
+ &::backdrop {
1342
+ opacity: 0%;
1343
+ }
1344
+ > * {
1345
+ --tw-scale-x: 95%;
1346
+ --tw-scale-y: 95%;
1347
+ --tw-scale-z: 95%;
1348
+ scale: var(--tw-scale-x) var(--tw-scale-y);
1349
+ }
1350
+ }
1351
+ }
1352
+ &::backdrop {
1353
+ background-color: color-mix(in srgb, #000 50%, transparent);
1354
+ @supports (color: color-mix(in lab, red, red)) {
1355
+ background-color: color-mix(in oklab, var(--color-black) 50%, transparent);
1356
+ }
1357
+ opacity: 0%;
1358
+ transition-property: all;
1359
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1360
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1361
+ transition-behavior: allow-discrete;
1362
+ }
1363
+ > * {
1364
+ position: fixed;
1365
+ top: 50%;
1366
+ left: 50%;
1367
+ z-index: 50;
1368
+ display: flex;
1369
+ max-height: calc(100% - 2rem);
1370
+ width: 100%;
1371
+ max-width: calc(100% - 2rem);
1372
+ --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
1373
+ --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
1374
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1375
+ flex-direction: column;
1376
+ gap: calc(var(--spacing) * 4);
1377
+ border-radius: var(--radius-lg);
1378
+ border-style: var(--tw-border-style);
1379
+ border-width: 1px;
1380
+ background-color: var(--color-background);
1381
+ padding: calc(var(--spacing) * 6);
1382
+ --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));
1383
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1384
+ @media (width >= 40rem) {
1385
+ max-width: var(--container-lg);
1386
+ }
1387
+ --tw-scale-x: 95%;
1388
+ --tw-scale-y: 95%;
1389
+ --tw-scale-z: 95%;
1390
+ scale: var(--tw-scale-x) var(--tw-scale-y);
1391
+ transition-property: all;
1392
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1393
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1394
+ > header {
1395
+ display: flex;
1396
+ flex-direction: column;
1397
+ gap: calc(var(--spacing) * 2);
1398
+ text-align: center;
1399
+ @media (width >= 40rem) {
1400
+ text-align: left;
1401
+ }
1402
+ > h2 {
1403
+ font-size: var(--text-lg);
1404
+ line-height: var(--tw-leading, var(--text-lg--line-height));
1405
+ --tw-leading: 1;
1406
+ line-height: 1;
1407
+ --tw-font-weight: var(--font-weight-semibold);
1408
+ font-weight: var(--font-weight-semibold);
1409
+ }
1410
+ > p {
1411
+ font-size: var(--text-sm);
1412
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1413
+ color: var(--color-muted-foreground);
1414
+ }
1415
+ }
1416
+ > section {
1417
+ margin-inline: calc(var(--spacing) * -6);
1418
+ flex: 1;
1419
+ padding-inline: calc(var(--spacing) * 6);
1420
+ }
1421
+ > footer {
1422
+ display: flex;
1423
+ flex-direction: column-reverse;
1424
+ gap: calc(var(--spacing) * 2);
1425
+ @media (width >= 40rem) {
1426
+ flex-direction: row;
1427
+ }
1428
+ @media (width >= 40rem) {
1429
+ justify-content: flex-end;
1430
+ }
1431
+ }
1432
+ > button, > form[method='dialog'] {
1433
+ position: absolute;
1434
+ top: calc(var(--spacing) * 4);
1435
+ right: calc(var(--spacing) * 4);
1436
+ }
1437
+ > button, > form[method='dialog'] > button {
1438
+ border-radius: var(--radius-xs);
1439
+ opacity: 70%;
1440
+ --tw-ring-offset-color: var(--color-background);
1441
+ transition-property: opacity;
1442
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1443
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1444
+ &:hover {
1445
+ @media (hover: hover) {
1446
+ opacity: 100%;
1447
+ }
1448
+ }
1449
+ &:focus {
1450
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1451
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1452
+ }
1453
+ &:focus {
1454
+ --tw-ring-color: var(--color-ring);
1455
+ }
1456
+ &:focus {
1457
+ --tw-ring-offset-width: 2px;
1458
+ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1459
+ }
1460
+ &:focus {
1461
+ --tw-outline-style: none;
1462
+ outline-style: none;
1463
+ @media (forced-colors: active) {
1464
+ outline: 2px solid transparent;
1465
+ outline-offset: 2px;
1466
+ }
1467
+ }
1468
+ &:disabled {
1469
+ pointer-events: none;
1470
+ }
1471
+ &[data-state="open"] {
1472
+ background-color: var(--color-accent);
1473
+ }
1474
+ &[data-state="open"] {
1475
+ color: var(--color-muted-foreground);
1476
+ }
1477
+ & svg {
1478
+ pointer-events: none;
1479
+ }
1480
+ & svg {
1481
+ flex-shrink: 0;
1482
+ }
1483
+ & svg:not([class*='size-']) {
1484
+ width: calc(var(--spacing) * 4);
1485
+ height: calc(var(--spacing) * 4);
1486
+ }
1487
+ }
1488
+ }
1489
+ }
1490
+ }
1491
+ }
1492
+ @layer components {
1493
+ .defuss-shadcn {
1494
+ .dropdown-menu {
1495
+ position: relative;
1496
+ display: inline-flex;
1497
+ [data-popover] {
1498
+ padding: calc(var(--spacing) * 1);
1499
+ min-width: anchor-size(width);
1500
+ [role='menuitem'], [role='menuitemcheckbox'], [role='menuitemradio'] {
1501
+ position: relative;
1502
+ display: flex;
1503
+ width: 100%;
1504
+ cursor: default;
1505
+ align-items: center;
1506
+ gap: calc(var(--spacing) * 2);
1507
+ overflow: hidden;
1508
+ text-overflow: ellipsis;
1509
+ white-space: nowrap;
1510
+ border-radius: var(--radius-sm);
1511
+ padding-inline: calc(var(--spacing) * 2);
1512
+ padding-block: calc(var(--spacing) * 1.5);
1513
+ font-size: var(--text-sm);
1514
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1515
+ --tw-outline-style: none;
1516
+ outline-style: none;
1517
+ @media (forced-colors: active) {
1518
+ outline: 2px solid transparent;
1519
+ outline-offset: 2px;
1520
+ }
1521
+ -webkit-user-select: none;
1522
+ user-select: none;
1523
+ &:disabled {
1524
+ pointer-events: none;
1525
+ }
1526
+ &:disabled {
1527
+ opacity: 50%;
1528
+ }
1529
+ &[aria-disabled="true"] {
1530
+ pointer-events: none;
1531
+ }
1532
+ &[aria-disabled="true"] {
1533
+ opacity: 50%;
1534
+ }
1535
+ &[aria-hidden="true"] {
1536
+ display: none;
1537
+ }
1538
+ & svg {
1539
+ width: calc(var(--spacing) * 4);
1540
+ height: calc(var(--spacing) * 4);
1541
+ }
1542
+ & svg {
1543
+ flex-shrink: 0;
1544
+ }
1545
+ & svg {
1546
+ color: var(--color-muted-foreground);
1547
+ }
1548
+ &:not([aria-disabled='true']) {
1549
+ &:focus-visible {
1550
+ background-color: var(--color-accent);
1551
+ }
1552
+ &:focus-visible {
1553
+ color: var(--color-accent-foreground);
1554
+ }
1555
+ }
1556
+ &.active {
1557
+ background-color: var(--color-accent);
1558
+ color: var(--color-accent-foreground);
1559
+ }
1560
+ }
1561
+ [role='menu'] [role='heading'] {
1562
+ display: flex;
1563
+ padding-inline: calc(var(--spacing) * 2);
1564
+ padding-block: calc(var(--spacing) * 1.5);
1565
+ font-size: var(--text-sm);
1566
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1567
+ --tw-font-weight: var(--font-weight-medium);
1568
+ font-weight: var(--font-weight-medium);
1569
+ }
1570
+ [role='separator'] {
1571
+ margin-inline: calc(var(--spacing) * -1);
1572
+ margin-block: calc(var(--spacing) * 1);
1573
+ border-color: var(--color-border);
1574
+ }
1575
+ }
1576
+ &:not([data-dropdown-menu-initialized]) [data-popover] {
1577
+ [role='menuitem'], [role='menuitemcheckbox'], [role='menuitemradio'] {
1578
+ &:hover {
1579
+ @media (hover: hover) {
1580
+ background-color: var(--color-accent);
1581
+ }
1582
+ }
1583
+ &:hover {
1584
+ @media (hover: hover) {
1585
+ color: var(--color-accent-foreground);
1586
+ }
1587
+ }
1588
+ }
1589
+ }
1590
+ }
1591
+ }
1592
+ }
1593
+ @layer components {
1594
+ .defuss-shadcn {
1595
+ .fieldset {
1596
+ display: flex;
1597
+ flex-direction: column;
1598
+ gap: calc(var(--spacing) * 6);
1599
+ > legend {
1600
+ margin-bottom: calc(var(--spacing) * 3);
1601
+ font-size: var(--text-base);
1602
+ line-height: var(--tw-leading, var(--text-base--line-height));
1603
+ --tw-font-weight: var(--font-weight-medium);
1604
+ font-weight: var(--font-weight-medium);
1605
+ }
1606
+ }
1607
+ .field {
1608
+ display: flex;
1609
+ width: 100%;
1610
+ flex-direction: column;
1611
+ gap: calc(var(--spacing) * 3);
1612
+ &[data-invalid="true"] {
1613
+ color: var(--color-destructive);
1614
+ }
1615
+ &>* {
1616
+ width: 100%;
1617
+ }
1618
+ &>.sr-only {
1619
+ width: auto;
1620
+ }
1621
+ h2, h3 {
1622
+ display: flex;
1623
+ width: fit-content;
1624
+ align-items: center;
1625
+ gap: calc(var(--spacing) * 2);
1626
+ font-size: var(--text-sm);
1627
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1628
+ --tw-leading: var(--leading-snug);
1629
+ line-height: var(--leading-snug);
1630
+ --tw-font-weight: var(--font-weight-medium);
1631
+ font-weight: var(--font-weight-medium);
1632
+ }
1633
+ [role="alert"] {
1634
+ font-size: var(--text-sm);
1635
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1636
+ --tw-font-weight: var(--font-weight-normal);
1637
+ font-weight: var(--font-weight-normal);
1638
+ color: var(--color-destructive);
1639
+ ul {
1640
+ margin-left: calc(var(--spacing) * 4);
1641
+ display: flex;
1642
+ list-style-type: disc;
1643
+ flex-direction: column;
1644
+ gap: calc(var(--spacing) * 1);
1645
+ }
1646
+ }
1647
+ section {
1648
+ display: flex;
1649
+ flex: 1;
1650
+ flex-direction: column;
1651
+ gap: calc(var(--spacing) * 1.5);
1652
+ --tw-leading: var(--leading-snug);
1653
+ line-height: var(--leading-snug);
1654
+ }
1655
+ &[data-orientation='horizontal'] {
1656
+ flex-direction: row;
1657
+ align-items: center;
1658
+ &:has(>section) {
1659
+ align-items: flex-start;
1660
+ }
1661
+ & p {
1662
+ text-wrap: balance;
1663
+ }
1664
+ &:has(>section) {
1665
+ &>[type=checkbox],[type=radio] {
1666
+ margin-top: 1px;
1667
+ }
1668
+ }
1669
+ &>label {
1670
+ flex: auto;
1671
+ }
1672
+ }
1673
+ }
1674
+ .fieldset legend + p, .field > p, .field section > p {
1675
+ font-size: var(--text-sm);
1676
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1677
+ --tw-leading: var(--leading-normal);
1678
+ line-height: var(--leading-normal);
1679
+ --tw-font-weight: var(--font-weight-normal);
1680
+ font-weight: var(--font-weight-normal);
1681
+ color: var(--color-muted-foreground);
1682
+ &>a {
1683
+ text-decoration-line: underline;
1684
+ }
1685
+ &>a {
1686
+ text-underline-offset: 4px;
1687
+ }
1688
+ &>a:hover {
1689
+ color: var(--color-primary);
1690
+ }
1691
+ }
1692
+ .fieldset legend + p {
1693
+ margin-top: calc(var(--spacing) * -1.5);
1694
+ }
1695
+ .field > p {
1696
+ &:last-child {
1697
+ margin-top: calc(var(--spacing) * 0);
1698
+ }
1699
+ &:nth-last-child(2) {
1700
+ margin-top: calc(var(--spacing) * -1);
1701
+ }
1702
+ }
1703
+ }
1704
+ }
1705
+ @layer components {
1706
+ .defuss-shadcn {
1707
+ :is(.form, .field) input[type='text']:not(:is(.select [data-popover] > header input[role='combobox'], .command > header input, .dialog > * > header input)), :is(.form, .field) input[type='email'], :is(.form, .field) input[type='password'], :is(.form, .field) input[type='number'], :is(.form, .field) input[type='file'], :is(.form, .field) input[type='tel'], :is(.form, .field) input[type='url'], :is(.form, .field) input[type='search']:not(:is(.select [data-popover] > header input[role='combobox'], .command > header input, .dialog > * > header input)), :is(.form, .field) input[type='date'], :is(.form, .field) input[type='datetime-local'], :is(.form, .field) input[type='month'], :is(.form, .field) input[type='week'], :is(.form, .field) input[type='time'], .input[type='text'], .input[type='email'], .input[type='password'], .input[type='number'], .input[type='file'], .input[type='tel'], .input[type='url'], .input[type='search'], .input[type='date'], .input[type='datetime-local'], .input[type='month'], .input[type='week'], .input[type='time'] {
1708
+ display: flex;
1709
+ height: calc(var(--spacing) * 9);
1710
+ width: 100%;
1711
+ min-width: calc(var(--spacing) * 0);
1712
+ appearance: none;
1713
+ border-radius: var(--radius-md);
1714
+ border-style: var(--tw-border-style);
1715
+ border-width: 1px;
1716
+ border-color: var(--color-input);
1717
+ background-color: transparent;
1718
+ padding-inline: calc(var(--spacing) * 3);
1719
+ padding-block: calc(var(--spacing) * 1);
1720
+ font-size: var(--text-base);
1721
+ line-height: var(--tw-leading, var(--text-base--line-height));
1722
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
1723
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1724
+ transition-property: color,box-shadow;
1725
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1726
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1727
+ --tw-outline-style: none;
1728
+ outline-style: none;
1729
+ & *::selection {
1730
+ background-color: var(--color-primary);
1731
+ }
1732
+ &::selection {
1733
+ background-color: var(--color-primary);
1734
+ }
1735
+ & *::selection {
1736
+ color: var(--color-primary-foreground);
1737
+ }
1738
+ &::selection {
1739
+ color: var(--color-primary-foreground);
1740
+ }
1741
+ &::file-selector-button {
1742
+ display: inline-flex;
1743
+ }
1744
+ &::file-selector-button {
1745
+ height: calc(var(--spacing) * 7);
1746
+ }
1747
+ &::file-selector-button {
1748
+ border-style: var(--tw-border-style);
1749
+ border-width: 0px;
1750
+ }
1751
+ &::file-selector-button {
1752
+ background-color: transparent;
1753
+ }
1754
+ &::file-selector-button {
1755
+ font-size: var(--text-sm);
1756
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1757
+ }
1758
+ &::file-selector-button {
1759
+ --tw-font-weight: var(--font-weight-medium);
1760
+ font-weight: var(--font-weight-medium);
1761
+ }
1762
+ &::file-selector-button {
1763
+ color: var(--color-foreground);
1764
+ }
1765
+ &::placeholder {
1766
+ color: var(--color-muted-foreground);
1767
+ }
1768
+ &:disabled {
1769
+ pointer-events: none;
1770
+ }
1771
+ &:disabled {
1772
+ cursor: not-allowed;
1773
+ }
1774
+ &:disabled {
1775
+ opacity: 50%;
1776
+ }
1777
+ @media (width >= 48rem) {
1778
+ font-size: var(--text-sm);
1779
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1780
+ }
1781
+ &:is(.dark *) {
1782
+ background-color: var(--color-input);
1783
+ @supports (color: color-mix(in lab, red, red)) {
1784
+ background-color: color-mix(in oklab, var(--color-input) 30%, transparent);
1785
+ }
1786
+ }
1787
+ &:focus-visible {
1788
+ border-color: var(--color-ring);
1789
+ }
1790
+ &:focus-visible {
1791
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1792
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1793
+ }
1794
+ &:focus-visible {
1795
+ --tw-ring-color: var(--color-ring);
1796
+ @supports (color: color-mix(in lab, red, red)) {
1797
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
1798
+ }
1799
+ }
1800
+ &[aria-invalid="true"] {
1801
+ border-color: var(--color-destructive);
1802
+ }
1803
+ &[aria-invalid="true"] {
1804
+ --tw-ring-color: var(--color-destructive);
1805
+ @supports (color: color-mix(in lab, red, red)) {
1806
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);
1807
+ }
1808
+ }
1809
+ &:is(.dark *) {
1810
+ &[aria-invalid="true"] {
1811
+ --tw-ring-color: var(--color-destructive);
1812
+ @supports (color: color-mix(in lab, red, red)) {
1813
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);
1814
+ }
1815
+ }
1816
+ }
1817
+ }
1818
+ }
1819
+ }
1820
+ @layer components {
1821
+ .defuss-shadcn {
1822
+ .kbd {
1823
+ pointer-events: none;
1824
+ display: inline-flex;
1825
+ height: calc(var(--spacing) * 5);
1826
+ width: fit-content;
1827
+ min-width: calc(var(--spacing) * 5);
1828
+ align-items: center;
1829
+ justify-content: center;
1830
+ gap: calc(var(--spacing) * 1);
1831
+ border-radius: var(--radius-sm);
1832
+ background-color: var(--color-muted);
1833
+ padding-inline: calc(var(--spacing) * 1);
1834
+ font-family: var(--font-sans);
1835
+ font-size: var(--text-xs);
1836
+ line-height: var(--tw-leading, var(--text-xs--line-height));
1837
+ --tw-font-weight: var(--font-weight-medium);
1838
+ font-weight: var(--font-weight-medium);
1839
+ color: var(--color-muted-foreground);
1840
+ -webkit-user-select: none;
1841
+ user-select: none;
1842
+ & svg:not([class*='size-']) {
1843
+ width: calc(var(--spacing) * 3);
1844
+ height: calc(var(--spacing) * 3);
1845
+ }
1846
+ }
1847
+ }
1848
+ }
1849
+ @layer components {
1850
+ .defuss-shadcn {
1851
+ :is(.form, .field) label, .label {
1852
+ display: flex;
1853
+ align-items: center;
1854
+ gap: calc(var(--spacing) * 2);
1855
+ font-size: var(--text-sm);
1856
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1857
+ --tw-leading: 1;
1858
+ line-height: 1;
1859
+ --tw-font-weight: var(--font-weight-medium);
1860
+ font-weight: var(--font-weight-medium);
1861
+ -webkit-user-select: none;
1862
+ user-select: none;
1863
+ &:is(:where(.peer):disabled ~ *) {
1864
+ pointer-events: none;
1865
+ }
1866
+ &:is(:where(.peer):disabled ~ *) {
1867
+ opacity: 50%;
1868
+ }
1869
+ &:has(>*:disabled), &:has(+*:disabled) {
1870
+ pointer-events: none;
1871
+ opacity: 50%;
1872
+ }
1873
+ }
1874
+ }
1875
+ }
1876
+ @layer components {
1877
+ .defuss-shadcn {
1878
+ [data-popover] {
1879
+ visibility: visible;
1880
+ position: absolute;
1881
+ z-index: 50;
1882
+ width: max-content;
1883
+ min-width: 100%;
1884
+ --tw-scale-x: 100%;
1885
+ --tw-scale-y: 100%;
1886
+ --tw-scale-z: 100%;
1887
+ scale: var(--tw-scale-x) var(--tw-scale-y);
1888
+ overflow-x: hidden;
1889
+ overflow-y: auto;
1890
+ border-radius: var(--radius-md);
1891
+ border-style: var(--tw-border-style);
1892
+ border-width: 1px;
1893
+ background-color: var(--color-popover);
1894
+ color: var(--color-popover-foreground);
1895
+ opacity: 100%;
1896
+ --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));
1897
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1898
+ transition-property: all;
1899
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1900
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1901
+ &[aria-hidden='true'] {
1902
+ visibility: hidden;
1903
+ --tw-scale-x: 95%;
1904
+ --tw-scale-y: 95%;
1905
+ --tw-scale-z: 95%;
1906
+ scale: var(--tw-scale-x) var(--tw-scale-y);
1907
+ opacity: 0%;
1908
+ &:not([data-side]), &[data-side='bottom'] {
1909
+ --tw-translate-y: calc(var(--spacing) * -2);
1910
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1911
+ }
1912
+ &[data-side='top'] {
1913
+ --tw-translate-y: calc(var(--spacing) * 2);
1914
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1915
+ }
1916
+ &[data-side='left'] {
1917
+ --tw-translate-x: calc(var(--spacing) * 2);
1918
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1919
+ }
1920
+ &[data-side='right'] {
1921
+ --tw-translate-x: calc(var(--spacing) * -2);
1922
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1923
+ }
1924
+ }
1925
+ &:not([data-side]), &[data-side='bottom'] {
1926
+ top: 100%;
1927
+ margin-top: calc(var(--spacing) * 1);
1928
+ }
1929
+ &[data-side='top'] {
1930
+ bottom: 100%;
1931
+ margin-bottom: calc(var(--spacing) * 1);
1932
+ }
1933
+ &[data-side='left'] {
1934
+ right: 100%;
1935
+ margin-right: calc(var(--spacing) * 1);
1936
+ }
1937
+ &[data-side='right'] {
1938
+ left: 100%;
1939
+ margin-left: calc(var(--spacing) * 1);
1940
+ }
1941
+ &:not([data-side]), &[data-side='bottom'], &[data-side='top'] {
1942
+ &:not([data-align]), &[data-align='start'] {
1943
+ left: calc(var(--spacing) * 0);
1944
+ }
1945
+ &[data-align='end'] {
1946
+ right: calc(var(--spacing) * 0);
1947
+ }
1948
+ &[data-align='center'] {
1949
+ left: calc(1 / 2 * 100%);
1950
+ --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
1951
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1952
+ }
1953
+ }
1954
+ &[data-side='left'], &[data-side='right'] {
1955
+ &:not([data-align]), &[data-align='start'] {
1956
+ top: calc(var(--spacing) * 0);
1957
+ }
1958
+ &[data-align='end'] {
1959
+ bottom: calc(var(--spacing) * 0);
1960
+ }
1961
+ &[data-align='center'] {
1962
+ top: calc(1 / 2 * 100%);
1963
+ --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
1964
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1965
+ }
1966
+ }
1967
+ }
1968
+ .popover {
1969
+ position: relative;
1970
+ display: inline-flex;
1971
+ [data-popover] {
1972
+ padding: calc(var(--spacing) * 4);
1973
+ }
1974
+ }
1975
+ }
1976
+ }
1977
+ @layer components {
1978
+ .defuss-shadcn {
1979
+ :is(.form, .field) input[type='radio'], .input[type='radio'] {
1980
+ position: relative;
1981
+ aspect-ratio: 1 / 1;
1982
+ width: calc(var(--spacing) * 4);
1983
+ height: calc(var(--spacing) * 4);
1984
+ flex-shrink: 0;
1985
+ appearance: none;
1986
+ border-radius: calc(infinity * 1px);
1987
+ border-style: var(--tw-border-style);
1988
+ border-width: 1px;
1989
+ border-color: var(--color-input);
1990
+ color: var(--color-primary);
1991
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
1992
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1993
+ transition-property: color,box-shadow;
1994
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1995
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1996
+ --tw-outline-style: none;
1997
+ outline-style: none;
1998
+ &:focus-visible {
1999
+ border-color: var(--color-ring);
2000
+ }
2001
+ &:focus-visible {
2002
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2003
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2004
+ }
2005
+ &:focus-visible {
2006
+ --tw-ring-color: var(--color-ring);
2007
+ @supports (color: color-mix(in lab, red, red)) {
2008
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
2009
+ }
2010
+ }
2011
+ &:disabled {
2012
+ cursor: not-allowed;
2013
+ }
2014
+ &:disabled {
2015
+ opacity: 50%;
2016
+ }
2017
+ &[aria-invalid="true"] {
2018
+ border-color: var(--color-destructive);
2019
+ }
2020
+ &[aria-invalid="true"] {
2021
+ --tw-ring-color: var(--color-destructive);
2022
+ @supports (color: color-mix(in lab, red, red)) {
2023
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);
2024
+ }
2025
+ }
2026
+ &:is(.dark *) {
2027
+ background-color: var(--color-input);
2028
+ @supports (color: color-mix(in lab, red, red)) {
2029
+ background-color: color-mix(in oklab, var(--color-input) 30%, transparent);
2030
+ }
2031
+ }
2032
+ &:is(.dark *) {
2033
+ &[aria-invalid="true"] {
2034
+ --tw-ring-color: var(--color-destructive);
2035
+ @supports (color: color-mix(in lab, red, red)) {
2036
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);
2037
+ }
2038
+ }
2039
+ }
2040
+ &:checked:before {
2041
+ position: absolute;
2042
+ top: calc(1 / 2 * 100%);
2043
+ left: calc(1 / 2 * 100%);
2044
+ width: calc(var(--spacing) * 2);
2045
+ height: calc(var(--spacing) * 2);
2046
+ --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
2047
+ --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
2048
+ translate: var(--tw-translate-x) var(--tw-translate-y);
2049
+ border-radius: calc(infinity * 1px);
2050
+ background-color: var(--color-primary);
2051
+ --tw-content: '';
2052
+ content: var(--tw-content);
2053
+ }
2054
+ }
2055
+ }
2056
+ }
2057
+ @layer components {
2058
+ .defuss-shadcn {
2059
+ :is(.form, .field) input[type='range'], .input[type='range'] {
2060
+ display: flex;
2061
+ appearance: none;
2062
+ align-items: center;
2063
+ padding: calc(var(--spacing) * 0);
2064
+ --tw-outline-style: none;
2065
+ outline-style: none;
2066
+ --slider-value: 20%;
2067
+ &:hover, &:focus-visible {
2068
+ &::-webkit-slider-thumb {
2069
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2070
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2071
+ }
2072
+ &::-moz-range-thumb {
2073
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2074
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2075
+ }
2076
+ &::-ms-thumb {
2077
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2078
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2079
+ }
2080
+ }
2081
+ &::-webkit-slider-thumb {
2082
+ margin-top: calc(var(--spacing) * -1.25);
2083
+ display: block;
2084
+ width: calc(var(--spacing) * 4);
2085
+ height: calc(var(--spacing) * 4);
2086
+ flex-shrink: 0;
2087
+ appearance: none;
2088
+ border-radius: calc(infinity * 1px);
2089
+ border-style: var(--tw-border-style);
2090
+ border-width: 1px;
2091
+ border-color: var(--color-primary);
2092
+ background-color: var(--color-background);
2093
+ --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));
2094
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2095
+ --tw-ring-color: var(--color-ring);
2096
+ @supports (color: color-mix(in lab, red, red)) {
2097
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
2098
+ }
2099
+ }
2100
+ &::-webkit-slider-runnable-track {
2101
+ height: calc(var(--spacing) * 1.5);
2102
+ width: 100%;
2103
+ appearance: none;
2104
+ border-radius: calc(infinity * 1px);
2105
+ background: linear-gradient(to right, var(--defuss-primary) var(--slider-value), var(--defuss-muted) var(--slider-value));
2106
+ }
2107
+ &::-moz-range-thumb {
2108
+ margin-top: calc(var(--spacing) * -1.25);
2109
+ display: block;
2110
+ width: calc(var(--spacing) * 4);
2111
+ height: calc(var(--spacing) * 4);
2112
+ flex-shrink: 0;
2113
+ appearance: none;
2114
+ border-radius: calc(infinity * 1px);
2115
+ border-style: var(--tw-border-style);
2116
+ border-width: 1px;
2117
+ border-color: var(--color-primary);
2118
+ background-color: var(--color-background);
2119
+ --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));
2120
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2121
+ --tw-ring-color: var(--color-ring);
2122
+ @supports (color: color-mix(in lab, red, red)) {
2123
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
2124
+ }
2125
+ }
2126
+ &::-moz-range-track {
2127
+ height: calc(var(--spacing) * 1.5);
2128
+ width: 100%;
2129
+ appearance: none;
2130
+ border-radius: calc(infinity * 1px);
2131
+ background: linear-gradient(to right, var(--defuss-primary) var(--slider-value), var(--defuss-muted) var(--slider-value));
2132
+ }
2133
+ &::-ms-thumb {
2134
+ margin-top: calc(var(--spacing) * -1.25);
2135
+ display: block;
2136
+ width: calc(var(--spacing) * 4);
2137
+ height: calc(var(--spacing) * 4);
2138
+ flex-shrink: 0;
2139
+ appearance: none;
2140
+ border-radius: calc(infinity * 1px);
2141
+ border-style: var(--tw-border-style);
2142
+ border-width: 1px;
2143
+ border-color: var(--color-primary);
2144
+ background-color: var(--color-background);
2145
+ --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));
2146
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2147
+ --tw-ring-color: var(--color-ring);
2148
+ @supports (color: color-mix(in lab, red, red)) {
2149
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
2150
+ }
2151
+ }
2152
+ &::-ms-track {
2153
+ height: calc(var(--spacing) * 1.5);
2154
+ width: 100%;
2155
+ appearance: none;
2156
+ border-radius: calc(infinity * 1px);
2157
+ }
2158
+ &::-ms-fill-lower {
2159
+ border-radius: calc(infinity * 1px);
2160
+ background-color: var(--color-primary);
2161
+ }
2162
+ &::-ms-fill-upper {
2163
+ border-radius: calc(infinity * 1px);
2164
+ background-color: var(--color-muted);
2165
+ }
2166
+ }
2167
+ }
2168
+ }
2169
+ @layer components {
2170
+ .defuss-shadcn {
2171
+ :is(.form, .field) select, select.select {
2172
+ display: flex;
2173
+ height: calc(var(--spacing) * 9);
2174
+ width: fit-content;
2175
+ appearance: none;
2176
+ align-items: center;
2177
+ justify-content: space-between;
2178
+ gap: calc(var(--spacing) * 2);
2179
+ border-radius: var(--radius-md);
2180
+ border-style: var(--tw-border-style);
2181
+ border-width: 1px;
2182
+ border-color: var(--color-input);
2183
+ background-color: transparent;
2184
+ padding-block: calc(var(--spacing) * 2);
2185
+ padding-right: calc(var(--spacing) * 9);
2186
+ padding-left: calc(var(--spacing) * 3);
2187
+ font-size: var(--text-sm);
2188
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2189
+ white-space: nowrap;
2190
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
2191
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2192
+ transition-property: color,box-shadow;
2193
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2194
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2195
+ --tw-outline-style: none;
2196
+ outline-style: none;
2197
+ &:focus-visible {
2198
+ border-color: var(--color-ring);
2199
+ }
2200
+ &:focus-visible {
2201
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2202
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2203
+ }
2204
+ &:focus-visible {
2205
+ --tw-ring-color: var(--color-ring);
2206
+ @supports (color: color-mix(in lab, red, red)) {
2207
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
2208
+ }
2209
+ }
2210
+ &:disabled {
2211
+ cursor: not-allowed;
2212
+ }
2213
+ &:disabled {
2214
+ opacity: 50%;
2215
+ }
2216
+ &[aria-invalid="true"] {
2217
+ border-color: var(--color-destructive);
2218
+ }
2219
+ &[aria-invalid="true"] {
2220
+ --tw-ring-color: var(--color-destructive);
2221
+ @supports (color: color-mix(in lab, red, red)) {
2222
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);
2223
+ }
2224
+ }
2225
+ &:is(.dark *) {
2226
+ background-color: var(--color-input);
2227
+ @supports (color: color-mix(in lab, red, red)) {
2228
+ background-color: color-mix(in oklab, var(--color-input) 30%, transparent);
2229
+ }
2230
+ }
2231
+ &:is(.dark *) {
2232
+ &:hover {
2233
+ @media (hover: hover) {
2234
+ background-color: var(--color-input);
2235
+ @supports (color: color-mix(in lab, red, red)) {
2236
+ background-color: color-mix(in oklab, var(--color-input) 50%, transparent);
2237
+ }
2238
+ }
2239
+ }
2240
+ }
2241
+ &:is(.dark *) {
2242
+ &[aria-invalid="true"] {
2243
+ --tw-ring-color: var(--color-destructive);
2244
+ @supports (color: color-mix(in lab, red, red)) {
2245
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);
2246
+ }
2247
+ }
2248
+ }
2249
+ background-image: var(--defuss-chevron-down-icon-50);
2250
+ background-size: 1rem;
2251
+ background-position: center right 0.75rem;
2252
+ background-repeat: no-repeat;
2253
+ option, optgroup {
2254
+ background-color: var(--color-popover);
2255
+ color: var(--color-popover-foreground);
2256
+ }
2257
+ }
2258
+ *:not(select).select {
2259
+ position: relative;
2260
+ display: inline-flex;
2261
+ & > button {
2262
+ justify-content: space-between;
2263
+ --tw-font-weight: var(--font-weight-normal);
2264
+ font-weight: var(--font-weight-normal);
2265
+ &[aria-invalid='true'] {
2266
+ border-color: var(--color-destructive);
2267
+ --tw-ring-color: var(--color-destructive);
2268
+ @supports (color: color-mix(in lab, red, red)) {
2269
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);
2270
+ }
2271
+ &:is(.dark *) {
2272
+ --tw-ring-color: var(--color-destructive);
2273
+ @supports (color: color-mix(in lab, red, red)) {
2274
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);
2275
+ }
2276
+ }
2277
+ }
2278
+ }
2279
+ [data-popover] {
2280
+ padding: calc(var(--spacing) * 1);
2281
+ [role='option'] {
2282
+ position: relative;
2283
+ display: flex;
2284
+ width: 100%;
2285
+ cursor: default;
2286
+ align-items: center;
2287
+ gap: calc(var(--spacing) * 2);
2288
+ overflow: hidden;
2289
+ text-overflow: ellipsis;
2290
+ white-space: nowrap;
2291
+ border-radius: var(--radius-sm);
2292
+ padding-block: calc(var(--spacing) * 1.5);
2293
+ padding-right: calc(var(--spacing) * 7.5);
2294
+ padding-left: calc(var(--spacing) * 2);
2295
+ font-size: var(--text-sm);
2296
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2297
+ --tw-outline-style: none;
2298
+ outline-style: none;
2299
+ @media (forced-colors: active) {
2300
+ outline: 2px solid transparent;
2301
+ outline-offset: 2px;
2302
+ }
2303
+ -webkit-user-select: none;
2304
+ user-select: none;
2305
+ &:disabled {
2306
+ pointer-events: none;
2307
+ }
2308
+ &:disabled {
2309
+ opacity: 50%;
2310
+ }
2311
+ &[aria-disabled="true"] {
2312
+ pointer-events: none;
2313
+ }
2314
+ &[aria-disabled="true"] {
2315
+ opacity: 50%;
2316
+ }
2317
+ &[aria-hidden="true"] {
2318
+ display: none;
2319
+ }
2320
+ & svg {
2321
+ width: calc(var(--spacing) * 4);
2322
+ height: calc(var(--spacing) * 4);
2323
+ }
2324
+ & svg {
2325
+ flex-shrink: 0;
2326
+ }
2327
+ & svg {
2328
+ color: var(--color-muted-foreground);
2329
+ }
2330
+ &[aria-selected='true'] {
2331
+ background-image: var(--defuss-check-icon);
2332
+ background-size: 0.875rem;
2333
+ background-position: center right 0.5rem;
2334
+ background-repeat: no-repeat;
2335
+ }
2336
+ &.active, &:focus-visible {
2337
+ background-color: var(--color-accent);
2338
+ color: var(--color-accent-foreground);
2339
+ }
2340
+ }
2341
+ [role='listbox'] [role='heading'] {
2342
+ display: flex;
2343
+ padding-inline: calc(var(--spacing) * 2);
2344
+ padding-block: calc(var(--spacing) * 1.5);
2345
+ font-size: var(--text-xs);
2346
+ line-height: var(--tw-leading, var(--text-xs--line-height));
2347
+ color: var(--color-muted-foreground);
2348
+ }
2349
+ [role='listbox'] [role='group']:not(:has([role='option']:not([aria-hidden='true']))) {
2350
+ display: none;
2351
+ }
2352
+ [role='separator'] {
2353
+ margin-inline: calc(var(--spacing) * -1);
2354
+ margin-block: calc(var(--spacing) * 1);
2355
+ border-color: var(--color-border);
2356
+ }
2357
+ > header {
2358
+ margin-inline: calc(var(--spacing) * -1);
2359
+ margin-top: calc(var(--spacing) * -1);
2360
+ margin-bottom: calc(var(--spacing) * 1);
2361
+ display: flex;
2362
+ height: calc(var(--spacing) * 9);
2363
+ align-items: center;
2364
+ gap: calc(var(--spacing) * 2);
2365
+ border-bottom-style: var(--tw-border-style);
2366
+ border-bottom-width: 1px;
2367
+ padding-inline: calc(var(--spacing) * 3);
2368
+ svg {
2369
+ width: calc(var(--spacing) * 4);
2370
+ height: calc(var(--spacing) * 4);
2371
+ flex-shrink: 0;
2372
+ opacity: 50%;
2373
+ }
2374
+ input[role='combobox'] {
2375
+ display: flex;
2376
+ height: calc(var(--spacing) * 10);
2377
+ width: 100%;
2378
+ min-width: calc(var(--spacing) * 0);
2379
+ flex: 1;
2380
+ border-radius: var(--radius-md);
2381
+ background-color: transparent;
2382
+ padding-block: calc(var(--spacing) * 3);
2383
+ font-size: var(--text-sm);
2384
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2385
+ --tw-outline-style: none;
2386
+ outline-style: none;
2387
+ @media (forced-colors: active) {
2388
+ outline: 2px solid transparent;
2389
+ outline-offset: 2px;
2390
+ }
2391
+ &::placeholder {
2392
+ color: var(--color-muted-foreground);
2393
+ }
2394
+ &:disabled {
2395
+ cursor: not-allowed;
2396
+ }
2397
+ &:disabled {
2398
+ opacity: 50%;
2399
+ }
2400
+ }
2401
+ }
2402
+ [role='listbox']:not(:has([data-value]:not([aria-hidden='true'])))::before {
2403
+ display: flex;
2404
+ align-items: center;
2405
+ justify-content: center;
2406
+ overflow: hidden;
2407
+ text-overflow: ellipsis;
2408
+ white-space: nowrap;
2409
+ padding: calc(var(--spacing) * 6);
2410
+ font-size: var(--text-sm);
2411
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2412
+ }
2413
+ [role='listbox'][data-empty]:not(:has([data-value]:not([aria-hidden='true'])))::before {
2414
+ --tw-content: attr(data-empty);
2415
+ content: var(--tw-content);
2416
+ }
2417
+ [role='listbox']:not([data-empty]):not(:has([data-value]:not([aria-hidden='true'])))::before {
2418
+ --tw-content: 'No results found';
2419
+ content: var(--tw-content);
2420
+ }
2421
+ }
2422
+ [data-popover]:has(> header input:not(:placeholder-shown)) [role='separator'] {
2423
+ display: none;
2424
+ }
2425
+ &:not([data-select-initialized]) [data-popover] [role='option'] {
2426
+ &:hover {
2427
+ @media (hover: hover) {
2428
+ background-color: var(--color-accent);
2429
+ }
2430
+ }
2431
+ &:hover {
2432
+ @media (hover: hover) {
2433
+ color: var(--color-accent-foreground);
2434
+ }
2435
+ }
2436
+ }
2437
+ }
2438
+ }
2439
+ }
2440
+ @layer components {
2441
+ .defuss-shadcn {
2442
+ .sidebar {
2443
+ &:not([data-sidebar-initialized]) {
2444
+ @media (width < 48rem) {
2445
+ display: none;
2446
+ }
2447
+ }
2448
+ &:not([aria-hidden]), &[aria-hidden=false] {
2449
+ @media (width < 48rem) {
2450
+ position: fixed;
2451
+ }
2452
+ @media (width < 48rem) {
2453
+ inset: calc(var(--spacing) * 0);
2454
+ }
2455
+ @media (width < 48rem) {
2456
+ z-index: 40;
2457
+ }
2458
+ @media (width < 48rem) {
2459
+ background-color: color-mix(in srgb, #000 50%, transparent);
2460
+ @supports (color: color-mix(in lab, red, red)) {
2461
+ background-color: color-mix(in oklab, var(--color-black) 50%, transparent);
2462
+ }
2463
+ }
2464
+ }
2465
+ nav {
2466
+ position: fixed;
2467
+ inset-block: calc(var(--spacing) * 0);
2468
+ z-index: 50;
2469
+ display: flex;
2470
+ width: var(--defuss-sidebar-mobile-width);
2471
+ flex-direction: column;
2472
+ background-color: var(--color-sidebar);
2473
+ color: var(--color-sidebar-foreground);
2474
+ transition-property: transform, translate, scale, rotate;
2475
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2476
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2477
+ --tw-duration: 300ms;
2478
+ transition-duration: 300ms;
2479
+ --tw-ease: var(--ease-in-out);
2480
+ transition-timing-function: var(--ease-in-out);
2481
+ @media (width >= 48rem) {
2482
+ width: var(--defuss-sidebar-width);
2483
+ }
2484
+ }
2485
+ & + * {
2486
+ transition-property: margin;
2487
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2488
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2489
+ --tw-duration: 300ms;
2490
+ transition-duration: 300ms;
2491
+ --tw-ease: var(--ease-in-out);
2492
+ transition-timing-function: var(--ease-in-out);
2493
+ }
2494
+ &:not([data-side]), &[data-side=left] {
2495
+ nav {
2496
+ left: calc(var(--spacing) * 0);
2497
+ border-right-style: var(--tw-border-style);
2498
+ border-right-width: 1px;
2499
+ }
2500
+ & + * {
2501
+ position: relative;
2502
+ @media (width >= 48rem) {
2503
+ margin-left: var(--defuss-sidebar-width);
2504
+ }
2505
+ }
2506
+ &[aria-hidden=true] {
2507
+ nav {
2508
+ --tw-translate-x: -100%;
2509
+ translate: var(--tw-translate-x) var(--tw-translate-y);
2510
+ }
2511
+ & + * {
2512
+ @media (width >= 48rem) {
2513
+ margin-left: calc(var(--spacing) * 0);
2514
+ }
2515
+ }
2516
+ }
2517
+ }
2518
+ &[data-side=right] {
2519
+ nav {
2520
+ right: calc(var(--spacing) * 0);
2521
+ border-left-style: var(--tw-border-style);
2522
+ border-left-width: 1px;
2523
+ }
2524
+ & + * {
2525
+ position: relative;
2526
+ @media (width >= 48rem) {
2527
+ margin-right: var(--defuss-sidebar-width);
2528
+ }
2529
+ }
2530
+ &[aria-hidden=true] {
2531
+ nav {
2532
+ --tw-translate-x: 100%;
2533
+ translate: var(--tw-translate-x) var(--tw-translate-y);
2534
+ }
2535
+ & + * {
2536
+ @media (width >= 48rem) {
2537
+ margin-right: calc(var(--spacing) * 0);
2538
+ }
2539
+ }
2540
+ }
2541
+ }
2542
+ nav {
2543
+ > header, > footer {
2544
+ display: flex;
2545
+ flex-direction: column;
2546
+ gap: calc(var(--spacing) * 2);
2547
+ padding: calc(var(--spacing) * 2);
2548
+ }
2549
+ [role=separator] {
2550
+ margin-inline: calc(var(--spacing) * 2);
2551
+ width: auto;
2552
+ border-color: var(--color-sidebar-border);
2553
+ }
2554
+ > section {
2555
+ display: flex;
2556
+ min-height: calc(var(--spacing) * 0);
2557
+ flex: 1;
2558
+ flex-direction: column;
2559
+ gap: calc(var(--spacing) * 2);
2560
+ overflow-y: auto;
2561
+ > [role=group] {
2562
+ position: relative;
2563
+ display: flex;
2564
+ width: 100%;
2565
+ min-width: calc(var(--spacing) * 0);
2566
+ flex-direction: column;
2567
+ padding: calc(var(--spacing) * 2);
2568
+ }
2569
+ h3 {
2570
+ display: flex;
2571
+ height: calc(var(--spacing) * 8);
2572
+ flex-shrink: 0;
2573
+ align-items: center;
2574
+ border-radius: var(--radius-md);
2575
+ padding-inline: calc(var(--spacing) * 2);
2576
+ font-size: var(--text-xs);
2577
+ line-height: var(--tw-leading, var(--text-xs--line-height));
2578
+ --tw-font-weight: var(--font-weight-medium);
2579
+ font-weight: var(--font-weight-medium);
2580
+ color: var(--color-sidebar-foreground);
2581
+ @supports (color: color-mix(in lab, red, red)) {
2582
+ color: color-mix(in oklab, var(--color-sidebar-foreground) 70%, transparent);
2583
+ }
2584
+ --tw-ring-color: var(--color-sidebar-ring);
2585
+ --tw-outline-style: none;
2586
+ outline-style: none;
2587
+ @media (forced-colors: active) {
2588
+ outline: 2px solid transparent;
2589
+ outline-offset: 2px;
2590
+ }
2591
+ transition-property: margin,opacity;
2592
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2593
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2594
+ --tw-duration: 200ms;
2595
+ transition-duration: 200ms;
2596
+ --tw-ease: linear;
2597
+ transition-timing-function: linear;
2598
+ &:focus-visible {
2599
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2600
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2601
+ }
2602
+ &>svg {
2603
+ width: calc(var(--spacing) * 4);
2604
+ height: calc(var(--spacing) * 4);
2605
+ }
2606
+ &>svg {
2607
+ flex-shrink: 0;
2608
+ }
2609
+ }
2610
+ ul {
2611
+ display: flex;
2612
+ width: 100%;
2613
+ min-width: calc(var(--spacing) * 0);
2614
+ flex-direction: column;
2615
+ gap: calc(var(--spacing) * 1);
2616
+ li {
2617
+ position: relative;
2618
+ > a, > details > summary {
2619
+ display: flex;
2620
+ width: 100%;
2621
+ align-items: center;
2622
+ gap: calc(var(--spacing) * 2);
2623
+ overflow: hidden;
2624
+ border-radius: var(--radius-md);
2625
+ padding: calc(var(--spacing) * 2);
2626
+ text-align: left;
2627
+ font-size: var(--text-sm);
2628
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2629
+ --tw-ring-color: var(--color-sidebar-ring);
2630
+ --tw-outline-style: none;
2631
+ outline-style: none;
2632
+ @media (forced-colors: active) {
2633
+ outline: 2px solid transparent;
2634
+ outline-offset: 2px;
2635
+ }
2636
+ transition-property: width,height,padding;
2637
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2638
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2639
+ &:hover {
2640
+ @media (hover: hover) {
2641
+ background-color: var(--color-sidebar-accent);
2642
+ }
2643
+ }
2644
+ &:hover {
2645
+ @media (hover: hover) {
2646
+ color: var(--color-sidebar-accent-foreground);
2647
+ }
2648
+ }
2649
+ &:focus-visible {
2650
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2651
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2652
+ }
2653
+ &:active {
2654
+ background-color: var(--color-sidebar-accent);
2655
+ }
2656
+ &:active {
2657
+ color: var(--color-sidebar-accent-foreground);
2658
+ }
2659
+ &:disabled {
2660
+ pointer-events: none;
2661
+ }
2662
+ &:disabled {
2663
+ opacity: 50%;
2664
+ }
2665
+ &[aria-disabled="true"] {
2666
+ pointer-events: none;
2667
+ }
2668
+ &[aria-disabled="true"] {
2669
+ opacity: 50%;
2670
+ }
2671
+ &>span:last-child {
2672
+ overflow: hidden;
2673
+ text-overflow: ellipsis;
2674
+ white-space: nowrap;
2675
+ }
2676
+ &>svg {
2677
+ width: calc(var(--spacing) * 4);
2678
+ height: calc(var(--spacing) * 4);
2679
+ }
2680
+ &>svg {
2681
+ flex-shrink: 0;
2682
+ }
2683
+ &[aria-current=page] {
2684
+ background-color: var(--color-sidebar-accent);
2685
+ }
2686
+ &[aria-current=page] {
2687
+ --tw-font-weight: var(--font-weight-medium);
2688
+ font-weight: var(--font-weight-medium);
2689
+ }
2690
+ &[aria-current=page] {
2691
+ color: var(--color-sidebar-accent-foreground);
2692
+ }
2693
+ &:not([data-variant]), &[data-variant=default] {
2694
+ &:hover {
2695
+ @media (hover: hover) {
2696
+ background-color: var(--color-sidebar-accent);
2697
+ }
2698
+ }
2699
+ &:hover {
2700
+ @media (hover: hover) {
2701
+ color: var(--color-sidebar-accent-foreground);
2702
+ }
2703
+ }
2704
+ }
2705
+ &[data-variant=outline] {
2706
+ background-color: var(--color-background);
2707
+ --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--defuss-sidebar-border)));
2708
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2709
+ &:hover {
2710
+ @media (hover: hover) {
2711
+ background-color: var(--color-sidebar-accent);
2712
+ }
2713
+ }
2714
+ &:hover {
2715
+ @media (hover: hover) {
2716
+ color: var(--color-sidebar-accent-foreground);
2717
+ }
2718
+ }
2719
+ &:hover {
2720
+ @media (hover: hover) {
2721
+ --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--defuss-sidebar-accent)));
2722
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2723
+ }
2724
+ }
2725
+ }
2726
+ &:not([data-size]), &[data-size=default] {
2727
+ height: calc(var(--spacing) * 8);
2728
+ font-size: var(--text-sm);
2729
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2730
+ }
2731
+ &[data-size=sm] {
2732
+ height: calc(var(--spacing) * 7);
2733
+ font-size: var(--text-xs);
2734
+ line-height: var(--tw-leading, var(--text-xs--line-height));
2735
+ }
2736
+ &[data-size=lg] {
2737
+ height: calc(var(--spacing) * 12);
2738
+ font-size: var(--text-sm);
2739
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2740
+ &:is(:where(.group)[data-collapsible="icon"] *) {
2741
+ padding: calc(var(--spacing) * 0) !important;
2742
+ }
2743
+ }
2744
+ }
2745
+ > details {
2746
+ &:not([open]) {
2747
+ > summary {
2748
+ &::after {
2749
+ rotate: calc(90deg * -1);
2750
+ }
2751
+ }
2752
+ }
2753
+ > summary {
2754
+ &::after {
2755
+ margin-left: auto;
2756
+ display: block;
2757
+ width: calc(var(--spacing) * 3.5);
2758
+ height: calc(var(--spacing) * 3.5);
2759
+ background-color: var(--color-primary);
2760
+ transition-property: transform, translate, scale, rotate;
2761
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2762
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2763
+ --tw-ease: linear;
2764
+ transition-timing-function: linear;
2765
+ --tw-content: '';
2766
+ content: var(--tw-content);
2767
+ mask-image: var(--defuss-chevron-down-icon);
2768
+ mask-size: 1rem;
2769
+ mask-position: center;
2770
+ mask-repeat: no-repeat;
2771
+ }
2772
+ }
2773
+ &::details-content {
2774
+ padding-inline: calc(var(--spacing) * 3.5);
2775
+ }
2776
+ }
2777
+ }
2778
+ ul {
2779
+ display: flex;
2780
+ width: 100%;
2781
+ min-width: calc(var(--spacing) * 0);
2782
+ --tw-translate-x: 1px;
2783
+ translate: var(--tw-translate-x) var(--tw-translate-y);
2784
+ flex-direction: column;
2785
+ gap: calc(var(--spacing) * 1);
2786
+ border-left-style: var(--tw-border-style);
2787
+ border-left-width: 1px;
2788
+ border-color: var(--color-sidebar-border);
2789
+ padding-inline: calc(var(--spacing) * 2.5);
2790
+ padding-block: calc(var(--spacing) * 0.5);
2791
+ }
2792
+ }
2793
+ }
2794
+ }
2795
+ }
2796
+ }
2797
+ }
2798
+ @layer components {
2799
+ .defuss-shadcn {
2800
+ :is(.form, .field) input[type='checkbox'][role='switch'], .input[type='checkbox'][role='switch'] {
2801
+ display: inline-flex;
2802
+ height: 1.15rem;
2803
+ width: calc(var(--spacing) * 8);
2804
+ flex-shrink: 0;
2805
+ appearance: none;
2806
+ align-items: center;
2807
+ border-radius: calc(infinity * 1px);
2808
+ border-style: var(--tw-border-style);
2809
+ border-width: 1px;
2810
+ border-color: transparent;
2811
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
2812
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2813
+ transition-property: all;
2814
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2815
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2816
+ --tw-outline-style: none;
2817
+ outline-style: none;
2818
+ &:focus-visible {
2819
+ border-color: var(--color-ring);
2820
+ }
2821
+ &:focus-visible {
2822
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2823
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2824
+ }
2825
+ &:focus-visible {
2826
+ --tw-ring-color: var(--color-ring);
2827
+ @supports (color: color-mix(in lab, red, red)) {
2828
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
2829
+ }
2830
+ }
2831
+ &:disabled {
2832
+ cursor: not-allowed;
2833
+ }
2834
+ &:disabled {
2835
+ opacity: 50%;
2836
+ }
2837
+ background-color: var(--color-input);
2838
+ &:checked {
2839
+ background-color: var(--color-primary);
2840
+ }
2841
+ &:is(.dark *) {
2842
+ background-color: var(--color-input);
2843
+ @supports (color: color-mix(in lab, red, red)) {
2844
+ background-color: color-mix(in oklab, var(--color-input) 80%, transparent);
2845
+ }
2846
+ }
2847
+ &:is(.dark *) {
2848
+ &:checked {
2849
+ background-color: var(--color-primary);
2850
+ }
2851
+ }
2852
+ &::before {
2853
+ content: var(--tw-content);
2854
+ pointer-events: none;
2855
+ }
2856
+ &::before {
2857
+ content: var(--tw-content);
2858
+ display: block;
2859
+ }
2860
+ &::before {
2861
+ content: var(--tw-content);
2862
+ width: calc(var(--spacing) * 4);
2863
+ height: calc(var(--spacing) * 4);
2864
+ }
2865
+ &::before {
2866
+ content: var(--tw-content);
2867
+ border-radius: calc(infinity * 1px);
2868
+ }
2869
+ &::before {
2870
+ content: var(--tw-content);
2871
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2872
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2873
+ }
2874
+ &::before {
2875
+ content: var(--tw-content);
2876
+ transition-property: all;
2877
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2878
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2879
+ }
2880
+ &::before {
2881
+ --tw-content: '';
2882
+ content: var(--tw-content);
2883
+ }
2884
+ &::before {
2885
+ content: var(--tw-content);
2886
+ background-color: var(--color-background);
2887
+ }
2888
+ &:is(.dark *) {
2889
+ &::before {
2890
+ content: var(--tw-content);
2891
+ background-color: var(--color-foreground);
2892
+ }
2893
+ }
2894
+ &:checked {
2895
+ &::before {
2896
+ content: var(--tw-content);
2897
+ margin-inline-start: calc(var(--spacing) * 3.5);
2898
+ }
2899
+ }
2900
+ &:is(.dark *) {
2901
+ &:checked {
2902
+ &::before {
2903
+ content: var(--tw-content);
2904
+ background-color: var(--color-primary-foreground);
2905
+ }
2906
+ }
2907
+ }
2908
+ }
2909
+ }
2910
+ }
2911
+ @layer components {
2912
+ .defuss-shadcn {
2913
+ .table {
2914
+ width: 100%;
2915
+ caption-side: bottom;
2916
+ font-size: var(--text-sm);
2917
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2918
+ thead {
2919
+ & tr {
2920
+ border-bottom-style: var(--tw-border-style);
2921
+ border-bottom-width: 1px;
2922
+ }
2923
+ }
2924
+ tbody {
2925
+ & tr:last-child {
2926
+ border-style: var(--tw-border-style);
2927
+ border-width: 0px;
2928
+ }
2929
+ }
2930
+ tfoot {
2931
+ border-top-style: var(--tw-border-style);
2932
+ border-top-width: 1px;
2933
+ background-color: var(--color-muted);
2934
+ @supports (color: color-mix(in lab, red, red)) {
2935
+ background-color: color-mix(in oklab, var(--color-muted) 50%, transparent);
2936
+ }
2937
+ --tw-font-weight: var(--font-weight-medium);
2938
+ font-weight: var(--font-weight-medium);
2939
+ &>tr {
2940
+ &:last-child {
2941
+ border-bottom-style: var(--tw-border-style);
2942
+ border-bottom-width: 0px;
2943
+ }
2944
+ }
2945
+ }
2946
+ tr {
2947
+ border-bottom-style: var(--tw-border-style);
2948
+ border-bottom-width: 1px;
2949
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
2950
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2951
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2952
+ &:hover {
2953
+ @media (hover: hover) {
2954
+ background-color: var(--color-muted);
2955
+ @supports (color: color-mix(in lab, red, red)) {
2956
+ background-color: color-mix(in oklab, var(--color-muted) 50%, transparent);
2957
+ }
2958
+ }
2959
+ }
2960
+ }
2961
+ th {
2962
+ height: calc(var(--spacing) * 10);
2963
+ padding-inline: calc(var(--spacing) * 2);
2964
+ text-align: left;
2965
+ vertical-align: middle;
2966
+ --tw-font-weight: var(--font-weight-medium);
2967
+ font-weight: var(--font-weight-medium);
2968
+ white-space: nowrap;
2969
+ color: var(--color-foreground);
2970
+ &:has([role=checkbox]) {
2971
+ padding-right: calc(var(--spacing) * 0);
2972
+ }
2973
+ &>[role=checkbox] {
2974
+ --tw-translate-y: 2px;
2975
+ translate: var(--tw-translate-x) var(--tw-translate-y);
2976
+ }
2977
+ }
2978
+ td {
2979
+ padding: calc(var(--spacing) * 2);
2980
+ vertical-align: middle;
2981
+ white-space: nowrap;
2982
+ &:has([role=checkbox]) {
2983
+ padding-right: calc(var(--spacing) * 0);
2984
+ }
2985
+ &>[role=checkbox] {
2986
+ --tw-translate-y: 2px;
2987
+ translate: var(--tw-translate-x) var(--tw-translate-y);
2988
+ }
2989
+ }
2990
+ caption {
2991
+ margin-top: calc(var(--spacing) * 4);
2992
+ font-size: var(--text-sm);
2993
+ line-height: var(--tw-leading, var(--text-sm--line-height));
2994
+ color: var(--color-muted-foreground);
2995
+ }
2996
+ }
2997
+ .data-table {
2998
+ .data-table-sortable-header {
2999
+ cursor: pointer;
3000
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
3001
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3002
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3003
+ &:hover {
3004
+ @media (hover: hover) {
3005
+ background-color: var(--color-muted);
3006
+ @supports (color: color-mix(in lab, red, red)) {
3007
+ background-color: color-mix(in oklab, var(--color-muted) 50%, transparent);
3008
+ }
3009
+ }
3010
+ }
3011
+ }
3012
+ tr[data-row-id].data-table-row-clickable {
3013
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
3014
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3015
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3016
+ &:hover {
3017
+ @media (hover: hover) {
3018
+ background-color: var(--color-muted);
3019
+ @supports (color: color-mix(in lab, red, red)) {
3020
+ background-color: color-mix(in oklab, var(--color-muted) 40%, transparent);
3021
+ }
3022
+ }
3023
+ }
3024
+ }
3025
+ .data-table-empty {
3026
+ color: var(--color-muted-foreground);
3027
+ }
3028
+ }
3029
+ .tree-view {
3030
+ .tree-view-row {
3031
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
3032
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3033
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3034
+ &:hover {
3035
+ @media (hover: hover) {
3036
+ background-color: var(--color-accent);
3037
+ @supports (color: color-mix(in lab, red, red)) {
3038
+ background-color: color-mix(in oklab, var(--color-accent) 50%, transparent);
3039
+ }
3040
+ }
3041
+ }
3042
+ }
3043
+ .tree-view-row.is-selected {
3044
+ background-color: var(--color-accent);
3045
+ color: var(--color-accent-foreground);
3046
+ }
3047
+ .tree-view-toggle {
3048
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
3049
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3050
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3051
+ &:hover {
3052
+ @media (hover: hover) {
3053
+ background-color: var(--color-accent);
3054
+ }
3055
+ }
3056
+ }
3057
+ }
3058
+ }
3059
+ }
3060
+ @layer components {
3061
+ .defuss-shadcn {
3062
+ .tabs {
3063
+ display: flex;
3064
+ flex-direction: column;
3065
+ gap: calc(var(--spacing) * 2);
3066
+ [role='tablist'] {
3067
+ display: inline-flex;
3068
+ height: calc(var(--spacing) * 9);
3069
+ width: fit-content;
3070
+ align-items: center;
3071
+ justify-content: center;
3072
+ border-radius: var(--radius-lg);
3073
+ background-color: var(--color-muted);
3074
+ padding: 3px;
3075
+ color: var(--color-muted-foreground);
3076
+ [role='tab'] {
3077
+ display: inline-flex;
3078
+ height: calc(100% - 1px);
3079
+ flex: 1;
3080
+ align-items: center;
3081
+ justify-content: center;
3082
+ gap: calc(var(--spacing) * 1.5);
3083
+ border-radius: var(--radius-md);
3084
+ border-style: var(--tw-border-style);
3085
+ border-width: 1px;
3086
+ border-color: transparent;
3087
+ padding-inline: calc(var(--spacing) * 2);
3088
+ padding-block: calc(var(--spacing) * 1);
3089
+ font-size: var(--text-sm);
3090
+ line-height: var(--tw-leading, var(--text-sm--line-height));
3091
+ --tw-font-weight: var(--font-weight-medium);
3092
+ font-weight: var(--font-weight-medium);
3093
+ white-space: nowrap;
3094
+ color: var(--color-foreground);
3095
+ transition-property: color,box-shadow;
3096
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3097
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3098
+ &:focus-visible {
3099
+ border-color: var(--color-ring);
3100
+ }
3101
+ &:focus-visible {
3102
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
3103
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3104
+ }
3105
+ &:focus-visible {
3106
+ --tw-ring-color: var(--color-ring);
3107
+ @supports (color: color-mix(in lab, red, red)) {
3108
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
3109
+ }
3110
+ }
3111
+ &:focus-visible {
3112
+ outline-style: var(--tw-outline-style);
3113
+ outline-width: 1px;
3114
+ }
3115
+ &:focus-visible {
3116
+ outline-color: var(--color-ring);
3117
+ }
3118
+ &:disabled {
3119
+ pointer-events: none;
3120
+ }
3121
+ &:disabled {
3122
+ opacity: 50%;
3123
+ }
3124
+ &:is(.dark *) {
3125
+ color: var(--color-muted-foreground);
3126
+ }
3127
+ & svg {
3128
+ pointer-events: none;
3129
+ }
3130
+ & svg {
3131
+ flex-shrink: 0;
3132
+ }
3133
+ & svg:not([class*='size-']) {
3134
+ width: calc(var(--spacing) * 4);
3135
+ height: calc(var(--spacing) * 4);
3136
+ }
3137
+ &[aria-selected='true'] {
3138
+ background-color: var(--color-background);
3139
+ --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));
3140
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3141
+ &:is(.dark *) {
3142
+ border-color: var(--color-input);
3143
+ }
3144
+ &:is(.dark *) {
3145
+ background-color: var(--color-input);
3146
+ @supports (color: color-mix(in lab, red, red)) {
3147
+ background-color: color-mix(in oklab, var(--color-input) 30%, transparent);
3148
+ }
3149
+ }
3150
+ &:is(.dark *) {
3151
+ color: var(--color-foreground);
3152
+ }
3153
+ }
3154
+ }
3155
+ }
3156
+ [role='tabpanel'] {
3157
+ flex: 1;
3158
+ --tw-outline-style: none;
3159
+ outline-style: none;
3160
+ }
3161
+ }
3162
+ }
3163
+ }
3164
+ @layer components {
3165
+ .defuss-shadcn {
3166
+ :is(.form, .field) textarea, .textarea {
3167
+ display: flex;
3168
+ field-sizing: content;
3169
+ min-height: calc(var(--spacing) * 16);
3170
+ width: 100%;
3171
+ border-radius: var(--radius-md);
3172
+ border-style: var(--tw-border-style);
3173
+ border-width: 1px;
3174
+ border-color: var(--color-input);
3175
+ background-color: transparent;
3176
+ padding-inline: calc(var(--spacing) * 3);
3177
+ padding-block: calc(var(--spacing) * 2);
3178
+ font-size: var(--text-base);
3179
+ line-height: var(--tw-leading, var(--text-base--line-height));
3180
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
3181
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3182
+ transition-property: color,box-shadow;
3183
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3184
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3185
+ --tw-outline-style: none;
3186
+ outline-style: none;
3187
+ &::placeholder {
3188
+ color: var(--color-muted-foreground);
3189
+ }
3190
+ &:focus-visible {
3191
+ border-color: var(--color-ring);
3192
+ }
3193
+ &:focus-visible {
3194
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
3195
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3196
+ }
3197
+ &:focus-visible {
3198
+ --tw-ring-color: var(--color-ring);
3199
+ @supports (color: color-mix(in lab, red, red)) {
3200
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
3201
+ }
3202
+ }
3203
+ &:disabled {
3204
+ cursor: not-allowed;
3205
+ }
3206
+ &:disabled {
3207
+ opacity: 50%;
3208
+ }
3209
+ &[aria-invalid="true"] {
3210
+ border-color: var(--color-destructive);
3211
+ }
3212
+ &[aria-invalid="true"] {
3213
+ --tw-ring-color: var(--color-destructive);
3214
+ @supports (color: color-mix(in lab, red, red)) {
3215
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);
3216
+ }
3217
+ }
3218
+ @media (width >= 48rem) {
3219
+ font-size: var(--text-sm);
3220
+ line-height: var(--tw-leading, var(--text-sm--line-height));
3221
+ }
3222
+ &:is(.dark *) {
3223
+ background-color: var(--color-input);
3224
+ @supports (color: color-mix(in lab, red, red)) {
3225
+ background-color: color-mix(in oklab, var(--color-input) 30%, transparent);
3226
+ }
3227
+ }
3228
+ &:is(.dark *) {
3229
+ &[aria-invalid="true"] {
3230
+ --tw-ring-color: var(--color-destructive);
3231
+ @supports (color: color-mix(in lab, red, red)) {
3232
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);
3233
+ }
3234
+ }
3235
+ }
3236
+ }
3237
+ }
3238
+ }
3239
+ @layer components {
3240
+ .defuss-shadcn {
3241
+ .toaster {
3242
+ pointer-events: none;
3243
+ position: fixed;
3244
+ bottom: calc(var(--spacing) * 0);
3245
+ z-index: 50;
3246
+ display: flex;
3247
+ width: 100%;
3248
+ flex-direction: column-reverse;
3249
+ padding: calc(var(--spacing) * 4);
3250
+ @media (width >= 40rem) {
3251
+ max-width: calc(var(--spacing) * 90);
3252
+ }
3253
+ &:not([data-align]), &[data-align='end'] {
3254
+ right: calc(var(--spacing) * 0);
3255
+ }
3256
+ &[data-align='start'] {
3257
+ left: calc(var(--spacing) * 0);
3258
+ }
3259
+ &[data-align='center'] {
3260
+ left: calc(1 / 2 * 100%);
3261
+ --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
3262
+ translate: var(--tw-translate-x) var(--tw-translate-y);
3263
+ }
3264
+ .toast {
3265
+ pointer-events: auto;
3266
+ margin-top: calc(var(--spacing) * 4);
3267
+ display: grid;
3268
+ width: 100%;
3269
+ animation: defuss-toast-up 0.3s ease-in-out;
3270
+ grid-template-rows: 1fr;
3271
+ transition-property: grid-template-rows,opacity,margin;
3272
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3273
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3274
+ --tw-duration: 300ms;
3275
+ transition-duration: 300ms;
3276
+ --tw-ease: var(--ease-in-out);
3277
+ transition-timing-function: var(--ease-in-out);
3278
+ .toast-content {
3279
+ display: flex;
3280
+ align-items: center;
3281
+ gap: calc(var(--spacing) * 2.5);
3282
+ overflow: hidden;
3283
+ border-radius: var(--radius-lg);
3284
+ border-style: var(--tw-border-style);
3285
+ border-width: 1px;
3286
+ background-color: var(--color-popover);
3287
+ padding: calc(var(--spacing) * 3);
3288
+ font-size: 13px;
3289
+ color: var(--color-popover-foreground);
3290
+ --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));
3291
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3292
+ svg {
3293
+ width: calc(var(--spacing) * 4);
3294
+ height: calc(var(--spacing) * 4);
3295
+ flex-shrink: 0;
3296
+ }
3297
+ section {
3298
+ h2 {
3299
+ --tw-font-weight: var(--font-weight-medium);
3300
+ font-weight: var(--font-weight-medium);
3301
+ --tw-tracking: var(--tracking-tight);
3302
+ letter-spacing: var(--tracking-tight);
3303
+ }
3304
+ p {
3305
+ word-break: break-all;
3306
+ color: var(--color-muted-foreground);
3307
+ }
3308
+ }
3309
+ footer {
3310
+ margin-left: auto;
3311
+ display: flex;
3312
+ flex-direction: column;
3313
+ gap: calc(var(--spacing) * 2);
3314
+ [data-toast-action], [data-toast-cancel] {
3315
+ height: calc(var(--spacing) * 6);
3316
+ padding-inline: calc(var(--spacing) * 2.5);
3317
+ font-size: var(--text-xs);
3318
+ line-height: var(--tw-leading, var(--text-xs--line-height));
3319
+ }
3320
+ }
3321
+ }
3322
+ &[aria-hidden='true'] {
3323
+ margin: calc(var(--spacing) * 0);
3324
+ grid-template-rows: 0fr;
3325
+ overflow: hidden;
3326
+ border-style: var(--tw-border-style);
3327
+ border-width: 0px;
3328
+ padding: calc(var(--spacing) * 0);
3329
+ opacity: 0%;
3330
+ .toast-content {
3331
+ border-style: var(--tw-border-style);
3332
+ border-width: 0px;
3333
+ }
3334
+ }
3335
+ }
3336
+ }
3337
+ }
3338
+ }
3339
+ @keyframes defuss-toast-up {
3340
+ from {
3341
+ opacity: 0;
3342
+ transform: translateY(100%);
3343
+ }
3344
+ }
3345
+ @keyframes defuss-skeleton-pulse {
3346
+ 0%, 100% {
3347
+ opacity: 1;
3348
+ }
3349
+ 50% {
3350
+ opacity: 0.5;
3351
+ }
3352
+ }
3353
+ @layer utilities {
3354
+ .defuss-shadcn {
3355
+ .text-primary {
3356
+ color: var(--color-primary);
3357
+ }
3358
+ .text-primary-foreground {
3359
+ color: var(--color-primary-foreground);
3360
+ }
3361
+ .bg-primary {
3362
+ background-color: var(--color-primary);
3363
+ }
3364
+ .bg-primary-foreground {
3365
+ background-color: var(--color-primary-foreground);
3366
+ }
3367
+ .border-primary {
3368
+ border-color: var(--color-primary);
3369
+ }
3370
+ .hover\:text-primary:hover {
3371
+ color: var(--color-primary);
3372
+ }
3373
+ .hover\:bg-primary:hover {
3374
+ background-color: var(--color-primary);
3375
+ }
3376
+ .text-sidebar-foreground {
3377
+ color: var(--color-sidebar-foreground);
3378
+ }
3379
+ .text-sidebar-primary-foreground {
3380
+ color: var(--color-sidebar-primary-foreground);
3381
+ }
3382
+ .text-sidebar-accent-foreground {
3383
+ color: var(--color-sidebar-accent-foreground);
3384
+ }
3385
+ .bg-sidebar {
3386
+ background-color: var(--color-sidebar);
3387
+ }
3388
+ .bg-sidebar-primary {
3389
+ background-color: var(--color-sidebar-primary);
3390
+ }
3391
+ .bg-sidebar-accent {
3392
+ background-color: var(--color-sidebar-accent);
3393
+ }
3394
+ .border-sidebar-border {
3395
+ border-color: var(--color-sidebar-border);
3396
+ }
3397
+ .hover\:bg-sidebar-accent:hover {
3398
+ background-color: var(--color-sidebar-accent);
3399
+ }
3400
+ .hover\:text-sidebar-accent-foreground:hover {
3401
+ color: var(--color-sidebar-accent-foreground);
3402
+ }
3403
+ }
3404
+ }
3405
+ @layer components {
3406
+ .defuss-shadcn {
3407
+ [data-tooltip] {
3408
+ position: relative;
3409
+ &:before {
3410
+ pointer-events: none;
3411
+ visibility: hidden;
3412
+ position: absolute;
3413
+ z-index: 60;
3414
+ width: fit-content;
3415
+ max-width: var(--container-xs);
3416
+ --tw-scale-x: 95%;
3417
+ --tw-scale-y: 95%;
3418
+ --tw-scale-z: 95%;
3419
+ scale: var(--tw-scale-x) var(--tw-scale-y);
3420
+ overflow: hidden;
3421
+ text-overflow: ellipsis;
3422
+ white-space: nowrap;
3423
+ border-radius: var(--radius-md);
3424
+ background-color: var(--color-foreground);
3425
+ padding-inline: calc(var(--spacing) * 3);
3426
+ padding-block: calc(var(--spacing) * 1.5);
3427
+ font-size: var(--text-xs);
3428
+ line-height: var(--tw-leading, var(--text-xs--line-height));
3429
+ color: var(--color-background);
3430
+ opacity: 0%;
3431
+ transition-property: all;
3432
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3433
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3434
+ --tw-content: attr(data-tooltip);
3435
+ content: var(--tw-content);
3436
+ }
3437
+ &:hover:before {
3438
+ visibility: visible;
3439
+ --tw-scale-x: 100%;
3440
+ --tw-scale-y: 100%;
3441
+ --tw-scale-z: 100%;
3442
+ scale: var(--tw-scale-x) var(--tw-scale-y);
3443
+ opacity: 100%;
3444
+ }
3445
+ &:focus-visible:not(:hover):before {
3446
+ display: none;
3447
+ }
3448
+ &:not([data-side]), &[data-side='top'] {
3449
+ &::before {
3450
+ content: var(--tw-content);
3451
+ bottom: 100%;
3452
+ }
3453
+ &::before {
3454
+ content: var(--tw-content);
3455
+ margin-bottom: calc(var(--spacing) * 1.5);
3456
+ }
3457
+ &::before {
3458
+ content: var(--tw-content);
3459
+ --tw-translate-y: calc(var(--spacing) * 2);
3460
+ translate: var(--tw-translate-x) var(--tw-translate-y);
3461
+ }
3462
+ &:hover {
3463
+ @media (hover: hover) {
3464
+ &::before {
3465
+ content: var(--tw-content);
3466
+ --tw-translate-y: calc(var(--spacing) * 0);
3467
+ translate: var(--tw-translate-x) var(--tw-translate-y);
3468
+ }
3469
+ }
3470
+ }
3471
+ }
3472
+ &[data-side='bottom'] {
3473
+ &::before {
3474
+ content: var(--tw-content);
3475
+ top: 100%;
3476
+ }
3477
+ &::before {
3478
+ content: var(--tw-content);
3479
+ margin-top: calc(var(--spacing) * 1.5);
3480
+ }
3481
+ &::before {
3482
+ content: var(--tw-content);
3483
+ --tw-translate-y: calc(var(--spacing) * -2);
3484
+ translate: var(--tw-translate-x) var(--tw-translate-y);
3485
+ }
3486
+ &:hover {
3487
+ @media (hover: hover) {
3488
+ &::before {
3489
+ content: var(--tw-content);
3490
+ --tw-translate-y: calc(var(--spacing) * 0);
3491
+ translate: var(--tw-translate-x) var(--tw-translate-y);
3492
+ }
3493
+ }
3494
+ }
3495
+ }
3496
+ &:not([data-side]), &[data-side='top'], &[data-side='bottom'] {
3497
+ &[data-align='start'] {
3498
+ &::before {
3499
+ content: var(--tw-content);
3500
+ left: calc(var(--spacing) * 0);
3501
+ }
3502
+ }
3503
+ &[data-align='end'] {
3504
+ &::before {
3505
+ content: var(--tw-content);
3506
+ right: calc(var(--spacing) * 0);
3507
+ }
3508
+ }
3509
+ &:not([data-align]), &[data-align='center'] {
3510
+ &::before {
3511
+ content: var(--tw-content);
3512
+ left: calc(1 / 2 * 100%);
3513
+ }
3514
+ &::before {
3515
+ content: var(--tw-content);
3516
+ --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
3517
+ translate: var(--tw-translate-x) var(--tw-translate-y);
3518
+ }
3519
+ }
3520
+ }
3521
+ &[data-side='left'] {
3522
+ &::before {
3523
+ content: var(--tw-content);
3524
+ right: 100%;
3525
+ }
3526
+ &::before {
3527
+ content: var(--tw-content);
3528
+ margin-right: calc(var(--spacing) * 1.5);
3529
+ }
3530
+ &::before {
3531
+ content: var(--tw-content);
3532
+ --tw-translate-x: calc(var(--spacing) * 2);
3533
+ translate: var(--tw-translate-x) var(--tw-translate-y);
3534
+ }
3535
+ &:hover {
3536
+ @media (hover: hover) {
3537
+ &::before {
3538
+ content: var(--tw-content);
3539
+ --tw-translate-x: calc(var(--spacing) * 0);
3540
+ translate: var(--tw-translate-x) var(--tw-translate-y);
3541
+ }
3542
+ }
3543
+ }
3544
+ }
3545
+ &[data-side='right'] {
3546
+ &::before {
3547
+ content: var(--tw-content);
3548
+ left: 100%;
3549
+ }
3550
+ &::before {
3551
+ content: var(--tw-content);
3552
+ margin-left: calc(var(--spacing) * 1.5);
3553
+ }
3554
+ &::before {
3555
+ content: var(--tw-content);
3556
+ --tw-translate-x: calc(var(--spacing) * -2);
3557
+ translate: var(--tw-translate-x) var(--tw-translate-y);
3558
+ }
3559
+ &:hover {
3560
+ @media (hover: hover) {
3561
+ &::before {
3562
+ content: var(--tw-content);
3563
+ --tw-translate-x: calc(var(--spacing) * 0);
3564
+ translate: var(--tw-translate-x) var(--tw-translate-y);
3565
+ }
3566
+ }
3567
+ }
3568
+ }
3569
+ &[data-side='left'], &[data-side='right'] {
3570
+ &[data-align='start'] {
3571
+ &::before {
3572
+ content: var(--tw-content);
3573
+ top: calc(var(--spacing) * 0);
3574
+ }
3575
+ }
3576
+ &[data-align='end'] {
3577
+ &::before {
3578
+ content: var(--tw-content);
3579
+ bottom: calc(var(--spacing) * 0);
3580
+ }
3581
+ }
3582
+ &:not([data-align]), &[data-align='center'] {
3583
+ &::before {
3584
+ content: var(--tw-content);
3585
+ top: calc(1 / 2 * 100%);
3586
+ }
3587
+ &::before {
3588
+ content: var(--tw-content);
3589
+ --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
3590
+ translate: var(--tw-translate-x) var(--tw-translate-y);
3591
+ }
3592
+ }
3593
+ }
3594
+ }
3595
+ }
3596
+ }
3597
+ @property --tw-border-style {
3598
+ syntax: "*";
3599
+ inherits: false;
3600
+ initial-value: solid;
3601
+ }
3602
+ @property --tw-translate-x {
3603
+ syntax: "*";
3604
+ inherits: false;
3605
+ initial-value: 0;
3606
+ }
3607
+ @property --tw-translate-y {
3608
+ syntax: "*";
3609
+ inherits: false;
3610
+ initial-value: 0;
3611
+ }
3612
+ @property --tw-translate-z {
3613
+ syntax: "*";
3614
+ inherits: false;
3615
+ initial-value: 0;
3616
+ }
3617
+ @property --tw-font-weight {
3618
+ syntax: "*";
3619
+ inherits: false;
3620
+ }
3621
+ @property --tw-tracking {
3622
+ syntax: "*";
3623
+ inherits: false;
3624
+ }
3625
+ @property --tw-leading {
3626
+ syntax: "*";
3627
+ inherits: false;
3628
+ }
3629
+ @property --tw-shadow {
3630
+ syntax: "*";
3631
+ inherits: false;
3632
+ initial-value: 0 0 #0000;
3633
+ }
3634
+ @property --tw-shadow-color {
3635
+ syntax: "*";
3636
+ inherits: false;
3637
+ }
3638
+ @property --tw-shadow-alpha {
3639
+ syntax: "<percentage>";
3640
+ inherits: false;
3641
+ initial-value: 100%;
3642
+ }
3643
+ @property --tw-inset-shadow {
3644
+ syntax: "*";
3645
+ inherits: false;
3646
+ initial-value: 0 0 #0000;
3647
+ }
3648
+ @property --tw-inset-shadow-color {
3649
+ syntax: "*";
3650
+ inherits: false;
3651
+ }
3652
+ @property --tw-inset-shadow-alpha {
3653
+ syntax: "<percentage>";
3654
+ inherits: false;
3655
+ initial-value: 100%;
3656
+ }
3657
+ @property --tw-ring-color {
3658
+ syntax: "*";
3659
+ inherits: false;
3660
+ }
3661
+ @property --tw-ring-shadow {
3662
+ syntax: "*";
3663
+ inherits: false;
3664
+ initial-value: 0 0 #0000;
3665
+ }
3666
+ @property --tw-inset-ring-color {
3667
+ syntax: "*";
3668
+ inherits: false;
3669
+ }
3670
+ @property --tw-inset-ring-shadow {
3671
+ syntax: "*";
3672
+ inherits: false;
3673
+ initial-value: 0 0 #0000;
3674
+ }
3675
+ @property --tw-ring-inset {
3676
+ syntax: "*";
3677
+ inherits: false;
3678
+ }
3679
+ @property --tw-ring-offset-width {
3680
+ syntax: "<length>";
3681
+ inherits: false;
3682
+ initial-value: 0px;
3683
+ }
3684
+ @property --tw-ring-offset-color {
3685
+ syntax: "*";
3686
+ inherits: false;
3687
+ initial-value: #fff;
3688
+ }
3689
+ @property --tw-ring-offset-shadow {
3690
+ syntax: "*";
3691
+ inherits: false;
3692
+ initial-value: 0 0 #0000;
3693
+ }
3694
+ @property --tw-content {
3695
+ syntax: "*";
3696
+ inherits: false;
3697
+ initial-value: "";
3698
+ }
3699
+ @property --tw-scale-x {
3700
+ syntax: "*";
3701
+ inherits: false;
3702
+ initial-value: 1;
3703
+ }
3704
+ @property --tw-scale-y {
3705
+ syntax: "*";
3706
+ inherits: false;
3707
+ initial-value: 1;
3708
+ }
3709
+ @property --tw-scale-z {
3710
+ syntax: "*";
3711
+ inherits: false;
3712
+ initial-value: 1;
3713
+ }
3714
+ @property --tw-duration {
3715
+ syntax: "*";
3716
+ inherits: false;
3717
+ }
3718
+ @property --tw-ease {
3719
+ syntax: "*";
3720
+ inherits: false;
3721
+ }
3722
+ @property --tw-outline-style {
3723
+ syntax: "*";
3724
+ inherits: false;
3725
+ initial-value: solid;
3726
+ }
3727
+ @layer properties {
3728
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
3729
+ *, ::before, ::after, ::backdrop {
3730
+ --tw-border-style: solid;
3731
+ --tw-translate-x: 0;
3732
+ --tw-translate-y: 0;
3733
+ --tw-translate-z: 0;
3734
+ --tw-font-weight: initial;
3735
+ --tw-tracking: initial;
3736
+ --tw-leading: initial;
3737
+ --tw-shadow: 0 0 #0000;
3738
+ --tw-shadow-color: initial;
3739
+ --tw-shadow-alpha: 100%;
3740
+ --tw-inset-shadow: 0 0 #0000;
3741
+ --tw-inset-shadow-color: initial;
3742
+ --tw-inset-shadow-alpha: 100%;
3743
+ --tw-ring-color: initial;
3744
+ --tw-ring-shadow: 0 0 #0000;
3745
+ --tw-inset-ring-color: initial;
3746
+ --tw-inset-ring-shadow: 0 0 #0000;
3747
+ --tw-ring-inset: initial;
3748
+ --tw-ring-offset-width: 0px;
3749
+ --tw-ring-offset-color: #fff;
3750
+ --tw-ring-offset-shadow: 0 0 #0000;
3751
+ --tw-content: "";
3752
+ --tw-scale-x: 1;
3753
+ --tw-scale-y: 1;
3754
+ --tw-scale-z: 1;
3755
+ --tw-duration: initial;
3756
+ --tw-ease: initial;
3757
+ --tw-outline-style: solid;
3758
+ }
3759
+ }
3760
+ }