boltdocs 1.7.1 → 1.9.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 (38) hide show
  1. package/dist/{SearchDialog-GOZ6X53X.css → SearchDialog-BEVZQ74P.css} +202 -15
  2. package/dist/{SearchDialog-6Z7CUAYJ.mjs → SearchDialog-MEWGAONO.mjs} +1 -1
  3. package/dist/{chunk-SFVOGJ2W.mjs → chunk-OZLYRXAD.mjs} +228 -149
  4. package/dist/client/index.css +202 -15
  5. package/dist/client/index.d.mts +25 -4
  6. package/dist/client/index.d.ts +25 -4
  7. package/dist/client/index.js +439 -309
  8. package/dist/client/index.mjs +29 -1
  9. package/dist/client/ssr.css +202 -15
  10. package/dist/client/ssr.d.mts +1 -1
  11. package/dist/client/ssr.d.ts +1 -1
  12. package/dist/client/ssr.js +276 -175
  13. package/dist/client/ssr.mjs +1 -1
  14. package/dist/{config-D68h41CA.d.ts → config-BsFQ-ErD.d.mts} +9 -0
  15. package/dist/{config-D68h41CA.d.mts → config-BsFQ-ErD.d.ts} +9 -0
  16. package/dist/node/index.d.mts +4 -2
  17. package/dist/node/index.d.ts +4 -2
  18. package/dist/node/index.js +2 -1
  19. package/dist/node/index.mjs +2 -1
  20. package/dist/{types-BbceAHA0.d.mts → types-Dj-bfnC3.d.mts} +2 -0
  21. package/dist/{types-BbceAHA0.d.ts → types-Dj-bfnC3.d.ts} +2 -0
  22. package/package.json +1 -1
  23. package/src/client/index.ts +2 -0
  24. package/src/client/theme/components/mdx/Field.tsx +60 -0
  25. package/src/client/theme/components/mdx/index.ts +3 -0
  26. package/src/client/theme/components/mdx/mdx-components.css +95 -0
  27. package/src/client/theme/styles/variables.css +1 -1
  28. package/src/client/theme/styles.css +1 -0
  29. package/src/client/theme/ui/CopyMarkdown/CopyMarkdown.tsx +82 -0
  30. package/src/client/theme/ui/CopyMarkdown/copy-markdown.css +114 -0
  31. package/src/client/theme/ui/CopyMarkdown/index.ts +1 -0
  32. package/src/client/theme/ui/Layout/Layout.tsx +7 -0
  33. package/src/client/theme/ui/Layout/base.css +18 -1
  34. package/src/client/theme/ui/Link/link-preview.css +1 -20
  35. package/src/client/types.ts +2 -0
  36. package/src/node/config.ts +6 -0
  37. package/src/node/routes/parser.ts +1 -0
  38. package/src/node/routes/types.ts +2 -0
@@ -18,8 +18,6 @@
18
18
  .boltdocs-link-preview-content {
19
19
  padding: 0.85rem 1rem;
20
20
  background-color: var(--ld-navbar-bg);
21
- backdrop-filter: blur(20px);
22
- -webkit-backdrop-filter: blur(20px);
23
21
  border: 1px solid var(--ld-border-subtle);
24
22
  border-radius: var(--ld-radius-lg);
25
23
  box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.2), 0 4px 10px -5px rgba(0, 0, 0, 0.1);
@@ -43,17 +41,6 @@
43
41
  -webkit-box-orient: vertical;
44
42
  overflow: hidden;
45
43
  }
46
- [data-theme=dark] .boltdocs-link-preview-content {
47
- background-color: rgba(15, 15, 20, 0.8);
48
- border-color: rgba(255, 255, 255, 0.08);
49
- box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.5), 0 8px 16px -8px rgba(0, 0, 0, 0.3);
50
- }
51
- [data-theme=dark] .boltdocs-link-preview-title {
52
- color: #fff;
53
- }
54
- [data-theme=dark] .boltdocs-link-preview-summary {
55
- color: #94a3b8;
56
- }
57
44
 
58
45
  /* src/client/theme/ui/ProgressBar/ProgressBar.css */
59
46
  .boltdocs-progress-container {
@@ -103,7 +90,7 @@
103
90
  --ld-code-bg: #f3f4f6;
104
91
  --ld-code-header: #e5e7eb;
105
92
  --ld-code-text: #1f2937;
106
- --ld-navbar-bg: rgba(255, 255, 255, 0.82);
93
+ --ld-navbar-bg: #ffffff;
107
94
  --ld-navbar-blur: 12px;
108
95
  --ld-sidebar-bg: transparent;
109
96
  --ld-sidebar-blur: 0px;
@@ -298,9 +285,23 @@ a {
298
285
  width: 800px;
299
286
  height: 800px;
300
287
  background: var(--ld-glow-2-bg);
301
- right: -300px;
302
288
  top: -200px;
303
289
  }
290
+ .boltdocs-page {
291
+ position: relative;
292
+ }
293
+ .boltdocs-page-header {
294
+ position: absolute;
295
+ top: 0;
296
+ right: 0;
297
+ display: flex;
298
+ justify-content: flex-end;
299
+ padding: 1rem 0;
300
+ pointer-events: none;
301
+ }
302
+ .boltdocs-page-header > * {
303
+ pointer-events: auto;
304
+ }
304
305
 
305
306
  /* src/client/theme/ui/Navbar/navbar.css */
306
307
  .boltdocs-navbar {
@@ -1105,6 +1106,109 @@ a {
1105
1106
  }
1106
1107
  }
1107
1108
 
1109
+ /* src/client/theme/ui/CopyMarkdown/copy-markdown.css */
1110
+ .boltdocs-copy-markdown {
1111
+ position: relative;
1112
+ display: inline-block;
1113
+ z-index: 100;
1114
+ }
1115
+ .copy-btn-group {
1116
+ display: flex;
1117
+ align-items: stretch;
1118
+ background-color: var(--ld-bg-mute);
1119
+ border: 1px solid var(--ld-border-subtle);
1120
+ border-radius: var(--ld-radius-full);
1121
+ overflow: hidden;
1122
+ transition: all 0.2s ease;
1123
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
1124
+ }
1125
+ .copy-btn-group:hover {
1126
+ border-color: var(--ld-color-primary-hover);
1127
+ box-shadow: 0 4px 20px rgba(59, 130, 246, 0.15);
1128
+ }
1129
+ .copy-btn {
1130
+ display: flex;
1131
+ align-items: center;
1132
+ gap: 8px;
1133
+ padding: 8px 16px;
1134
+ background: transparent;
1135
+ border: none;
1136
+ color: var(--ld-text-main);
1137
+ font-size: 14px;
1138
+ font-weight: 500;
1139
+ cursor: pointer;
1140
+ transition: background 0.2s ease;
1141
+ }
1142
+ .copy-btn:hover {
1143
+ background-color: var(--ld-bg-soft);
1144
+ }
1145
+ .copy-label {
1146
+ white-space: nowrap;
1147
+ }
1148
+ .copy-dropdown-toggle {
1149
+ display: flex;
1150
+ align-items: center;
1151
+ justify-content: center;
1152
+ padding: 0 10px;
1153
+ background: rgba(255, 255, 255, 0.03);
1154
+ border: none;
1155
+ border-left: 1px solid var(--ld-border-subtle);
1156
+ color: var(--ld-text-muted);
1157
+ cursor: pointer;
1158
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1159
+ }
1160
+ .copy-dropdown-toggle:hover {
1161
+ background: rgba(255, 255, 255, 0.1);
1162
+ color: var(--ld-text-main);
1163
+ }
1164
+ .copy-dropdown-toggle .arrow-icon {
1165
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1166
+ }
1167
+ .copy-dropdown-toggle.is-active .arrow-icon {
1168
+ transform: rotate(180deg);
1169
+ }
1170
+ .copy-dropdown {
1171
+ position: absolute;
1172
+ top: calc(100% + 8px);
1173
+ right: 0;
1174
+ width: 200px;
1175
+ background: var(--ld-bg-main);
1176
+ border: 1px solid var(--ld-border-subtle);
1177
+ border-radius: var(--ld-radius-lg);
1178
+ padding: 4px;
1179
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
1180
+ overflow: hidden;
1181
+ animation: boltdocs-fade-in 0.2s ease;
1182
+ }
1183
+ .copy-option {
1184
+ display: flex;
1185
+ align-items: center;
1186
+ gap: 10px;
1187
+ width: 100%;
1188
+ padding: 10px 12px;
1189
+ background: transparent;
1190
+ border: none;
1191
+ border-radius: 8px;
1192
+ color: var(--ld-text-main);
1193
+ font-size: 14px;
1194
+ text-align: left;
1195
+ cursor: pointer;
1196
+ transition: background 0.2s ease;
1197
+ }
1198
+ .copy-option:hover {
1199
+ background-color: var(--ld-bg-soft);
1200
+ }
1201
+ @keyframes boltdocs-fade-in {
1202
+ from {
1203
+ opacity: 0;
1204
+ transform: translateY(-4px);
1205
+ }
1206
+ to {
1207
+ opacity: 1;
1208
+ transform: translateY(0);
1209
+ }
1210
+ }
1211
+
1108
1212
  /* src/client/theme/styles/markdown.css */
1109
1213
  .boltdocs-content {
1110
1214
  flex: 1;
@@ -1987,6 +2091,89 @@ a {
1987
2091
  opacity: 0.4;
1988
2092
  cursor: not-allowed;
1989
2093
  }
2094
+ .ld-field {
2095
+ margin: 1.5rem 0;
2096
+ padding: 1.25rem;
2097
+ border-radius: var(--ld-radius-lg);
2098
+ border: 1px solid var(--ld-border-subtle);
2099
+ background: var(--ld-bg-soft);
2100
+ position: relative;
2101
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
2102
+ }
2103
+ .ld-field:hover {
2104
+ border-color: var(--ld-color-primary);
2105
+ box-shadow: 0 4px 20px -8px rgba(127, 19, 236, 0.15);
2106
+ }
2107
+ .ld-field__header {
2108
+ display: flex;
2109
+ flex-wrap: wrap;
2110
+ align-items: center;
2111
+ justify-content: space-between;
2112
+ gap: 1rem;
2113
+ margin-bottom: 0.85rem;
2114
+ padding-bottom: 0.85rem;
2115
+ border-bottom: 1px solid var(--ld-border-subtle);
2116
+ }
2117
+ .ld-field__signature {
2118
+ display: flex;
2119
+ align-items: center;
2120
+ gap: 0.75rem;
2121
+ }
2122
+ .ld-field__name {
2123
+ font-family: var(--ld-font-mono);
2124
+ font-size: 0.95rem;
2125
+ font-weight: 700;
2126
+ color: var(--ld-text-main);
2127
+ background: rgba(127, 19, 236, 0.08);
2128
+ padding: 0.2rem 0.6rem;
2129
+ border-radius: var(--ld-radius-sm);
2130
+ letter-spacing: -0.01em;
2131
+ }
2132
+ .ld-field__type-badge {
2133
+ font-family: var(--ld-font-mono);
2134
+ font-size: 0.75rem;
2135
+ font-weight: 500;
2136
+ color: var(--ld-color-primary);
2137
+ background: var(--ld-color-primary-muted);
2138
+ padding: 0.15rem 0.5rem;
2139
+ border-radius: var(--ld-radius-full);
2140
+ border: 1px solid rgba(127, 19, 236, 0.2);
2141
+ }
2142
+ .ld-field__required-badge {
2143
+ font-size: 0.7rem;
2144
+ font-weight: 700;
2145
+ text-transform: uppercase;
2146
+ color: var(--ld-ui-danger-text);
2147
+ background: var(--ld-ui-danger-bg);
2148
+ padding: 0.1rem 0.4rem;
2149
+ border-radius: var(--ld-radius-sm);
2150
+ letter-spacing: 0.05em;
2151
+ }
2152
+ .ld-field__default {
2153
+ display: flex;
2154
+ align-items: center;
2155
+ gap: 0.5rem;
2156
+ font-size: 0.8rem;
2157
+ }
2158
+ .ld-field__default-label {
2159
+ color: var(--ld-text-dim);
2160
+ font-weight: 500;
2161
+ }
2162
+ .ld-field__default-value {
2163
+ font-family: var(--ld-font-mono);
2164
+ color: var(--ld-text-main);
2165
+ background: var(--ld-bg-mute);
2166
+ padding: 0.15rem 0.4rem;
2167
+ border-radius: var(--ld-radius-sm);
2168
+ }
2169
+ .ld-field__content {
2170
+ font-size: 0.875rem;
2171
+ line-height: 1.6;
2172
+ color: var(--ld-text-muted);
2173
+ }
2174
+ .ld-field__content p {
2175
+ margin: 0;
2176
+ }
1990
2177
 
1991
2178
  /* src/client/theme/components/PackageManagerTabs/pkg-tabs.css */
1992
2179
  .pkg-tabs-wrapper {
@@ -1,6 +1,6 @@
1
- import { B as BoltdocsConfig } from '../config-D68h41CA.mjs';
2
- export { a as BoltdocsThemeConfig } from '../config-D68h41CA.mjs';
3
- import { C as CreateBoltdocsAppOptions, a as ComponentRoute } from '../types-BbceAHA0.mjs';
1
+ import { B as BoltdocsConfig } from '../config-BsFQ-ErD.mjs';
2
+ export { a as BoltdocsThemeConfig } from '../config-BsFQ-ErD.mjs';
3
+ import { C as CreateBoltdocsAppOptions, a as ComponentRoute } from '../types-Dj-bfnC3.mjs';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import React from 'react';
6
6
  import 'vite';
@@ -355,4 +355,25 @@ interface TableProps {
355
355
  }
356
356
  declare function Table({ headers, data, children, className, sortable, paginated, pageSize, }: TableProps): react_jsx_runtime.JSX.Element;
357
357
 
358
- export { Admonition, type AdmonitionProps, BackgroundGradient, Badge, type BadgeProps, BoltdocsConfig, Breadcrumbs, Button, type ButtonProps, Card, type CardProps, Cards, type CardsProps, CodeBlock, ComponentRoute, CreateBoltdocsAppOptions, Danger, FileTree, type FileTreeProps, Head, InfoBox, List, type ListProps, Loading, Navbar, NotFound, Note, OnThisPage, Playground, Sidebar, Tab, type TabProps, Table, type TableProps, Tabs, type TabsProps, ThemeLayout, Tip, Video, Warning, createBoltdocsApp };
358
+ interface FieldProps {
359
+ /** The name of the property or field */
360
+ name: string;
361
+ /** The data type of the field (e.g., "string", "number", "boolean") */
362
+ type?: string;
363
+ /** The default value if not provided */
364
+ defaultValue?: string;
365
+ /** Whether the field is required */
366
+ required?: boolean;
367
+ /** Description or additional content */
368
+ children: React.ReactNode;
369
+ /** Optional anchor ID for linking */
370
+ id?: string;
371
+ /** Optional extra class name */
372
+ className?: string;
373
+ }
374
+ /**
375
+ * A highly aesthetic and readable component for documenting API fields/properties.
376
+ */
377
+ declare function Field({ name, type, defaultValue, required, children, id, className, }: FieldProps): react_jsx_runtime.JSX.Element;
378
+
379
+ export { Admonition, type AdmonitionProps, BackgroundGradient, Badge, type BadgeProps, BoltdocsConfig, Breadcrumbs, Button, type ButtonProps, Card, type CardProps, Cards, type CardsProps, CodeBlock, ComponentRoute, CreateBoltdocsAppOptions, Danger, Field, type FieldProps, FileTree, type FileTreeProps, Head, InfoBox, List, type ListProps, Loading, Navbar, NotFound, Note, OnThisPage, Playground, Sidebar, Tab, type TabProps, Table, type TableProps, Tabs, type TabsProps, ThemeLayout, Tip, Video, Warning, createBoltdocsApp };
@@ -1,6 +1,6 @@
1
- import { B as BoltdocsConfig } from '../config-D68h41CA.js';
2
- export { a as BoltdocsThemeConfig } from '../config-D68h41CA.js';
3
- import { C as CreateBoltdocsAppOptions, a as ComponentRoute } from '../types-BbceAHA0.js';
1
+ import { B as BoltdocsConfig } from '../config-BsFQ-ErD.js';
2
+ export { a as BoltdocsThemeConfig } from '../config-BsFQ-ErD.js';
3
+ import { C as CreateBoltdocsAppOptions, a as ComponentRoute } from '../types-Dj-bfnC3.js';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import React from 'react';
6
6
  import 'vite';
@@ -355,4 +355,25 @@ interface TableProps {
355
355
  }
356
356
  declare function Table({ headers, data, children, className, sortable, paginated, pageSize, }: TableProps): react_jsx_runtime.JSX.Element;
357
357
 
358
- export { Admonition, type AdmonitionProps, BackgroundGradient, Badge, type BadgeProps, BoltdocsConfig, Breadcrumbs, Button, type ButtonProps, Card, type CardProps, Cards, type CardsProps, CodeBlock, ComponentRoute, CreateBoltdocsAppOptions, Danger, FileTree, type FileTreeProps, Head, InfoBox, List, type ListProps, Loading, Navbar, NotFound, Note, OnThisPage, Playground, Sidebar, Tab, type TabProps, Table, type TableProps, Tabs, type TabsProps, ThemeLayout, Tip, Video, Warning, createBoltdocsApp };
358
+ interface FieldProps {
359
+ /** The name of the property or field */
360
+ name: string;
361
+ /** The data type of the field (e.g., "string", "number", "boolean") */
362
+ type?: string;
363
+ /** The default value if not provided */
364
+ defaultValue?: string;
365
+ /** Whether the field is required */
366
+ required?: boolean;
367
+ /** Description or additional content */
368
+ children: React.ReactNode;
369
+ /** Optional anchor ID for linking */
370
+ id?: string;
371
+ /** Optional extra class name */
372
+ className?: string;
373
+ }
374
+ /**
375
+ * A highly aesthetic and readable component for documenting API fields/properties.
376
+ */
377
+ declare function Field({ name, type, defaultValue, required, children, id, className, }: FieldProps): react_jsx_runtime.JSX.Element;
378
+
379
+ export { Admonition, type AdmonitionProps, BackgroundGradient, Badge, type BadgeProps, BoltdocsConfig, Breadcrumbs, Button, type ButtonProps, Card, type CardProps, Cards, type CardsProps, CodeBlock, ComponentRoute, CreateBoltdocsAppOptions, Danger, Field, type FieldProps, FileTree, type FileTreeProps, Head, InfoBox, List, type ListProps, Loading, Navbar, NotFound, Note, OnThisPage, Playground, Sidebar, Tab, type TabProps, Table, type TableProps, Tabs, type TabsProps, ThemeLayout, Tip, Video, Warning, createBoltdocsApp };