reactjs-tiptap-editor 0.0.26 → 0.0.27

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.
@@ -0,0 +1 @@
1
+ "use strict";const a=require("react/jsx-runtime"),l=require("./components-xS2gsLRE.cjs"),x=require("./utils-DqGt9oOA.cjs"),b=require("./vendor-Btqs8WA3.cjs"),m=require("./tiptap-CMeHtctt.cjs"),K=require("shiki"),g=require("react"),Q=require("react-dom"),xe=require("katex"),be=require("docx");function pe({fill:e}){return a.jsx("svg",{width:"18px",height:"18px",viewBox:"0 0 256 256",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:a.jsx("g",{id:"icon/填充色",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",children:a.jsxs("g",{id:"icon/背景颜色",children:[a.jsx("g",{id:"编组",fill:"currentColor",children:a.jsxs("g",{transform:"translate(119.502295, 137.878331) rotate(-135.000000) translate(-119.502295, -137.878331) translate(48.002295, 31.757731)",id:"矩形",children:[a.jsx("path",{d:"M100.946943,60.8084699 L43.7469427,60.8084699 C37.2852111,60.8084699 32.0469427,66.0467383 32.0469427,72.5084699 L32.0469427,118.70847 C32.0469427,125.170201 37.2852111,130.40847 43.7469427,130.40847 L100.946943,130.40847 C107.408674,130.40847 112.646943,125.170201 112.646943,118.70847 L112.646943,72.5084699 C112.646943,66.0467383 107.408674,60.8084699 100.946943,60.8084699 Z M93.646,79.808 L93.646,111.408 L51.046,111.408 L51.046,79.808 L93.646,79.808 Z",fillRule:"nonzero"}),a.jsx("path",{d:"M87.9366521,16.90916 L87.9194966,68.2000001 C87.9183543,69.4147389 86.9334998,70.399264 85.7187607,70.4 L56.9423078,70.4 C55.7272813,70.4 54.7423078,69.4150264 54.7423078,68.2 L54.7423078,39.4621057 C54.7423078,37.2523513 55.5736632,35.1234748 57.0711706,33.4985176 L76.4832996,12.4342613 C78.9534987,9.75382857 83.1289108,9.5834005 85.8093436,12.0535996 C87.1658473,13.303709 87.9372691,15.0644715 87.9366521,16.90916 Z",fillRule:"evenodd"}),a.jsx("path",{d:"M131.3,111.241199 L11.7,111.241199 C5.23826843,111.241199 0,116.479467 0,122.941199 L0,200.541199 C0,207.002931 5.23826843,212.241199 11.7,212.241199 L131.3,212.241199 C137.761732,212.241199 143,207.002931 143,200.541199 L143,122.941199 C143,116.479467 137.761732,111.241199 131.3,111.241199 Z M124,130.241 L124,193.241 L19,193.241 L19,130.241 L124,130.241 Z",fillRule:"nonzero"})]})}),a.jsx("path",{d:"M51,218 L205,218 C211.075132,218 216,222.924868 216,229 C216,235.075132 211.075132,240 205,240 L51,240 C44.9248678,240 40,235.075132 40,229 C40,222.924868 44.9248678,218 51,218 Z",id:"矩形",fill:e||"#FBDE28"})]})})})}function se(e){const[t,i]=g.useState(void 0);function n(s){var c;(c=e.action)==null||c.call(e,s)}function o(){var s;(s=e.action)==null||s.call(e,t)}const r=g.useCallback(b.debounce(s=>{i(s)},350),[]);return a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-h-[32px]",children:[a.jsx(l.ActionButton,{tooltip:e==null?void 0:e.tooltip,disabled:e==null?void 0:e.disabled,action:o,tooltipOptions:e==null?void 0:e.tooltipOptions,shortcutKeys:e==null?void 0:e.shortcutKeys,children:a.jsx("span",{className:"richtext-flex richtext-items-center richtext-justify-center richtext-text-sm",children:a.jsx(pe,{fill:t})})}),a.jsx(l.ColorPicker,{selectedColor:t,setSelectedColor:r,onChange:n,highlight:!0,disabled:e==null?void 0:e.disabled,children:a.jsx(l.Button,{variant:"ghost",size:"icon",className:"!richtext-w-3 !richtext-h-[32px]",disabled:e==null?void 0:e.disabled,children:a.jsx(l.IconComponent,{className:"!richtext-w-3 !richtext-h-3 richtext-text-zinc-500",name:"MenuDown"})})})]})}function ce(e){const{t}=x.useLocale(),[i,n]=g.useState({text:"",link:""}),[o,r]=g.useState(!1);g.useEffect(()=>{var c;if(e!=null&&e.editor){const{href:u,target:h}=(c=e.editor)==null?void 0:c.getAttributes("link"),{from:d,to:f}=e.editor.state.selection,p=e.editor.state.doc.textBetween(d,f," ");n({link:u,text:p}),r(h==="_blank")}},[e==null?void 0:e.editor]);function s(c){c.preventDefault(),e==null||e.onSetLink(i.link,i.text,o)}return a.jsx("div",{className:"richtext-p-2 richtext-bg-white !richtext-border richtext-rounded-lg richtext-shadow-sm dark:richtext-bg-black border-neutral-200 dark:richtext-border-neutral-800",children:a.jsxs("form",{className:"richtext-flex richtext-flex-col richtext-gap-2",onSubmit:s,children:[a.jsx(l.Label,{className:"mb-[6px]",children:t("editor.link.dialog.text")}),a.jsx("div",{className:"richtext-flex richtext-w-full richtext-max-w-sm richtext-items-center richtext-gap-1.5 richtext-mb-[10px]",children:a.jsx("div",{className:"richtext-relative richtext-items-center richtext-w-full richtext-max-w-sm",children:a.jsx(l.Input,{type:"text",value:i.text,required:!0,className:"richtext-w-80",placeholder:"Text",onChange:c=>n({...i,text:c.target.value})})})}),a.jsx(l.Label,{className:"mb-[6px]",children:t("editor.link.dialog.link")}),a.jsx("div",{className:"richtext-flex richtext-w-full richtext-max-w-sm richtext-items-center richtext-gap-1.5",children:a.jsxs("div",{className:"richtext-relative richtext-items-center richtext-w-full richtext-max-w-sm",children:[a.jsx(l.Input,{type:"url",value:i.link,required:!0,className:"richtext-pl-10",onChange:c=>n({...i,link:c.target.value})}),a.jsx("span",{className:"richtext-absolute richtext-inset-y-0 richtext-flex richtext-items-center richtext-justify-center richtext-px-2 richtext-start-0",children:a.jsx(l.IconComponent,{className:"richtext-size-5 richtext-text-muted-foreground",name:"Link"})})]})}),a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-space-x-2",children:[a.jsx(l.Label,{children:t("editor.link.dialog.openInNewTab")}),a.jsx(l.Switch,{checked:o,onCheckedChange:c=>{r(c)}})]}),a.jsx(l.Button,{type:"submit",className:"richtext-self-end richtext-mt-2",children:t("editor.link.dialog.button.apply")})]})})}function we(e){const{t}=x.useLocale();return a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-p-2 richtext-bg-white !richtext-border richtext-rounded-lg richtext-shadow-sm dark:richtext-bg-black richtext-border-neutral-200 dark:richtext-border-neutral-800",children:[a.jsx("a",{href:e==null?void 0:e.link,target:"_blank",rel:"noopener noreferrer",className:"richtext-text-sm richtext-underline richtext-break-all",children:b.truncate(e==null?void 0:e.link,{length:50,omission:"…"})}),(e==null?void 0:e.link)&&a.jsx(l.Separator,{orientation:"vertical",className:"!richtext-h-4"}),a.jsxs("div",{className:"richtext-flex richtext-flex-nowrap",children:[a.jsx(l.ActionButton,{icon:"Pencil",tooltip:t("editor.link.edit.tooltip"),action:()=>{e==null||e.onEdit()},tooltipOptions:{sideOffset:15}}),a.jsx(l.ActionButton,{icon:"Unlink",tooltip:t("editor.link.unlink.tooltip"),action:()=>{e==null||e.onClear()},tooltipOptions:{sideOffset:15}})]})]})}const ye=m.Bold.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button:({editor:t,t:i})=>({component:l.ActionButton,componentProps:{action:()=>t.commands.toggleBold(),isActive:()=>t.isActive("bold")||!1,disabled:!t.can().toggleBold(),icon:"Bold",shortcutKeys:["mod","B"],tooltip:i("editor.bold.tooltip")}})}}}),ve=m.Italic.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button({editor:t,t:i}){return{component:l.ActionButton,componentProps:{action:()=>t.commands.toggleItalic(),isActive:()=>t.isActive("italic")||!1,disabled:!t.can().toggleItalic(),shortcutKeys:["mod","I"],icon:"Italic",tooltip:i("editor.italic.tooltip")}}}}}}),ke=m.Underline.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button({editor:t,t:i}){return{component:l.ActionButton,componentProps:{action:()=>t.commands.toggleUnderline(),isActive:()=>t.isActive("underline")||!1,disabled:!t.can().toggleUnderline(),icon:"Underline",shortcutKeys:["mod","U"],tooltip:i("editor.underline.tooltip")}}}}}}),Ce=m.Strike.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button:({editor:t,t:i})=>({component:l.ActionButton,componentProps:{action:()=>t.commands.toggleStrike(),isActive:()=>t.isActive("strike")||!1,disabled:!t.can().toggleStrike(),icon:"Strikethrough",shortcutKeys:["shift","mod","X"],tooltip:i("editor.strike.tooltip")}})}}}),je=m.Code.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button:({editor:t,t:i})=>({component:l.ActionButton,componentProps:{action:()=>t.commands.toggleCode(),isActive:()=>t.isActive("code")||!1,disabled:!t.can().toggleCode(),icon:"Code",shortcutKeys:["mod","E"],tooltip:i("editor.code.tooltip")}})}}});let P,$;const Z=new Set,X=new Set;function Ae(){return P}function Te(e){if(!P&&!$){const t=e.themes.filter(n=>!!n&&n in K.bundledThemes),i=e.languages.filter(n=>!!n&&n in K.bundledLanguages);return $=K.createHighlighter({themes:t,langs:i}).then(n=>{P=n}),$}if($)return $}async function le(e){return P&&!P.getLoadedThemes().includes(e)&&!X.has(e)&&e in K.bundledThemes?(X.add(e),await P.loadTheme(e),X.delete(e),!0):!1}async function de(e){return P&&!P.getLoadedLanguages().includes(e)&&!Z.has(e)&&e in K.bundledLanguages?(Z.add(e),await P.loadLanguage(e),Z.delete(e),!0):!1}async function Se({doc:e,name:t,defaultTheme:i,defaultLanguage:n}){const o=m.findChildren(e,c=>c.type.name===t),r=[...o.map(c=>c.node.attrs.theme),i],s=[...o.map(c=>c.node.attrs.language),n];P?await Promise.all([...r.flatMap(c=>le(c)),...s.flatMap(c=>!!c&&de(c))]):await Te({languages:s,themes:r})}function ee({doc:e,name:t,defaultTheme:i,defaultLanguage:n}){const o=[];return m.findChildren(e,s=>s.type.name===t).forEach(s=>{let c=s.pos+1,u=s.node.attrs.language||n;const h=s.node.attrs.theme||i,d=Ae();if(!d)return;d.getLoadedLanguages().includes(u)||(u="plaintext");const f=d.getLoadedThemes().includes(h)?h:d.getLoadedThemes()[0],p=d.codeToTokensBase(s.node.textContent,{lang:u,theme:f});for(const _ of p){for(const w of _){const A=c+w.content.length,L=b.Decoration.inline(c,A,{style:`color: ${w.color}`});o.push(L),c=A}c+=1}}),b.DecorationSet.create(e,o)}function Le({name:e,defaultLanguage:t,defaultTheme:i}){const n=new b.Plugin({key:new b.PluginKey("shiki"),view(o){class r{constructor(){this.initDecorations()}update(){this.checkUndecoratedBlocks()}destroy(){}async initDecorations(){const c=o.state.doc;await Se({doc:c,name:e,defaultLanguage:t,defaultTheme:i});const u=o.state.tr.setMeta("shikiPluginForceDecoration",!0);o.dispatch(u)}async checkUndecoratedBlocks(){const c=m.findChildren(o.state.doc,d=>d.type.name===e);if((await Promise.all(c.flatMap(d=>[le(d.node.attrs.theme),de(d.node.attrs.language)]))).includes(!0)){const d=o.state.tr.setMeta("shikiPluginForceDecoration",!0);o.dispatch(d)}}}return new r},state:{init:(o,{doc:r})=>ee({doc:r,name:e,defaultLanguage:t,defaultTheme:i}),apply:(o,r,s,c)=>{const u=s.selection.$head.parent.type.name,h=c.selection.$head.parent.type.name,d=m.findChildren(s.doc,_=>_.type.name===e),f=m.findChildren(c.doc,_=>_.type.name===e),p=o.docChanged&&([u,h].includes(e)||f.length!==d.length||o.steps.some(_=>_.from!==void 0&&_.to!==void 0&&d.some(w=>w.pos>=_.from&&w.pos+w.node.nodeSize<=_.to)));return o.getMeta("shikiPluginForceDecoration")||p?ee({doc:o.doc,name:e,defaultLanguage:t,defaultTheme:i}):r.map(o.mapping,o.doc)}},props:{decorations(o){return n.getState(o)}}});return n}function Ne({action:e,languages:t,...i}){const n=r=>{e(r)},o=g.useMemo(()=>t==null?void 0:t.map(r=>({title:l.MAP_LANGUAGE_CODE_LABELS[r]||r,language:r})),[t]);return a.jsxs(l.DropdownMenu,{children:[a.jsx(l.DropdownMenuTrigger,{disabled:i==null?void 0:i.disabled,asChild:!0,children:a.jsx(l.ActionButton,{tooltip:i==null?void 0:i.tooltip,disabled:i==null?void 0:i.disabled,icon:i==null?void 0:i.icon})}),a.jsx(l.DropdownMenuContent,{className:"richtext-w-full",children:o==null?void 0:o.map(r=>a.jsx(l.DropdownMenuItem,{onClick:()=>n(r.language),children:a.jsx("div",{className:"richtext-h-full richtext-ml-1",children:r.title})},`codeblock-${r.title}`))})]})}const Me=m.CodeBlock.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),languages:[],button:({editor:t,t:i,extension:n})=>{var r,s,c;const o=(s=(r=n==null?void 0:n.options)==null?void 0:r.languages)!=null&&s.length?(c=n==null?void 0:n.options)==null?void 0:c.languages:l.DEFAULT_LANGUAGE_CODE_BLOCK;return{component:Ne,componentProps:{action:(u="js")=>t.commands.setCodeBlock({language:u}),isActive:()=>t.isActive("codeBlock")||!1,disabled:!t.can().toggleCodeBlock(),icon:"Code2",tooltip:i("editor.codeblock.tooltip"),languages:o}}}}},addProseMirrorPlugins(){var e;return[...((e=this.parent)==null?void 0:e.call(this))||[],Le({name:this.name,defaultLanguage:null,defaultTheme:this.options.defaultTheme})]}});function Ie(e){var o,r,s;const{t,lang:i}=x.useLocale(),n=g.useMemo(()=>{var h;const c=(h=e==null?void 0:e.items)==null?void 0:h.find(d=>d.isActive());return c&&!c.default?{...c}:{title:e.tooltip,font:t("editor.fontFamily.default.tooltip"),isActive:()=>!1,disabled:!1,action:()=>e.editor.chain().focus().unsetFontFamily().run()}},[t,i,e]);return a.jsxs(l.DropdownMenu,{children:[a.jsx(l.DropdownMenuTrigger,{disabled:e==null?void 0:e.disabled,asChild:!0,children:a.jsx(l.ActionMenuButton,{title:((o=n==null?void 0:n.font)==null?void 0:o.length)>7?`${(r=n==null?void 0:n.font)==null?void 0:r.slice(0,6)}...`:n==null?void 0:n.font,tooltip:e==null?void 0:e.tooltip,disabled:e==null?void 0:e.disabled,icon:"MenuDown"})}),a.jsx(l.DropdownMenuContent,{className:"richtext-w-full",children:(s=e==null?void 0:e.items)==null?void 0:s.map((c,u)=>{const h=c.font===t("editor.fontFamily.default.tooltip")?{}:{fontFamily:c.font};return a.jsxs(g.Fragment,{children:[a.jsx(l.DropdownMenuCheckboxItem,{checked:(n==null?void 0:n.font)===c.font,onClick:c.action,children:a.jsx("div",{className:"richtext-h-full richtext-ml-1",style:h,children:c.font})}),c.font===t("editor.fontFamily.default.tooltip")&&a.jsx(l.DropdownMenuSeparator,{})]},`font-family-${u}`)})})]})}const Ee=m.FontFamily.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),fontFamilyList:l.DEFAULT_FONT_FAMILY_LIST,button({editor:t,extension:i,t:n}){var h;const{extensions:o=[]}=t.extensionManager??[],r=x.ensureNameValueOptions(((h=i==null?void 0:i.options)==null?void 0:h.fontFamilyList)||[]),s=o.find(d=>d.name==="base-kit"),c=r.map(d=>({action:()=>{t.chain().focus().setFontFamily(d.value).run()},isActive:()=>t.isActive("textStyle",{fontFamily:d.value})||!1,disabled:!t.can().setFontFamily(d.value),title:d.name,font:d.value}));s&&s.options.textStyle!==!1&&c.unshift({action:()=>t.chain().focus().unsetFontFamily().run(),isActive:()=>!1,disabled:!1,font:n("editor.fontFamily.default.tooltip"),title:n("editor.fontFamily.tooltip")});const u=c.filter(d=>d.disabled).length===c.length;return{component:Ie,componentProps:{tooltip:n("editor.fontFamily.tooltip"),disabled:u,items:c,editor:t}}}}}});function Pe(e){var i;const t=g.useMemo(()=>{var r;const n=(r=e==null?void 0:e.items)==null?void 0:r.find(s=>s.isActive());return n&&!n.default?{...n}:{title:e.tooltip,level:0,isActive:()=>!1}},[e]);return a.jsxs(l.DropdownMenu,{children:[a.jsx(l.DropdownMenuTrigger,{disabled:e==null?void 0:e.disabled,asChild:!0,children:a.jsx(l.ActionMenuButton,{title:t==null?void 0:t.title,tooltip:e==null?void 0:e.tooltip,disabled:e==null?void 0:e.disabled,icon:"MenuDown"})}),a.jsx(l.DropdownMenuContent,{className:"richtext-w-full",children:(i=e==null?void 0:e.items)==null?void 0:i.map((n,o)=>{var r,s;return a.jsxs(g.Fragment,{children:[a.jsxs(l.DropdownMenuCheckboxItem,{checked:(t==null?void 0:t.title)===n.title,onClick:n.action,children:[a.jsx("div",{className:`richtext-ml-1 richtext-h-full heading-${n.level}`,children:n.title}),!!((r=n==null?void 0:n.shortcutKeys)!=null&&r.length)&&a.jsx(l.DropdownMenuShortcut,{className:"richtext-pl-4",children:(s=n==null?void 0:n.shortcutKeys)==null?void 0:s.map(c=>x.getShortcutKey(c)).join(" ")})]}),n.level===0&&a.jsx(l.DropdownMenuSeparator,{})]},`heading-k-${o}`)})})]})}const Re=m.Heading.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),levels:[1,2,3,4,5,6],button({editor:t,extension:i,t:n}){var h;const{extensions:o=[]}=t.extensionManager??[],r=((h=i.options)==null?void 0:h.levels)||[],s=o.find(d=>d.name==="base-kit"),c=r.map(d=>({action:()=>t.commands.toggleHeading({level:d}),isActive:()=>t.isActive("heading",{level:d})||!1,disabled:!t.can().toggleHeading({level:d}),title:n(`editor.heading.h${d}.tooltip`),level:d,shortcutKeys:["alt","mod",`${d}`]}));s&&s.options.paragraph!==!1&&c.unshift({action:()=>t.commands.setParagraph(),isActive:()=>t.isActive("paragraph")||!1,disabled:!t.can().setParagraph(),level:0,title:n("editor.paragraph.tooltip"),shortcutKeys:["alt","mod","0"]});const u=c.filter(d=>d.disabled).length===c.length;return{component:Pe,componentProps:{tooltip:n("editor.heading.tooltip"),disabled:u,items:c,editor:t}}}}}});function Be(e){var i;const t=g.useMemo(()=>{var r;const n=(r=e==null?void 0:e.items)==null?void 0:r.find(s=>s.isActive());return n&&!n.default?{...n,icon:n.icon?n.icon:e.icon}:{title:e==null?void 0:e.tooltip,icon:e.icon,isActive:()=>!1}},[e]);return a.jsxs(l.Popover,{children:[a.jsx(l.PopoverTrigger,{disabled:e==null?void 0:e.disabled,asChild:!0,children:a.jsx(l.ActionButton,{customClass:"!richtext-w-12 richtext-h-12",icon:e==null?void 0:e.icon,tooltip:e==null?void 0:e.tooltip,disabled:e==null?void 0:e.disabled,children:a.jsx(l.IconComponent,{className:"richtext-w-3 richtext-h-3 richtext-ml-1 richtext-text-zinc-500",name:"MenuDown"})})}),a.jsx(l.PopoverContent,{className:"richtext-min-w-4 richtext-w-full !richtext-p-[4px] richtext-flex richtext-flex-row richtext-gap-1",align:"start",side:"bottom",children:(i=e==null?void 0:e.items)==null?void 0:i.map((n,o)=>{var r,s;return a.jsxs(l.Tooltip,{children:[a.jsx(l.TooltipTrigger,{asChild:!0,children:a.jsx(l.Toggle,{size:"sm",onClick:n==null?void 0:n.action,className:"richtext-p-1 richtext-w-7 richtext-h-7",pressed:t.title===n.title,"data-state":t.title===n.title?"on":"off",children:(n==null?void 0:n.icon)&&a.jsx(l.IconComponent,{name:n.icon})})}),a.jsxs(l.TooltipContent,{className:"richtext-flex richtext-flex-col richtext-items-center",children:[a.jsx("span",{children:n.title}),!!((r=n.shortcutKeys)!=null&&r.length)&&a.jsx("span",{children:(s=n.shortcutKeys)==null?void 0:s.map(c=>x.getShortcutKey(c)).join(" ")})]})]},`text-align-${o}`)})})]})}const De=m.TextAlign.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),types:["heading","paragraph","list_item","title"],button({editor:t,extension:i,t:n}){var h;const o=((h=i.options)==null?void 0:h.alignments)||[],r={left:["mod","Shift","L"],center:["mod","Shift","E"],right:["mod","Shift","R"],justify:["mod","Shift","J"]},s={left:"AlignLeft",center:"AlignCenter",right:"AlignRight",justify:"AlignJustify"},c=o.map(d=>{var f,p,_;return{title:n(`editor.textalign.${d}.tooltip`),icon:s[d],shortcutKeys:r[d],isActive:()=>t.isActive({textAlign:d})||!1,action:()=>{var w,A;return(A=(w=t.commands)==null?void 0:w.setTextAlign)==null?void 0:A.call(w,d)},disabled:!((_=(p=(f=t==null?void 0:t.can)==null?void 0:f.call(t))==null?void 0:p.setTextAlign)!=null&&_.call(p,d))}}),u=c.filter(d=>d.disabled).length===c.length;return{component:Be,componentProps:{icon:"AlignJustify",tooltip:n("editor.textalign.tooltip"),disabled:u,items:c}}}}}});function He(e){var n;const{t}=x.useLocale(),i=g.useMemo(()=>{const o=(e.items||[]).find(s=>s.isActive());return o||{title:t("editor.fontSize.default.tooltip"),isActive:()=>!1}},[e]);return a.jsxs(l.DropdownMenu,{children:[a.jsx(l.DropdownMenuTrigger,{disabled:e==null?void 0:e.disabled,asChild:!0,children:a.jsx(l.ActionMenuButton,{title:i==null?void 0:i.title,tooltip:`${e==null?void 0:e.tooltip}`,disabled:e==null?void 0:e.disabled,icon:"MenuDown"})}),a.jsx(l.DropdownMenuContent,{className:"richtext-w-32 richtext-overflow-y-auto richtext-max-h-96",children:(n=e==null?void 0:e.items)==null?void 0:n.map((o,r)=>a.jsx(l.DropdownMenuCheckboxItem,{checked:i.title===o.title,onClick:o.action,children:a.jsx("div",{className:"richtext-h-full richtext-ml-1",children:o.title})},`font-size-${r}`))})]})}const Oe=m.Extension.create({name:"fontSize",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),types:["textStyle"],fontSizes:[...l.DEFAULT_FONT_SIZE_LIST],button({editor:t,extension:i,t:n}){var u;const o=x.ensureNameValueOptions(((u=i.options)==null?void 0:u.fontSizes)||l.DEFAULT_FONT_SIZE_VALUE),r=x.ensureNameValueOptions([l.DEFAULT_FONT_SIZE_VALUE])[0],s=o.map(h=>({title:h.value===r.value?n("editor.fontSize.default.tooltip"):String(h.name),isActive:()=>{const{fontSize:d}=t.getAttributes("textStyle");return h.value===r.value&&d===void 0?!0:t.isActive({fontSize:String(h.value)})||!1},action:()=>{if(h.value===r.value){t.commands.unsetFontSize();return}t.commands.setFontSize(String(h.value))},disabled:!t.can().setFontSize(String(h.value)),divider:h.value===r.value||!1,default:h.value===r.value||!1})),c=s.filter(h=>h.disabled).length===s.length;return{component:He,componentProps:{editor:t,tooltip:n("editor.fontSize.tooltip"),disabled:c,items:s,maxHeight:280}}}}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:e=>e.style.fontSize.replaceAll(/["']+/g,""),renderHTML:e=>e.fontSize?{style:`font-size: ${e.fontSize}`}:{}}}}]},addCommands(){return{setFontSize:e=>({chain:t})=>t().setMark("textStyle",{fontSize:e}).run(),unsetFontSize:()=>({chain:e})=>e().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run()}}});function ze({fill:e}){return a.jsx("svg",{width:"18px",height:"18px",viewBox:"0 0 240 240",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:a.jsx("g",{stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",children:a.jsx("g",{transform:"translate(0.000000, 0.500000)",children:a.jsxs("g",{transform:"translate(39.000000, 17.353553)",children:[a.jsx("path",{d:"M11,201.146447 L167,201.146447 C173.075132,201.146447 178,206.071314 178,212.146447 C178,218.221579 173.075132,223.146447 167,223.146447 L11,223.146447 C4.92486775,223.146447 7.43989126e-16,218.221579 0,212.146447 C-7.43989126e-16,206.071314 4.92486775,201.146447 11,201.146447 Z",id:"矩形",fill:e||"#DF2A3F",fillRule:"evenodd"}),a.jsx("path",{d:"M72.3425855,16.8295583 C75.799482,7.50883712 86.1577877,2.75526801 95.4785089,6.21216449 C100.284516,7.99463061 104.096358,11.7387855 105.968745,16.4968188 L106.112518,16.8745422 L159.385152,161.694068 C161.291848,166.877345 158.635655,172.624903 153.452378,174.531599 C148.358469,176.405421 142.719567,173.872338 140.716873,168.864661 L140.614848,168.598825 L89.211,28.86 L37.3759214,168.623816 C35.4885354,173.712715 29.8981043,176.351047 24.7909589,174.617647 L24.5226307,174.522368 C19.4337312,172.634982 16.7953993,167.044551 18.5287999,161.937406 L18.6240786,161.669077 L72.3425855,16.8295583 Z",id:"路径-21",fill:"currentColor",fillRule:"nonzero"}),a.jsx("path",{d:"M121,103.146447 C126.522847,103.146447 131,107.623599 131,113.146447 C131,118.575687 126.673329,122.994378 121.279905,123.142605 L121,123.146447 L55,123.146447 C49.4771525,123.146447 45,118.669294 45,113.146447 C45,107.717207 49.3266708,103.298515 54.7200952,103.150288 L55,103.146447 L121,103.146447 Z",id:"路径-22",fill:"currentColor",fillRule:"nonzero"})]})})})})}function Fe(e){const[t,i]=g.useState(void 0);function n(s){var c;(c=e.action)==null||c.call(e,s)}function o(){var s;(s=e.action)==null||s.call(e,t)}const r=g.useCallback(b.debounce(s=>{i(s)},350),[]);return a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-h-[32px]",children:[a.jsx(l.ActionButton,{tooltip:e==null?void 0:e.tooltip,disabled:e==null?void 0:e.disabled,action:o,children:a.jsx("span",{className:"richtext-flex richtext-items-center richtext-justify-center richtext-text-sm",children:a.jsx(ze,{fill:t})})}),a.jsx(l.ColorPicker,{selectedColor:t,setSelectedColor:r,onChange:n,disabled:e==null?void 0:e.disabled,colors:e==null?void 0:e.colors,defaultColor:e==null?void 0:e.defaultColor,children:a.jsx(l.Button,{variant:"ghost",size:"icon",className:"r!ichtext-h-[32px] !richtext-w-3",disabled:e==null?void 0:e.disabled,children:a.jsx(l.IconComponent,{className:"!richtext-w-3 !richtext-h-3 richtext-text-zinc-500",name:"MenuDown"})})})]})}const qe=m.Color.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button({editor:t,t:i,extension:n}){return{component:Fe,componentProps:{colors:n.options.colors,defaultColor:n.options.defaultColor,action:o=>{o===void 0&&t.chain().focus().unsetColor().run(),typeof o=="string"&&t.chain().focus().setColor(o).run()},isActive:()=>{const{color:o}=t.getAttributes("textStyle");return o&&t.isActive({color:o})||!1},editor:t,disabled:!t.can().setColor(""),tooltip:i("editor.color.tooltip")}}}}}}),Ue=m.Highlight.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),multicolor:!0,button:({editor:t,t:i})=>({component:se,componentProps:{action:n=>{typeof n=="string"&&t.chain().focus().setHighlight({color:n}).run(),n===void 0&&t.chain().focus().unsetHighlight().run()},editor:t,isActive:()=>t.isActive("highlight")||!1,disabled:!t.can().setHighlight(),shortcutKeys:["⇧","mod","H"],tooltip:i("editor.highlight.tooltip")}})}}}),$e=m.BulletList.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button:({editor:t,t:i})=>({component:l.ActionButton,componentProps:{action:()=>t.commands.toggleBulletList(),isActive:()=>t.isActive("bulletList")||!1,disabled:!1,shortcutKeys:["shift","mod","8"],icon:"List",tooltip:i("editor.bulletlist.tooltip")}})}}}),Ke=m.Node.create({name:"clear",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button:({editor:t,t:i})=>({component:l.ActionButton,componentProps:{action:()=>t.chain().focus().clearNodes().unsetAllMarks().run(),disabled:!t.can().chain().focus().clearNodes().unsetAllMarks().run(),icon:"Eraser",tooltip:i("editor.clear.tooltip")}})}}}),Ve=m.OrderedList.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button:({editor:t,t:i})=>({component:l.ActionButton,componentProps:{action:()=>t.commands.toggleOrderedList(),isActive:()=>t.isActive("orderedList")||!1,disabled:!1,icon:"ListOrdered",shortcutKeys:["mod","shift","7"],tooltip:i("editor.orderedlist.tooltip")}})}}}),Ge=m.TaskList.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),HTMLAttributes:{class:"task-list"},taskItem:{HTMLAttributes:{class:"task-list-item"}},button:({editor:t,t:i})=>({component:l.ActionButton,componentProps:{action:()=>t.commands.toggleTaskList(),isActive:()=>t.isActive("taskList")||!1,disabled:!1,icon:"ListTodo",shortcutKeys:["shift","mod","9"],tooltip:i("editor.tasklist.tooltip")}})}},addExtensions(){return[m.TaskItem.configure(this.options.taskItem)]}}),We=m.Blockquote.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),HTMLAttributes:{class:"blockquote"},button:({editor:t,t:i})=>({component:l.ActionButton,componentProps:{action:()=>t.commands.toggleBlockquote(),isActive:()=>t.isActive("blockquote")||!1,disabled:!t.can().toggleBlockquote(),icon:"TextQuote",shortcutKeys:["shift","mod","B"],tooltip:i("editor.blockquote.tooltip")}})}}});function Ze(e){function t(i,n,o){e.action&&e.action({link:i,text:n,openInNewTab:o})}return a.jsxs(l.Popover,{children:[a.jsx(l.PopoverTrigger,{disabled:e==null?void 0:e.disabled,asChild:!0,children:a.jsx(l.ActionButton,{tooltip:e==null?void 0:e.tooltip,isActive:e==null?void 0:e.isActive,disabled:e==null?void 0:e.disabled,children:a.jsx(l.IconComponent,{name:e==null?void 0:e.icon})})}),a.jsx(l.PopoverContent,{hideWhenDetached:!0,className:"richtext-w-full",align:"start",side:"bottom",children:a.jsx(ce,{editor:e.editor,onSetLink:t})})]})}const Xe=m.Link.extend({inclusive:!1,parseHTML(){return[{tag:'a[href]:not([data-type="button"]):not([href *= "javascript:" i])'}]},renderHTML({HTMLAttributes:e}){return["a",m.mergeAttributes(this.options.HTMLAttributes,e,{class:"link"}),0]},addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),openOnClick:!0,button:({editor:t,t:i})=>({component:Ze,componentProps:{editor:t,action:n=>{const{link:o,text:r,openInNewTab:s}=n;t.chain().extendMarkRange("link").insertContent({type:"text",text:r,marks:[{type:"link",attrs:{href:o,target:s?"_blank":""}}]}).setLink({href:o}).focus().run()},id:"linkk",isActive:()=>t.isActive("link")||!1,disabled:!t.can().setLink({href:""}),icon:"Link",tooltip:i("editor.link.tooltip")}})}},addProseMirrorPlugins(){return[new b.Plugin({props:{handleClick:(e,t)=>{const{schema:i,doc:n,tr:o}=e.state,r=m.getMarkRange(n.resolve(t),i.marks.link);if(!r)return!1;const s=n.resolve(r.from),c=n.resolve(r.to),u=o.setSelection(new b.TextSelection(s,c));e.dispatch(u)}}})]}}),Ye=m.HorizontalRule.extend({renderHTML(){return["div",m.mergeAttributes(this.options.HTMLAttributes,{"data-type":this.name}),["hr"]]},addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button:({editor:t,t:i})=>({component:l.ActionButton,componentProps:{action:()=>t.commands.setHorizontalRule(),disabled:!t.can().setHorizontalRule(),icon:"Minus",shortcutKeys:["mod","alt","S"],tooltip:i("editor.horizontalrule.tooltip")}})}},addKeyboardShortcuts(){return{"Mod-Alt-s":()=>this.editor.commands.setHorizontalRule()}}});function Je(e){var h;const{icon:t=void 0,tooltip:i=void 0,customClass:n="",tooltipOptions:o={},action:r=void 0,isActive:s=void 0,children:c}=e,u=l.icons[t];return a.jsxs(l.Tooltip,{children:[a.jsx(l.TooltipTrigger,{asChild:!0,children:a.jsxs(l.Toggle,{size:"sm",className:`richtext-w-[32px] richtext-h-[32px] ${n}`,disabled:s==null?void 0:s(),onClick:r,children:[u&&a.jsx(u,{className:"richtext-w-4 richtext-h-4"}),c&&a.jsx(a.Fragment,{children:c})]})}),i&&a.jsx(l.TooltipContent,{...o,children:a.jsxs("div",{className:"richtext-flex richtext-flex-col richtext-items-center richtext-text-center richtext-max-w-24",children:[a.jsx("div",{children:i}),!!((h=e==null?void 0:e.shortcutKeys)!=null&&h.length)&&a.jsx("span",{children:x.getShortcutKeys(e==null?void 0:e.shortcutKeys)})]})})]})}const Qe=["undo","redo"],et=m.History.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),depth:100,newGroupDelay:500,button:({editor:t,t:i})=>Qe.map(n=>({component:Je,componentProps:{action:()=>{n==="undo"&&t.chain().focus().undo().run(),n==="redo"&&t.chain().focus().redo().run()},shortcutKeys:n==="undo"?["mod","Z"]:["shift","mod","Z"],disabled:n==="undo"?!t.can().undo():!t.can().redo(),isActive:()=>n==="undo"?!t.can().undo():!t.can().redo(),icon:n==="undo"?"Undo2":"Redo2",tooltip:i(`editor.${n}.tooltip`)}}))}}}),tt=m.Document.extend({content:"(block|columns)+"}),nt=200,ue=m.Node.create({name:"columns",group:"block",defining:!0,isolating:!0,allowGapCursor:!1,content:"column{1,}",priority:nt,addOptions(){return{HTMLAttributes:{class:"columns"}}},addAttributes(){return{cols:{default:2,parseHTML:e=>e.getAttribute("cols")}}},parseHTML(){return[{tag:"div[class=grid]"}]},renderHTML({HTMLAttributes:e}){return["div",m.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{insertColumns:e=>({tr:t,dispatch:i,editor:n})=>{const o=x.createColumns(n.schema,e&&e.cols||3);if(i){const r=t.selection.anchor+1;t.replaceSelectionWith(o).scrollIntoView().setSelection(b.TextSelection.near(t.doc.resolve(r)))}return!0},addColBefore:()=>({dispatch:e,state:t})=>x.addOrDeleteCol({dispatch:e,state:t,type:"addBefore"}),addColAfter:()=>({dispatch:e,state:t})=>x.addOrDeleteCol({dispatch:e,state:t,type:"addAfter"}),deleteCol:()=>({dispatch:e,state:t})=>x.addOrDeleteCol({dispatch:e,state:t,type:"delete"})}},addKeyboardShortcuts(){return{"Mod-Alt-G":()=>this.editor.commands.insertColumns(),Tab:()=>x.gotoCol({state:this.editor.state,dispatch:this.editor.view.dispatch,type:"after"}),"Shift-Tab":()=>x.gotoCol({state:this.editor.state,dispatch:this.editor.view.dispatch,type:"before"})}}}),he=m.Node.create({name:"column",content:"block+",isolating:!0,addOptions(){return{HTMLAttributes:{class:"column"}}},addAttributes(){return{index:{default:0,parseHTML:e=>e.getAttribute("index")}}},parseHTML(){return[{tag:"div[class=column]"}]},renderHTML({HTMLAttributes:e}){return["div",m.mergeAttributes(this.options.HTMLAttributes,e),0]}}),it=m.Extension.create({name:"columnActionButton",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button:({editor:t,t:i})=>({component:l.ActionButton,componentProps:{action:()=>{t.chain().focus().insertColumns({cols:2}).run()},icon:"Columns",tooltip:i("editor.columns.tooltip")}})}}}),ot=m.Extension.create({name:"selection",addProseMirrorPlugins(){const{editor:e}=this;return[new b.Plugin({key:new b.PluginKey("selection"),props:{decorations(t){return t.selection.empty||e.isFocused===!0?null:b.DecorationSet.create(t.doc,[b.Decoration.inline(t.selection.from,t.selection.to,{class:"selection"})])}}})]}});function at(e){const{t}=x.useLocale(),i=g.useMemo(()=>[{name:"paragraph",label:t("editor.paragraph.tooltip"),iconName:"Heading1",isActive:()=>e.editor.isActive("paragraph")&&!e.editor.isActive("orderedList")&&!e.editor.isActive("bulletList")&&!e.editor.isActive("taskList"),action:()=>e.editor.chain().focus().clearNodes().run()},{name:"heading1",label:t("editor.heading.h1.tooltip"),isActive:()=>e.editor.isActive("heading",{level:1}),iconName:"Heading1",action:()=>e.editor.chain().focus().clearNodes().toggleHeading({level:1}).run()},{name:"heading2",label:t("editor.heading.h2.tooltip"),isActive:()=>e.editor.isActive("heading",{level:2}),iconName:"Heading2",action:()=>e.editor.chain().focus().clearNodes().toggleHeading({level:2}).run()},{name:"heading3",label:t("editor.heading.h3.tooltip"),isActive:()=>e.editor.isActive("heading",{level:3}),iconName:"Heading3",action:()=>e.editor.chain().focus().clearNodes().toggleHeading({level:3}).run()},{name:"bulletList",label:t("editor.bulletlist.tooltip"),isActive:()=>e.editor.isActive("bulletList"),iconName:"List",action:()=>e.editor.chain().focus().clearNodes().toggleBulletList().run()},{name:"numberedList",label:t("editor.orderedlist.tooltip"),isActive:()=>e.editor.isActive("orderedList"),iconName:"ListOrdered",action:()=>e.editor.chain().focus().clearNodes().toggleOrderedList().run()},{name:"taskList",label:t("editor.tasklist.tooltip"),isActive:()=>e.editor.isActive("taskList"),iconName:"ListTodo",action:()=>e.editor.chain().focus().clearNodes().toggleTaskList().run()},{name:"blockquote",label:t("editor.blockquote.tooltip"),isActive:()=>e.editor.isActive("blockquote"),iconName:"TextQuote",action:()=>e.editor.chain().focus().clearNodes().toggleBlockquote().run()},{name:"codeBlock",label:t("editor.codeblock.tooltip"),isActive:()=>e.editor.isActive("codeBlock"),iconName:"Code2",action:()=>e.editor.chain().focus().clearNodes().toggleCodeBlock().run()}],[e.editor,t]),n=g.useMemo(()=>i.filter(o=>o.isActive()).pop()??{label:"Empty"},[i]);return a.jsxs(l.DropdownMenu,{children:[a.jsx(l.DropdownMenuTrigger,{asChild:!0,children:a.jsxs(l.Button,{variant:"ghost",className:"richtext-h-[32px] richtext-flex richtext-gap-1 richtext-px-1.5",children:[a.jsxs("span",{className:"richtext-text-sm richtext-font-normal richtext-whitespace-nowrap",children:[" ",n==null?void 0:n.label]}),a.jsx(b.ChevronDown,{className:"richtext-w-4 richtext-h-4"})]})}),a.jsx(l.DropdownMenuContent,{hideWhenDetached:!0,className:"richtext-w-full richtext-p-1",align:"start",sideOffset:5,children:i.map((o,r)=>{var c;const s=l.icons[o.iconName];return a.jsx(l.DropdownMenuCheckboxItem,{checked:((c=o.isActive)==null?void 0:c.call(o))||!1,onClick:()=>o.action(),className:"richtext-cursor-pointer",children:a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-gap-2 richtext-px-2",children:[a.jsx(s,{className:"richtext-w-3 richtext-h3"}),a.jsxs("span",{children:[" ",o.label]})]})},`text-bubble-${r}`)})})]})}const rt=m.Extension.create({name:"text-bubble",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),toolbar:!1,button:()=>({component:at,componentProps:{}})}}});function te({types:e,node:t}){return Array.isArray(e)&&e.includes(t.type)||t.type===e}const st=m.Extension.create({name:"trailingNode",addOptions(){return{node:"paragraph",notAfter:["paragraph"]}},addProseMirrorPlugins(){const e=new b.PluginKey(this.name),t=Object.entries(this.editor.schema.nodes).map(([,i])=>i).filter(i=>this.options.notAfter.includes(i.name));return[new b.Plugin({key:e,appendTransaction:(i,n,o)=>{const{doc:r,tr:s,schema:c}=o,u=e.getState(o),h=r.content.size,d=c.nodes[this.options.node];if(u)return s.insert(h,d.create())},state:{init:(i,n)=>{const o=n.tr.doc.lastChild;return!te({node:o,types:t})},apply:(i,n)=>{if(!i.docChanged)return n;const o=i.doc.lastChild;return!te({node:o,types:t})}}})]}}),ct=m.Extension.create({name:"base-kit",addExtensions(){const e=[];return this.options.document!==!1&&e.push(tt.configure()),this.options.placeholder!==!1&&e.push(m.Placeholder.configure({placeholder:({node:t,pos:i,editor:n})=>{var o,r,s,c;return((o=t==null?void 0:t.type)==null?void 0:o.name)==="columns"?"":((r=t==null?void 0:t.type)==null?void 0:r.name)==="heading"?`${x.localeActions.t(`editor.heading.h${t.attrs.level}.tooltip`)}`:((s=t==null?void 0:t.type)==null?void 0:s.name)==="codeBlock"||((c=t==null?void 0:t.type)==null?void 0:c.name)==="table"?"":n.extensionManager.extensions.some(u=>u.name==="slashCommand")?x.localeActions.t("editor.slash"):x.localeActions.t("editor.content")},...this.options.placeholder})),this.options.focus!==!1&&e.push(m.FocusClasses.configure({className:"focus",...this.options.focus})),this.options.text!==!1&&e.push(m.Text.configure()),this.options.textBubble!==!1&&e.push(rt.configure()),this.options.gapcursor!==!1&&e.push(m.Gapcursor.configure()),this.options.dropcursor!==!1&&e.push(m.Dropcursor.configure({...this.options.dropcursor,width:2,class:"ProseMirror-dropcursor border-black"})),this.options.characterCount!==!1&&e.push(m.CharacterCount.configure(this.options.characterCount)),this.options.paragraph!==!1&&e.push(m.Paragraph.configure(this.options.paragraph)),this.options.hardBreak!==!1&&e.push(m.HardBreak.configure(this.options.hardBreak)),this.options.listItem!==!1&&e.push(m.ListItem.configure(this.options.listItem)),this.options.textStyle!==!1&&e.push(m.TextStyle.configure(this.options.textStyle)),this.options.trailingNode!==!1&&e.push(st.configure(this.options.trailingNode)),this.options.selection!==!1&&e.push(ot),this.options.multiColumn!==!1&&(e.push(he),e.push(ue)),e}}),lt=m.Extension.create({name:"subAndSuperScript",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button:({editor:t,extension:i,t:n})=>{const o=i.options.subscript,r=i.options.superscript,s={component:l.ActionButton,componentProps:{action:()=>t.commands.toggleSubscript(),isActive:()=>t.isActive("subscript")||!1,disabled:!t.can().toggleSubscript(),icon:"Subscript",tooltip:n("editor.subscript.tooltip")}},c={component:l.ActionButton,componentProps:{action:()=>t.commands.toggleSuperscript(),isActive:()=>t.isActive("superscript")||!1,disabled:!t.can().toggleSuperscript(),icon:"Superscript",tooltip:n("editor.superscript.tooltip")}},u=[];return o!==!1&&u.push(s),r!==!1&&u.push(c),u}}},addExtensions(){const e=[];return this.options.subscript!==!1&&e.push(m.Subscript.configure(this.options.subscript)),this.options.superscript!==!1&&e.push(m.Superscript.configure(this.options.superscript)),e}});function dt(e){var i;const t=g.useMemo(()=>{var r;const n=(r=e==null?void 0:e.items)==null?void 0:r.find(s=>s.isActive());return n&&!n.default?{...n,icon:n!=null&&n.icon?n==null?void 0:n.icon:e==null?void 0:e.icon}:{title:e.tooltip,icon:e.icon,isActive:()=>!1}},[e]);return a.jsxs(l.DropdownMenu,{children:[a.jsx(l.DropdownMenuTrigger,{disabled:e==null?void 0:e.disabled,asChild:!0,children:a.jsx(l.ActionButton,{customClass:"!richtext-w-12 richtext-h-12",icon:e==null?void 0:e.icon,tooltip:e==null?void 0:e.tooltip,disabled:e==null?void 0:e.disabled,children:a.jsx(l.MenuDown,{className:"richtext-w-3 richtext-h-3 richtext-text-gray-500"})})}),a.jsx(l.DropdownMenuContent,{className:"w-full",children:(i=e==null?void 0:e.items)==null?void 0:i.map((n,o)=>a.jsxs(l.DropdownMenuCheckboxItem,{checked:t.title===n.title,onClick:n.action,className:"richtext-flex richtext-items-center richtext-gap-3",children:[a.jsx(l.IconComponent,{name:n==null?void 0:n.icon}),a.jsx("span",{className:"richtext-ml-1",children:n.title}),!!(n!=null&&n.shortcutKeys)&&a.jsx("span",{className:"richtext-ml-auto richtext-text-xs richtext-tracking-widest richtext-opacity-60",children:x.getShortcutKeys(n.shortcutKeys)})]},`more-mark-${o}`))})]})}const ut=m.Extension.create({name:"moreMark",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button({editor:t,extension:i,t:n}){const o=i.options.subscript,r=i.options.superscript,s={action:()=>t.commands.toggleSubscript(),isActive:()=>t.isActive("subscript")||!1,disabled:!t.can().toggleSubscript(),icon:"Subscript",title:n("editor.subscript.tooltip"),shortcutKeys:["mod","."]},c={action:()=>t.commands.toggleSuperscript(),isActive:()=>t.isActive("superscript")||!1,disabled:!t.can().toggleSuperscript(),icon:"Superscript",title:n("editor.superscript.tooltip"),shortcutKeys:["mod",","]},u=[];return o!==!1&&u.push(s),r!==!1&&u.push(c),{component:dt,componentProps:{icon:"Type",tooltip:n("editor.moremark"),disabled:!t.isEditable,items:u}}}}},addExtensions(){const e=[];return this.options.subscript!==!1&&e.push(m.Subscript.configure(this.options.subscript)),this.options.superscript!==!1&&e.push(m.Superscript.configure(this.options.superscript)),e}}),ht=m.Extension.create({name:"indent",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),types:["paragraph","heading","blockquote"],minIndent:x.IndentProps.min,maxIndent:x.IndentProps.max,button({editor:t,t:i}){return[{component:l.ActionButton,componentProps:{action:()=>{t.commands.indent()},shortcutKeys:["Tab"],icon:"IndentIncrease",tooltip:i("editor.indent.tooltip")}},{component:l.ActionButton,componentProps:{action:()=>{t.commands.outdent()},shortcutKeys:["Shift","Tab"],icon:"IndentDecrease",tooltip:i("editor.outdent.tooltip")}}]}}},addGlobalAttributes(){return[{types:this.options.types,attributes:{indent:{default:0,parseHTML:e=>{const t=e.dataset.indent;return(t?Number.parseInt(t,10):0)||0},renderHTML:e=>e.indent?{"data-indent":e.indent}:{}}}}]},addCommands(){return{indent:()=>x.createIndentCommand({delta:x.IndentProps.more,types:this.options.types}),outdent:()=>x.createIndentCommand({delta:x.IndentProps.less,types:this.options.types})}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.indent(),"Shift-Tab":()=>this.editor.commands.outdent()}}});function mt(e){return Number.parseFloat(e.replace("%",""))/100}function gt(e){const{t}=x.useLocale(),[i,n]=g.useState("default");function o(s){s==="default"?e.editor.commands.unsetLineHeight():e.editor.commands.setLineHeight(s),n(s)}const r=g.useMemo(()=>{const u=e.editor.extensionManager.extensions.find(h=>h.name==="lineHeight").options.lineHeights.map(h=>({label:mt(h),value:h}));return u.unshift({label:t("editor.default"),value:"default"}),u},[e]);return a.jsxs(l.DropdownMenu,{children:[a.jsx(l.DropdownMenuTrigger,{disabled:e==null?void 0:e.disabled,asChild:!0,children:a.jsx(l.ActionButton,{customClass:"!richtext-w-12 richtext-h-12",icon:"LineHeight",tooltip:e==null?void 0:e.tooltip,disabled:e==null?void 0:e.disabled,children:a.jsx(l.IconComponent,{className:"richtext-w-3 richtext-h-3 richtext-ml-1 richtext-text-zinc-500",name:"MenuDown"})})}),a.jsx(l.DropdownMenuContent,{className:"richtext-min-w-24",children:r==null?void 0:r.map((s,c)=>a.jsx(l.DropdownMenuCheckboxItem,{checked:s.value===i,onClick:()=>o(s.value),children:s.label},`lineHeight-${c}`))})]})}const ft=m.Extension.create({name:"lineHeight",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),types:["paragraph","heading","list_item","todo_item"],lineHeights:l.DEFAULT_LINE_HEIGHT_LIST,defaultHeight:l.DEFAULT_LINE_HEIGHT,button({editor:t,t:i}){return{component:gt,componentProps:{editor:t,tooltip:i("editor.lineheight.tooltip")}}}}},addGlobalAttributes(){return[{types:this.options.types,attributes:{lineHeight:{default:null,parseHTML:e=>e.style.lineHeight||this.options.defaultHeight,renderHTML:e=>e.lineHeight===this.options.defaultHeight||!e.lineHeight?{}:{style:`line-height: ${e.lineHeight}`}}}}]},addCommands(){return{setLineHeight:e=>x.createLineHeightCommand(e),unsetLineHeight:()=>({commands:e})=>this.options.types.every(t=>e.resetAttributes(t,"lineHeight"))}}});function _t(e){const t=[{name:"format",title:x.localeActions.t("editor.slash.format"),commands:[]},{name:"insert",title:x.localeActions.t("editor.slash.insert"),commands:[]}];return e.forEach(i=>{i.name.toLowerCase()==="heading"&&i.options.levels.forEach(n=>{t[0].commands.push({name:`heading${n}`,label:x.localeActions.t(`editor.heading.h${n}.tooltip`),aliases:[`h${n}`,"bt",`bt${n}`],iconName:`Heading${n}`,action:({editor:o,range:r})=>{o.chain().focus().deleteRange(r).setHeading({level:n}).run()}})}),i.name.toLowerCase()==="bulletlist"&&t[0].commands.push({name:"bulletList",label:x.localeActions.t("editor.bulletlist.tooltip"),aliases:["ul","yxlb"],iconName:"List",action:({editor:n,range:o})=>{n.chain().focus().deleteRange(o).toggleBulletList().run()}}),i.name.toLowerCase()==="orderedlist"&&t[0].commands.push({name:"numberedList",label:x.localeActions.t("editor.orderedlist.tooltip"),aliases:["ol","yxlb"],iconName:"ListOrdered",action:({editor:n,range:o})=>{n.chain().focus().deleteRange(o).toggleOrderedList().run()}}),i.name.toLowerCase()==="tasklist"&&t[0].commands.push({name:"taskList",label:x.localeActions.t("editor.tasklist.tooltip"),iconName:"ListTodo",description:"Task list with todo items",aliases:["todo"],action:({editor:n,range:o})=>{n.chain().focus().deleteRange(o).toggleTaskList().run()}}),i.name.toLowerCase()==="blockquote"&&t[0].commands.push({name:"blockquote",label:x.localeActions.t("editor.blockquote.tooltip"),description:"插入引入格式",aliases:["yr"],iconName:"TextQuote",action:({editor:n,range:o})=>{n.chain().focus().deleteRange(o).setBlockquote().run()}}),i.name.toLowerCase()==="codeblock"&&t[0].commands.push({name:"codeBlock",label:x.localeActions.t("editor.codeblock.tooltip"),iconName:"Code2",description:"Code block with syntax highlighting",shouldBeHidden:n=>n.isActive("columns"),action:({editor:n,range:o})=>{n.chain().focus().deleteRange(o).setCodeBlock().run()}}),i.name.toLowerCase()==="image"&&t[1].commands.push({name:"image",label:x.localeActions.t("editor.image.tooltip"),iconName:"ImageUp",description:"Insert a image",aliases:["image","tp","tupian"],shouldBeHidden:n=>n.isActive("columns"),action:({editor:n,range:o})=>{n.chain().focus().deleteRange(o).setImageUpload().run()}}),i.name.toLowerCase()==="video"&&t[1].commands.push({name:"video",label:x.localeActions.t("editor.video.tooltip"),iconName:"Video",description:"Insert a video",aliases:["video","sp","shipin"],shouldBeHidden:n=>n.isActive("columns"),action:({editor:n,range:o})=>{n.chain().focus().deleteRange(o).setVideoUpload().run()}}),i.name.toLowerCase()==="table"&&t[1].commands.push({name:"table",label:x.localeActions.t("editor.table.tooltip"),iconName:"Table",description:"Insert a table",aliases:["table","bg","biaoge","biao"],shouldBeHidden:n=>n.isActive("columns"),action:({editor:n,range:o})=>{n.chain().focus().deleteRange(o).insertTable({rows:3,cols:3,withHeaderRow:!1}).run()}}),i.name.toLowerCase()==="horizontalrule"&&t[1].commands.push({name:"horizontalRule",label:x.localeActions.t("editor.horizontalrule.tooltip"),iconName:"Minus",description:"Insert a horizontal divider",aliases:["hr","fgx","fg"],action:({editor:n,range:o})=>{n.chain().focus().deleteRange(o).setHorizontalRule().run()}}),i.name.toLowerCase()==="columns"&&t[1].commands.push({name:"columns",label:x.localeActions.t("editor.columns.tooltip"),iconName:"Columns2",description:"Add two column content",action:({editor:n})=>{n.chain().focus().insertColumns({cols:2}).run()}})}),t}function xt(e,t){var L,T;const[i,n]=g.useState(0),[o,r]=g.useState(0),s=g.useRef(null),{t:c}=x.useLocale(),u=g.useRef([]);g.useImperativeHandle(t,()=>({onKeyDown:h})),g.useEffect(()=>{if(!s.current)return;const y=o*1e3+i,v=u.current[y];v&&v.scrollIntoView({behavior:"smooth",block:"nearest"})},[i,o]);function h({event:y}){return y.key==="ArrowUp"?(d(),!0):y.key==="ArrowDown"?(f(),!0):y.key==="Enter"?(p(),!0):!1}function d(){var k;if(e.items.length===0)return!1;let y=i-1,v=o;y<0&&(v=o-1,y=((k=e.items[v])==null?void 0:k.commands.length)-1||0),v<0&&(v=e.items.length-1,y=e.items[v].commands.length-1),n(y),r(v)}function f(){if(e.items.length===0)return!1;const y=e.items[o].commands;let v=i+1,k=o;y.length-1<v&&(v=0,k=o+1),e.items.length-1<k&&(k=0),n(v),r(k)}function p(){if(e.items.length===0||o===-1||i===-1)return!1;_(o,i)}function _(y,v){const k=e.items[y].commands[v];e.command(k)}function w(y,v){_(y,v)}function A(y,v,k){u.current[y*1e3+v]=k}return a.jsx("div",{className:"!richtext-bg-white richtext-rounded-lg dark:!richtext-bg-black richtext-shadow-sm !richtext-border !richtext-border-neutral-200 dark:!richtext-border-neutral-800 !richtext-text-black richtext-max-h-[min(80vh,24rem)] richtext-overflow-auto richtext-flex-wrap richtext-mb-8 richtext-p-1",ref:s,children:(L=e==null?void 0:e.items)!=null&&L.length?a.jsx("div",{className:"richtext-grid richtext-grid-cols-1 richtext-gap-0.5 richtext-min-w-48",children:(T=e==null?void 0:e.items)==null?void 0:T.map((y,v)=>a.jsxs(g.Fragment,{children:[a.jsx("div",{className:"!richtext-text-neutral-500 richtext-text-[0.65rem] richtext-col-[1/-1] richtext-mx-2 richtext-mt-2 richtext-font-semibold richtext-tracking-wider richtext-select-none richtext-uppercase first:richtext-mt-0.5",children:y.title}),y.commands.map((k,E)=>a.jsxs("button",{className:l.cn("richtext-flex richtext-items-center richtext-gap-3 richtext-px-2 richtext-py-1.5 richtext-text-sm !richtext-text-neutral-800 dark:!richtext-text-neutral-200 richtext-text-left richtext-w-full richtext-rounded-sm richtext-outline-none richtext-transition-colors !richtext-bg-transparent hover:!richtext-bg-accent ",{"slash-command-active":o===v&&i===E}),ref:C=>A(v,E,C),onClick:()=>w(v,E),children:[k.iconUrl&&a.jsx("img",{className:"richtext-w-6 richtext-h-6",src:k.iconUrl,alt:""}),k.iconName&&a.jsx(l.IconComponent,{name:k.iconName,className:"!richtext-mr-1 !richtext-text-lg"}),k.label]},`command-${E}`))]},`slash-${y.title}`))}):a.jsx("div",{className:"richtext-p-3",children:a.jsx("span",{className:"richtext-text-xs richtext-text-gray-800 dark:richtext-text-gray-100",children:c("editor.slash.empty")})})})}const bt=g.forwardRef(xt),H="slashCommand";let j;const pt=m.Extension.create({name:H,priority:200,onCreate(){j=b.tippy("body",{interactive:!0,trigger:"manual",placement:"bottom-start",theme:"slash-command",maxWidth:"16rem",offset:[16,8],popperOptions:{strategy:"fixed",modifiers:[{name:"flip",enabled:!1}]}})},addProseMirrorPlugins(){return[m.Suggestion({editor:this.editor,char:"/",allowSpaces:!0,startOfLine:!0,pluginKey:new b.PluginKey(H),allow:({state:e,range:t})=>{var h,d,f;const i=e.doc.resolve(t.from),n=i.depth===1,o=i.parent.type.name==="paragraph",r=((h=i.parent.textContent)==null?void 0:h.charAt(0))==="/",s=this.editor.isActive("column"),c=(f=i.parent.textContent)==null?void 0:f.slice(Math.max(0,(d=i.parent.textContent)==null?void 0:d.indexOf("/"))),u=!(c!=null&&c.endsWith(" "));return(n&&o&&r||s&&o&&r)&&u},command:({editor:e,range:t,props:i})=>{const{view:n}=e;i.action({editor:e,range:t}),n.focus()},items:({query:e,editor:t})=>_t(t.extensionManager.extensions).map(s=>({...s,commands:s.commands.filter(c=>{const u=c.label.toLowerCase().trim(),h=e.toLowerCase().trim();if(c.aliases){const d=c.aliases.map(_=>_.toLowerCase().trim()),f=u.match(h),p=d.some(_=>_.match(h));return f||p}return u.match(h)}).filter(c=>c.shouldBeHidden?!c.shouldBeHidden(this.editor):!0)})).filter(s=>s.commands.length>0).map(s=>({...s,commands:s.commands.map(c=>({...c,isEnabled:!0}))})),render:()=>{let e,t=null;return{onStart:i=>{var r;e=new m.ReactRenderer(bt,{props:i,editor:i.editor});const{view:n}=i.editor,o=()=>{if(!i.clientRect)return i.editor.storage[H].rect;const s=i.clientRect();if(!s)return i.editor.storage[H].rect;let c=s.y;if(s.top+e.element.offsetHeight+40>window.innerHeight){const u=s.top+e.element.offsetHeight-window.innerHeight+40;c=s.y-u}return new DOMRect(s.x,c,s.width,s.height)};t=()=>{j==null||j[0].setProps({getReferenceClientRect:o})},(r=n.dom.parentElement)==null||r.addEventListener("scroll",t),j==null||j[0].setProps({getReferenceClientRect:o,appendTo:()=>document.body,content:e.element}),j==null||j[0].show()},onUpdate(i){var s;e.updateProps(i);const{view:n}=i.editor,o=()=>{if(!i.clientRect)return i.editor.storage[H].rect;const c=i.clientRect();return c?new DOMRect(c.x,c.y,c.width,c.height):i.editor.storage[H].rect},r=()=>{j==null||j[0].setProps({getReferenceClientRect:o})};(s=n.dom.parentElement)==null||s.addEventListener("scroll",r),i.editor.storage[H].rect=i.clientRect?o():{width:0,height:0,left:0,top:0,right:0,bottom:0},j==null||j[0].setProps({getReferenceClientRect:o})},onKeyDown(i){var n;return i.event.key==="Escape"?(j==null||j[0].hide(),!0):(j!=null&&j[0].state.isShown||j==null||j[0].show(),(n=e.ref)==null?void 0:n.onKeyDown(i))},onExit(i){var n;if(j==null||j[0].hide(),t){const{view:o}=i.editor;(n=o.dom.parentElement)==null||n.removeEventListener("scroll",t)}e.destroy()}}}})]},addStorage(){return{rect:{width:0,height:0,left:0,top:0,right:0,bottom:0}}}}),V={TOP_LEFT:"tl",TOP_RIGHT:"tr",BOTTOM_LEFT:"bl",BOTTOM_RIGHT:"br"};function wt(e){var E;const[t,i]=g.useState({width:l.IMAGE_MAX_SIZE,height:l.IMAGE_MAX_SIZE}),[n,o]=g.useState({width:0,height:0}),[r]=g.useState([V.TOP_LEFT,V.TOP_RIGHT,V.BOTTOM_LEFT,V.BOTTOM_RIGHT]),[s,c]=g.useState(!1),[u,h]=g.useState({x:0,y:0,w:0,h:0,dir:""}),d=g.useMemo(()=>{var I;const{src:C,alt:N,width:M,height:B}=(I=e==null?void 0:e.node)==null?void 0:I.attrs,D=b.isNumber(M)?`${M}px`:M,S=b.isNumber(B)?`${B}px`:B;return{src:C||void 0,alt:N||void 0,style:{width:D||void 0,height:S||void 0}}},[(E=e==null?void 0:e.node)==null?void 0:E.attrs]),f=g.useMemo(()=>{const{style:{width:C}}=d;return{width:C==="100%"?C:void 0}},[d]);function p(C){o({width:C.target.width,height:C.target.height})}function _(){const{editor:C,getPos:N}=e;C.commands.setNodeSelection(N())}const w=g.useCallback(b.throttle(()=>{const{editor:C}=e,{width:N}=getComputedStyle(C.view.dom);i(M=>({...M,width:Number.parseInt(N,10)}))},l.IMAGE_THROTTLE_WAIT_TIME),[e==null?void 0:e.editor]);function A(C,N){C.preventDefault(),C.stopPropagation();const M=n.width,B=n.height,D=M/B;let S=Number(e.node.attrs.width),I=Number(e.node.attrs.height);const R=t.width;S&&!I?(S=S>R?R:S,I=Math.round(S/D)):I&&!S?(S=Math.round(I*D),S=S>R?R:S):!S&&!I?(S=M>R?R:M,I=Math.round(S/D)):S=S>R?R:S,Q.flushSync(()=>{c(!0),h({x:C.clientX,y:C.clientY,w:S,h:I,dir:N})})}const L=g.useCallback(b.throttle(C=>{if(C.preventDefault(),C.stopPropagation(),!s)return;const{x:N,w:M,dir:B}=u,D=(C.clientX-N)*(/l/.test(B)?-1:1),S=b.clamp(M+D,l.IMAGE_MIN_SIZE,t.width);e.updateAttributes({width:S,height:null})},l.IMAGE_THROTTLE_WAIT_TIME),[s,u,t,e.updateAttributes]),T=g.useCallback(C=>{C.preventDefault(),C.stopPropagation(),s&&(Q.flushSync(()=>{h({x:0,y:0,w:0,h:0,dir:""}),c(!1)}),_())},[s,_]),y=g.useCallback(()=>{document==null||document.addEventListener("mousemove",L,!0),document==null||document.addEventListener("mouseup",T,!0)},[L,T]),v=g.useCallback(()=>{document==null||document.removeEventListener("mousemove",L,!0),document==null||document.removeEventListener("mouseup",T,!0)},[L,T]);g.useEffect(()=>(s?y():v(),()=>{v()}),[s,y,v]);const k=g.useMemo(()=>new ResizeObserver(()=>w()),[w]);return g.useEffect(()=>(k.observe(e.editor.view.dom),()=>{k.disconnect()}),[e.editor.view.dom,k]),a.jsx(m.NodeViewWrapper,{className:"image-view",style:{...f,width:"100%"},children:a.jsxs("div",{draggable:"true","data-drag-handle":!0,className:`image-view__body ${e!=null&&e.selected?"image-view__body--focused":""} ${s?"image-view__body--resizing":""}`,style:f,children:[a.jsx("img",{src:d.src,alt:d.alt,style:d.style,height:"auto",className:"image-view__body__image block",onLoad:p,onClick:_}),(e==null?void 0:e.editor.view.editable)&&((e==null?void 0:e.selected)||s)&&a.jsx("div",{className:"image-resizer",children:r==null?void 0:r.map(C=>a.jsx("span",{className:`image-resizer__handler image-resizer__handler--${C}`,onMouseDown:N=>A(N,C)},`image-dir-${C}`))})]})})}const yt=m.Image.extend({inline(){return!0},group(){return"inline"},addAttributes(){var e;return{...(e=this.parent)==null?void 0:e.call(this),width:{default:null,parseHTML:t=>{const i=t.style.width||t.getAttribute("width")||null;return i==null?null:Number.parseInt(i,10)},renderHTML:t=>({width:t.width})}}},addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),inline:!0,upload:null}},addNodeView(){return m.ReactNodeViewRenderer(wt)},addCommands(){var e;return{...(e=this.parent)==null?void 0:e.call(this),updateImage:t=>({commands:i})=>i.updateAttributes(this.name,t)}},renderHTML({HTMLAttributes:e}){return["img",m.mergeAttributes({height:"auto"},this.options.HTMLAttributes,e)]},parseHTML(){return[{tag:"img[src]"}]}}),F=new b.PluginKey("upload-image");function vt(){return new b.Plugin({key:F,state:{init(){return b.DecorationSet.empty},apply(e,t){t=t.map(e.mapping,e.doc);const i=e.getMeta(F);if(i!=null&&i.add)for(const{id:n,pos:o,src:r}of i.add){const s=kt(r),c=b.Decoration.widget(o,s,{id:n});t=t.add(e.doc,[c])}else if(i!=null&&i.remove)for(const n of i.remove)t=t.remove(t.find(void 0,void 0,o=>o.id===n));return t}},props:{decorations(e){return this.getState(e)}}})}function kt(e){const t=document.createElement("div"),i=document.createElement("img");return i.setAttribute("class","opacity-50"),i.src=e,i.addEventListener("load",()=>{t.setAttribute("class","img-placeholder")}),t.append(i),t}function Ct(e,t){var o;const n=F.getState(e).find(void 0,void 0,r=>r.id===t);return n.length>0?(o=n[0])==null?void 0:o.from:null}function me({validateFn:e,onUpload:t}){return(i,n,o)=>{for(const r of i){if(e&&!e(r))continue;const s=Date.now().toString(),c=n.state.tr;c.selection.empty||c.deleteSelection();const u=URL.createObjectURL(r);c.setMeta(F,{add:[{id:s,pos:o,src:u}]}),n.dispatch(c),t(r).then(h=>{var A;const{schema:d}=n.state,f=Ct(n.state,s);if(f===null)return;const p=typeof h=="object"?u:h,_=(A=d.nodes.image)==null?void 0:A.create({src:p});if(!_)return;const w=n.state.tr.replaceWith(f,f,_).setMeta(F,{remove:[s]});n.dispatch(w)},()=>{const h=n.state.tr.delete(o,o).setMeta(F,{remove:[s]});n.dispatch(h)})}}}function jt(e,t,i){var o;const n=[...((o=t.clipboardData)==null?void 0:o.files)||[]];if(n.length>0){t.preventDefault();const r=e.state.selection.from;return i(n,e,r+1),!0}return!1}function At(e,t,i,n){var r;const o=[...((r=t.dataTransfer)==null?void 0:r.files)||[]];if(!i&&o.length>0){t.preventDefault();const s=e.posAtCoords({left:t.clientX,top:t.clientY});if(s)return n(o,e,s.pos+1),!0}return!1}function Tt(e){const{t}=x.useLocale(),[i,n]=g.useState(""),o=g.useRef(null);function r(h){var w,A;const d=(w=h==null?void 0:h.target)==null?void 0:w.files;if(!e.editor||e.editor.isDestroyed||d.length===0)return;const f=d[0],p=(A=e.editor.extensionManager.extensions.find(L=>L.name==="imageUpload"))==null?void 0:A.options;me({validateFn:()=>!0,onUpload:p.upload})([f],e.editor.view,e.getPos())}function s(h){h.preventDefault(),e.editor.chain().setImage({src:i}).deleteRange({from:e.getPos(),to:e.getPos()}).focus().run()}function c(h){h==null||h.preventDefault(),e.deleteNode()}function u(h){var d;h.preventDefault(),(d=o.current)==null||d.click()}return a.jsx(m.NodeViewWrapper,{className:"richtext-p-0 richtext-m-0","data-drag-handle":!0,children:a.jsxs(l.Popover,{defaultOpen:!0,modal:!0,children:[a.jsx(l.PopoverTrigger,{asChild:!0,children:a.jsx("div",{className:"richtext-flex richtext-items-center richtext-w-full richtext-p-3 richtext-my-3 richtext-transition-all !richtext-border richtext-rounded-sm richtext-cursor-pointer hover:richtext-bg-accent richtext-border-border richtext-text-muted-foreground",children:a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-justify-between richtext-w-full",children:[a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-justify-center richtext-gap-3",children:[a.jsx(l.IconComponent,{name:"ImageUp",className:"richtext-w-6 richtext-h-6"}),a.jsx("span",{className:"richtext-text-sm",children:t("editor.image.dialog.title")})]}),a.jsx(l.IconComponent,{name:"Trash2",className:"hover:richtext-text-foreground",onClick:c})]})})}),a.jsx(l.PopoverContent,{className:"richtext-w-full",onOpenAutoFocus:h=>h.preventDefault(),children:a.jsxs(l.Tabs,{defaultValue:"upload",className:"richtext-w-[400px]",activationMode:"manual",children:[a.jsxs(l.TabsList,{className:"richtext-grid richtext-w-full richtext-grid-cols-2",children:[a.jsxs(l.TabsTrigger,{value:"upload",children:[t("editor.image.dialog.tab.upload")," "]}),a.jsxs(l.TabsTrigger,{value:"link",children:[" ",t("editor.image.dialog.tab.url")," "]})]}),a.jsxs(l.TabsContent,{value:"upload",children:[a.jsx(l.Button,{className:"richtext-w-full richtext-mt-1",size:"sm",onClick:u,children:t("editor.image.dialog.tab.upload")}),a.jsx("input",{type:"file",accept:"image/*",ref:o,multiple:!0,style:{display:"none"},onChange:r})]}),a.jsx(l.TabsContent,{value:"link",children:a.jsx("form",{onSubmit:s,children:a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-gap-2",children:[a.jsx(l.Input,{type:"url",autoFocus:!0,value:i,onChange:h=>n(h.target.value),required:!0,placeholder:t("editor.image.dialog.placeholder")}),a.jsx(l.Button,{type:"submit",children:t("editor.image.dialog.button.apply")})]})})})]})})]})})}const St={acceptMimes:["image/jpeg","image/gif","image/png","image/jpg"],maxSize:1024*1024*5},Lt=m.Node.create({name:"imageUpload",isolating:!0,defining:!0,group:"block",draggable:!1,selectable:!0,inline:!1,onCreate(){if(typeof this.options.upload!="function")throw new TypeError("Image upload function should be a function")},parseHTML(){return[{tag:`div[data-type="${this.name}"]`}]},renderHTML(){return["div",{"data-type":this.name}]},addCommands(){return{setImageUpload:()=>({commands:e})=>e.insertContent(`<div data-type="${this.name}"></div>`)}},addNodeView(){return m.ReactNodeViewRenderer(Tt)},addOptions(){var e;return{...St,...(e=this.parent)==null?void 0:e.call(this),upload:()=>Promise.reject("Image Upload Function"),button:({editor:t,extension:i,t:n})=>{var o,r;return{component:l.ActionButton,componentProps:{action:()=>t.commands.setImageUpload(),upload:i.options.upload,disabled:!((r=(o=t.can()).setImage)!=null&&r.call(o,{})),icon:"ImageUp",tooltip:n("editor.image.tooltip")}}}}},addProseMirrorPlugins(){const t=me({validateFn:i=>!(!this.options.acceptMimes.includes(i.type)||i.size>this.options.maxSize),onUpload:this.options.upload});return[new b.Plugin({props:{handlePaste:(i,n)=>!n.clipboardData||[...n.clipboardData.items||[]].some(r=>r.type==="text/html")?!1:jt(i,n,t),handleDrop:(i,n,o,r)=>(!(n instanceof DragEvent)||!n.dataTransfer||At(i,n,r,t),!1)}}),vt()]}});function Nt(e){return e=e.replace("https://youtu.be/","https://www.youtube.com/watch?v=").replace("watch?v=","embed/"),e=e.replace("https://vimeo.com/","https://player.vimeo.com/video/"),/^https?:\/\/www.bilibili.com\/video\/.*/i.test(e)&&(e=e.replace(/\?.*$/,"").replace("https://www.bilibili.com/video/","https://player.bilibili.com/player.html?bvid=")),e.includes("drive.google.com")&&(e=e.replace("/view","/preview")),e}const Mt=m.Node.create({name:"video",group:"block",atom:!0,draggable:!0,addAttributes(){return{src:{default:null,renderHTML:({src:e})=>({src:e?Nt(e):null})},width:{default:this.options.width,renderHTML:({width:e})=>({width:x.getCssUnitWithDefault(e)})},frameborder:{default:this.options.frameborder?1:0,parseHTML:()=>this.options.frameborder?1:0},allowfullscreen:{default:this.options.allowFullscreen,parseHTML:()=>this.options.allowFullscreen}}},parseHTML(){return[{tag:"div[data-video] iframe"}]},renderHTML({HTMLAttributes:e}){const{width:t="100%"}=e??{},i={...e,width:"100%",height:"100%"},n=`position: relative;overflow: hidden;display: flex;flex: 1;max-width: ${t};`,o=`flex: 1;padding-bottom: ${9/16*100}%;`,c=["div",{style:n},["div",{style:o}],["iframe",i]];return["div",{...this.options.HTMLAttributes,"data-video":""},c]},addCommands(){return{setVideo:e=>({commands:t})=>t.insertContent({type:this.name,attrs:e}),updateVideo:e=>({commands:t})=>t.updateAttributes(this.name,e)}},addOptions(){return{divider:!1,spacer:!1,allowFullscreen:!0,upload:void 0,frameborder:!1,width:l.VIDEO_SIZE["size-medium"],HTMLAttributes:{class:"iframe-wrapper",style:"display: flex;justify-content: center;"}}}});function It(e){const{t}=x.useLocale(),{editor:i,getPos:n,deleteNode:o}=e,[r,s]=g.useState(""),[c,u]=g.useState(!1),h=g.useRef(null);function d(w){var y,v;u(!0);const A=(y=w==null?void 0:w.target)==null?void 0:y.files;if(!i||i.isDestroyed||A.length===0)return;const L=A[0],T=(v=i.extensionManager.extensions.find(k=>k.name==="videoUpload"))==null?void 0:v.options;T==null||T.upload([L]).then(k=>{i.chain().setVideo({src:k[0].src,width:"100%"}).deleteRange({from:n(),to:n()}).focus().run(),u(!1)})}function f(w){w.preventDefault(),i.chain().setVideo({src:r,width:"100%"}).deleteRange({from:n(),to:n()}).focus().run()}function p(w){w.preventDefault(),o()}function _(w){var A;w.preventDefault(),(A=h.current)==null||A.click()}return a.jsx(m.NodeViewWrapper,{as:"div","data-drag-handle":!0,children:a.jsxs(l.Popover,{defaultOpen:!0,modal:!0,children:[a.jsx(l.PopoverTrigger,{asChild:!0,children:a.jsx("div",{className:"richtext-flex richtext-items-center richtext-w-full richtext-p-3 richtext-my-3 richtext-transition-all !richtext-border richtext-rounded-sm richtext-cursor-pointer hover:richtext-bg-accent richtext-border-border richtext-text-muted-foreground",children:c?a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-justify-center richtext-gap-3 richtext-text-sm",children:[a.jsx(l.IconComponent,{className:"richtext-w-6 richtext-h-6 richtext-animate-spin",name:"LoaderCircle"}),a.jsxs("span",{children:[t("editor.video.dialog.uploading"),"..."]})]}):a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-justify-between richtext-w-full",children:[a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-justify-center richtext-gap-3",children:[a.jsx(l.IconComponent,{name:"Video",className:"richtext-w-6 richtext-h-6"}),a.jsx("span",{className:"richtext-text-sm",children:t("editor.video.dialog.title")})]}),a.jsx(l.IconComponent,{name:"Trash2",className:"hover:richtext-text-foreground",onClick:p})]})})}),a.jsx(l.PopoverContent,{className:"richtext-w-full",onOpenAutoFocus:w=>w.preventDefault(),children:a.jsxs(l.Tabs,{defaultValue:"upload",className:"richtext-w-[400px]",activationMode:"manual",children:[a.jsxs(l.TabsList,{className:"richtext-grid richtext-w-full richtext-grid-cols-2",children:[a.jsxs(l.TabsTrigger,{value:"upload",children:[t("editor.video.dialog.tab.upload")," "]}),a.jsxs(l.TabsTrigger,{value:"link",children:[" ",t("editor.video.dialog.link")," "]})]}),a.jsxs(l.TabsContent,{value:"upload",children:[a.jsx(l.Button,{className:"richtext-w-full richtext-mt-1",size:"sm",onClick:_,children:t("editor.video.dialog.tab.upload")}),a.jsx("input",{type:"file",accept:"video/*",ref:h,multiple:!0,style:{display:"none"},onChange:d})]}),a.jsx(l.TabsContent,{value:"link",children:a.jsx("form",{onSubmit:f,children:a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-gap-2",children:[a.jsx(l.Input,{type:"url",autoFocus:!0,required:!0,placeholder:t("editor.video.dialog.placeholder"),value:r,onChange:w=>s(w.target.value)}),a.jsx(l.Button,{type:"submit",children:t("editor.video.dialog.button.apply")})]})})})]})})]})})}const Et=m.Node.create({name:"videoUpload",isolating:!0,defining:!0,group:"block",draggable:!0,selectable:!0,inline:!1,parseHTML(){return[{tag:`div[data-type="${this.name}"]`}]},renderHTML(){return["div",{"data-type":this.name}]},addCommands(){return{setVideoUpload:()=>({commands:e})=>e.insertContent(`<div data-type="${this.name}"></div>`)}},addNodeView(){return m.ReactNodeViewRenderer(It)},addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),upload:void 0,button:({editor:t,t:i})=>{var n,o;return{component:l.ActionButton,componentProps:{action:()=>t.commands.setVideoUpload(),isActive:()=>t.isActive("video")||!1,disabled:!((o=(n=t.can()).setVideo)!=null&&o.call(n,{})),icon:"Video",tooltip:i("editor.video.tooltip")}}}}}});function Pt(e,t,i){if(!e.doc)return e;const n=e.doc.nodeAt(t);if(!n||i===n.attrs.backgroundColor)return e;const o={...n.attrs,backgroundColor:i};return e.setNodeMarkup(t,n.type,o,n.marks)}function Rt(e,t,i){const{doc:n,selection:o}=e;return!n||!o||!(o instanceof b.CellSelection)||o.forEachCell((r,s)=>{e=Pt(e,s,i)}),e}function ne(e,t){return({tr:i,state:n,dispatch:o})=>{const{selection:r}=n;return i=i.setSelection(r),i=Rt(i,t,e),i.docChanged?(o==null||o(i),!0):!1}}const Bt=m.Extension.create({name:"tableCellBackground",addOptions(){return{types:["tableCell"],HTMLAttributes:{}}},addGlobalAttributes(){return[{types:this.options.types,attributes:{backgroundColor:{parseHTML:e=>e.style.backgroundColor||"",renderHTML:e=>!e.backgroundColor||e.backgroundColor===""?{}:{style:`background-color: ${e.backgroundColor}`}}}}]},addCommands(){return{setTableCellBackground:e=>ne(e,this.options),unsetTableCellBackground:()=>ne("",this.options)}}}),ie=e=>Array.from({length:e}).map((t,i)=>i+1);function Dt(e){var d;const[t,i]=g.useState(!0),[n,o]=g.useState({rows:x.isMobile()?l.TABLE_MAX_GRID_SIZE:l.TABLE_INIT_GRID_SIZE,cols:x.isMobile()?l.TABLE_MAX_GRID_SIZE:l.TABLE_INIT_GRID_SIZE}),[r,s]=g.useState({rows:l.TABLE_DEFAULT_SELECTED_GRID_SIZE,cols:l.TABLE_DEFAULT_SELECTED_GRID_SIZE});function c(f,p){f===n.rows&&o(_=>({..._,rows:Math.min(f+1,l.TABLE_MAX_GRID_SIZE)})),p===n.cols&&o(_=>({..._,cols:Math.min(p+1,l.TABLE_MAX_GRID_SIZE)})),s({rows:f,cols:p})}function u(f,p){e==null||e.createTable({rows:f,cols:p,withHeaderRow:t}),h()}function h(){i(!1),o({rows:l.TABLE_INIT_GRID_SIZE,cols:l.TABLE_INIT_GRID_SIZE}),s({rows:l.TABLE_DEFAULT_SELECTED_GRID_SIZE,cols:l.TABLE_DEFAULT_SELECTED_GRID_SIZE})}return a.jsxs(l.Popover,{children:[a.jsx(l.PopoverTrigger,{asChild:!0,children:e==null?void 0:e.children}),a.jsx(l.PopoverContent,{className:"richtext-w-full !richtext-p-2",align:"start",side:"bottom",children:a.jsxs("div",{className:"richtext-p-0 table-grid-size-editor",children:[a.jsx("div",{className:"richtext-flex richtext-flex-col richtext-flex-wrap richtext-justify-between richtext-gap-1",children:(d=ie(n==null?void 0:n.rows))==null?void 0:d.map(f=>{var p;return a.jsx("div",{className:"richtext-flex richtext-gap-1",children:(p=ie(n==null?void 0:n.cols))==null?void 0:p.map(_=>a.jsx("div",{className:`richtext-cursor-pointer richtext-border-border ${_<=r.cols&&f<=r.rows&&"!richtext-bg-foreground tableCellActive"}`,onMouseOver:()=>c(f,_),onMouseDown:()=>u(f,_),children:a.jsx("div",{className:"richtext-w-4 richtext-h-4 richtext-p-1 !richtext-border richtext-rounded-[2px] richtext-box-border richtext-border-solid !richtext-border-border"})},`c-${_}`))},`r-${f}`)})}),a.jsxs("div",{className:"richtext-mt-2 richtext-text-sm richtext-text-center richtext-text-zinc-600",children:[r.rows," ","x",r.cols]})]})})]})}function Ht(e){function t(i){e.disabled||e.editor.chain().focus().insertTable({...i,withHeaderRow:!1}).run()}return a.jsx(Dt,{createTable:t,children:a.jsx(l.ActionButton,{icon:e==null?void 0:e.icon,tooltip:e==null?void 0:e.tooltip,disabled:e==null?void 0:e.disabled,color:e==null?void 0:e.color,action:e==null?void 0:e.action,isActive:e==null?void 0:e.isActive})})}const Ot=m.Table.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),resizable:!0,lastColumnResizable:!0,allowTableNodeSelection:!1,button:({editor:t,t:i})=>({component:Ht,componentProps:{disabled:t.isActive("table")||!1,icon:"Table",tooltip:i("editor.table.tooltip"),editor:t}})}},addExtensions(){return[m.TableRow.configure(this.options.tableRow),m.TableHeader.configure(this.options.tableHeader),m.TableCell.configure(this.options.tableCell),Bt.configure(this.options.tableCellBackground)]}}),zt=m.Extension.create({name:"painter",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button:({editor:t,t:i})=>({component:l.ActionButton,componentProps:{action:()=>{t.commands.setPainter(t==null?void 0:t.state.selection.$head.marks())},icon:"PaintRoller",tooltip:i("editor.format")}})}},addCommands(){return{setPainter:e=>({view:{dispatch:t,state:{tr:i},dom:n}})=>{const s=`url("data:image/svg+xml;utf8,${encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#000" d="M9 22v-6H4V7q0-1.65 1.175-2.825T8 3h12v13h-5v6zM6 10h12V5h-1v4h-2V5h-1v2h-2V5H8q-.825 0-1.412.588T6 7zm0 4h12v-2H6zm0 0v-2z"/></svg>')}"), auto`;return n.style.cursor=s,t(i.setMeta("painterAction",{type:"start",marks:e})),!0}}},addProseMirrorPlugins(){return[new b.Plugin({key:new b.PluginKey("format-painter"),state:{init:()=>[],apply:(e,t)=>{const i=e.getMeta("painterAction");return i&&i.type==="start"?t=i.marks:i&&i.type==="end"&&(t=[]),t}},props:{handleDOMEvents:{mousedown(e,t){const i=this.getState(e.state);if(!i||i.length===0)return e.dom.style.cursor="",!1;const n=()=>{document.removeEventListener("mouseup",n);let{dispatch:o,state:{tr:r,selection:s},dom:c}=e;c.style.cursor="",r=r.removeMark(s.from,s.to);for(const u of i)u.type.name!=="link"&&(r=r.addMark(s.from,s.to,u));o(r.setMeta("painterAction",{type:"end"}))};return document.addEventListener("mouseup",n),!0}}}})]}}),U={youtube:{example:"https://www.youtube.com/watch?v=I4sMhHbHYXM",src:"https://www.youtube.com/embed/I4sMhHbHYXM",srcPrefix:"https://www.youtube.com/embed",linkRule:[/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:[^\s/]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[&?]v=)|youtu\.be\/)([\w-]{11})/]},youku:{example:"https://v.youku.com/v_show/id_XNDM0NDM4MTcy.html?spm=a2h0c.8166622.PhoneSokuUgc_4.dtitle",src:"https://player.youku.com/embed/XNDM0NDM4MTcy",srcPrefix:"https://player.youku.com/embed",linkRule:["v.youku.com\\/v_show\\/id_\\w+\\=*"],idRule:"id_\\w+\\=*"},bilibili:{example:"https://www.bilibili.com/video/BV1EJ411u7DN",src:"https://player.bilibili.com/player.html?bvid=BV1EJ411u7DN",srcPrefix:"https://player.bilibili.com/player.html?bvid",linkRule:["www.bilibili.com\\/video\\/\\w+"]},qqvideo:{example:"https://v.qq.com/x/cover/mzc0020006aw1mn/u0033nvzb5v.html",src:"https://v.qq.com/txp/iframe/player.html?vid=u0033nvzb5v",srcPrefix:"https://v.qq.com/txp/iframe/player.html?vid",linkRule:["v.qq.com\\/x\\/cover\\/\\w+\\/\\w+"]},amap:{example:"https://ditu.amap.com/",src:"https://www.amap.com/place/B000A45467",srcPrefix:"",linkRule:["\\.amap\\.com"]},baidu_map:{example:"https://j.map.baidu.com/15/fo",src:"https://j.map.baidu.com/15/fo",srcPrefix:"",linkRule:["map\\.baidu\\.com"]},modao:{example:"https://free.modao.cc/app/2cd26580a6717a147454df7470e7ec464093cba3/embed/v2#screen=sk71k6d1dfxulzx",src:"https://free.modao.cc/app/6UkpAxcGE3nPz52GLqhnOZgC7MATBSy/embed/v2",srcPrefix:"",linkRule:["https:\\/\\/\\w+.modao.cc\\/app\\/\\w+\\/embed\\/v2"],tips:"Modao > More > Share > Embed > COPY"},lanhu:{example:"https://lanhuapp.com/link/#/invite?sid=evP7L",src:"https://lanhuapp.com/url/evP7L",srcPrefix:"",linkRule:["https:\\/\\/lanhuapp.com\\/url\\/\\w+"],tips:"Lanhu > Project > Share > Copy Link"},figma:{example:"https://www.figma.com/file/aS9uSgPXoNpaPkzbjNcK8v/Demo?node-id=0%3A1",src:"https://www.figma.com/file/aS9uSgPXoNpaPkzbjNcK8v/Demo?node-id=0%3A1",srcPrefix:"https://www.figma.com/embed?embed_host=share&url",linkRule:["https:\\/\\/www.figma.com\\/file\\/\\w+"]},canva:{example:"https://www.canva.cn/design/DAD61-t29UI/view",src:"https://www.canva.cn/design/DAD61-t29UI/view",srcPrefix:"",linkRule:["https:\\/\\/www.canva.cn\\/design\\/.+\\/view"]},processon:{example:"https://www.processon.com/embed/5ea99d8607912948b0e6fe78",src:"https://www.processon.com/embed/5ea99d8607912948b0e6fe78",srcPrefix:"",linkRule:["https:\\/\\/www.processon.com\\/embed\\/\\w+"]},codepen:{example:"https://codepen.io/mekery/embed/YzyrKOJ",src:"https://codepen.io/mekery/embed/YzyrKOJ",srcPrefix:"",linkRule:["https:\\/\\/codepen.io\\/.+\\/embed\\/\\w+"]},jinshuju:{example:"https://jinshuju.net/f/q9YvVf",src:"https://jinshuju.net/f/q9YvVf",srcPrefix:"",linkRule:["https:\\/\\/jinshuju.net\\/f\\/\\w+"]},iframe:{example:"https://v.youku.com/v_show/id_XNDM0NDM4MTcy.html",src:"https://player.youku.com/embed/XNDM0NDM4MTcy",srcPrefix:"",linkRule:[".+"]},googlemaps:{example:"https://goo.gl/maps/8Ys8b4K1ZJY2",src:"https://www.google.com/maps/embed?pb=https://goo.gl/maps/8Ys8b4K1ZJY2",srcPrefix:"",linkRule:["https:\\/\\/goo.gl\\/maps\\/\\w+"]}};function Ft(e){const t=U.youtube,i=e.matchedUrl;e.validLink=!0;const n=i.split("="),o=n.length;if(o>0){const r=n[o-1];e.src=`${t.srcPrefix}/${r}`,e.validId=!0}return e}function qt(e){const t=U.youku,i=e.matchedUrl,n=t.idRule,o=new RegExp(n),r=i.match(o);if(r&&r.length>0){const s=r[0].slice(3);e.validId=!0,e.src=`${t.srcPrefix}/${s}`}else e.validId=!1;return e}function Ut(e){const t=U.bilibili,n=e.matchedUrl.split("/"),o=n.length;if(o>0){const r=n[o-1];e.src=`${t.srcPrefix}=${r}`,e.validId=!0}return e}function $t(e){const t=U.qqvideo,n=e.matchedUrl.split("/"),o=n.length;if(o>0){const r=n[o-1];e.src=`${t.srcPrefix}=${r}`,e.validId=!0}return e}function Kt(e,t){return t.src=e,t.validId=!0,t}function Vt(e,t){return t.src=e,t.validId=!0,t}function Gt(e,t){return t.src=e,t.validId=!0,t.originalLink=e,t}function Wt(e){return e.src=e.matchedUrl,e.validId=!0,e.originalLink=e.src,e}function Zt(e){return e.src=e.matchedUrl,e.validId=!0,e.originalLink=e.src,e}function Xt(e){const t=U.figma;return e.src=`${t.srcPrefix}=${encodeURIComponent(e.matchedUrl)}`,e.validId=!0,e.originalLink=e.matchedUrl,e}function Yt(e,t){return t.src=`${t.matchedUrl}?embed`,t.validId=!0,t.originalLink=e,t}function Jt(e,t){return t.src=`${t.matchedUrl}`,t.validId=!0,t.originalLink=e,t}function Qt(e){return e.src=`${e.matchedUrl}`,e.validId=!0,e.originalLink=e.src,e}function en(e,t){return t.src=`${t.matchedUrl}?background=white&banner=show&embedded=true`,t.validId=!0,t.originalLink=e,t}function tn(e,t){return t.src=`${t.matchedUrl}`,t.validId=!0,t.originalLink=e,t}function nn(e,t,i){if(e==="googlemaps")return i.validLink=!0,i.matchedUrl=t,i;const o=U[e].linkRule;for(const r of o){const s=new RegExp(r),c=t.match(s);if(c&&c.length>0)return i.validLink=!0,i.matchedUrl=e==="youtube"?c[1]:c[0],i}return i}function on(e){var i,n;let t="iframe";return((i=e.includes)!=null&&i.call(e,"youtube")||(n=e.includes)!=null&&n.call(e,"youtu.be"))&&(t="youtube"),e.includes("youku")&&(t="youku"),e.includes("bilibili")&&(t="bilibili"),e.includes("qq")&&(t="qqvideo"),e.includes("amap")&&(t="amap"),e.includes("map.baidu")&&(t="baidu_map"),(e.includes("google.com/maps")||e.includes("maps.app.goo.gl"))&&(t="googlemaps"),e.includes("modao")&&(t="modao"),e.includes("lanhuapp")&&(t="lanhu"),e.includes("figma")&&(t="figma"),e.includes("canva")&&(t="canva"),e.includes("processon")&&(t="processon"),e.includes("codepen")&&(t="codepen"),e.includes("jinshuju")&&(t="jinshuju"),e.includes("iframe")&&(t="iframe"),t}function an(e){let t={validLink:!1,validId:!1,matchedUrl:"",originalLink:e,src:""};const i=on(e);if(t=nn(i,e,t),!t.validLink)return t;switch(i){case"youtube":return Ft(t);case"youku":return qt(t);case"bilibili":return Ut(t);case"qqvideo":return $t(t);case"amap":return Kt(e,t);case"baidu_map":return Vt(e,t);case"googlemaps":return Gt(e,t);case"modao":return Wt(t);case"lanhu":return Zt(t);case"figma":return Xt(t);case"canva":return Yt(e,t);case"processon":return Jt(e,t);case"codepen":return Qt(t);case"jinshuju":return en(e,t);case"iframe":return tn(e,t)}return t}function rn(e){var o,r,s,c,u,h,d,f;const[t,i]=g.useState("");function n(){if(!t)return;const p=an(t);p.validLink&&p.validId&&e.updateAttributes({src:p.src})}return a.jsxs(m.NodeViewWrapper,{as:"section",children:[!((r=(o=e==null?void 0:e.node)==null?void 0:o.attrs)!=null&&r.src)&&a.jsxs("div",{className:"richtext-max-w-[600px] richtext-mx-[auto] richtext-my-[12px] richtext-flex richtext-items-center richtext-justify-center richtext-gap-[10px] richtext-p-[10px] richtext-border-[1px] richtext-border-solid richtext-border-[#ccc] richtext-rounded-[12px]",children:[a.jsx(l.Input,{value:t,onInput:p=>i(p.target.value),type:"url",className:"richtext-flex-1",autoFocus:!0,placeholder:"Enter link"}),a.jsx(l.Button,{className:"richtext-w-[60px]",onClick:n,children:"OK"})]}),((c=(s=e==null?void 0:e.node)==null?void 0:s.attrs)==null?void 0:c.src)&&a.jsx("iframe",{src:(h=(u=e==null?void 0:e.node)==null?void 0:u.attrs)==null?void 0:h.src,frameBorder:"0",allowFullScreen:!0,title:(f=(d=e==null?void 0:e.node)==null?void 0:d.attrs)==null?void 0:f.src,className:"richtext-my-[12px]"})]})}const sn=m.Node.create({name:"iframes",group:"block",atom:!0,addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),allowFullscreen:!0,HTMLAttributes:{class:"iframe-wrapper"},button:({editor:t,extension:i,t:n})=>({component:l.ActionButton,componentProps:{action:o=>t.commands.setIframe(o),upload:i.options.upload,disabled:!t.can().setIframe({}),icon:"Iframe",tooltip:n("editor.iframe.tooltip")}})}},addAttributes(){return{src:{default:null},service:{default:null},frameborder:{default:0},allowfullscreen:{default:this.options.allowFullscreen,parseHTML:()=>this.options.allowFullscreen}}},parseHTML(){return[{tag:"iframe"}]},renderHTML({HTMLAttributes:e}){return["div",this.options.HTMLAttributes,["iframe",e]]},addNodeView(){return m.ReactNodeViewRenderer(rn)},addCommands(){return{setIframe:e=>({tr:t,dispatch:i})=>{const{selection:n}=t,o=this.type.create(e);return i&&t.replaceRangeWith(n.from,n.to,o),!0}}}});function cn({editor:e,...t}){const{t:i}=x.useLocale(),[n,o]=g.useState(-1),[r,s]=g.useState([]),[c,u]=g.useState(""),[h,d]=g.useState(""),[f,p]=g.useState(!1);return g.useEffect(()=>{f||(u(""),d(""),o(-1),s([]),e.commands.setSearchTerm(""),e.commands.setReplaceTerm(""))},[e,f]),g.useEffect(()=>{f&&e&&e.commands&&e.commands.setSearchTerm&&e.commands.setSearchTerm(c)},[f,c,e]),g.useEffect(()=>{f&&e&&e.commands&&e.commands.setReplaceTerm&&e.commands.setReplaceTerm(h)},[f,h,e]),g.useEffect(()=>{if(!e)return;const _=e.extensionManager.extensions.find(A=>A.name===ge.name);if(!_)return;const w=()=>{if(!f)return;const A=_?_.storage.currentIndex:-1,L=_?_.storage.results:[];o(T=>T!==A?A:T),s(T=>b.deepEqual(T,L)?T:L)};return window.addEventListener(Y,w),()=>{_&&window.removeEventListener(Y,w)}},[f,e]),a.jsxs(l.Popover,{open:f,onOpenChange:p,children:[a.jsx(l.PopoverTrigger,{disabled:t==null?void 0:t.disabled,asChild:!0,children:a.jsx(l.ActionButton,{tooltip:t==null?void 0:t.tooltip,isActive:t==null?void 0:t.isActive,disabled:t==null?void 0:t.disabled,children:a.jsx(l.IconComponent,{name:t==null?void 0:t.icon})})}),a.jsxs(l.PopoverContent,{hideWhenDetached:!0,className:"richtext-w-full",align:"start",side:"bottom",children:[a.jsxs("div",{className:"richtext-mb-[6px richtext-flex richtext-items-center richtext-justify-between",children:[a.jsx(l.Label,{children:i("editor.search.dialog.text")}),a.jsx("span",{className:"richtext-font-semibold",children:r.length?`${n+1}/${r.length}`:"0/0"})]}),a.jsx("div",{className:"richtext-flex richtext-w-full richtext-max-w-sm richtext-items-center richtext-gap-1.5 richtext-mb-[10px]",children:a.jsx(l.Input,{type:"text",required:!0,className:"richtext-w-full",placeholder:"Text",autoFocus:!0,value:c,onChange:_=>u(_.target.value)})}),a.jsx(l.Label,{className:"richtext-mb-[6px]",children:i("editor.replace.dialog.text")}),a.jsx("div",{className:"richtext-flex richtext-w-full richtext-max-w-sm richtext-items-center richtext-gap-1.5 richtext-mb-[16px]",children:a.jsx("div",{className:"richtext-relative richtext-items-center richtext-w-full richtext-max-w-sm",children:a.jsx(l.Input,{type:"text",required:!0,className:"richtext-w-80",placeholder:"Text",value:h,onChange:_=>d(_.target.value)})})}),a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-gap-[10px] richtext-mb-[10px]",children:[a.jsx(l.Button,{disabled:!r.length,className:"richtext-flex-1",onClick:e.commands.goToPrevSearchResult,children:i("editor.previous.dialog.text")}),a.jsx(l.Button,{disabled:!r.length,className:"richtext-flex-1",onClick:e.commands.goToNextSearchResult,children:i("editor.next.dialog.text")})]}),a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-gap-[10px]",children:[a.jsx(l.Button,{disabled:!r.length,className:"richtext-flex-1",onClick:e.commands.replace,children:i("editor.replace.dialog.text")}),a.jsx(l.Button,{disabled:!r.length,className:"richtext-flex-1",onClick:e.commands.replaceAll,children:i("editor.replaceAll.dialog.text")})]})]})]})}const G=(e,t)=>t(e.tr);function ln(e,t,i){return RegExp(t?e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"):e,i?"gu":"gui")}function dn(e,t,i){const n=[];let o=[];const r=[];let s=0;if(!t)return{decorationsToReturn:[],results:[]};e==null||e.descendants((c,u)=>{c.isText?o[s]?o[s]={text:o[s].text+c.text,pos:o[s].pos}:o[s]={text:`${c.text}`,pos:u}:s+=1}),o=o.filter(Boolean);for(let c=0;c<o.length;c+=1){const{text:u,pos:h}=o[c],d=[...u.matchAll(t)];for(let f=0;f<d.length;f+=1){const p=d[f];if(p[0]==="")break;p.index!==void 0&&r.push({from:h+p.index,to:h+p.index+p[0].length})}}for(let c=0;c<r.length;c+=1){const u=r[c];n.push(b.Decoration.inline(u.from,u.to,{class:i}))}return{decorationsToReturn:n,results:r}}function oe(e,t,{state:i,dispatch:n}){if(!t[0])return;const{from:r,to:s}=t[0];n&&n(i.tr.insertText(e,r,s))}function un(e,t,i,n){const o=t+1;if(!n[o])return null;const{from:r,to:s}=n[t],c=s-r-e.length+i,{from:u,to:h}=n[o];return n[o]={to:h-c,from:u-c},[c,n]}function hn(e,t,{tr:i,dispatch:n}){let o=0,r=t.slice();if(!r.length)return!1;for(let s=0;s<r.length;s+=1){const{from:c,to:u}=r[s];i.insertText(e,c,u);const h=un(e,s,o,r);h&&(o=h[0],r=h[1])}return n(i),!0}function ae({view:e,tr:t,searchResults:i,searchResultCurrentClass:n,gotoIndex:o}){const r=i[o];if(r){const s=t.setMeta("directDecoration",{fromPos:r.from,toPos:r.to,attrs:{class:n}});return e==null||e.dispatch(s),setTimeout(()=>{const c=window.document.querySelector(`.${n}`);c&&b.e(c,{behavior:"smooth",scrollMode:"if-needed"})},0),!0}return!1}const Y="ON_SEARCH_RESULTS",O=new CustomEvent(Y),ge=m.Extension.create({name:"search",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),searchTerm:"",replaceTerm:"",results:[],currentIndex:0,searchResultClass:"search-result",searchResultCurrentClass:"search-result-current",caseSensitive:!1,disableRegex:!1,onChange:()=>{},button:({editor:t,t:i})=>({component:cn,componentProps:{action:()=>{},icon:"SearchAndReplace",tooltip:i("editor.searchAndReplace.tooltip"),isActive:()=>!1,disabled:!1,editor:t}})}},addStorage(){return{results:[],currentIndex:-1}},addCommands(){return{setSearchTerm:e=>({state:t,dispatch:i})=>(this.options.searchTerm=e,this.storage.results=[],this.storage.currentIndex=0,window.dispatchEvent(O),G(t,i),!1),setReplaceTerm:e=>({state:t,dispatch:i})=>(this.options.replaceTerm=e,G(t,i),!1),replace:()=>({state:e,dispatch:t})=>{const{replaceTerm:i}=this.options,{currentIndex:n,results:o}=this.storage,r=o[n];return r?(oe(i,[r],{state:e,dispatch:t}),this.storage.results.splice(n,1)):(oe(i,o,{state:e,dispatch:t}),this.storage.results.shift()),window.dispatchEvent(O),G(e,t),!1},replaceAll:()=>({state:e,tr:t,dispatch:i})=>{const{replaceTerm:n}=this.options,{results:o}=this.storage;return hn(n,o,{tr:t,dispatch:i}),this.storage.currentIndex=-1,this.storage.results=[],window.dispatchEvent(O),G(e,i),!1},goToPrevSearchResult:()=>({view:e,tr:t})=>{const{searchResultCurrentClass:i}=this.options,{currentIndex:n,results:o}=this.storage,r=(n+o.length-1)%o.length;return this.storage.currentIndex=r,window.dispatchEvent(O),ae({view:e,tr:t,searchResults:o,searchResultCurrentClass:i,gotoIndex:r})},goToNextSearchResult:()=>({view:e,tr:t})=>{const{searchResultCurrentClass:i}=this.options,{currentIndex:n,results:o}=this.storage,r=(n+1)%o.length;return this.storage.currentIndex=r,this.options.onChange&&this.options.onChange(),window.dispatchEvent(O),ae({view:e,tr:t,searchResults:o,searchResultCurrentClass:i,gotoIndex:r})}}},addProseMirrorPlugins(){const e=this;return[new b.Plugin({key:new b.PluginKey("search"),state:{init(){return b.DecorationSet.empty},apply(t){const{doc:i,docChanged:n}=t,{searchTerm:o,searchResultClass:r,searchResultCurrentClass:s,disableRegex:c,caseSensitive:u}=e.options;if(n||o){const{decorationsToReturn:h,results:d}=dn(i,ln(o,c,u),r);if(e.storage.results=d,e.storage.currentIndex>d.length-1&&(e.storage.currentIndex=0),window.dispatchEvent(O),t.getMeta("directDecoration")){const{fromPos:f,toPos:p,attrs:_}=t.getMeta("directDecoration");h.push(b.Decoration.inline(f,p,_))}else d.length&&(h[0]=b.Decoration.inline(d[0].from,d[0].to,{class:s}));return b.DecorationSet.create(i,h)}return b.DecorationSet.empty}},props:{decorations(t){return this.getState(t)}}})]}}),q={100:"💯",1234:"🔢",grinning:"😀",smiley:"😃",smile:"😄",grin:"😁",laughing:"😆",satisfied:"😆",sweat_smile:"😅",rofl:"🤣",joy:"😂",slightly_smiling_face:"🙂",upside_down_face:"🙃",wink:"😉",blush:"😊",innocent:"😇",smiling_face_with_three_hearts:"🥰",heart_eyes:"😍",star_struck:"🤩",kissing_heart:"😘",kissing:"😗",relaxed:"☺️",kissing_closed_eyes:"😚",kissing_smiling_eyes:"😙",smiling_face_with_tear:"🥲",yum:"😋",stuck_out_tongue:"😛",stuck_out_tongue_winking_eye:"😜",zany_face:"🤪",stuck_out_tongue_closed_eyes:"😝",money_mouth_face:"🤑",hugs:"🤗",hand_over_mouth:"🤭",shushing_face:"🤫",thinking:"🤔",zipper_mouth_face:"🤐",raised_eyebrow:"🤨",neutral_face:"😐",expressionless:"😑",no_mouth:"😶",smirk:"😏",unamused:"😒",roll_eyes:"🙄",grimacing:"😬",lying_face:"🤥",relieved:"😌",pensive:"😔",sleepy:"😪",drooling_face:"🤤",sleeping:"😴",mask:"😷",face_with_thermometer:"🤒",face_with_head_bandage:"🤕",nauseated_face:"🤢",vomiting_face:"🤮",sneezing_face:"🤧",hot_face:"🥵",cold_face:"🥶",woozy_face:"🥴",dizzy_face:"😵",exploding_head:"🤯",cowboy_hat_face:"🤠",partying_face:"🥳",disguised_face:"🥸",sunglasses:"😎",nerd_face:"🤓",monocle_face:"🧐",confused:"😕",worried:"😟",slightly_frowning_face:"🙁",frowning_face:"☹️",open_mouth:"😮",hushed:"😯",astonished:"😲",flushed:"😳",pleading_face:"🥺",frowning:"😦",anguished:"😧",fearful:"😨",cold_sweat:"😰",disappointed_relieved:"😥",cry:"😢",sob:"😭",scream:"😱",confounded:"😖",persevere:"😣",disappointed:"😞",sweat:"😓",weary:"😩",tired_face:"😫",yawning_face:"🥱",triumph:"😤",rage:"😡",pout:"😡",angry:"😠",cursing_face:"🤬",smiling_imp:"😈",imp:"👿",skull:"💀",skull_and_crossbones:"☠️",hankey:"💩",poop:"💩",shit:"💩",clown_face:"🤡",japanese_ogre:"👹",japanese_goblin:"👺",ghost:"👻",alien:"👽",space_invader:"👾",robot:"🤖",smiley_cat:"😺",smile_cat:"😸",joy_cat:"😹",heart_eyes_cat:"😻",smirk_cat:"😼",kissing_cat:"😽",scream_cat:"🙀",crying_cat_face:"😿",pouting_cat:"😾",see_no_evil:"🙈",hear_no_evil:"🙉",speak_no_evil:"🙊",kiss:"💋",love_letter:"💌",cupid:"💘",gift_heart:"💝",sparkling_heart:"💖",heartpulse:"💗",heartbeat:"💓",revolving_hearts:"💞",two_hearts:"💕",heart_decoration:"💟",heavy_heart_exclamation:"❣️",broken_heart:"💔",heart:"❤️",orange_heart:"🧡",yellow_heart:"💛",green_heart:"💚",blue_heart:"💙",purple_heart:"💜",brown_heart:"🤎",black_heart:"🖤",white_heart:"🤍",anger:"💢",boom:"💥",collision:"💥",dizzy:"💫",sweat_drops:"💦",dash:"💨",hole:"🕳️",bomb:"💣",speech_balloon:"💬",eye_speech_bubble:"👁️‍🗨️",left_speech_bubble:"🗨️",right_anger_bubble:"🗯️",thought_balloon:"💭",zzz:"💤",wave:"👋",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐️",hand:"✋",raised_hand:"✋",vulcan_salute:"🖖",ok_hand:"👌",pinched_fingers:"🤌",pinching_hand:"🤏",v:"✌️",crossed_fingers:"🤞",love_you_gesture:"🤟",metal:"🤘",call_me_hand:"🤙",point_left:"👈",point_right:"👉",point_up_2:"👆",middle_finger:"🖕",fu:"🖕",point_down:"👇",point_up:"☝️","+1":"👍",thumbsup:"👍","-1":"👎",thumbsdown:"👎",fist_raised:"✊",fist:"✊",fist_oncoming:"👊",facepunch:"👊",punch:"👊",fist_left:"🤛",fist_right:"🤜",clap:"👏",raised_hands:"🙌",open_hands:"👐",palms_up_together:"🤲",handshake:"🤝",pray:"🙏",writing_hand:"✍️",nail_care:"💅",selfie:"🤳",muscle:"💪",mechanical_arm:"🦾",mechanical_leg:"🦿",leg:"🦵",foot:"🦶",ear:"👂",ear_with_hearing_aid:"🦻",nose:"👃",brain:"🧠",anatomical_heart:"🫀",lungs:"🫁",tooth:"🦷",bone:"🦴",eyes:"👀",eye:"👁️",tongue:"👅",lips:"👄",baby:"👶",child:"🧒",boy:"👦",girl:"👧",adult:"🧑",blond_haired_person:"👱",man:"👨",bearded_person:"🧔",red_haired_man:"👨‍🦰",curly_haired_man:"👨‍🦱",white_haired_man:"👨‍🦳",bald_man:"👨‍🦲",woman:"👩",red_haired_woman:"👩‍🦰",person_red_hair:"🧑‍🦰",curly_haired_woman:"👩‍🦱",person_curly_hair:"🧑‍🦱",white_haired_woman:"👩‍🦳",person_white_hair:"🧑‍🦳",bald_woman:"👩‍🦲",person_bald:"🧑‍🦲",blond_haired_woman:"👱‍♀️",blonde_woman:"👱‍♀️",blond_haired_man:"👱‍♂️",older_adult:"🧓",older_man:"👴",older_woman:"👵",frowning_person:"🙍",frowning_man:"🙍‍♂️",frowning_woman:"🙍‍♀️",pouting_face:"🙎",pouting_man:"🙎‍♂️",pouting_woman:"🙎‍♀️",no_good:"🙅",no_good_man:"🙅‍♂️",ng_man:"🙅‍♂️",no_good_woman:"🙅‍♀️",ng_woman:"🙅‍♀️",ok_person:"🙆",ok_man:"🙆‍♂️",ok_woman:"🙆‍♀️",tipping_hand_person:"💁",information_desk_person:"💁",tipping_hand_man:"💁‍♂️",sassy_man:"💁‍♂️",tipping_hand_woman:"💁‍♀️",sassy_woman:"💁‍♀️",raising_hand:"🙋",raising_hand_man:"🙋‍♂️",raising_hand_woman:"🙋‍♀️",deaf_person:"🧏",deaf_man:"🧏‍♂️",deaf_woman:"🧏‍♀️",bow:"🙇",bowing_man:"🙇‍♂️",bowing_woman:"🙇‍♀️",facepalm:"🤦",man_facepalming:"🤦‍♂️",woman_facepalming:"🤦‍♀️",shrug:"🤷",man_shrugging:"🤷‍♂️",woman_shrugging:"🤷‍♀️",health_worker:"🧑‍⚕️",man_health_worker:"👨‍⚕️",woman_health_worker:"👩‍⚕️",student:"🧑‍🎓",man_student:"👨‍🎓",woman_student:"👩‍🎓",teacher:"🧑‍🏫",man_teacher:"👨‍🏫",woman_teacher:"👩‍🏫",judge:"🧑‍⚖️",man_judge:"👨‍⚖️",woman_judge:"👩‍⚖️",farmer:"🧑‍🌾",man_farmer:"👨‍🌾",woman_farmer:"👩‍🌾",cook:"🧑‍🍳",man_cook:"👨‍🍳",woman_cook:"👩‍🍳",mechanic:"🧑‍🔧",man_mechanic:"👨‍🔧",woman_mechanic:"👩‍🔧",factory_worker:"🧑‍🏭",man_factory_worker:"👨‍🏭",woman_factory_worker:"👩‍🏭",office_worker:"🧑‍💼",man_office_worker:"👨‍💼",woman_office_worker:"👩‍💼",scientist:"🧑‍🔬",man_scientist:"👨‍🔬",woman_scientist:"👩‍🔬",technologist:"🧑‍💻",man_technologist:"👨‍💻",woman_technologist:"👩‍💻",singer:"🧑‍🎤",man_singer:"👨‍🎤",woman_singer:"👩‍🎤",artist:"🧑‍🎨",man_artist:"👨‍🎨",woman_artist:"👩‍🎨",pilot:"🧑‍✈️",man_pilot:"👨‍✈️",woman_pilot:"👩‍✈️",astronaut:"🧑‍🚀",man_astronaut:"👨‍🚀",woman_astronaut:"👩‍🚀",firefighter:"🧑‍🚒",man_firefighter:"👨‍🚒",woman_firefighter:"👩‍🚒",police_officer:"👮",cop:"👮",policeman:"👮‍♂️",policewoman:"👮‍♀️",detective:"🕵️",male_detective:"🕵️‍♂️",female_detective:"🕵️‍♀️",guard:"💂",guardsman:"💂‍♂️",guardswoman:"💂‍♀️",ninja:"🥷",construction_worker:"👷",construction_worker_man:"👷‍♂️",construction_worker_woman:"👷‍♀️",prince:"🤴",princess:"👸",person_with_turban:"👳",man_with_turban:"👳‍♂️",woman_with_turban:"👳‍♀️",man_with_gua_pi_mao:"👲",woman_with_headscarf:"🧕",person_in_tuxedo:"🤵",man_in_tuxedo:"🤵‍♂️",woman_in_tuxedo:"🤵‍♀️",person_with_veil:"👰",man_with_veil:"👰‍♂️",woman_with_veil:"👰‍♀️",bride_with_veil:"👰‍♀️",pregnant_woman:"🤰",breast_feeding:"🤱",woman_feeding_baby:"👩‍🍼",man_feeding_baby:"👨‍🍼",person_feeding_baby:"🧑‍🍼",angel:"👼",santa:"🎅",mrs_claus:"🤶",mx_claus:"🧑‍🎄",superhero:"🦸",superhero_man:"🦸‍♂️",superhero_woman:"🦸‍♀️",supervillain:"🦹",supervillain_man:"🦹‍♂️",supervillain_woman:"🦹‍♀️",mage:"🧙",mage_man:"🧙‍♂️",mage_woman:"🧙‍♀️",fairy:"🧚",fairy_man:"🧚‍♂️",fairy_woman:"🧚‍♀️",vampire:"🧛",vampire_man:"🧛‍♂️",vampire_woman:"🧛‍♀️",merperson:"🧜",merman:"🧜‍♂️",mermaid:"🧜‍♀️",elf:"🧝",elf_man:"🧝‍♂️",elf_woman:"🧝‍♀️",genie:"🧞",genie_man:"🧞‍♂️",genie_woman:"🧞‍♀️",zombie:"🧟",zombie_man:"🧟‍♂️",zombie_woman:"🧟‍♀️",massage:"💆",massage_man:"💆‍♂️",massage_woman:"💆‍♀️",haircut:"💇",haircut_man:"💇‍♂️",haircut_woman:"💇‍♀️",walking:"🚶",walking_man:"🚶‍♂️",walking_woman:"🚶‍♀️",standing_person:"🧍",standing_man:"🧍‍♂️",standing_woman:"🧍‍♀️",kneeling_person:"🧎",kneeling_man:"🧎‍♂️",kneeling_woman:"🧎‍♀️",person_with_probing_cane:"🧑‍🦯",man_with_probing_cane:"👨‍🦯",woman_with_probing_cane:"👩‍🦯",person_in_motorized_wheelchair:"🧑‍🦼",man_in_motorized_wheelchair:"👨‍🦼",woman_in_motorized_wheelchair:"👩‍🦼",person_in_manual_wheelchair:"🧑‍🦽",man_in_manual_wheelchair:"👨‍🦽",woman_in_manual_wheelchair:"👩‍🦽",runner:"🏃",running:"🏃",running_man:"🏃‍♂️",running_woman:"🏃‍♀️",woman_dancing:"💃",dancer:"💃",man_dancing:"🕺",business_suit_levitating:"🕴️",dancers:"👯",dancing_men:"👯‍♂️",dancing_women:"👯‍♀️",sauna_person:"🧖",sauna_man:"🧖‍♂️",sauna_woman:"🧖‍♀️",climbing:"🧗",climbing_man:"🧗‍♂️",climbing_woman:"🧗‍♀️",person_fencing:"🤺",horse_racing:"🏇",skier:"⛷️",snowboarder:"🏂",golfing:"🏌️",golfing_man:"🏌️‍♂️",golfing_woman:"🏌️‍♀️",surfer:"🏄",surfing_man:"🏄‍♂️",surfing_woman:"🏄‍♀️",rowboat:"🚣",rowing_man:"🚣‍♂️",rowing_woman:"🚣‍♀️",swimmer:"🏊",swimming_man:"🏊‍♂️",swimming_woman:"🏊‍♀️",bouncing_ball_person:"⛹️",bouncing_ball_man:"⛹️‍♂️",basketball_man:"⛹️‍♂️",bouncing_ball_woman:"⛹️‍♀️",basketball_woman:"⛹️‍♀️",weight_lifting:"🏋️",weight_lifting_man:"🏋️‍♂️",weight_lifting_woman:"🏋️‍♀️",bicyclist:"🚴",biking_man:"🚴‍♂️",biking_woman:"🚴‍♀️",mountain_bicyclist:"🚵",mountain_biking_man:"🚵‍♂️",mountain_biking_woman:"🚵‍♀️",cartwheeling:"🤸",man_cartwheeling:"🤸‍♂️",woman_cartwheeling:"🤸‍♀️",wrestling:"🤼",men_wrestling:"🤼‍♂️",women_wrestling:"🤼‍♀️",water_polo:"🤽",man_playing_water_polo:"🤽‍♂️",woman_playing_water_polo:"🤽‍♀️",handball_person:"🤾",man_playing_handball:"🤾‍♂️",woman_playing_handball:"🤾‍♀️",juggling_person:"🤹",man_juggling:"🤹‍♂️",woman_juggling:"🤹‍♀️",lotus_position:"🧘",lotus_position_man:"🧘‍♂️",lotus_position_woman:"🧘‍♀️",bath:"🛀",sleeping_bed:"🛌",people_holding_hands:"🧑‍🤝‍🧑",two_women_holding_hands:"👭",couple:"👫",two_men_holding_hands:"👬",couplekiss:"💏",couplekiss_man_woman:"👩‍❤️‍💋‍👨",couplekiss_man_man:"👨‍❤️‍💋‍👨",couplekiss_woman_woman:"👩‍❤️‍💋‍👩",couple_with_heart:"💑",couple_with_heart_woman_man:"👩‍❤️‍👨",couple_with_heart_man_man:"👨‍❤️‍👨",couple_with_heart_woman_woman:"👩‍❤️‍👩",family:"👪",family_man_woman_boy:"👨‍👩‍👦",family_man_woman_girl:"👨‍👩‍👧",family_man_woman_girl_boy:"👨‍👩‍👧‍👦",family_man_woman_boy_boy:"👨‍👩‍👦‍👦",family_man_woman_girl_girl:"👨‍👩‍👧‍👧",family_man_man_boy:"👨‍👨‍👦",family_man_man_girl:"👨‍👨‍👧",family_man_man_girl_boy:"👨‍👨‍👧‍👦",family_man_man_boy_boy:"👨‍👨‍👦‍👦",family_man_man_girl_girl:"👨‍👨‍👧‍👧",family_woman_woman_boy:"👩‍👩‍👦",family_woman_woman_girl:"👩‍👩‍👧",family_woman_woman_girl_boy:"👩‍👩‍👧‍👦",family_woman_woman_boy_boy:"👩‍👩‍👦‍👦",family_woman_woman_girl_girl:"👩‍👩‍👧‍👧",family_man_boy:"👨‍👦",family_man_boy_boy:"👨‍👦‍👦",family_man_girl:"👨‍👧",family_man_girl_boy:"👨‍👧‍👦",family_man_girl_girl:"👨‍👧‍👧",family_woman_boy:"👩‍👦",family_woman_boy_boy:"👩‍👦‍👦",family_woman_girl:"👩‍👧",family_woman_girl_boy:"👩‍👧‍👦",family_woman_girl_girl:"👩‍👧‍👧",speaking_head:"🗣️",bust_in_silhouette:"👤",busts_in_silhouette:"👥",people_hugging:"🫂",footprints:"👣",monkey_face:"🐵",monkey:"🐒",gorilla:"🦍",orangutan:"🦧",dog:"🐶",dog2:"🐕",guide_dog:"🦮",service_dog:"🐕‍🦺",poodle:"🐩",wolf:"🐺",fox_face:"🦊",raccoon:"🦝",cat:"🐱",cat2:"🐈",black_cat:"🐈‍⬛",lion:"🦁",tiger:"🐯",tiger2:"🐅",leopard:"🐆",horse:"🐴",racehorse:"🐎",unicorn:"🦄",zebra:"🦓",deer:"🦌",bison:"🦬",cow:"🐮",ox:"🐂",water_buffalo:"🐃",cow2:"🐄",pig:"🐷",pig2:"🐖",boar:"🐗",pig_nose:"🐽",ram:"🐏",sheep:"🐑",goat:"🐐",dromedary_camel:"🐪",camel:"🐫",llama:"🦙",giraffe:"🦒",elephant:"🐘",mammoth:"🦣",rhinoceros:"🦏",hippopotamus:"🦛",mouse:"🐭",mouse2:"🐁",rat:"🐀",hamster:"🐹",rabbit:"🐰",rabbit2:"🐇",chipmunk:"🐿️",beaver:"🦫",hedgehog:"🦔",bat:"🦇",bear:"🐻",polar_bear:"🐻‍❄️",koala:"🐨",panda_face:"🐼",sloth:"🦥",otter:"🦦",skunk:"🦨",kangaroo:"🦘",badger:"🦡",feet:"🐾",paw_prints:"🐾",turkey:"🦃",chicken:"🐔",rooster:"🐓",hatching_chick:"🐣",baby_chick:"🐤",hatched_chick:"🐥",bird:"🐦",penguin:"🐧",dove:"🕊️",eagle:"🦅",duck:"🦆",swan:"🦢",owl:"🦉",dodo:"🦤",feather:"🪶",flamingo:"🦩",peacock:"🦚",parrot:"🦜",frog:"🐸",crocodile:"🐊",turtle:"🐢",lizard:"🦎",snake:"🐍",dragon_face:"🐲",dragon:"🐉",sauropod:"🦕","t-rex":"🦖",whale:"🐳",whale2:"🐋",dolphin:"🐬",flipper:"🐬",seal:"🦭",fish:"🐟",tropical_fish:"🐠",blowfish:"🐡",shark:"🦈",octopus:"🐙",shell:"🐚",snail:"🐌",butterfly:"🦋",bug:"🐛",ant:"🐜",bee:"🐝",honeybee:"🐝",beetle:"🪲",lady_beetle:"🐞",cricket:"🦗",cockroach:"🪳",spider:"🕷️",spider_web:"🕸️",scorpion:"🦂",mosquito:"🦟",fly:"🪰",worm:"🪱",microbe:"🦠",bouquet:"💐",cherry_blossom:"🌸",white_flower:"💮",rosette:"🏵️",rose:"🌹",wilted_flower:"🥀",hibiscus:"🌺",sunflower:"🌻",blossom:"🌼",tulip:"🌷",seedling:"🌱",potted_plant:"🪴",evergreen_tree:"🌲",deciduous_tree:"🌳",palm_tree:"🌴",cactus:"🌵",ear_of_rice:"🌾",herb:"🌿",shamrock:"☘️",four_leaf_clover:"🍀",maple_leaf:"🍁",fallen_leaf:"🍂",leaves:"🍃",grapes:"🍇",melon:"🍈",watermelon:"🍉",tangerine:"🍊",orange:"🍊",mandarin:"🍊",lemon:"🍋",banana:"🍌",pineapple:"🍍",mango:"🥭",apple:"🍎",green_apple:"🍏",pear:"🍐",peach:"🍑",cherries:"🍒",strawberry:"🍓",blueberries:"🫐",kiwi_fruit:"🥝",tomato:"🍅",olive:"🫒",coconut:"🥥",avocado:"🥑",eggplant:"🍆",potato:"🥔",carrot:"🥕",corn:"🌽",hot_pepper:"🌶️",bell_pepper:"🫑",cucumber:"🥒",leafy_green:"🥬",broccoli:"🥦",garlic:"🧄",onion:"🧅",mushroom:"🍄",peanuts:"🥜",chestnut:"🌰",bread:"🍞",croissant:"🥐",baguette_bread:"🥖",flatbread:"🫓",pretzel:"🥨",bagel:"🥯",pancakes:"🥞",waffle:"🧇",cheese:"🧀",meat_on_bone:"🍖",poultry_leg:"🍗",cut_of_meat:"🥩",bacon:"🥓",hamburger:"🍔",fries:"🍟",pizza:"🍕",hotdog:"🌭",sandwich:"🥪",taco:"🌮",burrito:"🌯",tamale:"🫔",stuffed_flatbread:"🥙",falafel:"🧆",egg:"🥚",fried_egg:"🍳",shallow_pan_of_food:"🥘",stew:"🍲",fondue:"🫕",bowl_with_spoon:"🥣",green_salad:"🥗",popcorn:"🍿",butter:"🧈",salt:"🧂",canned_food:"🥫",bento:"🍱",rice_cracker:"🍘",rice_ball:"🍙",rice:"🍚",curry:"🍛",ramen:"🍜",spaghetti:"🍝",sweet_potato:"🍠",oden:"🍢",sushi:"🍣",fried_shrimp:"🍤",fish_cake:"🍥",moon_cake:"🥮",dango:"🍡",dumpling:"🥟",fortune_cookie:"🥠",takeout_box:"🥡",crab:"🦀",lobster:"🦞",shrimp:"🦐",squid:"🦑",oyster:"🦪",icecream:"🍦",shaved_ice:"🍧",ice_cream:"🍨",doughnut:"🍩",cookie:"🍪",birthday:"🎂",cake:"🍰",cupcake:"🧁",pie:"🥧",chocolate_bar:"🍫",candy:"🍬",lollipop:"🍭",custard:"🍮",honey_pot:"🍯",baby_bottle:"🍼",milk_glass:"🥛",coffee:"☕",teapot:"🫖",tea:"🍵",sake:"🍶",champagne:"🍾",wine_glass:"🍷",cocktail:"🍸",tropical_drink:"🍹",beer:"🍺",beers:"🍻",clinking_glasses:"🥂",tumbler_glass:"🥃",cup_with_straw:"🥤",bubble_tea:"🧋",beverage_box:"🧃",mate:"🧉",ice_cube:"🧊",chopsticks:"🥢",plate_with_cutlery:"🍽️",fork_and_knife:"🍴",spoon:"🥄",hocho:"🔪",knife:"🔪",amphora:"🏺",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",globe_with_meridians:"🌐",world_map:"🗺️",japan:"🗾",compass:"🧭",mountain_snow:"🏔️",mountain:"⛰️",volcano:"🌋",mount_fuji:"🗻",camping:"🏕️",beach_umbrella:"🏖️",desert:"🏜️",desert_island:"🏝️",national_park:"🏞️",stadium:"🏟️",classical_building:"🏛️",building_construction:"🏗️",bricks:"🧱",rock:"🪨",wood:"🪵",hut:"🛖",houses:"🏘️",derelict_house:"🏚️",house:"🏠",house_with_garden:"🏡",office:"🏢",post_office:"🏣",european_post_office:"🏤",hospital:"🏥",bank:"🏦",hotel:"🏨",love_hotel:"🏩",convenience_store:"🏪",school:"🏫",department_store:"🏬",factory:"🏭",japanese_castle:"🏯",european_castle:"🏰",wedding:"💒",tokyo_tower:"🗼",statue_of_liberty:"🗽",church:"⛪",mosque:"🕌",hindu_temple:"🛕",synagogue:"🕍",shinto_shrine:"⛩️",kaaba:"🕋",fountain:"⛲",tent:"⛺",foggy:"🌁",night_with_stars:"🌃",cityscape:"🏙️",sunrise_over_mountains:"🌄",sunrise:"🌅",city_sunset:"🌆",city_sunrise:"🌇",bridge_at_night:"🌉",hotsprings:"♨️",carousel_horse:"🎠",ferris_wheel:"🎡",roller_coaster:"🎢",barber:"💈",circus_tent:"🎪",steam_locomotive:"🚂",railway_car:"🚃",bullettrain_side:"🚄",bullettrain_front:"🚅",train2:"🚆",metro:"🚇",light_rail:"🚈",station:"🚉",tram:"🚊",monorail:"🚝",mountain_railway:"🚞",train:"🚋",bus:"🚌",oncoming_bus:"🚍",trolleybus:"🚎",minibus:"🚐",ambulance:"🚑",fire_engine:"🚒",police_car:"🚓",oncoming_police_car:"🚔",taxi:"🚕",oncoming_taxi:"🚖",car:"🚗",red_car:"🚗",oncoming_automobile:"🚘",blue_car:"🚙",pickup_truck:"🛻",truck:"🚚",articulated_lorry:"🚛",tractor:"🚜",racing_car:"🏎️",motorcycle:"🏍️",motor_scooter:"🛵",manual_wheelchair:"🦽",motorized_wheelchair:"🦼",auto_rickshaw:"🛺",bike:"🚲",kick_scooter:"🛴",skateboard:"🛹",roller_skate:"🛼",busstop:"🚏",motorway:"🛣️",railway_track:"🛤️",oil_drum:"🛢️",fuelpump:"⛽",rotating_light:"🚨",traffic_light:"🚥",vertical_traffic_light:"🚦",stop_sign:"🛑",construction:"🚧",anchor:"⚓",boat:"⛵",sailboat:"⛵",canoe:"🛶",speedboat:"🚤",passenger_ship:"🛳️",ferry:"⛴️",motor_boat:"🛥️",ship:"🚢",airplane:"✈️",small_airplane:"🛩️",flight_departure:"🛫",flight_arrival:"🛬",parachute:"🪂",seat:"💺",helicopter:"🚁",suspension_railway:"🚟",mountain_cableway:"🚠",aerial_tramway:"🚡",artificial_satellite:"🛰️",rocket:"🚀",flying_saucer:"🛸",bellhop_bell:"🛎️",luggage:"🧳",hourglass:"⌛",hourglass_flowing_sand:"⏳",watch:"⌚",alarm_clock:"⏰",stopwatch:"⏱️",timer_clock:"⏲️",mantelpiece_clock:"🕰️",clock12:"🕛",clock1230:"🕧",clock1:"🕐",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",new_moon:"🌑",waxing_crescent_moon:"🌒",first_quarter_moon:"🌓",moon:"🌔",waxing_gibbous_moon:"🌔",full_moon:"🌕",waning_gibbous_moon:"🌖",last_quarter_moon:"🌗",waning_crescent_moon:"🌘",crescent_moon:"🌙",new_moon_with_face:"🌚",first_quarter_moon_with_face:"🌛",last_quarter_moon_with_face:"🌜",thermometer:"🌡️",sunny:"☀️",full_moon_with_face:"🌝",sun_with_face:"🌞",ringed_planet:"🪐",star:"⭐",star2:"🌟",stars:"🌠",milky_way:"🌌",cloud:"☁️",partly_sunny:"⛅",cloud_with_lightning_and_rain:"⛈️",sun_behind_small_cloud:"🌤️",sun_behind_large_cloud:"🌥️",sun_behind_rain_cloud:"🌦️",cloud_with_rain:"🌧️",cloud_with_snow:"🌨️",cloud_with_lightning:"🌩️",tornado:"🌪️",fog:"🌫️",wind_face:"🌬️",cyclone:"🌀",rainbow:"🌈",closed_umbrella:"🌂",open_umbrella:"☂️",umbrella:"☔",parasol_on_ground:"⛱️",zap:"⚡",snowflake:"❄️",snowman_with_snow:"☃️",snowman:"⛄",comet:"☄️",fire:"🔥",droplet:"💧",ocean:"🌊",jack_o_lantern:"🎃",christmas_tree:"🎄",fireworks:"🎆",sparkler:"🎇",firecracker:"🧨",sparkles:"✨",balloon:"🎈",tada:"🎉",confetti_ball:"🎊",tanabata_tree:"🎋",bamboo:"🎍",dolls:"🎎",flags:"🎏",wind_chime:"🎐",rice_scene:"🎑",red_envelope:"🧧",ribbon:"🎀",gift:"🎁",reminder_ribbon:"🎗️",tickets:"🎟️",ticket:"🎫",medal_military:"🎖️",trophy:"🏆",medal_sports:"🏅","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉",soccer:"⚽",baseball:"⚾",softball:"🥎",basketball:"🏀",volleyball:"🏐",football:"🏈",rugby_football:"🏉",tennis:"🎾",flying_disc:"🥏",bowling:"🎳",cricket_game:"🏏",field_hockey:"🏑",ice_hockey:"🏒",lacrosse:"🥍",ping_pong:"🏓",badminton:"🏸",boxing_glove:"🥊",martial_arts_uniform:"🥋",goal_net:"🥅",golf:"⛳",ice_skate:"⛸️",fishing_pole_and_fish:"🎣",diving_mask:"🤿",running_shirt_with_sash:"🎽",ski:"🎿",sled:"🛷",curling_stone:"🥌",dart:"🎯",yo_yo:"🪀",kite:"🪁","8ball":"🎱",crystal_ball:"🔮",magic_wand:"🪄",nazar_amulet:"🧿",video_game:"🎮",joystick:"🕹️",slot_machine:"🎰",game_die:"🎲",jigsaw:"🧩",teddy_bear:"🧸",pinata:"🪅",nesting_dolls:"🪆",spades:"♠️",hearts:"♥️",diamonds:"♦️",clubs:"♣️",chess_pawn:"♟️",black_joker:"🃏",mahjong:"🀄",flower_playing_cards:"🎴",performing_arts:"🎭",framed_picture:"🖼️",art:"🎨",thread:"🧵",sewing_needle:"🪡",yarn:"🧶",knot:"🪢",eyeglasses:"👓",dark_sunglasses:"🕶️",goggles:"🥽",lab_coat:"🥼",safety_vest:"🦺",necktie:"👔",shirt:"👕",tshirt:"👕",jeans:"👖",scarf:"🧣",gloves:"🧤",coat:"🧥",socks:"🧦",dress:"👗",kimono:"👘",sari:"🥻",one_piece_swimsuit:"🩱",swim_brief:"🩲",shorts:"🩳",bikini:"👙",womans_clothes:"👚",purse:"👛",handbag:"👜",pouch:"👝",shopping:"🛍️",school_satchel:"🎒",thong_sandal:"🩴",mans_shoe:"👞",shoe:"👞",athletic_shoe:"👟",hiking_boot:"🥾",flat_shoe:"🥿",high_heel:"👠",sandal:"👡",ballet_shoes:"🩰",boot:"👢",crown:"👑",womans_hat:"👒",tophat:"🎩",mortar_board:"🎓",billed_cap:"🧢",military_helmet:"🪖",rescue_worker_helmet:"⛑️",prayer_beads:"📿",lipstick:"💄",ring:"💍",gem:"💎",mute:"🔇",speaker:"🔈",sound:"🔉",loud_sound:"🔊",loudspeaker:"📢",mega:"📣",postal_horn:"📯",bell:"🔔",no_bell:"🔕",musical_score:"🎼",musical_note:"🎵",notes:"🎶",studio_microphone:"🎙️",level_slider:"🎚️",control_knobs:"🎛️",microphone:"🎤",headphones:"🎧",radio:"📻",saxophone:"🎷",accordion:"🪗",guitar:"🎸",musical_keyboard:"🎹",trumpet:"🎺",violin:"🎻",banjo:"🪕",drum:"🥁",long_drum:"🪘",iphone:"📱",calling:"📲",phone:"☎️",telephone:"☎️",telephone_receiver:"📞",pager:"📟",fax:"📠",battery:"🔋",electric_plug:"🔌",computer:"💻",desktop_computer:"🖥️",printer:"🖨️",keyboard:"⌨️",computer_mouse:"🖱️",trackball:"🖲️",minidisc:"💽",floppy_disk:"💾",cd:"💿",dvd:"📀",abacus:"🧮",movie_camera:"🎥",film_strip:"🎞️",film_projector:"📽️",clapper:"🎬",tv:"📺",camera:"📷",camera_flash:"📸",video_camera:"📹",vhs:"📼",mag:"🔍",mag_right:"🔎",candle:"🕯️",bulb:"💡",flashlight:"🔦",izakaya_lantern:"🏮",lantern:"🏮",diya_lamp:"🪔",notebook_with_decorative_cover:"📔",closed_book:"📕",book:"📖",open_book:"📖",green_book:"📗",blue_book:"📘",orange_book:"📙",books:"📚",notebook:"📓",ledger:"📒",page_with_curl:"📃",scroll:"📜",page_facing_up:"📄",newspaper:"📰",newspaper_roll:"🗞️",bookmark_tabs:"📑",bookmark:"🔖",label:"🏷️",moneybag:"💰",coin:"🪙",yen:"💴",dollar:"💵",euro:"💶",pound:"💷",money_with_wings:"💸",credit_card:"💳",receipt:"🧾",chart:"💹",envelope:"✉️",email:"📧","e-mail":"📧",incoming_envelope:"📨",envelope_with_arrow:"📩",outbox_tray:"📤",inbox_tray:"📥",package:"📦",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",postbox:"📮",ballot_box:"🗳️",pencil2:"✏️",black_nib:"✒️",fountain_pen:"🖋️",pen:"🖊️",paintbrush:"🖌️",crayon:"🖍️",memo:"📝",pencil:"📝",briefcase:"💼",file_folder:"📁",open_file_folder:"📂",card_index_dividers:"🗂️",date:"📅",calendar:"📆",spiral_notepad:"🗒️",spiral_calendar:"🗓️",card_index:"📇",chart_with_upwards_trend:"📈",chart_with_downwards_trend:"📉",bar_chart:"📊",clipboard:"📋",pushpin:"📌",round_pushpin:"📍",paperclip:"📎",paperclips:"🖇️",straight_ruler:"📏",triangular_ruler:"📐",scissors:"✂️",card_file_box:"🗃️",file_cabinet:"🗄️",wastebasket:"🗑️",lock:"🔒",unlock:"🔓",lock_with_ink_pen:"🔏",closed_lock_with_key:"🔐",key:"🔑",old_key:"🗝️",hammer:"🔨",axe:"🪓",pick:"⛏️",hammer_and_pick:"⚒️",hammer_and_wrench:"🛠️",dagger:"🗡️",crossed_swords:"⚔️",gun:"🔫",boomerang:"🪃",bow_and_arrow:"🏹",shield:"🛡️",carpentry_saw:"🪚",wrench:"🔧",screwdriver:"🪛",nut_and_bolt:"🔩",gear:"⚙️",clamp:"🗜️",balance_scale:"⚖️",probing_cane:"🦯",link:"🔗",chains:"⛓️",hook:"🪝",toolbox:"🧰",magnet:"🧲",ladder:"🪜",alembic:"⚗️",test_tube:"🧪",petri_dish:"🧫",dna:"🧬",microscope:"🔬",telescope:"🔭",satellite:"📡",syringe:"💉",drop_of_blood:"🩸",pill:"💊",adhesive_bandage:"🩹",stethoscope:"🩺",door:"🚪",elevator:"🛗",mirror:"🪞",window:"🪟",bed:"🛏️",couch_and_lamp:"🛋️",chair:"🪑",toilet:"🚽",plunger:"🪠",shower:"🚿",bathtub:"🛁",mouse_trap:"🪤",razor:"🪒",lotion_bottle:"🧴",safety_pin:"🧷",broom:"🧹",basket:"🧺",roll_of_paper:"🧻",bucket:"🪣",soap:"🧼",toothbrush:"🪥",sponge:"🧽",fire_extinguisher:"🧯",shopping_cart:"🛒",smoking:"🚬",coffin:"⚰️",headstone:"🪦",funeral_urn:"⚱️",moyai:"🗿",placard:"🪧",atm:"🏧",put_litter_in_its_place:"🚮",potable_water:"🚰",wheelchair:"♿",mens:"🚹",womens:"🚺",restroom:"🚻",baby_symbol:"🚼",wc:"🚾",passport_control:"🛂",customs:"🛃",baggage_claim:"🛄",left_luggage:"🛅",warning:"⚠️",children_crossing:"🚸",no_entry:"⛔",no_entry_sign:"🚫",no_bicycles:"🚳",no_smoking:"🚭",do_not_litter:"🚯","non-potable_water":"🚱",no_pedestrians:"🚷",no_mobile_phones:"📵",underage:"🔞",radioactive:"☢️",biohazard:"☣️",arrow_up:"⬆️",arrow_upper_right:"↗️",arrow_right:"➡️",arrow_lower_right:"↘️",arrow_down:"⬇️",arrow_lower_left:"↙️",arrow_left:"⬅️",arrow_upper_left:"↖️",arrow_up_down:"↕️",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",arrow_right_hook:"↪️",arrow_heading_up:"⤴️",arrow_heading_down:"⤵️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",back:"🔙",end:"🔚",on:"🔛",soon:"🔜",top:"🔝",place_of_worship:"🛐",atom_symbol:"⚛️",om:"🕉️",star_of_david:"✡️",wheel_of_dharma:"☸️",yin_yang:"☯️",latin_cross:"✝️",orthodox_cross:"☦️",star_and_crescent:"☪️",peace_symbol:"☮️",menorah:"🕎",six_pointed_star:"🔯",aries:"♈",taurus:"♉",gemini:"♊",cancer:"♋",leo:"♌",virgo:"♍",libra:"♎",scorpius:"♏",sagittarius:"♐",capricorn:"♑",aquarius:"♒",pisces:"♓",ophiuchus:"⛎",twisted_rightwards_arrows:"🔀",repeat:"🔁",repeat_one:"🔂",arrow_forward:"▶️",fast_forward:"⏩",next_track_button:"⏭️",play_or_pause_button:"⏯️",arrow_backward:"◀️",rewind:"⏪",previous_track_button:"⏮️",arrow_up_small:"🔼",arrow_double_up:"⏫",arrow_down_small:"🔽",arrow_double_down:"⏬",pause_button:"⏸️",stop_button:"⏹️",record_button:"⏺️",eject_button:"⏏️",cinema:"🎦",low_brightness:"🔅",high_brightness:"🔆",signal_strength:"📶",vibration_mode:"📳",mobile_phone_off:"📴",female_sign:"♀️",male_sign:"♂️",transgender_symbol:"⚧️",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",heavy_minus_sign:"➖",heavy_division_sign:"➗",infinity:"♾️",bangbang:"‼️",interrobang:"⁉️",question:"❓",grey_question:"❔",grey_exclamation:"❕",exclamation:"❗",heavy_exclamation_mark:"❗",wavy_dash:"〰️",currency_exchange:"💱",heavy_dollar_sign:"💲",medical_symbol:"⚕️",recycle:"♻️",fleur_de_lis:"⚜️",trident:"🔱",name_badge:"📛",beginner:"🔰",o:"⭕",white_check_mark:"✅",ballot_box_with_check:"☑️",heavy_check_mark:"✔️",x:"❌",negative_squared_cross_mark:"❎",curly_loop:"➰",loop:"➿",part_alternation_mark:"〽️",eight_spoked_asterisk:"✳️",eight_pointed_black_star:"✴️",sparkle:"❇️",copyright:"©️",registered:"®️",tm:"™️",hash:"#️⃣",asterisk:"*️⃣",zero:"0️⃣",one:"1️⃣",two:"2️⃣",three:"3️⃣",four:"4️⃣",five:"5️⃣",six:"6️⃣",seven:"7️⃣",eight:"8️⃣",nine:"9️⃣",keycap_ten:"🔟",capital_abcd:"🔠",abcd:"🔡",symbols:"🔣",abc:"🔤",a:"🅰️",ab:"🆎",b:"🅱️",cl:"🆑",cool:"🆒",free:"🆓",information_source:"ℹ️",id:"🆔",m:"Ⓜ️",new:"🆕",ng:"🆖",o2:"🅾️",ok:"🆗",parking:"🅿️",sos:"🆘",up:"🆙",vs:"🆚",koko:"🈁",sa:"🈂️",ideograph_advantage:"🉐",accept:"🉑",congratulations:"㊗️",secret:"㊙️",u6e80:"🈵",red_circle:"🔴",orange_circle:"🟠",yellow_circle:"🟡",green_circle:"🟢",large_blue_circle:"🔵",purple_circle:"🟣",brown_circle:"🟤",black_circle:"⚫",white_circle:"⚪",red_square:"🟥",orange_square:"🟧",yellow_square:"🟨",green_square:"🟩",blue_square:"🟦",purple_square:"🟪",brown_square:"🟫",black_large_square:"⬛",white_large_square:"⬜",black_medium_square:"◼️",white_medium_square:"◻️",black_medium_small_square:"◾",white_medium_small_square:"◽",black_small_square:"▪️",white_small_square:"▫️",large_orange_diamond:"🔶",large_blue_diamond:"🔷",small_orange_diamond:"🔸",small_blue_diamond:"🔹",small_red_triangle:"🔺",small_red_triangle_down:"🔻",diamond_shape_with_a_dot_inside:"💠",radio_button:"🔘",white_square_button:"🔳",black_square_button:"🔲",checkered_flag:"🏁",triangular_flag_on_post:"🚩",crossed_flags:"🎌",black_flag:"🏴",white_flag:"🏳️",rainbow_flag:"🏳️‍🌈",transgender_flag:"🏳️‍⚧️",pirate_flag:"🏴‍☠️",ascension_island:"🇦🇨",andorra:"🇦🇩",united_arab_emirates:"🇦🇪",afghanistan:"🇦🇫",antigua_barbuda:"🇦🇬",anguilla:"🇦🇮",albania:"🇦🇱",armenia:"🇦🇲",angola:"🇦🇴",antarctica:"🇦🇶",argentina:"🇦🇷",american_samoa:"🇦🇸",austria:"🇦🇹",australia:"🇦🇺",aruba:"🇦🇼",aland_islands:"🇦🇽",azerbaijan:"🇦🇿",bosnia_herzegovina:"🇧🇦",barbados:"🇧🇧",bangladesh:"🇧🇩",belgium:"🇧🇪",burkina_faso:"🇧🇫",bulgaria:"🇧🇬",bahrain:"🇧🇭",burundi:"🇧🇮",benin:"🇧🇯",st_barthelemy:"🇧🇱",bermuda:"🇧🇲",brunei:"🇧🇳",bolivia:"🇧🇴",caribbean_netherlands:"🇧🇶",brazil:"🇧🇷",bahamas:"🇧🇸",bhutan:"🇧🇹",bouvet_island:"🇧🇻",botswana:"🇧🇼",belarus:"🇧🇾",belize:"🇧🇿",canada:"🇨🇦",cocos_islands:"🇨🇨",congo_kinshasa:"🇨🇩",central_african_republic:"🇨🇫",congo_brazzaville:"🇨🇬",switzerland:"🇨🇭",cote_divoire:"🇨🇮",cook_islands:"🇨🇰",chile:"🇨🇱",cameroon:"🇨🇲",cn:"🇨🇳",colombia:"🇨🇴",clipperton_island:"🇨🇵",costa_rica:"🇨🇷",cuba:"🇨🇺",cape_verde:"🇨🇻",curacao:"🇨🇼",christmas_island:"🇨🇽",cyprus:"🇨🇾",czech_republic:"🇨🇿",de:"🇩🇪",diego_garcia:"🇩🇬",djibouti:"🇩🇯",denmark:"🇩🇰",dominica:"🇩🇲",dominican_republic:"🇩🇴",algeria:"🇩🇿",ceuta_melilla:"🇪🇦",ecuador:"🇪🇨",estonia:"🇪🇪",egypt:"🇪🇬",western_sahara:"🇪🇭",eritrea:"🇪🇷",es:"🇪🇸",ethiopia:"🇪🇹",eu:"🇪🇺",european_union:"🇪🇺",finland:"🇫🇮",fiji:"🇫🇯",falkland_islands:"🇫🇰",micronesia:"🇫🇲",faroe_islands:"🇫🇴",fr:"🇫🇷",gabon:"🇬🇦",gb:"🇬🇧",uk:"🇬🇧",grenada:"🇬🇩",georgia:"🇬🇪",french_guiana:"🇬🇫",guernsey:"🇬🇬",ghana:"🇬🇭",gibraltar:"🇬🇮",greenland:"🇬🇱",gambia:"🇬🇲",guinea:"🇬🇳",guadeloupe:"🇬🇵",equatorial_guinea:"🇬🇶",greece:"🇬🇷",south_georgia_south_sandwich_islands:"🇬🇸",guatemala:"🇬🇹",guam:"🇬🇺",guinea_bissau:"🇬🇼",guyana:"🇬🇾",hong_kong:"🇭🇰",heard_mcdonald_islands:"🇭🇲",honduras:"🇭🇳",croatia:"🇭🇷",haiti:"🇭🇹",hungary:"🇭🇺",canary_islands:"🇮🇨",indonesia:"🇮🇩",ireland:"🇮🇪",israel:"🇮🇱",isle_of_man:"🇮🇲",india:"🇮🇳",british_indian_ocean_territory:"🇮🇴",iraq:"🇮🇶",iran:"🇮🇷",iceland:"🇮🇸",it:"🇮🇹",jersey:"🇯🇪",jamaica:"🇯🇲",jordan:"🇯🇴",jp:"🇯🇵",kenya:"🇰🇪",kyrgyzstan:"🇰🇬",cambodia:"🇰🇭",kiribati:"🇰🇮",comoros:"🇰🇲",st_kitts_nevis:"🇰🇳",north_korea:"🇰🇵",kr:"🇰🇷",kuwait:"🇰🇼",cayman_islands:"🇰🇾",kazakhstan:"🇰🇿",laos:"🇱🇦",lebanon:"🇱🇧",st_lucia:"🇱🇨",liechtenstein:"🇱🇮",sri_lanka:"🇱🇰",liberia:"🇱🇷",lesotho:"🇱🇸",lithuania:"🇱🇹",luxembourg:"🇱🇺",latvia:"🇱🇻",libya:"🇱🇾",morocco:"🇲🇦",monaco:"🇲🇨",moldova:"🇲🇩",montenegro:"🇲🇪",st_martin:"🇲🇫",madagascar:"🇲🇬",marshall_islands:"🇲🇭",macedonia:"🇲🇰",mali:"🇲🇱",myanmar:"🇲🇲",mongolia:"🇲🇳",macau:"🇲🇴",northern_mariana_islands:"🇲🇵",martinique:"🇲🇶",mauritania:"🇲🇷",montserrat:"🇲🇸",malta:"🇲🇹",mauritius:"🇲🇺",maldives:"🇲🇻",malawi:"🇲🇼",mexico:"🇲🇽",malaysia:"🇲🇾",mozambique:"🇲🇿",namibia:"🇳🇦",new_caledonia:"🇳🇨",niger:"🇳🇪",norfolk_island:"🇳🇫",nigeria:"🇳🇬",nicaragua:"🇳🇮",netherlands:"🇳🇱",norway:"🇳🇴",nepal:"🇳🇵",nauru:"🇳🇷",niue:"🇳🇺",new_zealand:"🇳🇿",oman:"🇴🇲",panama:"🇵🇦",peru:"🇵🇪",french_polynesia:"🇵🇫",papua_new_guinea:"🇵🇬",philippines:"🇵🇭",pakistan:"🇵🇰",poland:"🇵🇱",st_pierre_miquelon:"🇵🇲",pitcairn_islands:"🇵🇳",puerto_rico:"🇵🇷",palestinian_territories:"🇵🇸",portugal:"🇵🇹",palau:"🇵🇼",paraguay:"🇵🇾",qatar:"🇶🇦",reunion:"🇷🇪",romania:"🇷🇴",serbia:"🇷🇸",ru:"🇷🇺",rwanda:"🇷🇼",saudi_arabia:"🇸🇦",solomon_islands:"🇸🇧",seychelles:"🇸🇨",sudan:"🇸🇩",sweden:"🇸🇪",singapore:"🇸🇬",st_helena:"🇸🇭",slovenia:"🇸🇮",svalbard_jan_mayen:"🇸🇯",slovakia:"🇸🇰",sierra_leone:"🇸🇱",san_marino:"🇸🇲",senegal:"🇸🇳",somalia:"🇸🇴",suriname:"🇸🇷",south_sudan:"🇸🇸",sao_tome_principe:"🇸🇹",el_salvador:"🇸🇻",sint_maarten:"🇸🇽",syria:"🇸🇾",swaziland:"🇸🇿",tristan_da_cunha:"🇹🇦",turks_caicos_islands:"🇹🇨",chad:"🇹🇩",french_southern_territories:"🇹🇫",togo:"🇹🇬",thailand:"🇹🇭",tajikistan:"🇹🇯",tokelau:"🇹🇰",timor_leste:"🇹🇱",turkmenistan:"🇹🇲",tunisia:"🇹🇳",tonga:"🇹🇴",tr:"🇹🇷",trinidad_tobago:"🇹🇹",tuvalu:"🇹🇻",taiwan:"🇹🇼",tanzania:"🇹🇿",ukraine:"🇺🇦",uganda:"🇺🇬",us_outlying_islands:"🇺🇲",united_nations:"🇺🇳",us:"🇺🇸",uruguay:"🇺🇾",uzbekistan:"🇺🇿",vatican_city:"🇻🇦",st_vincent_grenadines:"🇻🇨",venezuela:"🇻🇪",british_virgin_islands:"🇻🇬",us_virgin_islands:"🇻🇮",vietnam:"🇻🇳",vanuatu:"🇻🇺",wallis_futuna:"🇼🇫",samoa:"🇼🇸",kosovo:"🇽🇰",yemen:"🇾🇪",mayotte:"🇾🇹",south_africa:"🇿🇦",zambia:"🇿🇲",zimbabwe:"🇿🇼",england:"🏴󠁧󠁢󠁥󠁮󠁧󠁿",scotland:"🏴󠁧󠁢󠁳󠁣󠁴󠁿",wales:"🏴󠁧󠁢󠁷󠁬󠁳󠁿"};Object.keys(q).reduce((e,t)=>{const i=q[t];return e[i]=t,e},{});const mn=Object.keys(q).map(e=>e);Object.keys(q).map(e=>q[e]);function gn(e){return mn.filter(t=>t.startsWith(e)).map(t=>({name:t,emoji:q[t]}))}const fe=g.forwardRef((e,t)=>{const i=g.useRef(),[n,o]=g.useState(0),{t:r}=x.useLocale(),s=d=>{const f=e.items[d];f&&e.command(f)},c=()=>{o((n+e.items.length-1)%e.items.length)},u=()=>{o((n+1)%e.items.length)},h=()=>{s(n)};return g.useEffect(()=>o(0),[e.items]),g.useEffect(()=>{if(Number.isNaN(n+1))return;const d=i.current.querySelector(`span:nth-of-type(${n+1})`);d&&b.e(d,{behavior:"smooth",scrollMode:"if-needed"})},[n]),g.useImperativeHandle(t,()=>({onKeyDown:({event:d})=>d.key==="ArrowUp"?(c(),!0):d.key==="ArrowDown"?(u(),!0):d.key==="Enter"?(h(),!0):!1})),a.jsx("div",{className:"richtext-w-[200px] richtext-max-h-[320px] richtext-overflow-x-hidden richtext-overflow-y-auto richtext-rounded-sm !richtext-border richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none",children:a.jsx("div",{ref:i,children:e.items.length?e.items.map((d,f)=>a.jsxs("span",{className:b.clsx(" richtext-flex richtext-relative richtext-cursor-default richtext-select-none richtext-items-center richtext-rounded-sm richtext-px-2 richtext-py-1.5 richtext-text-sm richtext-outline-none richtext-transition-colors focus:richtext-bg-accent focus:richtext-text-accent-foreground hover:richtext-bg-accent",f===n?"bg-accent":""),onClick:()=>s(f),children:[d.fallbackImage?a.jsx("img",{src:d.fallbackImage,className:"richtext-w-[1em] richtext-h-[1em]"}):d.emoji,":",d.name,":"]},`emoji-list-code-${f}`)):a.jsx("div",{className:"richtext-flex richtext-relative richtext-cursor-default richtext-select-none richtext-items-center richtext-rounded-sm richtext-px-2 richtext-py-1.5 richtext-text-sm richtext-outline-none richtext-transition-colors",children:a.jsx("span",{children:r("no_result_found")})})})})});fe.displayName="EmojiList";const fn=["😀","😃","😄","😁","😆","😅","😂","🤣","🥲","😊","😇","🙂","🙃","😉","😌","😍","🥰","😘","😗","😙","😚","😋","😛","😝","😜","🤪","🤨","🧐","🤓","😎","🥸","🤩","🥳","😏","😒","😞","😔","😟","😕","🙁","😣","😖","😫","😩","🥺","😢","😭","😤","😠","😡","🤬","🤯","😳","🥵","🥶","😱","😨","😰","😥","😓","🤗","🤔","🤭","🤫","🤥","😶","😐","😑","😬","🙄","😯","😦","😧","😮","😲","🥱","😴","🤤","😪","😵","🤐","🥴","🤢","🤮","🤧","😷","🤒","🤕","🤑","🤠","😈","👿","👹","👺","🤡","💩","👻","💀","☠️","👽","👾","🤖","🎃","😺","😸","😹","😻","😼","😽","🙀","😿","😾","👋","🤚","🖐","✋","🖖","👌","🤌","🤏","✌️","🤞","🤟","🤘","🤙","👈","👉","👆","🖕","👇","☝️","👍","👎","✊","👊","🤛","🤜","👏","🙌","👐","🤲","🤝","🙏","✍️","💅","🤳","💪","🦾","🦵","🦿","🦶","👣","👂","🦻","👃","🫀","🫁","🧠","🦷","🦴","👀","👁","👅","👄","💋","🩸","💋","💌","💘","💝","💖","💗","💓","💞","💕","💟","❣️","❣","💔","❤️‍🔥","❤‍🔥","❤️‍🩹","❤‍🩹","❤️","❤","🧡","💛","💚","💙","💜","🤎","🖤","🤍","💯","💢","💥","💫","💦","💨","🕳️","🕳","💣","💬","👁️‍🗨️","👁‍🗨️","👁️‍🗨","👁‍🗨","🗨️","🗨","🗯️","🗯","💭","💤"],_n=["🏧","🚮","🚰","♿","🚹","🚺","🚻","🚼","🚾","🛂","🛃","🛄","🛅","⚠️","⚠","🚸","⛔","🚫","🚳","🚭","🚯","🚱","🚷","📵","🔞","☢️","☢","☣️","☣","⬆️","⬆","↗️","↗","➡️","➡","↘️","↘","⬇️","⬇","↙️","↙","⬅️","⬅","↖️","↖","↕️","↕","↔️","↔","↩️","↩","↪️","↪","⤴️","⤴","⤵️","⤵","🔃","🔄","🔙","🔚","🔛","🔜","🔝","🛐","⚛️","⚛","🕉️","🕉","✡️","✡","☸️","☸","☯️","☯","✝️","✝","☦️","☦","☪️","☪","☮️","☮","🕎","🔯","♈","♉","♊","♋","♌","♍","♎","♏","♐","♑","♒","♓","⛎","🔀","🔁","🔂","▶️","▶","⏩","⏭️","⏭","⏯️","⏯","◀️","◀","⏪","⏮️","⏮","🔼","⏫","🔽","⏬","⏸️","⏸","⏹️","⏹","⏺️","⏺","⏏️","⏏","🎦","🔅","🔆","📶","📳","📴","♀️","♀","♂️","♂","⚧️","⚧","✖️","✖","➕","➖","➗","♾️","♾","‼️","‼","⁉️","⁉","❓","❔","❕","❗","〰️","〰","💱","💲","⚕️","⚕","♻️","♻","⚜️","⚜","🔱","📛","🔰","⭕","✅","☑️","☑","✔️","✔","❌","❎","➰","➿","〽️","〽","✳️","✳","✴️","✴","❇️","❇","©️","©","®️","®","™️","™","#️⃣","#⃣","*️⃣","*⃣","0️⃣","0⃣","1️⃣","1⃣","2️⃣","2⃣","3️⃣","3⃣","4️⃣","4⃣","5️⃣","5⃣","6️⃣","6⃣","7️⃣","7⃣","8️⃣","8⃣","9️⃣","9⃣","🔟","🔠","🔡","🔢","🔣","🔤","🅰️","🅰","🆎","🅱️","🅱","🆑","🆒","🆓","ℹ️","ℹ","🆔","Ⓜ️","Ⓜ","🆕","🆖","🅾️","🅾","🆗","🅿️","🅿","🆘","🆙","🆚","🈁","🈂️","🈂","🈷️","🈷","🈶","🈯","🉐","🈹","🈚","🈲","🉑","🈸","🈴","🈳","㊗️","㊗","㊙️","㊙","🈺","🈵","🔴","🟠","🟡","🟢","🔵","🟣","🟤","⚫","⚪","🟥","🟧","🟨","🟩","🟦","🟪","🟫","⬛","⬜","◼️","◼","◻️","◻","◾","◽","▪️","▪","▫️","▫","🔶","🔷","🔸","🔹","🔺","🔻","💠","🔘","🔳","🔲"],xn=["👓","🕶️","🕶","🥽","🥼","🦺","👔","👕","👖","🧣","🧤","🧥","🧦","👗","👘","🥻","🩱","🩲","🩳","👙","👚","👛","👜","👝","🛍️","🛍","🎒","🩴","👞","👟","🥾","🥿","👠","👡","🩰","👢","👑","👒","🎩","🎓","🧢","🪖","⛑️","⛑","📿","💄","💍","💎","🔇","🔈","🔉","🔊","📢","📣","📯","🔔","🔕","🎼","🎵","🎶","🎙️","🎙","🎚️","🎚","🎛️","🎛","🎤","🎧","📻","🎷","🪗","🎸","🎹","🎺","🎻","🪕","🥁","🪘","📱","📲","☎️","☎","📞","📟","📠","🔋","🔌","💻","🖥️","🖥","🖨️","🖨","⌨️","⌨","🖱️","🖱","🖲️","🖲","💽","💾","💿","📀","🧮","🎥","🎞️","🎞","📽️","📽","🎬","📺","📷","📸","📹","📼","🔍","🔎","🕯️","🕯","💡","🔦","🏮","🪔","📔","📕","📖","📗","📘","📙","📚","📓","📒","📃","📜","📄","📰","🗞️","🗞","📑","🔖","🏷️","🏷","💰","🪙","💴","💵","💶","💷","💸","💳","🧾","💹","✉️","✉","📧","📨","📩","📤","📥","📦","📫","📪","📬","📭","📮","🗳️","🗳","✏️","✏","✒️","✒","🖋️","🖋","🖊️","🖊","🖌️","🖌","🖍️","🖍","📝","💼","📁","📂","🗂️","🗂","📅","📆","🗒️","🗒","🗓️","🗓","📇","📈","📉","📊","📋","📌","📍","📎","🖇️","🖇","📏","📐","✂️","✂","🗃️","🗃","🗄️","🗄","🗑️","🗑","🔒","🔓","🔏","🔐","🔑","🗝️","🗝","🔨","🪓","⛏️","⛏","⚒️","⚒","🛠️","🛠","🗡️","🗡","⚔️","⚔","🔫","🪃","🏹","🛡️","🛡","🪚","🔧","🪛","🔩","⚙️","⚙","🗜️","🗜","⚖️","⚖","🦯","🔗","⛓️","⛓","🪝","🧰","🧲","🪜","⚗️","⚗","🧪","🧫","🧬","🔬","🔭","📡","💉","🩸","💊","🩹","🩺","🚪","🛗","🪞","🪟","🛏️","🛏","🛋️","🛋","🪑","🚽","🪠","🚿","🛁","🪤","🪒","🧴","🧷","🧹","🧺","🧻","🪣","🧼","🪥","🧽","🧯","🛒","🚬","⚰️","⚰","🪦","⚱️","⚱","🗿","🪧"],bn=["🎃","🎄","🎆","🎇","🧨","✨","🎈","🎉","🎊","🎋","🎍","🎎","🎏","🎐","🎑","🧧","🎀","🎁","🎗️","🎗","🎟️","🎟","🎫","🎖️","🎖","🏆","🏅","🥇","🥈","🥉","⚽","⚾","🥎","🏀","🏐","🏈","🏉","🎾","🥏","🎳","🏏","🏑","🏒","🥍","🏓","🏸","🥊","🥋","🥅","⛳","⛸️","⛸","🎣","🤿","🎽","🎿","🛷","🥌","🎯","🪀","🪁","🎱","🔮","🪄","🧿","🎮","🕹️","🕹","🎰","🎲","🧩","🧸","🪅","🪆","♠️","♠","♥️","♥","♦️","♦","♣️","♣","♟️","♟","🃏","🀄","🎴","🎭","🖼️","🖼","🎨","🧵","🪡","🧶","🪢"],pn=["🌍","🌎","🌏","🌐","🗺️","🗺","🗾","🧭","🏔️","🏔","⛰️","⛰","🌋","🗻","🏕️","🏕","🏖️","🏖","🏜️","🏜","🏝️","🏝","🏞️","🏞","🏟️","🏟","🏛️","🏛","🏗️","🏗","🧱","🪨","🪵","🛖","🏘️","🏘","🏚️","🏚","🏠","🏡","🏢","🏣","🏤","🏥","🏦","🏨","🏩","🏪","🏫","🏬","🏭","🏯","🏰","💒","🗼","🗽","⛪","🕌","🛕","🕍","⛩️","⛩","🕋","⛲","⛺","🌁","🌃","🏙️","🏙","🌄","🌅","🌆","🌇","🌉","♨️","♨","🎠","🎡","🎢","💈","🎪","🚂","🚃","🚄","🚅","🚆","🚇","🚈","🚉","🚊","🚝","🚞","🚋","🚌","🚍","🚎","🚐","🚑","🚒","🚓","🚔","🚕","🚖","🚗","🚘","🚙","🛻","🚚","🚛","🚜","🏎️","🏎","🏍️","🏍","🛵","🦽","🦼","🛺","🚲","🛴","🛹","🛼","🚏","🛣️","🛣","🛤️","🛤","🛢️","🛢","⛽","🚨","🚥","🚦","🛑","🚧","⚓","⛵","🛶","🚤","🛳️","🛳","⛴️","⛴","🛥️","🛥","🚢","✈️","✈","🛩️","🛩","🛫","🛬","🪂","💺","🚁","🚟","🚠","🚡","🛰️","🛰","🚀","🛸","🛎️","🛎","🧳","⌛","⏳","⌚","⏰","⏱️","⏱","⏲️","⏲","🕰️","🕰","🕛","🕧","🕐","🕜","🕑","🕝","🕒","🕞","🕓","🕟","🕔","🕠","🕕","🕡","🕖","🕢","🕗","🕣","🕘","🕤","🕙","🕥","🕚","🕦","🌑","🌒","🌓","🌔","🌕","🌖","🌗","🌘","🌙","🌚","🌛","🌜","🌡️","🌡","☀️","☀","🌝","🌞","🪐","⭐","🌟","🌠","🌌","☁️","☁","⛅","⛈️","⛈","🌤️","🌤","🌥️","🌥","🌦️","🌦","🌧️","🌧","🌨️","🌨","🌩️","🌩","🌪️","🌪","🌫️","🌫","🌬️","🌬","🌀","🌈","🌂","☂️","☂","☔","⛱️","⛱","⚡","❄️","❄","☃️","☃","⛄","☄️","☄","🔥","💧","🌊"],wn=["🏁","🚩","🎌","🏴","🏳️","🏳","🏳️‍🌈","🏳‍🌈","🏳️‍⚧️","🏳‍⚧️","🏳️‍⚧","🏳‍⚧","🏴‍☠️","🏴‍☠","🇦🇨","🇦🇩","🇦🇪","🇦🇫","🇦🇬","🇦🇮","🇦🇱","🇦🇲","🇦🇴","🇦🇶","🇦🇷","🇦🇸","🇦🇹","🇦🇺","🇦🇼","🇦🇽","🇦🇿","🇧🇦","🇧🇧","🇧🇩","🇧🇪","🇧🇫","🇧🇬","🇧🇭","🇧🇮","🇧🇯","🇧🇱","🇧🇲","🇧🇳","🇧🇴","🇧🇶","🇧🇷","🇧🇸","🇧🇹","🇧🇻","🇧🇼","🇧🇾","🇧🇿","🇨🇦","🇨🇨","🇨🇩","🇨🇫","🇨🇬","🇨🇭","🇨🇮","🇨🇰","🇨🇱","🇨🇲","🇨🇳","🇨🇴","🇨🇵","🇨🇷","🇨🇺","🇨🇻","🇨🇼","🇨🇽","🇨🇾","🇨🇿","🇩🇪","🇩🇬","🇩🇯","🇩🇰","🇩🇲","🇩🇴","🇩🇿","🇪🇦","🇪🇨","🇪🇪","🇪🇬","🇪🇭","🇪🇷","🇪🇸","🇪🇹","🇪🇺","🇫🇮","🇫🇯","🇫🇰","🇫🇲","🇫🇴","🇫🇷","🇬🇦","🇬🇧","🇬🇩","🇬🇪","🇬🇫","🇬🇬","🇬🇭","🇬🇮","🇬🇱","🇬🇲","🇬🇳","🇬🇵","🇬🇶","🇬🇷","🇬🇸","🇬🇹","🇬🇺","🇬🇼","🇬🇾","🇭🇰","🇭🇲","🇭🇳","🇭🇷","🇭🇹","🇭🇺","🇮🇨","🇮🇩","🇮🇪","🇮🇱","🇮🇲","🇮🇳","🇮🇴","🇮🇶","🇮🇷","🇮🇸","🇮🇹","🇯🇪","🇯🇲","🇯🇴","🇯🇵","🇰🇪","🇰🇬","🇰🇭","🇰🇮","🇰🇲","🇰🇳","🇰🇵","🇰🇷","🇰🇼","🇰🇾","🇰🇿","🇱🇦","🇱🇧","🇱🇨","🇱🇮","🇱🇰","🇱🇷","🇱🇸","🇱🇹","🇱🇺","🇱🇻","🇱🇾","🇲🇦","🇲🇨","🇲🇩","🇲🇪","🇲🇫","🇲🇬","🇲🇭","🇲🇰","🇲🇱","🇲🇲","🇲🇳","🇲🇴","🇲🇵","🇲🇶","🇲🇷","🇲🇸","🇲🇹","🇲🇺","🇲🇻","🇲🇼","🇲🇽","🇲🇾","🇲🇿","🇳🇦","🇳🇨","🇳🇪","🇳🇫","🇳🇬","🇳🇮","🇳🇱","🇳🇴","🇳🇵","🇳🇷","🇳🇺","🇳🇿","🇴🇲","🇵🇦","🇵🇪","🇵🇫","🇵🇬","🇵🇭","🇵🇰","🇵🇱","🇵🇲","🇵🇳","🇵🇷","🇵🇸","🇵🇹","🇵🇼","🇵🇾","🇶🇦","🇷🇪","🇷🇴","🇷🇸","🇷🇺","🇷🇼","🇸🇦","🇸🇧","🇸🇨","🇸🇩","🇸🇪","🇸🇬","🇸🇭","🇸🇮","🇸🇯","🇸🇰","🇸🇱","🇸🇲","🇸🇳","🇸🇴","🇸🇷","🇸🇸","🇸🇹","🇸🇻","🇸🇽","🇸🇾","🇸🇿","🇹🇦","🇹🇨","🇹🇩","🇹🇫","🇹🇬","🇹🇭","🇹🇯","🇹🇰","🇹🇱","🇹🇲","🇹🇳","🇹🇴","🇹🇷","🇹🇹","🇹🇻","🇹🇼","🇹🇿","🇺🇦","🇺🇬","🇺🇲","🇺🇳","🇺🇸","🇺🇾","🇺🇿","🇻🇦","🇻🇨","🇻🇪","🇻🇬","🇻🇮","🇻🇳","🇻🇺","🇼🇫","🇼🇸","🇽🇰","🇾🇪","🇾🇹","🇿🇦","🇿🇲","🇿🇼","🏴󠁧󠁢󠁥󠁮󠁧󠁿","🏴󠁧󠁢󠁳󠁣󠁴󠁿","🏴󠁧󠁢󠁷󠁬󠁳󠁿"],yn=["🐵","🐒","🦍","🦧","🐶","🐕","🦮","🐕‍🦺","🐩","🐺","🦊","🦝","🐱","🐈","🐈‍⬛","🦁","🐯","🐅","🐆","🐴","🐎","🦄","🦓","🦌","🦬","🐮","🐂","🐃","🐄","🐷","🐖","🐗","🐽","🐏","🐑","🐐","🐪","🐫","🦙","🦒","🐘","🦣","🦏","🦛","🐭","🐁","🐀","🐹","🐰","🐇","🐿️","🐿","🦫","🦔","🦇","🐻","🐻‍❄️","🐻‍❄","🐨","🐼","🦥","🦦","🦨","🦘","🦡","🐾","🦃","🐔","🐓","🐣","🐤","🐥","🐦","🐧","🕊️","🕊","🦅","🦆","🦢","🦉","🦤","🪶","🦩","🦚","🦜","🐸","🐊","🐢","🦎","🐍","🐲","🐉","🦕","🦖","🐳","🐋","🐬","🦭","🐟","🐠","🐡","🦈","🐙","🐚","🐌","🦋","🐛","🐜","🐝","🪲","🐞","🦗","🪳","🕷️","🕷","🕸️","🕸","🦂","🦟","🪰","🪱","🦠","💐","🌸","💮","🏵️","🏵","🌹","🥀","🌺","🌻","🌼","🌷","🌱","🪴","🌲","🌳","🌴","🌵","🌾","🌿","☘️","☘","🍀","🍁","🍂","🍃"],vn=["🍇","🍈","🍉","🍊","🍋","🍌","🍍","🥭","🍎","🍏","🍐","🍑","🍒","🍓","🫐","🥝","🍅","🫒","🥥","🥑","🍆","🥔","🥕","🌽","🌶️","🌶","🫑","🥒","🥬","🥦","🧄","🧅","🍄","🥜","🌰","🍞","🥐","🥖","🫓","🥨","🥯","🥞","🧇","🧀","🍖","🍗","🥩","🥓","🍔","🍟","🍕","🌭","🥪","🌮","🌯","🫔","🥙","🧆","🥚","🍳","🥘","🍲","🫕","🥣","🥗","🍿","🧈","🧂","🥫","🍱","🍘","🍙","🍚","🍛","🍜","🍝","🍠","🍢","🍣","🍤","🍥","🥮","🍡","🥟","🥠","🥡","🦀","🦞","🦐","🦑","🦪","🍦","🍧","🍨","🍩","🍪","🎂","🍰","🧁","🥧","🍫","🍬","🍭","🍮","🍯","🍼","🥛","☕","🫖","🍵","🍶","🍾","🍷","🍸","🍹","🍺","🍻","🥂","🥃","🥤","🧋","🧃","🧉","🧊","🥢","🍽️","🍽","🍴","🥄","🔪","🏺"],z=x.createKeysLocalStorageLRUCache("EMOJI_PICKER",20),re=[{title:"Smileys & People",data:fn,icon:b.Laugh},{title:"Animals & Nature",data:yn,icon:l.Animal},{title:"Food & Drink",data:vn,icon:l.Food},{title:"Activity",data:bn,icon:l.Activity},{title:"Travel & Places",data:pn,icon:l.Travel},{title:"Object",data:xn,icon:l.Object},{title:"Symbol",data:_n,icon:l.Symbol},{title:"Flags",data:wn,icon:l.Flag}],kn=["😀","😃","😄","😁","😆","😅","😂","🤣"];function Cn({onSelectEmoji:e,children:t}){const[i,n]=g.useState([]),{t:o}=x.useLocale(),r=g.useMemo(()=>i.length?[{title:"Frequently used",icon:b.Clock3,data:i},...re]:re,[i]),s=g.useCallback(c=>{z.put(c),n(z.get()),e&&e(c)},[e]);return g.useEffect(()=>{z.syncFromStorage();const c=z.get();c!=null&&c.length||kn.forEach(h=>{z.put(h)});const u=z.get();n(u)},[]),a.jsxs(l.Popover,{children:[a.jsx(l.PopoverTrigger,{asChild:!0,children:t}),a.jsx(l.PopoverContent,{hideWhenDetached:!0,className:"richtext-w-full richtext-h-full richtext-p-2",align:"start",side:"bottom",children:a.jsxs(l.Tabs,{defaultValue:"Frequently used",children:[a.jsx(l.TabsList,{className:"richtext-flex richtext-items-center richtext-gap-[4px]",children:r.map(c=>a.jsx(l.TabsTrigger,{value:c.title,className:"!richtext-p-[6px] richtext-bg-accent hover:richtext-text-accent-foreground",children:c.icon&&a.jsx(c.icon,{size:16})},`emoji-picker-title-${c.title}`))}),r.map(c=>a.jsxs(l.TabsContent,{value:c.title,children:[a.jsx("p",{className:"richtext-mb-[6px] richtext-font-semibold",children:o(c.title)}),a.jsx("div",{className:"richtext-max-h-[280px] richtext-overflow-y-auto",children:a.jsx("div",{className:"richtext-grid richtext-grid-cols-8 richtext-gap-1 ",children:(c.data||[]).map(u=>a.jsx("div",{onClick:()=>s(u),className:"richtext-text-center richtext-cursor-pointer",children:u},`emoji-picker-${u}`))})})]},`emoji-picker-content-${c.title}`))]})})]})}function jn({editor:e,icon:t,...i}){const n=g.useCallback(o=>{const{selection:r}=e.state,{$anchor:s}=r;return e.chain().insertContentAt(s.pos,o).run()},[e]);return a.jsx(Cn,{onSelectEmoji:n,children:a.jsx(l.ActionButton,{tooltip:i==null?void 0:i.tooltip,icon:t})})}const An=200,Tn=new b.PluginKey("emoji"),Sn=m.Node.create({name:"emoji",content:"text*",priority:An,addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),HTMLAttributes:{},suggestion:{char:":",pluginKey:Tn,command:({editor:t,range:i,props:n})=>{t.chain().focus().insertContentAt(i,`${n.emoji} `).run()}},button:({editor:t,t:i})=>({component:jn,componentProps:{editor:t,action:()=>{},isActive:()=>!1,disabled:!1,icon:"EmojiIcon",tooltip:i("editor.emoji.tooltip")}})}},addCommands(){return{setEmoji:e=>({commands:t})=>t.insertContent(`${e.emoji} `)}},addProseMirrorPlugins(){return[m.Suggestion({editor:this.editor,...this.options.suggestion})]}}).configure({suggestion:{items:({query:e})=>gn(e),render:()=>{let e,t,i;return{onStart:n=>{i=n.editor.isEditable,i&&(e=new m.ReactRenderer(fe,{props:n,editor:n.editor}),t=b.tippy("body",{getReferenceClientRect:n.clientRect,appendTo:()=>document.body,content:e.element,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start"}))},onUpdate(n){i&&(e.updateProps(n),t[0].setProps({getReferenceClientRect:n.clientRect}))},onKeyDown(n){var o;if(i)return n.event.key==="Escape"?(t[0].hide(),!0):(o=e.ref)==null?void 0:o.onKeyDown(n)},onExit(){i&&(t[0].destroy(),e.destroy())}}}}});function Ln({node:e}){const t=l.useTheme(),{text:i}=e.attrs,n=g.useMemo(()=>{const s="rgb(254, 242, 237)";return t==="dark"?x.convertColorToRGBA(s,.75):s},[t]),o=g.useMemo(()=>{try{return xe.renderToString(`${i}`)}catch{return i}},[i]),r=g.useMemo(()=>i.trim()?a.jsx("span",{contentEditable:!1,dangerouslySetInnerHTML:{__html:o}}):a.jsx("span",{contentEditable:!1,children:"Not enter a formula"}),[i,o]);return a.jsx(m.NodeViewWrapper,{className:"render-wrapper",style:{backgroundColor:n},children:a.jsx("div",{className:"richtext-flex richtext-px-[4px] richtext-py-4 richtext-text-[1em] richtext-text-[#000] richtext-cursor-pointer richtext-justify-center",children:r})})}function Nn({editor:e,...t}){const{t:i}=x.useLocale(),n=l.useAttributes(e,J.name,{text:"",defaultShowPicker:!1}),{text:o,defaultShowPicker:r}=n,s=g.useRef(null),c=g.useCallback(()=>{e.chain().focus().setKatex({text:s.current.value}).run()},[e]);return g.useEffect(()=>{r&&e.chain().updateAttributes(J.name,{defaultShowPicker:!1}).focus().run()},[e,r]),g.useEffect(()=>{setTimeout(()=>{var u;return(u=s.current)==null?void 0:u.focus()},200)},[]),a.jsxs(l.Popover,{children:[a.jsx(l.PopoverTrigger,{asChild:!0,children:a.jsx(l.ActionButton,{tooltip:t==null?void 0:t.tooltip,icon:t==null?void 0:t.icon})}),a.jsxs(l.PopoverContent,{hideWhenDetached:!0,className:"richtext-w-full richtext-h-full richtext-p-2",align:"start",side:"bottom",children:[a.jsx(l.Label,{className:"richtext-mb-[6px]",children:i("editor.formula.dialog.text")}),a.jsx("div",{className:"richtext-flex richtext-w-full richtext-max-w-sm richtext-items-center richtext-gap-1.5 richtext-mb-[16px]",children:a.jsx("div",{className:"richtext-relative richtext-w-full richtext-max-w-sm",children:a.jsx(l.Textarea,{ref:s,autoFocus:!0,required:!0,rows:3,defaultValue:o,className:"richtext-w-full",placeholder:"Text"})})}),a.jsxs("div",{className:"richtext-flex richtext-items-center richtext-justify-between richtext-gap-[6px]",children:[a.jsx(l.Button,{onClick:c,className:"richtext-flex-1",children:"Submit"}),a.jsx("a",{href:"https://katex.org/",target:"_blank",rel:"noreferrer noopener",children:a.jsx(b.CircleHelp,{size:16})})]})]})]})}function Mn(e){return t=>t.getAttribute(e)}const J=m.Node.create({name:"katex",group:"block",selectable:!0,atom:!0,draggable:!0,addOptions(){return{HTMLAttributes:{class:"katex"},button:({editor:e,t})=>({component:Nn,componentProps:{editor:e,action:()=>{},isActive:()=>!1,disabled:!1,icon:"KatexIcon",tooltip:t("editor.katex.tooltip")}})}},addAttributes(){return{text:{default:"",parseHTML:Mn("text")},defaultShowPicker:{default:!1}}},parseHTML(){return[{tag:"span.katex"}]},renderHTML({HTMLAttributes:e}){return["span",m.mergeAttributes(this.options&&this.options.HTMLAttributes||{},e)]},addCommands(){return{setKatex:e=>({commands:t})=>t.insertContent({type:this.name,attrs:e})}},addInputRules(){return[m.nodeInputRule({find:/^\$katex\$$/,type:this.type,getAttributes:()=>({defaultShowPicker:!0})})]},addNodeView(){return m.ReactNodeViewRenderer(Ln)}}),In=m.Extension.create({name:"exportPdf",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button:({editor:t,t:i})=>({component:l.ActionButton,componentProps:{action:()=>{x.printEditorContent(t.view)},icon:"ExportPdf",tooltip:i("editor.exportPdf.tooltip"),isActive:()=>!1,disabled:!1}})}}});function En(e,t){const i=atob(e.split(",")[1]),n=Array.from({length:i.length});for(let r=0;r<i.length;r++)n[r]=i.charCodeAt(r);const o=new Uint8Array(n);return new Blob([o],{type:t})}function Pn(e,t){return new File([e],t,{type:e.type})}function Rn(e){const[t,i]=g.useState(!1),[n,o]=g.useState(),r=g.useRef();function s(){r.current.click()}function c(f){const p=f.target.files[0];o(p),p&&h()}async function u(f){var L;const _=new DOMParser().parseFromString(f,"text/html"),w=_.querySelectorAll("img");if(!w.length)return _.body.innerHTML;if(x.hasExtension(e.editor,"image")){const T=(L=e.editor.extensionManager.extensions.find(y=>y.name==="importWord"))==null?void 0:L.options;if(T&&typeof T.upload=="function"){const y=[];for(const k of w){const E=k.getAttribute("src"),C=En(E,"image/jpeg"),N=Pn(C,"image.jpeg");y.push(N)}const v=await T.upload(y);for(let k=0;k<w.length;k++)w[k].setAttribute("src",v[k].src);return _.body.innerHTML}else return _.body.innerHTML}else return _.body.innerHTML}async function h(){if(e.convert){const f=await e.convert(n);d(f)}else{const f=new FormData,p=JSON.stringify({collaboration_features:{comments:!0,user_id:"e3",track_changes:!0},formatting:{resets:"none",defaults:"inline",styles:"inline",comments:"basic"}});f.append("config",p),f.append("file",n),i(!0),fetch("https://docx-converter.cke-cs.com/v2/convert/docx-html",{method:"POST",body:f}).then(_=>_.json()).then(async _=>{d(_.html)}).catch(_=>{console.error("Error:",_),i(!1)})}}async function d(f){const p=await u(f);e.editor.chain().setContent(p,!0).run(),i(!1)}return a.jsxs("div",{children:[a.jsx(l.ActionButton,{loading:t,disabled:e==null?void 0:e.disabled,icon:e==null?void 0:e.icon,tooltip:e==null?void 0:e.tooltip,action:s}),a.jsx("input",{type:"file",accept:".docx",ref:r,style:{display:"none"},onChange:c})]})}const Bn=m.Extension.create({name:"importWord",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),upload:void 0,convert:void 0,button:({editor:t,extension:i,t:n})=>{const{convert:o}=i.options;return{component:Rn,componentProps:{convert:o,action:()=>t.commands.setHorizontalRule(),disabled:!t.can().setHorizontalRule(),icon:"Word",shortcutKeys:["alt","mod","S"],tooltip:n("editor.importWrod.tooltip")}}}}}}),Dn={...b.defaultNodes,hardBreak:b.defaultNodes.hard_break,codeBlock:b.defaultNodes.code_block,orderedList:b.defaultNodes.ordered_list,listItem:b.defaultNodes.list_item,bulletList:b.defaultNodes.bullet_list,horizontalRule:b.defaultNodes.horizontal_rule,image(e,t){e.renderInline(t),e.closeBlock(t)}},Hn=new b.DocxSerializer(Dn,b.defaultMarks),On=m.Extension.create({name:"exportWord",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),button:({editor:t,t:i})=>({component:l.ActionButton,componentProps:{icon:"ExportWord",action:()=>{t==null||t.commands.exportToWord()},tooltip:i("editor.exportWord.tooltip"),isActive:()=>!1,disabled:!1}})}},addCommands(){return{exportToWord:()=>({editor:e})=>{const t={getImageBuffer:async n=>{const r=await(await fetch(n)).arrayBuffer();return new Uint8Array(r)}},i=Hn.serialize(e.state.doc,t);return be.Packer.toBlob(i).then(n=>b.FileSaver_minExports.saveAs(new Blob([n]),"document.docx")),!0}}}}),zn="_toc_aag8a_1",Fn="_visible_aag8a_7",qn="_list_aag8a_11",Un="_item_aag8a_16",W={toc:zn,visible:Fn,list:qn,item:Un,"item--3":"_item--3_aag8a_19","item--4":"_item--4_aag8a_22","item--5":"_item--5_aag8a_25","item--6":"_item--6_aag8a_28"};function $n(e){const t=[],i=[t];return e.forEach(n=>{let o=-1,r=i[n.level+o];for(;!r;)o-=1,r=i[n.level+o];r.push({...n,children:i[n.level]=[]})}),t}function Kn({editor:e}){const t=e.isEditable,[i,n]=g.useState([]),{t:o}=x.useLocale(),r=g.useCallback(()=>{const s=[],c=e.state.tr;e.state.doc.descendants((u,h)=>{if(u.type.name==="heading"){const d=`heading-${s.length+1}`;u.attrs.id!==d&&c.setNodeMarkup(h,void 0,{...u.attrs,id:d}),s.push({level:u.attrs.level,text:u.textContent,id:d})}}),c.setMeta("addToHistory",!1),c.setMeta("preventUpdate",!0),e.view.dispatch(c),n(s),e.eventEmitter&&e.eventEmitter.emit("TableOfContents",$n(s))},[e]);return g.useEffect(()=>{if(e){if(!e.options.editable){r();return}return e.on("update",r),()=>{e.off("update",r)}}},[e,r]),g.useEffect(()=>{r()},[]),a.jsx(m.NodeViewWrapper,{className:b.clsx("tableOfContent",W.toc,t&&W.visible),children:t?a.jsxs("div",{style:{position:"relative"},children:[a.jsx("p",{className:"richtext-mb-[8px] text-[20px] richtext-font-semibold",children:o("editor.table_of_content")}),a.jsx("ul",{className:W.list,children:i.map((s,c)=>a.jsx("li",{className:W.item,style:{paddingLeft:`${s.level-2}rem`},children:a.jsx("a",{href:`#${s.id}`,children:s.text})},`table-of-content-${c}`))})]}):null})}function Vn(e,...t){const[i,n]=g.useState(!1);return g.useEffect(()=>{const o=()=>{n(e.isActive.apply(e,t))};return e.on("selectionUpdate",o),e.on("transaction",o),()=>{e.off("selectionUpdate",o),e.off("transaction",o)}},[e,t,n]),i}function Gn({editor:e,icon:t,tooltip:i}){const n=Vn(e,_e.name),o=g.useCallback(()=>{if(n){e.chain().focus().removeTableOfContents().run();return}e.chain().focus().setTableOfContents().run()},[e,n]);return a.jsx(l.ActionButton,{action:o,isActive:()=>n||!1,icon:t,tooltip:i})}const _e=m.Node.create({name:"tableOfContents",group:"block",atom:!0,addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),onHasOneBeforeInsert:()=>{},resizable:!0,lastColumnResizable:!0,allowTableNodeSelection:!1,button:({editor:t,t:i})=>({component:Gn,componentProps:{disabled:!1,icon:"BookMarked",tooltip:i("editor.table.tooltip"),editor:t}})}},parseHTML(){return[{tag:"toc"}]},renderHTML({HTMLAttributes:e}){return["toc",m.mergeAttributes(e)]},addNodeView(){return m.ReactNodeViewRenderer(Kn)},addCommands(){return{setTableOfContents:()=>({commands:e,editor:t,view:i})=>{if(x.findNode(t,this.name).length){this.options.onHasOneBeforeInsert();return}const o=i.props.state.doc.content.firstChild;if(x.isTitleNode(o)){const r=(o.firstChild&&o.firstChild.nodeSize||0)+1;return e.insertContentAt(r,{type:this.name})}return e.insertContent({type:this.name})},removeTableOfContents:()=>({state:e,dispatch:t})=>{const{tr:i}=e,n=e.schema.nodes.tableOfContents;return e.doc.descendants((o,r)=>{if(o.type===n){const s=r,c=r+o.nodeSize;i.delete(s,c)}}),i.docChanged?(t(i),!0):!1}}},addGlobalAttributes(){return[{types:["heading"],attributes:{id:{default:null}}}]}});exports.BaseKit=ct;exports.Blockquote=We;exports.Bold=ye;exports.BulletList=$e;exports.Clear=Ke;exports.Code=je;exports.CodeBlock=Me;exports.Color=qe;exports.Column=he;exports.ColumnActionButton=it;exports.Emoji=Sn;exports.ExportPdf=In;exports.ExportWord=On;exports.FontFamily=Ee;exports.FontSize=Oe;exports.FormatPainter=zt;exports.Heading=Re;exports.Highlight=Ue;exports.HighlightActionButton=se;exports.History=et;exports.HorizontalRule=Ye;exports.Iframe=sn;exports.Image=yt;exports.ImageUpload=Lt;exports.ImportWord=Bn;exports.Indent=ht;exports.Italic=ve;exports.Katex=J;exports.LineHeight=ft;exports.Link=Xe;exports.LinkEditBlock=ce;exports.LinkViewBlock=we;exports.MoreMark=ut;exports.MultiColumn=ue;exports.OrderedList=Ve;exports.SearchAndReplace=ge;exports.SlashCommand=pt;exports.Strike=Ce;exports.SubAndSuperScript=lt;exports.Table=Ot;exports.TableOfContents=_e;exports.TaskList=Ge;exports.TextAlign=De;exports.Underline=ke;exports.Video=Mt;exports.VideoUpload=Et;
package/lib/index.d.cts CHANGED
@@ -1709,22 +1709,6 @@ declare module '@tiptap/core' {
1709
1709
  }
1710
1710
 
1711
1711
 
1712
- declare module '@tiptap/core' {
1713
- interface Commands<ReturnType> {
1714
- imageResize: {
1715
- /**
1716
- * Add an image
1717
- */
1718
- setImage: (options: Partial<SetImageAttrsOptions>) => ReturnType;
1719
- /**
1720
- * Update an image
1721
- */
1722
- updateImage: (options: Partial<SetImageAttrsOptions>) => ReturnType;
1723
- };
1724
- }
1725
- }
1726
-
1727
-
1728
1712
  declare module '@tiptap/core' {
1729
1713
  interface Commands<ReturnType> {
1730
1714
  indent: {
@@ -1753,8 +1737,24 @@ declare module '@tiptap/core' {
1753
1737
 
1754
1738
  declare module '@tiptap/core' {
1755
1739
  interface Commands<ReturnType> {
1756
- imageUpload: {
1757
- setImageUpload: () => ReturnType;
1740
+ imageResize: {
1741
+ /**
1742
+ * Add an image
1743
+ */
1744
+ setImage: (options: Partial<SetImageAttrsOptions>) => ReturnType;
1745
+ /**
1746
+ * Update an image
1747
+ */
1748
+ updateImage: (options: Partial<SetImageAttrsOptions>) => ReturnType;
1749
+ };
1750
+ }
1751
+ }
1752
+
1753
+
1754
+ declare module '@tiptap/core' {
1755
+ interface Commands<ReturnType> {
1756
+ videoUpload: {
1757
+ setVideoUpload: () => ReturnType;
1758
1758
  };
1759
1759
  }
1760
1760
  }
@@ -1770,6 +1770,15 @@ declare module '@tiptap/core' {
1770
1770
  }
1771
1771
 
1772
1772
 
1773
+ declare module '@tiptap/core' {
1774
+ interface Commands<ReturnType> {
1775
+ imageUpload: {
1776
+ setImageUpload: () => ReturnType;
1777
+ };
1778
+ }
1779
+ }
1780
+
1781
+
1773
1782
  declare module '@tiptap/core' {
1774
1783
  interface Commands<ReturnType> {
1775
1784
  painter: {
@@ -1810,13 +1819,11 @@ declare module '@tiptap/core' {
1810
1819
 
1811
1820
  declare module '@tiptap/core' {
1812
1821
  interface Commands<ReturnType> {
1813
- search: {
1814
- setSearchTerm: (searchTerm: string) => ReturnType;
1815
- setReplaceTerm: (replaceTerm: string) => ReturnType;
1816
- replace: () => ReturnType;
1817
- replaceAll: () => ReturnType;
1818
- goToPrevSearchResult: () => void;
1819
- goToNextSearchResult: () => void;
1822
+ emoji: {
1823
+ setEmoji: (emoji: {
1824
+ name: string;
1825
+ emoji: string;
1826
+ }) => ReturnType;
1820
1827
  };
1821
1828
  }
1822
1829
  }
@@ -1824,8 +1831,13 @@ declare module '@tiptap/core' {
1824
1831
 
1825
1832
  declare module '@tiptap/core' {
1826
1833
  interface Commands<ReturnType> {
1827
- videoUpload: {
1828
- setVideoUpload: () => ReturnType;
1834
+ search: {
1835
+ setSearchTerm: (searchTerm: string) => ReturnType;
1836
+ setReplaceTerm: (replaceTerm: string) => ReturnType;
1837
+ replace: () => ReturnType;
1838
+ replaceAll: () => ReturnType;
1839
+ goToPrevSearchResult: () => void;
1840
+ goToNextSearchResult: () => void;
1829
1841
  };
1830
1842
  }
1831
1843
  }
@@ -1833,11 +1845,9 @@ declare module '@tiptap/core' {
1833
1845
 
1834
1846
  declare module '@tiptap/core' {
1835
1847
  interface Commands<ReturnType> {
1836
- emoji: {
1837
- setEmoji: (emoji: {
1838
- name: string;
1839
- emoji: string;
1840
- }) => ReturnType;
1848
+ tableOfContents: {
1849
+ setTableOfContents: () => ReturnType;
1850
+ removeTableOfContents: () => ReturnType;
1841
1851
  };
1842
1852
  }
1843
1853
  }
@@ -1859,13 +1869,3 @@ declare module '@tiptap/core' {
1859
1869
  };
1860
1870
  }
1861
1871
  }
1862
-
1863
-
1864
- declare module '@tiptap/core' {
1865
- interface Commands<ReturnType> {
1866
- tableOfContents: {
1867
- setTableOfContents: () => ReturnType;
1868
- removeTableOfContents: () => ReturnType;
1869
- };
1870
- }
1871
- }