@mdxeditor/editor 0.5.1 → 0.6.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/{CodeBlockEditor-660bbfb5.cjs → CodeBlockEditor-4ddeaaa3.cjs} +1 -1
- package/dist/{CodeBlockEditor-85652bef.js → CodeBlockEditor-b4eb4a95.js} +2 -2
- package/dist/{FrontmatterEditor-ecc0250f.js → FrontmatterEditor-2362b83d.js} +1 -1
- package/dist/{FrontmatterEditor-c2ce0cfe.cjs → FrontmatterEditor-510a024d.cjs} +1 -1
- package/dist/ImageEditor-04e57c59.cjs +1 -0
- package/dist/ImageEditor-3afec501.js +190 -0
- package/dist/{JsxEditor-1484899b.cjs → JsxEditor-345a3902.cjs} +1 -1
- package/dist/{JsxEditor-13fe2ef4.js → JsxEditor-833132d2.js} +1 -1
- package/dist/{SandpackEditor-b4595274.cjs → SandpackEditor-3128b9fb.cjs} +1 -1
- package/dist/{SandpackEditor-4069c473.js → SandpackEditor-8562657d.js} +2 -2
- package/dist/{TableEditor-7e9c9080.cjs → TableEditor-a4fa1bc5.cjs} +1 -1
- package/dist/{TableEditor-fe1c1548.js → TableEditor-e1050552.js} +1 -1
- package/dist/{index-7651977e.js → index-a1fa6c7f.js} +294 -80
- package/dist/index-c5c6df38.cjs +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +23 -1
- package/dist/index.js +9 -9
- package/dist/style.css +146 -128
- package/dist/{useCodeMirrorRef-6a4824b8.cjs → useCodeMirrorRef-67194f45.cjs} +1 -1
- package/dist/{useCodeMirrorRef-72118c7c.js → useCodeMirrorRef-71e54daf.js} +1 -1
- package/package.json +5 -3
- package/dist/index-f3a38e7a.cjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@codesandbox/sandpack-react"),r=require("react"),i=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@codesandbox/sandpack-react"),r=require("react"),i=require("./index-c5c6df38.cjs"),a=require("./useCodeMirrorRef-67194f45.cjs");require("@lexical/react/LexicalComposer"),require("@lexical/react/LexicalContentEditable"),require("@lexical/react/LexicalErrorBoundary"),require("@lexical/react/LexicalHorizontalRulePlugin"),require("@lexical/react/LexicalLinkPlugin"),require("@lexical/react/LexicalListPlugin"),require("@lexical/react/LexicalRichTextPlugin"),require("@lexical/react/LexicalTabIndentationPlugin"),require("classnames"),require("lexical"),require("@lexical/code"),require("@lexical/link"),require("@lexical/list"),require("@lexical/react/LexicalHorizontalRuleNode"),require("@lexical/rich-text"),require("mdast-util-directive"),require("mdast-util-from-markdown"),require("mdast-util-frontmatter"),require("mdast-util-gfm-table"),require("mdast-util-mdx"),require("micromark-extension-directive"),require("micromark-extension-frontmatter"),require("micromark-extension-gfm-table"),require("micromark-extension-mdxjs"),require("@lexical/utils"),require("@lexical/react/LexicalComposerContext"),require("@lexical/selection"),require("@lexical/react/LexicalHistoryPlugin"),require("mdast-util-to-markdown"),require("@radix-ui/react-popover"),require("@radix-ui/react-tooltip"),require("downshift"),require("@lexical/markdown"),require("@lexical/react/LexicalMarkdownShortcutPlugin"),require("@codemirror/lang-markdown"),require("react-diff-view"),require("unidiff"),require("@radix-ui/react-toolbar"),require("@radix-ui/react-select"),require("@radix-ui/react-dialog");exports.CodeBlockEditor=({nodeKey:t,code:l,language:c,onChange:u,focusEmitter:o})=>{const[n]=i.useEmitterValues("activeEditor"),d=a.useCodeMirrorRef(t,"codeblock",c),s=i.usePublisher("activeEditorType");r.useEffect((()=>{o.subscribe((()=>{var e,r;null==(r=null==(e=null==d?void 0:d.current)?void 0:e.getCodemirror())||r.focus(),s({type:"codeblock",nodeKey:t})}))}),[o,d,s,t]);const x=r.useCallback((e=>{null==n||n.update((()=>{u(e)}))}),[u,n]);return r.createElement("div",{className:i.styles.sandpackWrapper},r.createElement(e.SandpackProvider,null,r.createElement(e.CodeEditor,{showLineNumbers:!0,initMode:"immediate",key:c,filePath:`file.${c||"txt"}`,code:l,onCodeUpdate:x,ref:d})))};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SandpackProvider, CodeEditor } from "@codesandbox/sandpack-react";
|
|
2
2
|
import React__default from "react";
|
|
3
|
-
import { u as useEmitterValues, a as usePublisher, s as styles } from "./index-
|
|
4
|
-
import { u as useCodeMirrorRef } from "./useCodeMirrorRef-
|
|
3
|
+
import { u as useEmitterValues, a as usePublisher, s as styles } from "./index-a1fa6c7f.js";
|
|
4
|
+
import { u as useCodeMirrorRef } from "./useCodeMirrorRef-71e54daf.js";
|
|
5
5
|
import "@lexical/react/LexicalComposer";
|
|
6
6
|
import "@lexical/react/LexicalContentEditable";
|
|
7
7
|
import "@lexical/react/LexicalErrorBoundary";
|
|
@@ -3,7 +3,7 @@ import * as React from "react";
|
|
|
3
3
|
import React__default from "react";
|
|
4
4
|
import { useForm, useFieldArray } from "react-hook-form";
|
|
5
5
|
import classNames from "classnames";
|
|
6
|
-
import { s as styles } from "./index-
|
|
6
|
+
import { s as styles } from "./index-a1fa6c7f.js";
|
|
7
7
|
import "@lexical/react/LexicalComposer";
|
|
8
8
|
import "@lexical/react/LexicalContentEditable";
|
|
9
9
|
import "@lexical/react/LexicalErrorBoundary";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("js-yaml"),t=require("react"),r=require("react-hook-form"),l=require("classnames"),a=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("js-yaml"),t=require("react"),r=require("react-hook-form"),l=require("classnames"),a=require("./index-c5c6df38.cjs");function i(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const r in e)if("default"!==r){const l=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,l.get?l:{enumerable:!0,get:()=>e[r]})}return t.default=e,Object.freeze(t)}require("@lexical/react/LexicalComposer"),require("@lexical/react/LexicalContentEditable"),require("@lexical/react/LexicalErrorBoundary"),require("@lexical/react/LexicalHorizontalRulePlugin"),require("@lexical/react/LexicalLinkPlugin"),require("@lexical/react/LexicalListPlugin"),require("@lexical/react/LexicalRichTextPlugin"),require("@lexical/react/LexicalTabIndentationPlugin"),require("lexical"),require("@lexical/code"),require("@lexical/link"),require("@lexical/list"),require("@lexical/react/LexicalHorizontalRuleNode"),require("@lexical/rich-text"),require("mdast-util-directive"),require("mdast-util-from-markdown"),require("mdast-util-frontmatter"),require("mdast-util-gfm-table"),require("mdast-util-mdx"),require("micromark-extension-directive"),require("micromark-extension-frontmatter"),require("micromark-extension-gfm-table"),require("micromark-extension-mdxjs"),require("@lexical/utils"),require("@lexical/react/LexicalComposerContext"),require("@lexical/selection"),require("@lexical/react/LexicalHistoryPlugin"),require("mdast-util-to-markdown"),require("@radix-ui/react-popover"),require("@radix-ui/react-tooltip"),require("downshift"),require("@lexical/markdown"),require("@lexical/react/LexicalMarkdownShortcutPlugin"),require("@codemirror/lang-markdown"),require("@codesandbox/sandpack-react"),require("react-diff-view"),require("unidiff"),require("@radix-ui/react-toolbar"),require("@radix-ui/react-select"),require("@radix-ui/react-dialog");const n=i(t),c=e=>n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,fill:"currentColor",viewBox:"0 0 24 24",...e},n.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},n.createElement("path",{d:"M0 0h24v24H0z"})),n.createElement("g",{mask:"url(#a)"},n.createElement("path",{d:"M10 17V7l5 5-5 5Z"}))),u=e=>n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,fill:"currentColor",viewBox:"0 0 24 24",...e},n.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},n.createElement("path",{d:"M0 0h24v24H0z"})),n.createElement("g",{mask:"url(#a)"},n.createElement("path",{d:"m12 15-5-5h10l-5 5Z"}))),o=e=>n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},n.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},n.createElement("path",{d:"M0 0h20v20H0z"})),n.createElement("g",{mask:"url(#a)"},n.createElement("path",{d:"M5 17V6.5H4V5h4V4h4v1h4v1.5h-1V17H5Zm1.5-1.5h7v-9h-7v9ZM8 14h1.5V8H8v6Zm2.5 0H12V8h-1.5v6Z"}))),m=t.forwardRef((({className:e,autofocusIfEmpty:r,...i},n)=>(i.autoFocus=Boolean(!i.value&&r),t.createElement("input",{className:l(a.styles.frontmatterInput,e),...i,ref:n}))));exports.FrontmatterEditor=({yaml:l,onChange:i})=>{const[n,s]=t.useState(!0),d=t.useMemo((()=>l?Object.entries(e.load(l)).map((([e,t])=>({key:e,value:t}))):[]),[l]),{register:x,control:h,watch:E}=r.useForm({defaultValues:{yamlConfig:d}}),{fields:f,append:p,remove:q}=r.useFieldArray({control:h,name:"yamlConfig"});return t.useEffect((()=>{const t=E((({yamlConfig:t})=>{const r=t.reduce(((e,{key:t,value:r})=>(t&&r&&(e[t]=r),e)),{});i(e.dump(r).trim())}));return()=>t.unsubscribe()}),[E,i]),t.createElement("div",{className:a.styles.frontmatterWrapper,"data-expanded":n,"data-editor-type":"frontmatter"},t.createElement("button",{className:a.styles.frontmatterToggleButton,onClick:e=>{e.preventDefault(),s((e=>!e))}},n?t.createElement(u,null):t.createElement(c,null),"Document frontmatter"),n&&t.createElement("form",null,t.createElement("table",{className:a.styles.frontmatterEditorTable},t.createElement("colgroup",null,t.createElement("col",null),t.createElement("col",null),t.createElement("col",null)),t.createElement("thead",null,t.createElement("tr",null,t.createElement("th",null,"Key"),t.createElement("th",null,"Value"),t.createElement("th",null))),t.createElement("tbody",null,f.map(((e,r)=>t.createElement("tr",{key:e.id},t.createElement("td",null,t.createElement(m,{...x(`yamlConfig.${r}.key`,{required:!0}),autofocusIfEmpty:!0})),t.createElement("td",null,t.createElement(m,{...x(`yamlConfig.${r}.value`,{required:!0})})),t.createElement("td",null,t.createElement("button",{type:"button",onClick:()=>q(r),className:a.styles.iconButton},t.createElement(o,null))))))),t.createElement("tfoot",null,t.createElement("tr",null,t.createElement("td",null,t.createElement("button",{className:a.styles.primaryButton,type:"button",onClick:()=>{p({key:"",value:""})}},"Add new key")))))))};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),r=require("@lexical/react/LexicalComposerContext"),t=require("@lexical/react/useLexicalNodeSelection"),i=require("@lexical/utils"),a=require("lexical"),l=require("./index-c5c6df38.cjs"),c=require("classnames");require("@lexical/react/LexicalComposer"),require("@lexical/react/LexicalContentEditable"),require("@lexical/react/LexicalErrorBoundary"),require("@lexical/react/LexicalHorizontalRulePlugin"),require("@lexical/react/LexicalLinkPlugin"),require("@lexical/react/LexicalListPlugin"),require("@lexical/react/LexicalRichTextPlugin"),require("@lexical/react/LexicalTabIndentationPlugin"),require("@lexical/code"),require("@lexical/link"),require("@lexical/list"),require("@lexical/react/LexicalHorizontalRuleNode"),require("@lexical/rich-text"),require("mdast-util-directive"),require("mdast-util-from-markdown"),require("mdast-util-frontmatter"),require("mdast-util-gfm-table"),require("mdast-util-mdx"),require("micromark-extension-directive"),require("micromark-extension-frontmatter"),require("micromark-extension-gfm-table"),require("micromark-extension-mdxjs"),require("@lexical/selection"),require("@lexical/react/LexicalHistoryPlugin"),require("mdast-util-to-markdown"),require("@radix-ui/react-popover"),require("@radix-ui/react-tooltip"),require("downshift"),require("@lexical/markdown"),require("@lexical/react/LexicalMarkdownShortcutPlugin"),require("@codemirror/lang-markdown"),require("@codesandbox/sandpack-react"),require("react-diff-view"),require("unidiff"),require("@radix-ui/react-toolbar"),require("@radix-ui/react-select"),require("@radix-ui/react-dialog");const n=new Set;function u({title:r,className:t,imageRef:i,src:a}){return function(e){if(!n.has(e))throw new Promise((r=>{const t=new Image;t.src=e,t.onload=()=>{n.add(e),r(null)}}))}(a),e.createElement("img",{className:t||void 0,src:a,title:r,ref:i,draggable:"false"})}exports.ImageEditor=function({src:n,title:o,nodeKey:s}){const m=e.useRef(null),d=e.useRef(null),[x,g,q]=t.useLexicalNodeSelection(s),[C]=r.useLexicalComposerContext(),[f,M]=e.useState(null),N=e.useRef(null),O=e.useCallback((e=>{if(x&&a.$isNodeSelection(a.$getSelection())){e.preventDefault();const r=a.$getNodeByKey(s);l.$isImageNode(r)&&r.remove()}return!1}),[x,s]),L=e.useCallback((e=>{const r=a.$getSelection(),t=d.current;return!(!x||!a.$isNodeSelection(r)||1!==r.getNodes().length||null===t||t===document.activeElement)&&(e.preventDefault(),t.focus(),!0)}),[x]),R=e.useCallback((e=>d.current===e.target&&(a.$setSelection(null),C.update((()=>{g(!0);const e=C.getRootElement();null!==e&&e.focus()})),!0)),[C,g]);e.useEffect((()=>{let e=!0;const r=i.mergeRegister(C.registerUpdateListener((({editorState:r})=>{e&&M(r.read((()=>a.$getSelection())))})),C.registerCommand(a.SELECTION_CHANGE_COMMAND,((e,r)=>(N.current=r,!1)),a.COMMAND_PRIORITY_LOW),C.registerCommand(a.CLICK_COMMAND,(e=>{const r=e;return r.target===m.current&&(r.shiftKey?g(!x):(q(),g(!0)),!0)}),a.COMMAND_PRIORITY_LOW),C.registerCommand(a.DRAGSTART_COMMAND,(e=>e.target===m.current&&(e.preventDefault(),!0)),a.COMMAND_PRIORITY_LOW),C.registerCommand(a.KEY_DELETE_COMMAND,O,a.COMMAND_PRIORITY_LOW),C.registerCommand(a.KEY_BACKSPACE_COMMAND,O,a.COMMAND_PRIORITY_LOW),C.registerCommand(a.KEY_ENTER_COMMAND,L,a.COMMAND_PRIORITY_LOW),C.registerCommand(a.KEY_ESCAPE_COMMAND,R,a.COMMAND_PRIORITY_LOW));return()=>{e=!1,r()}}),[q,C,x,s,O,L,R,g]);const E=a.$isNodeSelection(f),_=x;return e.createElement(e.Suspense,{fallback:null},e.createElement(e.Fragment,null,e.createElement("div",{draggable:E,className:l.styles.imageWrapper},e.createElement(u,{className:c({[l.styles.focusedImage]:_}),src:n,title:o||"",imageRef:m}))))};
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import React__default, { useRef, useState, useCallback, useEffect, Suspense } from "react";
|
|
2
|
+
import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
|
|
3
|
+
import { useLexicalNodeSelection } from "@lexical/react/useLexicalNodeSelection";
|
|
4
|
+
import { mergeRegister } from "@lexical/utils";
|
|
5
|
+
import { $isNodeSelection, $getSelection, $getNodeByKey, $setSelection, SELECTION_CHANGE_COMMAND, COMMAND_PRIORITY_LOW, CLICK_COMMAND, DRAGSTART_COMMAND, KEY_DELETE_COMMAND, KEY_BACKSPACE_COMMAND, KEY_ENTER_COMMAND, KEY_ESCAPE_COMMAND } from "lexical";
|
|
6
|
+
import { $ as $isImageNode, s as styles } from "./index-a1fa6c7f.js";
|
|
7
|
+
import classNames from "classnames";
|
|
8
|
+
import "@lexical/react/LexicalComposer";
|
|
9
|
+
import "@lexical/react/LexicalContentEditable";
|
|
10
|
+
import "@lexical/react/LexicalErrorBoundary";
|
|
11
|
+
import "@lexical/react/LexicalHorizontalRulePlugin";
|
|
12
|
+
import "@lexical/react/LexicalLinkPlugin";
|
|
13
|
+
import "@lexical/react/LexicalListPlugin";
|
|
14
|
+
import "@lexical/react/LexicalRichTextPlugin";
|
|
15
|
+
import "@lexical/react/LexicalTabIndentationPlugin";
|
|
16
|
+
import "@lexical/code";
|
|
17
|
+
import "@lexical/link";
|
|
18
|
+
import "@lexical/list";
|
|
19
|
+
import "@lexical/react/LexicalHorizontalRuleNode";
|
|
20
|
+
import "@lexical/rich-text";
|
|
21
|
+
import "mdast-util-directive";
|
|
22
|
+
import "mdast-util-from-markdown";
|
|
23
|
+
import "mdast-util-frontmatter";
|
|
24
|
+
import "mdast-util-gfm-table";
|
|
25
|
+
import "mdast-util-mdx";
|
|
26
|
+
import "micromark-extension-directive";
|
|
27
|
+
import "micromark-extension-frontmatter";
|
|
28
|
+
import "micromark-extension-gfm-table";
|
|
29
|
+
import "micromark-extension-mdxjs";
|
|
30
|
+
import "@lexical/selection";
|
|
31
|
+
import "@lexical/react/LexicalHistoryPlugin";
|
|
32
|
+
import "mdast-util-to-markdown";
|
|
33
|
+
import "@radix-ui/react-popover";
|
|
34
|
+
import "@radix-ui/react-tooltip";
|
|
35
|
+
import "downshift";
|
|
36
|
+
import "@lexical/markdown";
|
|
37
|
+
import "@lexical/react/LexicalMarkdownShortcutPlugin";
|
|
38
|
+
import "@codemirror/lang-markdown";
|
|
39
|
+
import "@codesandbox/sandpack-react";
|
|
40
|
+
import "react-diff-view";
|
|
41
|
+
import "unidiff";
|
|
42
|
+
import "@radix-ui/react-toolbar";
|
|
43
|
+
import "@radix-ui/react-select";
|
|
44
|
+
import "@radix-ui/react-dialog";
|
|
45
|
+
const imageCache = /* @__PURE__ */ new Set();
|
|
46
|
+
function useSuspenseImage(src) {
|
|
47
|
+
if (!imageCache.has(src)) {
|
|
48
|
+
throw new Promise((resolve) => {
|
|
49
|
+
const img = new Image();
|
|
50
|
+
img.src = src;
|
|
51
|
+
img.onload = () => {
|
|
52
|
+
imageCache.add(src);
|
|
53
|
+
resolve(null);
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function LazyImage({
|
|
59
|
+
title,
|
|
60
|
+
className,
|
|
61
|
+
imageRef,
|
|
62
|
+
src
|
|
63
|
+
}) {
|
|
64
|
+
useSuspenseImage(src);
|
|
65
|
+
return /* @__PURE__ */ React__default.createElement("img", { className: className || void 0, src, title, ref: imageRef, draggable: "false" });
|
|
66
|
+
}
|
|
67
|
+
function ImageEditor({ src, title, nodeKey }) {
|
|
68
|
+
const imageRef = useRef(null);
|
|
69
|
+
const buttonRef = useRef(null);
|
|
70
|
+
const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey);
|
|
71
|
+
const [editor] = useLexicalComposerContext();
|
|
72
|
+
const [selection, setSelection] = useState(null);
|
|
73
|
+
const activeEditorRef = useRef(null);
|
|
74
|
+
const onDelete = useCallback(
|
|
75
|
+
(payload) => {
|
|
76
|
+
if (isSelected && $isNodeSelection($getSelection())) {
|
|
77
|
+
const event = payload;
|
|
78
|
+
event.preventDefault();
|
|
79
|
+
const node = $getNodeByKey(nodeKey);
|
|
80
|
+
if ($isImageNode(node)) {
|
|
81
|
+
node.remove();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
},
|
|
86
|
+
[isSelected, nodeKey]
|
|
87
|
+
);
|
|
88
|
+
const onEnter = useCallback(
|
|
89
|
+
(event) => {
|
|
90
|
+
const latestSelection = $getSelection();
|
|
91
|
+
const buttonElem = buttonRef.current;
|
|
92
|
+
if (isSelected && $isNodeSelection(latestSelection) && latestSelection.getNodes().length === 1) {
|
|
93
|
+
if (buttonElem !== null && buttonElem !== document.activeElement) {
|
|
94
|
+
event.preventDefault();
|
|
95
|
+
buttonElem.focus();
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return false;
|
|
100
|
+
},
|
|
101
|
+
[isSelected]
|
|
102
|
+
);
|
|
103
|
+
const onEscape = useCallback(
|
|
104
|
+
(event) => {
|
|
105
|
+
if (buttonRef.current === event.target) {
|
|
106
|
+
$setSelection(null);
|
|
107
|
+
editor.update(() => {
|
|
108
|
+
setSelected(true);
|
|
109
|
+
const parentRootElement = editor.getRootElement();
|
|
110
|
+
if (parentRootElement !== null) {
|
|
111
|
+
parentRootElement.focus();
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
return false;
|
|
117
|
+
},
|
|
118
|
+
[editor, setSelected]
|
|
119
|
+
);
|
|
120
|
+
useEffect(() => {
|
|
121
|
+
let isMounted = true;
|
|
122
|
+
const unregister = mergeRegister(
|
|
123
|
+
editor.registerUpdateListener(({ editorState }) => {
|
|
124
|
+
if (isMounted) {
|
|
125
|
+
setSelection(editorState.read(() => $getSelection()));
|
|
126
|
+
}
|
|
127
|
+
}),
|
|
128
|
+
editor.registerCommand(
|
|
129
|
+
SELECTION_CHANGE_COMMAND,
|
|
130
|
+
(_, activeEditor) => {
|
|
131
|
+
activeEditorRef.current = activeEditor;
|
|
132
|
+
return false;
|
|
133
|
+
},
|
|
134
|
+
COMMAND_PRIORITY_LOW
|
|
135
|
+
),
|
|
136
|
+
editor.registerCommand(
|
|
137
|
+
CLICK_COMMAND,
|
|
138
|
+
(payload) => {
|
|
139
|
+
const event = payload;
|
|
140
|
+
if (event.target === imageRef.current) {
|
|
141
|
+
if (event.shiftKey) {
|
|
142
|
+
setSelected(!isSelected);
|
|
143
|
+
} else {
|
|
144
|
+
clearSelection();
|
|
145
|
+
setSelected(true);
|
|
146
|
+
}
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
return false;
|
|
150
|
+
},
|
|
151
|
+
COMMAND_PRIORITY_LOW
|
|
152
|
+
),
|
|
153
|
+
editor.registerCommand(
|
|
154
|
+
DRAGSTART_COMMAND,
|
|
155
|
+
(event) => {
|
|
156
|
+
if (event.target === imageRef.current) {
|
|
157
|
+
event.preventDefault();
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
return false;
|
|
161
|
+
},
|
|
162
|
+
COMMAND_PRIORITY_LOW
|
|
163
|
+
),
|
|
164
|
+
editor.registerCommand(KEY_DELETE_COMMAND, onDelete, COMMAND_PRIORITY_LOW),
|
|
165
|
+
editor.registerCommand(KEY_BACKSPACE_COMMAND, onDelete, COMMAND_PRIORITY_LOW),
|
|
166
|
+
editor.registerCommand(KEY_ENTER_COMMAND, onEnter, COMMAND_PRIORITY_LOW),
|
|
167
|
+
editor.registerCommand(KEY_ESCAPE_COMMAND, onEscape, COMMAND_PRIORITY_LOW)
|
|
168
|
+
);
|
|
169
|
+
return () => {
|
|
170
|
+
isMounted = false;
|
|
171
|
+
unregister();
|
|
172
|
+
};
|
|
173
|
+
}, [clearSelection, editor, isSelected, nodeKey, onDelete, onEnter, onEscape, setSelected]);
|
|
174
|
+
const draggable = $isNodeSelection(selection);
|
|
175
|
+
const isFocused = isSelected;
|
|
176
|
+
return /* @__PURE__ */ React__default.createElement(Suspense, { fallback: null }, /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("div", { draggable, className: styles.imageWrapper }, /* @__PURE__ */ React__default.createElement(
|
|
177
|
+
LazyImage,
|
|
178
|
+
{
|
|
179
|
+
className: classNames({
|
|
180
|
+
[styles.focusedImage]: isFocused
|
|
181
|
+
}),
|
|
182
|
+
src,
|
|
183
|
+
title: title || "",
|
|
184
|
+
imageRef
|
|
185
|
+
}
|
|
186
|
+
))));
|
|
187
|
+
}
|
|
188
|
+
export {
|
|
189
|
+
ImageEditor
|
|
190
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=require("@lexical/react/LexicalComposerContext"),r=require("@lexical/react/LexicalContentEditable"),l=require("@lexical/react/LexicalErrorBoundary"),a=require("@lexical/react/LexicalNestedComposer"),i=require("@lexical/react/LexicalRichTextPlugin"),n=require("@radix-ui/react-popover"),c=require("react-hook-form"),u=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=require("@lexical/react/LexicalComposerContext"),r=require("@lexical/react/LexicalContentEditable"),l=require("@lexical/react/LexicalErrorBoundary"),a=require("@lexical/react/LexicalNestedComposer"),i=require("@lexical/react/LexicalRichTextPlugin"),n=require("@radix-ui/react-popover"),c=require("react-hook-form"),u=require("./index-c5c6df38.cjs");function o(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const r in e)if("default"!==r){const l=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,l.get?l:{enumerable:!0,get:()=>e[r]})}return t.default=e,Object.freeze(t)}require("@lexical/react/LexicalComposer"),require("@lexical/react/LexicalHorizontalRulePlugin"),require("@lexical/react/LexicalLinkPlugin"),require("@lexical/react/LexicalListPlugin"),require("@lexical/react/LexicalTabIndentationPlugin"),require("classnames"),require("lexical"),require("@lexical/code"),require("@lexical/link"),require("@lexical/list"),require("@lexical/react/LexicalHorizontalRuleNode"),require("@lexical/rich-text"),require("mdast-util-directive"),require("mdast-util-from-markdown"),require("mdast-util-frontmatter"),require("mdast-util-gfm-table"),require("mdast-util-mdx"),require("micromark-extension-directive"),require("micromark-extension-frontmatter"),require("micromark-extension-gfm-table"),require("micromark-extension-mdxjs"),require("@lexical/utils"),require("@lexical/selection"),require("@lexical/react/LexicalHistoryPlugin"),require("mdast-util-to-markdown"),require("@radix-ui/react-tooltip"),require("downshift"),require("@lexical/markdown"),require("@lexical/react/LexicalMarkdownShortcutPlugin"),require("@codemirror/lang-markdown"),require("@codesandbox/sandpack-react"),require("react-diff-view"),require("unidiff"),require("@radix-ui/react-toolbar"),require("@radix-ui/react-select"),require("@radix-ui/react-dialog");const m=o(e),s=o(n),d=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,fill:"currentColor",viewBox:"0 0 24 24",...e},m.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},m.createElement("path",{d:"M0 0h24v24H0z"})),m.createElement("g",{mask:"url(#a)"},m.createElement("path",{d:"m9.25 22-.4-3.2a3.79 3.79 0 0 1-.613-.3 8.266 8.266 0 0 1-.562-.375L4.7 19.375l-2.75-4.75 2.575-1.95a2.387 2.387 0 0 1-.025-.338v-.675c0-.108.008-.22.025-.337L1.95 9.375l2.75-4.75 2.975 1.25c.183-.133.375-.258.575-.375.2-.117.4-.217.6-.3l.4-3.2h5.5l.4 3.2c.217.083.42.183.612.3.192.117.38.242.563.375l2.975-1.25 2.75 4.75-2.575 1.95c.017.117.025.23.025.338v.675c0 .108-.017.22-.05.337l2.575 1.95-2.75 4.75-2.95-1.25a6.842 6.842 0 0 1-.575.375c-.2.117-.4.217-.6.3l-.4 3.2h-5.5Zm2.8-6.5c.967 0 1.792-.342 2.475-1.025A3.372 3.372 0 0 0 15.55 12c0-.967-.342-1.792-1.025-2.475A3.373 3.373 0 0 0 12.05 8.5c-.983 0-1.813.342-2.488 1.025A3.393 3.393 0 0 0 8.55 12c0 .967.337 1.792 1.012 2.475.676.683 1.505 1.025 2.488 1.025Zm0-2c-.417 0-.77-.146-1.063-.438A1.446 1.446 0 0 1 10.55 12c0-.417.146-.77.438-1.063a1.446 1.446 0 0 1 1.062-.437c.417 0 .77.146 1.063.438.291.291.437.645.437 1.062 0 .417-.146.77-.438 1.063a1.447 1.447 0 0 1-1.062.437ZM11 20h1.975l.35-2.65a5.61 5.61 0 0 0 1.438-.588c.441-.258.845-.57 1.212-.937l2.475 1.025.975-1.7-2.15-1.625c.083-.233.142-.48.175-.738a6.153 6.153 0 0 0 0-1.575 3.535 3.535 0 0 0-.175-.737l2.15-1.625-.975-1.7-2.475 1.05a5.556 5.556 0 0 0-1.213-.962 5.607 5.607 0 0 0-1.437-.588L13 4h-1.975l-.35 2.65c-.517.133-.996.33-1.438.587a6.015 6.015 0 0 0-1.212.938L5.55 7.15l-.975 1.7 2.15 1.6c-.083.25-.142.5-.175.75a6.122 6.122 0 0 0 0 1.575c.033.25.092.5.175.75l-2.15 1.625.975 1.7 2.475-1.05c.367.383.77.704 1.212.962.442.259.921.455 1.438.588L11 20Z"}))),x=e.forwardRef(((t,r)=>e.createElement(s.Content,{...t,className:"",ref:r}))),E=e.forwardRef(((t,r)=>e.createElement(s.Trigger,{...t,className:"",ref:r})));const p=({attributes:t,componentName:r,onSubmit:l})=>{const[a,i]=e.useState(!1),n=e.useCallback((e=>{l(e),i(!1)}),[l]);return e.createElement(s.Root,{open:a,onOpenChange:e=>i(e)},e.createElement(E,null,e.createElement(d,null)),e.createElement(s.Portal,null,e.createElement(x,null,e.createElement(q,{attributes:t,componentName:r,onSubmit:n}))))},q=({attributes:r,componentName:l,onSubmit:a})=>{const[i]=u.useEmitterValues("jsxComponentDescriptors"),n=i.find((e=>e.name===l)),[o]=t.useLexicalComposerContext(),{register:m,handleSubmit:s}=c.useForm({defaultValues:r.reduce(((e,t)=>(e[t.name]=t.value,e)),{})});return e.createElement("form",{onSubmit:s((e=>{o.update((()=>{a(e)}))}))},e.createElement("table",null,e.createElement("thead",null,e.createElement("tr",null,e.createElement("th",null,"Attribute"),e.createElement("th",null,"Value"))),e.createElement("tbody",null,n.props.map((t=>e.createElement("tr",{key:t.name},e.createElement("td",null," ",t.name," "),e.createElement("td",null,e.createElement("input",{...m(t.name)}))))))),e.createElement("button",{type:"submit"},"Submit"))};exports.JsxEditor=function({kind:t,attributes:n,componentName:c,editor:u,onSubmit:o,theme:m}){return"flow"===t?e.createElement("div",null,e.createElement("div",null,c),e.createElement(a.LexicalNestedComposer,{initialEditor:u,initialTheme:m},e.createElement(i.RichTextPlugin,{contentEditable:e.createElement(r.ContentEditable,null),placeholder:e.createElement("div",null,"Type here.."),ErrorBoundary:l}))):e.createElement("span",null,e.createElement("span",null,e.createElement(p,{attributes:n,componentName:c,onSubmit:o})),e.createElement("span",null,c,e.createElement(a.LexicalNestedComposer,{initialEditor:u,initialTheme:m},e.createElement(i.RichTextPlugin,{contentEditable:e.createElement(r.ContentEditable,{style:{padding:5,border:"1px solid red"}}),placeholder:e.createElement("div",null,"Type here.."),ErrorBoundary:l}))))};
|
|
@@ -7,7 +7,7 @@ import { LexicalNestedComposer } from "@lexical/react/LexicalNestedComposer";
|
|
|
7
7
|
import { RichTextPlugin } from "@lexical/react/LexicalRichTextPlugin";
|
|
8
8
|
import * as RadixPopover from "@radix-ui/react-popover";
|
|
9
9
|
import { useForm } from "react-hook-form";
|
|
10
|
-
import { u as useEmitterValues } from "./index-
|
|
10
|
+
import { u as useEmitterValues } from "./index-a1fa6c7f.js";
|
|
11
11
|
import "@lexical/react/LexicalComposer";
|
|
12
12
|
import "@lexical/react/LexicalHorizontalRulePlugin";
|
|
13
13
|
import "@lexical/react/LexicalLinkPlugin";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@codesandbox/sandpack-react"),r=require("@lexical/react/LexicalComposerContext"),i=require("react"),a=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@codesandbox/sandpack-react"),r=require("@lexical/react/LexicalComposerContext"),i=require("react"),a=require("./index-c5c6df38.cjs"),t=require("./useCodeMirrorRef-67194f45.cjs");require("@lexical/react/LexicalComposer"),require("@lexical/react/LexicalContentEditable"),require("@lexical/react/LexicalErrorBoundary"),require("@lexical/react/LexicalHorizontalRulePlugin"),require("@lexical/react/LexicalLinkPlugin"),require("@lexical/react/LexicalListPlugin"),require("@lexical/react/LexicalRichTextPlugin"),require("@lexical/react/LexicalTabIndentationPlugin"),require("classnames"),require("lexical"),require("@lexical/code"),require("@lexical/link"),require("@lexical/list"),require("@lexical/react/LexicalHorizontalRuleNode"),require("@lexical/rich-text"),require("mdast-util-directive"),require("mdast-util-from-markdown"),require("mdast-util-frontmatter"),require("mdast-util-gfm-table"),require("mdast-util-mdx"),require("micromark-extension-directive"),require("micromark-extension-frontmatter"),require("micromark-extension-gfm-table"),require("micromark-extension-mdxjs"),require("@lexical/utils"),require("@lexical/selection"),require("@lexical/react/LexicalHistoryPlugin"),require("mdast-util-to-markdown"),require("@radix-ui/react-popover"),require("@radix-ui/react-tooltip"),require("downshift"),require("@lexical/markdown"),require("@lexical/react/LexicalMarkdownShortcutPlugin"),require("@codemirror/lang-markdown"),require("react-diff-view"),require("unidiff"),require("@radix-ui/react-toolbar"),require("@radix-ui/react-select"),require("@radix-ui/react-dialog");const l=({onChange:r,snippetFileName:i})=>{const{sandpack:a}=e.useSandpack();return r(a.files[i].code),null};exports.SandpackEditor=({nodeKey:c,code:n,meta:u,onChange:o,focusEmitter:s})=>{const[d]=r.useLexicalComposerContext(),[m]=a.useEmitterValues("sandpackConfig"),x=t.useCodeMirrorRef(c,"sandpack","jsx"),q=a.usePublisher("activeEditorType");i.useEffect((()=>{s.subscribe((()=>{var e,r;null==(r=null==(e=null==x?void 0:x.current)?void 0:e.getCodemirror())||r.focus(),q({type:"sandpack",nodeKey:c})}))}),[s,x,q,c]);const p=i.useCallback((e=>{d.update((()=>{o(e)}))}),[o,d]),f=function(e,r){return r.presets.find((r=>r.meta===e))||r.presets.find((e=>e.name===r.defaultPreset))}(u,m);if(!f)throw new Error(`No sandpack preset found for meta: ${u}`);return i.createElement(e.SandpackProvider,{template:f.sandpackTemplate,theme:f.sandpackTheme,files:{[f.snippetFileName]:n,...Object.entries(f.files||{}).reduce(((e,[r,i])=>({...e,[r]:{code:i,readOnly:!0}})),{})},customSetup:{dependencies:f.dependencies}},i.createElement(e.SandpackLayout,null,i.createElement(e.SandpackCodeEditor,{showLineNumbers:!0,showInlineErrors:!0,ref:x}),i.createElement(e.SandpackPreview,null)),i.createElement(l,{onChange:p,snippetFileName:f.snippetFileName}))};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SandpackProvider, SandpackLayout, SandpackCodeEditor, SandpackPreview, useSandpack } from "@codesandbox/sandpack-react";
|
|
2
2
|
import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
|
|
3
3
|
import React__default from "react";
|
|
4
|
-
import { u as useEmitterValues, a as usePublisher } from "./index-
|
|
5
|
-
import { u as useCodeMirrorRef } from "./useCodeMirrorRef-
|
|
4
|
+
import { u as useEmitterValues, a as usePublisher } from "./index-a1fa6c7f.js";
|
|
5
|
+
import { u as useCodeMirrorRef } from "./useCodeMirrorRef-71e54daf.js";
|
|
6
6
|
import "@lexical/react/LexicalComposer";
|
|
7
7
|
import "@lexical/react/LexicalContentEditable";
|
|
8
8
|
import "@lexical/react/LexicalErrorBoundary";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@lexical/react/LexicalContentEditable"),t=require("@lexical/react/LexicalErrorBoundary"),l=require("@lexical/react/LexicalNestedComposer"),r=require("@lexical/react/LexicalRichTextPlugin"),a=require("lexical"),n=require("react"),i=require("./index-f3a38e7a.cjs"),o=require("mdast-util-to-hast"),c=require("hast-util-raw"),s=require("hast-util-sanitize"),m=require("hast-util-to-html"),u=require("@radix-ui/react-popover"),h=require("classnames"),d=require("@radix-ui/react-toolbar");function g(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const l in e)if("default"!==l){const r=Object.getOwnPropertyDescriptor(e,l);Object.defineProperty(t,l,r.get?r:{enumerable:!0,get:()=>e[l]})}return t.default=e,Object.freeze(t)}require("@lexical/react/LexicalComposer"),require("@lexical/react/LexicalHorizontalRulePlugin"),require("@lexical/react/LexicalLinkPlugin"),require("@lexical/react/LexicalListPlugin"),require("@lexical/react/LexicalTabIndentationPlugin"),require("@lexical/code"),require("@lexical/link"),require("@lexical/list"),require("@lexical/react/LexicalHorizontalRuleNode"),require("@lexical/rich-text"),require("mdast-util-directive"),require("mdast-util-from-markdown"),require("mdast-util-frontmatter"),require("mdast-util-gfm-table"),require("mdast-util-mdx"),require("micromark-extension-directive"),require("micromark-extension-frontmatter"),require("micromark-extension-gfm-table"),require("micromark-extension-mdxjs"),require("@lexical/utils"),require("@lexical/react/LexicalComposerContext"),require("@lexical/selection"),require("@lexical/react/LexicalHistoryPlugin"),require("mdast-util-to-markdown"),require("@radix-ui/react-tooltip"),require("downshift"),require("@lexical/markdown"),require("@lexical/react/LexicalMarkdownShortcutPlugin"),require("@codemirror/lang-markdown"),require("@codesandbox/sandpack-react"),require("react-diff-view"),require("unidiff"),require("@radix-ui/react-select"),require("@radix-ui/react-dialog");const E=g(n),v=g(u),p=g(d),x=e=>{const t={type:"root",children:e.mdastChildren},l=c.raw(o.toHast(t,{allowDangerousHtml:!0})),r=s.sanitize(l),a=m.toHtml(r);return n.createElement("span",{dangerouslySetInnerHTML:{__html:a||" "}})},w=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,fill:"currentColor",viewBox:"0 0 24 24",...e},E.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h24v24H0z"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M6 14c-.55 0-1.02-.196-1.412-.588A1.926 1.926 0 0 1 4 12c0-.55.196-1.02.588-1.412A1.926 1.926 0 0 1 6 10c.55 0 1.02.196 1.412.588.392.391.588.862.588 1.412 0 .55-.196 1.02-.588 1.412A1.926 1.926 0 0 1 6 14Zm6 0c-.55 0-1.02-.196-1.412-.588A1.926 1.926 0 0 1 10 12c0-.55.196-1.02.588-1.412A1.926 1.926 0 0 1 12 10c.55 0 1.02.196 1.412.588.392.391.588.862.588 1.412 0 .55-.196 1.02-.588 1.412A1.926 1.926 0 0 1 12 14Zm6 0c-.55 0-1.02-.196-1.413-.588A1.926 1.926 0 0 1 16 12c0-.55.196-1.02.587-1.412A1.926 1.926 0 0 1 18 10c.55 0 1.02.196 1.413.588.391.391.587.862.587 1.412 0 .55-.196 1.02-.587 1.412A1.926 1.926 0 0 1 18 14Z"}))),C=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M3 17v-1.5h14V17H3Zm0-3.125v-1.5h10v1.5H3Zm0-3.125v-1.5h14v1.5H3Zm0-3.125v-1.5h10v1.5H3ZM3 4.5V3h14v1.5H3Z"}))),k=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M3 17v-1.5h14V17H3Zm3-3.125v-1.5h8v1.5H6ZM3 10.75v-1.5h14v1.5H3Zm3-3.125v-1.5h8v1.5H6ZM3 4.5V3h14v1.5H3Z"}))),f=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M3 17v-1.5h14V17H3Zm4-3.125v-1.5h10v1.5H7ZM3 10.75v-1.5h14v1.5H3Zm4-3.125v-1.5h10v1.5H7ZM3 4.5V3h14v1.5H3Z"}))),H=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 20h20v20H0z",transform:"rotate(-90 0 20)"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M15.75 4.5H13v2.75h-1.5V4.5H8.75V3h2.75V.25H13V3h2.75v1.5ZM13 17H5V3h2.25v1.5H6.5v11h5V8.75H13V17Z"}))),y=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z",transform:"matrix(0 -1 -1 0 20 20)"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M4.25 4.5H7v2.75h1.5V4.5h2.75V3H8.5V.25H7V3H4.25v1.5ZM7 17h8V3h-2.25v1.5h.75v11h-5V8.75H7V17Z"}))),b=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M6.5 17a1.45 1.45 0 0 1-1.06-.44A1.445 1.445 0 0 1 5 15.5v-10H4V4h4V3h4v1h4v1.5h-1v9.991c0 .423-.147.78-.44 1.072A1.45 1.45 0 0 1 13.5 17h-7Zm7-11.5h-7v10h7v-10ZM8 14h1.5V7H8v7Zm2.5 0H12V7h-1.5v7Z"}))),T=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z",transform:"matrix(-1 0 0 1 20 0)"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M4.5 16.75V14h2.75v-1.5H4.5V9.75H3v2.75H.25V14H3v2.75h1.5ZM17 14V6H3v2.25h1.5V7.5h11v5H8.75V14H17Z"}))),M=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M20 20h20v20H20z",transform:"rotate(180 20 20)"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M4.5 3.25V6h2.75v1.5H4.5v2.75H3V7.5H.25V6H3V3.25h1.5ZM17 6v8H3v-2.25h1.5v.75h11v-5H8.75V6H17Z"}))),V=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M20 20h20v20H20z",transform:"rotate(180 20 20)"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M10.5 3.25V6h2.75v1.5H10.5v2.75H9V7.5H6.25V6H9V3.25h1.5ZM17 6v8H3V6h2.5v1.5h-1v5h11v-5H14V6h3Z"}))),q=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z",transform:"matrix(0 -1 -1 0 20 20)"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M3.25 10.5H6v2.75h1.5V10.5h2.75V9H7.5V6.25H6V9H3.25v1.5ZM6 17h8V3H6v2.5h1.5v-1h5v11h-5V14H6v3Z"}))),A={center:i.styles.centeredCell,left:i.styles.leftAlignedCell,right:i.styles.rightAlignedCell},O=({align:e,...t})=>{const[l,r]=t.activeCellTuple,a=l&&l[0]===t.colIndex&&l[1]===t.rowIndex,i=A[e||"left"];return n.createElement("td",{className:i,"data-active":a,onClick:()=>{r([t.colIndex,t.rowIndex])}},a?n.createElement(R,{...t}):n.createElement(x,{mdastChildren:t.contents}))},R=({activeCellTuple:o,parentEditor:c,lexicalTable:s,contents:m,colIndex:u,rowIndex:h})=>{const[d,g,E,v]=i.useEmitterValues("markdownParseOptions","lexicalConvertOptions","jsxComponentDescriptors","lexicalNodes"),[p]=n.useState((()=>{let e=!1;const t=a.createEditor({nodes:v,theme:i.theme});function l(l){e||(e=!0,t.getEditorState().read((()=>{const e=i.exportLexicalTreeToMdast({root:a.$getRoot(),jsxComponentDescriptors:E,...g});c.update((()=>{s.updateCellContents(u,h,e.children[0].children)}))})),o[1](l))}return t.registerCommand(a.KEY_TAB_COMMAND,(e=>{e.preventDefault();return l(e.shiftKey?[u-1,h]:[u+1,h]),!0}),a.COMMAND_PRIORITY_CRITICAL),t.registerCommand(a.KEY_ENTER_COMMAND,(e=>{null==e||e.preventDefault();return l((null==e?void 0:e.shiftKey)?[u,h-1]:[u,h+1]),!0}),a.COMMAND_PRIORITY_CRITICAL),t.registerCommand(a.BLUR_COMMAND,(e=>{const t=e.relatedTarget;return void 0===(null==t?void 0:t.dataset.editorDialog)&&void 0===(null==t?void 0:t.dataset.toolbarItem)&&(l(null),!0)}),a.COMMAND_PRIORITY_CRITICAL),t.registerRootListener((e=>{e&&t.focus()})),t.update((()=>{i.importMdastTreeToLexical({root:a.$getRoot(),mdastRoot:{type:"root",children:[{type:"paragraph",children:m}]},visitors:d.visitors})})),t}));return n.createElement(l.LexicalNestedComposer,{initialEditor:p},n.createElement(r.RichTextPlugin,{contentEditable:n.createElement(e.ContentEditable,{autoFocus:!0}),placeholder:n.createElement("div",null),ErrorBoundary:t}),n.createElement(i.SharedHistoryPlugin,null))},N=({parentEditor:e,highlightedCoordinates:t,align:l,lexicalTable:r,colIndex:a,setActiveCellWithBoundaries:o})=>{const[c]=i.useEmitterValues("editorRootElementRef"),s=n.useCallback((t=>{e.update((()=>{r.insertColumnAt(t)})),o([t,0])}),[e,r,o]),m=n.useCallback((t=>{e.update((()=>{r.deleteColumnAt(t)}))}),[e,r]),u=n.useCallback(((t,l)=>{e.update((()=>{r.setColumnAlign(t,l)}))}),[e,r]);return n.createElement(v.Root,null,n.createElement(v.PopoverTrigger,{className:i.styles.tableColumnEditorTrigger,"data-active":t[0]===a+1,title:"Column menu"},n.createElement(w,null)),n.createElement(v.Portal,{container:null==c?void 0:c.current},n.createElement(v.PopoverContent,{className:h(i.styles.tableColumnEditorPopoverContent),onOpenAutoFocus:e=>e.preventDefault(),sideOffset:5,side:"top"},n.createElement(p.Root,{className:i.styles.tableColumnEditorToolbar},n.createElement(p.ToggleGroup,{className:i.styles.toggleGroupRoot,onValueChange:e=>{u(a,e)},value:l||"left",type:"single","aria-label":"Text alignment"},n.createElement(p.ToggleItem,{value:"left",title:"Align left"},n.createElement(C,null)),n.createElement(p.ToggleItem,{value:"center",title:"Align center"},n.createElement(k,null)),n.createElement(p.ToggleItem,{value:"right",title:"Align right"},n.createElement(f,null))),n.createElement(p.Separator,null),n.createElement(p.Button,{onClick:s.bind(null,a),title:"Insert a column to the left of this one"},n.createElement(H,null)),n.createElement(p.Button,{onClick:s.bind(null,a+1),title:"Insert a column to the right of this one"},n.createElement(y,null)),n.createElement(p.Button,{onClick:m.bind(null,a),title:"Delete this column"},n.createElement(b,null))))))},I=({parentEditor:e,highlightedCoordinates:t,lexicalTable:l,rowIndex:r,setActiveCellWithBoundaries:a})=>{const[o]=i.useEmitterValues("editorRootElementRef"),c=n.useCallback((t=>{e.update((()=>{l.insertRowAt(t)})),a([0,t])}),[e,l,a]),s=n.useCallback((t=>{e.update((()=>{l.deleteRowAt(t)}))}),[e,l]);return n.createElement(v.Root,null,n.createElement(v.PopoverTrigger,{className:i.styles.tableColumnEditorTrigger,"data-active":t[1]===r},n.createElement(w,null)),n.createElement(v.Portal,{container:null==o?void 0:o.current},n.createElement(v.PopoverContent,{className:h(i.styles.tableColumnEditorPopoverContent),onOpenAutoFocus:e=>e.preventDefault(),sideOffset:5,side:"bottom"},n.createElement(p.Root,{className:i.styles.tableColumnEditorToolbar},n.createElement(p.Button,{onClick:c.bind(null,r),title:"Insert a row above this one"},n.createElement(T,null)),n.createElement(p.Button,{onClick:c.bind(null,r+1),title:"Insert a row below this one"},n.createElement(M,null)),n.createElement(p.Button,{onClick:s.bind(null,r),title:"Delete this row"},n.createElement(b,null))))))};exports.TableEditor=({mdastNode:e,parentEditor:t,lexicalTable:l})=>{const[r,o]=n.useState(null),c=n.useCallback((e=>{const r=l.getColCount();if(null===e)return void o(null);let[n,i]=e;return n>r-1&&(n=0,i++),n<0&&(n=r-1,i-=1),i>l.getRowCount()-1?(o(null),void t.update((()=>{if(l.getLatest().getNextSibling())l.getLatest().selectNext();else{const e=a.$createParagraphNode();l.insertAfter(e),e.select()}}))):i<0?(o(null),void t.update((()=>{l.getLatest().selectPrevious()}))):void o([n,i])}),[l,t]);n.useEffect((()=>{l.focusEmitter.subscribe(c)}),[l,c]);const s=n.useCallback((()=>{t.update((()=>{l.addRowToBottom(),o([0,l.getRowCount()])}))}),[t,l]),m=n.useCallback((()=>{t.update((()=>{l.addColumnToRight(),o([l.getColCount(),0])}))}),[t,l]),[u,h]=n.useState([-1,-1]),d=n.useCallback((e=>{let t=e.target;for(;t&&!["TH","TD"].includes(t.tagName);){if(t===e.currentTarget)return;t=t.parentElement}if(null===t)return;const l=t.parentElement,r="TFOOT"===l.parentElement.tagName?-1:Array.from(l.children).indexOf(t),a="TH"===t.tagName?-1:Array.from(l.parentElement.children).indexOf(l);h([r,a])}),[]);return n.createElement("table",{className:i.styles.tableEditor,onMouseOver:d,onMouseLeave:()=>h([-1,-1])},n.createElement("colgroup",null,n.createElement("col",null),Array.from({length:e.children[0].children.length},((t,l)=>{const r=(e.align||[])[l]||"left",a=A[r];return n.createElement("col",{key:l,className:a})})),n.createElement("col",null)),n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",{className:i.styles.tableToolsColumn,"data-tool-cell":!0},n.createElement("button",{className:i.styles.iconButton,title:"Delete table",onClick:()=>{t.update((()=>{l.selectNext(),l.remove()}))}},n.createElement(b,null))),Array.from({length:e.children[0].children.length},((r,a)=>n.createElement("th",{key:a,"data-tool-cell":!0},n.createElement(N,{setActiveCellWithBoundaries:c,parentEditor:t,colIndex:a,highlightedCoordinates:u,lexicalTable:l,align:(e.align||[])[a]})))),n.createElement("th",{className:i.styles.tableToolsColumn}))),n.createElement("tbody",null,e.children.map(((a,o)=>n.createElement("tr",{key:o},n.createElement("td",{className:i.styles.toolCell,"data-tool-cell":!0},n.createElement(I,{setActiveCellWithBoundaries:c,parentEditor:t,rowIndex:o,highlightedCoordinates:u,lexicalTable:l})),a.children.map(((a,i)=>{var s;return n.createElement(O,{align:null==(s=e.align)?void 0:s[i],key:i,contents:a.children,rowIndex:o,colIndex:i,lexicalTable:l,parentEditor:t,activeCellTuple:[r,c]})})),0===o&&n.createElement("th",{rowSpan:l.getRowCount(),"data-tool-cell":!0},n.createElement("button",{className:i.styles.addColumnButton,onClick:m},n.createElement(q,null))))))),n.createElement("tfoot",null,n.createElement("tr",null,n.createElement("th",null),n.createElement("th",{colSpan:l.getColCount()},n.createElement("button",{className:i.styles.addRowButton,onClick:s},n.createElement(V,null))),n.createElement("th",null))))};
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@lexical/react/LexicalContentEditable"),t=require("@lexical/react/LexicalErrorBoundary"),l=require("@lexical/react/LexicalNestedComposer"),r=require("@lexical/react/LexicalRichTextPlugin"),a=require("lexical"),n=require("react"),i=require("./index-c5c6df38.cjs"),o=require("mdast-util-to-hast"),c=require("hast-util-raw"),s=require("hast-util-sanitize"),m=require("hast-util-to-html"),u=require("@radix-ui/react-popover"),h=require("classnames"),d=require("@radix-ui/react-toolbar");function g(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const l in e)if("default"!==l){const r=Object.getOwnPropertyDescriptor(e,l);Object.defineProperty(t,l,r.get?r:{enumerable:!0,get:()=>e[l]})}return t.default=e,Object.freeze(t)}require("@lexical/react/LexicalComposer"),require("@lexical/react/LexicalHorizontalRulePlugin"),require("@lexical/react/LexicalLinkPlugin"),require("@lexical/react/LexicalListPlugin"),require("@lexical/react/LexicalTabIndentationPlugin"),require("@lexical/code"),require("@lexical/link"),require("@lexical/list"),require("@lexical/react/LexicalHorizontalRuleNode"),require("@lexical/rich-text"),require("mdast-util-directive"),require("mdast-util-from-markdown"),require("mdast-util-frontmatter"),require("mdast-util-gfm-table"),require("mdast-util-mdx"),require("micromark-extension-directive"),require("micromark-extension-frontmatter"),require("micromark-extension-gfm-table"),require("micromark-extension-mdxjs"),require("@lexical/utils"),require("@lexical/react/LexicalComposerContext"),require("@lexical/selection"),require("@lexical/react/LexicalHistoryPlugin"),require("mdast-util-to-markdown"),require("@radix-ui/react-tooltip"),require("downshift"),require("@lexical/markdown"),require("@lexical/react/LexicalMarkdownShortcutPlugin"),require("@codemirror/lang-markdown"),require("@codesandbox/sandpack-react"),require("react-diff-view"),require("unidiff"),require("@radix-ui/react-select"),require("@radix-ui/react-dialog");const E=g(n),v=g(u),p=g(d),x=e=>{const t={type:"root",children:e.mdastChildren},l=c.raw(o.toHast(t,{allowDangerousHtml:!0})),r=s.sanitize(l),a=m.toHtml(r);return n.createElement("span",{dangerouslySetInnerHTML:{__html:a||" "}})},w=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,fill:"currentColor",viewBox:"0 0 24 24",...e},E.createElement("mask",{id:"a",width:24,height:24,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h24v24H0z"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M6 14c-.55 0-1.02-.196-1.412-.588A1.926 1.926 0 0 1 4 12c0-.55.196-1.02.588-1.412A1.926 1.926 0 0 1 6 10c.55 0 1.02.196 1.412.588.392.391.588.862.588 1.412 0 .55-.196 1.02-.588 1.412A1.926 1.926 0 0 1 6 14Zm6 0c-.55 0-1.02-.196-1.412-.588A1.926 1.926 0 0 1 10 12c0-.55.196-1.02.588-1.412A1.926 1.926 0 0 1 12 10c.55 0 1.02.196 1.412.588.392.391.588.862.588 1.412 0 .55-.196 1.02-.588 1.412A1.926 1.926 0 0 1 12 14Zm6 0c-.55 0-1.02-.196-1.413-.588A1.926 1.926 0 0 1 16 12c0-.55.196-1.02.587-1.412A1.926 1.926 0 0 1 18 10c.55 0 1.02.196 1.413.588.391.391.587.862.587 1.412 0 .55-.196 1.02-.587 1.412A1.926 1.926 0 0 1 18 14Z"}))),C=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M3 17v-1.5h14V17H3Zm0-3.125v-1.5h10v1.5H3Zm0-3.125v-1.5h14v1.5H3Zm0-3.125v-1.5h10v1.5H3ZM3 4.5V3h14v1.5H3Z"}))),k=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M3 17v-1.5h14V17H3Zm3-3.125v-1.5h8v1.5H6ZM3 10.75v-1.5h14v1.5H3Zm3-3.125v-1.5h8v1.5H6ZM3 4.5V3h14v1.5H3Z"}))),f=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M3 17v-1.5h14V17H3Zm4-3.125v-1.5h10v1.5H7ZM3 10.75v-1.5h14v1.5H3Zm4-3.125v-1.5h10v1.5H7ZM3 4.5V3h14v1.5H3Z"}))),H=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 20h20v20H0z",transform:"rotate(-90 0 20)"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M15.75 4.5H13v2.75h-1.5V4.5H8.75V3h2.75V.25H13V3h2.75v1.5ZM13 17H5V3h2.25v1.5H6.5v11h5V8.75H13V17Z"}))),y=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z",transform:"matrix(0 -1 -1 0 20 20)"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M4.25 4.5H7v2.75h1.5V4.5h2.75V3H8.5V.25H7V3H4.25v1.5ZM7 17h8V3h-2.25v1.5h.75v11h-5V8.75H7V17Z"}))),b=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M6.5 17a1.45 1.45 0 0 1-1.06-.44A1.445 1.445 0 0 1 5 15.5v-10H4V4h4V3h4v1h4v1.5h-1v9.991c0 .423-.147.78-.44 1.072A1.45 1.45 0 0 1 13.5 17h-7Zm7-11.5h-7v10h7v-10ZM8 14h1.5V7H8v7Zm2.5 0H12V7h-1.5v7Z"}))),T=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z",transform:"matrix(-1 0 0 1 20 0)"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M4.5 16.75V14h2.75v-1.5H4.5V9.75H3v2.75H.25V14H3v2.75h1.5ZM17 14V6H3v2.25h1.5V7.5h11v5H8.75V14H17Z"}))),M=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M20 20h20v20H20z",transform:"rotate(180 20 20)"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M4.5 3.25V6h2.75v1.5H4.5v2.75H3V7.5H.25V6H3V3.25h1.5ZM17 6v8H3v-2.25h1.5v.75h11v-5H8.75V6H17Z"}))),V=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M20 20h20v20H20z",transform:"rotate(180 20 20)"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M10.5 3.25V6h2.75v1.5H10.5v2.75H9V7.5H6.25V6H9V3.25h1.5ZM17 6v8H3V6h2.5v1.5h-1v5h11v-5H14V6h3Z"}))),q=e=>E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"currentColor",viewBox:"0 0 20 20",...e},E.createElement("mask",{id:"a",width:20,height:20,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},E.createElement("path",{d:"M0 0h20v20H0z",transform:"matrix(0 -1 -1 0 20 20)"})),E.createElement("g",{mask:"url(#a)"},E.createElement("path",{d:"M3.25 10.5H6v2.75h1.5V10.5h2.75V9H7.5V6.25H6V9H3.25v1.5ZM6 17h8V3H6v2.5h1.5v-1h5v11h-5V14H6v3Z"}))),A={center:i.styles.centeredCell,left:i.styles.leftAlignedCell,right:i.styles.rightAlignedCell},O=({align:e,...t})=>{const[l,r]=t.activeCellTuple,a=l&&l[0]===t.colIndex&&l[1]===t.rowIndex,i=A[e||"left"];return n.createElement("td",{className:i,"data-active":a,onClick:()=>{r([t.colIndex,t.rowIndex])}},a?n.createElement(R,{...t}):n.createElement(x,{mdastChildren:t.contents}))},R=({activeCellTuple:o,parentEditor:c,lexicalTable:s,contents:m,colIndex:u,rowIndex:h})=>{const[d,g,E,v]=i.useEmitterValues("markdownParseOptions","lexicalConvertOptions","jsxComponentDescriptors","lexicalNodes"),[p]=n.useState((()=>{let e=!1;const t=a.createEditor({nodes:v,theme:i.theme});function l(l){e||(e=!0,t.getEditorState().read((()=>{const e=i.exportLexicalTreeToMdast({root:a.$getRoot(),jsxComponentDescriptors:E,...g});c.update((()=>{s.updateCellContents(u,h,e.children[0].children)}))})),o[1](l))}return t.registerCommand(a.KEY_TAB_COMMAND,(e=>{e.preventDefault();return l(e.shiftKey?[u-1,h]:[u+1,h]),!0}),a.COMMAND_PRIORITY_CRITICAL),t.registerCommand(a.KEY_ENTER_COMMAND,(e=>{null==e||e.preventDefault();return l((null==e?void 0:e.shiftKey)?[u,h-1]:[u,h+1]),!0}),a.COMMAND_PRIORITY_CRITICAL),t.registerCommand(a.BLUR_COMMAND,(e=>{const t=e.relatedTarget;return void 0===(null==t?void 0:t.dataset.editorDialog)&&void 0===(null==t?void 0:t.dataset.toolbarItem)&&(l(null),!0)}),a.COMMAND_PRIORITY_CRITICAL),t.registerRootListener((e=>{e&&t.focus()})),t.update((()=>{i.importMdastTreeToLexical({root:a.$getRoot(),mdastRoot:{type:"root",children:[{type:"paragraph",children:m}]},visitors:d.visitors})})),t}));return n.createElement(l.LexicalNestedComposer,{initialEditor:p},n.createElement(r.RichTextPlugin,{contentEditable:n.createElement(e.ContentEditable,{autoFocus:!0}),placeholder:n.createElement("div",null),ErrorBoundary:t}),n.createElement(i.SharedHistoryPlugin,null))},N=({parentEditor:e,highlightedCoordinates:t,align:l,lexicalTable:r,colIndex:a,setActiveCellWithBoundaries:o})=>{const[c]=i.useEmitterValues("editorRootElementRef"),s=n.useCallback((t=>{e.update((()=>{r.insertColumnAt(t)})),o([t,0])}),[e,r,o]),m=n.useCallback((t=>{e.update((()=>{r.deleteColumnAt(t)}))}),[e,r]),u=n.useCallback(((t,l)=>{e.update((()=>{r.setColumnAlign(t,l)}))}),[e,r]);return n.createElement(v.Root,null,n.createElement(v.PopoverTrigger,{className:i.styles.tableColumnEditorTrigger,"data-active":t[0]===a+1,title:"Column menu"},n.createElement(w,null)),n.createElement(v.Portal,{container:null==c?void 0:c.current},n.createElement(v.PopoverContent,{className:h(i.styles.tableColumnEditorPopoverContent),onOpenAutoFocus:e=>e.preventDefault(),sideOffset:5,side:"top"},n.createElement(p.Root,{className:i.styles.tableColumnEditorToolbar},n.createElement(p.ToggleGroup,{className:i.styles.toggleGroupRoot,onValueChange:e=>{u(a,e)},value:l||"left",type:"single","aria-label":"Text alignment"},n.createElement(p.ToggleItem,{value:"left",title:"Align left"},n.createElement(C,null)),n.createElement(p.ToggleItem,{value:"center",title:"Align center"},n.createElement(k,null)),n.createElement(p.ToggleItem,{value:"right",title:"Align right"},n.createElement(f,null))),n.createElement(p.Separator,null),n.createElement(p.Button,{onClick:s.bind(null,a),title:"Insert a column to the left of this one"},n.createElement(H,null)),n.createElement(p.Button,{onClick:s.bind(null,a+1),title:"Insert a column to the right of this one"},n.createElement(y,null)),n.createElement(p.Button,{onClick:m.bind(null,a),title:"Delete this column"},n.createElement(b,null))))))},I=({parentEditor:e,highlightedCoordinates:t,lexicalTable:l,rowIndex:r,setActiveCellWithBoundaries:a})=>{const[o]=i.useEmitterValues("editorRootElementRef"),c=n.useCallback((t=>{e.update((()=>{l.insertRowAt(t)})),a([0,t])}),[e,l,a]),s=n.useCallback((t=>{e.update((()=>{l.deleteRowAt(t)}))}),[e,l]);return n.createElement(v.Root,null,n.createElement(v.PopoverTrigger,{className:i.styles.tableColumnEditorTrigger,"data-active":t[1]===r},n.createElement(w,null)),n.createElement(v.Portal,{container:null==o?void 0:o.current},n.createElement(v.PopoverContent,{className:h(i.styles.tableColumnEditorPopoverContent),onOpenAutoFocus:e=>e.preventDefault(),sideOffset:5,side:"bottom"},n.createElement(p.Root,{className:i.styles.tableColumnEditorToolbar},n.createElement(p.Button,{onClick:c.bind(null,r),title:"Insert a row above this one"},n.createElement(T,null)),n.createElement(p.Button,{onClick:c.bind(null,r+1),title:"Insert a row below this one"},n.createElement(M,null)),n.createElement(p.Button,{onClick:s.bind(null,r),title:"Delete this row"},n.createElement(b,null))))))};exports.TableEditor=({mdastNode:e,parentEditor:t,lexicalTable:l})=>{const[r,o]=n.useState(null),c=n.useCallback((e=>{const r=l.getColCount();if(null===e)return void o(null);let[n,i]=e;return n>r-1&&(n=0,i++),n<0&&(n=r-1,i-=1),i>l.getRowCount()-1?(o(null),void t.update((()=>{if(l.getLatest().getNextSibling())l.getLatest().selectNext();else{const e=a.$createParagraphNode();l.insertAfter(e),e.select()}}))):i<0?(o(null),void t.update((()=>{l.getLatest().selectPrevious()}))):void o([n,i])}),[l,t]);n.useEffect((()=>{l.focusEmitter.subscribe(c)}),[l,c]);const s=n.useCallback((()=>{t.update((()=>{l.addRowToBottom(),o([0,l.getRowCount()])}))}),[t,l]),m=n.useCallback((()=>{t.update((()=>{l.addColumnToRight(),o([l.getColCount(),0])}))}),[t,l]),[u,h]=n.useState([-1,-1]),d=n.useCallback((e=>{let t=e.target;for(;t&&!["TH","TD"].includes(t.tagName);){if(t===e.currentTarget)return;t=t.parentElement}if(null===t)return;const l=t.parentElement,r="TFOOT"===l.parentElement.tagName?-1:Array.from(l.children).indexOf(t),a="TH"===t.tagName?-1:Array.from(l.parentElement.children).indexOf(l);h([r,a])}),[]);return n.createElement("table",{className:i.styles.tableEditor,onMouseOver:d,onMouseLeave:()=>h([-1,-1])},n.createElement("colgroup",null,n.createElement("col",null),Array.from({length:e.children[0].children.length},((t,l)=>{const r=(e.align||[])[l]||"left",a=A[r];return n.createElement("col",{key:l,className:a})})),n.createElement("col",null)),n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",{className:i.styles.tableToolsColumn,"data-tool-cell":!0},n.createElement("button",{className:i.styles.iconButton,title:"Delete table",onClick:()=>{t.update((()=>{l.selectNext(),l.remove()}))}},n.createElement(b,null))),Array.from({length:e.children[0].children.length},((r,a)=>n.createElement("th",{key:a,"data-tool-cell":!0},n.createElement(N,{setActiveCellWithBoundaries:c,parentEditor:t,colIndex:a,highlightedCoordinates:u,lexicalTable:l,align:(e.align||[])[a]})))),n.createElement("th",{className:i.styles.tableToolsColumn}))),n.createElement("tbody",null,e.children.map(((a,o)=>n.createElement("tr",{key:o},n.createElement("td",{className:i.styles.toolCell,"data-tool-cell":!0},n.createElement(I,{setActiveCellWithBoundaries:c,parentEditor:t,rowIndex:o,highlightedCoordinates:u,lexicalTable:l})),a.children.map(((a,i)=>{var s;return n.createElement(O,{align:null==(s=e.align)?void 0:s[i],key:i,contents:a.children,rowIndex:o,colIndex:i,lexicalTable:l,parentEditor:t,activeCellTuple:[r,c]})})),0===o&&n.createElement("th",{rowSpan:l.getRowCount(),"data-tool-cell":!0},n.createElement("button",{className:i.styles.addColumnButton,onClick:m},n.createElement(q,null))))))),n.createElement("tfoot",null,n.createElement("tr",null,n.createElement("th",null),n.createElement("th",{colSpan:l.getColCount()},n.createElement("button",{className:i.styles.addRowButton,onClick:s},n.createElement(V,null))),n.createElement("th",null))))};
|
|
@@ -5,7 +5,7 @@ import { RichTextPlugin } from "@lexical/react/LexicalRichTextPlugin";
|
|
|
5
5
|
import { $createParagraphNode, createEditor, KEY_TAB_COMMAND, COMMAND_PRIORITY_CRITICAL, KEY_ENTER_COMMAND, BLUR_COMMAND, $getRoot } from "lexical";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import React__default, { useEffect } from "react";
|
|
8
|
-
import { s as styles, u as useEmitterValues, t as theme, i as importMdastTreeToLexical, S as SharedHistoryPlugin, e as exportLexicalTreeToMdast } from "./index-
|
|
8
|
+
import { s as styles, u as useEmitterValues, t as theme, i as importMdastTreeToLexical, S as SharedHistoryPlugin, e as exportLexicalTreeToMdast } from "./index-a1fa6c7f.js";
|
|
9
9
|
import { toHast } from "mdast-util-to-hast";
|
|
10
10
|
import { raw } from "hast-util-raw";
|
|
11
11
|
import { sanitize } from "hast-util-sanitize";
|