boltdocs 1.10.2 → 1.11.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 (225) hide show
  1. package/package.json +29 -7
  2. package/src/client/app/config-context.tsx +18 -0
  3. package/src/client/app/docs-layout.tsx +14 -0
  4. package/src/client/app/index.tsx +132 -260
  5. package/src/client/app/mdx-component.tsx +52 -0
  6. package/src/client/app/mdx-components-context.tsx +23 -0
  7. package/src/client/app/mdx-page.tsx +20 -0
  8. package/src/client/app/preload.tsx +38 -30
  9. package/src/client/app/router.tsx +30 -0
  10. package/src/client/app/scroll-handler.tsx +40 -0
  11. package/src/client/app/theme-context.tsx +75 -0
  12. package/src/client/components/default-layout.tsx +80 -0
  13. package/src/client/components/docs-layout.tsx +105 -0
  14. package/src/client/components/icons-dev.tsx +74 -0
  15. package/src/client/components/mdx/admonition.tsx +107 -0
  16. package/src/client/components/mdx/badge.tsx +41 -0
  17. package/src/client/components/mdx/button.tsx +35 -0
  18. package/src/client/components/mdx/card.tsx +124 -0
  19. package/src/client/components/mdx/code-block.tsx +119 -0
  20. package/src/client/components/mdx/component-preview.tsx +47 -0
  21. package/src/client/components/mdx/component-props.tsx +83 -0
  22. package/src/client/components/mdx/field.tsx +66 -0
  23. package/src/client/components/mdx/file-tree.tsx +287 -0
  24. package/src/client/components/mdx/hooks/use-code-block.ts +56 -0
  25. package/src/client/components/mdx/hooks/use-component-preview.ts +16 -0
  26. package/src/client/components/mdx/hooks/useTable.ts +74 -0
  27. package/src/client/components/mdx/hooks/useTabs.ts +68 -0
  28. package/src/client/components/mdx/image.tsx +23 -0
  29. package/src/client/components/mdx/index.ts +53 -0
  30. package/src/client/components/mdx/link.tsx +38 -0
  31. package/src/client/components/mdx/list.tsx +192 -0
  32. package/src/client/components/mdx/table.tsx +156 -0
  33. package/src/client/components/mdx/tabs.tsx +135 -0
  34. package/src/client/components/mdx/video.tsx +68 -0
  35. package/src/client/components/primitives/breadcrumbs.tsx +79 -0
  36. package/src/client/components/primitives/button-group.tsx +54 -0
  37. package/src/client/components/primitives/button.tsx +145 -0
  38. package/src/client/components/primitives/helpers/observer.ts +120 -0
  39. package/src/client/components/primitives/index.ts +17 -0
  40. package/src/client/components/primitives/link.tsx +122 -0
  41. package/src/client/components/primitives/menu.tsx +159 -0
  42. package/src/client/components/primitives/navbar.tsx +359 -0
  43. package/src/client/components/primitives/navigation-menu.tsx +116 -0
  44. package/src/client/components/primitives/on-this-page.tsx +461 -0
  45. package/src/client/components/primitives/page-nav.tsx +87 -0
  46. package/src/client/components/primitives/popover.tsx +47 -0
  47. package/src/client/components/primitives/search-dialog.tsx +183 -0
  48. package/src/client/components/primitives/sidebar.tsx +154 -0
  49. package/src/client/components/primitives/tabs.tsx +90 -0
  50. package/src/client/components/primitives/tooltip.tsx +83 -0
  51. package/src/client/components/primitives/types.ts +11 -0
  52. package/src/client/components/ui-base/breadcrumbs.tsx +42 -0
  53. package/src/client/components/ui-base/copy-markdown.tsx +112 -0
  54. package/src/client/components/ui-base/error-boundary.tsx +52 -0
  55. package/src/client/components/ui-base/github-stars.tsx +27 -0
  56. package/src/client/components/ui-base/head.tsx +69 -0
  57. package/src/client/components/ui-base/loading.tsx +87 -0
  58. package/src/client/components/ui-base/navbar.tsx +138 -0
  59. package/src/client/components/ui-base/not-found.tsx +24 -0
  60. package/src/client/components/ui-base/on-this-page.tsx +152 -0
  61. package/src/client/components/ui-base/page-nav.tsx +39 -0
  62. package/src/client/components/ui-base/powered-by.tsx +19 -0
  63. package/src/client/components/ui-base/progress-bar.tsx +67 -0
  64. package/src/client/components/ui-base/search-dialog.tsx +82 -0
  65. package/src/client/components/ui-base/sidebar.tsx +104 -0
  66. package/src/client/components/ui-base/tabs.tsx +65 -0
  67. package/src/client/components/ui-base/theme-toggle.tsx +32 -0
  68. package/src/client/hooks/index.ts +12 -0
  69. package/src/client/hooks/use-breadcrumbs.ts +22 -0
  70. package/src/client/hooks/use-i18n.ts +84 -0
  71. package/src/client/hooks/use-localized-to.ts +95 -0
  72. package/src/client/hooks/use-location.ts +5 -0
  73. package/src/client/hooks/use-navbar.ts +60 -0
  74. package/src/client/hooks/use-onthispage.ts +23 -0
  75. package/src/client/hooks/use-page-nav.ts +22 -0
  76. package/src/client/hooks/use-routes.ts +72 -0
  77. package/src/client/hooks/use-search.ts +71 -0
  78. package/src/client/hooks/use-sidebar.ts +49 -0
  79. package/src/client/hooks/use-tabs.ts +43 -0
  80. package/src/client/hooks/use-version.ts +78 -0
  81. package/src/client/index.ts +55 -17
  82. package/src/client/integrations/codesandbox.ts +179 -0
  83. package/src/client/ssr.tsx +27 -16
  84. package/src/client/theme/neutral.css +360 -0
  85. package/src/client/types.ts +131 -27
  86. package/src/client/utils/cn.ts +6 -0
  87. package/src/client/utils/copy-clipboard.ts +22 -0
  88. package/src/client/utils/get-base-file-path.ts +21 -0
  89. package/src/client/utils/github.ts +121 -0
  90. package/src/client/utils/use-on-change.ts +15 -0
  91. package/src/client/virtual.d.ts +24 -0
  92. package/src/node/cache.ts +156 -156
  93. package/src/node/config.ts +159 -103
  94. package/src/node/index.ts +13 -13
  95. package/src/node/mdx.ts +213 -61
  96. package/src/node/plugin/entry.ts +29 -18
  97. package/src/node/plugin/html.ts +11 -11
  98. package/src/node/plugin/index.ts +161 -83
  99. package/src/node/plugin/types.ts +2 -4
  100. package/src/node/routes/cache.ts +6 -6
  101. package/src/node/routes/index.ts +206 -113
  102. package/src/node/routes/parser.ts +106 -81
  103. package/src/node/routes/sorter.ts +15 -15
  104. package/src/node/routes/types.ts +24 -24
  105. package/src/node/ssg/index.ts +46 -46
  106. package/src/node/ssg/meta.ts +4 -4
  107. package/src/node/ssg/options.ts +5 -5
  108. package/src/node/ssg/sitemap.ts +14 -14
  109. package/src/node/utils.ts +31 -31
  110. package/tsconfig.json +25 -20
  111. package/tsup.config.ts +23 -14
  112. package/dist/PackageManagerTabs-NVT7G625.mjs +0 -99
  113. package/dist/SearchDialog-AGVF6JBO.mjs +0 -194
  114. package/dist/SearchDialog-YPDOM7Q6.css +0 -2847
  115. package/dist/Video-KNTY5BNO.mjs +0 -6
  116. package/dist/cache-KNL5B4EE.mjs +0 -12
  117. package/dist/chunk-7SFUJWTB.mjs +0 -211
  118. package/dist/chunk-FFBNU6IJ.mjs +0 -386
  119. package/dist/chunk-FMTOYQLO.mjs +0 -37
  120. package/dist/chunk-TKLQWU7H.mjs +0 -1920
  121. package/dist/chunk-Z7JHYNAS.mjs +0 -57
  122. package/dist/client/index.css +0 -2847
  123. package/dist/client/index.d.mts +0 -372
  124. package/dist/client/index.d.ts +0 -372
  125. package/dist/client/index.js +0 -3630
  126. package/dist/client/index.mjs +0 -697
  127. package/dist/client/ssr.css +0 -2847
  128. package/dist/client/ssr.d.mts +0 -27
  129. package/dist/client/ssr.d.ts +0 -27
  130. package/dist/client/ssr.js +0 -2928
  131. package/dist/client/ssr.mjs +0 -33
  132. package/dist/config-BsFQ-ErD.d.mts +0 -159
  133. package/dist/config-BsFQ-ErD.d.ts +0 -159
  134. package/dist/node/index.d.mts +0 -91
  135. package/dist/node/index.d.ts +0 -91
  136. package/dist/node/index.js +0 -1187
  137. package/dist/node/index.mjs +0 -762
  138. package/dist/types-Dj-bfnC3.d.mts +0 -74
  139. package/dist/types-Dj-bfnC3.d.ts +0 -74
  140. package/src/client/theme/components/CodeBlock/CodeBlock.tsx +0 -61
  141. package/src/client/theme/components/CodeBlock/index.ts +0 -1
  142. package/src/client/theme/components/PackageManagerTabs/PackageManagerTabs.tsx +0 -131
  143. package/src/client/theme/components/PackageManagerTabs/index.ts +0 -1
  144. package/src/client/theme/components/PackageManagerTabs/pkg-tabs.css +0 -64
  145. package/src/client/theme/components/Playground/Playground.tsx +0 -180
  146. package/src/client/theme/components/Playground/index.ts +0 -1
  147. package/src/client/theme/components/Playground/playground.css +0 -238
  148. package/src/client/theme/components/Video/Video.tsx +0 -84
  149. package/src/client/theme/components/Video/index.ts +0 -1
  150. package/src/client/theme/components/Video/video.css +0 -41
  151. package/src/client/theme/components/mdx/Admonition.tsx +0 -80
  152. package/src/client/theme/components/mdx/Badge.tsx +0 -31
  153. package/src/client/theme/components/mdx/Button.tsx +0 -50
  154. package/src/client/theme/components/mdx/Card.tsx +0 -80
  155. package/src/client/theme/components/mdx/Field.tsx +0 -60
  156. package/src/client/theme/components/mdx/FileTree.tsx +0 -229
  157. package/src/client/theme/components/mdx/List.tsx +0 -57
  158. package/src/client/theme/components/mdx/Table.tsx +0 -151
  159. package/src/client/theme/components/mdx/Tabs.tsx +0 -123
  160. package/src/client/theme/components/mdx/index.ts +0 -27
  161. package/src/client/theme/components/mdx/mdx-components.css +0 -764
  162. package/src/client/theme/icons/bun.tsx +0 -62
  163. package/src/client/theme/icons/deno.tsx +0 -20
  164. package/src/client/theme/icons/discord.tsx +0 -12
  165. package/src/client/theme/icons/github.tsx +0 -15
  166. package/src/client/theme/icons/npm.tsx +0 -13
  167. package/src/client/theme/icons/pnpm.tsx +0 -72
  168. package/src/client/theme/icons/twitter.tsx +0 -12
  169. package/src/client/theme/styles/markdown.css +0 -394
  170. package/src/client/theme/styles/variables.css +0 -175
  171. package/src/client/theme/styles.css +0 -39
  172. package/src/client/theme/ui/Breadcrumbs/Breadcrumbs.tsx +0 -68
  173. package/src/client/theme/ui/Breadcrumbs/index.ts +0 -1
  174. package/src/client/theme/ui/CopyMarkdown/CopyMarkdown.tsx +0 -82
  175. package/src/client/theme/ui/CopyMarkdown/copy-markdown.css +0 -112
  176. package/src/client/theme/ui/CopyMarkdown/index.ts +0 -1
  177. package/src/client/theme/ui/ErrorBoundary/ErrorBoundary.tsx +0 -50
  178. package/src/client/theme/ui/ErrorBoundary/error-boundary.css +0 -55
  179. package/src/client/theme/ui/ErrorBoundary/index.ts +0 -1
  180. package/src/client/theme/ui/Footer/footer.css +0 -32
  181. package/src/client/theme/ui/Head/Head.tsx +0 -69
  182. package/src/client/theme/ui/Head/index.ts +0 -1
  183. package/src/client/theme/ui/LanguageSwitcher/LanguageSwitcher.tsx +0 -125
  184. package/src/client/theme/ui/LanguageSwitcher/index.ts +0 -1
  185. package/src/client/theme/ui/LanguageSwitcher/language-switcher.css +0 -98
  186. package/src/client/theme/ui/Layout/Layout.tsx +0 -203
  187. package/src/client/theme/ui/Layout/base.css +0 -106
  188. package/src/client/theme/ui/Layout/index.ts +0 -2
  189. package/src/client/theme/ui/Layout/pagination.css +0 -72
  190. package/src/client/theme/ui/Layout/responsive.css +0 -47
  191. package/src/client/theme/ui/Link/Link.tsx +0 -392
  192. package/src/client/theme/ui/Link/LinkPreview.tsx +0 -59
  193. package/src/client/theme/ui/Link/index.ts +0 -2
  194. package/src/client/theme/ui/Link/link-preview.css +0 -48
  195. package/src/client/theme/ui/Loading/Loading.tsx +0 -10
  196. package/src/client/theme/ui/Loading/index.ts +0 -1
  197. package/src/client/theme/ui/Loading/loading.css +0 -30
  198. package/src/client/theme/ui/Navbar/GithubStars.tsx +0 -27
  199. package/src/client/theme/ui/Navbar/Navbar.tsx +0 -193
  200. package/src/client/theme/ui/Navbar/Tabs.tsx +0 -99
  201. package/src/client/theme/ui/Navbar/index.ts +0 -2
  202. package/src/client/theme/ui/Navbar/navbar.css +0 -347
  203. package/src/client/theme/ui/NotFound/NotFound.tsx +0 -19
  204. package/src/client/theme/ui/NotFound/index.ts +0 -1
  205. package/src/client/theme/ui/NotFound/not-found.css +0 -64
  206. package/src/client/theme/ui/OnThisPage/OnThisPage.tsx +0 -244
  207. package/src/client/theme/ui/OnThisPage/index.ts +0 -1
  208. package/src/client/theme/ui/OnThisPage/toc.css +0 -152
  209. package/src/client/theme/ui/PoweredBy/PoweredBy.tsx +0 -18
  210. package/src/client/theme/ui/PoweredBy/index.ts +0 -1
  211. package/src/client/theme/ui/PoweredBy/powered-by.css +0 -76
  212. package/src/client/theme/ui/ProgressBar/ProgressBar.css +0 -17
  213. package/src/client/theme/ui/ProgressBar/ProgressBar.tsx +0 -51
  214. package/src/client/theme/ui/ProgressBar/index.ts +0 -1
  215. package/src/client/theme/ui/SearchDialog/SearchDialog.tsx +0 -209
  216. package/src/client/theme/ui/SearchDialog/index.ts +0 -1
  217. package/src/client/theme/ui/SearchDialog/search.css +0 -152
  218. package/src/client/theme/ui/Sidebar/Sidebar.tsx +0 -244
  219. package/src/client/theme/ui/Sidebar/index.ts +0 -1
  220. package/src/client/theme/ui/Sidebar/sidebar.css +0 -230
  221. package/src/client/theme/ui/ThemeToggle/ThemeToggle.tsx +0 -69
  222. package/src/client/theme/ui/ThemeToggle/index.ts +0 -1
  223. package/src/client/theme/ui/VersionSwitcher/VersionSwitcher.tsx +0 -136
  224. package/src/client/theme/ui/VersionSwitcher/index.ts +0 -1
  225. package/src/client/utils.ts +0 -49
@@ -1,764 +0,0 @@
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
- /* Total Reset */
10
- all: unset;
11
- box-sizing: border-box !important;
12
- display: inline-flex;
13
- align-items: center;
14
- justify-content: center;
15
- gap: 0.5rem;
16
-
17
- /* Typography */
18
- font-family: var(--ld-font-sans);
19
- font-weight: 600;
20
- font-size: 0.9375rem;
21
- line-height: normal; /* Essential for flex centering */
22
- letter-spacing: -0.01em;
23
- text-align: center;
24
- text-decoration: none !important;
25
- white-space: nowrap;
26
-
27
- /* Appearance */
28
- border-radius: var(--ld-radius-md);
29
- cursor: pointer;
30
- transition: all 250ms cubic-bezier(0.4, 0, 0.2, 1);
31
- border: 1px solid transparent;
32
- user-select: none;
33
- position: relative;
34
- }
35
-
36
- .ld-btn:hover {
37
- transform: translateY(-1px);
38
- }
39
-
40
- .ld-btn:active {
41
- transform: translateY(0) scale(0.98);
42
- }
43
-
44
- /* sizes */
45
- .ld-btn--sm {
46
- min-height: 2rem;
47
- padding: 0 1rem;
48
- font-size: 0.8125rem;
49
- border-radius: var(--ld-radius-md);
50
- }
51
- .ld-btn--md {
52
- min-height: 2.625rem;
53
- padding: 0 1.6rem;
54
- font-size: 0.9375rem;
55
- }
56
- .ld-btn--lg {
57
- min-height: 3.25rem;
58
- padding: 0 2.2rem;
59
- font-size: 1.05rem;
60
- }
61
-
62
- /* variants */
63
- .ld-btn--primary {
64
- background-color: var(
65
- --ld-ui-btn-primary-bg,
66
- var(--ld-btn-primary-bg)
67
- ) !important;
68
- color: var(--ld-ui-btn-primary-text, var(--ld-btn-primary-text)) !important;
69
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
70
- }
71
- .ld-btn--primary:hover {
72
- filter: brightness(1.1);
73
- }
74
-
75
- .ld-btn--secondary {
76
- background-color: var(
77
- --ld-ui-btn-secondary-bg,
78
- var(--ld-btn-secondary-bg)
79
- ) !important;
80
- color: var(
81
- --ld-ui-btn-secondary-text,
82
- var(--ld-btn-secondary-text)
83
- ) !important;
84
- border-color: var(--ld-border-subtle);
85
- }
86
- .ld-btn--secondary:hover {
87
- background-color: var(--ld-bg-mute);
88
- border-color: var(--ld-border-strong);
89
- }
90
-
91
- .ld-btn--outline {
92
- background: transparent !important;
93
- color: var(--ld-text-main) !important;
94
- border-color: var(--ld-border-strong);
95
- }
96
- .ld-btn--outline:hover {
97
- background-color: var(--ld-bg-soft);
98
- border-color: var(--ld-color-primary);
99
- }
100
-
101
- .ld-btn--ghost {
102
- background: transparent !important;
103
- color: var(--ld-text-muted) !important;
104
- }
105
- .ld-btn--ghost:hover {
106
- background-color: var(--ld-bg-soft);
107
- color: var(--ld-text-main) !important;
108
- }
109
-
110
- /* ─── Badge ───────────────────────────────────────────────── */
111
- .ld-badge {
112
- display: inline-flex;
113
- align-items: center;
114
- padding: 0.3rem 0.85rem;
115
- font-size: 0.75rem;
116
- font-weight: 600;
117
- border-radius: var(--ld-radius-full);
118
- line-height: 1.4;
119
- white-space: nowrap;
120
- letter-spacing: 0.01em;
121
- }
122
-
123
- .ld-badge--default {
124
- background: var(--ld-bg-mute);
125
- color: var(--ld-text-main);
126
- border: 1px solid var(--ld-border-subtle);
127
- }
128
- .ld-badge--primary {
129
- background: var(--ld-color-primary-muted);
130
- color: var(--ld-color-primary);
131
- border: 1px solid rgba(127, 19, 236, 0.2);
132
- }
133
- .ld-badge--success {
134
- background: var(--ld-ui-success-bg);
135
- color: var(--ld-ui-success-text);
136
- border: 1px solid var(--ld-ui-success-border);
137
- }
138
- .ld-badge--warning {
139
- background: var(--ld-ui-warning-bg);
140
- color: var(--ld-ui-warning-text);
141
- border: 1px solid var(--ld-ui-warning-border);
142
- }
143
- .ld-badge--danger {
144
- background: var(--ld-ui-danger-bg);
145
- color: var(--ld-ui-danger-text);
146
- border: 1px solid var(--ld-ui-danger-border);
147
- }
148
- .ld-badge--info {
149
- background: var(--ld-ui-info-bg);
150
- color: var(--ld-ui-info-text);
151
- border: 1px solid var(--ld-ui-info-border);
152
- }
153
-
154
- /* ─── Cards ───────────────────────────────────────────────── */
155
- .ld-cards {
156
- display: grid;
157
- gap: 1rem;
158
- margin: 1.5rem 0;
159
- }
160
- .ld-cards--1 {
161
- grid-template-columns: 1fr;
162
- }
163
- .ld-cards--2 {
164
- grid-template-columns: repeat(2, 1fr);
165
- }
166
- .ld-cards--3 {
167
- grid-template-columns: repeat(3, 1fr);
168
- }
169
- .ld-cards--4 {
170
- grid-template-columns: repeat(4, 1fr);
171
- }
172
-
173
- @media (max-width: 768px) {
174
- .ld-cards--2,
175
- .ld-cards--3,
176
- .ld-cards--4 {
177
- grid-template-columns: 1fr;
178
- }
179
- }
180
-
181
- .ld-card {
182
- position: relative;
183
- padding: 1.35rem 1.5rem;
184
- border-radius: var(--ld-radius-lg);
185
- border: 1px solid var(--ld-border-subtle);
186
- background: var(--ld-bg-soft);
187
- transition: all 300ms cubic-bezier(0.16, 1, 0.3, 1);
188
- text-decoration: none !important;
189
- backdrop-filter: blur(var(--ld-navbar-blur));
190
- -webkit-backdrop-filter: blur(var(--ld-navbar-blur));
191
- color: inherit;
192
- overflow: hidden;
193
- }
194
-
195
- /* Subtle inner glow on top edge */
196
- .ld-card::before {
197
- content: "";
198
- position: absolute;
199
- top: 0;
200
- left: 0;
201
- right: 0;
202
- height: 1px;
203
- background: linear-gradient(
204
- 90deg,
205
- transparent,
206
- var(--ld-border-strong),
207
- transparent
208
- );
209
- opacity: 0;
210
- transition: opacity 0.3s ease;
211
- }
212
-
213
- .ld-card:hover {
214
- border-color: var(--ld-color-primary);
215
- transform: translateY(-3px);
216
- }
217
- .ld-card:hover::before {
218
- opacity: 1;
219
- background: linear-gradient(
220
- 90deg,
221
- transparent,
222
- var(--ld-color-primary),
223
- transparent
224
- );
225
- }
226
-
227
- .ld-card--link {
228
- cursor: pointer;
229
- }
230
- .ld-card--link:hover {
231
- text-decoration: none !important;
232
- }
233
-
234
- .ld-card__icon {
235
- font-size: 1.6rem;
236
- display: flex;
237
- align-items: center;
238
- justify-content: center;
239
- width: 2.5rem;
240
- height: 2.5rem;
241
- margin-bottom: 0.85rem;
242
- }
243
- .ld-card__title {
244
- font-size: 0.95rem;
245
- font-weight: 700;
246
- margin: 0 0 0.4rem;
247
- color: var(--ld-text-main);
248
- letter-spacing: -0.01em;
249
- }
250
- .ld-card__body {
251
- font-size: 0.85rem;
252
- color: var(--ld-text-muted);
253
- line-height: 1.55;
254
- margin: 0;
255
- }
256
- .ld-card__body p {
257
- margin: 0;
258
- }
259
-
260
- /* ─── Tabs ────────────────────────────────────────────────── */
261
- .ld-tabs {
262
- margin: 1.5rem 0;
263
- border: 1px solid var(--ld-border-subtle);
264
- border-radius: var(--ld-radius-lg);
265
- overflow: hidden;
266
- background: var(--ld-bg-soft);
267
- }
268
-
269
- .ld-tabs__bar {
270
- display: flex;
271
- gap: 0;
272
- background-color: var(--ld-bg-mute);
273
- border-bottom: 1px solid var(--ld-border-subtle);
274
- overflow-x: auto;
275
- }
276
-
277
- .ld-tabs__trigger {
278
- position: relative;
279
- display: flex;
280
- align-items: center;
281
- gap: 0.5rem;
282
- padding: 0.65rem 1.25rem;
283
- background: none;
284
- border: none;
285
- border-bottom: 2px solid transparent;
286
- color: var(--ld-text-dim);
287
- font-family: var(--ld-font-sans);
288
- font-size: 0.8125rem;
289
- font-weight: 500;
290
- cursor: pointer;
291
- transition: all 0.2s ease;
292
- white-space: nowrap;
293
- }
294
-
295
- .ld-tabs__trigger svg {
296
- width: 1rem;
297
- height: 1rem;
298
- }
299
- .ld-tabs__trigger:hover {
300
- color: var(--ld-text-main);
301
- background-color: rgba(255, 255, 255, 0.03);
302
- }
303
- .ld-tabs__trigger--active {
304
- color: var(--ld-color-primary);
305
- border-bottom-color: var(--ld-color-primary);
306
- background-color: transparent;
307
- }
308
-
309
- .ld-tabs__content {
310
- padding: 1.25rem;
311
- }
312
-
313
- .ld-tab-panel {
314
- font-size: 0.9rem;
315
- line-height: 1.7;
316
- color: var(--ld-text-muted);
317
- }
318
-
319
- /* ─── Admonition ──────────────────────────────────────────── */
320
- .ld-admonition {
321
- margin: 1.5rem 0;
322
- border-radius: var(--ld-radius-lg);
323
- border: 1px solid;
324
- overflow: hidden;
325
- }
326
-
327
- .ld-admonition__header {
328
- display: flex;
329
- align-items: center;
330
- gap: 0.5rem;
331
- padding: 0.6rem 1.1rem;
332
- font-weight: 600;
333
- font-size: 0.8rem;
334
- text-transform: uppercase;
335
- letter-spacing: 0.04em;
336
- }
337
-
338
- .ld-admonition__icon {
339
- display: inline-flex;
340
- align-items: center;
341
- }
342
-
343
- .ld-admonition__body {
344
- padding: 0.6rem 1.1rem 1rem;
345
- font-size: 0.875rem;
346
- line-height: 1.7;
347
- color: var(--ld-text-muted);
348
- }
349
- .ld-admonition__body p {
350
- margin: 0 0 0.5rem;
351
- }
352
- .ld-admonition__body p:last-child {
353
- margin-bottom: 0;
354
- }
355
-
356
- /* Admonition — Note (blue) */
357
- .ld-admonition--note {
358
- border-color: var(--ld-ui-note-border);
359
- background-color: var(--ld-ui-note-bg);
360
- }
361
- .ld-admonition--note .ld-admonition__header {
362
- color: var(--ld-ui-note-text);
363
- }
364
-
365
- /* Admonition — Tip (green) */
366
- .ld-admonition--tip {
367
- border-color: var(--ld-ui-tip-border);
368
- background-color: var(--ld-ui-tip-bg);
369
- }
370
- .ld-admonition--tip .ld-admonition__header {
371
- color: var(--ld-ui-tip-text);
372
- }
373
-
374
- /* Admonition — Info (blue) */
375
- .ld-admonition--info {
376
- border-color: var(--ld-ui-info-border);
377
- background-color: var(--ld-ui-info-bg);
378
- }
379
- .ld-admonition--info .ld-admonition__header {
380
- color: var(--ld-ui-info-text);
381
- }
382
-
383
- /* Admonition — Warning (amber) */
384
- .ld-admonition--warning {
385
- border-color: var(--ld-ui-warning-border);
386
- background-color: var(--ld-ui-warning-bg);
387
- }
388
- .ld-admonition--warning .ld-admonition__header {
389
- color: var(--ld-ui-warning-text);
390
- }
391
-
392
- /* Admonition — Danger (red) */
393
- .ld-admonition--danger {
394
- border-color: var(--ld-ui-danger-border);
395
- background-color: var(--ld-ui-danger-bg);
396
- }
397
- .ld-admonition--danger .ld-admonition__header {
398
- color: var(--ld-ui-danger-text);
399
- }
400
-
401
- /* ─── List ────────────────────────────────────────────────── */
402
- .ld-list {
403
- margin: 1rem 0;
404
- padding-left: 0;
405
- list-style: none;
406
- }
407
- .ld-list--checked,
408
- .ld-list--arrow {
409
- padding-left: 0;
410
- }
411
-
412
- .ld-list__item {
413
- display: flex;
414
- align-items: flex-start;
415
- gap: 0.6rem;
416
- padding: 0.35rem 0;
417
- color: var(--ld-text-muted);
418
- font-size: 0.9rem;
419
- line-height: 1.6;
420
- }
421
-
422
- .ld-list__icon {
423
- flex-shrink: 0;
424
- margin-top: 0.25rem;
425
- }
426
-
427
- .ld-list--checked .ld-list__icon {
428
- color: var(--ld-ui-success-text);
429
- }
430
- .ld-list--arrow .ld-list__icon {
431
- color: var(--ld-color-primary);
432
- }
433
-
434
- /* ─── FileTree ────────────────────────────────────────────── */
435
- .ld-file-tree {
436
- margin: 1.5rem 0;
437
- padding: 1rem;
438
- border-radius: var(--ld-radius-lg);
439
- border: 1px solid var(--ld-border-subtle);
440
- background: var(--ld-bg-soft);
441
- font-family: var(--ld-font-mono);
442
- font-size: 0.875rem;
443
- overflow-x: auto;
444
- }
445
-
446
- .ld-file-tree__list {
447
- list-style: none !important;
448
- margin: 0 !important;
449
- padding: 0;
450
- position: relative;
451
- }
452
-
453
- .ld-file-tree__list:not(.ld-file-tree__list--root) {
454
- padding-left: 1.25rem;
455
- margin-top: 0.25rem !important;
456
- position: relative;
457
- }
458
-
459
- /* Vertical line for nested folders */
460
- .ld-file-tree__list:not(.ld-file-tree__list--root)::before {
461
- content: "";
462
- position: absolute;
463
- top: 0;
464
- bottom: 0;
465
- left: 0.45rem; /* align with folder icon */
466
- width: 1px;
467
- background-color: var(--ld-border-subtle);
468
- z-index: 0;
469
- }
470
-
471
- .ld-file-tree__item {
472
- position: relative;
473
- margin: 0.2rem 0 !important;
474
- padding: 0 !important;
475
- display: block !important;
476
- }
477
-
478
- .ld-file-tree__label {
479
- display: inline-flex;
480
- align-items: center;
481
- gap: 0.5rem;
482
- color: var(--ld-text-muted);
483
- user-select: none;
484
- border-radius: var(--ld-radius-sm);
485
- padding: 0.25rem 0.6rem 0.25rem 0.4rem;
486
- transition: all 0.2s ease;
487
- position: relative;
488
- z-index: 1;
489
- }
490
-
491
- .ld-file-tree__label:hover {
492
- background: var(--ld-bg-mute);
493
- color: var(--ld-text-main);
494
- }
495
-
496
- .ld-file-tree__label--folder {
497
- color: var(--ld-text-main);
498
- font-weight: 500;
499
- }
500
-
501
- .ld-file-tree__icon {
502
- display: inline-flex;
503
- align-items: center;
504
- justify-content: center;
505
- opacity: 0.8;
506
- flex-shrink: 0;
507
- }
508
-
509
- .ld-file-tree__icon-folder {
510
- color: var(--ld-color-primary);
511
- }
512
-
513
- .ld-file-tree__name {
514
- white-space: nowrap;
515
- }
516
-
517
- .ld-file-tree__icon--chevron {
518
- width: 14px;
519
- height: 14px;
520
- opacity: 0.5;
521
- transition: opacity 0.2s ease;
522
- display: flex !important;
523
- align-items: center;
524
- justify-content: center;
525
- }
526
-
527
- .ld-file-tree__label:hover .ld-file-tree__icon--chevron {
528
- opacity: 1;
529
- }
530
-
531
- .ld-file-tree__chevron {
532
- transition: transform 0.2s ease;
533
- }
534
-
535
- .ld-file-tree__chevron--open {
536
- transform: rotate(90deg);
537
- }
538
-
539
- .ld-file-tree__icon--spacer {
540
- width: 14px;
541
- }
542
-
543
- /* ─── Table ───────────────────────────────────────────────── */
544
- .ld-table-container {
545
- margin: 1.5rem 0;
546
- border: 1px solid var(--ld-border-subtle);
547
- border-radius: var(--ld-radius-lg);
548
- overflow: hidden;
549
- background: var(--ld-bg-soft);
550
- display: flex;
551
- flex-direction: column;
552
- }
553
-
554
- .ld-table-wrapper {
555
- overflow-x: auto;
556
- scrollbar-width: thin;
557
- }
558
-
559
- .ld-table {
560
- width: 100%;
561
- border-collapse: collapse;
562
- text-align: left;
563
- font-size: 0.875rem;
564
- line-height: 1.5;
565
- }
566
-
567
- .ld-table thead {
568
- background: var(--ld-bg-mute);
569
- border-bottom: 1px solid var(--ld-border-subtle);
570
- }
571
-
572
- .ld-table th {
573
- padding: 0.75rem 1rem;
574
- font-weight: 600;
575
- color: var(--ld-text-main);
576
- font-size: 0.8125rem;
577
- text-transform: uppercase;
578
- letter-spacing: 0.04em;
579
- white-space: nowrap;
580
- }
581
-
582
- .ld-table-header--sortable {
583
- cursor: pointer;
584
- transition: background-color 0.2s;
585
- }
586
-
587
- .ld-table-header--sortable:hover {
588
- background-color: var(--ld-bg-soft);
589
- }
590
-
591
- .ld-table-header-content {
592
- display: flex;
593
- align-items: center;
594
- gap: 0.5rem;
595
- }
596
-
597
- .ld-table-sort-icon {
598
- opacity: 0.8;
599
- color: var(--ld-color-primary);
600
- transition: opacity 0.2s;
601
- }
602
-
603
- .ld-table-sort-icon--hidden {
604
- opacity: 0;
605
- }
606
-
607
- .ld-table-header--sortable:hover .ld-table-sort-icon--hidden {
608
- opacity: 0.3;
609
- }
610
-
611
- .ld-table td {
612
- padding: 0.875rem 1rem;
613
- color: var(--ld-text-muted);
614
- border-bottom: 1px solid var(--ld-border-subtle);
615
- }
616
-
617
- .ld-table tr:last-child td {
618
- border-bottom: none;
619
- }
620
-
621
- .ld-table code {
622
- font-size: 0.8rem;
623
- padding: 0.2rem 0.4rem;
624
- background: rgba(255, 255, 255, 0.05);
625
- border-radius: 4px;
626
- }
627
-
628
- /* Pagination */
629
- .ld-table-pagination {
630
- display: flex;
631
- align-items: center;
632
- justify-content: space-between;
633
- padding: 0.75rem 1rem;
634
- background: var(--ld-bg-mute);
635
- border-top: 1px solid var(--ld-border-subtle);
636
- font-size: 0.75rem;
637
- color: var(--ld-text-dim);
638
- }
639
-
640
- .ld-table-pagination-controls {
641
- display: flex;
642
- align-items: center;
643
- gap: 0.25rem;
644
- }
645
-
646
- .ld-table-pagination-btn {
647
- display: flex;
648
- align-items: center;
649
- justify-content: center;
650
- width: 1.75rem;
651
- height: 1.75rem;
652
- border-radius: var(--ld-radius-md);
653
- border: 1px solid var(--ld-border-subtle);
654
- background: var(--ld-bg-soft);
655
- color: var(--ld-text-muted);
656
- cursor: pointer;
657
- transition: all 0.2s;
658
- }
659
-
660
- .ld-table-pagination-btn:hover:not(:disabled) {
661
- background: var(--ld-bg-mute);
662
- color: var(--ld-text-main);
663
- border-color: var(--ld-border-strong);
664
- }
665
-
666
- .ld-table-pagination-btn:disabled {
667
- opacity: 0.4;
668
- cursor: not-allowed;
669
- }
670
- /* ─── Field ───────────────────────────────────────────────── */
671
- .ld-field {
672
- margin: 1.5rem 0;
673
- padding: 1.25rem;
674
- border-radius: var(--ld-radius-lg);
675
- border: 1px solid var(--ld-border-subtle);
676
- background: var(--ld-bg-soft);
677
- position: relative;
678
- transition: border-color 0.2s ease, box-shadow 0.2s ease;
679
- }
680
-
681
- .ld-field:hover {
682
- border-color: var(--ld-color-primary);
683
- box-shadow: 0 4px 20px -8px rgba(127, 19, 236, 0.15);
684
- }
685
-
686
- .ld-field__header {
687
- display: flex;
688
- flex-wrap: wrap;
689
- align-items: center;
690
- justify-content: space-between;
691
- gap: 1rem;
692
- margin-bottom: 0.85rem;
693
- padding-bottom: 0.85rem;
694
- border-bottom: 1px solid var(--ld-border-subtle);
695
- }
696
-
697
- .ld-field__signature {
698
- display: flex;
699
- align-items: center;
700
- gap: 0.75rem;
701
- }
702
-
703
- .ld-field__name {
704
- font-family: var(--ld-font-mono);
705
- font-size: 0.95rem;
706
- font-weight: 700;
707
- color: var(--ld-text-main);
708
- background: rgba(127, 19, 236, 0.08);
709
- padding: 0.2rem 0.6rem;
710
- border-radius: var(--ld-radius-sm);
711
- letter-spacing: -0.01em;
712
- }
713
-
714
- .ld-field__type-badge {
715
- font-family: var(--ld-font-mono);
716
- font-size: 0.75rem;
717
- font-weight: 500;
718
- color: var(--ld-color-primary);
719
- background: var(--ld-color-primary-muted);
720
- padding: 0.15rem 0.5rem;
721
- border-radius: var(--ld-radius-full);
722
- border: 1px solid rgba(127, 19, 236, 0.2);
723
- }
724
-
725
- .ld-field__required-badge {
726
- font-size: 0.7rem;
727
- font-weight: 700;
728
- text-transform: uppercase;
729
- color: var(--ld-ui-danger-text);
730
- background: var(--ld-ui-danger-bg);
731
- padding: 0.1rem 0.4rem;
732
- border-radius: var(--ld-radius-sm);
733
- letter-spacing: 0.05em;
734
- }
735
-
736
- .ld-field__default {
737
- display: flex;
738
- align-items: center;
739
- gap: 0.5rem;
740
- font-size: 0.8rem;
741
- }
742
-
743
- .ld-field__default-label {
744
- color: var(--ld-text-dim);
745
- font-weight: 500;
746
- }
747
-
748
- .ld-field__default-value {
749
- font-family: var(--ld-font-mono);
750
- color: var(--ld-text-main);
751
- background: var(--ld-bg-mute);
752
- padding: 0.15rem 0.4rem;
753
- border-radius: var(--ld-radius-sm);
754
- }
755
-
756
- .ld-field__content {
757
- font-size: 0.875rem;
758
- line-height: 1.6;
759
- color: var(--ld-text-muted);
760
- }
761
-
762
- .ld-field__content p {
763
- margin: 0;
764
- }