@stream-mdx/react 0.5.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.
Files changed (99) hide show
  1. package/CHANGELOG.md +371 -0
  2. package/README.md +79 -4
  3. package/dist/blocks-renderer-DAOBFBfi.d.ts +29 -0
  4. package/dist/blocks-renderer-DQEL1kJW.d.cts +29 -0
  5. package/dist/components/bottom-stick-scroll-area.cjs +117 -193
  6. package/dist/components/bottom-stick-scroll-area.mjs +112 -183
  7. package/dist/components/diff-renderer.cjs +86 -0
  8. package/dist/components/diff-renderer.d.cts +11 -0
  9. package/dist/components/diff-renderer.d.ts +11 -0
  10. package/dist/components/diff-renderer.mjs +66 -0
  11. package/dist/components/index.cjs +2761 -1508
  12. package/dist/components/index.d.cts +7 -2
  13. package/dist/components/index.d.ts +7 -2
  14. package/dist/components/index.mjs +2730 -1493
  15. package/dist/components/katex-math.cjs +220 -0
  16. package/dist/components/katex-math.d.cts +10 -0
  17. package/dist/components/katex-math.d.ts +10 -0
  18. package/dist/components/katex-math.mjs +188 -0
  19. package/dist/contexts/math-tracker.cjs +240 -521
  20. package/dist/contexts/math-tracker.mjs +235 -513
  21. package/dist/index-Cmne1yUK.d.cts +723 -0
  22. package/dist/index-D7dyyu3q.d.ts +723 -0
  23. package/dist/index.cjs +13029 -6475
  24. package/dist/index.d.cts +69 -39
  25. package/dist/index.d.ts +69 -39
  26. package/dist/index.mjs +13007 -6442
  27. package/dist/math/display-wrapper.cjs +7 -15
  28. package/dist/math/display-wrapper.d.cts +2 -2
  29. package/dist/math/display-wrapper.d.ts +2 -2
  30. package/dist/math/display-wrapper.mjs +2 -6
  31. package/dist/node-views-Bpc6Gkgl.d.cts +13 -0
  32. package/dist/node-views-DpnYdaAS.d.ts +13 -0
  33. package/dist/renderer/hooks.cjs +35 -20
  34. package/dist/renderer/hooks.d.cts +22 -1
  35. package/dist/renderer/hooks.d.ts +22 -1
  36. package/dist/renderer/hooks.mjs +27 -12
  37. package/dist/renderer/patch-batching.cjs +5 -8
  38. package/dist/renderer/patch-coalescing.cjs +5 -8
  39. package/dist/renderer/patch-commit-scheduler.cjs +138 -356
  40. package/dist/renderer/patch-commit-scheduler.d.cts +13 -1
  41. package/dist/renderer/patch-commit-scheduler.d.ts +13 -1
  42. package/dist/renderer/patch-commit-scheduler.mjs +133 -348
  43. package/dist/renderer/store.cjs +3775 -1373
  44. package/dist/renderer/store.d.cts +108 -3
  45. package/dist/renderer/store.d.ts +108 -3
  46. package/dist/renderer/store.mjs +3778 -1362
  47. package/dist/renderer/virtualized-code.cjs +415 -71
  48. package/dist/renderer/virtualized-code.d.cts +24 -23
  49. package/dist/renderer/virtualized-code.d.ts +24 -23
  50. package/dist/renderer/virtualized-code.mjs +409 -62
  51. package/dist/renderer.cjs +10655 -4334
  52. package/dist/renderer.d.cts +98 -29
  53. package/dist/renderer.d.ts +98 -29
  54. package/dist/renderer.mjs +10582 -4212
  55. package/dist/server-regions-CPLHGli0.d.cts +32 -0
  56. package/dist/server-regions-mUhyoKi7.d.ts +32 -0
  57. package/dist/server.cjs +10195 -3872
  58. package/dist/server.d.cts +17 -252
  59. package/dist/server.d.ts +17 -252
  60. package/dist/server.mjs +9997 -3649
  61. package/dist/{streaming-markdown-CEI9eDZm.d.ts → streaming-markdown-yELbJxyH.d.ts} +49 -55
  62. package/dist/{streaming-markdown-DRisClXb.d.cts → streaming-markdown-zVwFuaJG.d.cts} +49 -55
  63. package/dist/streaming-markdown.cjs +11660 -5378
  64. package/dist/streaming-markdown.d.cts +7 -2
  65. package/dist/streaming-markdown.d.ts +7 -2
  66. package/dist/streaming-markdown.mjs +11679 -5347
  67. package/dist/trusted-mdx/index.cjs +833 -0
  68. package/dist/trusted-mdx/index.d.cts +11 -0
  69. package/dist/trusted-mdx/index.d.ts +11 -0
  70. package/dist/trusted-mdx/index.mjs +807 -0
  71. package/dist/trusted-mdx/native-children-slot.cjs +45 -0
  72. package/dist/trusted-mdx/native-children-slot.d.cts +11 -0
  73. package/dist/trusted-mdx/native-children-slot.d.ts +11 -0
  74. package/dist/trusted-mdx/native-children-slot.mjs +24 -0
  75. package/dist/trusted-mdx/server.cjs +752 -0
  76. package/dist/trusted-mdx/server.d.cts +24 -0
  77. package/dist/trusted-mdx/server.d.ts +24 -0
  78. package/dist/trusted-mdx/server.mjs +724 -0
  79. package/dist/trusted-mdx-contract-ElKpkDI5.d.cts +113 -0
  80. package/dist/trusted-mdx-contract-ElKpkDI5.d.ts +113 -0
  81. package/dist/utils/inline-html.cjs +246 -147
  82. package/dist/utils/inline-html.d.cts +37 -6
  83. package/dist/utils/inline-html.d.ts +37 -6
  84. package/dist/utils/inline-html.mjs +237 -134
  85. package/package.json +41 -18
  86. package/dist/index-BVhp_pcF.d.ts +0 -251
  87. package/dist/index-EaeouYp2.d.cts +0 -251
  88. package/dist/mdx-client.cjs +0 -408
  89. package/dist/mdx-client.d.cts +0 -113
  90. package/dist/mdx-client.d.ts +0 -113
  91. package/dist/mdx-client.mjs +0 -369
  92. package/dist/mdx-coordinator.cjs +0 -584
  93. package/dist/mdx-coordinator.d.cts +0 -21
  94. package/dist/mdx-coordinator.d.ts +0 -21
  95. package/dist/mdx-coordinator.mjs +0 -550
  96. package/dist/renderer/node-views.cjs +0 -1887
  97. package/dist/renderer/node-views.d.cts +0 -14
  98. package/dist/renderer/node-views.d.ts +0 -14
  99. package/dist/renderer/node-views.mjs +0 -1861
@@ -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: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
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
- if (!__hasOwnProp.call(to, key) && key !== except)
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: true }), mod);
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
- const wrapperClass = combineClassNames(BASE_CLASS, className);
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 React from 'react';
1
+ import React__default from 'react';
2
2
 
3
3
  interface DisplayMathWrapperProps {
4
- children: React.ReactNode;
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 React from 'react';
1
+ import React__default from 'react';
2
2
 
3
3
  interface DisplayMathWrapperProps {
4
- children: React.ReactNode;
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
- const wrapperClass = combineClassNames(BASE_CLASS, className);
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 };
@@ -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: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
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
- if (!__hasOwnProp.call(to, key) && key !== except)
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: true }), mod);
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
- useRendererNode: () => useRendererNode
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
- const selector = (0, import_react.useMemo)(() => {
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
- const selector = (0, import_react.useMemo)(() => {
46
- return () => store.getChildrenWithVersion(id);
47
- }, [store, id]);
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
- useRendererNode
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 };
@@ -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 };
@@ -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
- const selector = useMemo(() => {
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
- const selector = useMemo(() => {
21
- return () => store.getChildrenWithVersion(id);
22
- }, [store, id]);
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
- useRendererNode
42
+ useRendererHasProvisionalBlocks,
43
+ useRendererNode,
44
+ useRendererNodeSnapshot
30
45
  };
@@ -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: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
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
- if (!__hasOwnProp.call(to, key) && key !== except)
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: true }), mod);
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 = {};
@@ -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: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
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
- if (!__hasOwnProp.call(to, key) && key !== except)
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: true }), mod);
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 = {};