boltdocs 1.10.1 → 1.10.2
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-MEWGAONO.mjs → SearchDialog-AGVF6JBO.mjs} +1 -1
- package/dist/{SearchDialog-BEVZQ74P.css → SearchDialog-YPDOM7Q6.css} +196 -28
- package/dist/{chunk-OZLYRXAD.mjs → chunk-TKLQWU7H.mjs} +177 -171
- package/dist/client/index.css +196 -28
- package/dist/client/index.d.mts +3 -10
- package/dist/client/index.d.ts +3 -10
- package/dist/client/index.js +377 -341
- package/dist/client/index.mjs +91 -52
- package/dist/client/ssr.css +196 -28
- package/dist/client/ssr.js +190 -192
- package/dist/client/ssr.mjs +1 -1
- package/package.json +1 -1
- package/src/client/index.ts +0 -1
- package/src/client/theme/components/CodeBlock/CodeBlock.tsx +22 -1
- package/src/client/theme/components/Playground/Playground.tsx +104 -48
- package/src/client/theme/components/Playground/playground.css +88 -18
- package/src/client/theme/styles/markdown.css +53 -0
- package/src/client/theme/styles/variables.css +0 -12
- package/src/client/theme/styles.css +1 -0
- package/src/client/theme/ui/CopyMarkdown/copy-markdown.css +0 -2
- package/src/client/theme/ui/ErrorBoundary/ErrorBoundary.tsx +19 -15
- package/src/client/theme/ui/ErrorBoundary/error-boundary.css +55 -0
- package/src/client/theme/ui/Layout/Layout.tsx +5 -10
- package/src/client/theme/ui/Layout/base.css +2 -1
- package/src/client/theme/ui/Layout/responsive.css +11 -0
- package/src/client/theme/ui/BackgroundGradient/BackgroundGradient.tsx +0 -10
- package/src/client/theme/ui/BackgroundGradient/index.ts +0 -1
|
@@ -326,11 +326,11 @@ function GithubStars({ repo }) {
|
|
|
326
326
|
}
|
|
327
327
|
|
|
328
328
|
// src/client/theme/ui/Navbar/Tabs.tsx
|
|
329
|
-
import { useEffect as useEffect11, useRef as useRef7, useState as
|
|
329
|
+
import { useEffect as useEffect11, useRef as useRef7, useState as useState12 } 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 React10 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 React9, { useEffect as useEffect9, useState as useState10 } 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 React7 from "react";
|
|
392
392
|
import { useLocation as useLocation7 } from "react-router-dom";
|
|
393
393
|
import { ChevronLeft, ChevronRight as ChevronRight3 } from "lucide-react";
|
|
394
394
|
|
|
@@ -839,18 +839,9 @@ function Breadcrumbs({ routes, config }) {
|
|
|
839
839
|
] }) });
|
|
840
840
|
}
|
|
841
841
|
|
|
842
|
-
// src/client/theme/ui/BackgroundGradient/BackgroundGradient.tsx
|
|
843
|
-
import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
844
|
-
function BackgroundGradient() {
|
|
845
|
-
return /* @__PURE__ */ jsxs8("div", { className: "boltdocs-background-glow", children: [
|
|
846
|
-
/* @__PURE__ */ jsx13("div", { className: "glow-shape glow-1" }),
|
|
847
|
-
/* @__PURE__ */ jsx13("div", { className: "glow-shape glow-2" })
|
|
848
|
-
] });
|
|
849
|
-
}
|
|
850
|
-
|
|
851
842
|
// src/client/theme/ui/ProgressBar/ProgressBar.tsx
|
|
852
843
|
import { useEffect as useEffect7, useState as useState7 } from "react";
|
|
853
|
-
import { jsx as
|
|
844
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
854
845
|
function ProgressBar() {
|
|
855
846
|
const [progress, setProgress] = useState7(0);
|
|
856
847
|
useEffect7(() => {
|
|
@@ -884,7 +875,7 @@ function ProgressBar() {
|
|
|
884
875
|
if (timer) clearInterval(timer);
|
|
885
876
|
};
|
|
886
877
|
}, []);
|
|
887
|
-
return /* @__PURE__ */
|
|
878
|
+
return /* @__PURE__ */ jsx13("div", { className: "boltdocs-progress-container", children: /* @__PURE__ */ jsx13(
|
|
888
879
|
"div",
|
|
889
880
|
{
|
|
890
881
|
className: "boltdocs-progress-bar",
|
|
@@ -895,7 +886,7 @@ function ProgressBar() {
|
|
|
895
886
|
|
|
896
887
|
// src/client/theme/ui/ErrorBoundary/ErrorBoundary.tsx
|
|
897
888
|
import { Component } from "react";
|
|
898
|
-
import { jsx as
|
|
889
|
+
import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
899
890
|
var ErrorBoundary = class extends Component {
|
|
900
891
|
state = {
|
|
901
892
|
hasError: false
|
|
@@ -908,10 +899,10 @@ var ErrorBoundary = class extends Component {
|
|
|
908
899
|
}
|
|
909
900
|
render() {
|
|
910
901
|
if (this.state.hasError) {
|
|
911
|
-
return this.props.fallback || /* @__PURE__ */
|
|
912
|
-
/* @__PURE__ */
|
|
913
|
-
/* @__PURE__ */
|
|
914
|
-
/* @__PURE__ */
|
|
902
|
+
return this.props.fallback || /* @__PURE__ */ jsxs8("div", { className: "boltdocs-error-boundary", children: [
|
|
903
|
+
/* @__PURE__ */ jsx14("div", { className: "boltdocs-error-title", children: "Something went wrong" }),
|
|
904
|
+
/* @__PURE__ */ jsx14("p", { className: "boltdocs-error-message", children: this.state.error?.message || "An unexpected error occurred while rendering this page." }),
|
|
905
|
+
/* @__PURE__ */ jsx14(
|
|
915
906
|
"button",
|
|
916
907
|
{
|
|
917
908
|
className: "boltdocs-error-retry",
|
|
@@ -928,7 +919,7 @@ var ErrorBoundary = class extends Component {
|
|
|
928
919
|
// src/client/theme/ui/CopyMarkdown/CopyMarkdown.tsx
|
|
929
920
|
import { useState as useState8, useRef as useRef4, useEffect as useEffect8 } from "react";
|
|
930
921
|
import { Copy, ChevronDown as ChevronDown3, Check, ExternalLink } from "lucide-react";
|
|
931
|
-
import { jsx as
|
|
922
|
+
import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
932
923
|
function CopyMarkdown({ content, config }) {
|
|
933
924
|
const [isOpen, setIsOpen] = useState8(false);
|
|
934
925
|
const [copied, setCopied] = useState8(false);
|
|
@@ -957,38 +948,38 @@ function CopyMarkdown({ content, config }) {
|
|
|
957
948
|
window.open(url, "_blank");
|
|
958
949
|
setIsOpen(false);
|
|
959
950
|
};
|
|
960
|
-
return /* @__PURE__ */
|
|
961
|
-
/* @__PURE__ */
|
|
962
|
-
/* @__PURE__ */
|
|
951
|
+
return /* @__PURE__ */ jsxs9("div", { className: "boltdocs-copy-markdown", ref: dropdownRef, children: [
|
|
952
|
+
/* @__PURE__ */ jsxs9("div", { className: "copy-btn-group", children: [
|
|
953
|
+
/* @__PURE__ */ jsxs9(
|
|
963
954
|
"button",
|
|
964
955
|
{
|
|
965
956
|
className: "copy-btn",
|
|
966
957
|
onClick: handleCopy,
|
|
967
958
|
"aria-label": "Copy Markdown",
|
|
968
959
|
children: [
|
|
969
|
-
copied ? /* @__PURE__ */
|
|
970
|
-
/* @__PURE__ */
|
|
960
|
+
copied ? /* @__PURE__ */ jsx15(Check, { size: 16 }) : /* @__PURE__ */ jsx15(Copy, { size: 16 }),
|
|
961
|
+
/* @__PURE__ */ jsx15("span", { className: "copy-label", children: copied ? "Copied!" : buttonText })
|
|
971
962
|
]
|
|
972
963
|
}
|
|
973
964
|
),
|
|
974
|
-
/* @__PURE__ */
|
|
965
|
+
/* @__PURE__ */ jsx15(
|
|
975
966
|
"button",
|
|
976
967
|
{
|
|
977
968
|
className: `copy-dropdown-toggle ${isOpen ? "is-active" : ""}`,
|
|
978
969
|
onClick: () => setIsOpen(!isOpen),
|
|
979
970
|
"aria-label": "More options",
|
|
980
971
|
"aria-expanded": isOpen,
|
|
981
|
-
children: /* @__PURE__ */
|
|
972
|
+
children: /* @__PURE__ */ jsx15(ChevronDown3, { size: 14, className: "arrow-icon" })
|
|
982
973
|
}
|
|
983
974
|
)
|
|
984
975
|
] }),
|
|
985
|
-
isOpen && /* @__PURE__ */
|
|
986
|
-
/* @__PURE__ */
|
|
987
|
-
/* @__PURE__ */
|
|
976
|
+
isOpen && /* @__PURE__ */ jsxs9("div", { className: "copy-dropdown", children: [
|
|
977
|
+
/* @__PURE__ */ jsxs9("button", { className: "copy-option", onClick: handleCopy, children: [
|
|
978
|
+
/* @__PURE__ */ jsx15(Copy, { size: 14 }),
|
|
988
979
|
"Copy Markdown"
|
|
989
980
|
] }),
|
|
990
|
-
/* @__PURE__ */
|
|
991
|
-
/* @__PURE__ */
|
|
981
|
+
/* @__PURE__ */ jsxs9("button", { className: "copy-option", onClick: handleOpenRaw, children: [
|
|
982
|
+
/* @__PURE__ */ jsx15(ExternalLink, { size: 14 }),
|
|
992
983
|
"View as Markdown"
|
|
993
984
|
] })
|
|
994
985
|
] })
|
|
@@ -996,7 +987,7 @@ function CopyMarkdown({ content, config }) {
|
|
|
996
987
|
}
|
|
997
988
|
|
|
998
989
|
// src/client/theme/ui/Layout/Layout.tsx
|
|
999
|
-
import { jsx as
|
|
990
|
+
import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1000
991
|
function ThemeLayout({
|
|
1001
992
|
config,
|
|
1002
993
|
routes,
|
|
@@ -1028,14 +1019,13 @@ function ThemeLayout({
|
|
|
1028
1019
|
const prevPage = localIndex > 0 ? filteredRoutes[localIndex - 1] : null;
|
|
1029
1020
|
const nextPage = localIndex >= 0 && localIndex < filteredRoutes.length - 1 ? filteredRoutes[localIndex + 1] : null;
|
|
1030
1021
|
const { preload } = usePreload();
|
|
1031
|
-
|
|
1022
|
+
React7.useEffect(() => {
|
|
1032
1023
|
if (prevPage?.path) preload(prevPage.path);
|
|
1033
1024
|
if (nextPage?.path) preload(nextPage.path);
|
|
1034
1025
|
}, [prevPage, nextPage, preload]);
|
|
1035
|
-
return /* @__PURE__ */
|
|
1036
|
-
/* @__PURE__ */
|
|
1037
|
-
|
|
1038
|
-
head !== void 0 ? head : /* @__PURE__ */ jsx17(
|
|
1026
|
+
return /* @__PURE__ */ jsxs10("div", { className: `boltdocs-layout ${className}`, style, children: [
|
|
1027
|
+
/* @__PURE__ */ jsx16(ProgressBar, {}),
|
|
1028
|
+
head !== void 0 ? head : /* @__PURE__ */ jsx16(
|
|
1039
1029
|
Head,
|
|
1040
1030
|
{
|
|
1041
1031
|
siteTitle,
|
|
@@ -1043,7 +1033,7 @@ function ThemeLayout({
|
|
|
1043
1033
|
routes
|
|
1044
1034
|
}
|
|
1045
1035
|
),
|
|
1046
|
-
navbar !== void 0 ? navbar : /* @__PURE__ */
|
|
1036
|
+
navbar !== void 0 ? navbar : /* @__PURE__ */ jsx16(
|
|
1047
1037
|
Navbar,
|
|
1048
1038
|
{
|
|
1049
1039
|
config,
|
|
@@ -1053,52 +1043,52 @@ function ThemeLayout({
|
|
|
1053
1043
|
currentVersion
|
|
1054
1044
|
}
|
|
1055
1045
|
),
|
|
1056
|
-
/* @__PURE__ */
|
|
1057
|
-
sidebar !== void 0 ? sidebar : /* @__PURE__ */
|
|
1058
|
-
/* @__PURE__ */
|
|
1059
|
-
breadcrumbs !== void 0 ? breadcrumbs : /* @__PURE__ */
|
|
1060
|
-
/* @__PURE__ */
|
|
1061
|
-
/* @__PURE__ */
|
|
1046
|
+
/* @__PURE__ */ jsxs10("div", { className: "boltdocs-main-container", children: [
|
|
1047
|
+
sidebar !== void 0 ? sidebar : /* @__PURE__ */ jsx16(Sidebar, { routes: filteredRoutes, config }),
|
|
1048
|
+
/* @__PURE__ */ jsxs10("main", { className: "boltdocs-content", children: [
|
|
1049
|
+
breadcrumbs !== void 0 ? breadcrumbs : /* @__PURE__ */ jsx16(Breadcrumbs, { routes: filteredRoutes, config }),
|
|
1050
|
+
/* @__PURE__ */ jsxs10("div", { className: "boltdocs-page", children: [
|
|
1051
|
+
/* @__PURE__ */ jsx16("div", { className: "boltdocs-page-header", children: /* @__PURE__ */ jsx16(
|
|
1062
1052
|
CopyMarkdown,
|
|
1063
1053
|
{
|
|
1064
1054
|
content: routes[currentIndex]?._rawContent,
|
|
1065
1055
|
config: config.themeConfig?.copyMarkdown
|
|
1066
1056
|
}
|
|
1067
1057
|
) }),
|
|
1068
|
-
/* @__PURE__ */
|
|
1058
|
+
/* @__PURE__ */ jsx16(ErrorBoundary, { children })
|
|
1069
1059
|
] }),
|
|
1070
|
-
(prevPage || nextPage) && /* @__PURE__ */
|
|
1071
|
-
prevPage ? /* @__PURE__ */
|
|
1060
|
+
(prevPage || nextPage) && /* @__PURE__ */ jsxs10("nav", { className: "page-nav", "aria-label": "Pagination", children: [
|
|
1061
|
+
prevPage ? /* @__PURE__ */ jsxs10(
|
|
1072
1062
|
Link,
|
|
1073
1063
|
{
|
|
1074
1064
|
to: prevPage.path || "/",
|
|
1075
1065
|
className: "page-nav-link page-nav-link--prev",
|
|
1076
1066
|
children: [
|
|
1077
|
-
/* @__PURE__ */
|
|
1078
|
-
/* @__PURE__ */
|
|
1079
|
-
/* @__PURE__ */
|
|
1067
|
+
/* @__PURE__ */ jsxs10("div", { className: "page-nav-info", children: [
|
|
1068
|
+
/* @__PURE__ */ jsx16("span", { className: "page-nav-label", children: "Previous" }),
|
|
1069
|
+
/* @__PURE__ */ jsx16("span", { className: "page-nav-title", children: prevPage.title })
|
|
1080
1070
|
] }),
|
|
1081
|
-
/* @__PURE__ */
|
|
1071
|
+
/* @__PURE__ */ jsx16(ChevronLeft, { className: "page-nav-arrow", size: 16 })
|
|
1082
1072
|
]
|
|
1083
1073
|
}
|
|
1084
|
-
) : /* @__PURE__ */
|
|
1085
|
-
nextPage ? /* @__PURE__ */
|
|
1074
|
+
) : /* @__PURE__ */ jsx16("span", {}),
|
|
1075
|
+
nextPage ? /* @__PURE__ */ jsxs10(
|
|
1086
1076
|
Link,
|
|
1087
1077
|
{
|
|
1088
1078
|
to: nextPage.path || "/",
|
|
1089
1079
|
className: "page-nav-link page-nav-link--next",
|
|
1090
1080
|
children: [
|
|
1091
|
-
/* @__PURE__ */
|
|
1092
|
-
/* @__PURE__ */
|
|
1093
|
-
/* @__PURE__ */
|
|
1081
|
+
/* @__PURE__ */ jsxs10("div", { className: "page-nav-info", children: [
|
|
1082
|
+
/* @__PURE__ */ jsx16("span", { className: "page-nav-label", children: "Next" }),
|
|
1083
|
+
/* @__PURE__ */ jsx16("span", { className: "page-nav-title", children: nextPage.title })
|
|
1094
1084
|
] }),
|
|
1095
|
-
/* @__PURE__ */
|
|
1085
|
+
/* @__PURE__ */ jsx16(ChevronRight3, { className: "page-nav-arrow", size: 16 })
|
|
1096
1086
|
]
|
|
1097
1087
|
}
|
|
1098
|
-
) : /* @__PURE__ */
|
|
1088
|
+
) : /* @__PURE__ */ jsx16("span", {})
|
|
1099
1089
|
] })
|
|
1100
1090
|
] }),
|
|
1101
|
-
toc !== void 0 ? toc : /* @__PURE__ */
|
|
1091
|
+
toc !== void 0 ? toc : /* @__PURE__ */ jsx16(
|
|
1102
1092
|
OnThisPage,
|
|
1103
1093
|
{
|
|
1104
1094
|
headings: routes[currentIndex]?.headings,
|
|
@@ -1113,25 +1103,25 @@ function ThemeLayout({
|
|
|
1113
1103
|
|
|
1114
1104
|
// src/client/theme/ui/NotFound/NotFound.tsx
|
|
1115
1105
|
import { ArrowLeft } from "lucide-react";
|
|
1116
|
-
import { jsx as
|
|
1106
|
+
import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1117
1107
|
function NotFound() {
|
|
1118
|
-
return /* @__PURE__ */
|
|
1119
|
-
/* @__PURE__ */
|
|
1120
|
-
/* @__PURE__ */
|
|
1121
|
-
/* @__PURE__ */
|
|
1122
|
-
/* @__PURE__ */
|
|
1123
|
-
/* @__PURE__ */
|
|
1108
|
+
return /* @__PURE__ */ jsx17("div", { className: "boltdocs-not-found", children: /* @__PURE__ */ jsxs11("div", { className: "not-found-content", children: [
|
|
1109
|
+
/* @__PURE__ */ jsx17("span", { className: "not-found-code", children: "404" }),
|
|
1110
|
+
/* @__PURE__ */ jsx17("h1", { className: "not-found-title", children: "Page Not Found" }),
|
|
1111
|
+
/* @__PURE__ */ jsx17("p", { className: "not-found-text", children: "The page you're looking for doesn't exist or has been moved." }),
|
|
1112
|
+
/* @__PURE__ */ jsxs11(Link, { to: "/", className: "not-found-link", children: [
|
|
1113
|
+
/* @__PURE__ */ jsx17(ArrowLeft, { size: 16 }),
|
|
1124
1114
|
" Go to Home"
|
|
1125
1115
|
] })
|
|
1126
1116
|
] }) });
|
|
1127
1117
|
}
|
|
1128
1118
|
|
|
1129
1119
|
// src/client/theme/ui/Loading/Loading.tsx
|
|
1130
|
-
import { jsx as
|
|
1120
|
+
import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1131
1121
|
function Loading() {
|
|
1132
|
-
return /* @__PURE__ */
|
|
1133
|
-
/* @__PURE__ */
|
|
1134
|
-
/* @__PURE__ */
|
|
1122
|
+
return /* @__PURE__ */ jsxs12("div", { className: "boltdocs-loading", children: [
|
|
1123
|
+
/* @__PURE__ */ jsx18("div", { className: "loading-spinner" }),
|
|
1124
|
+
/* @__PURE__ */ jsx18("p", { className: "loading-text", children: "Loading..." })
|
|
1135
1125
|
] });
|
|
1136
1126
|
}
|
|
1137
1127
|
|
|
@@ -1147,11 +1137,13 @@ import {
|
|
|
1147
1137
|
import { Link as LucideLink } from "lucide-react";
|
|
1148
1138
|
|
|
1149
1139
|
// src/client/theme/components/CodeBlock/CodeBlock.tsx
|
|
1150
|
-
import { useState as
|
|
1140
|
+
import React8, { useState as useState9, useRef as useRef5, useCallback as useCallback3 } from "react";
|
|
1151
1141
|
import { Copy as Copy2, Check as Check2 } from "lucide-react";
|
|
1152
|
-
import { jsx as
|
|
1142
|
+
import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1153
1143
|
function CodeBlock({ children, ...props }) {
|
|
1154
|
-
const [copied, setCopied] =
|
|
1144
|
+
const [copied, setCopied] = useState9(false);
|
|
1145
|
+
const [isExpanded, setIsExpanded] = useState9(false);
|
|
1146
|
+
const [isExpandable, setIsExpandable] = useState9(false);
|
|
1155
1147
|
const preRef = useRef5(null);
|
|
1156
1148
|
const handleCopy = useCallback3(async () => {
|
|
1157
1149
|
const code = preRef.current?.textContent || "";
|
|
@@ -1159,22 +1151,37 @@ function CodeBlock({ children, ...props }) {
|
|
|
1159
1151
|
setCopied(true);
|
|
1160
1152
|
setTimeout(() => setCopied(false), 2e3);
|
|
1161
1153
|
}, []);
|
|
1162
|
-
|
|
1163
|
-
|
|
1154
|
+
React8.useEffect(() => {
|
|
1155
|
+
if (preRef.current) {
|
|
1156
|
+
const codeLength = preRef.current.textContent?.length || 0;
|
|
1157
|
+
setIsExpandable(codeLength > 500);
|
|
1158
|
+
}
|
|
1159
|
+
}, [children]);
|
|
1160
|
+
const shouldTruncate = isExpandable && !isExpanded;
|
|
1161
|
+
return /* @__PURE__ */ jsxs13("div", { className: `code-block-wrapper ${shouldTruncate ? "is-truncated" : ""}`, children: [
|
|
1162
|
+
/* @__PURE__ */ jsx19(
|
|
1164
1163
|
"button",
|
|
1165
1164
|
{
|
|
1166
1165
|
className: `code-block-copy ${copied ? "copied" : ""}`,
|
|
1167
1166
|
onClick: handleCopy,
|
|
1168
1167
|
"aria-label": "Copy code",
|
|
1169
|
-
children: copied ? /* @__PURE__ */
|
|
1168
|
+
children: copied ? /* @__PURE__ */ jsx19(Check2, { size: 16 }) : /* @__PURE__ */ jsx19(Copy2, { size: 16 })
|
|
1170
1169
|
}
|
|
1171
1170
|
),
|
|
1172
|
-
/* @__PURE__ */
|
|
1171
|
+
/* @__PURE__ */ jsx19("pre", { ref: preRef, ...props, children }),
|
|
1172
|
+
isExpandable && /* @__PURE__ */ jsx19("div", { className: "code-block-expand-wrapper", children: /* @__PURE__ */ jsx19(
|
|
1173
|
+
"button",
|
|
1174
|
+
{
|
|
1175
|
+
className: "code-block-expand-btn",
|
|
1176
|
+
onClick: () => setIsExpanded(!isExpanded),
|
|
1177
|
+
children: isExpanded ? "Show less" : "Expand code"
|
|
1178
|
+
}
|
|
1179
|
+
) })
|
|
1173
1180
|
] });
|
|
1174
1181
|
}
|
|
1175
1182
|
|
|
1176
1183
|
// src/client/app/index.tsx
|
|
1177
|
-
import { jsx as
|
|
1184
|
+
import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1178
1185
|
var ConfigContext = createContext2(null);
|
|
1179
1186
|
function useConfig() {
|
|
1180
1187
|
return useContext2(ConfigContext);
|
|
@@ -1193,21 +1200,21 @@ var Heading = ({
|
|
|
1193
1200
|
children
|
|
1194
1201
|
}) => {
|
|
1195
1202
|
const Tag = `h${level}`;
|
|
1196
|
-
return /* @__PURE__ */
|
|
1203
|
+
return /* @__PURE__ */ jsxs14(Tag, { id, className: "boltdocs-heading", children: [
|
|
1197
1204
|
children,
|
|
1198
|
-
id && /* @__PURE__ */
|
|
1205
|
+
id && /* @__PURE__ */ jsx20("a", { href: `#${id}`, className: "header-anchor", "aria-label": "Anchor", children: /* @__PURE__ */ jsx20(LucideLink, { size: 16 }) })
|
|
1199
1206
|
] });
|
|
1200
1207
|
};
|
|
1201
1208
|
var mdxComponents = {
|
|
1202
|
-
h1: (props) => /* @__PURE__ */
|
|
1203
|
-
h2: (props) => /* @__PURE__ */
|
|
1204
|
-
h3: (props) => /* @__PURE__ */
|
|
1205
|
-
h4: (props) => /* @__PURE__ */
|
|
1206
|
-
h5: (props) => /* @__PURE__ */
|
|
1207
|
-
h6: (props) => /* @__PURE__ */
|
|
1208
|
-
pre: (props) => /* @__PURE__ */
|
|
1209
|
-
video: (props) => /* @__PURE__ */
|
|
1210
|
-
PackageManagerTabs: (props) => /* @__PURE__ */
|
|
1209
|
+
h1: (props) => /* @__PURE__ */ jsx20(Heading, { level: 1, ...props }),
|
|
1210
|
+
h2: (props) => /* @__PURE__ */ jsx20(Heading, { level: 2, ...props }),
|
|
1211
|
+
h3: (props) => /* @__PURE__ */ jsx20(Heading, { level: 3, ...props }),
|
|
1212
|
+
h4: (props) => /* @__PURE__ */ jsx20(Heading, { level: 4, ...props }),
|
|
1213
|
+
h5: (props) => /* @__PURE__ */ jsx20(Heading, { level: 5, ...props }),
|
|
1214
|
+
h6: (props) => /* @__PURE__ */ jsx20(Heading, { level: 6, ...props }),
|
|
1215
|
+
pre: (props) => /* @__PURE__ */ jsx20(CodeBlock, { ...props, children: props.children }),
|
|
1216
|
+
video: (props) => /* @__PURE__ */ jsx20(Suspense, { fallback: /* @__PURE__ */ jsx20("div", { className: "video-skeleton" }), children: /* @__PURE__ */ jsx20(Video, { ...props }) }),
|
|
1217
|
+
PackageManagerTabs: (props) => /* @__PURE__ */ jsx20(Suspense, { fallback: /* @__PURE__ */ jsx20("div", { className: "pkg-tabs-skeleton" }), children: /* @__PURE__ */ jsx20(PackageManagerTabs, { ...props }) })
|
|
1211
1218
|
};
|
|
1212
1219
|
function AppShell({
|
|
1213
1220
|
initialRoutes,
|
|
@@ -1218,8 +1225,8 @@ function AppShell({
|
|
|
1218
1225
|
homePage: HomePage,
|
|
1219
1226
|
components: customComponents = {}
|
|
1220
1227
|
}) {
|
|
1221
|
-
const [routesInfo, setRoutesInfo] =
|
|
1222
|
-
const [config] =
|
|
1228
|
+
const [routesInfo, setRoutesInfo] = useState10(initialRoutes);
|
|
1229
|
+
const [config] = useState10(initialConfig);
|
|
1223
1230
|
const resolveRoutes = (infos) => {
|
|
1224
1231
|
return infos.filter(
|
|
1225
1232
|
(route) => !(HomePage && (route.path === "/" || route.path === ""))
|
|
@@ -1230,15 +1237,15 @@ function AppShell({
|
|
|
1230
1237
|
const loader = loaderKey ? modules[loaderKey] : null;
|
|
1231
1238
|
return {
|
|
1232
1239
|
...route,
|
|
1233
|
-
Component:
|
|
1240
|
+
Component: React9.lazy(() => {
|
|
1234
1241
|
if (!loader)
|
|
1235
|
-
return Promise.resolve({ default: () => /* @__PURE__ */
|
|
1242
|
+
return Promise.resolve({ default: () => /* @__PURE__ */ jsx20(NotFound, {}) });
|
|
1236
1243
|
return loader();
|
|
1237
1244
|
})
|
|
1238
1245
|
};
|
|
1239
1246
|
});
|
|
1240
1247
|
};
|
|
1241
|
-
const [resolvedRoutes, setResolvedRoutes] =
|
|
1248
|
+
const [resolvedRoutes, setResolvedRoutes] = useState10(
|
|
1242
1249
|
() => resolveRoutes(initialRoutes)
|
|
1243
1250
|
);
|
|
1244
1251
|
useEffect9(() => {
|
|
@@ -1251,14 +1258,14 @@ function AppShell({
|
|
|
1251
1258
|
useEffect9(() => {
|
|
1252
1259
|
setResolvedRoutes(resolveRoutes(routesInfo));
|
|
1253
1260
|
}, [routesInfo, modules, docsDirName]);
|
|
1254
|
-
return /* @__PURE__ */
|
|
1255
|
-
/* @__PURE__ */
|
|
1256
|
-
/* @__PURE__ */
|
|
1257
|
-
HomePage && /* @__PURE__ */
|
|
1261
|
+
return /* @__PURE__ */ jsx20(ConfigContext.Provider, { value: config, children: /* @__PURE__ */ jsxs14(PreloadProvider, { routes: routesInfo, modules, children: [
|
|
1262
|
+
/* @__PURE__ */ jsx20(ScrollHandler, {}),
|
|
1263
|
+
/* @__PURE__ */ jsxs14(Routes, { children: [
|
|
1264
|
+
HomePage && /* @__PURE__ */ jsx20(
|
|
1258
1265
|
Route,
|
|
1259
1266
|
{
|
|
1260
1267
|
path: "/",
|
|
1261
|
-
element: /* @__PURE__ */
|
|
1268
|
+
element: /* @__PURE__ */ jsx20(
|
|
1262
1269
|
ThemeLayout,
|
|
1263
1270
|
{
|
|
1264
1271
|
config,
|
|
@@ -1267,20 +1274,20 @@ function AppShell({
|
|
|
1267
1274
|
toc: null,
|
|
1268
1275
|
breadcrumbs: null,
|
|
1269
1276
|
...config.themeConfig?.layoutProps,
|
|
1270
|
-
children: /* @__PURE__ */
|
|
1277
|
+
children: /* @__PURE__ */ jsx20(HomePage, {})
|
|
1271
1278
|
}
|
|
1272
1279
|
)
|
|
1273
1280
|
}
|
|
1274
1281
|
),
|
|
1275
|
-
/* @__PURE__ */
|
|
1282
|
+
/* @__PURE__ */ jsx20(
|
|
1276
1283
|
Route,
|
|
1277
1284
|
{
|
|
1278
|
-
element: /* @__PURE__ */
|
|
1279
|
-
children: resolvedRoutes.map((route) => /* @__PURE__ */
|
|
1285
|
+
element: /* @__PURE__ */ jsx20(DocsLayout, { config, routes: routesInfo }),
|
|
1286
|
+
children: resolvedRoutes.map((route) => /* @__PURE__ */ jsx20(
|
|
1280
1287
|
Route,
|
|
1281
1288
|
{
|
|
1282
1289
|
path: route.path === "" ? "/" : route.path,
|
|
1283
|
-
element: /* @__PURE__ */
|
|
1290
|
+
element: /* @__PURE__ */ jsx20(React9.Suspense, { fallback: /* @__PURE__ */ jsx20(Loading, {}), children: /* @__PURE__ */ jsx20(
|
|
1284
1291
|
MdxPage,
|
|
1285
1292
|
{
|
|
1286
1293
|
Component: route.Component,
|
|
@@ -1293,17 +1300,17 @@ function AppShell({
|
|
|
1293
1300
|
},
|
|
1294
1301
|
"docs-layout"
|
|
1295
1302
|
),
|
|
1296
|
-
/* @__PURE__ */
|
|
1303
|
+
/* @__PURE__ */ jsx20(
|
|
1297
1304
|
Route,
|
|
1298
1305
|
{
|
|
1299
1306
|
path: "*",
|
|
1300
|
-
element: /* @__PURE__ */
|
|
1307
|
+
element: /* @__PURE__ */ jsx20(
|
|
1301
1308
|
ThemeLayout,
|
|
1302
1309
|
{
|
|
1303
1310
|
config,
|
|
1304
1311
|
routes: routesInfo,
|
|
1305
1312
|
...config.themeConfig?.layoutProps,
|
|
1306
|
-
children: /* @__PURE__ */
|
|
1313
|
+
children: /* @__PURE__ */ jsx20(NotFound, {})
|
|
1307
1314
|
}
|
|
1308
1315
|
)
|
|
1309
1316
|
}
|
|
@@ -1340,13 +1347,13 @@ function DocsLayout({
|
|
|
1340
1347
|
config,
|
|
1341
1348
|
routes
|
|
1342
1349
|
}) {
|
|
1343
|
-
return /* @__PURE__ */
|
|
1350
|
+
return /* @__PURE__ */ jsx20(
|
|
1344
1351
|
ThemeLayout,
|
|
1345
1352
|
{
|
|
1346
1353
|
config,
|
|
1347
1354
|
routes,
|
|
1348
1355
|
...config.themeConfig?.layoutProps,
|
|
1349
|
-
children: /* @__PURE__ */
|
|
1356
|
+
children: /* @__PURE__ */ jsx20(Outlet, {})
|
|
1350
1357
|
}
|
|
1351
1358
|
);
|
|
1352
1359
|
}
|
|
@@ -1355,7 +1362,7 @@ function MdxPage({
|
|
|
1355
1362
|
customComponents = {}
|
|
1356
1363
|
}) {
|
|
1357
1364
|
const allComponents = { ...mdxComponents, ...customComponents };
|
|
1358
|
-
return /* @__PURE__ */
|
|
1365
|
+
return /* @__PURE__ */ jsx20(MDXProvider, { components: allComponents, children: /* @__PURE__ */ jsx20(Component2, {}) });
|
|
1359
1366
|
}
|
|
1360
1367
|
function createBoltdocsApp(options) {
|
|
1361
1368
|
const { target, routes, docsDirName, config, modules, hot, homePage } = options;
|
|
@@ -1365,7 +1372,7 @@ function createBoltdocsApp(options) {
|
|
|
1365
1372
|
`[boltdocs] Mount target "${target}" not found in document.`
|
|
1366
1373
|
);
|
|
1367
1374
|
}
|
|
1368
|
-
const app = /* @__PURE__ */
|
|
1375
|
+
const app = /* @__PURE__ */ jsx20(React9.StrictMode, { children: /* @__PURE__ */ jsx20(BrowserRouter, { children: /* @__PURE__ */ jsx20(
|
|
1369
1376
|
AppShell,
|
|
1370
1377
|
{
|
|
1371
1378
|
initialRoutes: routes,
|
|
@@ -1382,9 +1389,9 @@ function createBoltdocsApp(options) {
|
|
|
1382
1389
|
}
|
|
1383
1390
|
|
|
1384
1391
|
// src/client/theme/ui/Link/LinkPreview.tsx
|
|
1385
|
-
import { useEffect as useEffect10, useState as
|
|
1392
|
+
import { useEffect as useEffect10, useState as useState11, useRef as useRef6 } from "react";
|
|
1386
1393
|
import { createPortal } from "react-dom";
|
|
1387
|
-
import { jsx as
|
|
1394
|
+
import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1388
1395
|
function LinkPreview({
|
|
1389
1396
|
isVisible,
|
|
1390
1397
|
title,
|
|
@@ -1393,7 +1400,7 @@ function LinkPreview({
|
|
|
1393
1400
|
y
|
|
1394
1401
|
}) {
|
|
1395
1402
|
const ref = useRef6(null);
|
|
1396
|
-
const [position, setPosition] =
|
|
1403
|
+
const [position, setPosition] = useState11({ top: 0, left: 0 });
|
|
1397
1404
|
useEffect10(() => {
|
|
1398
1405
|
if (ref.current) {
|
|
1399
1406
|
const rect = ref.current.getBoundingClientRect();
|
|
@@ -1410,7 +1417,7 @@ function LinkPreview({
|
|
|
1410
1417
|
}
|
|
1411
1418
|
}, [x, y, isVisible]);
|
|
1412
1419
|
return createPortal(
|
|
1413
|
-
/* @__PURE__ */
|
|
1420
|
+
/* @__PURE__ */ jsx21(
|
|
1414
1421
|
"div",
|
|
1415
1422
|
{
|
|
1416
1423
|
ref,
|
|
@@ -1419,9 +1426,9 @@ function LinkPreview({
|
|
|
1419
1426
|
top: position.top,
|
|
1420
1427
|
left: position.left
|
|
1421
1428
|
},
|
|
1422
|
-
children: /* @__PURE__ */
|
|
1423
|
-
/* @__PURE__ */
|
|
1424
|
-
summary && /* @__PURE__ */
|
|
1429
|
+
children: /* @__PURE__ */ jsxs15("div", { className: "boltdocs-link-preview-content", children: [
|
|
1430
|
+
/* @__PURE__ */ jsx21("span", { className: "boltdocs-link-preview-title", children: title }),
|
|
1431
|
+
summary && /* @__PURE__ */ jsx21("p", { className: "boltdocs-link-preview-summary", children: summary })
|
|
1425
1432
|
] })
|
|
1426
1433
|
}
|
|
1427
1434
|
),
|
|
@@ -1430,7 +1437,7 @@ function LinkPreview({
|
|
|
1430
1437
|
}
|
|
1431
1438
|
|
|
1432
1439
|
// src/client/theme/ui/Link/Link.tsx
|
|
1433
|
-
import { Fragment, jsx as
|
|
1440
|
+
import { Fragment, jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1434
1441
|
function useLocalizedTo(to) {
|
|
1435
1442
|
const location = useLocation9();
|
|
1436
1443
|
const config = useConfig();
|
|
@@ -1486,7 +1493,7 @@ function useLocalizedTo(to) {
|
|
|
1486
1493
|
}
|
|
1487
1494
|
return finalPath === basePath ? basePath : finalPath;
|
|
1488
1495
|
}
|
|
1489
|
-
var Link =
|
|
1496
|
+
var Link = React10.forwardRef(
|
|
1490
1497
|
(props, ref) => {
|
|
1491
1498
|
const {
|
|
1492
1499
|
boltdocsPrefetch = "hover",
|
|
@@ -1504,7 +1511,7 @@ var Link = React11.forwardRef(
|
|
|
1504
1511
|
const config = useConfig();
|
|
1505
1512
|
const navigate = useNavigate3();
|
|
1506
1513
|
const shouldShowPreview = boltdocsPreview && config?.themeConfig?.linkPreview !== false;
|
|
1507
|
-
const [preview, setPreview] =
|
|
1514
|
+
const [preview, setPreview] = React10.useState({ visible: false, x: 0, y: 0, title: "" });
|
|
1508
1515
|
const handleMouseEnter = (e) => {
|
|
1509
1516
|
onMouseEnter?.(e);
|
|
1510
1517
|
if (boltdocsPrefetch === "hover" && typeof localizedTo === "string" && localizedTo.startsWith("/")) {
|
|
@@ -1553,13 +1560,13 @@ var Link = React11.forwardRef(
|
|
|
1553
1560
|
}
|
|
1554
1561
|
if (typeof localizedTo === "string" && !localizedTo.startsWith("http")) {
|
|
1555
1562
|
e.preventDefault();
|
|
1556
|
-
|
|
1563
|
+
React10.startTransition(() => {
|
|
1557
1564
|
navigate(localizedTo);
|
|
1558
1565
|
});
|
|
1559
1566
|
}
|
|
1560
1567
|
};
|
|
1561
|
-
return /* @__PURE__ */
|
|
1562
|
-
/* @__PURE__ */
|
|
1568
|
+
return /* @__PURE__ */ jsxs16(Fragment, { children: [
|
|
1569
|
+
/* @__PURE__ */ jsx22(
|
|
1563
1570
|
RouterLink,
|
|
1564
1571
|
{
|
|
1565
1572
|
ref,
|
|
@@ -1573,7 +1580,7 @@ var Link = React11.forwardRef(
|
|
|
1573
1580
|
...rest
|
|
1574
1581
|
}
|
|
1575
1582
|
),
|
|
1576
|
-
preview.visible && shouldShowPreview && /* @__PURE__ */
|
|
1583
|
+
preview.visible && shouldShowPreview && /* @__PURE__ */ jsx22(
|
|
1577
1584
|
LinkPreview,
|
|
1578
1585
|
{
|
|
1579
1586
|
isVisible: preview.visible,
|
|
@@ -1587,7 +1594,7 @@ var Link = React11.forwardRef(
|
|
|
1587
1594
|
}
|
|
1588
1595
|
);
|
|
1589
1596
|
Link.displayName = "Link";
|
|
1590
|
-
var NavLink =
|
|
1597
|
+
var NavLink = React10.forwardRef(
|
|
1591
1598
|
(props, ref) => {
|
|
1592
1599
|
const {
|
|
1593
1600
|
boltdocsPrefetch = "hover",
|
|
@@ -1605,7 +1612,7 @@ var NavLink = React11.forwardRef(
|
|
|
1605
1612
|
const config = useConfig();
|
|
1606
1613
|
const navigate = useNavigate3();
|
|
1607
1614
|
const shouldShowPreview = boltdocsPreview && config?.themeConfig?.linkPreview !== false;
|
|
1608
|
-
const [preview, setPreview] =
|
|
1615
|
+
const [preview, setPreview] = React10.useState({ visible: false, x: 0, y: 0, title: "" });
|
|
1609
1616
|
const handleMouseEnter = (e) => {
|
|
1610
1617
|
onMouseEnter?.(e);
|
|
1611
1618
|
if (boltdocsPrefetch === "hover" && typeof localizedTo === "string" && localizedTo.startsWith("/")) {
|
|
@@ -1654,13 +1661,13 @@ var NavLink = React11.forwardRef(
|
|
|
1654
1661
|
}
|
|
1655
1662
|
if (typeof localizedTo === "string" && !localizedTo.startsWith("http")) {
|
|
1656
1663
|
e.preventDefault();
|
|
1657
|
-
|
|
1664
|
+
React10.startTransition(() => {
|
|
1658
1665
|
navigate(localizedTo);
|
|
1659
1666
|
});
|
|
1660
1667
|
}
|
|
1661
1668
|
};
|
|
1662
|
-
return /* @__PURE__ */
|
|
1663
|
-
/* @__PURE__ */
|
|
1669
|
+
return /* @__PURE__ */ jsxs16(Fragment, { children: [
|
|
1670
|
+
/* @__PURE__ */ jsx22(
|
|
1664
1671
|
RouterNavLink,
|
|
1665
1672
|
{
|
|
1666
1673
|
ref,
|
|
@@ -1674,7 +1681,7 @@ var NavLink = React11.forwardRef(
|
|
|
1674
1681
|
...rest
|
|
1675
1682
|
}
|
|
1676
1683
|
),
|
|
1677
|
-
preview.visible && shouldShowPreview && /* @__PURE__ */
|
|
1684
|
+
preview.visible && shouldShowPreview && /* @__PURE__ */ jsx22(
|
|
1678
1685
|
LinkPreview,
|
|
1679
1686
|
{
|
|
1680
1687
|
isVisible: preview.visible,
|
|
@@ -1691,12 +1698,12 @@ NavLink.displayName = "NavLink";
|
|
|
1691
1698
|
|
|
1692
1699
|
// src/client/theme/ui/Navbar/Tabs.tsx
|
|
1693
1700
|
import * as Icons from "lucide-react";
|
|
1694
|
-
import { jsx as
|
|
1701
|
+
import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1695
1702
|
function Tabs({ tabs, routes }) {
|
|
1696
1703
|
const location = useLocation10();
|
|
1697
1704
|
const containerRef = useRef7(null);
|
|
1698
1705
|
const tabRefs = useRef7([]);
|
|
1699
|
-
const [indicatorStyle, setIndicatorStyle] =
|
|
1706
|
+
const [indicatorStyle, setIndicatorStyle] = useState12({
|
|
1700
1707
|
opacity: 0,
|
|
1701
1708
|
transform: "translateX(0) scaleX(0)",
|
|
1702
1709
|
width: 0
|
|
@@ -1721,7 +1728,7 @@ function Tabs({ tabs, routes }) {
|
|
|
1721
1728
|
const renderTabIcon = (iconName) => {
|
|
1722
1729
|
if (!iconName) return null;
|
|
1723
1730
|
if (iconName.trim().startsWith("<svg")) {
|
|
1724
|
-
return /* @__PURE__ */
|
|
1731
|
+
return /* @__PURE__ */ jsx23(
|
|
1725
1732
|
"span",
|
|
1726
1733
|
{
|
|
1727
1734
|
className: "tab-icon svg-icon",
|
|
@@ -1731,18 +1738,18 @@ function Tabs({ tabs, routes }) {
|
|
|
1731
1738
|
}
|
|
1732
1739
|
const LucideIcon = Icons[iconName];
|
|
1733
1740
|
if (LucideIcon) {
|
|
1734
|
-
return /* @__PURE__ */
|
|
1741
|
+
return /* @__PURE__ */ jsx23(LucideIcon, { size: 16, className: "tab-icon lucide-icon" });
|
|
1735
1742
|
}
|
|
1736
|
-
return /* @__PURE__ */
|
|
1743
|
+
return /* @__PURE__ */ jsx23("img", { src: iconName, alt: "", className: "tab-icon img-icon" });
|
|
1737
1744
|
};
|
|
1738
|
-
return /* @__PURE__ */
|
|
1745
|
+
return /* @__PURE__ */ jsx23("div", { className: "boltdocs-tabs-container", children: /* @__PURE__ */ jsxs17("div", { className: "boltdocs-tabs", ref: containerRef, children: [
|
|
1739
1746
|
tabs.map((tab, index) => {
|
|
1740
1747
|
const isActive = index === finalActiveIndex;
|
|
1741
1748
|
const firstRoute = routes.find(
|
|
1742
1749
|
(r) => r.tab && r.tab.toLowerCase() === tab.id.toLowerCase()
|
|
1743
1750
|
);
|
|
1744
1751
|
const linkTo = firstRoute ? firstRoute.path : "#";
|
|
1745
|
-
return /* @__PURE__ */
|
|
1752
|
+
return /* @__PURE__ */ jsxs17(
|
|
1746
1753
|
Link,
|
|
1747
1754
|
{
|
|
1748
1755
|
to: linkTo,
|
|
@@ -1752,20 +1759,20 @@ function Tabs({ tabs, routes }) {
|
|
|
1752
1759
|
className: `boltdocs-tab-item ${isActive ? "active" : ""}`,
|
|
1753
1760
|
children: [
|
|
1754
1761
|
renderTabIcon(tab.icon),
|
|
1755
|
-
/* @__PURE__ */
|
|
1762
|
+
/* @__PURE__ */ jsx23("span", { children: tab.text })
|
|
1756
1763
|
]
|
|
1757
1764
|
},
|
|
1758
1765
|
tab.id
|
|
1759
1766
|
);
|
|
1760
1767
|
}),
|
|
1761
|
-
/* @__PURE__ */
|
|
1768
|
+
/* @__PURE__ */ jsx23("div", { className: "boltdocs-tab-indicator", style: indicatorStyle })
|
|
1762
1769
|
] }) });
|
|
1763
1770
|
}
|
|
1764
1771
|
|
|
1765
1772
|
// src/client/theme/ui/Navbar/Navbar.tsx
|
|
1766
|
-
import { jsx as
|
|
1773
|
+
import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1767
1774
|
var SearchDialog = lazy2(
|
|
1768
|
-
() => import("./SearchDialog-
|
|
1775
|
+
() => import("./SearchDialog-AGVF6JBO.mjs").then((m) => ({ default: m.SearchDialog }))
|
|
1769
1776
|
);
|
|
1770
1777
|
var ICON_MAP = {
|
|
1771
1778
|
discord: Discord,
|
|
@@ -1790,9 +1797,9 @@ function Navbar({
|
|
|
1790
1797
|
const text = item.label || item.text || "";
|
|
1791
1798
|
const href = item.to || item.href || item.link || "";
|
|
1792
1799
|
const isExternal = href.startsWith("http") || href.startsWith("//") || href.includes("://");
|
|
1793
|
-
return /* @__PURE__ */
|
|
1800
|
+
return /* @__PURE__ */ jsxs18(Link2, { to: href, target: isExternal ? "_blank" : void 0, children: [
|
|
1794
1801
|
text,
|
|
1795
|
-
isExternal && /* @__PURE__ */
|
|
1802
|
+
isExternal && /* @__PURE__ */ jsx24("span", { className: "navbar-external-icon", children: /* @__PURE__ */ jsxs18(
|
|
1796
1803
|
"svg",
|
|
1797
1804
|
{
|
|
1798
1805
|
viewBox: "0 0 24 24",
|
|
@@ -1804,24 +1811,24 @@ function Navbar({
|
|
|
1804
1811
|
strokeLinecap: "round",
|
|
1805
1812
|
strokeLinejoin: "round",
|
|
1806
1813
|
children: [
|
|
1807
|
-
/* @__PURE__ */
|
|
1808
|
-
/* @__PURE__ */
|
|
1809
|
-
/* @__PURE__ */
|
|
1814
|
+
/* @__PURE__ */ jsx24("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }),
|
|
1815
|
+
/* @__PURE__ */ jsx24("polyline", { points: "15 3 21 3 21 9" }),
|
|
1816
|
+
/* @__PURE__ */ jsx24("line", { x1: "10", y1: "14", x2: "21", y2: "3" })
|
|
1810
1817
|
]
|
|
1811
1818
|
}
|
|
1812
1819
|
) })
|
|
1813
1820
|
] }, i);
|
|
1814
1821
|
};
|
|
1815
|
-
return /* @__PURE__ */
|
|
1816
|
-
/* @__PURE__ */
|
|
1822
|
+
return /* @__PURE__ */ jsxs18("header", { className: `boltdocs-navbar ${hasTabs ? "has-tabs" : ""}`, children: [
|
|
1823
|
+
/* @__PURE__ */ jsxs18(
|
|
1817
1824
|
"div",
|
|
1818
1825
|
{
|
|
1819
1826
|
className: "navbar-container",
|
|
1820
1827
|
style: { height: "var(--ld-navbar-height)" },
|
|
1821
1828
|
children: [
|
|
1822
|
-
/* @__PURE__ */
|
|
1823
|
-
/* @__PURE__ */
|
|
1824
|
-
config.themeConfig?.logo ? config.themeConfig.logo.trim().startsWith("<svg") ? /* @__PURE__ */
|
|
1829
|
+
/* @__PURE__ */ jsxs18("div", { className: "navbar-left", children: [
|
|
1830
|
+
/* @__PURE__ */ jsx24("div", { className: "navbar-logo", children: /* @__PURE__ */ jsxs18(Link2, { to: "/", children: [
|
|
1831
|
+
config.themeConfig?.logo ? config.themeConfig.logo.trim().startsWith("<svg") ? /* @__PURE__ */ jsx24(
|
|
1825
1832
|
"span",
|
|
1826
1833
|
{
|
|
1827
1834
|
className: "navbar-logo-svg",
|
|
@@ -1829,7 +1836,7 @@ function Navbar({
|
|
|
1829
1836
|
__html: config.themeConfig.logo
|
|
1830
1837
|
}
|
|
1831
1838
|
}
|
|
1832
|
-
) : /* @__PURE__ */
|
|
1839
|
+
) : /* @__PURE__ */ jsx24(
|
|
1833
1840
|
"img",
|
|
1834
1841
|
{
|
|
1835
1842
|
src: config.themeConfig.logo,
|
|
@@ -1839,7 +1846,7 @@ function Navbar({
|
|
|
1839
1846
|
) : null,
|
|
1840
1847
|
title
|
|
1841
1848
|
] }) }),
|
|
1842
|
-
config.versions && currentVersion && allRoutes ? /* @__PURE__ */
|
|
1849
|
+
config.versions && currentVersion && allRoutes ? /* @__PURE__ */ jsx24(
|
|
1843
1850
|
VersionSwitcher,
|
|
1844
1851
|
{
|
|
1845
1852
|
versions: config.versions,
|
|
@@ -1847,17 +1854,17 @@ function Navbar({
|
|
|
1847
1854
|
currentLocale,
|
|
1848
1855
|
allRoutes
|
|
1849
1856
|
}
|
|
1850
|
-
) : config.themeConfig?.version ? /* @__PURE__ */
|
|
1857
|
+
) : config.themeConfig?.version ? /* @__PURE__ */ jsxs18("div", { className: "navbar-version", children: [
|
|
1851
1858
|
config.themeConfig.version,
|
|
1852
1859
|
" ",
|
|
1853
|
-
/* @__PURE__ */
|
|
1860
|
+
/* @__PURE__ */ jsx24(ChevronDown4, { size: 14 })
|
|
1854
1861
|
] }) : null,
|
|
1855
|
-
/* @__PURE__ */
|
|
1862
|
+
/* @__PURE__ */ jsx24("nav", { className: "navbar-links", "aria-label": "Top Navigation Left", children: leftItems.map(renderNavItem) })
|
|
1856
1863
|
] }),
|
|
1857
|
-
/* @__PURE__ */
|
|
1858
|
-
/* @__PURE__ */
|
|
1859
|
-
/* @__PURE__ */
|
|
1860
|
-
config.i18n && currentLocale && allRoutes && /* @__PURE__ */
|
|
1864
|
+
/* @__PURE__ */ jsxs18("div", { className: "navbar-right", children: [
|
|
1865
|
+
/* @__PURE__ */ jsx24("nav", { className: "navbar-links", "aria-label": "Top Navigation Right", children: rightItems.map(renderNavItem) }),
|
|
1866
|
+
/* @__PURE__ */ jsx24(Suspense2, { fallback: /* @__PURE__ */ jsx24("div", { className: "navbar-search-placeholder" }), children: /* @__PURE__ */ jsx24(SearchDialog, { routes: routes || [] }) }),
|
|
1867
|
+
config.i18n && currentLocale && allRoutes && /* @__PURE__ */ jsx24(
|
|
1861
1868
|
LanguageSwitcher,
|
|
1862
1869
|
{
|
|
1863
1870
|
i18n: config.i18n,
|
|
@@ -1865,12 +1872,12 @@ function Navbar({
|
|
|
1865
1872
|
allRoutes
|
|
1866
1873
|
}
|
|
1867
1874
|
),
|
|
1868
|
-
/* @__PURE__ */
|
|
1869
|
-
config.themeConfig?.githubRepo && /* @__PURE__ */
|
|
1870
|
-
socialLinks.length > 0 && /* @__PURE__ */
|
|
1871
|
-
/* @__PURE__ */
|
|
1875
|
+
/* @__PURE__ */ jsx24(ThemeToggle, {}),
|
|
1876
|
+
config.themeConfig?.githubRepo && /* @__PURE__ */ jsx24(GithubStars, { repo: config.themeConfig.githubRepo }),
|
|
1877
|
+
socialLinks.length > 0 && /* @__PURE__ */ jsx24("div", { className: "navbar-divider" }),
|
|
1878
|
+
/* @__PURE__ */ jsx24("div", { className: "navbar-icons", children: socialLinks.map((link, i) => {
|
|
1872
1879
|
const IconComp = ICON_MAP[link.icon.toLowerCase()];
|
|
1873
|
-
return /* @__PURE__ */
|
|
1880
|
+
return /* @__PURE__ */ jsx24(
|
|
1874
1881
|
"a",
|
|
1875
1882
|
{
|
|
1876
1883
|
href: link.link,
|
|
@@ -1878,7 +1885,7 @@ function Navbar({
|
|
|
1878
1885
|
rel: "noopener noreferrer",
|
|
1879
1886
|
className: "navbar-icon-btn",
|
|
1880
1887
|
"aria-label": link.icon,
|
|
1881
|
-
children: IconComp ? /* @__PURE__ */
|
|
1888
|
+
children: IconComp ? /* @__PURE__ */ jsx24(IconComp, {}) : /* @__PURE__ */ jsx24("span", { children: link.icon })
|
|
1882
1889
|
},
|
|
1883
1890
|
i
|
|
1884
1891
|
);
|
|
@@ -1887,7 +1894,7 @@ function Navbar({
|
|
|
1887
1894
|
]
|
|
1888
1895
|
}
|
|
1889
1896
|
),
|
|
1890
|
-
hasTabs && config.themeConfig?.tabs && /* @__PURE__ */
|
|
1897
|
+
hasTabs && config.themeConfig?.tabs && /* @__PURE__ */ jsx24(
|
|
1891
1898
|
Tabs,
|
|
1892
1899
|
{
|
|
1893
1900
|
tabs: config.themeConfig.tabs,
|
|
@@ -1904,7 +1911,6 @@ export {
|
|
|
1904
1911
|
OnThisPage,
|
|
1905
1912
|
Head,
|
|
1906
1913
|
Breadcrumbs,
|
|
1907
|
-
BackgroundGradient,
|
|
1908
1914
|
ThemeLayout,
|
|
1909
1915
|
NotFound,
|
|
1910
1916
|
Loading,
|