@brett_lamy/docstream 1.3.0 → 1.5.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 +79 -5
- package/dist/assets.d.ts +3 -0
- package/dist/assets.d.ts.map +1 -0
- package/dist/assets.js +20 -0
- package/dist/assets.js.map +1 -0
- package/dist/demo/DemoViewer.d.ts +78 -0
- package/dist/demo/DemoViewer.d.ts.map +1 -0
- package/dist/demo/DemoViewer.js +467 -0
- package/dist/demo/DemoViewer.js.map +1 -0
- package/dist/demo/clipboard.d.ts +70 -0
- package/dist/demo/clipboard.d.ts.map +1 -0
- package/dist/demo/clipboard.js +187 -0
- package/dist/demo/clipboard.js.map +1 -0
- package/dist/demo/context.d.ts +20 -0
- package/dist/demo/context.d.ts.map +1 -0
- package/dist/demo/context.js +31 -0
- package/dist/demo/context.js.map +1 -0
- package/dist/demo/copy-demo.d.ts +23 -0
- package/dist/demo/copy-demo.d.ts.map +1 -0
- package/dist/demo/copy-demo.js +81 -0
- package/dist/demo/copy-demo.js.map +1 -0
- package/dist/demo/glob.d.ts +60 -0
- package/dist/demo/glob.d.ts.map +1 -0
- package/dist/demo/glob.js +158 -0
- package/dist/demo/glob.js.map +1 -0
- package/dist/demo/index.d.ts +16 -0
- package/dist/demo/index.d.ts.map +1 -0
- package/dist/demo/index.js +9 -0
- package/dist/demo/index.js.map +1 -0
- package/dist/demo/markdown.d.ts +60 -0
- package/dist/demo/markdown.d.ts.map +1 -0
- package/dist/demo/markdown.js +181 -0
- package/dist/demo/markdown.js.map +1 -0
- package/dist/demo/surface.d.ts +11 -0
- package/dist/demo/surface.d.ts.map +1 -0
- package/dist/demo/surface.js +69 -0
- package/dist/demo/surface.js.map +1 -0
- package/dist/demo/types.d.ts +91 -0
- package/dist/demo/types.d.ts.map +1 -0
- package/dist/demo/types.js +2 -0
- package/dist/demo/types.js.map +1 -0
- package/dist/demo/vfs.d.ts +51 -0
- package/dist/demo/vfs.d.ts.map +1 -0
- package/dist/demo/vfs.js +156 -0
- package/dist/demo/vfs.js.map +1 -0
- package/dist/docs/CollapsibleCode.d.ts +14 -0
- package/dist/docs/CollapsibleCode.d.ts.map +1 -0
- package/dist/docs/CollapsibleCode.js +19 -0
- package/dist/docs/CollapsibleCode.js.map +1 -0
- package/dist/docs/DocsRenderer.d.ts +55 -0
- package/dist/docs/DocsRenderer.d.ts.map +1 -0
- package/dist/docs/DocsRenderer.js +279 -0
- package/dist/docs/DocsRenderer.js.map +1 -0
- package/dist/docs/HighlightedCode.d.ts +6 -0
- package/dist/docs/HighlightedCode.d.ts.map +1 -0
- package/dist/docs/HighlightedCode.js +40 -0
- package/dist/docs/HighlightedCode.js.map +1 -0
- package/dist/docs/Mermaid.d.ts +7 -0
- package/dist/docs/Mermaid.d.ts.map +1 -0
- package/dist/docs/Mermaid.js +39 -0
- package/dist/docs/Mermaid.js.map +1 -0
- package/dist/docs/PageActions.d.ts +33 -0
- package/dist/docs/PageActions.d.ts.map +1 -0
- package/dist/docs/PageActions.js +115 -0
- package/dist/docs/PageActions.js.map +1 -0
- package/dist/docs/controls.d.ts +29 -0
- package/dist/docs/controls.d.ts.map +1 -0
- package/dist/docs/controls.js +46 -0
- package/dist/docs/controls.js.map +1 -0
- package/dist/docs/copy.d.ts +24 -0
- package/dist/docs/copy.d.ts.map +1 -0
- package/dist/docs/copy.js +62 -0
- package/dist/docs/copy.js.map +1 -0
- package/dist/docs/math.d.ts +3 -0
- package/dist/docs/math.d.ts.map +1 -0
- package/dist/docs/math.js +12 -0
- package/dist/docs/math.js.map +1 -0
- package/dist/docs/reference.d.ts +27 -0
- package/dist/docs/reference.d.ts.map +1 -0
- package/dist/docs/reference.js +73 -0
- package/dist/docs/reference.js.map +1 -0
- package/dist/docs/tabs-sync.d.ts +5 -0
- package/dist/docs/tabs-sync.d.ts.map +1 -0
- package/dist/docs/tabs-sync.js +58 -0
- package/dist/docs/tabs-sync.js.map +1 -0
- package/dist/gitbook/ast.d.ts +506 -0
- package/dist/gitbook/ast.d.ts.map +1 -0
- package/dist/gitbook/ast.js +8 -0
- package/dist/gitbook/ast.js.map +1 -0
- package/dist/gitbook/attrs.d.ts +14 -0
- package/dist/gitbook/attrs.d.ts.map +1 -0
- package/dist/gitbook/attrs.js +36 -0
- package/dist/gitbook/attrs.js.map +1 -0
- package/dist/gitbook/flatten.d.ts +14 -0
- package/dist/gitbook/flatten.d.ts.map +1 -0
- package/dist/gitbook/flatten.js +45 -0
- package/dist/gitbook/flatten.js.map +1 -0
- package/dist/gitbook/index.d.ts +10 -0
- package/dist/gitbook/index.d.ts.map +1 -0
- package/dist/gitbook/index.js +8 -0
- package/dist/gitbook/index.js.map +1 -0
- package/dist/gitbook/inline.d.ts +28 -0
- package/dist/gitbook/inline.d.ts.map +1 -0
- package/dist/gitbook/inline.js +956 -0
- package/dist/gitbook/inline.js.map +1 -0
- package/dist/gitbook/outline.d.ts +16 -0
- package/dist/gitbook/outline.d.ts.map +1 -0
- package/dist/gitbook/outline.js +44 -0
- package/dist/gitbook/outline.js.map +1 -0
- package/dist/gitbook/package-managers.d.ts +12 -0
- package/dist/gitbook/package-managers.d.ts.map +1 -0
- package/dist/gitbook/package-managers.js +93 -0
- package/dist/gitbook/package-managers.js.map +1 -0
- package/dist/gitbook/parse.d.ts +44 -0
- package/dist/gitbook/parse.d.ts.map +1 -0
- package/dist/gitbook/parse.js +1113 -0
- package/dist/gitbook/parse.js.map +1 -0
- package/dist/gitbook/serialize.d.ts +23 -0
- package/dist/gitbook/serialize.d.ts.map +1 -0
- package/dist/gitbook/serialize.js +498 -0
- package/dist/gitbook/serialize.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/openapi/OpenApiOperation.d.ts +6 -0
- package/dist/openapi/OpenApiOperation.d.ts.map +1 -0
- package/dist/openapi/OpenApiOperation.js +112 -0
- package/dist/openapi/OpenApiOperation.js.map +1 -0
- package/dist/playground/InlineDemoPreview.d.ts +24 -0
- package/dist/playground/InlineDemoPreview.d.ts.map +1 -0
- package/dist/playground/InlineDemoPreview.js +48 -0
- package/dist/playground/InlineDemoPreview.js.map +1 -0
- package/dist/playground/PlaygroundStreamdown.d.ts +16 -0
- package/dist/playground/PlaygroundStreamdown.d.ts.map +1 -0
- package/dist/playground/PlaygroundStreamdown.js +22 -0
- package/dist/playground/PlaygroundStreamdown.js.map +1 -0
- package/dist/playground/ReactCodePreview.d.ts +64 -0
- package/dist/playground/ReactCodePreview.d.ts.map +1 -0
- package/dist/playground/ReactCodePreview.js +108 -0
- package/dist/playground/ReactCodePreview.js.map +1 -0
- package/dist/playground/filesystem.d.ts +27 -0
- package/dist/playground/filesystem.d.ts.map +1 -0
- package/dist/playground/filesystem.js +65 -0
- package/dist/playground/filesystem.js.map +1 -0
- package/dist/playground/index.d.ts +9 -0
- package/dist/playground/index.d.ts.map +1 -0
- package/dist/playground/index.js +7 -0
- package/dist/playground/index.js.map +1 -0
- package/dist/playground/project.d.ts +57 -0
- package/dist/playground/project.d.ts.map +1 -0
- package/dist/playground/project.js +137 -0
- package/dist/playground/project.js.map +1 -0
- package/dist/replay/NativeReplay.d.ts +9 -0
- package/dist/replay/NativeReplay.d.ts.map +1 -0
- package/dist/replay/NativeReplay.js +173 -0
- package/dist/replay/NativeReplay.js.map +1 -0
- package/dist/replay/ReplayPreview.d.ts +33 -0
- package/dist/replay/ReplayPreview.d.ts.map +1 -0
- package/dist/replay/ReplayPreview.js +91 -0
- package/dist/replay/ReplayPreview.js.map +1 -0
- package/dist/replay/index.d.ts +5 -0
- package/dist/replay/index.d.ts.map +1 -0
- package/dist/replay/index.js +4 -0
- package/dist/replay/index.js.map +1 -0
- package/dist/replay/sanitize.d.ts +4 -0
- package/dist/replay/sanitize.d.ts.map +1 -0
- package/dist/replay/sanitize.js +86 -0
- package/dist/replay/sanitize.js.map +1 -0
- package/dist/replay/url.d.ts +8 -0
- package/dist/replay/url.d.ts.map +1 -0
- package/dist/replay/url.js +41 -0
- package/dist/replay/url.js.map +1 -0
- package/dist/source/SourcePreview.d.ts +13 -0
- package/dist/source/SourcePreview.d.ts.map +1 -0
- package/dist/source/SourcePreview.js +47 -0
- package/dist/source/SourcePreview.js.map +1 -0
- package/dist/source/client.d.ts +7 -0
- package/dist/source/client.d.ts.map +1 -0
- package/dist/source/client.js +52 -0
- package/dist/source/client.js.map +1 -0
- package/dist/source/index.d.ts +6 -0
- package/dist/source/index.d.ts.map +1 -0
- package/dist/source/index.js +3 -0
- package/dist/source/index.js.map +1 -0
- package/dist/source/types.d.ts +33 -0
- package/dist/source/types.d.ts.map +1 -0
- package/dist/source/types.js +2 -0
- package/dist/source/types.js.map +1 -0
- package/dist/streamdown.d.ts +19 -0
- package/dist/streamdown.d.ts.map +1 -0
- package/dist/streamdown.js +15 -0
- package/dist/streamdown.js.map +1 -0
- package/dist/styles.css +2441 -0
- package/dist/video/VideoEmbed.d.ts +17 -0
- package/dist/video/VideoEmbed.d.ts.map +1 -0
- package/dist/video/VideoEmbed.js +12 -0
- package/dist/video/VideoEmbed.js.map +1 -0
- package/dist/video/index.d.ts +3 -0
- package/dist/video/index.d.ts.map +1 -0
- package/dist/video/index.js +2 -0
- package/dist/video/index.js.map +1 -0
- package/dist/vite/index.d.ts +21 -0
- package/dist/vite/index.d.ts.map +1 -0
- package/dist/vite/index.js +137 -0
- package/dist/vite/index.js.map +1 -0
- package/dist/viz/VizEmbed.d.ts +18 -0
- package/dist/viz/VizEmbed.d.ts.map +1 -0
- package/dist/viz/VizEmbed.js +12 -0
- package/dist/viz/VizEmbed.js.map +1 -0
- package/dist/viz/index.d.ts +4 -0
- package/dist/viz/index.d.ts.map +1 -0
- package/dist/viz/index.js +3 -0
- package/dist/viz/index.js.map +1 -0
- package/package.json +65 -32
- package/src/demo/DemoViewer.tsx +56 -11
- package/src/demo/clipboard.ts +228 -0
- package/src/demo/context.ts +7 -0
- package/src/demo/copy-demo.tsx +102 -0
- package/src/demo/index.ts +29 -2
- package/src/demo/vfs.ts +197 -0
- package/src/docs/DocsRenderer.tsx +13 -4
- package/src/docs/Mermaid.tsx +5 -3
- package/src/index.ts +19 -0
- package/src/replay/ReplayPreview.tsx +0 -1
- package/src/streamdown.tsx +2 -0
- package/src/styles.css +91 -0
- package/src/replay/styles.css +0 -87
package/dist/demo/vfs.js
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/* The demo virtual file system: demo files held in memory by `src`, for demos no host
|
|
2
|
+
resolver knows — typically ones pasted from another docstream page or editor.
|
|
3
|
+
|
|
4
|
+
- `DemoViewer` reads it from context (`DocstreamDemoVFSContext`, or a renderer's `demoVFS`):
|
|
5
|
+
a block with no inline files whose `src` is in the VFS shows the VFS files exactly like
|
|
6
|
+
inline files (the host resolver still wins when it knows `src`; the Preview runs through
|
|
7
|
+
the `demoRuntime`, else the Code view opens with the "needs runtime" note).
|
|
8
|
+
- `vfs.resolver({ resolver, runtime })` is the same thing as a `DemoResolver`, layered over
|
|
9
|
+
a host resolver: `files` / `meta` from the host when it knows `src`, else from the VFS;
|
|
10
|
+
`load` from the host, else a component that runs the VFS files through the runtime.
|
|
11
|
+
- One VFS may be shared by several editors / renderers; `subscribe` reports changes so a
|
|
12
|
+
host can persist pasted files. */
|
|
13
|
+
import { useContext, useRef, useSyncExternalStore } from "react";
|
|
14
|
+
import { DocstreamDemoVFSContext } from "./context.js";
|
|
15
|
+
const RUNTIME_NOTE = "Live preview needs the playground runtime. The code is shown instead.";
|
|
16
|
+
function cleanFiles(files) {
|
|
17
|
+
return files
|
|
18
|
+
.filter((f) => f && typeof f.path === "string" && typeof f.content === "string")
|
|
19
|
+
.map((f) => ({ path: f.path, content: f.content, ...(f.language ? { language: f.language } : {}) }));
|
|
20
|
+
}
|
|
21
|
+
function entryFirst(files, entry) {
|
|
22
|
+
const index = entry ? files.findIndex((f) => f.path === entry) : -1;
|
|
23
|
+
return index > 0 ? [files[index], ...files.slice(0, index), ...files.slice(index + 1)] : files;
|
|
24
|
+
}
|
|
25
|
+
const same = (a, b) => JSON.stringify(a) === JSON.stringify(b);
|
|
26
|
+
/** A new, empty (or pre-filled) demo VFS. */
|
|
27
|
+
export function createDemoVFS(initial) {
|
|
28
|
+
const entries = new Map();
|
|
29
|
+
const listeners = new Set();
|
|
30
|
+
let snap = null;
|
|
31
|
+
let fileSnap = null;
|
|
32
|
+
const put = (src, files, meta) => {
|
|
33
|
+
const entry = { files: cleanFiles(files), ...(meta && Object.keys(meta).length ? { meta } : {}) };
|
|
34
|
+
const prev = entries.get(src);
|
|
35
|
+
if (prev && same(prev, entry))
|
|
36
|
+
return undefined;
|
|
37
|
+
entries.set(src, entry);
|
|
38
|
+
return entry;
|
|
39
|
+
};
|
|
40
|
+
const emit = (change) => {
|
|
41
|
+
snap = null;
|
|
42
|
+
fileSnap = null;
|
|
43
|
+
for (const listener of Array.from(listeners))
|
|
44
|
+
listener(change);
|
|
45
|
+
};
|
|
46
|
+
for (const [src, value] of Object.entries(initial ?? {})) {
|
|
47
|
+
if (Array.isArray(value))
|
|
48
|
+
put(src, value);
|
|
49
|
+
else if (value)
|
|
50
|
+
put(src, value.files, value.meta);
|
|
51
|
+
}
|
|
52
|
+
const vfs = {
|
|
53
|
+
get: (src) => entries.get(src),
|
|
54
|
+
has: (src) => entries.has(src),
|
|
55
|
+
list: () => Array.from(entries.keys()),
|
|
56
|
+
set(src, files, meta) {
|
|
57
|
+
const entry = put(src, files, meta);
|
|
58
|
+
if (entry)
|
|
59
|
+
emit({ src, entry });
|
|
60
|
+
},
|
|
61
|
+
delete(src) {
|
|
62
|
+
if (!entries.delete(src))
|
|
63
|
+
return false;
|
|
64
|
+
emit({ src, entry: undefined });
|
|
65
|
+
return true;
|
|
66
|
+
},
|
|
67
|
+
clear() {
|
|
68
|
+
for (const src of Array.from(entries.keys()))
|
|
69
|
+
vfs.delete(src);
|
|
70
|
+
},
|
|
71
|
+
snapshot() {
|
|
72
|
+
if (!snap)
|
|
73
|
+
snap = Object.fromEntries(entries);
|
|
74
|
+
return snap;
|
|
75
|
+
},
|
|
76
|
+
files() {
|
|
77
|
+
if (!fileSnap)
|
|
78
|
+
fileSnap = Object.fromEntries(Array.from(entries, ([src, e]) => [src, e.files]));
|
|
79
|
+
return fileSnap;
|
|
80
|
+
},
|
|
81
|
+
subscribe(listener) {
|
|
82
|
+
listeners.add(listener);
|
|
83
|
+
return () => {
|
|
84
|
+
listeners.delete(listener);
|
|
85
|
+
};
|
|
86
|
+
},
|
|
87
|
+
resolver: (options) => layeredResolver(vfs, options ?? {}),
|
|
88
|
+
};
|
|
89
|
+
return vfs;
|
|
90
|
+
}
|
|
91
|
+
function layeredResolver(vfs, { resolver: host, runtime, dependencies }) {
|
|
92
|
+
// Whether the host should be asked first: it lists `src`, or it can't list at all.
|
|
93
|
+
const hostFirst = (src) => !!host && (!host.list || host.list().includes(src) || !vfs.has(src));
|
|
94
|
+
const fromVfs = (src) => {
|
|
95
|
+
const entry = vfs.get(src);
|
|
96
|
+
if (!entry)
|
|
97
|
+
throw new Error(`Unknown demo: ${src}`);
|
|
98
|
+
return entry;
|
|
99
|
+
};
|
|
100
|
+
async function pick(src, viaHost, viaVfs) {
|
|
101
|
+
if (hostFirst(src)) {
|
|
102
|
+
try {
|
|
103
|
+
return await viaHost(host);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
if (!vfs.has(src))
|
|
107
|
+
throw error;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return viaVfs(fromVfs(src));
|
|
111
|
+
}
|
|
112
|
+
const layered = {
|
|
113
|
+
list: () => Array.from(new Set([...(host?.list?.() ?? []), ...vfs.list()])),
|
|
114
|
+
meta: (src) => pick(src, (h) => h.meta(src), (e) => e.meta),
|
|
115
|
+
files: (src) => pick(src, (h) => h.files(src), (e) => entryFirst(e.files, e.meta?.entry)),
|
|
116
|
+
load: (src) => pick(src, (h) => h.load(src), (e) => {
|
|
117
|
+
if (!runtime)
|
|
118
|
+
throw new Error(RUNTIME_NOTE);
|
|
119
|
+
const files = entryFirst(e.files, e.meta?.entry);
|
|
120
|
+
const title = e.meta?.title ?? (src.split("/").pop() || "Demo");
|
|
121
|
+
const VfsDemo = ({ variant }) => runtime({ src, title, files, entry: files[0]?.path ?? "index.tsx", ...(variant ? { variant } : {}), ...(dependencies ? { dependencies } : {}) });
|
|
122
|
+
VfsDemo.displayName = `VfsDemo(${src})`;
|
|
123
|
+
return VfsDemo;
|
|
124
|
+
}),
|
|
125
|
+
};
|
|
126
|
+
if (host?.href)
|
|
127
|
+
layered.href = (src, options) => (hostFirst(src) ? host.href(src, options) : undefined);
|
|
128
|
+
return layered;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* A demo VFS owned by the calling component (created once). Pass it as `demoVFS` to several
|
|
132
|
+
* editors / renderers to share pasted demo files between them.
|
|
133
|
+
*/
|
|
134
|
+
export function useDemoVFS(initial) {
|
|
135
|
+
const ref = useRef(null);
|
|
136
|
+
if (!ref.current)
|
|
137
|
+
ref.current = createDemoVFS(initial);
|
|
138
|
+
return ref.current;
|
|
139
|
+
}
|
|
140
|
+
/** The VFS in context (a renderer's or editor's `demoVFS`), unless `override` is given. */
|
|
141
|
+
export function useDemoVFSContext(override) {
|
|
142
|
+
const inherited = useContext(DocstreamDemoVFSContext);
|
|
143
|
+
return override ?? inherited;
|
|
144
|
+
}
|
|
145
|
+
const EMPTY = Object.freeze({});
|
|
146
|
+
const noop = () => () => { };
|
|
147
|
+
/** `{ [src]: files }` of a VFS, re-rendering on change. */
|
|
148
|
+
export function useDemoVFSFiles(vfs) {
|
|
149
|
+
return useSyncExternalStore(vfs ? vfs.subscribe : noop, () => (vfs ? vfs.files() : EMPTY), () => (vfs ? vfs.files() : EMPTY));
|
|
150
|
+
}
|
|
151
|
+
/** One VFS entry, re-rendering when it changes. */
|
|
152
|
+
export function useDemoVFSEntry(vfs, src) {
|
|
153
|
+
const snapshot = useSyncExternalStore(vfs ? vfs.subscribe : noop, () => vfs?.snapshot(), () => vfs?.snapshot());
|
|
154
|
+
return src ? snapshot?.[src] : undefined;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=vfs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vfs.js","sourceRoot":"","sources":["../../src/demo/vfs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface CollapsibleCodeProps {
|
|
2
|
+
code: string;
|
|
3
|
+
language: string | null;
|
|
4
|
+
/** Lines visible while collapsed. Defaults to 3. */
|
|
5
|
+
collapsedLines?: number;
|
|
6
|
+
/** Lines visible when expanded before the panel scrolls. Defaults to 30. */
|
|
7
|
+
expandedLines?: number;
|
|
8
|
+
/** Show a copy button in the panel corner. Defaults to true. */
|
|
9
|
+
copy?: boolean;
|
|
10
|
+
copyLabel?: string;
|
|
11
|
+
}
|
|
12
|
+
/** The line-numbered code panel under a demo: a few lines, then "View Code" to expand. */
|
|
13
|
+
export declare function CollapsibleCode({ code, language, collapsedLines, expandedLines, copy, copyLabel }: CollapsibleCodeProps): import("react").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=CollapsibleCode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollapsibleCode.d.ts","sourceRoot":"","sources":["../../src/docs/CollapsibleCode.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gEAAgE;IAChE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,IAAW,EAAE,SAAS,EAAE,EAAE,oBAAoB,+BAgC9H"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useId, useState } from "react";
|
|
3
|
+
import { HighlightedCode } from "./HighlightedCode.js";
|
|
4
|
+
import { CopyButton } from "./copy.js";
|
|
5
|
+
function positiveLineCount(value, fallback) {
|
|
6
|
+
return value !== undefined && Number.isFinite(value) && value > 0 ? Math.floor(value) : fallback;
|
|
7
|
+
}
|
|
8
|
+
/** The line-numbered code panel under a demo: a few lines, then "View Code" to expand. */
|
|
9
|
+
export function CollapsibleCode({ code, language, collapsedLines, expandedLines, copy = true, copyLabel }) {
|
|
10
|
+
const [expanded, setExpanded] = useState(false);
|
|
11
|
+
const panelId = useId();
|
|
12
|
+
const collapsed = positiveLineCount(collapsedLines, 3);
|
|
13
|
+
const expandedCount = Math.max(collapsed, positiveLineCount(expandedLines, 30));
|
|
14
|
+
const total = code.split("\n").length;
|
|
15
|
+
const needsToggle = total > collapsed;
|
|
16
|
+
const isOpen = expanded || !needsToggle;
|
|
17
|
+
return (_jsxs("div", { className: "docs-react-demo-code", "data-expanded": isOpen || undefined, children: [_jsx("pre", { id: panelId, className: isOpen ? "docs-react-demo-code-body docs-react-demo-code-body-expanded" : "docs-react-demo-code-body", "data-toggle": needsToggle || undefined, style: { "--docs-react-demo-code-lines": isOpen ? expandedCount : collapsed }, children: _jsx(HighlightedCode, { code: code, language: language, lineNumbers: true }) }), copy ? _jsx(CopyButton, { text: code, label: copyLabel, className: "docs-react-demo-code-copy" }) : null, needsToggle ? (_jsx("button", { type: "button", className: "docs-react-demo-code-toggle", "aria-controls": panelId, "aria-expanded": expanded, onClick: () => setExpanded((value) => !value), children: expanded ? "Hide Code" : "View Code" })) : null] }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=CollapsibleCode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollapsibleCode.js","sourceRoot":"","sources":["../../src/docs/CollapsibleCode.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAsB,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAcnC,SAAS,iBAAiB,CAAC,KAAyB,EAAE,QAAgB;IACpE,OAAO,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;AAClG,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAwB;IAC7H,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;IACvB,MAAM,SAAS,GAAG,iBAAiB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;IACtD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAA;IAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;IACrC,MAAM,WAAW,GAAG,KAAK,GAAG,SAAS,CAAA;IACrC,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,WAAW,CAAA;IACvC,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,mBAAgB,MAAM,IAAI,SAAS,aACtE,cACE,EAAE,EAAE,OAAO,EACX,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,8DAA8D,CAAC,CAAC,CAAC,2BAA2B,iBACnG,WAAW,IAAI,SAAS,EACrC,KAAK,EAAE,EAAE,8BAA8B,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAAmB,YAE9F,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,SAAG,GAC3D,EACL,IAAI,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAC,2BAA2B,GAAG,CAAC,CAAC,CAAC,IAAI,EAChG,WAAW,CAAC,CAAC,CAAC,CACb,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,6BAA6B,mBACxB,OAAO,mBACP,QAAQ,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,YAE5C,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,GAC9B,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import type { DocumentNode, SourceRefNode } from "../gitbook/ast.js";
|
|
3
|
+
import type { DemoVFS } from "../demo/vfs.js";
|
|
4
|
+
import type { DemoResolver, InlineDemoRuntime } from "../demo/types.js";
|
|
5
|
+
import { type DocPageActionsOptions } from "./PageActions.js";
|
|
6
|
+
export interface LivePreviewProps {
|
|
7
|
+
files: Record<string, string>;
|
|
8
|
+
entry: string;
|
|
9
|
+
title: string;
|
|
10
|
+
collapsedCodeLines?: number;
|
|
11
|
+
expandedCodeLines?: number;
|
|
12
|
+
}
|
|
13
|
+
export type LivePreviewRenderer = (props: LivePreviewProps) => ReactNode;
|
|
14
|
+
export type SourceReferenceRenderer = (reference: SourceRefNode) => ReactNode;
|
|
15
|
+
interface Renderers {
|
|
16
|
+
liveRenderer?: LivePreviewRenderer;
|
|
17
|
+
sourceRenderer?: SourceReferenceRenderer;
|
|
18
|
+
}
|
|
19
|
+
export interface DocRenderOptions {
|
|
20
|
+
/** Resolves `{% demo %}` blocks. Provided through context, so nested renderers inherit it. */
|
|
21
|
+
demoResolver?: DemoResolver;
|
|
22
|
+
/**
|
|
23
|
+
* Runs the Preview of `{% demo %}` blocks that carry their files inline and have no
|
|
24
|
+
* resolver behind them. Nothing is supplied by default: pass `createAlmostNodeDemoRuntime()`
|
|
25
|
+
* from `@brett_lamy/docstream/playground` (or use its `PlaygroundStreamdown`) to run them.
|
|
26
|
+
* Without one, such demos show their code with a short note.
|
|
27
|
+
*/
|
|
28
|
+
demoRuntime?: InlineDemoRuntime;
|
|
29
|
+
/** Extra npm dependencies inline demos may import (`{ "@brett_lamy/ui": "^1.2.0" }`). */
|
|
30
|
+
demoDependencies?: Record<string, string>;
|
|
31
|
+
/**
|
|
32
|
+
* Demo files held in memory by `src` (`createDemoVFS` / `useDemoVFS`), e.g. demos pasted
|
|
33
|
+
* into an editor. Blocks without inline files use them when no resolver knows `src`.
|
|
34
|
+
*/
|
|
35
|
+
demoVFS?: DemoVFS;
|
|
36
|
+
/**
|
|
37
|
+
* Render "Copy page ▾" (Copy / View as Markdown, Open in ChatGPT / Claude) above the content.
|
|
38
|
+
* `true` uses the defaults; an object passes options to `DocPageActions`.
|
|
39
|
+
*/
|
|
40
|
+
pageActions?: boolean | DocPageActionsOptions;
|
|
41
|
+
}
|
|
42
|
+
export declare function PageActionsBar({ markdown, options }: {
|
|
43
|
+
markdown: string | (() => string);
|
|
44
|
+
options: boolean | DocPageActionsOptions | undefined;
|
|
45
|
+
}): import("react").JSX.Element | null;
|
|
46
|
+
export declare function MarkdownContent({ markdown, liveRenderer, sourceRenderer, demoResolver, demoRuntime, demoDependencies, demoVFS, pageActions, className, }: {
|
|
47
|
+
markdown: string;
|
|
48
|
+
className?: string;
|
|
49
|
+
} & Renderers & DocRenderOptions): string | number | boolean | Iterable<ReactNode> | import("react").JSX.Element | null | undefined;
|
|
50
|
+
export declare function DocsRenderer({ doc, liveRenderer, sourceRenderer, demoResolver, demoRuntime, demoDependencies, demoVFS, pageActions, markdown, }: {
|
|
51
|
+
doc: DocumentNode; /** Source for page actions; defaults to `serializeMarkdown(doc)`. */
|
|
52
|
+
markdown?: string;
|
|
53
|
+
} & Renderers & DocRenderOptions): string | number | boolean | Iterable<ReactNode> | import("react").JSX.Element | null | undefined;
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=DocsRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocsRenderer.d.ts","sourceRoot":"","sources":["../../src/docs/DocsRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAYvF,OAAO,KAAK,EAAqC,YAAY,EAA0B,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAO5H,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAGpE,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAuC1E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,SAAS,CAAA;AAExE,MAAM,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,aAAa,KAAK,SAAS,CAAA;AAiE7E,UAAU,SAAS;IACjB,YAAY,CAAC,EAAE,mBAAmB,CAAA;IAClC,cAAc,CAAC,EAAE,uBAAuB,CAAA;CACzC;AA0bD,MAAM,WAAW,gBAAgB;IAC/B,8FAA8F;IAC9F,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAA;CAC9C;AA0BD,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,CAAA;CAAE,sCAOhJ;AAID,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,SAAS,GACV,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,gBAAgB,oGAUzE;AAED,wBAAgB,YAAY,CAAC,EAC3B,GAAG,EACH,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,QAAQ,GACT,EAAE;IAAE,GAAG,EAAE,YAAY,CAAC,CAAC,qEAAqE;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,gBAAgB,oGAS/I"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useContext, useEffect, useId, useMemo, useState } from "react";
|
|
3
|
+
import { motion, useReducedMotion } from "framer-motion";
|
|
4
|
+
import { AlertTriangle, CheckCircle2, ChevronRight, File, Info, Terminal, XCircle, } from "lucide-react";
|
|
5
|
+
import { PACKAGE_MANAGERS, packageManagerCommands } from "../gitbook/package-managers.js";
|
|
6
|
+
import { slugify } from "../gitbook/outline.js";
|
|
7
|
+
import { resolveAsset } from "../assets.js";
|
|
8
|
+
import { parseMarkdown } from "../gitbook/parse.js";
|
|
9
|
+
import { serializeMarkdown } from "../gitbook/serialize.js";
|
|
10
|
+
import { DocstreamDemoContext, DocstreamDemoRuntimeContext, DocstreamDemoVFSContext } from "../demo/context.js";
|
|
11
|
+
import { DemoBlock } from "../demo/DemoViewer.js";
|
|
12
|
+
import { CopyButton } from "./copy.js";
|
|
13
|
+
import { PillTabs, rovingKeyDown } from "./controls.js";
|
|
14
|
+
import { DocPageActions } from "./PageActions.js";
|
|
15
|
+
import { useSyncedTab } from "./tabs-sync.js";
|
|
16
|
+
import { ReplayPreview } from "../replay/ReplayPreview.js";
|
|
17
|
+
import { isReplayQaUrl } from "../replay/url.js";
|
|
18
|
+
import { VideoEmbed } from "../video/index.js";
|
|
19
|
+
import { OpenApiOperation } from "../openapi/OpenApiOperation.js";
|
|
20
|
+
import { Mermaid } from "./Mermaid.js";
|
|
21
|
+
import { HighlightedCode } from "./HighlightedCode.js";
|
|
22
|
+
import { CitationSources, InlineReference } from "./reference.js";
|
|
23
|
+
let mathRenderer = null;
|
|
24
|
+
let mathLoad = null;
|
|
25
|
+
function loadMathRenderer() {
|
|
26
|
+
mathLoad ??= import("./math.js").then((m) => (mathRenderer = m.renderMathToHtml));
|
|
27
|
+
return mathLoad;
|
|
28
|
+
}
|
|
29
|
+
// KaTeX loads on first use; until then the TeX source shows in place.
|
|
30
|
+
function MathBlock({ formula }) {
|
|
31
|
+
const [render, setRender] = useState(() => mathRenderer);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (render)
|
|
34
|
+
return;
|
|
35
|
+
let live = true;
|
|
36
|
+
loadMathRenderer().then((fn) => live && setRender(() => fn), () => { });
|
|
37
|
+
return () => {
|
|
38
|
+
live = false;
|
|
39
|
+
};
|
|
40
|
+
}, [render]);
|
|
41
|
+
if (!render) {
|
|
42
|
+
return (_jsx("div", { className: "docs-math", "data-pending": "", children: _jsx("code", { children: formula }) }));
|
|
43
|
+
}
|
|
44
|
+
return _jsx("div", { className: "docs-math", dangerouslySetInnerHTML: { __html: render(formula) } });
|
|
45
|
+
}
|
|
46
|
+
function InlineText({ nodes }) {
|
|
47
|
+
return (_jsx(_Fragment, { children: nodes.map((n, i) => {
|
|
48
|
+
const emphasized = !!(n.bold || n.italic || n.strike);
|
|
49
|
+
let el;
|
|
50
|
+
if (n.type === "reference") {
|
|
51
|
+
if (!emphasized && !n.link)
|
|
52
|
+
return _jsx(InlineReference, { node: n }, i);
|
|
53
|
+
el = _jsx(InlineReference, { node: n });
|
|
54
|
+
}
|
|
55
|
+
else if (n.type === "image") {
|
|
56
|
+
const img = (_jsx("img", { src: resolveAsset(n.src), alt: n.alt ?? "", className: "docs-inline-img", style: { width: n.width, height: n.height } }));
|
|
57
|
+
const linked = n.link ? (_jsx("a", { href: n.link, target: "_blank", rel: "noreferrer", className: "docs-inline-img-link", children: img }, i)) : null;
|
|
58
|
+
if (!emphasized)
|
|
59
|
+
return linked ?? _jsx("span", { children: img }, i);
|
|
60
|
+
// The image's link is its own anchor; emphasis wraps it.
|
|
61
|
+
el = linked ?? img;
|
|
62
|
+
if (n.bold)
|
|
63
|
+
el = _jsx("strong", { children: el });
|
|
64
|
+
if (n.italic)
|
|
65
|
+
el = _jsx("em", { children: el });
|
|
66
|
+
if (n.strike)
|
|
67
|
+
el = _jsx("s", { children: el });
|
|
68
|
+
return _jsx("span", { children: el }, i);
|
|
69
|
+
}
|
|
70
|
+
else
|
|
71
|
+
el = n.text;
|
|
72
|
+
if (n.type === "text" && n.code)
|
|
73
|
+
el = _jsx("code", { children: el });
|
|
74
|
+
if (n.bold)
|
|
75
|
+
el = _jsx("strong", { children: el });
|
|
76
|
+
if (n.italic)
|
|
77
|
+
el = _jsx("em", { children: el });
|
|
78
|
+
if (n.strike)
|
|
79
|
+
el = _jsx("s", { children: el });
|
|
80
|
+
if (n.link)
|
|
81
|
+
el = (_jsx("a", { href: n.link, target: "_blank", rel: "noreferrer", children: el }));
|
|
82
|
+
return _jsx("span", { children: el }, i);
|
|
83
|
+
}) }));
|
|
84
|
+
}
|
|
85
|
+
const HINT_ICONS = {
|
|
86
|
+
info: Info,
|
|
87
|
+
success: CheckCircle2,
|
|
88
|
+
warning: AlertTriangle,
|
|
89
|
+
danger: XCircle,
|
|
90
|
+
};
|
|
91
|
+
function embedSrc(url) {
|
|
92
|
+
const yt = url.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/)([\w-]+)/);
|
|
93
|
+
return yt ? `https://www.youtube.com/embed/${yt[1]}` : null;
|
|
94
|
+
}
|
|
95
|
+
function isDirectVideo(url) {
|
|
96
|
+
return /\.(?:mp4|webm|ogg)(?:[?#]|$)/i.test(url);
|
|
97
|
+
}
|
|
98
|
+
const SHELL_LANGUAGES = new Set(["sh", "bash", "shell", "zsh", "console", "shellsession", "powershell", "ps1", "bat", "cmd"]);
|
|
99
|
+
/** A tab set whose every tab is exactly one code block renders as one code block with tabs in its header. */
|
|
100
|
+
function codeOnlyTabs(block) {
|
|
101
|
+
if (!block.tabs.length)
|
|
102
|
+
return null;
|
|
103
|
+
const codes = [];
|
|
104
|
+
for (const tab of block.tabs) {
|
|
105
|
+
const only = tab.children.length === 1 ? tab.children[0] : null;
|
|
106
|
+
if (!only || only.type !== "code" || only.live || only.language === "mermaid")
|
|
107
|
+
return null;
|
|
108
|
+
codes.push(only);
|
|
109
|
+
}
|
|
110
|
+
return codes;
|
|
111
|
+
}
|
|
112
|
+
/** The underline tab strip shared by tab sets and command boxes. */
|
|
113
|
+
function TabStrip({ titles, active, onSelect, label, baseId }) {
|
|
114
|
+
const reduced = useReducedMotion();
|
|
115
|
+
const ids = titles.map((_, i) => String(i));
|
|
116
|
+
return (_jsx("div", { className: "docs-tabs-header", role: "tablist", "aria-label": label, onKeyDown: (event) => rovingKeyDown(event, ids, String(active), (id) => onSelect(Number(id))), children: titles.map((title, i) => (_jsxs("button", { id: `${baseId}-tab-${i}`, type: "button", role: "tab", "data-roving": "", "aria-selected": i === active, "aria-controls": `${baseId}-panel`, tabIndex: i === active ? 0 : -1, className: i === active ? "docs-tab-active" : "", onClick: () => onSelect(i), children: [i === active ? (_jsx(motion.span, { className: "docs-tab-indicator", layoutId: `docs-tab-indicator-${baseId}`, transition: reduced ? { duration: 0 } : { type: "spring", bounce: 0.2, duration: 0.6 } })) : null, _jsx("span", { className: "docs-tab-label", children: title })] }, i))) }));
|
|
117
|
+
}
|
|
118
|
+
/** `{% command %}`: one npm command, shown for the reader's package manager (synced page-wide). */
|
|
119
|
+
function CommandBox({ block }) {
|
|
120
|
+
const [synced, setSynced] = useSyncedTab(block.sync ?? "pm");
|
|
121
|
+
const [local, setLocal] = useState(PACKAGE_MANAGERS[0]);
|
|
122
|
+
const active = synced && PACKAGE_MANAGERS.includes(synced) ? synced : local;
|
|
123
|
+
const commands = useMemo(() => packageManagerCommands(block.command, block.overrides), [block.command, block.overrides]);
|
|
124
|
+
const baseId = useId();
|
|
125
|
+
const index = PACKAGE_MANAGERS.indexOf(active);
|
|
126
|
+
const select = (i) => {
|
|
127
|
+
const pm = PACKAGE_MANAGERS[i];
|
|
128
|
+
setLocal(pm);
|
|
129
|
+
setSynced(pm);
|
|
130
|
+
};
|
|
131
|
+
return (_jsxs("div", { className: "docs-tabs docs-tabs-code docs-command", "data-sync": block.sync ?? "pm", "data-pm": active, children: [_jsxs("div", { className: "docs-tabs-code-head", children: [_jsx("span", { className: "docs-tabs-code-term", "aria-hidden": "true", children: _jsx(Terminal, { width: 12, height: 12, strokeWidth: 2.4 }) }), _jsx(TabStrip, { titles: [...PACKAGE_MANAGERS], active: index, onSelect: select, label: "Package manager", baseId: baseId }), _jsx("span", { className: "docs-tabs-code-title" }), _jsx(CopyButton, { text: commands[active], label: `Copy ${active} command` })] }), _jsx("div", { className: "docs-tabs-code-body", role: "tabpanel", id: `${baseId}-panel`, "aria-labelledby": `${baseId}-tab-${index}`, children: _jsx("pre", { children: _jsx(HighlightedCode, { code: commands[active], language: "sh", lineNumbers: false }) }) })] }));
|
|
132
|
+
}
|
|
133
|
+
function Tabs({ block, liveRenderer, sourceRenderer }) {
|
|
134
|
+
const [local, setLocal] = useState(0);
|
|
135
|
+
const [synced, setSynced] = useSyncedTab(block.sync);
|
|
136
|
+
const syncedIndex = synced === null ? -1 : block.tabs.findIndex((t) => t.title === synced);
|
|
137
|
+
const active = Math.min(syncedIndex >= 0 ? syncedIndex : local, Math.max(0, block.tabs.length - 1));
|
|
138
|
+
const baseId = useId();
|
|
139
|
+
const codes = useMemo(() => codeOnlyTabs(block), [block]);
|
|
140
|
+
const select = (index) => {
|
|
141
|
+
setLocal(index);
|
|
142
|
+
const title = block.tabs[index]?.title;
|
|
143
|
+
if (block.sync && title !== undefined)
|
|
144
|
+
setSynced(title);
|
|
145
|
+
};
|
|
146
|
+
const header = (_jsx(TabStrip, { titles: block.tabs.map((t) => t.title), active: active, onSelect: select, label: block.sync ? `${block.sync} options` : "Content tabs", baseId: baseId }));
|
|
147
|
+
if (block.title) {
|
|
148
|
+
const Heading = `h${block.level ?? 2}`;
|
|
149
|
+
const headingId = slugify(block.title);
|
|
150
|
+
return (_jsxs("section", { className: "docs-tabs-section", "data-sync": block.sync, "aria-labelledby": headingId, children: [_jsxs("div", { className: "docs-tabs-section-head", children: [_jsx(Heading, { id: headingId, className: "docs-tabs-section-title", children: block.title }), _jsx(PillTabs, { options: block.tabs.map((t, i) => ({ id: String(i), label: t.title })), value: String(active), onChange: (id) => select(Number(id)), label: `${block.title}: ${block.sync ? `${block.sync} options` : "options"}`, tabId: (id) => `${baseId}-tab-${id}`, panelId: () => `${baseId}-panel` })] }), _jsx("div", { className: "docs-tabs-section-body", role: "tabpanel", id: `${baseId}-panel`, "aria-labelledby": `${baseId}-tab-${active}`, children: _jsx(Blocks, { blocks: block.tabs[active]?.children ?? [], liveRenderer: liveRenderer, sourceRenderer: sourceRenderer }) })] }));
|
|
151
|
+
}
|
|
152
|
+
if (codes) {
|
|
153
|
+
const code = codes[active];
|
|
154
|
+
const shell = codes.every((c) => c.language && SHELL_LANGUAGES.has(c.language.toLowerCase()));
|
|
155
|
+
const numbered = code.lineNumbers && code.code.includes("\n") && !shell;
|
|
156
|
+
return (_jsxs("div", { className: "docs-tabs docs-tabs-code", "data-sync": block.sync, children: [_jsxs("div", { className: "docs-tabs-code-head", children: [shell ? (_jsx("span", { className: "docs-tabs-code-term", "aria-hidden": "true", children: _jsx(Terminal, { width: 12, height: 12, strokeWidth: 2.4 }) })) : null, header, _jsx("span", { className: "docs-tabs-code-title", children: code.title }), _jsx(CopyButton, { text: code.code, label: `Copy ${block.tabs[active]?.title ?? "code"}` })] }), _jsx("div", { className: "docs-tabs-code-body", role: "tabpanel", id: `${baseId}-panel`, "aria-labelledby": `${baseId}-tab-${active}`, children: _jsx("pre", { className: numbered ? "docs-code-numbered" : "", children: _jsx(HighlightedCode, { code: code.code, language: code.language, lineNumbers: numbered }) }) })] }));
|
|
157
|
+
}
|
|
158
|
+
return (_jsxs("div", { className: "docs-tabs", "data-sync": block.sync, children: [header, _jsx("div", { className: "docs-tabs-body", role: "tabpanel", id: `${baseId}-panel`, "aria-labelledby": `${baseId}-tab-${active}`, children: _jsx(Blocks, { blocks: block.tabs[active]?.children ?? [], liveRenderer: liveRenderer, sourceRenderer: sourceRenderer }) })] }));
|
|
159
|
+
}
|
|
160
|
+
function BlockView({ block, liveRenderer, sourceRenderer }) {
|
|
161
|
+
switch (block.type) {
|
|
162
|
+
case "paragraph":
|
|
163
|
+
return (_jsx("p", { children: _jsx(InlineText, { nodes: block.children }) }));
|
|
164
|
+
case "heading": {
|
|
165
|
+
const Tag = `h${block.level}`;
|
|
166
|
+
return (_jsx(Tag, { children: _jsx(InlineText, { nodes: block.children }) }));
|
|
167
|
+
}
|
|
168
|
+
case "code":
|
|
169
|
+
if (block.language === "mermaid") {
|
|
170
|
+
return (_jsx(Mermaid, { code: block.code, collapsedCodeLines: block.collapsedCodeLines, expandedCodeLines: block.expandedCodeLines }));
|
|
171
|
+
}
|
|
172
|
+
if (block.live && isReactLanguage(block.language) && liveRenderer) {
|
|
173
|
+
const entry = block.entry ?? "/src/main.jsx";
|
|
174
|
+
return liveRenderer({
|
|
175
|
+
files: { [entry]: block.code },
|
|
176
|
+
entry,
|
|
177
|
+
title: block.title ?? "Live React preview",
|
|
178
|
+
collapsedCodeLines: block.collapsedCodeLines,
|
|
179
|
+
expandedCodeLines: block.expandedCodeLines,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
return (_jsxs("div", { className: "docs-code", "data-language": block.language ?? undefined, children: [block.title ? (_jsxs("div", { className: "docs-code-header", children: [_jsx("span", { children: block.title }), _jsx("span", { className: "docs-code-lang", children: block.language }), _jsx(CopyButton, { text: block.code, label: `Copy ${block.title}` })] })) : (_jsx(CopyButton, { text: block.code, className: "docs-code-copy-float" })), _jsx("pre", { className: block.lineNumbers ? "docs-code-numbered" : "", children: _jsx(HighlightedCode, { code: block.code, language: block.language, lineNumbers: block.lineNumbers }) })] }));
|
|
183
|
+
case "hint": {
|
|
184
|
+
const Icon = HINT_ICONS[block.style] ?? Info;
|
|
185
|
+
return (_jsxs("div", { className: `docs-hint docs-hint-${block.style}`, children: [_jsx(Icon, { className: "docs-hint-icon" }), _jsx("div", { children: _jsx(Blocks, { blocks: block.children, liveRenderer: liveRenderer, sourceRenderer: sourceRenderer }) })] }));
|
|
186
|
+
}
|
|
187
|
+
case "tabs":
|
|
188
|
+
return _jsx(Tabs, { block: block, liveRenderer: liveRenderer, sourceRenderer: sourceRenderer });
|
|
189
|
+
case "command":
|
|
190
|
+
return block.command ? _jsx(CommandBox, { block: block }) : null;
|
|
191
|
+
case "expandable":
|
|
192
|
+
return (_jsxs("details", { className: "docs-expandable", children: [_jsx("summary", { children: block.summary }), _jsx("div", { className: "docs-expandable-body", children: _jsx(Blocks, { blocks: block.children, liveRenderer: liveRenderer, sourceRenderer: sourceRenderer }) })] }));
|
|
193
|
+
case "stepper":
|
|
194
|
+
return (_jsx("div", { className: "docs-stepper", children: block.steps.map((s, i) => (_jsxs("div", { className: "docs-step", children: [_jsxs("div", { className: "docs-step-rail", children: [_jsx("div", { className: "docs-step-badge", children: i + 1 }), i < block.steps.length - 1 && _jsx("div", { className: "docs-step-line" })] }), _jsxs("div", { className: "docs-step-main", children: [s.title && _jsx("div", { className: "docs-step-title", children: s.title }), _jsx(Blocks, { blocks: s.children, liveRenderer: liveRenderer, sourceRenderer: sourceRenderer })] })] }, i))) }));
|
|
195
|
+
case "embed": {
|
|
196
|
+
if (isReplayQaUrl(block.url)) {
|
|
197
|
+
return _jsx(ReplayPreview, { source: block.url, title: "Replay preview" });
|
|
198
|
+
}
|
|
199
|
+
const src = embedSrc(block.url);
|
|
200
|
+
return src || isDirectVideo(block.url) ? (_jsx(VideoEmbed, { src: src ?? block.url, className: "docs-embed", title: block.title ?? block.url, ...(block.autoplay === undefined ? {} : { autoplay: block.autoplay }), ...(block.loop === undefined ? {} : { loop: block.loop }), ...(block.muted === undefined ? {} : { muted: block.muted }), ...(block.controls === undefined ? {} : { controls: block.controls }), ...(block.poster === undefined ? {} : { poster: resolveAsset(block.poster) }) })) : (_jsxs("a", { className: "docs-content-ref", href: block.url, target: "_blank", rel: "noreferrer", children: [_jsx(File, { className: "size-4" }), " ", block.url] }));
|
|
201
|
+
}
|
|
202
|
+
case "content-ref":
|
|
203
|
+
return (_jsxs("a", { className: "docs-content-ref", href: block.url, children: [_jsx(File, { className: "size-4" }), _jsx("span", { children: _jsx(InlineText, { nodes: block.children }) }), _jsx(ChevronRight, { className: "size-4 ml-auto" })] }));
|
|
204
|
+
case "source-ref":
|
|
205
|
+
return sourceRenderer ? (sourceRenderer(block)) : (_jsxs("div", { className: "docs-source-ref", "data-docstream-source-ref": "", children: [_jsx(File, { className: "size-4" }), _jsx("span", { children: block.title ?? `${block.path}#${block.exportName}` }), _jsxs("code", { children: [block.mount, ":", block.path] })] }));
|
|
206
|
+
case "demo":
|
|
207
|
+
return _jsx(DemoBlock, { node: block });
|
|
208
|
+
case "columns":
|
|
209
|
+
return (_jsx("div", { className: "docs-columns", children: block.columns.map((c, i) => (_jsx("div", { className: "docs-column", children: _jsx(Blocks, { blocks: c.children, liveRenderer: liveRenderer, sourceRenderer: sourceRenderer }) }, i))) }));
|
|
210
|
+
case "figure":
|
|
211
|
+
return (_jsxs("figure", { className: "docs-figure", children: [block.src && _jsx("img", { src: resolveAsset(block.src), alt: block.alt }), block.caption && _jsx("figcaption", { children: block.caption })] }));
|
|
212
|
+
case "list": {
|
|
213
|
+
const Tag = block.ordered ? "ol" : "ul";
|
|
214
|
+
return (_jsx(Tag, { className: block.task ? "docs-tasklist" : undefined, children: block.items.map((item, i) => (_jsxs("li", { children: [block.task && _jsx("input", { type: "checkbox", checked: !!item.checked, readOnly: true }), _jsx(Blocks, { blocks: item.children, inline: true, liveRenderer: liveRenderer, sourceRenderer: sourceRenderer })] }, i))) }));
|
|
215
|
+
}
|
|
216
|
+
case "blockquote":
|
|
217
|
+
return (_jsx("blockquote", { children: _jsx(Blocks, { blocks: block.children, liveRenderer: liveRenderer, sourceRenderer: sourceRenderer }) }));
|
|
218
|
+
case "divider":
|
|
219
|
+
return _jsx("hr", {});
|
|
220
|
+
case "table":
|
|
221
|
+
if (block.view === "cards") {
|
|
222
|
+
const cards = block.rows.length ? block.rows : [block.header];
|
|
223
|
+
return (_jsx("div", { className: "docs-cards", children: cards.map((row, i) => (_jsx("div", { className: "docs-card", children: row.map((cell, j) => (_jsx("div", { className: j === 0 ? "docs-card-title" : "docs-card-body", children: _jsx(InlineText, { nodes: cell }) }, j))) }, i))) }));
|
|
224
|
+
}
|
|
225
|
+
return (_jsxs("table", { className: "docs-table", children: [_jsx("thead", { children: _jsx("tr", { children: block.header.map((cell, i) => (_jsx("th", { children: _jsx(InlineText, { nodes: cell }) }, i))) }) }), _jsx("tbody", { children: block.rows.map((row, i) => (_jsx("tr", { children: row.map((cell, j) => (_jsx("td", { children: _jsx(InlineText, { nodes: cell }) }, j))) }, i))) })] }));
|
|
226
|
+
case "math":
|
|
227
|
+
return _jsx(MathBlock, { formula: block.formula });
|
|
228
|
+
case "updates":
|
|
229
|
+
return (_jsx("div", { className: "docs-updates", children: block.updates.map((u, i) => (_jsxs("div", { className: "docs-update", children: [_jsx("div", { className: "docs-update-date", children: u.date }), _jsx("div", { className: "docs-update-body", children: _jsx(Blocks, { blocks: u.children, liveRenderer: liveRenderer, sourceRenderer: sourceRenderer }) })] }, i))) }));
|
|
230
|
+
case "openapi-operation":
|
|
231
|
+
return (_jsx(OpenApiOperation, { specUrl: block.specUrl, path: block.path, method: block.method || "get" }));
|
|
232
|
+
// Reference definitions and verbatim-kept tags carry no content of their own.
|
|
233
|
+
case "definition":
|
|
234
|
+
case "raw":
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
function isReactLanguage(language) {
|
|
239
|
+
return language === "jsx" || language === "tsx" || language === "react";
|
|
240
|
+
}
|
|
241
|
+
function Blocks({ blocks, inline, liveRenderer, sourceRenderer }) {
|
|
242
|
+
return (_jsx("div", { "data-docstream-blocks": "", className: inline ? "docs-blocks-inline" : undefined, style: inline ? { display: "inline" } : undefined, children: blocks.map((b, i) => (_jsx(BlockView, { block: b, liveRenderer: liveRenderer, sourceRenderer: sourceRenderer }, i))) }));
|
|
243
|
+
}
|
|
244
|
+
function withDemoContext({ demoResolver, demoRuntime, demoDependencies, demoVFS }, children) {
|
|
245
|
+
let out = children;
|
|
246
|
+
if (demoVFS)
|
|
247
|
+
out = _jsx(DocstreamDemoVFSContext.Provider, { value: demoVFS, children: out });
|
|
248
|
+
if (demoRuntime || demoDependencies) {
|
|
249
|
+
out = _jsx(DemoRuntimeProvider, { runtime: demoRuntime, dependencies: demoDependencies, children: out });
|
|
250
|
+
}
|
|
251
|
+
return demoResolver ? _jsx(DocstreamDemoContext.Provider, { value: demoResolver, children: out }) : out;
|
|
252
|
+
}
|
|
253
|
+
/** Merges runtime options over the inherited ones, keeping a stable context value. */
|
|
254
|
+
function DemoRuntimeProvider({ runtime, dependencies, children }) {
|
|
255
|
+
const inherited = useContext(DocstreamDemoRuntimeContext);
|
|
256
|
+
const depsKey = dependencies ? JSON.stringify(dependencies) : "";
|
|
257
|
+
const value = useMemo(() => ({
|
|
258
|
+
runtime: runtime ?? inherited.runtime,
|
|
259
|
+
dependencies: dependencies || inherited.dependencies ? { ...inherited.dependencies, ...dependencies } : undefined,
|
|
260
|
+
}),
|
|
261
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
262
|
+
[runtime, inherited, depsKey]);
|
|
263
|
+
return _jsx(DocstreamDemoRuntimeContext.Provider, { value: value, children: children });
|
|
264
|
+
}
|
|
265
|
+
export function PageActionsBar({ markdown, options }) {
|
|
266
|
+
if (!options)
|
|
267
|
+
return null;
|
|
268
|
+
return (_jsx("div", { className: "docs-page-actions-bar", children: _jsx(DocPageActions, { markdown: markdown, ...(options === true ? {} : options) }) }));
|
|
269
|
+
}
|
|
270
|
+
// Renders a markdown string inline — used for embedded markdown like
|
|
271
|
+
// OpenAPI descriptions, which can themselves contain GitBook blocks.
|
|
272
|
+
export function MarkdownContent({ markdown, liveRenderer, sourceRenderer, demoResolver, demoRuntime, demoDependencies, demoVFS, pageActions, className, }) {
|
|
273
|
+
const doc = useMemo(() => parseMarkdown(markdown), [markdown]);
|
|
274
|
+
return withDemoContext({ demoResolver, demoRuntime, demoDependencies, demoVFS }, _jsxs("div", { "data-docstream": "", className: className, children: [_jsx(PageActionsBar, { markdown: markdown, options: pageActions }), _jsx(Blocks, { blocks: doc.children, liveRenderer: liveRenderer, sourceRenderer: sourceRenderer }), _jsx(CitationSources, { citations: doc.citations })] }));
|
|
275
|
+
}
|
|
276
|
+
export function DocsRenderer({ doc, liveRenderer, sourceRenderer, demoResolver, demoRuntime, demoDependencies, demoVFS, pageActions, markdown, }) {
|
|
277
|
+
return withDemoContext({ demoResolver, demoRuntime, demoDependencies, demoVFS }, _jsxs("article", { className: "docs-article", children: [_jsx(PageActionsBar, { markdown: markdown ?? (() => serializeMarkdown(doc)), options: pageActions }), _jsx(Blocks, { blocks: doc.children, liveRenderer: liveRenderer, sourceRenderer: sourceRenderer }), _jsx(CitationSources, { citations: doc.citations })] }));
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=DocsRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocsRenderer.js","sourceRoot":"","sources":["../../src/docs/DocsRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HighlightedCode.d.ts","sourceRoot":"","sources":["../../src/docs/HighlightedCode.tsx"],"names":[],"mappings":"AA0BA,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAmB,EAAE,EAAE;IAClF,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,+BAwBA"}
|