boltdocs 1.0.4 → 1.3.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 (41) hide show
  1. package/dist/{SearchDialog-R36WKAQ7.mjs → SearchDialog-5EDRACEG.mjs} +1 -1
  2. package/dist/{SearchDialog-PYF3QMYG.css → SearchDialog-X57WPTNN.css} +54 -126
  3. package/dist/cache-EHR7SXRU.mjs +12 -0
  4. package/dist/chunk-GSYECEZY.mjs +381 -0
  5. package/dist/{chunk-TWSRXUFF.mjs → chunk-NS7WHDYA.mjs} +229 -418
  6. package/dist/client/index.css +54 -126
  7. package/dist/client/index.d.mts +5 -4
  8. package/dist/client/index.d.ts +5 -4
  9. package/dist/client/index.js +555 -580
  10. package/dist/client/index.mjs +304 -16
  11. package/dist/client/ssr.css +54 -126
  12. package/dist/client/ssr.js +257 -580
  13. package/dist/client/ssr.mjs +1 -1
  14. package/dist/{config-D2XmHJYe.d.mts → config-BD5ZHz15.d.mts} +7 -0
  15. package/dist/{config-D2XmHJYe.d.ts → config-BD5ZHz15.d.ts} +7 -0
  16. package/dist/node/index.d.mts +2 -2
  17. package/dist/node/index.d.ts +2 -2
  18. package/dist/node/index.js +457 -118
  19. package/dist/node/index.mjs +93 -136
  20. package/package.json +2 -2
  21. package/src/client/app/index.tsx +25 -54
  22. package/src/client/theme/components/mdx/mdx-components.css +39 -20
  23. package/src/client/theme/styles/markdown.css +1 -1
  24. package/src/client/theme/styles.css +0 -1
  25. package/src/client/theme/ui/Layout/Layout.tsx +2 -13
  26. package/src/client/theme/ui/Layout/responsive.css +0 -4
  27. package/src/client/theme/ui/Link/Link.tsx +52 -0
  28. package/src/client/theme/ui/NotFound/NotFound.tsx +0 -1
  29. package/src/client/theme/ui/OnThisPage/OnThisPage.tsx +45 -2
  30. package/src/client/theme/ui/Sidebar/Sidebar.tsx +44 -40
  31. package/src/client/theme/ui/Sidebar/sidebar.css +25 -58
  32. package/src/node/cache.ts +360 -46
  33. package/src/node/config.ts +7 -0
  34. package/src/node/mdx.ts +83 -4
  35. package/src/node/plugin/index.ts +3 -0
  36. package/src/node/routes/cache.ts +5 -1
  37. package/src/node/routes/index.ts +17 -2
  38. package/src/node/ssg/index.ts +4 -0
  39. package/dist/Playground-B2FA34BC.mjs +0 -6
  40. package/dist/chunk-WPT4MWTQ.mjs +0 -89
  41. package/src/client/theme/styles/home.css +0 -60
@@ -1,37 +1,325 @@
1
1
  import {
2
- Admonition,
3
2
  BackgroundGradient,
4
- Badge,
5
3
  Breadcrumbs,
6
- Button,
7
- Card,
8
- Cards,
9
- Danger,
10
4
  Head,
11
- InfoBox,
12
- List,
13
5
  Loading,
14
6
  Navbar,
15
7
  NotFound,
16
- Note,
17
8
  OnThisPage,
18
9
  Sidebar,
19
- Tab,
20
- Tabs,
21
10
  ThemeLayout,
22
- Tip,
23
- Warning,
24
11
  createBoltdocsApp
25
- } from "../chunk-TWSRXUFF.mjs";
12
+ } from "../chunk-NS7WHDYA.mjs";
26
13
  import {
27
14
  CodeBlock
28
15
  } from "../chunk-2YRDWM6O.mjs";
29
16
  import {
30
17
  Video
31
18
  } from "../chunk-Z7JHYNAS.mjs";
19
+
20
+ // src/client/theme/components/Playground/Playground.tsx
21
+ import React, { useState } from "react";
22
+ import { LiveProvider, LiveEditor, LiveError, LivePreview } from "react-live";
23
+ import { Copy, Check, Terminal, Play } from "lucide-react";
24
+ import { jsx, jsxs } from "react/jsx-runtime";
25
+ function prepareCode(raw) {
26
+ const trimmed = raw.trim();
27
+ const fnMatch = trimmed.match(/export\s+default\s+function\s+(\w+)/);
28
+ if (fnMatch) {
29
+ const name = fnMatch[1];
30
+ const code = trimmed.replace(/export\s+default\s+/, "") + `
31
+
32
+ render(<${name} />);`;
33
+ return { code, noInline: true };
34
+ }
35
+ const varMatch = trimmed.match(/export\s+default\s+(\w+)\s*;?\s*$/);
36
+ if (varMatch) {
37
+ const name = varMatch[1];
38
+ const code = trimmed.replace(/export\s+default\s+\w+\s*;?\s*$/, "") + `
39
+ render(<${name} />);`;
40
+ return { code, noInline: true };
41
+ }
42
+ return { code: trimmed, noInline: false };
43
+ }
44
+ function Playground({
45
+ code,
46
+ children,
47
+ scope = {},
48
+ readonly = false,
49
+ noInline: forceNoInline
50
+ }) {
51
+ let initialCode = code || "";
52
+ if (!initialCode && typeof children === "string") {
53
+ initialCode = children;
54
+ }
55
+ const prepared = prepareCode(initialCode);
56
+ const useNoInline = forceNoInline ?? prepared.noInline;
57
+ const [copied, setCopied] = useState(false);
58
+ const [activeCode, setActiveCode] = useState(prepared.code);
59
+ const handleCopy = () => {
60
+ navigator.clipboard.writeText(activeCode);
61
+ setCopied(true);
62
+ setTimeout(() => setCopied(false), 2e3);
63
+ };
64
+ const extendedScope = { React, ...scope };
65
+ return /* @__PURE__ */ jsx("div", { className: "boltdocs-playground", "data-readonly": readonly, children: /* @__PURE__ */ jsx(
66
+ LiveProvider,
67
+ {
68
+ code: activeCode,
69
+ scope: extendedScope,
70
+ theme: void 0,
71
+ noInline: useNoInline,
72
+ children: /* @__PURE__ */ jsxs("div", { className: "playground-split-container", children: [
73
+ /* @__PURE__ */ jsxs("div", { className: "playground-panel playground-editor-panel", children: [
74
+ /* @__PURE__ */ jsxs("div", { className: "playground-panel-header", children: [
75
+ /* @__PURE__ */ jsxs("div", { className: "playground-panel-title", children: [
76
+ /* @__PURE__ */ jsx(Terminal, { size: 14 }),
77
+ /* @__PURE__ */ jsx("span", { children: readonly ? "Code Example" : "Live Editor" })
78
+ ] }),
79
+ /* @__PURE__ */ jsx(
80
+ "button",
81
+ {
82
+ className: "playground-copy-btn",
83
+ onClick: handleCopy,
84
+ title: "Copy code",
85
+ children: copied ? /* @__PURE__ */ jsx(Check, { size: 14 }) : /* @__PURE__ */ jsx(Copy, { size: 14 })
86
+ }
87
+ )
88
+ ] }),
89
+ /* @__PURE__ */ jsx("div", { className: "playground-panel-content playground-editor", children: /* @__PURE__ */ jsx(LiveEditor, { disabled: readonly, onChange: setActiveCode }) })
90
+ ] }),
91
+ /* @__PURE__ */ jsxs("div", { className: "playground-panel playground-preview-panel", children: [
92
+ /* @__PURE__ */ jsx("div", { className: "playground-panel-header", children: /* @__PURE__ */ jsxs("div", { className: "playground-panel-title", children: [
93
+ /* @__PURE__ */ jsx(Play, { size: 14 }),
94
+ /* @__PURE__ */ jsx("span", { children: "Preview" })
95
+ ] }) }),
96
+ /* @__PURE__ */ jsxs("div", { className: "playground-panel-content playground-preview", children: [
97
+ /* @__PURE__ */ jsx(LivePreview, {}),
98
+ /* @__PURE__ */ jsx(LiveError, { className: "playground-error" })
99
+ ] })
100
+ ] })
101
+ ] })
102
+ }
103
+ ) });
104
+ }
105
+
106
+ // src/client/theme/components/mdx/Button.tsx
107
+ import { jsx as jsx2 } from "react/jsx-runtime";
108
+ function Button({
109
+ variant = "primary",
110
+ size = "md",
111
+ href,
112
+ children,
113
+ className = "",
114
+ ...rest
115
+ }) {
116
+ const cls = `ld-btn ld-btn--${variant} ld-btn--${size} ${className}`.trim();
117
+ if (href) {
118
+ return /* @__PURE__ */ jsx2(
119
+ "a",
120
+ {
121
+ href,
122
+ style: { textDecoration: "none" },
123
+ className: cls,
124
+ ...rest,
125
+ children
126
+ }
127
+ );
128
+ }
129
+ return /* @__PURE__ */ jsx2("button", { className: cls, ...rest, children });
130
+ }
131
+
132
+ // src/client/theme/components/mdx/Badge.tsx
133
+ import { jsx as jsx3 } from "react/jsx-runtime";
134
+ function Badge({
135
+ variant = "default",
136
+ children,
137
+ className = "",
138
+ ...rest
139
+ }) {
140
+ return /* @__PURE__ */ jsx3(
141
+ "span",
142
+ {
143
+ className: `ld-badge ld-badge--${variant} ${className}`.trim(),
144
+ ...rest,
145
+ children
146
+ }
147
+ );
148
+ }
149
+
150
+ // src/client/theme/components/mdx/Card.tsx
151
+ import { Fragment, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
152
+ function Cards({
153
+ cols = 3,
154
+ children,
155
+ className = "",
156
+ ...rest
157
+ }) {
158
+ return /* @__PURE__ */ jsx4("div", { className: `ld-cards ld-cards--${cols} ${className}`.trim(), ...rest, children });
159
+ }
160
+ function Card({
161
+ title,
162
+ icon,
163
+ href,
164
+ children,
165
+ className = "",
166
+ ...rest
167
+ }) {
168
+ const inner = /* @__PURE__ */ jsxs2(Fragment, { children: [
169
+ icon && /* @__PURE__ */ jsx4("span", { className: "ld-card__icon", children: icon }),
170
+ title && /* @__PURE__ */ jsx4("h3", { className: "ld-card__title", children: title }),
171
+ children && /* @__PURE__ */ jsx4("div", { className: "ld-card__body", children })
172
+ ] });
173
+ if (href) {
174
+ return /* @__PURE__ */ jsx4(
175
+ "a",
176
+ {
177
+ href,
178
+ className: `ld-card ld-card--link ${className}`.trim(),
179
+ ...rest,
180
+ children: inner
181
+ }
182
+ );
183
+ }
184
+ return /* @__PURE__ */ jsx4("div", { className: `ld-card ${className}`.trim(), ...rest, children: inner });
185
+ }
186
+
187
+ // src/client/theme/components/mdx/Tabs.tsx
188
+ import { useState as useState2, Children, isValidElement, useRef } from "react";
189
+ import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
190
+ function Tab({ children }) {
191
+ return /* @__PURE__ */ jsx5("div", { className: "ld-tab-panel", children });
192
+ }
193
+ function Tabs({ defaultIndex = 0, children }) {
194
+ const [active, setActive] = useState2(defaultIndex);
195
+ const tabRefs = useRef([]);
196
+ const tabs = Children.toArray(children).filter(
197
+ (child) => isValidElement(child) && child.props?.label
198
+ );
199
+ const handleKeyDown = (e) => {
200
+ let newIndex = active;
201
+ if (e.key === "ArrowRight") {
202
+ newIndex = (active + 1) % tabs.length;
203
+ } else if (e.key === "ArrowLeft") {
204
+ newIndex = (active - 1 + tabs.length) % tabs.length;
205
+ }
206
+ if (newIndex !== active) {
207
+ setActive(newIndex);
208
+ tabRefs.current[newIndex]?.focus();
209
+ }
210
+ };
211
+ return /* @__PURE__ */ jsxs3("div", { className: "ld-tabs", children: [
212
+ /* @__PURE__ */ jsx5("div", { className: "ld-tabs__bar", role: "tablist", onKeyDown: handleKeyDown, children: tabs.map((child, i) => {
213
+ const label = child.props.label;
214
+ return /* @__PURE__ */ jsx5(
215
+ "button",
216
+ {
217
+ role: "tab",
218
+ "aria-selected": i === active,
219
+ "aria-controls": `tabpanel-${i}`,
220
+ id: `tab-${i}`,
221
+ tabIndex: i === active ? 0 : -1,
222
+ ref: (el) => {
223
+ tabRefs.current[i] = el;
224
+ },
225
+ className: `ld-tabs__trigger ${i === active ? "ld-tabs__trigger--active" : ""}`,
226
+ onClick: () => setActive(i),
227
+ children: label
228
+ },
229
+ i
230
+ );
231
+ }) }),
232
+ /* @__PURE__ */ jsx5(
233
+ "div",
234
+ {
235
+ className: "ld-tabs__content",
236
+ role: "tabpanel",
237
+ id: `tabpanel-${active}`,
238
+ "aria-labelledby": `tab-${active}`,
239
+ children: tabs[active]
240
+ }
241
+ )
242
+ ] });
243
+ }
244
+
245
+ // src/client/theme/components/mdx/Admonition.tsx
32
246
  import {
33
- Playground
34
- } from "../chunk-WPT4MWTQ.mjs";
247
+ Info,
248
+ Lightbulb,
249
+ AlertTriangle,
250
+ ShieldAlert,
251
+ Bookmark
252
+ } from "lucide-react";
253
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
254
+ var ICON_MAP = {
255
+ note: /* @__PURE__ */ jsx6(Bookmark, { size: 18 }),
256
+ tip: /* @__PURE__ */ jsx6(Lightbulb, { size: 18 }),
257
+ info: /* @__PURE__ */ jsx6(Info, { size: 18 }),
258
+ warning: /* @__PURE__ */ jsx6(AlertTriangle, { size: 18 }),
259
+ danger: /* @__PURE__ */ jsx6(ShieldAlert, { size: 18 })
260
+ };
261
+ var LABEL_MAP = {
262
+ note: "Note",
263
+ tip: "Tip",
264
+ info: "Info",
265
+ warning: "Warning",
266
+ danger: "Danger"
267
+ };
268
+ function Admonition({
269
+ type = "note",
270
+ title,
271
+ children,
272
+ className = "",
273
+ ...rest
274
+ }) {
275
+ return /* @__PURE__ */ jsxs4(
276
+ "div",
277
+ {
278
+ className: `ld-admonition ld-admonition--${type} ${className}`.trim(),
279
+ role: type === "warning" || type === "danger" ? "alert" : "note",
280
+ ...rest,
281
+ children: [
282
+ /* @__PURE__ */ jsxs4("div", { className: "ld-admonition__header", children: [
283
+ /* @__PURE__ */ jsx6("span", { className: "ld-admonition__icon", children: ICON_MAP[type] }),
284
+ /* @__PURE__ */ jsx6("span", { className: "ld-admonition__title", children: title || LABEL_MAP[type] })
285
+ ] }),
286
+ /* @__PURE__ */ jsx6("div", { className: "ld-admonition__body", children })
287
+ ]
288
+ }
289
+ );
290
+ }
291
+ var Note = (props) => /* @__PURE__ */ jsx6(Admonition, { type: "note", ...props });
292
+ var Tip = (props) => /* @__PURE__ */ jsx6(Admonition, { type: "tip", ...props });
293
+ var Warning = (props) => /* @__PURE__ */ jsx6(Admonition, { type: "warning", ...props });
294
+ var Danger = (props) => /* @__PURE__ */ jsx6(Admonition, { type: "danger", ...props });
295
+ var InfoBox = (props) => /* @__PURE__ */ jsx6(Admonition, { type: "info", ...props });
296
+
297
+ // src/client/theme/components/mdx/List.tsx
298
+ import React3, { Children as Children2 } from "react";
299
+ import { Check as Check2, ChevronRight } from "lucide-react";
300
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
301
+ var ICON_MAP2 = {
302
+ checked: /* @__PURE__ */ jsx7(Check2, { size: 14, className: "ld-list__icon" }),
303
+ arrow: /* @__PURE__ */ jsx7(ChevronRight, { size: 14, className: "ld-list__icon" })
304
+ };
305
+ function List({
306
+ variant = "default",
307
+ children,
308
+ className = "",
309
+ ...rest
310
+ }) {
311
+ if (variant === "default") {
312
+ return /* @__PURE__ */ jsx7("ul", { className: `ld-list ${className}`.trim(), ...rest, children });
313
+ }
314
+ const icon = ICON_MAP2[variant];
315
+ return /* @__PURE__ */ jsx7("ul", { className: `ld-list ld-list--${variant} ${className}`.trim(), ...rest, children: Children2.map(children, (child) => {
316
+ if (!React3.isValidElement(child)) return child;
317
+ return /* @__PURE__ */ jsxs5("li", { className: "ld-list__item", children: [
318
+ icon,
319
+ /* @__PURE__ */ jsx7("span", { className: "ld-list__text", children: child.props.children })
320
+ ] });
321
+ }) });
322
+ }
35
323
  export {
36
324
  Admonition,
37
325
  BackgroundGradient,
@@ -422,73 +422,43 @@ a {
422
422
  flex: 1;
423
423
  }
424
424
  .boltdocs-main-container.sidebar-collapsed .boltdocs-sidebar {
425
- width: 0;
426
- padding-left: 0;
427
- padding-right: 0;
428
- border-right-color: transparent;
429
- opacity: 0;
430
- pointer-events: none;
425
+ width: 54px;
426
+ padding: 1rem 0;
427
+ border-right: 1px solid var(--ld-border-subtle);
428
+ opacity: 1;
429
+ pointer-events: auto;
431
430
  overflow: hidden;
432
431
  }
433
- .sidebar-toggle-floating {
434
- position: fixed;
435
- bottom: 2rem;
436
- left: 2rem;
437
- width: 2.75rem;
438
- height: 2.75rem;
439
- border-radius: 50%;
440
- background-color: var(--ld-surface);
441
- border: 1px solid var(--ld-border-strong);
442
- color: var(--ld-text-muted);
432
+ .sidebar-collapse {
433
+ width: 100%;
443
434
  display: flex;
444
435
  align-items: center;
445
- justify-content: center;
446
- cursor: pointer;
447
- z-index: 100;
448
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
449
- transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
450
- opacity: 0;
451
- pointer-events: none;
452
- transform: translateY(20px) scale(0.9);
453
- }
454
- .sidebar-toggle-floating:hover {
455
- background-color: var(--ld-bg-soft);
456
- color: var(--ld-text-main);
457
- transform: translateY(0px) scale(1.05);
458
- border-color: var(--ld-color-primary);
436
+ justify-content: flex-end;
437
+ padding: 0 0.75rem 1rem;
438
+ transition: justify-content 0.3s ease;
459
439
  }
460
- .sidebar-toggle-floating:active {
461
- transform: translateY(0px) scale(0.95);
462
- }
463
- .boltdocs-main-container.sidebar-collapsed .sidebar-toggle-floating {
464
- opacity: 1;
465
- pointer-events: auto;
466
- transform: translateY(0) scale(1);
467
- }
468
- .sidebar-footer {
469
- margin-top: 2rem;
470
- padding-top: 1rem;
471
- border-top: 1px solid var(--ld-border-subtle);
440
+ .boltdocs-main-container.sidebar-collapsed .sidebar-collapse {
441
+ justify-content: center;
442
+ padding: 0 0 1rem;
472
443
  }
473
444
  .sidebar-collapse-btn {
445
+ color: var(--ld-text-muted);
446
+ border: none;
447
+ box-shadow: none;
448
+ background-color: transparent;
449
+ cursor: pointer;
474
450
  display: flex;
475
451
  align-items: center;
476
- gap: 0.5rem;
477
- width: 100%;
478
- padding: 0.5rem 0.75rem;
479
- background: none;
480
- border: none;
452
+ justify-content: center;
453
+ width: 32px;
454
+ height: 32px;
481
455
  border-radius: var(--ld-radius-md);
482
- color: var(--ld-text-muted);
483
- font-family: var(--ld-font-sans);
484
- font-size: 0.8125rem;
485
- font-weight: 500;
486
- cursor: pointer;
487
- transition: all 0.2s ease;
456
+ transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
488
457
  }
489
458
  .sidebar-collapse-btn:hover {
490
- background-color: var(--ld-bg-soft);
491
- color: var(--ld-color-primary);
459
+ background-color: var(--ld-bg-mute);
460
+ color: var(--ld-text-main);
461
+ transform: scale(1.05);
492
462
  }
493
463
  .boltdocs-sidebar::-webkit-scrollbar {
494
464
  width: 4px;
@@ -1161,7 +1131,7 @@ a {
1161
1131
  }
1162
1132
  .boltdocs-page pre > code {
1163
1133
  display: grid;
1164
- padding: 1rem 0;
1134
+ padding: 1rem 1rem;
1165
1135
  background-color: transparent;
1166
1136
  border: none;
1167
1137
  color: inherit;
@@ -1245,57 +1215,68 @@ a {
1245
1215
 
1246
1216
  /* src/client/theme/components/mdx/mdx-components.css */
1247
1217
  .ld-btn {
1218
+ all: unset;
1219
+ box-sizing: border-box !important;
1248
1220
  display: inline-flex;
1249
1221
  align-items: center;
1250
- gap: 0.4rem;
1222
+ justify-content: center;
1223
+ gap: 0.5rem;
1224
+ font-family: var(--ld-font-sans);
1251
1225
  font-weight: 600;
1226
+ font-size: 0.9375rem;
1227
+ line-height: normal;
1228
+ letter-spacing: -0.01em;
1229
+ text-align: center;
1230
+ text-decoration: none !important;
1231
+ white-space: nowrap;
1252
1232
  border-radius: var(--ld-radius-md);
1253
1233
  cursor: pointer;
1254
- transition: all 300ms cubic-bezier(0.16, 1, 0.3, 1);
1255
- font-family: var(--ld-font-sans);
1234
+ transition: all 250ms cubic-bezier(0.4, 0, 0.2, 1);
1256
1235
  border: 1px solid transparent;
1257
- line-height: 1;
1258
- letter-spacing: -0.01em;
1236
+ user-select: none;
1237
+ position: relative;
1259
1238
  }
1260
1239
  .ld-btn:hover {
1261
- transform: scale(1.05);
1240
+ transform: translateY(-1px);
1262
1241
  }
1263
1242
  .ld-btn:active {
1264
- transform: scale(0.95);
1243
+ transform: translateY(0) scale(0.98);
1265
1244
  }
1266
1245
  .ld-btn--sm {
1267
- padding: 0.45rem 1.1rem;
1246
+ min-height: 2rem;
1247
+ padding: 0 1rem;
1268
1248
  font-size: 0.8125rem;
1269
1249
  border-radius: var(--ld-radius-md);
1270
1250
  }
1271
1251
  .ld-btn--md {
1272
- padding: 0.7rem 1.6rem;
1252
+ min-height: 2.625rem;
1253
+ padding: 0 1.6rem;
1273
1254
  font-size: 0.9375rem;
1274
1255
  }
1275
1256
  .ld-btn--lg {
1276
- padding: 0.85rem 2.1rem;
1257
+ min-height: 3.25rem;
1258
+ padding: 0 2.2rem;
1277
1259
  font-size: 1.05rem;
1278
1260
  }
1279
1261
  .ld-btn--primary {
1280
- background-color: var(--ld-ui-btn-primary-bg, var(--ld-btn-primary-bg));
1262
+ background-color: var( --ld-ui-btn-primary-bg, var(--ld-btn-primary-bg) ) !important;
1281
1263
  color: var(--ld-ui-btn-primary-text, var(--ld-btn-primary-text)) !important;
1264
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
1282
1265
  }
1283
1266
  .ld-btn--primary:hover {
1284
- opacity: 0.92;
1285
- color: var(--ld-ui-btn-primary-text, var(--ld-btn-primary-text)) !important;
1267
+ filter: brightness(1.1);
1286
1268
  }
1287
1269
  .ld-btn--secondary {
1288
- background-color: var(--ld-ui-btn-secondary-bg, var(--ld-btn-secondary-bg));
1270
+ background-color: var( --ld-ui-btn-secondary-bg, var(--ld-btn-secondary-bg) ) !important;
1289
1271
  color: var( --ld-ui-btn-secondary-text, var(--ld-btn-secondary-text) ) !important;
1290
1272
  border-color: var(--ld-border-subtle);
1291
1273
  }
1292
1274
  .ld-btn--secondary:hover {
1293
1275
  background-color: var(--ld-bg-mute);
1294
1276
  border-color: var(--ld-border-strong);
1295
- color: var( --ld-ui-btn-secondary-text, var(--ld-btn-secondary-text) ) !important;
1296
1277
  }
1297
1278
  .ld-btn--outline {
1298
- background: transparent;
1279
+ background: transparent !important;
1299
1280
  color: var(--ld-text-main) !important;
1300
1281
  border-color: var(--ld-border-strong);
1301
1282
  }
@@ -1304,7 +1285,7 @@ a {
1304
1285
  border-color: var(--ld-color-primary);
1305
1286
  }
1306
1287
  .ld-btn--ghost {
1307
- background: transparent;
1288
+ background: transparent !important;
1308
1289
  color: var(--ld-text-muted) !important;
1309
1290
  }
1310
1291
  .ld-btn--ghost:hover {
@@ -1840,56 +1821,6 @@ a {
1840
1821
  color: var(--ld-color-primary);
1841
1822
  }
1842
1823
 
1843
- /* src/client/theme/styles/home.css */
1844
- .boltdocs-home {
1845
- min-height: calc(100vh - var(--ld-navbar-height));
1846
- }
1847
- .home-hero {
1848
- display: flex;
1849
- align-items: center;
1850
- justify-content: center;
1851
- padding: 6rem 2rem 4rem;
1852
- text-align: center;
1853
- }
1854
- .hero-content {
1855
- max-width: 680px;
1856
- }
1857
- .hero-title {
1858
- font-size: 3.5rem;
1859
- font-weight: 900;
1860
- line-height: 1.1;
1861
- margin: 0 0 1.25rem;
1862
- letter-spacing: -0.03em;
1863
- color: var(--ld-text-main);
1864
- }
1865
- .hero-highlight {
1866
- background:
1867
- linear-gradient(
1868
- 135deg,
1869
- var(--ld-gradient-from),
1870
- var(--ld-gradient-to));
1871
- -webkit-background-clip: text;
1872
- -webkit-text-fill-color: transparent;
1873
- background-clip: text;
1874
- }
1875
- .hero-description {
1876
- font-size: 1.125rem;
1877
- color: var(--ld-text-muted);
1878
- line-height: 1.7;
1879
- margin-bottom: 2rem;
1880
- }
1881
- .hero-actions {
1882
- display: flex;
1883
- gap: 0.75rem;
1884
- justify-content: center;
1885
- flex-wrap: wrap;
1886
- }
1887
- .home-features {
1888
- padding: 2rem 2rem 6rem;
1889
- max-width: 1000px;
1890
- margin: 0 auto;
1891
- }
1892
-
1893
1824
  /* src/client/theme/ui/NotFound/not-found.css */
1894
1825
  .boltdocs-not-found {
1895
1826
  display: flex;
@@ -2122,9 +2053,6 @@ a.not-found-link:hover {
2122
2053
  .boltdocs-sidebar {
2123
2054
  display: none;
2124
2055
  }
2125
- .sidebar-toggle-floating {
2126
- display: none !important;
2127
- }
2128
2056
  .boltdocs-content {
2129
2057
  padding: 1.5rem 1rem 3rem;
2130
2058
  }