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.
- package/dist/{SearchDialog-GOZ6X53X.css → SearchDialog-BEVZQ74P.css} +202 -15
- package/dist/{SearchDialog-6Z7CUAYJ.mjs → SearchDialog-MEWGAONO.mjs} +1 -1
- package/dist/{chunk-SFVOGJ2W.mjs → chunk-OZLYRXAD.mjs} +228 -149
- package/dist/client/index.css +202 -15
- package/dist/client/index.d.mts +25 -4
- package/dist/client/index.d.ts +25 -4
- package/dist/client/index.js +439 -309
- package/dist/client/index.mjs +29 -1
- package/dist/client/ssr.css +202 -15
- package/dist/client/ssr.d.mts +1 -1
- package/dist/client/ssr.d.ts +1 -1
- package/dist/client/ssr.js +276 -175
- package/dist/client/ssr.mjs +1 -1
- package/dist/{config-D68h41CA.d.ts → config-BsFQ-ErD.d.mts} +9 -0
- package/dist/{config-D68h41CA.d.mts → config-BsFQ-ErD.d.ts} +9 -0
- package/dist/node/index.d.mts +4 -2
- package/dist/node/index.d.ts +4 -2
- package/dist/node/index.js +2 -1
- package/dist/node/index.mjs +2 -1
- package/dist/{types-BbceAHA0.d.mts → types-Dj-bfnC3.d.mts} +2 -0
- package/dist/{types-BbceAHA0.d.ts → types-Dj-bfnC3.d.ts} +2 -0
- package/package.json +1 -1
- package/src/client/index.ts +2 -0
- package/src/client/theme/components/mdx/Field.tsx +60 -0
- package/src/client/theme/components/mdx/index.ts +3 -0
- package/src/client/theme/components/mdx/mdx-components.css +95 -0
- package/src/client/theme/styles/variables.css +1 -1
- package/src/client/theme/styles.css +1 -0
- package/src/client/theme/ui/CopyMarkdown/CopyMarkdown.tsx +82 -0
- package/src/client/theme/ui/CopyMarkdown/copy-markdown.css +114 -0
- package/src/client/theme/ui/CopyMarkdown/index.ts +1 -0
- package/src/client/theme/ui/Layout/Layout.tsx +7 -0
- package/src/client/theme/ui/Layout/base.css +18 -1
- package/src/client/theme/ui/Link/link-preview.css +1 -20
- package/src/client/types.ts +2 -0
- package/src/node/config.ts +6 -0
- package/src/node/routes/parser.ts +1 -0
- package/src/node/routes/types.ts +2 -0
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
// src/client/theme/ui/Navbar/Navbar.tsx
|
|
7
7
|
import { Suspense as Suspense2, lazy as lazy2 } from "react";
|
|
8
8
|
import { Link as Link2, useLocation as useLocation11 } from "react-router-dom";
|
|
9
|
-
import { ChevronDown as
|
|
9
|
+
import { ChevronDown as ChevronDown4 } from "lucide-react";
|
|
10
10
|
|
|
11
11
|
// src/client/theme/ui/LanguageSwitcher/LanguageSwitcher.tsx
|
|
12
12
|
import { useState, useRef, useEffect } from "react";
|
|
@@ -326,11 +326,11 @@ function GithubStars({ repo }) {
|
|
|
326
326
|
}
|
|
327
327
|
|
|
328
328
|
// src/client/theme/ui/Navbar/Tabs.tsx
|
|
329
|
-
import { useEffect as
|
|
329
|
+
import { useEffect as useEffect11, useRef as useRef7, useState as useState13 } from "react";
|
|
330
330
|
import { useLocation as useLocation10 } from "react-router-dom";
|
|
331
331
|
|
|
332
332
|
// src/client/theme/ui/Link/Link.tsx
|
|
333
|
-
import
|
|
333
|
+
import React11 from "react";
|
|
334
334
|
import {
|
|
335
335
|
Link as RouterLink,
|
|
336
336
|
NavLink as RouterNavLink,
|
|
@@ -377,7 +377,7 @@ function PreloadProvider({
|
|
|
377
377
|
}
|
|
378
378
|
|
|
379
379
|
// src/client/app/index.tsx
|
|
380
|
-
import
|
|
380
|
+
import React10, { useEffect as useEffect9, useState as useState11 } from "react";
|
|
381
381
|
import ReactDOM from "react-dom/client";
|
|
382
382
|
import {
|
|
383
383
|
BrowserRouter,
|
|
@@ -388,7 +388,7 @@ import {
|
|
|
388
388
|
} from "react-router-dom";
|
|
389
389
|
|
|
390
390
|
// src/client/theme/ui/Layout/Layout.tsx
|
|
391
|
-
import
|
|
391
|
+
import React8 from "react";
|
|
392
392
|
import { useLocation as useLocation7 } from "react-router-dom";
|
|
393
393
|
import { ChevronLeft, ChevronRight as ChevronRight3 } from "lucide-react";
|
|
394
394
|
|
|
@@ -925,8 +925,78 @@ var ErrorBoundary = class extends Component {
|
|
|
925
925
|
}
|
|
926
926
|
};
|
|
927
927
|
|
|
928
|
-
// src/client/theme/ui/
|
|
928
|
+
// src/client/theme/ui/CopyMarkdown/CopyMarkdown.tsx
|
|
929
|
+
import { useState as useState8, useRef as useRef4, useEffect as useEffect8 } from "react";
|
|
930
|
+
import { Copy, ChevronDown as ChevronDown3, Check, ExternalLink } from "lucide-react";
|
|
929
931
|
import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
932
|
+
function CopyMarkdown({ content, config }) {
|
|
933
|
+
const [isOpen, setIsOpen] = useState8(false);
|
|
934
|
+
const [copied, setCopied] = useState8(false);
|
|
935
|
+
const dropdownRef = useRef4(null);
|
|
936
|
+
const isEnabled = config !== false;
|
|
937
|
+
const buttonText = typeof config === "object" ? config.text || "Copy Markdown" : "Copy Markdown";
|
|
938
|
+
useEffect8(() => {
|
|
939
|
+
function handleClickOutside(event) {
|
|
940
|
+
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
941
|
+
setIsOpen(false);
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
945
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
946
|
+
}, []);
|
|
947
|
+
if (!isEnabled || !content) return null;
|
|
948
|
+
const handleCopy = () => {
|
|
949
|
+
navigator.clipboard.writeText(content);
|
|
950
|
+
setCopied(true);
|
|
951
|
+
setIsOpen(false);
|
|
952
|
+
setTimeout(() => setCopied(false), 2e3);
|
|
953
|
+
};
|
|
954
|
+
const handleOpenRaw = () => {
|
|
955
|
+
const blob = new Blob([content], { type: "text/plain;charset=utf-8" });
|
|
956
|
+
const url = URL.createObjectURL(blob);
|
|
957
|
+
window.open(url, "_blank");
|
|
958
|
+
setIsOpen(false);
|
|
959
|
+
};
|
|
960
|
+
return /* @__PURE__ */ jsxs10("div", { className: "boltdocs-copy-markdown", ref: dropdownRef, children: [
|
|
961
|
+
/* @__PURE__ */ jsxs10("div", { className: "copy-btn-group", children: [
|
|
962
|
+
/* @__PURE__ */ jsxs10(
|
|
963
|
+
"button",
|
|
964
|
+
{
|
|
965
|
+
className: "copy-btn",
|
|
966
|
+
onClick: handleCopy,
|
|
967
|
+
"aria-label": "Copy Markdown",
|
|
968
|
+
children: [
|
|
969
|
+
copied ? /* @__PURE__ */ jsx16(Check, { size: 16 }) : /* @__PURE__ */ jsx16(Copy, { size: 16 }),
|
|
970
|
+
/* @__PURE__ */ jsx16("span", { className: "copy-label", children: copied ? "Copied!" : buttonText })
|
|
971
|
+
]
|
|
972
|
+
}
|
|
973
|
+
),
|
|
974
|
+
/* @__PURE__ */ jsx16(
|
|
975
|
+
"button",
|
|
976
|
+
{
|
|
977
|
+
className: `copy-dropdown-toggle ${isOpen ? "is-active" : ""}`,
|
|
978
|
+
onClick: () => setIsOpen(!isOpen),
|
|
979
|
+
"aria-label": "More options",
|
|
980
|
+
"aria-expanded": isOpen,
|
|
981
|
+
children: /* @__PURE__ */ jsx16(ChevronDown3, { size: 14, className: "arrow-icon" })
|
|
982
|
+
}
|
|
983
|
+
)
|
|
984
|
+
] }),
|
|
985
|
+
isOpen && /* @__PURE__ */ jsxs10("div", { className: "copy-dropdown", children: [
|
|
986
|
+
/* @__PURE__ */ jsxs10("button", { className: "copy-option", onClick: handleCopy, children: [
|
|
987
|
+
/* @__PURE__ */ jsx16(Copy, { size: 14 }),
|
|
988
|
+
"Copy Markdown"
|
|
989
|
+
] }),
|
|
990
|
+
/* @__PURE__ */ jsxs10("button", { className: "copy-option", onClick: handleOpenRaw, children: [
|
|
991
|
+
/* @__PURE__ */ jsx16(ExternalLink, { size: 14 }),
|
|
992
|
+
"View as Markdown"
|
|
993
|
+
] })
|
|
994
|
+
] })
|
|
995
|
+
] });
|
|
996
|
+
}
|
|
997
|
+
|
|
998
|
+
// src/client/theme/ui/Layout/Layout.tsx
|
|
999
|
+
import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
930
1000
|
function ThemeLayout({
|
|
931
1001
|
config,
|
|
932
1002
|
routes,
|
|
@@ -958,14 +1028,14 @@ function ThemeLayout({
|
|
|
958
1028
|
const prevPage = localIndex > 0 ? filteredRoutes[localIndex - 1] : null;
|
|
959
1029
|
const nextPage = localIndex >= 0 && localIndex < filteredRoutes.length - 1 ? filteredRoutes[localIndex + 1] : null;
|
|
960
1030
|
const { preload } = usePreload();
|
|
961
|
-
|
|
1031
|
+
React8.useEffect(() => {
|
|
962
1032
|
if (prevPage?.path) preload(prevPage.path);
|
|
963
1033
|
if (nextPage?.path) preload(nextPage.path);
|
|
964
1034
|
}, [prevPage, nextPage, preload]);
|
|
965
|
-
return /* @__PURE__ */
|
|
966
|
-
/* @__PURE__ */
|
|
967
|
-
background !== void 0 ? background : /* @__PURE__ */
|
|
968
|
-
head !== void 0 ? head : /* @__PURE__ */
|
|
1035
|
+
return /* @__PURE__ */ jsxs11("div", { className: `boltdocs-layout ${className}`, style, children: [
|
|
1036
|
+
/* @__PURE__ */ jsx17(ProgressBar, {}),
|
|
1037
|
+
background !== void 0 ? background : /* @__PURE__ */ jsx17(BackgroundGradient, {}),
|
|
1038
|
+
head !== void 0 ? head : /* @__PURE__ */ jsx17(
|
|
969
1039
|
Head,
|
|
970
1040
|
{
|
|
971
1041
|
siteTitle,
|
|
@@ -973,7 +1043,7 @@ function ThemeLayout({
|
|
|
973
1043
|
routes
|
|
974
1044
|
}
|
|
975
1045
|
),
|
|
976
|
-
navbar !== void 0 ? navbar : /* @__PURE__ */
|
|
1046
|
+
navbar !== void 0 ? navbar : /* @__PURE__ */ jsx17(
|
|
977
1047
|
Navbar,
|
|
978
1048
|
{
|
|
979
1049
|
config,
|
|
@@ -983,43 +1053,52 @@ function ThemeLayout({
|
|
|
983
1053
|
currentVersion
|
|
984
1054
|
}
|
|
985
1055
|
),
|
|
986
|
-
/* @__PURE__ */
|
|
987
|
-
sidebar !== void 0 ? sidebar : /* @__PURE__ */
|
|
988
|
-
/* @__PURE__ */
|
|
989
|
-
breadcrumbs !== void 0 ? breadcrumbs : /* @__PURE__ */
|
|
990
|
-
/* @__PURE__ */
|
|
991
|
-
|
|
992
|
-
|
|
1056
|
+
/* @__PURE__ */ jsxs11("div", { className: "boltdocs-main-container", children: [
|
|
1057
|
+
sidebar !== void 0 ? sidebar : /* @__PURE__ */ jsx17(Sidebar, { routes: filteredRoutes, config }),
|
|
1058
|
+
/* @__PURE__ */ jsxs11("main", { className: "boltdocs-content", children: [
|
|
1059
|
+
breadcrumbs !== void 0 ? breadcrumbs : /* @__PURE__ */ jsx17(Breadcrumbs, { routes: filteredRoutes, config }),
|
|
1060
|
+
/* @__PURE__ */ jsxs11("div", { className: "boltdocs-page", children: [
|
|
1061
|
+
/* @__PURE__ */ jsx17("div", { className: "boltdocs-page-header", children: /* @__PURE__ */ jsx17(
|
|
1062
|
+
CopyMarkdown,
|
|
1063
|
+
{
|
|
1064
|
+
content: routes[currentIndex]?._rawContent,
|
|
1065
|
+
config: config.themeConfig?.copyMarkdown
|
|
1066
|
+
}
|
|
1067
|
+
) }),
|
|
1068
|
+
/* @__PURE__ */ jsx17(ErrorBoundary, { children })
|
|
1069
|
+
] }),
|
|
1070
|
+
(prevPage || nextPage) && /* @__PURE__ */ jsxs11("nav", { className: "page-nav", "aria-label": "Pagination", children: [
|
|
1071
|
+
prevPage ? /* @__PURE__ */ jsxs11(
|
|
993
1072
|
Link,
|
|
994
1073
|
{
|
|
995
1074
|
to: prevPage.path || "/",
|
|
996
1075
|
className: "page-nav-link page-nav-link--prev",
|
|
997
1076
|
children: [
|
|
998
|
-
/* @__PURE__ */
|
|
999
|
-
/* @__PURE__ */
|
|
1000
|
-
/* @__PURE__ */
|
|
1077
|
+
/* @__PURE__ */ jsxs11("div", { className: "page-nav-info", children: [
|
|
1078
|
+
/* @__PURE__ */ jsx17("span", { className: "page-nav-label", children: "Previous" }),
|
|
1079
|
+
/* @__PURE__ */ jsx17("span", { className: "page-nav-title", children: prevPage.title })
|
|
1001
1080
|
] }),
|
|
1002
|
-
/* @__PURE__ */
|
|
1081
|
+
/* @__PURE__ */ jsx17(ChevronLeft, { className: "page-nav-arrow", size: 16 })
|
|
1003
1082
|
]
|
|
1004
1083
|
}
|
|
1005
|
-
) : /* @__PURE__ */
|
|
1006
|
-
nextPage ? /* @__PURE__ */
|
|
1084
|
+
) : /* @__PURE__ */ jsx17("span", {}),
|
|
1085
|
+
nextPage ? /* @__PURE__ */ jsxs11(
|
|
1007
1086
|
Link,
|
|
1008
1087
|
{
|
|
1009
1088
|
to: nextPage.path || "/",
|
|
1010
1089
|
className: "page-nav-link page-nav-link--next",
|
|
1011
1090
|
children: [
|
|
1012
|
-
/* @__PURE__ */
|
|
1013
|
-
/* @__PURE__ */
|
|
1014
|
-
/* @__PURE__ */
|
|
1091
|
+
/* @__PURE__ */ jsxs11("div", { className: "page-nav-info", children: [
|
|
1092
|
+
/* @__PURE__ */ jsx17("span", { className: "page-nav-label", children: "Next" }),
|
|
1093
|
+
/* @__PURE__ */ jsx17("span", { className: "page-nav-title", children: nextPage.title })
|
|
1015
1094
|
] }),
|
|
1016
|
-
/* @__PURE__ */
|
|
1095
|
+
/* @__PURE__ */ jsx17(ChevronRight3, { className: "page-nav-arrow", size: 16 })
|
|
1017
1096
|
]
|
|
1018
1097
|
}
|
|
1019
|
-
) : /* @__PURE__ */
|
|
1098
|
+
) : /* @__PURE__ */ jsx17("span", {})
|
|
1020
1099
|
] })
|
|
1021
1100
|
] }),
|
|
1022
|
-
toc !== void 0 ? toc : /* @__PURE__ */
|
|
1101
|
+
toc !== void 0 ? toc : /* @__PURE__ */ jsx17(
|
|
1023
1102
|
OnThisPage,
|
|
1024
1103
|
{
|
|
1025
1104
|
headings: routes[currentIndex]?.headings,
|
|
@@ -1034,25 +1113,25 @@ function ThemeLayout({
|
|
|
1034
1113
|
|
|
1035
1114
|
// src/client/theme/ui/NotFound/NotFound.tsx
|
|
1036
1115
|
import { ArrowLeft } from "lucide-react";
|
|
1037
|
-
import { jsx as
|
|
1116
|
+
import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1038
1117
|
function NotFound() {
|
|
1039
|
-
return /* @__PURE__ */
|
|
1040
|
-
/* @__PURE__ */
|
|
1041
|
-
/* @__PURE__ */
|
|
1042
|
-
/* @__PURE__ */
|
|
1043
|
-
/* @__PURE__ */
|
|
1044
|
-
/* @__PURE__ */
|
|
1118
|
+
return /* @__PURE__ */ jsx18("div", { className: "boltdocs-not-found", children: /* @__PURE__ */ jsxs12("div", { className: "not-found-content", children: [
|
|
1119
|
+
/* @__PURE__ */ jsx18("span", { className: "not-found-code", children: "404" }),
|
|
1120
|
+
/* @__PURE__ */ jsx18("h1", { className: "not-found-title", children: "Page Not Found" }),
|
|
1121
|
+
/* @__PURE__ */ jsx18("p", { className: "not-found-text", children: "The page you're looking for doesn't exist or has been moved." }),
|
|
1122
|
+
/* @__PURE__ */ jsxs12(Link, { to: "/", className: "not-found-link", children: [
|
|
1123
|
+
/* @__PURE__ */ jsx18(ArrowLeft, { size: 16 }),
|
|
1045
1124
|
" Go to Home"
|
|
1046
1125
|
] })
|
|
1047
1126
|
] }) });
|
|
1048
1127
|
}
|
|
1049
1128
|
|
|
1050
1129
|
// src/client/theme/ui/Loading/Loading.tsx
|
|
1051
|
-
import { jsx as
|
|
1130
|
+
import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1052
1131
|
function Loading() {
|
|
1053
|
-
return /* @__PURE__ */
|
|
1054
|
-
/* @__PURE__ */
|
|
1055
|
-
/* @__PURE__ */
|
|
1132
|
+
return /* @__PURE__ */ jsxs13("div", { className: "boltdocs-loading", children: [
|
|
1133
|
+
/* @__PURE__ */ jsx19("div", { className: "loading-spinner" }),
|
|
1134
|
+
/* @__PURE__ */ jsx19("p", { className: "loading-text", children: "Loading..." })
|
|
1056
1135
|
] });
|
|
1057
1136
|
}
|
|
1058
1137
|
|
|
@@ -1068,34 +1147,34 @@ import {
|
|
|
1068
1147
|
import { Link as LucideLink } from "lucide-react";
|
|
1069
1148
|
|
|
1070
1149
|
// src/client/theme/components/CodeBlock/CodeBlock.tsx
|
|
1071
|
-
import { useState as
|
|
1072
|
-
import { Copy, Check } from "lucide-react";
|
|
1073
|
-
import { jsx as
|
|
1150
|
+
import { useState as useState10, useRef as useRef5, useCallback as useCallback3 } from "react";
|
|
1151
|
+
import { Copy as Copy2, Check as Check2 } from "lucide-react";
|
|
1152
|
+
import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1074
1153
|
function CodeBlock({ children, ...props }) {
|
|
1075
|
-
const [copied, setCopied] =
|
|
1076
|
-
const preRef =
|
|
1154
|
+
const [copied, setCopied] = useState10(false);
|
|
1155
|
+
const preRef = useRef5(null);
|
|
1077
1156
|
const handleCopy = useCallback3(async () => {
|
|
1078
1157
|
const code = preRef.current?.textContent || "";
|
|
1079
1158
|
copyToClipboard(code);
|
|
1080
1159
|
setCopied(true);
|
|
1081
1160
|
setTimeout(() => setCopied(false), 2e3);
|
|
1082
1161
|
}, []);
|
|
1083
|
-
return /* @__PURE__ */
|
|
1084
|
-
/* @__PURE__ */
|
|
1162
|
+
return /* @__PURE__ */ jsxs14("div", { className: "code-block-wrapper", children: [
|
|
1163
|
+
/* @__PURE__ */ jsx20(
|
|
1085
1164
|
"button",
|
|
1086
1165
|
{
|
|
1087
1166
|
className: `code-block-copy ${copied ? "copied" : ""}`,
|
|
1088
1167
|
onClick: handleCopy,
|
|
1089
1168
|
"aria-label": "Copy code",
|
|
1090
|
-
children: copied ? /* @__PURE__ */
|
|
1169
|
+
children: copied ? /* @__PURE__ */ jsx20(Check2, { size: 16 }) : /* @__PURE__ */ jsx20(Copy2, { size: 16 })
|
|
1091
1170
|
}
|
|
1092
1171
|
),
|
|
1093
|
-
/* @__PURE__ */
|
|
1172
|
+
/* @__PURE__ */ jsx20("pre", { ref: preRef, ...props, children })
|
|
1094
1173
|
] });
|
|
1095
1174
|
}
|
|
1096
1175
|
|
|
1097
1176
|
// src/client/app/index.tsx
|
|
1098
|
-
import { jsx as
|
|
1177
|
+
import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1099
1178
|
var ConfigContext = createContext2(null);
|
|
1100
1179
|
function useConfig() {
|
|
1101
1180
|
return useContext2(ConfigContext);
|
|
@@ -1114,21 +1193,21 @@ var Heading = ({
|
|
|
1114
1193
|
children
|
|
1115
1194
|
}) => {
|
|
1116
1195
|
const Tag = `h${level}`;
|
|
1117
|
-
return /* @__PURE__ */
|
|
1196
|
+
return /* @__PURE__ */ jsxs15(Tag, { id, className: "boltdocs-heading", children: [
|
|
1118
1197
|
children,
|
|
1119
|
-
id && /* @__PURE__ */
|
|
1198
|
+
id && /* @__PURE__ */ jsx21("a", { href: `#${id}`, className: "header-anchor", "aria-label": "Anchor", children: /* @__PURE__ */ jsx21(LucideLink, { size: 16 }) })
|
|
1120
1199
|
] });
|
|
1121
1200
|
};
|
|
1122
1201
|
var mdxComponents = {
|
|
1123
|
-
h1: (props) => /* @__PURE__ */
|
|
1124
|
-
h2: (props) => /* @__PURE__ */
|
|
1125
|
-
h3: (props) => /* @__PURE__ */
|
|
1126
|
-
h4: (props) => /* @__PURE__ */
|
|
1127
|
-
h5: (props) => /* @__PURE__ */
|
|
1128
|
-
h6: (props) => /* @__PURE__ */
|
|
1129
|
-
pre: (props) => /* @__PURE__ */
|
|
1130
|
-
video: (props) => /* @__PURE__ */
|
|
1131
|
-
PackageManagerTabs: (props) => /* @__PURE__ */
|
|
1202
|
+
h1: (props) => /* @__PURE__ */ jsx21(Heading, { level: 1, ...props }),
|
|
1203
|
+
h2: (props) => /* @__PURE__ */ jsx21(Heading, { level: 2, ...props }),
|
|
1204
|
+
h3: (props) => /* @__PURE__ */ jsx21(Heading, { level: 3, ...props }),
|
|
1205
|
+
h4: (props) => /* @__PURE__ */ jsx21(Heading, { level: 4, ...props }),
|
|
1206
|
+
h5: (props) => /* @__PURE__ */ jsx21(Heading, { level: 5, ...props }),
|
|
1207
|
+
h6: (props) => /* @__PURE__ */ jsx21(Heading, { level: 6, ...props }),
|
|
1208
|
+
pre: (props) => /* @__PURE__ */ jsx21(CodeBlock, { ...props, children: props.children }),
|
|
1209
|
+
video: (props) => /* @__PURE__ */ jsx21(Suspense, { fallback: /* @__PURE__ */ jsx21("div", { className: "video-skeleton" }), children: /* @__PURE__ */ jsx21(Video, { ...props }) }),
|
|
1210
|
+
PackageManagerTabs: (props) => /* @__PURE__ */ jsx21(Suspense, { fallback: /* @__PURE__ */ jsx21("div", { className: "pkg-tabs-skeleton" }), children: /* @__PURE__ */ jsx21(PackageManagerTabs, { ...props }) })
|
|
1132
1211
|
};
|
|
1133
1212
|
function AppShell({
|
|
1134
1213
|
initialRoutes,
|
|
@@ -1139,8 +1218,8 @@ function AppShell({
|
|
|
1139
1218
|
homePage: HomePage,
|
|
1140
1219
|
components: customComponents = {}
|
|
1141
1220
|
}) {
|
|
1142
|
-
const [routesInfo, setRoutesInfo] =
|
|
1143
|
-
const [config] =
|
|
1221
|
+
const [routesInfo, setRoutesInfo] = useState11(initialRoutes);
|
|
1222
|
+
const [config] = useState11(initialConfig);
|
|
1144
1223
|
const resolveRoutes = (infos) => {
|
|
1145
1224
|
return infos.filter(
|
|
1146
1225
|
(route) => !(HomePage && (route.path === "/" || route.path === ""))
|
|
@@ -1151,35 +1230,35 @@ function AppShell({
|
|
|
1151
1230
|
const loader = loaderKey ? modules[loaderKey] : null;
|
|
1152
1231
|
return {
|
|
1153
1232
|
...route,
|
|
1154
|
-
Component:
|
|
1233
|
+
Component: React10.lazy(() => {
|
|
1155
1234
|
if (!loader)
|
|
1156
|
-
return Promise.resolve({ default: () => /* @__PURE__ */
|
|
1235
|
+
return Promise.resolve({ default: () => /* @__PURE__ */ jsx21(NotFound, {}) });
|
|
1157
1236
|
return loader();
|
|
1158
1237
|
})
|
|
1159
1238
|
};
|
|
1160
1239
|
});
|
|
1161
1240
|
};
|
|
1162
|
-
const [resolvedRoutes, setResolvedRoutes] =
|
|
1241
|
+
const [resolvedRoutes, setResolvedRoutes] = useState11(
|
|
1163
1242
|
() => resolveRoutes(initialRoutes)
|
|
1164
1243
|
);
|
|
1165
|
-
|
|
1244
|
+
useEffect9(() => {
|
|
1166
1245
|
if (hot) {
|
|
1167
1246
|
hot.on("boltdocs:routes-update", (newRoutes) => {
|
|
1168
1247
|
setRoutesInfo(newRoutes);
|
|
1169
1248
|
});
|
|
1170
1249
|
}
|
|
1171
1250
|
}, [hot]);
|
|
1172
|
-
|
|
1251
|
+
useEffect9(() => {
|
|
1173
1252
|
setResolvedRoutes(resolveRoutes(routesInfo));
|
|
1174
1253
|
}, [routesInfo, modules, docsDirName]);
|
|
1175
|
-
return /* @__PURE__ */
|
|
1176
|
-
/* @__PURE__ */
|
|
1177
|
-
/* @__PURE__ */
|
|
1178
|
-
HomePage && /* @__PURE__ */
|
|
1254
|
+
return /* @__PURE__ */ jsx21(ConfigContext.Provider, { value: config, children: /* @__PURE__ */ jsxs15(PreloadProvider, { routes: routesInfo, modules, children: [
|
|
1255
|
+
/* @__PURE__ */ jsx21(ScrollHandler, {}),
|
|
1256
|
+
/* @__PURE__ */ jsxs15(Routes, { children: [
|
|
1257
|
+
HomePage && /* @__PURE__ */ jsx21(
|
|
1179
1258
|
Route,
|
|
1180
1259
|
{
|
|
1181
1260
|
path: "/",
|
|
1182
|
-
element: /* @__PURE__ */
|
|
1261
|
+
element: /* @__PURE__ */ jsx21(
|
|
1183
1262
|
ThemeLayout,
|
|
1184
1263
|
{
|
|
1185
1264
|
config,
|
|
@@ -1188,20 +1267,20 @@ function AppShell({
|
|
|
1188
1267
|
toc: null,
|
|
1189
1268
|
breadcrumbs: null,
|
|
1190
1269
|
...config.themeConfig?.layoutProps,
|
|
1191
|
-
children: /* @__PURE__ */
|
|
1270
|
+
children: /* @__PURE__ */ jsx21(HomePage, {})
|
|
1192
1271
|
}
|
|
1193
1272
|
)
|
|
1194
1273
|
}
|
|
1195
1274
|
),
|
|
1196
|
-
/* @__PURE__ */
|
|
1275
|
+
/* @__PURE__ */ jsx21(
|
|
1197
1276
|
Route,
|
|
1198
1277
|
{
|
|
1199
|
-
element: /* @__PURE__ */
|
|
1200
|
-
children: resolvedRoutes.map((route) => /* @__PURE__ */
|
|
1278
|
+
element: /* @__PURE__ */ jsx21(DocsLayout, { config, routes: routesInfo }),
|
|
1279
|
+
children: resolvedRoutes.map((route) => /* @__PURE__ */ jsx21(
|
|
1201
1280
|
Route,
|
|
1202
1281
|
{
|
|
1203
1282
|
path: route.path === "" ? "/" : route.path,
|
|
1204
|
-
element: /* @__PURE__ */
|
|
1283
|
+
element: /* @__PURE__ */ jsx21(React10.Suspense, { fallback: /* @__PURE__ */ jsx21(Loading, {}), children: /* @__PURE__ */ jsx21(
|
|
1205
1284
|
MdxPage,
|
|
1206
1285
|
{
|
|
1207
1286
|
Component: route.Component,
|
|
@@ -1214,17 +1293,17 @@ function AppShell({
|
|
|
1214
1293
|
},
|
|
1215
1294
|
"docs-layout"
|
|
1216
1295
|
),
|
|
1217
|
-
/* @__PURE__ */
|
|
1296
|
+
/* @__PURE__ */ jsx21(
|
|
1218
1297
|
Route,
|
|
1219
1298
|
{
|
|
1220
1299
|
path: "*",
|
|
1221
|
-
element: /* @__PURE__ */
|
|
1300
|
+
element: /* @__PURE__ */ jsx21(
|
|
1222
1301
|
ThemeLayout,
|
|
1223
1302
|
{
|
|
1224
1303
|
config,
|
|
1225
1304
|
routes: routesInfo,
|
|
1226
1305
|
...config.themeConfig?.layoutProps,
|
|
1227
|
-
children: /* @__PURE__ */
|
|
1306
|
+
children: /* @__PURE__ */ jsx21(NotFound, {})
|
|
1228
1307
|
}
|
|
1229
1308
|
)
|
|
1230
1309
|
}
|
|
@@ -1261,13 +1340,13 @@ function DocsLayout({
|
|
|
1261
1340
|
config,
|
|
1262
1341
|
routes
|
|
1263
1342
|
}) {
|
|
1264
|
-
return /* @__PURE__ */
|
|
1343
|
+
return /* @__PURE__ */ jsx21(
|
|
1265
1344
|
ThemeLayout,
|
|
1266
1345
|
{
|
|
1267
1346
|
config,
|
|
1268
1347
|
routes,
|
|
1269
1348
|
...config.themeConfig?.layoutProps,
|
|
1270
|
-
children: /* @__PURE__ */
|
|
1349
|
+
children: /* @__PURE__ */ jsx21(Outlet, {})
|
|
1271
1350
|
}
|
|
1272
1351
|
);
|
|
1273
1352
|
}
|
|
@@ -1276,7 +1355,7 @@ function MdxPage({
|
|
|
1276
1355
|
customComponents = {}
|
|
1277
1356
|
}) {
|
|
1278
1357
|
const allComponents = { ...mdxComponents, ...customComponents };
|
|
1279
|
-
return /* @__PURE__ */
|
|
1358
|
+
return /* @__PURE__ */ jsx21(MDXProvider, { components: allComponents, children: /* @__PURE__ */ jsx21(Component2, {}) });
|
|
1280
1359
|
}
|
|
1281
1360
|
function createBoltdocsApp(options) {
|
|
1282
1361
|
const { target, routes, docsDirName, config, modules, hot, homePage } = options;
|
|
@@ -1286,7 +1365,7 @@ function createBoltdocsApp(options) {
|
|
|
1286
1365
|
`[boltdocs] Mount target "${target}" not found in document.`
|
|
1287
1366
|
);
|
|
1288
1367
|
}
|
|
1289
|
-
const app = /* @__PURE__ */
|
|
1368
|
+
const app = /* @__PURE__ */ jsx21(React10.StrictMode, { children: /* @__PURE__ */ jsx21(BrowserRouter, { children: /* @__PURE__ */ jsx21(
|
|
1290
1369
|
AppShell,
|
|
1291
1370
|
{
|
|
1292
1371
|
initialRoutes: routes,
|
|
@@ -1303,9 +1382,9 @@ function createBoltdocsApp(options) {
|
|
|
1303
1382
|
}
|
|
1304
1383
|
|
|
1305
1384
|
// src/client/theme/ui/Link/LinkPreview.tsx
|
|
1306
|
-
import { useEffect as
|
|
1385
|
+
import { useEffect as useEffect10, useState as useState12, useRef as useRef6 } from "react";
|
|
1307
1386
|
import { createPortal } from "react-dom";
|
|
1308
|
-
import { jsx as
|
|
1387
|
+
import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1309
1388
|
function LinkPreview({
|
|
1310
1389
|
isVisible,
|
|
1311
1390
|
title,
|
|
@@ -1313,9 +1392,9 @@ function LinkPreview({
|
|
|
1313
1392
|
x,
|
|
1314
1393
|
y
|
|
1315
1394
|
}) {
|
|
1316
|
-
const ref =
|
|
1317
|
-
const [position, setPosition] =
|
|
1318
|
-
|
|
1395
|
+
const ref = useRef6(null);
|
|
1396
|
+
const [position, setPosition] = useState12({ top: 0, left: 0 });
|
|
1397
|
+
useEffect10(() => {
|
|
1319
1398
|
if (ref.current) {
|
|
1320
1399
|
const rect = ref.current.getBoundingClientRect();
|
|
1321
1400
|
const padding = 12;
|
|
@@ -1331,7 +1410,7 @@ function LinkPreview({
|
|
|
1331
1410
|
}
|
|
1332
1411
|
}, [x, y, isVisible]);
|
|
1333
1412
|
return createPortal(
|
|
1334
|
-
/* @__PURE__ */
|
|
1413
|
+
/* @__PURE__ */ jsx22(
|
|
1335
1414
|
"div",
|
|
1336
1415
|
{
|
|
1337
1416
|
ref,
|
|
@@ -1340,9 +1419,9 @@ function LinkPreview({
|
|
|
1340
1419
|
top: position.top,
|
|
1341
1420
|
left: position.left
|
|
1342
1421
|
},
|
|
1343
|
-
children: /* @__PURE__ */
|
|
1344
|
-
/* @__PURE__ */
|
|
1345
|
-
summary && /* @__PURE__ */
|
|
1422
|
+
children: /* @__PURE__ */ jsxs16("div", { className: "boltdocs-link-preview-content", children: [
|
|
1423
|
+
/* @__PURE__ */ jsx22("span", { className: "boltdocs-link-preview-title", children: title }),
|
|
1424
|
+
summary && /* @__PURE__ */ jsx22("p", { className: "boltdocs-link-preview-summary", children: summary })
|
|
1346
1425
|
] })
|
|
1347
1426
|
}
|
|
1348
1427
|
),
|
|
@@ -1351,7 +1430,7 @@ function LinkPreview({
|
|
|
1351
1430
|
}
|
|
1352
1431
|
|
|
1353
1432
|
// src/client/theme/ui/Link/Link.tsx
|
|
1354
|
-
import { Fragment, jsx as
|
|
1433
|
+
import { Fragment, jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1355
1434
|
function useLocalizedTo(to) {
|
|
1356
1435
|
const location = useLocation9();
|
|
1357
1436
|
const config = useConfig();
|
|
@@ -1407,7 +1486,7 @@ function useLocalizedTo(to) {
|
|
|
1407
1486
|
}
|
|
1408
1487
|
return finalPath === basePath ? basePath : finalPath;
|
|
1409
1488
|
}
|
|
1410
|
-
var Link =
|
|
1489
|
+
var Link = React11.forwardRef(
|
|
1411
1490
|
(props, ref) => {
|
|
1412
1491
|
const {
|
|
1413
1492
|
boltdocsPrefetch = "hover",
|
|
@@ -1425,7 +1504,7 @@ var Link = React10.forwardRef(
|
|
|
1425
1504
|
const config = useConfig();
|
|
1426
1505
|
const navigate = useNavigate3();
|
|
1427
1506
|
const shouldShowPreview = boltdocsPreview && config?.themeConfig?.linkPreview !== false;
|
|
1428
|
-
const [preview, setPreview] =
|
|
1507
|
+
const [preview, setPreview] = React11.useState({ visible: false, x: 0, y: 0, title: "" });
|
|
1429
1508
|
const handleMouseEnter = (e) => {
|
|
1430
1509
|
onMouseEnter?.(e);
|
|
1431
1510
|
if (boltdocsPrefetch === "hover" && typeof localizedTo === "string" && localizedTo.startsWith("/")) {
|
|
@@ -1474,13 +1553,13 @@ var Link = React10.forwardRef(
|
|
|
1474
1553
|
}
|
|
1475
1554
|
if (typeof localizedTo === "string" && !localizedTo.startsWith("http")) {
|
|
1476
1555
|
e.preventDefault();
|
|
1477
|
-
|
|
1556
|
+
React11.startTransition(() => {
|
|
1478
1557
|
navigate(localizedTo);
|
|
1479
1558
|
});
|
|
1480
1559
|
}
|
|
1481
1560
|
};
|
|
1482
|
-
return /* @__PURE__ */
|
|
1483
|
-
/* @__PURE__ */
|
|
1561
|
+
return /* @__PURE__ */ jsxs17(Fragment, { children: [
|
|
1562
|
+
/* @__PURE__ */ jsx23(
|
|
1484
1563
|
RouterLink,
|
|
1485
1564
|
{
|
|
1486
1565
|
ref,
|
|
@@ -1494,7 +1573,7 @@ var Link = React10.forwardRef(
|
|
|
1494
1573
|
...rest
|
|
1495
1574
|
}
|
|
1496
1575
|
),
|
|
1497
|
-
preview.visible && shouldShowPreview && /* @__PURE__ */
|
|
1576
|
+
preview.visible && shouldShowPreview && /* @__PURE__ */ jsx23(
|
|
1498
1577
|
LinkPreview,
|
|
1499
1578
|
{
|
|
1500
1579
|
isVisible: preview.visible,
|
|
@@ -1508,7 +1587,7 @@ var Link = React10.forwardRef(
|
|
|
1508
1587
|
}
|
|
1509
1588
|
);
|
|
1510
1589
|
Link.displayName = "Link";
|
|
1511
|
-
var NavLink =
|
|
1590
|
+
var NavLink = React11.forwardRef(
|
|
1512
1591
|
(props, ref) => {
|
|
1513
1592
|
const {
|
|
1514
1593
|
boltdocsPrefetch = "hover",
|
|
@@ -1526,7 +1605,7 @@ var NavLink = React10.forwardRef(
|
|
|
1526
1605
|
const config = useConfig();
|
|
1527
1606
|
const navigate = useNavigate3();
|
|
1528
1607
|
const shouldShowPreview = boltdocsPreview && config?.themeConfig?.linkPreview !== false;
|
|
1529
|
-
const [preview, setPreview] =
|
|
1608
|
+
const [preview, setPreview] = React11.useState({ visible: false, x: 0, y: 0, title: "" });
|
|
1530
1609
|
const handleMouseEnter = (e) => {
|
|
1531
1610
|
onMouseEnter?.(e);
|
|
1532
1611
|
if (boltdocsPrefetch === "hover" && typeof localizedTo === "string" && localizedTo.startsWith("/")) {
|
|
@@ -1575,13 +1654,13 @@ var NavLink = React10.forwardRef(
|
|
|
1575
1654
|
}
|
|
1576
1655
|
if (typeof localizedTo === "string" && !localizedTo.startsWith("http")) {
|
|
1577
1656
|
e.preventDefault();
|
|
1578
|
-
|
|
1657
|
+
React11.startTransition(() => {
|
|
1579
1658
|
navigate(localizedTo);
|
|
1580
1659
|
});
|
|
1581
1660
|
}
|
|
1582
1661
|
};
|
|
1583
|
-
return /* @__PURE__ */
|
|
1584
|
-
/* @__PURE__ */
|
|
1662
|
+
return /* @__PURE__ */ jsxs17(Fragment, { children: [
|
|
1663
|
+
/* @__PURE__ */ jsx23(
|
|
1585
1664
|
RouterNavLink,
|
|
1586
1665
|
{
|
|
1587
1666
|
ref,
|
|
@@ -1595,7 +1674,7 @@ var NavLink = React10.forwardRef(
|
|
|
1595
1674
|
...rest
|
|
1596
1675
|
}
|
|
1597
1676
|
),
|
|
1598
|
-
preview.visible && shouldShowPreview && /* @__PURE__ */
|
|
1677
|
+
preview.visible && shouldShowPreview && /* @__PURE__ */ jsx23(
|
|
1599
1678
|
LinkPreview,
|
|
1600
1679
|
{
|
|
1601
1680
|
isVisible: preview.visible,
|
|
@@ -1612,12 +1691,12 @@ NavLink.displayName = "NavLink";
|
|
|
1612
1691
|
|
|
1613
1692
|
// src/client/theme/ui/Navbar/Tabs.tsx
|
|
1614
1693
|
import * as Icons from "lucide-react";
|
|
1615
|
-
import { jsx as
|
|
1694
|
+
import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1616
1695
|
function Tabs({ tabs, routes }) {
|
|
1617
1696
|
const location = useLocation10();
|
|
1618
|
-
const containerRef =
|
|
1619
|
-
const tabRefs =
|
|
1620
|
-
const [indicatorStyle, setIndicatorStyle] =
|
|
1697
|
+
const containerRef = useRef7(null);
|
|
1698
|
+
const tabRefs = useRef7([]);
|
|
1699
|
+
const [indicatorStyle, setIndicatorStyle] = useState13({
|
|
1621
1700
|
opacity: 0,
|
|
1622
1701
|
transform: "translateX(0) scaleX(0)",
|
|
1623
1702
|
width: 0
|
|
@@ -1628,7 +1707,7 @@ function Tabs({ tabs, routes }) {
|
|
|
1628
1707
|
(tab) => currentTabId ? currentTabId === tab.id.toLowerCase() : false
|
|
1629
1708
|
);
|
|
1630
1709
|
const finalActiveIndex = activeIndex === -1 ? 0 : activeIndex;
|
|
1631
|
-
|
|
1710
|
+
useEffect11(() => {
|
|
1632
1711
|
const activeTab = tabRefs.current[finalActiveIndex];
|
|
1633
1712
|
if (activeTab) {
|
|
1634
1713
|
setIndicatorStyle({
|
|
@@ -1642,7 +1721,7 @@ function Tabs({ tabs, routes }) {
|
|
|
1642
1721
|
const renderTabIcon = (iconName) => {
|
|
1643
1722
|
if (!iconName) return null;
|
|
1644
1723
|
if (iconName.trim().startsWith("<svg")) {
|
|
1645
|
-
return /* @__PURE__ */
|
|
1724
|
+
return /* @__PURE__ */ jsx24(
|
|
1646
1725
|
"span",
|
|
1647
1726
|
{
|
|
1648
1727
|
className: "tab-icon svg-icon",
|
|
@@ -1652,18 +1731,18 @@ function Tabs({ tabs, routes }) {
|
|
|
1652
1731
|
}
|
|
1653
1732
|
const LucideIcon = Icons[iconName];
|
|
1654
1733
|
if (LucideIcon) {
|
|
1655
|
-
return /* @__PURE__ */
|
|
1734
|
+
return /* @__PURE__ */ jsx24(LucideIcon, { size: 16, className: "tab-icon lucide-icon" });
|
|
1656
1735
|
}
|
|
1657
|
-
return /* @__PURE__ */
|
|
1736
|
+
return /* @__PURE__ */ jsx24("img", { src: iconName, alt: "", className: "tab-icon img-icon" });
|
|
1658
1737
|
};
|
|
1659
|
-
return /* @__PURE__ */
|
|
1738
|
+
return /* @__PURE__ */ jsx24("div", { className: "boltdocs-tabs-container", children: /* @__PURE__ */ jsxs18("div", { className: "boltdocs-tabs", ref: containerRef, children: [
|
|
1660
1739
|
tabs.map((tab, index) => {
|
|
1661
1740
|
const isActive = index === finalActiveIndex;
|
|
1662
1741
|
const firstRoute = routes.find(
|
|
1663
1742
|
(r) => r.tab && r.tab.toLowerCase() === tab.id.toLowerCase()
|
|
1664
1743
|
);
|
|
1665
1744
|
const linkTo = firstRoute ? firstRoute.path : "#";
|
|
1666
|
-
return /* @__PURE__ */
|
|
1745
|
+
return /* @__PURE__ */ jsxs18(
|
|
1667
1746
|
Link,
|
|
1668
1747
|
{
|
|
1669
1748
|
to: linkTo,
|
|
@@ -1673,20 +1752,20 @@ function Tabs({ tabs, routes }) {
|
|
|
1673
1752
|
className: `boltdocs-tab-item ${isActive ? "active" : ""}`,
|
|
1674
1753
|
children: [
|
|
1675
1754
|
renderTabIcon(tab.icon),
|
|
1676
|
-
/* @__PURE__ */
|
|
1755
|
+
/* @__PURE__ */ jsx24("span", { children: tab.text })
|
|
1677
1756
|
]
|
|
1678
1757
|
},
|
|
1679
1758
|
tab.id
|
|
1680
1759
|
);
|
|
1681
1760
|
}),
|
|
1682
|
-
/* @__PURE__ */
|
|
1761
|
+
/* @__PURE__ */ jsx24("div", { className: "boltdocs-tab-indicator", style: indicatorStyle })
|
|
1683
1762
|
] }) });
|
|
1684
1763
|
}
|
|
1685
1764
|
|
|
1686
1765
|
// src/client/theme/ui/Navbar/Navbar.tsx
|
|
1687
|
-
import { jsx as
|
|
1766
|
+
import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1688
1767
|
var SearchDialog = lazy2(
|
|
1689
|
-
() => import("./SearchDialog-
|
|
1768
|
+
() => import("./SearchDialog-MEWGAONO.mjs").then((m) => ({ default: m.SearchDialog }))
|
|
1690
1769
|
);
|
|
1691
1770
|
var ICON_MAP = {
|
|
1692
1771
|
discord: Discord,
|
|
@@ -1711,9 +1790,9 @@ function Navbar({
|
|
|
1711
1790
|
const text = item.label || item.text || "";
|
|
1712
1791
|
const href = item.to || item.href || item.link || "";
|
|
1713
1792
|
const isExternal = href.startsWith("http") || href.startsWith("//") || href.includes("://");
|
|
1714
|
-
return /* @__PURE__ */
|
|
1793
|
+
return /* @__PURE__ */ jsxs19(Link2, { to: href, target: isExternal ? "_blank" : void 0, children: [
|
|
1715
1794
|
text,
|
|
1716
|
-
isExternal && /* @__PURE__ */
|
|
1795
|
+
isExternal && /* @__PURE__ */ jsx25("span", { className: "navbar-external-icon", children: /* @__PURE__ */ jsxs19(
|
|
1717
1796
|
"svg",
|
|
1718
1797
|
{
|
|
1719
1798
|
viewBox: "0 0 24 24",
|
|
@@ -1725,24 +1804,24 @@ function Navbar({
|
|
|
1725
1804
|
strokeLinecap: "round",
|
|
1726
1805
|
strokeLinejoin: "round",
|
|
1727
1806
|
children: [
|
|
1728
|
-
/* @__PURE__ */
|
|
1729
|
-
/* @__PURE__ */
|
|
1730
|
-
/* @__PURE__ */
|
|
1807
|
+
/* @__PURE__ */ jsx25("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }),
|
|
1808
|
+
/* @__PURE__ */ jsx25("polyline", { points: "15 3 21 3 21 9" }),
|
|
1809
|
+
/* @__PURE__ */ jsx25("line", { x1: "10", y1: "14", x2: "21", y2: "3" })
|
|
1731
1810
|
]
|
|
1732
1811
|
}
|
|
1733
1812
|
) })
|
|
1734
1813
|
] }, i);
|
|
1735
1814
|
};
|
|
1736
|
-
return /* @__PURE__ */
|
|
1737
|
-
/* @__PURE__ */
|
|
1815
|
+
return /* @__PURE__ */ jsxs19("header", { className: `boltdocs-navbar ${hasTabs ? "has-tabs" : ""}`, children: [
|
|
1816
|
+
/* @__PURE__ */ jsxs19(
|
|
1738
1817
|
"div",
|
|
1739
1818
|
{
|
|
1740
1819
|
className: "navbar-container",
|
|
1741
1820
|
style: { height: "var(--ld-navbar-height)" },
|
|
1742
1821
|
children: [
|
|
1743
|
-
/* @__PURE__ */
|
|
1744
|
-
/* @__PURE__ */
|
|
1745
|
-
config.themeConfig?.logo ? config.themeConfig.logo.trim().startsWith("<svg") ? /* @__PURE__ */
|
|
1822
|
+
/* @__PURE__ */ jsxs19("div", { className: "navbar-left", children: [
|
|
1823
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar-logo", children: /* @__PURE__ */ jsxs19(Link2, { to: "/", children: [
|
|
1824
|
+
config.themeConfig?.logo ? config.themeConfig.logo.trim().startsWith("<svg") ? /* @__PURE__ */ jsx25(
|
|
1746
1825
|
"span",
|
|
1747
1826
|
{
|
|
1748
1827
|
className: "navbar-logo-svg",
|
|
@@ -1750,7 +1829,7 @@ function Navbar({
|
|
|
1750
1829
|
__html: config.themeConfig.logo
|
|
1751
1830
|
}
|
|
1752
1831
|
}
|
|
1753
|
-
) : /* @__PURE__ */
|
|
1832
|
+
) : /* @__PURE__ */ jsx25(
|
|
1754
1833
|
"img",
|
|
1755
1834
|
{
|
|
1756
1835
|
src: config.themeConfig.logo,
|
|
@@ -1760,7 +1839,7 @@ function Navbar({
|
|
|
1760
1839
|
) : null,
|
|
1761
1840
|
title
|
|
1762
1841
|
] }) }),
|
|
1763
|
-
config.versions && currentVersion && allRoutes ? /* @__PURE__ */
|
|
1842
|
+
config.versions && currentVersion && allRoutes ? /* @__PURE__ */ jsx25(
|
|
1764
1843
|
VersionSwitcher,
|
|
1765
1844
|
{
|
|
1766
1845
|
versions: config.versions,
|
|
@@ -1768,17 +1847,17 @@ function Navbar({
|
|
|
1768
1847
|
currentLocale,
|
|
1769
1848
|
allRoutes
|
|
1770
1849
|
}
|
|
1771
|
-
) : config.themeConfig?.version ? /* @__PURE__ */
|
|
1850
|
+
) : config.themeConfig?.version ? /* @__PURE__ */ jsxs19("div", { className: "navbar-version", children: [
|
|
1772
1851
|
config.themeConfig.version,
|
|
1773
1852
|
" ",
|
|
1774
|
-
/* @__PURE__ */
|
|
1853
|
+
/* @__PURE__ */ jsx25(ChevronDown4, { size: 14 })
|
|
1775
1854
|
] }) : null,
|
|
1776
|
-
/* @__PURE__ */
|
|
1855
|
+
/* @__PURE__ */ jsx25("nav", { className: "navbar-links", "aria-label": "Top Navigation Left", children: leftItems.map(renderNavItem) })
|
|
1777
1856
|
] }),
|
|
1778
|
-
/* @__PURE__ */
|
|
1779
|
-
/* @__PURE__ */
|
|
1780
|
-
/* @__PURE__ */
|
|
1781
|
-
config.i18n && currentLocale && allRoutes && /* @__PURE__ */
|
|
1857
|
+
/* @__PURE__ */ jsxs19("div", { className: "navbar-right", children: [
|
|
1858
|
+
/* @__PURE__ */ jsx25("nav", { className: "navbar-links", "aria-label": "Top Navigation Right", children: rightItems.map(renderNavItem) }),
|
|
1859
|
+
/* @__PURE__ */ jsx25(Suspense2, { fallback: /* @__PURE__ */ jsx25("div", { className: "navbar-search-placeholder" }), children: /* @__PURE__ */ jsx25(SearchDialog, { routes: routes || [] }) }),
|
|
1860
|
+
config.i18n && currentLocale && allRoutes && /* @__PURE__ */ jsx25(
|
|
1782
1861
|
LanguageSwitcher,
|
|
1783
1862
|
{
|
|
1784
1863
|
i18n: config.i18n,
|
|
@@ -1786,12 +1865,12 @@ function Navbar({
|
|
|
1786
1865
|
allRoutes
|
|
1787
1866
|
}
|
|
1788
1867
|
),
|
|
1789
|
-
/* @__PURE__ */
|
|
1790
|
-
config.themeConfig?.githubRepo && /* @__PURE__ */
|
|
1791
|
-
socialLinks.length > 0 && /* @__PURE__ */
|
|
1792
|
-
/* @__PURE__ */
|
|
1868
|
+
/* @__PURE__ */ jsx25(ThemeToggle, {}),
|
|
1869
|
+
config.themeConfig?.githubRepo && /* @__PURE__ */ jsx25(GithubStars, { repo: config.themeConfig.githubRepo }),
|
|
1870
|
+
socialLinks.length > 0 && /* @__PURE__ */ jsx25("div", { className: "navbar-divider" }),
|
|
1871
|
+
/* @__PURE__ */ jsx25("div", { className: "navbar-icons", children: socialLinks.map((link, i) => {
|
|
1793
1872
|
const IconComp = ICON_MAP[link.icon.toLowerCase()];
|
|
1794
|
-
return /* @__PURE__ */
|
|
1873
|
+
return /* @__PURE__ */ jsx25(
|
|
1795
1874
|
"a",
|
|
1796
1875
|
{
|
|
1797
1876
|
href: link.link,
|
|
@@ -1799,7 +1878,7 @@ function Navbar({
|
|
|
1799
1878
|
rel: "noopener noreferrer",
|
|
1800
1879
|
className: "navbar-icon-btn",
|
|
1801
1880
|
"aria-label": link.icon,
|
|
1802
|
-
children: IconComp ? /* @__PURE__ */
|
|
1881
|
+
children: IconComp ? /* @__PURE__ */ jsx25(IconComp, {}) : /* @__PURE__ */ jsx25("span", { children: link.icon })
|
|
1803
1882
|
},
|
|
1804
1883
|
i
|
|
1805
1884
|
);
|
|
@@ -1808,7 +1887,7 @@ function Navbar({
|
|
|
1808
1887
|
]
|
|
1809
1888
|
}
|
|
1810
1889
|
),
|
|
1811
|
-
hasTabs && config.themeConfig?.tabs && /* @__PURE__ */
|
|
1890
|
+
hasTabs && config.themeConfig?.tabs && /* @__PURE__ */ jsx25(
|
|
1812
1891
|
Tabs,
|
|
1813
1892
|
{
|
|
1814
1893
|
tabs: config.themeConfig.tabs,
|