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,405 @@
1
+ /* ═══════════════════════════════════════════════════════════
2
+ MDX UI COMPONENTS
3
+ All variables use --ld-ui-* to avoid conflicts with
4
+ layout elements (sidebar, TOC, navbar).
5
+ ═══════════════════════════════════════════════════════════ */
6
+
7
+ /* ─── Button ──────────────────────────────────────────────── */
8
+ .ld-btn {
9
+ display: inline-flex;
10
+ align-items: center;
11
+ gap: 0.4rem;
12
+ font-weight: 600;
13
+ border-radius: var(--ld-radius-md);
14
+ cursor: pointer;
15
+ transition: all 300ms cubic-bezier(0.16, 1, 0.3, 1);
16
+ font-family: var(--ld-font-sans);
17
+ border: 1px solid transparent;
18
+ line-height: 1;
19
+ letter-spacing: -0.01em;
20
+ }
21
+
22
+ .ld-btn:hover {
23
+ transform: scale(1.05);
24
+ }
25
+
26
+ .ld-btn:active {
27
+ transform: scale(0.95);
28
+ }
29
+
30
+ /* sizes */
31
+ .ld-btn--sm {
32
+ padding: 0.45rem 1.1rem;
33
+ font-size: 0.8125rem;
34
+ border-radius: var(--ld-radius-md);
35
+ }
36
+ .ld-btn--md {
37
+ padding: 0.7rem 1.6rem;
38
+ font-size: 0.9375rem;
39
+ }
40
+ .ld-btn--lg {
41
+ padding: 0.85rem 2.1rem;
42
+ font-size: 1.05rem;
43
+ }
44
+
45
+ /* variants */
46
+ .ld-btn--primary {
47
+ background-color: var(--ld-ui-btn-primary-bg, var(--ld-btn-primary-bg));
48
+ color: var(--ld-ui-btn-primary-text, var(--ld-btn-primary-text)) !important;
49
+ }
50
+ .ld-btn--primary:hover {
51
+ opacity: 0.92;
52
+ color: var(--ld-ui-btn-primary-text, var(--ld-btn-primary-text)) !important;
53
+ }
54
+
55
+ .ld-btn--secondary {
56
+ background-color: var(--ld-ui-btn-secondary-bg, var(--ld-btn-secondary-bg));
57
+ color: var(
58
+ --ld-ui-btn-secondary-text,
59
+ var(--ld-btn-secondary-text)
60
+ ) !important;
61
+ border-color: var(--ld-border-subtle);
62
+ }
63
+ .ld-btn--secondary:hover {
64
+ background-color: var(--ld-bg-mute);
65
+ border-color: var(--ld-border-strong);
66
+ color: var(
67
+ --ld-ui-btn-secondary-text,
68
+ var(--ld-btn-secondary-text)
69
+ ) !important;
70
+ }
71
+
72
+ .ld-btn--outline {
73
+ background: transparent;
74
+ color: var(--ld-text-main) !important;
75
+ border-color: var(--ld-border-strong);
76
+ }
77
+ .ld-btn--outline:hover {
78
+ background-color: var(--ld-bg-soft);
79
+ border-color: var(--ld-color-primary);
80
+ }
81
+
82
+ .ld-btn--ghost {
83
+ background: transparent;
84
+ color: var(--ld-text-muted) !important;
85
+ }
86
+ .ld-btn--ghost:hover {
87
+ background-color: var(--ld-bg-soft);
88
+ color: var(--ld-text-main) !important;
89
+ }
90
+
91
+ /* ─── Badge ───────────────────────────────────────────────── */
92
+ .ld-badge {
93
+ display: inline-flex;
94
+ align-items: center;
95
+ padding: 0.3rem 0.85rem;
96
+ font-size: 0.75rem;
97
+ font-weight: 600;
98
+ border-radius: var(--ld-radius-full);
99
+ line-height: 1.4;
100
+ white-space: nowrap;
101
+ letter-spacing: 0.01em;
102
+ }
103
+
104
+ .ld-badge--default {
105
+ background: var(--ld-bg-mute);
106
+ color: var(--ld-text-main);
107
+ border: 1px solid var(--ld-border-subtle);
108
+ }
109
+ .ld-badge--primary {
110
+ background: var(--ld-color-primary-muted);
111
+ color: var(--ld-color-primary);
112
+ border: 1px solid rgba(127, 19, 236, 0.2);
113
+ }
114
+ .ld-badge--success {
115
+ background: var(--ld-ui-success-bg);
116
+ color: var(--ld-ui-success-text);
117
+ border: 1px solid var(--ld-ui-success-border);
118
+ }
119
+ .ld-badge--warning {
120
+ background: var(--ld-ui-warning-bg);
121
+ color: var(--ld-ui-warning-text);
122
+ border: 1px solid var(--ld-ui-warning-border);
123
+ }
124
+ .ld-badge--danger {
125
+ background: var(--ld-ui-danger-bg);
126
+ color: var(--ld-ui-danger-text);
127
+ border: 1px solid var(--ld-ui-danger-border);
128
+ }
129
+ .ld-badge--info {
130
+ background: var(--ld-ui-info-bg);
131
+ color: var(--ld-ui-info-text);
132
+ border: 1px solid var(--ld-ui-info-border);
133
+ }
134
+
135
+ /* ─── Cards ───────────────────────────────────────────────── */
136
+ .ld-cards {
137
+ display: grid;
138
+ gap: 1rem;
139
+ margin: 1.5rem 0;
140
+ }
141
+ .ld-cards--1 {
142
+ grid-template-columns: 1fr;
143
+ }
144
+ .ld-cards--2 {
145
+ grid-template-columns: repeat(2, 1fr);
146
+ }
147
+ .ld-cards--3 {
148
+ grid-template-columns: repeat(3, 1fr);
149
+ }
150
+ .ld-cards--4 {
151
+ grid-template-columns: repeat(4, 1fr);
152
+ }
153
+
154
+ @media (max-width: 768px) {
155
+ .ld-cards--2,
156
+ .ld-cards--3,
157
+ .ld-cards--4 {
158
+ grid-template-columns: 1fr;
159
+ }
160
+ }
161
+
162
+ .ld-card {
163
+ position: relative;
164
+ padding: 1.35rem 1.5rem;
165
+ border-radius: var(--ld-radius-lg);
166
+ border: 1px solid var(--ld-border-subtle);
167
+ background: var(--ld-bg-soft);
168
+ transition: all 300ms cubic-bezier(0.16, 1, 0.3, 1);
169
+ text-decoration: none !important;
170
+ backdrop-filter: blur(var(--ld-navbar-blur));
171
+ -webkit-backdrop-filter: blur(var(--ld-navbar-blur));
172
+ color: inherit;
173
+ overflow: hidden;
174
+ }
175
+
176
+ /* Subtle inner glow on top edge */
177
+ .ld-card::before {
178
+ content: "";
179
+ position: absolute;
180
+ top: 0;
181
+ left: 0;
182
+ right: 0;
183
+ height: 1px;
184
+ background: linear-gradient(
185
+ 90deg,
186
+ transparent,
187
+ var(--ld-border-strong),
188
+ transparent
189
+ );
190
+ opacity: 0;
191
+ transition: opacity 0.3s ease;
192
+ }
193
+
194
+ .ld-card:hover {
195
+ border-color: var(--ld-color-primary);
196
+ transform: translateY(-3px);
197
+ }
198
+ .ld-card:hover::before {
199
+ opacity: 1;
200
+ background: linear-gradient(
201
+ 90deg,
202
+ transparent,
203
+ var(--ld-color-primary),
204
+ transparent
205
+ );
206
+ }
207
+
208
+ .ld-card--link {
209
+ cursor: pointer;
210
+ }
211
+ .ld-card--link:hover {
212
+ text-decoration: none !important;
213
+ }
214
+
215
+ .ld-card__icon {
216
+ font-size: 1.6rem;
217
+ display: flex;
218
+ align-items: center;
219
+ justify-content: center;
220
+ width: 2.5rem;
221
+ height: 2.5rem;
222
+ margin-bottom: 0.85rem;
223
+ }
224
+ .ld-card__title {
225
+ font-size: 0.95rem;
226
+ font-weight: 700;
227
+ margin: 0 0 0.4rem;
228
+ color: var(--ld-text-main);
229
+ letter-spacing: -0.01em;
230
+ }
231
+ .ld-card__body {
232
+ font-size: 0.85rem;
233
+ color: var(--ld-text-muted);
234
+ line-height: 1.55;
235
+ margin: 0;
236
+ }
237
+ .ld-card__body p {
238
+ margin: 0;
239
+ }
240
+
241
+ /* ─── Tabs ────────────────────────────────────────────────── */
242
+ .ld-tabs {
243
+ margin: 1.5rem 0;
244
+ border: 1px solid var(--ld-border-subtle);
245
+ border-radius: var(--ld-radius-lg);
246
+ overflow: hidden;
247
+ background: var(--ld-bg-soft);
248
+ }
249
+
250
+ .ld-tabs__bar {
251
+ display: flex;
252
+ gap: 0;
253
+ background-color: var(--ld-bg-mute);
254
+ border-bottom: 1px solid var(--ld-border-subtle);
255
+ overflow-x: auto;
256
+ }
257
+
258
+ .ld-tabs__trigger {
259
+ position: relative;
260
+ padding: 0.65rem 1.25rem;
261
+ background: none;
262
+ border: none;
263
+ border-bottom: 2px solid transparent;
264
+ color: var(--ld-text-dim);
265
+ font-family: var(--ld-font-sans);
266
+ font-size: 0.8125rem;
267
+ font-weight: 500;
268
+ cursor: pointer;
269
+ transition: all 0.2s ease;
270
+ white-space: nowrap;
271
+ }
272
+ .ld-tabs__trigger:hover {
273
+ color: var(--ld-text-main);
274
+ background-color: rgba(255, 255, 255, 0.03);
275
+ }
276
+ .ld-tabs__trigger--active {
277
+ color: var(--ld-color-primary);
278
+ border-bottom-color: var(--ld-color-primary);
279
+ background-color: transparent;
280
+ }
281
+
282
+ .ld-tabs__content {
283
+ padding: 1.25rem;
284
+ }
285
+
286
+ .ld-tab-panel {
287
+ font-size: 0.9rem;
288
+ line-height: 1.7;
289
+ color: var(--ld-text-muted);
290
+ }
291
+
292
+ /* ─── Admonition ──────────────────────────────────────────── */
293
+ .ld-admonition {
294
+ margin: 1.5rem 0;
295
+ border-radius: var(--ld-radius-lg);
296
+ border: 1px solid;
297
+ overflow: hidden;
298
+ }
299
+
300
+ .ld-admonition__header {
301
+ display: flex;
302
+ align-items: center;
303
+ gap: 0.5rem;
304
+ padding: 0.6rem 1.1rem;
305
+ font-weight: 600;
306
+ font-size: 0.8rem;
307
+ text-transform: uppercase;
308
+ letter-spacing: 0.04em;
309
+ }
310
+
311
+ .ld-admonition__icon {
312
+ display: inline-flex;
313
+ align-items: center;
314
+ }
315
+
316
+ .ld-admonition__body {
317
+ padding: 0.6rem 1.1rem 1rem;
318
+ font-size: 0.875rem;
319
+ line-height: 1.7;
320
+ color: var(--ld-text-muted);
321
+ }
322
+ .ld-admonition__body p {
323
+ margin: 0 0 0.5rem;
324
+ }
325
+ .ld-admonition__body p:last-child {
326
+ margin-bottom: 0;
327
+ }
328
+
329
+ /* Admonition — Note (blue) */
330
+ .ld-admonition--note {
331
+ border-color: var(--ld-ui-note-border);
332
+ background-color: var(--ld-ui-note-bg);
333
+ }
334
+ .ld-admonition--note .ld-admonition__header {
335
+ color: var(--ld-ui-note-text);
336
+ }
337
+
338
+ /* Admonition — Tip (green) */
339
+ .ld-admonition--tip {
340
+ border-color: var(--ld-ui-tip-border);
341
+ background-color: var(--ld-ui-tip-bg);
342
+ }
343
+ .ld-admonition--tip .ld-admonition__header {
344
+ color: var(--ld-ui-tip-text);
345
+ }
346
+
347
+ /* Admonition — Info (blue) */
348
+ .ld-admonition--info {
349
+ border-color: var(--ld-ui-info-border);
350
+ background-color: var(--ld-ui-info-bg);
351
+ }
352
+ .ld-admonition--info .ld-admonition__header {
353
+ color: var(--ld-ui-info-text);
354
+ }
355
+
356
+ /* Admonition — Warning (amber) */
357
+ .ld-admonition--warning {
358
+ border-color: var(--ld-ui-warning-border);
359
+ background-color: var(--ld-ui-warning-bg);
360
+ }
361
+ .ld-admonition--warning .ld-admonition__header {
362
+ color: var(--ld-ui-warning-text);
363
+ }
364
+
365
+ /* Admonition — Danger (red) */
366
+ .ld-admonition--danger {
367
+ border-color: var(--ld-ui-danger-border);
368
+ background-color: var(--ld-ui-danger-bg);
369
+ }
370
+ .ld-admonition--danger .ld-admonition__header {
371
+ color: var(--ld-ui-danger-text);
372
+ }
373
+
374
+ /* ─── List ────────────────────────────────────────────────── */
375
+ .ld-list {
376
+ margin: 1rem 0;
377
+ padding-left: 0;
378
+ list-style: none;
379
+ }
380
+ .ld-list--checked,
381
+ .ld-list--arrow {
382
+ padding-left: 0;
383
+ }
384
+
385
+ .ld-list__item {
386
+ display: flex;
387
+ align-items: flex-start;
388
+ gap: 0.6rem;
389
+ padding: 0.35rem 0;
390
+ color: var(--ld-text-muted);
391
+ font-size: 0.9rem;
392
+ line-height: 1.6;
393
+ }
394
+
395
+ .ld-list__icon {
396
+ flex-shrink: 0;
397
+ margin-top: 0.25rem;
398
+ }
399
+
400
+ .ld-list--checked .ld-list__icon {
401
+ color: var(--ld-ui-success-text);
402
+ }
403
+ .ld-list--arrow .ld-list__icon {
404
+ color: var(--ld-color-primary);
405
+ }
@@ -0,0 +1,62 @@
1
+ import type { SVGProps } from "react";
2
+
3
+ const Bun = (props: SVGProps<SVGSVGElement>) => (
4
+ <svg {...props} viewBox="0 0 80 70">
5
+ <path d="M71.09 20.74c-.16-.17-.33-.34-.5-.5s-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5A26.46 26.46 0 0 1 75.5 35.7c0 16.57-16.82 30.05-37.5 30.05-11.58 0-21.94-4.23-28.83-10.86l.5.5.5.5.5.5.5.5.5.5.5.5.5.5C19.55 65.3 30.14 69.75 42 69.75c20.68 0 37.5-13.48 37.5-30 0-7.06-3.04-13.75-8.41-19.01Z" />
6
+ <path
7
+ d="M73 35.7c0 15.21-15.67 27.54-35 27.54S3 50.91 3 35.7C3 26.27 9 17.94 18.22 13S33.18 3 38 3s8.94 4.13 19.78 10C67 17.94 73 26.27 73 35.7Z"
8
+ style={{ fill: "#fbf0df" }}
9
+ />
10
+ <path
11
+ d="M73 35.7a21.67 21.67 0 0 0-.8-5.78c-2.73 33.3-43.35 34.9-59.32 24.94A40 40 0 0 0 38 63.24c19.3 0 35-12.35 35-27.54Z"
12
+ style={{ fill: "#f6dece" }}
13
+ />
14
+ <path
15
+ d="M24.53 11.17C29 8.49 34.94 3.46 40.78 3.45A9.29 9.29 0 0 0 38 3c-2.42 0-5 1.25-8.25 3.13-1.13.66-2.3 1.39-3.54 2.15-2.33 1.44-5 3.07-8 4.7C8.69 18.13 3 26.62 3 35.7v1.19c6.06-21.41 17.07-23.04 21.53-25.72Z"
16
+ style={{ fill: "#fffefc" }}
17
+ />
18
+ <path
19
+ d="M35.12 5.53A16.41 16.41 0 0 1 29.49 18c-.28.25-.06.73.3.59 3.37-1.31 7.92-5.23 6-13.14-.08-.45-.67-.33-.67.08Zm2.27 0A16.24 16.24 0 0 1 39 19c-.12.35.31.65.55.36 2.19-2.8 4.1-8.36-1.62-14.36-.29-.26-.74.14-.54.49Zm2.76-.17A16.42 16.42 0 0 1 47 17.12a.33.33 0 0 0 .65.11c.92-3.49.4-9.44-7.17-12.53-.4-.16-.66.38-.33.62Zm-18.46 10.4a16.94 16.94 0 0 0 10.47-9c.18-.36.75-.22.66.18-1.73 8-7.52 9.67-11.12 9.45-.38.01-.37-.52-.01-.63Z"
20
+ style={{ fill: "#ccbea7", fillRule: "evenodd" }}
21
+ />
22
+ <path d="M38 65.75C17.32 65.75.5 52.27.5 35.7c0-10 6.18-19.33 16.53-24.92 3-1.6 5.57-3.21 7.86-4.62 1.26-.78 2.45-1.51 3.6-2.19C32 1.89 35 .5 38 .5s5.62 1.2 8.9 3.14c1 .57 2 1.19 3.07 1.87 2.49 1.54 5.3 3.28 9 5.27C69.32 16.37 75.5 25.69 75.5 35.7c0 16.57-16.82 30.05-37.5 30.05ZM38 3c-2.42 0-5 1.25-8.25 3.13-1.13.66-2.3 1.39-3.54 2.15-2.33 1.44-5 3.07-8 4.7C8.69 18.13 3 26.62 3 35.7c0 15.19 15.7 27.55 35 27.55S73 50.89 73 35.7c0-9.08-5.69-17.57-15.22-22.7-3.78-2-6.73-3.88-9.12-5.36-1.09-.67-2.09-1.29-3-1.84C42.63 4 40.42 3 38 3Z" />
23
+ <g>
24
+ <path
25
+ d="M45.05 43a8.93 8.93 0 0 1-2.92 4.71 6.81 6.81 0 0 1-4 1.88A6.84 6.84 0 0 1 34 47.71 8.93 8.93 0 0 1 31.12 43a.72.72 0 0 1 .8-.81h12.34a.72.72 0 0 1 .79.81Z"
26
+ style={{ fill: "#b71422" }}
27
+ />
28
+ <path
29
+ d="M34 47.79a6.91 6.91 0 0 0 4.12 1.9 6.91 6.91 0 0 0 4.11-1.9 10.63 10.63 0 0 0 1-1.07 6.83 6.83 0 0 0-4.9-2.31 6.15 6.15 0 0 0-5 2.78c.23.21.43.41.67.6Z"
30
+ style={{ fill: "#ff6164" }}
31
+ />
32
+ <path d="M34.16 47a5.36 5.36 0 0 1 4.19-2.08 6 6 0 0 1 4 1.69c.23-.25.45-.51.66-.77a7 7 0 0 0-4.71-1.93 6.36 6.36 0 0 0-4.89 2.36 9.53 9.53 0 0 0 .75.73Z" />
33
+ <path d="M38.09 50.19a7.42 7.42 0 0 1-4.45-2 9.52 9.52 0 0 1-3.11-5.05 1.2 1.2 0 0 1 .26-1 1.41 1.41 0 0 1 1.13-.51h12.34a1.44 1.44 0 0 1 1.13.51 1.19 1.19 0 0 1 .25 1 9.52 9.52 0 0 1-3.11 5.05 7.42 7.42 0 0 1-4.44 2Zm-6.17-7.4c-.16 0-.2.07-.21.09a8.29 8.29 0 0 0 2.73 4.37A6.23 6.23 0 0 0 38.09 49a6.28 6.28 0 0 0 3.65-1.73 8.3 8.3 0 0 0 2.72-4.37.21.21 0 0 0-.2-.09Z" />
34
+ </g>
35
+ <g>
36
+ <ellipse
37
+ cx="53.22"
38
+ cy="40.18"
39
+ rx="5.85"
40
+ ry="3.44"
41
+ style={{ fill: "#febbd0" }}
42
+ />
43
+ <ellipse
44
+ cx="22.95"
45
+ cy="40.18"
46
+ rx="5.85"
47
+ ry="3.44"
48
+ style={{ fill: "#febbd0" }}
49
+ />
50
+ <path
51
+ d="M25.7 38.8a5.51 5.51 0 1 0-5.5-5.51 5.51 5.51 0 0 0 5.5 5.51Zm24.77 0A5.51 5.51 0 1 0 45 33.29a5.5 5.5 0 0 0 5.47 5.51Z"
52
+ style={{ fillRule: "evenodd" }}
53
+ />
54
+ <path
55
+ d="M24 33.64a2.07 2.07 0 1 0-2.06-2.07A2.07 2.07 0 0 0 24 33.64Zm24.77 0a2.07 2.07 0 1 0-2.06-2.07 2.07 2.07 0 0 0 2.04 2.07Z"
56
+ style={{ fill: "#fff", fillRule: "evenodd" }}
57
+ />
58
+ </g>
59
+ </svg>
60
+ );
61
+
62
+ export { Bun };
@@ -0,0 +1,20 @@
1
+ import type { SVGProps } from "react";
2
+
3
+ const Deno = (props: SVGProps<SVGSVGElement>) => (
4
+ <svg
5
+ {...props}
6
+ xmlSpace="preserve"
7
+ fillRule="evenodd"
8
+ strokeLinejoin="round"
9
+ strokeMiterlimit="2"
10
+ clipRule="evenodd"
11
+ viewBox="0 0 441 441"
12
+ >
13
+ <path
14
+ fill="currentColor"
15
+ d="M229.858-2.62c121.29 5.675 215.154 108.755 209.479 230.045S330.582 442.578 209.292 436.903-5.863 328.149-.188 206.859 108.568-8.296 229.858-2.62Zm51.365 264.922c-13.886-.687-27.594-3.012-38.616-4.857-8.381-1.404-16.33-3.616-22.855-5.858a2.576 2.576 0 0 0-2.932.878c-.678.905-.777 2.22-.02 3.061 3.08 3.418 12.848 10.54 20.439 13.812-6.491 5.357-10.933 17.608-12.684 23.95-2.35 8.51-2.687 20.801-2.12 25.312 2.282 18.146 8.95 34.41 25.467 48.64 11.562 9.96 28.295 16.77 45.399 17.08 23.603.426 51.882-9.705 74.085-32.493 29.028-31.807 48.051-73.17 51.593-119.393 8.434-110.06-74.073-206.264-184.134-214.698C124.785 9.302 28.582 91.81 20.147 201.87c-4.368 56.998 15.655 110.28 51.267 149.576a3.185 3.185 0 0 0 5.422-2.974c-26.39-103.487 30.95-215.162 94.926-250.494 23.751-13.118 46.884-18.1 67.664-9.69 31.814 12.874 50 34.21 89.375 52.163 39.375 17.951 43.625 47.862 32.64 78.098-10.986 30.236-46.358 45.425-80.218 43.753Zm-68.863-160.08c-12.906 1.006-21.384 16.978-22.497 27.253-1.117 10.275 3.978 27.236 20.794 26.91 19.694-.383 25.681-17.238 23.525-33.55-1.618-12.25-11.033-21.456-21.822-20.613Z"
16
+ />
17
+ </svg>
18
+ );
19
+
20
+ export { Deno };
@@ -0,0 +1,12 @@
1
+ import type { SVGProps } from "react";
2
+
3
+ const Discord = (props: SVGProps<SVGSVGElement>) => (
4
+ <svg {...props} viewBox="0 0 256 199" preserveAspectRatio="xMidYMid">
5
+ <path
6
+ d="M216.856 16.597A208.502 208.502 0 0 0 164.042 0c-2.275 4.113-4.933 9.645-6.766 14.046-19.692-2.961-39.203-2.961-58.533 0-1.832-4.4-4.55-9.933-6.846-14.046a207.809 207.809 0 0 0-52.855 16.638C5.618 67.147-3.443 116.4 1.087 164.956c22.169 16.555 43.653 26.612 64.775 33.193A161.094 161.094 0 0 0 79.735 175.3a136.413 136.413 0 0 1-21.846-10.632 108.636 108.636 0 0 0 5.356-4.237c42.122 19.702 87.89 19.702 129.51 0a131.66 131.66 0 0 0 5.355 4.237 136.07 136.07 0 0 1-21.886 10.653c4.006 8.02 8.638 15.67 13.873 22.848 21.142-6.58 42.646-16.637 64.815-33.213 5.316-56.288-9.08-105.09-38.056-148.36ZM85.474 135.095c-12.645 0-23.015-11.805-23.015-26.18s10.149-26.2 23.015-26.2c12.867 0 23.236 11.804 23.015 26.2.02 14.375-10.148 26.18-23.015 26.18Zm85.051 0c-12.645 0-23.014-11.805-23.014-26.18s10.148-26.2 23.014-26.2c12.867 0 23.236 11.804 23.015 26.2 0 14.375-10.148 26.18-23.015 26.18Z"
7
+ fill="currentColor"
8
+ />
9
+ </svg>
10
+ );
11
+
12
+ export { Discord };
@@ -0,0 +1,15 @@
1
+ import type { SVGProps } from "react";
2
+
3
+ const GitHub = (props: SVGProps<SVGSVGElement>) => (
4
+ <svg {...props} viewBox="0 0 1024 1024" fill="none">
5
+ <path
6
+ fillRule="evenodd"
7
+ clipRule="evenodd"
8
+ d="M8 0C3.58 0 0 3.58 0 8C0 11.54 2.29 14.53 5.47 15.59C5.87 15.66 6.02 15.42 6.02 15.21C6.02 15.02 6.01 14.39 6.01 13.72C4 14.09 3.48 13.23 3.32 12.78C3.23 12.55 2.84 11.84 2.5 11.65C2.22 11.5 1.82 11.13 2.49 11.12C3.12 11.11 3.57 11.7 3.72 11.94C4.44 13.15 5.59 12.81 6.05 12.6C6.12 12.08 6.33 11.73 6.56 11.53C4.78 11.33 2.92 10.64 2.92 7.58C2.92 6.71 3.23 5.99 3.74 5.43C3.66 5.23 3.38 4.41 3.82 3.31C3.82 3.31 4.49 3.1 6.02 4.13C6.66 3.95 7.34 3.86 8.02 3.86C8.7 3.86 9.38 3.95 10.02 4.13C11.55 3.09 12.22 3.31 12.22 3.31C12.66 4.41 12.38 5.23 12.3 5.43C12.81 5.99 13.12 6.7 13.12 7.58C13.12 10.65 11.25 11.33 9.47 11.53C9.76 11.78 10.01 12.26 10.01 13.01C10.01 14.08 10 14.94 10 15.21C10 15.42 10.15 15.67 10.55 15.59C13.71 14.53 16 11.53 16 8C16 3.58 12.42 0 8 0Z"
9
+ transform="scale(64)"
10
+ fill="currentColor"
11
+ />
12
+ </svg>
13
+ );
14
+
15
+ export { GitHub };
@@ -0,0 +1,13 @@
1
+ import type { SVGProps } from "react";
2
+
3
+ const NPM = (props: SVGProps<SVGSVGElement>) => (
4
+ <svg {...props} viewBox="0 0 2500 2500">
5
+ <path fill="#c00" d="M0 0h2500v2500H0z" />
6
+ <path
7
+ fill="#fff"
8
+ d="M1241.5 268.5h-973v1962.9h972.9V763.5h495v1467.9h495V268.5z"
9
+ />
10
+ </svg>
11
+ );
12
+
13
+ export { NPM };
@@ -0,0 +1,72 @@
1
+ import React from "react";
2
+
3
+ const Pnpm = (props: SVGProps<SVGSVGElement>) => (
4
+ <svg
5
+ {...props}
6
+ xmlnsXlink="http://www.w3.org/1999/xlink"
7
+ viewBox="76.58987244897958 44 164.00775510204068 164"
8
+ >
9
+ <defs>
10
+ <path
11
+ d="M237.6 95L187.6 95L187.6 45L237.6 45L237.6 95Z"
12
+ id="pnpm_dark__b45vdTD8hs"
13
+ />
14
+ <path
15
+ d="M182.59 95L132.59 95L132.59 45L182.59 45L182.59 95Z"
16
+ id="pnpm_dark__a40WtxIl8d"
17
+ />
18
+ <path
19
+ d="M127.59 95L77.59 95L77.59 45L127.59 45L127.59 95Z"
20
+ id="pnpm_dark__h2CN9AEEpe"
21
+ />
22
+ <path
23
+ d="M237.6 150L187.6 150L187.6 100L237.6 100L237.6 150Z"
24
+ id="pnpm_dark__dqv5133G8"
25
+ />
26
+ <path
27
+ d="M182.59 150L132.59 150L132.59 100L182.59 100L182.59 150Z"
28
+ id="pnpm_dark__b1Lv79ypvm"
29
+ />
30
+ <path
31
+ d="M182.59 205L132.59 205L132.59 155L182.59 155L182.59 205Z"
32
+ id="pnpm_dark__hy1IZWwLX"
33
+ />
34
+ <path
35
+ d="M237.6 205L187.6 205L187.6 155L237.6 155L237.6 205Z"
36
+ id="pnpm_dark__akQfjxQes"
37
+ />
38
+ <path
39
+ d="M127.59 205L77.59 205L77.59 155L127.59 155L127.59 205Z"
40
+ id="pnpm_dark__bdSrwE5pk"
41
+ />
42
+ </defs>
43
+ <g>
44
+ <g>
45
+ <use xlinkHref="#pnpm_dark__b45vdTD8hs" fill="#f9ad00" />
46
+ </g>
47
+ <g>
48
+ <use xlinkHref="#pnpm_dark__a40WtxIl8d" fill="#f9ad00" />
49
+ </g>
50
+ <g>
51
+ <use xlinkHref="#pnpm_dark__h2CN9AEEpe" fill="#f9ad00" />
52
+ </g>
53
+ <g>
54
+ <use xlinkHref="#pnpm_dark__dqv5133G8" fill="#f9ad00" />
55
+ </g>
56
+ <g>
57
+ <use xlinkHref="#pnpm_dark__b1Lv79ypvm" fill="currentColor" />
58
+ </g>
59
+ <g>
60
+ <use xlinkHref="#pnpm_dark__hy1IZWwLX" fill="currentColor" />
61
+ </g>
62
+ <g>
63
+ <use xlinkHref="#pnpm_dark__akQfjxQes" fill="currentColor" />
64
+ </g>
65
+ <g>
66
+ <use xlinkHref="#pnpm_dark__bdSrwE5pk" fill="currentColor" />
67
+ </g>
68
+ </g>
69
+ </svg>
70
+ );
71
+
72
+ export { Pnpm };
@@ -0,0 +1,12 @@
1
+ import type { SVGProps } from "react";
2
+
3
+ const XformerlyTwitter = (props: SVGProps<SVGSVGElement>) => (
4
+ <svg {...props} fill="none" viewBox="0 0 1200 1227">
5
+ <path
6
+ fill="currentColor"
7
+ d="M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"
8
+ />
9
+ </svg>
10
+ );
11
+
12
+ export { XformerlyTwitter };
@@ -0,0 +1,60 @@
1
+ /* ═══════════════════════════════════════════════════════════
2
+ HOME / LANDING PAGE — Layout only
3
+ Component styles (badge, buttons, cards) now live in
4
+ mdx-components.css and use the shared UI components.
5
+ ═══════════════════════════════════════════════════════════ */
6
+ .boltdocs-home {
7
+ min-height: calc(100vh - var(--ld-navbar-height));
8
+ }
9
+
10
+ .home-hero {
11
+ display: flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ padding: 6rem 2rem 4rem;
15
+ text-align: center;
16
+ }
17
+
18
+ .hero-content {
19
+ max-width: 680px;
20
+ }
21
+
22
+ .hero-title {
23
+ font-size: 3.5rem;
24
+ font-weight: 900;
25
+ line-height: 1.1;
26
+ margin: 0 0 1.25rem;
27
+ letter-spacing: -0.03em;
28
+ color: var(--ld-text-main);
29
+ }
30
+
31
+ .hero-highlight {
32
+ background: linear-gradient(
33
+ 135deg,
34
+ var(--ld-gradient-from),
35
+ var(--ld-gradient-to)
36
+ );
37
+ -webkit-background-clip: text;
38
+ -webkit-text-fill-color: transparent;
39
+ background-clip: text;
40
+ }
41
+
42
+ .hero-description {
43
+ font-size: 1.125rem;
44
+ color: var(--ld-text-muted);
45
+ line-height: 1.7;
46
+ margin-bottom: 2rem;
47
+ }
48
+
49
+ .hero-actions {
50
+ display: flex;
51
+ gap: 0.75rem;
52
+ justify-content: center;
53
+ flex-wrap: wrap;
54
+ }
55
+
56
+ .home-features {
57
+ padding: 2rem 2rem 6rem;
58
+ max-width: 1000px;
59
+ margin: 0 auto;
60
+ }