@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
package/dist/server.d.cts CHANGED
@@ -1,254 +1,19 @@
1
- import { InlineNode, TokenLineV1, CompiledMdxModule, InlineHtmlDescriptor, FormatAnticipationConfig, CodeHighlightingMode, CodeHighlightOutputMode, Block, Patch, CoalescingMetrics } from '@stream-mdx/core';
2
- import React from 'react';
1
+ import React__default from 'react';
2
+ import { a as MarkdownBlocksRendererProps } from './blocks-renderer-DQEL1kJW.cjs';
3
+ export { A as AllowElementFn, u as AnimatedAnimationName, v as AnimatedOptions, w as AnimatedProp, B as BroadContentComponentOptions, z as CodeBlockCopyButton, F as CodeBlockDownloadButton, x as CodeControlsBar, o as CodeControlsConfig, d as ComponentRegistry, g as ContentComponentHostProps, h as ContentComponentProps, i as ContentComponentPropsGuard, j as ContentComponentRegistration, C as ContentComponentsMap, c as ControlsComponentProps, b as ControlsConfig, r as ControlsLabels, n as ControlsOptions, D as DEFAULT_ANIMATED_OPTIONS, Z as DEFAULT_CONTROLS_LABELS, E as ElementFilterContext, k as ElementFilterDescriptor, l as ElementFilterOptions, m as InlineHtmlRenderer, I as InlineHtmlRendererMap, M as MathOptions, q as MermaidControlsConfig, S as STREAM_MDX_ANIMATION_CSS, y as TableControlsBar, p as TableControlsConfig, t as TableCopyFormat, s as TableDownloadFormat, V as ValidatedContentComponentOptions, f as defineContentComponent, G as escapeCsvCell, J as escapeTsvCell, P as getCodeSnippetFilename, Q as getExtensionForLanguage, O as inlineToPlainText, W as resolveCodeControls, U as resolveControlsConfig, Y as resolveMermaidControls, X as resolveTableControls, K as tableToCsv, N as tableToMarkdown, L as tableToTsv } from './index-Cmne1yUK.cjs';
4
+ export { T as TrustedMdxServerRegionProvider } from './server-regions-CPLHGli0.cjs';
5
+ export { createRendererStore } from './renderer/store.cjs';
6
+ export { N as NativeNodeView } from './node-views-Bpc6Gkgl.cjs';
7
+ export { UrlTransform, UrlTransformContext, defaultUrlTransform } from '@stream-mdx/core';
8
+ import './components/bottom-stick-scroll-area.cjs';
9
+ import 'react/jsx-runtime';
10
+ import './components/diff-renderer.cjs';
11
+ import '@stream-mdx/protocol';
12
+ import './trusted-mdx-contract-ElKpkDI5.cjs';
13
+ import '@stream-mdx/worker/engine';
14
+ import './renderer/virtualized-code.cjs';
3
15
 
4
- type GenericComponent = React.ComponentType<any>;
5
- interface TableElements {
6
- Table: GenericComponent;
7
- Thead: GenericComponent;
8
- Tbody: GenericComponent;
9
- Tr: GenericComponent;
10
- Th: GenericComponent;
11
- Td: GenericComponent;
12
- }
13
- type HtmlElements = Record<string, GenericComponent>;
14
- type InlineHtmlRenderer = (descriptor: InlineHtmlDescriptor, context: {
15
- key?: React.Key;
16
- defaultRender: () => React.ReactElement | null;
17
- }) => React.ReactElement | null;
18
- type InlineHtmlRendererMap = Record<string, InlineHtmlRenderer>;
19
- interface BlockComponents {
20
- paragraph: React.FC<{
21
- inlines: InlineNode[];
22
- raw?: string;
23
- meta?: Record<string, unknown>;
24
- children?: React.ReactNode;
25
- }>;
26
- heading: React.FC<{
27
- level: 1 | 2 | 3 | 4 | 5 | 6;
28
- inlines: InlineNode[];
29
- text?: string;
30
- meta?: Record<string, unknown>;
31
- }>;
32
- code: React.FC<{
33
- html: string;
34
- meta?: Record<string, unknown>;
35
- lines?: ReadonlyArray<{
36
- id: string;
37
- index: number;
38
- text: string;
39
- html?: string | null;
40
- tokens?: TokenLineV1 | null;
41
- }>;
42
- lang?: string;
43
- preAttrs?: Record<string, string>;
44
- codeAttrs?: Record<string, string>;
45
- }>;
46
- blockquote: React.FC<{
47
- inlines: InlineNode[];
48
- renderedContent?: React.ReactNode;
49
- }>;
50
- list: React.FC<{
51
- ordered: boolean;
52
- items: InlineNode[][];
53
- }>;
54
- html: React.FC<{
55
- __trustedHtml: TrustedHTML | string;
56
- elements?: Record<string, GenericComponent>;
57
- }>;
58
- mdx: React.FC<{
59
- compiledRef?: {
60
- id: string;
61
- };
62
- compiledModule?: CompiledMdxModule | null;
63
- status?: "pending" | "compiled" | "error";
64
- errorMessage?: string;
65
- raw?: string;
66
- }>;
67
- hr: React.FC<React.HTMLAttributes<HTMLHRElement>>;
68
- table: React.FC<{
69
- header?: InlineNode[][];
70
- rows: InlineNode[][][];
71
- align?: Array<"left" | "center" | "right" | null>;
72
- elements?: Partial<TableElements>;
73
- }>;
74
- [k: string]: GenericComponent;
75
- }
76
- type InlineComponents = Record<string, GenericComponent> & {
77
- text: React.FC<{
78
- text: string;
79
- }>;
80
- strong: React.FC<{
81
- children: React.ReactNode;
82
- }>;
83
- em: React.FC<{
84
- children: React.ReactNode;
85
- }>;
86
- strike?: React.FC<{
87
- children: React.ReactNode;
88
- }>;
89
- code: React.FC<{
90
- text: string;
91
- }>;
92
- link: React.FC<{
93
- href?: string;
94
- title?: string;
95
- children: React.ReactNode;
96
- }>;
97
- image: React.FC<{
98
- src: string;
99
- alt?: string;
100
- title?: string;
101
- }>;
102
- br: React.FC<Record<string, never>>;
103
- };
104
- interface RendererConfig {
105
- themes?: {
106
- light: string;
107
- dark: string;
108
- };
109
- highlight?: {
110
- browserEngine?: "js" | "wasm";
111
- serverEngine?: "wasm";
112
- langs?: string[];
113
- };
114
- sanitization?: {
115
- schemaId?: string;
116
- };
117
- mdx?: {
118
- enabled?: boolean;
119
- compileEndpoint?: string;
120
- compileStrategy?: "server" | "worker";
121
- components?: Record<string, GenericComponent>;
122
- };
123
- plugins?: {
124
- footnotes?: boolean;
125
- html?: boolean;
126
- mdx?: boolean;
127
- tables?: boolean;
128
- callouts?: boolean;
129
- math?: boolean;
130
- formatAnticipation?: FormatAnticipationConfig;
131
- codeHighlighting?: CodeHighlightingMode;
132
- outputMode?: CodeHighlightOutputMode;
133
- liveCodeHighlighting?: boolean;
134
- liveTokenization?: boolean;
135
- emitHighlightTokens?: boolean;
136
- emitDiffBlocks?: boolean;
137
- };
138
- performance?: {
139
- frameBudgetMs?: number;
140
- flushTimeoutMs?: number;
141
- maxBatchesPerFlush?: number;
142
- maxLowPriorityBatchesPerFlush?: number;
143
- lowPriorityFrameBudgetMs?: number;
144
- urgentQueueThreshold?: number;
145
- batch?: "rAF" | "microtask" | "timeout";
146
- historyLimit?: number;
147
- startupMicrotaskFlushes?: number;
148
- adaptiveBudgeting?: boolean;
149
- };
150
- }
16
+ /** Static/SSR output is never animated. */
17
+ declare const MarkdownBlocksRenderer: React__default.FC<MarkdownBlocksRendererProps>;
151
18
 
152
- /**
153
- * Component registry that allows customization
154
- */
155
- declare class ComponentRegistry {
156
- private blockComponents;
157
- private inlineComponents;
158
- private htmlElements;
159
- private tableElements;
160
- private blockComponentMapCache;
161
- private inlineComponentMapCache;
162
- constructor(blockComponents?: Partial<BlockComponents>, inlineComponents?: Partial<InlineComponents>);
163
- /**
164
- * Update block components
165
- */
166
- setBlockComponents(components: Partial<BlockComponents>): void;
167
- /**
168
- * Update inline components
169
- */
170
- setInlineComponents(components: Partial<InlineComponents>): void;
171
- /** Update HTML element mapping for html blocks */
172
- setHtmlElements(map: Partial<HtmlElements>): void;
173
- /** Update table element mapping for table blocks */
174
- setTableElements(map: Partial<TableElements>): void;
175
- /**
176
- * Get block component
177
- */
178
- getBlockComponent(type: string): React.ComponentType<Record<string, unknown>>;
179
- /**
180
- * Get inline components
181
- */
182
- getInlineComponents(): InlineComponents;
183
- getBlockComponentMap(): BlockComponents;
184
- getInlineComponentMap(): InlineComponents;
185
- getTableElements(): TableElements;
186
- /**
187
- * Render a block
188
- */
189
- renderBlock(block: Block): React.ReactElement;
190
- /**
191
- * Get props for a block based on its type
192
- */
193
- private getBlockProps;
194
- /**
195
- * Extract heading level from raw markdown
196
- */
197
- private extractHeadingLevel;
198
- }
199
-
200
- interface NodeRecord {
201
- id: string;
202
- type: string;
203
- parentId: string | null;
204
- children: string[];
205
- props: Record<string, unknown>;
206
- meta?: Record<string, unknown>;
207
- range?: {
208
- from: number;
209
- to: number;
210
- };
211
- version: number;
212
- blockEpoch: number;
213
- block?: Block;
214
- }
215
- interface ApplyPatchesOptions {
216
- coalesced?: boolean;
217
- metrics?: CoalescingMetrics | null;
218
- captureMetrics?: boolean;
219
- allowEmpty?: boolean;
220
- }
221
- interface RendererStore {
222
- reset(blocks: Block[]): void;
223
- applyPatches(patches: Patch[], options?: ApplyPatchesOptions): Set<string>;
224
- getBlocks(): ReadonlyArray<Block>;
225
- getVersion(): number;
226
- getNode(id: string): NodeRecord | undefined;
227
- getNodeWithVersion(id: string): {
228
- version: number;
229
- node?: NodeRecord;
230
- };
231
- getChildren(id: string): ReadonlyArray<string>;
232
- getChildrenWithVersion(id: string): {
233
- version: number;
234
- children: ReadonlyArray<string>;
235
- };
236
- getInvariantViolations(): string[];
237
- getDebugCounters(): Readonly<Record<string, number>>;
238
- subscribe(listener: () => void): () => void;
239
- getLastCoalescingMetrics(): CoalescingMetrics | null;
240
- }
241
- declare function createRendererStore(initialBlocks?: Block[]): RendererStore;
242
-
243
- /**
244
- * React component for rendering markdown blocks
245
- */
246
- declare const MarkdownBlocksRenderer: React.NamedExoticComponent<{
247
- blocks: ReadonlyArray<Block>;
248
- componentRegistry: ComponentRegistry;
249
- className?: string;
250
- style?: React.CSSProperties;
251
- store?: ReturnType<typeof createRendererStore>;
252
- }>;
253
-
254
- export { type BlockComponents, ComponentRegistry, type HtmlElements, type InlineComponents, type InlineHtmlRenderer, type InlineHtmlRendererMap, MarkdownBlocksRenderer, type RendererConfig, type TableElements, createRendererStore };
19
+ export { MarkdownBlocksRenderer, MarkdownBlocksRendererProps };
package/dist/server.d.ts CHANGED
@@ -1,254 +1,19 @@
1
- import { InlineNode, TokenLineV1, CompiledMdxModule, InlineHtmlDescriptor, FormatAnticipationConfig, CodeHighlightingMode, CodeHighlightOutputMode, Block, Patch, CoalescingMetrics } from '@stream-mdx/core';
2
- import React from 'react';
1
+ import React__default from 'react';
2
+ import { a as MarkdownBlocksRendererProps } from './blocks-renderer-DAOBFBfi.js';
3
+ export { A as AllowElementFn, u as AnimatedAnimationName, v as AnimatedOptions, w as AnimatedProp, B as BroadContentComponentOptions, z as CodeBlockCopyButton, F as CodeBlockDownloadButton, x as CodeControlsBar, o as CodeControlsConfig, d as ComponentRegistry, g as ContentComponentHostProps, h as ContentComponentProps, i as ContentComponentPropsGuard, j as ContentComponentRegistration, C as ContentComponentsMap, c as ControlsComponentProps, b as ControlsConfig, r as ControlsLabels, n as ControlsOptions, D as DEFAULT_ANIMATED_OPTIONS, Z as DEFAULT_CONTROLS_LABELS, E as ElementFilterContext, k as ElementFilterDescriptor, l as ElementFilterOptions, m as InlineHtmlRenderer, I as InlineHtmlRendererMap, M as MathOptions, q as MermaidControlsConfig, S as STREAM_MDX_ANIMATION_CSS, y as TableControlsBar, p as TableControlsConfig, t as TableCopyFormat, s as TableDownloadFormat, V as ValidatedContentComponentOptions, f as defineContentComponent, G as escapeCsvCell, J as escapeTsvCell, P as getCodeSnippetFilename, Q as getExtensionForLanguage, O as inlineToPlainText, W as resolveCodeControls, U as resolveControlsConfig, Y as resolveMermaidControls, X as resolveTableControls, K as tableToCsv, N as tableToMarkdown, L as tableToTsv } from './index-D7dyyu3q.js';
4
+ export { T as TrustedMdxServerRegionProvider } from './server-regions-mUhyoKi7.js';
5
+ export { createRendererStore } from './renderer/store.js';
6
+ export { N as NativeNodeView } from './node-views-DpnYdaAS.js';
7
+ export { UrlTransform, UrlTransformContext, defaultUrlTransform } from '@stream-mdx/core';
8
+ import './components/bottom-stick-scroll-area.js';
9
+ import 'react/jsx-runtime';
10
+ import './components/diff-renderer.js';
11
+ import '@stream-mdx/protocol';
12
+ import './trusted-mdx-contract-ElKpkDI5.js';
13
+ import '@stream-mdx/worker/engine';
14
+ import './renderer/virtualized-code.js';
3
15
 
4
- type GenericComponent = React.ComponentType<any>;
5
- interface TableElements {
6
- Table: GenericComponent;
7
- Thead: GenericComponent;
8
- Tbody: GenericComponent;
9
- Tr: GenericComponent;
10
- Th: GenericComponent;
11
- Td: GenericComponent;
12
- }
13
- type HtmlElements = Record<string, GenericComponent>;
14
- type InlineHtmlRenderer = (descriptor: InlineHtmlDescriptor, context: {
15
- key?: React.Key;
16
- defaultRender: () => React.ReactElement | null;
17
- }) => React.ReactElement | null;
18
- type InlineHtmlRendererMap = Record<string, InlineHtmlRenderer>;
19
- interface BlockComponents {
20
- paragraph: React.FC<{
21
- inlines: InlineNode[];
22
- raw?: string;
23
- meta?: Record<string, unknown>;
24
- children?: React.ReactNode;
25
- }>;
26
- heading: React.FC<{
27
- level: 1 | 2 | 3 | 4 | 5 | 6;
28
- inlines: InlineNode[];
29
- text?: string;
30
- meta?: Record<string, unknown>;
31
- }>;
32
- code: React.FC<{
33
- html: string;
34
- meta?: Record<string, unknown>;
35
- lines?: ReadonlyArray<{
36
- id: string;
37
- index: number;
38
- text: string;
39
- html?: string | null;
40
- tokens?: TokenLineV1 | null;
41
- }>;
42
- lang?: string;
43
- preAttrs?: Record<string, string>;
44
- codeAttrs?: Record<string, string>;
45
- }>;
46
- blockquote: React.FC<{
47
- inlines: InlineNode[];
48
- renderedContent?: React.ReactNode;
49
- }>;
50
- list: React.FC<{
51
- ordered: boolean;
52
- items: InlineNode[][];
53
- }>;
54
- html: React.FC<{
55
- __trustedHtml: TrustedHTML | string;
56
- elements?: Record<string, GenericComponent>;
57
- }>;
58
- mdx: React.FC<{
59
- compiledRef?: {
60
- id: string;
61
- };
62
- compiledModule?: CompiledMdxModule | null;
63
- status?: "pending" | "compiled" | "error";
64
- errorMessage?: string;
65
- raw?: string;
66
- }>;
67
- hr: React.FC<React.HTMLAttributes<HTMLHRElement>>;
68
- table: React.FC<{
69
- header?: InlineNode[][];
70
- rows: InlineNode[][][];
71
- align?: Array<"left" | "center" | "right" | null>;
72
- elements?: Partial<TableElements>;
73
- }>;
74
- [k: string]: GenericComponent;
75
- }
76
- type InlineComponents = Record<string, GenericComponent> & {
77
- text: React.FC<{
78
- text: string;
79
- }>;
80
- strong: React.FC<{
81
- children: React.ReactNode;
82
- }>;
83
- em: React.FC<{
84
- children: React.ReactNode;
85
- }>;
86
- strike?: React.FC<{
87
- children: React.ReactNode;
88
- }>;
89
- code: React.FC<{
90
- text: string;
91
- }>;
92
- link: React.FC<{
93
- href?: string;
94
- title?: string;
95
- children: React.ReactNode;
96
- }>;
97
- image: React.FC<{
98
- src: string;
99
- alt?: string;
100
- title?: string;
101
- }>;
102
- br: React.FC<Record<string, never>>;
103
- };
104
- interface RendererConfig {
105
- themes?: {
106
- light: string;
107
- dark: string;
108
- };
109
- highlight?: {
110
- browserEngine?: "js" | "wasm";
111
- serverEngine?: "wasm";
112
- langs?: string[];
113
- };
114
- sanitization?: {
115
- schemaId?: string;
116
- };
117
- mdx?: {
118
- enabled?: boolean;
119
- compileEndpoint?: string;
120
- compileStrategy?: "server" | "worker";
121
- components?: Record<string, GenericComponent>;
122
- };
123
- plugins?: {
124
- footnotes?: boolean;
125
- html?: boolean;
126
- mdx?: boolean;
127
- tables?: boolean;
128
- callouts?: boolean;
129
- math?: boolean;
130
- formatAnticipation?: FormatAnticipationConfig;
131
- codeHighlighting?: CodeHighlightingMode;
132
- outputMode?: CodeHighlightOutputMode;
133
- liveCodeHighlighting?: boolean;
134
- liveTokenization?: boolean;
135
- emitHighlightTokens?: boolean;
136
- emitDiffBlocks?: boolean;
137
- };
138
- performance?: {
139
- frameBudgetMs?: number;
140
- flushTimeoutMs?: number;
141
- maxBatchesPerFlush?: number;
142
- maxLowPriorityBatchesPerFlush?: number;
143
- lowPriorityFrameBudgetMs?: number;
144
- urgentQueueThreshold?: number;
145
- batch?: "rAF" | "microtask" | "timeout";
146
- historyLimit?: number;
147
- startupMicrotaskFlushes?: number;
148
- adaptiveBudgeting?: boolean;
149
- };
150
- }
16
+ /** Static/SSR output is never animated. */
17
+ declare const MarkdownBlocksRenderer: React__default.FC<MarkdownBlocksRendererProps>;
151
18
 
152
- /**
153
- * Component registry that allows customization
154
- */
155
- declare class ComponentRegistry {
156
- private blockComponents;
157
- private inlineComponents;
158
- private htmlElements;
159
- private tableElements;
160
- private blockComponentMapCache;
161
- private inlineComponentMapCache;
162
- constructor(blockComponents?: Partial<BlockComponents>, inlineComponents?: Partial<InlineComponents>);
163
- /**
164
- * Update block components
165
- */
166
- setBlockComponents(components: Partial<BlockComponents>): void;
167
- /**
168
- * Update inline components
169
- */
170
- setInlineComponents(components: Partial<InlineComponents>): void;
171
- /** Update HTML element mapping for html blocks */
172
- setHtmlElements(map: Partial<HtmlElements>): void;
173
- /** Update table element mapping for table blocks */
174
- setTableElements(map: Partial<TableElements>): void;
175
- /**
176
- * Get block component
177
- */
178
- getBlockComponent(type: string): React.ComponentType<Record<string, unknown>>;
179
- /**
180
- * Get inline components
181
- */
182
- getInlineComponents(): InlineComponents;
183
- getBlockComponentMap(): BlockComponents;
184
- getInlineComponentMap(): InlineComponents;
185
- getTableElements(): TableElements;
186
- /**
187
- * Render a block
188
- */
189
- renderBlock(block: Block): React.ReactElement;
190
- /**
191
- * Get props for a block based on its type
192
- */
193
- private getBlockProps;
194
- /**
195
- * Extract heading level from raw markdown
196
- */
197
- private extractHeadingLevel;
198
- }
199
-
200
- interface NodeRecord {
201
- id: string;
202
- type: string;
203
- parentId: string | null;
204
- children: string[];
205
- props: Record<string, unknown>;
206
- meta?: Record<string, unknown>;
207
- range?: {
208
- from: number;
209
- to: number;
210
- };
211
- version: number;
212
- blockEpoch: number;
213
- block?: Block;
214
- }
215
- interface ApplyPatchesOptions {
216
- coalesced?: boolean;
217
- metrics?: CoalescingMetrics | null;
218
- captureMetrics?: boolean;
219
- allowEmpty?: boolean;
220
- }
221
- interface RendererStore {
222
- reset(blocks: Block[]): void;
223
- applyPatches(patches: Patch[], options?: ApplyPatchesOptions): Set<string>;
224
- getBlocks(): ReadonlyArray<Block>;
225
- getVersion(): number;
226
- getNode(id: string): NodeRecord | undefined;
227
- getNodeWithVersion(id: string): {
228
- version: number;
229
- node?: NodeRecord;
230
- };
231
- getChildren(id: string): ReadonlyArray<string>;
232
- getChildrenWithVersion(id: string): {
233
- version: number;
234
- children: ReadonlyArray<string>;
235
- };
236
- getInvariantViolations(): string[];
237
- getDebugCounters(): Readonly<Record<string, number>>;
238
- subscribe(listener: () => void): () => void;
239
- getLastCoalescingMetrics(): CoalescingMetrics | null;
240
- }
241
- declare function createRendererStore(initialBlocks?: Block[]): RendererStore;
242
-
243
- /**
244
- * React component for rendering markdown blocks
245
- */
246
- declare const MarkdownBlocksRenderer: React.NamedExoticComponent<{
247
- blocks: ReadonlyArray<Block>;
248
- componentRegistry: ComponentRegistry;
249
- className?: string;
250
- style?: React.CSSProperties;
251
- store?: ReturnType<typeof createRendererStore>;
252
- }>;
253
-
254
- export { type BlockComponents, ComponentRegistry, type HtmlElements, type InlineComponents, type InlineHtmlRenderer, type InlineHtmlRendererMap, MarkdownBlocksRenderer, type RendererConfig, type TableElements, createRendererStore };
19
+ export { MarkdownBlocksRenderer, MarkdownBlocksRendererProps };