react-reason-editor 1.0.114 → 1.0.116
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/Ai-DOAuz6ZE.js +1 -0
- package/dist/Ai-DVWZg0-D.cjs +1 -0
- package/dist/Ai.cjs +1 -1
- package/dist/Ai.js +1 -1
- package/dist/BubbleMenus-D8BicxJF.cjs +1 -0
- package/dist/{BubbleMenus-CFzQBrVG.js → BubbleMenus-DopOZm_P.js} +43 -43
- package/dist/{Drawio-s-Xgqy7a.js → Drawio-LEtUoVAY.js} +7 -7
- package/dist/Drawio.js +1 -1
- package/dist/{Emoji-CTKm00BR.js → Emoji-CIxVw-Kv.js} +2 -2
- package/dist/Emoji.js +1 -1
- package/dist/{ReasonDocs-CsmZMk6W.cjs → ReasonDocs-BCjyspDd.cjs} +1 -1
- package/dist/{ReasonDocs-BXtUm4zk.js → ReasonDocs-eAuJLZVg.js} +17 -17
- package/dist/{RichTextProvider-KRSFedCE.cjs → RichTextProvider-C0V3hhy_.cjs} +1 -1
- package/dist/RichTextProvider-z_4PSTNH.js +5 -0
- package/dist/{bubble-B39N7x_B.js → bubble-DF0FOqik.js} +17 -17
- package/dist/bubble.cjs +1 -1
- package/dist/bubble.js +1 -1
- package/dist/docs-agent/plate/ai-controller.d.ts +82 -0
- package/dist/docs-agent/plate/kits/ai-kit.d.ts +37 -0
- package/dist/docs-agent/plate/ui/ai-menu.d.ts +19 -0
- package/dist/docs-agent/plate/ui/ai-toolbar-button.d.ts +12 -0
- package/dist/docs-agent.cjs +1 -1
- package/dist/docs-agent.d.ts +4 -0
- package/dist/docs-agent.js +18 -18
- package/dist/editor-kit.cjs +1 -1
- package/dist/editor-kit.js +1 -1
- package/dist/editorConfig-CpUHUq44.js +18 -0
- package/dist/editorConfig-DaUET9eN.cjs +1 -0
- package/dist/extensions/Ai/index.d.ts +1 -0
- package/dist/extensions/Ai/lib/rewriteEndpoint.d.ts +17 -0
- package/dist/{html-to-docx.esm-BLUcO7pp-BKB2FJoB.cjs → html-to-docx.esm-BLUcO7pp-sCMiaq9J.cjs} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/reason-docs.cjs +1 -1
- package/dist/reason-docs.js +1 -1
- package/dist/reason-toolbar-skin-BQRPoci6.cjs +1 -0
- package/dist/reason-toolbar-skin-Beh6Q5Ra.js +560 -0
- package/package.json +2 -2
- package/dist/Ai-B_8fziaT.js +0 -1
- package/dist/Ai-BxQjqvdT.cjs +0 -1
- package/dist/BubbleMenus-3RiQc4lw.cjs +0 -1
- package/dist/RichTextProvider-BcsYTR6Z.js +0 -5
- package/dist/editorConfig-9-ZxkRbw.js +0 -18
- package/dist/editorConfig-DF8EAH_P.cjs +0 -1
- package/dist/reason-toolbar-skin-DY4w9SRA.cjs +0 -1
- package/dist/reason-toolbar-skin-DarRq6V-.js +0 -539
package/dist/bubble.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./rolldown-runtime-BeavJI0R.cjs"),t=require("./toggle-JU5XOZYT.cjs"),n=require("./locales-mNtGplJd.cjs"),o=require("./Icon-CC1yoE4E.cjs"),i=require("./button-5s-zJAUQ.cjs"),r=require("./floating-ui.dom-DG-jWCyc.cjs"),s=require("./dialog-DbI7mYml.cjs"),c=require("./dropdown-menu-By9VjdjW.cjs"),l=require("./input-qTd6QuLt.cjs"),a=require("./label-Byrl10cV.cjs"),d=require("./popover-C3EbRkjg.cjs"),u=require("./Callout-yloRpaNf.cjs"),h=require("./separator-BIwOsO40.cjs"),p=require("./textarea-DNm9deBy.cjs"),x=require("./ImageCropper-vrxj3_Sf.cjs"),m=require("./events.constant-BkYOoqSk.cjs"),g=require("./useButtonProps-DbMOdE1Q.cjs"),f=require("./file-B1Z0XcVJ.cjs"),b=require("./Video-BM26AuBN.cjs"),v=require("./Ai-BxQjqvdT.cjs"),j=require("./Drawio-CoTNWfCf.cjs"),w=require("./Katex-C2xjuEa8.cjs"),C=require("./Column-D0z2BXGZ.cjs"),y=require("./Drawer-79hi3mNN.cjs"),E=require("./shortId-B25DIOpW.cjs"),S=require("./Iframe-BPIHbAMb.cjs"),A=require("./cdn-loader-CK_VIRZp.cjs"),B=require("./LinkEditBlock-DWhMM3H3.cjs"),T=require("./ImageGif-Bc0CzdFX.cjs"),k=require("./Mermaid-Bb3ufkx_.cjs"),D=require("./Table-DVnBPi-p.cjs"),N=require("./Bold.cjs"),M=require("./Code.cjs"),I=require("./Color-CtcMKY3v.cjs"),P=require("./Highlight-C6_QkIMd.cjs"),R=require("./Italic.cjs"),O=require("./renderCommandListDefault-Cro6JptX.cjs"),L=require("./TextAlign-Dszw7mbv.cjs"),$=require("./TextUnderline.cjs"),F=require("./Twitter-CR51Xu_I.cjs"),q=require("./dist-CN633rTi.cjs"),z=require("./Clear.cjs"),K=require("./Indent-Bqzg10jm.cjs"),H=require("./CodeBlock.cjs");let V=require("react");V=e.__toESM(V,1);let W=require("@tiptap/core"),U=require("@tiptap/pm/state"),_=require("react/jsx-runtime"),G=require("lucide-react"),X=require("react-dom"),J=require("@tiptap/react/menus"),Y=require("@tiptap/pm/view"),Z=require("@tiptap/pm/model"),Q=require("easydrawer"),ee=require("@tiptap/pm/commands");function te(e,t){const{state:n}=t,o=n.selection.$anchor;let i=!1;if(o.depth)for(let r=o.depth;r>0;r--)o.node(r).type.name===e&&(t.dispatchTransaction&&t.dispatchTransaction(n.tr.delete(o.before(r),o.after(r)).scrollIntoView()),i=!0);else{const o=n.selection.node;o&&o.type.name===e&&(t.chain().deleteSelection().run(),i=!0)}if(!i){const r=o.pos;if(r){const o=n.tr.doc.nodeAt(r);o&&o.type.name===e&&(t.dispatchTransaction&&t.dispatchTransaction(n.tr.delete(r,r+o.nodeSize)),i=!0)}}return i}var ne=[{value:"note",label:"Note",icon:"Info"},{value:"tip",label:"Tip",icon:"Lightbulb"},{value:"important",label:"Important",icon:"AlertCircle"},{value:"warning",label:"Warning",icon:"TriangleAlert"},{value:"caution",label:"Caution",icon:"OctagonAlert"}];function oe(e,o){const i=["SizeS","SizeM","SizeL"];return["size-small","size-medium","size-large"].map((r,s)=>({type:`image-${r}`,component:t.ActionButton,componentProps:{tooltip:o(`editor.${r.replace("-",".")}.tooltip`),icon:i[s],action:()=>e.commands.updateImage({width:n.IMAGE_SIZE[r]}),isActive:()=>e.isActive("image",{width:n.IMAGE_SIZE[r]})}}))}function ie(e,o){const i=["SizeS","SizeM","SizeL"];return["size-small","size-medium","size-large"].map((r,s)=>({type:`image-${r}`,component:t.ActionButton,componentProps:{tooltip:o(`editor.${r.replace("-",".")}.tooltip`),icon:i[s],action:()=>e.commands.updateImageGif({width:n.IMAGE_SIZE[r]}),isActive:()=>e.isActive("image",{width:n.IMAGE_SIZE[r]})}}))}function re(e,n){const o={left:"AlignLeft",center:"AlignCenter",right:"AlignRight"};return["left","center","right"].map(i=>({type:`image-${i}`,component:t.ActionButton,componentProps:{tooltip:n(`editor.textalign.${i}.tooltip`),icon:o[i],action:()=>e.commands?.setAlignImage?.(i),isActive:()=>e.isActive({align:i})||!1,disabled:!1}}))}function se(e,n){const o={left:"AlignLeft",center:"AlignCenter",right:"AlignRight"};return["left","center","right"].map(i=>({type:`image-${i}`,component:t.ActionButton,componentProps:{tooltip:n(`editor.textalign.${i}.tooltip`),icon:o[i],action:()=>e.commands?.setAlignImageGif?.(i),isActive:()=>e.isActive({align:i})||!1,disabled:!1}}))}function ce(e,n){const o={left:"AlignLeft",center:"AlignCenter",right:"AlignRight"};return["left","center","right"].map(i=>({type:`image-${i}`,component:t.ActionButton,componentProps:{tooltip:n(`editor.textalign.${i}.tooltip`),icon:o[i],action:()=>e.commands?.setAlignImageMermaid?.(i),isActive:()=>e.isActive({align:i})||!1,disabled:!1}}))}function le(e,n){const o={left:"AlignLeft",center:"AlignCenter",right:"AlignRight"};return["left","center","right"].map(i=>({type:`image-${i}`,component:t.ActionButton,componentProps:{tooltip:n(`editor.textalign.${i}.tooltip`),icon:o[i],action:()=>e.commands?.setAlignImageDrawer?.(i),isActive:()=>e.isActive({align:i})||!1,disabled:!1}}))}function ae(e){return[{type:"flex-start",icon:"AlignLeft",tooltip:"Align left"},{type:"center",icon:"AlignCenter",tooltip:"Align center"},{type:"flex-end",icon:"AlignRight",tooltip:"Align right"}].map(n=>({type:`video-align-${n.type}`,component:t.ActionButton,componentProps:{tooltip:n.tooltip,icon:n.icon,action:()=>e.commands.updateVideo({align:n.type}),isActive:()=>e.getAttributes("video").align===n.type}}))}function de(e,o){const i=["SizeS","SizeM","SizeL"];return["size-small","size-medium","size-large"].map((r,s)=>({type:`video-${r}`,component:t.ActionButton,componentProps:{tooltip:o(`editor.${r.replace("-",".")}.tooltip`),icon:i[s],action:()=>e.commands.updateVideo({width:n.VIDEO_SIZE[r]}),isActive:()=>e.isActive("video",{width:n.VIDEO_SIZE[r]})}}))}var ue=!1;function he({editor:e,attrs:n,extension:o}){const[r,c]=(0,V.useState)(!1),l=(0,V.useRef)(null),a=(0,V.useRef)(null),{alt:d,align:u}=n,h=o?.options.upload;(0,V.useEffect)(()=>{r&&setTimeout(()=>{(async()=>{const e=document.querySelector("#easydrawer");e&&(l.current=new Q.Editor(e,{wheelEventsEnabled:!1,disableZoom:!0}),a.current=(0,Q.makeDropdownToolbar)(l.current),a.current.addDefaultToolWidgets(),l.current.loadFromSVG(decodeURIComponent(d)))})()},200)},[r]);const p=()=>{if(ue){for(;l.current.history.redoStackSize>0;)l.current.history.redo();ue=!1}else l.current.history.undo()};return(0,_.jsxs)(s.Dialog,{onOpenChange:c,open:r,children:[(0,_.jsx)(s.DialogTrigger,{asChild:!0,children:(0,_.jsx)(t.ActionButton,{action:()=>c(!0),icon:"Pencil",tooltip:"Edit Drawer"})}),(0,_.jsxs)(s.DialogContent,{className:"richtext-z-[99999] !richtext-max-w-[1300px]",children:[(0,_.jsx)(s.DialogTitle,{children:"Edit Drawer"}),(0,_.jsxs)("div",{style:{height:"100%",borderWidth:1,background:"white",position:"relative"},children:[(0,_.jsx)("div",{className:"richtext-size-full",id:"easydrawer"}),(0,_.jsx)(y.ControlDrawer,{changeBorderColorShape:e=>{const t=l.current.toolController.getPrimaryTools()[5],n=a.current.getWidgetById("shape");t&&n&&(t.setBorderColor(e),n.serializeState())},changeColorShape:e=>{const t=l.current.toolController.getPrimaryTools()[5],n=a.current.getWidgetById("shape");t&&n&&(t.setColor(e),n.serializeState())},changeShape:e=>{const t=a.current.getWidgetById("shape");t&&t.setShapeType(e)},onClear:()=>{if(!ue){for(;l.current.history.undoStackSize>0;)p();ue=!0}},onRedo:()=>{ue||l.current.history.redo()},onThicknessChange:e=>{const t=l.current.toolController.getPrimaryTools()[5],n=a.current.getWidgetById("shape");t&&n&&(t.setThickness(e),n.serializeState())},onUndo:p,refEditor:l,setColorHighlight:e=>{const t=l.current.toolController.getPrimaryTools()[3],n=a.current.getWidgetById("pen-2");t&&n&&(t.setColor(e),n.serializeState())},setColorPen:e=>{const t=l.current.toolController.getPrimaryTools()[2],n=a.current.getWidgetById("pen-1");t&&n&&(t.setColor(e),n.serializeState())},setThicknessPen:e=>{const t=l.current.toolController.getPrimaryTools()[2],n=a.current.getWidgetById("pen-1");t&&n&&(t.setThickness(e),n.serializeState())}})]}),(0,_.jsx)(s.DialogFooter,{children:(0,_.jsx)(i.Button,{onClick:async()=>{if(l.current){const t=l.current.toSVG(),n=t.outerHTML,o=`drawer-${E.shortId()}.svg`;let i=E.i(t.outerHTML);if(h){const e=f.dataURLtoFile(i,o);i=await h(e)}e?.chain().focus().setDrawer({type:"drawer",src:i,alt:encodeURIComponent(n),width:426,height:212},!!n).run(),e?.commands.setAlignImageDrawer(u)}c(!1)},type:"button",children:"Save changes"})})]})]})}function pe({item:e,disabled:t,editor:n}){const o=e.component;return o?(0,_.jsx)(V.Fragment,{children:"divider"===e.type?(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}):(0,_.jsx)(o,{...e.componentProps,disabled:t||e?.componentProps?.disabled,editor:n})}):(0,_.jsx)(_.Fragment,{})}var xe=({width:e,maxWidth:t,height:o,onOk:r,children:s})=>{const{t:c}=n.useLocale(),[u,h]=(0,V.useState)({width:"",height:"",maxWidth:""});return(0,V.useEffect)(()=>{h({width:e,height:o,maxWidth:t})},[o,t,e]),(0,_.jsxs)(d.Popover,{modal:!0,children:[(0,_.jsx)(d.PopoverTrigger,{asChild:!0,children:s}),(0,_.jsx)(d.PopoverContent,{children:(0,_.jsxs)("form",{className:"richtext-flex richtext-flex-col richtext-gap-2",onSubmit:function(e){e.preventDefault(),e.stopPropagation(),r(u)},children:[(0,_.jsx)(a.Label,{className:"mb-[6px]",children:"Width"}),(0,_.jsx)("div",{className:"richtext-flex richtext-w-full richtext-max-w-sm richtext-items-center richtext-gap-1.5",children:(0,_.jsx)("div",{className:"richtext-relative richtext-w-full richtext-max-w-sm richtext-items-center",children:(0,_.jsx)(l.Input,{onChange:e=>h({...u,width:e.target.value}),required:!0,type:"number",value:u.width})})}),(0,_.jsx)(a.Label,{className:"mb-[6px]",children:"Max Width"}),(0,_.jsx)("div",{className:"richtext-flex richtext-w-full richtext-max-w-sm richtext-items-center richtext-gap-1.5",children:(0,_.jsx)("div",{className:"richtext-relative richtext-w-full richtext-max-w-sm richtext-items-center",children:(0,_.jsx)(l.Input,{onChange:e=>h({...u,maxWidth:e.target.value}),required:!0,type:"number",value:u.maxWidth})})}),(0,_.jsx)(a.Label,{className:"mb-[6px]",children:"Height"}),(0,_.jsx)("div",{className:"richtext-flex richtext-w-full richtext-max-w-sm richtext-items-center richtext-gap-1.5",children:(0,_.jsx)("div",{className:"richtext-relative richtext-w-full richtext-max-w-sm richtext-items-center",children:(0,_.jsx)(l.Input,{onChange:e=>h({...u,height:e.target.value}),required:!0,type:"number",value:u.height})})}),(0,_.jsx)(i.Button,{className:"richtext-mt-2 richtext-self-end",type:"submit",children:c("editor.link.dialog.button.apply")})]})})]})},me=new Map;function ge({children:e,visible:t,toggleVisible:o}){const{t:r}=n.useLocale(),c=g.useEditorInstance(),[l,d]=(0,V.useState)(null);(0,V.useEffect)(()=>{A.loadKatex().then(d)},[]);const{text:u,macros:h}=w.useAttributes(c,w.Katex.name,{text:"",macros:""}),[x,m]=(0,V.useState)(decodeURIComponent(u||"")),[f,b]=(0,V.useState)(decodeURIComponent(h||""));(0,V.useEffect)(()=>{t&&(m(decodeURIComponent(u||"")),b(decodeURIComponent(h||"")))},[t]);const v=(0,V.useCallback)(()=>{c.chain().focus().setKatex({text:encodeURIComponent(x),macros:encodeURIComponent(f)}).run(),m(""),b(""),o(!1)},[c,x,f,o]),j=(0,V.useMemo)(()=>{if(!l)return x;try{return l.renderToString(x,{macros:w.safeJSONParse(f||"")})}catch{return x}},[x,f,l]),C=(0,V.useMemo)(()=>`${x}`.trim()?j:null,[x,j]);return(0,_.jsxs)(s.Dialog,{onOpenChange:o,open:t,children:[(0,_.jsx)(s.DialogTrigger,{asChild:!0,children:e}),(0,_.jsxs)(s.DialogContent,{className:"richtext-z-[99999] !richtext-max-w-[1300px]",children:[(0,_.jsx)(s.DialogTitle,{children:r("editor.formula.dialog.text")}),(0,_.jsx)("div",{style:{height:"100%",border:"1px solid var(--richtext-border)"},children:(0,_.jsxs)("div",{className:"richtext-flex richtext-gap-[10px] richtext-rounded-[10px] richtext-p-[10px]",children:[(0,_.jsxs)("div",{className:"richtext-flex-1",children:[(0,_.jsx)(a.Label,{className:"mb-[6px]",children:"Expression"}),(0,_.jsx)(p.Textarea,{autoFocus:!0,className:"richtext-mb-[10px]",onChange:e=>m(e.target.value),placeholder:"Text",required:!0,rows:10,value:x,style:{color:"var(--richtext-foreground)"}}),(0,_.jsx)(a.Label,{className:"mb-[6px]",children:"Macros"}),(0,_.jsx)(p.Textarea,{onChange:e=>b(e.target.value),placeholder:"Macros",rows:10,value:f,style:{color:"var(--richtext-foreground)"}})]}),(0,_.jsx)("div",{className:"richtext-flex richtext-flex-1 richtext-items-center richtext-justify-center richtext-rounded-[10px] richtext-p-[10px]",dangerouslySetInnerHTML:{__html:C||""},style:{height:"100%",borderWidth:1,minHeight:500,background:"#fff"}})]})}),(0,_.jsx)(s.DialogFooter,{children:(0,_.jsx)(i.Button,{onClick:v,type:"button",children:"Save changes"})})]})]})}function fe(e){const{t:o}=n.useLocale();return(0,_.jsxs)("div",{className:"richtext-flex richtext-flex-nowrap",children:[(0,_.jsx)(t.ActionButton,{disabled:!e?.link,icon:"ExternalLink",tooltip:o("editor.link.open.tooltip"),tooltipOptions:{sideOffset:15},action:()=>{window.open(e?.link,"_blank")}}),(0,_.jsx)(t.ActionButton,{icon:"Pencil",tooltip:o("editor.link.edit.tooltip"),tooltipOptions:{sideOffset:15},action:()=>{e?.onEdit()}}),(0,_.jsx)(t.ActionButton,{icon:"Unlink",tooltip:o("editor.link.unlink.tooltip"),tooltipOptions:{sideOffset:15},action:()=>{e?.onClear()}})]})}function be({item:e,disabled:t,editor:n}){const o=e.component;return o?(0,_.jsx)(V.Fragment,{children:"divider"===e.type?(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}):(0,_.jsx)(o,{...e.componentProps,disabled:t||e?.componentdisabled,editor:n})}):(0,_.jsx)(_.Fragment,{})}var ve="graph TB\na--\x3eb",je=({editor:e,attrs:n,extension:o})=>{const{alt:r,align:c}=n,[l,a]=(0,V.useState)(decodeURIComponent(r??ve)),[d,u]=(0,V.useState)(""),[h,x]=(0,V.useState)(!1),m=(0,V.useRef)(null),[g,b]=(0,V.useState)(null),v=o?.options.upload,j=(0,V.useCallback)(e=>{e&&import("mermaid").then(e=>{b(e.default)})},[]),w=async e=>{try{const{svg:t}=await g.render("mermaid-svg",e);u(t)}catch{u("")}};(0,V.useEffect)(()=>{g&&h&&(g.initialize({darkMode:!1,startOnLoad:!1,fontSize:12,theme:"base"}),w(l))},[g,h]),(0,V.useEffect)(()=>{g&&h&&w(l)},[g,l]);return(0,_.jsxs)(s.Dialog,{onOpenChange:x,open:h,children:[(0,_.jsx)(s.DialogTrigger,{asChild:!0,children:(0,_.jsx)(t.ActionButton,{action:()=>x(!0),icon:"Pencil",tooltip:"Edit Mermaid"})}),(0,_.jsxs)(s.DialogContent,{className:"richtext-z-[99999] !richtext-max-w-[1300px]",children:[(0,_.jsx)(s.DialogTitle,{children:"Edit Mermaid"}),(0,_.jsx)("div",{ref:j,style:{height:"100%",border:"1px solid var(--richtext-border)"},children:(0,_.jsxs)("div",{className:"richtext-flex richtext-gap-[10px] richtext-rounded-[10px] richtext-p-[10px]",children:[(0,_.jsx)(p.Textarea,{autoFocus:!0,className:"richtext-flex-1",defaultValue:ve,onChange:e=>a(e.target.value),placeholder:"Text",required:!0,rows:10,value:l,style:{color:"var(--richtext-foreground)"}}),(0,_.jsx)("div",{className:"richtext-flex richtext-flex-1 richtext-items-center richtext-justify-center richtext-rounded-[10px] richtext-p-[10px]",dangerouslySetInnerHTML:{__html:d},ref:m,style:{height:"100%",border:"1px solid var(--richtext-border)",minHeight:500}})]})}),(0,_.jsx)(s.DialogFooter,{children:(0,_.jsx)(i.Button,{onClick:async()=>{if(""!==l){if(l){const t=m.current.querySelector("svg"),{width:n,height:o}=t.getBoundingClientRect(),i=`mermaid-${E.shortId()}.svg`;let r=E.i(t.outerHTML);if(v){const e=f.dataURLtoFile(r,i);r=await v(e)}e?.chain().focus().setMermaid({type:"mermaid",src:r,alt:encodeURIComponent(l),width:n,height:o},!!l).run(),e?.commands.setAlignImageMermaid(c)}x(!1)}},type:"button",children:"Save changes"})})]})]})};function we({item:e,disabled:t,editor:n}){const o=e.component;return o?(0,_.jsx)(V.Fragment,{children:"divider"===e.type?(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}):(0,_.jsx)(o,{...e.componentProps,disabled:t||e?.componentProps?.disabled,editor:n})}):(0,_.jsx)(_.Fragment,{})}function Ce(){const{t:e}=n.useLocale(),[i,r]=(0,V.useState)(!1),s=g.useEditorInstance(),c=(0,V.useMemo)(()=>O.renderCommandListDefault({t:e})?.[0]?.commands,[e]),l=(0,V.useMemo)(()=>c?.find(e=>e?.isActive?.(s))?.label,[s.state.selection.ranges,i,s,c,e]),a=(0,V.useMemo)(()=>c?.find(e=>e?.isActive?.(s)),[s.state.selection.ranges,i,s,c]);return(0,_.jsxs)(d.Popover,{modal:!0,onOpenChange:r,open:i,children:[(0,_.jsx)(d.PopoverTrigger,{asChild:!0,className:"hover:richtext-bg-accent data-[state=on]:richtext-bg-accent",children:(0,_.jsx)(t.ActionButton,{dataState:!!l,tooltip:l||e("editor.paragraph.tooltip"),children:(0,_.jsx)(o.IconComponent,{name:a?.iconName||"Type"})})}),(0,_.jsx)(d.PopoverContent,{align:"start",className:"!richtext-w-[initial] !richtext-p-[4px]",hideWhenDetached:!0,side:"bottom",children:c?.map(t=>{const n=t?.isActive?.(s);return(0,_.jsxs)("div",{className:"richtext-flex richtext-w-full richtext-items-center richtext-gap-1.5 richtext-rounded-sm !richtext-border-none !richtext-bg-transparent richtext-px-2 richtext-py-1.5 richtext-text-left richtext-text-sm richtext-text-foreground !richtext-outline-none richtext-transition-colors hover:!richtext-bg-accent",onClick:e=>{e.preventDefault(),t.action({editor:s,range:s.state.selection.ranges}),r(!1)},children:[(0,_.jsxs)("div",{className:"!richtext-min-w-[16px]",children:[n&&(0,_.jsx)(G.Check,{size:16}),!l&&t.label===e("editor.paragraph.tooltip")&&!n&&(0,_.jsx)(G.Check,{size:16})]}),(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-1",children:[t.iconName&&(0,_.jsx)(o.IconComponent,{className:"!richtext-mr-1 !richtext-text-lg",name:t.iconName}),t.label]})]},t.name)})})]})}function ye(){const e=g.useEditorInstance();return v.isAiEnabled(e)?(0,_.jsx)(t.ActionButton,{action:()=>e.commands.openAiMenu(),shortcutKeys:["mod","J"],tooltip:"Ask AI",children:(0,_.jsx)(G.Sparkles,{className:"richtext-size-4 richtext-text-violet-600"})}):null}function Ee(){return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(ye,{}),(0,_.jsx)(Ce,{}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),(0,_.jsx)(N.RichTextBold,{}),(0,_.jsx)(R.RichTextItalic,{}),(0,_.jsx)($.RichTextUnderline,{}),(0,_.jsx)(M.RichTextCode,{}),(0,_.jsx)(B.RichTextLink,{}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),(0,_.jsx)(I.RichTextColor,{}),(0,_.jsx)(P.RichTextHighlight,{}),(0,_.jsx)(L.RichTextAlign,{})]})}function Se(e){if(!e.length)return Y.DecorationSet.empty;const t=[],n=e[0].$from.node(0);return e.forEach(e=>{const n=e.$from.pos,o=e.$from.nodeAfter;o&&t.push(Y.Decoration.node(n,n+o.nodeSize,{class:"ProseMirror-selectednoderange"}))}),Y.DecorationSet.create(n,t)}function Ae(e,t,n,o={}){const i=[],r=e.node(0),{extendOnBoundaryOverlap:s=!0}=o;"number"==typeof n&&n>=0||(n=e.sameParent(t)?Math.max(0,e.sharedDepth(t.pos)-1):e.sharedDepth(t.pos));const c=new Z.NodeRange(e,t,n),l=0===c.depth?0:r.resolve(c.start).posAtIndex(0);return c.parent.forEach((n,o)=>{const a=l+o,d=a+n.nodeSize,u=function(e,t,n){const o=n.isText||n.isAtom?0:1;return{start:e+o,end:e+t-o}}(a,n.nodeSize,n),h=s?t.pos>=u.start&&e.pos<=u.end:t.pos>u.start&&e.pos<u.end;if(a<c.start||a>=c.end)return;if(!h)return;const p=new U.SelectionRange(r.resolve(a),r.resolve(d));i.push(p)}),i}var Be=class e{constructor(e,t,n){this.anchor=e,this.head=t,this.depth=null!=n?n:0}map(t){return new e(t.map(this.anchor),t.map(this.head),this.depth)}resolve(e){return new Te(e.resolve(this.anchor),e.resolve(this.head),this.depth)}},Te=class e extends U.Selection{constructor(e,t,n,o=1){const{doc:i}=e,r=e===t,s=e.pos===i.content.size&&t.pos===i.content.size,c=r&&!s?i.resolve(t.pos+(o>0?1:-1)):t,l=r&&s?i.resolve(e.pos-(o>0?1:-1)):e,a=Ae(l.min(c),l.max(c),n);super(c.pos>=e.pos?a[0].$from:a[a.length-1].$to,c.pos>=e.pos?a[a.length-1].$to:a[0].$from,a),this.depth=n}get $to(){return this.ranges[this.ranges.length-1].$to}eq(t){return t instanceof e&&t.$from.pos===this.$from.pos&&t.$to.pos===this.$to.pos}map(t,n){const o=t.resolve(n.map(this.anchor)),i=t.resolve(n.map(this.head));return new e(o,i,this.depth)}toJSON(){return{type:"nodeRange",anchor:this.anchor,head:this.head,depth:this.depth}}get isForwards(){return this.head>=this.anchor}get isBackwards(){return!this.isForwards}extendBackwards(){const{doc:t}=this.$from;if(this.isForwards&&this.ranges.length>1){const t=this.ranges.slice(0,-1),n=t[0].$from,o=t[t.length-1].$to;return new e(n,o,this.depth)}const n=this.ranges[0],o=t.resolve(Math.max(0,n.$from.pos-1));return new e(this.$anchor,o,this.depth)}extendForwards(){const{doc:t}=this.$from;if(this.isBackwards&&this.ranges.length>1){const t=this.ranges.slice(1),n=t[0].$from,o=t[t.length-1].$to;return new e(o,n,this.depth)}const n=this.ranges[this.ranges.length-1],o=t.resolve(Math.min(t.content.size,n.$to.pos+1));return new e(this.$anchor,o,this.depth)}static fromJSON(t,n){return new e(t.resolve(n.anchor),t.resolve(n.head),n.depth)}static create(e,t,n,o,i=1){return new this(e.resolve(t),e.resolve(n),o,i)}getBookmark(){return new Be(this.anchor,this.head,this.depth)}};Te.prototype.visible=!1;try{U.Selection.jsonID("nodeRange",Te)}catch{}function ke(e){return e instanceof Te}W.Extension.create({name:"nodeRange",addOptions:()=>({depth:void 0,key:"Mod"}),addKeyboardShortcuts(){return{"Shift-ArrowUp":({editor:e})=>{const{depth:t}=this.options,{view:n,state:o}=e,{doc:i,selection:r,tr:s}=o,{anchor:c,head:l}=r;if(!ke(r)){const e=Te.create(i,c,l,t,-1);return s.setSelection(e),n.dispatch(s),!0}const a=r.extendBackwards();return s.setSelection(a),n.dispatch(s),!0},"Shift-ArrowDown":({editor:e})=>{const{depth:t}=this.options,{view:n,state:o}=e,{doc:i,selection:r,tr:s}=o,{anchor:c,head:l}=r;if(!ke(r)){const e=Te.create(i,c,l,t);return s.setSelection(e),n.dispatch(s),!0}const a=r.extendForwards();return s.setSelection(a),n.dispatch(s),!0},"Mod-a":({editor:e})=>{const{depth:t}=this.options,{view:n,state:o}=e,{doc:i,tr:r}=o,s=Te.create(i,0,i.content.size,t);return r.setSelection(s),n.dispatch(r),!0}}},onSelectionUpdate(){const{selection:e}=this.editor.state;ke(e)&&this.editor.view.dom.classList.add("ProseMirror-noderangeselection")},addProseMirrorPlugins(){let e=!1,t=!1;return[new U.Plugin({key:new U.PluginKey("nodeRange"),props:{attributes:()=>e?{class:"ProseMirror-noderangeselection"}:{class:""},handleDOMEvents:{mousedown:(e,n)=>{const{key:o}=this.options,i=/Mac/.test(navigator.platform),r=!!n.shiftKey,s=!!n.ctrlKey,c=!!n.altKey,l=!!n.metaKey;return(null==o||"Shift"===o&&r||"Control"===o&&s||"Alt"===o&&c||"Meta"===o&&l||"Mod"===o&&(i?l:s))&&(t=!0),!!t&&(document.addEventListener("mouseup",()=>{t=!1;const{state:n}=e,{doc:o,selection:i,tr:r}=n,{$anchor:s,$head:c}=i;if(s.sameParent(c))return;const l=Te.create(o,s.pos,c.pos,this.options.depth);r.setSelection(l),e.dispatch(r)},{once:!0}),!1)}},decorations:n=>{const{selection:o}=n,i=ke(o);if(e=!1,!t)return i?(e=!0,Se(o.ranges)):null;const{$from:r,$to:s}=o;if(!i&&r.sameParent(s))return null;const c=Ae(r,s,this.options.depth);return c.length?(e=!0,Se(c)):null}}})]}});function De(e,t){const n=e.cloneNode(!0),o=[e,...Array.from(e.getElementsByTagName("*"))],i=[n,...Array.from(n.getElementsByTagName("*"))];return o.forEach((e,n)=>{i[n].style.cssText=function(e,t){const n=getComputedStyle(e);if(t)return t.map(e=>e.trim()).filter(e=>e.length>0).map(e=>`${e}:${n.getPropertyValue(e)};`).join("");let o="";for(let i=0;i<n.length;i+=1)o+=`${n[i]}:${n.getPropertyValue(n[i])};`;return o}(e,t)}),n}var Ne=[{id:"listItemFirstChild",evaluate:({parent:e,isFirst:t})=>t&&e&&["listItem","taskItem"].includes(e.type.name)?1e3:0},{id:"listWrapperDeprioritize",evaluate:({node:e})=>{const t=e.firstChild;return t&&["listItem","taskItem"].includes(t.type.name)?1e3:0}},{id:"tableStructure",evaluate:({node:e,parent:t})=>["tableRow","tableCell","tableHeader"].includes(e.type.name)||t&&"tableHeader"===t.type.name?1e3:0},{id:"inlineContent",evaluate:({node:e})=>e.isInline||e.isText?1e3:0}],Me={edges:["left","top"],threshold:12,strength:500};function Ie(e){return void 0===e||"left"===e?{...Me}:"right"===e?{edges:["right","top"],threshold:12,strength:500}:"both"===e?{edges:["left","right","top"],threshold:12,strength:500}:"none"===e?{edges:[],threshold:0,strength:0}:{...Me,...e}}function Pe(e,t,n,o){let i=1e3,r=!1;if(t.every(t=>{const n=t.evaluate(e);return i-=n,!(i<=0)||(r=!0,!1)}),r)return-1;const s=e.view.nodeDOM(e.pos);return i-=function(e,t,n,o){return t&&0!==n.edges.length&&function(e,t,n){if(0===n.edges.length)return!1;const o=t.getBoundingClientRect(),{threshold:i,edges:r}=n;return r.some(t=>"left"===t?e.x-o.left<i:"right"===t?o.right-e.x<i:"top"===t?e.y-o.top<i:"bottom"===t&&o.bottom-e.y<i)}(e,t,n)?n.strength*o:0}(o,s,n,e.depth),i<=0?-1:i}function Re(e,t,n){return Array.from({length:t},(e,n)=>t-1-n).some(t=>n.includes(e.node(t).type.name))}function Oe(e){return Number.isFinite(e.top)&&Number.isFinite(e.bottom)&&Number.isFinite(e.left)&&Number.isFinite(e.right)&&e.width>0&&e.height>0}function Le(e,t){let n="first"===t?e.firstElementChild:e.lastElementChild;for(;n;){const e=n.getBoundingClientRect();if(Oe(e))return e;n="first"===t?n.nextElementSibling:n.previousElementSibling}return null}var $e=e=>{const{x:t,y:n,editor:o,nestedOptions:i}=e,{view:r,state:s}=o,c=function(e,t,n,o=5){if(!Number.isFinite(t)||!Number.isFinite(n))return null;const i=e.dom,r=Le(i,"first"),s=Le(i,"last");if(!r||!s)return null;const c=Math.min(Math.max(r.top+o,n),s.bottom-o),l=Math.abs(r.left-s.left)<.5,a=Math.abs(r.right-s.right)<.5;let d=r;l&&a&&(d=r);const u=Math.min(Math.max(d.left+o,t),d.right-o);return Number.isFinite(u)&&Number.isFinite(c)?{x:u,y:c}:null}(r,t,n,5);if(!c)return{resultElement:null,resultNode:null,pos:null};const{x:l,y:a}=c;if(null==i?void 0:i.enabled){const e=function(e,t,n){if(!Number.isFinite(t.x)||!Number.isFinite(t.y))return null;const o=e.posAtCoords({left:t.x,top:t.y});if(!o)return null;const{doc:i}=e.state,r=i.resolve(o.pos),s=[];n.defaultRules&&s.push(...Ne),s.push(...n.rules);const c=Array.from({length:r.depth},(e,t)=>r.depth-t).map(o=>{const i=r.node(o),c=r.before(o);if(n.allowedContainers&&o>0&&!Re(r,o,n.allowedContainers))return null;const l=o>0?r.node(o-1):null,a=o>0?r.index(o-1):0,d=Pe({node:i,pos:c,depth:o,parent:l,index:a,isFirst:0===a,isLast:a===(l?l.childCount:1)-1,$pos:r,view:e},s,n.edgeDetection,t);return d<0?null:{node:i,pos:c,depth:o,score:d,dom:e.nodeDOM(c)}}).filter(e=>null!==e),l=r.nodeAfter;if(l&&l.isAtom&&!l.isInline){const i=o.pos,a=r.depth+1,d=r.parent,u=r.index(),h=d.childCount;let p=!0;if(n.allowedContainers&&(p=Re(r,a,n.allowedContainers)),p){const o=Pe({node:l,pos:i,depth:a,parent:d,index:u,isFirst:0===u,isLast:u===h-1,$pos:r,view:e},s,n.edgeDetection,t);if(o>=0){const t=e.nodeDOM(i);t&&c.push({node:l,pos:i,depth:a,score:o,dom:t})}}}if(0===c.length)return null;c.sort((e,t)=>t.score!==e.score?t.score-e.score:t.depth-e.depth);const a=c[0];return a.dom?{node:a.node,pos:a.pos,dom:a.dom}:null}(r,{x:l,y:a},i);return e?{resultElement:e.dom,resultNode:e.node,pos:e.pos}:{resultElement:null,resultNode:null,pos:null}}const d=r.root.elementsFromPoint(l,a);let u,h;if(Array.prototype.some.call(d,e=>{if(!r.dom.contains(e))return!1;const t=function(e,t){var n;let o=e;for(;(null==o?void 0:o.parentElement)&&o.parentElement!==t.dom;)o=o.parentElement;if((null==o?void 0:o.parentElement)===t.dom&&(null===(n=o.pmViewDesc)||void 0===n?void 0:n.node))return o}(e,r);return!!t&&(u=t,!0)}),!u){const e=r.posAtCoords({left:l,top:a});if(e){const t=s.doc.resolve(e.pos),n=Math.min(t.depth,1),o=n>0?t.before(n):t.pos,i=s.doc.nodeAt(o);if(i){const e=r.nodeDOM(o);return{resultElement:e instanceof HTMLElement?e:null,resultNode:i,pos:o}}}return{resultElement:null,resultNode:null,pos:null}}try{h=r.posAtDOM(u,0)}catch{return{resultElement:null,resultNode:null,pos:null}}const p=s.doc.nodeAt(h);if(!p){const e=s.doc.resolve(h),t=e.parent;return{resultElement:u,resultNode:t,pos:e.start()}}return{resultElement:u,resultNode:p,pos:h}};function Fe(e,t){const n=e.nodeDOM(t);if(n instanceof Element&&n!==e.dom)return n;const{node:o,offset:i}=e.domAtPos(t),r=o.childNodes[i];return r instanceof Element?r:o instanceof Element?o:o.nodeType===Node.TEXT_NODE&&o.parentElement?o.parentElement:null}function qe(e){var t;null===(t=e.parentNode)||void 0===t||t.removeChild(e)}function ze(e,t,n,o,i){const{view:r}=t;if(!e.dataTransfer)return;const{empty:s,$from:c,$to:l}=r.state.selection,a=function(e,t,n,o){const{doc:i}=t.view.state;if((null==n?void 0:n.enabled)&&(null==o?void 0:o.node)&&o.pos>=0){const e=o.pos,t=o.pos+o.node.nodeSize;return[{$from:i.resolve(e),$to:i.resolve(t)}]}const r=$e({editor:t,x:e.clientX,y:e.clientY,direction:"right",nestedOptions:n});if(!r.resultNode||null===r.pos)return[];const s=r.resultNode.isText||r.resultNode.isAtom?0:-1;return Ae(i.resolve(r.pos),i.resolve(r.pos+r.resultNode.nodeSize+s),0,{extendOnBoundaryOverlap:!1})}(e,t,n,o),d=Ae(c,l,0,{extendOnBoundaryOverlap:!1}),u=d.some(e=>a.find(t=>t.$from===e.$from&&t.$to===e.$to)),h=s||!u?a:d;if(!h.length)return;const{tr:p}=r.state,x=document.createElement("div"),m=h[0].$from.pos,g=h[h.length-1].$to.pos,f=function(e,t){const n=Fe(e,t);return(n?getComputedStyle(n).direction:getComputedStyle(e.dom).direction)||"ltr"}(r,m);x.setAttribute("dir",f);const b=(null==n?void 0:n.enabled)&&(null==o?void 0:o.node),v=1===h.length;let j,w;b&&v?(j=r.state.doc.slice(m,g),w=U.NodeSelection.create(r.state.doc,m)):(w=Te.create(r.state.doc,m,g),j=w.content());const C=function(e){return!e||!e.some(e=>{const t=e.trim().toLowerCase();return"margin"===t||t.startsWith("margin-")})}(i);h.forEach(e=>{const t=Fe(r,e.$from.pos);if(!t)return;const n=De(t,i);C&&(n.style.margin="0"),x.append(n)}),x.style.position="absolute",x.style.top="-10000px",document.body.append(x),e.dataTransfer.clearData();const y=function(e,t){return"rtl"===e?t:0}(f,x.getBoundingClientRect().width);e.dataTransfer.setDragImage(x,y,0);let E=!1;const S=()=>{E||(E=!0,qe(x),document.removeEventListener("drop",S),document.removeEventListener("dragend",S))},A=w instanceof U.NodeSelection?w:void 0;r.dragging={slice:j,move:!0,node:A},p.setSelection(w),r.dispatch(p),document.addEventListener("drop",S),document.addEventListener("dragend",S)}var Ke=(e,t)=>{const n=e.resolve(t),{depth:o}=n;return 0===o?t:n.pos-n.parentOffset-1},He=(e,t)=>{const n=e.nodeAt(t),o=e.resolve(t);let{depth:i}=o,r=n;for(;i>0;){const e=o.node(i);i-=1,0===i&&(r=e)}return r};function Ve(e,t,n){let o=0;for(let i=t;i<n;i+=1)o+=e.child(i).nodeSize;return o}function We(e,t,n,o){try{const i=function(e,t,n,o){const i=e.resolve(t),r=i.node(o);let s=i.index(o);s>=r.childCount&&(s=Math.max(0,r.childCount-n));const c=Math.min(n,r.childCount-s);if(c<=0)return null;const l=i.start(o)+Ve(r,0,s);return{anchor:l,head:l+Ve(r,s,s+c),count:c}}(e,t,n,o);if(!i)return null;const r=Te.create(e,i.anchor,i.head,o);return r.ranges.length===n?r:null}catch{return null}}var Ue=(e,t)=>{const n=q.ySyncPluginKey.getState(e);return n?q.absolutePositionToRelativePosition(t,n.type,n.binding.mapping):null},_e=(e,t)=>{const n=q.ySyncPluginKey.getState(e);return n?q.relativePositionToAbsolutePosition(n.doc,n.type,t,n.binding.mapping)||0:-1},Ge=(e,t)=>{let n=t;for(;(null==n?void 0:n.parentNode)&&n.parentNode!==e.dom;)n=n.parentNode;return n},Xe=new U.PluginKey("dragHandle"),Je=({pluginKey:e=Xe,element:t,editor:n,computePositionConfig:o,getReferencedVirtualElement:i,onNodeChange:s,onElementDragStart:c,onElementDragEnd:l,nestedOptions:a,dragImageProperties:d})=>{const u=document.createElement("div");let h,p=!1,x=null,m=-1,g=null,f=null,b=null,v=null;function j(){b=null,v=null}function w(e,t){v&&(v=function(e,t,n){if(!t.docChanged)return e;if(n.isChangeOrigin&&null!=e.relativeAnchorPos){const t=n.getAbsolutePos(e.relativeAnchorPos);return!Number.isFinite(t)||t<=0?null:{...e,anchorPos:t}}const o=t.mapping.mapResult(e.anchorPos,1);return o.deleted?null:{...e,anchorPos:o.pos}}(v,e,{isChangeOrigin:q.isChangeOrigin(e),getAbsolutePos:e=>_e(t,e)}))}function C(){t&&(t.style.visibility="hidden",t.style.pointerEvents="none")}function y(e){const n=(null==i?void 0:i())||{getBoundingClientRect:()=>e.getBoundingClientRect()};r.computePosition(n,t,o).then(e=>{Object.assign(t.style,{position:e.strategy,left:`${e.x}px`,top:`${e.y}px`})})}function E(e){var o,i;null==c||c(e),ze(e,n,a,{node:x,pos:m},d),o=n.state.selection,b=ke(o)?{anchorPos:o.from,nodeCount:o.ranges.length,depth:null!==(i=o.depth)&&void 0!==i?i:0}:null,t&&(t.dataset.dragging="true"),setTimeout(()=>{t&&(t.style.pointerEvents="none")},0)}function S(e){null==l||l(e),b=null,C(),t&&(t.style.pointerEvents="auto",t.dataset.dragging="false")}function A(e){if(!e.target||!n.view.dom.contains(e.target))return;if((0,W.isFirefox)()){const e=n.view.dom;requestAnimationFrame(()=>{e.isContentEditable&&(e.contentEditable="false",e.contentEditable="true")})}if(!b||n.view.state.selection.empty)return;const t=n.state.selection.from,o=Ue(n.state,t);v={...b,anchorPos:t,relativeAnchorPos:null!=o?o:void 0},n.view.dispatch(n.state.tr.setMeta("addToHistory",!1))}function B(){t.removeEventListener("dragstart",E),t.removeEventListener("dragend",S),document.removeEventListener("drop",A),g&&(cancelAnimationFrame(g),g=null,f=null),j()}return u.appendChild(t),{unbind(){B()},plugin:new U.Plugin({key:"string"==typeof e?new U.PluginKey(e):e,state:{init:()=>({locked:!1}),apply(e,o,i,r){w(e,r);const c=e.getMeta("lockDragHandle"),l=e.getMeta("hideDragHandle");if(void 0!==c&&(p=c),l)return C(),p=!1,x=null,m=-1,null==s||s({editor:n,node:null,pos:-1}),o;if(e.docChanged&&-1!==m&&t)if(q.isChangeOrigin(e)){const e=_e(r,h);e!==m&&(m=e)}else{const t=e.mapping.map(m);t!==m&&(m=t,h=Ue(r,m))}return o}},appendTransaction:(e,t,n)=>function(e){if(!v)return null;const t=We(e.doc,v.anchorPos,v.nodeCount,v.depth);return t?(j(),e.tr.setSelection(t)):(v=null,b=null,null)}(n),view:e=>{var o;return t.draggable=!0,t.style.pointerEvents="auto",t.dataset.dragging="false",null===(o=n.view.dom.parentElement)||void 0===o||o.appendChild(u),u.style.pointerEvents="none",u.style.position="absolute",u.style.top="0",u.style.left="0",u.style.zIndex="10",t.addEventListener("dragstart",E),t.addEventListener("dragend",S),document.addEventListener("drop",A),{update(o,i){if(!t)return;if(!n.isEditable)return void C();if(t.draggable=!p,e.state.doc.eq(i.doc)||-1===m)return;let r=e.nodeDOM(m);if(r=Ge(e,r),r===e.dom)return;if(1!==(null==r?void 0:r.nodeType))return;const c=e.posAtDOM(r,0),l=He(n.state.doc,c),a=Ke(n.state.doc,c);x=l,m=a,h=Ue(e.state,m),null==s||s({editor:n,node:x,pos:m}),y(r)},destroy(){B(),t&&qe(u)}}},props:{handleDOMEvents:{keydown:e=>!(!t||p)&&(!!e.hasFocus()&&(C(),x=null,m=-1,null==s||s({editor:n,node:null,pos:-1}),!1)),mouseleave:(e,t)=>(p||t.target&&!u.contains(t.relatedTarget)&&(C(),x=null,m=-1,null==s||s({editor:n,node:null,pos:-1})),!1),mousemove:(e,o)=>!(!t||p)&&(f={x:o.clientX,y:o.clientY},g||(g=requestAnimationFrame(()=>{if(g=null,!f)return;const{x:o,y:i}=f;f=null;const r=$e({x:o,y:i,direction:"right",editor:n,nestedOptions:a});if(!r.resultElement)return;let c=r.resultElement,l=r.resultNode,d=r.pos;if(!(null==a?void 0:a.enabled)){if(c=Ge(e,c),c===e.dom)return;if(1!==(null==c?void 0:c.nodeType))return;const t=e.posAtDOM(c,0);l=He(n.state.doc,t),d=Ke(n.state.doc,t)}var u;l!==x&&(x=l,m=null!==(u=d)&&void 0!==u?u:-1,h=Ue(e.state,m),null==s||s({editor:n,node:x,pos:m}),y(c),t&&(n.isEditable?(t.style.visibility="",t.style.pointerEvents="auto"):C()))})),!1)}}})}};function Ye(e){var t,n;return!1===e||void 0===e?{enabled:!1,rules:[],defaultRules:!0,allowedContainers:void 0,edgeDetection:Ie("none")}:!0===e?{enabled:!0,rules:[],defaultRules:!0,allowedContainers:void 0,edgeDetection:Ie("left")}:{enabled:!0,rules:null!==(t=e.rules)&&void 0!==t?t:[],defaultRules:null===(n=e.defaultRules)||void 0===n||n,allowedContainers:e.allowedContainers,edgeDetection:Ie(e.edgeDetection)}}var Ze={placement:"left-start",strategy:"absolute"},Qe=(W.Extension.create({name:"dragHandle",addOptions:()=>({render(){const e=document.createElement("div");return e.classList.add("drag-handle"),e},computePositionConfig:{},locked:!1,onNodeChange:()=>null,onElementDragStart:void 0,onElementDragEnd:void 0,nested:!1,dragImageProperties:void 0}),addCommands(){return{lockDragHandle:()=>({editor:e})=>(this.options.locked=!0,e.commands.setMeta("lockDragHandle",this.options.locked)),unlockDragHandle:()=>({editor:e})=>(this.options.locked=!1,e.commands.setMeta("lockDragHandle",this.options.locked)),toggleDragHandle:()=>({editor:e})=>(this.options.locked=!this.options.locked,e.commands.setMeta("lockDragHandle",this.options.locked))}},addProseMirrorPlugins(){const e=this.options.render(),t=Ye(this.options.nested);return[Je({computePositionConfig:{...Ze,...this.options.computePositionConfig},getReferencedVirtualElement:this.options.getReferencedVirtualElement,element:e,editor:this.editor,onNodeChange:this.options.onNodeChange,onElementDragStart:this.options.onElementDragStart,onElementDragEnd:this.options.onElementDragEnd,nestedOptions:t,dragImageProperties:this.options.dragImageProperties}).plugin]}}),e=>{const{className:t="drag-handle",children:n,editor:o,pluginKey:i=Xe,onNodeChange:r,onElementDragStart:s,onElementDragEnd:c,getReferencedVirtualElement:l,computePositionConfig:a=Ze,nested:d=!1}=e,u=(0,V.useRef)(null);null===u.current&&"undefined"!=typeof document&&(u.current=document.createElement("div"));const h={onNodeChange:r,onElementDragStart:s,onElementDragEnd:c,getReferencedVirtualElement:l},p=(0,V.useRef)(h);p.current=h;const x=(0,V.useMemo)(()=>Ye(d),[JSON.stringify(d)]);(0,V.useEffect)(()=>{const e=u.current;e&&(e.className=t)},[t]),(0,V.useEffect)(()=>{if("undefined"==typeof document)return;if(o.isDestroyed)return;const e=u.current;if(!e)return;e.style.visibility="hidden",e.style.position="absolute",e.dataset.dragging="false";const{plugin:t,unbind:n}=Je({editor:o,element:e,pluginKey:i,computePositionConfig:{...Ze,...a},onElementDragStart:e=>{var t,n;return null===(t=(n=p.current).onElementDragStart)||void 0===t?void 0:t.call(n,e)},onElementDragEnd:e=>{var t,n;return null===(t=(n=p.current).onElementDragEnd)||void 0===t?void 0:t.call(n,e)},onNodeChange:e=>{var t,n;return null===(t=(n=p.current).onNodeChange)||void 0===t?void 0:t.call(n,e)},getReferencedVirtualElement:()=>{var e,t,n;return null!==(e=null===(t=(n=p.current).getReferencedVirtualElement)||void 0===t?void 0:t.call(n))&&void 0!==e?e:null},nestedOptions:x});return o.registerPlugin(t),()=>{o.isDestroyed||o.unregisterPlugin(i),n()}},[o,i,a,x]);const m=u.current;return m?(0,X.createPortal)(n,m):null});var et={plaintext:"Plain Text",js:"JavaScript",ts:"TypeScript",css:"CSS",html:"HTML",python:"Python",bash:"Bash"};function tt({listLanguages:e}){const{t:i}=n.useLocale(),[r,s]=(0,V.useState)(!1),c=g.useEditorInstance(),l=(0,V.useMemo)(()=>{const{selection:e}=c.state,t=e.$from.parent;if("codeBlock"===t.type.name){const e=t.attrs.language||"plaintext";return et[e]||e}},[c.state,e]),a=(0,V.useMemo)(()=>{let t=e||[];return e?.includes("plaintext")||(t=["plaintext",...t]),t.map(e=>({label:et[e]||e,value:e}))},[e]);return(0,_.jsxs)(d.Popover,{modal:!0,onOpenChange:s,open:r,children:[(0,_.jsx)(d.PopoverTrigger,{asChild:!0,className:"hover:richtext-bg-accent data-[state=on]:richtext-bg-accent",children:(0,_.jsxs)(t.ActionButton,{dataState:!!l,children:[l?(0,_.jsx)(_.Fragment,{children:l}):(0,_.jsx)(_.Fragment,{children:i("editor.paragraph.tooltip")}),(0,_.jsx)(o.IconComponent,{className:"richtext-ml-1 richtext-size-3 richtext-text-zinc-500",name:"MenuDown"})]})}),(0,_.jsx)(d.PopoverContent,{align:"start",className:"!richtext-w-[initial] !richtext-p-[4px]",hideWhenDetached:!0,side:"bottom",children:a?.map(e=>(0,_.jsxs)("div",{className:"richtext-flex richtext-w-full richtext-items-center richtext-gap-3 richtext-rounded-sm !richtext-border-none !richtext-bg-transparent richtext-px-2 richtext-py-1.5 richtext-text-left richtext-text-sm richtext-text-foreground !richtext-outline-none richtext-transition-colors hover:!richtext-bg-accent",onClick:t=>{t.preventDefault(),c.chain().focus().setCodeBlock({language:e.value}).run(),s(!1)},children:[(0,_.jsx)("div",{className:"!richtext-min-w-[20px]",children:l===e.value&&(0,_.jsx)(G.Check,{size:16})}),(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-1",children:e.label})]},e.value))})]})}exports.RichTextBubbleCallout=function(){const e=g.useEditableEditor(),o=g.useEditorInstance(),{t:r}=n.useLocale(),{type:c,title:d,body:h}=w.useAttributes(o,u.Callout.name,{type:"note",title:"",body:""}),[p,x]=(0,V.useState)(!1),[m,f]=(0,V.useState)("note"),[b,v]=(0,V.useState)(""),[j,C]=(0,V.useState)("");(0,V.useEffect)(()=>{p&&(f(c||"note"),v(d||""),C(h||""))},[p,c,d,h]);const y=(0,V.useCallback)(()=>{o&&(o.chain().updateAttributes(u.Callout.name,{type:m,title:b,body:j}).focus().run(),x(!1))},[o,m,b,j]),E=(0,V.useCallback)(()=>{x(!1)},[]),S=(0,V.useCallback)(()=>{te(u.Callout.name,o)},[o]),A=(0,V.useCallback)(()=>o.isActive(u.Callout.name),[o]);return e?(0,_.jsx)(J.BubbleMenu,{editor:o,options:{placement:"top",offset:8,flip:!0},pluginKey:"RichTextBubbleCallout",shouldShow:A,children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsxs)(s.Dialog,{onOpenChange:x,open:p,children:[(0,_.jsx)(s.DialogTrigger,{asChild:!0,children:(0,_.jsx)(t.ActionButton,{icon:"Pencil",tooltip:r("editor.callout.edit.title")})}),(0,_.jsxs)(s.DialogContent,{children:[(0,_.jsx)(s.DialogTitle,{children:r("editor.callout.edit.title")}),(0,_.jsxs)("div",{className:"richtext-space-y-4 richtext-py-4",children:[(0,_.jsxs)("div",{className:"richtext-space-y-2",children:[(0,_.jsx)(a.Label,{children:r("editor.callout.dialog.type")}),(0,_.jsxs)(u.Select,{onValueChange:f,value:m,children:[(0,_.jsx)(u.SelectTrigger,{children:(0,_.jsx)(u.SelectValue,{className:"richtext-text-accent",placeholder:r("editor.callout.dialog.type.placeholder")})}),(0,_.jsx)(u.SelectContent,{children:ne.map(e=>(0,_.jsx)(u.SelectItem,{value:e.value,children:r(`editor.callout.type.${e.value}`)},e.value))})]})]}),(0,_.jsxs)("div",{className:"richtext-space-y-2",children:[(0,_.jsx)(a.Label,{children:r("editor.callout.dialog.title.label")}),(0,_.jsx)(l.Input,{onChange:e=>v(e.target.value),placeholder:r("editor.callout.dialog.title.placeholder"),type:"text",value:b})]}),(0,_.jsxs)("div",{className:"richtext-space-y-2",children:[(0,_.jsx)(a.Label,{children:r("editor.callout.dialog.body.label")}),(0,_.jsx)(l.Input,{onChange:e=>C(e.target.value),placeholder:r("editor.callout.dialog.body.placeholder"),type:"text",value:j})]})]}),(0,_.jsxs)(s.DialogFooter,{children:[(0,_.jsx)(i.Button,{onClick:E,variant:"outline",children:r("editor.callout.dialog.button.cancel")}),(0,_.jsx)(i.Button,{onClick:y,children:r("editor.callout.dialog.button.apply")})]})]})]}),(0,_.jsx)(t.ActionButton,{action:S,icon:"Trash2",tooltip:r("editor.delete")})]})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleCodeBlock=function(){const e=g.useEditableEditor(),n=g.useEditorInstance(),o=g.useExtension(H.CodeBlock.name),i=(0,V.useCallback)(({editor:e})=>e.isActive(H.CodeBlock.name),[]),r=(0,V.useMemo)(()=>o?o.options?.lowlight?.listLanguages?.()||["plaintext","html","css","js","ts"]:[],[o]),s=(0,V.useCallback)(()=>te(H.CodeBlock.name,n),[n]);return e?(0,_.jsx)(J.BubbleMenu,{editor:n,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleCodeBlock",shouldShow:i,getReferencedVirtualElement:()=>{const{from:e}=n.state.selection,t=n.view.domAtPos(e).node.parentElement;return t?{getBoundingClientRect:()=>t.getBoundingClientRect()}:null},children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsx)(tt,{listLanguages:r}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),(0,_.jsx)(t.ActionButton,{action:()=>{const e=(()=>{const{from:e}=n.state.selection,t=n.state.doc.resolve(e);for(let n=t.depth;n>=0;n--){const e=t.node(n);if("codeBlock"===e.type.name)return e.textContent}return""})();navigator.clipboard.writeText(e)},tooltip:"Copy",children:(0,_.jsx)(G.Copy,{size:16})}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),(0,_.jsx)(t.ActionButton,{action:s,tooltip:"Delete",children:(0,_.jsx)(G.Trash2,{size:16})})]})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleColumns=function(){const e=g.useEditableEditor(),o=g.useEditorInstance(),{t:i}=n.useLocale(),r=(0,V.useCallback)(()=>o.isActive(C.MultipleColumnNode.name),[o]),s=(0,V.useCallback)(()=>te(C.MultipleColumnNode.name,o),[o]),c=(0,V.useCallback)(()=>o.chain().focus().addColBefore().run(),[o]),l=(0,V.useCallback)(()=>o.chain().focus().addColAfter().run(),[o]),a=(0,V.useCallback)(()=>o.chain().focus().deleteCol().run(),[o]);return e?(0,_.jsx)(J.BubbleMenu,{editor:o,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleColumns",shouldShow:r,children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsx)(t.ActionButton,{action:c,icon:"ColumnAddLeft",tooltip:i("editor.table.menu.insertColumnBefore")}),(0,_.jsx)(t.ActionButton,{action:l,icon:"ColumnAddRight",tooltip:i("editor.table.menu.insertColumnAfter")}),(0,_.jsx)(t.ActionButton,{action:a,icon:"DeleteColumn",tooltip:i("editor.table.menu.deleteColumn")}),(0,_.jsx)(t.ActionButton,{action:s,icon:"Trash2",tooltip:i("editor.table.menu.delete_column")})]})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleDrawer=function(){const{lang:e,t:o}=n.useLocale(),i=g.useEditableEditor(),r=g.useEditorInstance(),s=w.useAttributes(r,y.Drawer.name),c=g.useExtension(y.Drawer.name),l=(0,V.useMemo)(()=>function(e,n){return[...le(e,n),{type:"edit",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.edit"),icon:"Pencil",action:()=>!0}},{type:"remove",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.remove"),icon:"Trash2",action:()=>{const{state:t,dispatch:n}=e.view;(0,ee.deleteSelection)(t,n)}}}]}(r,o),[r,e,o]);return i?(0,_.jsx)(J.BubbleMenu,{editor:r,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleDrawer",shouldShow:({editor:e})=>{const{selection:t}=e.view.state,{$from:n,to:o}=t;let i=!1;return e.view.state.doc.nodesBetween(n.pos,o,e=>{if(e.type.name===y.Drawer.name)return i=!0,!1}),i},children:l?.length?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:l?.map((e,t)=>"edit"===e.type&&s?.src?(0,_.jsx)(he,{attrs:s,editor:r,extension:c},`bubbleMenu-drawer-${t}`):(0,_.jsx)(pe,{editor:r,item:e},`bubbleMenu-drawer-${t}`))}):(0,_.jsx)(_.Fragment,{})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleDrawio=function(){const e=g.useEditableEditor(),o=g.useEditorInstance(),{t:i}=n.useLocale(),{width:r}=function(e){const t=e.options.element;me.has("width")||me.set("width",t.clientWidth),me.has("width")&&me.get("width")<=0&&me.set("width",t.clientWidth);const n=new MutationObserver(function(){me.set("width",t.clientWidth)});return n.observe(t,{attributes:!0,childList:!0,subtree:!0}),e.on("destroy",()=>{n.disconnect()}),{width:me.get("width")}}(o),s=w.useAttributes(o,j.Drawio.name,{defaultShowPicker:!1,createUser:"",width:0,height:0}),{defaultShowPicker:c,createUser:l,width:a,height:d}=s,u=(0,V.useCallback)(e=>{o.chain().updateAttributes(j.Drawio.name,e).setNodeSelection(o.state.selection.from).focus().run()},[o]),h=(0,V.useCallback)(()=>{const e=m.EVENTS.DRAWIO?.(o.id)||`drawio-${o.id}`;m.emit(e,s)},[o,s]),p=(0,V.useCallback)(()=>o.isActive(j.Drawio.name),[o]),x=(0,V.useCallback)(()=>te(j.Drawio.name,o),[o]);return(0,V.useEffect)(()=>{c&&(h(),o.chain().updateAttributes(j.Drawio.name,{defaultShowPicker:!1}).focus().run())},[l,c,o,h]),e?(0,_.jsx)(J.BubbleMenu,{editor:o,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleDrawio",shouldShow:p,children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsx)(t.ActionButton,{action:h,icon:"Pencil",tooltip:i("editor.edit")}),(0,_.jsx)(xe,{height:d,maxWidth:r,onOk:u,width:a,children:(0,_.jsx)(t.ActionButton,{icon:"Settings",tooltip:i("editor.settings")})}),(0,_.jsx)(t.ActionButton,{action:x,icon:"Trash2",tooltip:i("editor.delete")})]})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleIframe=function(){const e=g.useEditableEditor(),o=g.useEditorInstance(),{t:r}=n.useLocale(),{width:c,height:a,src:d}=w.useAttributes(o,S.Iframe.name,{width:0,height:0,src:"",defaultShowPicker:!1}),[u,h]=(0,V.useState)(!1),[p,x]=(0,V.useState)(""),m=(0,V.useCallback)(e=>{e?.preventDefault?.(),h(!1)},[h]);(0,V.useEffect)(()=>{u&&x(d)},[u,d]);const f=(0,V.useCallback)(e=>{e?.preventDefault?.();const t=S.getServiceSrc(p);o.chain().updateAttributes(S.Iframe.name,{src:t?.src||p}).setNodeSelection(o.state.selection.from).focus().run(),h(!1)},[o,p,h]),b=(0,V.useCallback)(()=>{window.open(d,"_blank")},[d]),v=(0,V.useCallback)(e=>{o.chain().updateAttributes(S.Iframe.name,e).setNodeSelection(o.state.selection.from).focus().run()},[o]),j=(0,V.useCallback)(()=>o.isActive(S.Iframe.name)&&!d,[o,d]),C=(0,V.useCallback)(()=>te(S.Iframe.name,o),[o]);return e?(0,_.jsx)(_.Fragment,{children:(0,_.jsx)(J.BubbleMenu,{editor:o,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleIframe",shouldShow:j,children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsx)(t.ActionButton,{action:b,icon:"Eye",tooltip:"Visit Link"}),(0,_.jsxs)(s.Dialog,{onOpenChange:h,open:u,children:[(0,_.jsx)(s.DialogTrigger,{asChild:!0,children:(0,_.jsx)(t.ActionButton,{icon:"Pencil",tooltip:"Open Edit Link"})}),(0,_.jsxs)(s.DialogContent,{children:[(0,_.jsx)(s.DialogHeader,{children:(0,_.jsx)(s.DialogTitle,{children:"Edit Link Iframe"})}),(0,_.jsx)(l.Input,{autoFocus:!0,onInput:e=>x(e.target.value),placeholder:"Enter link",type:"url",value:p}),(0,_.jsxs)(s.DialogFooter,{children:[(0,_.jsx)(i.Button,{onClick:m,type:"button",children:"Cancel"}),(0,_.jsx)(i.Button,{onClick:f,type:"button",children:"OK"})]})]})]}),(0,_.jsx)(xe,{height:a,onOk:v,width:c,children:(0,_.jsx)(t.ActionButton,{icon:"Settings",tooltip:r("editor.settings")})}),(0,_.jsx)(t.ActionButton,{action:C,icon:"Trash2",tooltip:r("editor.delete")})]})})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleImage=function(){const{lang:e,t:o}=n.useLocale(),i=g.useEditableEditor(),r=g.useEditorInstance(),s=(0,V.useMemo)(()=>function(e,n){return[{type:"flipX",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.tooltip.flipX"),icon:"FlipX",action:()=>{const{flipX:t}=e.getAttributes("image");e.chain().focus(void 0,{scrollIntoView:!1}).updateImage({flipX:!t}).run()}}},{type:"flipY",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.tooltip.flipY"),icon:"FlipY",action:()=>{const{flipY:t}=e.getAttributes("image");e.chain().focus(void 0,{scrollIntoView:!1}).updateImage({flipY:!t}).run()}}},...oe(e,n),...re(e,n),{type:"remove",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.remove"),icon:"Trash2",action:()=>{const{state:t,dispatch:n}=e.view;(0,ee.deleteSelection)(t,n)}}}]}(r,o),[r,e,o]);return i?(0,_.jsx)(J.BubbleMenu,{editor:r,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleImage",shouldShow:({editor:e})=>{const{selection:t}=e.view.state,{$from:n,to:o}=t;let i=!1;return e.view.state.doc.nodesBetween(n.pos,o,e=>{if(function(e){return e.type.name===x.Image.name}(e))return i=!0,!1}),i},children:s?.length?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:s?.map((e,t)=>(0,_.jsx)(be,{editor:r,item:e},`bubbleMenu-image-${t}`))}):(0,_.jsx)(_.Fragment,{})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleImageGif=function(){const{lang:e,t:o}=n.useLocale(),i=g.useEditableEditor(),r=g.useEditorInstance(),s=(0,V.useMemo)(()=>function(e,n){return[...ie(e,n),...se(e,n),{type:"remove",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.remove"),icon:"Trash2",action:()=>{const{state:t,dispatch:n}=e.view;(0,ee.deleteSelection)(t,n)}}}]}(r,o),[r,o,e]);return i?(0,_.jsx)(J.BubbleMenu,{editor:r,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleImageGif",shouldShow:({editor:e})=>{const{selection:t}=e.view.state,{$from:n,to:o}=t;let i=!1;return e.view.state.doc.nodesBetween(n.pos,o,e=>{if(function(e){return e.type.name===T.ImageGif.name}(e))return i=!0,!1}),i},children:s?.length?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:s?.map((e,t)=>(0,_.jsx)(be,{editor:r,item:e},`bubbleMenu-image-gif-${t}`))}):(0,_.jsx)(_.Fragment,{})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleKatex=function(){const e=g.useEditableEditor(),n=g.useEditorInstance(),[o,i]=(0,V.useState)(!1),r=(0,V.useCallback)(()=>n.isActive(w.Katex.name),[n]),s=(0,V.useCallback)(()=>te(w.Katex.name,n),[n]);return e?(0,_.jsx)(J.BubbleMenu,{editor:n,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleKatex",shouldShow:r,children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsx)(ge,{toggleVisible:i,visible:o,children:(0,_.jsx)(t.ActionButton,{action:()=>i(!o),tooltip:"Edit",children:(0,_.jsx)(G.Pencil,{size:16})})}),(0,_.jsx)(t.ActionButton,{action:s,tooltip:"Delete",children:(0,_.jsx)(G.Trash2,{size:16})})]})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleLink=function(){const e=g.useEditableEditor(),t=g.useEditorInstance(),[n,o]=(0,V.useState)(!1),i=w.useAttributes(t,B.Link.name)?.href,r=(0,V.useCallback)(({editor:e})=>e.isActive(B.Link.name),[]),s=(0,V.useCallback)(()=>{t.chain().extendMarkRange("link").unsetLink().focus().run(),o(!1)},[t]);return e?(0,_.jsx)(J.BubbleMenu,{editor:t,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleLink",shouldShow:r,children:(0,_.jsx)(_.Fragment,{children:n?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-4 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:(0,_.jsx)(B.LinkEditBlock,{editor:t,onClose:()=>{o(!1)},onSetLink:(e,n,i)=>{const{from:r}=t.state.selection,s=r+(n?.length??0);t.chain().extendMarkRange("link").insertContent({type:"text",text:n,marks:[{type:"link",attrs:{href:e,target:i?"_blank":""}}]}).setLink({href:e}).setTextSelection({from:r,to:s}).focus().run(),o(!1)}})}):(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:(0,_.jsx)(fe,{editor:t,link:i,onClear:s,onEdit:()=>{o(!0)}})})})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleMenuDragHandle=function(){const e=g.useEditorInstance(),i=g.useEditableEditor(),{t:r}=n.useLocale(),[s,l]=(0,V.useState)(null),[a,d]=(0,V.useState)(-1),[u,h]=(0,V.useState)(!1),p=e?.extensionManager?.extensions?.some(e=>e?.name===L.TextAlign.name),x=e?.extensionManager?.extensions?.some(e=>e?.name===K.Indent.name),m=e?.extensionManager?.extensions?.some(e=>e?.name===z.Clear.name);function f(t){e.commands.setTextAlign(t)}const b=(0,V.useCallback)(e=>{e.node&&l(e.node),d(e.pos),requestAnimationFrame(()=>{e.editor.commands.focus()})},[]);(0,V.useEffect)(()=>(u?e.commands.setMeta("lockDragHandle",!0):e.commands.setMeta("lockDragHandle",!1),()=>{e.commands.setMeta("lockDragHandle",!1)}),[u]);const v=e=>{i&&h(e)};return(0,_.jsx)(Qe,{className:"richtext-transition-all richtext-duration-200 richtext-ease-out",editor:e,onNodeChange:b,pluginKey:"RichTextBubbleMenuDragHandle",children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-0.5",children:[(0,_.jsx)(t.ActionButton,{disabled:!i,icon:"Grip",tooltip:r("editor.draghandle.grip"),action:e=>{e.preventDefault(),e.stopPropagation(),v(!u)}}),(0,_.jsxs)(c.DropdownMenu,{onOpenChange:v,open:u,children:[(0,_.jsx)(c.DropdownMenuTrigger,{className:"richtext-pointer-events-none"}),(0,_.jsxs)(c.DropdownMenuContent,{align:"start",className:"richtext-w-48",hideWhenDetached:!0,side:"bottom",sideOffset:0,children:[(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3 richtext-bg-opacity-10 hover:richtext-bg-red-400 hover:richtext-bg-opacity-20 focus:richtext-bg-red-400 focus:richtext-bg-opacity-30 focus:richtext-text-red-500 dark:hover:richtext-bg-opacity-20 dark:hover:richtext-text-red-500",onClick:function(){e.chain().setMeta("hideDragHandle",!0).setNodeSelection(a).deleteSelection().run()},children:[(0,_.jsx)(o.IconComponent,{name:"Trash2"}),(0,_.jsx)("span",{children:r("editor.remove")})]}),m?(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",onClick:function(){const t=e.chain();t.setNodeSelection(a).unsetAllMarks(),"paragraph"!==s?.type.name&&t.setParagraph(),t.run()},children:[(0,_.jsx)(o.IconComponent,{name:"PaintRoller"}),(0,_.jsx)("span",{children:r("editor.clear.tooltip")})]}):null,(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",onClick:function(){e.commands.setNodeSelection(a);const{$anchor:t}=e.state.selection,n=t.node(1)||e.state.selection.node;e.chain().setMeta("hideDragHandle",!0).insertContentAt(a+(s?.nodeSize||0),n.toJSON()).run()},children:[(0,_.jsx)(o.IconComponent,{name:"Copy"}),(0,_.jsx)("span",{children:r("editor.copy")})]}),p||x?(0,_.jsx)(c.DropdownMenuSeparator,{}):null,p?(0,_.jsxs)(c.DropdownMenuSub,{children:[(0,_.jsxs)(c.DropdownMenuSubTrigger,{className:"richtext-flex richtext-gap-3",children:[(0,_.jsx)(o.IconComponent,{name:"AlignCenter"}),(0,_.jsx)("span",{children:r("editor.textalign.tooltip")})]}),(0,_.jsx)(c.DropdownMenuPortal,{children:(0,_.jsxs)(c.DropdownMenuSubContent,{children:[(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",onClick:()=>f("left"),children:[(0,_.jsx)(o.IconComponent,{name:"AlignLeft"}),(0,_.jsx)("span",{children:r("editor.textalign.left.tooltip")})]}),(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",onClick:()=>f("center"),children:[(0,_.jsx)(o.IconComponent,{name:"AlignCenter"}),(0,_.jsx)("span",{children:r("editor.textalign.center.tooltip")})]}),(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",onClick:()=>f("right"),children:[(0,_.jsx)(o.IconComponent,{name:"AlignRight"}),(0,_.jsx)("span",{children:r("editor.textalign.right.tooltip")})]})]})})]}):null,x?(0,_.jsxs)(c.DropdownMenuSub,{children:[(0,_.jsxs)(c.DropdownMenuSubTrigger,{className:"richtext-flex richtext-gap-3",children:[(0,_.jsx)(o.IconComponent,{name:"IndentIncrease"}),(0,_.jsx)("span",{children:r("editor.indent")})]}),(0,_.jsx)(c.DropdownMenuPortal,{children:(0,_.jsxs)(c.DropdownMenuSubContent,{children:[(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",disabled:s?.attrs?.indent>=K.IndentProps.max,onClick:function(){const t=K.setNodeIndentMarkup(e.state.tr,a,1);t.setMeta("hideDragHandle",!0),e.view.dispatch&&e.view.dispatch(t)},children:[(0,_.jsx)(o.IconComponent,{name:"IndentIncrease"}),(0,_.jsx)("span",{children:r("editor.indent.tooltip")})]}),(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",disabled:s?.attrs?.indent<=K.IndentProps.min,onClick:function(){const t=K.setNodeIndentMarkup(e.state.tr,a,-1);e.view.dispatch&&e.view.dispatch(t)},children:[(0,_.jsx)(o.IconComponent,{name:"IndentDecrease"}),(0,_.jsx)("span",{children:r("editor.outdent.tooltip")})]})]})})]}):null]})]})]})})},exports.RichTextBubbleMermaid=function(){const{lang:e,t:o}=n.useLocale(),i=g.useEditableEditor(),r=g.useEditorInstance(),s=w.useAttributes(r,k.Mermaid.name),c=g.useExtension(k.Mermaid.name),l=(0,V.useMemo)(()=>function(e,n){return[...ce(e,n),{type:"edit",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.edit"),icon:"Pencil",action:()=>!0}},{type:"remove",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.remove"),icon:"Trash2",action:()=>{const{state:t,dispatch:n}=e.view;(0,ee.deleteSelection)(t,n)}}}]}(r,o),[r,e,o]);return i?(0,_.jsx)(J.BubbleMenu,{editor:r,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleMermaid",shouldShow:({editor:e})=>{const{selection:t}=e.view.state,{$from:n,to:o}=t;let i=!1;return e.view.state.doc.nodesBetween(n.pos,o,e=>{if(function(e){return e.type.name===k.Mermaid.name}(e))return i=!0,!1}),i},children:l?.length?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:l?.map((e,t)=>"edit"===e.type&&s?.src?(0,_.jsx)(je,{attrs:s,editor:r,extension:c},`bubbleMenu-mermaid-${t}`):(0,_.jsx)(we,{editor:r,item:e},`bubbleMenu-mermaid-${t}`))}):(0,_.jsx)(_.Fragment,{})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleTable=function({hiddenActions:e=[]}){const{t:o}=n.useLocale(),i=g.useEditableEditor(),r=g.useEditorInstance(),s=t=>e.includes(t);return i?(0,_.jsx)(J.BubbleMenu,{editor:r,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleTable",shouldShow:({editor:e})=>(0,W.isActive)(e.view.state,D.Table.name),children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[!s("addColumnBefore")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().addColumnBefore().run()},disabled:!r?.can()?.addColumnBefore?.(),icon:"BetweenHorizonalEnd",tooltip:o("editor.table.menu.insertColumnBefore"),tooltipOptions:{sideOffset:15}}),!s("addColumnAfter")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().addColumnAfter().run()},disabled:!r?.can()?.addColumnAfter?.(),icon:"BetweenHorizonalStart",tooltip:o("editor.table.menu.insertColumnAfter"),tooltipOptions:{sideOffset:15}}),!s("deleteColumn")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().deleteColumn().run()},disabled:!r?.can().deleteColumn?.(),icon:"DeleteColumn",tooltip:o("editor.table.menu.deleteColumn"),tooltipOptions:{sideOffset:15}}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),!s("addRowAbove")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().addRowBefore().run()},disabled:!r?.can().addRowBefore?.(),icon:"BetweenVerticalEnd",tooltip:o("editor.table.menu.insertRowAbove"),tooltipOptions:{sideOffset:15}}),!s("addRowBelow")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().addRowAfter().run()},disabled:!r?.can()?.addRowAfter?.(),icon:"BetweenVerticalStart",tooltip:o("editor.table.menu.insertRowBelow"),tooltipOptions:{sideOffset:15}}),!s("deleteRow")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().deleteRow().run()},disabled:!r?.can()?.deleteRow?.(),icon:"DeleteRow",tooltip:o("editor.table.menu.deleteRow"),tooltipOptions:{sideOffset:15}}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),!s("mergeCells")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().mergeCells().run()},disabled:!r?.can()?.mergeCells?.(),icon:"TableCellsMerge",tooltip:o("editor.table.menu.mergeCells"),tooltipOptions:{sideOffset:15}}),!s("splitCells")&&(0,_.jsx)(t.ActionButton,{action:function(){r?.chain().focus().splitCell().run()},disabled:!r?.can()?.splitCell?.(),icon:"TableCellsSplit",tooltip:o("editor.table.menu.splitCells"),tooltipOptions:{sideOffset:15}}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),!s("deleteTable")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().deleteTable().run()},disabled:!r?.can()?.deleteTable?.(),icon:"Trash2",tooltip:o("editor.table.menu.deleteTable"),tooltipOptions:{sideOffset:15}})]})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleText=function({buttonBubble:e}){const t=g.useEditorInstance();return g.useEditableEditor()?(0,_.jsx)(J.BubbleMenu,{editor:t,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleText",shouldShow:({editor:e})=>{const{selection:t}=e.view.state,{$from:n,to:o}=t;return!e.isActive("codeBlock")&&(n.pos!==o&&("closed"===v.getAiState(e.view.state)?.panel.status&&t instanceof U.TextSelection))},children:e?(0,_.jsx)(_.Fragment,{children:e}):(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:(0,_.jsx)(Ee,{})})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleTwitter=function(){const{t:e}=n.useLocale(),o=g.useEditableEditor(),i=g.useEditorInstance(),[r,s]=(0,V.useState)(!1),c=(0,V.useCallback)(({editor:e})=>e.isActive(F.Twitter.name),[]),l=(0,V.useCallback)(()=>te(F.Twitter.name,i),[i]);return o?(0,_.jsx)(J.BubbleMenu,{editor:i,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleTwitter",shouldShow:c,children:(0,_.jsx)(_.Fragment,{children:r?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-4 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:(0,_.jsx)(F.FormEditLinkTwitter,{editor:i,onSetLink:e=>{i.commands.updateTweet({src:e}),s(!1)}})}):(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsx)(t.ActionButton,{icon:"Pencil",tooltip:e("editor.link.edit.tooltip"),tooltipOptions:{sideOffset:15},action:()=>{s(!0)}}),(0,_.jsx)(t.ActionButton,{action:l,icon:"Trash",tooltip:e("editor.delete"),tooltipOptions:{sideOffset:15}})]})})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleVideo=function(){const{t:e}=n.useLocale(),o=g.useEditableEditor(),i=g.useEditorInstance(),r=(0,V.useMemo)(()=>function(e,n){return[...de(e,n),...ae(e),{type:"remove",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.remove"),icon:"Trash2",action:()=>{const{state:t,dispatch:n}=e.view;(0,ee.deleteSelection)(t,n)}}}]}(i,e),[i,e]);return o?(0,_.jsx)(J.BubbleMenu,{editor:i,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleVideo",shouldShow:({editor:e})=>{const{selection:t}=e.view.state,{$from:n,to:o}=t;let i=!1;return e.view.state.doc.nodesBetween(n.pos,o,e=>{if(function(e){return e.type.name===b.Video.name}(e))return i=!0,!1}),i},children:r?.length?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:r?.map((e,t)=>(0,_.jsx)(be,{editor:i,item:e},`bubbleMenu-video-${t}`))}):(0,_.jsx)(_.Fragment,{})}):(0,_.jsx)(_.Fragment,{})};
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./rolldown-runtime-BeavJI0R.cjs"),t=require("./toggle-JU5XOZYT.cjs"),n=require("./locales-mNtGplJd.cjs"),o=require("./Icon-CC1yoE4E.cjs"),i=require("./button-5s-zJAUQ.cjs"),r=require("./floating-ui.dom-DG-jWCyc.cjs"),s=require("./dialog-DbI7mYml.cjs"),c=require("./dropdown-menu-By9VjdjW.cjs"),l=require("./input-qTd6QuLt.cjs"),a=require("./label-Byrl10cV.cjs"),d=require("./popover-C3EbRkjg.cjs"),u=require("./Callout-yloRpaNf.cjs"),h=require("./separator-BIwOsO40.cjs"),p=require("./textarea-DNm9deBy.cjs"),x=require("./ImageCropper-vrxj3_Sf.cjs"),m=require("./events.constant-BkYOoqSk.cjs"),g=require("./useButtonProps-DbMOdE1Q.cjs"),f=require("./file-B1Z0XcVJ.cjs"),b=require("./Video-BM26AuBN.cjs"),v=require("./Ai-DVWZg0-D.cjs"),j=require("./Drawio-CoTNWfCf.cjs"),w=require("./Katex-C2xjuEa8.cjs"),C=require("./Column-D0z2BXGZ.cjs"),y=require("./Drawer-79hi3mNN.cjs"),E=require("./shortId-B25DIOpW.cjs"),S=require("./Iframe-BPIHbAMb.cjs"),A=require("./cdn-loader-CK_VIRZp.cjs"),B=require("./LinkEditBlock-DWhMM3H3.cjs"),T=require("./ImageGif-Bc0CzdFX.cjs"),k=require("./Mermaid-Bb3ufkx_.cjs"),D=require("./Table-DVnBPi-p.cjs"),N=require("./Bold.cjs"),M=require("./Code.cjs"),I=require("./Color-CtcMKY3v.cjs"),P=require("./Highlight-C6_QkIMd.cjs"),R=require("./Italic.cjs"),O=require("./renderCommandListDefault-Cro6JptX.cjs"),L=require("./TextAlign-Dszw7mbv.cjs"),$=require("./TextUnderline.cjs"),F=require("./Twitter-CR51Xu_I.cjs"),q=require("./dist-CN633rTi.cjs"),z=require("./Clear.cjs"),K=require("./Indent-Bqzg10jm.cjs"),H=require("./CodeBlock.cjs");let V=require("react");V=e.__toESM(V,1);let W=require("@tiptap/core"),U=require("@tiptap/pm/state"),_=require("react/jsx-runtime"),G=require("lucide-react"),X=require("react-dom"),J=require("@tiptap/react/menus"),Y=require("@tiptap/pm/view"),Z=require("@tiptap/pm/model"),Q=require("easydrawer"),ee=require("@tiptap/pm/commands");function te(e,t){const{state:n}=t,o=n.selection.$anchor;let i=!1;if(o.depth)for(let r=o.depth;r>0;r--)o.node(r).type.name===e&&(t.dispatchTransaction&&t.dispatchTransaction(n.tr.delete(o.before(r),o.after(r)).scrollIntoView()),i=!0);else{const o=n.selection.node;o&&o.type.name===e&&(t.chain().deleteSelection().run(),i=!0)}if(!i){const r=o.pos;if(r){const o=n.tr.doc.nodeAt(r);o&&o.type.name===e&&(t.dispatchTransaction&&t.dispatchTransaction(n.tr.delete(r,r+o.nodeSize)),i=!0)}}return i}var ne=[{value:"note",label:"Note",icon:"Info"},{value:"tip",label:"Tip",icon:"Lightbulb"},{value:"important",label:"Important",icon:"AlertCircle"},{value:"warning",label:"Warning",icon:"TriangleAlert"},{value:"caution",label:"Caution",icon:"OctagonAlert"}];function oe(e,o){const i=["SizeS","SizeM","SizeL"];return["size-small","size-medium","size-large"].map((r,s)=>({type:`image-${r}`,component:t.ActionButton,componentProps:{tooltip:o(`editor.${r.replace("-",".")}.tooltip`),icon:i[s],action:()=>e.commands.updateImage({width:n.IMAGE_SIZE[r]}),isActive:()=>e.isActive("image",{width:n.IMAGE_SIZE[r]})}}))}function ie(e,o){const i=["SizeS","SizeM","SizeL"];return["size-small","size-medium","size-large"].map((r,s)=>({type:`image-${r}`,component:t.ActionButton,componentProps:{tooltip:o(`editor.${r.replace("-",".")}.tooltip`),icon:i[s],action:()=>e.commands.updateImageGif({width:n.IMAGE_SIZE[r]}),isActive:()=>e.isActive("image",{width:n.IMAGE_SIZE[r]})}}))}function re(e,n){const o={left:"AlignLeft",center:"AlignCenter",right:"AlignRight"};return["left","center","right"].map(i=>({type:`image-${i}`,component:t.ActionButton,componentProps:{tooltip:n(`editor.textalign.${i}.tooltip`),icon:o[i],action:()=>e.commands?.setAlignImage?.(i),isActive:()=>e.isActive({align:i})||!1,disabled:!1}}))}function se(e,n){const o={left:"AlignLeft",center:"AlignCenter",right:"AlignRight"};return["left","center","right"].map(i=>({type:`image-${i}`,component:t.ActionButton,componentProps:{tooltip:n(`editor.textalign.${i}.tooltip`),icon:o[i],action:()=>e.commands?.setAlignImageGif?.(i),isActive:()=>e.isActive({align:i})||!1,disabled:!1}}))}function ce(e,n){const o={left:"AlignLeft",center:"AlignCenter",right:"AlignRight"};return["left","center","right"].map(i=>({type:`image-${i}`,component:t.ActionButton,componentProps:{tooltip:n(`editor.textalign.${i}.tooltip`),icon:o[i],action:()=>e.commands?.setAlignImageMermaid?.(i),isActive:()=>e.isActive({align:i})||!1,disabled:!1}}))}function le(e,n){const o={left:"AlignLeft",center:"AlignCenter",right:"AlignRight"};return["left","center","right"].map(i=>({type:`image-${i}`,component:t.ActionButton,componentProps:{tooltip:n(`editor.textalign.${i}.tooltip`),icon:o[i],action:()=>e.commands?.setAlignImageDrawer?.(i),isActive:()=>e.isActive({align:i})||!1,disabled:!1}}))}function ae(e){return[{type:"flex-start",icon:"AlignLeft",tooltip:"Align left"},{type:"center",icon:"AlignCenter",tooltip:"Align center"},{type:"flex-end",icon:"AlignRight",tooltip:"Align right"}].map(n=>({type:`video-align-${n.type}`,component:t.ActionButton,componentProps:{tooltip:n.tooltip,icon:n.icon,action:()=>e.commands.updateVideo({align:n.type}),isActive:()=>e.getAttributes("video").align===n.type}}))}function de(e,o){const i=["SizeS","SizeM","SizeL"];return["size-small","size-medium","size-large"].map((r,s)=>({type:`video-${r}`,component:t.ActionButton,componentProps:{tooltip:o(`editor.${r.replace("-",".")}.tooltip`),icon:i[s],action:()=>e.commands.updateVideo({width:n.VIDEO_SIZE[r]}),isActive:()=>e.isActive("video",{width:n.VIDEO_SIZE[r]})}}))}var ue=!1;function he({editor:e,attrs:n,extension:o}){const[r,c]=(0,V.useState)(!1),l=(0,V.useRef)(null),a=(0,V.useRef)(null),{alt:d,align:u}=n,h=o?.options.upload;(0,V.useEffect)(()=>{r&&setTimeout(()=>{(async()=>{const e=document.querySelector("#easydrawer");e&&(l.current=new Q.Editor(e,{wheelEventsEnabled:!1,disableZoom:!0}),a.current=(0,Q.makeDropdownToolbar)(l.current),a.current.addDefaultToolWidgets(),l.current.loadFromSVG(decodeURIComponent(d)))})()},200)},[r]);const p=()=>{if(ue){for(;l.current.history.redoStackSize>0;)l.current.history.redo();ue=!1}else l.current.history.undo()};return(0,_.jsxs)(s.Dialog,{onOpenChange:c,open:r,children:[(0,_.jsx)(s.DialogTrigger,{asChild:!0,children:(0,_.jsx)(t.ActionButton,{action:()=>c(!0),icon:"Pencil",tooltip:"Edit Drawer"})}),(0,_.jsxs)(s.DialogContent,{className:"richtext-z-[99999] !richtext-max-w-[1300px]",children:[(0,_.jsx)(s.DialogTitle,{children:"Edit Drawer"}),(0,_.jsxs)("div",{style:{height:"100%",borderWidth:1,background:"white",position:"relative"},children:[(0,_.jsx)("div",{className:"richtext-size-full",id:"easydrawer"}),(0,_.jsx)(y.ControlDrawer,{changeBorderColorShape:e=>{const t=l.current.toolController.getPrimaryTools()[5],n=a.current.getWidgetById("shape");t&&n&&(t.setBorderColor(e),n.serializeState())},changeColorShape:e=>{const t=l.current.toolController.getPrimaryTools()[5],n=a.current.getWidgetById("shape");t&&n&&(t.setColor(e),n.serializeState())},changeShape:e=>{const t=a.current.getWidgetById("shape");t&&t.setShapeType(e)},onClear:()=>{if(!ue){for(;l.current.history.undoStackSize>0;)p();ue=!0}},onRedo:()=>{ue||l.current.history.redo()},onThicknessChange:e=>{const t=l.current.toolController.getPrimaryTools()[5],n=a.current.getWidgetById("shape");t&&n&&(t.setThickness(e),n.serializeState())},onUndo:p,refEditor:l,setColorHighlight:e=>{const t=l.current.toolController.getPrimaryTools()[3],n=a.current.getWidgetById("pen-2");t&&n&&(t.setColor(e),n.serializeState())},setColorPen:e=>{const t=l.current.toolController.getPrimaryTools()[2],n=a.current.getWidgetById("pen-1");t&&n&&(t.setColor(e),n.serializeState())},setThicknessPen:e=>{const t=l.current.toolController.getPrimaryTools()[2],n=a.current.getWidgetById("pen-1");t&&n&&(t.setThickness(e),n.serializeState())}})]}),(0,_.jsx)(s.DialogFooter,{children:(0,_.jsx)(i.Button,{onClick:async()=>{if(l.current){const t=l.current.toSVG(),n=t.outerHTML,o=`drawer-${E.shortId()}.svg`;let i=E.i(t.outerHTML);if(h){const e=f.dataURLtoFile(i,o);i=await h(e)}e?.chain().focus().setDrawer({type:"drawer",src:i,alt:encodeURIComponent(n),width:426,height:212},!!n).run(),e?.commands.setAlignImageDrawer(u)}c(!1)},type:"button",children:"Save changes"})})]})]})}function pe({item:e,disabled:t,editor:n}){const o=e.component;return o?(0,_.jsx)(V.Fragment,{children:"divider"===e.type?(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}):(0,_.jsx)(o,{...e.componentProps,disabled:t||e?.componentProps?.disabled,editor:n})}):(0,_.jsx)(_.Fragment,{})}var xe=({width:e,maxWidth:t,height:o,onOk:r,children:s})=>{const{t:c}=n.useLocale(),[u,h]=(0,V.useState)({width:"",height:"",maxWidth:""});return(0,V.useEffect)(()=>{h({width:e,height:o,maxWidth:t})},[o,t,e]),(0,_.jsxs)(d.Popover,{modal:!0,children:[(0,_.jsx)(d.PopoverTrigger,{asChild:!0,children:s}),(0,_.jsx)(d.PopoverContent,{children:(0,_.jsxs)("form",{className:"richtext-flex richtext-flex-col richtext-gap-2",onSubmit:function(e){e.preventDefault(),e.stopPropagation(),r(u)},children:[(0,_.jsx)(a.Label,{className:"mb-[6px]",children:"Width"}),(0,_.jsx)("div",{className:"richtext-flex richtext-w-full richtext-max-w-sm richtext-items-center richtext-gap-1.5",children:(0,_.jsx)("div",{className:"richtext-relative richtext-w-full richtext-max-w-sm richtext-items-center",children:(0,_.jsx)(l.Input,{onChange:e=>h({...u,width:e.target.value}),required:!0,type:"number",value:u.width})})}),(0,_.jsx)(a.Label,{className:"mb-[6px]",children:"Max Width"}),(0,_.jsx)("div",{className:"richtext-flex richtext-w-full richtext-max-w-sm richtext-items-center richtext-gap-1.5",children:(0,_.jsx)("div",{className:"richtext-relative richtext-w-full richtext-max-w-sm richtext-items-center",children:(0,_.jsx)(l.Input,{onChange:e=>h({...u,maxWidth:e.target.value}),required:!0,type:"number",value:u.maxWidth})})}),(0,_.jsx)(a.Label,{className:"mb-[6px]",children:"Height"}),(0,_.jsx)("div",{className:"richtext-flex richtext-w-full richtext-max-w-sm richtext-items-center richtext-gap-1.5",children:(0,_.jsx)("div",{className:"richtext-relative richtext-w-full richtext-max-w-sm richtext-items-center",children:(0,_.jsx)(l.Input,{onChange:e=>h({...u,height:e.target.value}),required:!0,type:"number",value:u.height})})}),(0,_.jsx)(i.Button,{className:"richtext-mt-2 richtext-self-end",type:"submit",children:c("editor.link.dialog.button.apply")})]})})]})},me=new Map;function ge({children:e,visible:t,toggleVisible:o}){const{t:r}=n.useLocale(),c=g.useEditorInstance(),[l,d]=(0,V.useState)(null);(0,V.useEffect)(()=>{A.loadKatex().then(d)},[]);const{text:u,macros:h}=w.useAttributes(c,w.Katex.name,{text:"",macros:""}),[x,m]=(0,V.useState)(decodeURIComponent(u||"")),[f,b]=(0,V.useState)(decodeURIComponent(h||""));(0,V.useEffect)(()=>{t&&(m(decodeURIComponent(u||"")),b(decodeURIComponent(h||"")))},[t]);const v=(0,V.useCallback)(()=>{c.chain().focus().setKatex({text:encodeURIComponent(x),macros:encodeURIComponent(f)}).run(),m(""),b(""),o(!1)},[c,x,f,o]),j=(0,V.useMemo)(()=>{if(!l)return x;try{return l.renderToString(x,{macros:w.safeJSONParse(f||"")})}catch{return x}},[x,f,l]),C=(0,V.useMemo)(()=>`${x}`.trim()?j:null,[x,j]);return(0,_.jsxs)(s.Dialog,{onOpenChange:o,open:t,children:[(0,_.jsx)(s.DialogTrigger,{asChild:!0,children:e}),(0,_.jsxs)(s.DialogContent,{className:"richtext-z-[99999] !richtext-max-w-[1300px]",children:[(0,_.jsx)(s.DialogTitle,{children:r("editor.formula.dialog.text")}),(0,_.jsx)("div",{style:{height:"100%",border:"1px solid var(--richtext-border)"},children:(0,_.jsxs)("div",{className:"richtext-flex richtext-gap-[10px] richtext-rounded-[10px] richtext-p-[10px]",children:[(0,_.jsxs)("div",{className:"richtext-flex-1",children:[(0,_.jsx)(a.Label,{className:"mb-[6px]",children:"Expression"}),(0,_.jsx)(p.Textarea,{autoFocus:!0,className:"richtext-mb-[10px]",onChange:e=>m(e.target.value),placeholder:"Text",required:!0,rows:10,value:x,style:{color:"var(--richtext-foreground)"}}),(0,_.jsx)(a.Label,{className:"mb-[6px]",children:"Macros"}),(0,_.jsx)(p.Textarea,{onChange:e=>b(e.target.value),placeholder:"Macros",rows:10,value:f,style:{color:"var(--richtext-foreground)"}})]}),(0,_.jsx)("div",{className:"richtext-flex richtext-flex-1 richtext-items-center richtext-justify-center richtext-rounded-[10px] richtext-p-[10px]",dangerouslySetInnerHTML:{__html:C||""},style:{height:"100%",borderWidth:1,minHeight:500,background:"#fff"}})]})}),(0,_.jsx)(s.DialogFooter,{children:(0,_.jsx)(i.Button,{onClick:v,type:"button",children:"Save changes"})})]})]})}function fe(e){const{t:o}=n.useLocale();return(0,_.jsxs)("div",{className:"richtext-flex richtext-flex-nowrap",children:[(0,_.jsx)(t.ActionButton,{disabled:!e?.link,icon:"ExternalLink",tooltip:o("editor.link.open.tooltip"),tooltipOptions:{sideOffset:15},action:()=>{window.open(e?.link,"_blank")}}),(0,_.jsx)(t.ActionButton,{icon:"Pencil",tooltip:o("editor.link.edit.tooltip"),tooltipOptions:{sideOffset:15},action:()=>{e?.onEdit()}}),(0,_.jsx)(t.ActionButton,{icon:"Unlink",tooltip:o("editor.link.unlink.tooltip"),tooltipOptions:{sideOffset:15},action:()=>{e?.onClear()}})]})}function be({item:e,disabled:t,editor:n}){const o=e.component;return o?(0,_.jsx)(V.Fragment,{children:"divider"===e.type?(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}):(0,_.jsx)(o,{...e.componentProps,disabled:t||e?.componentdisabled,editor:n})}):(0,_.jsx)(_.Fragment,{})}var ve="graph TB\na--\x3eb",je=({editor:e,attrs:n,extension:o})=>{const{alt:r,align:c}=n,[l,a]=(0,V.useState)(decodeURIComponent(r??ve)),[d,u]=(0,V.useState)(""),[h,x]=(0,V.useState)(!1),m=(0,V.useRef)(null),[g,b]=(0,V.useState)(null),v=o?.options.upload,j=(0,V.useCallback)(e=>{e&&import("mermaid").then(e=>{b(e.default)})},[]),w=async e=>{try{const{svg:t}=await g.render("mermaid-svg",e);u(t)}catch{u("")}};(0,V.useEffect)(()=>{g&&h&&(g.initialize({darkMode:!1,startOnLoad:!1,fontSize:12,theme:"base"}),w(l))},[g,h]),(0,V.useEffect)(()=>{g&&h&&w(l)},[g,l]);return(0,_.jsxs)(s.Dialog,{onOpenChange:x,open:h,children:[(0,_.jsx)(s.DialogTrigger,{asChild:!0,children:(0,_.jsx)(t.ActionButton,{action:()=>x(!0),icon:"Pencil",tooltip:"Edit Mermaid"})}),(0,_.jsxs)(s.DialogContent,{className:"richtext-z-[99999] !richtext-max-w-[1300px]",children:[(0,_.jsx)(s.DialogTitle,{children:"Edit Mermaid"}),(0,_.jsx)("div",{ref:j,style:{height:"100%",border:"1px solid var(--richtext-border)"},children:(0,_.jsxs)("div",{className:"richtext-flex richtext-gap-[10px] richtext-rounded-[10px] richtext-p-[10px]",children:[(0,_.jsx)(p.Textarea,{autoFocus:!0,className:"richtext-flex-1",defaultValue:ve,onChange:e=>a(e.target.value),placeholder:"Text",required:!0,rows:10,value:l,style:{color:"var(--richtext-foreground)"}}),(0,_.jsx)("div",{className:"richtext-flex richtext-flex-1 richtext-items-center richtext-justify-center richtext-rounded-[10px] richtext-p-[10px]",dangerouslySetInnerHTML:{__html:d},ref:m,style:{height:"100%",border:"1px solid var(--richtext-border)",minHeight:500}})]})}),(0,_.jsx)(s.DialogFooter,{children:(0,_.jsx)(i.Button,{onClick:async()=>{if(""!==l){if(l){const t=m.current.querySelector("svg"),{width:n,height:o}=t.getBoundingClientRect(),i=`mermaid-${E.shortId()}.svg`;let r=E.i(t.outerHTML);if(v){const e=f.dataURLtoFile(r,i);r=await v(e)}e?.chain().focus().setMermaid({type:"mermaid",src:r,alt:encodeURIComponent(l),width:n,height:o},!!l).run(),e?.commands.setAlignImageMermaid(c)}x(!1)}},type:"button",children:"Save changes"})})]})]})};function we({item:e,disabled:t,editor:n}){const o=e.component;return o?(0,_.jsx)(V.Fragment,{children:"divider"===e.type?(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}):(0,_.jsx)(o,{...e.componentProps,disabled:t||e?.componentProps?.disabled,editor:n})}):(0,_.jsx)(_.Fragment,{})}function Ce(){const{t:e}=n.useLocale(),[i,r]=(0,V.useState)(!1),s=g.useEditorInstance(),c=(0,V.useMemo)(()=>O.renderCommandListDefault({t:e})?.[0]?.commands,[e]),l=(0,V.useMemo)(()=>c?.find(e=>e?.isActive?.(s))?.label,[s.state.selection.ranges,i,s,c,e]),a=(0,V.useMemo)(()=>c?.find(e=>e?.isActive?.(s)),[s.state.selection.ranges,i,s,c]);return(0,_.jsxs)(d.Popover,{modal:!0,onOpenChange:r,open:i,children:[(0,_.jsx)(d.PopoverTrigger,{asChild:!0,className:"hover:richtext-bg-accent data-[state=on]:richtext-bg-accent",children:(0,_.jsx)(t.ActionButton,{dataState:!!l,tooltip:l||e("editor.paragraph.tooltip"),children:(0,_.jsx)(o.IconComponent,{name:a?.iconName||"Type"})})}),(0,_.jsx)(d.PopoverContent,{align:"start",className:"!richtext-w-[initial] !richtext-p-[4px]",hideWhenDetached:!0,side:"bottom",children:c?.map(t=>{const n=t?.isActive?.(s);return(0,_.jsxs)("div",{className:"richtext-flex richtext-w-full richtext-items-center richtext-gap-1.5 richtext-rounded-sm !richtext-border-none !richtext-bg-transparent richtext-px-2 richtext-py-1.5 richtext-text-left richtext-text-sm richtext-text-foreground !richtext-outline-none richtext-transition-colors hover:!richtext-bg-accent",onClick:e=>{e.preventDefault(),t.action({editor:s,range:s.state.selection.ranges}),r(!1)},children:[(0,_.jsxs)("div",{className:"!richtext-min-w-[16px]",children:[n&&(0,_.jsx)(G.Check,{size:16}),!l&&t.label===e("editor.paragraph.tooltip")&&!n&&(0,_.jsx)(G.Check,{size:16})]}),(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-1",children:[t.iconName&&(0,_.jsx)(o.IconComponent,{className:"!richtext-mr-1 !richtext-text-lg",name:t.iconName}),t.label]})]},t.name)})})]})}function ye(){const e=g.useEditorInstance();return v.isAiEnabled(e)?(0,_.jsx)(t.ActionButton,{action:()=>e.commands.openAiMenu(),shortcutKeys:["mod","J"],tooltip:"Ask AI",children:(0,_.jsx)(G.Sparkles,{className:"richtext-size-4 richtext-text-violet-600"})}):null}function Ee(){return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(ye,{}),(0,_.jsx)(Ce,{}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),(0,_.jsx)(N.RichTextBold,{}),(0,_.jsx)(R.RichTextItalic,{}),(0,_.jsx)($.RichTextUnderline,{}),(0,_.jsx)(M.RichTextCode,{}),(0,_.jsx)(B.RichTextLink,{}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),(0,_.jsx)(I.RichTextColor,{}),(0,_.jsx)(P.RichTextHighlight,{}),(0,_.jsx)(L.RichTextAlign,{})]})}function Se(e){if(!e.length)return Y.DecorationSet.empty;const t=[],n=e[0].$from.node(0);return e.forEach(e=>{const n=e.$from.pos,o=e.$from.nodeAfter;o&&t.push(Y.Decoration.node(n,n+o.nodeSize,{class:"ProseMirror-selectednoderange"}))}),Y.DecorationSet.create(n,t)}function Ae(e,t,n,o={}){const i=[],r=e.node(0),{extendOnBoundaryOverlap:s=!0}=o;"number"==typeof n&&n>=0||(n=e.sameParent(t)?Math.max(0,e.sharedDepth(t.pos)-1):e.sharedDepth(t.pos));const c=new Z.NodeRange(e,t,n),l=0===c.depth?0:r.resolve(c.start).posAtIndex(0);return c.parent.forEach((n,o)=>{const a=l+o,d=a+n.nodeSize,u=function(e,t,n){const o=n.isText||n.isAtom?0:1;return{start:e+o,end:e+t-o}}(a,n.nodeSize,n),h=s?t.pos>=u.start&&e.pos<=u.end:t.pos>u.start&&e.pos<u.end;if(a<c.start||a>=c.end)return;if(!h)return;const p=new U.SelectionRange(r.resolve(a),r.resolve(d));i.push(p)}),i}var Be=class e{constructor(e,t,n){this.anchor=e,this.head=t,this.depth=null!=n?n:0}map(t){return new e(t.map(this.anchor),t.map(this.head),this.depth)}resolve(e){return new Te(e.resolve(this.anchor),e.resolve(this.head),this.depth)}},Te=class e extends U.Selection{constructor(e,t,n,o=1){const{doc:i}=e,r=e===t,s=e.pos===i.content.size&&t.pos===i.content.size,c=r&&!s?i.resolve(t.pos+(o>0?1:-1)):t,l=r&&s?i.resolve(e.pos-(o>0?1:-1)):e,a=Ae(l.min(c),l.max(c),n);super(c.pos>=e.pos?a[0].$from:a[a.length-1].$to,c.pos>=e.pos?a[a.length-1].$to:a[0].$from,a),this.depth=n}get $to(){return this.ranges[this.ranges.length-1].$to}eq(t){return t instanceof e&&t.$from.pos===this.$from.pos&&t.$to.pos===this.$to.pos}map(t,n){const o=t.resolve(n.map(this.anchor)),i=t.resolve(n.map(this.head));return new e(o,i,this.depth)}toJSON(){return{type:"nodeRange",anchor:this.anchor,head:this.head,depth:this.depth}}get isForwards(){return this.head>=this.anchor}get isBackwards(){return!this.isForwards}extendBackwards(){const{doc:t}=this.$from;if(this.isForwards&&this.ranges.length>1){const t=this.ranges.slice(0,-1),n=t[0].$from,o=t[t.length-1].$to;return new e(n,o,this.depth)}const n=this.ranges[0],o=t.resolve(Math.max(0,n.$from.pos-1));return new e(this.$anchor,o,this.depth)}extendForwards(){const{doc:t}=this.$from;if(this.isBackwards&&this.ranges.length>1){const t=this.ranges.slice(1),n=t[0].$from,o=t[t.length-1].$to;return new e(o,n,this.depth)}const n=this.ranges[this.ranges.length-1],o=t.resolve(Math.min(t.content.size,n.$to.pos+1));return new e(this.$anchor,o,this.depth)}static fromJSON(t,n){return new e(t.resolve(n.anchor),t.resolve(n.head),n.depth)}static create(e,t,n,o,i=1){return new this(e.resolve(t),e.resolve(n),o,i)}getBookmark(){return new Be(this.anchor,this.head,this.depth)}};Te.prototype.visible=!1;try{U.Selection.jsonID("nodeRange",Te)}catch{}function ke(e){return e instanceof Te}W.Extension.create({name:"nodeRange",addOptions:()=>({depth:void 0,key:"Mod"}),addKeyboardShortcuts(){return{"Shift-ArrowUp":({editor:e})=>{const{depth:t}=this.options,{view:n,state:o}=e,{doc:i,selection:r,tr:s}=o,{anchor:c,head:l}=r;if(!ke(r)){const e=Te.create(i,c,l,t,-1);return s.setSelection(e),n.dispatch(s),!0}const a=r.extendBackwards();return s.setSelection(a),n.dispatch(s),!0},"Shift-ArrowDown":({editor:e})=>{const{depth:t}=this.options,{view:n,state:o}=e,{doc:i,selection:r,tr:s}=o,{anchor:c,head:l}=r;if(!ke(r)){const e=Te.create(i,c,l,t);return s.setSelection(e),n.dispatch(s),!0}const a=r.extendForwards();return s.setSelection(a),n.dispatch(s),!0},"Mod-a":({editor:e})=>{const{depth:t}=this.options,{view:n,state:o}=e,{doc:i,tr:r}=o,s=Te.create(i,0,i.content.size,t);return r.setSelection(s),n.dispatch(r),!0}}},onSelectionUpdate(){const{selection:e}=this.editor.state;ke(e)&&this.editor.view.dom.classList.add("ProseMirror-noderangeselection")},addProseMirrorPlugins(){let e=!1,t=!1;return[new U.Plugin({key:new U.PluginKey("nodeRange"),props:{attributes:()=>e?{class:"ProseMirror-noderangeselection"}:{class:""},handleDOMEvents:{mousedown:(e,n)=>{const{key:o}=this.options,i=/Mac/.test(navigator.platform),r=!!n.shiftKey,s=!!n.ctrlKey,c=!!n.altKey,l=!!n.metaKey;return(null==o||"Shift"===o&&r||"Control"===o&&s||"Alt"===o&&c||"Meta"===o&&l||"Mod"===o&&(i?l:s))&&(t=!0),!!t&&(document.addEventListener("mouseup",()=>{t=!1;const{state:n}=e,{doc:o,selection:i,tr:r}=n,{$anchor:s,$head:c}=i;if(s.sameParent(c))return;const l=Te.create(o,s.pos,c.pos,this.options.depth);r.setSelection(l),e.dispatch(r)},{once:!0}),!1)}},decorations:n=>{const{selection:o}=n,i=ke(o);if(e=!1,!t)return i?(e=!0,Se(o.ranges)):null;const{$from:r,$to:s}=o;if(!i&&r.sameParent(s))return null;const c=Ae(r,s,this.options.depth);return c.length?(e=!0,Se(c)):null}}})]}});function De(e,t){const n=e.cloneNode(!0),o=[e,...Array.from(e.getElementsByTagName("*"))],i=[n,...Array.from(n.getElementsByTagName("*"))];return o.forEach((e,n)=>{i[n].style.cssText=function(e,t){const n=getComputedStyle(e);if(t)return t.map(e=>e.trim()).filter(e=>e.length>0).map(e=>`${e}:${n.getPropertyValue(e)};`).join("");let o="";for(let i=0;i<n.length;i+=1)o+=`${n[i]}:${n.getPropertyValue(n[i])};`;return o}(e,t)}),n}var Ne=[{id:"listItemFirstChild",evaluate:({parent:e,isFirst:t})=>t&&e&&["listItem","taskItem"].includes(e.type.name)?1e3:0},{id:"listWrapperDeprioritize",evaluate:({node:e})=>{const t=e.firstChild;return t&&["listItem","taskItem"].includes(t.type.name)?1e3:0}},{id:"tableStructure",evaluate:({node:e,parent:t})=>["tableRow","tableCell","tableHeader"].includes(e.type.name)||t&&"tableHeader"===t.type.name?1e3:0},{id:"inlineContent",evaluate:({node:e})=>e.isInline||e.isText?1e3:0}],Me={edges:["left","top"],threshold:12,strength:500};function Ie(e){return void 0===e||"left"===e?{...Me}:"right"===e?{edges:["right","top"],threshold:12,strength:500}:"both"===e?{edges:["left","right","top"],threshold:12,strength:500}:"none"===e?{edges:[],threshold:0,strength:0}:{...Me,...e}}function Pe(e,t,n,o){let i=1e3,r=!1;if(t.every(t=>{const n=t.evaluate(e);return i-=n,!(i<=0)||(r=!0,!1)}),r)return-1;const s=e.view.nodeDOM(e.pos);return i-=function(e,t,n,o){return t&&0!==n.edges.length&&function(e,t,n){if(0===n.edges.length)return!1;const o=t.getBoundingClientRect(),{threshold:i,edges:r}=n;return r.some(t=>"left"===t?e.x-o.left<i:"right"===t?o.right-e.x<i:"top"===t?e.y-o.top<i:"bottom"===t&&o.bottom-e.y<i)}(e,t,n)?n.strength*o:0}(o,s,n,e.depth),i<=0?-1:i}function Re(e,t,n){return Array.from({length:t},(e,n)=>t-1-n).some(t=>n.includes(e.node(t).type.name))}function Oe(e){return Number.isFinite(e.top)&&Number.isFinite(e.bottom)&&Number.isFinite(e.left)&&Number.isFinite(e.right)&&e.width>0&&e.height>0}function Le(e,t){let n="first"===t?e.firstElementChild:e.lastElementChild;for(;n;){const e=n.getBoundingClientRect();if(Oe(e))return e;n="first"===t?n.nextElementSibling:n.previousElementSibling}return null}var $e=e=>{const{x:t,y:n,editor:o,nestedOptions:i}=e,{view:r,state:s}=o,c=function(e,t,n,o=5){if(!Number.isFinite(t)||!Number.isFinite(n))return null;const i=e.dom,r=Le(i,"first"),s=Le(i,"last");if(!r||!s)return null;const c=Math.min(Math.max(r.top+o,n),s.bottom-o),l=Math.abs(r.left-s.left)<.5,a=Math.abs(r.right-s.right)<.5;let d=r;l&&a&&(d=r);const u=Math.min(Math.max(d.left+o,t),d.right-o);return Number.isFinite(u)&&Number.isFinite(c)?{x:u,y:c}:null}(r,t,n,5);if(!c)return{resultElement:null,resultNode:null,pos:null};const{x:l,y:a}=c;if(null==i?void 0:i.enabled){const e=function(e,t,n){if(!Number.isFinite(t.x)||!Number.isFinite(t.y))return null;const o=e.posAtCoords({left:t.x,top:t.y});if(!o)return null;const{doc:i}=e.state,r=i.resolve(o.pos),s=[];n.defaultRules&&s.push(...Ne),s.push(...n.rules);const c=Array.from({length:r.depth},(e,t)=>r.depth-t).map(o=>{const i=r.node(o),c=r.before(o);if(n.allowedContainers&&o>0&&!Re(r,o,n.allowedContainers))return null;const l=o>0?r.node(o-1):null,a=o>0?r.index(o-1):0,d=Pe({node:i,pos:c,depth:o,parent:l,index:a,isFirst:0===a,isLast:a===(l?l.childCount:1)-1,$pos:r,view:e},s,n.edgeDetection,t);return d<0?null:{node:i,pos:c,depth:o,score:d,dom:e.nodeDOM(c)}}).filter(e=>null!==e),l=r.nodeAfter;if(l&&l.isAtom&&!l.isInline){const i=o.pos,a=r.depth+1,d=r.parent,u=r.index(),h=d.childCount;let p=!0;if(n.allowedContainers&&(p=Re(r,a,n.allowedContainers)),p){const o=Pe({node:l,pos:i,depth:a,parent:d,index:u,isFirst:0===u,isLast:u===h-1,$pos:r,view:e},s,n.edgeDetection,t);if(o>=0){const t=e.nodeDOM(i);t&&c.push({node:l,pos:i,depth:a,score:o,dom:t})}}}if(0===c.length)return null;c.sort((e,t)=>t.score!==e.score?t.score-e.score:t.depth-e.depth);const a=c[0];return a.dom?{node:a.node,pos:a.pos,dom:a.dom}:null}(r,{x:l,y:a},i);return e?{resultElement:e.dom,resultNode:e.node,pos:e.pos}:{resultElement:null,resultNode:null,pos:null}}const d=r.root.elementsFromPoint(l,a);let u,h;if(Array.prototype.some.call(d,e=>{if(!r.dom.contains(e))return!1;const t=function(e,t){var n;let o=e;for(;(null==o?void 0:o.parentElement)&&o.parentElement!==t.dom;)o=o.parentElement;if((null==o?void 0:o.parentElement)===t.dom&&(null===(n=o.pmViewDesc)||void 0===n?void 0:n.node))return o}(e,r);return!!t&&(u=t,!0)}),!u){const e=r.posAtCoords({left:l,top:a});if(e){const t=s.doc.resolve(e.pos),n=Math.min(t.depth,1),o=n>0?t.before(n):t.pos,i=s.doc.nodeAt(o);if(i){const e=r.nodeDOM(o);return{resultElement:e instanceof HTMLElement?e:null,resultNode:i,pos:o}}}return{resultElement:null,resultNode:null,pos:null}}try{h=r.posAtDOM(u,0)}catch{return{resultElement:null,resultNode:null,pos:null}}const p=s.doc.nodeAt(h);if(!p){const e=s.doc.resolve(h),t=e.parent;return{resultElement:u,resultNode:t,pos:e.start()}}return{resultElement:u,resultNode:p,pos:h}};function Fe(e,t){const n=e.nodeDOM(t);if(n instanceof Element&&n!==e.dom)return n;const{node:o,offset:i}=e.domAtPos(t),r=o.childNodes[i];return r instanceof Element?r:o instanceof Element?o:o.nodeType===Node.TEXT_NODE&&o.parentElement?o.parentElement:null}function qe(e){var t;null===(t=e.parentNode)||void 0===t||t.removeChild(e)}function ze(e,t,n,o,i){const{view:r}=t;if(!e.dataTransfer)return;const{empty:s,$from:c,$to:l}=r.state.selection,a=function(e,t,n,o){const{doc:i}=t.view.state;if((null==n?void 0:n.enabled)&&(null==o?void 0:o.node)&&o.pos>=0){const e=o.pos,t=o.pos+o.node.nodeSize;return[{$from:i.resolve(e),$to:i.resolve(t)}]}const r=$e({editor:t,x:e.clientX,y:e.clientY,direction:"right",nestedOptions:n});if(!r.resultNode||null===r.pos)return[];const s=r.resultNode.isText||r.resultNode.isAtom?0:-1;return Ae(i.resolve(r.pos),i.resolve(r.pos+r.resultNode.nodeSize+s),0,{extendOnBoundaryOverlap:!1})}(e,t,n,o),d=Ae(c,l,0,{extendOnBoundaryOverlap:!1}),u=d.some(e=>a.find(t=>t.$from===e.$from&&t.$to===e.$to)),h=s||!u?a:d;if(!h.length)return;const{tr:p}=r.state,x=document.createElement("div"),m=h[0].$from.pos,g=h[h.length-1].$to.pos,f=function(e,t){const n=Fe(e,t);return(n?getComputedStyle(n).direction:getComputedStyle(e.dom).direction)||"ltr"}(r,m);x.setAttribute("dir",f);const b=(null==n?void 0:n.enabled)&&(null==o?void 0:o.node),v=1===h.length;let j,w;b&&v?(j=r.state.doc.slice(m,g),w=U.NodeSelection.create(r.state.doc,m)):(w=Te.create(r.state.doc,m,g),j=w.content());const C=function(e){return!e||!e.some(e=>{const t=e.trim().toLowerCase();return"margin"===t||t.startsWith("margin-")})}(i);h.forEach(e=>{const t=Fe(r,e.$from.pos);if(!t)return;const n=De(t,i);C&&(n.style.margin="0"),x.append(n)}),x.style.position="absolute",x.style.top="-10000px",document.body.append(x),e.dataTransfer.clearData();const y=function(e,t){return"rtl"===e?t:0}(f,x.getBoundingClientRect().width);e.dataTransfer.setDragImage(x,y,0);let E=!1;const S=()=>{E||(E=!0,qe(x),document.removeEventListener("drop",S),document.removeEventListener("dragend",S))},A=w instanceof U.NodeSelection?w:void 0;r.dragging={slice:j,move:!0,node:A},p.setSelection(w),r.dispatch(p),document.addEventListener("drop",S),document.addEventListener("dragend",S)}var Ke=(e,t)=>{const n=e.resolve(t),{depth:o}=n;return 0===o?t:n.pos-n.parentOffset-1},He=(e,t)=>{const n=e.nodeAt(t),o=e.resolve(t);let{depth:i}=o,r=n;for(;i>0;){const e=o.node(i);i-=1,0===i&&(r=e)}return r};function Ve(e,t,n){let o=0;for(let i=t;i<n;i+=1)o+=e.child(i).nodeSize;return o}function We(e,t,n,o){try{const i=function(e,t,n,o){const i=e.resolve(t),r=i.node(o);let s=i.index(o);s>=r.childCount&&(s=Math.max(0,r.childCount-n));const c=Math.min(n,r.childCount-s);if(c<=0)return null;const l=i.start(o)+Ve(r,0,s);return{anchor:l,head:l+Ve(r,s,s+c),count:c}}(e,t,n,o);if(!i)return null;const r=Te.create(e,i.anchor,i.head,o);return r.ranges.length===n?r:null}catch{return null}}var Ue=(e,t)=>{const n=q.ySyncPluginKey.getState(e);return n?q.absolutePositionToRelativePosition(t,n.type,n.binding.mapping):null},_e=(e,t)=>{const n=q.ySyncPluginKey.getState(e);return n?q.relativePositionToAbsolutePosition(n.doc,n.type,t,n.binding.mapping)||0:-1},Ge=(e,t)=>{let n=t;for(;(null==n?void 0:n.parentNode)&&n.parentNode!==e.dom;)n=n.parentNode;return n},Xe=new U.PluginKey("dragHandle"),Je=({pluginKey:e=Xe,element:t,editor:n,computePositionConfig:o,getReferencedVirtualElement:i,onNodeChange:s,onElementDragStart:c,onElementDragEnd:l,nestedOptions:a,dragImageProperties:d})=>{const u=document.createElement("div");let h,p=!1,x=null,m=-1,g=null,f=null,b=null,v=null;function j(){b=null,v=null}function w(e,t){v&&(v=function(e,t,n){if(!t.docChanged)return e;if(n.isChangeOrigin&&null!=e.relativeAnchorPos){const t=n.getAbsolutePos(e.relativeAnchorPos);return!Number.isFinite(t)||t<=0?null:{...e,anchorPos:t}}const o=t.mapping.mapResult(e.anchorPos,1);return o.deleted?null:{...e,anchorPos:o.pos}}(v,e,{isChangeOrigin:q.isChangeOrigin(e),getAbsolutePos:e=>_e(t,e)}))}function C(){t&&(t.style.visibility="hidden",t.style.pointerEvents="none")}function y(e){const n=(null==i?void 0:i())||{getBoundingClientRect:()=>e.getBoundingClientRect()};r.computePosition(n,t,o).then(e=>{Object.assign(t.style,{position:e.strategy,left:`${e.x}px`,top:`${e.y}px`})})}function E(e){var o,i;null==c||c(e),ze(e,n,a,{node:x,pos:m},d),o=n.state.selection,b=ke(o)?{anchorPos:o.from,nodeCount:o.ranges.length,depth:null!==(i=o.depth)&&void 0!==i?i:0}:null,t&&(t.dataset.dragging="true"),setTimeout(()=>{t&&(t.style.pointerEvents="none")},0)}function S(e){null==l||l(e),b=null,C(),t&&(t.style.pointerEvents="auto",t.dataset.dragging="false")}function A(e){if(!e.target||!n.view.dom.contains(e.target))return;if((0,W.isFirefox)()){const e=n.view.dom;requestAnimationFrame(()=>{e.isContentEditable&&(e.contentEditable="false",e.contentEditable="true")})}if(!b||n.view.state.selection.empty)return;const t=n.state.selection.from,o=Ue(n.state,t);v={...b,anchorPos:t,relativeAnchorPos:null!=o?o:void 0},n.view.dispatch(n.state.tr.setMeta("addToHistory",!1))}function B(){t.removeEventListener("dragstart",E),t.removeEventListener("dragend",S),document.removeEventListener("drop",A),g&&(cancelAnimationFrame(g),g=null,f=null),j()}return u.appendChild(t),{unbind(){B()},plugin:new U.Plugin({key:"string"==typeof e?new U.PluginKey(e):e,state:{init:()=>({locked:!1}),apply(e,o,i,r){w(e,r);const c=e.getMeta("lockDragHandle"),l=e.getMeta("hideDragHandle");if(void 0!==c&&(p=c),l)return C(),p=!1,x=null,m=-1,null==s||s({editor:n,node:null,pos:-1}),o;if(e.docChanged&&-1!==m&&t)if(q.isChangeOrigin(e)){const e=_e(r,h);e!==m&&(m=e)}else{const t=e.mapping.map(m);t!==m&&(m=t,h=Ue(r,m))}return o}},appendTransaction:(e,t,n)=>function(e){if(!v)return null;const t=We(e.doc,v.anchorPos,v.nodeCount,v.depth);return t?(j(),e.tr.setSelection(t)):(v=null,b=null,null)}(n),view:e=>{var o;return t.draggable=!0,t.style.pointerEvents="auto",t.dataset.dragging="false",null===(o=n.view.dom.parentElement)||void 0===o||o.appendChild(u),u.style.pointerEvents="none",u.style.position="absolute",u.style.top="0",u.style.left="0",u.style.zIndex="10",t.addEventListener("dragstart",E),t.addEventListener("dragend",S),document.addEventListener("drop",A),{update(o,i){if(!t)return;if(!n.isEditable)return void C();if(t.draggable=!p,e.state.doc.eq(i.doc)||-1===m)return;let r=e.nodeDOM(m);if(r=Ge(e,r),r===e.dom)return;if(1!==(null==r?void 0:r.nodeType))return;const c=e.posAtDOM(r,0),l=He(n.state.doc,c),a=Ke(n.state.doc,c);x=l,m=a,h=Ue(e.state,m),null==s||s({editor:n,node:x,pos:m}),y(r)},destroy(){B(),t&&qe(u)}}},props:{handleDOMEvents:{keydown:e=>!(!t||p)&&(!!e.hasFocus()&&(C(),x=null,m=-1,null==s||s({editor:n,node:null,pos:-1}),!1)),mouseleave:(e,t)=>(p||t.target&&!u.contains(t.relatedTarget)&&(C(),x=null,m=-1,null==s||s({editor:n,node:null,pos:-1})),!1),mousemove:(e,o)=>!(!t||p)&&(f={x:o.clientX,y:o.clientY},g||(g=requestAnimationFrame(()=>{if(g=null,!f)return;const{x:o,y:i}=f;f=null;const r=$e({x:o,y:i,direction:"right",editor:n,nestedOptions:a});if(!r.resultElement)return;let c=r.resultElement,l=r.resultNode,d=r.pos;if(!(null==a?void 0:a.enabled)){if(c=Ge(e,c),c===e.dom)return;if(1!==(null==c?void 0:c.nodeType))return;const t=e.posAtDOM(c,0);l=He(n.state.doc,t),d=Ke(n.state.doc,t)}var u;l!==x&&(x=l,m=null!==(u=d)&&void 0!==u?u:-1,h=Ue(e.state,m),null==s||s({editor:n,node:x,pos:m}),y(c),t&&(n.isEditable?(t.style.visibility="",t.style.pointerEvents="auto"):C()))})),!1)}}})}};function Ye(e){var t,n;return!1===e||void 0===e?{enabled:!1,rules:[],defaultRules:!0,allowedContainers:void 0,edgeDetection:Ie("none")}:!0===e?{enabled:!0,rules:[],defaultRules:!0,allowedContainers:void 0,edgeDetection:Ie("left")}:{enabled:!0,rules:null!==(t=e.rules)&&void 0!==t?t:[],defaultRules:null===(n=e.defaultRules)||void 0===n||n,allowedContainers:e.allowedContainers,edgeDetection:Ie(e.edgeDetection)}}var Ze={placement:"left-start",strategy:"absolute"},Qe=(W.Extension.create({name:"dragHandle",addOptions:()=>({render(){const e=document.createElement("div");return e.classList.add("drag-handle"),e},computePositionConfig:{},locked:!1,onNodeChange:()=>null,onElementDragStart:void 0,onElementDragEnd:void 0,nested:!1,dragImageProperties:void 0}),addCommands(){return{lockDragHandle:()=>({editor:e})=>(this.options.locked=!0,e.commands.setMeta("lockDragHandle",this.options.locked)),unlockDragHandle:()=>({editor:e})=>(this.options.locked=!1,e.commands.setMeta("lockDragHandle",this.options.locked)),toggleDragHandle:()=>({editor:e})=>(this.options.locked=!this.options.locked,e.commands.setMeta("lockDragHandle",this.options.locked))}},addProseMirrorPlugins(){const e=this.options.render(),t=Ye(this.options.nested);return[Je({computePositionConfig:{...Ze,...this.options.computePositionConfig},getReferencedVirtualElement:this.options.getReferencedVirtualElement,element:e,editor:this.editor,onNodeChange:this.options.onNodeChange,onElementDragStart:this.options.onElementDragStart,onElementDragEnd:this.options.onElementDragEnd,nestedOptions:t,dragImageProperties:this.options.dragImageProperties}).plugin]}}),e=>{const{className:t="drag-handle",children:n,editor:o,pluginKey:i=Xe,onNodeChange:r,onElementDragStart:s,onElementDragEnd:c,getReferencedVirtualElement:l,computePositionConfig:a=Ze,nested:d=!1}=e,u=(0,V.useRef)(null);null===u.current&&"undefined"!=typeof document&&(u.current=document.createElement("div"));const h={onNodeChange:r,onElementDragStart:s,onElementDragEnd:c,getReferencedVirtualElement:l},p=(0,V.useRef)(h);p.current=h;const x=(0,V.useMemo)(()=>Ye(d),[JSON.stringify(d)]);(0,V.useEffect)(()=>{const e=u.current;e&&(e.className=t)},[t]),(0,V.useEffect)(()=>{if("undefined"==typeof document)return;if(o.isDestroyed)return;const e=u.current;if(!e)return;e.style.visibility="hidden",e.style.position="absolute",e.dataset.dragging="false";const{plugin:t,unbind:n}=Je({editor:o,element:e,pluginKey:i,computePositionConfig:{...Ze,...a},onElementDragStart:e=>{var t,n;return null===(t=(n=p.current).onElementDragStart)||void 0===t?void 0:t.call(n,e)},onElementDragEnd:e=>{var t,n;return null===(t=(n=p.current).onElementDragEnd)||void 0===t?void 0:t.call(n,e)},onNodeChange:e=>{var t,n;return null===(t=(n=p.current).onNodeChange)||void 0===t?void 0:t.call(n,e)},getReferencedVirtualElement:()=>{var e,t,n;return null!==(e=null===(t=(n=p.current).getReferencedVirtualElement)||void 0===t?void 0:t.call(n))&&void 0!==e?e:null},nestedOptions:x});return o.registerPlugin(t),()=>{o.isDestroyed||o.unregisterPlugin(i),n()}},[o,i,a,x]);const m=u.current;return m?(0,X.createPortal)(n,m):null});var et={plaintext:"Plain Text",js:"JavaScript",ts:"TypeScript",css:"CSS",html:"HTML",python:"Python",bash:"Bash"};function tt({listLanguages:e}){const{t:i}=n.useLocale(),[r,s]=(0,V.useState)(!1),c=g.useEditorInstance(),l=(0,V.useMemo)(()=>{const{selection:e}=c.state,t=e.$from.parent;if("codeBlock"===t.type.name){const e=t.attrs.language||"plaintext";return et[e]||e}},[c.state,e]),a=(0,V.useMemo)(()=>{let t=e||[];return e?.includes("plaintext")||(t=["plaintext",...t]),t.map(e=>({label:et[e]||e,value:e}))},[e]);return(0,_.jsxs)(d.Popover,{modal:!0,onOpenChange:s,open:r,children:[(0,_.jsx)(d.PopoverTrigger,{asChild:!0,className:"hover:richtext-bg-accent data-[state=on]:richtext-bg-accent",children:(0,_.jsxs)(t.ActionButton,{dataState:!!l,children:[l?(0,_.jsx)(_.Fragment,{children:l}):(0,_.jsx)(_.Fragment,{children:i("editor.paragraph.tooltip")}),(0,_.jsx)(o.IconComponent,{className:"richtext-ml-1 richtext-size-3 richtext-text-zinc-500",name:"MenuDown"})]})}),(0,_.jsx)(d.PopoverContent,{align:"start",className:"!richtext-w-[initial] !richtext-p-[4px]",hideWhenDetached:!0,side:"bottom",children:a?.map(e=>(0,_.jsxs)("div",{className:"richtext-flex richtext-w-full richtext-items-center richtext-gap-3 richtext-rounded-sm !richtext-border-none !richtext-bg-transparent richtext-px-2 richtext-py-1.5 richtext-text-left richtext-text-sm richtext-text-foreground !richtext-outline-none richtext-transition-colors hover:!richtext-bg-accent",onClick:t=>{t.preventDefault(),c.chain().focus().setCodeBlock({language:e.value}).run(),s(!1)},children:[(0,_.jsx)("div",{className:"!richtext-min-w-[20px]",children:l===e.value&&(0,_.jsx)(G.Check,{size:16})}),(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-1",children:e.label})]},e.value))})]})}exports.RichTextBubbleCallout=function(){const e=g.useEditableEditor(),o=g.useEditorInstance(),{t:r}=n.useLocale(),{type:c,title:d,body:h}=w.useAttributes(o,u.Callout.name,{type:"note",title:"",body:""}),[p,x]=(0,V.useState)(!1),[m,f]=(0,V.useState)("note"),[b,v]=(0,V.useState)(""),[j,C]=(0,V.useState)("");(0,V.useEffect)(()=>{p&&(f(c||"note"),v(d||""),C(h||""))},[p,c,d,h]);const y=(0,V.useCallback)(()=>{o&&(o.chain().updateAttributes(u.Callout.name,{type:m,title:b,body:j}).focus().run(),x(!1))},[o,m,b,j]),E=(0,V.useCallback)(()=>{x(!1)},[]),S=(0,V.useCallback)(()=>{te(u.Callout.name,o)},[o]),A=(0,V.useCallback)(()=>o.isActive(u.Callout.name),[o]);return e?(0,_.jsx)(J.BubbleMenu,{editor:o,options:{placement:"top",offset:8,flip:!0},pluginKey:"RichTextBubbleCallout",shouldShow:A,children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsxs)(s.Dialog,{onOpenChange:x,open:p,children:[(0,_.jsx)(s.DialogTrigger,{asChild:!0,children:(0,_.jsx)(t.ActionButton,{icon:"Pencil",tooltip:r("editor.callout.edit.title")})}),(0,_.jsxs)(s.DialogContent,{children:[(0,_.jsx)(s.DialogTitle,{children:r("editor.callout.edit.title")}),(0,_.jsxs)("div",{className:"richtext-space-y-4 richtext-py-4",children:[(0,_.jsxs)("div",{className:"richtext-space-y-2",children:[(0,_.jsx)(a.Label,{children:r("editor.callout.dialog.type")}),(0,_.jsxs)(u.Select,{onValueChange:f,value:m,children:[(0,_.jsx)(u.SelectTrigger,{children:(0,_.jsx)(u.SelectValue,{className:"richtext-text-accent",placeholder:r("editor.callout.dialog.type.placeholder")})}),(0,_.jsx)(u.SelectContent,{children:ne.map(e=>(0,_.jsx)(u.SelectItem,{value:e.value,children:r(`editor.callout.type.${e.value}`)},e.value))})]})]}),(0,_.jsxs)("div",{className:"richtext-space-y-2",children:[(0,_.jsx)(a.Label,{children:r("editor.callout.dialog.title.label")}),(0,_.jsx)(l.Input,{onChange:e=>v(e.target.value),placeholder:r("editor.callout.dialog.title.placeholder"),type:"text",value:b})]}),(0,_.jsxs)("div",{className:"richtext-space-y-2",children:[(0,_.jsx)(a.Label,{children:r("editor.callout.dialog.body.label")}),(0,_.jsx)(l.Input,{onChange:e=>C(e.target.value),placeholder:r("editor.callout.dialog.body.placeholder"),type:"text",value:j})]})]}),(0,_.jsxs)(s.DialogFooter,{children:[(0,_.jsx)(i.Button,{onClick:E,variant:"outline",children:r("editor.callout.dialog.button.cancel")}),(0,_.jsx)(i.Button,{onClick:y,children:r("editor.callout.dialog.button.apply")})]})]})]}),(0,_.jsx)(t.ActionButton,{action:S,icon:"Trash2",tooltip:r("editor.delete")})]})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleCodeBlock=function(){const e=g.useEditableEditor(),n=g.useEditorInstance(),o=g.useExtension(H.CodeBlock.name),i=(0,V.useCallback)(({editor:e})=>e.isActive(H.CodeBlock.name),[]),r=(0,V.useMemo)(()=>o?o.options?.lowlight?.listLanguages?.()||["plaintext","html","css","js","ts"]:[],[o]),s=(0,V.useCallback)(()=>te(H.CodeBlock.name,n),[n]);return e?(0,_.jsx)(J.BubbleMenu,{editor:n,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleCodeBlock",shouldShow:i,getReferencedVirtualElement:()=>{const{from:e}=n.state.selection,t=n.view.domAtPos(e).node.parentElement;return t?{getBoundingClientRect:()=>t.getBoundingClientRect()}:null},children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsx)(tt,{listLanguages:r}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),(0,_.jsx)(t.ActionButton,{action:()=>{const e=(()=>{const{from:e}=n.state.selection,t=n.state.doc.resolve(e);for(let n=t.depth;n>=0;n--){const e=t.node(n);if("codeBlock"===e.type.name)return e.textContent}return""})();navigator.clipboard.writeText(e)},tooltip:"Copy",children:(0,_.jsx)(G.Copy,{size:16})}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),(0,_.jsx)(t.ActionButton,{action:s,tooltip:"Delete",children:(0,_.jsx)(G.Trash2,{size:16})})]})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleColumns=function(){const e=g.useEditableEditor(),o=g.useEditorInstance(),{t:i}=n.useLocale(),r=(0,V.useCallback)(()=>o.isActive(C.MultipleColumnNode.name),[o]),s=(0,V.useCallback)(()=>te(C.MultipleColumnNode.name,o),[o]),c=(0,V.useCallback)(()=>o.chain().focus().addColBefore().run(),[o]),l=(0,V.useCallback)(()=>o.chain().focus().addColAfter().run(),[o]),a=(0,V.useCallback)(()=>o.chain().focus().deleteCol().run(),[o]);return e?(0,_.jsx)(J.BubbleMenu,{editor:o,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleColumns",shouldShow:r,children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsx)(t.ActionButton,{action:c,icon:"ColumnAddLeft",tooltip:i("editor.table.menu.insertColumnBefore")}),(0,_.jsx)(t.ActionButton,{action:l,icon:"ColumnAddRight",tooltip:i("editor.table.menu.insertColumnAfter")}),(0,_.jsx)(t.ActionButton,{action:a,icon:"DeleteColumn",tooltip:i("editor.table.menu.deleteColumn")}),(0,_.jsx)(t.ActionButton,{action:s,icon:"Trash2",tooltip:i("editor.table.menu.delete_column")})]})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleDrawer=function(){const{lang:e,t:o}=n.useLocale(),i=g.useEditableEditor(),r=g.useEditorInstance(),s=w.useAttributes(r,y.Drawer.name),c=g.useExtension(y.Drawer.name),l=(0,V.useMemo)(()=>function(e,n){return[...le(e,n),{type:"edit",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.edit"),icon:"Pencil",action:()=>!0}},{type:"remove",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.remove"),icon:"Trash2",action:()=>{const{state:t,dispatch:n}=e.view;(0,ee.deleteSelection)(t,n)}}}]}(r,o),[r,e,o]);return i?(0,_.jsx)(J.BubbleMenu,{editor:r,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleDrawer",shouldShow:({editor:e})=>{const{selection:t}=e.view.state,{$from:n,to:o}=t;let i=!1;return e.view.state.doc.nodesBetween(n.pos,o,e=>{if(e.type.name===y.Drawer.name)return i=!0,!1}),i},children:l?.length?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:l?.map((e,t)=>"edit"===e.type&&s?.src?(0,_.jsx)(he,{attrs:s,editor:r,extension:c},`bubbleMenu-drawer-${t}`):(0,_.jsx)(pe,{editor:r,item:e},`bubbleMenu-drawer-${t}`))}):(0,_.jsx)(_.Fragment,{})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleDrawio=function(){const e=g.useEditableEditor(),o=g.useEditorInstance(),{t:i}=n.useLocale(),{width:r}=function(e){const t=e.options.element;me.has("width")||me.set("width",t.clientWidth),me.has("width")&&me.get("width")<=0&&me.set("width",t.clientWidth);const n=new MutationObserver(function(){me.set("width",t.clientWidth)});return n.observe(t,{attributes:!0,childList:!0,subtree:!0}),e.on("destroy",()=>{n.disconnect()}),{width:me.get("width")}}(o),s=w.useAttributes(o,j.Drawio.name,{defaultShowPicker:!1,createUser:"",width:0,height:0}),{defaultShowPicker:c,createUser:l,width:a,height:d}=s,u=(0,V.useCallback)(e=>{o.chain().updateAttributes(j.Drawio.name,e).setNodeSelection(o.state.selection.from).focus().run()},[o]),h=(0,V.useCallback)(()=>{const e=m.EVENTS.DRAWIO?.(o.id)||`drawio-${o.id}`;m.emit(e,s)},[o,s]),p=(0,V.useCallback)(()=>o.isActive(j.Drawio.name),[o]),x=(0,V.useCallback)(()=>te(j.Drawio.name,o),[o]);return(0,V.useEffect)(()=>{c&&(h(),o.chain().updateAttributes(j.Drawio.name,{defaultShowPicker:!1}).focus().run())},[l,c,o,h]),e?(0,_.jsx)(J.BubbleMenu,{editor:o,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleDrawio",shouldShow:p,children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsx)(t.ActionButton,{action:h,icon:"Pencil",tooltip:i("editor.edit")}),(0,_.jsx)(xe,{height:d,maxWidth:r,onOk:u,width:a,children:(0,_.jsx)(t.ActionButton,{icon:"Settings",tooltip:i("editor.settings")})}),(0,_.jsx)(t.ActionButton,{action:x,icon:"Trash2",tooltip:i("editor.delete")})]})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleIframe=function(){const e=g.useEditableEditor(),o=g.useEditorInstance(),{t:r}=n.useLocale(),{width:c,height:a,src:d}=w.useAttributes(o,S.Iframe.name,{width:0,height:0,src:"",defaultShowPicker:!1}),[u,h]=(0,V.useState)(!1),[p,x]=(0,V.useState)(""),m=(0,V.useCallback)(e=>{e?.preventDefault?.(),h(!1)},[h]);(0,V.useEffect)(()=>{u&&x(d)},[u,d]);const f=(0,V.useCallback)(e=>{e?.preventDefault?.();const t=S.getServiceSrc(p);o.chain().updateAttributes(S.Iframe.name,{src:t?.src||p}).setNodeSelection(o.state.selection.from).focus().run(),h(!1)},[o,p,h]),b=(0,V.useCallback)(()=>{window.open(d,"_blank")},[d]),v=(0,V.useCallback)(e=>{o.chain().updateAttributes(S.Iframe.name,e).setNodeSelection(o.state.selection.from).focus().run()},[o]),j=(0,V.useCallback)(()=>o.isActive(S.Iframe.name)&&!d,[o,d]),C=(0,V.useCallback)(()=>te(S.Iframe.name,o),[o]);return e?(0,_.jsx)(_.Fragment,{children:(0,_.jsx)(J.BubbleMenu,{editor:o,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleIframe",shouldShow:j,children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsx)(t.ActionButton,{action:b,icon:"Eye",tooltip:"Visit Link"}),(0,_.jsxs)(s.Dialog,{onOpenChange:h,open:u,children:[(0,_.jsx)(s.DialogTrigger,{asChild:!0,children:(0,_.jsx)(t.ActionButton,{icon:"Pencil",tooltip:"Open Edit Link"})}),(0,_.jsxs)(s.DialogContent,{children:[(0,_.jsx)(s.DialogHeader,{children:(0,_.jsx)(s.DialogTitle,{children:"Edit Link Iframe"})}),(0,_.jsx)(l.Input,{autoFocus:!0,onInput:e=>x(e.target.value),placeholder:"Enter link",type:"url",value:p}),(0,_.jsxs)(s.DialogFooter,{children:[(0,_.jsx)(i.Button,{onClick:m,type:"button",children:"Cancel"}),(0,_.jsx)(i.Button,{onClick:f,type:"button",children:"OK"})]})]})]}),(0,_.jsx)(xe,{height:a,onOk:v,width:c,children:(0,_.jsx)(t.ActionButton,{icon:"Settings",tooltip:r("editor.settings")})}),(0,_.jsx)(t.ActionButton,{action:C,icon:"Trash2",tooltip:r("editor.delete")})]})})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleImage=function(){const{lang:e,t:o}=n.useLocale(),i=g.useEditableEditor(),r=g.useEditorInstance(),s=(0,V.useMemo)(()=>function(e,n){return[{type:"flipX",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.tooltip.flipX"),icon:"FlipX",action:()=>{const{flipX:t}=e.getAttributes("image");e.chain().focus(void 0,{scrollIntoView:!1}).updateImage({flipX:!t}).run()}}},{type:"flipY",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.tooltip.flipY"),icon:"FlipY",action:()=>{const{flipY:t}=e.getAttributes("image");e.chain().focus(void 0,{scrollIntoView:!1}).updateImage({flipY:!t}).run()}}},...oe(e,n),...re(e,n),{type:"remove",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.remove"),icon:"Trash2",action:()=>{const{state:t,dispatch:n}=e.view;(0,ee.deleteSelection)(t,n)}}}]}(r,o),[r,e,o]);return i?(0,_.jsx)(J.BubbleMenu,{editor:r,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleImage",shouldShow:({editor:e})=>{const{selection:t}=e.view.state,{$from:n,to:o}=t;let i=!1;return e.view.state.doc.nodesBetween(n.pos,o,e=>{if(function(e){return e.type.name===x.Image.name}(e))return i=!0,!1}),i},children:s?.length?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:s?.map((e,t)=>(0,_.jsx)(be,{editor:r,item:e},`bubbleMenu-image-${t}`))}):(0,_.jsx)(_.Fragment,{})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleImageGif=function(){const{lang:e,t:o}=n.useLocale(),i=g.useEditableEditor(),r=g.useEditorInstance(),s=(0,V.useMemo)(()=>function(e,n){return[...ie(e,n),...se(e,n),{type:"remove",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.remove"),icon:"Trash2",action:()=>{const{state:t,dispatch:n}=e.view;(0,ee.deleteSelection)(t,n)}}}]}(r,o),[r,o,e]);return i?(0,_.jsx)(J.BubbleMenu,{editor:r,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleImageGif",shouldShow:({editor:e})=>{const{selection:t}=e.view.state,{$from:n,to:o}=t;let i=!1;return e.view.state.doc.nodesBetween(n.pos,o,e=>{if(function(e){return e.type.name===T.ImageGif.name}(e))return i=!0,!1}),i},children:s?.length?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:s?.map((e,t)=>(0,_.jsx)(be,{editor:r,item:e},`bubbleMenu-image-gif-${t}`))}):(0,_.jsx)(_.Fragment,{})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleKatex=function(){const e=g.useEditableEditor(),n=g.useEditorInstance(),[o,i]=(0,V.useState)(!1),r=(0,V.useCallback)(()=>n.isActive(w.Katex.name),[n]),s=(0,V.useCallback)(()=>te(w.Katex.name,n),[n]);return e?(0,_.jsx)(J.BubbleMenu,{editor:n,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleKatex",shouldShow:r,children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsx)(ge,{toggleVisible:i,visible:o,children:(0,_.jsx)(t.ActionButton,{action:()=>i(!o),tooltip:"Edit",children:(0,_.jsx)(G.Pencil,{size:16})})}),(0,_.jsx)(t.ActionButton,{action:s,tooltip:"Delete",children:(0,_.jsx)(G.Trash2,{size:16})})]})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleLink=function(){const e=g.useEditableEditor(),t=g.useEditorInstance(),[n,o]=(0,V.useState)(!1),i=w.useAttributes(t,B.Link.name)?.href,r=(0,V.useCallback)(({editor:e})=>e.isActive(B.Link.name),[]),s=(0,V.useCallback)(()=>{t.chain().extendMarkRange("link").unsetLink().focus().run(),o(!1)},[t]);return e?(0,_.jsx)(J.BubbleMenu,{editor:t,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleLink",shouldShow:r,children:(0,_.jsx)(_.Fragment,{children:n?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-4 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:(0,_.jsx)(B.LinkEditBlock,{editor:t,onClose:()=>{o(!1)},onSetLink:(e,n,i)=>{const{from:r}=t.state.selection,s=r+(n?.length??0);t.chain().extendMarkRange("link").insertContent({type:"text",text:n,marks:[{type:"link",attrs:{href:e,target:i?"_blank":""}}]}).setLink({href:e}).setTextSelection({from:r,to:s}).focus().run(),o(!1)}})}):(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:(0,_.jsx)(fe,{editor:t,link:i,onClear:s,onEdit:()=>{o(!0)}})})})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleMenuDragHandle=function(){const e=g.useEditorInstance(),i=g.useEditableEditor(),{t:r}=n.useLocale(),[s,l]=(0,V.useState)(null),[a,d]=(0,V.useState)(-1),[u,h]=(0,V.useState)(!1),p=e?.extensionManager?.extensions?.some(e=>e?.name===L.TextAlign.name),x=e?.extensionManager?.extensions?.some(e=>e?.name===K.Indent.name),m=e?.extensionManager?.extensions?.some(e=>e?.name===z.Clear.name);function f(t){e.commands.setTextAlign(t)}const b=(0,V.useCallback)(e=>{e.node&&l(e.node),d(e.pos),requestAnimationFrame(()=>{e.editor.commands.focus()})},[]);(0,V.useEffect)(()=>(u?e.commands.setMeta("lockDragHandle",!0):e.commands.setMeta("lockDragHandle",!1),()=>{e.commands.setMeta("lockDragHandle",!1)}),[u]);const v=e=>{i&&h(e)};return(0,_.jsx)(Qe,{className:"richtext-transition-all richtext-duration-200 richtext-ease-out",editor:e,onNodeChange:b,pluginKey:"RichTextBubbleMenuDragHandle",children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-0.5",children:[(0,_.jsx)(t.ActionButton,{disabled:!i,icon:"Grip",tooltip:r("editor.draghandle.grip"),action:e=>{e.preventDefault(),e.stopPropagation(),v(!u)}}),(0,_.jsxs)(c.DropdownMenu,{onOpenChange:v,open:u,children:[(0,_.jsx)(c.DropdownMenuTrigger,{className:"richtext-pointer-events-none"}),(0,_.jsxs)(c.DropdownMenuContent,{align:"start",className:"richtext-w-48",hideWhenDetached:!0,side:"bottom",sideOffset:0,children:[(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3 richtext-bg-opacity-10 hover:richtext-bg-red-400 hover:richtext-bg-opacity-20 focus:richtext-bg-red-400 focus:richtext-bg-opacity-30 focus:richtext-text-red-500 dark:hover:richtext-bg-opacity-20 dark:hover:richtext-text-red-500",onClick:function(){e.chain().setMeta("hideDragHandle",!0).setNodeSelection(a).deleteSelection().run()},children:[(0,_.jsx)(o.IconComponent,{name:"Trash2"}),(0,_.jsx)("span",{children:r("editor.remove")})]}),m?(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",onClick:function(){const t=e.chain();t.setNodeSelection(a).unsetAllMarks(),"paragraph"!==s?.type.name&&t.setParagraph(),t.run()},children:[(0,_.jsx)(o.IconComponent,{name:"PaintRoller"}),(0,_.jsx)("span",{children:r("editor.clear.tooltip")})]}):null,(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",onClick:function(){e.commands.setNodeSelection(a);const{$anchor:t}=e.state.selection,n=t.node(1)||e.state.selection.node;e.chain().setMeta("hideDragHandle",!0).insertContentAt(a+(s?.nodeSize||0),n.toJSON()).run()},children:[(0,_.jsx)(o.IconComponent,{name:"Copy"}),(0,_.jsx)("span",{children:r("editor.copy")})]}),p||x?(0,_.jsx)(c.DropdownMenuSeparator,{}):null,p?(0,_.jsxs)(c.DropdownMenuSub,{children:[(0,_.jsxs)(c.DropdownMenuSubTrigger,{className:"richtext-flex richtext-gap-3",children:[(0,_.jsx)(o.IconComponent,{name:"AlignCenter"}),(0,_.jsx)("span",{children:r("editor.textalign.tooltip")})]}),(0,_.jsx)(c.DropdownMenuPortal,{children:(0,_.jsxs)(c.DropdownMenuSubContent,{children:[(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",onClick:()=>f("left"),children:[(0,_.jsx)(o.IconComponent,{name:"AlignLeft"}),(0,_.jsx)("span",{children:r("editor.textalign.left.tooltip")})]}),(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",onClick:()=>f("center"),children:[(0,_.jsx)(o.IconComponent,{name:"AlignCenter"}),(0,_.jsx)("span",{children:r("editor.textalign.center.tooltip")})]}),(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",onClick:()=>f("right"),children:[(0,_.jsx)(o.IconComponent,{name:"AlignRight"}),(0,_.jsx)("span",{children:r("editor.textalign.right.tooltip")})]})]})})]}):null,x?(0,_.jsxs)(c.DropdownMenuSub,{children:[(0,_.jsxs)(c.DropdownMenuSubTrigger,{className:"richtext-flex richtext-gap-3",children:[(0,_.jsx)(o.IconComponent,{name:"IndentIncrease"}),(0,_.jsx)("span",{children:r("editor.indent")})]}),(0,_.jsx)(c.DropdownMenuPortal,{children:(0,_.jsxs)(c.DropdownMenuSubContent,{children:[(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",disabled:s?.attrs?.indent>=K.IndentProps.max,onClick:function(){const t=K.setNodeIndentMarkup(e.state.tr,a,1);t.setMeta("hideDragHandle",!0),e.view.dispatch&&e.view.dispatch(t)},children:[(0,_.jsx)(o.IconComponent,{name:"IndentIncrease"}),(0,_.jsx)("span",{children:r("editor.indent.tooltip")})]}),(0,_.jsxs)(c.DropdownMenuItem,{className:"richtext-flex richtext-gap-3",disabled:s?.attrs?.indent<=K.IndentProps.min,onClick:function(){const t=K.setNodeIndentMarkup(e.state.tr,a,-1);e.view.dispatch&&e.view.dispatch(t)},children:[(0,_.jsx)(o.IconComponent,{name:"IndentDecrease"}),(0,_.jsx)("span",{children:r("editor.outdent.tooltip")})]})]})})]}):null]})]})]})})},exports.RichTextBubbleMermaid=function(){const{lang:e,t:o}=n.useLocale(),i=g.useEditableEditor(),r=g.useEditorInstance(),s=w.useAttributes(r,k.Mermaid.name),c=g.useExtension(k.Mermaid.name),l=(0,V.useMemo)(()=>function(e,n){return[...ce(e,n),{type:"edit",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.edit"),icon:"Pencil",action:()=>!0}},{type:"remove",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.remove"),icon:"Trash2",action:()=>{const{state:t,dispatch:n}=e.view;(0,ee.deleteSelection)(t,n)}}}]}(r,o),[r,e,o]);return i?(0,_.jsx)(J.BubbleMenu,{editor:r,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleMermaid",shouldShow:({editor:e})=>{const{selection:t}=e.view.state,{$from:n,to:o}=t;let i=!1;return e.view.state.doc.nodesBetween(n.pos,o,e=>{if(function(e){return e.type.name===k.Mermaid.name}(e))return i=!0,!1}),i},children:l?.length?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:l?.map((e,t)=>"edit"===e.type&&s?.src?(0,_.jsx)(je,{attrs:s,editor:r,extension:c},`bubbleMenu-mermaid-${t}`):(0,_.jsx)(we,{editor:r,item:e},`bubbleMenu-mermaid-${t}`))}):(0,_.jsx)(_.Fragment,{})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleTable=function({hiddenActions:e=[]}){const{t:o}=n.useLocale(),i=g.useEditableEditor(),r=g.useEditorInstance(),s=t=>e.includes(t);return i?(0,_.jsx)(J.BubbleMenu,{editor:r,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleTable",shouldShow:({editor:e})=>(0,W.isActive)(e.view.state,D.Table.name),children:(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[!s("addColumnBefore")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().addColumnBefore().run()},disabled:!r?.can()?.addColumnBefore?.(),icon:"BetweenHorizonalEnd",tooltip:o("editor.table.menu.insertColumnBefore"),tooltipOptions:{sideOffset:15}}),!s("addColumnAfter")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().addColumnAfter().run()},disabled:!r?.can()?.addColumnAfter?.(),icon:"BetweenHorizonalStart",tooltip:o("editor.table.menu.insertColumnAfter"),tooltipOptions:{sideOffset:15}}),!s("deleteColumn")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().deleteColumn().run()},disabled:!r?.can().deleteColumn?.(),icon:"DeleteColumn",tooltip:o("editor.table.menu.deleteColumn"),tooltipOptions:{sideOffset:15}}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),!s("addRowAbove")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().addRowBefore().run()},disabled:!r?.can().addRowBefore?.(),icon:"BetweenVerticalEnd",tooltip:o("editor.table.menu.insertRowAbove"),tooltipOptions:{sideOffset:15}}),!s("addRowBelow")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().addRowAfter().run()},disabled:!r?.can()?.addRowAfter?.(),icon:"BetweenVerticalStart",tooltip:o("editor.table.menu.insertRowBelow"),tooltipOptions:{sideOffset:15}}),!s("deleteRow")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().deleteRow().run()},disabled:!r?.can()?.deleteRow?.(),icon:"DeleteRow",tooltip:o("editor.table.menu.deleteRow"),tooltipOptions:{sideOffset:15}}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),!s("mergeCells")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().mergeCells().run()},disabled:!r?.can()?.mergeCells?.(),icon:"TableCellsMerge",tooltip:o("editor.table.menu.mergeCells"),tooltipOptions:{sideOffset:15}}),!s("splitCells")&&(0,_.jsx)(t.ActionButton,{action:function(){r?.chain().focus().splitCell().run()},disabled:!r?.can()?.splitCell?.(),icon:"TableCellsSplit",tooltip:o("editor.table.menu.splitCells"),tooltipOptions:{sideOffset:15}}),(0,_.jsx)(h.Separator,{className:"!richtext-mx-1 !richtext-my-2 !richtext-h-[16px]",orientation:"vertical"}),!s("deleteTable")&&(0,_.jsx)(t.ActionButton,{action:function(){r.chain().focus().deleteTable().run()},disabled:!r?.can()?.deleteTable?.(),icon:"Trash2",tooltip:o("editor.table.menu.deleteTable"),tooltipOptions:{sideOffset:15}})]})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleText=function({buttonBubble:e}){const t=g.useEditorInstance();return g.useEditableEditor()?(0,_.jsx)(J.BubbleMenu,{editor:t,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleText",shouldShow:({editor:e})=>{const{selection:t}=e.view.state,{$from:n,to:o}=t;return!e.isActive("codeBlock")&&(n.pos!==o&&("closed"===v.getAiState(e.view.state)?.panel.status&&t instanceof U.TextSelection))},children:e?(0,_.jsx)(_.Fragment,{children:e}):(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:(0,_.jsx)(Ee,{})})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleTwitter=function(){const{t:e}=n.useLocale(),o=g.useEditableEditor(),i=g.useEditorInstance(),[r,s]=(0,V.useState)(!1),c=(0,V.useCallback)(({editor:e})=>e.isActive(F.Twitter.name),[]),l=(0,V.useCallback)(()=>te(F.Twitter.name,i),[i]);return o?(0,_.jsx)(J.BubbleMenu,{editor:i,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleTwitter",shouldShow:c,children:(0,_.jsx)(_.Fragment,{children:r?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-4 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:(0,_.jsx)(F.FormEditLinkTwitter,{editor:i,onSetLink:e=>{i.commands.updateTweet({src:e}),s(!1)}})}):(0,_.jsxs)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:[(0,_.jsx)(t.ActionButton,{icon:"Pencil",tooltip:e("editor.link.edit.tooltip"),tooltipOptions:{sideOffset:15},action:()=>{s(!0)}}),(0,_.jsx)(t.ActionButton,{action:l,icon:"Trash",tooltip:e("editor.delete"),tooltipOptions:{sideOffset:15}})]})})}):(0,_.jsx)(_.Fragment,{})},exports.RichTextBubbleVideo=function(){const{t:e}=n.useLocale(),o=g.useEditableEditor(),i=g.useEditorInstance(),r=(0,V.useMemo)(()=>function(e,n){return[...de(e,n),...ae(e),{type:"remove",component:t.ActionButton,componentProps:{editor:e,tooltip:n("editor.remove"),icon:"Trash2",action:()=>{const{state:t,dispatch:n}=e.view;(0,ee.deleteSelection)(t,n)}}}]}(i,e),[i,e]);return o?(0,_.jsx)(J.BubbleMenu,{editor:i,options:{placement:"bottom",offset:8,flip:!0},pluginKey:"RichTextBubbleVideo",shouldShow:({editor:e})=>{const{selection:t}=e.view.state,{$from:n,to:o}=t;let i=!1;return e.view.state.doc.nodesBetween(n.pos,o,e=>{if(function(e){return e.type.name===b.Video.name}(e))return i=!0,!1}),i},children:r?.length?(0,_.jsx)("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:r?.map((e,t)=>(0,_.jsx)(be,{editor:i,item:e},`bubbleMenu-video-${t}`))}):(0,_.jsx)(_.Fragment,{})}):(0,_.jsx)(_.Fragment,{})};
|
package/dist/bubble.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,c as s,d as o,f as r,g as b,h as m,i as p,l as t,m as e,n as f,o as i,p as l,r as u,s as c,t as d,u as g}from"./bubble-
|
|
1
|
+
import{a,c as s,d as o,f as r,g as b,h as m,i as p,l as t,m as e,n as f,o as i,p as l,r as u,s as c,t as d,u as g}from"./bubble-DF0FOqik.js";export{b as RichTextBubbleCallout,d as RichTextBubbleCodeBlock,m as RichTextBubbleColumns,e as RichTextBubbleDrawer,l as RichTextBubbleDrawio,r as RichTextBubbleIframe,c as RichTextBubbleImage,s as RichTextBubbleImageGif,o as RichTextBubbleKatex,g as RichTextBubbleLink,f as RichTextBubbleMenuDragHandle,i as RichTextBubbleMermaid,a as RichTextBubbleTable,p as RichTextBubbleText,u as RichTextBubbleTwitter,t as RichTextBubbleVideo};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { TRange } from 'platejs';
|
|
2
|
+
import { PlateEditor } from 'platejs/react';
|
|
3
|
+
import { AiCommandDefinition, AiCompletionFn, AiSuggestionMode } from '../../extensions/Ai/types';
|
|
4
|
+
export type { AiCommandDefinition, AiCompletionFn, AiSuggestionMode };
|
|
5
|
+
/** Options the `AiPlugin` carries; the controller reads them on every request. */
|
|
6
|
+
export interface PlateAiOptions {
|
|
7
|
+
/** Quick commands offered in the panel. Same defaults as the Tiptap extension. */
|
|
8
|
+
commands: AiCommandDefinition[];
|
|
9
|
+
/** Runs a completion. Defaults to the shared rewrite endpoint. */
|
|
10
|
+
getCompletion: AiCompletionFn;
|
|
11
|
+
/** System message sent with every request. */
|
|
12
|
+
systemPrompt: string;
|
|
13
|
+
/** How much surrounding text (characters) is sent as context. `0` sends none. */
|
|
14
|
+
contextChars: number;
|
|
15
|
+
/**
|
|
16
|
+
* Whether the panel is open. Mirrored from the panel state rather than set by
|
|
17
|
+
* hand — `./ui/floating-toolbar.tsx` reads it to hide the selection toolbar
|
|
18
|
+
* while the panel is up.
|
|
19
|
+
*/
|
|
20
|
+
open: boolean;
|
|
21
|
+
}
|
|
22
|
+
/** A suggestion being reviewed. Nothing here is in the document yet. */
|
|
23
|
+
export interface PlateAiSuggestion {
|
|
24
|
+
originalText: string;
|
|
25
|
+
suggestedText: string;
|
|
26
|
+
mode: AiSuggestionMode;
|
|
27
|
+
/** True while text is still streaming in; accept/insert-below stay disabled. */
|
|
28
|
+
isStreaming: boolean;
|
|
29
|
+
}
|
|
30
|
+
export type PlateAiPanel = {
|
|
31
|
+
status: 'closed';
|
|
32
|
+
} | {
|
|
33
|
+
status: 'menu';
|
|
34
|
+
range: TRange;
|
|
35
|
+
} | {
|
|
36
|
+
status: 'loading';
|
|
37
|
+
range: TRange;
|
|
38
|
+
commandLabel: string;
|
|
39
|
+
} | {
|
|
40
|
+
status: 'reviewing';
|
|
41
|
+
range: TRange;
|
|
42
|
+
suggestion: PlateAiSuggestion;
|
|
43
|
+
commandLabel: string;
|
|
44
|
+
} | {
|
|
45
|
+
status: 'error';
|
|
46
|
+
range: TRange;
|
|
47
|
+
commandLabel: string;
|
|
48
|
+
message: string;
|
|
49
|
+
};
|
|
50
|
+
export interface PlateAiController {
|
|
51
|
+
/** Opens the command menu over the current selection. */
|
|
52
|
+
open(): void;
|
|
53
|
+
/** Closes the panel and cancels anything in flight. Writes nothing. */
|
|
54
|
+
close(): void;
|
|
55
|
+
/** Runs a quick command by id, with the submenu choice it needs, if any. */
|
|
56
|
+
runCommand(commandId: string, option?: string): boolean;
|
|
57
|
+
/** Runs a free-form instruction typed into the panel. */
|
|
58
|
+
submitPrompt(instruction: string): boolean;
|
|
59
|
+
/** Re-issues the last request against the same range. */
|
|
60
|
+
retry(): boolean;
|
|
61
|
+
/** Stops generating, keeping whatever has already streamed in. */
|
|
62
|
+
stop(): void;
|
|
63
|
+
/** Writes the suggestion over the range it was asked about. */
|
|
64
|
+
accept(): boolean;
|
|
65
|
+
/** Writes the suggestion into a new block after the range, leaving it intact. */
|
|
66
|
+
insertBelow(): boolean;
|
|
67
|
+
/** Same as `close` — named for the button that calls it. */
|
|
68
|
+
discard(): void;
|
|
69
|
+
/** Commands available for the panel's current range. */
|
|
70
|
+
availableCommands(): AiCommandDefinition[];
|
|
71
|
+
getState(): PlateAiPanel;
|
|
72
|
+
subscribe(listener: () => void): () => void;
|
|
73
|
+
}
|
|
74
|
+
export declare const DEFAULT_PLATE_AI_OPTIONS: PlateAiOptions;
|
|
75
|
+
/**
|
|
76
|
+
* Registers the assistant. `render.afterEditable` (the panel) is attached in
|
|
77
|
+
* `./kits/ai-kit.tsx`, which is what a host should spread into its plugin list;
|
|
78
|
+
* this is the plugin the options and the `mod+j` shortcut live on.
|
|
79
|
+
*/
|
|
80
|
+
export declare const AiPlugin: import('platejs/react').PlatePlugin<import('platejs').PluginConfig<"aiChat", PlateAiOptions, {}, {}, {}>>;
|
|
81
|
+
/** One controller per editor instance, created on first use and cached for its lifetime. */
|
|
82
|
+
export declare function getPlateAiController(editor: PlateEditor): PlateAiController;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { PlateAiOptions } from '../ai-controller';
|
|
2
|
+
/**
|
|
3
|
+
* The writing assistant, in the shape the other kits here have: spread it into
|
|
4
|
+
* the plugin list and the editor gains the `⌘/Ctrl + J` shortcut, the panel
|
|
5
|
+
* that `./ui/ai-toolbar-button.tsx` opens from the bubble menu, and the
|
|
6
|
+
* `KEYS.aiChat` `open` flag the floating toolbar reads to get out of its way.
|
|
7
|
+
*
|
|
8
|
+
* Unlike the rest of `./`, this is not a copy of Plate's registry `ai-kit`.
|
|
9
|
+
* Upstream's is built on `@platejs/ai`'s `AIChatPlugin`, which needs the Vercel
|
|
10
|
+
* AI SDK (`ai`, `@ai-sdk/react`) in the bundle and a streaming chat route to
|
|
11
|
+
* talk to — neither of which a published editor library can bring with it. This
|
|
12
|
+
* package already answers that question once, for Tiptap: a pluggable
|
|
13
|
+
* `getCompletion` (see `src/extensions/Ai/README.md`) that defaults to the
|
|
14
|
+
* host's rewrite endpoint. Both engines now share it, so the commands, prompts
|
|
15
|
+
* and response handling are the same on either side of the port.
|
|
16
|
+
*
|
|
17
|
+
* Point it at a different model or command set with `createAiKit`:
|
|
18
|
+
*
|
|
19
|
+
* ```ts
|
|
20
|
+
* createPlateEditor({
|
|
21
|
+
* plugins: [
|
|
22
|
+
* ...otherPlugins,
|
|
23
|
+
* ...createAiKit({
|
|
24
|
+
* getCompletion: createStreamingCompletion({ endpoint: '/api/ai' }),
|
|
25
|
+
* contextChars: 8000,
|
|
26
|
+
* }),
|
|
27
|
+
* ],
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* A host that only needs to swap the model at runtime can leave the kit alone
|
|
32
|
+
* and call `editor.setOption(AiPlugin, 'getCompletion', fn)`; the controller
|
|
33
|
+
* reads its options fresh on every request.
|
|
34
|
+
*/
|
|
35
|
+
export declare const createAiKit: (options?: Partial<PlateAiOptions>) => import('platejs/react').PlatePlugin<import('platejs').PluginConfig<"aiChat", Partial<PlateAiOptions> & PlateAiOptions, {}, {}, {}>>[];
|
|
36
|
+
/** The assistant with its defaults — what `plate-editor-config` spreads in. */
|
|
37
|
+
export declare const AiKit: import('platejs/react').PlatePlugin<import('platejs').PluginConfig<"aiChat", Partial<PlateAiOptions> & PlateAiOptions, {}, {}, {}>>[];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The "Ask AI anything…" panel for the Plate editor — the surface the bubble
|
|
3
|
+
* menu's `AIToolbarButton` (and `⌘/Ctrl + J`) opens.
|
|
4
|
+
*
|
|
5
|
+
* Same panel as the Tiptap side's `src/extensions/Ai/components/AiMenu.tsx`,
|
|
6
|
+
* button for button: a filterable command palette over a free-form prompt box,
|
|
7
|
+
* a streaming state with a Stop control, and a review state whose result is
|
|
8
|
+
* only written to the document when the user picks Replace / Insert below.
|
|
9
|
+
* Two things differ, both because this one lives with the Plate playground UI
|
|
10
|
+
* rather than inside the published Tiptap bundle: it reads its state from the
|
|
11
|
+
* per-editor controller in `../ai-controller.ts` instead of ProseMirror plugin
|
|
12
|
+
* state, and it is styled with the same Tailwind/shadcn tokens as its
|
|
13
|
+
* neighbours in `./` instead of the extension's plain `.ai-menu*` CSS.
|
|
14
|
+
*
|
|
15
|
+
* It is rendered through a portal and positioned against the captured range's
|
|
16
|
+
* DOM rect, so it floats above the editor regardless of scroll containers.
|
|
17
|
+
*/
|
|
18
|
+
import * as React from 'react';
|
|
19
|
+
export declare function AIMenu(): React.ReactPortal | null;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ToolbarButton } from './toolbar';
|
|
2
|
+
/**
|
|
3
|
+
* "Ask AI" — the bubble menu's entry into the writing assistant, and the same
|
|
4
|
+
* button the fixed toolbar can carry. Opens the panel in `./ai-menu.tsx` over
|
|
5
|
+
* whatever is selected; `⌘/Ctrl + J` does the same thing from the keyboard.
|
|
6
|
+
*
|
|
7
|
+
* `data-plate-focus` follows `./link-toolbar-button.tsx`: the click must not
|
|
8
|
+
* count as leaving the editor, or the selection the request is about would be
|
|
9
|
+
* gone by the time the panel opens.
|
|
10
|
+
*/
|
|
11
|
+
import * as React from 'react';
|
|
12
|
+
export declare function AIToolbarButton(props: React.ComponentProps<typeof ToolbarButton>): React.JSX.Element;
|