@mdxeditor/editor 0.7.2 → 0.9.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/README.md +2 -2
- package/dist/{CodeBlockEditor-6e6cadb7.js → CodeBlockEditor-ce4c85ed.js} +3 -2
- package/dist/{CodeBlockEditor-d6235774.cjs → CodeBlockEditor-ed222322.cjs} +1 -1
- package/dist/FrontmatterEditor-914aa241.cjs +1 -0
- package/dist/{FrontmatterEditor-bcb1a0fd.js → FrontmatterEditor-e2f25a6a.js} +2 -1
- package/dist/{ImageEditor-c0184e9a.js → ImageEditor-ad505654.js} +2 -1
- package/dist/ImageEditor-c4e65554.cjs +1 -0
- package/dist/{JsxEditor-4ff2f120.cjs → JsxEditor-6cff258d.cjs} +1 -1
- package/dist/{JsxEditor-6fd46aaa.js → JsxEditor-88d55ef8.js} +1 -1
- package/dist/LeafDirectiveEditor-0e1328e6.cjs +1 -0
- package/dist/LeafDirectiveEditor-34ead530.js +59 -0
- package/dist/{SandpackEditor-1f2bbe22.cjs → SandpackEditor-a999ca47.cjs} +1 -1
- package/dist/{SandpackEditor-cdcd7e95.js → SandpackEditor-b1e22784.js} +3 -2
- package/dist/{SourceEditor-80e3e5dd.cjs → SourceEditor-0c46ec47.cjs} +1 -1
- package/dist/{SourceEditor-0399298a.js → SourceEditor-e509d0a5.js} +2 -1
- package/dist/{TableEditor-533f6497.js → TableEditor-44bef804.js} +1 -1
- package/dist/{TableEditor-982bfce3.cjs → TableEditor-ced03ce4.cjs} +1 -1
- package/dist/index-21fcefae.cjs +1 -0
- package/dist/{index-911b7e3d.js → index-ce0832cc.js} +326 -60
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +134 -13
- package/dist/index.js +23 -17
- package/dist/{useCodeMirrorRef-dc6425df.js → useCodeMirrorRef-177e9901.js} +1 -1
- package/dist/{useCodeMirrorRef-17daf915.cjs → useCodeMirrorRef-6cb866bd.cjs} +1 -1
- package/package.json +5 -2
- package/dist/FrontmatterEditor-535e834d.cjs +0 -1
- package/dist/ImageEditor-b47dff60.cjs +0 -1
- package/dist/index-93ab76f9.cjs +0 -1
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
#
|
|
1
|
+
# MDXEditor
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|

|
|
5
5
|
|
|
6
6
|
> Because markdown editing can be even more delightful.
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
MDXEditor is an open-source React component that allows users to author markdown documents naturally. Just like in Google docs or Notion. [See the live demo](https://mdxeditor.dev/editor/demo) that has the default features turned on. It supports the core markdown syntax and certain extensions, including tables, images, code blocks, etc. It also allows users to edit JSX components with a dedicated property editor.
|
|
9
9
|
|
|
10
10
|
```jsx
|
|
11
11
|
import {MDXEditor} from '@mdxeditor/editor';
|
|
@@ -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-ce0832cc.js";
|
|
4
|
+
import { u as useCodeMirrorRef } from "./useCodeMirrorRef-177e9901.js";
|
|
5
5
|
import "@lexical/react/LexicalComposer";
|
|
6
6
|
import "@lexical/react/LexicalContentEditable";
|
|
7
7
|
import "@lexical/react/LexicalErrorBoundary";
|
|
@@ -41,6 +41,7 @@ import "unidiff";
|
|
|
41
41
|
import "@radix-ui/react-toolbar";
|
|
42
42
|
import "@radix-ui/react-select";
|
|
43
43
|
import "@radix-ui/react-dialog";
|
|
44
|
+
import "@lexical/react/LexicalNestedComposer";
|
|
44
45
|
const CodeBlockEditor = ({ nodeKey, code, language, onChange, focusEmitter }) => {
|
|
45
46
|
const [activeEditor] = useEmitterValues("activeEditor");
|
|
46
47
|
const codeMirrorRef = useCodeMirrorRef(nodeKey, "codeblock", language);
|
|
@@ -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-21fcefae.cjs"),a=require("./useCodeMirrorRef-6cb866bd.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("react-diff-view"),require("unidiff"),require("@radix-ui/react-toolbar"),require("@radix-ui/react-select"),require("@radix-ui/react-dialog"),require("@lexical/react/LexicalNestedComposer");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})))};
|
|
@@ -0,0 +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-21fcefae.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("react-diff-view"),require("unidiff"),require("@radix-ui/react-toolbar"),require("@radix-ui/react-select"),require("@radix-ui/react-dialog"),require("@lexical/react/LexicalNestedComposer");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")))))))};
|
|
@@ -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-ce0832cc.js";
|
|
7
7
|
import "@lexical/react/LexicalComposer";
|
|
8
8
|
import "@lexical/react/LexicalContentEditable";
|
|
9
9
|
import "@lexical/react/LexicalErrorBoundary";
|
|
@@ -42,6 +42,7 @@ import "unidiff";
|
|
|
42
42
|
import "@radix-ui/react-toolbar";
|
|
43
43
|
import "@radix-ui/react-select";
|
|
44
44
|
import "@radix-ui/react-dialog";
|
|
45
|
+
import "@lexical/react/LexicalNestedComposer";
|
|
45
46
|
const SvgArrowRight = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, fill: "currentColor", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("mask", { id: "a", width: 24, height: 24, x: 0, y: 0, maskUnits: "userSpaceOnUse", style: {
|
|
46
47
|
maskType: "alpha"
|
|
47
48
|
} }, /* @__PURE__ */ React.createElement("path", { d: "M0 0h24v24H0z" })), /* @__PURE__ */ React.createElement("g", { mask: "url(#a)" }, /* @__PURE__ */ React.createElement("path", { d: "M10 17V7l5 5-5 5Z" })));
|
|
@@ -3,7 +3,7 @@ import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext
|
|
|
3
3
|
import { useLexicalNodeSelection } from "@lexical/react/useLexicalNodeSelection";
|
|
4
4
|
import { mergeRegister } from "@lexical/utils";
|
|
5
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-
|
|
6
|
+
import { $ as $isImageNode, s as styles } from "./index-ce0832cc.js";
|
|
7
7
|
import classNames from "classnames";
|
|
8
8
|
import "@lexical/react/LexicalComposer";
|
|
9
9
|
import "@lexical/react/LexicalContentEditable";
|
|
@@ -40,6 +40,7 @@ import "unidiff";
|
|
|
40
40
|
import "@radix-ui/react-toolbar";
|
|
41
41
|
import "@radix-ui/react-select";
|
|
42
42
|
import "@radix-ui/react-dialog";
|
|
43
|
+
import "@lexical/react/LexicalNestedComposer";
|
|
43
44
|
const imageCache = /* @__PURE__ */ new Set();
|
|
44
45
|
function useSuspenseImage(src) {
|
|
45
46
|
if (!imageCache.has(src)) {
|
|
@@ -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"),l=require("lexical"),a=require("./index-21fcefae.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("react-diff-view"),require("unidiff"),require("@radix-ui/react-toolbar"),require("@radix-ui/react-select"),require("@radix-ui/react-dialog"),require("@lexical/react/LexicalNestedComposer");const u=new Set;function n({title:r,className:t,imageRef:i,src:l}){return function(e){if(!u.has(e))throw new Promise((r=>{const t=new Image;t.src=e,t.onload=()=>{u.add(e),r(null)}}))}(l),e.createElement("img",{className:t||void 0,src:l,title:r,ref:i,draggable:"false"})}exports.ImageEditor=function({src:u,title:o,nodeKey:s}){const m=e.useRef(null),d=e.useRef(null),[x,g,q]=t.useLexicalNodeSelection(s),[C]=r.useLexicalComposerContext(),[f,N]=e.useState(null),M=e.useRef(null),O=e.useCallback((e=>{if(x&&l.$isNodeSelection(l.$getSelection())){e.preventDefault();const r=l.$getNodeByKey(s);a.$isImageNode(r)&&r.remove()}return!1}),[x,s]),L=e.useCallback((e=>{const r=l.$getSelection(),t=d.current;return!(!x||!l.$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&&(l.$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&&N(r.read((()=>l.$getSelection())))})),C.registerCommand(l.SELECTION_CHANGE_COMMAND,((e,r)=>(M.current=r,!1)),l.COMMAND_PRIORITY_LOW),C.registerCommand(l.CLICK_COMMAND,(e=>{const r=e;return r.target===m.current&&(r.shiftKey?g(!x):(q(),g(!0)),!0)}),l.COMMAND_PRIORITY_LOW),C.registerCommand(l.DRAGSTART_COMMAND,(e=>e.target===m.current&&(e.preventDefault(),!0)),l.COMMAND_PRIORITY_LOW),C.registerCommand(l.KEY_DELETE_COMMAND,O,l.COMMAND_PRIORITY_LOW),C.registerCommand(l.KEY_BACKSPACE_COMMAND,O,l.COMMAND_PRIORITY_LOW),C.registerCommand(l.KEY_ENTER_COMMAND,L,l.COMMAND_PRIORITY_LOW),C.registerCommand(l.KEY_ESCAPE_COMMAND,R,l.COMMAND_PRIORITY_LOW));return()=>{e=!1,r()}}),[q,C,x,s,O,L,R,g]);const E=l.$isNodeSelection(f),_=x;return e.createElement(e.Suspense,{fallback:null},e.createElement(e.Fragment,null,e.createElement("div",{draggable:E,className:a.styles.imageWrapper,"data-editor-block-type":"image"},e.createElement(n,{className:c({[a.styles.focusedImage]:_}),src:u,title:o||"",imageRef:m}))))};
|
|
@@ -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-21fcefae.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("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-ce0832cc.js";
|
|
11
11
|
import "@lexical/react/LexicalComposer";
|
|
12
12
|
import "@lexical/react/LexicalHorizontalRulePlugin";
|
|
13
13
|
import "@lexical/react/LexicalLinkPlugin";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),r=require("./index-21fcefae.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("react-diff-view"),require("unidiff"),require("@radix-ui/react-toolbar"),require("@radix-ui/react-select"),require("@radix-ui/react-dialog"),require("@lexical/react/LexicalNestedComposer");exports.LeafDirectiveEditor=({leafDirective:i,mdastNode:t,parentEditor:a})=>{const[l]=r.useEmitterValues("customLeafDirectiveEditors"),c=e.useMemo((()=>{var e;return null==(e=l.find((({testNode:e})=>e(t))))?void 0:e.Editor}),[l,t]);return c?e.createElement(r.NestedEditorsContext.Provider,{value:{parentEditor:a,mdastNode:t,lexicalNode:i}},e.createElement(c,{mdastNode:t,parentEditor:a,leafDirective:i})):e.createElement("pre",null,JSON.stringify(t,null,2))};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React__default from "react";
|
|
2
|
+
import { u as useEmitterValues, N as NestedEditorsContext } from "./index-ce0832cc.js";
|
|
3
|
+
import "@lexical/react/LexicalComposer";
|
|
4
|
+
import "@lexical/react/LexicalContentEditable";
|
|
5
|
+
import "@lexical/react/LexicalErrorBoundary";
|
|
6
|
+
import "@lexical/react/LexicalHorizontalRulePlugin";
|
|
7
|
+
import "@lexical/react/LexicalLinkPlugin";
|
|
8
|
+
import "@lexical/react/LexicalListPlugin";
|
|
9
|
+
import "@lexical/react/LexicalRichTextPlugin";
|
|
10
|
+
import "@lexical/react/LexicalTabIndentationPlugin";
|
|
11
|
+
import "classnames";
|
|
12
|
+
import "lexical";
|
|
13
|
+
import "@lexical/code";
|
|
14
|
+
import "@lexical/link";
|
|
15
|
+
import "@lexical/list";
|
|
16
|
+
import "@lexical/react/LexicalHorizontalRuleNode";
|
|
17
|
+
import "@lexical/rich-text";
|
|
18
|
+
import "mdast-util-directive";
|
|
19
|
+
import "mdast-util-from-markdown";
|
|
20
|
+
import "mdast-util-frontmatter";
|
|
21
|
+
import "mdast-util-gfm-table";
|
|
22
|
+
import "mdast-util-mdx";
|
|
23
|
+
import "micromark-extension-directive";
|
|
24
|
+
import "micromark-extension-frontmatter";
|
|
25
|
+
import "micromark-extension-gfm-table";
|
|
26
|
+
import "micromark-extension-mdxjs";
|
|
27
|
+
import "@lexical/utils";
|
|
28
|
+
import "@lexical/react/LexicalComposerContext";
|
|
29
|
+
import "@lexical/selection";
|
|
30
|
+
import "@lexical/react/LexicalHistoryPlugin";
|
|
31
|
+
import "mdast-util-to-markdown";
|
|
32
|
+
import "@radix-ui/react-popover";
|
|
33
|
+
import "@radix-ui/react-tooltip";
|
|
34
|
+
import "downshift";
|
|
35
|
+
import "@lexical/markdown";
|
|
36
|
+
import "@lexical/react/LexicalMarkdownShortcutPlugin";
|
|
37
|
+
import "react-diff-view";
|
|
38
|
+
import "unidiff";
|
|
39
|
+
import "@radix-ui/react-toolbar";
|
|
40
|
+
import "@radix-ui/react-select";
|
|
41
|
+
import "@radix-ui/react-dialog";
|
|
42
|
+
import "@lexical/react/LexicalNestedComposer";
|
|
43
|
+
const LeafDirectiveEditor = ({ leafDirective, mdastNode, parentEditor }) => {
|
|
44
|
+
const [customLeafDirectiveEditors] = useEmitterValues("customLeafDirectiveEditors");
|
|
45
|
+
const Editor = React__default.useMemo(() => {
|
|
46
|
+
var _a;
|
|
47
|
+
return (_a = customLeafDirectiveEditors.find(({ testNode }) => testNode(mdastNode))) == null ? void 0 : _a.Editor;
|
|
48
|
+
}, [customLeafDirectiveEditors, mdastNode]);
|
|
49
|
+
if (Editor) {
|
|
50
|
+
return (
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
52
|
+
/* @__PURE__ */ React__default.createElement(NestedEditorsContext.Provider, { value: { parentEditor, mdastNode, lexicalNode: leafDirective } }, /* @__PURE__ */ React__default.createElement(Editor, { mdastNode, parentEditor, leafDirective }))
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
return /* @__PURE__ */ React__default.createElement("pre", null, JSON.stringify(mdastNode, null, 2));
|
|
56
|
+
};
|
|
57
|
+
export {
|
|
58
|
+
LeafDirectiveEditor
|
|
59
|
+
};
|
|
@@ -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-21fcefae.cjs"),t=require("./useCodeMirrorRef-6cb866bd.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("react-diff-view"),require("unidiff"),require("@radix-ui/react-toolbar"),require("@radix-ui/react-select"),require("@radix-ui/react-dialog"),require("@lexical/react/LexicalNestedComposer");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(),[x]=a.useEmitterValues("sandpackConfig"),m=t.useCodeMirrorRef(c,"sandpack","jsx"),q=a.usePublisher("activeEditorType");i.useEffect((()=>{s.subscribe((()=>{var e,r;null==(r=null==(e=null==m?void 0:m.current)?void 0:e.getCodemirror())||r.focus(),q({type:"sandpack",nodeKey:c})}))}),[s,m,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,x);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:m}),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-ce0832cc.js";
|
|
5
|
+
import { u as useCodeMirrorRef } from "./useCodeMirrorRef-177e9901.js";
|
|
6
6
|
import "@lexical/react/LexicalComposer";
|
|
7
7
|
import "@lexical/react/LexicalContentEditable";
|
|
8
8
|
import "@lexical/react/LexicalErrorBoundary";
|
|
@@ -41,6 +41,7 @@ import "unidiff";
|
|
|
41
41
|
import "@radix-ui/react-toolbar";
|
|
42
42
|
import "@radix-ui/react-select";
|
|
43
43
|
import "@radix-ui/react-dialog";
|
|
44
|
+
import "@lexical/react/LexicalNestedComposer";
|
|
44
45
|
const CodeUpdateEmitter = ({ onChange, snippetFileName }) => {
|
|
45
46
|
const { sandpack } = useSandpack();
|
|
46
47
|
onChange(sandpack.files[snippetFileName].code);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@codemirror/lang-markdown"),r=require("@codesandbox/sandpack-react"),i=require("react"),a=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@codemirror/lang-markdown"),r=require("@codesandbox/sandpack-react"),i=require("react"),a=require("./index-21fcefae.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("react-diff-view"),require("unidiff"),require("@radix-ui/react-toolbar"),require("@radix-ui/react-select"),require("@radix-ui/react-dialog"),require("@lexical/react/LexicalNestedComposer");exports.SourceEditor=()=>{const[l]=a.useEmitterValues("markdownSourceFromEditor"),t=a.usePublisher("markdownSourceFromEditor"),u=i.useRef(null);return i.createElement("div",null,i.createElement(i.Suspense,{fallback:null},i.createElement(r.SandpackProvider,null,i.createElement(r.CodeEditor,{showLineNumbers:!0,additionalLanguages:[{name:"markdown",extensions:["md"],language:e.markdown()}],initMode:"lazy",filePath:"file.md",code:l,onCodeUpdate:t,ref:u}))))};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { markdown } from "@codemirror/lang-markdown";
|
|
2
2
|
import { SandpackProvider, CodeEditor } from "@codesandbox/sandpack-react";
|
|
3
3
|
import React__default from "react";
|
|
4
|
-
import { u as useEmitterValues, a as usePublisher } from "./index-
|
|
4
|
+
import { u as useEmitterValues, a as usePublisher } from "./index-ce0832cc.js";
|
|
5
5
|
import "@lexical/react/LexicalComposer";
|
|
6
6
|
import "@lexical/react/LexicalContentEditable";
|
|
7
7
|
import "@lexical/react/LexicalErrorBoundary";
|
|
@@ -41,6 +41,7 @@ import "unidiff";
|
|
|
41
41
|
import "@radix-ui/react-toolbar";
|
|
42
42
|
import "@radix-ui/react-select";
|
|
43
43
|
import "@radix-ui/react-dialog";
|
|
44
|
+
import "@lexical/react/LexicalNestedComposer";
|
|
44
45
|
const SourceEditor = () => {
|
|
45
46
|
const [markdown$1] = useEmitterValues("markdownSourceFromEditor");
|
|
46
47
|
const updateMarkdown = usePublisher("markdownSourceFromEditor");
|
|
@@ -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-ce0832cc.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";
|
|
@@ -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-93ab76f9.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("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-21fcefae.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("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))))};
|