boltdocs 1.0.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 (137) hide show
  1. package/dist/CodeBlock-37XMKCYY.mjs +7 -0
  2. package/dist/PackageManagerTabs-4NWXLXQO.mjs +314 -0
  3. package/dist/Playground-OE2OE6B6.mjs +7 -0
  4. package/dist/SearchDialog-FTOQZ763.mjs +187 -0
  5. package/dist/SearchDialog-ZAZXYIFX.css +2147 -0
  6. package/dist/Video-I6QY4X7J.mjs +7 -0
  7. package/dist/chunk-2YRDWM6O.mjs +56 -0
  8. package/dist/chunk-PN4GCTYG.mjs +67 -0
  9. package/dist/chunk-X2TDGMTR.mjs +64 -0
  10. package/dist/chunk-X6BYQHVC.mjs +12 -0
  11. package/dist/chunk-Z7JHYNAS.mjs +57 -0
  12. package/dist/chunk-ZFCOLEXN.mjs +1644 -0
  13. package/dist/client/index.css +2147 -0
  14. package/dist/client/index.d.mts +298 -0
  15. package/dist/client/index.d.ts +298 -0
  16. package/dist/client/index.js +2793 -0
  17. package/dist/client/index.mjs +63 -0
  18. package/dist/client/ssr.css +2147 -0
  19. package/dist/client/ssr.d.mts +25 -0
  20. package/dist/client/ssr.d.ts +25 -0
  21. package/dist/client/ssr.js +2727 -0
  22. package/dist/client/ssr.mjs +32 -0
  23. package/dist/config-D2XmHJYe.d.mts +122 -0
  24. package/dist/config-D2XmHJYe.d.ts +122 -0
  25. package/dist/index-CRQKWAeo.d.mts +82 -0
  26. package/dist/index-CRQKWAeo.d.ts +82 -0
  27. package/dist/node/cli/index.d.mts +1 -0
  28. package/dist/node/cli/index.d.ts +1 -0
  29. package/dist/node/cli/index.js +199 -0
  30. package/dist/node/cli/index.mjs +154 -0
  31. package/dist/node/index.d.mts +79 -0
  32. package/dist/node/index.d.ts +79 -0
  33. package/dist/node/index.js +797 -0
  34. package/dist/node/index.mjs +719 -0
  35. package/package.json +79 -0
  36. package/src/client/app/index.tsx +422 -0
  37. package/src/client/app/preload.tsx +56 -0
  38. package/src/client/index.ts +40 -0
  39. package/src/client/ssr.tsx +50 -0
  40. package/src/client/theme/components/CodeBlock/CodeBlock.tsx +76 -0
  41. package/src/client/theme/components/CodeBlock/index.ts +1 -0
  42. package/src/client/theme/components/PackageManagerTabs/PackageManagerTabs.tsx +154 -0
  43. package/src/client/theme/components/PackageManagerTabs/index.ts +1 -0
  44. package/src/client/theme/components/PackageManagerTabs/pkg-tabs.css +64 -0
  45. package/src/client/theme/components/Playground/Playground.tsx +86 -0
  46. package/src/client/theme/components/Playground/index.ts +1 -0
  47. package/src/client/theme/components/Playground/playground.css +168 -0
  48. package/src/client/theme/components/Video/Video.tsx +84 -0
  49. package/src/client/theme/components/Video/index.ts +1 -0
  50. package/src/client/theme/components/Video/video.css +41 -0
  51. package/src/client/theme/components/mdx/Admonition.tsx +80 -0
  52. package/src/client/theme/components/mdx/Badge.tsx +31 -0
  53. package/src/client/theme/components/mdx/Button.tsx +50 -0
  54. package/src/client/theme/components/mdx/Card.tsx +80 -0
  55. package/src/client/theme/components/mdx/List.tsx +57 -0
  56. package/src/client/theme/components/mdx/Tabs.tsx +94 -0
  57. package/src/client/theme/components/mdx/index.ts +18 -0
  58. package/src/client/theme/components/mdx/mdx-components.css +405 -0
  59. package/src/client/theme/icons/bun.tsx +62 -0
  60. package/src/client/theme/icons/deno.tsx +20 -0
  61. package/src/client/theme/icons/discord.tsx +12 -0
  62. package/src/client/theme/icons/github.tsx +15 -0
  63. package/src/client/theme/icons/npm.tsx +13 -0
  64. package/src/client/theme/icons/pnpm.tsx +72 -0
  65. package/src/client/theme/icons/twitter.tsx +12 -0
  66. package/src/client/theme/styles/home.css +60 -0
  67. package/src/client/theme/styles/markdown.css +343 -0
  68. package/src/client/theme/styles/variables.css +162 -0
  69. package/src/client/theme/styles.css +38 -0
  70. package/src/client/theme/ui/BackgroundGradient/BackgroundGradient.tsx +10 -0
  71. package/src/client/theme/ui/BackgroundGradient/index.ts +1 -0
  72. package/src/client/theme/ui/Breadcrumbs/Breadcrumbs.tsx +68 -0
  73. package/src/client/theme/ui/Breadcrumbs/index.ts +1 -0
  74. package/src/client/theme/ui/Footer/footer.css +32 -0
  75. package/src/client/theme/ui/Head/Head.tsx +69 -0
  76. package/src/client/theme/ui/Head/index.ts +1 -0
  77. package/src/client/theme/ui/LanguageSwitcher/LanguageSwitcher.tsx +125 -0
  78. package/src/client/theme/ui/LanguageSwitcher/index.ts +1 -0
  79. package/src/client/theme/ui/LanguageSwitcher/language-switcher.css +98 -0
  80. package/src/client/theme/ui/Layout/Layout.tsx +213 -0
  81. package/src/client/theme/ui/Layout/base.css +76 -0
  82. package/src/client/theme/ui/Layout/index.ts +2 -0
  83. package/src/client/theme/ui/Layout/pagination.css +72 -0
  84. package/src/client/theme/ui/Layout/responsive.css +40 -0
  85. package/src/client/theme/ui/Link/Link.tsx +202 -0
  86. package/src/client/theme/ui/Link/index.ts +2 -0
  87. package/src/client/theme/ui/Loading/Loading.tsx +10 -0
  88. package/src/client/theme/ui/Loading/index.ts +1 -0
  89. package/src/client/theme/ui/Loading/loading.css +30 -0
  90. package/src/client/theme/ui/Navbar/GithubStars.tsx +27 -0
  91. package/src/client/theme/ui/Navbar/Navbar.tsx +145 -0
  92. package/src/client/theme/ui/Navbar/index.ts +2 -0
  93. package/src/client/theme/ui/Navbar/navbar.css +233 -0
  94. package/src/client/theme/ui/NotFound/NotFound.tsx +20 -0
  95. package/src/client/theme/ui/NotFound/index.ts +1 -0
  96. package/src/client/theme/ui/NotFound/not-found.css +64 -0
  97. package/src/client/theme/ui/OnThisPage/OnThisPage.tsx +192 -0
  98. package/src/client/theme/ui/OnThisPage/index.ts +1 -0
  99. package/src/client/theme/ui/OnThisPage/toc.css +132 -0
  100. package/src/client/theme/ui/PoweredBy/PoweredBy.tsx +18 -0
  101. package/src/client/theme/ui/PoweredBy/index.ts +1 -0
  102. package/src/client/theme/ui/PoweredBy/powered-by.css +76 -0
  103. package/src/client/theme/ui/SearchDialog/SearchDialog.tsx +199 -0
  104. package/src/client/theme/ui/SearchDialog/index.ts +1 -0
  105. package/src/client/theme/ui/SearchDialog/search.css +152 -0
  106. package/src/client/theme/ui/Sidebar/Sidebar.tsx +200 -0
  107. package/src/client/theme/ui/Sidebar/index.ts +1 -0
  108. package/src/client/theme/ui/Sidebar/sidebar.css +269 -0
  109. package/src/client/theme/ui/ThemeToggle/ThemeToggle.tsx +69 -0
  110. package/src/client/theme/ui/ThemeToggle/index.ts +1 -0
  111. package/src/client/theme/ui/VersionSwitcher/VersionSwitcher.tsx +136 -0
  112. package/src/client/theme/ui/VersionSwitcher/index.ts +1 -0
  113. package/src/client/utils.ts +26 -0
  114. package/src/node/cache.ts +94 -0
  115. package/src/node/cli/commands/config.ts +15 -0
  116. package/src/node/cli/commands/generate-css.ts +24 -0
  117. package/src/node/cli/constants.ts +70 -0
  118. package/src/node/cli/index.ts +22 -0
  119. package/src/node/config.ts +185 -0
  120. package/src/node/index.ts +21 -0
  121. package/src/node/mdx.ts +41 -0
  122. package/src/node/plugin/entry.ts +58 -0
  123. package/src/node/plugin/html.ts +55 -0
  124. package/src/node/plugin/index.ts +190 -0
  125. package/src/node/plugin/types.ts +11 -0
  126. package/src/node/routes/cache.ts +24 -0
  127. package/src/node/routes/index.ts +152 -0
  128. package/src/node/routes/parser.ts +127 -0
  129. package/src/node/routes/sorter.ts +42 -0
  130. package/src/node/routes/types.ts +49 -0
  131. package/src/node/ssg/index.ts +110 -0
  132. package/src/node/ssg/meta.ts +34 -0
  133. package/src/node/ssg/options.ts +13 -0
  134. package/src/node/ssg/sitemap.ts +54 -0
  135. package/src/node/utils.ts +134 -0
  136. package/tsconfig.json +20 -0
  137. package/tsup.config.ts +22 -0
@@ -0,0 +1,343 @@
1
+ /* ═══════════════════════════════════════════════════════════
2
+ MAIN CONTENT AREA
3
+ ═══════════════════════════════════════════════════════════ */
4
+ .boltdocs-content {
5
+ flex: 1;
6
+ padding: 2rem 2.5rem 2.5rem;
7
+ max-width: var(--ld-content-max-width);
8
+ margin: 0 auto;
9
+ min-width: 0;
10
+ transition:
11
+ max-width 0.3s cubic-bezier(0.16, 1, 0.3, 1),
12
+ padding 0.3s ease;
13
+ }
14
+
15
+ .boltdocs-main-container.sidebar-collapsed .boltdocs-content {
16
+ max-width: 100%;
17
+ }
18
+
19
+ /* ─── Breadcrumbs ────────────────────────────────────────── */
20
+ .boltdocs-breadcrumbs {
21
+ margin-bottom: 1.5rem;
22
+ }
23
+
24
+ .boltdocs-breadcrumbs-list {
25
+ display: flex;
26
+ align-items: center;
27
+ flex-wrap: wrap;
28
+ list-style: none;
29
+ padding: 0;
30
+ margin: 0;
31
+ font-size: 0.8125rem;
32
+ }
33
+
34
+ .boltdocs-breadcrumbs-item {
35
+ display: flex;
36
+ align-items: center;
37
+ }
38
+
39
+ .boltdocs-breadcrumbs-link {
40
+ display: flex;
41
+ align-items: center;
42
+ color: var(--ld-text-muted);
43
+ text-decoration: none;
44
+ transition: color 0.2s;
45
+ }
46
+
47
+ .boltdocs-breadcrumbs-link:hover {
48
+ color: var(--ld-color-primary);
49
+ }
50
+
51
+ .boltdocs-breadcrumbs-separator {
52
+ display: flex;
53
+ align-items: center;
54
+ color: var(--ld-text-dim);
55
+ margin: 0 0.5rem;
56
+ opacity: 0.5;
57
+ }
58
+
59
+ .boltdocs-breadcrumbs-text {
60
+ color: var(--ld-text-muted);
61
+ }
62
+
63
+ .boltdocs-breadcrumbs-active {
64
+ color: var(--ld-text-main);
65
+ font-weight: 500;
66
+ }
67
+
68
+ /* ─── Markdown Typography ────────────────────────────────── */
69
+ .boltdocs-page h1 {
70
+ font-size: 2.25rem;
71
+ margin: 0 0 0.75rem;
72
+ font-weight: 700;
73
+ letter-spacing: -0.025em;
74
+ color: var(--ld-text-main);
75
+ }
76
+
77
+ .boltdocs-page h1 + p {
78
+ color: var(--ld-text-muted);
79
+ font-size: 1.05rem;
80
+ margin-bottom: 2rem;
81
+ }
82
+
83
+ .boltdocs-page h2 {
84
+ font-size: 1.4rem;
85
+ margin-top: 2.5rem;
86
+ margin-bottom: 0.75rem;
87
+ font-weight: 700;
88
+ color: var(--ld-text-main);
89
+ padding-bottom: 0.5rem;
90
+ border-bottom: 1px solid var(--ld-border-subtle);
91
+ scroll-margin-top: 5rem;
92
+ letter-spacing: -0.015em;
93
+ }
94
+
95
+ .boltdocs-page h3 {
96
+ font-size: 1.125rem;
97
+ margin-top: 2rem;
98
+ margin-bottom: 0.5rem;
99
+ font-weight: 600;
100
+ color: var(--ld-text-main);
101
+ scroll-margin-top: 5rem;
102
+ }
103
+
104
+ .boltdocs-page p {
105
+ margin-top: 0;
106
+ margin-bottom: 1rem;
107
+ color: var(--ld-text-muted);
108
+ }
109
+
110
+ .boltdocs-page a {
111
+ color: var(--ld-color-primary);
112
+ text-decoration: none;
113
+ transition: color 0.2s;
114
+ }
115
+
116
+ .boltdocs-page a:hover {
117
+ color: var(--ld-color-primary-hover);
118
+ text-decoration: underline;
119
+ }
120
+
121
+ .boltdocs-page ul,
122
+ .boltdocs-page ol {
123
+ margin-top: 0;
124
+ margin-bottom: 1rem;
125
+ padding-left: 1.5rem;
126
+ color: var(--ld-text-muted);
127
+ }
128
+
129
+ .boltdocs-page li {
130
+ margin-bottom: 0.35rem;
131
+ }
132
+
133
+ .boltdocs-page strong {
134
+ color: var(--ld-text-main);
135
+ font-weight: 600;
136
+ }
137
+
138
+ .boltdocs-page blockquote {
139
+ margin: 1.5rem 0;
140
+ padding: 0.75rem 1.25rem;
141
+ border-left: 3px solid var(--ld-color-primary);
142
+ background-color: var(--ld-color-primary-muted);
143
+ border-radius: 0 var(--ld-radius-md) var(--ld-radius-md) 0;
144
+ color: var(--ld-text-muted);
145
+ }
146
+
147
+ .boltdocs-page blockquote p {
148
+ margin: 0;
149
+ }
150
+
151
+ .boltdocs-page hr {
152
+ border: none;
153
+ border-top: 1px solid var(--ld-border-subtle);
154
+ margin: 2rem 0;
155
+ }
156
+
157
+ /* ─── Images ─────────────────────────────────────────────── */
158
+ .boltdocs-page img {
159
+ max-width: 100%;
160
+ height: auto;
161
+ border-radius: var(--ld-radius-md);
162
+ margin: 1rem 0;
163
+ display: block;
164
+ }
165
+
166
+ .boltdocs-page table {
167
+ width: 100%;
168
+ border-collapse: collapse;
169
+ margin: 1.5rem 0;
170
+ font-size: 0.875rem;
171
+ }
172
+
173
+ .boltdocs-page th {
174
+ text-align: left;
175
+ padding: 0.6rem 0.75rem;
176
+ border-bottom: 2px solid var(--ld-border-subtle);
177
+ color: var(--ld-text-main);
178
+ font-weight: 600;
179
+ }
180
+
181
+ .boltdocs-page td {
182
+ padding: 0.5rem 0.75rem;
183
+ border-bottom: 1px solid var(--ld-border-subtle);
184
+ color: var(--ld-text-muted);
185
+ }
186
+
187
+ .boltdocs-page tr:hover td {
188
+ background-color: rgba(255, 255, 255, 0.02);
189
+ }
190
+
191
+ /* ─── Inline Code ────────────────────────────────────────── */
192
+ .boltdocs-page :not(pre) > code {
193
+ background-color: var(--ld-surface);
194
+ padding: 0.15rem 0.45rem;
195
+ border-radius: 5px;
196
+ font-family: var(--ld-font-mono);
197
+ font-size: 0.85em;
198
+ color: var(--ld-color-primary-hover);
199
+ border: 1px solid var(--ld-border-subtle);
200
+ }
201
+
202
+ /* ─── Code Blocks ────────────────────────────────────────── */
203
+ .code-block-wrapper {
204
+ margin: 1.5rem 0;
205
+ border-radius: var(--ld-radius-md);
206
+ overflow: hidden;
207
+ border: 1px solid var(--ld-border-subtle);
208
+ background-color: var(--ld-code-bg);
209
+ }
210
+
211
+ .code-block-header {
212
+ display: flex;
213
+ align-items: center;
214
+ justify-content: space-between;
215
+ padding: 0.5rem 1.25rem;
216
+ background-color: var(--ld-code-header);
217
+ border-bottom: 1px solid var(--ld-border-subtle);
218
+ font-size: 0.75rem;
219
+ }
220
+
221
+ .code-block-lang {
222
+ color: var(--ld-text-dim);
223
+ font-family: var(--ld-font-mono);
224
+ font-weight: 500;
225
+ text-transform: uppercase;
226
+ letter-spacing: 0.05em;
227
+ }
228
+
229
+ .code-block-copy {
230
+ display: flex;
231
+ align-items: center;
232
+ gap: 0.35rem;
233
+ padding: 0.2rem 0.55rem;
234
+ background: none;
235
+ border: 1px solid var(--ld-border-subtle);
236
+ border-radius: 5px;
237
+ color: var(--ld-text-dim);
238
+ font-family: var(--ld-font-sans);
239
+ font-size: 0.6875rem;
240
+ cursor: pointer;
241
+ transition: all 0.2s;
242
+ }
243
+
244
+ .code-block-copy:hover {
245
+ color: var(--ld-text-main);
246
+ border-color: var(--ld-border-strong);
247
+ background-color: rgba(255, 255, 255, 0.04);
248
+ }
249
+
250
+ .code-block-copy.copied {
251
+ color: #22c55e;
252
+ border-color: rgba(34, 197, 94, 0.3);
253
+ }
254
+
255
+ .code-block-copy svg {
256
+ width: 18px;
257
+ height: 18px;
258
+ }
259
+
260
+ .code-block-wrapper pre {
261
+ margin: 0 !important;
262
+ border-radius: 0 !important;
263
+ border: none !important;
264
+ background-color: transparent !important;
265
+ }
266
+
267
+ .code-block-wrapper pre > code {
268
+ padding: 1.25rem !important;
269
+ display: block !important;
270
+ }
271
+
272
+ .code-block-wrapper pre > code .line {
273
+ padding: 0;
274
+ }
275
+
276
+ /* Default pre (without wrapper) */
277
+ .boltdocs-page pre {
278
+ margin: 1.5rem 0;
279
+ border-radius: var(--ld-radius-md);
280
+ overflow-x: auto;
281
+ font-family: var(--ld-font-mono);
282
+ font-size: 0.8125rem;
283
+ line-height: 1.7;
284
+ background-color: var(--ld-code-bg);
285
+ color: var(--ld-code-text);
286
+ border: 1px solid var(--ld-border-subtle);
287
+ }
288
+
289
+ .boltdocs-page pre > code {
290
+ display: grid;
291
+ padding: 1rem 0;
292
+ background-color: transparent;
293
+ border: none;
294
+ color: inherit;
295
+ font-size: inherit;
296
+ }
297
+
298
+ .boltdocs-page pre > code .line {
299
+ padding: 0 1.25rem;
300
+ }
301
+
302
+ .boltdocs-page pre > code .line.highlighted {
303
+ background-color: var(--ld-color-primary-muted);
304
+ border-left: 2px solid var(--ld-color-primary);
305
+ }
306
+
307
+ /* ─── Header Anchors ─────────────────────────────────────── */
308
+ .header-anchor {
309
+ margin-left: 0.5rem;
310
+ color: var(--ld-text-dim);
311
+ opacity: 0;
312
+ transition: opacity 0.2s;
313
+ text-decoration: none;
314
+ font-weight: 400;
315
+ }
316
+
317
+ .boltdocs-page h2:hover .header-anchor,
318
+ .boltdocs-page h3:hover .header-anchor {
319
+ opacity: 1;
320
+ }
321
+
322
+ .header-anchor:hover {
323
+ color: var(--ld-color-primary);
324
+ }
325
+
326
+ .boltdocs-heading {
327
+ display: flex;
328
+ align-items: center;
329
+ }
330
+
331
+ .boltdocs-heading .header-anchor {
332
+ display: inline-flex;
333
+ align-items: center;
334
+ margin-left: 0.5rem;
335
+ color: var(--ld-text-dim);
336
+ opacity: 0;
337
+ transition: opacity 0.2s;
338
+ text-decoration: none;
339
+ }
340
+
341
+ .boltdocs-heading:hover .header-anchor {
342
+ opacity: 1;
343
+ }
@@ -0,0 +1,162 @@
1
+ /* ═══════════════════════════════════════════════════════════
2
+ Boltdocs — Dark Theme
3
+ Font: Inter · Accent: #7f13ec
4
+ ═══════════════════════════════════════════════════════════ */
5
+
6
+ @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap");
7
+
8
+ :root[data-theme="light"],
9
+ :root.theme-light {
10
+ --ld-bg-main: #ffffff;
11
+ --ld-bg-soft: #f9fafb;
12
+ --ld-bg-mute: #f3f4f6;
13
+
14
+ --ld-surface: #ffffff;
15
+
16
+ --ld-border-subtle: #e5e7eb;
17
+ --ld-border-strong: #d1d5db;
18
+
19
+ --ld-text-main: #111827;
20
+ --ld-text-muted: #4b5563;
21
+ --ld-text-dim: #6b7280;
22
+
23
+ --ld-color-primary: #7f13ec;
24
+ --ld-color-primary-hover: #6d0fd0;
25
+ --ld-color-primary-muted: rgba(127, 19, 236, 0.1);
26
+ --ld-color-primary-glow: rgba(127, 19, 236, 0.25);
27
+ --ld-color-primary-text: #ffffff;
28
+
29
+ /* ─ Buttons ─ */
30
+ --ld-btn-primary-bg: #7f13ec;
31
+ --ld-btn-primary-text: #ffffff;
32
+ --ld-btn-secondary-bg: #ffffff;
33
+ --ld-btn-secondary-text: #111827;
34
+
35
+ /* ─ Gradients ─ */
36
+ --ld-gradient-from: var(--ld-color-primary);
37
+ --ld-gradient-to: #a855f7;
38
+
39
+ --ld-code-bg: #f3f4f6;
40
+ --ld-code-header: #e5e7eb;
41
+ --ld-code-text: #1f2937;
42
+
43
+ /* ─ Customization ─ */
44
+ --ld-navbar-bg: rgba(255, 255, 255, 0.82);
45
+ --ld-navbar-blur: 12px;
46
+ --ld-sidebar-bg: transparent;
47
+ --ld-sidebar-blur: 0px;
48
+ --ld-glow-1-bg: var(--ld-color-primary-glow);
49
+ --ld-glow-2-bg: rgba(59, 130, 246, 0.15);
50
+
51
+ /* ─ UI Components (overridable independently from layout) ─ */
52
+ --ld-ui-btn-primary-bg: var(--ld-btn-primary-bg);
53
+ --ld-ui-btn-primary-text: var(--ld-btn-primary-text);
54
+ --ld-ui-btn-secondary-bg: var(--ld-btn-secondary-bg);
55
+ --ld-ui-btn-secondary-text: var(--ld-btn-secondary-text);
56
+
57
+ --ld-ui-success-bg: rgba(34, 197, 94, 0.1);
58
+ --ld-ui-success-text: #16a34a;
59
+ --ld-ui-success-border: rgba(34, 197, 94, 0.25);
60
+ --ld-ui-warning-bg: rgba(245, 158, 11, 0.1);
61
+ --ld-ui-warning-text: #d97706;
62
+ --ld-ui-warning-border: rgba(245, 158, 11, 0.25);
63
+ --ld-ui-danger-bg: rgba(239, 68, 68, 0.1);
64
+ --ld-ui-danger-text: #dc2626;
65
+ --ld-ui-danger-border: rgba(239, 68, 68, 0.25);
66
+ --ld-ui-info-bg: rgba(59, 130, 246, 0.1);
67
+ --ld-ui-info-text: #2563eb;
68
+ --ld-ui-info-border: rgba(59, 130, 246, 0.25);
69
+ --ld-ui-note-bg: rgba(59, 130, 246, 0.06);
70
+ --ld-ui-note-text: #2563eb;
71
+ --ld-ui-note-border: rgba(59, 130, 246, 0.3);
72
+ --ld-ui-tip-bg: rgba(34, 197, 94, 0.06);
73
+ --ld-ui-tip-text: #16a34a;
74
+ --ld-ui-tip-border: rgba(34, 197, 94, 0.3);
75
+ }
76
+
77
+ :root {
78
+ /* ─ Base palette ─ */
79
+ --ld-bg-main: #0a0a0f;
80
+ --ld-bg-soft: rgba(10, 10, 15, 0.2);
81
+ --ld-bg-mute: #141420;
82
+ --ld-surface: #1a1a2e;
83
+ --ld-border-subtle: rgba(255, 255, 255, 0.06);
84
+ --ld-border-strong: rgba(255, 255, 255, 0.12);
85
+
86
+ /* ─ Text ─ */
87
+ --ld-text-main: #e4e4ed;
88
+ --ld-text-muted: #9d9db5;
89
+ --ld-text-dim: #6b6b85;
90
+
91
+ /* ─ Accent ─ */
92
+ --ld-color-primary: #ffffff;
93
+ --ld-color-primary-hover: #f3f3f3;
94
+ --ld-color-primary-muted: rgba(255, 255, 255, 0.1);
95
+ --ld-color-primary-glow: rgba(255, 255, 255, 0.25);
96
+ --ld-color-primary-text: #0a0a0f;
97
+ --ld-color-accent: #ffffff; /* White accent for TOC */
98
+
99
+ /* ─ Buttons ─ */
100
+ --ld-btn-primary-bg: #ffffff;
101
+ --ld-btn-primary-text: #0a0a0f;
102
+ --ld-btn-secondary-bg: #1a1a2e;
103
+ --ld-btn-secondary-text: #e4e4ed;
104
+
105
+ /* ─ Gradients ─ */
106
+ --ld-gradient-from: #ffffff;
107
+ --ld-gradient-to: rgba(255, 255, 255, 0.7);
108
+
109
+ /* ─ Code ─ */
110
+ --ld-code-bg: #0d0d14;
111
+ --ld-code-header: #111119;
112
+ --ld-code-text: #d4d4d4;
113
+
114
+ /* ─ Customization ─ */
115
+ --ld-navbar-bg: rgba(10, 10, 15, 0.2);
116
+ --ld-navbar-blur: 12px;
117
+ --ld-sidebar-bg: transparent;
118
+ --ld-sidebar-blur: 0px;
119
+ --ld-glow-1-bg: var(--ld-color-primary-glow);
120
+ --ld-glow-2-bg: rgba(59, 130, 246, 0.15);
121
+
122
+ /* ─ UI Components (dark) ─ */
123
+ --ld-ui-btn-primary-bg: var(--ld-btn-primary-bg);
124
+ --ld-ui-btn-primary-text: var(--ld-btn-primary-text);
125
+ --ld-ui-btn-secondary-bg: var(--ld-btn-secondary-bg);
126
+ --ld-ui-btn-secondary-text: var(--ld-btn-secondary-text);
127
+
128
+ --ld-ui-success-bg: rgba(34, 197, 94, 0.1);
129
+ --ld-ui-success-text: #22c55e;
130
+ --ld-ui-success-border: rgba(34, 197, 94, 0.25);
131
+ --ld-ui-warning-bg: rgba(245, 158, 11, 0.1);
132
+ --ld-ui-warning-text: #f59e0b;
133
+ --ld-ui-warning-border: rgba(245, 158, 11, 0.25);
134
+ --ld-ui-danger-bg: rgba(239, 68, 68, 0.1);
135
+ --ld-ui-danger-text: #ef4444;
136
+ --ld-ui-danger-border: rgba(239, 68, 68, 0.25);
137
+ --ld-ui-info-bg: rgba(59, 130, 246, 0.1);
138
+ --ld-ui-info-text: #3b82f6;
139
+ --ld-ui-info-border: rgba(59, 130, 246, 0.25);
140
+ --ld-ui-note-bg: rgba(59, 130, 246, 0.06);
141
+ --ld-ui-note-text: #3b82f6;
142
+ --ld-ui-note-border: rgba(59, 130, 246, 0.3);
143
+ --ld-ui-tip-bg: rgba(34, 197, 94, 0.06);
144
+ --ld-ui-tip-text: #22c55e;
145
+ --ld-ui-tip-border: rgba(34, 197, 94, 0.3);
146
+
147
+ /* ─ Typography ─ */
148
+ --ld-font-sans: "Inter", system-ui, -apple-system, sans-serif;
149
+ --ld-font-mono:
150
+ "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
151
+ monospace;
152
+
153
+ /* ─ Dimensions ─ */
154
+ --ld-navbar-height: 3.5rem;
155
+ --ld-sidebar-width: 14.5rem;
156
+ --ld-toc-width: 13rem;
157
+ --ld-content-max-width: 820px;
158
+ --ld-radius-sm: 4px;
159
+ --ld-radius-md: 8px;
160
+ --ld-radius-lg: 12px;
161
+ --ld-radius-full: 9999px;
162
+ }
@@ -0,0 +1,38 @@
1
+ /* ═══════════════════════════════════════════════════════════
2
+ Boltdocs — Dark Theme
3
+ Main Entry Point
4
+ ═══════════════════════════════════════════════════════════ */
5
+
6
+ @import "./styles/variables.css";
7
+ @import "./ui/Layout/base.css";
8
+
9
+ /* Core Layout Components */
10
+ @import "./ui/Navbar/navbar.css";
11
+ @import "./ui/Sidebar/sidebar.css";
12
+ @import "./ui/OnThisPage/toc.css";
13
+ @import "./ui/Footer/footer.css";
14
+ @import "./ui/LanguageSwitcher/language-switcher.css";
15
+ @import "./ui/PoweredBy/powered-by.css";
16
+
17
+ /* Markdown Content */
18
+ @import "./styles/markdown.css";
19
+ @import "./components/Video/video.css";
20
+
21
+ /* UI Components (MDX) */
22
+ @import "./components/mdx/mdx-components.css";
23
+ @import "./components/PackageManagerTabs/pkg-tabs.css";
24
+
25
+ /* Interactive Elements */
26
+ @import "./ui/SearchDialog/search.css";
27
+ @import "./ui/Layout/pagination.css";
28
+
29
+ /* Pages */
30
+ @import "./styles/home.css";
31
+ @import "./ui/NotFound/not-found.css";
32
+ @import "./ui/Loading/loading.css";
33
+
34
+ /* Playground */
35
+ @import "./components/Playground/playground.css";
36
+
37
+ /* Media Queries */
38
+ @import "./ui/Layout/responsive.css";
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+
3
+ export function BackgroundGradient() {
4
+ return (
5
+ <div className="boltdocs-background-glow">
6
+ <div className="glow-shape glow-1" />
7
+ <div className="glow-shape glow-2" />
8
+ </div>
9
+ );
10
+ }
@@ -0,0 +1 @@
1
+ export { BackgroundGradient } from "./BackgroundGradient";
@@ -0,0 +1,68 @@
1
+ import React from "react";
2
+ import { useLocation } from "react-router-dom";
3
+ import { Link } from "../Link";
4
+ import { Home, ChevronRight } from "lucide-react";
5
+ import { ComponentRoute } from "../../../app";
6
+ import { BoltdocsConfig } from "../../../../node/config";
7
+
8
+ export interface BreadcrumbsProps {
9
+ routes: ComponentRoute[];
10
+ config: BoltdocsConfig;
11
+ }
12
+
13
+ export function Breadcrumbs({ routes, config }: BreadcrumbsProps) {
14
+ const location = useLocation();
15
+
16
+ if (config.themeConfig?.breadcrumbs === false) return null;
17
+ if (location.pathname === "/") return null;
18
+
19
+ const currentRoute = routes.find((r) => r.path === location.pathname);
20
+
21
+ const groupRoute = currentRoute?.group
22
+ ? routes.find((r) => r.group === currentRoute.group)
23
+ : null;
24
+
25
+ return (
26
+ <nav className="boltdocs-breadcrumbs" aria-label="Breadcrumb">
27
+ <ol className="boltdocs-breadcrumbs-list">
28
+ <li className="boltdocs-breadcrumbs-item">
29
+ <Link to="/" className="boltdocs-breadcrumbs-link">
30
+ {/* Home Icon */}
31
+ <Home size={14} />
32
+ </Link>
33
+ <span className="boltdocs-breadcrumbs-separator">
34
+ <ChevronRight size={14} />
35
+ </span>
36
+ </li>
37
+
38
+ {currentRoute?.groupTitle && (
39
+ <li className="boltdocs-breadcrumbs-item">
40
+ {groupRoute ? (
41
+ <Link to={groupRoute.path} className="boltdocs-breadcrumbs-link">
42
+ {currentRoute.groupTitle}
43
+ </Link>
44
+ ) : (
45
+ <span className="boltdocs-breadcrumbs-text">
46
+ {currentRoute.groupTitle}
47
+ </span>
48
+ )}
49
+ <span className="boltdocs-breadcrumbs-separator">
50
+ <ChevronRight size={14} />
51
+ </span>
52
+ </li>
53
+ )}
54
+
55
+ {currentRoute?.title && (
56
+ <li className="boltdocs-breadcrumbs-item">
57
+ <span
58
+ className="boltdocs-breadcrumbs-text boltdocs-breadcrumbs-active"
59
+ aria-current="page"
60
+ >
61
+ {currentRoute.title}
62
+ </span>
63
+ </li>
64
+ )}
65
+ </ol>
66
+ </nav>
67
+ );
68
+ }
@@ -0,0 +1 @@
1
+ export { Breadcrumbs } from "./Breadcrumbs";
@@ -0,0 +1,32 @@
1
+ /* ═══════════════════════════════════════════════════════════
2
+ FOOTER
3
+ ═══════════════════════════════════════════════════════════ */
4
+ .boltdocs-footer {
5
+ display: flex;
6
+ align-items: center;
7
+ justify-content: space-between;
8
+ padding: 1.5rem 2rem;
9
+ border-top: 1px solid var(--ld-border-subtle);
10
+ background-color: var(--ld-bg-soft);
11
+ font-size: 0.8rem;
12
+ color: var(--ld-text-dim);
13
+ }
14
+
15
+ .footer-copy {
16
+ margin: 0;
17
+ }
18
+
19
+ .footer-links {
20
+ display: flex;
21
+ gap: 1.25rem;
22
+ }
23
+
24
+ .footer-links a {
25
+ color: var(--ld-text-dim);
26
+ text-decoration: none;
27
+ transition: color 0.2s;
28
+ }
29
+
30
+ .footer-links a:hover {
31
+ color: var(--ld-text-muted);
32
+ }