@slexkit/theme-shadcn 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1009 @@
1
+ .slex-playground {
2
+ --slex-playground-toolbar-height: var(--slex-control-height, 2.25rem);
3
+ position: relative;
4
+ overflow: hidden;
5
+ border: 1px solid color-mix(in oklab, var(--border) 64%, transparent);
6
+ border-radius: 1rem;
7
+ background: var(--background);
8
+ color: var(--card-foreground);
9
+ box-shadow: none;
10
+ }
11
+
12
+ .slex-playground-heading {
13
+ min-width: 0;
14
+ }
15
+
16
+ .slex-playground-title {
17
+ margin: 0;
18
+ font-size: 1rem;
19
+ font-weight: 600;
20
+ line-height: 1.3;
21
+ letter-spacing: 0;
22
+ }
23
+
24
+ .slex-playground-meta {
25
+ display: flex;
26
+ flex-wrap: wrap;
27
+ align-items: center;
28
+ gap: 0.5rem;
29
+ margin-top: 0.25rem;
30
+ color: var(--muted-foreground);
31
+ font-size: 0.8125rem;
32
+ line-height: 1.25rem;
33
+ }
34
+
35
+ .slex-playground-status {
36
+ display: inline-flex;
37
+ align-items: center;
38
+ min-height: 1.25rem;
39
+ padding: 0 0.375rem;
40
+ border: 1px solid var(--border);
41
+ border-radius: calc(var(--radius) - 2px);
42
+ background: var(--muted);
43
+ font-size: 0.75rem;
44
+ font-weight: 500;
45
+ }
46
+
47
+ .slex-playground-chrome {
48
+ position: absolute;
49
+ top: 0;
50
+ left: 0;
51
+ right: 0;
52
+ z-index: 4;
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: flex-end;
56
+ gap: 0;
57
+ height: var(--slex-playground-toolbar-height);
58
+ min-height: var(--slex-playground-toolbar-height);
59
+ padding: 0;
60
+ border-bottom: 1px solid color-mix(in oklab, var(--border) 46%, transparent);
61
+ background: color-mix(in oklab, var(--muted) 22%, var(--background));
62
+ pointer-events: none;
63
+ backdrop-filter: blur(12px);
64
+ overflow: visible;
65
+ scrollbar-width: none;
66
+ }
67
+
68
+ .slex-playground-chrome::-webkit-scrollbar {
69
+ display: none;
70
+ }
71
+
72
+ .slex-playground-source-picker {
73
+ position: relative;
74
+ z-index: 60;
75
+ width: 8rem;
76
+ min-width: 8rem;
77
+ height: var(--slex-playground-toolbar-height);
78
+ align-self: stretch;
79
+ }
80
+
81
+ .slex-playground-source-picker .slex-select {
82
+ height: 100%;
83
+ }
84
+
85
+ .slex-playground-tabs,
86
+ .slex-playground-actions {
87
+ display: inline-flex;
88
+ height: var(--slex-playground-toolbar-height);
89
+ align-self: stretch;
90
+ gap: 0;
91
+ padding: 0;
92
+ border: 0;
93
+ border-radius: 0;
94
+ background: transparent;
95
+ box-shadow: none;
96
+ pointer-events: auto;
97
+ }
98
+
99
+ .slex-playground-tabs {
100
+ margin-right: auto;
101
+ }
102
+
103
+ .slex-playground-tabs .slex-tabs {
104
+ width: auto;
105
+ height: 100%;
106
+ }
107
+
108
+ .slex-playground-tabs .slex-tabs-list {
109
+ height: 100%;
110
+ border-bottom: 0;
111
+ }
112
+
113
+ .slex-playground-tabs .slex-tabs-trigger {
114
+ width: var(--slex-playground-toolbar-height);
115
+ min-height: var(--slex-playground-toolbar-height);
116
+ height: var(--slex-playground-toolbar-height);
117
+ padding: 0;
118
+ color: var(--muted-foreground);
119
+ }
120
+
121
+ .slex-playground-tabs .slex-tabs-trigger:hover:not([data-disabled]),
122
+ .slex-playground-tabs .slex-tabs-trigger.slex-tabs-trigger--selected {
123
+ background: color-mix(in oklab, var(--muted) 32%, transparent);
124
+ color: var(--foreground);
125
+ }
126
+
127
+ .slex-playground-tabs .slex-tabs-trigger-icon {
128
+ width: 1rem;
129
+ height: 1rem;
130
+ }
131
+
132
+ .slex-playground-editor:focus-visible {
133
+ outline: 2px solid var(--ring);
134
+ outline-offset: 2px;
135
+ }
136
+
137
+ .slex-playground-actions .slex-button {
138
+ width: var(--slex-playground-toolbar-height);
139
+ height: var(--slex-playground-toolbar-height);
140
+ border: 0;
141
+ border-radius: 0;
142
+ background: transparent;
143
+ color: var(--muted-foreground);
144
+ box-shadow: none;
145
+ }
146
+
147
+ .slex-playground-actions .slex-button:hover {
148
+ background: color-mix(in oklab, var(--muted) 44%, var(--background));
149
+ color: var(--foreground);
150
+ transform: none;
151
+ box-shadow: none;
152
+ }
153
+
154
+ .slex-playground-actions {
155
+ border-left: 1px solid color-mix(in oklab, var(--border) 58%, transparent);
156
+ }
157
+
158
+ .slex-playground--workbench {
159
+ height: auto;
160
+ min-height: var(--slex-playground-min-height, 16rem);
161
+ }
162
+
163
+ .slex-playground--embedded {
164
+ height: 100svh;
165
+ box-shadow: none;
166
+ }
167
+
168
+ .slex-playground--standalone {
169
+ height: var(--slex-playground-min-height, calc(100svh - 2rem));
170
+ min-height: var(--slex-playground-min-height, calc(100svh - 2rem));
171
+ }
172
+
173
+ .slex-playground--embedded .slex-playground-preview-pane,
174
+ .slex-playground--embedded .slex-playground-code-pane,
175
+ .slex-playground--embedded .slex-playground-live-pane,
176
+ .slex-playground--standalone .slex-playground-preview-pane,
177
+ .slex-playground--standalone .slex-playground-code-pane,
178
+ .slex-playground--standalone .slex-playground-live-pane {
179
+ height: 100%;
180
+ min-height: 0;
181
+ }
182
+
183
+ .slex-playground--embedded .slex-playground-code,
184
+ .slex-playground--embedded .slex-playground-editor,
185
+ .slex-playground--embedded .slex-playground-editor.codemirror,
186
+ .slex-playground--embedded .slex-playground-editor .cm-editor,
187
+ .slex-playground--embedded .slex-playground-editor .cm-scroller,
188
+ .slex-playground--standalone .slex-playground-code,
189
+ .slex-playground--standalone .slex-playground-editor,
190
+ .slex-playground--standalone .slex-playground-editor.codemirror,
191
+ .slex-playground--standalone .slex-playground-editor .cm-editor,
192
+ .slex-playground--standalone .slex-playground-editor .cm-scroller {
193
+ height: 100%;
194
+ }
195
+
196
+ .slex-playground-preview-pane {
197
+ display: grid;
198
+ align-items: safe center;
199
+ overflow: auto;
200
+ scrollbar-gutter: stable both-edges;
201
+ min-height: var(--slex-playground-min-height, 16rem);
202
+ padding: calc(var(--slex-playground-toolbar-height) + 1.25rem) 2.25rem 2.25rem;
203
+ background-color: var(--background);
204
+ background-image: radial-gradient(color-mix(in oklab, var(--border) 58%, transparent) 1px, transparent 1px);
205
+ background-position: 0 0;
206
+ background-size: 18px 18px;
207
+ }
208
+
209
+ .slex-playground-preview-pane[hidden],
210
+ .slex-playground-code-pane[hidden] {
211
+ display: none;
212
+ }
213
+
214
+ .slex-playground-preview {
215
+ width: 100%;
216
+ margin: 0 auto;
217
+ }
218
+
219
+ .slex-playground[data-preview-align="start"] .slex-playground-preview-pane {
220
+ align-items: start;
221
+ }
222
+
223
+ .slex-playground[data-source-type="markdown"] .slex-playground-preview-pane {
224
+ align-items: start;
225
+ }
226
+
227
+ .slex-playground[data-preview-overflow="true"] .slex-playground-preview-pane {
228
+ align-items: start;
229
+ }
230
+
231
+ .slex-playground[data-preview-align="center"][data-preview-anchor="fixed"]:not([data-preview-overflow="true"]) .slex-playground-preview-pane {
232
+ align-items: start;
233
+ }
234
+
235
+ .slex-playground[data-preview-align="center"][data-preview-anchor="fixed"]:not([data-preview-overflow="true"]) .slex-playground-preview {
236
+ margin-top: var(--slex-preview-anchor-offset, 0);
237
+ }
238
+
239
+ .slex-playground[data-preview-align="start"] .slex-playground-live-preview {
240
+ align-items: start;
241
+ }
242
+
243
+ .slex-playground[data-source-type="markdown"] .slex-playground-live-preview {
244
+ align-items: start;
245
+ }
246
+
247
+ .slex-playground[data-preview-overflow="true"] .slex-playground-live-preview {
248
+ align-items: start;
249
+ }
250
+
251
+ .slex-playground[data-preview-align="center"][data-preview-anchor="fixed"]:not([data-preview-overflow="true"]) .slex-playground-live-preview {
252
+ align-items: start;
253
+ }
254
+
255
+ .slex-playground[data-preview-align="center"][data-preview-anchor="fixed"]:not([data-preview-overflow="true"]) .slex-playground-live-preview > .slex-standalone-playground-preview-inner {
256
+ margin-top: var(--slex-preview-anchor-offset, 0);
257
+ }
258
+
259
+ .slex-playground-code-pane {
260
+ display: flex;
261
+ min-width: 0;
262
+ min-height: var(--slex-playground-min-height, 16rem);
263
+ overflow: hidden;
264
+ background: var(--background);
265
+ }
266
+
267
+ .slex-playground-code {
268
+ flex: 1 1 auto;
269
+ width: 100%;
270
+ min-width: 0;
271
+ min-height: var(--slex-playground-min-height, 16rem);
272
+ overflow: hidden;
273
+ }
274
+
275
+ .slex-playground-code-scroll {
276
+ box-sizing: border-box;
277
+ width: 100%;
278
+ overflow: auto;
279
+ background: var(--background);
280
+ color: var(--foreground);
281
+ font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
282
+ font-size: 0.8125rem;
283
+ line-height: 1.55;
284
+ }
285
+
286
+ .slex-playground-code-lines {
287
+ min-width: max-content;
288
+ padding: 3.75rem 0 1.25rem;
289
+ }
290
+
291
+ .slex-playground-live-pane {
292
+ display: grid;
293
+ grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
294
+ min-height: var(--slex-playground-min-height, 16rem);
295
+ background: var(--background);
296
+ }
297
+
298
+ .slex-playground-live-code {
299
+ min-width: 0;
300
+ min-height: var(--slex-playground-min-height, 16rem);
301
+ overflow: hidden;
302
+ border-right: 1px solid color-mix(in oklab, var(--border) 58%, transparent);
303
+ }
304
+
305
+ .slex-playground-live-preview {
306
+ display: grid;
307
+ align-items: safe center;
308
+ min-width: 0;
309
+ min-height: var(--slex-playground-min-height, 16rem);
310
+ overflow: auto;
311
+ padding: calc(var(--slex-playground-toolbar-height) + 1.25rem) 1.5rem 1.5rem;
312
+ background-color: var(--background);
313
+ background-image: radial-gradient(color-mix(in oklab, var(--border) 52%, transparent) 1px, transparent 1px);
314
+ background-position: 0 0;
315
+ background-size: 18px 18px;
316
+ }
317
+
318
+ .slex-playground-live-pane.vertical {
319
+ grid-template-columns: 1fr;
320
+ }
321
+
322
+ .slex-playground-live-pane.vertical .slex-playground-live-code {
323
+ border-right: 0;
324
+ border-bottom: 1px solid color-mix(in oklab, var(--border) 58%, transparent);
325
+ }
326
+
327
+ .slex-playground-splitter {
328
+ position: relative;
329
+ background: color-mix(in oklab, var(--border) 76%, transparent);
330
+ touch-action: none;
331
+ transition: background-color 120ms ease;
332
+ }
333
+
334
+ .slex-playground-splitter:focus-visible {
335
+ background: color-mix(in oklab, var(--ring) 28%, var(--border));
336
+ outline: 2px solid var(--ring);
337
+ outline-offset: -2px;
338
+ }
339
+
340
+ .slex-playground-splitter.dragging {
341
+ background: var(--ring);
342
+ outline: none;
343
+ }
344
+
345
+ .slex-playground-live-pane.horizontal .slex-playground-splitter {
346
+ width: 8px;
347
+ cursor: col-resize;
348
+ }
349
+
350
+ .slex-playground-live-pane.vertical .slex-playground-splitter {
351
+ height: 8px;
352
+ cursor: row-resize;
353
+ }
354
+
355
+ .slex-playground-code-line {
356
+ display: grid;
357
+ grid-template-columns: 3.75rem minmax(0, 1fr);
358
+ min-height: 1.55em;
359
+ }
360
+
361
+ .slex-playground-code-line-number {
362
+ user-select: none;
363
+ border-right: 1px solid var(--border);
364
+ background: var(--muted);
365
+ color: var(--muted-foreground);
366
+ padding: 0 0.75rem;
367
+ text-align: right;
368
+ font-variant-numeric: tabular-nums;
369
+ }
370
+
371
+ .slex-playground-code-line-text {
372
+ display: block;
373
+ min-width: max-content;
374
+ white-space: pre;
375
+ padding: 0 1rem;
376
+ border: 0;
377
+ border-radius: 0;
378
+ background: transparent;
379
+ color: inherit;
380
+ font: inherit;
381
+ }
382
+
383
+ .slex-playground-code-scroll .hljs {
384
+ background: transparent;
385
+ color: var(--foreground);
386
+ }
387
+
388
+ .slex-playground-code-scroll pre,
389
+ .slex-playground-code-scroll code {
390
+ margin: 0;
391
+ border: 0;
392
+ background: transparent;
393
+ padding: 0;
394
+ font: inherit;
395
+ }
396
+
397
+ .slex-playground-editor {
398
+ --slex-code-keyword: color-mix(in oklab, var(--info) 82%, var(--foreground));
399
+ --slex-code-name: color-mix(in oklab, var(--foreground) 84%, var(--muted-foreground));
400
+ --slex-code-string: color-mix(in oklab, var(--success) 82%, var(--foreground));
401
+ --slex-code-literal: color-mix(in oklab, var(--warning) 82%, var(--foreground));
402
+ --slex-code-function: color-mix(in oklab, var(--info) 64%, var(--foreground));
403
+ --slex-code-punctuation: color-mix(in oklab, var(--muted-foreground) 82%, var(--foreground));
404
+ --slex-code-comment: color-mix(in oklab, var(--muted-foreground) 76%, transparent);
405
+ --slex-code-heading: color-mix(in oklab, var(--foreground) 92%, var(--info));
406
+ --slex-code-link: color-mix(in oklab, var(--info) 86%, var(--foreground));
407
+ display: block;
408
+ box-sizing: border-box;
409
+ width: 100%;
410
+ min-height: var(--slex-playground-min-height, 16rem);
411
+ resize: none;
412
+ border: 0;
413
+ background: var(--background);
414
+ color: var(--foreground);
415
+ padding: 0;
416
+ font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
417
+ font-size: 0.75rem;
418
+ line-height: 1.5;
419
+ outline: none;
420
+ }
421
+
422
+ .dark .slex-playground-editor {
423
+ --slex-code-keyword: color-mix(in oklab, var(--info) 72%, var(--foreground));
424
+ --slex-code-name: color-mix(in oklab, var(--foreground) 88%, var(--info));
425
+ --slex-code-string: color-mix(in oklab, var(--success) 76%, var(--foreground));
426
+ --slex-code-literal: color-mix(in oklab, var(--warning) 72%, var(--foreground));
427
+ --slex-code-function: color-mix(in oklab, var(--info) 82%, var(--foreground));
428
+ --slex-code-punctuation: color-mix(in oklab, var(--muted-foreground) 88%, var(--foreground));
429
+ --slex-code-comment: color-mix(in oklab, var(--muted-foreground) 82%, transparent);
430
+ --slex-code-heading: color-mix(in oklab, var(--foreground) 94%, var(--info));
431
+ --slex-code-link: color-mix(in oklab, var(--info) 76%, var(--foreground));
432
+ }
433
+
434
+ .dark :where(.slex-playground-editor, .slex-standalone-playground-editor) .cm-content :where([class~="ͼ5"]) {
435
+ color: var(--slex-code-comment) !important;
436
+ }
437
+
438
+ .dark :where(.slex-playground-editor, .slex-standalone-playground-editor) .cm-content :where([class~="ͼ7"]) {
439
+ color: var(--slex-code-heading) !important;
440
+ }
441
+
442
+ .dark :where(.slex-playground-editor, .slex-standalone-playground-editor) .cm-content :where([class~="ͼb"]) {
443
+ color: var(--slex-code-keyword) !important;
444
+ }
445
+
446
+ .dark :where(.slex-playground-editor, .slex-standalone-playground-editor) .cm-content :where([class~="ͼc"], [class~="ͼg"], [class~="ͼh"], [class~="ͼi"], [class~="ͼj"]) {
447
+ color: var(--slex-code-name) !important;
448
+ }
449
+
450
+ .dark :where(.slex-playground-editor, .slex-standalone-playground-editor) .cm-content :where([class~="ͼd"], [class~="ͼf"]) {
451
+ color: var(--slex-code-literal) !important;
452
+ }
453
+
454
+ .dark :where(.slex-playground-editor, .slex-standalone-playground-editor) .cm-content :where([class~="ͼe"]) {
455
+ color: var(--slex-code-string) !important;
456
+ }
457
+
458
+ .slex-playground-editor.codemirror,
459
+ .slex-playground-editor .cm-editor {
460
+ width: 100% !important;
461
+ max-width: 100% !important;
462
+ min-width: 0 !important;
463
+ height: auto;
464
+ min-height: var(--slex-playground-min-height, 16rem);
465
+ overflow: hidden;
466
+ background: var(--background);
467
+ color: var(--foreground);
468
+ }
469
+
470
+ .slex-playground-editor .cm-editor.cm-focused .cm-cursor {
471
+ border-left-color: var(--foreground);
472
+ }
473
+
474
+ .slex-playground-editor .cm-editor.cm-focused .cm-selectionBackground,
475
+ .slex-playground-editor .cm-editor .cm-selectionBackground,
476
+ .slex-playground-editor .cm-editor.cm-focused .cm-content ::selection {
477
+ background: color-mix(in oklab, var(--foreground) 18%, transparent) !important;
478
+ }
479
+
480
+ .slex-playground-editor .cm-focused {
481
+ outline: none;
482
+ }
483
+
484
+ .slex-playground-editor .cm-scroller {
485
+ box-sizing: border-box;
486
+ flex: 1 1 auto;
487
+ width: 100% !important;
488
+ max-width: 100% !important;
489
+ min-width: 0 !important;
490
+ min-height: var(--slex-playground-min-height, 16rem);
491
+ height: auto;
492
+ overflow: auto;
493
+ padding-top: var(--slex-playground-toolbar-height);
494
+ font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
495
+ font-size: 0.8125rem;
496
+ line-height: 1.55;
497
+ }
498
+
499
+ .slex-playground-code-scroll,
500
+ .slex-playground-live-preview,
501
+ .slex-playground-editor .cm-scroller,
502
+ .slex-standalone-playground-preview,
503
+ .slex-standalone-playground-editor .cm-scroller {
504
+ scrollbar-color: color-mix(in oklab, var(--muted-foreground) 42%, transparent) transparent;
505
+ scrollbar-width: thin;
506
+ }
507
+
508
+ .slex-playground-code-scroll::-webkit-scrollbar,
509
+ .slex-playground-live-preview::-webkit-scrollbar,
510
+ .slex-playground-editor .cm-scroller::-webkit-scrollbar,
511
+ .slex-standalone-playground-preview::-webkit-scrollbar,
512
+ .slex-standalone-playground-editor .cm-scroller::-webkit-scrollbar {
513
+ width: 0.625rem;
514
+ height: 0.625rem;
515
+ }
516
+
517
+ .slex-playground-code-scroll::-webkit-scrollbar-track,
518
+ .slex-playground-live-preview::-webkit-scrollbar-track,
519
+ .slex-playground-editor .cm-scroller::-webkit-scrollbar-track,
520
+ .slex-standalone-playground-preview::-webkit-scrollbar-track,
521
+ .slex-standalone-playground-editor .cm-scroller::-webkit-scrollbar-track {
522
+ background: transparent;
523
+ }
524
+
525
+ .slex-playground-code-scroll::-webkit-scrollbar-thumb,
526
+ .slex-playground-code-scroll::-webkit-scrollbar-thumb:hover,
527
+ .slex-playground-code-scroll::-webkit-scrollbar-thumb:active,
528
+ .slex-playground-live-preview::-webkit-scrollbar-thumb,
529
+ .slex-playground-live-preview::-webkit-scrollbar-thumb:hover,
530
+ .slex-playground-live-preview::-webkit-scrollbar-thumb:active,
531
+ .slex-playground-editor .cm-scroller::-webkit-scrollbar-thumb,
532
+ .slex-playground-editor .cm-scroller::-webkit-scrollbar-thumb:hover,
533
+ .slex-playground-editor .cm-scroller::-webkit-scrollbar-thumb:active,
534
+ .slex-standalone-playground-preview::-webkit-scrollbar-thumb,
535
+ .slex-standalone-playground-preview::-webkit-scrollbar-thumb:hover,
536
+ .slex-standalone-playground-preview::-webkit-scrollbar-thumb:active,
537
+ .slex-standalone-playground-editor .cm-scroller::-webkit-scrollbar-thumb,
538
+ .slex-standalone-playground-editor .cm-scroller::-webkit-scrollbar-thumb:hover,
539
+ .slex-standalone-playground-editor .cm-scroller::-webkit-scrollbar-thumb:active {
540
+ border: 0.1875rem solid transparent;
541
+ border-radius: 999px;
542
+ background: color-mix(in oklab, var(--muted-foreground) 42%, transparent);
543
+ background-clip: content-box;
544
+ }
545
+
546
+ .slex-playground-editor .cm-editor .cm-gutters {
547
+ height: calc(var(--slex-playground-min-height, 16rem) - var(--slex-playground-toolbar-height));
548
+ }
549
+
550
+ .slex-playground-editor .cm-gutters {
551
+ height: calc(var(--slex-playground-min-height, 16rem) - var(--slex-playground-toolbar-height));
552
+ border-right: 1px solid var(--border);
553
+ background: var(--muted);
554
+ color: var(--muted-foreground);
555
+ }
556
+
557
+ .slex-playground-editor .cm-activeLine,
558
+ .slex-playground-editor .cm-activeLineGutter {
559
+ background: color-mix(in oklab, var(--accent) 42%, transparent);
560
+ }
561
+
562
+ .slex-playground-editor .cm-content {
563
+ min-height: calc(var(--slex-playground-min-height, 16rem) - var(--slex-playground-toolbar-height));
564
+ padding: 1rem 1.25rem 1.25rem;
565
+ }
566
+
567
+ .slexkit-root .sr-only,
568
+ .slex-sr-only {
569
+ position: absolute;
570
+ width: 1px;
571
+ height: 1px;
572
+ overflow: hidden;
573
+ clip: rect(0 0 0 0);
574
+ white-space: nowrap;
575
+ clip-path: inset(50%);
576
+ }
577
+
578
+ .slex-playground-error {
579
+ border-top: 1px solid var(--destructive);
580
+ background: color-mix(in oklab, var(--destructive) 10%, transparent);
581
+ color: var(--destructive);
582
+ padding: 0.75rem 1rem;
583
+ font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
584
+ font-size: 0.75rem;
585
+ }
586
+
587
+ .slex-streamdown-block {
588
+ margin-block: 0.75rem;
589
+ }
590
+
591
+ .slex-streamdown-body {
592
+ padding: 0.75rem;
593
+ }
594
+
595
+ .slex-streamdown-error {
596
+ border: 1px dashed var(--destructive);
597
+ border-radius: calc(var(--radius) - 2px);
598
+ color: var(--destructive);
599
+ padding: 1rem;
600
+ text-align: left;
601
+ }
602
+
603
+ .slex-streamdown-error-title {
604
+ font-weight: 700;
605
+ }
606
+
607
+ .slex-streamdown-error-message {
608
+ margin-top: 0.5rem;
609
+ color: var(--foreground);
610
+ font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
611
+ font-size: 0.8125rem;
612
+ line-height: 1.5;
613
+ }
614
+
615
+ .slex-streamdown-error-location,
616
+ .slex-streamdown-error-detail {
617
+ margin-top: 0.5rem;
618
+ color: var(--muted-foreground);
619
+ font-size: 0.8125rem;
620
+ }
621
+
622
+ .slex-streamdown-error-excerpt {
623
+ overflow: auto;
624
+ margin: 0.75rem 0 0;
625
+ border-radius: calc(var(--radius) - 2px);
626
+ background: var(--background);
627
+ color: var(--foreground);
628
+ padding: 0.75rem;
629
+ font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
630
+ font-size: 0.8125rem;
631
+ line-height: 1.55;
632
+ white-space: pre;
633
+ }
634
+
635
+ .slex-standalone-playground {
636
+ box-sizing: border-box;
637
+ width: 100%;
638
+ height: 100svh;
639
+ min-height: 0;
640
+ overflow: hidden;
641
+ padding: 1rem;
642
+ }
643
+
644
+ .slex-playground-embedded-body .slex-standalone-playground {
645
+ height: 100svh;
646
+ padding: 0;
647
+ }
648
+
649
+ .slex-playground-embedded-body {
650
+ background: transparent;
651
+ }
652
+
653
+ .slex-standalone-playground-shell {
654
+ position: relative;
655
+ height: calc(100svh - 2rem);
656
+ min-height: calc(100svh - 2rem);
657
+ overflow: hidden;
658
+ border: 1px solid var(--border);
659
+ border-radius: var(--radius);
660
+ background: var(--background);
661
+ }
662
+
663
+ .slex-standalone-playground-toolbar {
664
+ position: absolute;
665
+ top: 0.75rem;
666
+ right: 0.75rem;
667
+ z-index: 3;
668
+ display: inline-flex;
669
+ gap: 0.25rem;
670
+ padding: 0.25rem;
671
+ border: 1px solid color-mix(in oklab, var(--border) 70%, transparent);
672
+ border-radius: var(--radius);
673
+ background: color-mix(in oklab, var(--muted) 86%, transparent);
674
+ box-shadow: var(--shadow-sm);
675
+ }
676
+
677
+ .slex-standalone-playground-button {
678
+ display: inline-grid;
679
+ width: 2.5rem;
680
+ height: 2.25rem;
681
+ place-items: center;
682
+ padding: 0;
683
+ border: 0;
684
+ border-radius: calc(var(--radius) - 2px);
685
+ background: transparent;
686
+ color: var(--muted-foreground);
687
+ font: inherit;
688
+ font-size: 0.8125rem;
689
+ font-weight: 600;
690
+ letter-spacing: 0;
691
+ cursor: pointer;
692
+ }
693
+
694
+ .slex-standalone-playground-button svg {
695
+ display: block;
696
+ width: 1.125rem;
697
+ height: 1.125rem;
698
+ fill: currentColor;
699
+ }
700
+
701
+ .slex-standalone-playground-icon {
702
+ display: inline-grid;
703
+ place-items: center;
704
+ }
705
+
706
+ .slex-standalone-playground-button:hover {
707
+ color: var(--foreground);
708
+ }
709
+
710
+ .slex-standalone-playground-button:focus-visible,
711
+ .slex-standalone-playground-editor .cm-focused {
712
+ outline: 2px solid var(--ring);
713
+ outline-offset: 2px;
714
+ }
715
+
716
+ .slex-standalone-playground-button--active {
717
+ background: var(--background);
718
+ color: var(--foreground);
719
+ box-shadow: var(--shadow-sm);
720
+ }
721
+
722
+ .slex-standalone-playground-error {
723
+ border: 1px solid var(--destructive);
724
+ border-radius: var(--radius);
725
+ background: color-mix(in oklab, var(--destructive) 6%, var(--background));
726
+ color: var(--destructive);
727
+ padding: 1rem;
728
+ box-shadow: var(--shadow-sm);
729
+ }
730
+
731
+ .slex-standalone-playground-error-title {
732
+ color: var(--destructive);
733
+ font-size: 1rem;
734
+ font-weight: 700;
735
+ }
736
+
737
+ .slex-standalone-playground-error-message {
738
+ margin-top: 0.5rem;
739
+ color: var(--foreground);
740
+ font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
741
+ font-size: 0.8125rem;
742
+ line-height: 1.5;
743
+ }
744
+
745
+ .slex-standalone-playground-error-location,
746
+ .slex-standalone-playground-error-detail {
747
+ margin-top: 0.5rem;
748
+ color: var(--muted-foreground);
749
+ font-size: 0.8125rem;
750
+ }
751
+
752
+ .slex-standalone-playground-error-excerpt {
753
+ overflow: auto;
754
+ margin: 0.75rem 0 0;
755
+ border-radius: calc(var(--radius) - 2px);
756
+ background: var(--background);
757
+ color: var(--foreground);
758
+ padding: 0.75rem;
759
+ font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
760
+ font-size: 0.8125rem;
761
+ line-height: 1.55;
762
+ }
763
+
764
+ .slex-standalone-playground-surface {
765
+ box-sizing: border-box;
766
+ height: calc(100svh - 2rem);
767
+ min-height: calc(100svh - 2rem);
768
+ overflow: hidden;
769
+ }
770
+
771
+ .slex-standalone-playground-surface:not(.slex-standalone-playground-surface--split) {
772
+ display: block;
773
+ }
774
+
775
+ .slex-standalone-playground-pane {
776
+ box-sizing: border-box;
777
+ min-width: 0;
778
+ min-height: 0;
779
+ height: 100%;
780
+ overflow: hidden;
781
+ }
782
+
783
+ .slex-standalone-playground-surface--split,
784
+ .slex-standalone-playground-surface--split > .split-pane-pane {
785
+ display: grid;
786
+ height: 100%;
787
+ min-height: 0;
788
+ }
789
+
790
+ .slex-standalone-playground-splitter {
791
+ position: relative;
792
+ background: var(--border);
793
+ touch-action: none;
794
+ transition: background-color 120ms ease;
795
+ }
796
+
797
+ .slex-standalone-playground-splitter:focus-visible {
798
+ background: color-mix(in oklab, var(--ring) 28%, var(--border));
799
+ outline: 2px solid var(--ring);
800
+ outline-offset: -2px;
801
+ }
802
+
803
+ .slex-standalone-playground-splitter.dragging {
804
+ background: var(--ring);
805
+ outline: none;
806
+ }
807
+
808
+ .slex-standalone-playground-surface--split.horizontal .slex-standalone-playground-splitter {
809
+ width: 100%;
810
+ height: 100%;
811
+ }
812
+
813
+ .slex-standalone-playground-surface--split.vertical .slex-standalone-playground-splitter {
814
+ width: 100%;
815
+ height: 100%;
816
+ }
817
+
818
+ .slex-standalone-playground-code,
819
+ .slex-standalone-playground-preview {
820
+ box-sizing: border-box;
821
+ min-width: 0;
822
+ min-height: 0;
823
+ height: 100%;
824
+ }
825
+
826
+ .slex-standalone-playground-code {
827
+ background: var(--background);
828
+ }
829
+
830
+ .slex-standalone-playground-code .codemirror {
831
+ display: block;
832
+ width: 100%;
833
+ height: 100%;
834
+ }
835
+
836
+ .slex-standalone-playground-editor {
837
+ --slex-code-keyword: color-mix(in oklab, var(--info) 82%, var(--foreground));
838
+ --slex-code-name: color-mix(in oklab, var(--foreground) 84%, var(--muted-foreground));
839
+ --slex-code-string: color-mix(in oklab, var(--success) 82%, var(--foreground));
840
+ --slex-code-literal: color-mix(in oklab, var(--warning) 82%, var(--foreground));
841
+ --slex-code-function: color-mix(in oklab, var(--info) 64%, var(--foreground));
842
+ --slex-code-punctuation: color-mix(in oklab, var(--muted-foreground) 82%, var(--foreground));
843
+ --slex-code-comment: color-mix(in oklab, var(--muted-foreground) 76%, transparent);
844
+ --slex-code-heading: color-mix(in oklab, var(--foreground) 92%, var(--info));
845
+ --slex-code-link: color-mix(in oklab, var(--info) 86%, var(--foreground));
846
+ display: block;
847
+ box-sizing: border-box;
848
+ width: 100%;
849
+ height: 100%;
850
+ min-height: 100%;
851
+ border: 0;
852
+ background: var(--background);
853
+ color: var(--foreground);
854
+ font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
855
+ font-size: 0.8125rem;
856
+ line-height: 1.55;
857
+ outline: none;
858
+ }
859
+
860
+ .dark .slex-standalone-playground-editor {
861
+ --slex-code-keyword: color-mix(in oklab, var(--info) 72%, var(--foreground));
862
+ --slex-code-name: color-mix(in oklab, var(--foreground) 88%, var(--info));
863
+ --slex-code-string: color-mix(in oklab, var(--success) 76%, var(--foreground));
864
+ --slex-code-literal: color-mix(in oklab, var(--warning) 72%, var(--foreground));
865
+ --slex-code-function: color-mix(in oklab, var(--info) 82%, var(--foreground));
866
+ --slex-code-punctuation: color-mix(in oklab, var(--muted-foreground) 88%, var(--foreground));
867
+ --slex-code-comment: color-mix(in oklab, var(--muted-foreground) 82%, transparent);
868
+ --slex-code-heading: color-mix(in oklab, var(--foreground) 94%, var(--info));
869
+ --slex-code-link: color-mix(in oklab, var(--info) 76%, var(--foreground));
870
+ }
871
+
872
+ .slex-standalone-playground-editor .cm-editor {
873
+ height: 100%;
874
+ background: var(--background);
875
+ color: var(--foreground);
876
+ font-size: 0.8125rem;
877
+ }
878
+
879
+ .slex-standalone-playground-editor .cm-editor.cm-focused .cm-cursor {
880
+ border-left-color: var(--foreground);
881
+ }
882
+
883
+ .slex-standalone-playground-editor .cm-editor.cm-focused .cm-selectionBackground,
884
+ .slex-standalone-playground-editor .cm-editor .cm-selectionBackground,
885
+ .slex-standalone-playground-editor .cm-editor.cm-focused .cm-content ::selection {
886
+ background: color-mix(in oklab, var(--foreground) 18%, transparent) !important;
887
+ }
888
+
889
+ .slex-standalone-playground-editor .cm-scroller {
890
+ padding-top: 0.75rem;
891
+ font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
892
+ line-height: 1.55;
893
+ }
894
+
895
+ .slex-standalone-playground-editor .cm-gutters {
896
+ border-right: 1px solid var(--border);
897
+ background: var(--muted);
898
+ color: var(--muted-foreground);
899
+ }
900
+
901
+ .slex-standalone-playground-editor .cm-activeLine,
902
+ .slex-standalone-playground-editor .cm-activeLineGutter {
903
+ background: color-mix(in oklab, var(--muted) 58%, transparent);
904
+ }
905
+
906
+ .slex-standalone-playground-editor .cm-content {
907
+ padding: 0 1.25rem 1.25rem;
908
+ }
909
+
910
+ .slex-standalone-playground-preview {
911
+ overflow: auto;
912
+ scrollbar-gutter: stable both-edges;
913
+ padding: 4rem 1.25rem 1.25rem;
914
+ background-color: var(--background);
915
+ background-image: radial-gradient(color-mix(in oklab, var(--border) 78%, transparent) 1px, transparent 1px);
916
+ background-position: 0 0;
917
+ background-size: 18px 18px;
918
+ }
919
+
920
+ .slex-standalone-playground-preview-inner {
921
+ display: grid;
922
+ gap: var(--slex-preview-document-gap, 1rem);
923
+ align-content: center;
924
+ width: 100%;
925
+ max-width: 760px;
926
+ margin: 0 auto;
927
+ }
928
+
929
+ .slex-standalone-playground-shell[data-mode="render"] .slex-standalone-playground-preview-inner {
930
+ max-width: 900px;
931
+ }
932
+
933
+ @media (max-width: 640px) {
934
+ .slex-playground {
935
+ border-radius: 0.75rem;
936
+ }
937
+
938
+ .slex-playground-chrome {
939
+ padding: 0;
940
+ }
941
+
942
+ .slex-playground-actions .slex-button {
943
+ width: var(--slex-playground-toolbar-height);
944
+ height: var(--slex-playground-toolbar-height);
945
+ }
946
+
947
+ .slex-playground-preview-pane {
948
+ padding: 1.25rem;
949
+ padding-top: calc(var(--slex-playground-toolbar-height) + 1.25rem);
950
+ }
951
+
952
+ .slex-playground-live-pane {
953
+ grid-template-columns: 1fr;
954
+ }
955
+
956
+ .slex-playground-live-code {
957
+ border-right: 0;
958
+ border-bottom: 1px solid color-mix(in oklab, var(--border) 58%, transparent);
959
+ }
960
+
961
+ .slex-playground-live-preview {
962
+ padding: calc(var(--slex-playground-toolbar-height) + 1.25rem) 1.25rem 1.25rem;
963
+ }
964
+
965
+ .slex-playground-source-picker {
966
+ width: 6.75rem;
967
+ min-width: 6.75rem;
968
+ }
969
+
970
+ .slex-playground-code-lines {
971
+ padding-top: calc(var(--slex-playground-toolbar-height) + 1rem);
972
+ }
973
+
974
+ .slex-standalone-playground {
975
+ padding: 0;
976
+ }
977
+
978
+ .slex-standalone-playground-shell {
979
+ height: 100svh;
980
+ min-height: 100svh;
981
+ border-width: 0;
982
+ border-radius: 0;
983
+ }
984
+
985
+ .slex-standalone-playground-toolbar {
986
+ right: 0.5rem;
987
+ }
988
+
989
+ .slex-standalone-playground-button {
990
+ width: 2.375rem;
991
+ }
992
+
993
+ .slex-standalone-playground-surface {
994
+ height: 100svh;
995
+ min-height: 100svh;
996
+ }
997
+
998
+ .slex-standalone-playground-editor {
999
+ min-height: 100%;
1000
+ }
1001
+
1002
+ .slex-standalone-playground-editor .cm-scroller {
1003
+ padding-top: 0.75rem;
1004
+ }
1005
+
1006
+ .slex-standalone-playground-editor .cm-content {
1007
+ padding: 0 1rem 1rem;
1008
+ }
1009
+ }