@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
package/dist/server.d.cts CHANGED
@@ -1,249 +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
- };
148
- }
16
+ /** Static/SSR output is never animated. */
17
+ declare const MarkdownBlocksRenderer: React__default.FC<MarkdownBlocksRendererProps>;
149
18
 
150
- /**
151
- * Component registry that allows customization
152
- */
153
- declare class ComponentRegistry {
154
- private blockComponents;
155
- private inlineComponents;
156
- private htmlElements;
157
- private tableElements;
158
- private blockComponentMapCache;
159
- private inlineComponentMapCache;
160
- constructor(blockComponents?: Partial<BlockComponents>, inlineComponents?: Partial<InlineComponents>);
161
- /**
162
- * Update block components
163
- */
164
- setBlockComponents(components: Partial<BlockComponents>): void;
165
- /**
166
- * Update inline components
167
- */
168
- setInlineComponents(components: Partial<InlineComponents>): void;
169
- /** Update HTML element mapping for html blocks */
170
- setHtmlElements(map: Partial<HtmlElements>): void;
171
- /** Update table element mapping for table blocks */
172
- setTableElements(map: Partial<TableElements>): void;
173
- /**
174
- * Get block component
175
- */
176
- getBlockComponent(type: string): React.ComponentType<Record<string, unknown>>;
177
- /**
178
- * Get inline components
179
- */
180
- getInlineComponents(): InlineComponents;
181
- getBlockComponentMap(): BlockComponents;
182
- getInlineComponentMap(): InlineComponents;
183
- getTableElements(): TableElements;
184
- /**
185
- * Render a block
186
- */
187
- renderBlock(block: Block): React.ReactElement;
188
- /**
189
- * Get props for a block based on its type
190
- */
191
- private getBlockProps;
192
- /**
193
- * Extract heading level from raw markdown
194
- */
195
- private extractHeadingLevel;
196
- }
197
-
198
- interface NodeRecord {
199
- id: string;
200
- type: string;
201
- parentId: string | null;
202
- children: string[];
203
- props: Record<string, unknown>;
204
- meta?: Record<string, unknown>;
205
- range?: {
206
- from: number;
207
- to: number;
208
- };
209
- version: number;
210
- block?: Block;
211
- }
212
- interface ApplyPatchesOptions {
213
- coalesced?: boolean;
214
- metrics?: CoalescingMetrics | null;
215
- captureMetrics?: boolean;
216
- allowEmpty?: boolean;
217
- }
218
- interface RendererStore {
219
- reset(blocks: Block[]): void;
220
- applyPatches(patches: Patch[], options?: ApplyPatchesOptions): Set<string>;
221
- getBlocks(): ReadonlyArray<Block>;
222
- getVersion(): number;
223
- getNode(id: string): NodeRecord | undefined;
224
- getNodeWithVersion(id: string): {
225
- version: number;
226
- node?: NodeRecord;
227
- };
228
- getChildren(id: string): ReadonlyArray<string>;
229
- getChildrenWithVersion(id: string): {
230
- version: number;
231
- children: ReadonlyArray<string>;
232
- };
233
- subscribe(listener: () => void): () => void;
234
- getLastCoalescingMetrics(): CoalescingMetrics | null;
235
- }
236
- declare function createRendererStore(initialBlocks?: Block[]): RendererStore;
237
-
238
- /**
239
- * React component for rendering markdown blocks
240
- */
241
- declare const MarkdownBlocksRenderer: React.NamedExoticComponent<{
242
- blocks: ReadonlyArray<Block>;
243
- componentRegistry: ComponentRegistry;
244
- className?: string;
245
- style?: React.CSSProperties;
246
- store?: ReturnType<typeof createRendererStore>;
247
- }>;
248
-
249
- 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,249 +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
- };
148
- }
16
+ /** Static/SSR output is never animated. */
17
+ declare const MarkdownBlocksRenderer: React__default.FC<MarkdownBlocksRendererProps>;
149
18
 
150
- /**
151
- * Component registry that allows customization
152
- */
153
- declare class ComponentRegistry {
154
- private blockComponents;
155
- private inlineComponents;
156
- private htmlElements;
157
- private tableElements;
158
- private blockComponentMapCache;
159
- private inlineComponentMapCache;
160
- constructor(blockComponents?: Partial<BlockComponents>, inlineComponents?: Partial<InlineComponents>);
161
- /**
162
- * Update block components
163
- */
164
- setBlockComponents(components: Partial<BlockComponents>): void;
165
- /**
166
- * Update inline components
167
- */
168
- setInlineComponents(components: Partial<InlineComponents>): void;
169
- /** Update HTML element mapping for html blocks */
170
- setHtmlElements(map: Partial<HtmlElements>): void;
171
- /** Update table element mapping for table blocks */
172
- setTableElements(map: Partial<TableElements>): void;
173
- /**
174
- * Get block component
175
- */
176
- getBlockComponent(type: string): React.ComponentType<Record<string, unknown>>;
177
- /**
178
- * Get inline components
179
- */
180
- getInlineComponents(): InlineComponents;
181
- getBlockComponentMap(): BlockComponents;
182
- getInlineComponentMap(): InlineComponents;
183
- getTableElements(): TableElements;
184
- /**
185
- * Render a block
186
- */
187
- renderBlock(block: Block): React.ReactElement;
188
- /**
189
- * Get props for a block based on its type
190
- */
191
- private getBlockProps;
192
- /**
193
- * Extract heading level from raw markdown
194
- */
195
- private extractHeadingLevel;
196
- }
197
-
198
- interface NodeRecord {
199
- id: string;
200
- type: string;
201
- parentId: string | null;
202
- children: string[];
203
- props: Record<string, unknown>;
204
- meta?: Record<string, unknown>;
205
- range?: {
206
- from: number;
207
- to: number;
208
- };
209
- version: number;
210
- block?: Block;
211
- }
212
- interface ApplyPatchesOptions {
213
- coalesced?: boolean;
214
- metrics?: CoalescingMetrics | null;
215
- captureMetrics?: boolean;
216
- allowEmpty?: boolean;
217
- }
218
- interface RendererStore {
219
- reset(blocks: Block[]): void;
220
- applyPatches(patches: Patch[], options?: ApplyPatchesOptions): Set<string>;
221
- getBlocks(): ReadonlyArray<Block>;
222
- getVersion(): number;
223
- getNode(id: string): NodeRecord | undefined;
224
- getNodeWithVersion(id: string): {
225
- version: number;
226
- node?: NodeRecord;
227
- };
228
- getChildren(id: string): ReadonlyArray<string>;
229
- getChildrenWithVersion(id: string): {
230
- version: number;
231
- children: ReadonlyArray<string>;
232
- };
233
- subscribe(listener: () => void): () => void;
234
- getLastCoalescingMetrics(): CoalescingMetrics | null;
235
- }
236
- declare function createRendererStore(initialBlocks?: Block[]): RendererStore;
237
-
238
- /**
239
- * React component for rendering markdown blocks
240
- */
241
- declare const MarkdownBlocksRenderer: React.NamedExoticComponent<{
242
- blocks: ReadonlyArray<Block>;
243
- componentRegistry: ComponentRegistry;
244
- className?: string;
245
- style?: React.CSSProperties;
246
- store?: ReturnType<typeof createRendererStore>;
247
- }>;
248
-
249
- export { type BlockComponents, ComponentRegistry, type HtmlElements, type InlineComponents, type InlineHtmlRenderer, type InlineHtmlRendererMap, MarkdownBlocksRenderer, type RendererConfig, type TableElements, createRendererStore };
19
+ export { MarkdownBlocksRenderer, MarkdownBlocksRendererProps };