babavoss 0.12.4 → 0.12.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/gui/theme.css DELETED
@@ -1,3053 +0,0 @@
1
- /* src/desktop/desktop.css */
2
- @layer theme, base, voss, components, utilities;
3
-
4
- @layer voss {
5
- .desktop {
6
- position: relative;
7
- display: flex;
8
- overflow: hidden;
9
- color: var(--foreground);
10
- background: var(--desk);
11
- font: 13px / 20px var(--font-sans, system-ui);
12
- --desktop-ink: color-mix(in oklch, var(--foreground) 6%, transparent);
13
- --desktop-ink-strong: color-mix(in oklch, var(--foreground) 11%, transparent);
14
- --desktop-ink-top: color-mix(in oklch, var(--foreground) 20%, transparent);
15
- flex-direction: column;
16
- height: 100dvh;
17
- min-height: 320px;
18
- }
19
-
20
- .desktop button, .desktop input, .desktop select {
21
- font: inherit;
22
- color: inherit;
23
- }
24
-
25
- .desktop button {
26
- cursor: pointer;
27
- }
28
-
29
- .desktop button:disabled {
30
- cursor: default;
31
- }
32
-
33
- .desktop button:focus-visible {
34
- outline: 2px solid var(--primary);
35
- outline-offset: -2px;
36
- }
37
-
38
- .desktop select:focus-visible {
39
- outline: 2px solid var(--primary);
40
- outline-offset: -2px;
41
- }
42
-
43
- .desktop-bar {
44
- position: relative;
45
- z-index: 3;
46
- display: flex;
47
- user-select: none;
48
- flex-shrink: 0;
49
- align-items: stretch;
50
- gap: 4px;
51
- height: 40px;
52
- padding: 6px 8px;
53
- }
54
-
55
- .desktop-logo {
56
- display: grid;
57
- color: var(--foreground);
58
- background: none;
59
- border: 0;
60
- border-radius: 999px;
61
- place-items: center;
62
- width: 28px;
63
- padding: 0;
64
- }
65
-
66
- .desktop-logo:hover {
67
- background: var(--desktop-ink);
68
- }
69
-
70
- .desktop-logo.is-selected {
71
- background: var(--desktop-ink-top);
72
- color: var(--primary);
73
- }
74
-
75
- .desktop-eyes {
76
- display: block;
77
- }
78
-
79
- .desktop-eye-large {
80
- transition: opacity .12s;
81
- }
82
-
83
- .desktop-eye-small {
84
- transition: transform .22s cubic-bezier(.3,1.2,.3,1);
85
- }
86
-
87
- .desktop-eyes.is-alone .desktop-eye-large {
88
- opacity: 0;
89
- }
90
-
91
- .desktop-eyes.is-alone .desktop-eye-small {
92
- transform: translateX(-21.5px);
93
- }
94
-
95
- .desktop-eyes circle {
96
- transform-box: fill-box;
97
- transform-origin: center;
98
- }
99
-
100
- .desktop-eyes.is-settling .desktop-eye-small {
101
- animation: .34s cubic-bezier(.3,1.6,.4,1) desktop-eye-home;
102
- }
103
-
104
- .desktop-eyes.is-settling .desktop-eye-large {
105
- animation: .34s cubic-bezier(.3,1.6,.4,1) desktop-eye-back;
106
- }
107
-
108
- @keyframes desktop-eye-home {
109
- from {
110
- transform: translateX(-21.5px);
111
- }
112
- }
113
-
114
- @keyframes desktop-eye-back {
115
- from {
116
- transform: scale(0);
117
- }
118
- }
119
-
120
- @media (prefers-reduced-motion: reduce) {
121
- .desktop-eyes.is-settling circle {
122
- animation: none;
123
- }
124
- }
125
-
126
- .desktop-bar-title {
127
- display: flex;
128
- color: var(--muted-foreground);
129
- white-space: pre;
130
- align-items: center;
131
- padding: 0 8px;
132
- }
133
-
134
- .desktop-bar-root {
135
- color: var(--muted-foreground);
136
- text-decoration: none;
137
- border-radius: 4px;
138
- margin: 0 -2px;
139
- padding: 0 2px;
140
- }
141
-
142
- .desktop-bar-root:hover {
143
- color: var(--foreground);
144
- background: var(--muted);
145
- outline: none;
146
- }
147
-
148
- .desktop-bar-root:focus-visible {
149
- color: var(--foreground);
150
- background: var(--muted);
151
- outline: none;
152
- }
153
-
154
- .desktop-bar-gap {
155
- flex: 1;
156
- }
157
-
158
- .desktop-pills {
159
- display: flex;
160
- overflow-x: auto;
161
- scrollbar-width: none;
162
- scroll-behavior: smooth;
163
- align-items: stretch;
164
- gap: 4px;
165
- min-width: 0;
166
- }
167
-
168
- .desktop-pills::-webkit-scrollbar {
169
- display: none;
170
- }
171
-
172
- .desktop-pills.is-faded-left {
173
- mask-image: linear-gradient(to right, #0000, #000 32px);
174
- }
175
-
176
- .desktop-pills.is-faded-right {
177
- mask-image: linear-gradient(to right, #000 calc(100% - 32px), #0000);
178
- }
179
-
180
- .desktop-pills.is-faded-left.is-faded-right {
181
- mask-image: linear-gradient(to right, #0000, #000 32px calc(100% - 32px), #0000);
182
- }
183
-
184
- .desktop-pill {
185
- position: relative;
186
- display: flex;
187
- color: var(--muted-foreground);
188
- border-radius: 999px;
189
- flex-shrink: 0;
190
- align-items: center;
191
- max-width: 180px;
192
- }
193
-
194
- .desktop-pill:hover, .desktop-pill.is-cursor {
195
- background: var(--desktop-ink);
196
- color: var(--foreground);
197
- }
198
-
199
- .desktop-pill.is-active {
200
- background: var(--desktop-ink-strong);
201
- color: var(--foreground);
202
- }
203
-
204
- .desktop-pill-label {
205
- display: flex;
206
- white-space: nowrap;
207
- background: none;
208
- border: 0;
209
- border-radius: 999px;
210
- align-items: center;
211
- gap: 3px;
212
- min-width: 0;
213
- height: 100%;
214
- padding: 0 10px 0 3px;
215
- }
216
-
217
- .desktop-pill-icon {
218
- display: grid;
219
- flex-shrink: 0;
220
- place-items: center;
221
- width: 22px;
222
- height: 22px;
223
- }
224
-
225
- .desktop-pill-icon, .desktop-pill-close {
226
- transition: transform .26s cubic-bezier(.3,1.6,.4,1), opacity 80ms;
227
- }
228
-
229
- .desktop-pill:hover .desktop-pill-label > .desktop-pill-icon {
230
- opacity: 0;
231
- transform: scale(.5);
232
- }
233
-
234
- .desktop-pill:has(:focus-visible) .desktop-pill-label > .desktop-pill-icon {
235
- opacity: 0;
236
- transform: scale(.5);
237
- }
238
-
239
- .desktop-pill-close {
240
- position: absolute;
241
- display: grid;
242
- color: var(--foreground);
243
- opacity: 0;
244
- pointer-events: none;
245
- background: none;
246
- border: 0;
247
- border-radius: 999px;
248
- place-items: center;
249
- width: 22px;
250
- height: 22px;
251
- padding: 0;
252
- top: 3px;
253
- left: 3px;
254
- transform: scale(.5);
255
- }
256
-
257
- .desktop-pill-close svg {
258
- display: block;
259
- }
260
-
261
- .desktop-pill:hover .desktop-pill-close {
262
- opacity: 1;
263
- pointer-events: auto;
264
- transform: none;
265
- }
266
-
267
- .desktop-pill:has(:focus-visible) .desktop-pill-close {
268
- opacity: 1;
269
- pointer-events: auto;
270
- transform: none;
271
- }
272
-
273
- .desktop-pill-close:hover {
274
- background: var(--desktop-ink-strong);
275
- }
276
-
277
- .desktop-pill-text {
278
- display: block;
279
- overflow: hidden;
280
- }
281
-
282
- .desktop-pill-track {
283
- display: flex;
284
- gap: 24px;
285
- }
286
-
287
- .desktop-pill-track > span {
288
- flex-shrink: 0;
289
- }
290
-
291
- @property --desktop-fade-left {
292
- syntax: "<length>"; inherits: false; initial-value: 0px;
293
- }
294
-
295
- .desktop-pill-text.is-overflowing {
296
- mask-image: linear-gradient(to right, transparent, #000 var(--desktop-fade-left), #000 calc(100% - 20px), transparent);
297
- }
298
-
299
- .desktop-pill:hover .desktop-pill-text.is-overflowing {
300
- animation: .5s ease-out 1s forwards desktop-marquee-fade;
301
- }
302
-
303
- .desktop-pill:hover .desktop-pill-text.is-overflowing .desktop-pill-track {
304
- animation: .6s cubic-bezier(.33,.66,.66,1) 1s forwards desktop-marquee-start;
305
- }
306
-
307
- .desktop-pill:hover .desktop-pill-text.is-overflowing .desktop-pill-track > span {
308
- animation: desktop-marquee var(--scroll) linear 1s infinite;
309
- }
310
-
311
- @keyframes desktop-marquee {
312
- to {
313
- transform: translateX(var(--shift));
314
- }
315
- }
316
-
317
- @keyframes desktop-marquee-start {
318
- to {
319
- transform: translateX(var(--ease));
320
- }
321
- }
322
-
323
- @keyframes desktop-marquee-fade {
324
- to {
325
- --desktop-fade-left: 12px;
326
- }
327
- }
328
-
329
- @media (prefers-reduced-motion: reduce) {
330
- .desktop-pill:hover .desktop-pill-text.is-overflowing, .desktop-pill:hover .desktop-pill-text.is-overflowing .desktop-pill-track, .desktop-pill:hover .desktop-pill-text.is-overflowing .desktop-pill-track > span {
331
- animation: none;
332
- }
333
- }
334
-
335
- .desktop-content {
336
- overflow: hidden;
337
- display: flex;
338
- flex-direction: column;
339
- flex: 1;
340
- min-width: 0;
341
- min-height: 0;
342
- }
343
-
344
- .desktop-app {
345
- overflow: auto;
346
- background: var(--background);
347
- border-top: 1px solid var(--border);
348
- flex: 1;
349
- min-height: 0;
350
- }
351
-
352
- .desktop-app[hidden] {
353
- display: none;
354
- }
355
-
356
- .desktop-launcher {
357
- position: absolute;
358
- z-index: 5;
359
- display: flex;
360
- background: var(--desk);
361
- flex-direction: column;
362
- inset: 0;
363
- }
364
-
365
- .desktop-search {
366
- background: none;
367
- border: 0;
368
- flex: 1;
369
- min-width: 0;
370
- height: 100%;
371
- padding: 0 10px 0 6px;
372
- font-size: 13px;
373
- }
374
-
375
- .desktop-search::placeholder {
376
- color: var(--muted-foreground);
377
- }
378
-
379
- .desktop .desktop-search:focus {
380
- outline: none;
381
- }
382
-
383
- .desktop-launcher-body {
384
- overflow: auto;
385
- flex: 1;
386
- min-height: 0;
387
- padding: 4px 8px 24px 40px;
388
- }
389
-
390
- .desktop-dot {
391
- position: absolute;
392
- background: var(--primary);
393
- opacity: 0;
394
- pointer-events: none;
395
- will-change: transform;
396
- z-index: 1;
397
- border-radius: 50%;
398
- width: 6.5px;
399
- height: 6.5px;
400
- margin: -3.25px 0 0 -3.25px;
401
- transition: opacity .12s;
402
- top: 0;
403
- left: 0;
404
- }
405
-
406
- .desktop-string {
407
- position: absolute;
408
- transform-origin: 0 0;
409
- background: color-mix(in oklch, var(--foreground) 35%, transparent);
410
- opacity: 0;
411
- pointer-events: none;
412
- will-change: transform;
413
- width: 1px;
414
- height: 1px;
415
- margin-left: -.5px;
416
- transition: opacity .12s;
417
- top: 0;
418
- left: 0;
419
- }
420
-
421
- .desktop-group {
422
- display: flex;
423
- flex-direction: column;
424
- gap: 4px;
425
- margin: 0 0 8px;
426
- }
427
-
428
- .desktop-group-title {
429
- letter-spacing: .1em;
430
- text-transform: uppercase;
431
- color: var(--muted-foreground);
432
- margin: 10px 0 2px 6px;
433
- font-size: 10px;
434
- font-weight: 600;
435
- line-height: 16px;
436
- }
437
-
438
- .desktop-row {
439
- position: relative;
440
- display: flex;
441
- color: var(--muted-foreground);
442
- text-align: left;
443
- background: none;
444
- border: 0;
445
- border-radius: 999px;
446
- align-items: center;
447
- width: 100%;
448
- height: 28px;
449
- padding: 0;
450
- transition: translate .18s cubic-bezier(.3,1.2,.3,1);
451
- }
452
-
453
- .desktop-row-app, .desktop-row-main {
454
- display: flex;
455
- color: inherit;
456
- text-align: left;
457
- background: none;
458
- border: 0;
459
- border-radius: 999px;
460
- align-items: center;
461
- gap: 3px;
462
- min-width: 0;
463
- padding: 0 10px 0 3px;
464
- }
465
-
466
- .desktop-row-main {
467
- flex: 1;
468
- align-self: stretch;
469
- }
470
-
471
- .desktop-row.is-cursor {
472
- color: var(--foreground);
473
- translate: -6px;
474
- }
475
-
476
- .desktop-row-label {
477
- overflow: hidden;
478
- text-overflow: ellipsis;
479
- white-space: nowrap;
480
- flex: 1;
481
- min-width: 0;
482
- }
483
-
484
- .desktop-row-note {
485
- color: var(--muted-foreground);
486
- white-space: nowrap;
487
- padding-left: 8px;
488
- font-size: 11px;
489
- }
490
-
491
- .desktop-row-window:hover .desktop-pill-icon {
492
- opacity: 0;
493
- transform: scale(.5);
494
- }
495
-
496
- .desktop-row-window:has(:focus-visible) .desktop-pill-icon {
497
- opacity: 0;
498
- transform: scale(.5);
499
- }
500
-
501
- .desktop-row-window:hover .desktop-pill-close {
502
- opacity: 1;
503
- pointer-events: auto;
504
- transform: none;
505
- }
506
-
507
- .desktop-row-window:has(:focus-visible) .desktop-pill-close {
508
- opacity: 1;
509
- pointer-events: auto;
510
- transform: none;
511
- }
512
-
513
- .desktop-row, .desktop-group-title {
514
- animation: .16s cubic-bezier(.2,.7,.2,1) both desktop-arrive;
515
- animation-delay: calc(min(var(--i, 0), 14) * 14ms);
516
- }
517
-
518
- @keyframes desktop-arrive {
519
- from {
520
- opacity: 0;
521
- transform: translateY(-6px);
522
- }
523
- }
524
-
525
- @media (prefers-reduced-motion: reduce) {
526
- .desktop-row, .desktop-group-title {
527
- animation: none;
528
- }
529
-
530
- .desktop-eye-small, .desktop-row, .desktop-pill-icon, .desktop-pill-close {
531
- transition: none;
532
- }
533
- }
534
-
535
- .desktop-icon {
536
- display: block;
537
- flex-shrink: 0;
538
- }
539
-
540
- .desktop-muted {
541
- color: var(--muted-foreground);
542
- margin: 8px 0 8px 6px;
543
- font-size: 11px;
544
- }
545
-
546
- .desktop-launcher-legend {
547
- display: flex;
548
- color: var(--muted-foreground);
549
- flex-wrap: wrap;
550
- flex-shrink: 0;
551
- gap: 6px 16px;
552
- padding: 10px 16px 12px;
553
- font-size: 11px;
554
- }
555
-
556
- .desktop-launcher-legend span {
557
- display: inline-flex;
558
- align-items: center;
559
- gap: 4px;
560
- }
561
-
562
- .desktop-launcher-legend kbd {
563
- display: inline-grid;
564
- background: var(--desktop-ink);
565
- color: var(--foreground);
566
- font: inherit;
567
- border-radius: 999px;
568
- place-items: center;
569
- min-width: 18px;
570
- height: 18px;
571
- padding: 0 5px;
572
- font-size: 10px;
573
- }
574
-
575
- .desktop-empty {
576
- padding: 24px;
577
- }
578
-
579
- .desktop-error {
580
- background: var(--muted);
581
- color: var(--destructive);
582
- padding: 8px 12px;
583
- }
584
-
585
- .desktop-error button {
586
- margin-left: 12px;
587
- }
588
- }
589
-
590
- /* src/gui/theme.css */
591
- @layer theme, base, voss, components, utilities;
592
-
593
- @layer voss {
594
- :root, .desktop {
595
- --background: oklch(.968 .004 75);
596
- --surface: oklch(.992 .003 75);
597
- --card: var(--surface);
598
- --foreground: oklch(.29 .008 70);
599
- --popover: oklch(.995 .003 75);
600
- --muted: oklch(.945 .005 75);
601
- --muted-foreground: oklch(.53 .01 70);
602
- --accent: oklch(.935 .006 75);
603
- --primary: oklch(.52 .11 250);
604
- --primary-foreground: oklch(.985 .004 250);
605
- --destructive: oklch(.56 .14 28);
606
- --warning: oklch(.68 .11 75);
607
- --success: oklch(.58 .1 155);
608
- --border: oklch(.29 .008 70 / 11%);
609
- --input: oklch(.29 .008 70 / 16%);
610
- --desk: oklch(.925 .006 75);
611
- --chrome: oklch(.952 .005 75);
612
- --radius: 4px;
613
- --row: 28px;
614
- --control: 24px;
615
- --gutter: 12px;
616
- --font-sans: system-ui, -apple-system, "Segoe UI", sans-serif;
617
- --font-mono: ui-monospace, Menlo, Consolas, monospace;
618
- --buncss-light: initial;
619
- --buncss-dark: ;
620
- color-scheme: light;
621
- }
622
-
623
- @media (prefers-color-scheme: dark) {
624
- :root:not([data-theme="light"]), .desktop[data-theme="system"] {
625
- --background: oklch(.2 .005 75);
626
- --surface: oklch(.228 .006 75);
627
- --foreground: oklch(.87 .012 80);
628
- --popover: oklch(.25 .006 75);
629
- --muted: oklch(.245 .006 75);
630
- --muted-foreground: oklch(.66 .012 78);
631
- --accent: oklch(.275 .007 75);
632
- --primary: oklch(.74 .075 245);
633
- --primary-foreground: oklch(.2 .01 245);
634
- --destructive: oklch(.71 .1 30);
635
- --warning: oklch(.79 .09 80);
636
- --success: oklch(.75 .085 155);
637
- --border: oklch(.87 .012 80 / 10%);
638
- --input: oklch(.87 .012 80 / 15%);
639
- --desk: oklch(.165 .005 75);
640
- --chrome: oklch(.185 .005 75);
641
- --buncss-light: ;
642
- --buncss-dark: initial;
643
- color-scheme: dark;
644
- }
645
- }
646
-
647
- :root[data-theme="dark"], .desktop[data-theme="dark"] {
648
- --background: oklch(.2 .005 75);
649
- --surface: oklch(.228 .006 75);
650
- --foreground: oklch(.87 .012 80);
651
- --popover: oklch(.25 .006 75);
652
- --muted: oklch(.245 .006 75);
653
- --muted-foreground: oklch(.66 .012 78);
654
- --accent: oklch(.275 .007 75);
655
- --primary: oklch(.74 .075 245);
656
- --primary-foreground: oklch(.2 .01 245);
657
- --destructive: oklch(.71 .1 30);
658
- --warning: oklch(.79 .09 80);
659
- --success: oklch(.75 .085 155);
660
- --border: oklch(.87 .012 80 / 10%);
661
- --input: oklch(.87 .012 80 / 15%);
662
- --desk: oklch(.165 .005 75);
663
- --chrome: oklch(.185 .005 75);
664
- --buncss-light: ;
665
- --buncss-dark: initial;
666
- color-scheme: dark;
667
- }
668
-
669
- *, *:before, *:after {
670
- box-sizing: border-box;
671
- }
672
-
673
- html {
674
- font: 13px / 20px var(--font-sans);
675
- -webkit-font-smoothing: antialiased;
676
- height: 100%;
677
- }
678
-
679
- body {
680
- background: var(--desk);
681
- color: var(--foreground);
682
- height: 100%;
683
- margin: 0;
684
- }
685
-
686
- #root {
687
- display: flex;
688
- overflow: hidden;
689
- height: 100%;
690
- }
691
-
692
- * {
693
- scrollbar-width: thin;
694
- scrollbar-color: color-mix(in oklch, var(--foreground) 25%, transparent) transparent;
695
- }
696
-
697
- code, kbd, pre, samp {
698
- font-family: var(--font-mono);
699
- font-size: 12px;
700
- line-height: 20px;
701
- }
702
-
703
- a {
704
- color: var(--primary);
705
- text-decoration: none;
706
- }
707
-
708
- a:hover {
709
- text-decoration: underline;
710
- }
711
-
712
- :focus-visible {
713
- outline: 2px solid color-mix(in oklch, var(--primary) 60%, transparent);
714
- outline-offset: 1px;
715
- }
716
-
717
- [hidden] {
718
- display: none !important;
719
- }
720
-
721
- h1, h2, h3 {
722
- margin: 0;
723
- font-weight: 600;
724
- }
725
-
726
- button, input, select, textarea {
727
- font: inherit;
728
- color: inherit;
729
- }
730
-
731
- .bv-muted {
732
- color: var(--muted-foreground);
733
- }
734
-
735
- .bv-error {
736
- color: var(--destructive);
737
- }
738
-
739
- .bv-button {
740
- display: inline-flex;
741
- height: var(--control);
742
- border: 1px solid var(--input);
743
- border-radius: var(--radius);
744
- background: var(--muted);
745
- cursor: pointer;
746
- white-space: nowrap;
747
- align-items: center;
748
- gap: 6px;
749
- padding: 0 10px;
750
- }
751
-
752
- .bv-button:hover {
753
- background: var(--accent);
754
- }
755
-
756
- .bv-button:disabled {
757
- opacity: .55;
758
- cursor: default;
759
- }
760
-
761
- .bv-primary {
762
- background: var(--primary);
763
- color: var(--primary-foreground);
764
- border-color: #0000;
765
- }
766
-
767
- .bv-primary:hover {
768
- background: color-mix(in oklch, var(--primary) 88%, black);
769
- }
770
-
771
- .bv-quiet {
772
- background: none;
773
- border-color: #0000;
774
- }
775
-
776
- .bv-quiet:hover {
777
- background: var(--accent);
778
- }
779
-
780
- .bv-danger {
781
- background: var(--destructive);
782
- color: #fff;
783
- border-color: #0000;
784
- }
785
-
786
- .bv-input {
787
- height: var(--control);
788
- border: 1px solid var(--input);
789
- border-radius: var(--radius);
790
- background: var(--surface);
791
- min-width: 0;
792
- padding: 1px 8px;
793
- }
794
-
795
- .bv-input[aria-invalid="true"] {
796
- border-color: var(--destructive);
797
- }
798
-
799
- .bv-textarea {
800
- resize: vertical;
801
- height: auto;
802
- padding: 4px 8px;
803
- }
804
-
805
- .bv-select {
806
- padding-right: 4px;
807
- }
808
-
809
- .bv-mono {
810
- font-family: var(--font-mono);
811
- font-size: 12px;
812
- }
813
-
814
- .bv-check {
815
- accent-color: var(--primary);
816
- width: 14px;
817
- height: 14px;
818
- margin: 0;
819
- }
820
-
821
- .bv-kbd {
822
- display: inline-block;
823
- border: 1px solid var(--border);
824
- border-radius: var(--radius);
825
- background: var(--surface);
826
- text-align: center;
827
- border-bottom-width: 2px;
828
- min-width: 18px;
829
- padding: 0 4px;
830
- font-size: 11px;
831
- line-height: 16px;
832
- }
833
-
834
- .bv-code {
835
- border-radius: var(--radius);
836
- background: color-mix(in oklch, var(--destructive) 12%, transparent);
837
- padding: 0 4px;
838
- }
839
-
840
- .bv-panel {
841
- border: 1px solid var(--border);
842
- border-radius: var(--radius);
843
- background: var(--surface);
844
- }
845
-
846
- .bv-panel-head {
847
- display: flex;
848
- height: var(--row);
849
- padding: 0 var(--gutter);
850
- border-bottom: 1px solid var(--border);
851
- background: var(--chrome);
852
- align-items: center;
853
- gap: 8px;
854
- }
855
-
856
- .bv-panel-title {
857
- flex: 1;
858
- font-weight: 600;
859
- }
860
-
861
- .bv-panel-body {
862
- padding: var(--gutter);
863
- }
864
-
865
- .bv-rows {
866
- display: flex;
867
- flex-direction: column;
868
- }
869
-
870
- .bv-row {
871
- display: flex;
872
- min-height: var(--row);
873
- padding: 0 var(--gutter);
874
- text-align: left;
875
- background: none;
876
- border: 0;
877
- align-items: center;
878
- gap: 8px;
879
- width: 100%;
880
- }
881
-
882
- .bv-row-button {
883
- cursor: pointer;
884
- border-radius: var(--radius);
885
- }
886
-
887
- .bv-row-button:hover, .bv-row.bv-active {
888
- background: var(--accent);
889
- }
890
-
891
- .bv-row-label {
892
- flex: none;
893
- }
894
-
895
- .bv-row-hint {
896
- overflow: hidden;
897
- text-overflow: ellipsis;
898
- white-space: nowrap;
899
- color: var(--muted-foreground);
900
- flex: 1;
901
- min-width: 0;
902
- }
903
-
904
- .bv-table-wrap {
905
- overflow: auto;
906
- border: 1px solid var(--border);
907
- border-radius: var(--radius);
908
- }
909
-
910
- .bv-table {
911
- border-collapse: collapse;
912
- width: 100%;
913
- }
914
-
915
- .bv-table th, .bv-table td {
916
- height: var(--row);
917
- padding: 0 var(--gutter);
918
- text-align: left;
919
- white-space: nowrap;
920
- }
921
-
922
- .bv-table th {
923
- position: sticky;
924
- background: var(--chrome);
925
- border-bottom: 1px solid var(--border);
926
- font-weight: 600;
927
- top: 0;
928
- }
929
-
930
- .bv-table tbody tr:hover {
931
- background: var(--muted);
932
- }
933
-
934
- .bv-overlay {
935
- position: fixed;
936
- z-index: 1000;
937
- display: grid;
938
- background: oklch(.2 .005 75 / 35%);
939
- place-items: center;
940
- inset: 0;
941
- }
942
-
943
- .bv-dialog {
944
- display: flex;
945
- border: 1px solid var(--border);
946
- border-radius: var(--radius);
947
- background: var(--popover);
948
- outline: none;
949
- flex-direction: column;
950
- width: min(440px, 100vw - 32px);
951
- max-height: calc(100vh - 64px);
952
- }
953
-
954
- .bv-dialog-head {
955
- padding: var(--gutter);
956
- border-bottom: 1px solid var(--border);
957
- font-weight: 600;
958
- }
959
-
960
- .bv-dialog-body {
961
- padding: var(--gutter);
962
- overflow: auto;
963
- }
964
-
965
- .bv-dialog-body p {
966
- margin: var(--gutter) 0 0;
967
- }
968
-
969
- .bv-dialog-foot {
970
- display: flex;
971
- padding: 8px var(--gutter);
972
- border-top: 1px solid var(--border);
973
- justify-content: flex-end;
974
- gap: 8px;
975
- }
976
-
977
- .bv-cmd {
978
- display: flex;
979
- flex-direction: column;
980
- min-height: 0;
981
- }
982
-
983
- .bv-cmd-input {
984
- padding: 0 var(--gutter);
985
- border: 0;
986
- border-bottom: 1px solid var(--border);
987
- outline: none;
988
- background: none;
989
- height: 36px;
990
- }
991
-
992
- .bv-cmd-list {
993
- overflow: auto;
994
- max-height: 60vh;
995
- padding: 4px;
996
- }
997
-
998
- .bv-cmd-group {
999
- color: var(--muted-foreground);
1000
- padding: 8px 8px 2px;
1001
- font-size: 11px;
1002
- line-height: 16px;
1003
- }
1004
-
1005
- .bv-cmd-item {
1006
- display: flex;
1007
- height: var(--row);
1008
- border-radius: var(--radius);
1009
- cursor: pointer;
1010
- align-items: center;
1011
- gap: 8px;
1012
- padding: 0 8px;
1013
- }
1014
-
1015
- .bv-cmd-item.bv-active {
1016
- background: color-mix(in oklch, var(--primary) 15%, transparent);
1017
- }
1018
-
1019
- .bv-cmd-label {
1020
- overflow: hidden;
1021
- text-overflow: ellipsis;
1022
- white-space: nowrap;
1023
- flex: 1;
1024
- min-width: 0;
1025
- }
1026
-
1027
- .bv-cmd-hint {
1028
- overflow: hidden;
1029
- text-overflow: ellipsis;
1030
- white-space: nowrap;
1031
- color: var(--muted-foreground);
1032
- flex: none;
1033
- max-width: 45%;
1034
- font-size: 11px;
1035
- }
1036
-
1037
- .bv-cmd-empty {
1038
- color: var(--muted-foreground);
1039
- padding: 8px;
1040
- }
1041
-
1042
- .bv-runner {
1043
- padding: 8px;
1044
- }
1045
-
1046
- .bv-runner > p {
1047
- margin: 4px var(--gutter);
1048
- }
1049
-
1050
- .bv-runner-nav {
1051
- margin: 0 0 4px;
1052
- }
1053
-
1054
- .bv-form {
1055
- display: flex;
1056
- gap: var(--gutter);
1057
- flex-direction: column;
1058
- padding: 4px;
1059
- }
1060
-
1061
- .bv-form-head {
1062
- display: flex;
1063
- flex-wrap: wrap;
1064
- align-items: baseline;
1065
- gap: 8px;
1066
- }
1067
-
1068
- .bv-form-name {
1069
- font-size: 13px;
1070
- font-weight: 600;
1071
- }
1072
-
1073
- .bv-field {
1074
- display: flex;
1075
- flex-direction: column;
1076
- gap: 4px;
1077
- }
1078
-
1079
- .bv-field label {
1080
- display: flex;
1081
- align-items: baseline;
1082
- gap: 6px;
1083
- font-weight: 500;
1084
- }
1085
-
1086
- .bv-field-inline {
1087
- flex-direction: row-reverse;
1088
- justify-content: flex-end;
1089
- align-items: center;
1090
- gap: 8px;
1091
- }
1092
-
1093
- .bv-required {
1094
- color: var(--destructive);
1095
- margin-left: 1px;
1096
- }
1097
-
1098
- .bv-type {
1099
- color: var(--muted-foreground);
1100
- font-size: 11px;
1101
- font-weight: 400;
1102
- font-family: var(--font-mono);
1103
- }
1104
-
1105
- .bv-form-actions {
1106
- display: flex;
1107
- align-items: center;
1108
- gap: 8px;
1109
- }
1110
-
1111
- .bv-output {
1112
- margin: 0;
1113
- }
1114
-
1115
- .bv-json {
1116
- padding: 8px var(--gutter);
1117
- border: 1px solid var(--border);
1118
- border-radius: var(--radius);
1119
- background: var(--muted);
1120
- white-space: pre-wrap;
1121
- overflow-wrap: anywhere;
1122
- }
1123
-
1124
- .bv-error {
1125
- margin: 0;
1126
- }
1127
-
1128
- .gui-page {
1129
- max-width: 960px;
1130
- margin: 0 auto;
1131
- padding: 24px 16px;
1132
- }
1133
-
1134
- .gui-list {
1135
- display: flex;
1136
- flex-direction: column;
1137
- gap: 8px;
1138
- }
1139
-
1140
- .gui-card {
1141
- display: flex;
1142
- border: 1px solid var(--border);
1143
- border-radius: var(--radius);
1144
- background: var(--card);
1145
- align-items: center;
1146
- gap: 12px;
1147
- padding: 10px 12px;
1148
- }
1149
-
1150
- .gui-card h2 {
1151
- flex: 1;
1152
- font-size: 14px;
1153
- }
1154
-
1155
- .gui-card .gui-links {
1156
- display: flex;
1157
- gap: 10px;
1158
- }
1159
-
1160
- .pk-gap {
1161
- flex: 1;
1162
- }
1163
-
1164
- .pk-pane {
1165
- display: flex;
1166
- flex-direction: column;
1167
- flex: 1;
1168
- min-height: 0;
1169
- }
1170
-
1171
- .pk-fade {
1172
- animation: .14s ease-out pk-in;
1173
- }
1174
-
1175
- @keyframes pk-in {
1176
- from {
1177
- opacity: 0;
1178
- transform: translateY(2px);
1179
- }
1180
-
1181
- to {
1182
- opacity: 1;
1183
- transform: none;
1184
- }
1185
- }
1186
-
1187
- .pk-strip {
1188
- display: flex;
1189
- padding: 0 6px 0 var(--gutter);
1190
- border-bottom: 1px solid var(--border);
1191
- background: var(--chrome);
1192
- flex: none;
1193
- align-items: center;
1194
- gap: 6px;
1195
- height: 36px;
1196
- }
1197
-
1198
- .pk-strip-title {
1199
- font-weight: 600;
1200
- }
1201
-
1202
- .pk-list {
1203
- list-style: none;
1204
- overflow: auto;
1205
- flex: 1;
1206
- min-height: 0;
1207
- margin: 0;
1208
- padding: 4px 0;
1209
- }
1210
-
1211
- .pk-list > li {
1212
- margin: 0;
1213
- }
1214
-
1215
- .pk-tile {
1216
- display: grid;
1217
- background: color-mix(in oklch, oklch(.68 .14 var(--h, 250)) 20%, var(--surface));
1218
- color: color-mix(in oklch, oklch(.62 .15 var(--h, 250)) 85%, var(--foreground));
1219
- box-shadow: inset 0 0 0 1px color-mix(in oklch, oklch(.65 .14 var(--h, 250)) 28%, transparent);
1220
- border-radius: 7px;
1221
- flex: none;
1222
- place-items: center;
1223
- width: 30px;
1224
- height: 30px;
1225
- font-size: 13px;
1226
- font-weight: 600;
1227
- }
1228
-
1229
- .pk-go {
1230
- display: grid;
1231
- color: var(--muted-foreground);
1232
- opacity: 0;
1233
- flex: none;
1234
- place-items: center;
1235
- transition: opacity .1s, transform .1s;
1236
- transform: translateX(-3px);
1237
- }
1238
-
1239
- .is-active > .pk-go, .pk-baba.is-active .pk-go, .pk-folder.is-active .pk-go {
1240
- opacity: 1;
1241
- transform: none;
1242
- }
1243
-
1244
- .is-ghost {
1245
- pointer-events: none;
1246
- }
1247
-
1248
- .pk-ghost-line {
1249
- display: block;
1250
- background: var(--muted);
1251
- animation: 1.2s ease-in-out infinite alternate pk-breathe;
1252
- border-radius: 4px;
1253
- height: 8px;
1254
- margin: 4px 0;
1255
- }
1256
-
1257
- .pk-ghost-line.is-sub {
1258
- opacity: .7;
1259
- height: 6px;
1260
- }
1261
-
1262
- @keyframes pk-breathe {
1263
- from {
1264
- opacity: .55;
1265
- }
1266
-
1267
- to {
1268
- opacity: 1;
1269
- }
1270
- }
1271
-
1272
- .pk-empty .pk-primary {
1273
- margin-top: 12px;
1274
- }
1275
-
1276
- .pk-alert {
1277
- padding: 6px var(--gutter);
1278
- border-top: 1px solid color-mix(in oklch, var(--destructive) 30%, transparent);
1279
- background: color-mix(in oklch, var(--destructive) 8%, var(--surface));
1280
- color: var(--destructive);
1281
- overflow-wrap: anywhere;
1282
- margin: 0;
1283
- font-size: 12px;
1284
- }
1285
-
1286
- .pk-list + .pk-alert, .pk-strip + .pk-alert {
1287
- border-top: 0;
1288
- border-bottom: 1px solid color-mix(in oklch, var(--destructive) 30%, transparent);
1289
- }
1290
-
1291
- .pk-path {
1292
- display: flex;
1293
- border-bottom: 1px solid var(--border);
1294
- flex: none;
1295
- align-items: center;
1296
- gap: 8px;
1297
- min-height: 36px;
1298
- padding: 0 6px 0 8px;
1299
- }
1300
-
1301
- .pk-crumbs {
1302
- display: flex;
1303
- overflow: hidden;
1304
- white-space: nowrap;
1305
- flex: 1;
1306
- align-items: center;
1307
- min-width: 0;
1308
- }
1309
-
1310
- .pk-crumb-wrap:last-child {
1311
- min-width: 0;
1312
- }
1313
-
1314
- .pk-crumb-wrap:last-child .pk-crumb {
1315
- display: block;
1316
- overflow: hidden;
1317
- text-overflow: ellipsis;
1318
- line-height: 22px;
1319
- }
1320
-
1321
- .pk-crumb-wrap {
1322
- display: inline-flex;
1323
- align-items: center;
1324
- }
1325
-
1326
- .pk-crumb {
1327
- display: inline-flex;
1328
- border-radius: var(--radius);
1329
- color: var(--muted-foreground);
1330
- font: inherit;
1331
- cursor: pointer;
1332
- background: none;
1333
- border: 0;
1334
- align-items: center;
1335
- height: 22px;
1336
- padding: 0 4px;
1337
- }
1338
-
1339
- button.pk-crumb:hover {
1340
- background: var(--accent);
1341
- color: var(--foreground);
1342
- }
1343
-
1344
- .pk-crumb.is-here {
1345
- color: var(--foreground);
1346
- cursor: default;
1347
- font-weight: 600;
1348
- }
1349
-
1350
- .pk-crumb-sep {
1351
- color: var(--muted-foreground);
1352
- opacity: .5;
1353
- padding: 0 1px;
1354
- }
1355
-
1356
- .pk-filter {
1357
- display: flex;
1358
- height: var(--control);
1359
- border: 1px solid var(--input);
1360
- border-radius: var(--radius);
1361
- background: var(--background);
1362
- color: var(--muted-foreground);
1363
- flex: none;
1364
- align-items: center;
1365
- gap: 6px;
1366
- width: 150px;
1367
- padding: 0 8px;
1368
- transition: width .14s, border-color .1s;
1369
- }
1370
-
1371
- .pk-filter:focus-within {
1372
- border-color: color-mix(in oklch, var(--primary) 55%, transparent);
1373
- color: var(--foreground);
1374
- width: 190px;
1375
- }
1376
-
1377
- .pk-filter input {
1378
- outline: 0;
1379
- background: none;
1380
- border: 0;
1381
- flex: 1;
1382
- min-width: 0;
1383
- height: 100%;
1384
- padding: 0;
1385
- }
1386
-
1387
- .pk-folders {
1388
- transition: opacity .12s;
1389
- }
1390
-
1391
- .pk-folders.is-loading {
1392
- opacity: .5;
1393
- }
1394
-
1395
- .pk-folder {
1396
- position: relative;
1397
- display: flex;
1398
- height: var(--row);
1399
- border-radius: var(--radius);
1400
- color: inherit;
1401
- text-align: left;
1402
- cursor: pointer;
1403
- background: none;
1404
- border: 0;
1405
- align-items: center;
1406
- gap: 8px;
1407
- width: calc(100% - 8px);
1408
- margin: 0 4px;
1409
- padding: 0 8px;
1410
- }
1411
-
1412
- .pk-folder.is-active {
1413
- background: var(--accent);
1414
- }
1415
-
1416
- .pk-folder.is-active:before {
1417
- content: "";
1418
- position: absolute;
1419
- background: var(--primary);
1420
- border-radius: 1px;
1421
- width: 2px;
1422
- top: 6px;
1423
- bottom: 6px;
1424
- left: -4px;
1425
- }
1426
-
1427
- .pk-folder-icon {
1428
- display: grid;
1429
- color: var(--muted-foreground);
1430
- flex: none;
1431
- place-items: center;
1432
- }
1433
-
1434
- .pk-folder.is-baba .pk-folder-icon {
1435
- color: var(--primary);
1436
- }
1437
-
1438
- .pk-folder.is-baba .pk-folder-name {
1439
- font-weight: 600;
1440
- }
1441
-
1442
- .pk-folder.is-up .pk-folder-name {
1443
- color: var(--muted-foreground);
1444
- }
1445
-
1446
- .pk-folder-name {
1447
- overflow: hidden;
1448
- text-overflow: ellipsis;
1449
- white-space: nowrap;
1450
- flex: 1;
1451
- min-width: 0;
1452
- }
1453
-
1454
- .pk-folder-name mark {
1455
- background: color-mix(in oklch, var(--primary) 22%, transparent);
1456
- color: inherit;
1457
- border-radius: 2px;
1458
- }
1459
-
1460
- .pk-folder-note {
1461
- color: var(--muted-foreground);
1462
- font-size: 11px;
1463
- }
1464
-
1465
- .pk-pill {
1466
- color: var(--primary);
1467
- background: color-mix(in oklch, var(--primary) 12%, transparent);
1468
- border-radius: 8px;
1469
- flex: none;
1470
- padding: 0 6px;
1471
- font-size: 11px;
1472
- line-height: 16px;
1473
- }
1474
-
1475
- .pk-pill.is-known {
1476
- color: var(--success);
1477
- background: color-mix(in oklch, var(--success) 13%, transparent);
1478
- }
1479
-
1480
- .pk-none {
1481
- padding: 12px var(--gutter);
1482
- color: var(--muted-foreground);
1483
- }
1484
-
1485
- .pk-dock {
1486
- display: flex;
1487
- padding: 10px var(--gutter);
1488
- border-top: 1px solid var(--border);
1489
- background: var(--chrome);
1490
- flex-direction: column;
1491
- flex: none;
1492
- gap: 8px;
1493
- }
1494
-
1495
- .pk-dock-line {
1496
- display: flex;
1497
- align-items: center;
1498
- gap: 8px;
1499
- min-width: 0;
1500
- }
1501
-
1502
- .pk-dock-line:empty {
1503
- display: none;
1504
- }
1505
-
1506
- .pk-dock-icon {
1507
- display: grid;
1508
- color: var(--muted-foreground);
1509
- flex: none;
1510
- place-items: center;
1511
- }
1512
-
1513
- .pk-dock.is-baba .pk-dock-icon {
1514
- color: var(--primary);
1515
- }
1516
-
1517
- .pk-dock.is-known .pk-dock-icon {
1518
- color: var(--success);
1519
- }
1520
-
1521
- .pk-dock-text {
1522
- color: var(--muted-foreground);
1523
- overflow: hidden;
1524
- text-overflow: ellipsis;
1525
- white-space: nowrap;
1526
- min-width: 0;
1527
- }
1528
-
1529
- .pk-here {
1530
- color: var(--foreground);
1531
- font-family: var(--font-mono);
1532
- font-size: 12px;
1533
- }
1534
-
1535
- .pk-dock-text code {
1536
- color: var(--foreground);
1537
- font-size: 12px;
1538
- }
1539
-
1540
- .pk-field {
1541
- display: flex;
1542
- height: var(--control);
1543
- border: 1px solid var(--input);
1544
- border-radius: var(--radius);
1545
- background: var(--surface);
1546
- overflow: hidden;
1547
- align-items: center;
1548
- width: 150px;
1549
- min-width: 0;
1550
- }
1551
-
1552
- .pk-field.is-wide {
1553
- width: 190px;
1554
- }
1555
-
1556
- .pk-field:focus-within {
1557
- border-color: color-mix(in oklch, var(--primary) 55%, transparent);
1558
- }
1559
-
1560
- .pk-field span {
1561
- display: grid;
1562
- border-right: 1px solid var(--border);
1563
- background: var(--muted);
1564
- color: var(--muted-foreground);
1565
- flex: none;
1566
- align-self: stretch;
1567
- place-items: center;
1568
- padding: 0 7px;
1569
- font-size: 11px;
1570
- }
1571
-
1572
- .pk-field input {
1573
- outline: 0;
1574
- background: none;
1575
- border: 0;
1576
- flex: 1;
1577
- min-width: 0;
1578
- height: 100%;
1579
- padding: 0 7px;
1580
- }
1581
-
1582
- .pk-busy {
1583
- display: inline-flex;
1584
- color: var(--muted-foreground);
1585
- align-items: center;
1586
- gap: 8px;
1587
- }
1588
-
1589
- .pk-primary {
1590
- display: inline-flex;
1591
- border-radius: var(--radius);
1592
- background: var(--primary);
1593
- color: var(--primary-foreground);
1594
- cursor: pointer;
1595
- white-space: nowrap;
1596
- border: 0;
1597
- align-items: center;
1598
- gap: 6px;
1599
- height: 26px;
1600
- padding: 0 6px 0 10px;
1601
- transition: background .1s;
1602
- font-weight: 500;
1603
- }
1604
-
1605
- .pk-empty .pk-primary {
1606
- padding-right: 10px;
1607
- }
1608
-
1609
- .pk-primary:hover {
1610
- background: color-mix(in oklch, var(--primary) 88%, var(--foreground));
1611
- }
1612
-
1613
- .pk-primary:disabled {
1614
- opacity: .5;
1615
- cursor: default;
1616
- }
1617
-
1618
- .pk-kbd {
1619
- display: inline-grid;
1620
- border: 1px solid var(--border);
1621
- border-radius: var(--radius);
1622
- background: var(--surface);
1623
- color: var(--foreground);
1624
- font-family: var(--font-sans);
1625
- border-bottom-width: 2px;
1626
- place-items: center;
1627
- min-width: 18px;
1628
- height: 18px;
1629
- padding: 0 4px;
1630
- font-size: 10px;
1631
- line-height: 1;
1632
- }
1633
-
1634
- .pk-kbd.is-on-primary {
1635
- background: color-mix(in oklch, var(--primary-foreground) 18%, transparent);
1636
- color: var(--primary-foreground);
1637
- border: 0;
1638
- }
1639
-
1640
- .pk-spin {
1641
- display: inline-block;
1642
- border: 1.5px solid color-mix(in oklch, var(--muted-foreground) 35%, transparent);
1643
- border-top-color: var(--muted-foreground);
1644
- animation: .7s linear infinite pk-turn;
1645
- border-radius: 50%;
1646
- width: 12px;
1647
- height: 12px;
1648
- }
1649
-
1650
- @keyframes pk-turn {
1651
- to {
1652
- transform: rotate(360deg);
1653
- }
1654
- }
1655
-
1656
- @media (max-width: 560px) {
1657
- .pk-dock-line:not(.is-say) {
1658
- flex-wrap: wrap;
1659
- }
1660
-
1661
- .pk-field, .pk-field.is-wide {
1662
- width: 100%;
1663
- }
1664
-
1665
- .pk-filter, .pk-filter:focus-within {
1666
- width: 120px;
1667
- }
1668
- }
1669
-
1670
- @media (prefers-reduced-motion: reduce) {
1671
- .pk-fade, .pk-ghost-line, .pk-spin {
1672
- animation: none;
1673
- }
1674
-
1675
- .pk-go, .pk-filter, .pk-folders {
1676
- transition: none;
1677
- }
1678
- }
1679
-
1680
- .gui-view {
1681
- position: fixed;
1682
- overflow: auto;
1683
- background: var(--background);
1684
- inset: 0;
1685
- }
1686
-
1687
- .gui-notice {
1688
- border-bottom: 1px solid var(--destructive);
1689
- background: color-mix(in oklch, var(--destructive) 10%, var(--background));
1690
- margin: 0;
1691
- padding: 12px 16px;
1692
- }
1693
-
1694
- .gui-failure {
1695
- white-space: pre-wrap;
1696
- font-family: var(--font-mono);
1697
- margin: 8px 0 0;
1698
- font-size: 12px;
1699
- }
1700
-
1701
- .gui-section {
1702
- margin: 16px 0;
1703
- }
1704
-
1705
- .gui-section h2 {
1706
- color: var(--muted-foreground);
1707
- text-transform: uppercase;
1708
- letter-spacing: .04em;
1709
- margin-bottom: 8px;
1710
- font-size: 13px;
1711
- }
1712
-
1713
- .gui-entity {
1714
- display: grid;
1715
- grid-template-columns: 56px 1fr auto;
1716
- border-bottom: 1px solid var(--border);
1717
- align-items: start;
1718
- gap: 8px;
1719
- padding: 6px 0;
1720
- }
1721
-
1722
- .gui-entity code {
1723
- color: var(--muted-foreground);
1724
- }
1725
-
1726
- .gui-parts {
1727
- display: flex;
1728
- flex-wrap: wrap;
1729
- gap: 6px 12px;
1730
- }
1731
-
1732
- .gui-part {
1733
- display: inline-flex;
1734
- align-items: baseline;
1735
- gap: 6px;
1736
- }
1737
-
1738
- .gui-part b {
1739
- font-weight: 600;
1740
- }
1741
-
1742
- .gui-part pre {
1743
- display: inline;
1744
- white-space: pre-wrap;
1745
- margin: 0;
1746
- font-size: 12px;
1747
- }
1748
-
1749
- .gui-filter {
1750
- display: flex;
1751
- align-items: center;
1752
- gap: 8px;
1753
- margin-bottom: 8px;
1754
- }
1755
-
1756
- .gui-fade {
1757
- animation: .1s ease-out gui-appear;
1758
- }
1759
-
1760
- @keyframes gui-appear {
1761
- from {
1762
- opacity: 0;
1763
- }
1764
-
1765
- to {
1766
- opacity: 1;
1767
- }
1768
- }
1769
-
1770
- @media (prefers-reduced-motion: reduce) {
1771
- .gui-fade {
1772
- animation: none;
1773
- }
1774
- }
1775
-
1776
- .gui-app {
1777
- max-width: 1100px;
1778
- padding: 16px 20px 32px;
1779
- }
1780
-
1781
- .gui-app > h2 {
1782
- margin: 16px 0 4px;
1783
- font-size: 13px;
1784
- }
1785
-
1786
- .gui-choices {
1787
- display: flex;
1788
- gap: 6px;
1789
- margin-top: 8px;
1790
- }
1791
-
1792
- .gui-stale {
1793
- position: fixed;
1794
- z-index: 900;
1795
- display: flex;
1796
- border: 1px solid var(--border);
1797
- background: var(--card);
1798
- color: var(--foreground);
1799
- border-radius: 8px;
1800
- align-items: center;
1801
- gap: 12px;
1802
- max-width: min(640px, 100vw - 60px);
1803
- padding: 8px 12px;
1804
- font-size: 13px;
1805
- bottom: 10px;
1806
- left: 10px;
1807
- box-shadow: 0 8px 24px #00000040;
1808
- box-shadow: 0 8px 24px color(display-p3 0 0 0 / .25);
1809
- box-shadow: 0 8px 24px lab(0% 0 0 / .25);
1810
- }
1811
-
1812
- .bv-row {
1813
- display: flex;
1814
- align-items: center;
1815
- gap: 8px;
1816
- margin: 8px 0;
1817
- }
1818
-
1819
- .bv-between {
1820
- justify-content: space-between;
1821
- }
1822
-
1823
- .bv-object-card {
1824
- display: flex;
1825
- border: 1px solid var(--border);
1826
- border-radius: var(--radius);
1827
- background: var(--surface);
1828
- overflow: hidden;
1829
- flex-direction: column;
1830
- font-size: 12px;
1831
- line-height: 16px;
1832
- }
1833
-
1834
- .bv-object-card-head {
1835
- display: flex;
1836
- background: var(--chrome);
1837
- border-bottom: 1px solid var(--border);
1838
- align-items: baseline;
1839
- gap: 8px;
1840
- min-width: 0;
1841
- height: 28px;
1842
- padding: 4px 10px;
1843
- font-size: 13px;
1844
- line-height: 20px;
1845
- }
1846
-
1847
- .bv-object-key {
1848
- overflow: hidden;
1849
- text-overflow: ellipsis;
1850
- white-space: nowrap;
1851
- color: var(--primary);
1852
- font-variant-numeric: tabular-nums;
1853
- min-width: 0;
1854
- }
1855
-
1856
- .bv-object-card-head .bv-muted {
1857
- margin-left: auto;
1858
- font-size: 11px;
1859
- }
1860
-
1861
- .bv-object-fields {
1862
- display: grid;
1863
- grid-template-columns: minmax(72px, auto) 1fr;
1864
- gap: 2px 10px;
1865
- margin: 0;
1866
- padding: 6px 10px;
1867
- }
1868
-
1869
- .bv-object-fields > div {
1870
- display: contents;
1871
- }
1872
-
1873
- .bv-object-fields dt {
1874
- color: var(--muted-foreground);
1875
- overflow: hidden;
1876
- text-overflow: ellipsis;
1877
- white-space: nowrap;
1878
- }
1879
-
1880
- .bv-object-fields dd {
1881
- overflow: hidden;
1882
- text-overflow: ellipsis;
1883
- white-space: nowrap;
1884
- min-width: 0;
1885
- margin: 0;
1886
- }
1887
-
1888
- .bv-object-fields code {
1889
- font-size: 11px;
1890
- }
1891
-
1892
- .bv-object-num {
1893
- font-variant-numeric: tabular-nums;
1894
- }
1895
-
1896
- .bv-object-tag {
1897
- background: var(--muted);
1898
- color: var(--muted-foreground);
1899
- border-radius: 3px;
1900
- padding: 0 5px;
1901
- font-size: 11px;
1902
- }
1903
-
1904
- .bv-object-ref {
1905
- color: var(--primary);
1906
- cursor: pointer;
1907
- font: inherit;
1908
- background: none;
1909
- border: 0;
1910
- border-radius: 3px;
1911
- padding: 0 4px;
1912
- }
1913
-
1914
- .bv-object-ref:hover {
1915
- background: color-mix(in oklch, var(--primary) 12%, transparent);
1916
- }
1917
-
1918
- .bv-object-more {
1919
- color: var(--muted-foreground);
1920
- cursor: pointer;
1921
- font: inherit;
1922
- text-decoration: underline dotted;
1923
- background: none;
1924
- border: 0;
1925
- padding: 0;
1926
- }
1927
-
1928
- .bv-object-rider {
1929
- border-top: 1px solid var(--border);
1930
- }
1931
-
1932
- .bv-object-rider h4 {
1933
- display: flex;
1934
- color: var(--muted-foreground);
1935
- gap: 8px;
1936
- margin: 0;
1937
- padding: 4px 10px 0;
1938
- font-size: 11px;
1939
- font-weight: 600;
1940
- line-height: 16px;
1941
- }
1942
-
1943
- .bv-object-actions {
1944
- display: flex;
1945
- border-top: 1px solid var(--border);
1946
- background: var(--chrome);
1947
- flex-wrap: wrap;
1948
- gap: 4px;
1949
- padding: 6px 10px;
1950
- }
1951
-
1952
- .bv-object-actions .bv-button {
1953
- height: 20px;
1954
- padding: 0 8px;
1955
- font-size: 11px;
1956
- }
1957
-
1958
- .bv-object-needs {
1959
- border: 1px dashed var(--border);
1960
- border-radius: var(--radius);
1961
- color: var(--muted-foreground);
1962
- height: 20px;
1963
- padding: 0 6px;
1964
- font-size: 11px;
1965
- line-height: 20px;
1966
- }
1967
-
1968
- .bv-object-actions .is-open {
1969
- border-color: var(--primary);
1970
- }
1971
-
1972
- .bv-object-form {
1973
- display: flex;
1974
- border-top: 1px solid var(--border);
1975
- background: var(--background);
1976
- flex-direction: column;
1977
- gap: 6px;
1978
- padding: 8px 10px;
1979
- }
1980
-
1981
- .bv-object-form-head {
1982
- display: flex;
1983
- align-items: baseline;
1984
- gap: 8px;
1985
- font-size: 12px;
1986
- }
1987
-
1988
- .bv-object-field {
1989
- display: grid;
1990
- grid-template-columns: 90px 1fr;
1991
- align-items: center;
1992
- gap: 8px;
1993
- font-size: 12px;
1994
- }
1995
-
1996
- .bv-object-field .bv-input, .bv-object-field select, .bv-object-field textarea {
1997
- font: inherit;
1998
- color: inherit;
1999
- background: var(--surface);
2000
- border: 1px solid var(--input);
2001
- border-radius: var(--radius);
2002
- width: 100%;
2003
- min-width: 0;
2004
- padding: 2px 6px;
2005
- }
2006
-
2007
- .bv-object-loose h4 {
2008
- display: flex;
2009
- gap: 8px;
2010
- margin: 0 0 6px;
2011
- font-size: 12px;
2012
- }
2013
-
2014
- .bv-proofs {
2015
- display: grid;
2016
- grid-template-columns: 260px minmax(0, 1fr);
2017
- height: 100%;
2018
- min-height: 0;
2019
- }
2020
-
2021
- .bv-rail {
2022
- display: flex;
2023
- overflow: auto;
2024
- scrollbar-gutter: stable;
2025
- border-right: 1px solid var(--border);
2026
- flex-direction: column;
2027
- min-width: 0;
2028
- min-height: 0;
2029
- }
2030
-
2031
- .bv-rail-strip {
2032
- position: sticky;
2033
- z-index: 1;
2034
- display: flex;
2035
- background: var(--chrome);
2036
- border-bottom: 1px solid var(--border);
2037
- flex-shrink: 0;
2038
- align-items: center;
2039
- gap: 8px;
2040
- height: 28px;
2041
- padding: 0 8px;
2042
- top: 0;
2043
- }
2044
-
2045
- .bv-rail-count {
2046
- overflow: hidden;
2047
- text-overflow: ellipsis;
2048
- color: var(--muted-foreground);
2049
- font-variant-numeric: tabular-nums;
2050
- white-space: nowrap;
2051
- min-width: 0;
2052
- margin-left: auto;
2053
- font-size: 11px;
2054
- }
2055
-
2056
- .bv-rail-strip .bv-button {
2057
- flex-shrink: 0;
2058
- height: 20px;
2059
- padding: 0 6px;
2060
- font-size: 11px;
2061
- }
2062
-
2063
- .bv-lenses {
2064
- display: inline-flex;
2065
- gap: 2px;
2066
- }
2067
-
2068
- .bv-lens {
2069
- border-radius: var(--radius);
2070
- color: var(--muted-foreground);
2071
- font: inherit;
2072
- cursor: pointer;
2073
- background: none;
2074
- border: 0;
2075
- height: 20px;
2076
- padding: 0 8px;
2077
- font-size: 12px;
2078
- }
2079
-
2080
- .bv-lens:hover {
2081
- color: var(--foreground);
2082
- }
2083
-
2084
- .bv-lens.is-open {
2085
- background: var(--accent);
2086
- color: var(--foreground);
2087
- }
2088
-
2089
- .bv-stage-card, .bv-object-col {
2090
- display: flex;
2091
- border: 0;
2092
- border-bottom: 1px solid var(--border);
2093
- color: inherit;
2094
- cursor: pointer;
2095
- font: inherit;
2096
- text-align: left;
2097
- background: none;
2098
- border-radius: 0;
2099
- flex-shrink: 0;
2100
- align-items: center;
2101
- gap: 8px;
2102
- width: 100%;
2103
- min-width: 0;
2104
- height: 28px;
2105
- padding: 0 12px;
2106
- }
2107
-
2108
- .bv-stage-card:hover, .bv-object-col:hover {
2109
- background: var(--accent);
2110
- }
2111
-
2112
- .bv-stage-card.is-open, .bv-object-col.is-open {
2113
- background: color-mix(in oklch, var(--primary) 8%, transparent);
2114
- box-shadow: inset 2px 0 0 var(--primary);
2115
- }
2116
-
2117
- .bv-stage-text, .bv-object-head {
2118
- display: flex;
2119
- flex: 1;
2120
- align-items: baseline;
2121
- gap: 8px;
2122
- min-width: 0;
2123
- }
2124
-
2125
- .bv-stage-text b, .bv-object-head b {
2126
- white-space: nowrap;
2127
- font-weight: 500;
2128
- }
2129
-
2130
- .bv-stage-text .bv-muted, .bv-object-head .bv-muted {
2131
- overflow: hidden;
2132
- text-overflow: ellipsis;
2133
- white-space: nowrap;
2134
- font-size: 11px;
2135
- }
2136
-
2137
- .bv-object-count {
2138
- color: var(--muted-foreground);
2139
- font-variant-numeric: tabular-nums;
2140
- font-size: 11px;
2141
- }
2142
-
2143
- .bv-proof-dot {
2144
- border-radius: 50%;
2145
- flex: none;
2146
- width: 8px;
2147
- height: 8px;
2148
- margin: 0;
2149
- }
2150
-
2151
- .bv-pane {
2152
- display: flex;
2153
- overflow: auto;
2154
- scrollbar-gutter: stable;
2155
- flex-direction: column;
2156
- min-width: 0;
2157
- min-height: 0;
2158
- }
2159
-
2160
- .bv-pane-body {
2161
- margin: 0;
2162
- padding: 12px;
2163
- }
2164
-
2165
- .bv-film-head {
2166
- display: flex;
2167
- background: var(--chrome);
2168
- border-bottom: 1px solid var(--border);
2169
- flex-shrink: 0;
2170
- align-items: flex-start;
2171
- gap: 12px;
2172
- margin: 0;
2173
- padding: 4px 12px;
2174
- }
2175
-
2176
- .bv-film-head > div {
2177
- min-width: 0;
2178
- }
2179
-
2180
- .bv-film-head h2, .bv-film-head h3 {
2181
- margin: 0;
2182
- font-size: 13px;
2183
- font-weight: 600;
2184
- line-height: 20px;
2185
- }
2186
-
2187
- .bv-film-intent {
2188
- color: var(--muted-foreground);
2189
- max-width: 90ch;
2190
- margin: 0;
2191
- font-size: 11px;
2192
- line-height: 16px;
2193
- }
2194
-
2195
- .bv-verdict {
2196
- border-radius: var(--radius);
2197
- overflow: hidden;
2198
- text-overflow: ellipsis;
2199
- white-space: nowrap;
2200
- flex: none;
2201
- max-width: 40%;
2202
- height: 20px;
2203
- margin-left: auto;
2204
- padding: 0 6px;
2205
- font-size: 11px;
2206
- font-weight: 500;
2207
- line-height: 20px;
2208
- }
2209
-
2210
- .bv-proof-chips {
2211
- display: flex;
2212
- border-bottom: 1px solid var(--border);
2213
- flex-wrap: wrap;
2214
- flex-shrink: 0;
2215
- gap: 4px;
2216
- margin: 0;
2217
- padding: 4px 12px;
2218
- }
2219
-
2220
- .bv-proof-chip {
2221
- display: inline-flex;
2222
- border-radius: var(--radius);
2223
- color: var(--muted-foreground);
2224
- font: inherit;
2225
- cursor: pointer;
2226
- overflow: hidden;
2227
- text-overflow: ellipsis;
2228
- white-space: nowrap;
2229
- background: none;
2230
- border: 1px solid #0000;
2231
- align-items: center;
2232
- gap: 6px;
2233
- max-width: 360px;
2234
- height: 22px;
2235
- padding: 0 8px;
2236
- font-size: 12px;
2237
- }
2238
-
2239
- .bv-chip-text {
2240
- overflow: hidden;
2241
- text-overflow: ellipsis;
2242
- white-space: nowrap;
2243
- min-width: 0;
2244
- }
2245
-
2246
- .bv-proof-chip:hover {
2247
- background: var(--accent);
2248
- color: var(--foreground);
2249
- }
2250
-
2251
- .bv-proof-chip.is-open {
2252
- background: color-mix(in oklch, var(--primary) 10%, transparent);
2253
- border-color: color-mix(in oklch, var(--primary) 40%, transparent);
2254
- color: var(--foreground);
2255
- }
2256
-
2257
- .bv-object-sheet {
2258
- display: grid;
2259
- grid-template-columns: 72px minmax(0, 1fr);
2260
- border-bottom: 1px solid var(--border);
2261
- gap: 0 12px;
2262
- margin: 0;
2263
- padding: 4px 12px;
2264
- font-size: 11px;
2265
- line-height: 16px;
2266
- }
2267
-
2268
- .bv-object-sheet dt {
2269
- color: var(--muted-foreground);
2270
- opacity: .8;
2271
- }
2272
-
2273
- .bv-object-sheet dd {
2274
- color: var(--foreground);
2275
- overflow: hidden;
2276
- text-overflow: ellipsis;
2277
- white-space: nowrap;
2278
- min-width: 0;
2279
- margin: 0;
2280
- }
2281
-
2282
- .bv-object-sheet code {
2283
- font-size: 11px;
2284
- }
2285
-
2286
- .bv-object-map {
2287
- display: flex;
2288
- flex-direction: column;
2289
- }
2290
-
2291
- .bv-object-cards {
2292
- display: grid;
2293
- grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
2294
- gap: 8px;
2295
- }
2296
-
2297
- .bv-object-loose {
2298
- margin-top: 16px;
2299
- }
2300
-
2301
- .bv-film > .bv-film-head {
2302
- border-top: 1px solid var(--border);
2303
- }
2304
-
2305
- .bv-film {
2306
- --detail-row: 21px;
2307
- display: flex;
2308
- flex-direction: column;
2309
- }
2310
-
2311
- .bv-film-intent {
2312
- display: -webkit-box;
2313
- -webkit-line-clamp: 2;
2314
- overflow: hidden;
2315
- -webkit-box-orient: vertical;
2316
- min-height: 16px;
2317
- }
2318
-
2319
- .bv-verdict {
2320
- text-align: center;
2321
- min-width: 56px;
2322
- }
2323
-
2324
- .bv-film-transport {
2325
- position: sticky;
2326
- z-index: 2;
2327
- background: var(--background);
2328
- border-bottom: 1px solid var(--border);
2329
- flex-shrink: 0;
2330
- top: 0;
2331
- }
2332
-
2333
- .bv-film-controls {
2334
- display: flex;
2335
- flex-wrap: nowrap;
2336
- align-items: center;
2337
- gap: 6px;
2338
- height: 28px;
2339
- padding: 0 12px;
2340
- }
2341
-
2342
- .bv-film-controls .bv-button {
2343
- flex-shrink: 0;
2344
- height: 20px;
2345
- padding: 0 8px;
2346
- font-size: 11px;
2347
- }
2348
-
2349
- .bv-film-controls .bv-film-play {
2350
- justify-content: center;
2351
- min-width: 56px;
2352
- }
2353
-
2354
- .bv-film-controls .is-hidden {
2355
- visibility: hidden;
2356
- }
2357
-
2358
- .bv-film-controls input[type="range"] {
2359
- accent-color: var(--primary);
2360
- flex: 1;
2361
- min-width: 80px;
2362
- }
2363
-
2364
- .bv-film-time {
2365
- font-variant-numeric: tabular-nums;
2366
- white-space: nowrap;
2367
- text-align: right;
2368
- flex-shrink: 0;
2369
- min-width: 116px;
2370
- font-size: 11px;
2371
- }
2372
-
2373
- .bv-film-strip {
2374
- display: flex;
2375
- overflow-x: auto;
2376
- overflow-y: hidden;
2377
- scrollbar-width: none;
2378
- flex-wrap: nowrap;
2379
- align-items: center;
2380
- gap: 2px;
2381
- height: 26px;
2382
- padding: 0 12px;
2383
- }
2384
-
2385
- .bv-film-frame {
2386
- cursor: pointer;
2387
- background: var(--muted);
2388
- opacity: .7;
2389
- border: 0;
2390
- border-radius: 2px;
2391
- flex: none;
2392
- width: 10px;
2393
- height: 16px;
2394
- padding: 0;
2395
- }
2396
-
2397
- .bv-film-body {
2398
- display: grid;
2399
- grid-template-columns: minmax(0, 1fr) 300px;
2400
- align-items: start;
2401
- }
2402
-
2403
- .bv-film-stage {
2404
- position: relative;
2405
- overflow-x: auto;
2406
- overflow-y: hidden;
2407
- min-width: 0;
2408
- margin: 0;
2409
- padding: 0;
2410
- }
2411
-
2412
- .bv-film-frame-box {
2413
- padding: 12px;
2414
- }
2415
-
2416
- .bv-film-probe {
2417
- position: absolute;
2418
- visibility: hidden;
2419
- pointer-events: none;
2420
- top: 0;
2421
- left: 0;
2422
- right: 0;
2423
- }
2424
-
2425
- .bv-film-probe > div {
2426
- position: absolute;
2427
- top: 0;
2428
- left: 0;
2429
- right: 0;
2430
- }
2431
-
2432
- .bv-film-detail {
2433
- display: flex;
2434
- border-left: 1px solid var(--border);
2435
- flex-direction: column;
2436
- gap: 8px;
2437
- min-height: 100%;
2438
- margin: 0;
2439
- padding: 8px 12px;
2440
- }
2441
-
2442
- .bv-film-steps, .bv-film-checks {
2443
- list-style: none;
2444
- margin: 0;
2445
- padding: 0;
2446
- font-size: 12px;
2447
- line-height: 16px;
2448
- }
2449
-
2450
- .bv-film-steps li, .bv-film-checks li {
2451
- border-top: 1px solid var(--border);
2452
- overflow: hidden;
2453
- text-overflow: ellipsis;
2454
- white-space: nowrap;
2455
- padding: 2px 0;
2456
- }
2457
-
2458
- .bv-film-steps li:first-child, .bv-film-checks li:first-child {
2459
- border-top: 0;
2460
- }
2461
-
2462
- @media (max-width: 900px) {
2463
- .bv-film-body {
2464
- grid-template-columns: minmax(0, 1fr);
2465
- }
2466
-
2467
- .bv-film-detail {
2468
- border-left: 0;
2469
- border-top: 1px solid var(--border);
2470
- }
2471
- }
2472
-
2473
- .bv-proof-dot.is-passed {
2474
- background: var(--success);
2475
- }
2476
-
2477
- .bv-proof-dot.is-failed {
2478
- background: var(--destructive);
2479
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--destructive) 25%, transparent);
2480
- }
2481
-
2482
- .bv-proof-dot.is-unproven {
2483
- background: var(--warning);
2484
- }
2485
-
2486
- .bv-proof-dot.is-undrawn {
2487
- border: 1.5px dashed var(--muted-foreground);
2488
- background: none;
2489
- }
2490
-
2491
- .bv-proof-dot.is-sketch {
2492
- border: 1.5px solid var(--muted-foreground);
2493
- background: none;
2494
- }
2495
-
2496
- .bv-proofs-output {
2497
- white-space: pre-wrap;
2498
- background: var(--muted);
2499
- color: var(--muted-foreground);
2500
- border-radius: 8px;
2501
- margin: 8px 0 0;
2502
- padding: 8px 10px;
2503
- font-size: 11px;
2504
- line-height: 1.4;
2505
- }
2506
-
2507
- .bv-proofs-output.is-bad {
2508
- color: var(--destructive);
2509
- }
2510
-
2511
- .bv-verdict.is-passed {
2512
- background: color-mix(in oklch, var(--success) 18%, transparent);
2513
- color: var(--success);
2514
- }
2515
-
2516
- .bv-verdict.is-failed {
2517
- background: color-mix(in oklch, var(--destructive) 18%, transparent);
2518
- color: var(--destructive);
2519
- }
2520
-
2521
- .bv-verdict.is-sketch {
2522
- background: var(--muted);
2523
- color: var(--muted-foreground);
2524
- }
2525
-
2526
- .bv-verdict.is-live {
2527
- background: color-mix(in oklch, var(--primary) 18%, transparent);
2528
- color: var(--primary);
2529
- }
2530
-
2531
- .bv-film-frame.is-ok {
2532
- background: var(--success);
2533
- }
2534
-
2535
- .bv-film-frame.is-bad {
2536
- background: var(--destructive);
2537
- }
2538
-
2539
- .bv-film-frame:hover {
2540
- opacity: 1;
2541
- }
2542
-
2543
- .bv-film-frame.is-here {
2544
- opacity: 1;
2545
- outline: 2px solid var(--foreground);
2546
- outline-offset: 1px;
2547
- }
2548
-
2549
- .bv-film-kind {
2550
- display: inline-block;
2551
- background: var(--muted);
2552
- color: var(--muted-foreground);
2553
- border-radius: 3px;
2554
- min-width: 40px;
2555
- margin-right: 4px;
2556
- padding: 0 5px;
2557
- font-size: 11px;
2558
- line-height: 16px;
2559
- }
2560
-
2561
- .bv-film-mark {
2562
- display: inline-block;
2563
- width: 16px;
2564
- font-weight: 700;
2565
- }
2566
-
2567
- .bv-film-checks .is-ok .bv-film-mark {
2568
- color: var(--success);
2569
- }
2570
-
2571
- .bv-film-checks .is-bad, .bv-film-error {
2572
- color: var(--destructive);
2573
- }
2574
-
2575
- .bv-sandbox-code {
2576
- white-space: pre;
2577
- overflow: auto;
2578
- background: var(--muted);
2579
- color: var(--foreground);
2580
- border-radius: 8px;
2581
- margin: 12px 0 0;
2582
- padding: 10px 12px;
2583
- font-size: 12px;
2584
- line-height: 1.45;
2585
- }
2586
-
2587
- .bv-state-list {
2588
- display: flex;
2589
- flex-direction: column;
2590
- gap: 4px;
2591
- }
2592
-
2593
- .bv-state-entity {
2594
- display: flex;
2595
- border: 1px solid var(--border);
2596
- background: var(--card);
2597
- border-radius: 8px;
2598
- flex-wrap: wrap;
2599
- align-items: baseline;
2600
- gap: 10px;
2601
- padding: 6px 10px;
2602
- font-size: 13px;
2603
- }
2604
-
2605
- .bv-state-part b {
2606
- margin-right: 4px;
2607
- }
2608
-
2609
- .bv-state-part code {
2610
- color: var(--muted-foreground);
2611
- font-size: 12px;
2612
- }
2613
- }
2614
-
2615
- .bv-maker {
2616
- padding: 12px 16px;
2617
- font-size: 13px;
2618
- line-height: 20px;
2619
- }
2620
-
2621
- .bv-maker-head {
2622
- display: flex;
2623
- align-items: baseline;
2624
- gap: 12px;
2625
- margin-bottom: 8px;
2626
- }
2627
-
2628
- .bv-maker-head h2 {
2629
- margin: 0;
2630
- font-size: 15px;
2631
- }
2632
-
2633
- .bv-maker-list {
2634
- list-style: none;
2635
- margin: 0;
2636
- padding: 0;
2637
- }
2638
-
2639
- .bv-maker-spec {
2640
- display: flex;
2641
- border-top: 1px solid var(--border);
2642
- justify-content: space-between;
2643
- align-items: baseline;
2644
- gap: 12px;
2645
- padding: 6px 0;
2646
- }
2647
-
2648
- .bv-maker-open {
2649
- color: var(--foreground);
2650
- font: inherit;
2651
- text-align: left;
2652
- cursor: pointer;
2653
- background: none;
2654
- border: 0;
2655
- padding: 0;
2656
- }
2657
-
2658
- .bv-maker-open:hover b {
2659
- text-decoration: underline;
2660
- }
2661
-
2662
- .bv-maker-facts {
2663
- display: flex;
2664
- white-space: nowrap;
2665
- align-items: center;
2666
- gap: 10px;
2667
- }
2668
-
2669
- .bv-maker-output {
2670
- white-space: pre-wrap;
2671
- background: var(--muted);
2672
- color: var(--destructive);
2673
- border-radius: 8px;
2674
- margin: 8px 0;
2675
- padding: 8px 10px;
2676
- font-size: 12px;
2677
- }
2678
-
2679
- .bv-lab {
2680
- display: flex;
2681
- flex-direction: column;
2682
- height: 100%;
2683
- min-height: 0;
2684
- font-size: 13px;
2685
- line-height: 20px;
2686
- }
2687
-
2688
- .bv-lab-app {
2689
- flex: 1;
2690
- min-width: 0;
2691
- min-height: 0;
2692
- }
2693
-
2694
- .bv-lab-frame {
2695
- overflow: auto;
2696
- background: var(--background);
2697
- border: 1px solid #0000;
2698
- height: 100%;
2699
- min-height: 0;
2700
- transition: border-color .15s;
2701
- }
2702
-
2703
- .bv-lab-frame.is-playing {
2704
- border-color: var(--primary);
2705
- }
2706
-
2707
- .bv-lab-bare {
2708
- padding: 12px;
2709
- }
2710
-
2711
- .bv-lab-views {
2712
- list-style: none;
2713
- display: flex;
2714
- flex-direction: column;
2715
- align-items: stretch;
2716
- margin: 0;
2717
- padding: 0;
2718
- }
2719
-
2720
- .bv-lab-views .is-open {
2721
- font-weight: 600;
2722
- }
2723
-
2724
- .bv-bar {
2725
- position: relative;
2726
- z-index: 2;
2727
- display: flex;
2728
- border-top: 1px solid var(--border);
2729
- background: var(--card);
2730
- white-space: nowrap;
2731
- align-items: stretch;
2732
- gap: 2px;
2733
- height: 30px;
2734
- padding: 0 6px;
2735
- font-size: 12px;
2736
- line-height: 30px;
2737
- }
2738
-
2739
- .bv-bar-head {
2740
- border-top: 0;
2741
- border-bottom: 1px solid var(--border);
2742
- }
2743
-
2744
- .bv-bar-head .bv-popover {
2745
- top: calc(100% + 4px);
2746
- bottom: auto;
2747
- }
2748
-
2749
- .bv-bar-slot {
2750
- position: relative;
2751
- display: flex;
2752
- }
2753
-
2754
- .bv-bar-item {
2755
- display: inline-flex;
2756
- border-radius: var(--radius);
2757
- color: var(--foreground);
2758
- font: inherit;
2759
- cursor: pointer;
2760
- background: none;
2761
- border: 0;
2762
- align-items: center;
2763
- gap: 6px;
2764
- height: 30px;
2765
- padding: 0 8px;
2766
- line-height: 1;
2767
- }
2768
-
2769
- .bv-bar-icon {
2770
- opacity: .85;
2771
- flex: none;
2772
- width: 14px;
2773
- height: 14px;
2774
- }
2775
-
2776
- .bv-bar-item b {
2777
- font-weight: 600;
2778
- }
2779
-
2780
- .bv-bar-time {
2781
- font-variant-numeric: tabular-nums;
2782
- text-align: right;
2783
- min-width: 44px;
2784
- }
2785
-
2786
- .bv-bar-item:hover, .bv-bar-item.is-open {
2787
- background: var(--accent);
2788
- }
2789
-
2790
- .bv-bar-item.is-ok {
2791
- color: var(--success);
2792
- }
2793
-
2794
- .bv-bar-item.is-bad {
2795
- color: var(--destructive);
2796
- }
2797
-
2798
- .bv-bar-item.is-warn {
2799
- color: var(--warning);
2800
- }
2801
-
2802
- .bv-bar-item.is-here {
2803
- color: var(--primary);
2804
- }
2805
-
2806
- .bv-bar-item .bv-muted {
2807
- color: var(--muted-foreground);
2808
- font-weight: 400;
2809
- }
2810
-
2811
- .bv-bar-slot {
2812
- align-items: stretch;
2813
- }
2814
-
2815
- .bv-lab-answer .bv-button .bv-bar-icon {
2816
- margin-right: 4px;
2817
- }
2818
-
2819
- .bv-bar-back {
2820
- color: var(--muted-foreground);
2821
- padding: 0 6px;
2822
- }
2823
-
2824
- .bv-bar-back:hover {
2825
- color: var(--foreground);
2826
- }
2827
-
2828
- .bv-bar-play {
2829
- justify-content: center;
2830
- width: 30px;
2831
- padding: 0;
2832
- }
2833
-
2834
- .bv-bar-play.is-on {
2835
- color: var(--primary);
2836
- }
2837
-
2838
- .bv-bar-gap {
2839
- flex: 1;
2840
- }
2841
-
2842
- .bv-bar-summary {
2843
- margin: 0 0 4px;
2844
- }
2845
-
2846
- .bv-popover {
2847
- position: absolute;
2848
- overflow: auto;
2849
- border: 1px solid var(--border);
2850
- border-radius: var(--radius);
2851
- background: var(--popover);
2852
- box-shadow: 0 8px 24px color-mix(in oklch, var(--foreground) 14%, transparent);
2853
- white-space: normal;
2854
- width: 360px;
2855
- max-width: calc(100vw - 24px);
2856
- max-height: min(70vh, 640px);
2857
- padding: 8px 12px;
2858
- font-size: 12px;
2859
- line-height: 16px;
2860
- bottom: calc(100% + 4px);
2861
- left: 0;
2862
- }
2863
-
2864
- .bv-popover.is-right {
2865
- left: auto;
2866
- right: 0;
2867
- }
2868
-
2869
- .bv-popover.is-wide {
2870
- width: 460px;
2871
- }
2872
-
2873
- .bv-popover h3 {
2874
- text-transform: uppercase;
2875
- letter-spacing: .04em;
2876
- color: var(--muted-foreground);
2877
- margin: 8px 0 4px;
2878
- font-size: 11px;
2879
- font-weight: 600;
2880
- }
2881
-
2882
- .bv-popover h3:first-child {
2883
- margin-top: 0;
2884
- }
2885
-
2886
- .bv-lab-transport {
2887
- display: flex;
2888
- align-items: center;
2889
- gap: 10px;
2890
- }
2891
-
2892
- .bv-lab-transport select {
2893
- font: inherit;
2894
- background: var(--background);
2895
- color: var(--foreground);
2896
- border: 1px solid var(--border);
2897
- border-radius: 4px;
2898
- }
2899
-
2900
- .bv-lab-scenarios, .bv-lab-jobs, .bv-lab-changes, .bv-lab-outside, .bv-lab-log {
2901
- list-style: none;
2902
- margin: 0;
2903
- padding: 0;
2904
- }
2905
-
2906
- .bv-lab-scenarios > li, .bv-lab-jobs > li, .bv-lab-changes > li, .bv-lab-log > li {
2907
- border-top: 1px solid var(--border);
2908
- padding: 4px 0;
2909
- }
2910
-
2911
- .bv-lab-scenarios > li:first-child, .bv-lab-jobs > li:first-child, .bv-lab-changes > li:first-child, .bv-lab-log > li:first-child {
2912
- border-top: 0;
2913
- }
2914
-
2915
- .bv-lab-scenario-row {
2916
- display: flex;
2917
- align-items: center;
2918
- gap: 6px;
2919
- }
2920
-
2921
- .bv-lab-scenario-row b {
2922
- overflow: hidden;
2923
- text-overflow: ellipsis;
2924
- white-space: nowrap;
2925
- flex: 1;
2926
- min-width: 0;
2927
- }
2928
-
2929
- .bv-lab-answer {
2930
- display: flex;
2931
- gap: 4px;
2932
- margin-top: 4px;
2933
- }
2934
-
2935
- .bv-lab-answer input {
2936
- font: inherit;
2937
- border: 1px solid var(--border);
2938
- background: var(--background);
2939
- color: var(--foreground);
2940
- border-radius: 4px;
2941
- flex: 1;
2942
- min-width: 0;
2943
- padding: 2px 6px;
2944
- }
2945
-
2946
- .bv-lab-changes ul {
2947
- list-style: none;
2948
- margin: 2px 0 0 8px;
2949
- padding: 0;
2950
- }
2951
-
2952
- .bv-film-checks .is-warn, .bv-film-checks .is-warn .bv-film-mark {
2953
- color: var(--warning);
2954
- }
2955
-
2956
- .bv-lab-knobs {
2957
- display: flex;
2958
- flex-wrap: wrap;
2959
- gap: 10px;
2960
- margin: 6px 0;
2961
- }
2962
-
2963
- .bv-lab-knob {
2964
- font: inherit;
2965
- border: 1px solid var(--border);
2966
- background: var(--background);
2967
- color: var(--foreground);
2968
- border-radius: 4px;
2969
- width: 64px;
2970
- padding: 1px 4px;
2971
- }
2972
-
2973
- .bv-lab-scenarios > li.is-open {
2974
- background: color-mix(in oklch, var(--primary) 8%, transparent);
2975
- margin: 0 -12px;
2976
- padding: 4px 12px;
2977
- }
2978
-
2979
- .bv-lab-story-wrap {
2980
- border-top: 1px solid var(--border);
2981
- margin-top: 8px;
2982
- padding-top: 8px;
2983
- }
2984
-
2985
- .bv-lab-story {
2986
- list-style: none;
2987
- margin: 4px 0 0;
2988
- padding: 0;
2989
- }
2990
-
2991
- .bv-lab-story > li {
2992
- display: grid;
2993
- grid-template-columns: 14px 1fr;
2994
- border-top: 1px solid var(--border);
2995
- color: var(--muted-foreground);
2996
- column-gap: 4px;
2997
- padding: 3px 0;
2998
- }
2999
-
3000
- .bv-lab-story > li:first-child {
3001
- border-top: 0;
3002
- }
3003
-
3004
- .bv-lab-story > li.is-done, .bv-lab-story > li.is-ok, .bv-lab-story > li.is-bad, .bv-lab-story > li.is-warn {
3005
- color: var(--foreground);
3006
- }
3007
-
3008
- .bv-lab-story > li.is-here {
3009
- color: var(--primary);
3010
- font-weight: 500;
3011
- }
3012
-
3013
- .bv-lab-story > li.is-ok .bv-film-mark {
3014
- color: var(--success);
3015
- }
3016
-
3017
- .bv-lab-story > li.is-bad {
3018
- color: var(--destructive);
3019
- }
3020
-
3021
- .bv-lab-story > li.is-warn {
3022
- color: var(--warning);
3023
- }
3024
-
3025
- .bv-lab-story .bv-lab-changes {
3026
- grid-column: 2;
3027
- color: var(--muted-foreground);
3028
- margin: 2px 0 0;
3029
- font-size: 11px;
3030
- }
3031
-
3032
- .bv-lab-story-head {
3033
- margin: 0 0 2px;
3034
- }
3035
-
3036
- .bv-lab-take {
3037
- margin-top: 4px;
3038
- }
3039
-
3040
- .bv-lab-tree {
3041
- list-style: none;
3042
- margin: 2px 0 0 10px;
3043
- padding: 0;
3044
- font-size: 11px;
3045
- }
3046
-
3047
- .bv-lab-expect {
3048
- margin: 4px 0;
3049
- }
3050
-
3051
- .bv-lab-model .bv-object-map {
3052
- margin-bottom: 6px;
3053
- }