boltdocs 1.7.0 → 1.8.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 (42) hide show
  1. package/dist/{SearchDialog-UOAW6IR3.css → SearchDialog-4ANHNJTL.css} +213 -28
  2. package/dist/{SearchDialog-YOXMFGH6.mjs → SearchDialog-6Z7CUAYJ.mjs} +8 -1
  3. package/dist/{chunk-MULKZFVN.mjs → chunk-SFVOGJ2W.mjs} +269 -165
  4. package/dist/client/index.css +211 -26
  5. package/dist/client/index.d.mts +25 -6
  6. package/dist/client/index.d.ts +25 -6
  7. package/dist/client/index.js +614 -336
  8. package/dist/client/index.mjs +134 -5
  9. package/dist/client/ssr.css +211 -26
  10. package/dist/client/ssr.d.mts +1 -1
  11. package/dist/client/ssr.d.ts +1 -1
  12. package/dist/client/ssr.js +378 -230
  13. package/dist/client/ssr.mjs +1 -1
  14. package/dist/node/index.d.mts +2 -0
  15. package/dist/node/index.d.ts +2 -0
  16. package/dist/node/index.js +4 -1
  17. package/dist/node/index.mjs +4 -1
  18. package/dist/{types-CviV0GbX.d.ts → types-BbceAHA0.d.mts} +2 -0
  19. package/dist/{types-CviV0GbX.d.mts → types-BbceAHA0.d.ts} +2 -0
  20. package/package.json +1 -1
  21. package/src/client/app/index.tsx +8 -7
  22. package/src/client/index.ts +2 -0
  23. package/src/client/theme/components/mdx/Field.tsx +60 -0
  24. package/src/client/theme/components/mdx/Table.tsx +108 -10
  25. package/src/client/theme/components/mdx/index.ts +3 -0
  26. package/src/client/theme/components/mdx/mdx-components.css +174 -0
  27. package/src/client/theme/styles/variables.css +25 -1
  28. package/src/client/theme/ui/ErrorBoundary/ErrorBoundary.tsx +46 -0
  29. package/src/client/theme/ui/ErrorBoundary/index.ts +1 -0
  30. package/src/client/theme/ui/Layout/Layout.tsx +8 -1
  31. package/src/client/theme/ui/Link/link-preview.css +1 -20
  32. package/src/client/theme/ui/Navbar/Tabs.tsx +37 -12
  33. package/src/client/theme/ui/Navbar/navbar.css +26 -18
  34. package/src/client/theme/ui/OnThisPage/OnThisPage.tsx +1 -8
  35. package/src/client/theme/ui/ProgressBar/ProgressBar.css +17 -0
  36. package/src/client/theme/ui/ProgressBar/ProgressBar.tsx +51 -0
  37. package/src/client/theme/ui/ProgressBar/index.ts +1 -0
  38. package/src/client/theme/ui/SearchDialog/SearchDialog.tsx +11 -1
  39. package/src/client/types.ts +2 -0
  40. package/src/node/routes/index.ts +1 -0
  41. package/src/node/routes/parser.ts +11 -0
  42. 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,16 +41,27 @@
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;
44
+
45
+ /* src/client/theme/ui/ProgressBar/ProgressBar.css */
46
+ .boltdocs-progress-container {
47
+ position: fixed;
48
+ top: 0;
49
+ left: 0;
50
+ width: 100%;
51
+ height: 2px;
52
+ z-index: 1000;
53
+ pointer-events: none;
54
+ background: transparent;
53
55
  }
54
- [data-theme=dark] .boltdocs-link-preview-summary {
55
- color: #94a3b8;
56
+ .boltdocs-progress-bar {
57
+ height: 100%;
58
+ background:
59
+ linear-gradient(
60
+ 90deg,
61
+ var(--ld-color-primary),
62
+ var(--ld-gradient-to, var(--ld-color-primary)));
63
+ box-shadow: 0 0 8px var(--ld-color-primary-glow);
64
+ transition: width 0.1s ease-out;
56
65
  }
57
66
 
58
67
  /* src/client/theme/styles/variables.css */
@@ -81,7 +90,7 @@
81
90
  --ld-code-bg: #f3f4f6;
82
91
  --ld-code-header: #e5e7eb;
83
92
  --ld-code-text: #1f2937;
84
- --ld-navbar-bg: rgba(255, 255, 255, 0.82);
93
+ --ld-navbar-bg: #ffffff;
85
94
  --ld-navbar-blur: 12px;
86
95
  --ld-sidebar-bg: transparent;
87
96
  --ld-sidebar-blur: 0px;
@@ -185,6 +194,23 @@
185
194
  --ld-radius-md: 8px;
186
195
  --ld-radius-lg: 12px;
187
196
  --ld-radius-full: 9999px;
197
+ scrollbar-width: thin;
198
+ scrollbar-color: var(--ld-border-strong) transparent;
199
+ }
200
+ *::-webkit-scrollbar {
201
+ width: 6px;
202
+ height: 6px;
203
+ }
204
+ *::-webkit-scrollbar-track {
205
+ background: transparent;
206
+ }
207
+ *::-webkit-scrollbar-thumb {
208
+ background-color: var(--ld-border-strong);
209
+ border-radius: 20px;
210
+ border: transparent;
211
+ }
212
+ *::-webkit-scrollbar-thumb:hover {
213
+ background-color: var(--ld-text-dim);
188
214
  }
189
215
 
190
216
  /* src/client/theme/ui/Layout/base.css */
@@ -476,11 +502,21 @@ a {
476
502
  height: 18px;
477
503
  }
478
504
  .boltdocs-tabs-container {
479
- border-bottom: 1px solid var(--ld-border-subtle);
505
+ position: relative;
480
506
  background: var(--ld-navbar-bg);
481
507
  padding: 0;
482
508
  height: 46px;
483
509
  }
510
+ .boltdocs-tabs-container::after {
511
+ content: "";
512
+ position: absolute;
513
+ bottom: 0px;
514
+ left: 0;
515
+ right: 0;
516
+ height: 1px;
517
+ background: var(--ld-border-subtle);
518
+ z-index: 10;
519
+ }
484
520
  .boltdocs-tabs {
485
521
  max-width: 1440px;
486
522
  margin: 0 auto;
@@ -489,6 +525,8 @@ a {
489
525
  overflow-x: auto;
490
526
  scrollbar-width: none;
491
527
  padding: 0 1.5rem;
528
+ position: relative;
529
+ height: 100%;
492
530
  }
493
531
  .boltdocs-tabs::-webkit-scrollbar {
494
532
  display: none;
@@ -507,6 +545,7 @@ a {
507
545
  align-items: center;
508
546
  gap: 0.6rem;
509
547
  opacity: 0.7;
548
+ z-index: 20;
510
549
  }
511
550
  .boltdocs-tab-item:hover {
512
551
  color: var(--ld-text-main);
@@ -534,24 +573,21 @@ a {
534
573
  opacity: 1;
535
574
  text-shadow: 0 0 10px rgba(255, 255, 255, 0.2);
536
575
  }
537
- .boltdocs-tab-item::after {
538
- content: "";
576
+ .boltdocs-tab-indicator {
539
577
  position: absolute;
540
578
  bottom: 0px;
541
579
  left: 0;
542
- right: 0;
543
580
  height: 3px;
544
- background: var(--ld-primary);
581
+ background: var(--ld-color-primary);
545
582
  border-radius: 2px 2px 0 0;
546
- box-shadow: 0 0 12px rgba(var(--ld-primary-rgb), 0.6);
547
- opacity: 0;
548
- transform: scaleX(0);
549
- transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
550
- z-index: 10;
551
- }
552
- .boltdocs-tab-item.active::after {
553
- opacity: 1;
554
- transform: scaleX(1);
583
+ box-shadow: 0 -2px 15px var(--ld-color-primary-glow);
584
+ transition:
585
+ transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
586
+ width 0.35s cubic-bezier(0.4, 0, 0.2, 1),
587
+ opacity 0.3s ease;
588
+ z-index: 100;
589
+ pointer-events: none;
590
+ transform-origin: left;
555
591
  }
556
592
 
557
593
  /* src/client/theme/ui/Sidebar/sidebar.css */
@@ -1837,7 +1873,12 @@ a {
1837
1873
  border-radius: var(--ld-radius-lg);
1838
1874
  overflow: hidden;
1839
1875
  background: var(--ld-bg-soft);
1876
+ display: flex;
1877
+ flex-direction: column;
1878
+ }
1879
+ .ld-table-wrapper {
1840
1880
  overflow-x: auto;
1881
+ scrollbar-width: thin;
1841
1882
  }
1842
1883
  .ld-table {
1843
1884
  width: 100%;
@@ -1857,6 +1898,30 @@ a {
1857
1898
  font-size: 0.8125rem;
1858
1899
  text-transform: uppercase;
1859
1900
  letter-spacing: 0.04em;
1901
+ white-space: nowrap;
1902
+ }
1903
+ .ld-table-header--sortable {
1904
+ cursor: pointer;
1905
+ transition: background-color 0.2s;
1906
+ }
1907
+ .ld-table-header--sortable:hover {
1908
+ background-color: var(--ld-bg-soft);
1909
+ }
1910
+ .ld-table-header-content {
1911
+ display: flex;
1912
+ align-items: center;
1913
+ gap: 0.5rem;
1914
+ }
1915
+ .ld-table-sort-icon {
1916
+ opacity: 0.8;
1917
+ color: var(--ld-color-primary);
1918
+ transition: opacity 0.2s;
1919
+ }
1920
+ .ld-table-sort-icon--hidden {
1921
+ opacity: 0;
1922
+ }
1923
+ .ld-table-header--sortable:hover .ld-table-sort-icon--hidden {
1924
+ opacity: 0.3;
1860
1925
  }
1861
1926
  .ld-table td {
1862
1927
  padding: 0.875rem 1rem;
@@ -1872,6 +1937,126 @@ a {
1872
1937
  background: rgba(255, 255, 255, 0.05);
1873
1938
  border-radius: 4px;
1874
1939
  }
1940
+ .ld-table-pagination {
1941
+ display: flex;
1942
+ align-items: center;
1943
+ justify-content: space-between;
1944
+ padding: 0.75rem 1rem;
1945
+ background: var(--ld-bg-mute);
1946
+ border-top: 1px solid var(--ld-border-subtle);
1947
+ font-size: 0.75rem;
1948
+ color: var(--ld-text-dim);
1949
+ }
1950
+ .ld-table-pagination-controls {
1951
+ display: flex;
1952
+ align-items: center;
1953
+ gap: 0.25rem;
1954
+ }
1955
+ .ld-table-pagination-btn {
1956
+ display: flex;
1957
+ align-items: center;
1958
+ justify-content: center;
1959
+ width: 1.75rem;
1960
+ height: 1.75rem;
1961
+ border-radius: var(--ld-radius-md);
1962
+ border: 1px solid var(--ld-border-subtle);
1963
+ background: var(--ld-bg-soft);
1964
+ color: var(--ld-text-muted);
1965
+ cursor: pointer;
1966
+ transition: all 0.2s;
1967
+ }
1968
+ .ld-table-pagination-btn:hover:not(:disabled) {
1969
+ background: var(--ld-bg-mute);
1970
+ color: var(--ld-text-main);
1971
+ border-color: var(--ld-border-strong);
1972
+ }
1973
+ .ld-table-pagination-btn:disabled {
1974
+ opacity: 0.4;
1975
+ cursor: not-allowed;
1976
+ }
1977
+ .ld-field {
1978
+ margin: 1.5rem 0;
1979
+ padding: 1.25rem;
1980
+ border-radius: var(--ld-radius-lg);
1981
+ border: 1px solid var(--ld-border-subtle);
1982
+ background: var(--ld-bg-soft);
1983
+ position: relative;
1984
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
1985
+ }
1986
+ .ld-field:hover {
1987
+ border-color: var(--ld-color-primary);
1988
+ box-shadow: 0 4px 20px -8px rgba(127, 19, 236, 0.15);
1989
+ }
1990
+ .ld-field__header {
1991
+ display: flex;
1992
+ flex-wrap: wrap;
1993
+ align-items: center;
1994
+ justify-content: space-between;
1995
+ gap: 1rem;
1996
+ margin-bottom: 0.85rem;
1997
+ padding-bottom: 0.85rem;
1998
+ border-bottom: 1px solid var(--ld-border-subtle);
1999
+ }
2000
+ .ld-field__signature {
2001
+ display: flex;
2002
+ align-items: center;
2003
+ gap: 0.75rem;
2004
+ }
2005
+ .ld-field__name {
2006
+ font-family: var(--ld-font-mono);
2007
+ font-size: 0.95rem;
2008
+ font-weight: 700;
2009
+ color: var(--ld-text-main);
2010
+ background: rgba(127, 19, 236, 0.08);
2011
+ padding: 0.2rem 0.6rem;
2012
+ border-radius: var(--ld-radius-sm);
2013
+ letter-spacing: -0.01em;
2014
+ }
2015
+ .ld-field__type-badge {
2016
+ font-family: var(--ld-font-mono);
2017
+ font-size: 0.75rem;
2018
+ font-weight: 500;
2019
+ color: var(--ld-color-primary);
2020
+ background: var(--ld-color-primary-muted);
2021
+ padding: 0.15rem 0.5rem;
2022
+ border-radius: var(--ld-radius-full);
2023
+ border: 1px solid rgba(127, 19, 236, 0.2);
2024
+ }
2025
+ .ld-field__required-badge {
2026
+ font-size: 0.7rem;
2027
+ font-weight: 700;
2028
+ text-transform: uppercase;
2029
+ color: var(--ld-ui-danger-text);
2030
+ background: var(--ld-ui-danger-bg);
2031
+ padding: 0.1rem 0.4rem;
2032
+ border-radius: var(--ld-radius-sm);
2033
+ letter-spacing: 0.05em;
2034
+ }
2035
+ .ld-field__default {
2036
+ display: flex;
2037
+ align-items: center;
2038
+ gap: 0.5rem;
2039
+ font-size: 0.8rem;
2040
+ }
2041
+ .ld-field__default-label {
2042
+ color: var(--ld-text-dim);
2043
+ font-weight: 500;
2044
+ }
2045
+ .ld-field__default-value {
2046
+ font-family: var(--ld-font-mono);
2047
+ color: var(--ld-text-main);
2048
+ background: var(--ld-bg-mute);
2049
+ padding: 0.15rem 0.4rem;
2050
+ border-radius: var(--ld-radius-sm);
2051
+ }
2052
+ .ld-field__content {
2053
+ font-size: 0.875rem;
2054
+ line-height: 1.6;
2055
+ color: var(--ld-text-muted);
2056
+ }
2057
+ .ld-field__content p {
2058
+ margin: 0;
2059
+ }
1875
2060
 
1876
2061
  /* src/client/theme/components/PackageManagerTabs/pkg-tabs.css */
1877
2062
  .pkg-tabs-wrapper {
@@ -1,6 +1,6 @@
1
1
  import { B as BoltdocsConfig } from '../config-D68h41CA.mjs';
2
2
  export { a as BoltdocsThemeConfig } from '../config-D68h41CA.mjs';
3
- import { C as CreateBoltdocsAppOptions, a as ComponentRoute } from '../types-CviV0GbX.mjs';
3
+ import { C as CreateBoltdocsAppOptions, a as ComponentRoute } from '../types-BbceAHA0.mjs';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import React from 'react';
6
6
  import 'vite';
@@ -349,12 +349,31 @@ interface TableProps {
349
349
  data?: (string | React.ReactNode)[][];
350
350
  children?: React.ReactNode;
351
351
  className?: string;
352
+ sortable?: boolean;
353
+ paginated?: boolean;
354
+ pageSize?: number;
355
+ }
356
+ declare function Table({ headers, data, children, className, sortable, paginated, pageSize, }: TableProps): react_jsx_runtime.JSX.Element;
357
+
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;
352
373
  }
353
374
  /**
354
- * A consistent, themed table component for documentation.
355
- * Can be used by passing structured 'headers' and 'data' props,
356
- * or by wrapping standard <thead>/<tbody> elements.
375
+ * A highly aesthetic and readable component for documenting API fields/properties.
357
376
  */
358
- declare function Table({ headers, data, children, className, }: TableProps): react_jsx_runtime.JSX.Element;
377
+ declare function Field({ name, type, defaultValue, required, children, id, className, }: FieldProps): react_jsx_runtime.JSX.Element;
359
378
 
360
- 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 };
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
1
  import { B as BoltdocsConfig } from '../config-D68h41CA.js';
2
2
  export { a as BoltdocsThemeConfig } from '../config-D68h41CA.js';
3
- import { C as CreateBoltdocsAppOptions, a as ComponentRoute } from '../types-CviV0GbX.js';
3
+ import { C as CreateBoltdocsAppOptions, a as ComponentRoute } from '../types-BbceAHA0.js';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import React from 'react';
6
6
  import 'vite';
@@ -349,12 +349,31 @@ interface TableProps {
349
349
  data?: (string | React.ReactNode)[][];
350
350
  children?: React.ReactNode;
351
351
  className?: string;
352
+ sortable?: boolean;
353
+ paginated?: boolean;
354
+ pageSize?: number;
355
+ }
356
+ declare function Table({ headers, data, children, className, sortable, paginated, pageSize, }: TableProps): react_jsx_runtime.JSX.Element;
357
+
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;
352
373
  }
353
374
  /**
354
- * A consistent, themed table component for documentation.
355
- * Can be used by passing structured 'headers' and 'data' props,
356
- * or by wrapping standard <thead>/<tbody> elements.
375
+ * A highly aesthetic and readable component for documenting API fields/properties.
357
376
  */
358
- declare function Table({ headers, data, children, className, }: TableProps): react_jsx_runtime.JSX.Element;
377
+ declare function Field({ name, type, defaultValue, required, children, id, className, }: FieldProps): react_jsx_runtime.JSX.Element;
359
378
 
360
- 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 };
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 };