sourcey 3.6.5 → 3.6.6

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 (49) hide show
  1. package/README.md +4 -4
  2. package/dist/adapters/shared.js +1 -1
  3. package/dist/astro/index.d.ts.map +1 -1
  4. package/dist/astro/index.js +8 -6
  5. package/dist/client/reader-controls.js +81 -0
  6. package/dist/client/reader.d.ts +5 -0
  7. package/dist/client/reader.d.ts.map +1 -0
  8. package/dist/client/reader.js +5 -0
  9. package/dist/components/App.d.ts.map +1 -1
  10. package/dist/components/App.js +1 -1
  11. package/dist/components/layout/Head.d.ts.map +1 -1
  12. package/dist/components/layout/Head.js +6 -4
  13. package/dist/components/layout/Page.d.ts.map +1 -1
  14. package/dist/components/layout/Page.js +20 -14
  15. package/dist/components/layout/Reader.d.ts +5 -0
  16. package/dist/components/layout/Reader.d.ts.map +1 -0
  17. package/dist/components/layout/Reader.js +64 -0
  18. package/dist/components/layout/SearchDialog.d.ts +2 -0
  19. package/dist/components/layout/SearchDialog.d.ts.map +1 -0
  20. package/dist/components/layout/SearchDialog.js +4 -0
  21. package/dist/components/openapi/Operation.d.ts.map +1 -1
  22. package/dist/components/openapi/Operation.js +2 -2
  23. package/dist/config.d.ts +56 -4
  24. package/dist/config.d.ts.map +1 -1
  25. package/dist/config.js +18 -10
  26. package/dist/core/doxygen-loader.js +1 -1
  27. package/dist/core/loader.js +2 -2
  28. package/dist/core/markdown-loader.d.ts +2 -0
  29. package/dist/core/markdown-loader.d.ts.map +1 -1
  30. package/dist/core/markdown-loader.js +1 -0
  31. package/dist/core/navigation.js +1 -1
  32. package/dist/core/parser.js +1 -1
  33. package/dist/dev-server.d.ts.map +1 -1
  34. package/dist/dev-server.js +3 -4
  35. package/dist/index.d.ts +1 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/init.js +4 -4
  38. package/dist/renderer/html-builder.d.ts.map +1 -1
  39. package/dist/renderer/html-builder.js +6 -27
  40. package/dist/renderer/static-files.d.ts.map +1 -1
  41. package/dist/renderer/static-files.js +3 -1
  42. package/dist/themes/assets.d.ts +8 -0
  43. package/dist/themes/assets.d.ts.map +1 -0
  44. package/dist/themes/assets.js +16 -0
  45. package/dist/themes/reader/sourcey.css +1024 -0
  46. package/dist/themes/registry.d.ts +20 -0
  47. package/dist/themes/registry.d.ts.map +1 -0
  48. package/dist/themes/registry.js +8 -0
  49. package/package.json +3 -2
@@ -0,0 +1,1024 @@
1
+ /* Reader — an editorial, three-column documentation theme. */
2
+ :root {
3
+ --ink: oklch(18% 0.012 275);
4
+ --ink-raised: oklch(22% 0.014 275);
5
+ --ink-soft: oklch(27% 0.014 275);
6
+ --paper: oklch(98% 0.004 275);
7
+ --mist: oklch(95% 0.007 275);
8
+ --line-light: oklch(88% 0.01 275);
9
+ --text-light: oklch(96% 0.005 275);
10
+ --muted-dark: oklch(71% 0.012 275);
11
+ --line-dark: oklch(31% 0.013 275);
12
+ --lime: oklch(94% 0.176 120);
13
+ --lime-dark: oklch(40% 0.08 120);
14
+ --blue: rgb(var(--color-primary));
15
+ --blue-ink: rgb(var(--color-primary-dark));
16
+ --lavender: oklch(88% 0.058 286);
17
+ --font: var(--font-sans);
18
+ --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
19
+ --ease: cubic-bezier(0.22, 1, 0.36, 1);
20
+ --page-max: 1248px;
21
+ font-family: var(--font);
22
+ font-synthesis: none;
23
+ -webkit-font-smoothing: antialiased;
24
+ color-scheme: light;
25
+ }
26
+ * {
27
+ box-sizing: border-box;
28
+ }
29
+ html {
30
+ scroll-behavior: smooth;
31
+ scroll-padding-top: 110px;
32
+ }
33
+ body {
34
+ margin: 0;
35
+ font-size: 15px;
36
+ line-height: 1.7;
37
+ background: var(--paper);
38
+ color: var(--ink);
39
+ }
40
+ body.light {
41
+ background: var(--paper);
42
+ color: var(--ink);
43
+ color-scheme: light;
44
+ }
45
+ a {
46
+ color: inherit;
47
+ text-decoration: none;
48
+ }
49
+ button,
50
+ input,
51
+ select,
52
+ textarea {
53
+ font: inherit;
54
+ }
55
+ button {
56
+ cursor: pointer;
57
+ }
58
+ button,
59
+ a,
60
+ input,
61
+ select,
62
+ textarea,
63
+ summary {
64
+ -webkit-tap-highlight-color: transparent;
65
+ }
66
+ button:disabled {
67
+ cursor: default;
68
+ opacity: 0.55;
69
+ }
70
+ button {
71
+ color: inherit;
72
+ }
73
+ img,
74
+ svg {
75
+ display: block;
76
+ }
77
+ img {
78
+ max-width: 100%;
79
+ }
80
+ button svg,
81
+ a svg {
82
+ flex-shrink: 0;
83
+ }
84
+ ::selection {
85
+ background: var(--lime);
86
+ color: var(--ink);
87
+ }
88
+ :focus-visible {
89
+ outline: 2px solid var(--blue);
90
+ outline-offset: 5px;
91
+ }
92
+ .dark :focus-visible,
93
+ .site-header :focus-visible {
94
+ outline-color: var(--lime);
95
+ }
96
+ [hidden] {
97
+ display: none !important;
98
+ }
99
+ h1,
100
+ h2,
101
+ h3,
102
+ h4,
103
+ p {
104
+ margin-top: 0;
105
+ }
106
+ h1,
107
+ h2,
108
+ h3,
109
+ h4 {
110
+ line-height: 1.15;
111
+ }
112
+ p {
113
+ max-width: 70ch;
114
+ }
115
+ .eyebrow {
116
+ display: block;
117
+ font-size: 10px;
118
+ font-weight: 650;
119
+ text-transform: uppercase;
120
+ letter-spacing: 0.15em;
121
+ line-height: 1.6;
122
+ }
123
+ .small-dot {
124
+ display: inline-block;
125
+ width: 5px;
126
+ height: 5px;
127
+ border-radius: 50%;
128
+ background: currentColor;
129
+ flex-shrink: 0;
130
+ }
131
+ .pill {
132
+ display: inline-flex;
133
+ align-items: center;
134
+ gap: 7px;
135
+ padding: 4px 10px;
136
+ border: 1px solid currentColor;
137
+ border-radius: 30px;
138
+ font-size: 10px;
139
+ font-weight: 600;
140
+ line-height: 1.5;
141
+ white-space: nowrap;
142
+ }
143
+ .pill.soft {
144
+ background: var(--mist);
145
+ border-color: var(--line-light);
146
+ color: oklch(44% 0.018 275);
147
+ }
148
+ .skip-link {
149
+ position: fixed;
150
+ top: -100px;
151
+ left: 20px;
152
+ z-index: 100;
153
+ background: var(--lime);
154
+ color: var(--ink);
155
+ padding: 12px 20px;
156
+ border-radius: 4px;
157
+ }
158
+ .skip-link:focus {
159
+ top: 12px;
160
+ }
161
+ .brand {
162
+ display: inline-flex;
163
+ align-items: center;
164
+ gap: 10px;
165
+ font-size: 23px;
166
+ letter-spacing: -1.1px;
167
+ font-weight: 750;
168
+ line-height: 1;
169
+ }
170
+ .home-link {
171
+ display: inline-flex;
172
+ align-items: center;
173
+ }
174
+ .site-header {
175
+ height: 83px;
176
+ position: sticky;
177
+ top: 0;
178
+ z-index: 30;
179
+ background: var(--ink);
180
+ color: var(--text-light);
181
+ border-bottom: 1px solid var(--line-dark);
182
+ }
183
+ .header-inner {
184
+ max-width: 1440px;
185
+ padding: 0 48px;
186
+ height: 100%;
187
+ margin: 0 auto;
188
+ display: flex;
189
+ align-items: center;
190
+ gap: 48px;
191
+ }
192
+ .desktop-nav {
193
+ display: flex;
194
+ align-items: center;
195
+ gap: 30px;
196
+ margin-left: auto;
197
+ }
198
+ .desktop-nav a {
199
+ font-size: 11px;
200
+ font-weight: 550;
201
+ color: var(--muted-dark);
202
+ padding: 30px 0;
203
+ }
204
+ .desktop-nav a:hover,
205
+ .desktop-nav a[aria-current] {
206
+ color: var(--text-light);
207
+ }
208
+ .desktop-nav a[aria-current] {
209
+ text-decoration: underline;
210
+ text-underline-offset: 12px;
211
+ text-decoration-color: var(--lime);
212
+ }
213
+ .header-actions {
214
+ display: flex;
215
+ align-items: center;
216
+ gap: 25px;
217
+ }
218
+ .search-link {
219
+ display: flex;
220
+ align-items: center;
221
+ gap: 8px;
222
+ font-size: 11px;
223
+ color: var(--muted-dark);
224
+ }
225
+ kbd {
226
+ font-family: var(--font);
227
+ font-size: 10px;
228
+ width: 20px;
229
+ height: 22px;
230
+ display: inline-grid;
231
+ place-items: center;
232
+ border: 1px solid var(--line-dark);
233
+ border-radius: 4px;
234
+ margin-left: 5px;
235
+ }
236
+ .header-cta {
237
+ display: flex;
238
+ align-items: center;
239
+ gap: 14px;
240
+ font-size: 11px;
241
+ font-weight: 650;
242
+ border-radius: 40px;
243
+ border: 1px solid oklch(45% 0.014 275);
244
+ padding: 8px 16px;
245
+ }
246
+ .header-cta:hover {
247
+ background: var(--lime);
248
+ border-color: var(--lime);
249
+ color: var(--ink);
250
+ }
251
+ .menu-toggle {
252
+ display: none;
253
+ background: transparent;
254
+ border: 1px solid var(--line-dark);
255
+ border-radius: 4px;
256
+ padding: 10px;
257
+ }
258
+ #reader-mobile-nav {
259
+ background: var(--ink);
260
+ border-bottom: 1px solid var(--line-dark);
261
+ padding: 16px 24px 24px;
262
+ }
263
+ #reader-mobile-nav a {
264
+ display: flex;
265
+ align-items: center;
266
+ justify-content: space-between;
267
+ padding: 13px 0;
268
+ font-size: 15px;
269
+ }
270
+
271
+ .docs-shell {
272
+ max-width: 1536px;
273
+ margin: 0 auto;
274
+ display: grid;
275
+ grid-template-columns: var(--sidebar-width) minmax(0, 1fr) var(--toc-width);
276
+ min-height: calc(100vh - 83px);
277
+ }
278
+ .docs-sidebar {
279
+ border-right: 1px solid var(--line-light);
280
+ padding: 34px 23px;
281
+ position: sticky;
282
+ top: 83px;
283
+ height: calc(100vh - 83px);
284
+ overflow-y: auto;
285
+ display: flex;
286
+ flex-direction: column;
287
+ }
288
+ .docs-project {
289
+ padding: 0 12px 28px;
290
+ border-bottom: 1px solid var(--line-light);
291
+ margin-bottom: 10px;
292
+ }
293
+ .docs-map {
294
+ display: flex;
295
+ align-items: center;
296
+ flex-wrap: wrap;
297
+ gap: 13px;
298
+ }
299
+ .docs-map-label {
300
+ flex: 0 0 auto;
301
+ white-space: nowrap;
302
+ font-size: 38px;
303
+ font-weight: 700;
304
+ letter-spacing: -0.07em;
305
+ line-height: 1;
306
+ }
307
+ .docs-map-title {
308
+ min-width: 0;
309
+ overflow-wrap: anywhere;
310
+ font-size: 10px;
311
+ font-weight: 550;
312
+ line-height: 1.4;
313
+ letter-spacing: -0.02em;
314
+ padding-left: 13px;
315
+ border-left: 1px solid var(--line-light);
316
+ }
317
+ .docs-version {
318
+ display: inline-flex;
319
+ align-items: center;
320
+ gap: 6px;
321
+ background: var(--lime);
322
+ color: var(--ink);
323
+ padding: 4px 8px;
324
+ margin-top: 19px;
325
+ border-radius: 30px;
326
+ font-size: 8px;
327
+ font-weight: 600;
328
+ }
329
+ .docs-sidebar nav {
330
+ display: flex;
331
+ flex-direction: column;
332
+ }
333
+ .nav-section {
334
+ font-size: 9px;
335
+ color: oklch(49% 0.012 275);
336
+ text-transform: uppercase;
337
+ letter-spacing: 0.09em;
338
+ padding: 23px 12px 9px;
339
+ font-weight: 600;
340
+ }
341
+ .docs-sidebar nav > a {
342
+ display: flex;
343
+ align-items: center;
344
+ justify-content: space-between;
345
+ font-size: 11px;
346
+ padding: 9px 12px;
347
+ border-radius: 5px;
348
+ color: oklch(43% 0.017 275);
349
+ margin: 1px 0;
350
+ }
351
+ .docs-sidebar nav > a:hover {
352
+ background: var(--mist);
353
+ }
354
+ .docs-sidebar nav > a[aria-current] {
355
+ background: oklch(93% 0.025 286);
356
+ color: var(--blue-ink);
357
+ font-weight: 650;
358
+ }
359
+ .active-nav-dot {
360
+ height: 4px;
361
+ width: 4px;
362
+ background: var(--blue-ink);
363
+ border-radius: 50%;
364
+ }
365
+ .docs-sidebar-bottom {
366
+ margin-top: auto;
367
+ padding: 45px 12px 0;
368
+ }
369
+ .docs-sidebar-bottom a {
370
+ display: flex;
371
+ align-items: center;
372
+ gap: 9px;
373
+ font-size: 9px;
374
+ margin-top: 15px;
375
+ }
376
+ .docs-sidebar-bottom a > svg:last-child {
377
+ margin-left: auto;
378
+ }
379
+ .docs-sidebar-bottom p {
380
+ font-size: 9px;
381
+ color: oklch(54% 0.012 275);
382
+ margin: 28px 0 0;
383
+ line-height: 1.9;
384
+ }
385
+ .docs-main {
386
+ padding: 45px 55px 25px;
387
+ min-width: 0;
388
+ max-width: 875px;
389
+ width: 100%;
390
+ margin: 0 auto;
391
+ }
392
+ .doc-breadcrumb {
393
+ display: flex;
394
+ align-items: center;
395
+ gap: 9px;
396
+ color: oklch(50% 0.015 275);
397
+ font-size: 9px;
398
+ }
399
+ .doc-breadcrumb .pill {
400
+ margin-left: auto;
401
+ font-size: 8px;
402
+ padding-block: 3px;
403
+ }
404
+ .doc-title h1 {
405
+ font-size: clamp(35px, 3.4vw, 47px);
406
+ font-weight: 600;
407
+ letter-spacing: -0.055em;
408
+ margin: 28px 0 18px;
409
+ line-height: 1.17;
410
+ }
411
+ .doc-title > p {
412
+ color: oklch(47% 0.017 275);
413
+ font-size: 15px;
414
+ line-height: 1.8;
415
+ margin-bottom: 26px;
416
+ }
417
+ .doc-metadata {
418
+ display: flex;
419
+ gap: 15px;
420
+ align-items: center;
421
+ border-block: 1px solid var(--line-light);
422
+ padding: 12px 0;
423
+ font-size: 8px;
424
+ color: oklch(51% 0.012 275);
425
+ margin-bottom: 35px;
426
+ }
427
+ .doc-metadata > span:first-child::before {
428
+ content: "";
429
+ display: inline-block;
430
+ height: 4px;
431
+ width: 4px;
432
+ background: var(--blue);
433
+ border-radius: 50%;
434
+ margin-right: 6px;
435
+ }
436
+ .doc-metadata button {
437
+ margin-left: auto;
438
+ background: transparent;
439
+ color: inherit;
440
+ border: 0;
441
+ padding: 3px;
442
+ display: flex;
443
+ align-items: center;
444
+ gap: 6px;
445
+ font-size: 8px;
446
+ }
447
+ .reader-prose {
448
+ color: oklch(34% 0.018 275);
449
+ font-size: 13px;
450
+ line-height: 1.95;
451
+ overflow-wrap: break-word;
452
+ }
453
+ .reader-prose > p {
454
+ margin-bottom: 20px;
455
+ }
456
+ .reader-prose h2 {
457
+ font-size: 24px;
458
+ font-weight: 600;
459
+ letter-spacing: -0.04em;
460
+ color: var(--ink);
461
+ margin-top: 46px;
462
+ margin-bottom: 20px;
463
+ scroll-margin-top: 110px;
464
+ }
465
+ .reader-prose h3 {
466
+ font-size: 18px;
467
+ letter-spacing: -0.025em;
468
+ margin-top: 30px;
469
+ color: var(--ink);
470
+ }
471
+ .reader-prose strong {
472
+ color: var(--ink);
473
+ font-weight: 700;
474
+ }
475
+ .reader-prose a {
476
+ color: var(--blue-ink);
477
+ text-decoration: underline;
478
+ text-decoration-thickness: 1px;
479
+ text-underline-offset: 3px;
480
+ }
481
+ .reader-prose a:hover {
482
+ color: var(--ink);
483
+ }
484
+ .reader-prose ul,
485
+ .reader-prose ol {
486
+ padding-left: 21px;
487
+ }
488
+ .reader-prose li {
489
+ padding-left: 4px;
490
+ margin-bottom: 10px;
491
+ }
492
+ .reader-prose table {
493
+ width: 100%;
494
+ border-collapse: collapse;
495
+ margin: 25px 0;
496
+ font-size: 11px;
497
+ line-height: 1.8;
498
+ }
499
+ .reader-prose th {
500
+ background: var(--mist);
501
+ text-align: left;
502
+ color: var(--ink);
503
+ font-weight: 650;
504
+ }
505
+ .reader-prose th,
506
+ .reader-prose td {
507
+ padding: 13px 14px;
508
+ border-bottom: 1px solid var(--line-light);
509
+ vertical-align: top;
510
+ }
511
+ .reader-prose th:first-child,
512
+ .reader-prose td:first-child {
513
+ min-width: 110px;
514
+ width: 30%;
515
+ }
516
+ .reader-prose code {
517
+ font-family: var(--mono);
518
+ font-size: 0.9em;
519
+ background: var(--mist);
520
+ border-radius: 3px;
521
+ padding: 2px 4px;
522
+ }
523
+ .reader-prose pre {
524
+ padding: 20px;
525
+ overflow-x: auto;
526
+ border-radius: 5px;
527
+ }
528
+ .reader-prose pre code {
529
+ background: transparent;
530
+ padding: 0;
531
+ }
532
+ .doc-pagination {
533
+ display: grid;
534
+ grid-template-columns: 1fr 1fr;
535
+ gap: 16px;
536
+ margin-top: 55px;
537
+ padding-top: 30px;
538
+ border-top: 1px solid var(--line-light);
539
+ }
540
+ .doc-pagination a {
541
+ border: 1px solid var(--line-light);
542
+ padding: 16px 18px;
543
+ border-radius: 5px;
544
+ display: flex;
545
+ flex-direction: column;
546
+ gap: 5px;
547
+ }
548
+ .doc-pagination a:hover {
549
+ border-color: var(--blue);
550
+ background: oklch(96% 0.012 286);
551
+ }
552
+ .doc-pagination a:last-child {
553
+ text-align: right;
554
+ }
555
+ .doc-pagination span {
556
+ font-size: 8px;
557
+ color: oklch(51% 0.013 275);
558
+ }
559
+ .doc-pagination strong {
560
+ font-size: 11px;
561
+ font-weight: 600;
562
+ }
563
+ .doc-footer {
564
+ padding-top: 33px;
565
+ margin-top: 30px;
566
+ border-top: 1px solid var(--line-light);
567
+ display: flex;
568
+ align-items: center;
569
+ justify-content: space-between;
570
+ font-size: 8px;
571
+ color: oklch(54% 0.012 275);
572
+ }
573
+ .doc-footer-links {
574
+ display: flex;
575
+ align-items: center;
576
+ justify-content: flex-end;
577
+ flex-wrap: wrap;
578
+ gap: 18px;
579
+ }
580
+ .doc-footer-links a {
581
+ display: flex;
582
+ align-items: center;
583
+ gap: 7px;
584
+ }
585
+ .sourcey-attribution {
586
+ display: inline-flex;
587
+ align-items: center;
588
+ }
589
+ .docs-toc {
590
+ padding: 46px 25px 30px 10px;
591
+ position: sticky;
592
+ top: 83px;
593
+ align-self: start;
594
+ max-height: calc(100vh - 83px);
595
+ overflow-y: auto;
596
+ }
597
+ .docs-toc .eyebrow {
598
+ font-size: 8px;
599
+ color: oklch(45% 0.013 275);
600
+ letter-spacing: 0.1em;
601
+ }
602
+ .docs-toc nav {
603
+ display: flex;
604
+ flex-direction: column;
605
+ gap: 12px;
606
+ margin-top: 21px;
607
+ }
608
+ .docs-toc nav a {
609
+ font-size: 9px;
610
+ line-height: 1.65;
611
+ color: oklch(51% 0.013 275);
612
+ }
613
+ .docs-toc nav a:hover,
614
+ .docs-toc nav a[aria-current] {
615
+ color: var(--blue-ink);
616
+ }
617
+ .toc-example {
618
+ display: block;
619
+ border-top: 1px solid var(--line-light);
620
+ margin-top: 32px;
621
+ padding-top: 23px;
622
+ }
623
+ .toc-example > svg {
624
+ color: var(--blue-ink);
625
+ margin-bottom: 15px;
626
+ }
627
+ .toc-example strong {
628
+ font-size: 12px;
629
+ line-height: 1.5;
630
+ font-weight: 600;
631
+ display: block;
632
+ }
633
+ .toc-example > span {
634
+ display: flex;
635
+ align-items: center;
636
+ gap: 9px;
637
+ font-size: 8px;
638
+ color: oklch(51% 0.013 275);
639
+ margin-top: 13px;
640
+ }
641
+ .mobile-doc-nav {
642
+ display: none;
643
+ }
644
+ @media (min-width: 1500px) {
645
+ .docs-main {
646
+ padding-inline: 65px;
647
+ }
648
+ }
649
+ @media (max-width: 1200px) {
650
+ .docs-shell {
651
+ grid-template-columns: 220px minmax(0, 1fr) 175px;
652
+ }
653
+ .docs-sidebar {
654
+ padding-inline: 16px;
655
+ }
656
+ .docs-main {
657
+ padding-inline: 35px;
658
+ }
659
+ .docs-toc {
660
+ padding-right: 20px;
661
+ }
662
+ }
663
+ @media (max-width: 1050px) {
664
+ .docs-shell {
665
+ grid-template-columns: 215px minmax(0, 1fr);
666
+ }
667
+ .docs-toc {
668
+ display: none;
669
+ }
670
+ .docs-main {
671
+ max-width: 790px;
672
+ padding-inline: 45px;
673
+ }
674
+ }
675
+ @media (max-width: 900px) {
676
+ .docs-sidebar {
677
+ top: 72px;
678
+ height: calc(100vh - 72px);
679
+ }
680
+ .docs-shell {
681
+ min-height: calc(100vh - 72px);
682
+ }
683
+ .docs-main {
684
+ padding: 35px 30px;
685
+ }
686
+ .doc-title h1 {
687
+ font-size: 38px;
688
+ }
689
+ .doc-metadata {
690
+ flex-wrap: wrap;
691
+ gap: 9px;
692
+ }
693
+ }
694
+ @media (max-width: 700px) {
695
+ .docs-sidebar {
696
+ display: none;
697
+ }
698
+ .docs-shell {
699
+ display: block;
700
+ }
701
+ .mobile-doc-nav {
702
+ display: flex;
703
+ padding: 12px 20px;
704
+ align-items: center;
705
+ gap: 15px;
706
+ border-bottom: 1px solid var(--line-light);
707
+ background: var(--mist);
708
+ }
709
+ .mobile-doc-nav label {
710
+ font-size: 10px;
711
+ font-weight: 650;
712
+ }
713
+ .mobile-doc-nav select {
714
+ flex: 1;
715
+ min-width: 0;
716
+ font-size: 11px;
717
+ background: transparent;
718
+ border: 0;
719
+ padding: 6px 0;
720
+ color: var(--ink);
721
+ }
722
+ .docs-main {
723
+ padding: 30px 22px;
724
+ }
725
+ .doc-title h1 {
726
+ font-size: 39px;
727
+ }
728
+ .doc-title p {
729
+ font-size: 15px;
730
+ }
731
+ .reader-prose {
732
+ font-size: 14px;
733
+ }
734
+ .reader-prose h2 {
735
+ font-size: 25px;
736
+ }
737
+ .reader-prose table {
738
+ font-size: 11px;
739
+ }
740
+ .reader-prose th,
741
+ .reader-prose td {
742
+ padding: 12px 9px;
743
+ }
744
+ .reader-prose th:first-child,
745
+ .reader-prose td:first-child {
746
+ min-width: 86px;
747
+ }
748
+ .doc-pagination {
749
+ gap: 10px;
750
+ }
751
+ .doc-pagination a {
752
+ padding: 14px 12px;
753
+ }
754
+ .doc-footer {
755
+ font-size: 8px;
756
+ gap: 15px;
757
+ }
758
+ .doc-footer-links {
759
+ gap: 12px;
760
+ }
761
+ }
762
+ @media print {
763
+ .docs-sidebar,
764
+ .docs-toc,
765
+ .mobile-doc-nav,
766
+ .doc-metadata button,
767
+ .doc-pagination,
768
+ .doc-footer {
769
+ display: none;
770
+ }
771
+ .docs-shell {
772
+ display: block;
773
+ }
774
+ .docs-main {
775
+ padding: 0;
776
+ max-width: none;
777
+ }
778
+ .reader-prose {
779
+ font-size: 11pt;
780
+ }
781
+ .reader-prose h2 {
782
+ break-after: avoid;
783
+ }
784
+ .reader-prose a {
785
+ color: inherit;
786
+ }
787
+ }
788
+ .docs-main {
789
+ max-width: var(--content-max-width);
790
+ }
791
+ .reader-prose {
792
+ font-size: 15px;
793
+ line-height: 1.9;
794
+ max-width: 70ch;
795
+ }
796
+ .reader-prose table {
797
+ font-size: 12px;
798
+ }
799
+ .docs-sidebar nav > a {
800
+ font-size: 12px;
801
+ }
802
+ .nav-section {
803
+ font-size: 10px;
804
+ }
805
+ .docs-toc nav a {
806
+ font-size: 11px;
807
+ }
808
+ .docs-toc .eyebrow,
809
+ .doc-breadcrumb {
810
+ font-size: 10px;
811
+ }
812
+ .doc-metadata {
813
+ font-size: 10px;
814
+ }
815
+ .doc-metadata button {
816
+ font-size: 10px;
817
+ }
818
+ .doc-pagination strong {
819
+ font-size: 13px;
820
+ }
821
+ .doc-pagination span {
822
+ font-size: 10px;
823
+ }
824
+ @media (max-width: 700px) {
825
+ .reader-prose {
826
+ font-size: 15px;
827
+ }
828
+ .reader-prose table {
829
+ font-size: 12px;
830
+ }
831
+ .doc-metadata {
832
+ gap: 10px;
833
+ font-size: 9px;
834
+ }
835
+ .doc-metadata button {
836
+ font-size: 9px;
837
+ }
838
+ }
839
+
840
+ body#sourcey {
841
+ background: var(--paper);
842
+ color: var(--ink);
843
+ font-family: var(--font);
844
+ font-size: 15px;
845
+ line-height: 1.7;
846
+ }
847
+ .sourcey-reader .reader-prose ul {
848
+ list-style: disc;
849
+ margin: 1em 0;
850
+ }
851
+ .sourcey-reader .reader-prose ol {
852
+ list-style: decimal;
853
+ margin: 1em 0;
854
+ }
855
+ .sourcey-reader .reader-prose h3 {
856
+ margin-bottom: 1em;
857
+ font-weight: 700;
858
+ }
859
+ .sourcey-reader .reader-prose blockquote {
860
+ border-left: 2px solid var(--blue);
861
+ padding-left: 20px;
862
+ margin: 25px 0;
863
+ }
864
+ .sourcey-reader .reader-prose pre code {
865
+ color: inherit;
866
+ }
867
+ .sourcey-reader .reader-prose pre {
868
+ margin-block: 1em;
869
+ }
870
+ .sourcey-reader .reader-prose hr {
871
+ border: 0;
872
+ border-top: 1px solid var(--line-light);
873
+ margin: 30px 0;
874
+ }
875
+ .brand-mark {
876
+ width: 30px;
877
+ height: 34px;
878
+ }
879
+ .brand-logo {
880
+ width: auto;
881
+ max-width: 220px;
882
+ height: 34px;
883
+ }
884
+ .docs-map-title,
885
+ .docs-sidebar-bottom p,
886
+ .toc-example strong {
887
+ white-space: pre-line;
888
+ }
889
+ .docs-map-title {
890
+ max-width: 100px;
891
+ }
892
+ .search-link {
893
+ background: transparent;
894
+ border: 0;
895
+ padding: 0;
896
+ }
897
+ .desktop-nav a {
898
+ font-size: 12px;
899
+ }
900
+ .reader-mobile-fallback {
901
+ display: none;
902
+ }
903
+ .reader-chapter-fallback nav {
904
+ display: flex;
905
+ flex-direction: column;
906
+ gap: 10px;
907
+ padding-top: 12px;
908
+ }
909
+ .reader-chapter-fallback {
910
+ font-size: 12px;
911
+ }
912
+ .reader-tabs {
913
+ border-bottom: 1px solid var(--line-light);
914
+ padding-bottom: 12px;
915
+ }
916
+ @media (max-width: 1100px) {
917
+ .header-inner {
918
+ padding: 0 32px;
919
+ gap: 24px;
920
+ }
921
+ .desktop-nav {
922
+ gap: 22px;
923
+ }
924
+ .header-actions {
925
+ gap: 20px;
926
+ }
927
+ .search-link span,
928
+ .search-link kbd {
929
+ display: none;
930
+ }
931
+ }
932
+ @media (max-width: 900px) {
933
+ .desktop-nav {
934
+ display: none;
935
+ }
936
+ .header-actions {
937
+ margin-left: auto;
938
+ }
939
+ .menu-toggle {
940
+ display: flex;
941
+ }
942
+ .site-header {
943
+ height: 72px;
944
+ }
945
+ .header-inner {
946
+ padding: 0 24px;
947
+ }
948
+ .brand {
949
+ font-size: 21px;
950
+ }
951
+ .brand-mark {
952
+ width: 27px;
953
+ }
954
+ .reader-mobile-fallback {
955
+ display: flex;
956
+ padding: 0 24px 20px;
957
+ gap: 20px;
958
+ flex-wrap: wrap;
959
+ font-size: 12px;
960
+ }
961
+ .site-header:has(.reader-mobile-fallback:not([hidden])) {
962
+ height: auto;
963
+ }
964
+ }
965
+ @media (max-width: 600px) {
966
+ .header-inner {
967
+ gap: 10px;
968
+ padding: 0 20px;
969
+ }
970
+ .header-actions {
971
+ gap: 12px;
972
+ }
973
+ .header-cta {
974
+ display: none;
975
+ }
976
+ }
977
+ @media (prefers-reduced-motion: reduce) {
978
+ html {
979
+ scroll-behavior: auto;
980
+ }
981
+ *,
982
+ *::before,
983
+ *::after {
984
+ animation: none !important;
985
+ transition: none !important;
986
+ }
987
+ }
988
+ @media print {
989
+ .site-header,
990
+ .skip-link {
991
+ display: none;
992
+ }
993
+ body#sourcey {
994
+ background: white !important;
995
+ color: black !important;
996
+ }
997
+ }
998
+
999
+ /* Component primitives inherit the reader's editorial rhythm. */
1000
+ #sourcey #page.sourcey-reader::before {
1001
+ content: none;
1002
+ }
1003
+ #sourcey .reader-prose .table-wrap {
1004
+ overflow-x: auto;
1005
+ margin: 25px 0;
1006
+ }
1007
+ #sourcey .reader-prose .table-wrap table {
1008
+ margin: 0;
1009
+ }
1010
+
1011
+ /* A full document title stays readable when no short identity is configured. */
1012
+ .docs-map {
1013
+ overflow-wrap: anywhere;
1014
+ min-width: 0;
1015
+ }
1016
+ .docs-project-title {
1017
+ overflow-wrap: anywhere;
1018
+ }
1019
+ .docs-project-title .docs-map-label {
1020
+ white-space: normal;
1021
+ font-size: 24px;
1022
+ line-height: 1.25;
1023
+ letter-spacing: -0.04em;
1024
+ }