@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.
Files changed (106) hide show
  1. package/CHANGELOG.md +385 -4
  2. package/README.md +141 -16
  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 +268 -0
  6. package/dist/components/bottom-stick-scroll-area.d.cts +36 -0
  7. package/dist/components/bottom-stick-scroll-area.d.ts +36 -0
  8. package/dist/components/bottom-stick-scroll-area.mjs +249 -0
  9. package/dist/components/diff-renderer.cjs +86 -0
  10. package/dist/components/diff-renderer.d.cts +11 -0
  11. package/dist/components/diff-renderer.d.ts +11 -0
  12. package/dist/components/diff-renderer.mjs +66 -0
  13. package/dist/components/index.cjs +2879 -1295
  14. package/dist/components/index.d.cts +9 -2
  15. package/dist/components/index.d.ts +9 -2
  16. package/dist/components/index.mjs +2842 -1277
  17. package/dist/components/katex-math.cjs +220 -0
  18. package/dist/components/katex-math.d.cts +10 -0
  19. package/dist/components/katex-math.d.ts +10 -0
  20. package/dist/components/katex-math.mjs +188 -0
  21. package/dist/contexts/math-tracker.cjs +240 -521
  22. package/dist/contexts/math-tracker.mjs +235 -513
  23. package/dist/index-Cmne1yUK.d.cts +723 -0
  24. package/dist/index-D7dyyu3q.d.ts +723 -0
  25. package/dist/index.cjs +13180 -5640
  26. package/dist/index.d.cts +72 -40
  27. package/dist/index.d.ts +72 -40
  28. package/dist/index.mjs +12587 -5038
  29. package/dist/math/display-wrapper.cjs +7 -15
  30. package/dist/math/display-wrapper.d.cts +2 -2
  31. package/dist/math/display-wrapper.d.ts +2 -2
  32. package/dist/math/display-wrapper.mjs +2 -6
  33. package/dist/node-views-Bpc6Gkgl.d.cts +13 -0
  34. package/dist/node-views-DpnYdaAS.d.ts +13 -0
  35. package/dist/renderer/hooks.cjs +35 -20
  36. package/dist/renderer/hooks.d.cts +22 -1
  37. package/dist/renderer/hooks.d.ts +22 -1
  38. package/dist/renderer/hooks.mjs +27 -12
  39. package/dist/renderer/patch-batching.cjs +7 -8
  40. package/dist/renderer/patch-batching.d.cts +1 -1
  41. package/dist/renderer/patch-batching.d.ts +1 -1
  42. package/dist/renderer/patch-batching.mjs +2 -1
  43. package/dist/renderer/patch-coalescing.cjs +5 -8
  44. package/dist/renderer/patch-commit-scheduler.cjs +160 -326
  45. package/dist/renderer/patch-commit-scheduler.d.cts +28 -4
  46. package/dist/renderer/patch-commit-scheduler.d.ts +28 -4
  47. package/dist/renderer/patch-commit-scheduler.mjs +157 -318
  48. package/dist/renderer/store.cjs +3847 -1099
  49. package/dist/renderer/store.d.cts +111 -3
  50. package/dist/renderer/store.d.ts +111 -3
  51. package/dist/renderer/store.mjs +3847 -1085
  52. package/dist/renderer/virtualized-code.cjs +415 -71
  53. package/dist/renderer/virtualized-code.d.cts +24 -23
  54. package/dist/renderer/virtualized-code.d.ts +24 -23
  55. package/dist/renderer/virtualized-code.mjs +409 -62
  56. package/dist/renderer.cjs +10939 -3974
  57. package/dist/renderer.d.cts +100 -29
  58. package/dist/renderer.d.ts +100 -29
  59. package/dist/renderer.mjs +10711 -3697
  60. package/dist/server-regions-CPLHGli0.d.cts +32 -0
  61. package/dist/server-regions-mUhyoKi7.d.ts +32 -0
  62. package/dist/server.cjs +10286 -3365
  63. package/dist/server.d.cts +17 -247
  64. package/dist/server.d.ts +17 -247
  65. package/dist/server.mjs +10565 -3619
  66. package/dist/{streaming-markdown-DOc2uLiP.d.ts → streaming-markdown-yELbJxyH.d.ts} +51 -55
  67. package/dist/{streaming-markdown-D-JcByd9.d.cts → streaming-markdown-zVwFuaJG.d.cts} +51 -55
  68. package/dist/streaming-markdown.cjs +11828 -4879
  69. package/dist/streaming-markdown.d.cts +9 -2
  70. package/dist/streaming-markdown.d.ts +9 -2
  71. package/dist/streaming-markdown.mjs +11820 -4821
  72. package/dist/trusted-mdx/index.cjs +833 -0
  73. package/dist/trusted-mdx/index.d.cts +11 -0
  74. package/dist/trusted-mdx/index.d.ts +11 -0
  75. package/dist/trusted-mdx/index.mjs +807 -0
  76. package/dist/trusted-mdx/native-children-slot.cjs +45 -0
  77. package/dist/trusted-mdx/native-children-slot.d.cts +11 -0
  78. package/dist/trusted-mdx/native-children-slot.d.ts +11 -0
  79. package/dist/trusted-mdx/native-children-slot.mjs +24 -0
  80. package/dist/trusted-mdx/server.cjs +752 -0
  81. package/dist/trusted-mdx/server.d.cts +24 -0
  82. package/dist/trusted-mdx/server.d.ts +24 -0
  83. package/dist/trusted-mdx/server.mjs +724 -0
  84. package/dist/trusted-mdx-contract-ElKpkDI5.d.cts +113 -0
  85. package/dist/trusted-mdx-contract-ElKpkDI5.d.ts +113 -0
  86. package/dist/utils/inline-html.cjs +246 -147
  87. package/dist/utils/inline-html.d.cts +39 -6
  88. package/dist/utils/inline-html.d.ts +39 -6
  89. package/dist/utils/inline-html.mjs +237 -134
  90. package/package.json +52 -18
  91. package/shadcn/README.md +28 -0
  92. package/shadcn/bottom-stick-scroll-area.tsx +358 -0
  93. package/dist/index-D2MYusAM.d.cts +0 -248
  94. package/dist/index-D2MYusAM.d.ts +0 -248
  95. package/dist/mdx-client.cjs +0 -408
  96. package/dist/mdx-client.d.cts +0 -113
  97. package/dist/mdx-client.d.ts +0 -113
  98. package/dist/mdx-client.mjs +0 -369
  99. package/dist/mdx-coordinator.cjs +0 -563
  100. package/dist/mdx-coordinator.d.cts +0 -21
  101. package/dist/mdx-coordinator.d.ts +0 -21
  102. package/dist/mdx-coordinator.mjs +0 -529
  103. package/dist/renderer/node-views.cjs +0 -1642
  104. package/dist/renderer/node-views.d.cts +0 -12
  105. package/dist/renderer/node-views.d.ts +0 -12
  106. package/dist/renderer/node-views.mjs +0 -1616
@@ -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;
@@ -12,6 +84,7 @@ interface NodeRecord {
12
84
  to: number;
13
85
  };
14
86
  version: number;
87
+ blockEpoch: number;
15
88
  block?: Block;
16
89
  }
17
90
  interface ApplyPatchesOptions {
@@ -20,10 +93,33 @@ interface ApplyPatchesOptions {
20
93
  captureMetrics?: boolean;
21
94
  allowEmpty?: boolean;
22
95
  }
96
+ interface RendererStoreOptions {
97
+ themes?: {
98
+ light: string;
99
+ dark: string;
100
+ };
101
+ }
23
102
  interface RendererStore {
24
103
  reset(blocks: Block[]): void;
104
+ resetSnapshot(snapshot: NodeSnapshot): void;
25
105
  applyPatches(patches: Patch[], options?: ApplyPatchesOptions): Set<string>;
26
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;
27
123
  getVersion(): number;
28
124
  getNode(id: string): NodeRecord | undefined;
29
125
  getNodeWithVersion(id: string): {
@@ -35,10 +131,22 @@ interface RendererStore {
35
131
  version: number;
36
132
  children: ReadonlyArray<string>;
37
133
  };
134
+ getNodeHandle(id: string): NodeHandle | undefined;
135
+ getInvariantViolations(): string[];
136
+ getDebugCounters(): Readonly<Record<string, number>>;
38
137
  subscribe(listener: () => void): () => void;
39
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;
40
147
  }
148
+ declare function capturePreparedRendererStore(store: RendererStore): RendererStore;
41
149
  declare function isListPatchDebugEnabled(): boolean;
42
- declare function createRendererStore(initialBlocks?: Block[]): RendererStore;
150
+ declare function createRendererStore(initialBlocks?: Block[], options?: RendererStoreOptions): RendererStore;
43
151
 
44
- 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;
@@ -12,6 +84,7 @@ interface NodeRecord {
12
84
  to: number;
13
85
  };
14
86
  version: number;
87
+ blockEpoch: number;
15
88
  block?: Block;
16
89
  }
17
90
  interface ApplyPatchesOptions {
@@ -20,10 +93,33 @@ interface ApplyPatchesOptions {
20
93
  captureMetrics?: boolean;
21
94
  allowEmpty?: boolean;
22
95
  }
96
+ interface RendererStoreOptions {
97
+ themes?: {
98
+ light: string;
99
+ dark: string;
100
+ };
101
+ }
23
102
  interface RendererStore {
24
103
  reset(blocks: Block[]): void;
104
+ resetSnapshot(snapshot: NodeSnapshot): void;
25
105
  applyPatches(patches: Patch[], options?: ApplyPatchesOptions): Set<string>;
26
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;
27
123
  getVersion(): number;
28
124
  getNode(id: string): NodeRecord | undefined;
29
125
  getNodeWithVersion(id: string): {
@@ -35,10 +131,22 @@ interface RendererStore {
35
131
  version: number;
36
132
  children: ReadonlyArray<string>;
37
133
  };
134
+ getNodeHandle(id: string): NodeHandle | undefined;
135
+ getInvariantViolations(): string[];
136
+ getDebugCounters(): Readonly<Record<string, number>>;
38
137
  subscribe(listener: () => void): () => void;
39
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;
40
147
  }
148
+ declare function capturePreparedRendererStore(store: RendererStore): RendererStore;
41
149
  declare function isListPatchDebugEnabled(): boolean;
42
- declare function createRendererStore(initialBlocks?: Block[]): RendererStore;
150
+ declare function createRendererStore(initialBlocks?: Block[], options?: RendererStoreOptions): RendererStore;
43
151
 
44
- 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 };