@vibecook/ghosttea-react 0.8.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +56 -0
  2. package/THIRD_PARTY_NOTICES.md +62 -0
  3. package/dist/appearance/AdvancedConfigSettings.d.ts +12 -0
  4. package/dist/appearance/AdvancedConfigSettings.d.ts.map +1 -0
  5. package/dist/appearance/AdvancedConfigSettings.js +362 -0
  6. package/dist/appearance/AdvancedConfigSettings.js.map +1 -0
  7. package/dist/appearance/AppearanceSettings.d.ts +21 -0
  8. package/dist/appearance/AppearanceSettings.d.ts.map +1 -0
  9. package/dist/appearance/AppearanceSettings.js +175 -0
  10. package/dist/appearance/AppearanceSettings.js.map +1 -0
  11. package/dist/appearance/catalog.d.ts +39 -0
  12. package/dist/appearance/catalog.d.ts.map +1 -0
  13. package/dist/appearance/catalog.js +56 -0
  14. package/dist/appearance/catalog.js.map +1 -0
  15. package/dist/appearance/config-draft.d.ts +35 -0
  16. package/dist/appearance/config-draft.d.ts.map +1 -0
  17. package/dist/appearance/config-draft.js +289 -0
  18. package/dist/appearance/config-draft.js.map +1 -0
  19. package/dist/appearance/shaders.d.ts +14 -0
  20. package/dist/appearance/shaders.d.ts.map +1 -0
  21. package/dist/appearance/shaders.js +71 -0
  22. package/dist/appearance/shaders.js.map +1 -0
  23. package/dist/appearance/theme-catalog.generated.json +16260 -0
  24. package/dist/appearance/types.d.ts +61 -0
  25. package/dist/appearance/types.d.ts.map +1 -0
  26. package/dist/appearance/types.js +2 -0
  27. package/dist/appearance/types.js.map +1 -0
  28. package/dist/config.d.ts.map +1 -1
  29. package/dist/config.js +23 -4
  30. package/dist/config.js.map +1 -1
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +1 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/renderers/canvas-renderer.d.ts.map +1 -1
  36. package/dist/renderers/canvas-renderer.js +9 -1
  37. package/dist/renderers/canvas-renderer.js.map +1 -1
  38. package/dist/renderers/shader-effects.d.ts +2 -0
  39. package/dist/renderers/shader-effects.d.ts.map +1 -0
  40. package/dist/renderers/shader-effects.js +206 -0
  41. package/dist/renderers/shader-effects.js.map +1 -0
  42. package/dist/renderers/types.d.ts +7 -0
  43. package/dist/renderers/types.d.ts.map +1 -1
  44. package/dist/renderers/types.js +11 -0
  45. package/dist/renderers/types.js.map +1 -1
  46. package/dist/renderers/webgpu-renderer.d.ts +2 -1
  47. package/dist/renderers/webgpu-renderer.d.ts.map +1 -1
  48. package/dist/renderers/webgpu-renderer.js +250 -159
  49. package/dist/renderers/webgpu-renderer.js.map +1 -1
  50. package/dist/terminal-render.worker.js +479 -165
  51. package/dist/terminal-render.worker.js.map +3 -3
  52. package/dist/workspace/Workspace.d.ts +23 -4
  53. package/dist/workspace/Workspace.d.ts.map +1 -1
  54. package/dist/workspace/Workspace.js +30 -8
  55. package/dist/workspace/Workspace.js.map +1 -1
  56. package/dist/workspace/index.d.ts +3 -0
  57. package/dist/workspace/index.d.ts.map +1 -1
  58. package/dist/workspace/index.js +2 -0
  59. package/dist/workspace/index.js.map +1 -1
  60. package/dist/workspace/themes.d.ts +4 -0
  61. package/dist/workspace/themes.d.ts.map +1 -1
  62. package/dist/workspace/themes.js +4 -0
  63. package/dist/workspace/themes.js.map +1 -1
  64. package/dist/workspace.css +1122 -5
  65. package/package.json +6 -5
@@ -1,6 +1,6 @@
1
1
  :root {
2
2
  color: #fff;
3
- background: #282c34;
3
+ background: transparent;
4
4
  color-scheme: dark;
5
5
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;
6
6
  font-synthesis: none;
@@ -17,7 +17,7 @@ body,
17
17
  height: 100%;
18
18
  margin: 0;
19
19
  overflow: hidden;
20
- background: #282c34;
20
+ background: transparent;
21
21
  }
22
22
 
23
23
  body {
@@ -29,7 +29,7 @@ body {
29
29
  height: 100%;
30
30
  display: flex;
31
31
  flex-direction: column;
32
- background: #282c34;
32
+ background: transparent;
33
33
  }
34
34
 
35
35
  .ghostty-titlebar {
@@ -89,7 +89,7 @@ body {
89
89
  position: relative;
90
90
  flex: 1 1 auto;
91
91
  overflow: hidden;
92
- background: #282c34;
92
+ background: transparent;
93
93
  }
94
94
 
95
95
  .ghostty-split {
@@ -109,7 +109,1124 @@ body {
109
109
  min-width: 0;
110
110
  min-height: 0;
111
111
  overflow: hidden;
112
- background: #282c34;
112
+ background: transparent;
113
+ }
114
+
115
+ .ghosttea-settings-button {
116
+ position: absolute;
117
+ z-index: 12;
118
+ top: 8px;
119
+ right: 9px;
120
+ width: 30px;
121
+ height: 30px;
122
+ padding: 0;
123
+ border: 1px solid rgb(255 255 255 / 13%);
124
+ border-radius: 8px;
125
+ color: rgb(255 255 255 / 68%);
126
+ background: rgb(20 22 28 / 68%);
127
+ box-shadow: 0 3px 16px rgb(0 0 0 / 18%);
128
+ font:
129
+ 16px/28px system-ui,
130
+ sans-serif;
131
+ opacity: 0;
132
+ cursor: pointer;
133
+ transition:
134
+ opacity 120ms ease-out,
135
+ background-color 120ms ease-out;
136
+ -webkit-app-region: no-drag;
137
+ }
138
+
139
+ .ghostty-titlebar .ghosttea-settings-button {
140
+ top: 0;
141
+ right: 3px;
142
+ width: 34px;
143
+ height: 29px;
144
+ border-color: transparent;
145
+ border-radius: 6px;
146
+ background: transparent;
147
+ box-shadow: none;
148
+ font-size: 14px;
149
+ line-height: 27px;
150
+ pointer-events: auto;
151
+ -webkit-app-region: no-drag;
152
+ }
153
+
154
+ .ghostty-window:hover .ghosttea-settings-button,
155
+ .ghosttea-settings-button:focus-visible {
156
+ opacity: 1;
157
+ }
158
+
159
+ .ghosttea-settings-button:hover {
160
+ color: #fff;
161
+ background: rgb(34 37 46 / 92%);
162
+ }
163
+
164
+ .ghosttea-settings-button:disabled {
165
+ opacity: 0;
166
+ cursor: default;
167
+ }
168
+
169
+ .appearance-settings-backdrop {
170
+ position: absolute;
171
+ z-index: 50;
172
+ inset: 0;
173
+ display: grid;
174
+ place-items: center;
175
+ padding: 24px;
176
+ background: rgb(5 7 12 / 64%);
177
+ backdrop-filter: blur(12px);
178
+ -webkit-app-region: no-drag;
179
+ }
180
+
181
+ .appearance-settings {
182
+ position: relative;
183
+ width: min(1160px, 100%);
184
+ height: min(820px, 100%);
185
+ max-height: min(820px, 100%);
186
+ display: flex;
187
+ flex-direction: column;
188
+ overflow: hidden;
189
+ border: 1px solid rgb(255 255 255 / 13%);
190
+ border-radius: 16px;
191
+ color: #eef1f7;
192
+ background: #1d2028;
193
+ box-shadow: 0 28px 90px rgb(0 0 0 / 58%);
194
+ }
195
+
196
+ .appearance-settings > header,
197
+ .settings-page > footer,
198
+ .advanced-config > footer {
199
+ display: flex;
200
+ gap: 16px;
201
+ align-items: center;
202
+ padding: 18px 20px;
203
+ }
204
+
205
+ .appearance-settings > header {
206
+ justify-content: space-between;
207
+ border-bottom: 1px solid rgb(255 255 255 / 9%);
208
+ }
209
+
210
+ .appearance-settings h1,
211
+ .appearance-settings h2,
212
+ .appearance-settings p {
213
+ margin: 0;
214
+ }
215
+
216
+ .appearance-settings h1 {
217
+ font-size: 19px;
218
+ }
219
+
220
+ .appearance-settings header p,
221
+ .appearance-help {
222
+ margin-top: 4px;
223
+ color: rgb(238 241 247 / 55%);
224
+ font-size: 12px;
225
+ }
226
+
227
+ .appearance-close {
228
+ width: 32px;
229
+ height: 32px;
230
+ border: 0;
231
+ border-radius: 8px;
232
+ color: inherit;
233
+ background: rgb(255 255 255 / 7%);
234
+ font-size: 22px;
235
+ cursor: pointer;
236
+ }
237
+
238
+ .settings-layout {
239
+ min-height: 0;
240
+ flex: 1;
241
+ display: grid;
242
+ grid-template-columns: 158px minmax(0, 1fr);
243
+ }
244
+
245
+ .settings-sidebar {
246
+ display: flex;
247
+ flex-direction: column;
248
+ gap: 5px;
249
+ padding: 14px 10px;
250
+ border-right: 1px solid rgb(255 255 255 / 9%);
251
+ background: rgb(7 9 13 / 18%);
252
+ }
253
+
254
+ .settings-sidebar button {
255
+ display: flex;
256
+ flex-direction: column;
257
+ gap: 2px;
258
+ padding: 10px;
259
+ border: 1px solid transparent;
260
+ border-radius: 9px;
261
+ color: inherit;
262
+ background: transparent;
263
+ text-align: left;
264
+ cursor: pointer;
265
+ }
266
+
267
+ .settings-sidebar button:hover {
268
+ background: rgb(255 255 255 / 5%);
269
+ }
270
+
271
+ .settings-sidebar button:disabled {
272
+ cursor: not-allowed;
273
+ opacity: 0.45;
274
+ }
275
+
276
+ .settings-sidebar button:disabled:hover {
277
+ background: transparent;
278
+ }
279
+
280
+ .settings-sidebar button.is-selected {
281
+ border-color: rgb(118 152 255 / 40%);
282
+ background: rgb(118 152 255 / 13%);
283
+ }
284
+
285
+ .settings-sidebar button span {
286
+ font-size: 13px;
287
+ font-weight: 650;
288
+ }
289
+
290
+ .settings-sidebar button small {
291
+ color: rgb(238 241 247 / 48%);
292
+ font-size: 10px;
293
+ }
294
+
295
+ .settings-sidebar-note {
296
+ margin: 5px 3px 0;
297
+ color: rgb(242 198 109 / 78%);
298
+ font-size: 9px;
299
+ line-height: 1.4;
300
+ }
301
+
302
+ .settings-content,
303
+ .settings-page {
304
+ min-width: 0;
305
+ min-height: 0;
306
+ }
307
+
308
+ .settings-content {
309
+ position: relative;
310
+ overflow: hidden;
311
+ }
312
+
313
+ .settings-page {
314
+ position: absolute;
315
+ inset: 0;
316
+ display: none;
317
+ flex-direction: column;
318
+ }
319
+
320
+ .settings-page.is-active {
321
+ display: flex;
322
+ }
323
+
324
+ .appearance-settings-grid {
325
+ flex: 1;
326
+ min-height: 0;
327
+ display: grid;
328
+ grid-template-columns: minmax(240px, 0.78fr) minmax(340px, 1.22fr);
329
+ overflow: hidden;
330
+ }
331
+
332
+ .appearance-panel {
333
+ min-width: 0;
334
+ min-height: 0;
335
+ display: flex;
336
+ flex-direction: column;
337
+ gap: 12px;
338
+ padding: 18px;
339
+ overflow: hidden;
340
+ }
341
+
342
+ .appearance-panel + .appearance-panel {
343
+ border-left: 1px solid rgb(255 255 255 / 9%);
344
+ }
345
+
346
+ .appearance-panel h2 {
347
+ font-size: 13px;
348
+ font-weight: 650;
349
+ letter-spacing: 0.01em;
350
+ }
351
+
352
+ .appearance-panel h2 span {
353
+ color: rgb(238 241 247 / 42%);
354
+ font-weight: 500;
355
+ }
356
+
357
+ .appearance-search {
358
+ width: 100%;
359
+ padding: 9px 11px;
360
+ border: 1px solid rgb(255 255 255 / 11%);
361
+ border-radius: 8px;
362
+ outline: 0;
363
+ color: inherit;
364
+ background: rgb(7 9 13 / 48%);
365
+ }
366
+
367
+ .appearance-search:focus {
368
+ border-color: #7698ff;
369
+ }
370
+
371
+ .appearance-theme-list,
372
+ .appearance-details {
373
+ overflow: auto;
374
+ }
375
+
376
+ .appearance-theme-list {
377
+ display: flex;
378
+ flex-direction: column;
379
+ gap: 3px;
380
+ }
381
+
382
+ .appearance-theme-list button {
383
+ display: flex;
384
+ gap: 10px;
385
+ align-items: center;
386
+ width: 100%;
387
+ padding: 7px;
388
+ border: 1px solid transparent;
389
+ border-radius: 8px;
390
+ color: inherit;
391
+ background: transparent;
392
+ text-align: left;
393
+ cursor: pointer;
394
+ }
395
+
396
+ .appearance-theme-list button:hover {
397
+ background: rgb(255 255 255 / 5%);
398
+ }
399
+
400
+ .appearance-theme-list button.is-selected {
401
+ border-color: rgb(118 152 255 / 55%);
402
+ background: rgb(118 152 255 / 13%);
403
+ }
404
+
405
+ .appearance-swatches {
406
+ width: 54px;
407
+ height: 24px;
408
+ display: flex;
409
+ align-items: end;
410
+ justify-content: center;
411
+ overflow: hidden;
412
+ border: 1px solid rgb(255 255 255 / 12%);
413
+ border-radius: 5px;
414
+ }
415
+
416
+ .appearance-swatches i {
417
+ width: 9px;
418
+ height: 9px;
419
+ }
420
+
421
+ .appearance-preview {
422
+ position: relative;
423
+ min-height: 112px;
424
+ padding: 16px;
425
+ overflow: hidden;
426
+ border: 1px solid rgb(255 255 255 / 11%);
427
+ border-radius: 10px;
428
+ box-shadow: inset 0 0 28px rgb(0 0 0 / 18%);
429
+ }
430
+
431
+ .appearance-preview code {
432
+ font:
433
+ 12px/1.8 ui-monospace,
434
+ SFMono-Regular,
435
+ Menlo,
436
+ monospace;
437
+ }
438
+
439
+ .appearance-preview-dots {
440
+ display: flex;
441
+ gap: 5px;
442
+ margin-bottom: 12px;
443
+ }
444
+
445
+ .appearance-preview-dots i {
446
+ width: 8px;
447
+ height: 8px;
448
+ border-radius: 50%;
449
+ }
450
+
451
+ .appearance-preview-cursor {
452
+ display: inline-block;
453
+ min-width: 8px;
454
+ font:
455
+ 12px/18px ui-monospace,
456
+ monospace;
457
+ text-align: center;
458
+ }
459
+
460
+ .appearance-range,
461
+ .appearance-range > span {
462
+ display: flex;
463
+ gap: 10px;
464
+ }
465
+
466
+ .appearance-range {
467
+ flex-direction: column;
468
+ font-size: 12px;
469
+ }
470
+
471
+ .appearance-range > span {
472
+ justify-content: space-between;
473
+ }
474
+
475
+ .appearance-range output {
476
+ color: rgb(238 241 247 / 58%);
477
+ }
478
+
479
+ .appearance-range input {
480
+ width: 100%;
481
+ }
482
+
483
+ .appearance-check,
484
+ .appearance-shader label {
485
+ display: flex;
486
+ gap: 9px;
487
+ align-items: flex-start;
488
+ font-size: 12px;
489
+ cursor: pointer;
490
+ }
491
+
492
+ .appearance-check input,
493
+ .appearance-shader input {
494
+ margin-top: 2px;
495
+ accent-color: #7698ff;
496
+ }
497
+
498
+ .appearance-shader-list {
499
+ display: flex;
500
+ flex-direction: column;
501
+ gap: 7px;
502
+ }
503
+
504
+ .appearance-shader {
505
+ display: flex;
506
+ gap: 8px;
507
+ align-items: center;
508
+ justify-content: space-between;
509
+ padding: 9px;
510
+ border: 1px solid rgb(255 255 255 / 8%);
511
+ border-radius: 8px;
512
+ background: rgb(255 255 255 / 2%);
513
+ }
514
+
515
+ .appearance-shader label > span {
516
+ display: flex;
517
+ flex-direction: column;
518
+ gap: 2px;
519
+ }
520
+
521
+ .appearance-shader small {
522
+ color: rgb(238 241 247 / 57%);
523
+ line-height: 1.35;
524
+ }
525
+
526
+ .appearance-shader em {
527
+ color: #91a9ef;
528
+ font-size: 10px;
529
+ font-style: normal;
530
+ }
531
+
532
+ .appearance-shader-order {
533
+ display: flex;
534
+ gap: 3px;
535
+ }
536
+
537
+ .appearance-shader-order button {
538
+ width: 25px;
539
+ height: 25px;
540
+ padding: 0;
541
+ border: 1px solid rgb(255 255 255 / 10%);
542
+ border-radius: 5px;
543
+ color: inherit;
544
+ background: rgb(255 255 255 / 5%);
545
+ cursor: pointer;
546
+ }
547
+
548
+ .appearance-shader-order button:disabled {
549
+ opacity: 0.28;
550
+ cursor: default;
551
+ }
552
+
553
+ .appearance-unavailable {
554
+ color: rgb(238 241 247 / 52%);
555
+ font-size: 11px;
556
+ line-height: 1.45;
557
+ }
558
+
559
+ .appearance-unavailable summary {
560
+ cursor: pointer;
561
+ }
562
+
563
+ .appearance-unavailable p {
564
+ margin-top: 7px;
565
+ }
566
+
567
+ .appearance-error {
568
+ padding: 9px 20px;
569
+ color: #ffb4a9;
570
+ background: rgb(160 42 32 / 18%);
571
+ font-size: 12px;
572
+ }
573
+
574
+ .settings-page > footer,
575
+ .advanced-config > footer {
576
+ justify-content: flex-end;
577
+ border-top: 1px solid rgb(255 255 255 / 9%);
578
+ }
579
+
580
+ .settings-page > footer button,
581
+ .advanced-config > footer button,
582
+ .advanced-config button,
583
+ .friendly-config-editor button {
584
+ min-width: 84px;
585
+ padding: 8px 13px;
586
+ border: 1px solid rgb(255 255 255 / 12%);
587
+ border-radius: 8px;
588
+ color: inherit;
589
+ background: rgb(255 255 255 / 6%);
590
+ cursor: pointer;
591
+ }
592
+
593
+ .settings-page > footer .appearance-save,
594
+ .advanced-config > footer .appearance-save {
595
+ border-color: #7698ff;
596
+ background: #5878dc;
597
+ }
598
+
599
+ .advanced-config {
600
+ min-height: 0;
601
+ flex: 1;
602
+ display: flex;
603
+ flex-direction: column;
604
+ }
605
+
606
+ .advanced-config-toolbar {
607
+ min-height: 52px;
608
+ display: flex;
609
+ gap: 14px;
610
+ align-items: center;
611
+ justify-content: space-between;
612
+ padding: 10px 16px;
613
+ border-bottom: 1px solid rgb(255 255 255 / 9%);
614
+ }
615
+
616
+ .settings-segmented {
617
+ display: inline-flex;
618
+ padding: 3px;
619
+ border-radius: 8px;
620
+ background: rgb(0 0 0 / 22%);
621
+ }
622
+
623
+ .settings-segmented button {
624
+ min-width: 100px;
625
+ padding: 6px 10px;
626
+ border: 0;
627
+ background: transparent;
628
+ }
629
+
630
+ .settings-segmented button[aria-selected="true"] {
631
+ background: rgb(255 255 255 / 10%);
632
+ box-shadow: 0 1px 4px rgb(0 0 0 / 28%);
633
+ }
634
+
635
+ .config-validation-status {
636
+ display: inline-flex;
637
+ gap: 6px;
638
+ align-items: center;
639
+ color: rgb(238 241 247 / 58%);
640
+ font-size: 11px;
641
+ }
642
+
643
+ .config-validation-status::before {
644
+ width: 7px;
645
+ height: 7px;
646
+ border-radius: 50%;
647
+ background: #768093;
648
+ content: "";
649
+ }
650
+
651
+ .config-validation-status.is-valid::before {
652
+ background: #5ed19a;
653
+ box-shadow: 0 0 8px rgb(94 209 154 / 45%);
654
+ }
655
+
656
+ .config-validation-status.is-invalid::before {
657
+ background: #ff8173;
658
+ }
659
+
660
+ .config-validation-status.is-validating::before {
661
+ background: #f2c66d;
662
+ }
663
+
664
+ .config-import-stage,
665
+ .config-conflict {
666
+ display: flex;
667
+ gap: 16px;
668
+ align-items: center;
669
+ justify-content: space-between;
670
+ padding: 10px 16px;
671
+ border-bottom: 1px solid rgb(255 255 255 / 9%);
672
+ background: rgb(80 108 190 / 17%);
673
+ font-size: 11px;
674
+ }
675
+
676
+ .config-conflict {
677
+ align-items: flex-start;
678
+ background: rgb(172 104 43 / 18%);
679
+ }
680
+
681
+ .config-import-stage p,
682
+ .config-conflict p {
683
+ margin-top: 3px;
684
+ color: rgb(238 241 247 / 60%);
685
+ }
686
+
687
+ .config-import-stage > span,
688
+ .config-conflict > span,
689
+ .config-editor-actions {
690
+ display: flex;
691
+ flex: none;
692
+ gap: 6px;
693
+ }
694
+
695
+ .config-import-stage button,
696
+ .config-conflict button,
697
+ .config-editor-actions button,
698
+ .friendly-heading button {
699
+ min-width: auto;
700
+ padding: 6px 9px;
701
+ }
702
+
703
+ .config-conflict details {
704
+ margin-top: 6px;
705
+ }
706
+
707
+ .config-conflict summary {
708
+ cursor: pointer;
709
+ }
710
+
711
+ .config-conflict pre {
712
+ max-width: 560px;
713
+ max-height: 130px;
714
+ margin: 7px 0 0;
715
+ padding: 8px;
716
+ overflow: auto;
717
+ border-radius: 6px;
718
+ background: rgb(0 0 0 / 24%);
719
+ font:
720
+ 10px/1.45 ui-monospace,
721
+ SFMono-Regular,
722
+ Menlo,
723
+ monospace;
724
+ white-space: pre-wrap;
725
+ }
726
+
727
+ .advanced-config-body {
728
+ min-height: 0;
729
+ flex: 1;
730
+ display: grid;
731
+ grid-template-columns: minmax(0, 1fr) 250px;
732
+ overflow: hidden;
733
+ }
734
+
735
+ .raw-config-editor,
736
+ .friendly-config-editor {
737
+ min-width: 0;
738
+ min-height: 0;
739
+ padding: 14px 16px;
740
+ overflow: auto;
741
+ }
742
+
743
+ .raw-config-editor {
744
+ display: flex;
745
+ flex-direction: column;
746
+ gap: 9px;
747
+ }
748
+
749
+ .config-document-meta {
750
+ display: flex;
751
+ gap: 8px;
752
+ align-items: center;
753
+ min-width: 0;
754
+ font-size: 11px;
755
+ }
756
+
757
+ .config-document-meta code {
758
+ min-width: 0;
759
+ overflow: hidden;
760
+ color: rgb(238 241 247 / 56%);
761
+ text-overflow: ellipsis;
762
+ white-space: nowrap;
763
+ }
764
+
765
+ .config-document-meta > span {
766
+ margin-left: auto;
767
+ color: rgb(238 241 247 / 43%);
768
+ }
769
+
770
+ .config-code-editor {
771
+ min-height: 260px;
772
+ flex: 1;
773
+ display: grid;
774
+ grid-template-columns: auto minmax(0, 1fr);
775
+ overflow: hidden;
776
+ border: 1px solid rgb(255 255 255 / 11%);
777
+ border-radius: 9px;
778
+ background: #11131a;
779
+ }
780
+
781
+ .config-code-editor pre,
782
+ .config-code-editor textarea {
783
+ min-height: 100%;
784
+ margin: 0;
785
+ padding: 12px;
786
+ border: 0;
787
+ outline: 0;
788
+ font:
789
+ 11px/1.62 ui-monospace,
790
+ SFMono-Regular,
791
+ Menlo,
792
+ Consolas,
793
+ monospace;
794
+ tab-size: 2;
795
+ }
796
+
797
+ .config-code-editor pre {
798
+ width: 48px;
799
+ overflow: hidden;
800
+ border-right: 1px solid rgb(255 255 255 / 7%);
801
+ color: rgb(238 241 247 / 25%);
802
+ background: rgb(255 255 255 / 2%);
803
+ text-align: right;
804
+ user-select: none;
805
+ }
806
+
807
+ .config-code-editor textarea {
808
+ width: 100%;
809
+ resize: none;
810
+ color: #dce4f5;
811
+ background: transparent;
812
+ white-space: pre;
813
+ }
814
+
815
+ .config-code-editor:focus-within {
816
+ border-color: #7698ff;
817
+ box-shadow: 0 0 0 1px rgb(118 152 255 / 20%);
818
+ }
819
+
820
+ .config-editor-help {
821
+ margin-top: 0;
822
+ }
823
+
824
+ .config-inspector {
825
+ min-height: 0;
826
+ padding: 14px;
827
+ overflow: auto;
828
+ border-left: 1px solid rgb(255 255 255 / 9%);
829
+ background: rgb(7 9 13 / 17%);
830
+ }
831
+
832
+ .config-inspector section + section {
833
+ margin-top: 18px;
834
+ }
835
+
836
+ .config-inspector h2 {
837
+ font-size: 12px;
838
+ }
839
+
840
+ .config-diagnostics {
841
+ display: flex;
842
+ flex-direction: column;
843
+ gap: 5px;
844
+ margin-top: 9px;
845
+ }
846
+
847
+ .config-diagnostics button {
848
+ min-width: 0;
849
+ display: grid;
850
+ grid-template-columns: auto minmax(0, 1fr);
851
+ gap: 2px 7px;
852
+ padding: 7px;
853
+ border-color: rgb(255 255 255 / 7%);
854
+ background: rgb(255 255 255 / 2%);
855
+ text-align: left;
856
+ }
857
+
858
+ .config-diagnostics button:disabled {
859
+ cursor: default;
860
+ opacity: 0.72;
861
+ }
862
+
863
+ .config-diagnostics strong {
864
+ color: #9db3f7;
865
+ font-size: 9px;
866
+ text-transform: uppercase;
867
+ }
868
+
869
+ .config-diagnostics .is-error strong {
870
+ color: #ff958a;
871
+ }
872
+
873
+ .config-diagnostics .is-warning strong {
874
+ color: #f0c875;
875
+ }
876
+
877
+ .config-diagnostics span {
878
+ font-size: 10px;
879
+ line-height: 1.35;
880
+ }
881
+
882
+ .config-diagnostics small {
883
+ grid-column: 2;
884
+ overflow: hidden;
885
+ color: rgb(238 241 247 / 38%);
886
+ font-size: 9px;
887
+ text-overflow: ellipsis;
888
+ }
889
+
890
+ .config-empty-state {
891
+ color: rgb(238 241 247 / 40%);
892
+ font-size: 10px;
893
+ }
894
+
895
+ .config-effective {
896
+ display: grid;
897
+ grid-template-columns: 1fr 1fr;
898
+ gap: 6px;
899
+ margin: 9px 0 0;
900
+ }
901
+
902
+ .config-effective div {
903
+ padding: 7px;
904
+ border-radius: 6px;
905
+ background: rgb(255 255 255 / 3%);
906
+ }
907
+
908
+ .config-effective dt {
909
+ color: rgb(238 241 247 / 43%);
910
+ font-size: 9px;
911
+ }
912
+
913
+ .config-effective dd {
914
+ margin: 2px 0 0;
915
+ font-size: 11px;
916
+ }
917
+
918
+ .config-sources {
919
+ margin-top: 10px;
920
+ color: rgb(238 241 247 / 55%);
921
+ font-size: 10px;
922
+ }
923
+
924
+ .config-sources summary {
925
+ cursor: pointer;
926
+ }
927
+
928
+ .config-sources ul {
929
+ display: flex;
930
+ flex-direction: column;
931
+ gap: 4px;
932
+ margin: 8px 0 0;
933
+ padding: 0;
934
+ list-style: none;
935
+ }
936
+
937
+ .config-sources li {
938
+ display: flex;
939
+ flex-direction: column;
940
+ }
941
+
942
+ .config-sources li span {
943
+ color: rgb(118 152 255 / 78%);
944
+ font-size: 8px;
945
+ text-transform: uppercase;
946
+ }
947
+
948
+ .config-sources code {
949
+ overflow: hidden;
950
+ text-overflow: ellipsis;
951
+ white-space: nowrap;
952
+ }
953
+
954
+ .friendly-config-editor {
955
+ display: flex;
956
+ flex-direction: column;
957
+ gap: 12px;
958
+ }
959
+
960
+ .friendly-heading {
961
+ display: flex;
962
+ gap: 14px;
963
+ align-items: flex-start;
964
+ justify-content: space-between;
965
+ }
966
+
967
+ .friendly-heading h2 {
968
+ font-size: 14px;
969
+ }
970
+
971
+ .friendly-shadow-warning {
972
+ padding: 9px 11px;
973
+ border: 1px solid rgb(240 200 117 / 28%);
974
+ border-radius: 8px;
975
+ color: #f0d18f;
976
+ background: rgb(172 104 43 / 14%);
977
+ font-size: 10px;
978
+ line-height: 1.45;
979
+ }
980
+
981
+ .friendly-config-editor fieldset {
982
+ display: flex;
983
+ flex-direction: column;
984
+ gap: 11px;
985
+ margin: 0;
986
+ padding: 13px;
987
+ border: 1px solid rgb(255 255 255 / 9%);
988
+ border-radius: 9px;
989
+ background: rgb(255 255 255 / 2%);
990
+ }
991
+
992
+ .friendly-config-editor legend {
993
+ padding: 0 6px;
994
+ font-size: 12px;
995
+ font-weight: 650;
996
+ }
997
+
998
+ .friendly-config-editor legend span {
999
+ margin-left: 5px;
1000
+ color: #91a9ef;
1001
+ font-size: 9px;
1002
+ font-weight: 500;
1003
+ text-transform: uppercase;
1004
+ }
1005
+
1006
+ .friendly-color-grid {
1007
+ display: grid;
1008
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1009
+ gap: 7px;
1010
+ }
1011
+
1012
+ .friendly-color {
1013
+ display: flex;
1014
+ gap: 8px;
1015
+ align-items: center;
1016
+ min-width: 0;
1017
+ padding: 7px;
1018
+ border-radius: 7px;
1019
+ background: rgb(0 0 0 / 16%);
1020
+ }
1021
+
1022
+ .friendly-color input {
1023
+ width: 34px;
1024
+ height: 30px;
1025
+ padding: 1px;
1026
+ border: 1px solid rgb(255 255 255 / 12%);
1027
+ border-radius: 6px;
1028
+ background: transparent;
1029
+ cursor: pointer;
1030
+ }
1031
+
1032
+ .friendly-color span {
1033
+ min-width: 0;
1034
+ display: flex;
1035
+ flex-direction: column;
1036
+ gap: 1px;
1037
+ }
1038
+
1039
+ .friendly-color strong {
1040
+ overflow: hidden;
1041
+ font-size: 10px;
1042
+ text-overflow: ellipsis;
1043
+ white-space: nowrap;
1044
+ }
1045
+
1046
+ .friendly-color code {
1047
+ color: rgb(238 241 247 / 45%);
1048
+ font-size: 9px;
1049
+ }
1050
+
1051
+ .friendly-field-grid {
1052
+ display: grid;
1053
+ grid-template-columns: repeat(5, minmax(0, 1fr));
1054
+ gap: 7px;
1055
+ }
1056
+
1057
+ .friendly-field-grid label,
1058
+ .friendly-number-wide,
1059
+ .friendly-textarea-field {
1060
+ display: flex;
1061
+ flex-direction: column;
1062
+ gap: 5px;
1063
+ font-size: 10px;
1064
+ }
1065
+
1066
+ .friendly-field-grid input,
1067
+ .friendly-number-wide input,
1068
+ .friendly-textarea-field textarea {
1069
+ width: 100%;
1070
+ padding: 7px 8px;
1071
+ border: 1px solid rgb(255 255 255 / 10%);
1072
+ border-radius: 6px;
1073
+ outline: 0;
1074
+ color: inherit;
1075
+ background: rgb(0 0 0 / 18%);
1076
+ font:
1077
+ 11px/1.4 ui-monospace,
1078
+ SFMono-Regular,
1079
+ Menlo,
1080
+ monospace;
1081
+ }
1082
+
1083
+ .friendly-field-grid input:focus,
1084
+ .friendly-number-wide input:focus,
1085
+ .friendly-textarea-field textarea:focus {
1086
+ border-color: #7698ff;
1087
+ }
1088
+
1089
+ .friendly-textarea-field small,
1090
+ .friendly-number-wide small {
1091
+ color: rgb(238 241 247 / 42%);
1092
+ font-size: 9px;
1093
+ }
1094
+
1095
+ .config-message {
1096
+ padding: 8px 18px;
1097
+ color: #a9eacb;
1098
+ background: rgb(43 137 94 / 16%);
1099
+ font-size: 11px;
1100
+ }
1101
+
1102
+ .advanced-config > footer {
1103
+ min-height: 62px;
1104
+ }
1105
+
1106
+ .advanced-config > footer button:disabled,
1107
+ .settings-page > footer button:disabled,
1108
+ .advanced-config button:disabled {
1109
+ cursor: default;
1110
+ opacity: 0.42;
1111
+ }
1112
+
1113
+ .config-footer-status {
1114
+ margin-right: auto;
1115
+ color: rgb(238 241 247 / 48%);
1116
+ font-size: 10px;
1117
+ }
1118
+
1119
+ .config-discard-backdrop {
1120
+ position: absolute;
1121
+ z-index: 3;
1122
+ inset: 0;
1123
+ display: grid;
1124
+ place-items: center;
1125
+ padding: 20px;
1126
+ background: rgb(5 7 12 / 72%);
1127
+ backdrop-filter: blur(7px);
1128
+ }
1129
+
1130
+ .config-discard-backdrop > section {
1131
+ width: min(390px, 100%);
1132
+ padding: 18px;
1133
+ border: 1px solid rgb(255 255 255 / 13%);
1134
+ border-radius: 12px;
1135
+ background: #242832;
1136
+ box-shadow: 0 20px 60px rgb(0 0 0 / 50%);
1137
+ }
1138
+
1139
+ .config-discard-backdrop h2 {
1140
+ font-size: 15px;
1141
+ }
1142
+
1143
+ .config-discard-backdrop p {
1144
+ margin-top: 7px;
1145
+ color: rgb(238 241 247 / 58%);
1146
+ font-size: 11px;
1147
+ line-height: 1.5;
1148
+ }
1149
+
1150
+ .config-discard-backdrop footer {
1151
+ display: flex;
1152
+ gap: 7px;
1153
+ justify-content: flex-end;
1154
+ margin-top: 16px;
1155
+ }
1156
+
1157
+ .config-discard-backdrop button {
1158
+ padding: 7px 10px;
1159
+ border: 1px solid rgb(255 255 255 / 12%);
1160
+ border-radius: 7px;
1161
+ color: inherit;
1162
+ background: rgb(255 255 255 / 6%);
1163
+ cursor: pointer;
1164
+ }
1165
+
1166
+ .config-discard-backdrop .config-discard-action {
1167
+ border-color: rgb(255 129 115 / 52%);
1168
+ background: rgb(160 42 32 / 34%);
1169
+ }
1170
+
1171
+ @media (max-width: 800px) {
1172
+ .appearance-settings {
1173
+ height: 100%;
1174
+ border-radius: 10px;
1175
+ }
1176
+
1177
+ .settings-layout {
1178
+ grid-template-columns: 1fr;
1179
+ grid-template-rows: auto minmax(0, 1fr);
1180
+ }
1181
+
1182
+ .settings-sidebar {
1183
+ flex-direction: row;
1184
+ padding: 7px 10px;
1185
+ border-right: 0;
1186
+ border-bottom: 1px solid rgb(255 255 255 / 9%);
1187
+ }
1188
+
1189
+ .settings-sidebar button {
1190
+ min-width: 130px;
1191
+ }
1192
+
1193
+ .appearance-settings-grid {
1194
+ grid-template-columns: 1fr;
1195
+ overflow: auto;
1196
+ }
1197
+
1198
+ .appearance-panel {
1199
+ min-height: 360px;
1200
+ }
1201
+
1202
+ .appearance-panel + .appearance-panel {
1203
+ border-top: 1px solid rgb(255 255 255 / 9%);
1204
+ border-left: 0;
1205
+ }
1206
+
1207
+ .advanced-config-body {
1208
+ grid-template-columns: 1fr;
1209
+ overflow: auto;
1210
+ }
1211
+
1212
+ .raw-config-editor,
1213
+ .friendly-config-editor {
1214
+ min-height: 520px;
1215
+ }
1216
+
1217
+ .config-inspector {
1218
+ min-height: 260px;
1219
+ border-top: 1px solid rgb(255 255 255 / 9%);
1220
+ border-left: 0;
1221
+ }
1222
+
1223
+ .friendly-color-grid {
1224
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1225
+ }
1226
+
1227
+ .friendly-field-grid {
1228
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1229
+ }
113
1230
  }
114
1231
 
115
1232
  .ghostty-pane[data-pane-accent]::before {