@brett_lamy/docstream 1.16.2 → 1.18.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.
Files changed (56) hide show
  1. package/README.md +46 -1
  2. package/dist/docs/DocsRenderer.d.ts.map +1 -1
  3. package/dist/docs/DocsRenderer.js +34 -3
  4. package/dist/docs/DocsRenderer.js.map +1 -1
  5. package/dist/docs/ImageThumbnail.d.ts +18 -0
  6. package/dist/docs/ImageThumbnail.d.ts.map +1 -0
  7. package/dist/docs/ImageThumbnail.js +33 -0
  8. package/dist/docs/ImageThumbnail.js.map +1 -0
  9. package/dist/gitbook/index.d.ts +1 -0
  10. package/dist/gitbook/index.d.ts.map +1 -1
  11. package/dist/gitbook/index.js +1 -0
  12. package/dist/gitbook/index.js.map +1 -1
  13. package/dist/gitbook/parse.d.ts.map +1 -1
  14. package/dist/gitbook/parse.js +3 -2
  15. package/dist/gitbook/parse.js.map +1 -1
  16. package/dist/gitbook/serialize.d.ts.map +1 -1
  17. package/dist/gitbook/serialize.js +2 -2
  18. package/dist/gitbook/serialize.js.map +1 -1
  19. package/dist/gitbook/thumbnail.d.ts +10 -0
  20. package/dist/gitbook/thumbnail.d.ts.map +1 -0
  21. package/dist/gitbook/thumbnail.js +18 -0
  22. package/dist/gitbook/thumbnail.js.map +1 -0
  23. package/dist/index.d.ts +3 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/replay/ReplayFile.d.ts +14 -0
  28. package/dist/replay/ReplayFile.d.ts.map +1 -0
  29. package/dist/replay/ReplayFile.js +33 -0
  30. package/dist/replay/ReplayFile.js.map +1 -0
  31. package/dist/replay/ReplayPlayer.d.ts +5 -0
  32. package/dist/replay/ReplayPlayer.d.ts.map +1 -1
  33. package/dist/replay/ReplayPlayer.js +11 -5
  34. package/dist/replay/ReplayPlayer.js.map +1 -1
  35. package/dist/replay/index.d.ts +2 -0
  36. package/dist/replay/index.d.ts.map +1 -1
  37. package/dist/replay/index.js +1 -0
  38. package/dist/replay/index.js.map +1 -1
  39. package/dist/styles.css +152 -4
  40. package/dist/vite/index.d.ts +8 -0
  41. package/dist/vite/index.d.ts.map +1 -1
  42. package/dist/vite/index.js +22 -3
  43. package/dist/vite/index.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/docs/DocsRenderer.tsx +58 -7
  46. package/src/docs/ImageThumbnail.tsx +49 -0
  47. package/src/gitbook/index.ts +1 -0
  48. package/src/gitbook/parse.ts +2 -1
  49. package/src/gitbook/serialize.ts +2 -1
  50. package/src/gitbook/thumbnail.ts +20 -0
  51. package/src/index.ts +3 -0
  52. package/src/replay/ReplayFile.tsx +39 -0
  53. package/src/replay/ReplayPlayer.tsx +14 -7
  54. package/src/replay/index.ts +2 -0
  55. package/src/styles.css +152 -4
  56. package/src/vite/index.ts +28 -3
@@ -165,12 +165,18 @@ export function ReplayPlayer({ events, url, title = 'Session replay', chrome = '
165
165
  onClick: () => { rootRef.current?.focus({ preventScroll: true }); toggle(); }, children: finished ? _jsx(RotateCcw, { size: 22, strokeWidth: 2.4 }) : _jsx(Play, { size: 22, strokeWidth: 2.4, fill: "currentColor" }) }) })) : null] }), controls ? (_jsxs("div", { "data-slot": "replay-preview-controls", children: [_jsx("button", { type: "button", "data-slot": "replay-preview-play", "aria-label": playing ? 'Pause' : 'Play', onClick: toggle, disabled: !ready, children: playing ? _jsx(Pause, { size: 15, fill: "currentColor" }) : _jsx(Play, { size: 15, fill: "currentColor" }) }), _jsxs("span", { "data-slot": "replay-preview-time", children: [_jsx("span", { children: formatReplayTime(time) }), " / ", formatReplayTime(duration)] }), _jsx(Scrubber, { time: time, duration: duration, markers: shown, disabled: !ready, onSeek: (ms) => handle.seek(ms), onMarker: jumpTo }), _jsx("button", { type: "button", "data-slot": "replay-preview-speed", "aria-label": `Playback speed ${speed}×`, onClick: () => cycleSpeed(1), children: `${speed}×` }), _jsx("button", { type: "button", "data-slot": "replay-preview-fullscreen", "aria-label": fullscreen ? 'Exit full screen' : 'Full screen', onClick: toggleFullscreen, children: fullscreen ? _jsx(Minimize, { size: 15 }) : _jsx(Maximize, { size: 15 }) })] })) : null] }));
166
166
  }
167
167
  /* ── parts ───────────────────────────────────────────────────────────────────────── */
168
- export function BrowserBar({ href, trafficLights, loading }) {
168
+ /** Splits an address for the URL bar: the host, and the path + query + hash after it. */
169
+ export function splitReplayAddress(href) {
169
170
  const shown = href.replace(/^https?:\/\//, '');
170
- const slash = shown.indexOf('/');
171
- const host = slash < 0 ? shown : shown.slice(0, slash);
172
- const path = slash < 0 ? '' : shown.slice(slash);
173
- return (_jsxs("div", { "data-slot": "replay-preview-bar", children: [trafficLights ? (_jsx("span", { "aria-hidden": "true", "data-slot": "replay-preview-lights", children: TRAFFIC_LIGHTS.map((c) => _jsx("span", { style: { '--light': c } }, c)) })) : null, _jsxs("div", { "data-slot": "replay-preview-address", children: [_jsx("span", { "data-slot": "replay-preview-lock", "aria-hidden": "true", children: loading ? _jsx("span", { "data-slot": "replay-preview-spinner" }) : _jsx(Lock, { size: 10, strokeWidth: 2.5 }) }), _jsxs("span", { "data-slot": "replay-preview-url", title: href, children: [_jsx("span", { children: host }), _jsx("span", { children: path })] })] }), trafficLights ? _jsx("span", { "aria-hidden": "true", "data-slot": "replay-preview-lights-spacer" }) : null] }));
171
+ const cut = shown.search(/[/?#]/);
172
+ return cut < 0 ? { host: shown, path: '' } : { host: shown.slice(0, cut), path: shown.slice(cut) };
173
+ }
174
+ export function BrowserBar({ href, trafficLights, loading }) {
175
+ const { host, path } = splitReplayAddress(href);
176
+ // Once the recording is past the site root, where it is (path, query, hash) is what matters:
177
+ // it leads and keeps its room, and the host dims and gives way first.
178
+ const primary = path && path !== '/' ? 'path' : 'host';
179
+ return (_jsxs("div", { "data-slot": "replay-preview-bar", children: [trafficLights ? (_jsx("span", { "aria-hidden": "true", "data-slot": "replay-preview-lights", children: TRAFFIC_LIGHTS.map((c) => _jsx("span", { style: { '--light': c } }, c)) })) : null, _jsxs("div", { "data-slot": "replay-preview-address", children: [_jsx("span", { "data-slot": "replay-preview-lock", "aria-hidden": "true", children: loading ? _jsx("span", { "data-slot": "replay-preview-spinner" }) : _jsx(Lock, { size: 10, strokeWidth: 2.5 }) }), _jsxs("span", { "data-slot": "replay-preview-url", "data-primary": primary, title: href, children: [_jsx("span", { "data-part": "host", children: host }), path ? _jsx("span", { "data-part": "path", children: path }) : null] })] }), trafficLights ? _jsx("span", { "aria-hidden": "true", "data-slot": "replay-preview-lights-spacer" }) : null] }));
174
180
  }
175
181
  /** The recorded pointer and its click ripples, in recorded-viewport coordinates. */
176
182
  const PointerOverlay = memo(function PointerOverlay({ track, time, reduced }) {
@@ -1 +1 @@
1
- {"version":3,"file":"ReplayPlayer.js","sourceRoot":"","sources":["../../src/replay/ReplayPlayer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReplayPlayer.js","sourceRoot":"","sources":["../../src/replay/ReplayPlayer.tsx"],"names":[],"mappings":"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"}
@@ -7,5 +7,7 @@ export type { ReplayMarker, ReplayMarkerKind, ReplayMeta, ReplayPointerPoint, Re
7
7
  export { ReplayEventType, ReplayIncrementalSource, ReplayMouseInteraction } from './types.js';
8
8
  export type { ReplayEvent } from './types.js';
9
9
  export { isReplayQaUrl, normalizeReplayEmbedUrl } from './url.js';
10
+ export { ReplayFile, isRrwebUrl } from './ReplayFile.js';
11
+ export type { ReplayFileProps } from './ReplayFile.js';
10
12
  export { sanitizeReplayEvent } from './sanitize.js';
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/replay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC/E,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACpG,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpH,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAC3F,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/replay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC/E,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACpG,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpH,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAC3F,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
@@ -3,5 +3,6 @@ export { ReplayStage, preloadReplayStage } from './ReplayStage.js';
3
3
  export { getReplayMarkers, getReplayMeta, getReplayPointerTrack, replayPointerAt } from './markers.js';
4
4
  export { ReplayEventType, ReplayIncrementalSource, ReplayMouseInteraction } from './types.js';
5
5
  export { isReplayQaUrl, normalizeReplayEmbedUrl } from './url.js';
6
+ export { ReplayFile, isRrwebUrl } from './ReplayFile.js';
6
7
  export { sanitizeReplayEvent } from './sanitize.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/replay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAa/E,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEpG,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/replay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAa/E,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEpG,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
package/dist/styles.css CHANGED
@@ -443,6 +443,25 @@
443
443
  margin: 4px 0 6px;
444
444
  }
445
445
 
446
+ /* A step whose heading opens with a thumbnail: the image in its own column, the title and body beside it. */
447
+ .docs-step-media {
448
+ display: flex;
449
+ align-items: flex-start;
450
+ gap: 16px;
451
+ }
452
+
453
+ .docs-step-media-body {
454
+ flex: 1;
455
+ min-width: 0;
456
+ }
457
+
458
+ @media (max-width: 560px) {
459
+ .docs-step-media {
460
+ flex-direction: column;
461
+ gap: 8px;
462
+ }
463
+ }
464
+
446
465
  .docs-embed {
447
466
  width: 100%;
448
467
  aspect-ratio: 16 / 9;
@@ -1712,6 +1731,124 @@
1712
1731
  text-decoration: none !important;
1713
1732
  }
1714
1733
 
1734
+ /* Thumbnail images (`![alt](src "thumbnail: 0:39.8")`): a small frame with a badge; hover or focus
1735
+ opens a card with the full image. First in a paragraph, the text runs beside it. */
1736
+ /* Float, not flex: the text keeps its own first line, so a list marker lines up with it. */
1737
+ .docs-media {
1738
+ display: flow-root;
1739
+ }
1740
+
1741
+ .docs-media > .docs-thumb,
1742
+ .docs-media > .docs-thumb-link {
1743
+ float: left;
1744
+ margin: 3px 14px 4px 0;
1745
+ }
1746
+
1747
+ .docs-media-body {
1748
+ display: block;
1749
+ overflow: hidden;
1750
+ }
1751
+
1752
+ .docs-thumb-link {
1753
+ text-decoration: none !important;
1754
+ }
1755
+
1756
+ .docs-thumb {
1757
+ position: relative;
1758
+ display: inline-block;
1759
+ flex: none;
1760
+ vertical-align: top;
1761
+ border-radius: 10px;
1762
+ outline: none;
1763
+ }
1764
+
1765
+ .docs-thumb-frame {
1766
+ position: relative;
1767
+ display: block;
1768
+ width: var(--docs-thumb-width, 168px);
1769
+ aspect-ratio: 16 / 10;
1770
+ overflow: hidden;
1771
+ border: 1px solid var(--gb-border);
1772
+ border-radius: 10px;
1773
+ background: var(--gb-muted, #f4f4f5);
1774
+ box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
1775
+ cursor: zoom-in;
1776
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
1777
+ }
1778
+
1779
+ .docs-thumb-frame img {
1780
+ display: block;
1781
+ width: 100%;
1782
+ height: 100%;
1783
+ object-fit: cover;
1784
+ object-position: top left;
1785
+ }
1786
+
1787
+ .docs-thumb:hover .docs-thumb-frame,
1788
+ .docs-thumb:focus-visible .docs-thumb-frame {
1789
+ border-color: var(--gb-panel-foreground, #18181b);
1790
+ box-shadow: 0 0 0 2px var(--gb-border);
1791
+ }
1792
+
1793
+ .docs-thumb-badge {
1794
+ position: absolute;
1795
+ right: 7px;
1796
+ bottom: 7px;
1797
+ padding: 2px 7px;
1798
+ border-radius: 6px;
1799
+ color: #f4f4f5;
1800
+ background: rgba(39, 39, 42, 0.78);
1801
+ font: 500 12px/1.4 var(--gb-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
1802
+ font-variant-numeric: tabular-nums;
1803
+ pointer-events: none;
1804
+ }
1805
+
1806
+ .docs-thumb-card {
1807
+ position: absolute;
1808
+ top: calc(100% + 10px);
1809
+ left: 0;
1810
+ z-index: 60;
1811
+ display: block;
1812
+ width: min(var(--docs-thumb-card-width, 720px), calc(100vw - 32px));
1813
+ overflow: hidden;
1814
+ padding: 10px;
1815
+ border: 1px solid var(--gb-border);
1816
+ border-radius: 16px;
1817
+ background: var(--gb-panel);
1818
+ box-shadow: 0 18px 48px rgba(15, 23, 42, 0.22), 0 2px 8px rgba(15, 23, 42, 0.1);
1819
+ opacity: 0;
1820
+ visibility: hidden;
1821
+ transform: translateY(-4px);
1822
+ transition: opacity 0.14s ease, transform 0.14s ease, visibility 0.14s;
1823
+ pointer-events: none;
1824
+ }
1825
+
1826
+ .docs-thumb-card img {
1827
+ display: block;
1828
+ width: 100%;
1829
+ height: auto;
1830
+ border-radius: 8px;
1831
+ }
1832
+
1833
+ .docs-thumb-card .docs-thumb-badge {
1834
+ right: 18px;
1835
+ bottom: 18px;
1836
+ font-size: 14px;
1837
+ }
1838
+
1839
+ .docs-thumb:hover .docs-thumb-card,
1840
+ .docs-thumb:focus-visible .docs-thumb-card {
1841
+ opacity: 1;
1842
+ visibility: visible;
1843
+ transform: translateY(0);
1844
+ }
1845
+
1846
+ @media (prefers-reduced-motion: reduce) {
1847
+ .docs-thumb-card {
1848
+ transition: none;
1849
+ }
1850
+ }
1851
+
1715
1852
  .oas {
1716
1853
  border: 1px solid var(--gb-border);
1717
1854
  border-radius: 12px;
@@ -3718,18 +3855,29 @@
3718
3855
  }
3719
3856
 
3720
3857
  :where([data-slot="replay-preview-url"]) {
3858
+ display: flex;
3721
3859
  min-width: 0;
3722
3860
  overflow: hidden;
3723
- text-overflow: ellipsis;
3724
3861
  white-space: nowrap;
3725
3862
  }
3726
3863
 
3727
- :where([data-slot="replay-preview-url"] > :first-child) {
3864
+ :where([data-slot="replay-preview-url"] > span) {
3865
+ min-width: 0;
3866
+ overflow: hidden;
3867
+ text-overflow: ellipsis;
3868
+ color: var(--muted-foreground, #71717a);
3869
+ }
3870
+
3871
+ /* The primary part is full strength; when space runs out the other one gives way first. */
3872
+ :where([data-slot="replay-preview-url"][data-primary="host"] > [data-part="host"]),
3873
+ :where([data-slot="replay-preview-url"][data-primary="path"] > [data-part="path"]) {
3874
+ flex-shrink: 1;
3728
3875
  color: var(--foreground, #18181b);
3729
3876
  }
3730
3877
 
3731
- :where([data-slot="replay-preview-url"] > :last-child) {
3732
- color: var(--muted-foreground, #71717a);
3878
+ :where([data-slot="replay-preview-url"][data-primary="host"] > [data-part="path"]),
3879
+ :where([data-slot="replay-preview-url"][data-primary="path"] > [data-part="host"]) {
3880
+ flex-shrink: 10000;
3733
3881
  }
3734
3882
 
3735
3883
  :where([data-slot="replay-preview-spinner"]) {
@@ -6,6 +6,11 @@ export interface DocstreamSourceMount {
6
6
  root: string;
7
7
  /** Allow PUT requests to edit files in this mount. Defaults to true. */
8
8
  writable?: boolean;
9
+ /**
10
+ * Reload the page after a PUT. Defaults to true. Turn it off for content files whose importers
11
+ * hot-update themselves (an editor autosaving Markdown), so a save doesn't reload the editor.
12
+ */
13
+ reloadOnWrite?: boolean;
9
14
  }
10
15
  export interface DocstreamSourcesOptions {
11
16
  mounts: readonly DocstreamSourceMount[];
@@ -16,6 +21,9 @@ export interface DocstreamSourcesOptions {
16
21
  * Mount real source directories behind safe Vite dev-server endpoints.
17
22
  * Markdown references import live modules from these files, and editor writes
18
23
  * go back to disk so Vite's normal watcher/HMR pipeline remains authoritative.
24
+ *
25
+ * `GET {apiBase}/source?mount=&path=` reads a file, `PUT` (JSON `{ content }`) edits an existing one,
26
+ * and `POST` (raw body) creates or replaces one — uploads such as `.rrweb` recordings.
19
27
  */
20
28
  export declare function docstreamSources(options: DocstreamSourcesOptions): Plugin;
21
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAA;AAEjD,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAA;IACZ,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAA;IACvC,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AA6GD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAgCzE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAA;AAEjD,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAA;IACZ,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAA;IACvC,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AA6HD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAiCzE"}
@@ -11,11 +11,14 @@ function send(response, status, body, type = "application/json; charset=utf-8")
11
11
  function requestUrl(request) {
12
12
  return new URL(request.url ?? "/", "http://docstream.local");
13
13
  }
14
- async function requestBody(request) {
14
+ async function requestBytes(request) {
15
15
  const chunks = [];
16
16
  for await (const chunk of request)
17
17
  chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
18
- return Buffer.concat(chunks).toString("utf8");
18
+ return Buffer.concat(chunks);
19
+ }
20
+ async function requestBody(request) {
21
+ return (await requestBytes(request)).toString("utf8");
19
22
  }
20
23
  function normalizeRelativePath(value) {
21
24
  const source = value.replaceAll("\\", "/").replace(/^\.\//, "");
@@ -83,9 +86,21 @@ function installMiddleware(server, apiBase, viteBase, mounts) {
83
86
  await fs.writeFile(absolutePath, parsed.content, "utf8");
84
87
  const stat = await fs.stat(absolutePath);
85
88
  server.watcher.add(absolutePath);
86
- server.ws.send({ type: "full-reload", path: "*" });
89
+ if (mount.reloadOnWrite)
90
+ server.ws.send({ type: "full-reload", path: "*" });
87
91
  return send(response, 200, JSON.stringify({ content: parsed.content, provenance: provenance(url, mount, relativePath, absolutePath, stat.mtimeMs) }));
88
92
  }
93
+ if (request.method === "POST") {
94
+ // Upload: create (or replace) a file with the raw request body, e.g. a dropped .rrweb recording.
95
+ if (!mount.writable)
96
+ return send(response, 403, `Source mount ${mount.name} is read-only`, "text/plain; charset=utf-8");
97
+ const bytes = await requestBytes(request);
98
+ await fs.mkdir(path.dirname(absolutePath), { recursive: true });
99
+ await fs.writeFile(absolutePath, bytes);
100
+ const stat = await fs.stat(absolutePath);
101
+ server.watcher.add(absolutePath);
102
+ return send(response, 201, JSON.stringify({ size: stat.size, provenance: provenance(url, mount, relativePath, absolutePath, stat.mtimeMs) }));
103
+ }
89
104
  return send(response, 405, "Method not allowed", "text/plain; charset=utf-8");
90
105
  }
91
106
  catch (error) {
@@ -98,6 +113,9 @@ function installMiddleware(server, apiBase, viteBase, mounts) {
98
113
  * Mount real source directories behind safe Vite dev-server endpoints.
99
114
  * Markdown references import live modules from these files, and editor writes
100
115
  * go back to disk so Vite's normal watcher/HMR pipeline remains authoritative.
116
+ *
117
+ * `GET {apiBase}/source?mount=&path=` reads a file, `PUT` (JSON `{ content }`) edits an existing one,
118
+ * and `POST` (raw body) creates or replaces one — uploads such as `.rrweb` recordings.
101
119
  */
102
120
  export function docstreamSources(options) {
103
121
  const apiBase = `/${(options.apiBase ?? "/@docstream").replace(/^\/+|\/+$/g, "")}`;
@@ -117,6 +135,7 @@ export function docstreamSources(options) {
117
135
  name: mount.name,
118
136
  root: path.resolve(config.root, mount.root),
119
137
  writable: mount.writable !== false,
138
+ reloadOnWrite: mount.reloadOnWrite !== false,
120
139
  };
121
140
  });
122
141
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brett_lamy/docstream",
3
- "version": "1.16.2",
3
+ "version": "1.18.0",
4
4
  "description": "GitBook-aware readonly markdown and AI stream renderer.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -10,11 +10,11 @@ import {
10
10
  XCircle,
11
11
  } from "lucide-react"
12
12
 
13
- import type { Block, CodeBlockNode, CommandNode, DocumentNode, Inline, PackageManager, SourceRefNode } from "../gitbook/ast"
13
+ import type { Block, CodeBlockNode, CommandNode, DocumentNode, Inline, PackageManager, SourceRefNode, StepNode } from "../gitbook/ast"
14
14
  import { PACKAGE_MANAGERS, packageManagerCommands } from "../gitbook/package-managers"
15
15
  import { slugify } from "../gitbook/outline"
16
16
  import { resolveAsset, useAsset } from "../assets"
17
- import { parseMarkdown } from "../gitbook/parse"
17
+ import { parseBlocks, parseMarkdown } from "../gitbook/parse"
18
18
  import { serializeMarkdown } from "../gitbook/serialize"
19
19
  import { DocstreamDemoContext, DocstreamDemoRuntimeContext, DocstreamDemoVFSContext } from "../demo/context"
20
20
  import type { DemoVFS } from "../demo/vfs"
@@ -27,6 +27,7 @@ import { DocPageActions, type DocPageActionsOptions } from "./PageActions"
27
27
  import { useSyncedTab } from "./tabs-sync"
28
28
  import { ReplayPreview } from "../replay/ReplayPreview"
29
29
  import { isReplayQaUrl } from "../replay/url"
30
+ import { ReplayFile, isRrwebUrl } from "../replay/ReplayFile"
30
31
  import { VideoEmbed } from "../video"
31
32
  import { StlViewer, isStlUrl } from "../stl"
32
33
  import { StrudelPlayer } from "../strudel/StrudelPlayer"
@@ -35,6 +36,7 @@ import { OpenApiOperation } from "../openapi/OpenApiOperation"
35
36
  import { Mermaid } from "./Mermaid"
36
37
  import { HighlightedCode } from "./HighlightedCode"
37
38
  import { CitationSources, InlineReference } from "./reference"
39
+ import { ImageThumbnail, leadingThumbnail, thumbnailLabel } from "./ImageThumbnail"
38
40
  import { DocumentProperties } from "./DocumentProperties"
39
41
  import { TaskCheckbox, TaskStateChangeContext, type TaskStateChangeHandler } from "./TaskCheckbox"
40
42
  import { getTaskState } from "../gitbook/tasks"
@@ -102,6 +104,8 @@ function InlineText({ nodes }: { nodes: Inline[] }) {
102
104
  if (!emphasized && !n.link) return <InlineReference key={i} node={n} />
103
105
  el = <InlineReference node={n} />
104
106
  } else if (n.type === "image") {
107
+ const label = thumbnailLabel(n)
108
+ if (label !== null) return <ImageThumbnail key={i} image={n} label={label} />
105
109
  const img = (
106
110
  <AssetImg
107
111
  url={n.src}
@@ -333,12 +337,25 @@ function Tabs({ block, liveRenderer, sourceRenderer }: { block: Extract<Block, {
333
337
  function BlockView({ block, liveRenderer, sourceRenderer }: { block: Block } & Renderers) {
334
338
  const onTaskStateChange = useContext(TaskStateChangeContext)
335
339
  switch (block.type) {
336
- case "paragraph":
340
+ case "paragraph": {
341
+ // A paragraph that opens with a thumbnail sets its text beside it.
342
+ const lead = leadingThumbnail(block.children)
343
+ if (lead) {
344
+ return (
345
+ <p className="docs-media">
346
+ <ImageThumbnail image={lead.image} label={lead.label} />
347
+ <span className="docs-media-body">
348
+ <InlineText nodes={lead.rest} />
349
+ </span>
350
+ </p>
351
+ )
352
+ }
337
353
  return (
338
354
  <p>
339
355
  <InlineText nodes={block.children} />
340
356
  </p>
341
357
  )
358
+ }
342
359
  case "heading": {
343
360
  const Tag = `h${block.level}` as const
344
361
  return (
@@ -425,10 +442,7 @@ function BlockView({ block, liveRenderer, sourceRenderer }: { block: Block } & R
425
442
  <div className="docs-step-badge">{i + 1}</div>
426
443
  {i < block.steps.length - 1 && <div className="docs-step-line" />}
427
444
  </div>
428
- <div className="docs-step-main">
429
- {s.title && <div className="docs-step-title">{s.title}</div>}
430
- <Blocks blocks={s.children} liveRenderer={liveRenderer} sourceRenderer={sourceRenderer} />
431
- </div>
445
+ <StepMain step={s} liveRenderer={liveRenderer} sourceRenderer={sourceRenderer} />
432
446
  </div>
433
447
  ))}
434
448
  </div>
@@ -437,6 +451,9 @@ function BlockView({ block, liveRenderer, sourceRenderer }: { block: Block } & R
437
451
  if (isReplayQaUrl(block.url)) {
438
452
  return <ReplayPreview source={block.url} title="Replay preview" />
439
453
  }
454
+ if (isRrwebUrl(block.url)) {
455
+ return <ReplayFile url={block.url} title={block.title || fileName(block.url)} />
456
+ }
440
457
  if (isStlUrl(block.url)) {
441
458
  return <AssetStl url={block.url} {...(block.title ? { title: block.title } : {})} />
442
459
  }
@@ -597,6 +614,40 @@ function isReactLanguage(language: string | null): boolean {
597
614
  return language === "jsx" || language === "tsx" || language === "react"
598
615
  }
599
616
 
617
+ /**
618
+ * A step's title and body. A title heading that opens with a thumbnail image puts the image in a column
619
+ * of its own, with the title and the body beside it.
620
+ */
621
+ function StepMain({ step, liveRenderer, sourceRenderer }: { step: StepNode } & Renderers) {
622
+ const lead = useMemo(() => {
623
+ if (!step.heading) return null
624
+ const [heading] = parseBlocks(step.heading.split("\n").filter((line) => line.trim()))
625
+ return heading?.type === "heading" ? leadingThumbnail(heading.children) : null
626
+ }, [step.heading])
627
+ const body = <Blocks blocks={step.children} liveRenderer={liveRenderer} sourceRenderer={sourceRenderer} />
628
+ if (!lead) {
629
+ return (
630
+ <div className="docs-step-main">
631
+ {step.title && <div className="docs-step-title">{step.title}</div>}
632
+ {body}
633
+ </div>
634
+ )
635
+ }
636
+ return (
637
+ <div className="docs-step-main docs-step-media">
638
+ <ImageThumbnail image={lead.image} label={lead.label} />
639
+ <div className="docs-step-media-body">
640
+ {step.title && (
641
+ <div className="docs-step-title">
642
+ <InlineText nodes={lead.rest} />
643
+ </div>
644
+ )}
645
+ {body}
646
+ </div>
647
+ </div>
648
+ )
649
+ }
650
+
600
651
  function Blocks({ blocks, inline, liveRenderer, sourceRenderer }: { blocks: Block[]; inline?: boolean } & Renderers) {
601
652
  return (
602
653
  <div
@@ -0,0 +1,49 @@
1
+ import { useId } from "react"
2
+ import type { Inline, InlineImageNode } from "../gitbook/ast"
3
+ import { useAsset } from "../asset-resolver"
4
+ import { thumbnailLabel } from "../gitbook/thumbnail"
5
+
6
+ export { thumbnailLabel }
7
+
8
+ /** The paragraph's leading thumbnail (whitespace before it ignored) and the inlines after it. */
9
+ export function leadingThumbnail(nodes: Inline[]): { image: InlineImageNode; label: string; rest: Inline[] } | null {
10
+ const at = nodes.findIndex((n) => !(n.type === "text" && !n.text.trim()))
11
+ const first = nodes[at]
12
+ if (!first || first.type !== "image") return null
13
+ const label = thumbnailLabel(first)
14
+ if (label === null) return null
15
+ const rest = nodes.slice(at + 1)
16
+ // Drop the space that separated the image from the text.
17
+ if (rest[0]?.type === "text") rest[0] = { ...rest[0], text: rest[0].text.replace(/^\s+/, "") }
18
+ return { image: first, label, rest }
19
+ }
20
+
21
+ /**
22
+ * A small framed image with an optional badge (a timestamp, say); hovering or focusing it opens a card
23
+ * with the full image. First in a paragraph or list item, the text runs beside it.
24
+ */
25
+ export function ImageThumbnail({ image, label }: { image: InlineImageNode; label: string }) {
26
+ const src = useAsset(image.src)
27
+ const cardId = useId()
28
+ const alt = image.alt ?? ""
29
+ const badge = label ? <span className="docs-thumb-badge">{label}</span> : null
30
+ const thumb = (
31
+ <span className="docs-thumb" tabIndex={0} role="img" aria-label={alt || label || "Image"} aria-describedby={cardId}>
32
+ <span className="docs-thumb-frame">
33
+ <img src={src} alt="" loading="lazy" draggable={false} />
34
+ {badge}
35
+ </span>
36
+ <span className="docs-thumb-card" id={cardId} role="tooltip">
37
+ <img src={src} alt={alt} loading="lazy" />
38
+ {badge}
39
+ </span>
40
+ </span>
41
+ )
42
+ return image.link ? (
43
+ <a href={image.link} target="_blank" rel="noreferrer" className="docs-thumb-link">
44
+ {thumb}
45
+ </a>
46
+ ) : (
47
+ thumb
48
+ )
49
+ }
@@ -12,3 +12,4 @@ export { PACKAGE_MANAGERS, packageManagerCommands } from "./package-managers"
12
12
  export { flattenBlocks, flattenForPlainMarkdown } from "./flatten"
13
13
  export { documentOutline, slugify } from "./outline"
14
14
  export type { OutlineEntry } from "./outline"
15
+ export { stepTitleText, thumbnailLabel } from "./thumbnail"