boltdocs 1.3.0 → 1.3.1

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 (101) hide show
  1. package/dist/node/index.js +21 -6
  2. package/dist/node/index.mjs +21 -6
  3. package/package.json +1 -1
  4. package/src/client/app/index.tsx +344 -344
  5. package/src/client/app/preload.tsx +56 -56
  6. package/src/client/index.ts +40 -40
  7. package/src/client/ssr.tsx +51 -51
  8. package/src/client/theme/components/CodeBlock/CodeBlock.tsx +76 -76
  9. package/src/client/theme/components/CodeBlock/index.ts +1 -1
  10. package/src/client/theme/components/PackageManagerTabs/PackageManagerTabs.tsx +154 -154
  11. package/src/client/theme/components/PackageManagerTabs/index.ts +1 -1
  12. package/src/client/theme/components/PackageManagerTabs/pkg-tabs.css +64 -64
  13. package/src/client/theme/components/Playground/Playground.tsx +124 -124
  14. package/src/client/theme/components/Playground/index.ts +1 -1
  15. package/src/client/theme/components/Playground/playground.css +168 -168
  16. package/src/client/theme/components/Video/Video.tsx +84 -84
  17. package/src/client/theme/components/Video/index.ts +1 -1
  18. package/src/client/theme/components/Video/video.css +41 -41
  19. package/src/client/theme/components/mdx/Admonition.tsx +80 -80
  20. package/src/client/theme/components/mdx/Badge.tsx +31 -31
  21. package/src/client/theme/components/mdx/Button.tsx +50 -50
  22. package/src/client/theme/components/mdx/Card.tsx +80 -80
  23. package/src/client/theme/components/mdx/List.tsx +57 -57
  24. package/src/client/theme/components/mdx/Tabs.tsx +94 -94
  25. package/src/client/theme/components/mdx/index.ts +18 -18
  26. package/src/client/theme/components/mdx/mdx-components.css +424 -424
  27. package/src/client/theme/icons/bun.tsx +62 -62
  28. package/src/client/theme/icons/deno.tsx +20 -20
  29. package/src/client/theme/icons/discord.tsx +12 -12
  30. package/src/client/theme/icons/github.tsx +15 -15
  31. package/src/client/theme/icons/npm.tsx +13 -13
  32. package/src/client/theme/icons/pnpm.tsx +72 -72
  33. package/src/client/theme/icons/twitter.tsx +12 -12
  34. package/src/client/theme/styles/markdown.css +343 -343
  35. package/src/client/theme/styles/variables.css +162 -162
  36. package/src/client/theme/styles.css +37 -37
  37. package/src/client/theme/ui/BackgroundGradient/BackgroundGradient.tsx +10 -10
  38. package/src/client/theme/ui/BackgroundGradient/index.ts +1 -1
  39. package/src/client/theme/ui/Breadcrumbs/Breadcrumbs.tsx +68 -68
  40. package/src/client/theme/ui/Breadcrumbs/index.ts +1 -1
  41. package/src/client/theme/ui/Footer/footer.css +32 -32
  42. package/src/client/theme/ui/Head/Head.tsx +69 -69
  43. package/src/client/theme/ui/Head/index.ts +1 -1
  44. package/src/client/theme/ui/LanguageSwitcher/LanguageSwitcher.tsx +125 -125
  45. package/src/client/theme/ui/LanguageSwitcher/index.ts +1 -1
  46. package/src/client/theme/ui/LanguageSwitcher/language-switcher.css +98 -98
  47. package/src/client/theme/ui/Layout/Layout.tsx +202 -202
  48. package/src/client/theme/ui/Layout/base.css +76 -76
  49. package/src/client/theme/ui/Layout/index.ts +2 -2
  50. package/src/client/theme/ui/Layout/pagination.css +72 -72
  51. package/src/client/theme/ui/Layout/responsive.css +36 -36
  52. package/src/client/theme/ui/Link/Link.tsx +254 -254
  53. package/src/client/theme/ui/Link/index.ts +2 -2
  54. package/src/client/theme/ui/Loading/Loading.tsx +10 -10
  55. package/src/client/theme/ui/Loading/index.ts +1 -1
  56. package/src/client/theme/ui/Loading/loading.css +30 -30
  57. package/src/client/theme/ui/Navbar/GithubStars.tsx +27 -27
  58. package/src/client/theme/ui/Navbar/Navbar.tsx +145 -145
  59. package/src/client/theme/ui/Navbar/index.ts +2 -2
  60. package/src/client/theme/ui/Navbar/navbar.css +233 -233
  61. package/src/client/theme/ui/NotFound/NotFound.tsx +19 -19
  62. package/src/client/theme/ui/NotFound/index.ts +1 -1
  63. package/src/client/theme/ui/NotFound/not-found.css +64 -64
  64. package/src/client/theme/ui/OnThisPage/OnThisPage.tsx +235 -235
  65. package/src/client/theme/ui/OnThisPage/index.ts +1 -1
  66. package/src/client/theme/ui/OnThisPage/toc.css +132 -132
  67. package/src/client/theme/ui/PoweredBy/PoweredBy.tsx +18 -18
  68. package/src/client/theme/ui/PoweredBy/index.ts +1 -1
  69. package/src/client/theme/ui/PoweredBy/powered-by.css +76 -76
  70. package/src/client/theme/ui/SearchDialog/SearchDialog.tsx +199 -199
  71. package/src/client/theme/ui/SearchDialog/index.ts +1 -1
  72. package/src/client/theme/ui/SearchDialog/search.css +152 -152
  73. package/src/client/theme/ui/Sidebar/Sidebar.tsx +204 -204
  74. package/src/client/theme/ui/Sidebar/index.ts +1 -1
  75. package/src/client/theme/ui/Sidebar/sidebar.css +236 -236
  76. package/src/client/theme/ui/ThemeToggle/ThemeToggle.tsx +69 -69
  77. package/src/client/theme/ui/ThemeToggle/index.ts +1 -1
  78. package/src/client/theme/ui/VersionSwitcher/VersionSwitcher.tsx +136 -136
  79. package/src/client/theme/ui/VersionSwitcher/index.ts +1 -1
  80. package/src/client/types.ts +50 -50
  81. package/src/client/utils.ts +26 -26
  82. package/src/node/cache.ts +408 -408
  83. package/src/node/config.ts +192 -192
  84. package/src/node/index.ts +21 -21
  85. package/src/node/mdx.ts +120 -120
  86. package/src/node/plugin/entry.ts +58 -58
  87. package/src/node/plugin/html.ts +55 -55
  88. package/src/node/plugin/index.ts +193 -193
  89. package/src/node/plugin/types.ts +11 -11
  90. package/src/node/routes/cache.ts +28 -28
  91. package/src/node/routes/index.ts +167 -167
  92. package/src/node/routes/parser.ts +153 -127
  93. package/src/node/routes/sorter.ts +42 -42
  94. package/src/node/routes/types.ts +49 -49
  95. package/src/node/ssg/index.ts +114 -114
  96. package/src/node/ssg/meta.ts +34 -34
  97. package/src/node/ssg/options.ts +13 -13
  98. package/src/node/ssg/sitemap.ts +54 -54
  99. package/src/node/utils.ts +134 -134
  100. package/tsconfig.json +20 -20
  101. package/tsup.config.ts +22 -22
@@ -1,145 +1,145 @@
1
- import React, { useEffect, useState } from "react";
2
- import { Link } from "../Link";
3
- import { Book, ChevronDown } from "lucide-react";
4
- import { BoltdocsConfig } from "../../../../node/config";
5
- import { ComponentRoute } from "../../../types";
6
- import { LanguageSwitcher } from "../LanguageSwitcher";
7
- import { VersionSwitcher } from "../VersionSwitcher";
8
- import { ThemeToggle } from "../ThemeToggle";
9
- import { getStarsRepo } from "../../../utils";
10
- import { Discord } from "../../icons/discord";
11
- import { XformerlyTwitter } from "../../icons/twitter";
12
- import { GithubStars } from "./GithubStars";
13
-
14
- const SearchDialog = React.lazy(() =>
15
- import("../SearchDialog").then((m) => ({ default: m.SearchDialog })),
16
- );
17
-
18
- const ICON_MAP: Record<string, React.FC> = {
19
- discord: Discord,
20
- x: XformerlyTwitter,
21
- };
22
-
23
- function formatStars(stars: number) {
24
- if (stars >= 1000) {
25
- return (stars / 1000).toFixed(1) + "K";
26
- }
27
- return stars.toString();
28
- }
29
-
30
- /**
31
- * The top navigation bar of the documentation site.
32
- */
33
- export function Navbar({
34
- config,
35
- routes,
36
- allRoutes,
37
- currentLocale,
38
- currentVersion,
39
- }: {
40
- config: BoltdocsConfig;
41
- routes?: ComponentRoute[];
42
- allRoutes?: ComponentRoute[];
43
- currentLocale?: string;
44
- currentVersion?: string;
45
- }) {
46
- const title = config.themeConfig?.title || "Boltdocs";
47
- const navItems = config.themeConfig?.navbar || [];
48
- const socialLinks = config.themeConfig?.socialLinks || [];
49
-
50
- return (
51
- <header className="boltdocs-navbar">
52
- <div className="navbar-container">
53
- {/* LEFT SECTION */}
54
- <div className="navbar-left">
55
- <div className="navbar-logo">
56
- <Link to="/">
57
- {config.themeConfig?.logo ? (
58
- config.themeConfig.logo.trim().startsWith("<svg") ? (
59
- <span
60
- className="navbar-logo-svg"
61
- dangerouslySetInnerHTML={{
62
- __html: config.themeConfig.logo,
63
- }}
64
- />
65
- ) : (
66
- <img
67
- src={config.themeConfig.logo}
68
- alt={title}
69
- className="navbar-logo-img"
70
- />
71
- )
72
- ) : null}
73
- {title}
74
- </Link>
75
- </div>
76
-
77
- {config.versions && currentVersion && allRoutes ? (
78
- <VersionSwitcher
79
- versions={config.versions}
80
- currentVersion={currentVersion}
81
- currentLocale={currentLocale}
82
- allRoutes={allRoutes}
83
- />
84
- ) : config.themeConfig?.version ? (
85
- <div className="navbar-version">
86
- {config.themeConfig.version} <ChevronDown size={14} />
87
- </div>
88
- ) : null}
89
-
90
- <nav className="navbar-links" aria-label="Top Navigation">
91
- {navItems.map((item, i) => (
92
- <Link key={i} to={item.link}>
93
- {item.text}
94
- </Link>
95
- ))}
96
- </nav>
97
- </div>
98
-
99
- {/* RIGHT SECTION */}
100
- <div className="navbar-right">
101
- <React.Suspense
102
- fallback={<div className="navbar-search-placeholder" />}
103
- >
104
- <SearchDialog routes={routes || []} />
105
- </React.Suspense>
106
-
107
- {config.i18n && currentLocale && allRoutes && (
108
- <LanguageSwitcher
109
- i18n={config.i18n}
110
- currentLocale={currentLocale}
111
- allRoutes={allRoutes}
112
- />
113
- )}
114
-
115
- <ThemeToggle />
116
-
117
- {config.themeConfig?.githubRepo && (
118
- <GithubStars repo={config.themeConfig.githubRepo} />
119
- )}
120
-
121
- {/* Optional Divider if both groups have items */}
122
- {socialLinks.length > 0 && <div className="navbar-divider" />}
123
-
124
- <div className="navbar-icons">
125
- {socialLinks.map((link, i) => {
126
- const IconComp = ICON_MAP[link.icon.toLowerCase()];
127
- return (
128
- <a
129
- key={i}
130
- href={link.link}
131
- target="_blank"
132
- rel="noopener noreferrer"
133
- className="navbar-icon-btn"
134
- aria-label={link.icon}
135
- >
136
- {IconComp ? <IconComp /> : <span>{link.icon}</span>}
137
- </a>
138
- );
139
- })}
140
- </div>
141
- </div>
142
- </div>
143
- </header>
144
- );
145
- }
1
+ import React, { useEffect, useState } from "react";
2
+ import { Link } from "../Link";
3
+ import { Book, ChevronDown } from "lucide-react";
4
+ import { BoltdocsConfig } from "../../../../node/config";
5
+ import { ComponentRoute } from "../../../types";
6
+ import { LanguageSwitcher } from "../LanguageSwitcher";
7
+ import { VersionSwitcher } from "../VersionSwitcher";
8
+ import { ThemeToggle } from "../ThemeToggle";
9
+ import { getStarsRepo } from "../../../utils";
10
+ import { Discord } from "../../icons/discord";
11
+ import { XformerlyTwitter } from "../../icons/twitter";
12
+ import { GithubStars } from "./GithubStars";
13
+
14
+ const SearchDialog = React.lazy(() =>
15
+ import("../SearchDialog").then((m) => ({ default: m.SearchDialog })),
16
+ );
17
+
18
+ const ICON_MAP: Record<string, React.FC> = {
19
+ discord: Discord,
20
+ x: XformerlyTwitter,
21
+ };
22
+
23
+ function formatStars(stars: number) {
24
+ if (stars >= 1000) {
25
+ return (stars / 1000).toFixed(1) + "K";
26
+ }
27
+ return stars.toString();
28
+ }
29
+
30
+ /**
31
+ * The top navigation bar of the documentation site.
32
+ */
33
+ export function Navbar({
34
+ config,
35
+ routes,
36
+ allRoutes,
37
+ currentLocale,
38
+ currentVersion,
39
+ }: {
40
+ config: BoltdocsConfig;
41
+ routes?: ComponentRoute[];
42
+ allRoutes?: ComponentRoute[];
43
+ currentLocale?: string;
44
+ currentVersion?: string;
45
+ }) {
46
+ const title = config.themeConfig?.title || "Boltdocs";
47
+ const navItems = config.themeConfig?.navbar || [];
48
+ const socialLinks = config.themeConfig?.socialLinks || [];
49
+
50
+ return (
51
+ <header className="boltdocs-navbar">
52
+ <div className="navbar-container">
53
+ {/* LEFT SECTION */}
54
+ <div className="navbar-left">
55
+ <div className="navbar-logo">
56
+ <Link to="/">
57
+ {config.themeConfig?.logo ? (
58
+ config.themeConfig.logo.trim().startsWith("<svg") ? (
59
+ <span
60
+ className="navbar-logo-svg"
61
+ dangerouslySetInnerHTML={{
62
+ __html: config.themeConfig.logo,
63
+ }}
64
+ />
65
+ ) : (
66
+ <img
67
+ src={config.themeConfig.logo}
68
+ alt={title}
69
+ className="navbar-logo-img"
70
+ />
71
+ )
72
+ ) : null}
73
+ {title}
74
+ </Link>
75
+ </div>
76
+
77
+ {config.versions && currentVersion && allRoutes ? (
78
+ <VersionSwitcher
79
+ versions={config.versions}
80
+ currentVersion={currentVersion}
81
+ currentLocale={currentLocale}
82
+ allRoutes={allRoutes}
83
+ />
84
+ ) : config.themeConfig?.version ? (
85
+ <div className="navbar-version">
86
+ {config.themeConfig.version} <ChevronDown size={14} />
87
+ </div>
88
+ ) : null}
89
+
90
+ <nav className="navbar-links" aria-label="Top Navigation">
91
+ {navItems.map((item, i) => (
92
+ <Link key={i} to={item.link}>
93
+ {item.text}
94
+ </Link>
95
+ ))}
96
+ </nav>
97
+ </div>
98
+
99
+ {/* RIGHT SECTION */}
100
+ <div className="navbar-right">
101
+ <React.Suspense
102
+ fallback={<div className="navbar-search-placeholder" />}
103
+ >
104
+ <SearchDialog routes={routes || []} />
105
+ </React.Suspense>
106
+
107
+ {config.i18n && currentLocale && allRoutes && (
108
+ <LanguageSwitcher
109
+ i18n={config.i18n}
110
+ currentLocale={currentLocale}
111
+ allRoutes={allRoutes}
112
+ />
113
+ )}
114
+
115
+ <ThemeToggle />
116
+
117
+ {config.themeConfig?.githubRepo && (
118
+ <GithubStars repo={config.themeConfig.githubRepo} />
119
+ )}
120
+
121
+ {/* Optional Divider if both groups have items */}
122
+ {socialLinks.length > 0 && <div className="navbar-divider" />}
123
+
124
+ <div className="navbar-icons">
125
+ {socialLinks.map((link, i) => {
126
+ const IconComp = ICON_MAP[link.icon.toLowerCase()];
127
+ return (
128
+ <a
129
+ key={i}
130
+ href={link.link}
131
+ target="_blank"
132
+ rel="noopener noreferrer"
133
+ className="navbar-icon-btn"
134
+ aria-label={link.icon}
135
+ >
136
+ {IconComp ? <IconComp /> : <span>{link.icon}</span>}
137
+ </a>
138
+ );
139
+ })}
140
+ </div>
141
+ </div>
142
+ </div>
143
+ </header>
144
+ );
145
+ }
@@ -1,2 +1,2 @@
1
- export { Navbar } from "./Navbar";
2
- export { GithubStars } from "./GithubStars";
1
+ export { Navbar } from "./Navbar";
2
+ export { GithubStars } from "./GithubStars";