@supatent/supatent-docs 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/chunk-QVZFIUSH.js +13777 -0
  2. package/dist/index.d.ts +6 -0
  3. package/dist/index.js +75 -0
  4. package/dist/next-config.d.ts +20 -0
  5. package/dist/next-config.js +305 -0
  6. package/dist/types-Cf4pRODK.d.ts +60 -0
  7. package/package.json +49 -0
  8. package/runtime/middleware.ts +52 -0
  9. package/runtime/src/app/[locale]/docs-internal/[[...slug]]/page.tsx +91 -0
  10. package/runtime/src/app/[locale]/docs-internal/ai/all/route.ts +52 -0
  11. package/runtime/src/app/[locale]/docs-internal/ai/index/route.ts +52 -0
  12. package/runtime/src/app/[locale]/docs-internal/markdown/[...slug]/route.ts +50 -0
  13. package/runtime/src/app/globals.css +1082 -0
  14. package/runtime/src/app/layout.tsx +37 -0
  15. package/runtime/src/app/page.tsx +26 -0
  16. package/runtime/src/components/code-group-enhancer.tsx +128 -0
  17. package/runtime/src/components/docs-shell.tsx +140 -0
  18. package/runtime/src/components/header-dropdown.tsx +138 -0
  19. package/runtime/src/components/icons.tsx +58 -0
  20. package/runtime/src/components/locale-switcher.tsx +97 -0
  21. package/runtime/src/components/mobile-docs-menu.tsx +208 -0
  22. package/runtime/src/components/site-header.tsx +44 -0
  23. package/runtime/src/components/site-search.tsx +358 -0
  24. package/runtime/src/components/theme-toggle.tsx +74 -0
  25. package/runtime/src/docs.config.ts +91 -0
  26. package/runtime/src/framework/config.ts +76 -0
  27. package/runtime/src/framework/errors.ts +34 -0
  28. package/runtime/src/framework/locales.ts +45 -0
  29. package/runtime/src/framework/markdown-search-text.ts +11 -0
  30. package/runtime/src/framework/navigation.ts +58 -0
  31. package/runtime/src/framework/next-config.ts +160 -0
  32. package/runtime/src/framework/rendering.ts +445 -0
  33. package/runtime/src/framework/repository.ts +255 -0
  34. package/runtime/src/framework/runtime-locales.ts +85 -0
  35. package/runtime/src/framework/search-index-types.ts +34 -0
  36. package/runtime/src/framework/search-index.ts +271 -0
  37. package/runtime/src/framework/service.ts +302 -0
  38. package/runtime/src/framework/settings.ts +43 -0
  39. package/runtime/src/framework/site-title.ts +54 -0
  40. package/runtime/src/framework/theme.ts +17 -0
  41. package/runtime/src/framework/types.ts +66 -0
  42. package/runtime/src/framework/url.ts +78 -0
  43. package/runtime/src/supatent/client.ts +2 -0
  44. package/src/index.ts +11 -0
  45. package/src/next-config.ts +5 -0
  46. package/src/next.ts +10 -0
@@ -0,0 +1,1082 @@
1
+ :root,
2
+ [data-theme="light"] {
3
+ --bg: #f6f6f9;
4
+ --surface: #ffffff;
5
+ --surface-2: #eef0f8;
6
+ --text: #1f2430;
7
+ --muted: #5f6574;
8
+ --border: #d6d9e5;
9
+ --border-strong: #c3c8d9;
10
+ --accent: #4a5eff;
11
+ --accent-soft: #e3e8ff;
12
+ --header-bg: #f3f4f8;
13
+ --header-shadow: rgba(25, 30, 44, 0.08);
14
+ --code-bg: #f1f3fb;
15
+ }
16
+
17
+ [data-theme="dark"] {
18
+ --bg: #121624;
19
+ --surface: #171b2b;
20
+ --surface-2: #23283b;
21
+ --text: #e8ebf6;
22
+ --muted: #aab1c6;
23
+ --border: #2a324a;
24
+ --border-strong: #394361;
25
+ --accent: #9db2ff;
26
+ --accent-soft: #324166;
27
+ --header-bg: #1a1f2f;
28
+ --header-shadow: rgba(7, 9, 14, 0.45);
29
+ --code-bg: #1f2436;
30
+ }
31
+
32
+ * {
33
+ box-sizing: border-box;
34
+ }
35
+
36
+ html,
37
+ body {
38
+ margin: 0;
39
+ min-height: 100%;
40
+ }
41
+
42
+ html {
43
+ font-size: 15px;
44
+ }
45
+
46
+ body {
47
+ background: var(--bg);
48
+ color: var(--text);
49
+ font-family: "IBM Plex Sans", system-ui, sans-serif;
50
+ }
51
+
52
+ a {
53
+ color: var(--accent);
54
+ }
55
+
56
+ .topbar {
57
+ position: sticky;
58
+ top: 0;
59
+ z-index: 20;
60
+ background: var(--header-bg);
61
+ border-bottom: 1px solid var(--border);
62
+ box-shadow: 0 6px 16px var(--header-shadow);
63
+ }
64
+
65
+ .topbar-inner {
66
+ height: 4.15rem;
67
+ max-width: 1800px;
68
+ margin: 0 auto;
69
+ padding: 0 1rem;
70
+ display: grid;
71
+ align-items: center;
72
+ gap: 1rem;
73
+ grid-template-columns: 240px minmax(220px, 460px) 1fr;
74
+ }
75
+
76
+ .brand {
77
+ display: inline-flex;
78
+ align-items: center;
79
+ text-decoration: none;
80
+ color: var(--text);
81
+ }
82
+
83
+ .brand-text {
84
+ font-size: 1.14rem;
85
+ line-height: 1.2;
86
+ letter-spacing: 0;
87
+ font-family: inherit;
88
+ font-weight: 600;
89
+ color: var(--muted);
90
+ }
91
+
92
+ .brand:hover .brand-text,
93
+ .brand:focus-visible .brand-text {
94
+ color: var(--text);
95
+ }
96
+
97
+ .search-box {
98
+ display: flex;
99
+ align-items: center;
100
+ gap: 0.45rem;
101
+ border: 1px solid var(--border-strong);
102
+ border-radius: 0.75rem;
103
+ background: var(--surface);
104
+ color: var(--muted);
105
+ height: 3.05rem;
106
+ padding: 0 0.75rem;
107
+ }
108
+
109
+ .search-wrap {
110
+ position: relative;
111
+ }
112
+
113
+ .search-box:focus-within {
114
+ border-color: var(--accent);
115
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent);
116
+ }
117
+
118
+ .search-icon {
119
+ display: inline-flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+ width: 1rem;
123
+ height: 1rem;
124
+ color: var(--muted);
125
+ flex-shrink: 0;
126
+ opacity: 0.8;
127
+ }
128
+
129
+ .search-icon svg {
130
+ width: 1rem;
131
+ height: 1rem;
132
+ display: block;
133
+ }
134
+
135
+ .search-box input {
136
+ border: 0;
137
+ outline: none;
138
+ flex: 1;
139
+ color: var(--muted);
140
+ background: transparent;
141
+ font-size: 1.02rem;
142
+ }
143
+
144
+ .search-box input::placeholder {
145
+ color: var(--muted);
146
+ }
147
+
148
+ .search-results {
149
+ position: absolute;
150
+ top: calc(100% + 0.45rem);
151
+ left: 0;
152
+ right: 0;
153
+ z-index: 65;
154
+ border: 1px solid var(--border);
155
+ border-radius: 0.8rem;
156
+ background: var(--surface);
157
+ box-shadow: 0 14px 30px rgba(15, 23, 42, 0.18);
158
+ overflow: hidden;
159
+ }
160
+
161
+ .search-status {
162
+ padding: 0.72rem 0.78rem;
163
+ color: var(--muted);
164
+ font-size: 0.92rem;
165
+ }
166
+
167
+ .search-results-list {
168
+ list-style: none;
169
+ margin: 0;
170
+ padding: 0.3rem;
171
+ max-height: 24rem;
172
+ overflow: auto;
173
+ }
174
+
175
+ .search-result-link {
176
+ display: block;
177
+ text-decoration: none;
178
+ border-radius: 0.58rem;
179
+ padding: 0.6rem 0.65rem;
180
+ color: inherit;
181
+ }
182
+
183
+ .search-result-link:hover,
184
+ .search-result-link-active {
185
+ background: var(--code-bg);
186
+ }
187
+
188
+ .search-result-title {
189
+ display: block;
190
+ color: var(--text);
191
+ font-size: 0.95rem;
192
+ line-height: 1.3;
193
+ font-weight: 600;
194
+ }
195
+
196
+ .search-result-path {
197
+ display: block;
198
+ color: var(--muted);
199
+ font-size: 0.78rem;
200
+ line-height: 1.3;
201
+ margin-top: 0.1rem;
202
+ }
203
+
204
+ .search-result-snippet {
205
+ display: block;
206
+ color: var(--muted);
207
+ font-size: 0.82rem;
208
+ line-height: 1.35;
209
+ margin-top: 0.22rem;
210
+ }
211
+
212
+ .kbd {
213
+ border: 1px solid var(--border);
214
+ border-bottom-width: 2px;
215
+ border-radius: 0.4rem;
216
+ padding: 0.12rem 0.5rem;
217
+ font-size: 0.9rem;
218
+ color: var(--muted);
219
+ background: var(--surface-2);
220
+ }
221
+
222
+ .topbar-actions {
223
+ display: flex;
224
+ justify-content: flex-end;
225
+ align-items: center;
226
+ gap: 0.6rem;
227
+ }
228
+
229
+ .icon-link {
230
+ display: inline-flex;
231
+ align-items: center;
232
+ justify-content: center;
233
+ width: 2rem;
234
+ height: 2rem;
235
+ color: var(--muted);
236
+ text-decoration: none;
237
+ border-radius: 999px;
238
+ border: 1px solid transparent;
239
+ }
240
+
241
+ .icon-link svg {
242
+ width: 1rem;
243
+ height: 1rem;
244
+ display: block;
245
+ }
246
+
247
+ .icon-link:hover {
248
+ border-color: var(--border);
249
+ background: var(--surface);
250
+ }
251
+
252
+ .icon-link:focus-visible {
253
+ outline: 2px solid var(--accent);
254
+ outline-offset: 2px;
255
+ }
256
+
257
+ .theme-toggle-button {
258
+ padding: 0;
259
+ background: transparent;
260
+ cursor: pointer;
261
+ }
262
+
263
+ .select-wrap {
264
+ display: inline-flex;
265
+ align-items: center;
266
+ color: var(--text);
267
+ }
268
+
269
+ .select-leading-icon {
270
+ width: 0.95rem;
271
+ height: 0.95rem;
272
+ color: var(--muted);
273
+ display: inline-flex;
274
+ align-items: center;
275
+ justify-content: center;
276
+ }
277
+
278
+ .select-leading-icon svg {
279
+ width: 100%;
280
+ height: 100%;
281
+ display: block;
282
+ }
283
+
284
+ .header-dropdown {
285
+ position: relative;
286
+ }
287
+
288
+ .header-select-button {
289
+ display: inline-flex;
290
+ align-items: center;
291
+ gap: 0.2rem;
292
+ border: 0;
293
+ background: transparent;
294
+ color: var(--text);
295
+ font-size: 0.98rem;
296
+ line-height: 1;
297
+ padding: 0.3rem 0;
298
+ cursor: pointer;
299
+ }
300
+
301
+ .header-select-button:focus-visible {
302
+ outline: 2px solid var(--accent);
303
+ outline-offset: 4px;
304
+ border-radius: 0.4rem;
305
+ }
306
+
307
+ .header-select-value {
308
+ text-transform: capitalize;
309
+ }
310
+
311
+ .select-trailing-icon {
312
+ width: 0.95rem;
313
+ height: 0.95rem;
314
+ color: var(--muted);
315
+ display: inline-flex;
316
+ align-items: center;
317
+ justify-content: center;
318
+ transition: transform 0.15s ease;
319
+ }
320
+
321
+ .select-trailing-icon-open {
322
+ transform: rotate(180deg);
323
+ }
324
+
325
+ .select-trailing-icon svg {
326
+ width: 100%;
327
+ height: 100%;
328
+ display: block;
329
+ }
330
+
331
+ .header-dropdown-panel {
332
+ position: absolute;
333
+ top: calc(100% + 0.35rem);
334
+ right: 0;
335
+ min-width: 8.5rem;
336
+ border: 1px solid var(--border);
337
+ border-radius: 0.7rem;
338
+ background: var(--surface);
339
+ padding: 0.35rem;
340
+ box-shadow: 0 10px 24px rgba(17, 24, 39, 0.16);
341
+ z-index: 50;
342
+ }
343
+
344
+ .header-dropdown-list {
345
+ margin: 0;
346
+ padding: 0;
347
+ list-style: none;
348
+ display: grid;
349
+ gap: 0.15rem;
350
+ }
351
+
352
+ .header-dropdown-item {
353
+ width: 100%;
354
+ border: 0;
355
+ background: transparent;
356
+ color: var(--text);
357
+ text-align: left;
358
+ font-size: 0.95rem;
359
+ line-height: 1.35;
360
+ padding: 0.48rem 0.62rem;
361
+ border-radius: 0.45rem;
362
+ cursor: pointer;
363
+ }
364
+
365
+ .header-dropdown-item:hover,
366
+ .header-dropdown-item:focus-visible {
367
+ background: var(--code-bg);
368
+ outline: none;
369
+ }
370
+
371
+ .header-dropdown-item-active {
372
+ background: var(--code-bg);
373
+ font-weight: 600;
374
+ }
375
+
376
+ .home-wrap {
377
+ max-width: 1024px;
378
+ margin: 2.2rem auto;
379
+ padding: 0 1rem;
380
+ }
381
+
382
+ .home-card {
383
+ border: 1px solid var(--border);
384
+ border-radius: 0.9rem;
385
+ background: var(--surface);
386
+ padding: 1.2rem 1.3rem;
387
+ }
388
+
389
+ .home-card code {
390
+ font-family: "IBM Plex Mono", ui-monospace, monospace;
391
+ background: var(--code-bg);
392
+ border-radius: 0.4rem;
393
+ padding: 0.1rem 0.3rem;
394
+ }
395
+
396
+ .docs-grid {
397
+ display: grid;
398
+ grid-template-columns: minmax(220px, 340px) minmax(0, 1fr) minmax(220px, 360px);
399
+ border-top: 1px solid var(--border);
400
+ }
401
+
402
+ .docs-sidebar,
403
+ .docs-main,
404
+ .docs-toc {
405
+ min-height: calc(100vh - 4.2rem);
406
+ background: var(--bg);
407
+ }
408
+
409
+ .docs-sidebar {
410
+ border-right: 1px solid var(--border);
411
+ padding: 1rem 0.8rem 1.4rem 1rem;
412
+ position: sticky;
413
+ top: 4.2rem;
414
+ overflow-y: auto;
415
+ max-height: calc(100vh - 4.2rem);
416
+ }
417
+
418
+ .docs-main {
419
+ padding: 1.35rem 1.7rem 2.5rem;
420
+ border-right: 1px solid var(--border);
421
+ }
422
+
423
+ .docs-main h1 {
424
+ margin: 0;
425
+ font-size: clamp(2rem, 3.3vw, 3.1rem);
426
+ letter-spacing: 0.01em;
427
+ }
428
+
429
+ .docs-meta {
430
+ margin-top: 0.65rem;
431
+ color: var(--muted);
432
+ font-size: 0.95rem;
433
+ display: flex;
434
+ gap: 1rem;
435
+ flex-wrap: wrap;
436
+ align-items: center;
437
+ }
438
+
439
+ .docs-category-list,
440
+ .docs-nav-tree {
441
+ list-style: none;
442
+ padding: 0;
443
+ margin: 0;
444
+ }
445
+
446
+ .docs-category + .docs-category {
447
+ margin-top: 0.75rem;
448
+ }
449
+
450
+ .docs-category-summary {
451
+ display: flex;
452
+ align-items: center;
453
+ justify-content: space-between;
454
+ gap: 0.6rem;
455
+ cursor: pointer;
456
+ list-style: none;
457
+ padding: 0.25rem 0;
458
+ }
459
+
460
+ .docs-category-summary::-webkit-details-marker {
461
+ display: none;
462
+ }
463
+
464
+ .docs-category-title {
465
+ font-size: 1.14rem;
466
+ line-height: 1.25;
467
+ letter-spacing: 0;
468
+ font-weight: 600;
469
+ color: var(--muted);
470
+ }
471
+
472
+ .docs-category-chevron {
473
+ color: var(--muted);
474
+ transform: rotate(-90deg);
475
+ transition: transform 0.16s ease;
476
+ }
477
+
478
+ .docs-category-details[open] .docs-category-chevron {
479
+ transform: rotate(0deg);
480
+ }
481
+
482
+ .docs-category .docs-nav-tree {
483
+ margin-top: 0.35rem;
484
+ margin-left: 0.2rem;
485
+ padding-left: 0.5rem;
486
+ border-left: 1px solid var(--border);
487
+ }
488
+
489
+ .docs-nav-tree li + li {
490
+ margin-top: 0.28rem;
491
+ }
492
+
493
+ .docs-nav-link,
494
+ .docs-nav-group-label {
495
+ display: block;
496
+ text-decoration: none;
497
+ color: var(--muted);
498
+ border-radius: 0.45rem;
499
+ padding: 0.4rem 0.6rem;
500
+ font-size: 1.06rem;
501
+ line-height: 1.2;
502
+ font-weight: 500;
503
+ }
504
+
505
+ .docs-nav-group-label {
506
+ font-size: 0.85rem;
507
+ text-transform: uppercase;
508
+ letter-spacing: 0.03em;
509
+ color: var(--muted);
510
+ }
511
+
512
+ .docs-nav-link:hover {
513
+ background: var(--surface-2);
514
+ color: var(--text);
515
+ }
516
+
517
+ .docs-nav-link-active {
518
+ background: var(--accent);
519
+ color: #f5f7ff;
520
+ }
521
+
522
+ .docs-prose {
523
+ line-height: 1.62;
524
+ font-size: 1rem;
525
+ }
526
+
527
+ .docs-prose img {
528
+ display: block;
529
+ max-width: 100%;
530
+ height: auto;
531
+ }
532
+
533
+ .docs-prose h1 {
534
+ font-size: clamp(1.55rem, 2.2vw, 1.95rem);
535
+ line-height: 1.2;
536
+ margin-top: 2.1rem;
537
+ }
538
+
539
+ .docs-prose h2 {
540
+ font-size: clamp(1.3rem, 1.7vw, 1.55rem);
541
+ line-height: 1.25;
542
+ margin-top: 1.9rem;
543
+ }
544
+
545
+ .docs-prose h3 {
546
+ font-size: clamp(1.12rem, 1.35vw, 1.3rem);
547
+ line-height: 1.3;
548
+ margin-top: 1.6rem;
549
+ }
550
+
551
+ .docs-prose h1,
552
+ .docs-prose h2,
553
+ .docs-prose h3 {
554
+ scroll-margin-top: 5.6rem;
555
+ }
556
+
557
+ .docs-prose code,
558
+ .docs-prose pre {
559
+ font-family: "IBM Plex Mono", ui-monospace, monospace;
560
+ }
561
+
562
+ .docs-prose pre {
563
+ border: 1px solid var(--border);
564
+ background: var(--code-bg);
565
+ border-radius: 0.65rem;
566
+ padding: 0.8rem;
567
+ overflow-x: auto;
568
+ }
569
+
570
+ .docs-prose .docs-code-group {
571
+ margin: 1.25rem 0;
572
+ border: 0;
573
+ border-radius: 0;
574
+ background: transparent;
575
+ overflow: visible;
576
+ }
577
+
578
+ .docs-code-tabs {
579
+ display: flex;
580
+ align-items: stretch;
581
+ border-bottom: 1px solid var(--border-strong);
582
+ background: transparent;
583
+ overflow-x: auto;
584
+ scrollbar-width: thin;
585
+ margin-bottom: 0.65rem;
586
+ }
587
+
588
+ .docs-code-tab {
589
+ appearance: none;
590
+ border: 0;
591
+ border-bottom: 3px solid transparent;
592
+ background: transparent;
593
+ color: var(--muted);
594
+ padding: 0.68rem 2.6rem 0.56rem;
595
+ font-size: 1rem;
596
+ line-height: 1;
597
+ font-weight: 500;
598
+ cursor: pointer;
599
+ white-space: nowrap;
600
+ }
601
+
602
+ .docs-code-tab-active {
603
+ color: var(--text);
604
+ border-bottom-color: var(--accent);
605
+ background: transparent;
606
+ font-weight: 700;
607
+ }
608
+
609
+ .docs-code-tab:focus-visible {
610
+ outline: 2px solid var(--accent);
611
+ outline-offset: -2px;
612
+ }
613
+
614
+ .docs-code-panel[hidden] {
615
+ display: none;
616
+ }
617
+
618
+ .docs-code-window {
619
+ border: 1px solid var(--border);
620
+ border-radius: 0;
621
+ background: var(--surface);
622
+ }
623
+
624
+ .docs-code-window-chrome {
625
+ height: 2.9rem;
626
+ display: flex;
627
+ align-items: center;
628
+ gap: 0.4rem;
629
+ border-bottom: 1px solid var(--border);
630
+ background: color-mix(in srgb, var(--surface-2) 78%, var(--surface));
631
+ padding: 0 0.9rem;
632
+ }
633
+
634
+ .docs-code-window-dot {
635
+ width: 0.9rem;
636
+ height: 0.9rem;
637
+ border-radius: 999px;
638
+ background: color-mix(in srgb, var(--muted) 32%, transparent);
639
+ }
640
+
641
+ .docs-code-window-content {
642
+ position: relative;
643
+ padding: 1.25rem 2rem;
644
+ background: color-mix(in srgb, var(--surface-2) 72%, var(--surface));
645
+ }
646
+
647
+ .docs-prose pre.docs-code-pre {
648
+ margin: 0;
649
+ border: 0;
650
+ border-radius: 0;
651
+ background: transparent;
652
+ padding: 0;
653
+ }
654
+
655
+ .docs-prose pre.docs-code-pre code {
656
+ display: block;
657
+ color: color-mix(in srgb, var(--accent) 78%, #2f4f9f);
658
+ padding-right: 0;
659
+ font-size: 1rem;
660
+ line-height: 1.62;
661
+ }
662
+
663
+ .docs-code-copy {
664
+ display: none;
665
+ }
666
+
667
+ .docs-code-copy:hover {
668
+ border-color: var(--border);
669
+ color: var(--text);
670
+ }
671
+
672
+ .docs-code-copy:focus-visible {
673
+ outline: 2px solid var(--accent);
674
+ outline-offset: 2px;
675
+ }
676
+
677
+ .docs-prose :not(pre) > code {
678
+ background: var(--code-bg);
679
+ border: 1px solid var(--border);
680
+ padding: 0.1rem 0.3rem;
681
+ border-radius: 0.3rem;
682
+ }
683
+
684
+ .docs-toc {
685
+ padding: 1.15rem 1.2rem;
686
+ position: sticky;
687
+ top: 4.2rem;
688
+ max-height: calc(100vh - 4.2rem);
689
+ overflow-y: auto;
690
+ }
691
+
692
+ .docs-toc ul {
693
+ margin: 0;
694
+ padding: 0;
695
+ list-style: none;
696
+ }
697
+
698
+ .docs-toc li + li {
699
+ margin-top: 0.32rem;
700
+ }
701
+
702
+ .docs-toc a {
703
+ text-decoration: none;
704
+ color: var(--muted);
705
+ }
706
+
707
+ .docs-toc a:hover {
708
+ color: var(--accent);
709
+ }
710
+
711
+ .toc-nested {
712
+ padding-left: 1rem;
713
+ }
714
+
715
+ .docs-inline-toc {
716
+ display: none;
717
+ margin: 1rem 0 1.3rem;
718
+ padding: 0.85rem 0.95rem;
719
+ border: 1px solid var(--border);
720
+ border-radius: 0.7rem;
721
+ background: var(--surface);
722
+ }
723
+
724
+ .docs-inline-toc ul {
725
+ margin: 0;
726
+ padding: 0;
727
+ list-style: none;
728
+ }
729
+
730
+ .docs-inline-toc li + li {
731
+ margin-top: 0.2rem;
732
+ }
733
+
734
+ .docs-inline-toc a {
735
+ color: var(--muted);
736
+ text-decoration: none;
737
+ }
738
+
739
+ .docs-inline-toc a:hover {
740
+ color: var(--accent);
741
+ }
742
+
743
+ .docs-mobile-menu {
744
+ display: none;
745
+ }
746
+
747
+ .theme-toggle-label {
748
+ margin-left: 0.4rem;
749
+ font-size: 0.95rem;
750
+ color: var(--text);
751
+ }
752
+
753
+ @media (max-width: 1279px) {
754
+ .topbar-inner {
755
+ grid-template-columns: 210px minmax(190px, 1fr) auto;
756
+ }
757
+
758
+ .docs-grid {
759
+ grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
760
+ }
761
+
762
+ .docs-toc {
763
+ display: none;
764
+ }
765
+ }
766
+
767
+ @media (max-width: 1023px) {
768
+ .docs-grid {
769
+ grid-template-columns: 1fr;
770
+ }
771
+
772
+ .docs-sidebar {
773
+ display: none;
774
+ }
775
+
776
+ .docs-main {
777
+ border-right: 0;
778
+ min-height: 0;
779
+ padding: 1rem 1rem 2.1rem;
780
+ }
781
+
782
+ .docs-code-tab {
783
+ font-size: 1rem;
784
+ padding: 0.62rem 1.45rem 0.5rem;
785
+ }
786
+
787
+ .docs-code-window-content {
788
+ padding: 1rem 1rem;
789
+ }
790
+
791
+ .docs-main h1 {
792
+ font-size: clamp(1.7rem, 5.5vw, 2.3rem);
793
+ }
794
+
795
+ .docs-mobile-menu {
796
+ display: block;
797
+ margin-bottom: 0.55rem;
798
+ }
799
+
800
+ .docs-mobile-menu-trigger {
801
+ display: inline-flex;
802
+ align-items: center;
803
+ gap: 0.4rem;
804
+ border: 1px solid var(--border-strong);
805
+ border-radius: 999px;
806
+ background: var(--surface);
807
+ color: var(--text);
808
+ height: 2.35rem;
809
+ padding: 0 0.82rem;
810
+ font-size: 0.95rem;
811
+ cursor: pointer;
812
+ }
813
+
814
+ .docs-mobile-menu-trigger svg {
815
+ width: 1.05rem;
816
+ height: 1.05rem;
817
+ }
818
+
819
+ .docs-mobile-menu-overlay {
820
+ position: fixed;
821
+ inset: 0;
822
+ border: 0;
823
+ padding: 0;
824
+ margin: 0;
825
+ width: 100%;
826
+ background: rgba(7, 10, 18, 0.45);
827
+ z-index: 69;
828
+ cursor: pointer;
829
+ }
830
+
831
+ .docs-mobile-menu-panel {
832
+ position: fixed;
833
+ top: 0;
834
+ left: 0;
835
+ bottom: 0;
836
+ width: min(88vw, 23rem);
837
+ border-right: 1px solid var(--border);
838
+ background: var(--surface);
839
+ transform: translateX(-105%);
840
+ transition: transform 0.2s ease;
841
+ z-index: 70;
842
+ overflow-y: auto;
843
+ padding: calc(0.9rem + env(safe-area-inset-top, 0px)) 0.9rem 1rem;
844
+ }
845
+
846
+ .docs-mobile-menu-panel-open {
847
+ transform: translateX(0);
848
+ }
849
+
850
+ .docs-mobile-menu-header {
851
+ display: flex;
852
+ align-items: center;
853
+ justify-content: space-between;
854
+ margin-bottom: 0.9rem;
855
+ }
856
+
857
+ .docs-mobile-menu-header h2 {
858
+ margin: 0;
859
+ font-size: 1.15rem;
860
+ line-height: 1.2;
861
+ }
862
+
863
+ .docs-mobile-close {
864
+ width: 2.2rem;
865
+ height: 2.2rem;
866
+ }
867
+
868
+ .docs-mobile-menu-section + .docs-mobile-menu-section {
869
+ margin-top: 0.9rem;
870
+ }
871
+
872
+ .docs-mobile-menu-section h3 {
873
+ margin: 0 0 0.5rem;
874
+ color: var(--muted);
875
+ font-size: 0.86rem;
876
+ text-transform: uppercase;
877
+ letter-spacing: 0.03em;
878
+ }
879
+
880
+ .docs-mobile-nav-tree {
881
+ list-style: none;
882
+ padding: 0;
883
+ margin: 0;
884
+ }
885
+
886
+ .docs-mobile-category + .docs-mobile-category {
887
+ margin-top: 0.55rem;
888
+ }
889
+
890
+ .docs-mobile-category-summary {
891
+ display: flex;
892
+ align-items: center;
893
+ justify-content: space-between;
894
+ list-style: none;
895
+ cursor: pointer;
896
+ padding: 0.2rem 0;
897
+ color: var(--muted);
898
+ font-weight: 600;
899
+ font-size: 1.08rem;
900
+ }
901
+
902
+ .docs-mobile-category-summary::-webkit-details-marker {
903
+ display: none;
904
+ }
905
+
906
+ .docs-mobile-category-chevron {
907
+ color: var(--muted);
908
+ transform: rotate(-90deg);
909
+ transition: transform 0.16s ease;
910
+ }
911
+
912
+ .docs-mobile-category-details[open] .docs-mobile-category-chevron {
913
+ transform: rotate(0deg);
914
+ }
915
+
916
+ .docs-mobile-category .docs-mobile-nav-tree {
917
+ margin-top: 0.3rem;
918
+ margin-left: 0.4rem;
919
+ padding-left: 0.55rem;
920
+ border-left: 1px solid var(--border);
921
+ }
922
+
923
+ .docs-mobile-nav-tree li + li {
924
+ margin-top: 0.15rem;
925
+ }
926
+
927
+ .docs-mobile-toc {
928
+ list-style: none;
929
+ margin: 0;
930
+ padding: 0;
931
+ }
932
+
933
+ .docs-mobile-toc li + li {
934
+ margin-top: 0.22rem;
935
+ }
936
+
937
+ .docs-mobile-toc a {
938
+ text-decoration: none;
939
+ color: var(--muted);
940
+ }
941
+
942
+ .docs-mobile-toc a:hover {
943
+ color: var(--accent);
944
+ }
945
+
946
+ .docs-mobile-preferences {
947
+ display: grid;
948
+ gap: 0.55rem;
949
+ }
950
+
951
+ .docs-mobile-theme-toggle {
952
+ width: 100%;
953
+ height: 2.55rem;
954
+ border-radius: 0.7rem;
955
+ border-color: var(--border);
956
+ background: var(--surface-2);
957
+ justify-content: flex-start;
958
+ padding: 0 0.65rem;
959
+ }
960
+
961
+ .docs-mobile-locale-switcher {
962
+ width: 100%;
963
+ }
964
+
965
+ .docs-mobile-locale-switcher .header-select-button {
966
+ width: 100%;
967
+ justify-content: space-between;
968
+ border: 1px solid var(--border);
969
+ border-radius: 0.7rem;
970
+ background: var(--surface-2);
971
+ min-height: 2.55rem;
972
+ padding: 0 0.65rem;
973
+ }
974
+
975
+ .docs-mobile-locale-switcher .header-dropdown-panel {
976
+ left: 0;
977
+ right: 0;
978
+ min-width: 0;
979
+ }
980
+
981
+ .docs-inline-toc {
982
+ display: block;
983
+ }
984
+ }
985
+
986
+ @media (max-width: 767px) {
987
+ .topbar-inner {
988
+ grid-template-columns: 1fr auto;
989
+ height: auto;
990
+ padding: 0.7rem 0.8rem;
991
+ gap: 0.6rem;
992
+ }
993
+
994
+ .brand {
995
+ grid-column: 1 / -1;
996
+ }
997
+
998
+ .brand-text {
999
+ font-size: 1.14rem;
1000
+ }
1001
+
1002
+ .search-wrap {
1003
+ width: 100%;
1004
+ }
1005
+
1006
+ .search-box {
1007
+ grid-column: 1 / 2;
1008
+ width: 100%;
1009
+ height: 2.75rem;
1010
+ }
1011
+
1012
+ .search-results {
1013
+ position: fixed;
1014
+ top: 4.9rem;
1015
+ left: 0.55rem;
1016
+ right: 0.55rem;
1017
+ max-width: none;
1018
+ max-height: min(68vh, 28rem);
1019
+ }
1020
+
1021
+ .topbar-actions {
1022
+ grid-column: 2 / 3;
1023
+ gap: 0.4rem;
1024
+ }
1025
+
1026
+ .topbar-actions .icon-link {
1027
+ display: none;
1028
+ }
1029
+
1030
+ .header-select-value,
1031
+ .theme-toggle-label,
1032
+ .kbd {
1033
+ display: none;
1034
+ }
1035
+
1036
+ .docs-mobile-locale-switcher .header-select-value {
1037
+ display: inline;
1038
+ }
1039
+
1040
+ .header-select-button {
1041
+ padding: 0.2rem 0;
1042
+ }
1043
+
1044
+ .home-wrap {
1045
+ margin-top: 1.5rem;
1046
+ }
1047
+ }
1048
+
1049
+ @media (max-width: 479px) {
1050
+ .topbar-inner {
1051
+ grid-template-columns: 1fr;
1052
+ }
1053
+
1054
+ .topbar-actions {
1055
+ display: none;
1056
+ }
1057
+
1058
+ .search-box {
1059
+ height: 2.6rem;
1060
+ padding: 0 0.62rem;
1061
+ }
1062
+
1063
+ .search-results {
1064
+ top: 4.55rem;
1065
+ left: 0.4rem;
1066
+ right: 0.4rem;
1067
+ }
1068
+
1069
+ .docs-main {
1070
+ padding: 0.95rem 0.85rem 1.8rem;
1071
+ }
1072
+
1073
+ .docs-mobile-menu-panel {
1074
+ width: 92vw;
1075
+ }
1076
+ }
1077
+
1078
+ @media (pointer: coarse) {
1079
+ .kbd {
1080
+ display: none;
1081
+ }
1082
+ }