@stream-mdx/react 0.4.0 → 1.0.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/CHANGELOG.md +385 -4
- package/README.md +141 -16
- package/dist/blocks-renderer-DAOBFBfi.d.ts +29 -0
- package/dist/blocks-renderer-DQEL1kJW.d.cts +29 -0
- package/dist/components/bottom-stick-scroll-area.cjs +268 -0
- package/dist/components/bottom-stick-scroll-area.d.cts +36 -0
- package/dist/components/bottom-stick-scroll-area.d.ts +36 -0
- package/dist/components/bottom-stick-scroll-area.mjs +249 -0
- package/dist/components/diff-renderer.cjs +86 -0
- package/dist/components/diff-renderer.d.cts +11 -0
- package/dist/components/diff-renderer.d.ts +11 -0
- package/dist/components/diff-renderer.mjs +66 -0
- package/dist/components/index.cjs +2879 -1295
- package/dist/components/index.d.cts +9 -2
- package/dist/components/index.d.ts +9 -2
- package/dist/components/index.mjs +2842 -1277
- package/dist/components/katex-math.cjs +220 -0
- package/dist/components/katex-math.d.cts +10 -0
- package/dist/components/katex-math.d.ts +10 -0
- package/dist/components/katex-math.mjs +188 -0
- package/dist/contexts/math-tracker.cjs +240 -521
- package/dist/contexts/math-tracker.mjs +235 -513
- package/dist/index-Cmne1yUK.d.cts +723 -0
- package/dist/index-D7dyyu3q.d.ts +723 -0
- package/dist/index.cjs +13180 -5640
- package/dist/index.d.cts +72 -40
- package/dist/index.d.ts +72 -40
- package/dist/index.mjs +12587 -5038
- package/dist/math/display-wrapper.cjs +7 -15
- package/dist/math/display-wrapper.d.cts +2 -2
- package/dist/math/display-wrapper.d.ts +2 -2
- package/dist/math/display-wrapper.mjs +2 -6
- package/dist/node-views-Bpc6Gkgl.d.cts +13 -0
- package/dist/node-views-DpnYdaAS.d.ts +13 -0
- package/dist/renderer/hooks.cjs +35 -20
- package/dist/renderer/hooks.d.cts +22 -1
- package/dist/renderer/hooks.d.ts +22 -1
- package/dist/renderer/hooks.mjs +27 -12
- package/dist/renderer/patch-batching.cjs +7 -8
- package/dist/renderer/patch-batching.d.cts +1 -1
- package/dist/renderer/patch-batching.d.ts +1 -1
- package/dist/renderer/patch-batching.mjs +2 -1
- package/dist/renderer/patch-coalescing.cjs +5 -8
- package/dist/renderer/patch-commit-scheduler.cjs +160 -326
- package/dist/renderer/patch-commit-scheduler.d.cts +28 -4
- package/dist/renderer/patch-commit-scheduler.d.ts +28 -4
- package/dist/renderer/patch-commit-scheduler.mjs +157 -318
- package/dist/renderer/store.cjs +3847 -1099
- package/dist/renderer/store.d.cts +111 -3
- package/dist/renderer/store.d.ts +111 -3
- package/dist/renderer/store.mjs +3847 -1085
- package/dist/renderer/virtualized-code.cjs +415 -71
- package/dist/renderer/virtualized-code.d.cts +24 -23
- package/dist/renderer/virtualized-code.d.ts +24 -23
- package/dist/renderer/virtualized-code.mjs +409 -62
- package/dist/renderer.cjs +10939 -3974
- package/dist/renderer.d.cts +100 -29
- package/dist/renderer.d.ts +100 -29
- package/dist/renderer.mjs +10711 -3697
- package/dist/server-regions-CPLHGli0.d.cts +32 -0
- package/dist/server-regions-mUhyoKi7.d.ts +32 -0
- package/dist/server.cjs +10286 -3365
- package/dist/server.d.cts +17 -247
- package/dist/server.d.ts +17 -247
- package/dist/server.mjs +10565 -3619
- package/dist/{streaming-markdown-DOc2uLiP.d.ts → streaming-markdown-yELbJxyH.d.ts} +51 -55
- package/dist/{streaming-markdown-D-JcByd9.d.cts → streaming-markdown-zVwFuaJG.d.cts} +51 -55
- package/dist/streaming-markdown.cjs +11828 -4879
- package/dist/streaming-markdown.d.cts +9 -2
- package/dist/streaming-markdown.d.ts +9 -2
- package/dist/streaming-markdown.mjs +11820 -4821
- package/dist/trusted-mdx/index.cjs +833 -0
- package/dist/trusted-mdx/index.d.cts +11 -0
- package/dist/trusted-mdx/index.d.ts +11 -0
- package/dist/trusted-mdx/index.mjs +807 -0
- package/dist/trusted-mdx/native-children-slot.cjs +45 -0
- package/dist/trusted-mdx/native-children-slot.d.cts +11 -0
- package/dist/trusted-mdx/native-children-slot.d.ts +11 -0
- package/dist/trusted-mdx/native-children-slot.mjs +24 -0
- package/dist/trusted-mdx/server.cjs +752 -0
- package/dist/trusted-mdx/server.d.cts +24 -0
- package/dist/trusted-mdx/server.d.ts +24 -0
- package/dist/trusted-mdx/server.mjs +724 -0
- package/dist/trusted-mdx-contract-ElKpkDI5.d.cts +113 -0
- package/dist/trusted-mdx-contract-ElKpkDI5.d.ts +113 -0
- package/dist/utils/inline-html.cjs +246 -147
- package/dist/utils/inline-html.d.cts +39 -6
- package/dist/utils/inline-html.d.ts +39 -6
- package/dist/utils/inline-html.mjs +237 -134
- package/package.json +52 -18
- package/shadcn/README.md +28 -0
- package/shadcn/bottom-stick-scroll-area.tsx +358 -0
- package/dist/index-D2MYusAM.d.cts +0 -248
- package/dist/index-D2MYusAM.d.ts +0 -248
- package/dist/mdx-client.cjs +0 -408
- package/dist/mdx-client.d.cts +0 -113
- package/dist/mdx-client.d.ts +0 -113
- package/dist/mdx-client.mjs +0 -369
- package/dist/mdx-coordinator.cjs +0 -563
- package/dist/mdx-coordinator.d.cts +0 -21
- package/dist/mdx-coordinator.d.ts +0 -21
- package/dist/mdx-coordinator.mjs +0 -529
- package/dist/renderer/node-views.cjs +0 -1642
- package/dist/renderer/node-views.d.cts +0 -12
- package/dist/renderer/node-views.d.ts +0 -12
- package/dist/renderer/node-views.mjs +0 -1616
|
@@ -6,17 +6,14 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
8
|
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable:
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
10
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
13
12
|
for (let key of __getOwnPropNames(from))
|
|
14
|
-
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
13
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
14
|
return to;
|
|
18
15
|
};
|
|
19
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value:
|
|
16
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
20
17
|
|
|
21
18
|
// src/math/display-wrapper.tsx
|
|
22
19
|
var display_wrapper_exports = {};
|
|
@@ -25,12 +22,7 @@ __export(display_wrapper_exports, {
|
|
|
25
22
|
renderDisplayMathWithHtml: () => renderDisplayMathWithHtml
|
|
26
23
|
});
|
|
27
24
|
module.exports = __toCommonJS(display_wrapper_exports);
|
|
28
|
-
var import_jsx_runtime = require("react/jsx-runtime")
|
|
29
|
-
var BASE_CLASS = "katex-block-wrapper my-2";
|
|
30
|
-
var SCROLL_ROOT_CLASS = "katex-scroll relative overflow-x-hidden w-full max-w-full";
|
|
31
|
-
var VIEWPORT_CLASS = "katex-scroll-viewport h-full w-full rounded-[inherit]";
|
|
32
|
-
var SHIM_STYLE = { minWidth: "100%", display: "table" };
|
|
33
|
-
var VIEWPORT_STYLE = {
|
|
25
|
+
var import_jsx_runtime = require("react/jsx-runtime"), BASE_CLASS = "katex-block-wrapper my-2", SCROLL_ROOT_CLASS = "katex-scroll relative overflow-x-hidden w-full max-w-full", VIEWPORT_CLASS = "katex-scroll-viewport h-full w-full rounded-[inherit]", SHIM_STYLE = { minWidth: "100%", display: "table" }, VIEWPORT_STYLE = {
|
|
34
26
|
overflowX: "auto",
|
|
35
27
|
overflowY: "hidden",
|
|
36
28
|
WebkitOverflowScrolling: "touch"
|
|
@@ -39,7 +31,7 @@ function combineClassNames(base, extra) {
|
|
|
39
31
|
return extra && extra.length > 0 ? `${base} ${extra}` : base;
|
|
40
32
|
}
|
|
41
33
|
function DisplayMathWrapper({ children, className = "" }) {
|
|
42
|
-
|
|
34
|
+
let wrapperClass = combineClassNames(BASE_CLASS, className);
|
|
43
35
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: wrapperClass, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { dir: "ltr", className: SCROLL_ROOT_CLASS, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: VIEWPORT_CLASS, style: VIEWPORT_STYLE, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: SHIM_STYLE, children }) }) }) });
|
|
44
36
|
}
|
|
45
37
|
function renderDisplayMathWithHtml(html, className) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React__default from 'react';
|
|
2
2
|
|
|
3
3
|
interface DisplayMathWrapperProps {
|
|
4
|
-
children:
|
|
4
|
+
children: React__default.ReactNode;
|
|
5
5
|
className?: string;
|
|
6
6
|
}
|
|
7
7
|
declare function DisplayMathWrapper({ children, className }: DisplayMathWrapperProps): JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React__default from 'react';
|
|
2
2
|
|
|
3
3
|
interface DisplayMathWrapperProps {
|
|
4
|
-
children:
|
|
4
|
+
children: React__default.ReactNode;
|
|
5
5
|
className?: string;
|
|
6
6
|
}
|
|
7
7
|
declare function DisplayMathWrapper({ children, className }: DisplayMathWrapperProps): JSX.Element;
|
|
@@ -2,11 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
// src/math/display-wrapper.tsx
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
var BASE_CLASS = "katex-block-wrapper my-2"
|
|
6
|
-
var SCROLL_ROOT_CLASS = "katex-scroll relative overflow-x-hidden w-full max-w-full";
|
|
7
|
-
var VIEWPORT_CLASS = "katex-scroll-viewport h-full w-full rounded-[inherit]";
|
|
8
|
-
var SHIM_STYLE = { minWidth: "100%", display: "table" };
|
|
9
|
-
var VIEWPORT_STYLE = {
|
|
5
|
+
var BASE_CLASS = "katex-block-wrapper my-2", SCROLL_ROOT_CLASS = "katex-scroll relative overflow-x-hidden w-full max-w-full", VIEWPORT_CLASS = "katex-scroll-viewport h-full w-full rounded-[inherit]", SHIM_STYLE = { minWidth: "100%", display: "table" }, VIEWPORT_STYLE = {
|
|
10
6
|
overflowX: "auto",
|
|
11
7
|
overflowY: "hidden",
|
|
12
8
|
WebkitOverflowScrolling: "touch"
|
|
@@ -15,7 +11,7 @@ function combineClassNames(base, extra) {
|
|
|
15
11
|
return extra && extra.length > 0 ? `${base} ${extra}` : base;
|
|
16
12
|
}
|
|
17
13
|
function DisplayMathWrapper({ children, className = "" }) {
|
|
18
|
-
|
|
14
|
+
let wrapperClass = combineClassNames(BASE_CLASS, className);
|
|
19
15
|
return /* @__PURE__ */ jsx("div", { className: wrapperClass, children: /* @__PURE__ */ jsx("div", { dir: "ltr", className: SCROLL_ROOT_CLASS, children: /* @__PURE__ */ jsx("div", { className: VIEWPORT_CLASS, style: VIEWPORT_STYLE, children: /* @__PURE__ */ jsx("div", { style: SHIM_STYLE, children }) }) }) });
|
|
20
16
|
}
|
|
21
17
|
function renderDisplayMathWithHtml(html, className) {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CodeNodeHandle, TableNodeHandle, Block } from '@stream-mdx/core';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
import { a0 as NodeHandle, d as ComponentRegistry } from './index-Cmne1yUK.cjs';
|
|
4
|
+
import { RendererStore } from './renderer/store.cjs';
|
|
5
|
+
|
|
6
|
+
type NodeViewHandle = NodeHandle | CodeNodeHandle | TableNodeHandle;
|
|
7
|
+
|
|
8
|
+
declare function renderNodePresentation(block: Block | undefined, nativeView: React__default.ReactNode, store: RendererStore, registry: ComponentRegistry, nodeId?: string, bypassPresentation?: boolean): React__default.ReactNode;
|
|
9
|
+
declare const NativeNodeView: React__default.FC<{
|
|
10
|
+
readonly handle: NodeViewHandle;
|
|
11
|
+
}>;
|
|
12
|
+
|
|
13
|
+
export { NativeNodeView as N, renderNodePresentation as r };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CodeNodeHandle, TableNodeHandle, Block } from '@stream-mdx/core';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
import { a0 as NodeHandle, d as ComponentRegistry } from './index-D7dyyu3q.js';
|
|
4
|
+
import { RendererStore } from './renderer/store.js';
|
|
5
|
+
|
|
6
|
+
type NodeViewHandle = NodeHandle | CodeNodeHandle | TableNodeHandle;
|
|
7
|
+
|
|
8
|
+
declare function renderNodePresentation(block: Block | undefined, nativeView: React__default.ReactNode, store: RendererStore, registry: ComponentRegistry, nodeId?: string, bypassPresentation?: boolean): React__default.ReactNode;
|
|
9
|
+
declare const NativeNodeView: React__default.FC<{
|
|
10
|
+
readonly handle: NodeViewHandle;
|
|
11
|
+
}>;
|
|
12
|
+
|
|
13
|
+
export { NativeNodeView as N, renderNodePresentation as r };
|
package/dist/renderer/hooks.cjs
CHANGED
|
@@ -6,27 +6,37 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
8
|
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable:
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
10
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
13
12
|
for (let key of __getOwnPropNames(from))
|
|
14
|
-
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
13
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
14
|
return to;
|
|
18
15
|
};
|
|
19
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value:
|
|
16
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
20
17
|
|
|
21
18
|
// src/renderer/hooks.ts
|
|
22
19
|
var hooks_exports = {};
|
|
23
20
|
__export(hooks_exports, {
|
|
21
|
+
RenderConfigVersionContext: () => RenderConfigVersionContext,
|
|
24
22
|
useRendererBlocks: () => useRendererBlocks,
|
|
25
23
|
useRendererChildren: () => useRendererChildren,
|
|
26
|
-
|
|
24
|
+
useRendererHasProvisionalBlocks: () => useRendererHasProvisionalBlocks,
|
|
25
|
+
useRendererNode: () => useRendererNode,
|
|
26
|
+
useRendererNodeSnapshot: () => useRendererNodeSnapshot
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(hooks_exports);
|
|
29
29
|
var import_react = require("react");
|
|
30
|
+
|
|
31
|
+
// src/renderer/node-subscriptions.ts
|
|
32
|
+
var nodeSubscriptions = /* @__PURE__ */ new WeakMap();
|
|
33
|
+
function subscribeRendererNode(store, id, listener) {
|
|
34
|
+
let subscribe = nodeSubscriptions.get(store);
|
|
35
|
+
return subscribe ? subscribe(id, listener) : store.subscribe(listener);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// src/renderer/hooks.ts
|
|
39
|
+
var RenderConfigVersionContext = (0, import_react.createContext)(0);
|
|
30
40
|
function useRendererBlocks(store) {
|
|
31
41
|
return (0, import_react.useSyncExternalStore)(
|
|
32
42
|
store.subscribe,
|
|
@@ -34,23 +44,28 @@ function useRendererBlocks(store) {
|
|
|
34
44
|
() => store.getBlocks()
|
|
35
45
|
);
|
|
36
46
|
}
|
|
47
|
+
function useRendererHasProvisionalBlocks(store) {
|
|
48
|
+
return (0, import_react.useSyncExternalStore)(store.subscribe, store.hasProvisionalBlocks, store.hasProvisionalBlocks);
|
|
49
|
+
}
|
|
50
|
+
function useRendererNodeSnapshot(store, id) {
|
|
51
|
+
(0, import_react.useContext)(RenderConfigVersionContext);
|
|
52
|
+
let subscribe = (0, import_react.useCallback)((listener) => subscribeRendererNode(store, id, listener), [store, id]), selector = (0, import_react.useMemo)(() => () => store.getNodeWithVersion(id), [store, id]);
|
|
53
|
+
return (0, import_react.useSyncExternalStore)(subscribe, selector, selector);
|
|
54
|
+
}
|
|
37
55
|
function useRendererNode(store, id) {
|
|
38
|
-
|
|
39
|
-
return () => store.getNodeWithVersion(id);
|
|
40
|
-
}, [store, id]);
|
|
41
|
-
const snapshot = (0, import_react.useSyncExternalStore)(store.subscribe, selector, selector);
|
|
42
|
-
return snapshot.node;
|
|
56
|
+
return useRendererNodeSnapshot(store, id).node;
|
|
43
57
|
}
|
|
44
58
|
function useRendererChildren(store, id) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const snapshot = (0, import_react.useSyncExternalStore)(store.subscribe, selector, selector);
|
|
49
|
-
return snapshot.children;
|
|
59
|
+
(0, import_react.useContext)(RenderConfigVersionContext);
|
|
60
|
+
let subscribe = (0, import_react.useCallback)((listener) => subscribeRendererNode(store, id, listener), [store, id]), selector = (0, import_react.useMemo)(() => () => store.getChildrenWithVersion(id), [store, id]);
|
|
61
|
+
return (0, import_react.useSyncExternalStore)(subscribe, selector, selector).children;
|
|
50
62
|
}
|
|
51
63
|
// Annotate the CommonJS export names for ESM import in node:
|
|
52
64
|
0 && (module.exports = {
|
|
65
|
+
RenderConfigVersionContext,
|
|
53
66
|
useRendererBlocks,
|
|
54
67
|
useRendererChildren,
|
|
55
|
-
|
|
68
|
+
useRendererHasProvisionalBlocks,
|
|
69
|
+
useRendererNode,
|
|
70
|
+
useRendererNodeSnapshot
|
|
56
71
|
});
|
|
@@ -1,8 +1,29 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import { Block } from '@stream-mdx/core';
|
|
2
3
|
import { RendererStore, NodeRecord } from './store.cjs';
|
|
4
|
+
import '../index-Cmne1yUK.cjs';
|
|
5
|
+
import '../components/bottom-stick-scroll-area.cjs';
|
|
6
|
+
import 'react/jsx-runtime';
|
|
7
|
+
import '../components/diff-renderer.cjs';
|
|
8
|
+
import '@stream-mdx/protocol';
|
|
9
|
+
import '../trusted-mdx-contract-ElKpkDI5.cjs';
|
|
10
|
+
import '@stream-mdx/worker/engine';
|
|
11
|
+
import './virtualized-code.cjs';
|
|
3
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Bumped when render-time registry config (filters, URL policy, block overrides) changes.
|
|
15
|
+
* Node views are memoized on (store, id, registry); consuming this in the shared node hooks
|
|
16
|
+
* re-renders every mounted view on a config change without remounting it.
|
|
17
|
+
*/
|
|
18
|
+
declare const RenderConfigVersionContext: React.Context<number>;
|
|
4
19
|
declare function useRendererBlocks(store: RendererStore): ReadonlyArray<Block>;
|
|
20
|
+
/** Lifecycle-only subscription; never materializes authored blocks or code lines. */
|
|
21
|
+
declare function useRendererHasProvisionalBlocks(store: RendererStore): boolean;
|
|
22
|
+
declare function useRendererNodeSnapshot(store: RendererStore, id: string): {
|
|
23
|
+
version: number;
|
|
24
|
+
node?: NodeRecord;
|
|
25
|
+
};
|
|
5
26
|
declare function useRendererNode(store: RendererStore, id: string): NodeRecord | undefined;
|
|
6
27
|
declare function useRendererChildren(store: RendererStore, id: string): ReadonlyArray<string>;
|
|
7
28
|
|
|
8
|
-
export { useRendererBlocks, useRendererChildren, useRendererNode };
|
|
29
|
+
export { RenderConfigVersionContext, useRendererBlocks, useRendererChildren, useRendererHasProvisionalBlocks, useRendererNode, useRendererNodeSnapshot };
|
package/dist/renderer/hooks.d.ts
CHANGED
|
@@ -1,8 +1,29 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import { Block } from '@stream-mdx/core';
|
|
2
3
|
import { RendererStore, NodeRecord } from './store.js';
|
|
4
|
+
import '../index-D7dyyu3q.js';
|
|
5
|
+
import '../components/bottom-stick-scroll-area.js';
|
|
6
|
+
import 'react/jsx-runtime';
|
|
7
|
+
import '../components/diff-renderer.js';
|
|
8
|
+
import '@stream-mdx/protocol';
|
|
9
|
+
import '../trusted-mdx-contract-ElKpkDI5.js';
|
|
10
|
+
import '@stream-mdx/worker/engine';
|
|
11
|
+
import './virtualized-code.js';
|
|
3
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Bumped when render-time registry config (filters, URL policy, block overrides) changes.
|
|
15
|
+
* Node views are memoized on (store, id, registry); consuming this in the shared node hooks
|
|
16
|
+
* re-renders every mounted view on a config change without remounting it.
|
|
17
|
+
*/
|
|
18
|
+
declare const RenderConfigVersionContext: React.Context<number>;
|
|
4
19
|
declare function useRendererBlocks(store: RendererStore): ReadonlyArray<Block>;
|
|
20
|
+
/** Lifecycle-only subscription; never materializes authored blocks or code lines. */
|
|
21
|
+
declare function useRendererHasProvisionalBlocks(store: RendererStore): boolean;
|
|
22
|
+
declare function useRendererNodeSnapshot(store: RendererStore, id: string): {
|
|
23
|
+
version: number;
|
|
24
|
+
node?: NodeRecord;
|
|
25
|
+
};
|
|
5
26
|
declare function useRendererNode(store: RendererStore, id: string): NodeRecord | undefined;
|
|
6
27
|
declare function useRendererChildren(store: RendererStore, id: string): ReadonlyArray<string>;
|
|
7
28
|
|
|
8
|
-
export { useRendererBlocks, useRendererChildren, useRendererNode };
|
|
29
|
+
export { RenderConfigVersionContext, useRendererBlocks, useRendererChildren, useRendererHasProvisionalBlocks, useRendererNode, useRendererNodeSnapshot };
|
package/dist/renderer/hooks.mjs
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
// src/renderer/hooks.ts
|
|
4
|
-
import { useMemo, useSyncExternalStore } from "react";
|
|
4
|
+
import { createContext, useCallback, useContext, useMemo, useSyncExternalStore } from "react";
|
|
5
|
+
|
|
6
|
+
// src/renderer/node-subscriptions.ts
|
|
7
|
+
var nodeSubscriptions = /* @__PURE__ */ new WeakMap();
|
|
8
|
+
function subscribeRendererNode(store, id, listener) {
|
|
9
|
+
let subscribe = nodeSubscriptions.get(store);
|
|
10
|
+
return subscribe ? subscribe(id, listener) : store.subscribe(listener);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// src/renderer/hooks.ts
|
|
14
|
+
var RenderConfigVersionContext = createContext(0);
|
|
5
15
|
function useRendererBlocks(store) {
|
|
6
16
|
return useSyncExternalStore(
|
|
7
17
|
store.subscribe,
|
|
@@ -9,22 +19,27 @@ function useRendererBlocks(store) {
|
|
|
9
19
|
() => store.getBlocks()
|
|
10
20
|
);
|
|
11
21
|
}
|
|
22
|
+
function useRendererHasProvisionalBlocks(store) {
|
|
23
|
+
return useSyncExternalStore(store.subscribe, store.hasProvisionalBlocks, store.hasProvisionalBlocks);
|
|
24
|
+
}
|
|
25
|
+
function useRendererNodeSnapshot(store, id) {
|
|
26
|
+
useContext(RenderConfigVersionContext);
|
|
27
|
+
let subscribe = useCallback((listener) => subscribeRendererNode(store, id, listener), [store, id]), selector = useMemo(() => () => store.getNodeWithVersion(id), [store, id]);
|
|
28
|
+
return useSyncExternalStore(subscribe, selector, selector);
|
|
29
|
+
}
|
|
12
30
|
function useRendererNode(store, id) {
|
|
13
|
-
|
|
14
|
-
return () => store.getNodeWithVersion(id);
|
|
15
|
-
}, [store, id]);
|
|
16
|
-
const snapshot = useSyncExternalStore(store.subscribe, selector, selector);
|
|
17
|
-
return snapshot.node;
|
|
31
|
+
return useRendererNodeSnapshot(store, id).node;
|
|
18
32
|
}
|
|
19
33
|
function useRendererChildren(store, id) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const snapshot = useSyncExternalStore(store.subscribe, selector, selector);
|
|
24
|
-
return snapshot.children;
|
|
34
|
+
useContext(RenderConfigVersionContext);
|
|
35
|
+
let subscribe = useCallback((listener) => subscribeRendererNode(store, id, listener), [store, id]), selector = useMemo(() => () => store.getChildrenWithVersion(id), [store, id]);
|
|
36
|
+
return useSyncExternalStore(subscribe, selector, selector).children;
|
|
25
37
|
}
|
|
26
38
|
export {
|
|
39
|
+
RenderConfigVersionContext,
|
|
27
40
|
useRendererBlocks,
|
|
28
41
|
useRendererChildren,
|
|
29
|
-
|
|
42
|
+
useRendererHasProvisionalBlocks,
|
|
43
|
+
useRendererNode,
|
|
44
|
+
useRendererNodeSnapshot
|
|
30
45
|
};
|
|
@@ -6,21 +6,19 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
8
|
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable:
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
10
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
13
12
|
for (let key of __getOwnPropNames(from))
|
|
14
|
-
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
13
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
14
|
return to;
|
|
18
15
|
};
|
|
19
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value:
|
|
16
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
20
17
|
|
|
21
18
|
// src/renderer/patch-batching.ts
|
|
22
19
|
var patch_batching_exports = {};
|
|
23
20
|
__export(patch_batching_exports, {
|
|
21
|
+
getPatchKind: () => import_patch_batching.getPatchKind,
|
|
24
22
|
isHeavyPatch: () => import_patch_batching.isHeavyPatch,
|
|
25
23
|
splitPatchBatch: () => import_patch_batching.splitPatchBatch
|
|
26
24
|
});
|
|
@@ -28,6 +26,7 @@ module.exports = __toCommonJS(patch_batching_exports);
|
|
|
28
26
|
var import_patch_batching = require("@stream-mdx/core/perf/patch-batching");
|
|
29
27
|
// Annotate the CommonJS export names for ESM import in node:
|
|
30
28
|
0 && (module.exports = {
|
|
29
|
+
getPatchKind,
|
|
31
30
|
isHeavyPatch,
|
|
32
31
|
splitPatchBatch
|
|
33
32
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { isHeavyPatch, splitPatchBatch } from '@stream-mdx/core/perf/patch-batching';
|
|
1
|
+
export { getPatchKind, isHeavyPatch, splitPatchBatch } from '@stream-mdx/core/perf/patch-batching';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { isHeavyPatch, splitPatchBatch } from '@stream-mdx/core/perf/patch-batching';
|
|
1
|
+
export { getPatchKind, isHeavyPatch, splitPatchBatch } from '@stream-mdx/core/perf/patch-batching';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
// src/renderer/patch-batching.ts
|
|
4
|
-
import { isHeavyPatch, splitPatchBatch } from "@stream-mdx/core/perf/patch-batching";
|
|
4
|
+
import { getPatchKind, isHeavyPatch, splitPatchBatch } from "@stream-mdx/core/perf/patch-batching";
|
|
5
5
|
export {
|
|
6
|
+
getPatchKind,
|
|
6
7
|
isHeavyPatch,
|
|
7
8
|
splitPatchBatch
|
|
8
9
|
};
|
|
@@ -6,17 +6,14 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
8
|
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable:
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
10
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
13
12
|
for (let key of __getOwnPropNames(from))
|
|
14
|
-
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
13
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
14
|
return to;
|
|
18
15
|
};
|
|
19
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value:
|
|
16
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
20
17
|
|
|
21
18
|
// src/renderer/patch-coalescing.ts
|
|
22
19
|
var patch_coalescing_exports = {};
|