@mdxeditor/editor 3.9.2 → 3.10.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.
- package/dist/index.d.ts +48 -1
- package/dist/index.js +2 -0
- package/dist/plugins/core/NestedLexicalEditor.js +9 -1
- package/dist/plugins/image/ImageDialog.js +1 -1
- package/dist/plugins/image/ImageNode.js +2 -2
- package/dist/plugins/image/index.js +38 -33
- package/dist/plugins/table/TableEditor.js +2 -2
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -747,6 +747,53 @@ export declare const DEFAULT_FORMAT: 0;
|
|
|
747
747
|
*/
|
|
748
748
|
export declare const defaultCodeBlockLanguage$: NodeRef<string>;
|
|
749
749
|
|
|
750
|
+
export declare const defaultSvgIcons: {
|
|
751
|
+
undo: default_2.JSX.Element;
|
|
752
|
+
redo: default_2.JSX.Element;
|
|
753
|
+
format_bold: default_2.JSX.Element;
|
|
754
|
+
format_italic: default_2.JSX.Element;
|
|
755
|
+
format_underlined: default_2.JSX.Element;
|
|
756
|
+
code: default_2.JSX.Element;
|
|
757
|
+
strikeThrough: default_2.JSX.Element;
|
|
758
|
+
superscript: default_2.JSX.Element;
|
|
759
|
+
subscript: default_2.JSX.Element;
|
|
760
|
+
format_list_bulleted: default_2.JSX.Element;
|
|
761
|
+
format_list_numbered: default_2.JSX.Element;
|
|
762
|
+
format_list_checked: default_2.JSX.Element;
|
|
763
|
+
link: default_2.JSX.Element;
|
|
764
|
+
add_photo: default_2.JSX.Element;
|
|
765
|
+
table: default_2.JSX.Element;
|
|
766
|
+
horizontal_rule: default_2.JSX.Element;
|
|
767
|
+
frontmatter: default_2.JSX.Element;
|
|
768
|
+
frame_source: default_2.JSX.Element;
|
|
769
|
+
arrow_drop_down: default_2.JSX.Element;
|
|
770
|
+
admonition: default_2.JSX.Element;
|
|
771
|
+
sandpack: default_2.JSX.Element;
|
|
772
|
+
rich_text: default_2.JSX.Element;
|
|
773
|
+
difference: default_2.JSX.Element;
|
|
774
|
+
markdown: default_2.JSX.Element;
|
|
775
|
+
open_in_new: default_2.JSX.Element;
|
|
776
|
+
link_off: default_2.JSX.Element;
|
|
777
|
+
edit: default_2.JSX.Element;
|
|
778
|
+
content_copy: default_2.JSX.Element;
|
|
779
|
+
more_horiz: default_2.JSX.Element;
|
|
780
|
+
more_vert: default_2.JSX.Element;
|
|
781
|
+
close: default_2.JSX.Element;
|
|
782
|
+
settings: default_2.JSX.Element;
|
|
783
|
+
delete_big: default_2.JSX.Element;
|
|
784
|
+
delete_small: default_2.JSX.Element;
|
|
785
|
+
format_align_center: default_2.JSX.Element;
|
|
786
|
+
format_align_left: default_2.JSX.Element;
|
|
787
|
+
format_align_right: default_2.JSX.Element;
|
|
788
|
+
add_row: default_2.JSX.Element;
|
|
789
|
+
add_column: default_2.JSX.Element;
|
|
790
|
+
insert_col_left: default_2.JSX.Element;
|
|
791
|
+
insert_row_above: default_2.JSX.Element;
|
|
792
|
+
insert_row_below: default_2.JSX.Element;
|
|
793
|
+
insert_col_right: default_2.JSX.Element;
|
|
794
|
+
check: default_2.JSX.Element;
|
|
795
|
+
};
|
|
796
|
+
|
|
750
797
|
/**
|
|
751
798
|
* The registered descriptors for composite nodes (jsx, directives, code blocks).
|
|
752
799
|
*/
|
|
@@ -1175,7 +1222,7 @@ export declare const htmlTags: readonly ["a", "abbr", "address", "area", "articl
|
|
|
1175
1222
|
*/
|
|
1176
1223
|
export declare const iconComponentFor$: NodeRef<(name: IconKey) => default_2.ReactNode>;
|
|
1177
1224
|
|
|
1178
|
-
declare type IconKey = 'undo' | 'redo' | 'format_bold' | 'format_italic' | 'format_underlined' | 'code' | 'strikeThrough' | 'superscript' | 'subscript' | 'format_list_bulleted' | 'format_list_numbered' | 'format_list_checked' | 'link' | 'add_photo' | 'table' | 'horizontal_rule' | 'frontmatter' | 'frame_source' | 'arrow_drop_down' | 'admonition' | 'sandpack' | 'rich_text' | 'difference' | 'markdown' | 'open_in_new' | 'link_off' | 'edit' | 'content_copy' | 'more_horiz' | 'more_vert' | 'close' | 'settings' | 'delete_big' | 'delete_small' | 'format_align_center' | 'format_align_left' | 'format_align_right' | 'add_row' | 'add_column' | 'insert_col_left' | 'insert_row_above' | 'insert_row_below' | 'insert_col_right' | 'check';
|
|
1225
|
+
export declare type IconKey = 'undo' | 'redo' | 'format_bold' | 'format_italic' | 'format_underlined' | 'code' | 'strikeThrough' | 'superscript' | 'subscript' | 'format_list_bulleted' | 'format_list_numbered' | 'format_list_checked' | 'link' | 'add_photo' | 'table' | 'horizontal_rule' | 'frontmatter' | 'frame_source' | 'arrow_drop_down' | 'admonition' | 'sandpack' | 'rich_text' | 'difference' | 'markdown' | 'open_in_new' | 'link_off' | 'edit' | 'content_copy' | 'more_horiz' | 'more_vert' | 'close' | 'settings' | 'delete_big' | 'delete_small' | 'format_align_center' | 'format_align_left' | 'format_align_right' | 'add_row' | 'add_column' | 'insert_col_left' | 'insert_row_above' | 'insert_row_below' | 'insert_col_right' | 'check';
|
|
1179
1226
|
|
|
1180
1227
|
/**
|
|
1181
1228
|
* Holds the autocomplete suggestions for image sources.
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import "./styles/globals.css.js";
|
|
2
2
|
export * from "@mdxeditor/gurx";
|
|
3
3
|
import { MDXEditor } from "./MDXEditor.js";
|
|
4
|
+
import { defaultSvgIcons } from "./defaultSvgIcons.js";
|
|
4
5
|
import { MarkdownParseError, UnrecognizedMarkdownConstructError, importMarkdownToLexical, importMdastTreeToLexical } from "./importMarkdownToLexical.js";
|
|
5
6
|
import { exportLexicalTreeToMdast, exportMarkdownFromLexical } from "./exportMarkdownFromLexical.js";
|
|
6
7
|
import { Appender, NESTED_EDITOR_UPDATED_COMMAND, activeEditor$, activeEditorSubscriptions$, activePlugins$, addActivePlugin$, addComposerChild$, addEditorWrapper$, addExportVisitor$, addImportVisitor$, addLexicalNode$, addMdastExtension$, addNestedEditorChild$, addSyntaxExtension$, addToMarkdownExtension$, addTopAreaChild$, applyBlockType$, applyFormat$, autoFocus$, codeBlockEditorDescriptors$, composerChildren$, contentEditableClassName$, convertSelectionToNode$, corePlugin, createActiveEditorSubscription$, createRootEditorSubscription$, currentBlockType$, currentFormat$, currentSelection$, directiveDescriptors$, editorInFocus$, editorRootElementRef$, editorWrappers$, exportVisitors$, historyState$, iconComponentFor$, importVisitors$, inFocus$, initialMarkdown$, insertDecoratorNode$, insertMarkdown$, jsxComponentDescriptors$, jsxIsAvailable$, markdown$, markdownErrorSignal$, markdownProcessingError$, markdownSourceEditorValue$, mdastExtensions$, muteChange$, nestedEditorChildren$, onBlur$, placeholder$, readOnly$, rootEditor$, rootEditorSubscriptions$, setMarkdown$, syntaxExtensions$, toMarkdownExtensions$, toMarkdownOptions$, topAreaChildren$, translation$, useTranslation, usedLexicalNodes$, viewMode$ } from "./plugins/core/index.js";
|
|
@@ -195,6 +196,7 @@ export {
|
|
|
195
196
|
curry1to0,
|
|
196
197
|
curry2to1,
|
|
197
198
|
defaultCodeBlockLanguage$,
|
|
199
|
+
defaultSvgIcons,
|
|
198
200
|
diffMarkdown$,
|
|
199
201
|
diffSourcePlugin,
|
|
200
202
|
directiveDescriptors$,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $addUpdateTag, $getNodeByKey, createEditor, $getRoot, BLUR_COMMAND, COMMAND_PRIORITY_EDITOR, SELECTION_CHANGE_COMMAND, COMMAND_PRIORITY_HIGH, KEY_BACKSPACE_COMMAND, COMMAND_PRIORITY_CRITICAL } from "lexical";
|
|
1
|
+
import { $addUpdateTag, $getNodeByKey, createEditor, $getRoot, FOCUS_COMMAND, COMMAND_PRIORITY_LOW, BLUR_COMMAND, COMMAND_PRIORITY_EDITOR, SELECTION_CHANGE_COMMAND, COMMAND_PRIORITY_HIGH, KEY_BACKSPACE_COMMAND, COMMAND_PRIORITY_CRITICAL } from "lexical";
|
|
2
2
|
import React__default from "react";
|
|
3
3
|
import { NESTED_EDITOR_UPDATED_COMMAND, rootEditor$, importVisitors$, exportVisitors$, usedLexicalNodes$, jsxComponentDescriptors$, directiveDescriptors$, codeBlockEditorDescriptors$, jsxIsAvailable$, nestedEditorChildren$, editorInFocus$ } from "./index.js";
|
|
4
4
|
import { ContentEditable } from "@lexical/react/LexicalContentEditable.js";
|
|
@@ -127,6 +127,14 @@ const NestedLexicalEditor = function(props) {
|
|
|
127
127
|
});
|
|
128
128
|
}
|
|
129
129
|
return mergeRegister(
|
|
130
|
+
editor.registerCommand(
|
|
131
|
+
FOCUS_COMMAND,
|
|
132
|
+
() => {
|
|
133
|
+
setEditorInFocus({ editorType: "lexical", rootNode: lexicalNode });
|
|
134
|
+
return false;
|
|
135
|
+
},
|
|
136
|
+
COMMAND_PRIORITY_LOW
|
|
137
|
+
),
|
|
130
138
|
editor.registerCommand(
|
|
131
139
|
BLUR_COMMAND,
|
|
132
140
|
(payload) => {
|
|
@@ -51,7 +51,7 @@ const ImageDialog = () => {
|
|
|
51
51
|
},
|
|
52
52
|
className: styles.multiFieldForm
|
|
53
53
|
},
|
|
54
|
-
imageUploadHandler
|
|
54
|
+
imageUploadHandler === null ? /* @__PURE__ */ React__default.createElement("input", { type: "hidden", accept: "image/*", ...register("file") }) : /* @__PURE__ */ React__default.createElement("div", { className: styles.formField }, /* @__PURE__ */ React__default.createElement("label", { htmlFor: "file" }, t("uploadImage.uploadInstructions", "Upload an image from your device:")), /* @__PURE__ */ React__default.createElement("input", { type: "file", accept: "image/*", ...register("file") })),
|
|
55
55
|
/* @__PURE__ */ React__default.createElement("div", { className: styles.formField }, /* @__PURE__ */ React__default.createElement("label", { htmlFor: "src" }, imageUploadHandler !== null ? t("uploadImage.addViaUrlInstructions", "Or add an image from an URL:") : t("uploadImage.addViaUrlInstructionsNoUpload", "Add an image from an URL:")), /* @__PURE__ */ React__default.createElement(
|
|
56
56
|
DownshiftAutoComplete,
|
|
57
57
|
{
|
|
@@ -35,8 +35,8 @@ class ImageNode extends DecoratorNode {
|
|
|
35
35
|
this.__src = src;
|
|
36
36
|
this.__title = title;
|
|
37
37
|
this.__altText = altText;
|
|
38
|
-
this.__width = width
|
|
39
|
-
this.__height = height
|
|
38
|
+
this.__width = width ? width : "inherit";
|
|
39
|
+
this.__height = height ? height : "inherit";
|
|
40
40
|
}
|
|
41
41
|
/** @internal */
|
|
42
42
|
static getType() {
|
|
@@ -83,9 +83,6 @@ const imageDialogState$ = Cell(
|
|
|
83
83
|
editor.registerCommand(
|
|
84
84
|
DRAGSTART_COMMAND,
|
|
85
85
|
(event) => {
|
|
86
|
-
if (!theUploadHandler) {
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
86
|
return onDragStart(event);
|
|
90
87
|
},
|
|
91
88
|
COMMAND_PRIORITY_HIGH
|
|
@@ -93,7 +90,7 @@ const imageDialogState$ = Cell(
|
|
|
93
90
|
editor.registerCommand(
|
|
94
91
|
DRAGOVER_COMMAND,
|
|
95
92
|
(event) => {
|
|
96
|
-
return onDragover(event);
|
|
93
|
+
return onDragover(event, !!theUploadHandler);
|
|
97
94
|
},
|
|
98
95
|
COMMAND_PRIORITY_LOW
|
|
99
96
|
),
|
|
@@ -104,32 +101,38 @@ const imageDialogState$ = Cell(
|
|
|
104
101
|
},
|
|
105
102
|
COMMAND_PRIORITY_HIGH
|
|
106
103
|
),
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
let
|
|
113
|
-
|
|
114
|
-
if (!
|
|
115
|
-
return
|
|
104
|
+
editor.registerCommand(
|
|
105
|
+
PASTE_COMMAND,
|
|
106
|
+
(event) => {
|
|
107
|
+
var _a, _b;
|
|
108
|
+
if (!theUploadHandler) {
|
|
109
|
+
let fromWeb = Array.from(((_a = event.clipboardData) == null ? void 0 : _a.items) ?? []);
|
|
110
|
+
fromWeb = fromWeb.filter((i) => i.type.includes("text"));
|
|
111
|
+
if (!fromWeb.length || fromWeb.length === 0) {
|
|
112
|
+
return true;
|
|
116
113
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
let cbPayload = Array.from(((_b = event.clipboardData) == null ? void 0 : _b.items) ?? []);
|
|
117
|
+
cbPayload = cbPayload.filter((i) => i.type.includes("image"));
|
|
118
|
+
if (!cbPayload.length || cbPayload.length === 0) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
const imageUploadHandlerValue = r.getValue(imageUploadHandler$);
|
|
122
|
+
Promise.all(cbPayload.map((file) => imageUploadHandlerValue(file.getAsFile()))).then((urls) => {
|
|
123
|
+
urls.forEach((url) => {
|
|
124
|
+
editor.dispatchCommand(INSERT_IMAGE_COMMAND, {
|
|
125
|
+
src: url,
|
|
126
|
+
altText: ""
|
|
124
127
|
});
|
|
125
|
-
}).catch((e) => {
|
|
126
|
-
throw e;
|
|
127
128
|
});
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
129
|
+
}).catch((e) => {
|
|
130
|
+
throw e;
|
|
131
|
+
});
|
|
132
|
+
return true;
|
|
133
|
+
},
|
|
134
|
+
COMMAND_PRIORITY_CRITICAL
|
|
135
|
+
)
|
|
133
136
|
);
|
|
134
137
|
});
|
|
135
138
|
}
|
|
@@ -204,13 +207,15 @@ function onDragStart(event) {
|
|
|
204
207
|
);
|
|
205
208
|
return true;
|
|
206
209
|
}
|
|
207
|
-
function onDragover(event) {
|
|
210
|
+
function onDragover(event, hasUploadHandler) {
|
|
208
211
|
var _a;
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
212
|
+
if (hasUploadHandler) {
|
|
213
|
+
let cbPayload = Array.from(((_a = event.dataTransfer) == null ? void 0 : _a.items) ?? []);
|
|
214
|
+
cbPayload = cbPayload.filter((i) => i.type.includes("image"));
|
|
215
|
+
if (cbPayload.length > 0) {
|
|
216
|
+
event.preventDefault();
|
|
217
|
+
return true;
|
|
218
|
+
}
|
|
214
219
|
}
|
|
215
220
|
const node = getImageNodeInSelection();
|
|
216
221
|
if (!node) {
|
|
@@ -3,7 +3,7 @@ import LexicalErrorBoundary from "@lexical/react/LexicalErrorBoundary.js";
|
|
|
3
3
|
import { LexicalNestedComposer } from "@lexical/react/LexicalNestedComposer.js";
|
|
4
4
|
import { RichTextPlugin } from "@lexical/react/LexicalRichTextPlugin.js";
|
|
5
5
|
import * as RadixPopover from "@radix-ui/react-popover";
|
|
6
|
-
import { $createParagraphNode, createEditor, $getRoot, KEY_TAB_COMMAND, COMMAND_PRIORITY_CRITICAL, FOCUS_COMMAND, COMMAND_PRIORITY_LOW, KEY_ENTER_COMMAND, BLUR_COMMAND } from "lexical";
|
|
6
|
+
import { $createParagraphNode, createEditor, $getRoot, KEY_TAB_COMMAND, COMMAND_PRIORITY_CRITICAL, FOCUS_COMMAND, COMMAND_PRIORITY_LOW, KEY_ENTER_COMMAND, BLUR_COMMAND, COMMAND_PRIORITY_EDITOR } from "lexical";
|
|
7
7
|
import React__default from "react";
|
|
8
8
|
import { exportLexicalTreeToMdast } from "../../exportMarkdownFromLexical.js";
|
|
9
9
|
import { importMdastTreeToLexical } from "../../importMarkdownToLexical.js";
|
|
@@ -307,7 +307,7 @@ const CellEditor = ({ focus, setActiveCell, parentEditor, lexicalTable, contents
|
|
|
307
307
|
saveAndFocus(null);
|
|
308
308
|
return true;
|
|
309
309
|
},
|
|
310
|
-
|
|
310
|
+
COMMAND_PRIORITY_EDITOR
|
|
311
311
|
),
|
|
312
312
|
editor.registerCommand(
|
|
313
313
|
NESTED_EDITOR_UPDATED_COMMAND,
|