@mdxeditor/editor 1.12.0 → 1.13.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.
@@ -21,6 +21,13 @@ export interface MDXEditorProps {
21
21
  * if you intend to do auto-saving.
22
22
  */
23
23
  onChange?: (markdown: string) => void;
24
+ /**
25
+ * Triggered when the markdown parser encounters an error. The payload includes the invalid source and the error message.
26
+ */
27
+ onError?: (payload: {
28
+ error: string;
29
+ source: string;
30
+ }) => void;
24
31
  /**
25
32
  * The markdown options used to generate the resulting markdown.
26
33
  * See {@link https://github.com/syntax-tree/mdast-util-to-markdown#options | the mdast-util-to-markdown docs} for the full list of options.
@@ -59,6 +66,10 @@ export interface MDXEditorProps {
59
66
  * Use this prop to customize the icons used across the editor. Pass a function that returns an icon (JSX) for a given icon key.
60
67
  */
61
68
  iconComponentFor?: (name: IconKey) => JSX.Element;
69
+ /**
70
+ * Set to false if you want to suppress the processing of HTML tags.
71
+ */
72
+ suppressHtmlProcessing?: boolean;
62
73
  }
63
74
  /**
64
75
  * The interface for the {@link MDXEditor} object reference.
package/dist/MDXEditor.js CHANGED
@@ -128,7 +128,9 @@ const MDXEditor = React__default.forwardRef((props, ref) => {
128
128
  autoFocus: props.autoFocus ?? false,
129
129
  placeholder: props.placeholder ?? "",
130
130
  readOnly: Boolean(props.readOnly),
131
- iconComponentFor: props.iconComponentFor ?? defaultIconComponentFor
131
+ iconComponentFor: props.iconComponentFor ?? defaultIconComponentFor,
132
+ suppressHtmlProcessing: props.suppressHtmlProcessing ?? false,
133
+ onError: props.onError ?? noop
132
134
  }),
133
135
  ...props.plugins || []
134
136
  ]
@@ -89,6 +89,12 @@ export type MdastExtension = NonNullable<MdastExtensions>[number];
89
89
  * @internal
90
90
  */
91
91
  export type SyntaxExtension = MarkdownParseOptions['syntaxExtensions'][number];
92
+ export declare class MarkdownParseError extends Error {
93
+ constructor(message: string, cause: unknown);
94
+ }
95
+ export declare class UnrecognizedMarkdownConstructError extends Error {
96
+ constructor(message: string);
97
+ }
92
98
  /** @internal */
93
99
  export declare function importMarkdownToLexical({ root, markdown, visitors, syntaxExtensions, mdastExtensions }: MarkdownParseOptions): void;
94
100
  /** @internal */
@@ -1,13 +1,36 @@
1
1
  import { fromMarkdown } from "mdast-util-from-markdown";
2
+ import { toMarkdown } from "mdast-util-to-markdown";
2
3
  function isParent(node) {
3
4
  return node.children instanceof Array;
4
5
  }
6
+ class MarkdownParseError extends Error {
7
+ constructor(message, cause) {
8
+ super(message);
9
+ this.name = "MarkdownParseError";
10
+ this.cause = cause;
11
+ }
12
+ }
13
+ class UnrecognizedMarkdownConstructError extends Error {
14
+ constructor(message) {
15
+ super(message);
16
+ this.name = "UnrecognizedMarkdownConstructError";
17
+ }
18
+ }
5
19
  function importMarkdownToLexical({ root, markdown, visitors, syntaxExtensions, mdastExtensions }) {
6
20
  var _a;
7
- const mdastRoot = fromMarkdown(markdown, {
8
- extensions: syntaxExtensions,
9
- mdastExtensions
10
- });
21
+ let mdastRoot;
22
+ try {
23
+ mdastRoot = fromMarkdown(markdown, {
24
+ extensions: syntaxExtensions,
25
+ mdastExtensions
26
+ });
27
+ } catch (e) {
28
+ if (e instanceof Error) {
29
+ throw new MarkdownParseError(`Error parsing markdown: ${e.message}`, e);
30
+ } else {
31
+ throw new MarkdownParseError(`Error parsing markdown: ${e}`, e);
32
+ }
33
+ }
11
34
  if (mdastRoot.children.length === 0) {
12
35
  mdastRoot.children.push({ type: "paragraph", children: [] });
13
36
  }
@@ -33,9 +56,7 @@ function importMdastTreeToLexical({ root, mdastRoot, visitors }) {
33
56
  return visitor2.testNode(mdastNode);
34
57
  });
35
58
  if (!visitor) {
36
- throw new Error(`no MdastImportVisitor found for ${mdastNode.type} ${JSON.stringify(mdastNode)}`, {
37
- cause: mdastNode
38
- });
59
+ throw new UnrecognizedMarkdownConstructError(`Unsupported markdown syntax: ${toMarkdown(mdastNode)}`);
39
60
  }
40
61
  visitor.visitNode({
41
62
  //@ts-expect-error root type is glitching
@@ -65,6 +86,8 @@ function importMdastTreeToLexical({ root, mdastRoot, visitors }) {
65
86
  visit(mdastRoot, root, null);
66
87
  }
67
88
  export {
89
+ MarkdownParseError,
90
+ UnrecognizedMarkdownConstructError,
68
91
  importMarkdownToLexical,
69
92
  importMdastTreeToLexical
70
93
  };
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import "./styles/globals.css.js";
2
2
  import { MDXEditor } from "./MDXEditor.js";
3
- import { importMarkdownToLexical, importMdastTreeToLexical } from "./importMarkdownToLexical.js";
3
+ import { MarkdownParseError, UnrecognizedMarkdownConstructError, importMarkdownToLexical, importMdastTreeToLexical } from "./importMarkdownToLexical.js";
4
4
  import { exportLexicalTreeToMdast, exportMarkdownFromLexical } from "./exportMarkdownFromLexical.js";
5
5
  import { NESTED_EDITOR_UPDATED_COMMAND, corePlugin, corePluginHooks, coreSystem } from "./plugins/core/index.js";
6
6
  import { headingsPlugin, headingsPluginHooks, headingsSystem } from "./plugins/headings/index.js";
@@ -99,6 +99,7 @@ export {
99
99
  KitchenSinkToolbar,
100
100
  ListsToggle,
101
101
  MDXEditor,
102
+ MarkdownParseError,
102
103
  MultipleChoiceToggleGroup,
103
104
  NESTED_EDITOR_UPDATED_COMMAND,
104
105
  NestedEditorsContext,
@@ -121,6 +122,7 @@ export {
121
122
  ToolbarToggleItem,
122
123
  TooltipWrap,
123
124
  UndoRedo,
125
+ UnrecognizedMarkdownConstructError,
124
126
  WHITESPACE_MARKER,
125
127
  always,
126
128
  call,
@@ -123,6 +123,14 @@ export declare const codeBlockSystem: SystemSpec<[SystemSpec<[], (r: Realm) => {
123
123
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
124
124
  onBlur: RealmNode<FocusEvent>;
125
125
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
126
+ markdownProcessingError: RealmNode<{
127
+ error: string;
128
+ source: string;
129
+ } | null>;
130
+ markdownErrorSignal: RealmNode<{
131
+ error: string;
132
+ source: string;
133
+ }>;
126
134
  }>], (r: Realm, [{ insertDecoratorNode }]: [{
127
135
  activeEditor: RealmNode<LexicalEditor | null>;
128
136
  inFocus: RealmNode<boolean>;
@@ -180,6 +188,14 @@ export declare const codeBlockSystem: SystemSpec<[SystemSpec<[], (r: Realm) => {
180
188
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
181
189
  onBlur: RealmNode<FocusEvent>;
182
190
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
191
+ markdownProcessingError: RealmNode<{
192
+ error: string;
193
+ source: string;
194
+ } | null>;
195
+ markdownErrorSignal: RealmNode<{
196
+ error: string;
197
+ source: string;
198
+ }>;
183
199
  }]) => {
184
200
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
185
201
  defaultCodeBlockLanguage: RealmNode<string>;
@@ -260,6 +276,14 @@ codeBlockPlugin: PluginConstructor<SystemSpec<[SystemSpec<[], (r: Realm) => {
260
276
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
261
277
  onBlur: RealmNode<FocusEvent>;
262
278
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
279
+ markdownProcessingError: RealmNode<{
280
+ error: string;
281
+ source: string;
282
+ } | null>;
283
+ markdownErrorSignal: RealmNode<{
284
+ error: string;
285
+ source: string;
286
+ }>;
263
287
  }>], (r: Realm, [{ insertDecoratorNode }]: [{
264
288
  activeEditor: RealmNode<LexicalEditor | null>;
265
289
  inFocus: RealmNode<boolean>;
@@ -317,6 +341,14 @@ codeBlockPlugin: PluginConstructor<SystemSpec<[SystemSpec<[], (r: Realm) => {
317
341
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
318
342
  onBlur: RealmNode<FocusEvent>;
319
343
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
344
+ markdownProcessingError: RealmNode<{
345
+ error: string;
346
+ source: string;
347
+ } | null>;
348
+ markdownErrorSignal: RealmNode<{
349
+ error: string;
350
+ source: string;
351
+ }>;
320
352
  }]) => {
321
353
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
322
354
  defaultCodeBlockLanguage: RealmNode<string>;
@@ -389,8 +421,16 @@ codeBlockPluginHooks: {
389
421
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
390
422
  onBlur: RealmNode<FocusEvent>;
391
423
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
424
+ markdownProcessingError: RealmNode<{
425
+ error: string;
426
+ source: string;
427
+ } | null>;
428
+ markdownErrorSignal: RealmNode<{
429
+ error: string;
430
+ source: string;
431
+ }>;
392
432
  }>;
393
- useEmitter: <K extends "jsxComponentDescriptors" | "jsxIsAvailable" | "toMarkdownOptions" | "toMarkdownExtensions" | "mdastExtensions" | "syntaxExtensions" | "markdown" | "activeEditor" | "inFocus" | "historyState" | "currentSelection" | "initialRootEditorState" | "rootEditor" | "createRootEditorSubscription" | "createActiveEditorSubscription" | "importVisitors" | "usedLexicalNodes" | "addImportVisitor" | "addLexicalNode" | "addSyntaxExtension" | "addMdastExtension" | "addToMarkdownExtension" | "addExportVisitor" | "exportVisitors" | "initialMarkdown" | "setMarkdown" | "markdownSignal" | "editorRootElementRef" | "contentEditableClassName" | "placeholder" | "autoFocus" | "readOnly" | "composerChildren" | "addComposerChild" | "topAreaChildren" | "addTopAreaChild" | "nestedEditorChildren" | "addNestedEditorChild" | "editorWrappers" | "addEditorWrapper" | "currentFormat" | "editorInFocus" | "applyFormat" | "currentBlockType" | "applyBlockType" | "convertSelectionToNode" | "insertDecoratorNode" | "onBlur" | "iconComponentFor" | "codeBlockEditorDescriptors" | "defaultCodeBlockLanguage" | "appendCodeBlockEditorDescriptor" | "insertCodeBlock">(key: K, callback: (value: ValueForKey<{
433
+ useEmitter: <K extends "jsxComponentDescriptors" | "jsxIsAvailable" | "toMarkdownOptions" | "toMarkdownExtensions" | "mdastExtensions" | "syntaxExtensions" | "markdown" | "activeEditor" | "inFocus" | "historyState" | "currentSelection" | "initialRootEditorState" | "rootEditor" | "createRootEditorSubscription" | "createActiveEditorSubscription" | "importVisitors" | "usedLexicalNodes" | "addImportVisitor" | "addLexicalNode" | "addSyntaxExtension" | "addMdastExtension" | "addToMarkdownExtension" | "addExportVisitor" | "exportVisitors" | "initialMarkdown" | "setMarkdown" | "markdownSignal" | "editorRootElementRef" | "contentEditableClassName" | "placeholder" | "autoFocus" | "readOnly" | "composerChildren" | "addComposerChild" | "topAreaChildren" | "addTopAreaChild" | "nestedEditorChildren" | "addNestedEditorChild" | "editorWrappers" | "addEditorWrapper" | "currentFormat" | "editorInFocus" | "applyFormat" | "currentBlockType" | "applyBlockType" | "convertSelectionToNode" | "insertDecoratorNode" | "onBlur" | "iconComponentFor" | "markdownProcessingError" | "markdownErrorSignal" | "codeBlockEditorDescriptors" | "defaultCodeBlockLanguage" | "appendCodeBlockEditorDescriptor" | "insertCodeBlock">(key: K, callback: (value: ValueForKey<{
394
434
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
395
435
  defaultCodeBlockLanguage: RealmNode<string>;
396
436
  appendCodeBlockEditorDescriptor: RealmNode<CodeBlockEditorDescriptor>;
@@ -452,6 +492,14 @@ codeBlockPluginHooks: {
452
492
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
453
493
  onBlur: RealmNode<FocusEvent>;
454
494
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
495
+ markdownProcessingError: RealmNode<{
496
+ error: string;
497
+ source: string;
498
+ } | null>;
499
+ markdownErrorSignal: RealmNode<{
500
+ error: string;
501
+ source: string;
502
+ }>;
455
503
  }, K>) => void) => void;
456
504
  useEmitterValues: <K_1 extends SystemKeys<{
457
505
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
@@ -515,6 +563,14 @@ codeBlockPluginHooks: {
515
563
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
516
564
  onBlur: RealmNode<FocusEvent>;
517
565
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
566
+ markdownProcessingError: RealmNode<{
567
+ error: string;
568
+ source: string;
569
+ } | null>;
570
+ markdownErrorSignal: RealmNode<{
571
+ error: string;
572
+ source: string;
573
+ }>;
518
574
  }>>(...keys: K_1) => ValuesForKeys<{
519
575
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
520
576
  defaultCodeBlockLanguage: RealmNode<string>;
@@ -577,6 +633,14 @@ codeBlockPluginHooks: {
577
633
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
578
634
  onBlur: RealmNode<FocusEvent>;
579
635
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
636
+ markdownProcessingError: RealmNode<{
637
+ error: string;
638
+ source: string;
639
+ } | null>;
640
+ markdownErrorSignal: RealmNode<{
641
+ error: string;
642
+ source: string;
643
+ }>;
580
644
  }, K_1>;
581
645
  usePubKeys: () => (values: SystemDict<{
582
646
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
@@ -640,8 +704,16 @@ codeBlockPluginHooks: {
640
704
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
641
705
  onBlur: RealmNode<FocusEvent>;
642
706
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
707
+ markdownProcessingError: RealmNode<{
708
+ error: string;
709
+ source: string;
710
+ } | null>;
711
+ markdownErrorSignal: RealmNode<{
712
+ error: string;
713
+ source: string;
714
+ }>;
643
715
  }>) => void;
644
- usePublisher: <K_2 extends "jsxComponentDescriptors" | "jsxIsAvailable" | "toMarkdownOptions" | "toMarkdownExtensions" | "mdastExtensions" | "syntaxExtensions" | "markdown" | "activeEditor" | "inFocus" | "historyState" | "currentSelection" | "initialRootEditorState" | "rootEditor" | "createRootEditorSubscription" | "createActiveEditorSubscription" | "importVisitors" | "usedLexicalNodes" | "addImportVisitor" | "addLexicalNode" | "addSyntaxExtension" | "addMdastExtension" | "addToMarkdownExtension" | "addExportVisitor" | "exportVisitors" | "initialMarkdown" | "setMarkdown" | "markdownSignal" | "editorRootElementRef" | "contentEditableClassName" | "placeholder" | "autoFocus" | "readOnly" | "composerChildren" | "addComposerChild" | "topAreaChildren" | "addTopAreaChild" | "nestedEditorChildren" | "addNestedEditorChild" | "editorWrappers" | "addEditorWrapper" | "currentFormat" | "editorInFocus" | "applyFormat" | "currentBlockType" | "applyBlockType" | "convertSelectionToNode" | "insertDecoratorNode" | "onBlur" | "iconComponentFor" | "codeBlockEditorDescriptors" | "defaultCodeBlockLanguage" | "appendCodeBlockEditorDescriptor" | "insertCodeBlock">(key: K_2) => (value: ValueForKey<{
716
+ usePublisher: <K_2 extends "jsxComponentDescriptors" | "jsxIsAvailable" | "toMarkdownOptions" | "toMarkdownExtensions" | "mdastExtensions" | "syntaxExtensions" | "markdown" | "activeEditor" | "inFocus" | "historyState" | "currentSelection" | "initialRootEditorState" | "rootEditor" | "createRootEditorSubscription" | "createActiveEditorSubscription" | "importVisitors" | "usedLexicalNodes" | "addImportVisitor" | "addLexicalNode" | "addSyntaxExtension" | "addMdastExtension" | "addToMarkdownExtension" | "addExportVisitor" | "exportVisitors" | "initialMarkdown" | "setMarkdown" | "markdownSignal" | "editorRootElementRef" | "contentEditableClassName" | "placeholder" | "autoFocus" | "readOnly" | "composerChildren" | "addComposerChild" | "topAreaChildren" | "addTopAreaChild" | "nestedEditorChildren" | "addNestedEditorChild" | "editorWrappers" | "addEditorWrapper" | "currentFormat" | "editorInFocus" | "applyFormat" | "currentBlockType" | "applyBlockType" | "convertSelectionToNode" | "insertDecoratorNode" | "onBlur" | "iconComponentFor" | "markdownProcessingError" | "markdownErrorSignal" | "codeBlockEditorDescriptors" | "defaultCodeBlockLanguage" | "appendCodeBlockEditorDescriptor" | "insertCodeBlock">(key: K_2) => (value: ValueForKey<{
645
717
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
646
718
  defaultCodeBlockLanguage: RealmNode<string>;
647
719
  appendCodeBlockEditorDescriptor: RealmNode<CodeBlockEditorDescriptor>;
@@ -703,5 +775,13 @@ codeBlockPluginHooks: {
703
775
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
704
776
  onBlur: RealmNode<FocusEvent>;
705
777
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
778
+ markdownProcessingError: RealmNode<{
779
+ error: string;
780
+ source: string;
781
+ } | null>;
782
+ markdownErrorSignal: RealmNode<{
783
+ error: string;
784
+ source: string;
785
+ }>;
706
786
  }, K_2>) => void;
707
787
  };
@@ -71,6 +71,14 @@ export declare const codeMirrorSystem: SystemSpec<[SystemSpec<[], (r: Realm) =>
71
71
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
72
72
  onBlur: RealmNode<FocusEvent>;
73
73
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
74
+ markdownProcessingError: RealmNode<{
75
+ error: string;
76
+ source: string;
77
+ } | null>;
78
+ markdownErrorSignal: RealmNode<{
79
+ error: string;
80
+ source: string;
81
+ }>;
74
82
  }>, SystemSpec<[SystemSpec<[], (r: Realm) => {
75
83
  activeEditor: RealmNode<LexicalEditor | null>;
76
84
  inFocus: RealmNode<boolean>;
@@ -128,6 +136,14 @@ export declare const codeMirrorSystem: SystemSpec<[SystemSpec<[], (r: Realm) =>
128
136
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
129
137
  onBlur: RealmNode<FocusEvent>;
130
138
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
139
+ markdownProcessingError: RealmNode<{
140
+ error: string;
141
+ source: string;
142
+ } | null>;
143
+ markdownErrorSignal: RealmNode<{
144
+ error: string;
145
+ source: string;
146
+ }>;
131
147
  }>], (r: Realm, [{ insertDecoratorNode }]: [{
132
148
  activeEditor: RealmNode<LexicalEditor | null>;
133
149
  inFocus: RealmNode<boolean>;
@@ -185,6 +201,14 @@ export declare const codeMirrorSystem: SystemSpec<[SystemSpec<[], (r: Realm) =>
185
201
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
186
202
  onBlur: RealmNode<FocusEvent>;
187
203
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
204
+ markdownProcessingError: RealmNode<{
205
+ error: string;
206
+ source: string;
207
+ } | null>;
208
+ markdownErrorSignal: RealmNode<{
209
+ error: string;
210
+ source: string;
211
+ }>;
188
212
  }]) => {
189
213
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
190
214
  defaultCodeBlockLanguage: RealmNode<string>;
@@ -247,6 +271,14 @@ export declare const codeMirrorSystem: SystemSpec<[SystemSpec<[], (r: Realm) =>
247
271
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
248
272
  onBlur: RealmNode<FocusEvent>;
249
273
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
274
+ markdownProcessingError: RealmNode<{
275
+ error: string;
276
+ source: string;
277
+ } | null>;
278
+ markdownErrorSignal: RealmNode<{
279
+ error: string;
280
+ source: string;
281
+ }>;
250
282
  }, {
251
283
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
252
284
  defaultCodeBlockLanguage: RealmNode<string>;
@@ -318,6 +350,14 @@ codeMirrorPlugin: PluginConstructor<SystemSpec<[SystemSpec<[], (r: Realm) => {
318
350
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
319
351
  onBlur: RealmNode<FocusEvent>;
320
352
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
353
+ markdownProcessingError: RealmNode<{
354
+ error: string;
355
+ source: string;
356
+ } | null>;
357
+ markdownErrorSignal: RealmNode<{
358
+ error: string;
359
+ source: string;
360
+ }>;
321
361
  }>, SystemSpec<[SystemSpec<[], (r: Realm) => {
322
362
  activeEditor: RealmNode<LexicalEditor | null>;
323
363
  inFocus: RealmNode<boolean>;
@@ -375,6 +415,14 @@ codeMirrorPlugin: PluginConstructor<SystemSpec<[SystemSpec<[], (r: Realm) => {
375
415
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
376
416
  onBlur: RealmNode<FocusEvent>;
377
417
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
418
+ markdownProcessingError: RealmNode<{
419
+ error: string;
420
+ source: string;
421
+ } | null>;
422
+ markdownErrorSignal: RealmNode<{
423
+ error: string;
424
+ source: string;
425
+ }>;
378
426
  }>], (r: Realm, [{ insertDecoratorNode }]: [{
379
427
  activeEditor: RealmNode<LexicalEditor | null>;
380
428
  inFocus: RealmNode<boolean>;
@@ -432,6 +480,14 @@ codeMirrorPlugin: PluginConstructor<SystemSpec<[SystemSpec<[], (r: Realm) => {
432
480
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
433
481
  onBlur: RealmNode<FocusEvent>;
434
482
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
483
+ markdownProcessingError: RealmNode<{
484
+ error: string;
485
+ source: string;
486
+ } | null>;
487
+ markdownErrorSignal: RealmNode<{
488
+ error: string;
489
+ source: string;
490
+ }>;
435
491
  }]) => {
436
492
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
437
493
  defaultCodeBlockLanguage: RealmNode<string>;
@@ -494,6 +550,14 @@ codeMirrorPlugin: PluginConstructor<SystemSpec<[SystemSpec<[], (r: Realm) => {
494
550
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
495
551
  onBlur: RealmNode<FocusEvent>;
496
552
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
553
+ markdownProcessingError: RealmNode<{
554
+ error: string;
555
+ source: string;
556
+ } | null>;
557
+ markdownErrorSignal: RealmNode<{
558
+ error: string;
559
+ source: string;
560
+ }>;
497
561
  }, {
498
562
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
499
563
  defaultCodeBlockLanguage: RealmNode<string>;
@@ -573,13 +637,21 @@ codeMirrorHooks: {
573
637
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
574
638
  onBlur: RealmNode<FocusEvent>;
575
639
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
640
+ markdownProcessingError: RealmNode<{
641
+ error: string;
642
+ source: string;
643
+ } | null>;
644
+ markdownErrorSignal: RealmNode<{
645
+ error: string;
646
+ source: string;
647
+ }>;
576
648
  } & {
577
649
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
578
650
  defaultCodeBlockLanguage: RealmNode<string>;
579
651
  appendCodeBlockEditorDescriptor: RealmNode<CodeBlockEditorDescriptor>;
580
652
  insertCodeBlock: RealmNode<Partial<CreateCodeBlockNodeOptions>>;
581
653
  }>;
582
- useEmitter: <K extends "jsxComponentDescriptors" | "jsxIsAvailable" | "toMarkdownOptions" | "toMarkdownExtensions" | "mdastExtensions" | "syntaxExtensions" | "markdown" | "activeEditor" | "inFocus" | "historyState" | "currentSelection" | "initialRootEditorState" | "rootEditor" | "createRootEditorSubscription" | "createActiveEditorSubscription" | "importVisitors" | "usedLexicalNodes" | "addImportVisitor" | "addLexicalNode" | "addSyntaxExtension" | "addMdastExtension" | "addToMarkdownExtension" | "addExportVisitor" | "exportVisitors" | "initialMarkdown" | "setMarkdown" | "markdownSignal" | "editorRootElementRef" | "contentEditableClassName" | "placeholder" | "autoFocus" | "readOnly" | "composerChildren" | "addComposerChild" | "topAreaChildren" | "addTopAreaChild" | "nestedEditorChildren" | "addNestedEditorChild" | "editorWrappers" | "addEditorWrapper" | "currentFormat" | "editorInFocus" | "applyFormat" | "currentBlockType" | "applyBlockType" | "convertSelectionToNode" | "insertDecoratorNode" | "onBlur" | "iconComponentFor" | "codeBlockEditorDescriptors" | "defaultCodeBlockLanguage" | "appendCodeBlockEditorDescriptor" | "insertCodeBlock" | "codeBlockLanguages" | "insertCodeMirror">(key: K, callback: (value: ValueForKey<{
654
+ useEmitter: <K extends "jsxComponentDescriptors" | "jsxIsAvailable" | "toMarkdownOptions" | "toMarkdownExtensions" | "mdastExtensions" | "syntaxExtensions" | "markdown" | "activeEditor" | "inFocus" | "historyState" | "currentSelection" | "initialRootEditorState" | "rootEditor" | "createRootEditorSubscription" | "createActiveEditorSubscription" | "importVisitors" | "usedLexicalNodes" | "addImportVisitor" | "addLexicalNode" | "addSyntaxExtension" | "addMdastExtension" | "addToMarkdownExtension" | "addExportVisitor" | "exportVisitors" | "initialMarkdown" | "setMarkdown" | "markdownSignal" | "editorRootElementRef" | "contentEditableClassName" | "placeholder" | "autoFocus" | "readOnly" | "composerChildren" | "addComposerChild" | "topAreaChildren" | "addTopAreaChild" | "nestedEditorChildren" | "addNestedEditorChild" | "editorWrappers" | "addEditorWrapper" | "currentFormat" | "editorInFocus" | "applyFormat" | "currentBlockType" | "applyBlockType" | "convertSelectionToNode" | "insertDecoratorNode" | "onBlur" | "iconComponentFor" | "markdownProcessingError" | "markdownErrorSignal" | "codeBlockEditorDescriptors" | "defaultCodeBlockLanguage" | "appendCodeBlockEditorDescriptor" | "insertCodeBlock" | "codeBlockLanguages" | "insertCodeMirror">(key: K, callback: (value: ValueForKey<{
583
655
  codeBlockLanguages: RealmNode<Record<string, string>>;
584
656
  insertCodeMirror: RealmNode<{
585
657
  language: string;
@@ -642,6 +714,14 @@ codeMirrorHooks: {
642
714
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
643
715
  onBlur: RealmNode<FocusEvent>;
644
716
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
717
+ markdownProcessingError: RealmNode<{
718
+ error: string;
719
+ source: string;
720
+ } | null>;
721
+ markdownErrorSignal: RealmNode<{
722
+ error: string;
723
+ source: string;
724
+ }>;
645
725
  } & {
646
726
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
647
727
  defaultCodeBlockLanguage: RealmNode<string>;
@@ -711,6 +791,14 @@ codeMirrorHooks: {
711
791
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
712
792
  onBlur: RealmNode<FocusEvent>;
713
793
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
794
+ markdownProcessingError: RealmNode<{
795
+ error: string;
796
+ source: string;
797
+ } | null>;
798
+ markdownErrorSignal: RealmNode<{
799
+ error: string;
800
+ source: string;
801
+ }>;
714
802
  } & {
715
803
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
716
804
  defaultCodeBlockLanguage: RealmNode<string>;
@@ -779,6 +867,14 @@ codeMirrorHooks: {
779
867
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
780
868
  onBlur: RealmNode<FocusEvent>;
781
869
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
870
+ markdownProcessingError: RealmNode<{
871
+ error: string;
872
+ source: string;
873
+ } | null>;
874
+ markdownErrorSignal: RealmNode<{
875
+ error: string;
876
+ source: string;
877
+ }>;
782
878
  } & {
783
879
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
784
880
  defaultCodeBlockLanguage: RealmNode<string>;
@@ -848,13 +944,21 @@ codeMirrorHooks: {
848
944
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
849
945
  onBlur: RealmNode<FocusEvent>;
850
946
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
947
+ markdownProcessingError: RealmNode<{
948
+ error: string;
949
+ source: string;
950
+ } | null>;
951
+ markdownErrorSignal: RealmNode<{
952
+ error: string;
953
+ source: string;
954
+ }>;
851
955
  } & {
852
956
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
853
957
  defaultCodeBlockLanguage: RealmNode<string>;
854
958
  appendCodeBlockEditorDescriptor: RealmNode<CodeBlockEditorDescriptor>;
855
959
  insertCodeBlock: RealmNode<Partial<CreateCodeBlockNodeOptions>>;
856
960
  }>) => void;
857
- usePublisher: <K_2 extends "jsxComponentDescriptors" | "jsxIsAvailable" | "toMarkdownOptions" | "toMarkdownExtensions" | "mdastExtensions" | "syntaxExtensions" | "markdown" | "activeEditor" | "inFocus" | "historyState" | "currentSelection" | "initialRootEditorState" | "rootEditor" | "createRootEditorSubscription" | "createActiveEditorSubscription" | "importVisitors" | "usedLexicalNodes" | "addImportVisitor" | "addLexicalNode" | "addSyntaxExtension" | "addMdastExtension" | "addToMarkdownExtension" | "addExportVisitor" | "exportVisitors" | "initialMarkdown" | "setMarkdown" | "markdownSignal" | "editorRootElementRef" | "contentEditableClassName" | "placeholder" | "autoFocus" | "readOnly" | "composerChildren" | "addComposerChild" | "topAreaChildren" | "addTopAreaChild" | "nestedEditorChildren" | "addNestedEditorChild" | "editorWrappers" | "addEditorWrapper" | "currentFormat" | "editorInFocus" | "applyFormat" | "currentBlockType" | "applyBlockType" | "convertSelectionToNode" | "insertDecoratorNode" | "onBlur" | "iconComponentFor" | "codeBlockEditorDescriptors" | "defaultCodeBlockLanguage" | "appendCodeBlockEditorDescriptor" | "insertCodeBlock" | "codeBlockLanguages" | "insertCodeMirror">(key: K_2) => (value: ValueForKey<{
961
+ usePublisher: <K_2 extends "jsxComponentDescriptors" | "jsxIsAvailable" | "toMarkdownOptions" | "toMarkdownExtensions" | "mdastExtensions" | "syntaxExtensions" | "markdown" | "activeEditor" | "inFocus" | "historyState" | "currentSelection" | "initialRootEditorState" | "rootEditor" | "createRootEditorSubscription" | "createActiveEditorSubscription" | "importVisitors" | "usedLexicalNodes" | "addImportVisitor" | "addLexicalNode" | "addSyntaxExtension" | "addMdastExtension" | "addToMarkdownExtension" | "addExportVisitor" | "exportVisitors" | "initialMarkdown" | "setMarkdown" | "markdownSignal" | "editorRootElementRef" | "contentEditableClassName" | "placeholder" | "autoFocus" | "readOnly" | "composerChildren" | "addComposerChild" | "topAreaChildren" | "addTopAreaChild" | "nestedEditorChildren" | "addNestedEditorChild" | "editorWrappers" | "addEditorWrapper" | "currentFormat" | "editorInFocus" | "applyFormat" | "currentBlockType" | "applyBlockType" | "convertSelectionToNode" | "insertDecoratorNode" | "onBlur" | "iconComponentFor" | "markdownProcessingError" | "markdownErrorSignal" | "codeBlockEditorDescriptors" | "defaultCodeBlockLanguage" | "appendCodeBlockEditorDescriptor" | "insertCodeBlock" | "codeBlockLanguages" | "insertCodeMirror">(key: K_2) => (value: ValueForKey<{
858
962
  codeBlockLanguages: RealmNode<Record<string, string>>;
859
963
  insertCodeMirror: RealmNode<{
860
964
  language: string;
@@ -917,6 +1021,14 @@ codeMirrorHooks: {
917
1021
  insertDecoratorNode: RealmNode<() => DecoratorNode<unknown>>;
918
1022
  onBlur: RealmNode<FocusEvent>;
919
1023
  iconComponentFor: RealmNode<(name: IconKey) => ReactNode>;
1024
+ markdownProcessingError: RealmNode<{
1025
+ error: string;
1026
+ source: string;
1027
+ } | null>;
1028
+ markdownErrorSignal: RealmNode<{
1029
+ error: string;
1030
+ source: string;
1031
+ }>;
920
1032
  } & {
921
1033
  codeBlockEditorDescriptors: RealmNode<CodeBlockEditorDescriptor[]>;
922
1034
  defaultCodeBlockLanguage: RealmNode<string>;