@burojs/ui-shadcn 0.3.0 → 0.4.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/README.md +4 -2
- package/dist/index.cjs +15044 -16998
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3488 -3105
- package/dist/index.d.ts +3488 -3105
- package/dist/index.js +14965 -16860
- package/dist/index.js.map +1 -1
- package/dist/layout/theme-storage-key.cjs +5 -10
- package/dist/layout/theme-storage-key.cjs.map +1 -1
- package/dist/layout/theme-storage-key.d.cts +2 -23
- package/dist/layout/theme-storage-key.d.ts +2 -23
- package/dist/layout/theme-storage-key.js +5 -2
- package/dist/layout/theme-storage-key.js.map +1 -1
- package/dist/markdown/index.cjs +424 -511
- package/dist/markdown/index.cjs.map +1 -1
- package/dist/markdown/index.d.cts +1072 -34
- package/dist/markdown/index.d.ts +1072 -34
- package/dist/markdown/index.js +411 -459
- package/dist/markdown/index.js.map +1 -1
- package/dist/rich-text-IDFvyvRE.js +454 -0
- package/dist/rich-text-IDFvyvRE.js.map +1 -0
- package/dist/rich-text-lndbYqzR.cjs +457 -0
- package/dist/rich-text-lndbYqzR.cjs.map +1 -0
- package/dist/styles.css +14 -8
- package/dist/theme/theme-css.cjs +95 -96
- package/dist/theme/theme-css.cjs.map +1 -1
- package/dist/theme/theme-css.d.cts +10 -8
- package/dist/theme/theme-css.d.ts +10 -8
- package/dist/theme/theme-css.js +94 -94
- package/dist/theme/theme-css.js.map +1 -1
- package/dist/theme/theme-storage.cjs +34 -39
- package/dist/theme/theme-storage.cjs.map +1 -1
- package/dist/theme/theme-storage.d.cts +3 -1
- package/dist/theme/theme-storage.d.ts +3 -1
- package/dist/theme/theme-storage.js +33 -37
- package/dist/theme/theme-storage.js.map +1 -1
- package/dist/theme-storage-key-pYlp4aDS.d.cts +31 -0
- package/dist/theme-storage-key-pYlp4aDS.d.ts +31 -0
- package/dist/use-theme-BwPWinB2.cjs +246 -0
- package/dist/use-theme-BwPWinB2.cjs.map +1 -0
- package/dist/use-theme-IHmtrhEt.js +170 -0
- package/dist/use-theme-IHmtrhEt.js.map +1 -0
- package/package.json +10 -11
- package/dist/chunk-ABUQPOOE.js +0 -11
- package/dist/chunk-ABUQPOOE.js.map +0 -1
- package/dist/chunk-DBGGWBFG.cjs +0 -199
- package/dist/chunk-DBGGWBFG.cjs.map +0 -1
- package/dist/chunk-FMX4GLCQ.js +0 -6
- package/dist/chunk-FMX4GLCQ.js.map +0 -1
- package/dist/chunk-UC57Z243.js +0 -143
- package/dist/chunk-UC57Z243.js.map +0 -1
- package/dist/chunk-UPGPO75B.js +0 -164
- package/dist/chunk-UPGPO75B.js.map +0 -1
- package/dist/chunk-VXJAXJ3U.cjs +0 -8
- package/dist/chunk-VXJAXJ3U.cjs.map +0 -1
- package/dist/chunk-W7AEYE7A.cjs +0 -13
- package/dist/chunk-W7AEYE7A.cjs.map +0 -1
- package/dist/chunk-YF5IW525.cjs +0 -155
- package/dist/chunk-YF5IW525.cjs.map +0 -1
- package/dist/rich-text-6V7WZ3WV.cjs +0 -518
- package/dist/rich-text-6V7WZ3WV.cjs.map +0 -1
- package/dist/rich-text-N2FZEJJV.js +0 -491
- package/dist/rich-text-N2FZEJJV.js.map +0 -1
package/dist/markdown/index.cjs
CHANGED
|
@@ -1,550 +1,463 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
require(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const onClick = react$1.useCallback(
|
|
60
|
-
(event) => {
|
|
61
|
-
if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;
|
|
62
|
-
if (stopPropagation) event.stopPropagation();
|
|
63
|
-
void navigator.clipboard?.writeText(chunkYF5IW525_cjs.docShareUrl(slug)).then(() => {
|
|
64
|
-
setCopied(true);
|
|
65
|
-
if (timer.current) clearTimeout(timer.current);
|
|
66
|
-
timer.current = setTimeout(() => setCopied(false), 1600);
|
|
67
|
-
}).catch(() => {
|
|
68
|
-
});
|
|
69
|
-
},
|
|
70
|
-
[slug, stopPropagation]
|
|
71
|
-
);
|
|
72
|
-
const label = copied ? t("docPanel.linkCopied", { defaultValue: "Link copied" }) : t("docPanel.copyLink", { defaultValue: "Copy link to this section" });
|
|
73
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
74
|
-
"a",
|
|
75
|
-
{
|
|
76
|
-
href: `#${slug}`,
|
|
77
|
-
onClick,
|
|
78
|
-
title: label,
|
|
79
|
-
"aria-label": label,
|
|
80
|
-
"data-testid": `doc-anchor:${slug}`,
|
|
81
|
-
"data-copied": copied ? "true" : void 0,
|
|
82
|
-
className: chunkW7AEYE7A_cjs.cn(
|
|
83
|
-
"ml-2 inline-flex shrink-0 items-center rounded-sm p-0.5 align-middle no-underline",
|
|
84
|
-
"text-muted-foreground transition-opacity hover:text-foreground",
|
|
85
|
-
// Hidden until the reader is at this heading — a permanent « # » beside
|
|
86
|
-
// every heading reads as scaffolding. `focus-visible` keeps it
|
|
87
|
-
// reachable by keyboard, where there is no hover to reveal it.
|
|
88
|
-
"opacity-0 group-hover/anchor:opacity-100 focus-visible:opacity-100",
|
|
89
|
-
"focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring",
|
|
90
|
-
copied && "text-primary opacity-100",
|
|
91
|
-
className
|
|
92
|
-
),
|
|
93
|
-
children: [
|
|
94
|
-
copied ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconCheck, { className: "size-3.5", "aria-hidden": "true" }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLink, { className: "size-3.5", "aria-hidden": "true" }),
|
|
95
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { role: "status", className: "sr-only", children: copied ? t("docPanel.linkCopied", { defaultValue: "Link copied" }) : "" })
|
|
96
|
-
]
|
|
97
|
-
}
|
|
98
|
-
);
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const require_use_theme = require("../use-theme-BwPWinB2.cjs");
|
|
4
|
+
let _burojs_react = require("@burojs/react");
|
|
5
|
+
let _tabler_icons_react = require("@tabler/icons-react");
|
|
6
|
+
let react = require("react");
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
let react_markdown = require("react-markdown");
|
|
9
|
+
react_markdown = require_use_theme.__toESM(react_markdown, 1);
|
|
10
|
+
let rehype_sanitize = require("rehype-sanitize");
|
|
11
|
+
rehype_sanitize = require_use_theme.__toESM(rehype_sanitize, 1);
|
|
12
|
+
let rehype_slug = require("rehype-slug");
|
|
13
|
+
rehype_slug = require_use_theme.__toESM(rehype_slug, 1);
|
|
14
|
+
let remark_directive = require("remark-directive");
|
|
15
|
+
remark_directive = require_use_theme.__toESM(remark_directive, 1);
|
|
16
|
+
let remark_gfm = require("remark-gfm");
|
|
17
|
+
remark_gfm = require_use_theme.__toESM(remark_gfm, 1);
|
|
18
|
+
let unist_util_visit = require("unist-util-visit");
|
|
19
|
+
let _radix_ui_react_accordion = require("@radix-ui/react-accordion");
|
|
20
|
+
_radix_ui_react_accordion = require_use_theme.__toESM(_radix_ui_react_accordion, 1);
|
|
21
|
+
//#region src/markdown/anchor-link.tsx
|
|
22
|
+
function DocAnchorLink({ slug, stopPropagation, className }) {
|
|
23
|
+
const t = (0, _burojs_react.useOptionalT)();
|
|
24
|
+
const [copied, setCopied] = (0, react.useState)(false);
|
|
25
|
+
const timer = (0, react.useRef)(null);
|
|
26
|
+
(0, react.useEffect)(() => () => {
|
|
27
|
+
if (timer.current) clearTimeout(timer.current);
|
|
28
|
+
}, []);
|
|
29
|
+
const onClick = (0, react.useCallback)((event) => {
|
|
30
|
+
if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;
|
|
31
|
+
if (stopPropagation) event.stopPropagation();
|
|
32
|
+
navigator.clipboard?.writeText(require_use_theme.docShareUrl(slug)).then(() => {
|
|
33
|
+
setCopied(true);
|
|
34
|
+
if (timer.current) clearTimeout(timer.current);
|
|
35
|
+
timer.current = setTimeout(() => setCopied(false), 1600);
|
|
36
|
+
}).catch(() => {});
|
|
37
|
+
}, [slug, stopPropagation]);
|
|
38
|
+
const label = copied ? t("docPanel.linkCopied", { defaultValue: "Link copied" }) : t("docPanel.copyLink", { defaultValue: "Copy link to this section" });
|
|
39
|
+
return (0, react_jsx_runtime.jsxs)("a", {
|
|
40
|
+
href: `#${slug}`,
|
|
41
|
+
onClick,
|
|
42
|
+
title: label,
|
|
43
|
+
"aria-label": label,
|
|
44
|
+
"data-testid": `doc-anchor:${slug}`,
|
|
45
|
+
"data-copied": copied ? "true" : void 0,
|
|
46
|
+
className: require_use_theme.cn("ml-2 inline-flex shrink-0 items-center rounded-sm p-0.5 align-middle no-underline", "text-muted-foreground transition-opacity hover:text-foreground", "opacity-0 group-hover/anchor:opacity-100 focus-visible:opacity-100", "focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring", copied && "text-primary opacity-100", className),
|
|
47
|
+
children: [copied ? (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconCheck, {
|
|
48
|
+
className: "size-3.5",
|
|
49
|
+
"aria-hidden": "true"
|
|
50
|
+
}) : (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconLink, {
|
|
51
|
+
className: "size-3.5",
|
|
52
|
+
"aria-hidden": "true"
|
|
53
|
+
}), (0, react_jsx_runtime.jsx)("span", {
|
|
54
|
+
role: "status",
|
|
55
|
+
className: "sr-only",
|
|
56
|
+
children: copied ? t("docPanel.linkCopied", { defaultValue: "Link copied" }) : ""
|
|
57
|
+
})]
|
|
58
|
+
});
|
|
99
59
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
60
|
+
//#endregion
|
|
61
|
+
//#region src/lib/css-color.ts
|
|
62
|
+
const OKLCH = /^oklch\(\s*([^\s/]+)\s+([^\s/]+)\s+([^\s/]+)\s*(?:\/\s*([^\s/]+)\s*)?\)$/i;
|
|
63
|
+
const KHROMA_SAFE = /^(#|rgba?\(|hsla?\(|[a-z]+$)/i;
|
|
104
64
|
function component(raw, pct) {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
65
|
+
if (raw.toLowerCase() === "none") return 0;
|
|
66
|
+
const percent = raw.endsWith("%");
|
|
67
|
+
const n = Number.parseFloat(percent ? raw.slice(0, -1) : raw);
|
|
68
|
+
if (!Number.isFinite(n)) return null;
|
|
69
|
+
return percent ? n / 100 * pct : n;
|
|
110
70
|
}
|
|
111
71
|
function hueDegrees(raw) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
return n * 360;
|
|
124
|
-
default:
|
|
125
|
-
return n;
|
|
126
|
-
}
|
|
72
|
+
if (raw.toLowerCase() === "none") return 0;
|
|
73
|
+
const match = /^(-?[\d.]+)(deg|rad|grad|turn)?$/i.exec(raw);
|
|
74
|
+
if (match === null) return null;
|
|
75
|
+
const n = Number.parseFloat(match[1]);
|
|
76
|
+
if (!Number.isFinite(n)) return null;
|
|
77
|
+
switch ((match[2] ?? "deg").toLowerCase()) {
|
|
78
|
+
case "rad": return n * 180 / Math.PI;
|
|
79
|
+
case "grad": return n * .9;
|
|
80
|
+
case "turn": return n * 360;
|
|
81
|
+
default: return n;
|
|
82
|
+
}
|
|
127
83
|
}
|
|
128
84
|
function encode(channel) {
|
|
129
|
-
|
|
130
|
-
|
|
85
|
+
const v = channel <= .0031308 ? 12.92 * channel : 1.055 * channel ** (1 / 2.4) - .055;
|
|
86
|
+
return Math.round(Math.min(1, Math.max(0, v)) * 255);
|
|
131
87
|
}
|
|
132
88
|
function hex2(value) {
|
|
133
|
-
|
|
89
|
+
return value.toString(16).padStart(2, "0");
|
|
134
90
|
}
|
|
135
91
|
function oklchToHex(value) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
92
|
+
const match = OKLCH.exec(value.trim());
|
|
93
|
+
if (match === null) return null;
|
|
94
|
+
const L = component(match[1], 1);
|
|
95
|
+
const C = component(match[2], .4);
|
|
96
|
+
const H = hueDegrees(match[3]);
|
|
97
|
+
const A = match[4] === void 0 ? 1 : component(match[4], 1);
|
|
98
|
+
if (L === null || C === null || H === null || A === null) return null;
|
|
99
|
+
const rad = H * Math.PI / 180;
|
|
100
|
+
const a = C * Math.cos(rad);
|
|
101
|
+
const b = C * Math.sin(rad);
|
|
102
|
+
const l = (L + .3963377774 * a + .2158037573 * b) ** 3;
|
|
103
|
+
const m = (L - .1055613458 * a - .0638541728 * b) ** 3;
|
|
104
|
+
const s = (L - .0894841775 * a - 1.291485548 * b) ** 3;
|
|
105
|
+
const r = encode(4.0767416621 * l - 3.3077115913 * m + .2309699292 * s);
|
|
106
|
+
const g = encode(-1.2684380046 * l + 2.6097574011 * m - .3413193965 * s);
|
|
107
|
+
const bl = encode(-.0041960863 * l - .7034186147 * m + 1.707614701 * s);
|
|
108
|
+
const alpha = Math.min(1, Math.max(0, A));
|
|
109
|
+
const suffix = alpha === 1 ? "" : hex2(Math.round(alpha * 255));
|
|
110
|
+
return `#${hex2(r)}${hex2(g)}${hex2(bl)}${suffix}`;
|
|
155
111
|
}
|
|
156
112
|
function toLegacyColor(value) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
113
|
+
const trimmed = value.trim();
|
|
114
|
+
if (trimmed === "") return null;
|
|
115
|
+
if (KHROMA_SAFE.test(trimmed)) return trimmed;
|
|
116
|
+
return oklchToHex(trimmed);
|
|
161
117
|
}
|
|
118
|
+
//#endregion
|
|
119
|
+
//#region src/markdown/mermaid.tsx
|
|
162
120
|
function cssVar(styles, name, fallback) {
|
|
163
|
-
|
|
121
|
+
return toLegacyColor(styles.getPropertyValue(name)) ?? fallback;
|
|
164
122
|
}
|
|
165
|
-
|
|
123
|
+
let seq = 0;
|
|
166
124
|
function MermaidDiagram({ code, className }) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
"data-testid": "mermaid:loading",
|
|
230
|
-
"aria-hidden": "true"
|
|
231
|
-
}
|
|
232
|
-
);
|
|
233
|
-
}
|
|
234
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
235
|
-
"figure",
|
|
236
|
-
{
|
|
237
|
-
className: chunkW7AEYE7A_cjs.cn(
|
|
238
|
-
"not-prose my-4 overflow-x-auto rounded-md border bg-card/40 text-card-foreground p-4",
|
|
239
|
-
// Mermaid emits an intrinsic width; letting it scale down keeps a wide
|
|
240
|
-
// graph inside the column instead of pushing the article sideways.
|
|
241
|
-
"[&_svg]:mx-auto [&_svg]:h-auto [&_svg]:max-w-full",
|
|
242
|
-
className
|
|
243
|
-
),
|
|
244
|
-
"data-testid": "mermaid:diagram",
|
|
245
|
-
dangerouslySetInnerHTML: { __html: svg }
|
|
246
|
-
}
|
|
247
|
-
);
|
|
125
|
+
const [svg, setSvg] = (0, react.useState)(null);
|
|
126
|
+
const [failed, setFailed] = (0, react.useState)(null);
|
|
127
|
+
const { resolved: theme } = require_use_theme.useTheme();
|
|
128
|
+
const idRef = (0, react.useRef)(null);
|
|
129
|
+
idRef.current ??= `buro-mermaid-${seq += 1}`;
|
|
130
|
+
(0, react.useEffect)(() => {
|
|
131
|
+
let cancelled = false;
|
|
132
|
+
(async () => {
|
|
133
|
+
try {
|
|
134
|
+
const mermaid = (await import("mermaid")).default;
|
|
135
|
+
const styles = getComputedStyle(document.documentElement);
|
|
136
|
+
const dark = theme === "dark";
|
|
137
|
+
mermaid.initialize({
|
|
138
|
+
startOnLoad: false,
|
|
139
|
+
securityLevel: "strict",
|
|
140
|
+
fontFamily: "inherit",
|
|
141
|
+
theme: "base",
|
|
142
|
+
darkMode: dark,
|
|
143
|
+
themeVariables: {
|
|
144
|
+
background: cssVar(styles, "--background", dark ? "#0b0b0c" : "#ffffff"),
|
|
145
|
+
primaryColor: cssVar(styles, "--muted", dark ? "#1c1c1f" : "#f4f4f5"),
|
|
146
|
+
primaryTextColor: cssVar(styles, "--foreground", dark ? "#fafafa" : "#09090b"),
|
|
147
|
+
primaryBorderColor: cssVar(styles, "--border", dark ? "#27272a" : "#e4e4e7"),
|
|
148
|
+
lineColor: cssVar(styles, "--muted-foreground", dark ? "#a1a1aa" : "#71717a"),
|
|
149
|
+
secondaryColor: cssVar(styles, "--secondary", dark ? "#18181b" : "#f4f4f5"),
|
|
150
|
+
tertiaryColor: cssVar(styles, "--accent", dark ? "#18181b" : "#fafafa"),
|
|
151
|
+
fontSize: "13px"
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
await mermaid.parse(code);
|
|
155
|
+
const { svg: out } = await mermaid.render(idRef.current, code);
|
|
156
|
+
if (!cancelled) {
|
|
157
|
+
setSvg(out);
|
|
158
|
+
setFailed(null);
|
|
159
|
+
}
|
|
160
|
+
} catch (error) {
|
|
161
|
+
if (!cancelled) {
|
|
162
|
+
setSvg(null);
|
|
163
|
+
setFailed(error instanceof Error ? error.message : String(error));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
})();
|
|
167
|
+
return () => {
|
|
168
|
+
cancelled = true;
|
|
169
|
+
};
|
|
170
|
+
}, [code, theme]);
|
|
171
|
+
if (failed !== null) return (0, react_jsx_runtime.jsx)("pre", {
|
|
172
|
+
className: require_use_theme.cn("overflow-x-auto rounded-md border border-dashed p-3 text-xs", className),
|
|
173
|
+
title: failed,
|
|
174
|
+
"data-testid": "mermaid:failed",
|
|
175
|
+
children: (0, react_jsx_runtime.jsx)("code", { children: code })
|
|
176
|
+
});
|
|
177
|
+
if (svg === null) return (0, react_jsx_runtime.jsx)("div", {
|
|
178
|
+
className: require_use_theme.cn("h-24 animate-pulse rounded-md border bg-muted/40", className),
|
|
179
|
+
"data-testid": "mermaid:loading",
|
|
180
|
+
"aria-hidden": "true"
|
|
181
|
+
});
|
|
182
|
+
return (0, react_jsx_runtime.jsx)("figure", {
|
|
183
|
+
className: require_use_theme.cn("not-prose my-4 overflow-x-auto rounded-md border bg-card/40 text-card-foreground p-4", "[&_svg]:mx-auto [&_svg]:h-auto [&_svg]:max-w-full", className),
|
|
184
|
+
"data-testid": "mermaid:diagram",
|
|
185
|
+
dangerouslySetInnerHTML: { __html: svg }
|
|
186
|
+
});
|
|
248
187
|
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
188
|
+
//#endregion
|
|
189
|
+
//#region src/markdown/sanitize-schema.ts
|
|
190
|
+
const VIDEO_ATTRIBUTES = [
|
|
191
|
+
"src",
|
|
192
|
+
"poster",
|
|
193
|
+
"controls",
|
|
194
|
+
"loop",
|
|
195
|
+
"muted",
|
|
196
|
+
"autoPlay",
|
|
197
|
+
"playsInline",
|
|
198
|
+
"preload",
|
|
199
|
+
"width",
|
|
200
|
+
"height"
|
|
260
201
|
];
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
// allowed explicitly or the attribute is stripped and every image in a
|
|
275
|
-
// long article loads at once.
|
|
276
|
-
img: [...rehypeSanitize.defaultSchema.attributes?.img ?? [], "loading"]
|
|
277
|
-
}
|
|
202
|
+
const docSanitizeSchema = {
|
|
203
|
+
...rehype_sanitize.defaultSchema,
|
|
204
|
+
tagNames: [...rehype_sanitize.defaultSchema.tagNames ?? [], "video"],
|
|
205
|
+
attributes: {
|
|
206
|
+
...rehype_sanitize.defaultSchema.attributes,
|
|
207
|
+
video: [...VIDEO_ATTRIBUTES],
|
|
208
|
+
source: [
|
|
209
|
+
...rehype_sanitize.defaultSchema.attributes?.source ?? [],
|
|
210
|
+
"src",
|
|
211
|
+
"type"
|
|
212
|
+
],
|
|
213
|
+
img: [...rehype_sanitize.defaultSchema.attributes?.img ?? [], "loading"]
|
|
214
|
+
}
|
|
278
215
|
};
|
|
279
|
-
|
|
216
|
+
//#endregion
|
|
217
|
+
//#region src/markdown/video-directive.ts
|
|
218
|
+
const ALLOWED = [
|
|
219
|
+
"src",
|
|
220
|
+
"poster",
|
|
221
|
+
"width",
|
|
222
|
+
"height"
|
|
223
|
+
];
|
|
280
224
|
function remarkVideoDirective() {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
225
|
+
return (tree) => {
|
|
226
|
+
(0, unist_util_visit.visit)(tree, (node) => {
|
|
227
|
+
const directive = node;
|
|
228
|
+
if (directive.type !== "leafDirective" && directive.type !== "containerDirective" && directive.type !== "textDirective") return;
|
|
229
|
+
if (directive.name !== "video") return;
|
|
230
|
+
const attrs = directive.attributes ?? {};
|
|
231
|
+
const props = {
|
|
232
|
+
controls: true,
|
|
233
|
+
preload: "metadata"
|
|
234
|
+
};
|
|
235
|
+
for (const key of ALLOWED) {
|
|
236
|
+
const value = attrs[key];
|
|
237
|
+
if (typeof value === "string" && value.length > 0) props[key] = value;
|
|
238
|
+
}
|
|
239
|
+
if (typeof props.src !== "string") return;
|
|
240
|
+
directive.data = {
|
|
241
|
+
...directive.data,
|
|
242
|
+
hName: "video",
|
|
243
|
+
hProperties: props
|
|
244
|
+
};
|
|
245
|
+
});
|
|
246
|
+
};
|
|
303
247
|
}
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
className: chunkW7AEYE7A_cjs.cn("border-b border-border/60 last:border-b-0", className),
|
|
313
|
-
...props
|
|
314
|
-
}
|
|
315
|
-
);
|
|
248
|
+
//#endregion
|
|
249
|
+
//#region src/primitives/accordion.tsx
|
|
250
|
+
const Accordion = _radix_ui_react_accordion.Root;
|
|
251
|
+
function AccordionItem({ className, ...props }) {
|
|
252
|
+
return (0, react_jsx_runtime.jsx)(_radix_ui_react_accordion.Item, {
|
|
253
|
+
className: require_use_theme.cn("border-b border-border/60 last:border-b-0", className),
|
|
254
|
+
...props
|
|
255
|
+
});
|
|
316
256
|
}
|
|
317
|
-
function AccordionTrigger({
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
"rounded-sm [&[data-state=open]>svg]:rotate-180",
|
|
330
|
-
className
|
|
331
|
-
),
|
|
332
|
-
...props,
|
|
333
|
-
children: [
|
|
334
|
-
children,
|
|
335
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
336
|
-
iconsReact.IconChevronDown,
|
|
337
|
-
{
|
|
338
|
-
className: "mt-0.5 size-4 shrink-0 text-muted-foreground transition-transform duration-200",
|
|
339
|
-
"aria-hidden": "true"
|
|
340
|
-
}
|
|
341
|
-
)
|
|
342
|
-
]
|
|
343
|
-
}
|
|
344
|
-
) });
|
|
257
|
+
function AccordionTrigger({ className, children, ...props }) {
|
|
258
|
+
return (0, react_jsx_runtime.jsx)(_radix_ui_react_accordion.Header, {
|
|
259
|
+
className: "flex",
|
|
260
|
+
children: (0, react_jsx_runtime.jsxs)(_radix_ui_react_accordion.Trigger, {
|
|
261
|
+
className: require_use_theme.cn("flex flex-1 items-start justify-between gap-3 py-3 text-left", "text-[0.9375rem] font-medium leading-snug transition-colors", "hover:text-primary focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring", "rounded-sm [&[data-state=open]>svg]:rotate-180", className),
|
|
262
|
+
...props,
|
|
263
|
+
children: [children, (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconChevronDown, {
|
|
264
|
+
className: "mt-0.5 size-4 shrink-0 text-muted-foreground transition-transform duration-200",
|
|
265
|
+
"aria-hidden": "true"
|
|
266
|
+
})]
|
|
267
|
+
})
|
|
268
|
+
});
|
|
345
269
|
}
|
|
346
|
-
function AccordionContent({
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
"overflow-hidden",
|
|
356
|
-
"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
|
|
357
|
-
),
|
|
358
|
-
...props,
|
|
359
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkW7AEYE7A_cjs.cn("pb-3.5 pt-0", className), children })
|
|
360
|
-
}
|
|
361
|
-
);
|
|
270
|
+
function AccordionContent({ className, children, ...props }) {
|
|
271
|
+
return (0, react_jsx_runtime.jsx)(_radix_ui_react_accordion.Content, {
|
|
272
|
+
className: require_use_theme.cn("overflow-hidden", "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"),
|
|
273
|
+
...props,
|
|
274
|
+
children: (0, react_jsx_runtime.jsx)("div", {
|
|
275
|
+
className: require_use_theme.cn("pb-3.5 pt-0", className),
|
|
276
|
+
children
|
|
277
|
+
})
|
|
278
|
+
});
|
|
362
279
|
}
|
|
280
|
+
//#endregion
|
|
281
|
+
//#region src/markdown/faq.tsx
|
|
363
282
|
function splitFaq(markdown) {
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
283
|
+
const lines = markdown.split("\n");
|
|
284
|
+
const preamble = [];
|
|
285
|
+
const sections = [];
|
|
286
|
+
let current;
|
|
287
|
+
let fence;
|
|
288
|
+
for (const line of lines) {
|
|
289
|
+
const fenceMatch = /^\s{0,3}(`{3,}|~{3,})/.exec(line);
|
|
290
|
+
if (fenceMatch?.[1] !== void 0) {
|
|
291
|
+
const marker = fenceMatch[1][0];
|
|
292
|
+
if (fence === void 0) fence = marker;
|
|
293
|
+
else if (fence === marker) fence = void 0;
|
|
294
|
+
}
|
|
295
|
+
const heading = fence === void 0 ? /^##\s+(.+?)\s*$/.exec(line) : null;
|
|
296
|
+
if (heading?.[1] !== void 0) {
|
|
297
|
+
if (current) sections.push({
|
|
298
|
+
question: current.question,
|
|
299
|
+
answer: current.answer.join("\n")
|
|
300
|
+
});
|
|
301
|
+
current = {
|
|
302
|
+
question: heading[1],
|
|
303
|
+
answer: []
|
|
304
|
+
};
|
|
305
|
+
continue;
|
|
306
|
+
}
|
|
307
|
+
if (current) current.answer.push(line);
|
|
308
|
+
else preamble.push(line);
|
|
309
|
+
}
|
|
310
|
+
if (current) sections.push({
|
|
311
|
+
question: current.question,
|
|
312
|
+
answer: current.answer.join("\n")
|
|
313
|
+
});
|
|
314
|
+
return {
|
|
315
|
+
preamble: preamble.join("\n").trim(),
|
|
316
|
+
sections
|
|
317
|
+
};
|
|
387
318
|
}
|
|
388
319
|
function DocFaq({ children, className }) {
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
320
|
+
const { preamble, sections } = splitFaq(children);
|
|
321
|
+
const slugs = (0, react.useMemo)(() => sections.map((s) => require_use_theme.docSlug(s.question)), [sections]);
|
|
322
|
+
const [open, setOpen] = (0, react.useState)([]);
|
|
323
|
+
(0, react.useEffect)(() => {
|
|
324
|
+
if (typeof window === "undefined") return;
|
|
325
|
+
const sync = () => {
|
|
326
|
+
const id = require_use_theme.readDocHash();
|
|
327
|
+
if (id === "") return;
|
|
328
|
+
const i = slugs.indexOf(id);
|
|
329
|
+
if (i === -1) return;
|
|
330
|
+
setOpen((prev) => prev.includes(`q${i}`) ? prev : [...prev, `q${i}`]);
|
|
331
|
+
require_use_theme.scrollToDocAnchor(id, document.body);
|
|
332
|
+
};
|
|
333
|
+
sync();
|
|
334
|
+
window.addEventListener("hashchange", sync);
|
|
335
|
+
return () => window.removeEventListener("hashchange", sync);
|
|
336
|
+
}, [slugs]);
|
|
337
|
+
if (sections.length === 0) return (0, react_jsx_runtime.jsx)(DocMarkdown, {
|
|
338
|
+
className,
|
|
339
|
+
children
|
|
340
|
+
});
|
|
341
|
+
return (0, react_jsx_runtime.jsxs)("div", {
|
|
342
|
+
className: require_use_theme.cn("flex flex-col", className),
|
|
343
|
+
"data-testid": "doc-faq",
|
|
344
|
+
children: [preamble !== "" && (0, react_jsx_runtime.jsx)(DocMarkdown, {
|
|
345
|
+
className: "mb-2",
|
|
346
|
+
children: preamble
|
|
347
|
+
}), (0, react_jsx_runtime.jsx)(Accordion, {
|
|
348
|
+
type: "multiple",
|
|
349
|
+
value: open,
|
|
350
|
+
onValueChange: setOpen,
|
|
351
|
+
className: "w-full",
|
|
352
|
+
children: sections.map((s, i) => (0, react_jsx_runtime.jsxs)(AccordionItem, {
|
|
353
|
+
value: `q${i}`,
|
|
354
|
+
id: slugs[i],
|
|
355
|
+
className: "group/anchor scroll-mt-4",
|
|
356
|
+
"data-testid": `doc-faq:item:${i}`,
|
|
357
|
+
children: [(0, react_jsx_runtime.jsxs)(AccordionTrigger, { children: [(0, react_jsx_runtime.jsx)("span", {
|
|
358
|
+
className: "min-w-0",
|
|
359
|
+
children: s.question
|
|
360
|
+
}), (0, react_jsx_runtime.jsx)(DocAnchorLink, {
|
|
361
|
+
slug: slugs[i],
|
|
362
|
+
stopPropagation: true,
|
|
363
|
+
className: "ml-auto mr-1"
|
|
364
|
+
})] }), (0, react_jsx_runtime.jsx)(AccordionContent, { children: (0, react_jsx_runtime.jsx)(DocMarkdown, {
|
|
365
|
+
className: "prose-p:my-2 first:prose-p:mt-0 last:prose-p:mb-0",
|
|
366
|
+
children: s.answer
|
|
367
|
+
}) })]
|
|
368
|
+
}, `${i}-${s.question}`))
|
|
369
|
+
})]
|
|
370
|
+
});
|
|
427
371
|
}
|
|
372
|
+
//#endregion
|
|
373
|
+
//#region src/markdown/index.tsx
|
|
428
374
|
function DocMarkdown({ children, className }) {
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
pre: ({ children: kids, ...rest }) => {
|
|
492
|
-
const only = Array.isArray(kids) ? kids[0] : kids;
|
|
493
|
-
const cls = typeof only === "object" && only !== null && "props" in only ? only.props?.className ?? "" : "";
|
|
494
|
-
if (/\blanguage-mermaid\b/.test(cls)) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: kids });
|
|
495
|
-
return /* @__PURE__ */ jsxRuntime.jsx("pre", { ...rest, children: kids });
|
|
496
|
-
}
|
|
497
|
-
},
|
|
498
|
-
children
|
|
499
|
-
}
|
|
500
|
-
)
|
|
501
|
-
}
|
|
502
|
-
);
|
|
375
|
+
return (0, react_jsx_runtime.jsx)("div", {
|
|
376
|
+
className: require_use_theme.cn("prose prose-sm max-w-none dark:prose-invert", "prose-headings:scroll-mt-4 prose-headings:font-semibold", "prose-h1:text-base prose-h2:text-[0.9375rem] prose-h3:text-sm", "prose-p:leading-[1.65]", "prose-a:font-medium prose-a:underline-offset-2", "prose-img:rounded-md prose-img:border", "prose-video:rounded-md prose-video:border prose-video:w-full", "prose-table:text-[0.8125rem]", className),
|
|
377
|
+
children: (0, react_jsx_runtime.jsx)(react_markdown.default, {
|
|
378
|
+
remarkPlugins: [
|
|
379
|
+
remark_gfm.default,
|
|
380
|
+
remark_directive.default,
|
|
381
|
+
remarkVideoDirective
|
|
382
|
+
],
|
|
383
|
+
rehypePlugins: [rehype_slug.default, [rehype_sanitize.default, docSanitizeSchema]],
|
|
384
|
+
components: {
|
|
385
|
+
a: ({ href, children: kids, ...rest }) => (0, react_jsx_runtime.jsx)("a", {
|
|
386
|
+
href,
|
|
387
|
+
target: "_blank",
|
|
388
|
+
rel: "noopener noreferrer",
|
|
389
|
+
...rest,
|
|
390
|
+
children: kids
|
|
391
|
+
}),
|
|
392
|
+
img: ({ ...rest }) => (0, react_jsx_runtime.jsx)("img", {
|
|
393
|
+
loading: "lazy",
|
|
394
|
+
...rest,
|
|
395
|
+
alt: rest.alt ?? ""
|
|
396
|
+
}),
|
|
397
|
+
table: ({ children: kids, ...rest }) => (0, react_jsx_runtime.jsx)("div", {
|
|
398
|
+
className: "overflow-x-auto",
|
|
399
|
+
children: (0, react_jsx_runtime.jsx)("table", {
|
|
400
|
+
...rest,
|
|
401
|
+
children: kids
|
|
402
|
+
})
|
|
403
|
+
}),
|
|
404
|
+
code: ({ className: cls, children: kids, ...rest }) => {
|
|
405
|
+
if (/\blanguage-mermaid\b/.test(cls ?? "")) return (0, react_jsx_runtime.jsx)(MermaidDiagram, { code: String(kids).replace(/\n$/, "") });
|
|
406
|
+
return (0, react_jsx_runtime.jsx)("code", {
|
|
407
|
+
className: cls,
|
|
408
|
+
...rest,
|
|
409
|
+
children: kids
|
|
410
|
+
});
|
|
411
|
+
},
|
|
412
|
+
h2: ({ children: kids, id, ...rest }) => (0, react_jsx_runtime.jsx)(HeadingWithAnchor, {
|
|
413
|
+
level: 2,
|
|
414
|
+
id,
|
|
415
|
+
...rest,
|
|
416
|
+
children: kids
|
|
417
|
+
}),
|
|
418
|
+
h3: ({ children: kids, id, ...rest }) => (0, react_jsx_runtime.jsx)(HeadingWithAnchor, {
|
|
419
|
+
level: 3,
|
|
420
|
+
id,
|
|
421
|
+
...rest,
|
|
422
|
+
children: kids
|
|
423
|
+
}),
|
|
424
|
+
pre: ({ children: kids, ...rest }) => {
|
|
425
|
+
const only = Array.isArray(kids) ? kids[0] : kids;
|
|
426
|
+
const cls = typeof only === "object" && only !== null && "props" in only ? only.props?.className ?? "" : "";
|
|
427
|
+
if (/\blanguage-mermaid\b/.test(cls)) return (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: kids });
|
|
428
|
+
return (0, react_jsx_runtime.jsx)("pre", {
|
|
429
|
+
...rest,
|
|
430
|
+
children: kids
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
},
|
|
434
|
+
children
|
|
435
|
+
})
|
|
436
|
+
});
|
|
503
437
|
}
|
|
504
|
-
function HeadingWithAnchor({
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
children,
|
|
514
|
-
slug !== void 0 && slug !== "" && /* @__PURE__ */ jsxRuntime.jsx(DocAnchorLink, { slug })
|
|
515
|
-
] });
|
|
438
|
+
function HeadingWithAnchor({ level, id, children, ...rest }) {
|
|
439
|
+
const Tag = level === 2 ? "h2" : "h3";
|
|
440
|
+
const slug = id?.startsWith("user-content-") ? id.slice(require_use_theme.DOC_ID_PREFIX.length) : id;
|
|
441
|
+
return (0, react_jsx_runtime.jsxs)(Tag, {
|
|
442
|
+
id,
|
|
443
|
+
className: "group/anchor scroll-mt-4",
|
|
444
|
+
...rest,
|
|
445
|
+
children: [children, slug !== void 0 && slug !== "" && (0, react_jsx_runtime.jsx)(DocAnchorLink, { slug })]
|
|
446
|
+
});
|
|
516
447
|
}
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
enumerable: true,
|
|
520
|
-
get: function () { return chunkYF5IW525_cjs.DOC_ID_PREFIX; }
|
|
521
|
-
});
|
|
522
|
-
Object.defineProperty(exports, "docShareUrl", {
|
|
523
|
-
enumerable: true,
|
|
524
|
-
get: function () { return chunkYF5IW525_cjs.docShareUrl; }
|
|
525
|
-
});
|
|
526
|
-
Object.defineProperty(exports, "docSlug", {
|
|
527
|
-
enumerable: true,
|
|
528
|
-
get: function () { return chunkYF5IW525_cjs.docSlug; }
|
|
529
|
-
});
|
|
530
|
-
Object.defineProperty(exports, "findDocAnchor", {
|
|
531
|
-
enumerable: true,
|
|
532
|
-
get: function () { return chunkYF5IW525_cjs.findDocAnchor; }
|
|
533
|
-
});
|
|
534
|
-
Object.defineProperty(exports, "readDocHash", {
|
|
535
|
-
enumerable: true,
|
|
536
|
-
get: function () { return chunkYF5IW525_cjs.readDocHash; }
|
|
537
|
-
});
|
|
538
|
-
Object.defineProperty(exports, "scrollToDocAnchor", {
|
|
539
|
-
enumerable: true,
|
|
540
|
-
get: function () { return chunkYF5IW525_cjs.scrollToDocAnchor; }
|
|
541
|
-
});
|
|
448
|
+
//#endregion
|
|
449
|
+
exports.DOC_ID_PREFIX = require_use_theme.DOC_ID_PREFIX;
|
|
542
450
|
exports.DocAnchorLink = DocAnchorLink;
|
|
543
451
|
exports.DocFaq = DocFaq;
|
|
544
452
|
exports.DocMarkdown = DocMarkdown;
|
|
545
453
|
exports.MermaidDiagram = MermaidDiagram;
|
|
546
454
|
exports.docSanitizeSchema = docSanitizeSchema;
|
|
455
|
+
exports.docShareUrl = require_use_theme.docShareUrl;
|
|
456
|
+
exports.docSlug = require_use_theme.docSlug;
|
|
457
|
+
exports.findDocAnchor = require_use_theme.findDocAnchor;
|
|
458
|
+
exports.readDocHash = require_use_theme.readDocHash;
|
|
547
459
|
exports.remarkVideoDirective = remarkVideoDirective;
|
|
460
|
+
exports.scrollToDocAnchor = require_use_theme.scrollToDocAnchor;
|
|
548
461
|
exports.splitFaq = splitFaq;
|
|
549
|
-
|
|
462
|
+
|
|
550
463
|
//# sourceMappingURL=index.cjs.map
|