boltdocs 1.6.0 → 1.7.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 (51) hide show
  1. package/dist/{SearchDialog-3QICRMWF.css → SearchDialog-UOAW6IR3.css} +270 -113
  2. package/dist/{SearchDialog-J3KNRGNO.mjs → SearchDialog-YOXMFGH6.mjs} +1 -1
  3. package/dist/{chunk-HSPDIRTW.mjs → chunk-MULKZFVN.mjs} +872 -758
  4. package/dist/client/index.css +270 -113
  5. package/dist/client/index.d.mts +21 -7
  6. package/dist/client/index.d.ts +21 -7
  7. package/dist/client/index.js +637 -499
  8. package/dist/client/index.mjs +17 -1
  9. package/dist/client/ssr.css +270 -113
  10. package/dist/client/ssr.d.mts +3 -1
  11. package/dist/client/ssr.d.ts +3 -1
  12. package/dist/client/ssr.js +533 -412
  13. package/dist/client/ssr.mjs +3 -2
  14. package/dist/{config-DkZg5aCf.d.ts → config-D68h41CA.d.mts} +21 -2
  15. package/dist/{config-DkZg5aCf.d.mts → config-D68h41CA.d.ts} +21 -2
  16. package/dist/node/index.d.mts +10 -2
  17. package/dist/node/index.d.ts +10 -2
  18. package/dist/node/index.js +45 -21
  19. package/dist/node/index.mjs +45 -21
  20. package/dist/{types-DGIo1VKD.d.mts → types-CviV0GbX.d.mts} +13 -0
  21. package/dist/{types-DGIo1VKD.d.ts → types-CviV0GbX.d.ts} +13 -0
  22. package/package.json +1 -1
  23. package/src/client/app/index.tsx +8 -4
  24. package/src/client/index.ts +2 -0
  25. package/src/client/ssr.tsx +4 -1
  26. package/src/client/theme/components/mdx/Table.tsx +53 -0
  27. package/src/client/theme/components/mdx/index.ts +3 -0
  28. package/src/client/theme/components/mdx/mdx-components.css +49 -0
  29. package/src/client/theme/styles/markdown.css +8 -3
  30. package/src/client/theme/styles/variables.css +10 -9
  31. package/src/client/theme/ui/Layout/Layout.tsx +2 -10
  32. package/src/client/theme/ui/Layout/base.css +15 -3
  33. package/src/client/theme/ui/Link/Link.tsx +2 -2
  34. package/src/client/theme/ui/Link/LinkPreview.tsx +9 -14
  35. package/src/client/theme/ui/Link/link-preview.css +30 -27
  36. package/src/client/theme/ui/Navbar/Navbar.tsx +65 -17
  37. package/src/client/theme/ui/Navbar/Tabs.tsx +74 -0
  38. package/src/client/theme/ui/Navbar/navbar.css +111 -5
  39. package/src/client/theme/ui/OnThisPage/OnThisPage.tsx +65 -49
  40. package/src/client/theme/ui/OnThisPage/toc.css +30 -10
  41. package/src/client/theme/ui/Sidebar/Sidebar.tsx +97 -57
  42. package/src/client/theme/ui/Sidebar/sidebar.css +61 -67
  43. package/src/client/types.ts +10 -0
  44. package/src/node/config.ts +19 -1
  45. package/src/node/plugin/entry.ts +5 -1
  46. package/src/node/plugin/index.ts +2 -1
  47. package/src/node/routes/index.ts +12 -1
  48. package/src/node/routes/parser.ts +21 -7
  49. package/src/node/routes/types.ts +9 -1
  50. package/src/node/ssg/index.ts +2 -1
  51. package/src/node/ssg/options.ts +2 -0
@@ -4,50 +4,52 @@
4
4
  .boltdocs-link-preview {
5
5
  position: fixed;
6
6
  z-index: 1000;
7
- width: 320px;
8
- padding: 1rem;
9
- background-color: var(--ld-navbar-bg);
10
- backdrop-filter: blur(var(--ld-navbar-blur));
11
- -webkit-backdrop-filter: blur(var(--ld-navbar-blur));
12
- border: 1px solid var(--ld-border-subtle);
13
- border-radius: var(--ld-radius-md);
14
- box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
7
+ width: 260px;
15
8
  pointer-events: none;
16
9
  opacity: 0;
17
- transform: translateY(10px) scale(0.95);
18
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
10
+ transform: translateY(8px) scale(0.98);
11
+ transition: opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1), transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);
19
12
  font-family: var(--ld-font-sans);
20
13
  }
21
14
  .boltdocs-link-preview.is-visible {
22
15
  opacity: 1;
23
16
  transform: translateY(0) scale(1);
24
17
  }
18
+ .boltdocs-link-preview-content {
19
+ padding: 0.85rem 1rem;
20
+ background-color: var(--ld-navbar-bg);
21
+ backdrop-filter: blur(20px);
22
+ -webkit-backdrop-filter: blur(20px);
23
+ border: 1px solid var(--ld-border-subtle);
24
+ border-radius: var(--ld-radius-lg);
25
+ box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.2), 0 4px 10px -5px rgba(0, 0, 0, 0.1);
26
+ }
25
27
  .boltdocs-link-preview-title {
26
28
  display: block;
27
29
  font-weight: 600;
28
- font-size: 0.95rem;
30
+ font-size: 0.875rem;
29
31
  color: var(--ld-text-main);
30
- margin-bottom: 0.5rem;
31
- line-height: 1.4;
32
+ margin-bottom: 0.35rem;
33
+ line-height: 1.3;
32
34
  }
33
35
  .boltdocs-link-preview-summary {
34
36
  display: block;
35
- font-size: 0.85rem;
37
+ font-size: 0.775rem;
36
38
  color: var(--ld-text-muted);
37
39
  line-height: 1.5;
38
40
  display: -webkit-box;
39
- -webkit-line-clamp: 4;
40
- line-clamp: 4;
41
+ -webkit-line-clamp: 3;
42
+ line-clamp: 3;
41
43
  -webkit-box-orient: vertical;
42
44
  overflow: hidden;
43
45
  }
44
- [data-theme=dark] .boltdocs-link-preview {
45
- background-color: var(--ld-navbar-bg);
46
- border-color: var(--ld-border-subtle);
47
- box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.2);
46
+ [data-theme=dark] .boltdocs-link-preview-content {
47
+ background-color: rgba(15, 15, 20, 0.8);
48
+ border-color: rgba(255, 255, 255, 0.08);
49
+ box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.5), 0 8px 16px -8px rgba(0, 0, 0, 0.3);
48
50
  }
49
51
  [data-theme=dark] .boltdocs-link-preview-title {
50
- color: #f8fafc;
52
+ color: #fff;
51
53
  }
52
54
  [data-theme=dark] .boltdocs-link-preview-summary {
53
55
  color: #94a3b8;
@@ -57,7 +59,7 @@
57
59
  :root[data-theme=light],
58
60
  :root.theme-light {
59
61
  --ld-bg-main: #ffffff;
60
- --ld-bg-soft: #f9fafb;
62
+ --ld-bg-soft: #eeeeee;
61
63
  --ld-bg-mute: #f3f4f6;
62
64
  --ld-surface: #ffffff;
63
65
  --ld-border-subtle: #e5e7eb;
@@ -84,7 +86,7 @@
84
86
  --ld-sidebar-bg: transparent;
85
87
  --ld-sidebar-blur: 0px;
86
88
  --ld-glow-1-bg: var(--ld-color-primary-glow);
87
- --ld-glow-2-bg: rgba(59, 130, 246, 0.15);
89
+ --ld-glow-2-bg: rgba(215, 59, 246, 0.15);
88
90
  --ld-ui-btn-primary-bg: var(--ld-btn-primary-bg);
89
91
  --ld-ui-btn-primary-text: var(--ld-btn-primary-text);
90
92
  --ld-ui-btn-secondary-bg: var(--ld-btn-secondary-bg);
@@ -109,10 +111,10 @@
109
111
  --ld-ui-tip-border: rgba(34, 197, 94, 0.3);
110
112
  }
111
113
  :root {
112
- --ld-bg-main: #0a0a0f;
113
- --ld-bg-soft: rgba(10, 10, 15, 0.2);
114
- --ld-bg-mute: #141420;
115
- --ld-surface: #1a1a2e;
114
+ --ld-bg-main: #000;
115
+ --ld-bg-soft: #12121272;
116
+ --ld-bg-mute: #090909;
117
+ --ld-surface: #1a1a1a;
116
118
  --ld-border-subtle: rgba(255, 255, 255, 0.06);
117
119
  --ld-border-strong: rgba(255, 255, 255, 0.12);
118
120
  --ld-text-main: #e4e4ed;
@@ -130,15 +132,15 @@
130
132
  --ld-btn-secondary-text: #e4e4ed;
131
133
  --ld-gradient-from: #ffffff;
132
134
  --ld-gradient-to: rgba(255, 255, 255, 0.7);
133
- --ld-code-bg: #0d0d14;
135
+ --ld-code-bg: #050505;
134
136
  --ld-code-header: #111119;
135
137
  --ld-code-text: #d4d4d4;
136
- --ld-navbar-bg: rgba(10, 10, 15, 0.2);
138
+ --ld-navbar-bg: #000;
137
139
  --ld-navbar-blur: 12px;
138
140
  --ld-sidebar-bg: transparent;
139
141
  --ld-sidebar-blur: 0px;
140
142
  --ld-glow-1-bg: var(--ld-color-primary-glow);
141
- --ld-glow-2-bg: rgba(59, 130, 246, 0.15);
143
+ --ld-glow-2-bg: rgba(246, 59, 187, 0.15);
142
144
  --ld-ui-btn-primary-bg: var(--ld-btn-primary-bg);
143
145
  --ld-ui-btn-primary-text: var(--ld-btn-primary-text);
144
146
  --ld-ui-btn-secondary-bg: var(--ld-btn-secondary-bg);
@@ -175,6 +177,7 @@
175
177
  Consolas,
176
178
  monospace;
177
179
  --ld-navbar-height: 3.5rem;
180
+ --ld-header-height: var(--ld-navbar-height);
178
181
  --ld-sidebar-width: 14.5rem;
179
182
  --ld-toc-width: 13rem;
180
183
  --ld-content-max-width: 820px;
@@ -190,8 +193,14 @@
190
193
  *::after {
191
194
  box-sizing: border-box;
192
195
  }
196
+ html,
193
197
  body {
194
198
  margin: 0;
199
+ padding: 0;
200
+ height: 100%;
201
+ overflow: hidden;
202
+ }
203
+ body {
195
204
  font-family: var(--ld-font-sans);
196
205
  background-color: var(--ld-bg-main);
197
206
  color: var(--ld-text-main);
@@ -208,7 +217,9 @@ a {
208
217
  .boltdocs-layout {
209
218
  display: flex;
210
219
  flex-direction: column;
211
- min-height: 100vh;
220
+ height: 100vh;
221
+ width: 100vw;
222
+ overflow: hidden;
212
223
  }
213
224
  .boltdocs-main-container {
214
225
  display: flex;
@@ -216,7 +227,10 @@ a {
216
227
  width: 100%;
217
228
  max-width: 1440px;
218
229
  margin: 0 auto;
219
- padding: 0 1.5rem;
230
+ padding: 0 0.5rem;
231
+ height: calc(100vh - var(--ld-header-height));
232
+ overflow: hidden;
233
+ align-items: stretch;
220
234
  }
221
235
  .boltdocs-background-glow {
222
236
  position: fixed;
@@ -252,18 +266,22 @@ a {
252
266
  /* src/client/theme/ui/Navbar/navbar.css */
253
267
  .boltdocs-navbar {
254
268
  display: flex;
255
- align-items: center;
269
+ flex-direction: column;
256
270
  justify-content: center;
257
- height: var(--ld-navbar-height);
258
- padding: 0;
259
271
  background-color: var(--ld-navbar-bg);
260
- backdrop-filter: blur(var(--ld-navbar-blur));
261
- -webkit-backdrop-filter: blur(var(--ld-navbar-blur));
262
272
  border-bottom: 1px solid var(--ld-border-subtle);
263
273
  position: sticky;
264
274
  top: 0;
265
275
  z-index: 100;
266
276
  }
277
+ .boltdocs-navbar.has-tabs {
278
+ --ld-header-height: 102px !important;
279
+ height: 102px;
280
+ }
281
+ .boltdocs-navbar:not(.has-tabs) {
282
+ --ld-header-height: var(--ld-navbar-height);
283
+ height: var(--ld-navbar-height);
284
+ }
267
285
  .navbar-container {
268
286
  display: flex;
269
287
  align-items: center;
@@ -348,6 +366,15 @@ a {
348
366
  font-size: 0.875rem;
349
367
  border-radius: var(--ld-radius-md);
350
368
  transition: color 0.2s, background-color 0.2s;
369
+ display: flex;
370
+ align-items: center;
371
+ gap: 0.35rem;
372
+ }
373
+ .navbar-external-icon {
374
+ display: inline-flex;
375
+ align-items: center;
376
+ opacity: 0.6;
377
+ margin-top: 1px;
351
378
  }
352
379
  .navbar-links a:hover {
353
380
  color: var(--ld-text-main);
@@ -448,6 +475,84 @@ a {
448
475
  width: 18px;
449
476
  height: 18px;
450
477
  }
478
+ .boltdocs-tabs-container {
479
+ border-bottom: 1px solid var(--ld-border-subtle);
480
+ background: var(--ld-navbar-bg);
481
+ padding: 0;
482
+ height: 46px;
483
+ }
484
+ .boltdocs-tabs {
485
+ max-width: 1440px;
486
+ margin: 0 auto;
487
+ display: flex;
488
+ gap: 2rem;
489
+ overflow-x: auto;
490
+ scrollbar-width: none;
491
+ padding: 0 1.5rem;
492
+ }
493
+ .boltdocs-tabs::-webkit-scrollbar {
494
+ display: none;
495
+ }
496
+ .boltdocs-tab-item {
497
+ padding: 0.85rem 0;
498
+ padding-bottom: calc(0.85rem + 1px);
499
+ font-size: 0.875rem;
500
+ font-weight: 500;
501
+ color: var(--ld-text-muted);
502
+ text-decoration: none;
503
+ position: relative;
504
+ transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
505
+ white-space: nowrap;
506
+ display: flex;
507
+ align-items: center;
508
+ gap: 0.6rem;
509
+ opacity: 0.7;
510
+ }
511
+ .boltdocs-tab-item:hover {
512
+ color: var(--ld-text-main);
513
+ opacity: 1;
514
+ }
515
+ .tab-icon {
516
+ flex-shrink: 0;
517
+ display: flex;
518
+ align-items: center;
519
+ justify-content: center;
520
+ transition: transform 0.2s ease;
521
+ }
522
+ .boltdocs-tab-item:hover .tab-icon {
523
+ transform: translateY(-1px);
524
+ }
525
+ .tab-icon.lucide-icon,
526
+ .tab-icon.svg-icon svg {
527
+ width: 18px;
528
+ height: 18px;
529
+ stroke-width: 2.25px;
530
+ }
531
+ .boltdocs-tab-item.active {
532
+ color: var(--ld-text-main);
533
+ font-weight: 600;
534
+ opacity: 1;
535
+ text-shadow: 0 0 10px rgba(255, 255, 255, 0.2);
536
+ }
537
+ .boltdocs-tab-item::after {
538
+ content: "";
539
+ position: absolute;
540
+ bottom: 0px;
541
+ left: 0;
542
+ right: 0;
543
+ height: 3px;
544
+ background: var(--ld-primary);
545
+ border-radius: 2px 2px 0 0;
546
+ box-shadow: 0 0 12px rgba(var(--ld-primary-rgb), 0.6);
547
+ opacity: 0;
548
+ transform: scaleX(0);
549
+ transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
550
+ z-index: 10;
551
+ }
552
+ .boltdocs-tab-item.active::after {
553
+ opacity: 1;
554
+ transform: scaleX(1);
555
+ }
451
556
 
452
557
  /* src/client/theme/ui/Sidebar/sidebar.css */
453
558
  .boltdocs-sidebar {
@@ -457,64 +562,38 @@ a {
457
562
  backdrop-filter: blur(var(--ld-sidebar-blur));
458
563
  -webkit-backdrop-filter: blur(var(--ld-sidebar-blur));
459
564
  border-right: 1px solid var(--ld-border-subtle);
460
- padding: 1rem 0.6rem;
565
+ padding: 1.5rem 0.6rem;
461
566
  overflow-y: auto;
462
- position: sticky;
463
- top: var(--ld-navbar-height);
464
- height: calc(100vh - var(--ld-navbar-height));
465
- scrollbar-width: thin;
466
- scrollbar-color: var(--ld-bg-mute) transparent;
567
+ height: 100%;
568
+ scrollbar-width: none;
467
569
  display: flex;
468
570
  flex-direction: column;
469
- transition:
470
- width 0.3s cubic-bezier(0.16, 1, 0.3, 1),
471
- padding 0.3s cubic-bezier(0.16, 1, 0.3, 1),
472
- opacity 0.2s ease;
473
- }
474
- .boltdocs-sidebar > nav {
475
- flex: 1;
571
+ transform: translate3d(0, 0, 0);
572
+ backface-visibility: hidden;
476
573
  }
477
- .boltdocs-main-container.sidebar-collapsed .boltdocs-sidebar {
478
- width: 54px;
479
- padding: 1rem 0;
480
- border-right: 1px solid var(--ld-border-subtle);
481
- opacity: 1;
482
- pointer-events: auto;
483
- overflow: hidden;
484
- }
485
- .sidebar-collapse {
486
- width: 100%;
574
+ .sidebar-icon {
575
+ flex-shrink: 0;
487
576
  display: flex;
488
577
  align-items: center;
489
- justify-content: flex-end;
490
- padding: 0 0.75rem 1rem;
491
- transition: justify-content 0.3s ease;
492
- }
493
- .boltdocs-main-container.sidebar-collapsed .sidebar-collapse {
494
578
  justify-content: center;
495
- padding: 0 0 1rem;
496
579
  }
497
- .sidebar-collapse-btn {
580
+ .sidebar-icon.lucide-icon,
581
+ .sidebar-icon.svg-icon svg {
498
582
  color: var(--ld-text-muted);
499
- border: none;
500
- box-shadow: none;
501
- background-color: transparent;
502
- cursor: pointer;
503
- display: flex;
504
- align-items: center;
505
- justify-content: center;
506
- width: 32px;
507
- height: 32px;
508
- border-radius: var(--ld-radius-md);
509
- transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
583
+ width: 18px;
584
+ height: 18px;
585
+ stroke-width: 2px;
586
+ transition: color 0.2s ease;
510
587
  }
511
- .sidebar-collapse-btn:hover {
512
- background-color: var(--ld-bg-mute);
513
- color: var(--ld-text-main);
514
- transform: scale(1.05);
588
+ .sidebar-link:hover .sidebar-icon.lucide-icon,
589
+ .sidebar-link.active .sidebar-icon.lucide-icon {
590
+ color: var(--ld-color-primary);
591
+ }
592
+ .boltdocs-sidebar > nav {
593
+ flex: 1;
515
594
  }
516
595
  .boltdocs-sidebar::-webkit-scrollbar {
517
- width: 4px;
596
+ display: none;
518
597
  }
519
598
  .boltdocs-sidebar::-webkit-scrollbar-track {
520
599
  background: transparent;
@@ -529,21 +608,26 @@ a {
529
608
  margin: 0 0 0.5rem;
530
609
  }
531
610
  .sidebar-list li {
532
- margin-bottom: 1px;
611
+ margin-bottom: 2px;
533
612
  }
534
613
  .sidebar-link {
535
614
  display: flex;
536
615
  align-items: center;
537
616
  justify-content: space-between;
538
- padding: 0.45rem 0.75rem;
617
+ padding: 0.5rem 0.75rem;
539
618
  color: var(--ld-text-muted);
540
619
  text-decoration: none;
541
- border-radius: var(--ld-radius-md);
620
+ border-radius: 0.75rem;
542
621
  font-size: 0.875rem;
543
622
  font-weight: 500;
544
623
  transition: all 0.2s ease;
545
624
  margin: 0.15rem 0;
546
625
  }
626
+ .sidebar-link-title-container {
627
+ display: flex;
628
+ align-items: center;
629
+ gap: 0.75rem;
630
+ }
547
631
  .sidebar-link-content {
548
632
  display: flex;
549
633
  align-items: center;
@@ -551,7 +635,7 @@ a {
551
635
  width: 100%;
552
636
  gap: 0.5rem;
553
637
  }
554
- .sidebar-link-content > span:first-child {
638
+ .sidebar-link-content > span:last-child {
555
639
  flex: 1;
556
640
  word-wrap: break-word;
557
641
  }
@@ -590,10 +674,12 @@ a {
590
674
  }
591
675
  .sidebar-link:hover {
592
676
  color: var(--ld-color-primary-hover);
677
+ background-color: var(--ld-bg-soft);
593
678
  }
594
679
  .sidebar-link.active {
595
680
  color: var(--ld-color-primary);
596
681
  font-weight: 600;
682
+ background-color: var(--ld-bg-soft);
597
683
  }
598
684
  .sidebar-group {
599
685
  margin-top: 1.25rem;
@@ -606,25 +692,27 @@ a {
606
692
  align-items: center;
607
693
  justify-content: space-between;
608
694
  width: 100%;
609
- padding: 0.35rem 0.75rem;
695
+ padding: 0.5rem 0.75rem;
610
696
  background: none;
611
697
  border: none;
612
698
  border-radius: var(--ld-radius-md);
613
- color: var(--ld-text-dim);
699
+ color: var(--ld-text-muted);
614
700
  font-family: var(--ld-font-sans);
615
- font-size: 0.6875rem;
616
- font-weight: 700;
617
- text-transform: uppercase;
618
- letter-spacing: 0.08em;
701
+ font-size: 0.8125rem;
702
+ font-weight: 600;
619
703
  cursor: pointer;
620
704
  transition: color 0.2s, background-color 0.2s;
621
705
  }
706
+ .sidebar-group-header-content {
707
+ display: flex;
708
+ align-items: center;
709
+ gap: 0.75rem;
710
+ }
622
711
  .sidebar-group-header:hover {
623
- color: var(--ld-text-muted);
624
- background-color: rgba(255, 255, 255, 0.03);
712
+ color: var(--ld-text-main);
625
713
  }
626
714
  .sidebar-group-header.active {
627
- color: var(--ld-color-primary);
715
+ color: var(--ld-text-main);
628
716
  }
629
717
  .sidebar-group-chevron {
630
718
  display: inline-flex;
@@ -639,14 +727,23 @@ a {
639
727
  .sidebar-group-list {
640
728
  list-style: none;
641
729
  padding: 0;
642
- margin: 0.35rem 0 0;
643
- overflow: hidden;
730
+ margin: 0.35rem 0 0.5rem 0;
731
+ position: relative;
644
732
  }
645
733
  .sidebar-group-list li {
646
- margin-bottom: 1px;
734
+ margin-bottom: 2px;
647
735
  }
648
736
  .sidebar-link-nested {
649
- padding-left: 1.25rem;
737
+ padding-left: 0.75rem;
738
+ }
739
+ .sidebar-group-list {
740
+ list-style: none;
741
+ padding: 0;
742
+ margin: 0.35rem 0 0.5rem 0;
743
+ position: relative;
744
+ }
745
+ .sidebar-group-list li {
746
+ margin-bottom: 2px;
650
747
  }
651
748
 
652
749
  /* src/client/theme/ui/OnThisPage/toc.css */
@@ -654,12 +751,11 @@ a {
654
751
  width: var(--ld-toc-width);
655
752
  flex-shrink: 0;
656
753
  padding: 1.5rem 1rem;
657
- position: sticky;
658
- top: var(--ld-navbar-height);
659
- height: calc(100vh - var(--ld-navbar-height));
660
- overflow-y: auto;
661
- scrollbar-width: thin;
662
- scrollbar-color: var(--ld-bg-mute) transparent;
754
+ height: 100%;
755
+ display: flex;
756
+ flex-direction: column;
757
+ transform: translate3d(0, 0, 0);
758
+ backface-visibility: hidden;
663
759
  }
664
760
  .on-this-page-title {
665
761
  font-size: 0.6875rem;
@@ -669,10 +765,25 @@ a {
669
765
  color: var(--ld-text-dim);
670
766
  margin: 0 0 0.75rem;
671
767
  padding-left: 0.75rem;
768
+ flex-shrink: 0;
672
769
  }
673
770
  .on-this-page-container {
674
771
  position: relative;
675
772
  padding-left: 2px;
773
+ flex: 0 1 auto;
774
+ min-height: 0;
775
+ display: flex;
776
+ flex-direction: column;
777
+ }
778
+ .on-this-page-list-container {
779
+ overflow-y: auto;
780
+ max-height: 50vh;
781
+ flex: 0 1 auto;
782
+ position: relative;
783
+ scrollbar-width: none;
784
+ }
785
+ .on-this-page-list-container::-webkit-scrollbar {
786
+ display: none;
676
787
  }
677
788
  .on-this-page-list {
678
789
  list-style: none;
@@ -709,7 +820,7 @@ a {
709
820
  border-left: 2px solid transparent;
710
821
  margin-left: -2px;
711
822
  line-height: 1.4;
712
- transition: color 0.2s;
823
+ transition: color 0.2s, font-weight 0.2s;
713
824
  }
714
825
  .toc-link:hover {
715
826
  color: var(--ld-text-main);
@@ -719,9 +830,10 @@ a {
719
830
  font-weight: 500;
720
831
  }
721
832
  .toc-help {
722
- margin-top: 2rem;
833
+ margin-top: 1.5rem;
723
834
  padding-top: 1rem;
724
835
  border-top: 1px solid var(--ld-border-subtle);
836
+ flex-shrink: 0;
725
837
  }
726
838
  .toc-help-title {
727
839
  font-size: 0.6875rem;
@@ -752,8 +864,8 @@ a {
752
864
  transition: color 0.2s, background-color 0.2s;
753
865
  }
754
866
  .toc-help-link:hover {
755
- color: var(--ld-text-muted);
756
- background-color: rgba(255, 255, 255, 0.03);
867
+ color: var(--ld-text-main);
868
+ background-color: var(--ld-bg-mute);
757
869
  }
758
870
  .toc-help-link svg {
759
871
  width: 14px;
@@ -947,14 +1059,18 @@ a {
947
1059
  /* src/client/theme/styles/markdown.css */
948
1060
  .boltdocs-content {
949
1061
  flex: 1;
950
- padding: 2rem 2.5rem 2.5rem;
1062
+ padding: 2rem 2.5rem 6rem;
951
1063
  max-width: var(--ld-content-max-width);
952
1064
  margin: 0 auto;
953
1065
  min-width: 0;
1066
+ height: 100%;
1067
+ overflow-y: auto;
1068
+ scrollbar-width: none;
1069
+ scroll-behavior: smooth;
954
1070
  transition: max-width 0.3s cubic-bezier(0.16, 1, 0.3, 1), padding 0.3s ease;
955
1071
  }
956
- .boltdocs-main-container.sidebar-collapsed .boltdocs-content {
957
- max-width: 100%;
1072
+ .boltdocs-content::-webkit-scrollbar {
1073
+ display: none;
958
1074
  }
959
1075
  .boltdocs-breadcrumbs {
960
1076
  margin-bottom: 1.5rem;
@@ -1715,6 +1831,47 @@ a {
1715
1831
  .ld-file-tree__icon--spacer {
1716
1832
  width: 14px;
1717
1833
  }
1834
+ .ld-table-container {
1835
+ margin: 1.5rem 0;
1836
+ border: 1px solid var(--ld-border-subtle);
1837
+ border-radius: var(--ld-radius-lg);
1838
+ overflow: hidden;
1839
+ background: var(--ld-bg-soft);
1840
+ overflow-x: auto;
1841
+ }
1842
+ .ld-table {
1843
+ width: 100%;
1844
+ border-collapse: collapse;
1845
+ text-align: left;
1846
+ font-size: 0.875rem;
1847
+ line-height: 1.5;
1848
+ }
1849
+ .ld-table thead {
1850
+ background: var(--ld-bg-mute);
1851
+ border-bottom: 1px solid var(--ld-border-subtle);
1852
+ }
1853
+ .ld-table th {
1854
+ padding: 0.75rem 1rem;
1855
+ font-weight: 600;
1856
+ color: var(--ld-text-main);
1857
+ font-size: 0.8125rem;
1858
+ text-transform: uppercase;
1859
+ letter-spacing: 0.04em;
1860
+ }
1861
+ .ld-table td {
1862
+ padding: 0.875rem 1rem;
1863
+ color: var(--ld-text-muted);
1864
+ border-bottom: 1px solid var(--ld-border-subtle);
1865
+ }
1866
+ .ld-table tr:last-child td {
1867
+ border-bottom: none;
1868
+ }
1869
+ .ld-table code {
1870
+ font-size: 0.8rem;
1871
+ padding: 0.2rem 0.4rem;
1872
+ background: rgba(255, 255, 255, 0.05);
1873
+ border-radius: 4px;
1874
+ }
1718
1875
 
1719
1876
  /* src/client/theme/components/PackageManagerTabs/pkg-tabs.css */
1720
1877
  .pkg-tabs-wrapper {
@@ -1,6 +1,6 @@
1
- import { B as BoltdocsConfig } from '../config-DkZg5aCf.mjs';
2
- export { a as BoltdocsThemeConfig } from '../config-DkZg5aCf.mjs';
3
- import { C as CreateBoltdocsAppOptions, a as ComponentRoute } from '../types-DGIo1VKD.mjs';
1
+ import { B as BoltdocsConfig } from '../config-D68h41CA.mjs';
2
+ export { a as BoltdocsThemeConfig } from '../config-D68h41CA.mjs';
3
+ import { C as CreateBoltdocsAppOptions, a as ComponentRoute } from '../types-CviV0GbX.mjs';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import React from 'react';
6
6
  import 'vite';
@@ -54,6 +54,9 @@ interface RouteItem {
54
54
  text: string;
55
55
  expires?: string;
56
56
  };
57
+ icon?: string;
58
+ tab?: string;
59
+ groupIcon?: string;
57
60
  }
58
61
  /**
59
62
  * The sidebar navigation component.
@@ -63,11 +66,9 @@ interface RouteItem {
63
66
  * @param routes - Array of all generated routes to be displayed
64
67
  * @param config - Global configuration (which can contain sidebar overrides)
65
68
  */
66
- declare function Sidebar({ routes, config, isCollapsed, onToggle, }: {
69
+ declare function Sidebar({ routes, config, }: {
67
70
  routes: RouteItem[];
68
71
  config: BoltdocsConfig;
69
- isCollapsed?: boolean;
70
- onToggle?: () => void;
71
72
  }): react_jsx_runtime.JSX.Element;
72
73
 
73
74
  interface TocHeading {
@@ -343,4 +344,17 @@ interface FileTreeProps {
343
344
  */
344
345
  declare function FileTree({ children }: FileTreeProps): react_jsx_runtime.JSX.Element;
345
346
 
346
- export { Admonition, type AdmonitionProps, BackgroundGradient, Badge, type BadgeProps, BoltdocsConfig, Breadcrumbs, Button, type ButtonProps, Card, type CardProps, Cards, type CardsProps, CodeBlock, ComponentRoute, CreateBoltdocsAppOptions, Danger, FileTree, type FileTreeProps, Head, InfoBox, List, type ListProps, Loading, Navbar, NotFound, Note, OnThisPage, Playground, Sidebar, Tab, type TabProps, Tabs, type TabsProps, ThemeLayout, Tip, Video, Warning, createBoltdocsApp };
347
+ interface TableProps {
348
+ headers?: string[];
349
+ data?: (string | React.ReactNode)[][];
350
+ children?: React.ReactNode;
351
+ className?: string;
352
+ }
353
+ /**
354
+ * A consistent, themed table component for documentation.
355
+ * Can be used by passing structured 'headers' and 'data' props,
356
+ * or by wrapping standard <thead>/<tbody> elements.
357
+ */
358
+ declare function Table({ headers, data, children, className, }: TableProps): react_jsx_runtime.JSX.Element;
359
+
360
+ export { Admonition, type AdmonitionProps, BackgroundGradient, Badge, type BadgeProps, BoltdocsConfig, Breadcrumbs, Button, type ButtonProps, Card, type CardProps, Cards, type CardsProps, CodeBlock, ComponentRoute, CreateBoltdocsAppOptions, Danger, FileTree, type FileTreeProps, Head, InfoBox, List, type ListProps, Loading, Navbar, NotFound, Note, OnThisPage, Playground, Sidebar, Tab, type TabProps, Table, type TableProps, Tabs, type TabsProps, ThemeLayout, Tip, Video, Warning, createBoltdocsApp };