@commentray/render 0.3.3 → 0.3.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.
@@ -0,0 +1,1955 @@
1
+ :root {
2
+ --cr-control-h: 32px;
3
+ --cr-control-radius: 8px;
4
+ --cr-icon-inner: 18px;
5
+ --cr-label-caps-fs: 10px;
6
+ --cr-label-caps-track: 0.06em;
7
+ --cr-ui-fs: 12px;
8
+ /** Matches code/doc pane horizontal padding so pair-context rows line up with pane content (e.g. line nums). */
9
+ --cr-pane-inline-pad: 12px;
10
+ }
11
+ :root:is(:not([data-commentray-theme]), [data-commentray-theme="system"]) {
12
+ color-scheme: light dark;
13
+ }
14
+ :root[data-commentray-theme="light"] {
15
+ color-scheme: light;
16
+ }
17
+ :root[data-commentray-theme="dark"] {
18
+ color-scheme: dark;
19
+ }
20
+ * {
21
+ box-sizing: border-box;
22
+ }
23
+ html {
24
+ background: Canvas;
25
+ color: CanvasText;
26
+ }
27
+ body {
28
+ margin: 0;
29
+ font-family:
30
+ system-ui,
31
+ -apple-system,
32
+ Segoe UI,
33
+ Roboto,
34
+ sans-serif;
35
+ background: Canvas;
36
+ color: CanvasText;
37
+ }
38
+ .skip-link {
39
+ position: absolute;
40
+ left: -9999px;
41
+ top: 0;
42
+ z-index: 10000;
43
+ padding: 8px 16px;
44
+ margin: 0;
45
+ font: inherit;
46
+ font-size: 14px;
47
+ text-decoration: none;
48
+ border-radius: 8px;
49
+ border: 1px solid color-mix(in oklab, CanvasText 25%, Canvas);
50
+ background: Canvas;
51
+ color: CanvasText;
52
+ }
53
+ .skip-link:focus {
54
+ left: 12px;
55
+ top: 8px;
56
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
57
+ outline-offset: 2px;
58
+ }
59
+ .skip-link:focus:not(:focus-visible) {
60
+ left: -9999px;
61
+ top: 0;
62
+ outline: none;
63
+ }
64
+ .skip-link:focus-visible {
65
+ left: 12px;
66
+ top: 8px;
67
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
68
+ outline-offset: 2px;
69
+ }
70
+ .sr-only {
71
+ position: absolute;
72
+ width: 1px;
73
+ height: 1px;
74
+ padding: 0;
75
+ margin: -1px;
76
+ overflow: hidden;
77
+ clip: rect(0, 0, 0, 0);
78
+ white-space: nowrap;
79
+ border: 0;
80
+ }
81
+ .app {
82
+ display: flex;
83
+ flex-direction: column;
84
+ align-items: stretch;
85
+ height: 100vh;
86
+ width: 100%;
87
+ overflow: hidden;
88
+ }
89
+ .app__chrome {
90
+ flex: 0 0 auto;
91
+ display: flex;
92
+ flex-direction: column;
93
+ gap: 8px;
94
+ padding: 8px 12px 10px;
95
+ border-bottom: 1px solid color-mix(in oklab, CanvasText 15%, Canvas);
96
+ background: color-mix(in oklab, CanvasText 4%, Canvas);
97
+ max-height: min(40vh, 420px);
98
+ min-height: 0;
99
+ overflow: auto;
100
+ }
101
+ .chrome__search-row {
102
+ display: flex;
103
+ flex-direction: row;
104
+ align-items: center;
105
+ gap: 10px;
106
+ flex-wrap: nowrap;
107
+ }
108
+ .chrome__search-row input[type="search"] {
109
+ flex: 1 1 auto;
110
+ min-width: 140px;
111
+ min-height: var(--cr-control-h);
112
+ padding: 0 12px;
113
+ font: inherit;
114
+ font-size: var(--cr-ui-fs);
115
+ line-height: 1.25;
116
+ border-radius: var(--cr-control-radius);
117
+ border: 1px solid color-mix(in oklab, CanvasText 25%, Canvas);
118
+ background: Canvas;
119
+ color: CanvasText;
120
+ }
121
+ .chrome__search-row #search-clear {
122
+ flex: 0 0 auto;
123
+ display: inline-flex;
124
+ align-items: center;
125
+ justify-content: center;
126
+ min-height: var(--cr-control-h);
127
+ padding: 0 12px;
128
+ font: inherit;
129
+ font-size: var(--cr-ui-fs);
130
+ font-weight: 500;
131
+ border-radius: var(--cr-control-radius);
132
+ cursor: pointer;
133
+ border: 1px solid color-mix(in oklab, CanvasText 25%, Canvas);
134
+ background: color-mix(in oklab, CanvasText 6%, Canvas);
135
+ color: CanvasText;
136
+ white-space: nowrap;
137
+ }
138
+ .chrome__search-row #search-clear:hover {
139
+ background: color-mix(in oklab, CanvasText 11%, Canvas);
140
+ }
141
+ .chrome__search-row input[type="search"]:focus-visible,
142
+ .chrome__search-row #search-clear:focus-visible {
143
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
144
+ outline-offset: 2px;
145
+ }
146
+ .chrome__search-label {
147
+ flex: 0 0 auto;
148
+ display: inline-flex;
149
+ flex-direction: row;
150
+ align-items: center;
151
+ gap: 6px;
152
+ white-space: nowrap;
153
+ cursor: default;
154
+ user-select: none;
155
+ }
156
+ /* Wide viewports: same legible caps word as historic Pages shell (icon hidden). */
157
+ .chrome__search-label__glyph {
158
+ display: none;
159
+ }
160
+ .nav-rail__search-label {
161
+ font-size: var(--cr-label-caps-fs);
162
+ font-weight: 700;
163
+ letter-spacing: var(--cr-label-caps-track);
164
+ text-transform: uppercase;
165
+ opacity: 0.78;
166
+ }
167
+ .nav-rail__doc-hub {
168
+ position: relative;
169
+ flex: 0 0 auto;
170
+ align-self: center;
171
+ display: block;
172
+ border: 1px solid color-mix(in oklab, CanvasText 16%, Canvas);
173
+ border-radius: var(--cr-control-radius);
174
+ background: Canvas;
175
+ overflow: visible;
176
+ }
177
+ .nav-rail__doc-hub-summary {
178
+ cursor: pointer;
179
+ font-size: var(--cr-ui-fs);
180
+ font-weight: 500;
181
+ color: color-mix(in oklab, CanvasText 88%, Canvas);
182
+ padding: 0 12px;
183
+ min-height: var(--cr-control-h);
184
+ display: inline-flex;
185
+ flex-direction: row;
186
+ align-items: center;
187
+ justify-content: flex-start;
188
+ gap: 8px;
189
+ box-sizing: border-box;
190
+ list-style: none;
191
+ user-select: none;
192
+ line-height: 1.25;
193
+ }
194
+ .nav-rail__doc-hub-summary:hover {
195
+ background: color-mix(in oklab, CanvasText 6%, Canvas);
196
+ }
197
+ .nav-rail__doc-hub-summary__caption {
198
+ white-space: nowrap;
199
+ }
200
+ .nav-rail__doc-hub-summary__glyph {
201
+ display: none;
202
+ }
203
+ .nav-rail__doc-hub-summary svg {
204
+ display: block;
205
+ flex: 0 0 auto;
206
+ }
207
+ .nav-rail__doc-hub-summary::-webkit-details-marker {
208
+ display: none;
209
+ }
210
+ .nav-rail__doc-hub-inner {
211
+ position: absolute;
212
+ left: 0;
213
+ top: calc(100% + 4px);
214
+ z-index: 60;
215
+ min-width: min(280px, 78vw);
216
+ max-width: min(440px, 94vw);
217
+ max-height: min(52vh, 400px);
218
+ display: flex;
219
+ flex-direction: column;
220
+ gap: 8px;
221
+ overflow: hidden;
222
+ padding: 8px 10px;
223
+ font-size: 12px;
224
+ border: 1px solid color-mix(in oklab, CanvasText 16%, Canvas);
225
+ border-radius: 8px;
226
+ background: Canvas;
227
+ box-shadow: 0 8px 28px color-mix(in oklab, CanvasText 12%, transparent);
228
+ }
229
+ .nav-rail__doc-hub-filter-row {
230
+ flex: 0 0 auto;
231
+ }
232
+ .nav-rail__doc-hub-filter-label {
233
+ display: block;
234
+ font-size: var(--cr-label-caps-fs);
235
+ font-weight: 700;
236
+ letter-spacing: var(--cr-label-caps-track);
237
+ text-transform: uppercase;
238
+ opacity: 0.78;
239
+ margin-bottom: 4px;
240
+ }
241
+ .nav-rail__doc-hub-filter {
242
+ width: 100%;
243
+ box-sizing: border-box;
244
+ font: inherit;
245
+ font-size: 12px;
246
+ padding: 4px 8px;
247
+ border-radius: 6px;
248
+ border: 1px solid color-mix(in oklab, CanvasText 22%, Canvas);
249
+ background: color-mix(in oklab, CanvasText 4%, Canvas);
250
+ color: CanvasText;
251
+ }
252
+ .nav-rail__doc-hub-filter:focus {
253
+ outline: 2px solid color-mix(in oklab, CanvasText 40%, Canvas);
254
+ outline-offset: 1px;
255
+ }
256
+ .nav-rail__doc-hub-hint {
257
+ margin: 0 0 8px;
258
+ opacity: 0.78;
259
+ line-height: 1.4;
260
+ font-size: 12px;
261
+ }
262
+ .app__main {
263
+ flex: 1 1 auto;
264
+ min-width: 0;
265
+ min-height: 0;
266
+ display: flex;
267
+ flex-direction: column;
268
+ }
269
+ .app__footer {
270
+ flex: 0 0 auto;
271
+ padding: 6px 12px 10px;
272
+ border-top: 1px solid color-mix(in oklab, CanvasText 12%, Canvas);
273
+ background: color-mix(in oklab, CanvasText 3%, Canvas);
274
+ font-size: 11px;
275
+ line-height: 1.4;
276
+ color: color-mix(in oklab, CanvasText 72%, Canvas);
277
+ }
278
+ .app__footer-line {
279
+ margin: 0;
280
+ }
281
+ .app__footer time {
282
+ font-variant-numeric: tabular-nums;
283
+ }
284
+ .toolbar {
285
+ position: relative;
286
+ display: flex;
287
+ flex-wrap: wrap;
288
+ align-items: center;
289
+ gap: 10px 14px;
290
+ padding: 8px 12px;
291
+ border-bottom: 1px solid color-mix(in oklab, CanvasText 18%, Canvas);
292
+ background: color-mix(in oklab, CanvasText 4%, Canvas);
293
+ font-size: var(--cr-ui-fs);
294
+ flex: 0 0 auto;
295
+ min-width: 0;
296
+ }
297
+ .toolbar__primary {
298
+ display: flex;
299
+ flex-direction: row;
300
+ flex-wrap: wrap;
301
+ align-items: center;
302
+ gap: 10px 14px;
303
+ flex: 1 1 auto;
304
+ min-width: 0;
305
+ }
306
+ .toolbar__primary-main {
307
+ display: flex;
308
+ flex-direction: row;
309
+ flex-wrap: wrap;
310
+ align-items: center;
311
+ gap: 10px 14px;
312
+ flex: 0 1 auto;
313
+ min-width: 0;
314
+ }
315
+ .toolbar__primary-trail {
316
+ display: flex;
317
+ flex-direction: row;
318
+ flex-wrap: wrap;
319
+ align-items: center;
320
+ justify-content: flex-end;
321
+ gap: 6px;
322
+ margin-left: auto;
323
+ min-width: 0;
324
+ }
325
+ .toolbar__end {
326
+ display: flex;
327
+ flex-wrap: wrap;
328
+ align-items: center;
329
+ justify-content: flex-end;
330
+ gap: 10px 14px;
331
+ min-width: 0;
332
+ }
333
+ .toolbar-github {
334
+ display: inline-flex;
335
+ align-items: center;
336
+ justify-content: center;
337
+ width: var(--cr-control-h);
338
+ height: var(--cr-control-h);
339
+ border-radius: var(--cr-control-radius);
340
+ border: 1px solid color-mix(in oklab, CanvasText 22%, Canvas);
341
+ background: color-mix(in oklab, CanvasText 6%, Canvas);
342
+ color: CanvasText;
343
+ }
344
+ .toolbar-github svg {
345
+ width: var(--cr-icon-inner);
346
+ height: var(--cr-icon-inner);
347
+ display: block;
348
+ }
349
+ .toolbar-github:hover {
350
+ background: color-mix(in oklab, CanvasText 11%, Canvas);
351
+ }
352
+ .toolbar-github:focus-visible {
353
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
354
+ outline-offset: 2px;
355
+ }
356
+ .app__footer-attribution {
357
+ margin: 0;
358
+ color: color-mix(in oklab, CanvasText 88%, Canvas);
359
+ }
360
+ .app__footer-attribution a {
361
+ color: inherit;
362
+ font-weight: 600;
363
+ text-decoration: underline;
364
+ text-underline-offset: 2px;
365
+ }
366
+ .app__footer-attribution__version {
367
+ font-weight: 600;
368
+ }
369
+ .app__footer-attribution__sha {
370
+ font-family:
371
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
372
+ monospace;
373
+ font-size: 0.95em;
374
+ font-weight: 500;
375
+ padding: 0 2px;
376
+ word-break: break-all;
377
+ }
378
+ .toolbar label {
379
+ display: inline-flex;
380
+ align-items: center;
381
+ gap: 6px;
382
+ cursor: pointer;
383
+ user-select: none;
384
+ }
385
+ .toolbar label[hidden] {
386
+ display: none !important;
387
+ }
388
+ .toolbar-wrap-lines {
389
+ position: relative;
390
+ margin: 0;
391
+ min-height: var(--cr-control-h);
392
+ padding: 0 12px 0 10px;
393
+ border-radius: var(--cr-control-radius);
394
+ border: 1px solid color-mix(in oklab, CanvasText 16%, Canvas);
395
+ background: Canvas;
396
+ display: inline-flex;
397
+ flex-direction: row;
398
+ align-items: center;
399
+ justify-content: flex-start;
400
+ gap: 8px;
401
+ font-size: var(--cr-ui-fs);
402
+ font-weight: 500;
403
+ color: color-mix(in oklab, CanvasText 88%, Canvas);
404
+ cursor: pointer;
405
+ }
406
+ .toolbar-wrap-lines:hover {
407
+ background: color-mix(in oklab, CanvasText 6%, Canvas);
408
+ }
409
+ .toolbar-wrap-lines__input {
410
+ position: absolute;
411
+ width: 1px;
412
+ height: 1px;
413
+ padding: 0;
414
+ margin: -1px;
415
+ overflow: hidden;
416
+ clip: rect(0, 0, 0, 0);
417
+ white-space: nowrap;
418
+ border: 0;
419
+ opacity: 0;
420
+ }
421
+ /** Visible tick box: the real input is visually hidden for a11y; unchecked looked like an empty box with no mark when on. */
422
+ .toolbar-wrap-lines__box {
423
+ flex: 0 0 auto;
424
+ width: 16px;
425
+ height: 16px;
426
+ box-sizing: border-box;
427
+ border: 1.5px solid color-mix(in oklab, CanvasText 38%, Canvas);
428
+ border-radius: 3px;
429
+ background: Canvas;
430
+ display: inline-flex;
431
+ align-items: center;
432
+ justify-content: center;
433
+ color: CanvasText;
434
+ }
435
+ .toolbar-wrap-lines:has(.toolbar-wrap-lines__input:checked) .toolbar-wrap-lines__box {
436
+ border-color: color-mix(in oklab, CanvasText 52%, Canvas);
437
+ background: color-mix(in oklab, CanvasText 6%, Canvas);
438
+ }
439
+ .toolbar-wrap-lines__box::after {
440
+ content: "";
441
+ display: none;
442
+ width: 4px;
443
+ height: 9px;
444
+ margin-top: -2px;
445
+ border: solid currentColor;
446
+ border-width: 0 2px 2px 0;
447
+ transform: rotate(45deg);
448
+ }
449
+ .toolbar-wrap-lines:has(.toolbar-wrap-lines__input:checked) .toolbar-wrap-lines__box::after {
450
+ display: block;
451
+ }
452
+ .toolbar-wrap-lines__face {
453
+ display: none;
454
+ align-items: center;
455
+ justify-content: center;
456
+ min-height: var(--cr-control-h);
457
+ min-width: var(--cr-control-h);
458
+ color: color-mix(in oklab, CanvasText 82%, Canvas);
459
+ }
460
+ .toolbar-wrap-lines__caption {
461
+ white-space: nowrap;
462
+ }
463
+ .toolbar-wrap-lines:has(.toolbar-wrap-lines__input:checked) {
464
+ color: CanvasText;
465
+ background: color-mix(in oklab, CanvasText 10%, Canvas);
466
+ }
467
+ .toolbar-wrap-lines:has(.toolbar-wrap-lines__input:checked) .toolbar-wrap-lines__caption {
468
+ color: CanvasText;
469
+ }
470
+ .toolbar-wrap-lines:has(.toolbar-wrap-lines__input:checked) .toolbar-wrap-lines__face {
471
+ color: CanvasText;
472
+ background: color-mix(in oklab, CanvasText 10%, Canvas);
473
+ border-radius: calc(var(--cr-control-radius) - 1px);
474
+ }
475
+ .toolbar-wrap-lines:has(.toolbar-wrap-lines__input:focus-visible) {
476
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
477
+ outline-offset: 2px;
478
+ }
479
+ .toolbar-icon-btn {
480
+ display: none;
481
+ align-items: center;
482
+ justify-content: center;
483
+ width: var(--cr-control-h);
484
+ height: var(--cr-control-h);
485
+ padding: 0;
486
+ margin: 0;
487
+ border-radius: var(--cr-control-radius);
488
+ border: 1px solid color-mix(in oklab, CanvasText 22%, Canvas);
489
+ background: color-mix(in oklab, CanvasText 6%, Canvas);
490
+ color: CanvasText;
491
+ cursor: pointer;
492
+ flex: 0 0 auto;
493
+ }
494
+ .toolbar-icon-btn svg {
495
+ display: block;
496
+ flex: 0 0 auto;
497
+ }
498
+ .toolbar-icon-btn:hover {
499
+ background: color-mix(in oklab, CanvasText 14%, Canvas);
500
+ border-color: color-mix(in oklab, CanvasText 34%, Canvas);
501
+ }
502
+ .toolbar-icon-btn:focus-visible {
503
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
504
+ outline-offset: 2px;
505
+ }
506
+ .toolbar-source-render-toggle {
507
+ position: relative;
508
+ margin: 0;
509
+ min-height: var(--cr-control-h);
510
+ padding: 0 12px 0 10px;
511
+ border-radius: var(--cr-control-radius);
512
+ border: 1px solid color-mix(in oklab, CanvasText 16%, Canvas);
513
+ background: Canvas;
514
+ display: inline-flex;
515
+ flex-direction: row;
516
+ align-items: center;
517
+ justify-content: flex-start;
518
+ gap: 8px;
519
+ font-size: var(--cr-ui-fs);
520
+ font-weight: 500;
521
+ color: color-mix(in oklab, CanvasText 88%, Canvas);
522
+ cursor: pointer;
523
+ }
524
+ .toolbar-source-render-toggle:hover {
525
+ background: color-mix(in oklab, CanvasText 6%, Canvas);
526
+ }
527
+ .toolbar-source-render-toggle__box {
528
+ flex: 0 0 auto;
529
+ width: 16px;
530
+ height: 16px;
531
+ box-sizing: border-box;
532
+ border: 1.5px solid color-mix(in oklab, CanvasText 38%, Canvas);
533
+ border-radius: 3px;
534
+ background: Canvas;
535
+ display: inline-flex;
536
+ align-items: center;
537
+ justify-content: center;
538
+ color: CanvasText;
539
+ }
540
+ .toolbar-source-render-toggle[aria-pressed="true"] .toolbar-source-render-toggle__box {
541
+ border-color: color-mix(in oklab, CanvasText 52%, Canvas);
542
+ background: color-mix(in oklab, CanvasText 6%, Canvas);
543
+ }
544
+ .toolbar-source-render-toggle__box::after {
545
+ content: "";
546
+ display: none;
547
+ width: 4px;
548
+ height: 9px;
549
+ margin-top: -2px;
550
+ border: solid currentColor;
551
+ border-width: 0 2px 2px 0;
552
+ transform: rotate(45deg);
553
+ }
554
+ .toolbar-source-render-toggle[aria-pressed="true"] .toolbar-source-render-toggle__box::after {
555
+ display: block;
556
+ }
557
+ .toolbar-source-render-toggle__face {
558
+ display: none;
559
+ align-items: center;
560
+ justify-content: center;
561
+ min-height: var(--cr-control-h);
562
+ min-width: var(--cr-control-h);
563
+ color: color-mix(in oklab, CanvasText 82%, Canvas);
564
+ }
565
+ .toolbar-source-render-toggle__caption {
566
+ white-space: nowrap;
567
+ }
568
+ .toolbar-source-render-toggle[aria-pressed="true"] {
569
+ color: CanvasText;
570
+ background: color-mix(in oklab, CanvasText 10%, Canvas);
571
+ }
572
+ .toolbar-source-render-toggle:focus-visible {
573
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
574
+ outline-offset: 2px;
575
+ }
576
+ .toolbar-icon-btn--source-markdown {
577
+ display: inline-flex;
578
+ }
579
+ /* __COMMENTRAY_INTRO_CSS__ */
580
+ .toolbar label input:focus-visible {
581
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
582
+ outline-offset: 2px;
583
+ }
584
+ .toolbar .toolbar-theme {
585
+ position: relative;
586
+ display: inline-flex;
587
+ align-items: center;
588
+ margin: 0;
589
+ padding: 0;
590
+ min-width: 0;
591
+ border: 0;
592
+ }
593
+ .toolbar-theme__trigger {
594
+ display: inline-flex;
595
+ align-items: center;
596
+ justify-content: center;
597
+ width: var(--cr-control-h);
598
+ height: var(--cr-control-h);
599
+ padding: 0;
600
+ margin: 0;
601
+ border-radius: var(--cr-control-radius);
602
+ border: 1px solid color-mix(in oklab, CanvasText 22%, Canvas);
603
+ background: color-mix(in oklab, CanvasText 6%, Canvas);
604
+ color: CanvasText;
605
+ cursor: pointer;
606
+ }
607
+ .toolbar-theme__trigger:hover {
608
+ background: color-mix(in oklab, CanvasText 14%, Canvas);
609
+ border-color: color-mix(in oklab, CanvasText 34%, Canvas);
610
+ }
611
+ .toolbar-theme__trigger:active {
612
+ background: color-mix(in oklab, CanvasText 18%, Canvas);
613
+ }
614
+ .toolbar-theme__trigger:focus-visible {
615
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
616
+ outline-offset: 2px;
617
+ }
618
+ .toolbar-theme__trigger svg {
619
+ width: var(--cr-icon-inner);
620
+ height: var(--cr-icon-inner);
621
+ display: block;
622
+ flex: 0 0 auto;
623
+ }
624
+ .toolbar-share-link-btn[data-copied="true"] {
625
+ background: color-mix(in oklab, #2ea043 24%, Canvas);
626
+ border-color: color-mix(in oklab, #2ea043 48%, CanvasText);
627
+ }
628
+ .toolbar-theme__trigger .toolbar-theme__icon {
629
+ display: none;
630
+ flex: 0 0 auto;
631
+ }
632
+ .toolbar-theme__trigger[data-commentray-trigger-mode="system"] .toolbar-theme__icon--system,
633
+ .toolbar-theme__trigger[data-commentray-trigger-mode="light"] .toolbar-theme__icon--light,
634
+ .toolbar-theme__trigger[data-commentray-trigger-mode="dark"] .toolbar-theme__icon--dark {
635
+ display: block;
636
+ }
637
+ .toolbar-theme__menu {
638
+ position: absolute;
639
+ left: 0;
640
+ top: calc(100% + 4px);
641
+ z-index: 80;
642
+ min-width: 148px;
643
+ padding: 4px;
644
+ margin: 0;
645
+ list-style: none;
646
+ border-radius: 8px;
647
+ border: 1px solid color-mix(in oklab, CanvasText 16%, Canvas);
648
+ background: Canvas;
649
+ color: CanvasText;
650
+ box-shadow: 0 8px 28px color-mix(in oklab, CanvasText 12%, transparent);
651
+ }
652
+ .toolbar-theme__menu[hidden] {
653
+ display: none !important;
654
+ }
655
+ .toolbar-theme__menuitem {
656
+ display: block;
657
+ width: 100%;
658
+ margin: 0;
659
+ padding: 8px 10px;
660
+ border: 0;
661
+ border-radius: 6px;
662
+ font: inherit;
663
+ font-size: var(--cr-ui-fs);
664
+ font-weight: 500;
665
+ text-align: left;
666
+ cursor: pointer;
667
+ color: CanvasText;
668
+ background: transparent;
669
+ }
670
+ .toolbar-theme__menuitem:hover {
671
+ background: color-mix(in oklab, CanvasText 8%, Canvas);
672
+ }
673
+ .toolbar-theme__menuitem:focus-visible {
674
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
675
+ outline-offset: 0;
676
+ }
677
+ .toolbar-theme__menuitem[aria-checked="true"] {
678
+ background: color-mix(in oklab, CanvasText 10%, Canvas);
679
+ font-weight: 500;
680
+ }
681
+ .toolbar .file-path {
682
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
683
+ font-size: var(--cr-ui-fs);
684
+ font-weight: 500;
685
+ display: inline-flex;
686
+ align-items: baseline;
687
+ gap: 0;
688
+ margin-right: 4px;
689
+ max-width: 60vw;
690
+ overflow: hidden;
691
+ text-overflow: ellipsis;
692
+ white-space: nowrap;
693
+ }
694
+ .toolbar .file-path__dir {
695
+ color: color-mix(in oklab, CanvasText 55%, Canvas);
696
+ }
697
+ .toolbar .file-path__dir--root {
698
+ letter-spacing: 0;
699
+ }
700
+ .toolbar .file-path__base {
701
+ color: CanvasText;
702
+ font-weight: 500;
703
+ }
704
+ .toolbar .file-path--title {
705
+ font-weight: 500;
706
+ }
707
+ .toolbar-related {
708
+ display: inline-flex;
709
+ flex-wrap: wrap;
710
+ align-items: baseline;
711
+ gap: 6px 10px;
712
+ max-width: min(520px, 90vw);
713
+ font-size: var(--cr-ui-fs);
714
+ line-height: 1.35;
715
+ color: color-mix(in oklab, CanvasText 88%, Canvas);
716
+ }
717
+ .toolbar-related__prefix {
718
+ font-weight: 500;
719
+ opacity: 0.88;
720
+ white-space: nowrap;
721
+ }
722
+ .toolbar-related__links {
723
+ min-width: 0;
724
+ }
725
+ .toolbar-related a {
726
+ color: inherit;
727
+ text-decoration: underline;
728
+ text-underline-offset: 2px;
729
+ font-weight: 500;
730
+ word-break: break-word;
731
+ }
732
+ .toolbar-related__sep {
733
+ opacity: 0.55;
734
+ user-select: none;
735
+ }
736
+ #documented-files-tree {
737
+ flex: 1 1 auto;
738
+ min-height: 0;
739
+ overflow: auto;
740
+ }
741
+ .documented-files-tree ul {
742
+ list-style: none;
743
+ margin: 0;
744
+ padding-left: 12px;
745
+ }
746
+ .documented-files-tree > ul {
747
+ padding-left: 0;
748
+ }
749
+ .documented-files-tree li {
750
+ margin: 2px 0;
751
+ line-height: 1.35;
752
+ }
753
+ .documented-files-tree .tree-dir {
754
+ font-weight: 600;
755
+ margin-top: 4px;
756
+ font-size: 12px;
757
+ }
758
+ .documented-files-tree .tree-file {
759
+ margin: 3px 0;
760
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
761
+ font-size: 11px;
762
+ }
763
+ .documented-files-tree .tree-file-link {
764
+ color: inherit;
765
+ font-weight: 500;
766
+ text-decoration: underline;
767
+ text-underline-offset: 2px;
768
+ word-break: break-word;
769
+ }
770
+ .documented-files-tree .tree-file-link:hover {
771
+ opacity: 0.92;
772
+ }
773
+ .documented-files-tree .tree-file-link.tree-file-link--current {
774
+ font-weight: 600;
775
+ text-decoration-thickness: 2px;
776
+ border-radius: 3px;
777
+ padding: 1px 3px;
778
+ margin: -1px -3px;
779
+ background: color-mix(in oklab, CanvasText 10%, Canvas);
780
+ }
781
+ .documented-files-tree .tree-file-link:focus-visible {
782
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
783
+ outline-offset: 2px;
784
+ border-radius: 3px;
785
+ }
786
+ .toolbar button {
787
+ font: inherit;
788
+ font-size: var(--cr-ui-fs);
789
+ font-weight: 500;
790
+ min-height: var(--cr-control-h);
791
+ padding: 0 12px;
792
+ border-radius: var(--cr-control-radius);
793
+ cursor: pointer;
794
+ border: 1px solid color-mix(in oklab, CanvasText 25%, Canvas);
795
+ background: color-mix(in oklab, CanvasText 6%, Canvas);
796
+ color: CanvasText;
797
+ }
798
+ .search-results {
799
+ flex: 0 1 auto;
800
+ min-height: 0;
801
+ max-height: min(320px, 38vh);
802
+ overflow: auto;
803
+ padding: 8px 8px 10px;
804
+ border-radius: 8px;
805
+ border: 1px solid color-mix(in oklab, CanvasText 12%, Canvas);
806
+ background: Canvas;
807
+ font-size: 13px;
808
+ }
809
+ .search-results[hidden] {
810
+ display: none !important;
811
+ }
812
+ .search-results .hint {
813
+ opacity: 0.75;
814
+ margin-bottom: 8px;
815
+ line-height: 1.45;
816
+ }
817
+ .search-results button.hit {
818
+ display: block;
819
+ width: 100%;
820
+ text-align: left;
821
+ margin: 4px 0;
822
+ padding: 8px 10px;
823
+ border-radius: 6px;
824
+ border: 1px solid color-mix(in oklab, CanvasText 14%, Canvas);
825
+ background: color-mix(in oklab, CanvasText 5%, Canvas);
826
+ color: CanvasText;
827
+ cursor: pointer;
828
+ font: inherit;
829
+ }
830
+ .search-results button.hit:hover {
831
+ background: color-mix(in oklab, CanvasText 10%, Canvas);
832
+ }
833
+ .search-results button.hit:focus-visible {
834
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
835
+ outline-offset: 2px;
836
+ }
837
+ .search-results button.hit .meta {
838
+ opacity: 0.8;
839
+ font-size: 12px;
840
+ }
841
+ .search-results button.hit .src-tag {
842
+ opacity: 0.75;
843
+ font-weight: 500;
844
+ font-size: 11px;
845
+ }
846
+ .search-results button.hit .snippet {
847
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
848
+ font-size: 13px;
849
+ line-height: 1.45;
850
+ white-space: pre-wrap;
851
+ word-break: break-word;
852
+ margin-top: 4px;
853
+ }
854
+ .search-results mark.search-hit {
855
+ padding: 0 2px;
856
+ border-radius: 3px;
857
+ font: inherit;
858
+ background: color-mix(in oklab, #f5a623 70%, Canvas);
859
+ color: CanvasText;
860
+ box-decoration-break: clone;
861
+ -webkit-box-decoration-break: clone;
862
+ }
863
+ @media (prefers-color-scheme: dark) {
864
+ :root:is(:not([data-commentray-theme]), [data-commentray-theme="system"])
865
+ .search-results
866
+ mark.search-hit {
867
+ background: color-mix(in oklab, #c9a227 55%, Canvas);
868
+ }
869
+ }
870
+ :root[data-commentray-theme="dark"] .search-results mark.search-hit {
871
+ background: color-mix(in oklab, #c9a227 55%, Canvas);
872
+ }
873
+ .shell:not(.shell--stretch-rows) {
874
+ display: flex;
875
+ flex-direction: column;
876
+ flex: 1;
877
+ min-height: 0;
878
+ min-width: 0;
879
+ --split-pct: 46%;
880
+ }
881
+ .app__main .shell {
882
+ flex: 1 1 auto;
883
+ }
884
+ .shell__panes {
885
+ display: flex;
886
+ flex-direction: row;
887
+ flex: 1 1 auto;
888
+ min-height: 0;
889
+ min-width: 0;
890
+ }
891
+ .shell__pair-context {
892
+ flex: 0 0 auto;
893
+ display: flex;
894
+ flex-direction: row;
895
+ align-items: stretch;
896
+ padding: 6px 0 8px;
897
+ border-bottom: 1px solid color-mix(in oklab, CanvasText 15%, Canvas);
898
+ background: color-mix(in oklab, CanvasText 3%, Canvas);
899
+ font-size: var(--cr-ui-fs);
900
+ line-height: 1.3;
901
+ }
902
+ .shell__pair-cell {
903
+ display: flex;
904
+ flex-direction: row;
905
+ align-items: center;
906
+ gap: 8px;
907
+ min-width: 0;
908
+ }
909
+ .shell__pair-cell--src {
910
+ flex: 0 0 var(--split-pct);
911
+ padding-left: var(--cr-pane-inline-pad);
912
+ }
913
+ .shell__pair-gutter-spacer {
914
+ flex: 0 0 14px;
915
+ min-width: 14px;
916
+ align-self: stretch;
917
+ }
918
+ .shell__pair-cell--doc {
919
+ flex: 1 1 auto;
920
+ min-width: 0;
921
+ padding-left: var(--cr-pane-inline-pad);
922
+ }
923
+ .shell__pair-path {
924
+ flex: 1 1 auto;
925
+ min-width: 0;
926
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
927
+ font-size: var(--cr-ui-fs);
928
+ color: CanvasText;
929
+ overflow: hidden;
930
+ text-overflow: ellipsis;
931
+ white-space: nowrap;
932
+ }
933
+ .shell__pair-path--secondary {
934
+ opacity: 0.88;
935
+ text-align: right;
936
+ }
937
+ .shell--stretch-rows .shell__pair-context {
938
+ --shell-pair-gutter-w: 14px;
939
+ --shell-pair-gutter-half: calc(var(--shell-pair-gutter-w) / 2);
940
+ display: grid;
941
+ grid-template-columns:
942
+ minmax(0, calc(var(--stretch-code-pct, 50%) - var(--shell-pair-gutter-half)))
943
+ var(--shell-pair-gutter-w)
944
+ minmax(0, calc(100% - var(--stretch-code-pct, 50%) - var(--shell-pair-gutter-half)));
945
+ width: 100%;
946
+ box-sizing: border-box;
947
+ }
948
+ .shell--stretch-rows .shell__pair-cell--src,
949
+ .shell--stretch-rows .shell__pair-cell--doc,
950
+ .shell--stretch-rows .shell__pair-gutter-spacer {
951
+ min-width: 0;
952
+ }
953
+ .shell--stretch-rows .shell__pair-cell--src {
954
+ grid-column: 1;
955
+ padding-left: var(--cr-pane-inline-pad);
956
+ padding-right: 0;
957
+ }
958
+ .shell--stretch-rows .shell__pair-gutter-spacer {
959
+ grid-column: 2;
960
+ width: var(--shell-pair-gutter-w);
961
+ min-width: var(--shell-pair-gutter-w);
962
+ }
963
+ .shell--stretch-rows .shell__pair-cell--doc {
964
+ grid-column: 3;
965
+ padding-left: var(--cr-pane-inline-pad);
966
+ padding-right: var(--cr-pane-inline-pad);
967
+ }
968
+ .shell[data-mobile-single-pane="true"] .shell__pair-context {
969
+ display: flex;
970
+ flex-direction: column;
971
+ align-items: stretch;
972
+ gap: 4px;
973
+ padding: 4px 0 6px;
974
+ }
975
+ .shell[data-mobile-single-pane="true"] .shell__pair-cell--src,
976
+ .shell[data-mobile-single-pane="true"] .shell__pair-cell--doc {
977
+ width: 100%;
978
+ padding-right: var(--cr-pane-inline-pad);
979
+ box-sizing: border-box;
980
+ }
981
+ .shell[data-mobile-single-pane="true"][data-dual-mobile-pane="code"] .shell__pair-cell--doc,
982
+ .shell[data-mobile-single-pane="true"][data-dual-mobile-pane="code"] .shell__pair-gutter-spacer {
983
+ display: none;
984
+ }
985
+ .shell[data-mobile-single-pane="true"][data-dual-mobile-pane="doc"] .shell__pair-cell--src,
986
+ .shell[data-mobile-single-pane="true"][data-dual-mobile-pane="doc"] .shell__pair-gutter-spacer {
987
+ display: none;
988
+ }
989
+ .shell[data-mobile-single-pane="true"]:not([data-dual-mobile-pane]) .shell__pair-cell--src,
990
+ .shell[data-mobile-single-pane="true"]:not([data-dual-mobile-pane]) .shell__pair-gutter-spacer {
991
+ display: none;
992
+ }
993
+ .pane--code {
994
+ flex: 0 0 var(--split-pct, 46%);
995
+ min-width: 120px;
996
+ overflow: auto;
997
+ padding: 12px var(--cr-pane-inline-pad);
998
+ border-right: 1px solid color-mix(in oklab, CanvasText 15%, Canvas);
999
+ --code-line-font-size: 13px;
1000
+ --code-line-height: 1.5;
1001
+ }
1002
+ .source-pane {
1003
+ min-width: 0;
1004
+ }
1005
+ .source-pane--rendered-md {
1006
+ font-size: 15px;
1007
+ line-height: 1.45;
1008
+ }
1009
+ .source-pane--rendered-md img {
1010
+ max-width: 100%;
1011
+ height: auto;
1012
+ }
1013
+ .source-pane--rendered-md .commentray-mermaid {
1014
+ overflow-x: auto;
1015
+ max-width: 100%;
1016
+ }
1017
+ .source-pane--rendered-md .commentray-line-anchor--source {
1018
+ display: inline;
1019
+ vertical-align: baseline;
1020
+ }
1021
+ #shell[data-source-pane-mode="rendered-markdown"] .source-pane--code {
1022
+ display: none;
1023
+ }
1024
+ #shell[data-source-pane-mode="source"] .source-pane--rendered-md {
1025
+ display: none;
1026
+ }
1027
+ .pane--code .code-line-stack {
1028
+ --code-ln-min-ch: 3;
1029
+ }
1030
+ .pane--code .code-line {
1031
+ display: grid;
1032
+ grid-template-columns: max-content minmax(0, 1fr);
1033
+ column-gap: 10px;
1034
+ align-items: start;
1035
+ min-width: 0;
1036
+ }
1037
+ .pane--code .code-line pre {
1038
+ margin: 0;
1039
+ min-width: 0;
1040
+ padding: 0;
1041
+ border: 0;
1042
+ background: transparent;
1043
+ }
1044
+ .pane--code .code-line pre code.hljs {
1045
+ display: block;
1046
+ margin: 0;
1047
+ padding: 0;
1048
+ font-size: var(--code-line-font-size);
1049
+ line-height: var(--code-line-height);
1050
+ }
1051
+ .pane--code .code-line .ln {
1052
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
1053
+ font-variant-numeric: tabular-nums;
1054
+ text-align: right;
1055
+ user-select: none;
1056
+ -webkit-user-select: none;
1057
+ color: color-mix(in oklab, CanvasText 45%, Canvas);
1058
+ padding-right: 8px;
1059
+ border-right: 1px solid color-mix(in oklab, CanvasText 12%, Canvas);
1060
+ white-space: nowrap;
1061
+ font-size: var(--code-line-font-size);
1062
+ line-height: var(--code-line-height);
1063
+ min-width: calc(var(--code-ln-min-ch, 3) * 1ch + 0.6ch);
1064
+ box-sizing: content-box;
1065
+ }
1066
+ .pane--code .code-line:target .ln,
1067
+ .pane--code .code-line:hover .ln {
1068
+ color: color-mix(in oklab, CanvasText 75%, Canvas);
1069
+ }
1070
+ .pane--code.wrap .code-line pre,
1071
+ .pane--code.wrap .code-line pre code {
1072
+ white-space: pre-wrap;
1073
+ word-break: break-word;
1074
+ }
1075
+ .pane--code:not(.wrap) .code-line pre,
1076
+ .pane--code:not(.wrap) .code-line pre code {
1077
+ white-space: pre;
1078
+ }
1079
+ .gutter {
1080
+ flex: 0 0 14px;
1081
+ cursor: col-resize;
1082
+ background: color-mix(in oklab, CanvasText 12%, Canvas);
1083
+ position: relative;
1084
+ --commentray-ray-accent: #3b7dd8;
1085
+ }
1086
+ @media (prefers-color-scheme: dark) {
1087
+ :root:is(:not([data-commentray-theme]), [data-commentray-theme="system"]) .gutter {
1088
+ --commentray-ray-accent: #6eb0ff;
1089
+ }
1090
+ }
1091
+ :root[data-commentray-theme="dark"] .gutter {
1092
+ --commentray-ray-accent: #6eb0ff;
1093
+ }
1094
+ .gutter__rays {
1095
+ position: absolute;
1096
+ inset: 0;
1097
+ pointer-events: none;
1098
+ z-index: 1;
1099
+ }
1100
+ .gutter__rays svg {
1101
+ width: 100%;
1102
+ height: 100%;
1103
+ display: block;
1104
+ overflow: hidden;
1105
+ }
1106
+ .gutter__rays-path {
1107
+ fill: none;
1108
+ stroke-linecap: round;
1109
+ vector-effect: non-scaling-stroke;
1110
+ stroke: color-mix(in oklab, var(--commentray-ray-accent) 72%, CanvasText);
1111
+ stroke-width: 1.35px;
1112
+ opacity: 0.26;
1113
+ }
1114
+ .gutter__rays-path--active {
1115
+ stroke-width: 2.4px;
1116
+ opacity: 0.88;
1117
+ }
1118
+ .gutter__rays-path--trail {
1119
+ stroke-dasharray: 3 4;
1120
+ opacity: 0.42;
1121
+ }
1122
+ .gutter__rays-path--active.gutter__rays-path--trail {
1123
+ opacity: 0.72;
1124
+ }
1125
+ .gutter:hover {
1126
+ background: color-mix(in oklab, CanvasText 22%, Canvas);
1127
+ }
1128
+ .gutter::after {
1129
+ content: "";
1130
+ position: absolute;
1131
+ top: 0;
1132
+ bottom: 0;
1133
+ left: -4px;
1134
+ right: -4px;
1135
+ }
1136
+ .pane--doc {
1137
+ flex: 1 1 auto;
1138
+ min-width: 0;
1139
+ min-height: 0;
1140
+ display: flex;
1141
+ flex-direction: column;
1142
+ overflow: hidden;
1143
+ padding: 12px var(--cr-pane-inline-pad);
1144
+ background: Canvas;
1145
+ color: CanvasText;
1146
+ }
1147
+ /* #doc-pane-body.wrap beats pre code.hljs from the hljs theme so fenced blocks follow the toggle. */
1148
+ #doc-pane-body.wrap pre,
1149
+ #doc-pane-body.wrap pre code {
1150
+ white-space: pre-wrap;
1151
+ word-break: break-word;
1152
+ }
1153
+ #doc-pane-body:not(.wrap) pre,
1154
+ #doc-pane-body:not(.wrap) pre code {
1155
+ white-space: pre;
1156
+ word-break: normal;
1157
+ }
1158
+ .doc-pane-body {
1159
+ flex: 1 1 auto;
1160
+ min-height: 0;
1161
+ overflow: auto;
1162
+ }
1163
+ /* scroll-behavior: smooth was removed: it interpolates many scroll events per gesture and
1164
+ * exhausts the partner-echo guard in wireBidirectionalScroll, so doc↔code ping-pong returns. */
1165
+ /* Inline backtick code chips (GitHub-like): prose context only, never fenced pre/code blocks. */
1166
+ .pane--doc .doc-pane-body :where(p, li, blockquote, td, th, h1, h2, h3, h4, h5, h6) > code,
1167
+ .shell--stretch-rows
1168
+ .stretch-preamble
1169
+ :where(p, li, blockquote, td, th, h1, h2, h3, h4, h5, h6)
1170
+ > code,
1171
+ .block-stretch
1172
+ td.stretch-doc
1173
+ .stretch-doc-inner
1174
+ :where(p, li, blockquote, td, th, h1, h2, h3, h4, h5, h6)
1175
+ > code {
1176
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
1177
+ font-size: 0.92em;
1178
+ padding: 0.12em 0.36em;
1179
+ border-radius: 6px;
1180
+ border: 1px solid color-mix(in oklab, CanvasText 12%, Canvas);
1181
+ background: color-mix(in oklab, CanvasText 8%, Canvas);
1182
+ color: inherit;
1183
+ }
1184
+ @media (prefers-color-scheme: dark) {
1185
+ :root:is(:not([data-commentray-theme]), [data-commentray-theme="system"])
1186
+ .pane--doc
1187
+ .doc-pane-body
1188
+ :where(p, li, blockquote, td, th, h1, h2, h3, h4, h5, h6)
1189
+ > code,
1190
+ :root:is(:not([data-commentray-theme]), [data-commentray-theme="system"])
1191
+ .shell--stretch-rows
1192
+ .stretch-preamble
1193
+ :where(p, li, blockquote, td, th, h1, h2, h3, h4, h5, h6)
1194
+ > code,
1195
+ :root:is(:not([data-commentray-theme]), [data-commentray-theme="system"])
1196
+ .block-stretch
1197
+ td.stretch-doc
1198
+ .stretch-doc-inner
1199
+ :where(p, li, blockquote, td, th, h1, h2, h3, h4, h5, h6)
1200
+ > code {
1201
+ border-color: color-mix(in oklab, CanvasText 26%, Canvas);
1202
+ background: color-mix(in oklab, CanvasText 16%, Canvas);
1203
+ }
1204
+ }
1205
+ :root[data-commentray-theme="dark"]
1206
+ .pane--doc
1207
+ .doc-pane-body
1208
+ :where(p, li, blockquote, td, th, h1, h2, h3, h4, h5, h6)
1209
+ > code,
1210
+ :root[data-commentray-theme="dark"]
1211
+ .shell--stretch-rows
1212
+ .stretch-preamble
1213
+ :where(p, li, blockquote, td, th, h1, h2, h3, h4, h5, h6)
1214
+ > code,
1215
+ :root[data-commentray-theme="dark"]
1216
+ .block-stretch
1217
+ td.stretch-doc
1218
+ .stretch-doc-inner
1219
+ :where(p, li, blockquote, td, th, h1, h2, h3, h4, h5, h6)
1220
+ > code {
1221
+ border-color: color-mix(in oklab, CanvasText 26%, Canvas);
1222
+ background: color-mix(in oklab, CanvasText 16%, Canvas);
1223
+ }
1224
+ /**
1225
+ * GFM tables in rendered Markdown (doc pane, stretch preamble, per-block doc cells).
1226
+ * Intrinsic width so the pane scrolls sideways instead of squeezing columns; borders
1227
+ * and padding match familiar GitHub-style readability.
1228
+ */
1229
+ .pane--doc .doc-pane-body :where(table),
1230
+ .shell--stretch-rows .stretch-preamble :where(table),
1231
+ .block-stretch td.stretch-doc .stretch-doc-inner :where(table) {
1232
+ width: max-content;
1233
+ max-width: none;
1234
+ border-collapse: collapse;
1235
+ margin: 0.85em 0;
1236
+ font-size: inherit;
1237
+ line-height: inherit;
1238
+ }
1239
+ .pane--doc .doc-pane-body :where(th, td),
1240
+ .shell--stretch-rows .stretch-preamble :where(th, td),
1241
+ .block-stretch td.stretch-doc .stretch-doc-inner :where(th, td) {
1242
+ border: 1px solid color-mix(in oklab, CanvasText 22%, Canvas);
1243
+ padding: 8px 12px;
1244
+ vertical-align: top;
1245
+ }
1246
+ .pane--doc .doc-pane-body :where(thead th),
1247
+ .shell--stretch-rows .stretch-preamble :where(thead th),
1248
+ .block-stretch td.stretch-doc .stretch-doc-inner :where(thead th) {
1249
+ font-weight: 600;
1250
+ background: color-mix(in oklab, CanvasText 7%, Canvas);
1251
+ }
1252
+ .pane--doc .doc-pane-body tbody tr:nth-child(even) :where(td),
1253
+ .shell--stretch-rows .stretch-preamble tbody tr:nth-child(even) :where(td),
1254
+ .block-stretch td.stretch-doc .stretch-doc-inner tbody tr:nth-child(even) :where(td) {
1255
+ background: color-mix(in oklab, CanvasText 3.5%, Canvas);
1256
+ }
1257
+ .pane--doc .doc-pane-body :where(ul.contains-task-list),
1258
+ .shell--stretch-rows .stretch-preamble :where(ul.contains-task-list),
1259
+ .block-stretch td.stretch-doc .stretch-doc-inner :where(ul.contains-task-list) {
1260
+ list-style: none;
1261
+ padding-inline-start: 1.2em;
1262
+ }
1263
+ .pane--doc .doc-pane-body :where(li.task-list-item),
1264
+ .shell--stretch-rows .stretch-preamble :where(li.task-list-item),
1265
+ .block-stretch td.stretch-doc .stretch-doc-inner :where(li.task-list-item) {
1266
+ position: relative;
1267
+ }
1268
+ .pane--doc .doc-pane-body :where(li.task-list-item input[type="checkbox"]),
1269
+ .shell--stretch-rows .stretch-preamble :where(li.task-list-item input[type="checkbox"]),
1270
+ .block-stretch td.stretch-doc .stretch-doc-inner :where(li.task-list-item input[type="checkbox"]) {
1271
+ position: absolute;
1272
+ margin-inline-start: -1.35em;
1273
+ margin-top: 0.2em;
1274
+ }
1275
+ .pane--doc .doc-pane-body :where(del),
1276
+ .shell--stretch-rows .stretch-preamble :where(del),
1277
+ .block-stretch td.stretch-doc .stretch-doc-inner :where(del) {
1278
+ opacity: 0.82;
1279
+ }
1280
+ .pane--doc .doc-pane-body :where(section.footnotes),
1281
+ .shell--stretch-rows .stretch-preamble :where(section.footnotes),
1282
+ .block-stretch td.stretch-doc .stretch-doc-inner :where(section.footnotes) {
1283
+ margin-top: 1.5em;
1284
+ padding-top: 0.75em;
1285
+ border-top: 1px solid color-mix(in oklab, CanvasText 18%, Canvas);
1286
+ font-size: 0.92em;
1287
+ }
1288
+ .pane--doc .doc-pane-body .commentray-mermaid {
1289
+ overflow-x: auto;
1290
+ max-width: 100%;
1291
+ }
1292
+ /** Wrap on: break long URLs/words in prose; tables opt out so they stay wide + scroll with the body. */
1293
+ #doc-pane-body.wrap {
1294
+ overflow-wrap: break-word;
1295
+ }
1296
+ #doc-pane-body.wrap :where(table) {
1297
+ overflow-wrap: normal;
1298
+ word-break: normal;
1299
+ }
1300
+ #doc-pane-body:not(.wrap) {
1301
+ overflow-wrap: normal;
1302
+ word-break: normal;
1303
+ }
1304
+ #doc-pane-body .commentray-page-break {
1305
+ position: relative;
1306
+ min-height: var(--commentray-page-break-min-height, clamp(260px, 56vh, 620px));
1307
+ margin: 24px 0;
1308
+ display: flex;
1309
+ align-items: center;
1310
+ justify-content: center;
1311
+ pointer-events: none;
1312
+ }
1313
+ #doc-pane-body .commentray-page-break__rule {
1314
+ width: 100%;
1315
+ border-top: 1px dashed var(--border);
1316
+ opacity: 0.38;
1317
+ }
1318
+ #shell[data-page-breaks-enabled="false"] .commentray-page-break {
1319
+ display: none;
1320
+ }
1321
+ .toolbar-angle-picker {
1322
+ display: inline-flex;
1323
+ align-items: center;
1324
+ gap: 6px;
1325
+ flex: 0 0 auto;
1326
+ }
1327
+ /* Angle caption uses the same class as the Search label (.nav-rail__search-label). */
1328
+ .toolbar-angle-picker__lab {
1329
+ display: inline-block;
1330
+ margin: 0;
1331
+ padding: 0;
1332
+ cursor: default;
1333
+ flex: 0 0 auto;
1334
+ white-space: nowrap;
1335
+ user-select: none;
1336
+ }
1337
+ .toolbar-angle-picker select {
1338
+ font: inherit;
1339
+ font-size: var(--cr-ui-fs);
1340
+ font-weight: 500;
1341
+ min-height: var(--cr-control-h);
1342
+ height: var(--cr-control-h);
1343
+ padding: 0 10px;
1344
+ border-radius: var(--cr-control-radius);
1345
+ border: 1px solid color-mix(in oklab, CanvasText 25%, Canvas);
1346
+ background: Canvas;
1347
+ color: color-mix(in oklab, CanvasText 88%, Canvas);
1348
+ }
1349
+ .toolbar-angle-picker select:focus-visible {
1350
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
1351
+ outline-offset: 2px;
1352
+ }
1353
+ /* Single-pane + compact chrome below typical tablet / Bootstrap md threshold (768px). */
1354
+ @media (max-width: 767px) {
1355
+ html,
1356
+ body {
1357
+ overflow-x: auto;
1358
+ overflow-y: auto;
1359
+ }
1360
+ .app {
1361
+ height: auto;
1362
+ min-height: 100vh;
1363
+ min-height: 100dvh;
1364
+ min-width: 0;
1365
+ overflow-x: auto;
1366
+ overflow-y: visible;
1367
+ }
1368
+ .app__main {
1369
+ flex: 0 0 auto;
1370
+ width: 100%;
1371
+ min-height: 0;
1372
+ }
1373
+ .app__main > #shell:not(.shell--stretch-rows) {
1374
+ flex: none !important;
1375
+ min-height: auto !important;
1376
+ overflow: visible !important;
1377
+ }
1378
+ .app__main > #shell:not(.shell--stretch-rows) .shell__panes {
1379
+ flex: none !important;
1380
+ min-height: auto !important;
1381
+ min-width: 0;
1382
+ width: 100%;
1383
+ max-width: 100%;
1384
+ box-sizing: border-box;
1385
+ }
1386
+ .app__main > #shell:not(.shell--stretch-rows) .pane--code,
1387
+ .app__main > #shell:not(.shell--stretch-rows) .pane--doc {
1388
+ flex: none !important;
1389
+ min-height: auto !important;
1390
+ overflow: visible !important;
1391
+ max-height: none !important;
1392
+ /* flex:none + basis:auto otherwise sizes to max-content so line-wrap has no width cap */
1393
+ width: 100%;
1394
+ max-width: 100%;
1395
+ min-width: 0 !important;
1396
+ box-sizing: border-box;
1397
+ }
1398
+ .app__main > #shell:not(.shell--stretch-rows) .pane--doc {
1399
+ display: block;
1400
+ }
1401
+ .app__main > #shell:not(.shell--stretch-rows) .doc-pane-body {
1402
+ flex: none !important;
1403
+ min-height: auto !important;
1404
+ min-width: 0;
1405
+ overflow: visible !important;
1406
+ }
1407
+ .app__footer {
1408
+ margin-top: auto;
1409
+ flex-shrink: 0;
1410
+ padding: 5px 10px 8px;
1411
+ font-size: 10px;
1412
+ line-height: 1.35;
1413
+ }
1414
+ .app__main > #shell.shell--stretch-rows {
1415
+ flex: 1 1 auto;
1416
+ min-height: min(72vh, 720px);
1417
+ min-height: min(72dvh, 720px);
1418
+ overflow: auto;
1419
+ }
1420
+ .toolbar {
1421
+ padding: 5px 8px 5px;
1422
+ row-gap: 4px;
1423
+ }
1424
+ .toolbar__primary {
1425
+ display: flex;
1426
+ flex-direction: row;
1427
+ flex-wrap: nowrap;
1428
+ align-items: center;
1429
+ gap: 6px;
1430
+ min-width: 0;
1431
+ width: 100%;
1432
+ box-sizing: border-box;
1433
+ }
1434
+ .toolbar__primary-main {
1435
+ flex: 1 1 auto;
1436
+ min-width: 0;
1437
+ flex-wrap: nowrap;
1438
+ overflow-x: auto;
1439
+ overflow-y: visible;
1440
+ -webkit-overflow-scrolling: touch;
1441
+ gap: 6px;
1442
+ scrollbar-width: thin;
1443
+ }
1444
+ .toolbar__primary-trail {
1445
+ flex: 0 0 auto;
1446
+ flex-wrap: nowrap;
1447
+ align-self: center;
1448
+ }
1449
+ .toolbar-angle-picker {
1450
+ position: relative;
1451
+ flex: 0 1 auto;
1452
+ min-width: 0;
1453
+ max-width: 100%;
1454
+ }
1455
+ .toolbar-angle-picker__lab {
1456
+ position: absolute;
1457
+ width: 1px;
1458
+ height: 1px;
1459
+ padding: 0;
1460
+ margin: -1px;
1461
+ overflow: hidden;
1462
+ clip: rect(0, 0, 0, 0);
1463
+ white-space: nowrap;
1464
+ border: 0;
1465
+ opacity: 0;
1466
+ pointer-events: none;
1467
+ }
1468
+ .toolbar-angle-picker select {
1469
+ max-width: min(200px, 52vw);
1470
+ min-width: 0;
1471
+ text-overflow: ellipsis;
1472
+ }
1473
+ .app__chrome {
1474
+ padding: 5px 8px 6px;
1475
+ gap: 5px;
1476
+ max-height: min(36vh, 360px);
1477
+ }
1478
+ /* Compact chrome: avoid heavy rings on inline fields (clear stays a real button). */
1479
+ .chrome__search-row input[type="search"]:focus-visible {
1480
+ outline: none;
1481
+ border-color: color-mix(in oklab, CanvasText 42%, Canvas);
1482
+ }
1483
+ .chrome__search-row #search-clear:focus-visible {
1484
+ outline: 2px solid color-mix(in oklab, CanvasText 45%, Canvas);
1485
+ outline-offset: 2px;
1486
+ }
1487
+ .chrome__search-label__caption {
1488
+ position: absolute;
1489
+ width: 1px;
1490
+ height: 1px;
1491
+ padding: 0;
1492
+ margin: -1px;
1493
+ overflow: hidden;
1494
+ clip: rect(0, 0, 0, 0);
1495
+ white-space: nowrap;
1496
+ border: 0;
1497
+ }
1498
+ .chrome__search-label__glyph {
1499
+ display: inline-flex;
1500
+ align-items: center;
1501
+ justify-content: center;
1502
+ padding: 0 2px;
1503
+ margin: 0;
1504
+ color: color-mix(in oklab, CanvasText 72%, Canvas);
1505
+ }
1506
+ .chrome__search-label__glyph:hover {
1507
+ color: color-mix(in oklab, CanvasText 88%, Canvas);
1508
+ }
1509
+ .chrome__search-label:focus-within {
1510
+ outline: none;
1511
+ }
1512
+ .chrome__search-label__glyph svg {
1513
+ display: block;
1514
+ flex: 0 0 auto;
1515
+ }
1516
+ .toolbar-angle-picker select:focus-visible {
1517
+ outline: none;
1518
+ border-color: color-mix(in oklab, CanvasText 42%, Canvas);
1519
+ }
1520
+ .toolbar-icon-btn--flip-only-narrow {
1521
+ display: inline-flex;
1522
+ }
1523
+ /**
1524
+ * Secondary flip: only on narrow viewports, only while the toolbar flip is off-screen
1525
+ * (see client IntersectionObserver). Same control as toolbar; fixed so it stays reachable.
1526
+ */
1527
+ .toolbar-icon-btn--flip-scroll-narrow {
1528
+ display: none;
1529
+ }
1530
+ #mobile-pane-flip-scroll.toolbar-icon-btn--flip-scroll-narrow.is-visible {
1531
+ display: inline-flex;
1532
+ position: fixed;
1533
+ top: calc(10px + env(safe-area-inset-top, 0px));
1534
+ right: calc(12px + env(safe-area-inset-right, 0px));
1535
+ z-index: 50;
1536
+ box-shadow:
1537
+ 0 1px 2px color-mix(in oklab, CanvasText 12%, transparent),
1538
+ 0 4px 14px color-mix(in oklab, CanvasText 18%, transparent);
1539
+ }
1540
+ .toolbar-icon-btn--source-markdown-scroll-narrow {
1541
+ display: none;
1542
+ }
1543
+ #source-markdown-pane-flip-scroll.toolbar-icon-btn--source-markdown-scroll-narrow.is-visible {
1544
+ display: inline-flex;
1545
+ position: fixed;
1546
+ top: calc(10px + env(safe-area-inset-top, 0px));
1547
+ left: calc(12px + env(safe-area-inset-left, 0px));
1548
+ z-index: 50;
1549
+ box-shadow:
1550
+ 0 1px 2px color-mix(in oklab, CanvasText 12%, transparent),
1551
+ 0 4px 14px color-mix(in oklab, CanvasText 18%, transparent);
1552
+ }
1553
+ /** Region connector lines are not needed on the narrow single-pane layout (gutter is hidden). */
1554
+ .shell:not(.shell--stretch-rows) .gutter .gutter__rays {
1555
+ opacity: 0 !important;
1556
+ pointer-events: none !important;
1557
+ }
1558
+ .nav-rail__doc-hub-summary {
1559
+ min-width: var(--cr-control-h);
1560
+ padding: 0 10px;
1561
+ justify-content: center;
1562
+ gap: 0;
1563
+ }
1564
+ .nav-rail__doc-hub-summary__caption {
1565
+ position: absolute;
1566
+ width: 1px;
1567
+ height: 1px;
1568
+ padding: 0;
1569
+ margin: -1px;
1570
+ overflow: hidden;
1571
+ clip: rect(0, 0, 0, 0);
1572
+ white-space: nowrap;
1573
+ border: 0;
1574
+ }
1575
+ .nav-rail__doc-hub-summary__glyph {
1576
+ display: inline-flex;
1577
+ }
1578
+ .documented-files-tree .tree-file {
1579
+ font-size: 12px;
1580
+ line-height: 1.4;
1581
+ }
1582
+ .documented-files-tree .tree-file-link {
1583
+ display: inline-block;
1584
+ min-height: 0;
1585
+ padding: 3px 5px;
1586
+ margin: 0;
1587
+ border-radius: 0;
1588
+ touch-action: manipulation;
1589
+ }
1590
+ .toolbar-wrap-lines {
1591
+ min-width: var(--cr-control-h);
1592
+ padding: 0;
1593
+ justify-content: center;
1594
+ gap: 0;
1595
+ font-weight: 500;
1596
+ }
1597
+ .toolbar-wrap-lines__caption {
1598
+ position: absolute;
1599
+ width: 1px;
1600
+ height: 1px;
1601
+ padding: 0;
1602
+ margin: -1px;
1603
+ overflow: hidden;
1604
+ clip: rect(0, 0, 0, 0);
1605
+ white-space: nowrap;
1606
+ border: 0;
1607
+ }
1608
+ .toolbar-wrap-lines__box {
1609
+ display: none;
1610
+ }
1611
+ .toolbar-wrap-lines__face {
1612
+ display: inline-flex;
1613
+ position: relative;
1614
+ width: 100%;
1615
+ height: 100%;
1616
+ min-height: var(--cr-control-h);
1617
+ min-width: var(--cr-control-h);
1618
+ }
1619
+ .toolbar-wrap-lines:has(.toolbar-wrap-lines__input:checked) .toolbar-wrap-lines__face::after {
1620
+ content: "✓";
1621
+ position: absolute;
1622
+ right: 1px;
1623
+ bottom: 0;
1624
+ font-size: 11px;
1625
+ line-height: 1;
1626
+ font-weight: 800;
1627
+ color: CanvasText;
1628
+ text-shadow:
1629
+ 0 0 2px Canvas,
1630
+ 0 0 3px Canvas;
1631
+ }
1632
+ .toolbar-source-render-toggle {
1633
+ min-width: var(--cr-control-h);
1634
+ width: var(--cr-control-h);
1635
+ height: var(--cr-control-h);
1636
+ padding: 0;
1637
+ justify-content: center;
1638
+ gap: 0;
1639
+ }
1640
+ .toolbar-source-render-toggle__caption {
1641
+ position: absolute;
1642
+ width: 1px;
1643
+ height: 1px;
1644
+ padding: 0;
1645
+ margin: -1px;
1646
+ overflow: hidden;
1647
+ clip: rect(0, 0, 0, 0);
1648
+ white-space: nowrap;
1649
+ border: 0;
1650
+ }
1651
+ .toolbar-source-render-toggle__box {
1652
+ display: none;
1653
+ }
1654
+ .toolbar-source-render-toggle__face {
1655
+ display: inline-flex;
1656
+ position: relative;
1657
+ width: 100%;
1658
+ height: 100%;
1659
+ min-height: var(--cr-control-h);
1660
+ min-width: var(--cr-control-h);
1661
+ }
1662
+ .toolbar-source-render-toggle[aria-pressed="true"] .toolbar-source-render-toggle__face::after {
1663
+ content: "✓";
1664
+ position: absolute;
1665
+ right: 1px;
1666
+ bottom: 0;
1667
+ font-size: 11px;
1668
+ line-height: 1;
1669
+ font-weight: 800;
1670
+ color: CanvasText;
1671
+ text-shadow:
1672
+ 0 0 2px Canvas,
1673
+ 0 0 3px Canvas;
1674
+ }
1675
+ .shell:not(.shell--stretch-rows)[data-dual-mobile-pane="code"] .pane--doc,
1676
+ .shell:not(.shell--stretch-rows)[data-dual-mobile-pane="code"] .gutter {
1677
+ display: none !important;
1678
+ }
1679
+ .shell:not(.shell--stretch-rows)[data-dual-mobile-pane="doc"] .pane--code,
1680
+ .shell:not(.shell--stretch-rows)[data-dual-mobile-pane="doc"] .gutter {
1681
+ display: none !important;
1682
+ }
1683
+ .shell:not(.shell--stretch-rows)[data-dual-mobile-pane="code"] .pane--code,
1684
+ .shell:not(.shell--stretch-rows)[data-dual-mobile-pane="doc"] .pane--doc {
1685
+ border-right: 0 !important;
1686
+ }
1687
+ .shell:not(.shell--stretch-rows) .shell__pair-context {
1688
+ flex-direction: column;
1689
+ align-items: stretch;
1690
+ gap: 4px;
1691
+ padding: 4px 0 6px;
1692
+ }
1693
+ .shell:not(.shell--stretch-rows) .shell__pair-gutter-spacer {
1694
+ display: none;
1695
+ }
1696
+ .shell:not(.shell--stretch-rows) .shell__pair-cell--src {
1697
+ flex: 1 1 auto;
1698
+ padding-left: var(--cr-pane-inline-pad);
1699
+ }
1700
+ .shell:not(.shell--stretch-rows) .shell__pair-cell--doc {
1701
+ flex: 1 1 auto;
1702
+ padding-left: var(--cr-pane-inline-pad);
1703
+ }
1704
+ .shell.shell--stretch-rows[data-dual-mobile-pane="code"] .stretch-col-doc,
1705
+ .shell.shell--stretch-rows[data-dual-mobile-pane="doc"] .stretch-col-code {
1706
+ display: none;
1707
+ }
1708
+ .shell.shell--stretch-rows[data-dual-mobile-pane] .block-stretch tbody tr.stretch-row {
1709
+ display: grid;
1710
+ grid-template-columns: minmax(0, 1fr);
1711
+ }
1712
+ .shell.shell--stretch-rows[data-dual-mobile-pane]
1713
+ .block-stretch
1714
+ tbody
1715
+ tr.stretch-row
1716
+ > td.stretch-code,
1717
+ .shell.shell--stretch-rows[data-dual-mobile-pane]
1718
+ .block-stretch
1719
+ tbody
1720
+ tr.stretch-row
1721
+ > td.stretch-doc {
1722
+ display: block;
1723
+ grid-column: 1;
1724
+ grid-row: 1;
1725
+ width: 100%;
1726
+ padding-left: 0;
1727
+ padding-right: 0;
1728
+ }
1729
+ .shell.shell--stretch-rows[data-dual-mobile-pane="code"] td.stretch-doc,
1730
+ .shell.shell--stretch-rows[data-dual-mobile-pane="doc"] td.stretch-code {
1731
+ visibility: hidden;
1732
+ pointer-events: none;
1733
+ z-index: 1;
1734
+ }
1735
+ .shell.shell--stretch-rows[data-dual-mobile-pane="code"] td.stretch-code,
1736
+ .shell.shell--stretch-rows[data-dual-mobile-pane="doc"] td.stretch-doc {
1737
+ visibility: visible;
1738
+ pointer-events: auto;
1739
+ position: relative;
1740
+ z-index: 2;
1741
+ }
1742
+ .shell.shell--stretch-rows[data-dual-mobile-pane] #stretch-gutter {
1743
+ display: none;
1744
+ }
1745
+ }
1746
+ .pane--doc {
1747
+ font-size: 15px;
1748
+ line-height: 1.45;
1749
+ }
1750
+ .pane--doc img {
1751
+ max-width: 100%;
1752
+ height: auto;
1753
+ }
1754
+ .pane--doc .commentray-line-anchor {
1755
+ display: inline;
1756
+ vertical-align: baseline;
1757
+ scroll-margin-top: 10px;
1758
+ }
1759
+ .pane--doc .commentray-block-anchor {
1760
+ display: block;
1761
+ height: 0;
1762
+ margin: 0;
1763
+ border: 0;
1764
+ pointer-events: none;
1765
+ }
1766
+ .shell--stretch-rows {
1767
+ flex: 1;
1768
+ min-height: 0;
1769
+ overflow: auto;
1770
+ display: block;
1771
+ padding: 0 0 20px;
1772
+ }
1773
+ .shell--stretch-rows .stretch-preamble {
1774
+ padding: 8px 4px 16px;
1775
+ margin-bottom: 8px;
1776
+ font-size: 15px;
1777
+ line-height: 1.45;
1778
+ overflow-x: auto;
1779
+ /* overflow-x other than visible makes overflow-y:visible compute to auto, which traps
1780
+ * vertical wheel on this node instead of the shell scrollport when height is ever capped. */
1781
+ overflow-y: hidden;
1782
+ max-width: 100%;
1783
+ }
1784
+ .shell--stretch-rows .stretch-preamble img {
1785
+ max-width: 100%;
1786
+ height: auto;
1787
+ }
1788
+ .block-stretch {
1789
+ width: 100%;
1790
+ border-collapse: collapse;
1791
+ table-layout: fixed;
1792
+ }
1793
+ .stretch-grid {
1794
+ position: relative;
1795
+ }
1796
+ .stretch-col-code {
1797
+ width: var(--stretch-code-pct, 50%);
1798
+ }
1799
+ .stretch-col-doc {
1800
+ width: calc(100% - var(--stretch-code-pct, 50%));
1801
+ }
1802
+ .block-stretch td.stretch-code {
1803
+ vertical-align: top;
1804
+ padding: 0 12px 0 0;
1805
+ box-shadow: inset -1px 0 0 color-mix(in oklab, CanvasText 10%, Canvas);
1806
+ }
1807
+ #shell[data-stretch-buffer-sync="flow-synchronizer"]
1808
+ .block-stretch
1809
+ td.stretch-code
1810
+ > .stretch-cell-measure,
1811
+ #shell[data-stretch-buffer-sync="flow-synchronizer"]
1812
+ .block-stretch
1813
+ td.stretch-doc
1814
+ > .stretch-cell-measure {
1815
+ display: block;
1816
+ width: 100%;
1817
+ box-sizing: border-box;
1818
+ height: max-content;
1819
+ max-height: max-content;
1820
+ }
1821
+ #shell[data-stretch-buffer-sync="flow-synchronizer"]
1822
+ .block-stretch
1823
+ td.stretch-doc
1824
+ .stretch-doc-inner {
1825
+ height: max-content;
1826
+ max-height: max-content;
1827
+ }
1828
+ #shell[data-stretch-buffer-sync="flow-synchronizer"] .block-stretch .stretch-code-stack {
1829
+ height: max-content;
1830
+ max-height: max-content;
1831
+ }
1832
+ .block-stretch td.stretch-doc {
1833
+ vertical-align: top;
1834
+ padding: 0 0 0 12px;
1835
+ box-shadow: inset 1px 0 0 color-mix(in oklab, CanvasText 8%, Canvas);
1836
+ }
1837
+ .block-stretch td.stretch-doc .stretch-doc-inner {
1838
+ font-size: 15px;
1839
+ line-height: 1.45;
1840
+ min-width: 0;
1841
+ overflow-x: auto;
1842
+ /* Keep vertical scrolling on the shell; see stretch-preamble rule above. */
1843
+ overflow-y: hidden;
1844
+ }
1845
+ .block-stretch td.stretch-doc .stretch-doc-inner img {
1846
+ max-width: 100%;
1847
+ height: auto;
1848
+ }
1849
+ .block-stretch td.stretch-doc .stretch-doc-inner .commentray-mermaid {
1850
+ overflow-x: auto;
1851
+ overflow-y: hidden;
1852
+ max-width: 100%;
1853
+ }
1854
+ .block-stretch.wrap td.stretch-doc .stretch-doc-inner {
1855
+ overflow-wrap: break-word;
1856
+ }
1857
+ .block-stretch.wrap td.stretch-doc .stretch-doc-inner :where(table) {
1858
+ overflow-wrap: normal;
1859
+ word-break: normal;
1860
+ }
1861
+ .block-stretch:not(.wrap) td.stretch-doc .stretch-doc-inner {
1862
+ overflow-wrap: normal;
1863
+ word-break: normal;
1864
+ }
1865
+ .block-stretch td.stretch-doc--gap {
1866
+ color: color-mix(in oklab, CanvasText 38%, Canvas);
1867
+ font-size: 13px;
1868
+ vertical-align: top;
1869
+ }
1870
+ .block-stretch .stretch-code-stack {
1871
+ display: flex;
1872
+ flex-direction: column;
1873
+ align-items: stretch;
1874
+ min-width: 0;
1875
+ }
1876
+ .block-stretch .code-line {
1877
+ display: grid;
1878
+ grid-template-columns: max-content 1fr;
1879
+ column-gap: 12px;
1880
+ align-items: start;
1881
+ }
1882
+ .block-stretch .code-line pre {
1883
+ margin: 0;
1884
+ min-width: 0;
1885
+ padding: 0;
1886
+ border: 0;
1887
+ background: transparent;
1888
+ }
1889
+ .block-stretch .code-line pre code.hljs {
1890
+ display: block;
1891
+ margin: 0;
1892
+ padding: 0;
1893
+ font-size: var(--code-line-font-size, 13px);
1894
+ line-height: var(--code-line-height, 1.5);
1895
+ }
1896
+ .block-stretch .code-line-stack {
1897
+ --code-ln-min-ch: 3;
1898
+ }
1899
+ .block-stretch .code-line .ln {
1900
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
1901
+ font-variant-numeric: tabular-nums;
1902
+ text-align: right;
1903
+ user-select: none;
1904
+ -webkit-user-select: none;
1905
+ color: color-mix(in oklab, CanvasText 45%, Canvas);
1906
+ padding-right: 8px;
1907
+ border-right: 1px solid color-mix(in oklab, CanvasText 12%, Canvas);
1908
+ white-space: nowrap;
1909
+ font-size: var(--code-line-font-size, 13px);
1910
+ line-height: var(--code-line-height, 1.5);
1911
+ min-width: calc(var(--code-ln-min-ch, 3) * 1ch + 0.6ch);
1912
+ box-sizing: content-box;
1913
+ }
1914
+ .block-stretch.wrap .code-line pre,
1915
+ .block-stretch.wrap .code-line pre code {
1916
+ white-space: pre-wrap;
1917
+ word-break: break-word;
1918
+ }
1919
+ .block-stretch:not(.wrap) .code-line pre,
1920
+ .block-stretch:not(.wrap) .code-line pre code {
1921
+ white-space: pre;
1922
+ }
1923
+ .block-stretch.wrap .stretch-doc-inner pre,
1924
+ .block-stretch.wrap .stretch-doc-inner pre code {
1925
+ white-space: pre-wrap;
1926
+ word-break: break-word;
1927
+ }
1928
+ .block-stretch:not(.wrap) .stretch-doc-inner pre,
1929
+ .block-stretch:not(.wrap) .stretch-doc-inner pre code {
1930
+ white-space: pre;
1931
+ }
1932
+ .stretch-gutter {
1933
+ position: absolute;
1934
+ top: 0;
1935
+ bottom: 0;
1936
+ left: var(--stretch-code-pct, 50%);
1937
+ transform: translateX(-50%);
1938
+ width: 14px;
1939
+ cursor: col-resize;
1940
+ touch-action: none;
1941
+ border-left: 1px solid color-mix(in oklab, CanvasText 14%, Canvas);
1942
+ border-right: 1px solid color-mix(in oklab, CanvasText 10%, Canvas);
1943
+ background: color-mix(in oklab, CanvasText 8%, Canvas);
1944
+ border-radius: 999px;
1945
+ --commentray-ray-accent: #3b7dd8;
1946
+ z-index: 6;
1947
+ }
1948
+ @media (prefers-color-scheme: dark) {
1949
+ :root:is(:not([data-commentray-theme]), [data-commentray-theme="system"]) .stretch-gutter {
1950
+ --commentray-ray-accent: #6eb0ff;
1951
+ }
1952
+ }
1953
+ :root[data-commentray-theme="dark"] .stretch-gutter {
1954
+ --commentray-ray-accent: #6eb0ff;
1955
+ }