boltdocs 1.6.0 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/{SearchDialog-J3KNRGNO.mjs → SearchDialog-6Z7CUAYJ.mjs} +8 -1
  2. package/dist/{SearchDialog-3QICRMWF.css → SearchDialog-GOZ6X53X.css} +385 -113
  3. package/dist/{chunk-HSPDIRTW.mjs → chunk-SFVOGJ2W.mjs} +955 -737
  4. package/dist/client/index.css +385 -113
  5. package/dist/client/index.d.mts +19 -7
  6. package/dist/client/index.d.ts +19 -7
  7. package/dist/client/index.js +964 -577
  8. package/dist/client/index.mjs +118 -1
  9. package/dist/client/ssr.css +385 -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 +743 -474
  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 +12 -2
  17. package/dist/node/index.d.ts +12 -2
  18. package/dist/node/index.js +48 -21
  19. package/dist/node/index.mjs +48 -21
  20. package/dist/{types-DGIo1VKD.d.mts → types-BbceAHA0.d.mts} +15 -0
  21. package/dist/{types-DGIo1VKD.d.ts → types-BbceAHA0.d.ts} +15 -0
  22. package/package.json +1 -1
  23. package/src/client/app/index.tsx +16 -11
  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 +151 -0
  27. package/src/client/theme/components/mdx/index.ts +3 -0
  28. package/src/client/theme/components/mdx/mdx-components.css +128 -0
  29. package/src/client/theme/styles/markdown.css +8 -3
  30. package/src/client/theme/styles/variables.css +34 -9
  31. package/src/client/theme/ui/ErrorBoundary/ErrorBoundary.tsx +46 -0
  32. package/src/client/theme/ui/ErrorBoundary/index.ts +1 -0
  33. package/src/client/theme/ui/Layout/Layout.tsx +10 -11
  34. package/src/client/theme/ui/Layout/base.css +15 -3
  35. package/src/client/theme/ui/Link/Link.tsx +2 -2
  36. package/src/client/theme/ui/Link/LinkPreview.tsx +9 -14
  37. package/src/client/theme/ui/Link/link-preview.css +30 -27
  38. package/src/client/theme/ui/Navbar/Navbar.tsx +65 -17
  39. package/src/client/theme/ui/Navbar/Tabs.tsx +99 -0
  40. package/src/client/theme/ui/Navbar/navbar.css +119 -5
  41. package/src/client/theme/ui/OnThisPage/OnThisPage.tsx +66 -57
  42. package/src/client/theme/ui/OnThisPage/toc.css +30 -10
  43. package/src/client/theme/ui/ProgressBar/ProgressBar.css +17 -0
  44. package/src/client/theme/ui/ProgressBar/ProgressBar.tsx +51 -0
  45. package/src/client/theme/ui/ProgressBar/index.ts +1 -0
  46. package/src/client/theme/ui/SearchDialog/SearchDialog.tsx +11 -1
  47. package/src/client/theme/ui/Sidebar/Sidebar.tsx +97 -57
  48. package/src/client/theme/ui/Sidebar/sidebar.css +61 -67
  49. package/src/client/types.ts +12 -0
  50. package/src/node/config.ts +19 -1
  51. package/src/node/plugin/entry.ts +5 -1
  52. package/src/node/plugin/index.ts +2 -1
  53. package/src/node/routes/index.ts +13 -1
  54. package/src/node/routes/parser.ts +32 -7
  55. package/src/node/routes/types.ts +11 -1
  56. package/src/node/ssg/index.ts +2 -1
  57. package/src/node/ssg/options.ts +2 -0
@@ -1,10 +1,32 @@
1
1
  @import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";
2
2
 
3
+ /* src/client/theme/ui/ProgressBar/ProgressBar.css */
4
+ .boltdocs-progress-container {
5
+ position: fixed;
6
+ top: 0;
7
+ left: 0;
8
+ width: 100%;
9
+ height: 2px;
10
+ z-index: 1000;
11
+ pointer-events: none;
12
+ background: transparent;
13
+ }
14
+ .boltdocs-progress-bar {
15
+ height: 100%;
16
+ background:
17
+ linear-gradient(
18
+ 90deg,
19
+ var(--ld-color-primary),
20
+ var(--ld-gradient-to, var(--ld-color-primary)));
21
+ box-shadow: 0 0 8px var(--ld-color-primary-glow);
22
+ transition: width 0.1s ease-out;
23
+ }
24
+
3
25
  /* src/client/theme/styles/variables.css */
4
26
  :root[data-theme=light],
5
27
  :root.theme-light {
6
28
  --ld-bg-main: #ffffff;
7
- --ld-bg-soft: #f9fafb;
29
+ --ld-bg-soft: #eeeeee;
8
30
  --ld-bg-mute: #f3f4f6;
9
31
  --ld-surface: #ffffff;
10
32
  --ld-border-subtle: #e5e7eb;
@@ -31,7 +53,7 @@
31
53
  --ld-sidebar-bg: transparent;
32
54
  --ld-sidebar-blur: 0px;
33
55
  --ld-glow-1-bg: var(--ld-color-primary-glow);
34
- --ld-glow-2-bg: rgba(59, 130, 246, 0.15);
56
+ --ld-glow-2-bg: rgba(215, 59, 246, 0.15);
35
57
  --ld-ui-btn-primary-bg: var(--ld-btn-primary-bg);
36
58
  --ld-ui-btn-primary-text: var(--ld-btn-primary-text);
37
59
  --ld-ui-btn-secondary-bg: var(--ld-btn-secondary-bg);
@@ -56,10 +78,10 @@
56
78
  --ld-ui-tip-border: rgba(34, 197, 94, 0.3);
57
79
  }
58
80
  :root {
59
- --ld-bg-main: #0a0a0f;
60
- --ld-bg-soft: rgba(10, 10, 15, 0.2);
61
- --ld-bg-mute: #141420;
62
- --ld-surface: #1a1a2e;
81
+ --ld-bg-main: #000;
82
+ --ld-bg-soft: #12121272;
83
+ --ld-bg-mute: #090909;
84
+ --ld-surface: #1a1a1a;
63
85
  --ld-border-subtle: rgba(255, 255, 255, 0.06);
64
86
  --ld-border-strong: rgba(255, 255, 255, 0.12);
65
87
  --ld-text-main: #e4e4ed;
@@ -77,15 +99,15 @@
77
99
  --ld-btn-secondary-text: #e4e4ed;
78
100
  --ld-gradient-from: #ffffff;
79
101
  --ld-gradient-to: rgba(255, 255, 255, 0.7);
80
- --ld-code-bg: #0d0d14;
102
+ --ld-code-bg: #050505;
81
103
  --ld-code-header: #111119;
82
104
  --ld-code-text: #d4d4d4;
83
- --ld-navbar-bg: rgba(10, 10, 15, 0.2);
105
+ --ld-navbar-bg: #000;
84
106
  --ld-navbar-blur: 12px;
85
107
  --ld-sidebar-bg: transparent;
86
108
  --ld-sidebar-blur: 0px;
87
109
  --ld-glow-1-bg: var(--ld-color-primary-glow);
88
- --ld-glow-2-bg: rgba(59, 130, 246, 0.15);
110
+ --ld-glow-2-bg: rgba(246, 59, 187, 0.15);
89
111
  --ld-ui-btn-primary-bg: var(--ld-btn-primary-bg);
90
112
  --ld-ui-btn-primary-text: var(--ld-btn-primary-text);
91
113
  --ld-ui-btn-secondary-bg: var(--ld-btn-secondary-bg);
@@ -122,6 +144,7 @@
122
144
  Consolas,
123
145
  monospace;
124
146
  --ld-navbar-height: 3.5rem;
147
+ --ld-header-height: var(--ld-navbar-height);
125
148
  --ld-sidebar-width: 14.5rem;
126
149
  --ld-toc-width: 13rem;
127
150
  --ld-content-max-width: 820px;
@@ -129,6 +152,23 @@
129
152
  --ld-radius-md: 8px;
130
153
  --ld-radius-lg: 12px;
131
154
  --ld-radius-full: 9999px;
155
+ scrollbar-width: thin;
156
+ scrollbar-color: var(--ld-border-strong) transparent;
157
+ }
158
+ *::-webkit-scrollbar {
159
+ width: 6px;
160
+ height: 6px;
161
+ }
162
+ *::-webkit-scrollbar-track {
163
+ background: transparent;
164
+ }
165
+ *::-webkit-scrollbar-thumb {
166
+ background-color: var(--ld-border-strong);
167
+ border-radius: 20px;
168
+ border: transparent;
169
+ }
170
+ *::-webkit-scrollbar-thumb:hover {
171
+ background-color: var(--ld-text-dim);
132
172
  }
133
173
 
134
174
  /* src/client/theme/ui/Layout/base.css */
@@ -137,8 +177,14 @@
137
177
  *::after {
138
178
  box-sizing: border-box;
139
179
  }
180
+ html,
140
181
  body {
141
182
  margin: 0;
183
+ padding: 0;
184
+ height: 100%;
185
+ overflow: hidden;
186
+ }
187
+ body {
142
188
  font-family: var(--ld-font-sans);
143
189
  background-color: var(--ld-bg-main);
144
190
  color: var(--ld-text-main);
@@ -155,7 +201,9 @@ a {
155
201
  .boltdocs-layout {
156
202
  display: flex;
157
203
  flex-direction: column;
158
- min-height: 100vh;
204
+ height: 100vh;
205
+ width: 100vw;
206
+ overflow: hidden;
159
207
  }
160
208
  .boltdocs-main-container {
161
209
  display: flex;
@@ -163,7 +211,10 @@ a {
163
211
  width: 100%;
164
212
  max-width: 1440px;
165
213
  margin: 0 auto;
166
- padding: 0 1.5rem;
214
+ padding: 0 0.5rem;
215
+ height: calc(100vh - var(--ld-header-height));
216
+ overflow: hidden;
217
+ align-items: stretch;
167
218
  }
168
219
  .boltdocs-background-glow {
169
220
  position: fixed;
@@ -199,18 +250,22 @@ a {
199
250
  /* src/client/theme/ui/Navbar/navbar.css */
200
251
  .boltdocs-navbar {
201
252
  display: flex;
202
- align-items: center;
253
+ flex-direction: column;
203
254
  justify-content: center;
204
- height: var(--ld-navbar-height);
205
- padding: 0;
206
255
  background-color: var(--ld-navbar-bg);
207
- backdrop-filter: blur(var(--ld-navbar-blur));
208
- -webkit-backdrop-filter: blur(var(--ld-navbar-blur));
209
256
  border-bottom: 1px solid var(--ld-border-subtle);
210
257
  position: sticky;
211
258
  top: 0;
212
259
  z-index: 100;
213
260
  }
261
+ .boltdocs-navbar.has-tabs {
262
+ --ld-header-height: 102px !important;
263
+ height: 102px;
264
+ }
265
+ .boltdocs-navbar:not(.has-tabs) {
266
+ --ld-header-height: var(--ld-navbar-height);
267
+ height: var(--ld-navbar-height);
268
+ }
214
269
  .navbar-container {
215
270
  display: flex;
216
271
  align-items: center;
@@ -295,6 +350,15 @@ a {
295
350
  font-size: 0.875rem;
296
351
  border-radius: var(--ld-radius-md);
297
352
  transition: color 0.2s, background-color 0.2s;
353
+ display: flex;
354
+ align-items: center;
355
+ gap: 0.35rem;
356
+ }
357
+ .navbar-external-icon {
358
+ display: inline-flex;
359
+ align-items: center;
360
+ opacity: 0.6;
361
+ margin-top: 1px;
298
362
  }
299
363
  .navbar-links a:hover {
300
364
  color: var(--ld-text-main);
@@ -395,6 +459,94 @@ a {
395
459
  width: 18px;
396
460
  height: 18px;
397
461
  }
462
+ .boltdocs-tabs-container {
463
+ position: relative;
464
+ background: var(--ld-navbar-bg);
465
+ padding: 0;
466
+ height: 46px;
467
+ }
468
+ .boltdocs-tabs-container::after {
469
+ content: "";
470
+ position: absolute;
471
+ bottom: 0px;
472
+ left: 0;
473
+ right: 0;
474
+ height: 1px;
475
+ background: var(--ld-border-subtle);
476
+ z-index: 10;
477
+ }
478
+ .boltdocs-tabs {
479
+ max-width: 1440px;
480
+ margin: 0 auto;
481
+ display: flex;
482
+ gap: 2rem;
483
+ overflow-x: auto;
484
+ scrollbar-width: none;
485
+ padding: 0 1.5rem;
486
+ position: relative;
487
+ height: 100%;
488
+ }
489
+ .boltdocs-tabs::-webkit-scrollbar {
490
+ display: none;
491
+ }
492
+ .boltdocs-tab-item {
493
+ padding: 0.85rem 0;
494
+ padding-bottom: calc(0.85rem + 1px);
495
+ font-size: 0.875rem;
496
+ font-weight: 500;
497
+ color: var(--ld-text-muted);
498
+ text-decoration: none;
499
+ position: relative;
500
+ transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
501
+ white-space: nowrap;
502
+ display: flex;
503
+ align-items: center;
504
+ gap: 0.6rem;
505
+ opacity: 0.7;
506
+ z-index: 20;
507
+ }
508
+ .boltdocs-tab-item:hover {
509
+ color: var(--ld-text-main);
510
+ opacity: 1;
511
+ }
512
+ .tab-icon {
513
+ flex-shrink: 0;
514
+ display: flex;
515
+ align-items: center;
516
+ justify-content: center;
517
+ transition: transform 0.2s ease;
518
+ }
519
+ .boltdocs-tab-item:hover .tab-icon {
520
+ transform: translateY(-1px);
521
+ }
522
+ .tab-icon.lucide-icon,
523
+ .tab-icon.svg-icon svg {
524
+ width: 18px;
525
+ height: 18px;
526
+ stroke-width: 2.25px;
527
+ }
528
+ .boltdocs-tab-item.active {
529
+ color: var(--ld-text-main);
530
+ font-weight: 600;
531
+ opacity: 1;
532
+ text-shadow: 0 0 10px rgba(255, 255, 255, 0.2);
533
+ }
534
+ .boltdocs-tab-indicator {
535
+ position: absolute;
536
+ bottom: 0px;
537
+ left: 0;
538
+ height: 3px;
539
+ background: var(--ld-color-primary);
540
+ border-radius: 2px 2px 0 0;
541
+ box-shadow: 0 -2px 15px var(--ld-color-primary-glow);
542
+ transition:
543
+ transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
544
+ width 0.35s cubic-bezier(0.4, 0, 0.2, 1),
545
+ opacity 0.3s ease;
546
+ z-index: 100;
547
+ pointer-events: none;
548
+ transform-origin: left;
549
+ }
398
550
 
399
551
  /* src/client/theme/ui/Sidebar/sidebar.css */
400
552
  .boltdocs-sidebar {
@@ -404,64 +556,38 @@ a {
404
556
  backdrop-filter: blur(var(--ld-sidebar-blur));
405
557
  -webkit-backdrop-filter: blur(var(--ld-sidebar-blur));
406
558
  border-right: 1px solid var(--ld-border-subtle);
407
- padding: 1rem 0.6rem;
559
+ padding: 1.5rem 0.6rem;
408
560
  overflow-y: auto;
409
- position: sticky;
410
- top: var(--ld-navbar-height);
411
- height: calc(100vh - var(--ld-navbar-height));
412
- scrollbar-width: thin;
413
- scrollbar-color: var(--ld-bg-mute) transparent;
561
+ height: 100%;
562
+ scrollbar-width: none;
414
563
  display: flex;
415
564
  flex-direction: column;
416
- transition:
417
- width 0.3s cubic-bezier(0.16, 1, 0.3, 1),
418
- padding 0.3s cubic-bezier(0.16, 1, 0.3, 1),
419
- opacity 0.2s ease;
420
- }
421
- .boltdocs-sidebar > nav {
422
- flex: 1;
423
- }
424
- .boltdocs-main-container.sidebar-collapsed .boltdocs-sidebar {
425
- width: 54px;
426
- padding: 1rem 0;
427
- border-right: 1px solid var(--ld-border-subtle);
428
- opacity: 1;
429
- pointer-events: auto;
430
- overflow: hidden;
565
+ transform: translate3d(0, 0, 0);
566
+ backface-visibility: hidden;
431
567
  }
432
- .sidebar-collapse {
433
- width: 100%;
568
+ .sidebar-icon {
569
+ flex-shrink: 0;
434
570
  display: flex;
435
571
  align-items: center;
436
- justify-content: flex-end;
437
- padding: 0 0.75rem 1rem;
438
- transition: justify-content 0.3s ease;
439
- }
440
- .boltdocs-main-container.sidebar-collapsed .sidebar-collapse {
441
572
  justify-content: center;
442
- padding: 0 0 1rem;
443
573
  }
444
- .sidebar-collapse-btn {
574
+ .sidebar-icon.lucide-icon,
575
+ .sidebar-icon.svg-icon svg {
445
576
  color: var(--ld-text-muted);
446
- border: none;
447
- box-shadow: none;
448
- background-color: transparent;
449
- cursor: pointer;
450
- display: flex;
451
- align-items: center;
452
- justify-content: center;
453
- width: 32px;
454
- height: 32px;
455
- border-radius: var(--ld-radius-md);
456
- transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
577
+ width: 18px;
578
+ height: 18px;
579
+ stroke-width: 2px;
580
+ transition: color 0.2s ease;
457
581
  }
458
- .sidebar-collapse-btn:hover {
459
- background-color: var(--ld-bg-mute);
460
- color: var(--ld-text-main);
461
- transform: scale(1.05);
582
+ .sidebar-link:hover .sidebar-icon.lucide-icon,
583
+ .sidebar-link.active .sidebar-icon.lucide-icon {
584
+ color: var(--ld-color-primary);
585
+ }
586
+ .boltdocs-sidebar > nav {
587
+ flex: 1;
462
588
  }
463
589
  .boltdocs-sidebar::-webkit-scrollbar {
464
- width: 4px;
590
+ display: none;
465
591
  }
466
592
  .boltdocs-sidebar::-webkit-scrollbar-track {
467
593
  background: transparent;
@@ -476,21 +602,26 @@ a {
476
602
  margin: 0 0 0.5rem;
477
603
  }
478
604
  .sidebar-list li {
479
- margin-bottom: 1px;
605
+ margin-bottom: 2px;
480
606
  }
481
607
  .sidebar-link {
482
608
  display: flex;
483
609
  align-items: center;
484
610
  justify-content: space-between;
485
- padding: 0.45rem 0.75rem;
611
+ padding: 0.5rem 0.75rem;
486
612
  color: var(--ld-text-muted);
487
613
  text-decoration: none;
488
- border-radius: var(--ld-radius-md);
614
+ border-radius: 0.75rem;
489
615
  font-size: 0.875rem;
490
616
  font-weight: 500;
491
617
  transition: all 0.2s ease;
492
618
  margin: 0.15rem 0;
493
619
  }
620
+ .sidebar-link-title-container {
621
+ display: flex;
622
+ align-items: center;
623
+ gap: 0.75rem;
624
+ }
494
625
  .sidebar-link-content {
495
626
  display: flex;
496
627
  align-items: center;
@@ -498,7 +629,7 @@ a {
498
629
  width: 100%;
499
630
  gap: 0.5rem;
500
631
  }
501
- .sidebar-link-content > span:first-child {
632
+ .sidebar-link-content > span:last-child {
502
633
  flex: 1;
503
634
  word-wrap: break-word;
504
635
  }
@@ -537,10 +668,12 @@ a {
537
668
  }
538
669
  .sidebar-link:hover {
539
670
  color: var(--ld-color-primary-hover);
671
+ background-color: var(--ld-bg-soft);
540
672
  }
541
673
  .sidebar-link.active {
542
674
  color: var(--ld-color-primary);
543
675
  font-weight: 600;
676
+ background-color: var(--ld-bg-soft);
544
677
  }
545
678
  .sidebar-group {
546
679
  margin-top: 1.25rem;
@@ -553,25 +686,27 @@ a {
553
686
  align-items: center;
554
687
  justify-content: space-between;
555
688
  width: 100%;
556
- padding: 0.35rem 0.75rem;
689
+ padding: 0.5rem 0.75rem;
557
690
  background: none;
558
691
  border: none;
559
692
  border-radius: var(--ld-radius-md);
560
- color: var(--ld-text-dim);
693
+ color: var(--ld-text-muted);
561
694
  font-family: var(--ld-font-sans);
562
- font-size: 0.6875rem;
563
- font-weight: 700;
564
- text-transform: uppercase;
565
- letter-spacing: 0.08em;
695
+ font-size: 0.8125rem;
696
+ font-weight: 600;
566
697
  cursor: pointer;
567
698
  transition: color 0.2s, background-color 0.2s;
568
699
  }
700
+ .sidebar-group-header-content {
701
+ display: flex;
702
+ align-items: center;
703
+ gap: 0.75rem;
704
+ }
569
705
  .sidebar-group-header:hover {
570
- color: var(--ld-text-muted);
571
- background-color: rgba(255, 255, 255, 0.03);
706
+ color: var(--ld-text-main);
572
707
  }
573
708
  .sidebar-group-header.active {
574
- color: var(--ld-color-primary);
709
+ color: var(--ld-text-main);
575
710
  }
576
711
  .sidebar-group-chevron {
577
712
  display: inline-flex;
@@ -586,14 +721,23 @@ a {
586
721
  .sidebar-group-list {
587
722
  list-style: none;
588
723
  padding: 0;
589
- margin: 0.35rem 0 0;
590
- overflow: hidden;
724
+ margin: 0.35rem 0 0.5rem 0;
725
+ position: relative;
591
726
  }
592
727
  .sidebar-group-list li {
593
- margin-bottom: 1px;
728
+ margin-bottom: 2px;
594
729
  }
595
730
  .sidebar-link-nested {
596
- padding-left: 1.25rem;
731
+ padding-left: 0.75rem;
732
+ }
733
+ .sidebar-group-list {
734
+ list-style: none;
735
+ padding: 0;
736
+ margin: 0.35rem 0 0.5rem 0;
737
+ position: relative;
738
+ }
739
+ .sidebar-group-list li {
740
+ margin-bottom: 2px;
597
741
  }
598
742
 
599
743
  /* src/client/theme/ui/OnThisPage/toc.css */
@@ -601,12 +745,11 @@ a {
601
745
  width: var(--ld-toc-width);
602
746
  flex-shrink: 0;
603
747
  padding: 1.5rem 1rem;
604
- position: sticky;
605
- top: var(--ld-navbar-height);
606
- height: calc(100vh - var(--ld-navbar-height));
607
- overflow-y: auto;
608
- scrollbar-width: thin;
609
- scrollbar-color: var(--ld-bg-mute) transparent;
748
+ height: 100%;
749
+ display: flex;
750
+ flex-direction: column;
751
+ transform: translate3d(0, 0, 0);
752
+ backface-visibility: hidden;
610
753
  }
611
754
  .on-this-page-title {
612
755
  font-size: 0.6875rem;
@@ -616,10 +759,25 @@ a {
616
759
  color: var(--ld-text-dim);
617
760
  margin: 0 0 0.75rem;
618
761
  padding-left: 0.75rem;
762
+ flex-shrink: 0;
619
763
  }
620
764
  .on-this-page-container {
621
765
  position: relative;
622
766
  padding-left: 2px;
767
+ flex: 0 1 auto;
768
+ min-height: 0;
769
+ display: flex;
770
+ flex-direction: column;
771
+ }
772
+ .on-this-page-list-container {
773
+ overflow-y: auto;
774
+ max-height: 50vh;
775
+ flex: 0 1 auto;
776
+ position: relative;
777
+ scrollbar-width: none;
778
+ }
779
+ .on-this-page-list-container::-webkit-scrollbar {
780
+ display: none;
623
781
  }
624
782
  .on-this-page-list {
625
783
  list-style: none;
@@ -656,7 +814,7 @@ a {
656
814
  border-left: 2px solid transparent;
657
815
  margin-left: -2px;
658
816
  line-height: 1.4;
659
- transition: color 0.2s;
817
+ transition: color 0.2s, font-weight 0.2s;
660
818
  }
661
819
  .toc-link:hover {
662
820
  color: var(--ld-text-main);
@@ -666,9 +824,10 @@ a {
666
824
  font-weight: 500;
667
825
  }
668
826
  .toc-help {
669
- margin-top: 2rem;
827
+ margin-top: 1.5rem;
670
828
  padding-top: 1rem;
671
829
  border-top: 1px solid var(--ld-border-subtle);
830
+ flex-shrink: 0;
672
831
  }
673
832
  .toc-help-title {
674
833
  font-size: 0.6875rem;
@@ -699,8 +858,8 @@ a {
699
858
  transition: color 0.2s, background-color 0.2s;
700
859
  }
701
860
  .toc-help-link:hover {
702
- color: var(--ld-text-muted);
703
- background-color: rgba(255, 255, 255, 0.03);
861
+ color: var(--ld-text-main);
862
+ background-color: var(--ld-bg-mute);
704
863
  }
705
864
  .toc-help-link svg {
706
865
  width: 14px;
@@ -894,14 +1053,18 @@ a {
894
1053
  /* src/client/theme/styles/markdown.css */
895
1054
  .boltdocs-content {
896
1055
  flex: 1;
897
- padding: 2rem 2.5rem 2.5rem;
1056
+ padding: 2rem 2.5rem 6rem;
898
1057
  max-width: var(--ld-content-max-width);
899
1058
  margin: 0 auto;
900
1059
  min-width: 0;
1060
+ height: 100%;
1061
+ overflow-y: auto;
1062
+ scrollbar-width: none;
1063
+ scroll-behavior: smooth;
901
1064
  transition: max-width 0.3s cubic-bezier(0.16, 1, 0.3, 1), padding 0.3s ease;
902
1065
  }
903
- .boltdocs-main-container.sidebar-collapsed .boltdocs-content {
904
- max-width: 100%;
1066
+ .boltdocs-content::-webkit-scrollbar {
1067
+ display: none;
905
1068
  }
906
1069
  .boltdocs-breadcrumbs {
907
1070
  margin-bottom: 1.5rem;
@@ -1662,6 +1825,113 @@ a {
1662
1825
  .ld-file-tree__icon--spacer {
1663
1826
  width: 14px;
1664
1827
  }
1828
+ .ld-table-container {
1829
+ margin: 1.5rem 0;
1830
+ border: 1px solid var(--ld-border-subtle);
1831
+ border-radius: var(--ld-radius-lg);
1832
+ overflow: hidden;
1833
+ background: var(--ld-bg-soft);
1834
+ display: flex;
1835
+ flex-direction: column;
1836
+ }
1837
+ .ld-table-wrapper {
1838
+ overflow-x: auto;
1839
+ scrollbar-width: thin;
1840
+ }
1841
+ .ld-table {
1842
+ width: 100%;
1843
+ border-collapse: collapse;
1844
+ text-align: left;
1845
+ font-size: 0.875rem;
1846
+ line-height: 1.5;
1847
+ }
1848
+ .ld-table thead {
1849
+ background: var(--ld-bg-mute);
1850
+ border-bottom: 1px solid var(--ld-border-subtle);
1851
+ }
1852
+ .ld-table th {
1853
+ padding: 0.75rem 1rem;
1854
+ font-weight: 600;
1855
+ color: var(--ld-text-main);
1856
+ font-size: 0.8125rem;
1857
+ text-transform: uppercase;
1858
+ letter-spacing: 0.04em;
1859
+ white-space: nowrap;
1860
+ }
1861
+ .ld-table-header--sortable {
1862
+ cursor: pointer;
1863
+ transition: background-color 0.2s;
1864
+ }
1865
+ .ld-table-header--sortable:hover {
1866
+ background-color: var(--ld-bg-soft);
1867
+ }
1868
+ .ld-table-header-content {
1869
+ display: flex;
1870
+ align-items: center;
1871
+ gap: 0.5rem;
1872
+ }
1873
+ .ld-table-sort-icon {
1874
+ opacity: 0.8;
1875
+ color: var(--ld-color-primary);
1876
+ transition: opacity 0.2s;
1877
+ }
1878
+ .ld-table-sort-icon--hidden {
1879
+ opacity: 0;
1880
+ }
1881
+ .ld-table-header--sortable:hover .ld-table-sort-icon--hidden {
1882
+ opacity: 0.3;
1883
+ }
1884
+ .ld-table td {
1885
+ padding: 0.875rem 1rem;
1886
+ color: var(--ld-text-muted);
1887
+ border-bottom: 1px solid var(--ld-border-subtle);
1888
+ }
1889
+ .ld-table tr:last-child td {
1890
+ border-bottom: none;
1891
+ }
1892
+ .ld-table code {
1893
+ font-size: 0.8rem;
1894
+ padding: 0.2rem 0.4rem;
1895
+ background: rgba(255, 255, 255, 0.05);
1896
+ border-radius: 4px;
1897
+ }
1898
+ .ld-table-pagination {
1899
+ display: flex;
1900
+ align-items: center;
1901
+ justify-content: space-between;
1902
+ padding: 0.75rem 1rem;
1903
+ background: var(--ld-bg-mute);
1904
+ border-top: 1px solid var(--ld-border-subtle);
1905
+ font-size: 0.75rem;
1906
+ color: var(--ld-text-dim);
1907
+ }
1908
+ .ld-table-pagination-controls {
1909
+ display: flex;
1910
+ align-items: center;
1911
+ gap: 0.25rem;
1912
+ }
1913
+ .ld-table-pagination-btn {
1914
+ display: flex;
1915
+ align-items: center;
1916
+ justify-content: center;
1917
+ width: 1.75rem;
1918
+ height: 1.75rem;
1919
+ border-radius: var(--ld-radius-md);
1920
+ border: 1px solid var(--ld-border-subtle);
1921
+ background: var(--ld-bg-soft);
1922
+ color: var(--ld-text-muted);
1923
+ cursor: pointer;
1924
+ transition: all 0.2s;
1925
+ }
1926
+ .ld-table-pagination-btn:hover:not(:disabled) {
1927
+ background: var(--ld-bg-mute);
1928
+ color: var(--ld-text-main);
1929
+ border-color: var(--ld-border-strong);
1930
+ }
1931
+ .ld-table-pagination-btn:disabled {
1932
+ opacity: 0.4;
1933
+ cursor: not-allowed;
1934
+ }
1665
1935
 
1666
1936
  /* src/client/theme/components/PackageManagerTabs/pkg-tabs.css */
1667
1937
  .pkg-tabs-wrapper {
@@ -2170,50 +2440,52 @@ a.not-found-link:hover {
2170
2440
  .boltdocs-link-preview {
2171
2441
  position: fixed;
2172
2442
  z-index: 1000;
2173
- width: 320px;
2174
- padding: 1rem;
2175
- background-color: var(--ld-navbar-bg);
2176
- backdrop-filter: blur(var(--ld-navbar-blur));
2177
- -webkit-backdrop-filter: blur(var(--ld-navbar-blur));
2178
- border: 1px solid var(--ld-border-subtle);
2179
- border-radius: var(--ld-radius-md);
2180
- box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
2443
+ width: 260px;
2181
2444
  pointer-events: none;
2182
2445
  opacity: 0;
2183
- transform: translateY(10px) scale(0.95);
2184
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
2446
+ transform: translateY(8px) scale(0.98);
2447
+ transition: opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1), transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);
2185
2448
  font-family: var(--ld-font-sans);
2186
2449
  }
2187
2450
  .boltdocs-link-preview.is-visible {
2188
2451
  opacity: 1;
2189
2452
  transform: translateY(0) scale(1);
2190
2453
  }
2454
+ .boltdocs-link-preview-content {
2455
+ padding: 0.85rem 1rem;
2456
+ background-color: var(--ld-navbar-bg);
2457
+ backdrop-filter: blur(20px);
2458
+ -webkit-backdrop-filter: blur(20px);
2459
+ border: 1px solid var(--ld-border-subtle);
2460
+ border-radius: var(--ld-radius-lg);
2461
+ box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.2), 0 4px 10px -5px rgba(0, 0, 0, 0.1);
2462
+ }
2191
2463
  .boltdocs-link-preview-title {
2192
2464
  display: block;
2193
2465
  font-weight: 600;
2194
- font-size: 0.95rem;
2466
+ font-size: 0.875rem;
2195
2467
  color: var(--ld-text-main);
2196
- margin-bottom: 0.5rem;
2197
- line-height: 1.4;
2468
+ margin-bottom: 0.35rem;
2469
+ line-height: 1.3;
2198
2470
  }
2199
2471
  .boltdocs-link-preview-summary {
2200
2472
  display: block;
2201
- font-size: 0.85rem;
2473
+ font-size: 0.775rem;
2202
2474
  color: var(--ld-text-muted);
2203
2475
  line-height: 1.5;
2204
2476
  display: -webkit-box;
2205
- -webkit-line-clamp: 4;
2206
- line-clamp: 4;
2477
+ -webkit-line-clamp: 3;
2478
+ line-clamp: 3;
2207
2479
  -webkit-box-orient: vertical;
2208
2480
  overflow: hidden;
2209
2481
  }
2210
- [data-theme=dark] .boltdocs-link-preview {
2211
- background-color: var(--ld-navbar-bg);
2212
- border-color: var(--ld-border-subtle);
2213
- box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.2);
2482
+ [data-theme=dark] .boltdocs-link-preview-content {
2483
+ background-color: rgba(15, 15, 20, 0.8);
2484
+ border-color: rgba(255, 255, 255, 0.08);
2485
+ box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.5), 0 8px 16px -8px rgba(0, 0, 0, 0.3);
2214
2486
  }
2215
2487
  [data-theme=dark] .boltdocs-link-preview-title {
2216
- color: #f8fafc;
2488
+ color: #fff;
2217
2489
  }
2218
2490
  [data-theme=dark] .boltdocs-link-preview-summary {
2219
2491
  color: #94a3b8;