@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
@@ -1,4 +1,76 @@
1
- import { Block, Patch, CoalescingMetrics } from '@stream-mdx/core';
1
+ import { CodeBlockSourceMetadata, CodeLineIndex, Block, NodeSnapshot, Patch, CoalescingMetrics, CodeNodeHandle, TableNodeHandle, CodeLineRecord, ManagedTableViewState, TableRowRecord, ManagedParagraphViewState, ParagraphSpanRecord } from '@stream-mdx/core';
2
+ import { a0 as NodeHandle } from '../index-Cmne1yUK.cjs';
3
+ import '../components/bottom-stick-scroll-area.cjs';
4
+ import 'react/jsx-runtime';
5
+ import 'react';
6
+ import '../components/diff-renderer.cjs';
7
+ import '@stream-mdx/protocol';
8
+ import '../trusted-mdx-contract-ElKpkDI5.cjs';
9
+ import '@stream-mdx/worker/engine';
10
+ import './virtualized-code.cjs';
11
+
12
+ interface BlockRangeProjectionLeaf {
13
+ readonly kind: "leaf";
14
+ readonly level: 0;
15
+ readonly rangeCount: number;
16
+ readonly starts: readonly number[];
17
+ }
18
+ interface BlockRangeProjectionBranch {
19
+ readonly kind: "branch";
20
+ /** -1 identifies the permanent root anchor; its children may have different levels. */
21
+ readonly level: number;
22
+ readonly rangeCount: number;
23
+ readonly children: readonly BlockRangeProjectionNode[];
24
+ }
25
+ type BlockRangeProjectionNode = BlockRangeProjectionLeaf | BlockRangeProjectionBranch;
26
+ interface BlockRangeProjection {
27
+ readonly rangeCount: number;
28
+ readonly rangeSize: number;
29
+ readonly root: BlockRangeProjectionBranch;
30
+ }
31
+
32
+ interface CodeBlockViewState {
33
+ readonly source: CodeBlockSourceMetadata;
34
+ readonly configurationRevision: number;
35
+ readonly info: string;
36
+ readonly language?: string;
37
+ readonly lines: CodeLineIndex;
38
+ }
39
+
40
+ interface ParagraphSegmentPlanEvent {
41
+ readonly id: string;
42
+ readonly type: string;
43
+ readonly range: {
44
+ readonly from: number;
45
+ readonly to: number;
46
+ };
47
+ readonly order: number;
48
+ readonly nativeChild?: boolean;
49
+ readonly spanFrom?: number;
50
+ readonly spanTo?: number;
51
+ }
52
+ interface ParagraphSegmentProjectionLeaf {
53
+ readonly kind: "leaf";
54
+ readonly level: 0;
55
+ readonly eventCount: number;
56
+ readonly events: readonly ParagraphSegmentPlanEvent[];
57
+ readonly firstEvent: ParagraphSegmentPlanEvent;
58
+ readonly lastEvent: ParagraphSegmentPlanEvent;
59
+ }
60
+ interface ParagraphSegmentProjectionBranch {
61
+ readonly kind: "branch";
62
+ readonly level: number;
63
+ readonly eventCount: number;
64
+ readonly children: readonly ParagraphSegmentProjectionNode[];
65
+ readonly firstEvent: ParagraphSegmentPlanEvent;
66
+ readonly lastEvent: ParagraphSegmentPlanEvent;
67
+ }
68
+ type ParagraphSegmentProjectionNode = ParagraphSegmentProjectionLeaf | ParagraphSegmentProjectionBranch;
69
+ interface ParagraphSegmentProjection {
70
+ readonly root?: ParagraphSegmentProjectionNode;
71
+ readonly eventCount: number;
72
+ readonly tailSpanOwnerIndex?: number;
73
+ }
2
74
 
3
75
  interface NodeRecord {
4
76
  id: string;
@@ -21,10 +93,33 @@ interface ApplyPatchesOptions {
21
93
  captureMetrics?: boolean;
22
94
  allowEmpty?: boolean;
23
95
  }
96
+ interface RendererStoreOptions {
97
+ themes?: {
98
+ light: string;
99
+ dark: string;
100
+ };
101
+ }
24
102
  interface RendererStore {
25
103
  reset(blocks: Block[]): void;
104
+ resetSnapshot(snapshot: NodeSnapshot): void;
26
105
  applyPatches(patches: Patch[], options?: ApplyPatchesOptions): Set<string>;
27
106
  getBlocks(): ReadonlyArray<Block>;
107
+ hasProvisionalBlocks(): boolean;
108
+ getCodeBlock(id: string): CodeBlockViewState | undefined;
109
+ getCodeNodeHandle(id: string): CodeNodeHandle | undefined;
110
+ getTableNodeHandle(id: string): TableNodeHandle | undefined;
111
+ getCodeLines(id: string, from: number, to: number): ReadonlyArray<CodeLineRecord>;
112
+ subscribeCodeLines(id: string, from: number, to: number, listener: () => void): () => void;
113
+ getTableBlock(id: string): ManagedTableViewState | undefined;
114
+ getTableColdBlock(id: string): Block | undefined;
115
+ getTableRows(id: string, from: number, to: number): ReadonlyArray<TableRowRecord>;
116
+ subscribeTableRows(id: string, from: number, to: number, listener: () => void): () => void;
117
+ getParagraphBlock(id: string): ManagedParagraphViewState | undefined;
118
+ getParagraphColdBlock(id: string): Block | undefined;
119
+ getParagraphSpanProjection(id: string): BlockRangeProjection;
120
+ getParagraphSegmentProjection(id: string): ParagraphSegmentProjection | undefined;
121
+ getParagraphSpans(id: string, generation: number, from: number, to: number): ReadonlyArray<ParagraphSpanRecord>;
122
+ subscribeParagraphSpans(id: string, generation: number, from: number, listener: () => void): () => void;
28
123
  getVersion(): number;
29
124
  getNode(id: string): NodeRecord | undefined;
30
125
  getNodeWithVersion(id: string): {
@@ -36,12 +131,22 @@ interface RendererStore {
36
131
  version: number;
37
132
  children: ReadonlyArray<string>;
38
133
  };
134
+ getNodeHandle(id: string): NodeHandle | undefined;
39
135
  getInvariantViolations(): string[];
40
136
  getDebugCounters(): Readonly<Record<string, number>>;
41
137
  subscribe(listener: () => void): () => void;
42
138
  getLastCoalescingMetrics(): CoalescingMetrics | null;
139
+ getThemes(): {
140
+ light: string;
141
+ dark: string;
142
+ } | undefined;
143
+ setThemes(themes?: {
144
+ light: string;
145
+ dark: string;
146
+ }): void;
43
147
  }
148
+ declare function capturePreparedRendererStore(store: RendererStore): RendererStore;
44
149
  declare function isListPatchDebugEnabled(): boolean;
45
- declare function createRendererStore(initialBlocks?: Block[]): RendererStore;
150
+ declare function createRendererStore(initialBlocks?: Block[], options?: RendererStoreOptions): RendererStore;
46
151
 
47
- export { type ApplyPatchesOptions, type NodeRecord, type RendererStore, createRendererStore, isListPatchDebugEnabled };
152
+ export { type ApplyPatchesOptions, type CodeBlockViewState, type NodeRecord, type ParagraphSegmentPlanEvent, type ParagraphSegmentProjection, type ParagraphSegmentProjectionBranch, type ParagraphSegmentProjectionLeaf, type ParagraphSegmentProjectionNode, type RendererStore, type RendererStoreOptions, capturePreparedRendererStore, createRendererStore, isListPatchDebugEnabled };
@@ -1,4 +1,76 @@
1
- import { Block, Patch, CoalescingMetrics } from '@stream-mdx/core';
1
+ import { CodeBlockSourceMetadata, CodeLineIndex, Block, NodeSnapshot, Patch, CoalescingMetrics, CodeNodeHandle, TableNodeHandle, CodeLineRecord, ManagedTableViewState, TableRowRecord, ManagedParagraphViewState, ParagraphSpanRecord } from '@stream-mdx/core';
2
+ import { a0 as NodeHandle } from '../index-D7dyyu3q.js';
3
+ import '../components/bottom-stick-scroll-area.js';
4
+ import 'react/jsx-runtime';
5
+ import 'react';
6
+ import '../components/diff-renderer.js';
7
+ import '@stream-mdx/protocol';
8
+ import '../trusted-mdx-contract-ElKpkDI5.js';
9
+ import '@stream-mdx/worker/engine';
10
+ import './virtualized-code.js';
11
+
12
+ interface BlockRangeProjectionLeaf {
13
+ readonly kind: "leaf";
14
+ readonly level: 0;
15
+ readonly rangeCount: number;
16
+ readonly starts: readonly number[];
17
+ }
18
+ interface BlockRangeProjectionBranch {
19
+ readonly kind: "branch";
20
+ /** -1 identifies the permanent root anchor; its children may have different levels. */
21
+ readonly level: number;
22
+ readonly rangeCount: number;
23
+ readonly children: readonly BlockRangeProjectionNode[];
24
+ }
25
+ type BlockRangeProjectionNode = BlockRangeProjectionLeaf | BlockRangeProjectionBranch;
26
+ interface BlockRangeProjection {
27
+ readonly rangeCount: number;
28
+ readonly rangeSize: number;
29
+ readonly root: BlockRangeProjectionBranch;
30
+ }
31
+
32
+ interface CodeBlockViewState {
33
+ readonly source: CodeBlockSourceMetadata;
34
+ readonly configurationRevision: number;
35
+ readonly info: string;
36
+ readonly language?: string;
37
+ readonly lines: CodeLineIndex;
38
+ }
39
+
40
+ interface ParagraphSegmentPlanEvent {
41
+ readonly id: string;
42
+ readonly type: string;
43
+ readonly range: {
44
+ readonly from: number;
45
+ readonly to: number;
46
+ };
47
+ readonly order: number;
48
+ readonly nativeChild?: boolean;
49
+ readonly spanFrom?: number;
50
+ readonly spanTo?: number;
51
+ }
52
+ interface ParagraphSegmentProjectionLeaf {
53
+ readonly kind: "leaf";
54
+ readonly level: 0;
55
+ readonly eventCount: number;
56
+ readonly events: readonly ParagraphSegmentPlanEvent[];
57
+ readonly firstEvent: ParagraphSegmentPlanEvent;
58
+ readonly lastEvent: ParagraphSegmentPlanEvent;
59
+ }
60
+ interface ParagraphSegmentProjectionBranch {
61
+ readonly kind: "branch";
62
+ readonly level: number;
63
+ readonly eventCount: number;
64
+ readonly children: readonly ParagraphSegmentProjectionNode[];
65
+ readonly firstEvent: ParagraphSegmentPlanEvent;
66
+ readonly lastEvent: ParagraphSegmentPlanEvent;
67
+ }
68
+ type ParagraphSegmentProjectionNode = ParagraphSegmentProjectionLeaf | ParagraphSegmentProjectionBranch;
69
+ interface ParagraphSegmentProjection {
70
+ readonly root?: ParagraphSegmentProjectionNode;
71
+ readonly eventCount: number;
72
+ readonly tailSpanOwnerIndex?: number;
73
+ }
2
74
 
3
75
  interface NodeRecord {
4
76
  id: string;
@@ -21,10 +93,33 @@ interface ApplyPatchesOptions {
21
93
  captureMetrics?: boolean;
22
94
  allowEmpty?: boolean;
23
95
  }
96
+ interface RendererStoreOptions {
97
+ themes?: {
98
+ light: string;
99
+ dark: string;
100
+ };
101
+ }
24
102
  interface RendererStore {
25
103
  reset(blocks: Block[]): void;
104
+ resetSnapshot(snapshot: NodeSnapshot): void;
26
105
  applyPatches(patches: Patch[], options?: ApplyPatchesOptions): Set<string>;
27
106
  getBlocks(): ReadonlyArray<Block>;
107
+ hasProvisionalBlocks(): boolean;
108
+ getCodeBlock(id: string): CodeBlockViewState | undefined;
109
+ getCodeNodeHandle(id: string): CodeNodeHandle | undefined;
110
+ getTableNodeHandle(id: string): TableNodeHandle | undefined;
111
+ getCodeLines(id: string, from: number, to: number): ReadonlyArray<CodeLineRecord>;
112
+ subscribeCodeLines(id: string, from: number, to: number, listener: () => void): () => void;
113
+ getTableBlock(id: string): ManagedTableViewState | undefined;
114
+ getTableColdBlock(id: string): Block | undefined;
115
+ getTableRows(id: string, from: number, to: number): ReadonlyArray<TableRowRecord>;
116
+ subscribeTableRows(id: string, from: number, to: number, listener: () => void): () => void;
117
+ getParagraphBlock(id: string): ManagedParagraphViewState | undefined;
118
+ getParagraphColdBlock(id: string): Block | undefined;
119
+ getParagraphSpanProjection(id: string): BlockRangeProjection;
120
+ getParagraphSegmentProjection(id: string): ParagraphSegmentProjection | undefined;
121
+ getParagraphSpans(id: string, generation: number, from: number, to: number): ReadonlyArray<ParagraphSpanRecord>;
122
+ subscribeParagraphSpans(id: string, generation: number, from: number, listener: () => void): () => void;
28
123
  getVersion(): number;
29
124
  getNode(id: string): NodeRecord | undefined;
30
125
  getNodeWithVersion(id: string): {
@@ -36,12 +131,22 @@ interface RendererStore {
36
131
  version: number;
37
132
  children: ReadonlyArray<string>;
38
133
  };
134
+ getNodeHandle(id: string): NodeHandle | undefined;
39
135
  getInvariantViolations(): string[];
40
136
  getDebugCounters(): Readonly<Record<string, number>>;
41
137
  subscribe(listener: () => void): () => void;
42
138
  getLastCoalescingMetrics(): CoalescingMetrics | null;
139
+ getThemes(): {
140
+ light: string;
141
+ dark: string;
142
+ } | undefined;
143
+ setThemes(themes?: {
144
+ light: string;
145
+ dark: string;
146
+ }): void;
43
147
  }
148
+ declare function capturePreparedRendererStore(store: RendererStore): RendererStore;
44
149
  declare function isListPatchDebugEnabled(): boolean;
45
- declare function createRendererStore(initialBlocks?: Block[]): RendererStore;
150
+ declare function createRendererStore(initialBlocks?: Block[], options?: RendererStoreOptions): RendererStore;
46
151
 
47
- export { type ApplyPatchesOptions, type NodeRecord, type RendererStore, createRendererStore, isListPatchDebugEnabled };
152
+ export { type ApplyPatchesOptions, type CodeBlockViewState, type NodeRecord, type ParagraphSegmentPlanEvent, type ParagraphSegmentProjection, type ParagraphSegmentProjectionBranch, type ParagraphSegmentProjectionLeaf, type ParagraphSegmentProjectionNode, type RendererStore, type RendererStoreOptions, capturePreparedRendererStore, createRendererStore, isListPatchDebugEnabled };