bridgerte 0.9.27 → 0.9.28

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.
@@ -1,7 +1,7 @@
1
- "use strict";var jn=Object.defineProperty;var Gn=(e,t,n)=>t in e?jn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ve=(e,t,n)=>Gn(e,typeof t!="symbol"?t+"":t,n);const Oe=require("./bridge.cjs"),se=require("./index-GaS65GL0.cjs"),l=require("lexical"),ie=require("@lexical/rich-text"),W=require("@lexical/code"),te=require("@lexical/list"),U=require("@lexical/table"),Y=require("@lexical/link"),dn=require("@lexical/history"),lt=require("@lexical/html"),ae=require("@lexical/selection"),Fe=require("@lexical/utils"),un=require("./index-DF8OhKI4.cjs"),J=require("./native-spec.cjs"),Z=require("@floating-ui/dom"),Yn=require("@lexical/code-core"),Be=require("./shikiHighlightData-DU78Iupf.cjs");var pe=typeof document<"u"?document.currentScript:null;const Xn=(e,t,n)=>{const r=l.$getRoot();if(r.getChildrenSize()===0){const o=l.$createParagraphNode();r.append(o),o.selectStart();return}if(n){e==null||e.selectEnd(),e||t==null||t.selectStart();return}t==null||t.selectStart(),t||e==null||e.selectEnd()},Jn=e=>l.$isParagraphNode(e)&&e.isEmpty(),gn=(e,t)=>{if(!l.$isParagraphNode(e))return null;const n=e.getChildren(),r=n.length===1?n[0]:null;return t(r)?r??null:null},Qn=(e,t)=>{const n=e.getParent();return gn(n,t)===e?n:null},Zn=(e,t,n,r)=>{const o=r??e,a=o.getPreviousSibling(),s=o.getNextSibling(),i=Jn(n)?n:null,g=i&&a===i?i.getPreviousSibling():a,c=i&&s===i?i.getNextSibling():s;o.remove(),i&&i.remove(),Xn(g,c,t)},er=e=>{const t=l.$getSelection();if(!l.$isNodeSelection(t))return null;const n=t.getNodes(),r=n[0];return n.length===1&&e(r)?r??null:null},tr=e=>e.getKey()==="root"?null:e.getTopLevelElement(),nr=e=>{const t=l.$getSelection();if(!l.$isRangeSelection(t)||!t.isCollapsed())return null;const n=t.anchor,r=n.getNode(),o=tr(r);if(!o||!l.$isElementNode(o))return null;if(l.$isElementNode(r)){const i=r.isEmpty()&&n.offset===0,g=r===o&&n.offset===0,c=r===o&&n.offset===o.getChildrenSize();return i||(e?g:c)?o:null}if(!(r instanceof l.TextNode))return null;const a=e?o.getFirstDescendant():o.getLastDescendant(),s=e?0:r.getTextContentSize();return a===r&&n.offset===s?o:null},rr=(e,t)=>{const n=nr(e),r=e?n==null?void 0:n.getPreviousSibling():n==null?void 0:n.getNextSibling();if(!r||!n)return null;if(t(r))return{blockNode:r,boundaryBlock:n};const o=gn(r,t);return o?{blockNode:o,boundaryBlock:n,wrapperBlock:r}:null},mn=(e,t,n)=>{const r=a=>{if(t())return!1;const s=er(n),i=s?null:rr(a,n),g=s??(i==null?void 0:i.blockNode);if(!g)return!1;const c=s?Qn(g,n):i==null?void 0:i.wrapperBlock;return Zn(g,a,i==null?void 0:i.boundaryBlock,c),!0},o=(a,s)=>{const i=r(s);return i&&a.preventDefault(),i};return[e.registerCommand(l.KEY_BACKSPACE_COMMAND,a=>o(a,!0),l.COMMAND_PRIORITY_HIGH),e.registerCommand(l.KEY_DELETE_COMMAND,a=>o(a,!1),l.COMMAND_PRIORITY_HIGH),e.registerCommand(l.DELETE_CHARACTER_COMMAND,a=>r(a),l.COMMAND_PRIORITY_HIGH)]},or="bridgerte-media",ar=e=>(e==null?void 0:e.getType())===or,sr=(e,t)=>mn(e,t,ar),Et="bridgerte-media",ir="Loading",xt=(e,t)=>`${e}:${t}`,le=e=>typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):void 0,Tt=e=>typeof e=="number"&&Number.isFinite(e)?Math.min(Math.max(e,0),100):void 0,lr=e=>e===20||e===50||e===100,et=e=>lr(e)?e:void 0,tt=e=>e==="center"||e==="right"?e:void 0,cr=e=>e.status==="error"?e.errorMessage??"媒体加载失败":ir,dr=(e,t)=>{e.dataset.statusText=t,e.setAttribute("aria-label",t)},ur=(e,t)=>!t||e.status===void 0||e.status==="success",Ke=(e,t,n)=>{n&&e.setAttribute(t,n)},Nt=(e,t,n)=>{n!==void 0&&e.setAttribute(t,String(n))},St=(e,t)=>{const n=e.getAttribute(t),r=n===null?Number.NaN:Number(n);return le(r)},gr=e=>{const t=e.dataset.displayWidthPercent,n=t===void 0?Number.NaN:Number(t);return et(n)},mr=e=>tt(e.dataset.align),hr=e=>e.querySelector(".bridgerte__media-element")??e.querySelector("img, video");class fe extends l.DecoratorNode{constructor(n,r){super(r);Ve(this,"__payload");this.__payload={...n,assetId:n.assetId??xt(n.mediaType,n.url),width:le(n.width),height:le(n.height),duration:le(n.duration),progress:Tt(n.progress),displayWidthPercent:et(n.displayWidthPercent),align:tt(n.align)},this.__payload.displayWidthPercent===void 0&&delete this.__payload.displayWidthPercent,this.__payload.align===void 0&&delete this.__payload.align}static getType(){return Et}static clone(n){return new fe(n.__payload,n.__key)}createDOM(n){return this.createMediaElement(!0)}updateDOM(n,r){if(n.__payload===this.__payload)return!1;const o=this.createMediaElement(!0);return r.replaceWith(o),!0}exportDOM(n){return{element:this.createMediaElement(!1)}}static importDOM(){return{figure:n=>{const r=n instanceof HTMLElement?n:null;return r!=null&&r.classList.contains("bridgerte__media")?{conversion:br,priority:2}:null},img:()=>({conversion:pr,priority:1}),video:()=>({conversion:fr,priority:1})}}static importJSON(n){return ge(n).updateFromJSON(n)}exportJSON(){return{...super.exportJSON(),...this.__payload,type:Et}}getTextContent(){return this.__payload.title??this.__payload.alt??this.__payload.url}isInline(){return!1}getAsset(){const n=this.__payload,r={id:n.assetId??xt(n.mediaType,n.url),type:n.mediaType,url:n.url,status:n.status,progress:n.progress,poster:n.poster,width:n.width,height:n.height,duration:n.duration,mimeType:n.mimeType,size:n.size,errorMessage:n.errorMessage,external:!0};return n.displayWidthPercent!==void 0&&(r.displayWidthPercent=n.displayWidthPercent),n.align!==void 0&&(r.align=n.align),r}updatePayload(n){const r=this.getWritable();r.__payload={...r.__payload,...n,width:le(n.width??r.__payload.width),height:le(n.height??r.__payload.height),duration:le(n.duration??r.__payload.duration),progress:Tt(n.progress??r.__payload.progress),displayWidthPercent:Object.prototype.hasOwnProperty.call(n,"displayWidthPercent")?et(n.displayWidthPercent):r.__payload.displayWidthPercent,align:Object.prototype.hasOwnProperty.call(n,"align")?tt(n.align):r.__payload.align},r.__payload.displayWidthPercent===void 0&&delete r.__payload.displayWidthPercent,r.__payload.align===void 0&&delete r.__payload.align}createMediaElement(n){const r=this.__payload,o=document.createElement("figure"),a=r.mediaType==="image"?document.createElement("img"):document.createElement("video");let s=null;const i=()=>{o.dataset.loadState="loaded",s==null||s.remove(),s=null};o.className=`bridgerte__media bridgerte__media--${r.mediaType}`,o.contentEditable="false",o.dataset.assetId=r.assetId,o.dataset.mediaType=r.mediaType,o.dataset.status=r.status??"success",n&&(o.dataset.loadState=r.status==="error"?"error":"loading"),r.progress!==void 0&&(o.dataset.progress=String(r.progress)),r.align!==void 0&&(o.dataset.align=r.align),r.displayWidthPercent!==void 0&&(o.dataset.displayWidthPercent=String(r.displayWidthPercent),o.style.setProperty("--bridgerte-media-display-width",`${r.displayWidthPercent}%`)),r.width!==void 0&&r.height!==void 0&&o.style.setProperty("--bridgerte-media-aspect-ratio",`${r.width} / ${r.height}`),a.className="bridgerte__media-element",n&&(a.addEventListener(r.mediaType==="image"?"load":"loadedmetadata",i,{once:!0}),a.addEventListener("error",()=>{o.dataset.loadState="error"},{once:!0}));const g=ur(r,n);return r.mediaType==="image"?(g&&a.setAttribute("src",r.url),a.setAttribute("loading","lazy"),Ke(a,"alt",r.alt??r.title)):(g&&a.setAttribute("src",r.url),a.setAttribute("controls","true"),a.setAttribute("preload","metadata"),Ke(a,"poster",r.poster)),Ke(a,"title",r.title),Nt(a,"width",r.width),Nt(a,"height",r.height),n&&(s=document.createElement("div"),s.className="bridgerte__media-placeholder",s.setAttribute("aria-hidden","true"),dr(s,cr(r)),o.append(s)),o.append(a),o}}const pr=e=>{const t=e instanceof HTMLImageElement?e:null;return{node:t!=null&&t.src?ge({mediaType:"image",url:t.src,alt:t.alt,title:t.title,width:t.width,height:t.height,status:"success"}):null}},fr=e=>{const t=e instanceof HTMLVideoElement?e:null;return{node:t!=null&&t.src?ge({mediaType:"video",url:t.src,poster:t.poster,title:t.title,width:t.videoWidth||t.width,height:t.videoHeight||t.height,status:"success"}):null}},br=e=>{const t=e instanceof HTMLElement?e:null;if(!(t!=null&&t.classList.contains("bridgerte__media")))return{node:null};const n=hr(t);return n!=null&&n.src?{node:ge({mediaType:n instanceof HTMLVideoElement?"video":"image",url:n.src,alt:n instanceof HTMLImageElement&&n.alt||void 0,poster:n instanceof HTMLVideoElement&&n.poster||void 0,title:n.title||void 0,width:St(n,"width"),height:St(n,"height"),displayWidthPercent:gr(t),align:mr(t),assetId:t.dataset.assetId,status:"success"})}:{node:null}},ge=e=>l.$applyNodeReplacement(new fe(e)),yr=e=>ge({mediaType:"image",url:e.url,alt:e.alt,title:e.title,width:e.width,height:e.height,displayWidthPercent:e.displayWidthPercent,align:e.align,assetId:e.assetId,status:"success"}),vr=e=>ge({mediaType:"video",url:e.url,poster:e.poster,title:e.title,width:e.width,height:e.height,displayWidthPercent:e.displayWidthPercent,align:e.align,assetId:e.assetId,status:"success"}),hn=e=>e instanceof fe,ke=e=>{const t=n=>{if(hn(n)&&n.getAsset().id===e)return n;if(!l.$isElementNode(n))return null;for(const r of n.getChildren()){const o=t(r);if(o)return o}return null};return t(l.$getRoot())},Cr=".bridgerte__table-cell",wr="75px",_r="1px solid black",kr="top",Mr="start",Er=new Set(["#f2f3f5","rgb(242,243,245)"]),pn=e=>e.trim().toLowerCase().replace(/\s+/g," "),xr=e=>pn(e).replace(/\s*,\s*/g,","),Ne=(e,t,n)=>{pn(e.getPropertyValue(t))===n&&e.removeProperty(t)},Tr=(e,t)=>{const n=xr(t.getPropertyValue("background-color"));(e.classList.contains("bridgerte__table-cell--header")||e.tagName.toLowerCase()==="th")&&Er.has(n)&&t.removeProperty("background-color")},Nr=e=>{var t;((t=e.getAttribute("style"))==null?void 0:t.trim())===""&&e.removeAttribute("style")},fn=e=>{if(!e||!e.includes("bridgerte__table-cell"))return e;const t=document.createElement("template");return t.innerHTML=e,t.content.querySelectorAll(Cr).forEach(n=>{const{style:r}=n;Ne(r,"border",_r),Ne(r,"vertical-align",kr),Ne(r,"text-align",Mr),Ne(r,"width",wr),Tr(n,r),Nr(n)}),t.innerHTML},bn={root:{type:"root",version:1,children:[]}};function nt(e={}){return{html:e.html??"",json:e.json??bn,plainText:e.plainText??"",assets:e.assets??[],version:e.version??se.BRIDGERTE_CONTENT_VERSION}}const Sr=e=>e.toJSON(),Rr=e=>{var t;return((t=e.root.children)==null?void 0:t.length)===0},Lr=e=>{var t;return e.nodeType===Node.TEXT_NODE?((t=e.textContent)==null?void 0:t.trim())==="":e.nodeType===Node.ELEMENT_NODE&&e.tagName==="BR"},Ir=e=>{const t=Array.from(e.childNodes).filter(a=>!Lr(a)),n=t.length===1?t[0]:null;if(!(n instanceof Element))return null;const r=n.tagName==="IMG"||n.tagName==="VIDEO",o=n.tagName==="FIGURE"&&n.classList.contains("bridgerte__media");return r||o?n:null},Pr=e=>{e.body.querySelectorAll("p").forEach(t=>{const n=Ir(t);n&&t.replaceWith(n)})},$r=e=>e.read(()=>{const t=new Map,n=r=>{l.$isElementNode(r)&&r.getChildren().forEach(o=>{if(hn(o)){const a=o.getAsset();t.set(a.id,a);return}l.$isElementNode(o)&&n(o)})};return n(l.$getRoot()),[...t.values()]}),yn=(e,t)=>{const n=fn(t.read(()=>lt.$generateHtmlFromNodes(t))),r=e.read(()=>l.$getRoot().getTextContent()),o=$r(e);return{html:n,json:Sr(e),plainText:r,assets:o,version:se.BRIDGERTE_CONTENT_VERSION}},Ar=(e,t)=>{const n=nt(t);return vn(e,n),yn(e.getEditorState(),e)},vn=(e,t)=>{if(t.json!==bn&&!Rr(t.json)){const o=t.json;e.setEditorState(e.parseEditorState(o));return}if(!t.html){e.update(()=>{const o=l.$getRoot();o.clear(),o.append(l.$createParagraphNode())},{discrete:!0});return}const r=new DOMParser().parseFromString(fn(t.html),"text/html");Pr(r),e.update(()=>{const o=l.$getRoot(),a=lt.$generateNodesFromDOM(e,r);o.clear(),o.append(...a)},{discrete:!0})},Br="bridgerte-divider",Dr=e=>(e==null?void 0:e.getType())===Br,Hr=(e,t)=>mn(e,t,Dr);class Me extends l.DecoratorNode{static getType(){return"bridgerte-divider"}static clone(t){return new Me(t.__key)}constructor(t){super(t)}createDOM(t){const n=document.createElement("hr");return n.className="bridgerte__divider",n}updateDOM(){return!1}exportDOM(t){const n=document.createElement("hr");return n.className="bridgerte__divider",{element:n}}static importDOM(){return{hr:()=>({conversion:Or,priority:0})}}static importJSON(t){return ct().updateFromJSON(t)}exportJSON(){return{...super.exportJSON(),type:Me.getType()}}getTextContent(){return`
2
- `}isInline(){return!1}}const Or=e=>({node:ct()}),ct=()=>l.$applyNodeReplacement(new Me),Rt="bridgerte-mention",dt="mention",Cn=e=>e.label.startsWith("@")?e.label:`@${e.label}`,Fr=e=>{const t=document.createElement("span");return t.className="bridgerte__mention",t.dataset.type=dt,t.dataset.id=e.id,t.dataset.value=e.value,t.contentEditable="false",t.textContent=Cn(e),e.description&&(t.dataset.description=e.description),t};class xe extends l.TextNode{constructor(n,r=Cn(n),o){super(r,o);Ve(this,"__item");this.__item=n}static getType(){return Rt}static clone(n){return new xe(n.__item,n.__text,n.__key)}createDOM(n){const r=super.createDOM(n);return r.className="bridgerte__mention",r.dataset.type=dt,r.dataset.id=this.__item.id,r.dataset.value=this.__item.value,r.contentEditable="false",this.__item.description&&(r.dataset.description=this.__item.description),r}updateDOM(n,r,o){return super.updateDOM(n,r,o)?!0:(r.dataset.id=this.__item.id,r.dataset.value=this.__item.value,this.__item.description?r.dataset.description=this.__item.description:delete r.dataset.description,!1)}exportDOM(n){return{element:Fr(this.__item)}}static importDOM(){return{span:()=>({conversion:zr,priority:2})}}static importJSON(n){return ut(n).updateFromJSON(n)}exportJSON(){return{...super.exportJSON(),...this.__item,type:Rt}}isTextEntity(){return!0}isToken(){return!0}getMentionItem(){return this.__item}}const zr=e=>{var a;const t=e instanceof HTMLElement?e:null;if(!t||t.dataset.type!==dt)return{node:null};const n=((a=t.textContent)==null?void 0:a.replace(/^@/,""))||t.dataset.value||"",r=t.dataset.id||t.dataset.value||n,o=t.dataset.value||r;return!n||!r||!o?{node:null}:{node:ut({id:r,label:n,value:o,description:t.dataset.description})}},ut=e=>l.$applyNodeReplacement(new xe(e).setMode("token")),Lt=e=>e instanceof xe,Wr="请输入内容",qr=()=>{const t=l.$getRoot().getChildren();if(t.length===0)return!0;if(t.length>1)return!1;const n=t[0];return l.$isParagraphNode(n)&&n.getChildrenSize()===0},Ur=({editor:e,contentElement:t})=>{const n=e.getEditorState().read(qr);t.dataset.empty=String(n)},Vr=({contentElement:e,placeholderElement:t})=>{const n=window.getComputedStyle(e).padding,r=e.style.padding,o=n||r;o&&(t.style.padding=o)},Kr=({editor:e,contentElement:t,isReadonly:n})=>{const r=o=>{n()||t.dataset.empty!=="true"||o.button===0&&(o.preventDefault(),e.focus(()=>{e.update(()=>{l.$getRoot().selectStart()})}))};return t.addEventListener("pointerdown",r),()=>{t.removeEventListener("pointerdown",r)}},jr=[{command:"format.bold",format:"bold"},{command:"format.italic",format:"italic"},{command:"format.underline",format:"underline"},{command:"format.strike",format:"strikethrough"},{command:"format.inlineCode",format:"code"},{command:"format.superscript",format:"superscript"},{command:"format.subscript",format:"subscript"}],Gr=[{command:"format.color",property:"color"},{command:"format.backgroundColor",property:"background-color"},{command:"format.fontSize",property:"font-size"},{command:"format.fontFamily",property:"font-family"},{command:"format.lineHeight",property:"line-height"}],Yr=[{command:"list.ordered",listType:"ordered"},{command:"list.unordered",listType:"unordered"},{command:"list.todo",listType:"todo"}],Xr=["media.pickImage","media.pickVideo"],wn=()=>{const e=l.$getSelection();if(!l.$isRangeSelection(e))return null;const t=e.anchor.getNode();return t.getKey()==="root"?t:t.getTopLevelElementOrThrow()},Jr=()=>{const e=wn();if(!e)return null;if(ie.$isHeadingNode(e)){const t=Number(e.getTag().replace("h",""));return{command:"block.heading",value:Number.isNaN(t)?void 0:t}}if(ie.$isQuoteNode(e))return{command:"block.quote"};if(W.$isCodeNode(e)){const t=e.getLatest();return{command:"block.code",value:W.$isCodeNode(t)?t.getLanguage()??"":""}}return{command:"block.paragraph"}},Qr=()=>{const e=wn();if(!e||!("getFormatType"in e))return;const t=e.getFormatType();return t===""?void 0:t},Zr=()=>{const e=l.$getSelection();if(!l.$isRangeSelection(e))return null;const t=e.anchor.getNode(),n=te.$isListNode(t)?t:Fe.$getNearestNodeOfType(t,te.ListNode);return n?n.getListType()==="check"?"todo":n.getTag()==="ol"?"ordered":"unordered":null},eo=e=>{const t=l.$getSelection();if(!l.$isRangeSelection(t))return;const n=ae.$getSelectionStyleValueForProperty(t,e);return n===""?void 0:n},to=()=>{const e=l.$getSelection();if(!l.$isRangeSelection(e))return!1;const t=e.anchor.getNode(),n=t.getParent();return Y.$isLinkNode(t)||Y.$isLinkNode(n)},no=e=>{const t=l.$getSelection(),n=l.$isRangeSelection(t),r=Jr(),o=Zr(),a=Qr(),s=to(),i=e.readonly||!n,g=jr.map(k=>({command:k.command,active:n&&t.hasFormat(k.format),disabled:i})),c=Gr.map(k=>{const P=eo(k.property);return{command:k.command,active:P!==void 0,disabled:i,value:P}}),b=Yr.map(k=>({command:k.command,active:o===k.listType,disabled:i})),m=Xr.map(k=>({command:k,active:!1,disabled:e.readonly||!e.canUploadMedia}));return[...g,{command:"format.clear",active:!1,disabled:i},...c,{command:"block.heading",active:(r==null?void 0:r.command)==="block.heading",disabled:i,value:(r==null?void 0:r.command)==="block.heading"?r.value:void 0},{command:"block.paragraph",active:(r==null?void 0:r.command)==="block.paragraph",disabled:i},{command:"block.quote",active:(r==null?void 0:r.command)==="block.quote",disabled:i},{command:"block.divider",active:!1,disabled:e.readonly},{command:"block.code",active:(r==null?void 0:r.command)==="block.code",disabled:e.readonly,value:(r==null?void 0:r.command)==="block.code"?r.value:void 0},...b,{command:"align",active:a!==void 0,disabled:i,value:a},{command:"link.set",active:s,disabled:i},{command:"link.unset",active:!1,disabled:i||!s},{command:"link.open",active:!1,disabled:e.readonly||!s},{command:"indent.increase",active:!1,disabled:i},{command:"indent.decrease",active:!1,disabled:i},{command:"history.undo",active:!1,disabled:e.readonly||!e.canUndo},{command:"history.redo",active:!1,disabled:e.readonly||!e.canRedo},{command:"content.clear",active:!1,disabled:e.readonly},...m,{command:"table.insert",active:!1,disabled:e.readonly},{command:"fullscreen.toggle",active:!1,disabled:!1}]},ro=(e,t)=>e.length===t.length&&e.every((n,r)=>{const o=t[r];return o!==void 0&&n.command===o.command&&n.active===o.active&&n.disabled===o.disabled&&n.value===o.value}),re=(e,t,n,r)=>{var o;try{(o=e.onError)==null||o.call(e,{code:t,message:n,cause:r})}catch(a){console.error("[BridgeRTE] onError callback failed.",a)}},oo=(e,t)=>{var n;try{(n=e.onChange)==null||n.call(e,t)}catch(r){re(e,"callback.onChange","onChange callback failed.",r)}},ao=(e,t)=>{var n;try{(n=e.onContentChange)==null||n.call(e,t)}catch(r){re(e,"callback.onContentChange","onContentChange callback failed.",r)}},so=(e,t)=>{var n;try{(n=e.onCommandStateChange)==null||n.call(e,[...t])}catch(r){re(e,"callback.onCommandStateChange","onCommandStateChange callback failed.",r)}},io=e=>{var t;try{(t=e.onFocus)==null||t.call(e)}catch(n){re(e,"callback.onFocus","onFocus callback failed.",n)}},lo=e=>{var t;try{(t=e.onBlur)==null||t.call(e)}catch(n){re(e,"callback.onBlur","onBlur callback failed.",n)}},co=(e,t)=>{var n;try{(n=e.onReady)==null||n.call(e,t)}catch(r){re(e,"callback.onReady","onReady callback failed.",r)}},uo=({lexicalEditor:e,options:t,isDestroyed:n,canUploadMedia:r,isReadonly:o})=>{let a=!1,s=!1,i=[];const g=new Set,c=()=>{const m=[...i];g.forEach(k=>{try{k(m)}catch(P){re(t,"callback.commandStateSubscriber","Command state subscriber failed.",P)}})},b=(m=!0)=>{if(n())return;const k=i;e.getEditorState().read(()=>{i=no({canUndo:a,canRedo:s,readonly:o(),canUploadMedia:r()})}),m&&!ro(k,i)&&(so(t,i),c())};return{refreshCommandStates:b,getCommandStates(){return b(!1),[...i]},subscribeCommandStateChange(m){return n()?()=>{}:(g.add(m),m([...i]),()=>{g.delete(m)})},setCanUndo(m){a=m,b()},setCanRedo(m){s=m,b()},setHistoryAvailability(m,k){a=m,s=k,b()},destroy(){g.clear()}}},go=e=>`upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`,mo=e=>typeof URL.createObjectURL=="function"?URL.createObjectURL(e):e.name,ve=e=>{typeof URL.revokeObjectURL=="function"&&e.startsWith("blob:")&&URL.revokeObjectURL(e)},It=e=>({name:e.name,mimeType:e.type||void 0,size:e.size,data:e}),ho=e=>typeof DOMException<"u"&&e instanceof DOMException&&e.name==="AbortError",po=120,fo=e=>new Promise(t=>{const n=window.setTimeout(()=>{t({})},po);e.then(r=>{window.clearTimeout(n),t(r)})}),bo=e=>new Promise(t=>{const n=new Image,r=()=>{n.onload=null,n.onerror=null};n.onload=()=>{const o={width:n.naturalWidth||void 0,height:n.naturalHeight||void 0};r(),t(o)},n.onerror=()=>{r(),t({})},n.src=e}),yo=e=>new Promise(t=>{const n=document.createElement("video"),r=()=>{n.removeAttribute("src"),n.load(),n.onloadedmetadata=null,n.onerror=null};n.preload="metadata",n.onloadedmetadata=()=>{const o={width:n.videoWidth||void 0,height:n.videoHeight||void 0,duration:Number.isFinite(n.duration)?n.duration:void 0};r(),t(o)},n.onerror=()=>{r(),t({})},n.src=e,n.load()}),vo=(e,t)=>t.startsWith("blob:")?fo(e==="image"?bo(t):yo(t)):Promise.resolve({}),Co=(e,t)=>({...e,width:e.width??t.width,height:e.height??t.height,duration:e.duration??t.duration}),wo=({container:e,lexicalEditor:t,options:n,isDestroyed:r})=>{const o=new Map;let a=0;const s=(u,p)=>{t.update(()=>{var S;(S=ke(u))==null||S.updatePayload(p)})},i=u=>{let p=null;return t.update(()=>{const S=ke(u);if(!S)return;const N=S.getAsset();p={mediaType:N.type,url:N.url,assetId:N.id,status:N.status,progress:N.progress,poster:N.poster,width:N.width,height:N.height,duration:N.duration,mimeType:N.mimeType,size:N.size,displayWidthPercent:N.displayWidthPercent,align:N.align,errorMessage:N.errorMessage},S.remove()}),p},g=(u,p)=>{const S=o.get(u);return(S==null?void 0:S.runId)===p},c=u=>{var p;(p=u.abortController)==null||p.abort()},b=(u,p)=>{const S=o.get(u);return S?(c(S),ve(S.previewUrl),o.delete(u),S.resolveMediaNodeReady(),!0):!1},m=(u,p,S,N,F)=>{t.update(()=>{const M=ge({mediaType:u,url:N,assetId:S,status:"uploading",progress:0,title:p.name,mimeType:p.type||void 0,size:p.size,width:F.width,height:F.height,duration:F.duration}),C=l.$createParagraphNode();l.$getSelection()||l.$getRoot().selectEnd(),l.$insertNodes([M,C]),C.selectStart()},{discrete:!0})},k=(u,p,S,N)=>{s(p,{mediaType:u,url:N.url,poster:N.poster,width:N.width,height:N.height,duration:N.duration,mimeType:N.mimeType,size:N.size,status:"success",progress:100,errorMessage:void 0}),ve(S)},P=(u,p,S)=>{var N;ho(S)||(s(p,{mediaType:u,status:"error",errorMessage:"上传失败"}),(N=n.onUploadError)==null||N.call(n,{assetId:p,type:u,cause:S}))},w=u=>{const p=n.uploadAdapter;if(!p)return;const S=typeof AbortController=="function"?new AbortController:null,N=a+1;a=N,u.runId=N,u.abortController=S,o.set(u.assetId,u);const F={assetId:u.assetId,signal:S==null?void 0:S.signal,onProgress:C=>{u.latestProgress=C,!(!g(u.assetId,N)||r())&&u.isMediaNodeInserted&&s(u.assetId,{mediaType:u.type,status:"uploading",progress:C})}};let M;try{M=u.type==="image"?p.uploadImage(It(u.file),F):p.uploadVideo(It(u.file),F)}catch(C){u.mediaNodeReady.then(()=>{!g(u.assetId,N)||r()||P(u.type,u.assetId,C)});return}M.then(async C=>{await u.mediaNodeReady,!(r()||!g(u.assetId,N))&&(k(u.type,u.assetId,u.previewUrl,Co(C,u.localMetadata)),o.delete(u.assetId))}).catch(async C=>{await u.mediaNodeReady,!(r()||!g(u.assetId,N))&&P(u.type,u.assetId,C)})},T=(u,p)=>{if(!n.uploadAdapter)return;const S=go(u),N=mo(p);let F=()=>{};const M=new Promise(L=>{F=L}),C={assetId:S,type:u,file:p,previewUrl:N,localMetadata:{},latestProgress:0,isMediaNodeInserted:!1,mediaNodeReady:M,resolveMediaNodeReady:F,runId:0,abortController:null};w(C),vo(u,N).then(L=>{if(C.localMetadata=L,r()||!o.has(S)){ve(N),C.resolveMediaNodeReady();return}m(u,p,S,N,L),C.isMediaNodeInserted=!0,F(),C.latestProgress>0&&s(S,{mediaType:u,status:"uploading",progress:C.latestProgress})})};return{pickMediaFile:u=>{if(!n.uploadAdapter)return;const p=e.ownerDocument.createElement("input");p.type="file",p.accept=u==="image"?"image/*":"video/*",p.style.display="none",p.addEventListener("change",()=>{var N;const S=(N=p.files)==null?void 0:N[0];p.remove(),S&&T(u,S)},{once:!0}),e.append(p),p.click()},uploadMediaFile:T,removeMedia(u){const p=i(u);!b(u)&&(p!=null&&p.url.startsWith("blob:"))&&ve(p.url)},retryMedia(u){const p=o.get(u);!p||!n.uploadAdapter||(c(p),s(u,{mediaType:p.type,url:p.previewUrl,status:"uploading",progress:0,errorMessage:void 0}),w(p))},destroy(){o.forEach(u=>{c(u),ve(u.previewUrl),u.resolveMediaNodeReady()}),o.clear()}}},_n=e=>W.$createCodeNode(e),_o={1:"h1",2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},ko={code:"bridgerte__code-block",codeHighlight:{attr:"bridgerte__code-token bridgerte__code-token--attr","attr-name":"bridgerte__code-token bridgerte__code-token--attr-name","attr-value":"bridgerte__code-token bridgerte__code-token--attr-value",boolean:"bridgerte__code-token bridgerte__code-token--boolean",builtin:"bridgerte__code-token bridgerte__code-token--builtin","class-name":"bridgerte__code-token bridgerte__code-token--class-name",comment:"bridgerte__code-token bridgerte__code-token--comment",constant:"bridgerte__code-token bridgerte__code-token--constant",deleted:"bridgerte__code-token bridgerte__code-token--deleted",function:"bridgerte__code-token bridgerte__code-token--function",inserted:"bridgerte__code-token bridgerte__code-token--inserted",keyword:"bridgerte__code-token bridgerte__code-token--keyword",namespace:"bridgerte__code-token bridgerte__code-token--namespace",number:"bridgerte__code-token bridgerte__code-token--number",operator:"bridgerte__code-token bridgerte__code-token--operator",prefix:"bridgerte__code-token bridgerte__code-token--prefix",property:"bridgerte__code-token bridgerte__code-token--property",punctuation:"bridgerte__code-token bridgerte__code-token--punctuation",regex:"bridgerte__code-token bridgerte__code-token--regex",selector:"bridgerte__code-token bridgerte__code-token--selector",string:"bridgerte__code-token bridgerte__code-token--string",tag:"bridgerte__code-token bridgerte__code-token--tag",unchanged:"bridgerte__code-token bridgerte__code-token--unchanged",url:"bridgerte__code-token bridgerte__code-token--url",variable:"bridgerte__code-token bridgerte__code-token--variable"},heading:{h1:"bridgerte__heading bridgerte__heading--h1",h2:"bridgerte__heading bridgerte__heading--h2",h3:"bridgerte__heading bridgerte__heading--h3",h4:"bridgerte__heading bridgerte__heading--h4",h5:"bridgerte__heading bridgerte__heading--h5",h6:"bridgerte__heading bridgerte__heading--h6"},list:{checklist:"bridgerte__list bridgerte__list--todo",ol:"bridgerte__list",ul:"bridgerte__list",listitem:"bridgerte__list-item",listitemChecked:"bridgerte__list-item bridgerte__list-item--checked",listitemUnchecked:"bridgerte__list-item bridgerte__list-item--unchecked"},paragraph:"bridgerte__paragraph",quote:"bridgerte__quote",root:"bridgerte__content-root",text:{bold:"bridgerte__text--bold",code:"bridgerte__code",italic:"bridgerte__text--italic",strikethrough:"bridgerte__text--strike",underline:"bridgerte__text--underline",underlineStrikethrough:"bridgerte__text--underline-strike"},table:"bridgerte__table",tableCell:"bridgerte__table-cell",tableCellHeader:"bridgerte__table-cell bridgerte__table-cell--header",tableRow:"bridgerte__table-row",tableScrollableWrapper:"bridgerte__table-wrapper"},Mo=e=>({setBlockHeading:c=>{e.update(()=>{const b=l.$getSelection();l.$isRangeSelection(b)&&ae.$setBlocksType(b,()=>ie.$createHeadingNode(_o[c]))})},setParagraphBlock:()=>{e.update(()=>{const c=l.$getSelection();l.$isRangeSelection(c)&&ae.$setBlocksType(c,()=>l.$createParagraphNode())})},setQuoteBlock:()=>{e.update(()=>{const c=l.$getSelection();l.$isRangeSelection(c)&&ae.$setBlocksType(c,()=>ie.$createQuoteNode())})},insertDividerBlock:()=>{e.update(()=>{const c=l.$createParagraphNode();l.$insertNodes([ct(),c]),c.selectStart()})},insertCodeBlock:c=>{e.update(()=>{const b=_n(c),m=l.$createParagraphNode();l.$insertNodes([b,m]),b.selectEnd()})},setSelectedCodeBlockLanguage:c=>{e.update(()=>{const b=l.$getSelection();if(!l.$isRangeSelection(b))return;const m=b.anchor.getNode(),k=m.getKey()==="root"?m:m.getTopLevelElementOrThrow();W.$isCodeNode(k)&&k.setLanguage(c)})},clearContent:()=>{e.update(()=>{const c=l.$getRoot();c.clear(),c.append(l.$createParagraphNode())})},formatAlign:c=>{e.dispatchCommand(l.FORMAT_ELEMENT_COMMAND,c)}}),Eo=e=>({setLink:(o,a)=>{e.update(()=>{const s=l.$getSelection(),i=Y.formatUrl(o),g=(a==null?void 0:a.trim())||o.trim();if(!(!l.$isRangeSelection(s)||!o.trim())){if(s.isCollapsed()){const c=Y.$createLinkNode(i,{rel:"noreferrer noopener",target:"_blank"});c.append(l.$createTextNode(g)),l.$insertNodes([c]);return}Y.$toggleLink(i,{rel:"noreferrer noopener",target:"_blank"})}})},unsetLink:()=>{e.update(()=>{Y.$toggleLink(null)})},openSelectedLink:()=>{if(typeof window>"u")return;const o=e.getEditorState().read(()=>{const a=l.$getSelection();if(!l.$isRangeSelection(a))return null;const s=a.anchor.getNode(),i=Y.$isLinkNode(s)?s:Fe.$findMatchingParent(s,Y.$isLinkNode);return i?{target:i.getTarget()??"_blank",url:i.sanitizeUrl(i.getURL())}:null});o&&window.open(o.url,o.target,"noopener,noreferrer")}}),xo=e=>({insertImage:s=>{s.url.trim()&&e.update(()=>{const i=l.$createParagraphNode();l.$insertNodes([yr(s),i]),i.selectStart()})},insertVideo:s=>{s.url.trim()&&e.update(()=>{const i=l.$createParagraphNode();l.$insertNodes([vr(s),i]),i.selectStart()})},resizeMedia:s=>{e.update(()=>{var i;(i=ke(s.assetId))==null||i.updatePayload({displayWidthPercent:s.widthPercent})})},resetMediaSize:s=>{e.update(()=>{var i;(i=ke(s))==null||i.updatePayload({displayWidthPercent:void 0})})},alignMedia:s=>{e.update(()=>{var i;(i=ke(s.assetId))==null||i.updatePayload({align:s.value==="left"?void 0:s.value})})}}),To=e=>({insertMention:n=>{e.update(()=>{const r=l.$getSelection();l.$isRangeSelection(r)&&l.$insertNodes([ut(n),l.$createTextNode(" ")])})}}),No=e=>({clearSelectionFormat:()=>{e.update(()=>{const r=l.$getSelection();l.$isRangeSelection(r)&&(r.setFormat(0),ae.$patchStyleText(r,{color:null,"background-color":null,"font-size":null,"font-family":null,"line-height":null}))})},setSelectionStyle:(r,o)=>{e.update(()=>{const a=l.$getSelection();l.$isRangeSelection(a)&&ae.$patchStyleText(a,{[r]:o===""?null:o})})}}),So=20,Pt=(e,t)=>Number.isFinite(e)&&e>0?Math.min(Math.floor(e),t):1,Se=e=>Number.isFinite(e)&&(e??0)>0?Math.min(Math.floor(e??1),So):1,Re=()=>{const e=l.$getSelection();return!l.$isRangeSelection(e)&&!U.$isTableSelection(e)?!1:U.$findCellNode(e.anchor.getNode())!==null},Ro=e=>({insertTable:(i,g)=>{const c=Pt(i,se.BRIDGERTE_TABLE_INSERT_MAX_ROWS),b=Pt(g,se.BRIDGERTE_TABLE_INSERT_MAX_COLS);e.dispatchCommand(U.INSERT_TABLE_COMMAND,{rows:String(c),columns:String(b),includeHeaders:{rows:!0,columns:!1}})},insertTableRow:i=>{e.update(()=>{if(!Re())return;const g=Se(i.count);for(let c=0;c<g;c+=1)U.$insertTableRowAtSelection(i.direction!=="before")})},insertTableColumn:i=>{e.update(()=>{if(!Re())return;const g=Se(i.count);for(let c=0;c<g;c+=1)U.$insertTableColumnAtSelection(i.direction!=="before")})},deleteTableRow:i=>{e.update(()=>{const g=Se(i.count);for(let c=0;c<g;c+=1){if(!Re())return;U.$deleteTableRowAtSelection()}})},deleteTableColumn:i=>{e.update(()=>{const g=Se(i.count);for(let c=0;c<g;c+=1){if(!Re())return;U.$deleteTableColumnAtSelection()}})},deleteTable:()=>{e.update(()=>{const i=l.$getSelection();if(!l.$isRangeSelection(i)&&!U.$isTableSelection(i))return;const g=U.$findTableNode(i.anchor.getNode());if(!g)return;const c=l.$createParagraphNode();g.insertAfter(c),g.remove(),c.selectStart()})}}),Lo=e=>{const t=Ro(e);return{insertTable:n=>{t.insertTable(n.rows,n.cols)},insertTableRow:n=>{t.insertTableRow(n)},insertTableColumn:n=>{t.insertTableColumn(n)},deleteTableRow:n=>{t.deleteTableRow(n)},deleteTableColumn:n=>{t.deleteTableColumn(n)},deleteTable:()=>{t.deleteTable()}}},Io={"format.bold":"bold","format.italic":"italic","format.underline":"underline","format.strike":"strikethrough","format.inlineCode":"code","format.superscript":"superscript","format.subscript":"subscript"},Po={"list.ordered":te.INSERT_ORDERED_LIST_COMMAND,"list.unordered":te.INSERT_UNORDERED_LIST_COMMAND,"list.todo":te.INSERT_CHECK_LIST_COMMAND},$o={"indent.increase":l.INDENT_CONTENT_COMMAND,"indent.decrease":l.OUTDENT_CONTENT_COMMAND,"history.undo":l.UNDO_COMMAND,"history.redo":l.REDO_COMMAND},Ao={"format.color":"color","format.backgroundColor":"background-color","format.fontSize":"font-size","format.fontFamily":"font-family","format.lineHeight":"line-height"},Bo=({container:e,lexicalEditor:t,options:n,isDestroyed:r,isReadonly:o,reportError:a})=>{const s=wo({container:e,lexicalEditor:t,options:n,isDestroyed:r}),i=Mo(t),g=Eo(t),c=xo(t),b=To(t),m=No(t),k=Lo(t),P=()=>{var I,u;if(document.fullscreenElement){(I=document.exitFullscreen)==null||I.call(document).catch(p=>{a(n,"fullscreen.exit","Exit fullscreen failed.",p)});return}(u=e.requestFullscreen)==null||u.call(e).catch(p=>{a(n,"fullscreen.enter","Enter fullscreen failed.",p)})},w=(T=>{if(r()||o())return;const I=Io[T.type];if(I){t.dispatchCommand(l.FORMAT_TEXT_COMMAND,I);return}const u=Po[T.type];if(u){t.dispatchCommand(u,void 0);return}const p=$o[T.type];if(p){t.dispatchCommand(p,void 0);return}const S=Ao[T.type];if(S&&"value"in T){m.setSelectionStyle(S,T.value);return}switch(T.type){case"format.clear":m.clearSelectionFormat();return;case"block.heading":i.setBlockHeading(T.level);return;case"block.paragraph":i.setParagraphBlock();return;case"block.quote":i.setQuoteBlock();return;case"block.divider":i.insertDividerBlock();return;case"block.code":i.insertCodeBlock(T.language);return;case"block.setCodeLanguage":i.setSelectedCodeBlockLanguage(T.language);return;case"align":i.formatAlign(T.value);return;case"link.set":g.setLink(T.href,T.text);return;case"link.unset":g.unsetLink();return;case"link.open":g.openSelectedLink();return;case"mention.insert":b.insertMention(T.item);return;case"content.clear":i.clearContent();return;case"table.insert":k.insertTable(T);return;case"table.insertRow":k.insertTableRow(T);return;case"table.insertColumn":k.insertTableColumn(T);return;case"table.deleteRow":k.deleteTableRow(T);return;case"table.deleteColumn":k.deleteTableColumn(T);return;case"table.delete":k.deleteTable();return;case"media.insertImage":c.insertImage(T);return;case"media.insertVideo":c.insertVideo(T);return;case"media.pickImage":s.pickMediaFile("image");return;case"media.pickVideo":s.pickMediaFile("video");return;case"media.view":return;case"media.retry":s.retryMedia(T.assetId);return;case"media.remove":s.removeMedia(T.assetId);return;case"media.resize":c.resizeMedia(T);return;case"media.align":c.alignMedia(T);return;case"media.resetSize":c.resetMediaSize(T.assetId);return;case"fullscreen.toggle":P();return}});return w.uploadMediaFile=s.uploadMediaFile,w.destroy=()=>{s.destroy()},w},Do=300,Ho="BridgeRTE",$t=({editor:e,overflowLength:t})=>{if(t<=0)return!1;const n=l.$getSelection();if(l.$isRangeSelection(n))return ae.$trimTextContentFromAnchor(e,n.anchor,t),!0;l.$getRoot().selectEnd();const r=l.$getSelection();return l.$isRangeSelection(r)?(ae.$trimTextContentFromAnchor(e,r.anchor,t),!0):!1},Oo=({lexicalEditor:e,options:t,isDestroyed:n,setContent:r,syncPlaceholder:o})=>{let a=0,s=null;const i=()=>{s&&(clearTimeout(s),s=null)},g=u=>{if(n())return;const p=yn(e.getEditorState(),e);r(p),u&&oo(t,p)},c=u=>{const p=t.maxLength!==void 0&&t.maxLength>=0?t.maxLength:void 0;return{dirty:!0,plainTextLength:u,version:se.BRIDGERTE_CONTENT_VERSION,maxLength:p,isOverMaxLength:p===void 0?!1:u>p}},b=u=>{ao(t,c(u))},m=()=>{t.onChange&&(i(),s=setTimeout(()=>{g(!0)},Oe.BRIDGE_CONTENT_CHANGE_DEBOUNCE_MS))},k=u=>{if(a>0){a-=1;return}b(u),m()},P=()=>e.getEditorState().read(()=>l.$getRoot().getTextContent().length),w=u=>t.maxLength===void 0||t.maxLength<0?0:u-t.maxLength,T=u=>u<=0?!1:(e.update(()=>{$t({editor:e,overflowLength:u})},{discrete:!0}),!0);return{clearContentChangeTimer:i,enforceCurrentMaxLength:()=>{t.maxLength===void 0||t.maxLength<0||e.update(()=>{const u=l.$getRoot().getTextContent().length-(t.maxLength??0);$t({editor:e,overflowLength:u})},{discrete:!0})},syncContent:g,suppressNextChange(){a+=1},syncAfterEditorUpdate(){const u=P();if(T(w(u))){o();return}o(),k(u)}}},ze="data-language",kn="纯文本",Fo="language",zo=new Set(["plain","plaintext","text","txt"]),Wo=[ze,"data-lang","data-code-language","data-highlight-language","lang","language"],qo=/^[a-z][a-z0-9_+#.-]{0,31}$/i,Uo=/^(?:language|lang)-([a-z][a-z0-9_+#.-]{0,31})$/i,Vo=/^brush:\s*([a-z][a-z0-9_+#.-]{0,31})$/i,Ko=new Map([["c++","cpp"],["c#","csharp"],["dockerfile","docker"],["shell","shellscript"],["sh","shellscript"],["bash","shellscript"],["js","javascript"],["jsx","jsx"],["py","python"],["rb","ruby"],["rs","rust"],["ts","typescript"],["tsx","tsx"],["yml","yaml"]]),jo=e=>e.type==="select",At=e=>e.find(t=>t.name===Fo&&jo(t)),ue=e=>{const t=e==null?void 0:e.trim().toLowerCase();return!t||!qo.test(t)?null:zo.has(t)?"":Ko.get(t)??t},Go=e=>{for(const t of Wo){const n=ue(e.getAttribute(t));if(n)return n}return null},Yo=e=>{const[,t]=e.match(Vo)??[],n=ue(t);if(n)return n;for(const r of e.split(/\s+/)){const[,o]=r.match(Uo)??[],a=ue(o);if(a)return a}return null},Mn=(e=J.codeBlockLanguagePanel)=>{var t,n;return((t=At(e.fields))==null?void 0:t.options)??((n=At(J.codeBlockLanguagePanel.fields))==null?void 0:n.options)??[{label:kn,value:""}]},En=(e,t)=>{var n,r,o;return((n=e.find(a=>a.value===t))==null?void 0:n.label)??((r=e.find(a=>ue(a.value)===ue(t)))==null?void 0:r.label)??((o=e[0])==null?void 0:o.label)??kn};Mn();const Xo=e=>{[...e.querySelectorAll("pre,code")].forEach(t=>{const n=Go(t)??Yo(t.className),r=t.tagName==="PRE"?t:t.closest("pre");r&&n&&r.setAttribute(ze,n)})},Jo=e=>{e.querySelectorAll("pre").forEach(t=>{[...t.children].forEach(r=>{r.tagName==="CODE"&&r.replaceWith(...r.childNodes)})})},Qo=(e,t)=>{const n=[...t.querySelectorAll("pre[data-language]")];let r=0;e.forEach(o=>{if(!W.$isCodeNode(o))return;const a=n[r];if(r+=1,!a)return;const s=a.getAttribute(ze);s&&!o.getLanguage()&&o.setLanguage(s)})},Zo=e=>(()=>{}),gt=()=>{const e=window.visualViewport;return{left:(e==null?void 0:e.offsetLeft)??0,top:(e==null?void 0:e.offsetTop)??0,width:(e==null?void 0:e.width)??window.innerWidth,height:(e==null?void 0:e.height)??window.innerHeight}},ee=12,ea=6,De=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n)),ta=(e,t)=>({contextElement:e,getBoundingClientRect:()=>({x:t.x,y:t.y,left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height,width:t.width,height:t.height})}),na=(e,t)=>{const n=e.getBoundingClientRect(),r=gt(),o=t.getBoundingClientRect(),a=o.left+ee,s=o.top+ee,i=r.left+ee,g=r.top+ee,c=r.left+r.width-n.width-ee,b=r.top+r.height-n.height-ee;return{left:De(a,i,c),top:De(s,g,b),viewportHeight:r.height}},ra=(e,t,n)=>{const r=e.getBoundingClientRect(),o=gt(),a=o.left+ee,s=o.top+ee,i=o.left+o.width-r.width-ee,g=o.top+o.height-r.height-ee;return{left:De(t,a,i),top:De(n,s,g),viewportHeight:o.height}},xn=e=>{var c,b;const t=document.createElement("div"),n=document.createElement("div"),r=document.createElement("div");let o;const a=()=>{t.dataset.visible="false",n.dataset.visible="false",o=void 0},s=(m,k,P)=>{n.style.left=`${m}px`,n.style.top=`${k}px`,n.style.setProperty("--bridgerte-dialog-visible-height",`${P}px`)},i=async()=>{if(!o){const P=na(n,e.root);s(P.left,P.top,P.viewportHeight);return}const m=await Z.computePosition(ta(e.root,o),n,{placement:"bottom-start",strategy:"fixed",platform:Z.platform,middleware:[Z.offset(ea),Z.flip(),Z.shift({padding:ee})]}),k=ra(n,m.x,m.y);s(k.left,k.top,k.viewportHeight)},g=m=>{o=m,m?n.style.setProperty("--bridgerte-dialog-anchor-width",`${m.width}px`):n.style.removeProperty("--bridgerte-dialog-anchor-width"),i(),t.dataset.visible="true",n.dataset.visible="true"};return t.className=`bridgerte__dialog-backdrop ${e.className}-backdrop`,t.dataset.visible="false",n.className=`bridgerte__dialog ${e.className}`,n.dataset.visible="false",r.className="bridgerte__dialog-content",n.append(r),e.root.append(t,n),t.addEventListener("click",()=>{var m;(m=e.onBackdropClick)==null||m.call(e),a()}),(c=window.visualViewport)==null||c.addEventListener("resize",i),(b=window.visualViewport)==null||b.addEventListener("scroll",i),window.addEventListener("resize",i),{element:n,content:r,open:g,close:a,destroy(){var m,k;a(),(m=window.visualViewport)==null||m.removeEventListener("resize",i),(k=window.visualViewport)==null||k.removeEventListener("scroll",i),window.removeEventListener("resize",i),t.remove(),n.remove()}}},He=e=>typeof requestAnimationFrame=="function"?requestAnimationFrame(e):window.setTimeout(e,0),mt=e=>{if(typeof cancelAnimationFrame=="function"){cancelAnimationFrame(e);return}window.clearTimeout(e)},Q=(e,t={})=>{let n=null;const r=s=>{const i=n??e;if(!(!s&&!n)){if(s){i.dataset.pressed="true";return}delete i.dataset.pressed,n=null}},o=s=>{if(s.pointerType==="mouse")return;const i=s.target;n=i instanceof HTMLElement&&t.targetSelector?i.closest(t.targetSelector):e,n&&r(!0)},a=()=>{r(!1)};return e.addEventListener("pointerdown",o),e.addEventListener("pointerup",a),e.addEventListener("pointercancel",a),e.addEventListener("lostpointercapture",a),()=>{a(),e.removeEventListener("pointerdown",o),e.removeEventListener("pointerup",a),e.removeEventListener("pointercancel",a),e.removeEventListener("lostpointercapture",a)}},ht=e=>{const t=o=>{var s;const a=e.getBlockFromTarget(o.target);if(a){(s=e.onBlockPointerDown)==null||s.call(e,a,o),e.activateBlock(a);return}e.clearBlock()},n=o=>{const a=e.getBlockFromTarget(o.target);a&&e.activateBlock(a)},r=o=>{const a=o.target;a instanceof Node&&e.root.contains(a)||e.clearBlock()};return e.content.addEventListener("pointerdown",t),e.content.addEventListener("focusin",n),document.addEventListener("pointerdown",r),{destroy(){e.content.removeEventListener("pointerdown",t),e.content.removeEventListener("focusin",n),document.removeEventListener("pointerdown",r)}}},oa=(e,t,n)=>{e.update(t,{tag:l.SKIP_SCROLL_INTO_VIEW_TAG,onUpdate:n})},Bt="language",aa="bridgerte-code-block-language",Dt=8,sa=".bridgerte__code-block-controls",$e=".bridgerte__code-block-control-button";let Ht=0;const ia=()=>(Ht+=1,`${aa}-${Ht}`),la=(e,t,n)=>{var o;const r=e.querySelector(".bridgerte__code-block-control-label");e.dataset.language=n??"",(o=e.querySelector($e))==null||o.setAttribute("data-language",n??""),r&&(r.textContent=En(t,n))},ca=(e,t)=>{const n=document.createElement("div"),r=document.createElement("button"),o=document.createElement("span"),a=document.createElement("span");return n.className="bridgerte__code-block-controls",n.contentEditable="false",n.dataset.language=t??"",n.setAttribute("aria-label","代码块操作"),r.type="button",r.className="bridgerte__code-block-control-button",r.dataset.language=t??"",r.setAttribute("aria-label","选择代码块语言"),o.className="bridgerte__code-block-control-label",o.textContent=En(e,t),a.className="bridgerte__code-block-control-arrow",r.append(o,a),n.append(r),n},da=e=>{const t=document.createElement("div"),n=e.root.querySelector(".bridgerte__content")??e.root,r=un.resolvePayloadPanelSchema(e.languagePanel??J.codeBlockLanguagePanel,e.payloadPanelConfig),o=Mn(r);let a=null,s=null,i=null,g=null,c=null,b=null;const m=()=>{i??(i=Zo())},k=()=>{a==null||a.close()},P=(O,D)=>{e.isReadonly()||oa(e.editor,()=>{const y=l.$getNodeByKey(O);W.$isCodeNode(y)&&y.setLanguage(D)})},w=(O,D)=>{He(()=>{P(O,D)})},T=(O,D,y)=>{var d;return((d=e.onRequest)==null?void 0:d.call(e,{id:ia(),readonly:e.isReadonly(),menuId:"code-block-language",command:{type:"block.setCodeLanguage",language:y},panel:r,anchorRect:{x:D.left,y:D.top,width:D.width,height:D.height},currentValues:{[Bt]:y},submit:E=>{k(),w(O,E[Bt]??"")},cancel:k}))===!0},I=(O,D)=>{const y=e.root.getBoundingClientRect(),d=D.getBoundingClientRect(),E=d.bottom<y.top||d.top>y.bottom;O.hidden=E;const f=Math.max(8,y.width-O.offsetWidth-8),H=Math.min(Math.max(d.left-y.left+Dt,8),f),h=Math.max(8,d.top-y.top-O.offsetHeight-Dt);O.style.transform=`translate(${H}px, ${h}px)`},u=()=>{c&&(b==null||b(),b=null,c.remove(),c=null)},p=O=>{const D=e.editor.getElementByKey(O);if(!D){g===O&&(g=null,u());return}m(),D.dataset.lexicalKey=O;const y=D.getAttribute("data-language");if(c){la(c,o,y),I(c,D);return}const d=ca(o,y);b=Q(d,{targetSelector:$e}),d.dataset.lexicalKey=O,c=d,t.append(d),I(d,D)},S=O=>{const D=O.dataset.lexicalKey;!D||g===D||(g!==null&&(k(),u()),g=D,p(D))},N=()=>{g!==null&&(g=null,k(),u())},F=O=>O instanceof HTMLElement?O.closest(".bridgerte__code-block"):null,M=ht({root:e.root,content:n,getBlockFromTarget:F,activateBlock:S,clearBlock:N}),C=(O,D)=>{const y=O.getBoundingClientRect(),d=O.dataset.language??"";if(T(D,y,d))return;if(e.isReadonly()){k();return}a||(a=xn({root:e.root,className:"bridgerte__code-block-menu",onBackdropClick:k}));const E=document.createElement("div");a.content.replaceChildren(),a.element.style.minWidth="180px",E.className="bridgerte__code-block-menu-list",o.forEach(f=>{const H=document.createElement("button");H.type="button",H.className="bridgerte__menu-item bridgerte__code-block-menu-item",H.textContent=f.label,Q(H),H.addEventListener("pointerdown",h=>{h.preventDefault()}),H.addEventListener("click",()=>{k(),w(D,f.value)}),E.append(H)}),a.content.append(E),a.open({x:y.left,y:y.top,width:180,height:y.height})},L=O=>{const D=O.target;if(!(D instanceof HTMLElement))return;const y=D.closest($e);if(!y)return;const d=y.closest(sa);if(!d)return;const E=d.dataset.lexicalKey;E&&(O.preventDefault(),O.stopPropagation(),C(d,E))},x=O=>{const D=O.target;D instanceof HTMLElement&&D.closest($e)&&O.preventDefault()},R=O=>{const D=O.target;if(!(D instanceof HTMLElement))return;if(!D.closest(".bridgerte__code-block")){k();return}const y=D.closest(".bridgerte__code-block");if(!y||y.textContent)return;const d=y.dataset.lexicalKey;d&&(e.editor.update(()=>{const E=l.$getNodeByKey(d);W.$isCodeNode(E)&&E.selectEnd()}),e.editor.focus())},B=()=>{s===null&&(s=He(()=>{s=null,g!==null&&p(g)}))};t.className="bridgerte__code-block-controls-layer",e.root.append(t);const V=e.editor.registerMutationListener(W.CodeNode,O=>{O.forEach((D,y)=>{if(D==="destroyed"){g===y&&N();return}const d=e.editor.getElementByKey(y);d&&(d.dataset.lexicalKey=y),g===y&&c&&p(y)})}),G=e.editor.registerUpdateListener(B);return t.addEventListener("pointerdown",x),t.addEventListener("click",L),n.addEventListener("pointerdown",R),n.addEventListener("scroll",B,{passive:!0}),window.addEventListener("resize",B),{destroy(){M.destroy(),V(),G(),i==null||i(),i=null,s!==null&&(mt(s),s=null),t.removeEventListener("pointerdown",x),t.removeEventListener("click",L),n.removeEventListener("pointerdown",R),n.removeEventListener("scroll",B),window.removeEventListener("resize",B),u(),t.remove(),a==null||a.destroy(),a=null}}},We=(e,t={})=>e.map(n=>{var a;const r=(a=t.menuLabels)==null?void 0:a[n.id],o=n.payloadPanel?un.resolvePayloadPanelSchema(n.payloadPanel,t.payloadPanelConfig):void 0;return{...n,...r===void 0?{}:{label:r},...o===void 0?{}:{payloadPanel:o}}}),Tn=(e,t)=>{const n=t.find(r=>r.command===e.command.type);return(n==null?void 0:n.value)===void 0?void 0:{value:String(n.value)}},pt=(e,t)=>{const n=t.find(o=>J.isCommandStateForCommand(e.command,o)),r=t.find(o=>o.command===e.command.type);return{active:(n==null?void 0:n.active)===!0,disabled:e.payloadPanel?(r==null?void 0:r.disabled)===!0:(n==null?void 0:n.disabled)===!0||(r==null?void 0:r.disabled)===!0}},Nn=(e,t)=>e.map(n=>n.type==="separator"?{type:"separator",key:n.key}:n.type==="group"?{type:"group",key:n.key,title:n.title,...n.icon===void 0?{}:{icon:n.icon},items:n.items.map(r=>({type:"button",item:r,...t(r)}))}:{type:"button",item:n.item,...t(n.item)}),ua=e=>e.flatMap(t=>t.type==="button"?[t]:t.type==="group"?t.items:[]),ft=(e,t)=>{const n=typeof t=="string"?t:t.id;return ua(e).find(r=>r.item.id===n)},Ee=["media-resize-20","media-resize-50","media-resize-100"],ga=["media-view","|","media-align-left","media-align-center","media-align-right","|",...Ee,"|","media-remove"],ma=["media-retry","|","media-remove"],ha=[{id:"media-view",command:{type:"media.view",assetId:""},label:"查看",icon:"maximize"},{id:"media-align-left",command:{type:"media.align",assetId:"",value:"left"},label:"左",icon:"align-left"},{id:"media-align-center",command:{type:"media.align",assetId:"",value:"center"},label:"中",icon:"align-center"},{id:"media-align-right",command:{type:"media.align",assetId:"",value:"right"},label:"右",icon:"align-right"},{id:"media-resize-20",command:{type:"media.resize",assetId:"",widthPercent:20},label:"20%",icon:"media-resize-20"},{id:"media-resize-50",command:{type:"media.resize",assetId:"",widthPercent:50},label:"50%",icon:"media-resize-50"},{id:"media-resize-100",command:{type:"media.resize",assetId:"",widthPercent:100},label:"100%",icon:"media-resize-100"},{id:"media-retry",command:{type:"media.retry",assetId:""},label:"重试",icon:"refresh-cw"},{id:"media-remove",command:{type:"media.remove",assetId:""},label:"删除",icon:"trash-2"}],Sn=e=>Ee.includes(e),pa=e=>typeof e=="object"&&Array.isArray(e.menuKeys),fa=e=>new Set(e.flatMap(t=>t==="|"?[]:typeof t=="string"?[t]:pa(t)?[t.key,...t.menuKeys]:[])),je=e=>typeof e=="string"&&Sn(e),ba=e=>{const t=e.findIndex(r=>r==="media-remove"),n=t===-1?e.length:t;return[...e.slice(0,n),"|",...Ee,"|",...e.slice(n)]},ya=e=>{const t=fa(e);if(Ee.filter(o=>!t.has(o)).length===0)return e;const r=e.findIndex(je);return r===-1?ba(e):[...e.slice(0,r).filter(o=>!je(o)),...Ee,...e.slice(r+1).filter(o=>!je(o))]},va=e=>{var r;const t=(e==null?void 0:e.toolbarKeys)??ga;return{...e,toolbarKeys:ya(t),excludeKeys:(r=e==null?void 0:e.excludeKeys)==null?void 0:r.filter(o=>!Sn(o))}},Ca=(e,t)=>{if(e.id==="media-view")return null;switch(e.command.type){case"media.view":return null;case"media.retry":return{...e.command,assetId:t};case"media.remove":return{...e.command,assetId:t};case"media.resize":return{...e.command,assetId:t};case"media.align":return{...e.command,assetId:t};default:return null}},Rn=(e,t,n)=>e.command.type==="media.resize"?e.command.widthPercent===t:e.command.type==="media.align"&&e.command.value===n,Ln=(e,t={})=>{const n=We(ha,{menuLabels:t.menuLabels}),r=e==="error"?{toolbarKeys:ma}:va(t.config);return J.resolveToolbarMenu(r,n)},Ce="bridgerte__media-controls-button",wa=(e,t=!1)=>{const n=document.createElement("button");return n.type="button",n.className=Ce,n.textContent=e.label,n.dataset.menuItemId=e.id,n.dataset.action=e.id.replace(/^media-/,""),t&&(n.dataset.active="true"),n.setAttribute("aria-label",e.label),n},In=e=>e.flatMap(t=>t.type==="button"?[t.item]:t.type==="group"?t.items:[]),_a=(e,t,n,r)=>{if(t.type==="separator"){const a=document.createElement("span");a.className="bridgerte__media-controls-separator",a.dataset.separatorId=t.key,a.setAttribute("aria-hidden","true"),e.append(a);return}(t.type==="button"?[t.item]:t.items).forEach(a=>{e.append(wa(a,Rn(a,n,r)))})},ka=(e,t)=>{const n=document.createElement("div");return n.className="bridgerte__media-controls",n.contentEditable="false",n.setAttribute("aria-label","媒体操作"),n.dataset.status=t.status,n.dataset.displayWidthPercent=e.dataset.displayWidthPercent??"",n.dataset.align=e.dataset.align??"",n.dataset.menuItemIds=In(t.controlItems).map(r=>r.id).join("|"),t.controlItems.forEach(r=>{_a(n,r,t.activeWidthPercent,t.activeAlign)}),n},Ma=(e,t,n)=>{const r=e.dataset.status??"success",o=Number(e.dataset.displayWidthPercent??t),a=e.dataset.align??"left",s=Ln(r,{config:n.mediaControlsConfig,menuLabels:n.menuLabels});return{status:r,activeWidthPercent:o,activeAlign:a,controlItems:s,displayItems:Nn(s,i=>({active:Rn(i,o,a),disabled:i.id!=="media-view"&&n.isReadonly()}))}},Ea=()=>{var e;return((e=window.matchMedia)==null?void 0:e.call(window,"(hover: hover) and (pointer: fine)").matches)===!0},Ge=e=>{window.open(e,"_blank","noopener,noreferrer")},xa=(e,t)=>{if(e){if(Ea()){Ge(e);return}if(!(t!=null&&t.requestFullscreen)){Ge(e);return}t.requestFullscreen().catch(()=>{Ge(e)})}},me=8,Ta=e=>e.querySelector(".bridgerte__content")??e,Na=e=>e instanceof Element?e.closest(".bridgerte__media"):null,Sa=e=>e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLButtonElement,Ot=e=>e.querySelector(".bridgerte__media-element"),Ft=(e,t)=>{const n=e==null?void 0:e.getAttribute(t),r=n==null?Number.NaN:Number(n);return Number.isFinite(r)&&r>0?r:void 0},Ra=e=>{const t=(e==null?void 0:e.getAttribute("src"))??void 0;if(!t)return null;const n=(e==null?void 0:e.getAttribute("title"))??void 0,r=e instanceof HTMLImageElement&&e.alt||void 0,o=e instanceof HTMLVideoElement?e.getAttribute("poster")??void 0:void 0,a=Ft(e,"width"),s=Ft(e,"height");return{url:t,title:n,alt:r,poster:o,width:a,height:s}},La=e=>{const t=document.createElement("div"),n=Ta(e.root),r=new Map,o=new Map,a=new Map,s=new Map;let i=null,g=0,c=null,b=!1,m=null;const k=h=>{var v;const _=r.get(h);_&&((v=o.get(_))==null||v(),o.delete(_),_.remove(),r.delete(h))},P=h=>{const _=s.get(h);_&&(s.delete(h),_.dismissListeners.forEach(v=>{v()}),_.dismissListeners.clear())},w=h=>{k(h),P(h),m===h&&(m=null)},T=(h,_)=>_.dataset.status==="error"||m===h,I=(h,_)=>{const v=e.root.getBoundingClientRect(),A=_.getBoundingClientRect(),z=A.bottom<v.top||A.top>v.bottom,$=Math.max(me,v.width-h.offsetWidth-me),q=Math.min(Math.max(A.left-v.left+me,me),$),X=Math.max(me,A.top-v.top-h.offsetHeight-me);h.hidden=z,h.style.transform=`translate(${q}px, ${X}px)`},u=h=>{const _=h.getBoundingClientRect();return{x:_.left,y:_.top,width:_.width,height:_.height}},p=(h,_)=>{const v=Ca(h,_);v&&e.executeCommand(v)},S=h=>{const _=Ot(h),v=(_==null?void 0:_.getAttribute("src"))??void 0;v&&xa(v,_??void 0)},N=(h,_,v)=>{if(h.id==="media-view"||h.command.type==="media.view"){S(v);return}if(h.id==="media-remove"||h.command.type==="media.remove"){const A=v.dataset.lexicalKey;A&&w(A)}p(h,_)},F=(h,_,v)=>{if(!e.onMediaControlsRequest)return P(h),!1;const A=_.dataset.assetId;if(!A)return P(h),!1;const z=Ot(_),$=Ra(z),q=u(_),X=`bridgerte-media-controls-${g+=1}`,K=v.displayItems.map(j=>{if(j.type==="separator")return`separator:${j.key}`;if(j.type==="button")return`button:${j.item.id}:${j.active}:${j.disabled}`;const ye=j.items.map(Te=>Te.item.id).join(",");return`group:${j.key}:${ye}`}).join("|"),ne=[A,_.dataset.mediaType??"image",v.status,v.activeWidthPercent,v.activeAlign,($==null?void 0:$.url)??"",($==null?void 0:$.title)??"",($==null?void 0:$.alt)??"",($==null?void 0:$.poster)??"",($==null?void 0:$.width)??"",($==null?void 0:$.height)??"",K,Math.round(q.x),Math.round(q.y),Math.round(q.width),Math.round(q.height)].join("|"),be=s.get(h);if((be==null?void 0:be.signature)===ne)return k(h),!0;const Ue=new Set;return e.onMediaControlsRequest({id:X,assetId:A,mediaType:_.dataset.mediaType==="video"?"video":"image",status:v.status,displayWidthPercent:v.activeWidthPercent,align:v.activeAlign,items:v.displayItems,readonly:e.isReadonly(),anchorRect:q,url:$==null?void 0:$.url,title:$==null?void 0:$.title,alt:$==null?void 0:$.alt,poster:$==null?void 0:$.poster,width:$==null?void 0:$.width,height:$==null?void 0:$.height,subscribeDismiss:j=>(Ue.add(j),()=>{Ue.delete(j)}),submit:j=>{var Te;if(((Te=s.get(h))==null?void 0:Te.id)!==X)return;const ye=ft(v.displayItems,j);!ye||ye.disabled||N(ye.item,A,_)},cancel:()=>{var j;((j=s.get(h))==null?void 0:j.id)===X&&P(h)}})===!0?(P(h),s.set(h,{id:X,signature:ne,dismissListeners:Ue}),k(h),!0):(P(h),!1)},M=h=>{const _=e.editor.getElementByKey(h);if(!_){w(h);return}_.dataset.lexicalKey=h,a.set(_,h);const v=r.get(h);if(!T(h,_)){w(h);return}const A=Ma(_,e.defaultWidthPercent,e);if(F(h,_,A))return;if(v){const q=_.dataset.status==="error",X=v.querySelector('[data-action="retry"]')!==null,K=_.dataset.displayWidthPercent??"",ne=_.dataset.align??"";if(q===X&&v.dataset.displayWidthPercent===K&&v.dataset.align===ne){I(v,_);return}k(h),P(h)}P(h);const z=ka(_,A),$=Q(z,{targetSelector:`.${Ce}`});z.dataset.lexicalKey=h,z.dataset.assetId=_.dataset.assetId,r.set(h,z),o.set(z,$),t.append(z),I(z,_)},C=()=>{i=null,a.forEach((h,_)=>{e.root.contains(_)||(a.delete(_),w(h))}),e.root.querySelectorAll(".bridgerte__media").forEach(h=>{const _=h.dataset.lexicalKey;_&&(a.set(h,_),M(_))}),r.forEach((h,_)=>{M(_)}),m!==null&&M(m)},L=()=>{i===null&&(i=He(C))},x=(h,_)=>{const v=_.dataset.assetId,A=_.dataset.lexicalKey,z=A?e.editor.getElementByKey(A):null,$=In(Ln(_.dataset.status,{config:e.mediaControlsConfig,menuLabels:e.menuLabels})).find(q=>q.id===h.dataset.menuItemId);!v||!$||!z||N($,v,z)},R=h=>{if(!h){const A=m;m=null,A!==null&&M(A);return}const _=h.dataset.lexicalKey?h.dataset.lexicalKey:a.get(h)??null;if(!_||m===_)return;const v=m;m=_,v!==null&&M(v),M(_)},B=(h,_)=>{const v=h.dataset.lexicalKey?h.dataset.lexicalKey:a.get(h)??null;!v||e.isReadonly()||(_.preventDefault(),e.editor.update(()=>{const A=l.$createNodeSelection();A.add(v),l.$setSelection(A)},{discrete:!0}),e.editor.focus())},V=()=>{const h=m;return!h||e.isReadonly()||!e.editor.getElementByKey(h)?!1:(e.editor.update(()=>{const _=l.$createNodeSelection();_.add(h),l.$setSelection(_)},{discrete:!0}),!0)},G=h=>{const _=h.target;if(!(_ instanceof HTMLElement))return;const v=_.closest(`.${Ce}`);v&&(h.preventDefault(),c=h.pointerType==="mouse"?null:v)},O=h=>{if(h.pointerType==="mouse"||!c)return;const _=h.target,v=_ instanceof HTMLElement?_.closest(".bridgerte__media-controls"):null,A=_ instanceof HTMLElement?_.closest(`.${Ce}`):null;A===c&&v&&(h.preventDefault(),h.stopPropagation(),x(A,v),b=!0),c=null},D=()=>{c=null},y=h=>{if(b){b=!1,h.preventDefault(),h.stopPropagation();return}const _=h.target;if(!(_ instanceof HTMLElement))return;const v=_.closest(`.${Ce}`),A=_.closest(".bridgerte__media-controls");!v||!A||(h.preventDefault(),h.stopPropagation(),x(v,A))},d=h=>{if(h.key!=="Backspace"&&h.key!=="Delete")return;const _=h.target;if(_ instanceof Node&&!e.root.contains(_)&&_!==document.body&&_!==document.documentElement||Sa(_)||!V())return;e.editor.dispatchCommand(h.key==="Backspace"?l.KEY_BACKSPACE_COMMAND:l.KEY_DELETE_COMMAND,h)&&(h.preventDefault(),h.stopPropagation())},E=e.editor.registerMutationListener(fe,h=>{h.forEach((_,v)=>{if(_==="destroyed"){w(v);return}M(v)})}),f=e.editor.registerUpdateListener(L),H=ht({root:e.root,content:n,getBlockFromTarget:Na,onBlockPointerDown:B,activateBlock:R,clearBlock:()=>R(null)});return t.className="bridgerte__media-controls-layer",e.root.append(t),t.addEventListener("pointerdown",G),t.addEventListener("pointerup",O),t.addEventListener("pointercancel",D),t.addEventListener("click",y),document.addEventListener("keydown",d,!0),n.addEventListener("scroll",L,{passive:!0}),window.addEventListener("resize",L),{destroy(){E(),f(),i!==null&&(mt(i),i=null),t.removeEventListener("pointerdown",G),t.removeEventListener("pointerup",O),t.removeEventListener("pointercancel",D),t.removeEventListener("click",y),document.removeEventListener("keydown",d,!0),H.destroy(),n.removeEventListener("scroll",L),window.removeEventListener("resize",L),r.forEach(h=>{var _;(_=o.get(h))==null||_(),h.remove()}),r.clear(),o.clear(),Array.from(s.keys()).forEach(P),a.clear(),t.remove()}}},Ia=["width","height"],oe=(e,t)=>{var r;const n=(r=e[t])==null?void 0:r.trim();return n||void 0},rt=(e,t)=>{const n=Number.parseInt(e[t]??"",10);return Number.isFinite(n)&&n>0?n:void 0},zt=(e,t)=>Ia.reduce((n,r)=>{const o=rt(t,r);return o===void 0?n:{...n,[r]:o}},e),Pa=(e,t)=>{if(e.type==="format.color"||e.type==="format.backgroundColor"||e.type==="format.fontSize"||e.type==="format.fontFamily"||e.type==="format.lineHeight")return t.value!==void 0?{...e,value:t.value}:e;if(e.type==="link.set"){const n=oe(t,"href"),r=oe(t,"text");return n?{...e,href:n,text:r}:null}if(e.type==="block.code")return t.language?{type:"block.code",language:t.language}:e;if(e.type==="block.setCodeLanguage")return t.language!==void 0?{...e,language:t.language}:e;if(e.type==="table.insert"){const n=rt(t,"rows"),r=rt(t,"cols");return n&&r?{type:"table.insert",rows:n,cols:r}:null}if(e.type==="media.insertImage"){const n=oe(t,"url");return n?zt({...e,url:n,alt:oe(t,"alt"),title:oe(t,"title")},t):null}if(e.type==="media.insertVideo"){const n=oe(t,"url");return n?zt({...e,url:n,poster:oe(t,"poster"),title:oe(t,"title")},t):null}return e},ce=e=>Math.min(Math.max(Math.round(e),0),255),ot=({r:e,g:t,b:n})=>`#${[e,t,n].map(r=>ce(r).toString(16).padStart(2,"0")).join("")}`,Pn=e=>{const n=e.trim().match(/^#([0-9a-f]{6})$/i);if(!n)return null;const r=n[1]??"";return{r:Number.parseInt(r.slice(0,2),16),g:Number.parseInt(r.slice(2,4),16),b:Number.parseInt(r.slice(4,6),16)}},$a=e=>{const t=e.trim().match(/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i);return t?{r:ce(Number(t[1])),g:ce(Number(t[2])),b:ce(Number(t[3]))}:null},Ye=e=>{const t=Pn(e)??$a(e);return t?ot(t):null},$n=e=>Math.min(Math.max(e,0),1),Aa=({r:e,g:t,b:n})=>{const r=ce(e)/255,o=ce(t)/255,a=ce(n)/255,s=Math.max(r,o,a),i=Math.min(r,o,a),g=s-i;let c=0;return g!==0&&(s===r?c=60*((o-a)/g%6):s===o?c=60*((a-r)/g+2):c=60*((r-o)/g+4)),{h:c<0?c+360:c,s:s===0?0:g/s,v:s}},Wt=({h:e,s:t,v:n})=>{const r=n*t,o=r*(1-Math.abs(e/60%2-1)),a=n-r;let s=0,i=0,g=0;return e<60?(s=r,i=o):e<120?(s=o,i=r):e<180?(i=r,g=o):e<240?(i=o,g=r):e<300?(s=o,g=r):(s=r,g=o),{r:(s+a)*255,g:(i+a)*255,b:(g+a)*255}},Ba=({h:e,s:t})=>{const n=e*Math.PI/180,r=$n(t)*50;return{x:50+Math.cos(n)*r,y:50+Math.sin(n)*r}},qt=(e,t)=>{const n=t.getBoundingClientRect(),r=n.left+n.width/2,o=n.top+n.height/2,a=e.clientX-r,s=e.clientY-o,i=Math.min(Math.sqrt(a*a+s*s),n.width/2),g=Math.atan2(s,a)*180/Math.PI;return{h:g<0?g+360:g,s:$n(i/(n.width/2)),v:1}},Da=["#000000","#ffffff"],Ha=e=>{var t;return(t=e.options)!=null&&t.length?e.options:Da.map(n=>({label:n,value:n}))},An=()=>{const e=document.createElement("section");return e.className="bridgerte__payload-panel-field",e},Oa=(e,t,n)=>{const r=An(),o=document.createElement("div");return o.className="bridgerte__payload-panel-option-list",e.options.forEach(a=>{const s=document.createElement("button");s.type="button",s.className="bridgerte__payload-panel-option",s.textContent=a.label,s.dataset.bridgertePayloadOption=a.value,s.dataset.active=t[e.name]===a.value?"true":"false",Q(s),s.addEventListener("pointerdown",i=>{i.preventDefault()}),s.addEventListener("click",()=>{n({...t,[e.name]:a.value})}),o.append(s)}),r.append(o),r},Fa=(e,t,n)=>{const r=An(),o=document.createElement("div"),a=document.createElement("div"),s=document.createElement("span"),i=document.createElement("div"),g=document.createElement("div"),c=Ha(e),b=c.length===2;let m={h:0,s:0,v:1},k=null;const P=u=>{const p=Ye(u);return!!(p&&c.some(S=>Ye(S.value)===p))},w=(u,p=!0)=>{const S=Ye(u);if(!S)return;t[e.name]=S,g.style.background=S,m=Aa(Pn(S)??{r:255,g:255,b:255});const N=Ba(m);a.dataset.active=p?"true":"false",g.dataset.empty="false",p&&(s.style.left=`${N.x}%`,s.style.top=`${N.y}%`)},T=()=>{const u=t[e.name];u&&n({...t,[e.name]:u})};r.className="bridgerte__payload-panel-field",o.className="bridgerte__payload-panel-color-picker",a.className="bridgerte__payload-panel-color-wheel",a.setAttribute("aria-label",`${e.label}选择区域`),s.className="bridgerte__payload-panel-color-wheel-handle",i.className="bridgerte__payload-panel-color-actions",i.dataset.layout=b?"sides":"grid",g.className="bridgerte__payload-panel-color-preview",g.dataset.empty="true",a.append(s),c.forEach(u=>{const p=document.createElement("button"),S=u.value;p.type="button",p.className="bridgerte__payload-panel-color-swatch",p.dataset.value=S,p.style.background=S,p.setAttribute("aria-label",`选择颜色 ${u.label}`),Q(p),p.addEventListener("pointerdown",N=>{N.preventDefault()}),p.addEventListener("click",()=>{w(S,!1),T()}),i.append(p)}),a.addEventListener("pointerdown",u=>{k=u.pointerId,a.setPointerCapture(u.pointerId),m=qt(u,a),w(ot(Wt(m))),u.preventDefault()}),a.addEventListener("pointermove",u=>{k===u.pointerId&&(m=qt(u,a),w(ot(Wt(m))))}),a.addEventListener("pointerup",u=>{k===u.pointerId&&(k=null,a.releasePointerCapture(u.pointerId),T())}),a.addEventListener("pointercancel",u=>{k===u.pointerId&&(k=null,a.releasePointerCapture(u.pointerId))});const I=t[e.name];return I&&w(I,!(b&&P(I))),o.append(a,i),r.append(o,g),r},za=(e,t,n)=>{const r=document.createElement("label"),o=document.createElement("input");return r.className="bridgerte__payload-panel-text-field",r.textContent=e.label,o.type=e.name==="href"||e.name==="url"?"url":"text",o.className="bridgerte__payload-panel-text-input",o.value=t[e.name]??"",o.placeholder=e.placeholder??"",o.spellcheck=!1,o.addEventListener("input",()=>{t[e.name]=o.value}),o.addEventListener("keydown",a=>{a.key==="Enter"&&(a.preventDefault(),n(t))}),r.append(o),r},Wa=(e,t,n)=>{const r=document.createElement("label"),o=document.createElement("input");return r.className="bridgerte__payload-panel-text-field",r.textContent=e.label,o.type="number",o.className="bridgerte__payload-panel-text-input",o.value=t[e.name]??"",o.placeholder=e.placeholder??"",e.min!==void 0&&(o.min=String(e.min)),e.max!==void 0&&(o.max=String(e.max)),e.step!==void 0&&(o.step=String(e.step)),o.addEventListener("input",()=>{t[e.name]=o.value}),o.addEventListener("keydown",a=>{a.key==="Enter"&&(a.preventDefault(),n(t))}),r.append(o),r},qa=({field:e,values:t,onSubmit:n})=>e.type==="color"?Fa(e,t,n):e.type==="text"?za(e,t,n):e.type==="number"?Wa(e,t,n):Oa(e,t,n),Ua=e=>{var t,n,r;return e.defaultValue??(e.type==="select"?(t=e.options[0])==null?void 0:t.value:void 0)??(e.type==="color"?(r=(n=e.options)==null?void 0:n[0])==null?void 0:r.value:void 0)??""},Va=(e,t)=>(t==null?void 0:t[e.name])??(e.type==="color"?"":Ua(e)),Ut=e=>e.some(t=>t.type==="text"||t.type==="number"),Ka=e=>{const t=e.querySelector(".bridgerte__payload-panel-text-input");queueMicrotask(()=>{t==null||t.focus(),t==null||t.select()})},ja=(e,t,n)=>{const r=document.createElement("div"),o=document.createElement("span"),a=(n==null?void 0:n(e))??null;if(r.className="bridgerte__payload-panel-title",o.textContent=e.panel.title,r.append(o),a){const s=document.createElement("button");s.type="button",s.className="bridgerte__payload-panel-clear",s.textContent="清除",s.setAttribute("aria-label",`清除${e.panel.title}`),Q(s),s.addEventListener("pointerdown",i=>{i.preventDefault()}),s.addEventListener("click",()=>{t(a)}),r.append(s)}return r},Ga=e=>e==="font-size"||e==="font-family"||e==="line-height"?"180px":"220px",Ya=3,Xa=3,Ja=10,Bn=10,Qa=16,Za=2,es=24,ts=()=>{var e;return typeof window<"u"&&((e=window.matchMedia)==null?void 0:e.call(window,"(hover: hover) and (pointer: fine)").matches)===!0},we=(e,t)=>{const n=Number.parseInt(e??"",10);return Number.isFinite(n)?Math.min(Math.max(n,t.min),t.max):t.defaultValue},ns=(e,t)=>e.type==="number"&&e.name===t,Vt=(e,t)=>typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):t,Kt=(e,t,n,r)=>{const o=e.find(b=>ns(b,t)),a=Vt(o==null?void 0:o.min,1),s=Vt(o==null?void 0:o.max,n),i=Math.max(a,s),g=Math.min(Math.max(r,a),i),c=we(o==null?void 0:o.defaultValue,{min:a,max:i,defaultValue:g});return{min:a,max:i,defaultValue:c}},Dn=e=>({rows:Kt(e,"rows",se.BRIDGERTE_TABLE_INSERT_MAX_ROWS,Ya),cols:Kt(e,"cols",se.BRIDGERTE_TABLE_INSERT_MAX_COLS,Xa)}),rs=e=>{const t=Math.min(e.cols.max,Bn);return`${t*Qa+Math.max(t-1,0)*Za+es}px`},os=({fields:e,values:t,onSubmit:n})=>{const r=Dn(e),o=document.createElement("section"),a=document.createElement("div"),s=document.createElement("div"),i=[],g=ts(),c=Math.min(r.rows.max,Ja),b=Math.min(r.cols.max,Bn),m={...r.rows,max:c,defaultValue:Math.min(r.rows.defaultValue,c)},k={...r.cols,max:b,defaultValue:Math.min(r.cols.defaultValue,b)};let P=we(t.rows,m),w=we(t.cols,k),T=null;const I=(C,L)=>{P=C,w=L,t.rows=String(C),t.cols=String(L),s.textContent=`${C} x ${L}`,i.forEach(x=>{const R=Number.parseInt(x.dataset.rows??"0",10),B=Number.parseInt(x.dataset.cols??"0",10);x.dataset.active=String(R<=C&&B<=L)})},u=C=>{var L;return((L=document.elementFromPoint(C.clientX,C.clientY))==null?void 0:L.closest(".bridgerte__payload-panel-table-cell"))??null},p=C=>{if(!C)return;const L=we(C.dataset.rows,m),x=we(C.dataset.cols,k);I(L,x)},S=()=>{n({...t,rows:String(P),cols:String(w)})},N=()=>{T=null},F=()=>{window.setTimeout(N,0)},M=(C,L)=>{if(C.detail>0&&T!==L){C.preventDefault(),C.stopPropagation();return}N(),p(L),S()};for(let C=1;C<=c;C+=1)for(let L=1;L<=b;L+=1){const x=document.createElement("button");x.type="button",x.className="bridgerte__payload-panel-table-cell",x.dataset.rows=String(C),x.dataset.cols=String(L),x.setAttribute("aria-label",`插入 ${C} 行 ${L} 列表格`),Q(x),x.addEventListener("pointerdown",R=>{T=x,p(x),R.preventDefault()}),x.addEventListener("pointerup",F),x.addEventListener("pointercancel",N),x.addEventListener("click",R=>{M(R,x)}),g&&x.addEventListener("pointerenter",()=>{p(x)}),i.push(x),a.append(x)}return o.className="bridgerte__payload-panel-field",a.className="bridgerte__payload-panel-table-grid",a.setAttribute("aria-label","选择表格行列"),a.style.setProperty("--bridgerte-payload-panel-table-cols",String(b)),s.className="bridgerte__payload-panel-table-status",s.setAttribute("aria-live","polite"),a.addEventListener("pointermove",C=>{g||p(u(C))}),I(P,w),o.append(a,s),o},as="bridgerte-payload-panel";let jt=0;const ss=()=>(jt+=1,`${as}-${jt}`),Le=e=>e.panel.id==="table-insert",is=(e,t)=>{const n=document.createElement("button");return n.type="button",n.className="bridgerte__payload-panel-submit",n.textContent="应用",Q(n),n.addEventListener("pointerdown",r=>{r.preventDefault()}),n.addEventListener("click",()=>{t(e)}),n},ls=e=>{let t=null,n={};const r=xn({root:e.editorRoot,className:"bridgerte__payload-panel",onBackdropClick:()=>{o()}});function o(){t=null,n={},r.close(),r.content.replaceChildren()}const a=c=>{var m;if(!t||t.readonly||e.isReadonly())return;const b=Pa(t.command,c);b&&((m=e.restoreEditorFocus)==null||m.call(e,()=>{o(),e.isReadonly()||e.executeCommand(b)}))},s=c=>{var b;!t||t.readonly||e.isReadonly()||(b=e.restoreEditorFocus)==null||b.call(e,()=>{o(),e.isReadonly()||e.executeCommand(c)})},i=c=>{n=c.panel.fields.reduce((m,k)=>(m[k.name]=Va(k,c.currentValues),m),{});const b=Le(c)?rs(Dn(c.panel.fields)):Ga(c.panel.id);r.element.style.width=`min(${b}, calc(100vw - 24px))`,r.content.append(ja(c,s,e.getClearCommand)),Le(c)?r.content.append(os({fields:c.panel.fields,values:n,onSubmit:a})):c.panel.fields.forEach(m=>{r.content.append(qa({field:m,values:n,onSubmit:a}))}),!Le(c)&&Ut(c.panel.fields)&&r.content.append(is(n,a)),r.open(c.anchorRect),!Le(c)&&Ut(c.panel.fields)&&Ka(r.content)};return{open:c=>{var k;o();const b={...c,id:ss(),readonly:e.isReadonly(),submit:a,cancel:o};if(t=b,((k=e.onRequest)==null?void 0:k.call(e,b))!==!0){if(b.readonly){o();return}i(c)}},close:o,destroy(){o(),r.destroy()}}},_e="bridgerte__table-controls-button",cs=["table-insert-row-after","table-delete-row","table-insert-column-after","table-delete-column","table-delete"],ds=()=>{const e=new Map(J.defaultMenuSchema.map(t=>[t.id,t]));return cs.map(t=>J.tableHeaderMenuItems.find(n=>n.id===t)??e.get(t)).filter(t=>t!==void 0)},bt=ds(),us=new Map(bt.map(e=>[e.id,e])),gs=e=>e.matches(".bridgerte__table")?e:e.querySelector(".bridgerte__table")??e,ms=(e,t)=>e.classList.contains("bridgerte__table-wrapper")?e:t.parentElement instanceof HTMLElement?t.parentElement:t,hs=e=>e.querySelector(".bridgerte__content")??e,ps=e=>e instanceof Element?e.closest(".bridgerte__table-wrapper"):null,fs=e=>{const t=e.getFirstChild();if(!U.$isTableRowNode(t))return null;const n=t.getFirstChild();return U.$isTableCellNode(n)?n:null},bs=e=>{const t=document.createElement("button");return t.type="button",t.className=_e,t.textContent=e.label,t.dataset.menuItemId=e.id,t.setAttribute("aria-label",e.label),t},ys=()=>{const e=document.createElement("div");return e.className="bridgerte__table-controls",e.contentEditable="false",e.setAttribute("aria-label","表格操作"),bt.forEach(t=>{e.append(bs(t))}),e},vs=e=>{const t=document.createElement("div"),n=hs(e.root),r=new Map,o=new Map,a=new Map,s=new Map;let i=null,g=0,c=null,b=!1,m=null;const k=y=>{var E;const d=r.get(y);d&&((E=o.get(d))==null||E(),o.delete(d),d.remove(),r.delete(y))},P=y=>{const d=s.get(y);d&&(s.delete(y),d.dismissListeners.forEach(E=>{E()}),d.dismissListeners.clear())},w=(y,d)=>{const E=e.root.getBoundingClientRect(),f=d.getBoundingClientRect(),H=f.bottom<E.top||f.top>E.bottom,h=Math.max(8,E.width-y.offsetWidth-8),_=Math.min(Math.max(f.left-E.left+8,8),h),v=Math.max(8,f.top-E.top-y.offsetHeight-8);y.hidden=H,y.style.transform=`translate(${_}px, ${v}px)`},T=y=>m===y,I=y=>{const d=e.editor.getElementByKey(y);if(!d){u(y);return}d.dataset.lexicalKey=y;const E=gs(d),f=ms(d,E);a.set(f,y);const H=r.get(y);if(!T(y)){u(y);return}if(M(y,f))return;if(H){w(H,f);return}const h=ys(),_=Q(h,{targetSelector:`.${_e}`});h.dataset.lexicalKey=y,r.set(y,h),o.set(h,_),t.append(h),w(h,f)},u=y=>{k(y),P(y),m===y&&(m=null)},p=()=>{i=null,a.forEach((y,d)=>{e.root.contains(d)||(a.delete(d),u(y))}),e.root.querySelectorAll(".bridgerte__table-wrapper").forEach(y=>{const d=y.dataset.lexicalKey;d&&(a.set(y,d),I(d))}),r.forEach((y,d)=>{I(d)}),m!==null&&I(m)},S=()=>{i===null&&(i=He(p))},N=y=>{e.editor.update(()=>{var E;const d=l.$getNodeByKey(y);d instanceof U.TableNode&&((E=fs(d))==null||E.selectStart())}),e.editor.focus()},F=(y,d)=>{N(y),e.executeCommand(d)},M=(y,d)=>{if(!e.onTableControlsRequest)return P(y),!1;const E=d.getBoundingClientRect(),f={x:E.left,y:E.top,width:E.width,height:E.height},H=bt.map($=>({type:"button",item:$,active:!1,disabled:e.isReadonly()})),h=`bridgerte-table-controls-${g+=1}`,_=[H.map($=>$.item.id).join("|"),Math.round(f.x),Math.round(f.y),Math.round(f.width),Math.round(f.height)].join("|"),v=s.get(y);if((v==null?void 0:v.signature)===_)return k(y),!0;const A=new Set;return e.onTableControlsRequest({id:h,items:H,readonly:e.isReadonly(),anchorRect:f,subscribeDismiss:$=>(A.add($),()=>{A.delete($)}),submit:$=>{var X;if(((X=s.get(y))==null?void 0:X.id)!==h)return;const q=ft(H,$);!q||q.disabled||F(y,q.item.command)},cancel:()=>{var $;(($=s.get(y))==null?void 0:$.id)===h&&P(y)}})===!0?(P(y),s.set(y,{id:h,signature:_,dismissListeners:A}),k(y),!0):(P(y),!1)},C=(y,d)=>{const E=d.dataset.lexicalKey,f=y.dataset.menuItemId,H=f?us.get(f):void 0;!E||!H||F(E,H.command)},L=y=>{if(!y){const f=m;m=null,f!==null&&I(f);return}const d=y.dataset.lexicalKey?y.dataset.lexicalKey:a.get(y)??null;if(!d||m===d)return;const E=m;m=d,E!==null&&I(E),I(d)},x=y=>{const d=y.target;if(!(d instanceof HTMLElement))return;const E=d.closest(`.${_e}`);E&&(y.preventDefault(),c=y.pointerType==="mouse"?null:E)},R=y=>{if(y.pointerType==="mouse"||!c)return;const d=y.target,E=d instanceof HTMLElement?d.closest(".bridgerte__table-controls"):null,f=d instanceof HTMLElement?d.closest(`.${_e}`):null;f===c&&E&&(y.preventDefault(),y.stopPropagation(),C(f,E),b=!0),c=null},B=()=>{c=null},V=y=>{if(b){b=!1,y.preventDefault(),y.stopPropagation();return}const d=y.target;if(!(d instanceof HTMLElement))return;const E=d.closest(`.${_e}`),f=d.closest(".bridgerte__table-controls");!E||!f||(y.preventDefault(),y.stopPropagation(),C(E,f))},G=e.editor.registerMutationListener(U.TableNode,y=>{y.forEach((d,E)=>{if(d==="destroyed"){u(E);return}I(E)})}),O=e.editor.registerUpdateListener(S),D=ht({root:e.root,content:n,getBlockFromTarget:ps,activateBlock:L,clearBlock:()=>L(null)});return t.className="bridgerte__table-controls-layer",e.root.append(t),t.addEventListener("pointerdown",x),t.addEventListener("pointerup",R),t.addEventListener("pointercancel",B),t.addEventListener("click",V),n.addEventListener("scroll",S,{passive:!0}),window.addEventListener("resize",S),{destroy(){G(),O(),i!==null&&(mt(i),i=null),t.removeEventListener("pointerdown",x),t.removeEventListener("pointerup",R),t.removeEventListener("pointercancel",B),t.removeEventListener("click",V),D.destroy(),n.removeEventListener("scroll",S),window.removeEventListener("resize",S),r.forEach(y=>{var d;(d=o.get(y))==null||d(),y.remove()}),r.clear(),o.clear(),Array.from(s.keys()).forEach(P),a.clear(),t.remove()}}},Cs=e=>{const t=ls({editorRoot:e.editorRoot,isReadonly:e.isReadonly,restoreEditorFocus:e.restoreEditorFocus,executeCommand:e.executeCommand,getClearCommand:e.getClearCommand,onRequest:e.onRequest}),n=da({editor:e.lexicalEditor,root:e.editorRoot,isReadonly:e.isReadonly,languagePanel:e.codeBlockLanguagePanel,payloadPanelConfig:e.payloadPanelConfig,onRequest:e.onRequest}),r=vs({editor:e.lexicalEditor,root:e.editorRoot,isReadonly:e.isReadonly,executeCommand:e.executeCommand,onTableControlsRequest:e.onTableControlsRequest}),o=La({editor:e.lexicalEditor,root:e.editorRoot,isReadonly:e.isReadonly,defaultWidthPercent:e.defaultMediaWidthPercent,executeCommand:e.executeCommand,mediaControlsConfig:e.mediaControlsConfig,menuLabels:e.menuLabels,onMediaControlsRequest:e.onMediaControlsRequest});return{payloadPanelController:t,codeBlockController:n,tableHeaderController:r,mediaControlsController:o,destroy(){t.destroy(),n.destroy(),r.destroy(),o.destroy()}}},ws=(e,t)=>{const n=document.createElement("div"),r=document.createElement("div"),o=document.createElement("div"),a=document.createElement("div");return e.classList.add("bridgerte"),e.textContent="",n.className="bridgerte__editor",r.className="bridgerte__body",o.className="bridgerte__content",a.className="bridgerte__placeholder",a.textContent=t.placeholder,a.setAttribute("aria-hidden","true"),o.dataset.placeholder=t.placeholder,o.setAttribute("role","textbox"),o.setAttribute("aria-multiline","true"),r.append(o,a),n.append(r),e.append(n),{rootElement:n,bodyElement:r,contentElement:o,placeholderElement:a}},_s=({editor:e})=>{let t=null;return{capture(){e.getEditorState().read(()=>{var n;t=((n=l.$getSelection())==null?void 0:n.clone())??null})},restore(){t&&e.update(()=>{l.$setSelection((t==null?void 0:t.clone())??null)})},clear(){t=null}}},ks=/((https?:\/\/|www\.)[^\s<>()]+[^\s<>().,;:!?])/i,Ms=/([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,})/i,Es={changeHandlers:[],excludeParents:[],matchers:[Y.createLinkMatcherWithRegExp(ks,e=>e.startsWith("http://")||e.startsWith("https://")?e:`https://${e}`),Y.createLinkMatcherWithRegExp(Ms,e=>`mailto:${e}`)]},xs=({editor:e})=>Y.registerAutoLink(e,Es),Ts=[".bridgerte__code-header",".bridgerte__code-block-controls",".bridgerte__code-block-control-button",".bridgerte__code-block-control",".bridgerte__code-block-controls-layer",".bridgerte__code-block-menu",".bridgerte__table-controls-layer",".bridgerte__table-controls",".bridgerte__media-controls-layer",".bridgerte__media-controls",".bridgerte__dialog-backdrop",".bridgerte__dialog",".bridgerte__payload-panel"].join(","),Ns=(e,t)=>{const n=e.anchorNode,r=e.focusNode;return n!==null&&r!==null&&t.contains(n)&&t.contains(r)},Ss=e=>{e.querySelectorAll(Ts).forEach(t=>{t.remove()}),e.querySelectorAll('[contenteditable="false"]').forEach(t=>{t.classList.contains("bridgerte__media")||t.remove()})},Rs=e=>{const t=e.ownerDocument.getSelection();if(!t||t.rangeCount===0||!Ns(t,e))return null;const n=t.getRangeAt(0).cloneContents();Ss(n);const r=e.ownerDocument.createElement("div");return r.append(n),{html:r.innerHTML,text:r.textContent??""}},Ls=({target:e,isReadonly:t})=>{const n=o=>{const a=Rs(e);!a||!o.clipboardData||(o.clipboardData.setData("text/html",a.html),o.clipboardData.setData("text/plain",a.text),o.preventDefault(),o.stopImmediatePropagation())},r=o=>{if(t()){n(o);return}n(o)};return e.addEventListener("copy",n,{capture:!0}),e.addEventListener("cut",r,{capture:!0}),()=>{e.removeEventListener("copy",n,{capture:!0}),e.removeEventListener("cut",r,{capture:!0})}},Ae=e=>e.getChildren().map(t=>l.$isLineBreakNode(t)?`
1
+ "use strict";var jn=Object.defineProperty;var Gn=(e,t,n)=>t in e?jn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ve=(e,t,n)=>Gn(e,typeof t!="symbol"?t+"":t,n);const Oe=require("./bridge.cjs"),se=require("./index-GaS65GL0.cjs"),l=require("lexical"),ie=require("@lexical/rich-text"),W=require("@lexical/code"),te=require("@lexical/list"),U=require("@lexical/table"),Y=require("@lexical/link"),dn=require("@lexical/history"),lt=require("@lexical/html"),ae=require("@lexical/selection"),Fe=require("@lexical/utils"),un=require("./index-DF8OhKI4.cjs"),J=require("./native-spec.cjs"),Z=require("@floating-ui/dom"),Yn=require("@lexical/code-core"),Be=require("./shikiHighlightData-DU78Iupf.cjs");var pe=typeof document<"u"?document.currentScript:null;const Xn=(e,t,n)=>{const r=l.$getRoot();if(r.getChildrenSize()===0){const o=l.$createParagraphNode();r.append(o),o.selectStart();return}if(n){e==null||e.selectEnd(),e||t==null||t.selectStart();return}t==null||t.selectStart(),t||e==null||e.selectEnd()},Jn=e=>l.$isParagraphNode(e)&&e.isEmpty(),gn=(e,t)=>{if(!l.$isParagraphNode(e))return null;const n=e.getChildren(),r=n.length===1?n[0]:null;return t(r)?r??null:null},Qn=(e,t)=>{const n=e.getParent();return gn(n,t)===e?n:null},Zn=(e,t,n,r)=>{const o=r??e,a=o.getPreviousSibling(),s=o.getNextSibling(),i=Jn(n)?n:null,g=i&&a===i?i.getPreviousSibling():a,c=i&&s===i?i.getNextSibling():s;o.remove(),i&&i.remove(),Xn(g,c,t)},er=e=>{const t=l.$getSelection();if(!l.$isNodeSelection(t))return null;const n=t.getNodes(),r=n[0];return n.length===1&&e(r)?r??null:null},tr=e=>e.getKey()==="root"?null:e.getTopLevelElement(),nr=e=>{const t=l.$getSelection();if(!l.$isRangeSelection(t)||!t.isCollapsed())return null;const n=t.anchor,r=n.getNode(),o=tr(r);if(!o||!l.$isElementNode(o))return null;if(l.$isElementNode(r)){const i=r.isEmpty()&&n.offset===0,g=r===o&&n.offset===0,c=r===o&&n.offset===o.getChildrenSize();return i||(e?g:c)?o:null}if(!(r instanceof l.TextNode))return null;const a=e?o.getFirstDescendant():o.getLastDescendant(),s=e?0:r.getTextContentSize();return a===r&&n.offset===s?o:null},rr=(e,t)=>{const n=nr(e),r=e?n==null?void 0:n.getPreviousSibling():n==null?void 0:n.getNextSibling();if(!r||!n)return null;if(t(r))return{blockNode:r,boundaryBlock:n};const o=gn(r,t);return o?{blockNode:o,boundaryBlock:n,wrapperBlock:r}:null},mn=(e,t,n)=>{const r=a=>{if(t())return!1;const s=er(n),i=s?null:rr(a,n),g=s??(i==null?void 0:i.blockNode);if(!g)return!1;const c=s?Qn(g,n):i==null?void 0:i.wrapperBlock;return Zn(g,a,i==null?void 0:i.boundaryBlock,c),!0},o=(a,s)=>{const i=r(s);return i&&a.preventDefault(),i};return[e.registerCommand(l.KEY_BACKSPACE_COMMAND,a=>o(a,!0),l.COMMAND_PRIORITY_HIGH),e.registerCommand(l.KEY_DELETE_COMMAND,a=>o(a,!1),l.COMMAND_PRIORITY_HIGH),e.registerCommand(l.DELETE_CHARACTER_COMMAND,a=>r(a),l.COMMAND_PRIORITY_HIGH)]},or="bridgerte-media",ar=e=>(e==null?void 0:e.getType())===or,sr=(e,t)=>mn(e,t,ar),Et="bridgerte-media",ir="Loading",xt=(e,t)=>`${e}:${t}`,le=e=>typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):void 0,Tt=e=>typeof e=="number"&&Number.isFinite(e)?Math.min(Math.max(e,0),100):void 0,lr=e=>e===20||e===50||e===100,et=e=>lr(e)?e:void 0,tt=e=>e==="center"||e==="right"?e:void 0,cr=e=>e.status==="error"?e.errorMessage??"媒体加载失败":ir,dr=(e,t)=>{e.dataset.statusText=t,e.setAttribute("aria-label",t)},ur=(e,t)=>!t||e.status===void 0||e.status==="success",Ke=(e,t,n)=>{n&&e.setAttribute(t,n)},Nt=(e,t,n)=>{n!==void 0&&e.setAttribute(t,String(n))},St=(e,t)=>{const n=e.getAttribute(t),r=n===null?Number.NaN:Number(n);return le(r)},gr=e=>{const t=e.dataset.displayWidthPercent,n=t===void 0?Number.NaN:Number(t);return et(n)},mr=e=>tt(e.dataset.align),hr=e=>e.querySelector(".bridgerte__media-element")??e.querySelector("img, video");class fe extends l.DecoratorNode{constructor(n,r){super(r);Ve(this,"__payload");this.__payload={...n,assetId:n.assetId??xt(n.mediaType,n.url),width:le(n.width),height:le(n.height),duration:le(n.duration),progress:Tt(n.progress),displayWidthPercent:et(n.displayWidthPercent),align:tt(n.align)},this.__payload.displayWidthPercent===void 0&&delete this.__payload.displayWidthPercent,this.__payload.align===void 0&&delete this.__payload.align}static getType(){return Et}static clone(n){return new fe(n.__payload,n.__key)}createDOM(n){return this.createMediaElement(!0)}updateDOM(n,r){if(n.__payload===this.__payload)return!1;const o=this.createMediaElement(!0);return r.replaceWith(o),!0}exportDOM(n){return{element:this.createMediaElement(!1)}}static importDOM(){return{figure:n=>{const r=n instanceof HTMLElement?n:null;return r!=null&&r.classList.contains("bridgerte__media")?{conversion:br,priority:2}:null},img:()=>({conversion:pr,priority:1}),video:()=>({conversion:fr,priority:1})}}static importJSON(n){return ge(n).updateFromJSON(n)}exportJSON(){return{...super.exportJSON(),...this.__payload,type:Et}}getTextContent(){return this.__payload.title??this.__payload.alt??this.__payload.url}isInline(){return!1}getAsset(){const n=this.__payload,r={id:n.assetId??xt(n.mediaType,n.url),type:n.mediaType,url:n.url,status:n.status,progress:n.progress,poster:n.poster,width:n.width,height:n.height,duration:n.duration,mimeType:n.mimeType,size:n.size,errorMessage:n.errorMessage,external:!0};return n.displayWidthPercent!==void 0&&(r.displayWidthPercent=n.displayWidthPercent),n.align!==void 0&&(r.align=n.align),r}updatePayload(n){const r=this.getWritable();r.__payload={...r.__payload,...n,width:le(n.width??r.__payload.width),height:le(n.height??r.__payload.height),duration:le(n.duration??r.__payload.duration),progress:Tt(n.progress??r.__payload.progress),displayWidthPercent:Object.prototype.hasOwnProperty.call(n,"displayWidthPercent")?et(n.displayWidthPercent):r.__payload.displayWidthPercent,align:Object.prototype.hasOwnProperty.call(n,"align")?tt(n.align):r.__payload.align},r.__payload.displayWidthPercent===void 0&&delete r.__payload.displayWidthPercent,r.__payload.align===void 0&&delete r.__payload.align}createMediaElement(n){const r=this.__payload,o=document.createElement("figure"),a=r.mediaType==="image"?document.createElement("img"):document.createElement("video");let s=null;const i=()=>{o.dataset.loadState="loaded",s==null||s.remove(),s=null};o.className=`bridgerte__media bridgerte__media--${r.mediaType}`,o.contentEditable="false",o.dataset.assetId=r.assetId,o.dataset.mediaType=r.mediaType,o.dataset.status=r.status??"success",n&&(o.dataset.loadState=r.status==="error"?"error":"loading"),r.progress!==void 0&&(o.dataset.progress=String(r.progress)),r.align!==void 0&&(o.dataset.align=r.align),r.displayWidthPercent!==void 0&&(o.dataset.displayWidthPercent=String(r.displayWidthPercent),o.style.setProperty("--bridgerte-media-display-width",`${r.displayWidthPercent}%`)),r.width!==void 0&&r.height!==void 0&&(o.style.setProperty("--bridgerte-media-aspect-ratio",`${r.width} / ${r.height}`),n&&(o.dataset.hasSize="true")),a.className="bridgerte__media-element",n&&(a.addEventListener(r.mediaType==="image"?"load":"loadedmetadata",i,{once:!0}),a.addEventListener("error",()=>{o.dataset.loadState="error"},{once:!0}));const g=ur(r,n);return r.mediaType==="image"?(g&&a.setAttribute("src",r.url),a.setAttribute("loading","lazy"),Ke(a,"alt",r.alt??r.title)):(g&&a.setAttribute("src",r.url),a.setAttribute("controls","true"),a.setAttribute("preload","metadata"),Ke(a,"poster",r.poster)),Ke(a,"title",r.title),Nt(a,"width",r.width),Nt(a,"height",r.height),n&&(s=document.createElement("div"),s.className="bridgerte__media-placeholder",s.setAttribute("aria-hidden","true"),dr(s,cr(r)),o.append(s)),o.append(a),o}}const pr=e=>{const t=e instanceof HTMLImageElement?e:null;return{node:t!=null&&t.src?ge({mediaType:"image",url:t.src,alt:t.alt,title:t.title,width:t.width,height:t.height,status:"success"}):null}},fr=e=>{const t=e instanceof HTMLVideoElement?e:null;return{node:t!=null&&t.src?ge({mediaType:"video",url:t.src,poster:t.poster,title:t.title,width:t.videoWidth||t.width,height:t.videoHeight||t.height,status:"success"}):null}},br=e=>{const t=e instanceof HTMLElement?e:null;if(!(t!=null&&t.classList.contains("bridgerte__media")))return{node:null};const n=hr(t);return n!=null&&n.src?{node:ge({mediaType:n instanceof HTMLVideoElement?"video":"image",url:n.src,alt:n instanceof HTMLImageElement&&n.alt||void 0,poster:n instanceof HTMLVideoElement&&n.poster||void 0,title:n.title||void 0,width:St(n,"width"),height:St(n,"height"),displayWidthPercent:gr(t),align:mr(t),assetId:t.dataset.assetId,status:"success"})}:{node:null}},ge=e=>l.$applyNodeReplacement(new fe(e)),yr=e=>ge({mediaType:"image",url:e.url,alt:e.alt,title:e.title,width:e.width,height:e.height,displayWidthPercent:e.displayWidthPercent,align:e.align,assetId:e.assetId,status:"success"}),vr=e=>ge({mediaType:"video",url:e.url,poster:e.poster,title:e.title,width:e.width,height:e.height,displayWidthPercent:e.displayWidthPercent,align:e.align,assetId:e.assetId,status:"success"}),hn=e=>e instanceof fe,ke=e=>{const t=n=>{if(hn(n)&&n.getAsset().id===e)return n;if(!l.$isElementNode(n))return null;for(const r of n.getChildren()){const o=t(r);if(o)return o}return null};return t(l.$getRoot())},Cr=".bridgerte__table-cell",wr="75px",_r="1px solid black",kr="top",Mr="start",Er=new Set(["#f2f3f5","rgb(242,243,245)"]),pn=e=>e.trim().toLowerCase().replace(/\s+/g," "),xr=e=>pn(e).replace(/\s*,\s*/g,","),Ne=(e,t,n)=>{pn(e.getPropertyValue(t))===n&&e.removeProperty(t)},Tr=(e,t)=>{const n=xr(t.getPropertyValue("background-color"));(e.classList.contains("bridgerte__table-cell--header")||e.tagName.toLowerCase()==="th")&&Er.has(n)&&t.removeProperty("background-color")},Nr=e=>{var t;((t=e.getAttribute("style"))==null?void 0:t.trim())===""&&e.removeAttribute("style")},fn=e=>{if(!e||!e.includes("bridgerte__table-cell"))return e;const t=document.createElement("template");return t.innerHTML=e,t.content.querySelectorAll(Cr).forEach(n=>{const{style:r}=n;Ne(r,"border",_r),Ne(r,"vertical-align",kr),Ne(r,"text-align",Mr),Ne(r,"width",wr),Tr(n,r),Nr(n)}),t.innerHTML},bn={root:{type:"root",version:1,children:[]}};function nt(e={}){return{html:e.html??"",json:e.json??bn,plainText:e.plainText??"",assets:e.assets??[],version:e.version??se.BRIDGERTE_CONTENT_VERSION}}const Sr=e=>e.toJSON(),Lr=e=>{var t;return((t=e.root.children)==null?void 0:t.length)===0},Rr=e=>{var t;return e.nodeType===Node.TEXT_NODE?((t=e.textContent)==null?void 0:t.trim())==="":e.nodeType===Node.ELEMENT_NODE&&e.tagName==="BR"},Ir=e=>{const t=Array.from(e.childNodes).filter(a=>!Rr(a)),n=t.length===1?t[0]:null;if(!(n instanceof Element))return null;const r=n.tagName==="IMG"||n.tagName==="VIDEO",o=n.tagName==="FIGURE"&&n.classList.contains("bridgerte__media");return r||o?n:null},Pr=e=>{e.body.querySelectorAll("p").forEach(t=>{const n=Ir(t);n&&t.replaceWith(n)})},$r=e=>e.read(()=>{const t=new Map,n=r=>{l.$isElementNode(r)&&r.getChildren().forEach(o=>{if(hn(o)){const a=o.getAsset();t.set(a.id,a);return}l.$isElementNode(o)&&n(o)})};return n(l.$getRoot()),[...t.values()]}),yn=(e,t)=>{const n=fn(t.read(()=>lt.$generateHtmlFromNodes(t))),r=e.read(()=>l.$getRoot().getTextContent()),o=$r(e);return{html:n,json:Sr(e),plainText:r,assets:o,version:se.BRIDGERTE_CONTENT_VERSION}},Ar=(e,t)=>{const n=nt(t);return vn(e,n),yn(e.getEditorState(),e)},vn=(e,t)=>{if(t.json!==bn&&!Lr(t.json)){const o=t.json;e.setEditorState(e.parseEditorState(o));return}if(!t.html){e.update(()=>{const o=l.$getRoot();o.clear(),o.append(l.$createParagraphNode())},{discrete:!0});return}const r=new DOMParser().parseFromString(fn(t.html),"text/html");Pr(r),e.update(()=>{const o=l.$getRoot(),a=lt.$generateNodesFromDOM(e,r);o.clear(),o.append(...a)},{discrete:!0})},Br="bridgerte-divider",Dr=e=>(e==null?void 0:e.getType())===Br,Hr=(e,t)=>mn(e,t,Dr);class Me extends l.DecoratorNode{static getType(){return"bridgerte-divider"}static clone(t){return new Me(t.__key)}constructor(t){super(t)}createDOM(t){const n=document.createElement("hr");return n.className="bridgerte__divider",n}updateDOM(){return!1}exportDOM(t){const n=document.createElement("hr");return n.className="bridgerte__divider",{element:n}}static importDOM(){return{hr:()=>({conversion:Or,priority:0})}}static importJSON(t){return ct().updateFromJSON(t)}exportJSON(){return{...super.exportJSON(),type:Me.getType()}}getTextContent(){return`
2
+ `}isInline(){return!1}}const Or=e=>({node:ct()}),ct=()=>l.$applyNodeReplacement(new Me),Lt="bridgerte-mention",dt="mention",Cn=e=>e.label.startsWith("@")?e.label:`@${e.label}`,Fr=e=>{const t=document.createElement("span");return t.className="bridgerte__mention",t.dataset.type=dt,t.dataset.id=e.id,t.dataset.value=e.value,t.contentEditable="false",t.textContent=Cn(e),e.description&&(t.dataset.description=e.description),t};class xe extends l.TextNode{constructor(n,r=Cn(n),o){super(r,o);Ve(this,"__item");this.__item=n}static getType(){return Lt}static clone(n){return new xe(n.__item,n.__text,n.__key)}createDOM(n){const r=super.createDOM(n);return r.className="bridgerte__mention",r.dataset.type=dt,r.dataset.id=this.__item.id,r.dataset.value=this.__item.value,r.contentEditable="false",this.__item.description&&(r.dataset.description=this.__item.description),r}updateDOM(n,r,o){return super.updateDOM(n,r,o)?!0:(r.dataset.id=this.__item.id,r.dataset.value=this.__item.value,this.__item.description?r.dataset.description=this.__item.description:delete r.dataset.description,!1)}exportDOM(n){return{element:Fr(this.__item)}}static importDOM(){return{span:()=>({conversion:zr,priority:2})}}static importJSON(n){return ut(n).updateFromJSON(n)}exportJSON(){return{...super.exportJSON(),...this.__item,type:Lt}}isTextEntity(){return!0}isToken(){return!0}getMentionItem(){return this.__item}}const zr=e=>{var a;const t=e instanceof HTMLElement?e:null;if(!t||t.dataset.type!==dt)return{node:null};const n=((a=t.textContent)==null?void 0:a.replace(/^@/,""))||t.dataset.value||"",r=t.dataset.id||t.dataset.value||n,o=t.dataset.value||r;return!n||!r||!o?{node:null}:{node:ut({id:r,label:n,value:o,description:t.dataset.description})}},ut=e=>l.$applyNodeReplacement(new xe(e).setMode("token")),Rt=e=>e instanceof xe,Wr="请输入内容",qr=()=>{const t=l.$getRoot().getChildren();if(t.length===0)return!0;if(t.length>1)return!1;const n=t[0];return l.$isParagraphNode(n)&&n.getChildrenSize()===0},Ur=({editor:e,contentElement:t})=>{const n=e.getEditorState().read(qr);t.dataset.empty=String(n)},Vr=({contentElement:e,placeholderElement:t})=>{const n=window.getComputedStyle(e).padding,r=e.style.padding,o=n||r;o&&(t.style.padding=o)},Kr=({editor:e,contentElement:t,isReadonly:n})=>{const r=o=>{n()||t.dataset.empty!=="true"||o.button===0&&(o.preventDefault(),e.focus(()=>{e.update(()=>{l.$getRoot().selectStart()})}))};return t.addEventListener("pointerdown",r),()=>{t.removeEventListener("pointerdown",r)}},jr=[{command:"format.bold",format:"bold"},{command:"format.italic",format:"italic"},{command:"format.underline",format:"underline"},{command:"format.strike",format:"strikethrough"},{command:"format.inlineCode",format:"code"},{command:"format.superscript",format:"superscript"},{command:"format.subscript",format:"subscript"}],Gr=[{command:"format.color",property:"color"},{command:"format.backgroundColor",property:"background-color"},{command:"format.fontSize",property:"font-size"},{command:"format.fontFamily",property:"font-family"},{command:"format.lineHeight",property:"line-height"}],Yr=[{command:"list.ordered",listType:"ordered"},{command:"list.unordered",listType:"unordered"},{command:"list.todo",listType:"todo"}],Xr=["media.pickImage","media.pickVideo"],wn=()=>{const e=l.$getSelection();if(!l.$isRangeSelection(e))return null;const t=e.anchor.getNode();return t.getKey()==="root"?t:t.getTopLevelElementOrThrow()},Jr=()=>{const e=wn();if(!e)return null;if(ie.$isHeadingNode(e)){const t=Number(e.getTag().replace("h",""));return{command:"block.heading",value:Number.isNaN(t)?void 0:t}}if(ie.$isQuoteNode(e))return{command:"block.quote"};if(W.$isCodeNode(e)){const t=e.getLatest();return{command:"block.code",value:W.$isCodeNode(t)?t.getLanguage()??"":""}}return{command:"block.paragraph"}},Qr=()=>{const e=wn();if(!e||!("getFormatType"in e))return;const t=e.getFormatType();return t===""?void 0:t},Zr=()=>{const e=l.$getSelection();if(!l.$isRangeSelection(e))return null;const t=e.anchor.getNode(),n=te.$isListNode(t)?t:Fe.$getNearestNodeOfType(t,te.ListNode);return n?n.getListType()==="check"?"todo":n.getTag()==="ol"?"ordered":"unordered":null},eo=e=>{const t=l.$getSelection();if(!l.$isRangeSelection(t))return;const n=ae.$getSelectionStyleValueForProperty(t,e);return n===""?void 0:n},to=()=>{const e=l.$getSelection();if(!l.$isRangeSelection(e))return!1;const t=e.anchor.getNode(),n=t.getParent();return Y.$isLinkNode(t)||Y.$isLinkNode(n)},no=e=>{const t=l.$getSelection(),n=l.$isRangeSelection(t),r=Jr(),o=Zr(),a=Qr(),s=to(),i=e.readonly||!n,g=jr.map(k=>({command:k.command,active:n&&t.hasFormat(k.format),disabled:i})),c=Gr.map(k=>{const P=eo(k.property);return{command:k.command,active:P!==void 0,disabled:i,value:P}}),b=Yr.map(k=>({command:k.command,active:o===k.listType,disabled:i})),m=Xr.map(k=>({command:k,active:!1,disabled:e.readonly||!e.canUploadMedia}));return[...g,{command:"format.clear",active:!1,disabled:i},...c,{command:"block.heading",active:(r==null?void 0:r.command)==="block.heading",disabled:i,value:(r==null?void 0:r.command)==="block.heading"?r.value:void 0},{command:"block.paragraph",active:(r==null?void 0:r.command)==="block.paragraph",disabled:i},{command:"block.quote",active:(r==null?void 0:r.command)==="block.quote",disabled:i},{command:"block.divider",active:!1,disabled:e.readonly},{command:"block.code",active:(r==null?void 0:r.command)==="block.code",disabled:e.readonly,value:(r==null?void 0:r.command)==="block.code"?r.value:void 0},...b,{command:"align",active:a!==void 0,disabled:i,value:a},{command:"link.set",active:s,disabled:i},{command:"link.unset",active:!1,disabled:i||!s},{command:"link.open",active:!1,disabled:e.readonly||!s},{command:"indent.increase",active:!1,disabled:i},{command:"indent.decrease",active:!1,disabled:i},{command:"history.undo",active:!1,disabled:e.readonly||!e.canUndo},{command:"history.redo",active:!1,disabled:e.readonly||!e.canRedo},{command:"content.clear",active:!1,disabled:e.readonly},...m,{command:"table.insert",active:!1,disabled:e.readonly},{command:"fullscreen.toggle",active:!1,disabled:!1}]},ro=(e,t)=>e.length===t.length&&e.every((n,r)=>{const o=t[r];return o!==void 0&&n.command===o.command&&n.active===o.active&&n.disabled===o.disabled&&n.value===o.value}),re=(e,t,n,r)=>{var o;try{(o=e.onError)==null||o.call(e,{code:t,message:n,cause:r})}catch(a){console.error("[BridgeRTE] onError callback failed.",a)}},oo=(e,t)=>{var n;try{(n=e.onChange)==null||n.call(e,t)}catch(r){re(e,"callback.onChange","onChange callback failed.",r)}},ao=(e,t)=>{var n;try{(n=e.onContentChange)==null||n.call(e,t)}catch(r){re(e,"callback.onContentChange","onContentChange callback failed.",r)}},so=(e,t)=>{var n;try{(n=e.onCommandStateChange)==null||n.call(e,[...t])}catch(r){re(e,"callback.onCommandStateChange","onCommandStateChange callback failed.",r)}},io=e=>{var t;try{(t=e.onFocus)==null||t.call(e)}catch(n){re(e,"callback.onFocus","onFocus callback failed.",n)}},lo=e=>{var t;try{(t=e.onBlur)==null||t.call(e)}catch(n){re(e,"callback.onBlur","onBlur callback failed.",n)}},co=(e,t)=>{var n;try{(n=e.onReady)==null||n.call(e,t)}catch(r){re(e,"callback.onReady","onReady callback failed.",r)}},uo=({lexicalEditor:e,options:t,isDestroyed:n,canUploadMedia:r,isReadonly:o})=>{let a=!1,s=!1,i=[];const g=new Set,c=()=>{const m=[...i];g.forEach(k=>{try{k(m)}catch(P){re(t,"callback.commandStateSubscriber","Command state subscriber failed.",P)}})},b=(m=!0)=>{if(n())return;const k=i;e.getEditorState().read(()=>{i=no({canUndo:a,canRedo:s,readonly:o(),canUploadMedia:r()})}),m&&!ro(k,i)&&(so(t,i),c())};return{refreshCommandStates:b,getCommandStates(){return b(!1),[...i]},subscribeCommandStateChange(m){return n()?()=>{}:(g.add(m),m([...i]),()=>{g.delete(m)})},setCanUndo(m){a=m,b()},setCanRedo(m){s=m,b()},setHistoryAvailability(m,k){a=m,s=k,b()},destroy(){g.clear()}}},go=e=>`upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`,mo=e=>typeof URL.createObjectURL=="function"?URL.createObjectURL(e):e.name,ve=e=>{typeof URL.revokeObjectURL=="function"&&e.startsWith("blob:")&&URL.revokeObjectURL(e)},It=e=>({name:e.name,mimeType:e.type||void 0,size:e.size,data:e}),ho=e=>typeof DOMException<"u"&&e instanceof DOMException&&e.name==="AbortError",po=120,fo=e=>new Promise(t=>{const n=window.setTimeout(()=>{t({})},po);e.then(r=>{window.clearTimeout(n),t(r)})}),bo=e=>new Promise(t=>{const n=new Image,r=()=>{n.onload=null,n.onerror=null};n.onload=()=>{const o={width:n.naturalWidth||void 0,height:n.naturalHeight||void 0};r(),t(o)},n.onerror=()=>{r(),t({})},n.src=e}),yo=e=>new Promise(t=>{const n=document.createElement("video"),r=()=>{n.removeAttribute("src"),n.load(),n.onloadedmetadata=null,n.onerror=null};n.preload="metadata",n.onloadedmetadata=()=>{const o={width:n.videoWidth||void 0,height:n.videoHeight||void 0,duration:Number.isFinite(n.duration)?n.duration:void 0};r(),t(o)},n.onerror=()=>{r(),t({})},n.src=e,n.load()}),vo=(e,t)=>t.startsWith("blob:")?fo(e==="image"?bo(t):yo(t)):Promise.resolve({}),Co=(e,t)=>({...e,width:e.width??t.width,height:e.height??t.height,duration:e.duration??t.duration}),wo=({container:e,lexicalEditor:t,options:n,isDestroyed:r})=>{const o=new Map;let a=0;const s=(u,p)=>{t.update(()=>{var S;(S=ke(u))==null||S.updatePayload(p)})},i=u=>{let p=null;return t.update(()=>{const S=ke(u);if(!S)return;const N=S.getAsset();p={mediaType:N.type,url:N.url,assetId:N.id,status:N.status,progress:N.progress,poster:N.poster,width:N.width,height:N.height,duration:N.duration,mimeType:N.mimeType,size:N.size,displayWidthPercent:N.displayWidthPercent,align:N.align,errorMessage:N.errorMessage},S.remove()}),p},g=(u,p)=>{const S=o.get(u);return(S==null?void 0:S.runId)===p},c=u=>{var p;(p=u.abortController)==null||p.abort()},b=(u,p)=>{const S=o.get(u);return S?(c(S),ve(S.previewUrl),o.delete(u),S.resolveMediaNodeReady(),!0):!1},m=(u,p,S,N,F)=>{t.update(()=>{const M=ge({mediaType:u,url:N,assetId:S,status:"uploading",progress:0,title:p.name,mimeType:p.type||void 0,size:p.size,width:F.width,height:F.height,duration:F.duration}),C=l.$createParagraphNode();l.$getSelection()||l.$getRoot().selectEnd(),l.$insertNodes([M,C]),C.selectStart()},{discrete:!0})},k=(u,p,S,N)=>{s(p,{mediaType:u,url:N.url,poster:N.poster,width:N.width,height:N.height,duration:N.duration,mimeType:N.mimeType,size:N.size,status:"success",progress:100,errorMessage:void 0}),ve(S)},P=(u,p,S)=>{var N;ho(S)||(s(p,{mediaType:u,status:"error",errorMessage:"上传失败"}),(N=n.onUploadError)==null||N.call(n,{assetId:p,type:u,cause:S}))},w=u=>{const p=n.uploadAdapter;if(!p)return;const S=typeof AbortController=="function"?new AbortController:null,N=a+1;a=N,u.runId=N,u.abortController=S,o.set(u.assetId,u);const F={assetId:u.assetId,signal:S==null?void 0:S.signal,onProgress:C=>{u.latestProgress=C,!(!g(u.assetId,N)||r())&&u.isMediaNodeInserted&&s(u.assetId,{mediaType:u.type,status:"uploading",progress:C})}};let M;try{M=u.type==="image"?p.uploadImage(It(u.file),F):p.uploadVideo(It(u.file),F)}catch(C){u.mediaNodeReady.then(()=>{!g(u.assetId,N)||r()||P(u.type,u.assetId,C)});return}M.then(async C=>{await u.mediaNodeReady,!(r()||!g(u.assetId,N))&&(k(u.type,u.assetId,u.previewUrl,Co(C,u.localMetadata)),o.delete(u.assetId))}).catch(async C=>{await u.mediaNodeReady,!(r()||!g(u.assetId,N))&&P(u.type,u.assetId,C)})},T=(u,p)=>{if(!n.uploadAdapter)return;const S=go(u),N=mo(p);let F=()=>{};const M=new Promise(R=>{F=R}),C={assetId:S,type:u,file:p,previewUrl:N,localMetadata:{},latestProgress:0,isMediaNodeInserted:!1,mediaNodeReady:M,resolveMediaNodeReady:F,runId:0,abortController:null};w(C),vo(u,N).then(R=>{if(C.localMetadata=R,r()||!o.has(S)){ve(N),C.resolveMediaNodeReady();return}m(u,p,S,N,R),C.isMediaNodeInserted=!0,F(),C.latestProgress>0&&s(S,{mediaType:u,status:"uploading",progress:C.latestProgress})})};return{pickMediaFile:u=>{if(!n.uploadAdapter)return;const p=e.ownerDocument.createElement("input");p.type="file",p.accept=u==="image"?"image/*":"video/*",p.style.display="none",p.addEventListener("change",()=>{var N;const S=(N=p.files)==null?void 0:N[0];p.remove(),S&&T(u,S)},{once:!0}),e.append(p),p.click()},uploadMediaFile:T,removeMedia(u){const p=i(u);!b(u)&&(p!=null&&p.url.startsWith("blob:"))&&ve(p.url)},retryMedia(u){const p=o.get(u);!p||!n.uploadAdapter||(c(p),s(u,{mediaType:p.type,url:p.previewUrl,status:"uploading",progress:0,errorMessage:void 0}),w(p))},destroy(){o.forEach(u=>{c(u),ve(u.previewUrl),u.resolveMediaNodeReady()}),o.clear()}}},_n=e=>W.$createCodeNode(e),_o={1:"h1",2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},ko={code:"bridgerte__code-block",codeHighlight:{attr:"bridgerte__code-token bridgerte__code-token--attr","attr-name":"bridgerte__code-token bridgerte__code-token--attr-name","attr-value":"bridgerte__code-token bridgerte__code-token--attr-value",boolean:"bridgerte__code-token bridgerte__code-token--boolean",builtin:"bridgerte__code-token bridgerte__code-token--builtin","class-name":"bridgerte__code-token bridgerte__code-token--class-name",comment:"bridgerte__code-token bridgerte__code-token--comment",constant:"bridgerte__code-token bridgerte__code-token--constant",deleted:"bridgerte__code-token bridgerte__code-token--deleted",function:"bridgerte__code-token bridgerte__code-token--function",inserted:"bridgerte__code-token bridgerte__code-token--inserted",keyword:"bridgerte__code-token bridgerte__code-token--keyword",namespace:"bridgerte__code-token bridgerte__code-token--namespace",number:"bridgerte__code-token bridgerte__code-token--number",operator:"bridgerte__code-token bridgerte__code-token--operator",prefix:"bridgerte__code-token bridgerte__code-token--prefix",property:"bridgerte__code-token bridgerte__code-token--property",punctuation:"bridgerte__code-token bridgerte__code-token--punctuation",regex:"bridgerte__code-token bridgerte__code-token--regex",selector:"bridgerte__code-token bridgerte__code-token--selector",string:"bridgerte__code-token bridgerte__code-token--string",tag:"bridgerte__code-token bridgerte__code-token--tag",unchanged:"bridgerte__code-token bridgerte__code-token--unchanged",url:"bridgerte__code-token bridgerte__code-token--url",variable:"bridgerte__code-token bridgerte__code-token--variable"},heading:{h1:"bridgerte__heading bridgerte__heading--h1",h2:"bridgerte__heading bridgerte__heading--h2",h3:"bridgerte__heading bridgerte__heading--h3",h4:"bridgerte__heading bridgerte__heading--h4",h5:"bridgerte__heading bridgerte__heading--h5",h6:"bridgerte__heading bridgerte__heading--h6"},list:{checklist:"bridgerte__list bridgerte__list--todo",ol:"bridgerte__list",ul:"bridgerte__list",listitem:"bridgerte__list-item",listitemChecked:"bridgerte__list-item bridgerte__list-item--checked",listitemUnchecked:"bridgerte__list-item bridgerte__list-item--unchecked"},paragraph:"bridgerte__paragraph",quote:"bridgerte__quote",root:"bridgerte__content-root",text:{bold:"bridgerte__text--bold",code:"bridgerte__code",italic:"bridgerte__text--italic",strikethrough:"bridgerte__text--strike",underline:"bridgerte__text--underline",underlineStrikethrough:"bridgerte__text--underline-strike"},table:"bridgerte__table",tableCell:"bridgerte__table-cell",tableCellHeader:"bridgerte__table-cell bridgerte__table-cell--header",tableRow:"bridgerte__table-row",tableScrollableWrapper:"bridgerte__table-wrapper"},Mo=e=>({setBlockHeading:c=>{e.update(()=>{const b=l.$getSelection();l.$isRangeSelection(b)&&ae.$setBlocksType(b,()=>ie.$createHeadingNode(_o[c]))})},setParagraphBlock:()=>{e.update(()=>{const c=l.$getSelection();l.$isRangeSelection(c)&&ae.$setBlocksType(c,()=>l.$createParagraphNode())})},setQuoteBlock:()=>{e.update(()=>{const c=l.$getSelection();l.$isRangeSelection(c)&&ae.$setBlocksType(c,()=>ie.$createQuoteNode())})},insertDividerBlock:()=>{e.update(()=>{const c=l.$createParagraphNode();l.$insertNodes([ct(),c]),c.selectStart()})},insertCodeBlock:c=>{e.update(()=>{const b=_n(c),m=l.$createParagraphNode();l.$insertNodes([b,m]),b.selectEnd()})},setSelectedCodeBlockLanguage:c=>{e.update(()=>{const b=l.$getSelection();if(!l.$isRangeSelection(b))return;const m=b.anchor.getNode(),k=m.getKey()==="root"?m:m.getTopLevelElementOrThrow();W.$isCodeNode(k)&&k.setLanguage(c)})},clearContent:()=>{e.update(()=>{const c=l.$getRoot();c.clear(),c.append(l.$createParagraphNode())})},formatAlign:c=>{e.dispatchCommand(l.FORMAT_ELEMENT_COMMAND,c)}}),Eo=e=>({setLink:(o,a)=>{e.update(()=>{const s=l.$getSelection(),i=Y.formatUrl(o),g=(a==null?void 0:a.trim())||o.trim();if(!(!l.$isRangeSelection(s)||!o.trim())){if(s.isCollapsed()){const c=Y.$createLinkNode(i,{rel:"noreferrer noopener",target:"_blank"});c.append(l.$createTextNode(g)),l.$insertNodes([c]);return}Y.$toggleLink(i,{rel:"noreferrer noopener",target:"_blank"})}})},unsetLink:()=>{e.update(()=>{Y.$toggleLink(null)})},openSelectedLink:()=>{if(typeof window>"u")return;const o=e.getEditorState().read(()=>{const a=l.$getSelection();if(!l.$isRangeSelection(a))return null;const s=a.anchor.getNode(),i=Y.$isLinkNode(s)?s:Fe.$findMatchingParent(s,Y.$isLinkNode);return i?{target:i.getTarget()??"_blank",url:i.sanitizeUrl(i.getURL())}:null});o&&window.open(o.url,o.target,"noopener,noreferrer")}}),xo=e=>({insertImage:s=>{s.url.trim()&&e.update(()=>{const i=l.$createParagraphNode();l.$insertNodes([yr(s),i]),i.selectStart()})},insertVideo:s=>{s.url.trim()&&e.update(()=>{const i=l.$createParagraphNode();l.$insertNodes([vr(s),i]),i.selectStart()})},resizeMedia:s=>{e.update(()=>{var i;(i=ke(s.assetId))==null||i.updatePayload({displayWidthPercent:s.widthPercent})})},resetMediaSize:s=>{e.update(()=>{var i;(i=ke(s))==null||i.updatePayload({displayWidthPercent:void 0})})},alignMedia:s=>{e.update(()=>{var i;(i=ke(s.assetId))==null||i.updatePayload({align:s.value==="left"?void 0:s.value})})}}),To=e=>({insertMention:n=>{e.update(()=>{const r=l.$getSelection();l.$isRangeSelection(r)&&l.$insertNodes([ut(n),l.$createTextNode(" ")])})}}),No=e=>({clearSelectionFormat:()=>{e.update(()=>{const r=l.$getSelection();l.$isRangeSelection(r)&&(r.setFormat(0),ae.$patchStyleText(r,{color:null,"background-color":null,"font-size":null,"font-family":null,"line-height":null}))})},setSelectionStyle:(r,o)=>{e.update(()=>{const a=l.$getSelection();l.$isRangeSelection(a)&&ae.$patchStyleText(a,{[r]:o===""?null:o})})}}),So=20,Pt=(e,t)=>Number.isFinite(e)&&e>0?Math.min(Math.floor(e),t):1,Se=e=>Number.isFinite(e)&&(e??0)>0?Math.min(Math.floor(e??1),So):1,Le=()=>{const e=l.$getSelection();return!l.$isRangeSelection(e)&&!U.$isTableSelection(e)?!1:U.$findCellNode(e.anchor.getNode())!==null},Lo=e=>({insertTable:(i,g)=>{const c=Pt(i,se.BRIDGERTE_TABLE_INSERT_MAX_ROWS),b=Pt(g,se.BRIDGERTE_TABLE_INSERT_MAX_COLS);e.dispatchCommand(U.INSERT_TABLE_COMMAND,{rows:String(c),columns:String(b),includeHeaders:{rows:!0,columns:!1}})},insertTableRow:i=>{e.update(()=>{if(!Le())return;const g=Se(i.count);for(let c=0;c<g;c+=1)U.$insertTableRowAtSelection(i.direction!=="before")})},insertTableColumn:i=>{e.update(()=>{if(!Le())return;const g=Se(i.count);for(let c=0;c<g;c+=1)U.$insertTableColumnAtSelection(i.direction!=="before")})},deleteTableRow:i=>{e.update(()=>{const g=Se(i.count);for(let c=0;c<g;c+=1){if(!Le())return;U.$deleteTableRowAtSelection()}})},deleteTableColumn:i=>{e.update(()=>{const g=Se(i.count);for(let c=0;c<g;c+=1){if(!Le())return;U.$deleteTableColumnAtSelection()}})},deleteTable:()=>{e.update(()=>{const i=l.$getSelection();if(!l.$isRangeSelection(i)&&!U.$isTableSelection(i))return;const g=U.$findTableNode(i.anchor.getNode());if(!g)return;const c=l.$createParagraphNode();g.insertAfter(c),g.remove(),c.selectStart()})}}),Ro=e=>{const t=Lo(e);return{insertTable:n=>{t.insertTable(n.rows,n.cols)},insertTableRow:n=>{t.insertTableRow(n)},insertTableColumn:n=>{t.insertTableColumn(n)},deleteTableRow:n=>{t.deleteTableRow(n)},deleteTableColumn:n=>{t.deleteTableColumn(n)},deleteTable:()=>{t.deleteTable()}}},Io={"format.bold":"bold","format.italic":"italic","format.underline":"underline","format.strike":"strikethrough","format.inlineCode":"code","format.superscript":"superscript","format.subscript":"subscript"},Po={"list.ordered":te.INSERT_ORDERED_LIST_COMMAND,"list.unordered":te.INSERT_UNORDERED_LIST_COMMAND,"list.todo":te.INSERT_CHECK_LIST_COMMAND},$o={"indent.increase":l.INDENT_CONTENT_COMMAND,"indent.decrease":l.OUTDENT_CONTENT_COMMAND,"history.undo":l.UNDO_COMMAND,"history.redo":l.REDO_COMMAND},Ao={"format.color":"color","format.backgroundColor":"background-color","format.fontSize":"font-size","format.fontFamily":"font-family","format.lineHeight":"line-height"},Bo=({container:e,lexicalEditor:t,options:n,isDestroyed:r,isReadonly:o,reportError:a})=>{const s=wo({container:e,lexicalEditor:t,options:n,isDestroyed:r}),i=Mo(t),g=Eo(t),c=xo(t),b=To(t),m=No(t),k=Ro(t),P=()=>{var I,u;if(document.fullscreenElement){(I=document.exitFullscreen)==null||I.call(document).catch(p=>{a(n,"fullscreen.exit","Exit fullscreen failed.",p)});return}(u=e.requestFullscreen)==null||u.call(e).catch(p=>{a(n,"fullscreen.enter","Enter fullscreen failed.",p)})},w=(T=>{if(r()||o())return;const I=Io[T.type];if(I){t.dispatchCommand(l.FORMAT_TEXT_COMMAND,I);return}const u=Po[T.type];if(u){t.dispatchCommand(u,void 0);return}const p=$o[T.type];if(p){t.dispatchCommand(p,void 0);return}const S=Ao[T.type];if(S&&"value"in T){m.setSelectionStyle(S,T.value);return}switch(T.type){case"format.clear":m.clearSelectionFormat();return;case"block.heading":i.setBlockHeading(T.level);return;case"block.paragraph":i.setParagraphBlock();return;case"block.quote":i.setQuoteBlock();return;case"block.divider":i.insertDividerBlock();return;case"block.code":i.insertCodeBlock(T.language);return;case"block.setCodeLanguage":i.setSelectedCodeBlockLanguage(T.language);return;case"align":i.formatAlign(T.value);return;case"link.set":g.setLink(T.href,T.text);return;case"link.unset":g.unsetLink();return;case"link.open":g.openSelectedLink();return;case"mention.insert":b.insertMention(T.item);return;case"content.clear":i.clearContent();return;case"table.insert":k.insertTable(T);return;case"table.insertRow":k.insertTableRow(T);return;case"table.insertColumn":k.insertTableColumn(T);return;case"table.deleteRow":k.deleteTableRow(T);return;case"table.deleteColumn":k.deleteTableColumn(T);return;case"table.delete":k.deleteTable();return;case"media.insertImage":c.insertImage(T);return;case"media.insertVideo":c.insertVideo(T);return;case"media.pickImage":s.pickMediaFile("image");return;case"media.pickVideo":s.pickMediaFile("video");return;case"media.view":return;case"media.retry":s.retryMedia(T.assetId);return;case"media.remove":s.removeMedia(T.assetId);return;case"media.resize":c.resizeMedia(T);return;case"media.align":c.alignMedia(T);return;case"media.resetSize":c.resetMediaSize(T.assetId);return;case"fullscreen.toggle":P();return}});return w.uploadMediaFile=s.uploadMediaFile,w.destroy=()=>{s.destroy()},w},Do=300,Ho="BridgeRTE",$t=({editor:e,overflowLength:t})=>{if(t<=0)return!1;const n=l.$getSelection();if(l.$isRangeSelection(n))return ae.$trimTextContentFromAnchor(e,n.anchor,t),!0;l.$getRoot().selectEnd();const r=l.$getSelection();return l.$isRangeSelection(r)?(ae.$trimTextContentFromAnchor(e,r.anchor,t),!0):!1},Oo=({lexicalEditor:e,options:t,isDestroyed:n,setContent:r,syncPlaceholder:o})=>{let a=0,s=null;const i=()=>{s&&(clearTimeout(s),s=null)},g=u=>{if(n())return;const p=yn(e.getEditorState(),e);r(p),u&&oo(t,p)},c=u=>{const p=t.maxLength!==void 0&&t.maxLength>=0?t.maxLength:void 0;return{dirty:!0,plainTextLength:u,version:se.BRIDGERTE_CONTENT_VERSION,maxLength:p,isOverMaxLength:p===void 0?!1:u>p}},b=u=>{ao(t,c(u))},m=()=>{t.onChange&&(i(),s=setTimeout(()=>{g(!0)},Oe.BRIDGE_CONTENT_CHANGE_DEBOUNCE_MS))},k=u=>{if(a>0){a-=1;return}b(u),m()},P=()=>e.getEditorState().read(()=>l.$getRoot().getTextContent().length),w=u=>t.maxLength===void 0||t.maxLength<0?0:u-t.maxLength,T=u=>u<=0?!1:(e.update(()=>{$t({editor:e,overflowLength:u})},{discrete:!0}),!0);return{clearContentChangeTimer:i,enforceCurrentMaxLength:()=>{t.maxLength===void 0||t.maxLength<0||e.update(()=>{const u=l.$getRoot().getTextContent().length-(t.maxLength??0);$t({editor:e,overflowLength:u})},{discrete:!0})},syncContent:g,suppressNextChange(){a+=1},syncAfterEditorUpdate(){const u=P();if(T(w(u))){o();return}o(),k(u)}}},ze="data-language",kn="纯文本",Fo="language",zo=new Set(["plain","plaintext","text","txt"]),Wo=[ze,"data-lang","data-code-language","data-highlight-language","lang","language"],qo=/^[a-z][a-z0-9_+#.-]{0,31}$/i,Uo=/^(?:language|lang)-([a-z][a-z0-9_+#.-]{0,31})$/i,Vo=/^brush:\s*([a-z][a-z0-9_+#.-]{0,31})$/i,Ko=new Map([["c++","cpp"],["c#","csharp"],["dockerfile","docker"],["shell","shellscript"],["sh","shellscript"],["bash","shellscript"],["js","javascript"],["jsx","jsx"],["py","python"],["rb","ruby"],["rs","rust"],["ts","typescript"],["tsx","tsx"],["yml","yaml"]]),jo=e=>e.type==="select",At=e=>e.find(t=>t.name===Fo&&jo(t)),ue=e=>{const t=e==null?void 0:e.trim().toLowerCase();return!t||!qo.test(t)?null:zo.has(t)?"":Ko.get(t)??t},Go=e=>{for(const t of Wo){const n=ue(e.getAttribute(t));if(n)return n}return null},Yo=e=>{const[,t]=e.match(Vo)??[],n=ue(t);if(n)return n;for(const r of e.split(/\s+/)){const[,o]=r.match(Uo)??[],a=ue(o);if(a)return a}return null},Mn=(e=J.codeBlockLanguagePanel)=>{var t,n;return((t=At(e.fields))==null?void 0:t.options)??((n=At(J.codeBlockLanguagePanel.fields))==null?void 0:n.options)??[{label:kn,value:""}]},En=(e,t)=>{var n,r,o;return((n=e.find(a=>a.value===t))==null?void 0:n.label)??((r=e.find(a=>ue(a.value)===ue(t)))==null?void 0:r.label)??((o=e[0])==null?void 0:o.label)??kn};Mn();const Xo=e=>{[...e.querySelectorAll("pre,code")].forEach(t=>{const n=Go(t)??Yo(t.className),r=t.tagName==="PRE"?t:t.closest("pre");r&&n&&r.setAttribute(ze,n)})},Jo=e=>{e.querySelectorAll("pre").forEach(t=>{[...t.children].forEach(r=>{r.tagName==="CODE"&&r.replaceWith(...r.childNodes)})})},Qo=(e,t)=>{const n=[...t.querySelectorAll("pre[data-language]")];let r=0;e.forEach(o=>{if(!W.$isCodeNode(o))return;const a=n[r];if(r+=1,!a)return;const s=a.getAttribute(ze);s&&!o.getLanguage()&&o.setLanguage(s)})},Zo=e=>(()=>{}),gt=()=>{const e=window.visualViewport;return{left:(e==null?void 0:e.offsetLeft)??0,top:(e==null?void 0:e.offsetTop)??0,width:(e==null?void 0:e.width)??window.innerWidth,height:(e==null?void 0:e.height)??window.innerHeight}},ee=12,ea=6,De=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n)),ta=(e,t)=>({contextElement:e,getBoundingClientRect:()=>({x:t.x,y:t.y,left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height,width:t.width,height:t.height})}),na=(e,t)=>{const n=e.getBoundingClientRect(),r=gt(),o=t.getBoundingClientRect(),a=o.left+ee,s=o.top+ee,i=r.left+ee,g=r.top+ee,c=r.left+r.width-n.width-ee,b=r.top+r.height-n.height-ee;return{left:De(a,i,c),top:De(s,g,b),viewportHeight:r.height}},ra=(e,t,n)=>{const r=e.getBoundingClientRect(),o=gt(),a=o.left+ee,s=o.top+ee,i=o.left+o.width-r.width-ee,g=o.top+o.height-r.height-ee;return{left:De(t,a,i),top:De(n,s,g),viewportHeight:o.height}},xn=e=>{var c,b;const t=document.createElement("div"),n=document.createElement("div"),r=document.createElement("div");let o;const a=()=>{t.dataset.visible="false",n.dataset.visible="false",o=void 0},s=(m,k,P)=>{n.style.left=`${m}px`,n.style.top=`${k}px`,n.style.setProperty("--bridgerte-dialog-visible-height",`${P}px`)},i=async()=>{if(!o){const P=na(n,e.root);s(P.left,P.top,P.viewportHeight);return}const m=await Z.computePosition(ta(e.root,o),n,{placement:"bottom-start",strategy:"fixed",platform:Z.platform,middleware:[Z.offset(ea),Z.flip(),Z.shift({padding:ee})]}),k=ra(n,m.x,m.y);s(k.left,k.top,k.viewportHeight)},g=m=>{o=m,m?n.style.setProperty("--bridgerte-dialog-anchor-width",`${m.width}px`):n.style.removeProperty("--bridgerte-dialog-anchor-width"),i(),t.dataset.visible="true",n.dataset.visible="true"};return t.className=`bridgerte__dialog-backdrop ${e.className}-backdrop`,t.dataset.visible="false",n.className=`bridgerte__dialog ${e.className}`,n.dataset.visible="false",r.className="bridgerte__dialog-content",n.append(r),e.root.append(t,n),t.addEventListener("click",()=>{var m;(m=e.onBackdropClick)==null||m.call(e),a()}),(c=window.visualViewport)==null||c.addEventListener("resize",i),(b=window.visualViewport)==null||b.addEventListener("scroll",i),window.addEventListener("resize",i),{element:n,content:r,open:g,close:a,destroy(){var m,k;a(),(m=window.visualViewport)==null||m.removeEventListener("resize",i),(k=window.visualViewport)==null||k.removeEventListener("scroll",i),window.removeEventListener("resize",i),t.remove(),n.remove()}}},He=e=>typeof requestAnimationFrame=="function"?requestAnimationFrame(e):window.setTimeout(e,0),mt=e=>{if(typeof cancelAnimationFrame=="function"){cancelAnimationFrame(e);return}window.clearTimeout(e)},Q=(e,t={})=>{let n=null;const r=s=>{const i=n??e;if(!(!s&&!n)){if(s){i.dataset.pressed="true";return}delete i.dataset.pressed,n=null}},o=s=>{if(s.pointerType==="mouse")return;const i=s.target;n=i instanceof HTMLElement&&t.targetSelector?i.closest(t.targetSelector):e,n&&r(!0)},a=()=>{r(!1)};return e.addEventListener("pointerdown",o),e.addEventListener("pointerup",a),e.addEventListener("pointercancel",a),e.addEventListener("lostpointercapture",a),()=>{a(),e.removeEventListener("pointerdown",o),e.removeEventListener("pointerup",a),e.removeEventListener("pointercancel",a),e.removeEventListener("lostpointercapture",a)}},ht=e=>{const t=o=>{var s;const a=e.getBlockFromTarget(o.target);if(a){(s=e.onBlockPointerDown)==null||s.call(e,a,o),e.activateBlock(a);return}e.clearBlock()},n=o=>{const a=e.getBlockFromTarget(o.target);a&&e.activateBlock(a)},r=o=>{const a=o.target;a instanceof Node&&e.root.contains(a)||e.clearBlock()};return e.content.addEventListener("pointerdown",t),e.content.addEventListener("focusin",n),document.addEventListener("pointerdown",r),{destroy(){e.content.removeEventListener("pointerdown",t),e.content.removeEventListener("focusin",n),document.removeEventListener("pointerdown",r)}}},oa=(e,t,n)=>{e.update(t,{tag:l.SKIP_SCROLL_INTO_VIEW_TAG,onUpdate:n})},Bt="language",aa="bridgerte-code-block-language",Dt=8,sa=".bridgerte__code-block-controls",$e=".bridgerte__code-block-control-button";let Ht=0;const ia=()=>(Ht+=1,`${aa}-${Ht}`),la=(e,t,n)=>{var o;const r=e.querySelector(".bridgerte__code-block-control-label");e.dataset.language=n??"",(o=e.querySelector($e))==null||o.setAttribute("data-language",n??""),r&&(r.textContent=En(t,n))},ca=(e,t)=>{const n=document.createElement("div"),r=document.createElement("button"),o=document.createElement("span"),a=document.createElement("span");return n.className="bridgerte__code-block-controls",n.contentEditable="false",n.dataset.language=t??"",n.setAttribute("aria-label","代码块操作"),r.type="button",r.className="bridgerte__code-block-control-button",r.dataset.language=t??"",r.setAttribute("aria-label","选择代码块语言"),o.className="bridgerte__code-block-control-label",o.textContent=En(e,t),a.className="bridgerte__code-block-control-arrow",r.append(o,a),n.append(r),n},da=e=>{const t=document.createElement("div"),n=e.root.querySelector(".bridgerte__content")??e.root,r=un.resolvePayloadPanelSchema(e.languagePanel??J.codeBlockLanguagePanel,e.payloadPanelConfig),o=Mn(r);let a=null,s=null,i=null,g=null,c=null,b=null;const m=()=>{i??(i=Zo())},k=()=>{a==null||a.close()},P=(O,D)=>{e.isReadonly()||oa(e.editor,()=>{const y=l.$getNodeByKey(O);W.$isCodeNode(y)&&y.setLanguage(D)})},w=(O,D)=>{He(()=>{P(O,D)})},T=(O,D,y)=>{var d;return((d=e.onRequest)==null?void 0:d.call(e,{id:ia(),readonly:e.isReadonly(),menuId:"code-block-language",command:{type:"block.setCodeLanguage",language:y},panel:r,anchorRect:{x:D.left,y:D.top,width:D.width,height:D.height},currentValues:{[Bt]:y},submit:E=>{k(),w(O,E[Bt]??"")},cancel:k}))===!0},I=(O,D)=>{const y=e.root.getBoundingClientRect(),d=D.getBoundingClientRect(),E=d.bottom<y.top||d.top>y.bottom;O.hidden=E;const f=Math.max(8,y.width-O.offsetWidth-8),H=Math.min(Math.max(d.left-y.left+Dt,8),f),h=Math.max(8,d.top-y.top-O.offsetHeight-Dt);O.style.transform=`translate(${H}px, ${h}px)`},u=()=>{c&&(b==null||b(),b=null,c.remove(),c=null)},p=O=>{const D=e.editor.getElementByKey(O);if(!D){g===O&&(g=null,u());return}m(),D.dataset.lexicalKey=O;const y=D.getAttribute("data-language");if(c){la(c,o,y),I(c,D);return}const d=ca(o,y);b=Q(d,{targetSelector:$e}),d.dataset.lexicalKey=O,c=d,t.append(d),I(d,D)},S=O=>{const D=O.dataset.lexicalKey;!D||g===D||(g!==null&&(k(),u()),g=D,p(D))},N=()=>{g!==null&&(g=null,k(),u())},F=O=>O instanceof HTMLElement?O.closest(".bridgerte__code-block"):null,M=ht({root:e.root,content:n,getBlockFromTarget:F,activateBlock:S,clearBlock:N}),C=(O,D)=>{const y=O.getBoundingClientRect(),d=O.dataset.language??"";if(T(D,y,d))return;if(e.isReadonly()){k();return}a||(a=xn({root:e.root,className:"bridgerte__code-block-menu",onBackdropClick:k}));const E=document.createElement("div");a.content.replaceChildren(),a.element.style.minWidth="180px",E.className="bridgerte__code-block-menu-list",o.forEach(f=>{const H=document.createElement("button");H.type="button",H.className="bridgerte__menu-item bridgerte__code-block-menu-item",H.textContent=f.label,Q(H),H.addEventListener("pointerdown",h=>{h.preventDefault()}),H.addEventListener("click",()=>{k(),w(D,f.value)}),E.append(H)}),a.content.append(E),a.open({x:y.left,y:y.top,width:180,height:y.height})},R=O=>{const D=O.target;if(!(D instanceof HTMLElement))return;const y=D.closest($e);if(!y)return;const d=y.closest(sa);if(!d)return;const E=d.dataset.lexicalKey;E&&(O.preventDefault(),O.stopPropagation(),C(d,E))},x=O=>{const D=O.target;D instanceof HTMLElement&&D.closest($e)&&O.preventDefault()},L=O=>{const D=O.target;if(!(D instanceof HTMLElement))return;if(!D.closest(".bridgerte__code-block")){k();return}const y=D.closest(".bridgerte__code-block");if(!y||y.textContent)return;const d=y.dataset.lexicalKey;d&&(e.editor.update(()=>{const E=l.$getNodeByKey(d);W.$isCodeNode(E)&&E.selectEnd()}),e.editor.focus())},B=()=>{s===null&&(s=He(()=>{s=null,g!==null&&p(g)}))};t.className="bridgerte__code-block-controls-layer",e.root.append(t);const V=e.editor.registerMutationListener(W.CodeNode,O=>{O.forEach((D,y)=>{if(D==="destroyed"){g===y&&N();return}const d=e.editor.getElementByKey(y);d&&(d.dataset.lexicalKey=y),g===y&&c&&p(y)})}),G=e.editor.registerUpdateListener(B);return t.addEventListener("pointerdown",x),t.addEventListener("click",R),n.addEventListener("pointerdown",L),n.addEventListener("scroll",B,{passive:!0}),window.addEventListener("resize",B),{destroy(){M.destroy(),V(),G(),i==null||i(),i=null,s!==null&&(mt(s),s=null),t.removeEventListener("pointerdown",x),t.removeEventListener("click",R),n.removeEventListener("pointerdown",L),n.removeEventListener("scroll",B),window.removeEventListener("resize",B),u(),t.remove(),a==null||a.destroy(),a=null}}},We=(e,t={})=>e.map(n=>{var a;const r=(a=t.menuLabels)==null?void 0:a[n.id],o=n.payloadPanel?un.resolvePayloadPanelSchema(n.payloadPanel,t.payloadPanelConfig):void 0;return{...n,...r===void 0?{}:{label:r},...o===void 0?{}:{payloadPanel:o}}}),Tn=(e,t)=>{const n=t.find(r=>r.command===e.command.type);return(n==null?void 0:n.value)===void 0?void 0:{value:String(n.value)}},pt=(e,t)=>{const n=t.find(o=>J.isCommandStateForCommand(e.command,o)),r=t.find(o=>o.command===e.command.type);return{active:(n==null?void 0:n.active)===!0,disabled:e.payloadPanel?(r==null?void 0:r.disabled)===!0:(n==null?void 0:n.disabled)===!0||(r==null?void 0:r.disabled)===!0}},Nn=(e,t)=>e.map(n=>n.type==="separator"?{type:"separator",key:n.key}:n.type==="group"?{type:"group",key:n.key,title:n.title,...n.icon===void 0?{}:{icon:n.icon},items:n.items.map(r=>({type:"button",item:r,...t(r)}))}:{type:"button",item:n.item,...t(n.item)}),ua=e=>e.flatMap(t=>t.type==="button"?[t]:t.type==="group"?t.items:[]),ft=(e,t)=>{const n=typeof t=="string"?t:t.id;return ua(e).find(r=>r.item.id===n)},Ee=["media-resize-20","media-resize-50","media-resize-100"],ga=["media-view","|","media-align-left","media-align-center","media-align-right","|",...Ee,"|","media-remove"],ma=["media-retry","|","media-remove"],ha=[{id:"media-view",command:{type:"media.view",assetId:""},label:"查看",icon:"maximize"},{id:"media-align-left",command:{type:"media.align",assetId:"",value:"left"},label:"左",icon:"align-left"},{id:"media-align-center",command:{type:"media.align",assetId:"",value:"center"},label:"中",icon:"align-center"},{id:"media-align-right",command:{type:"media.align",assetId:"",value:"right"},label:"右",icon:"align-right"},{id:"media-resize-20",command:{type:"media.resize",assetId:"",widthPercent:20},label:"20%",icon:"media-resize-20"},{id:"media-resize-50",command:{type:"media.resize",assetId:"",widthPercent:50},label:"50%",icon:"media-resize-50"},{id:"media-resize-100",command:{type:"media.resize",assetId:"",widthPercent:100},label:"100%",icon:"media-resize-100"},{id:"media-retry",command:{type:"media.retry",assetId:""},label:"重试",icon:"refresh-cw"},{id:"media-remove",command:{type:"media.remove",assetId:""},label:"删除",icon:"trash-2"}],Sn=e=>Ee.includes(e),pa=e=>typeof e=="object"&&Array.isArray(e.menuKeys),fa=e=>new Set(e.flatMap(t=>t==="|"?[]:typeof t=="string"?[t]:pa(t)?[t.key,...t.menuKeys]:[])),je=e=>typeof e=="string"&&Sn(e),ba=e=>{const t=e.findIndex(r=>r==="media-remove"),n=t===-1?e.length:t;return[...e.slice(0,n),"|",...Ee,"|",...e.slice(n)]},ya=e=>{const t=fa(e);if(Ee.filter(o=>!t.has(o)).length===0)return e;const r=e.findIndex(je);return r===-1?ba(e):[...e.slice(0,r).filter(o=>!je(o)),...Ee,...e.slice(r+1).filter(o=>!je(o))]},va=e=>{var r;const t=(e==null?void 0:e.toolbarKeys)??ga;return{...e,toolbarKeys:ya(t),excludeKeys:(r=e==null?void 0:e.excludeKeys)==null?void 0:r.filter(o=>!Sn(o))}},Ca=(e,t)=>{if(e.id==="media-view")return null;switch(e.command.type){case"media.view":return null;case"media.retry":return{...e.command,assetId:t};case"media.remove":return{...e.command,assetId:t};case"media.resize":return{...e.command,assetId:t};case"media.align":return{...e.command,assetId:t};default:return null}},Ln=(e,t,n)=>e.command.type==="media.resize"?e.command.widthPercent===t:e.command.type==="media.align"&&e.command.value===n,Rn=(e,t={})=>{const n=We(ha,{menuLabels:t.menuLabels}),r=e==="error"?{toolbarKeys:ma}:va(t.config);return J.resolveToolbarMenu(r,n)},Ce="bridgerte__media-controls-button",wa=(e,t=!1)=>{const n=document.createElement("button");return n.type="button",n.className=Ce,n.textContent=e.label,n.dataset.menuItemId=e.id,n.dataset.action=e.id.replace(/^media-/,""),t&&(n.dataset.active="true"),n.setAttribute("aria-label",e.label),n},In=e=>e.flatMap(t=>t.type==="button"?[t.item]:t.type==="group"?t.items:[]),_a=(e,t,n,r)=>{if(t.type==="separator"){const a=document.createElement("span");a.className="bridgerte__media-controls-separator",a.dataset.separatorId=t.key,a.setAttribute("aria-hidden","true"),e.append(a);return}(t.type==="button"?[t.item]:t.items).forEach(a=>{e.append(wa(a,Ln(a,n,r)))})},ka=(e,t)=>{const n=document.createElement("div");return n.className="bridgerte__media-controls",n.contentEditable="false",n.setAttribute("aria-label","媒体操作"),n.dataset.status=t.status,n.dataset.displayWidthPercent=e.dataset.displayWidthPercent??"",n.dataset.align=e.dataset.align??"",n.dataset.menuItemIds=In(t.controlItems).map(r=>r.id).join("|"),t.controlItems.forEach(r=>{_a(n,r,t.activeWidthPercent,t.activeAlign)}),n},Ma=(e,t,n)=>{const r=e.dataset.status??"success",o=Number(e.dataset.displayWidthPercent??t),a=e.dataset.align??"left",s=Rn(r,{config:n.mediaControlsConfig,menuLabels:n.menuLabels});return{status:r,activeWidthPercent:o,activeAlign:a,controlItems:s,displayItems:Nn(s,i=>({active:Ln(i,o,a),disabled:i.id!=="media-view"&&n.isReadonly()}))}},Ea=()=>{var e;return((e=window.matchMedia)==null?void 0:e.call(window,"(hover: hover) and (pointer: fine)").matches)===!0},Ge=e=>{window.open(e,"_blank","noopener,noreferrer")},xa=(e,t)=>{if(e){if(Ea()){Ge(e);return}if(!(t!=null&&t.requestFullscreen)){Ge(e);return}t.requestFullscreen().catch(()=>{Ge(e)})}},me=8,Ta=e=>e.querySelector(".bridgerte__content")??e,Na=e=>e instanceof Element?e.closest(".bridgerte__media"):null,Sa=e=>e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLButtonElement,Ot=e=>e.querySelector(".bridgerte__media-element"),Ft=(e,t)=>{const n=e==null?void 0:e.getAttribute(t),r=n==null?Number.NaN:Number(n);return Number.isFinite(r)&&r>0?r:void 0},La=e=>{const t=(e==null?void 0:e.getAttribute("src"))??void 0;if(!t)return null;const n=(e==null?void 0:e.getAttribute("title"))??void 0,r=e instanceof HTMLImageElement&&e.alt||void 0,o=e instanceof HTMLVideoElement?e.getAttribute("poster")??void 0:void 0,a=Ft(e,"width"),s=Ft(e,"height");return{url:t,title:n,alt:r,poster:o,width:a,height:s}},Ra=e=>{const t=document.createElement("div"),n=Ta(e.root),r=new Map,o=new Map,a=new Map,s=new Map;let i=null,g=0,c=null,b=!1,m=null;const k=h=>{var v;const _=r.get(h);_&&((v=o.get(_))==null||v(),o.delete(_),_.remove(),r.delete(h))},P=h=>{const _=s.get(h);_&&(s.delete(h),_.dismissListeners.forEach(v=>{v()}),_.dismissListeners.clear())},w=h=>{k(h),P(h),m===h&&(m=null)},T=(h,_)=>_.dataset.status==="error"||m===h,I=(h,_)=>{const v=e.root.getBoundingClientRect(),A=_.getBoundingClientRect(),z=A.bottom<v.top||A.top>v.bottom,$=Math.max(me,v.width-h.offsetWidth-me),q=Math.min(Math.max(A.left-v.left+me,me),$),X=Math.max(me,A.top-v.top-h.offsetHeight-me);h.hidden=z,h.style.transform=`translate(${q}px, ${X}px)`},u=h=>{const _=h.getBoundingClientRect();return{x:_.left,y:_.top,width:_.width,height:_.height}},p=(h,_)=>{const v=Ca(h,_);v&&e.executeCommand(v)},S=h=>{const _=Ot(h),v=(_==null?void 0:_.getAttribute("src"))??void 0;v&&xa(v,_??void 0)},N=(h,_,v)=>{if(h.id==="media-view"||h.command.type==="media.view"){S(v);return}if(h.id==="media-remove"||h.command.type==="media.remove"){const A=v.dataset.lexicalKey;A&&w(A)}p(h,_)},F=(h,_,v)=>{if(!e.onMediaControlsRequest)return P(h),!1;const A=_.dataset.assetId;if(!A)return P(h),!1;const z=Ot(_),$=La(z),q=u(_),X=`bridgerte-media-controls-${g+=1}`,K=v.displayItems.map(j=>{if(j.type==="separator")return`separator:${j.key}`;if(j.type==="button")return`button:${j.item.id}:${j.active}:${j.disabled}`;const ye=j.items.map(Te=>Te.item.id).join(",");return`group:${j.key}:${ye}`}).join("|"),ne=[A,_.dataset.mediaType??"image",v.status,v.activeWidthPercent,v.activeAlign,($==null?void 0:$.url)??"",($==null?void 0:$.title)??"",($==null?void 0:$.alt)??"",($==null?void 0:$.poster)??"",($==null?void 0:$.width)??"",($==null?void 0:$.height)??"",K,Math.round(q.x),Math.round(q.y),Math.round(q.width),Math.round(q.height)].join("|"),be=s.get(h);if((be==null?void 0:be.signature)===ne)return k(h),!0;const Ue=new Set;return e.onMediaControlsRequest({id:X,assetId:A,mediaType:_.dataset.mediaType==="video"?"video":"image",status:v.status,displayWidthPercent:v.activeWidthPercent,align:v.activeAlign,items:v.displayItems,readonly:e.isReadonly(),anchorRect:q,url:$==null?void 0:$.url,title:$==null?void 0:$.title,alt:$==null?void 0:$.alt,poster:$==null?void 0:$.poster,width:$==null?void 0:$.width,height:$==null?void 0:$.height,subscribeDismiss:j=>(Ue.add(j),()=>{Ue.delete(j)}),submit:j=>{var Te;if(((Te=s.get(h))==null?void 0:Te.id)!==X)return;const ye=ft(v.displayItems,j);!ye||ye.disabled||N(ye.item,A,_)},cancel:()=>{var j;((j=s.get(h))==null?void 0:j.id)===X&&P(h)}})===!0?(P(h),s.set(h,{id:X,signature:ne,dismissListeners:Ue}),k(h),!0):(P(h),!1)},M=h=>{const _=e.editor.getElementByKey(h);if(!_){w(h);return}_.dataset.lexicalKey=h,a.set(_,h);const v=r.get(h);if(!T(h,_)){w(h);return}const A=Ma(_,e.defaultWidthPercent,e);if(F(h,_,A))return;if(v){const q=_.dataset.status==="error",X=v.querySelector('[data-action="retry"]')!==null,K=_.dataset.displayWidthPercent??"",ne=_.dataset.align??"";if(q===X&&v.dataset.displayWidthPercent===K&&v.dataset.align===ne){I(v,_);return}k(h),P(h)}P(h);const z=ka(_,A),$=Q(z,{targetSelector:`.${Ce}`});z.dataset.lexicalKey=h,z.dataset.assetId=_.dataset.assetId,r.set(h,z),o.set(z,$),t.append(z),I(z,_)},C=()=>{i=null,a.forEach((h,_)=>{e.root.contains(_)||(a.delete(_),w(h))}),e.root.querySelectorAll(".bridgerte__media").forEach(h=>{const _=h.dataset.lexicalKey;_&&(a.set(h,_),M(_))}),r.forEach((h,_)=>{M(_)}),m!==null&&M(m)},R=()=>{i===null&&(i=He(C))},x=(h,_)=>{const v=_.dataset.assetId,A=_.dataset.lexicalKey,z=A?e.editor.getElementByKey(A):null,$=In(Rn(_.dataset.status,{config:e.mediaControlsConfig,menuLabels:e.menuLabels})).find(q=>q.id===h.dataset.menuItemId);!v||!$||!z||N($,v,z)},L=h=>{if(!h){const A=m;m=null,A!==null&&M(A);return}const _=h.dataset.lexicalKey?h.dataset.lexicalKey:a.get(h)??null;if(!_||m===_)return;const v=m;m=_,v!==null&&M(v),M(_)},B=(h,_)=>{const v=h.dataset.lexicalKey?h.dataset.lexicalKey:a.get(h)??null;!v||e.isReadonly()||(_.preventDefault(),e.editor.update(()=>{const A=l.$createNodeSelection();A.add(v),l.$setSelection(A)},{discrete:!0}),e.editor.focus())},V=()=>{const h=m;return!h||e.isReadonly()||!e.editor.getElementByKey(h)?!1:(e.editor.update(()=>{const _=l.$createNodeSelection();_.add(h),l.$setSelection(_)},{discrete:!0}),!0)},G=h=>{const _=h.target;if(!(_ instanceof HTMLElement))return;const v=_.closest(`.${Ce}`);v&&(h.preventDefault(),c=h.pointerType==="mouse"?null:v)},O=h=>{if(h.pointerType==="mouse"||!c)return;const _=h.target,v=_ instanceof HTMLElement?_.closest(".bridgerte__media-controls"):null,A=_ instanceof HTMLElement?_.closest(`.${Ce}`):null;A===c&&v&&(h.preventDefault(),h.stopPropagation(),x(A,v),b=!0),c=null},D=()=>{c=null},y=h=>{if(b){b=!1,h.preventDefault(),h.stopPropagation();return}const _=h.target;if(!(_ instanceof HTMLElement))return;const v=_.closest(`.${Ce}`),A=_.closest(".bridgerte__media-controls");!v||!A||(h.preventDefault(),h.stopPropagation(),x(v,A))},d=h=>{if(h.key!=="Backspace"&&h.key!=="Delete")return;const _=h.target;if(_ instanceof Node&&!e.root.contains(_)&&_!==document.body&&_!==document.documentElement||Sa(_)||!V())return;e.editor.dispatchCommand(h.key==="Backspace"?l.KEY_BACKSPACE_COMMAND:l.KEY_DELETE_COMMAND,h)&&(h.preventDefault(),h.stopPropagation())},E=e.editor.registerMutationListener(fe,h=>{h.forEach((_,v)=>{if(_==="destroyed"){w(v);return}M(v)})}),f=e.editor.registerUpdateListener(R),H=ht({root:e.root,content:n,getBlockFromTarget:Na,onBlockPointerDown:B,activateBlock:L,clearBlock:()=>L(null)});return t.className="bridgerte__media-controls-layer",e.root.append(t),t.addEventListener("pointerdown",G),t.addEventListener("pointerup",O),t.addEventListener("pointercancel",D),t.addEventListener("click",y),document.addEventListener("keydown",d,!0),n.addEventListener("scroll",R,{passive:!0}),window.addEventListener("resize",R),{destroy(){E(),f(),i!==null&&(mt(i),i=null),t.removeEventListener("pointerdown",G),t.removeEventListener("pointerup",O),t.removeEventListener("pointercancel",D),t.removeEventListener("click",y),document.removeEventListener("keydown",d,!0),H.destroy(),n.removeEventListener("scroll",R),window.removeEventListener("resize",R),r.forEach(h=>{var _;(_=o.get(h))==null||_(),h.remove()}),r.clear(),o.clear(),Array.from(s.keys()).forEach(P),a.clear(),t.remove()}}},Ia=["width","height"],oe=(e,t)=>{var r;const n=(r=e[t])==null?void 0:r.trim();return n||void 0},rt=(e,t)=>{const n=Number.parseInt(e[t]??"",10);return Number.isFinite(n)&&n>0?n:void 0},zt=(e,t)=>Ia.reduce((n,r)=>{const o=rt(t,r);return o===void 0?n:{...n,[r]:o}},e),Pa=(e,t)=>{if(e.type==="format.color"||e.type==="format.backgroundColor"||e.type==="format.fontSize"||e.type==="format.fontFamily"||e.type==="format.lineHeight")return t.value!==void 0?{...e,value:t.value}:e;if(e.type==="link.set"){const n=oe(t,"href"),r=oe(t,"text");return n?{...e,href:n,text:r}:null}if(e.type==="block.code")return t.language?{type:"block.code",language:t.language}:e;if(e.type==="block.setCodeLanguage")return t.language!==void 0?{...e,language:t.language}:e;if(e.type==="table.insert"){const n=rt(t,"rows"),r=rt(t,"cols");return n&&r?{type:"table.insert",rows:n,cols:r}:null}if(e.type==="media.insertImage"){const n=oe(t,"url");return n?zt({...e,url:n,alt:oe(t,"alt"),title:oe(t,"title")},t):null}if(e.type==="media.insertVideo"){const n=oe(t,"url");return n?zt({...e,url:n,poster:oe(t,"poster"),title:oe(t,"title")},t):null}return e},ce=e=>Math.min(Math.max(Math.round(e),0),255),ot=({r:e,g:t,b:n})=>`#${[e,t,n].map(r=>ce(r).toString(16).padStart(2,"0")).join("")}`,Pn=e=>{const n=e.trim().match(/^#([0-9a-f]{6})$/i);if(!n)return null;const r=n[1]??"";return{r:Number.parseInt(r.slice(0,2),16),g:Number.parseInt(r.slice(2,4),16),b:Number.parseInt(r.slice(4,6),16)}},$a=e=>{const t=e.trim().match(/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i);return t?{r:ce(Number(t[1])),g:ce(Number(t[2])),b:ce(Number(t[3]))}:null},Ye=e=>{const t=Pn(e)??$a(e);return t?ot(t):null},$n=e=>Math.min(Math.max(e,0),1),Aa=({r:e,g:t,b:n})=>{const r=ce(e)/255,o=ce(t)/255,a=ce(n)/255,s=Math.max(r,o,a),i=Math.min(r,o,a),g=s-i;let c=0;return g!==0&&(s===r?c=60*((o-a)/g%6):s===o?c=60*((a-r)/g+2):c=60*((r-o)/g+4)),{h:c<0?c+360:c,s:s===0?0:g/s,v:s}},Wt=({h:e,s:t,v:n})=>{const r=n*t,o=r*(1-Math.abs(e/60%2-1)),a=n-r;let s=0,i=0,g=0;return e<60?(s=r,i=o):e<120?(s=o,i=r):e<180?(i=r,g=o):e<240?(i=o,g=r):e<300?(s=o,g=r):(s=r,g=o),{r:(s+a)*255,g:(i+a)*255,b:(g+a)*255}},Ba=({h:e,s:t})=>{const n=e*Math.PI/180,r=$n(t)*50;return{x:50+Math.cos(n)*r,y:50+Math.sin(n)*r}},qt=(e,t)=>{const n=t.getBoundingClientRect(),r=n.left+n.width/2,o=n.top+n.height/2,a=e.clientX-r,s=e.clientY-o,i=Math.min(Math.sqrt(a*a+s*s),n.width/2),g=Math.atan2(s,a)*180/Math.PI;return{h:g<0?g+360:g,s:$n(i/(n.width/2)),v:1}},Da=["#000000","#ffffff"],Ha=e=>{var t;return(t=e.options)!=null&&t.length?e.options:Da.map(n=>({label:n,value:n}))},An=()=>{const e=document.createElement("section");return e.className="bridgerte__payload-panel-field",e},Oa=(e,t,n)=>{const r=An(),o=document.createElement("div");return o.className="bridgerte__payload-panel-option-list",e.options.forEach(a=>{const s=document.createElement("button");s.type="button",s.className="bridgerte__payload-panel-option",s.textContent=a.label,s.dataset.bridgertePayloadOption=a.value,s.dataset.active=t[e.name]===a.value?"true":"false",Q(s),s.addEventListener("pointerdown",i=>{i.preventDefault()}),s.addEventListener("click",()=>{n({...t,[e.name]:a.value})}),o.append(s)}),r.append(o),r},Fa=(e,t,n)=>{const r=An(),o=document.createElement("div"),a=document.createElement("div"),s=document.createElement("span"),i=document.createElement("div"),g=document.createElement("div"),c=Ha(e),b=c.length===2;let m={h:0,s:0,v:1},k=null;const P=u=>{const p=Ye(u);return!!(p&&c.some(S=>Ye(S.value)===p))},w=(u,p=!0)=>{const S=Ye(u);if(!S)return;t[e.name]=S,g.style.background=S,m=Aa(Pn(S)??{r:255,g:255,b:255});const N=Ba(m);a.dataset.active=p?"true":"false",g.dataset.empty="false",p&&(s.style.left=`${N.x}%`,s.style.top=`${N.y}%`)},T=()=>{const u=t[e.name];u&&n({...t,[e.name]:u})};r.className="bridgerte__payload-panel-field",o.className="bridgerte__payload-panel-color-picker",a.className="bridgerte__payload-panel-color-wheel",a.setAttribute("aria-label",`${e.label}选择区域`),s.className="bridgerte__payload-panel-color-wheel-handle",i.className="bridgerte__payload-panel-color-actions",i.dataset.layout=b?"sides":"grid",g.className="bridgerte__payload-panel-color-preview",g.dataset.empty="true",a.append(s),c.forEach(u=>{const p=document.createElement("button"),S=u.value;p.type="button",p.className="bridgerte__payload-panel-color-swatch",p.dataset.value=S,p.style.background=S,p.setAttribute("aria-label",`选择颜色 ${u.label}`),Q(p),p.addEventListener("pointerdown",N=>{N.preventDefault()}),p.addEventListener("click",()=>{w(S,!1),T()}),i.append(p)}),a.addEventListener("pointerdown",u=>{k=u.pointerId,a.setPointerCapture(u.pointerId),m=qt(u,a),w(ot(Wt(m))),u.preventDefault()}),a.addEventListener("pointermove",u=>{k===u.pointerId&&(m=qt(u,a),w(ot(Wt(m))))}),a.addEventListener("pointerup",u=>{k===u.pointerId&&(k=null,a.releasePointerCapture(u.pointerId),T())}),a.addEventListener("pointercancel",u=>{k===u.pointerId&&(k=null,a.releasePointerCapture(u.pointerId))});const I=t[e.name];return I&&w(I,!(b&&P(I))),o.append(a,i),r.append(o,g),r},za=(e,t,n)=>{const r=document.createElement("label"),o=document.createElement("input");return r.className="bridgerte__payload-panel-text-field",r.textContent=e.label,o.type=e.name==="href"||e.name==="url"?"url":"text",o.className="bridgerte__payload-panel-text-input",o.value=t[e.name]??"",o.placeholder=e.placeholder??"",o.spellcheck=!1,o.addEventListener("input",()=>{t[e.name]=o.value}),o.addEventListener("keydown",a=>{a.key==="Enter"&&(a.preventDefault(),n(t))}),r.append(o),r},Wa=(e,t,n)=>{const r=document.createElement("label"),o=document.createElement("input");return r.className="bridgerte__payload-panel-text-field",r.textContent=e.label,o.type="number",o.className="bridgerte__payload-panel-text-input",o.value=t[e.name]??"",o.placeholder=e.placeholder??"",e.min!==void 0&&(o.min=String(e.min)),e.max!==void 0&&(o.max=String(e.max)),e.step!==void 0&&(o.step=String(e.step)),o.addEventListener("input",()=>{t[e.name]=o.value}),o.addEventListener("keydown",a=>{a.key==="Enter"&&(a.preventDefault(),n(t))}),r.append(o),r},qa=({field:e,values:t,onSubmit:n})=>e.type==="color"?Fa(e,t,n):e.type==="text"?za(e,t,n):e.type==="number"?Wa(e,t,n):Oa(e,t,n),Ua=e=>{var t,n,r;return e.defaultValue??(e.type==="select"?(t=e.options[0])==null?void 0:t.value:void 0)??(e.type==="color"?(r=(n=e.options)==null?void 0:n[0])==null?void 0:r.value:void 0)??""},Va=(e,t)=>(t==null?void 0:t[e.name])??(e.type==="color"?"":Ua(e)),Ut=e=>e.some(t=>t.type==="text"||t.type==="number"),Ka=e=>{const t=e.querySelector(".bridgerte__payload-panel-text-input");queueMicrotask(()=>{t==null||t.focus(),t==null||t.select()})},ja=(e,t,n)=>{const r=document.createElement("div"),o=document.createElement("span"),a=(n==null?void 0:n(e))??null;if(r.className="bridgerte__payload-panel-title",o.textContent=e.panel.title,r.append(o),a){const s=document.createElement("button");s.type="button",s.className="bridgerte__payload-panel-clear",s.textContent="清除",s.setAttribute("aria-label",`清除${e.panel.title}`),Q(s),s.addEventListener("pointerdown",i=>{i.preventDefault()}),s.addEventListener("click",()=>{t(a)}),r.append(s)}return r},Ga=e=>e==="font-size"||e==="font-family"||e==="line-height"?"180px":"220px",Ya=3,Xa=3,Ja=10,Bn=10,Qa=16,Za=2,es=24,ts=()=>{var e;return typeof window<"u"&&((e=window.matchMedia)==null?void 0:e.call(window,"(hover: hover) and (pointer: fine)").matches)===!0},we=(e,t)=>{const n=Number.parseInt(e??"",10);return Number.isFinite(n)?Math.min(Math.max(n,t.min),t.max):t.defaultValue},ns=(e,t)=>e.type==="number"&&e.name===t,Vt=(e,t)=>typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):t,Kt=(e,t,n,r)=>{const o=e.find(b=>ns(b,t)),a=Vt(o==null?void 0:o.min,1),s=Vt(o==null?void 0:o.max,n),i=Math.max(a,s),g=Math.min(Math.max(r,a),i),c=we(o==null?void 0:o.defaultValue,{min:a,max:i,defaultValue:g});return{min:a,max:i,defaultValue:c}},Dn=e=>({rows:Kt(e,"rows",se.BRIDGERTE_TABLE_INSERT_MAX_ROWS,Ya),cols:Kt(e,"cols",se.BRIDGERTE_TABLE_INSERT_MAX_COLS,Xa)}),rs=e=>{const t=Math.min(e.cols.max,Bn);return`${t*Qa+Math.max(t-1,0)*Za+es}px`},os=({fields:e,values:t,onSubmit:n})=>{const r=Dn(e),o=document.createElement("section"),a=document.createElement("div"),s=document.createElement("div"),i=[],g=ts(),c=Math.min(r.rows.max,Ja),b=Math.min(r.cols.max,Bn),m={...r.rows,max:c,defaultValue:Math.min(r.rows.defaultValue,c)},k={...r.cols,max:b,defaultValue:Math.min(r.cols.defaultValue,b)};let P=we(t.rows,m),w=we(t.cols,k),T=null;const I=(C,R)=>{P=C,w=R,t.rows=String(C),t.cols=String(R),s.textContent=`${C} x ${R}`,i.forEach(x=>{const L=Number.parseInt(x.dataset.rows??"0",10),B=Number.parseInt(x.dataset.cols??"0",10);x.dataset.active=String(L<=C&&B<=R)})},u=C=>{var R;return((R=document.elementFromPoint(C.clientX,C.clientY))==null?void 0:R.closest(".bridgerte__payload-panel-table-cell"))??null},p=C=>{if(!C)return;const R=we(C.dataset.rows,m),x=we(C.dataset.cols,k);I(R,x)},S=()=>{n({...t,rows:String(P),cols:String(w)})},N=()=>{T=null},F=()=>{window.setTimeout(N,0)},M=(C,R)=>{if(C.detail>0&&T!==R){C.preventDefault(),C.stopPropagation();return}N(),p(R),S()};for(let C=1;C<=c;C+=1)for(let R=1;R<=b;R+=1){const x=document.createElement("button");x.type="button",x.className="bridgerte__payload-panel-table-cell",x.dataset.rows=String(C),x.dataset.cols=String(R),x.setAttribute("aria-label",`插入 ${C} 行 ${R} 列表格`),Q(x),x.addEventListener("pointerdown",L=>{T=x,p(x),L.preventDefault()}),x.addEventListener("pointerup",F),x.addEventListener("pointercancel",N),x.addEventListener("click",L=>{M(L,x)}),g&&x.addEventListener("pointerenter",()=>{p(x)}),i.push(x),a.append(x)}return o.className="bridgerte__payload-panel-field",a.className="bridgerte__payload-panel-table-grid",a.setAttribute("aria-label","选择表格行列"),a.style.setProperty("--bridgerte-payload-panel-table-cols",String(b)),s.className="bridgerte__payload-panel-table-status",s.setAttribute("aria-live","polite"),a.addEventListener("pointermove",C=>{g||p(u(C))}),I(P,w),o.append(a,s),o},as="bridgerte-payload-panel";let jt=0;const ss=()=>(jt+=1,`${as}-${jt}`),Re=e=>e.panel.id==="table-insert",is=(e,t)=>{const n=document.createElement("button");return n.type="button",n.className="bridgerte__payload-panel-submit",n.textContent="应用",Q(n),n.addEventListener("pointerdown",r=>{r.preventDefault()}),n.addEventListener("click",()=>{t(e)}),n},ls=e=>{let t=null,n={};const r=xn({root:e.editorRoot,className:"bridgerte__payload-panel",onBackdropClick:()=>{o()}});function o(){t=null,n={},r.close(),r.content.replaceChildren()}const a=c=>{var m;if(!t||t.readonly||e.isReadonly())return;const b=Pa(t.command,c);b&&((m=e.restoreEditorFocus)==null||m.call(e,()=>{o(),e.isReadonly()||e.executeCommand(b)}))},s=c=>{var b;!t||t.readonly||e.isReadonly()||(b=e.restoreEditorFocus)==null||b.call(e,()=>{o(),e.isReadonly()||e.executeCommand(c)})},i=c=>{n=c.panel.fields.reduce((m,k)=>(m[k.name]=Va(k,c.currentValues),m),{});const b=Re(c)?rs(Dn(c.panel.fields)):Ga(c.panel.id);r.element.style.width=`min(${b}, calc(100vw - 24px))`,r.content.append(ja(c,s,e.getClearCommand)),Re(c)?r.content.append(os({fields:c.panel.fields,values:n,onSubmit:a})):c.panel.fields.forEach(m=>{r.content.append(qa({field:m,values:n,onSubmit:a}))}),!Re(c)&&Ut(c.panel.fields)&&r.content.append(is(n,a)),r.open(c.anchorRect),!Re(c)&&Ut(c.panel.fields)&&Ka(r.content)};return{open:c=>{var k;o();const b={...c,id:ss(),readonly:e.isReadonly(),submit:a,cancel:o};if(t=b,((k=e.onRequest)==null?void 0:k.call(e,b))!==!0){if(b.readonly){o();return}i(c)}},close:o,destroy(){o(),r.destroy()}}},_e="bridgerte__table-controls-button",cs=["table-insert-row-after","table-delete-row","table-insert-column-after","table-delete-column","table-delete"],ds=()=>{const e=new Map(J.defaultMenuSchema.map(t=>[t.id,t]));return cs.map(t=>J.tableHeaderMenuItems.find(n=>n.id===t)??e.get(t)).filter(t=>t!==void 0)},bt=ds(),us=new Map(bt.map(e=>[e.id,e])),gs=e=>e.matches(".bridgerte__table")?e:e.querySelector(".bridgerte__table")??e,ms=(e,t)=>e.classList.contains("bridgerte__table-wrapper")?e:t.parentElement instanceof HTMLElement?t.parentElement:t,hs=e=>e.querySelector(".bridgerte__content")??e,ps=e=>e instanceof Element?e.closest(".bridgerte__table-wrapper"):null,fs=e=>{const t=e.getFirstChild();if(!U.$isTableRowNode(t))return null;const n=t.getFirstChild();return U.$isTableCellNode(n)?n:null},bs=e=>{const t=document.createElement("button");return t.type="button",t.className=_e,t.textContent=e.label,t.dataset.menuItemId=e.id,t.setAttribute("aria-label",e.label),t},ys=()=>{const e=document.createElement("div");return e.className="bridgerte__table-controls",e.contentEditable="false",e.setAttribute("aria-label","表格操作"),bt.forEach(t=>{e.append(bs(t))}),e},vs=e=>{const t=document.createElement("div"),n=hs(e.root),r=new Map,o=new Map,a=new Map,s=new Map;let i=null,g=0,c=null,b=!1,m=null;const k=y=>{var E;const d=r.get(y);d&&((E=o.get(d))==null||E(),o.delete(d),d.remove(),r.delete(y))},P=y=>{const d=s.get(y);d&&(s.delete(y),d.dismissListeners.forEach(E=>{E()}),d.dismissListeners.clear())},w=(y,d)=>{const E=e.root.getBoundingClientRect(),f=d.getBoundingClientRect(),H=f.bottom<E.top||f.top>E.bottom,h=Math.max(8,E.width-y.offsetWidth-8),_=Math.min(Math.max(f.left-E.left+8,8),h),v=Math.max(8,f.top-E.top-y.offsetHeight-8);y.hidden=H,y.style.transform=`translate(${_}px, ${v}px)`},T=y=>m===y,I=y=>{const d=e.editor.getElementByKey(y);if(!d){u(y);return}d.dataset.lexicalKey=y;const E=gs(d),f=ms(d,E);a.set(f,y);const H=r.get(y);if(!T(y)){u(y);return}if(M(y,f))return;if(H){w(H,f);return}const h=ys(),_=Q(h,{targetSelector:`.${_e}`});h.dataset.lexicalKey=y,r.set(y,h),o.set(h,_),t.append(h),w(h,f)},u=y=>{k(y),P(y),m===y&&(m=null)},p=()=>{i=null,a.forEach((y,d)=>{e.root.contains(d)||(a.delete(d),u(y))}),e.root.querySelectorAll(".bridgerte__table-wrapper").forEach(y=>{const d=y.dataset.lexicalKey;d&&(a.set(y,d),I(d))}),r.forEach((y,d)=>{I(d)}),m!==null&&I(m)},S=()=>{i===null&&(i=He(p))},N=y=>{e.editor.update(()=>{var E;const d=l.$getNodeByKey(y);d instanceof U.TableNode&&((E=fs(d))==null||E.selectStart())}),e.editor.focus()},F=(y,d)=>{N(y),e.executeCommand(d)},M=(y,d)=>{if(!e.onTableControlsRequest)return P(y),!1;const E=d.getBoundingClientRect(),f={x:E.left,y:E.top,width:E.width,height:E.height},H=bt.map($=>({type:"button",item:$,active:!1,disabled:e.isReadonly()})),h=`bridgerte-table-controls-${g+=1}`,_=[H.map($=>$.item.id).join("|"),Math.round(f.x),Math.round(f.y),Math.round(f.width),Math.round(f.height)].join("|"),v=s.get(y);if((v==null?void 0:v.signature)===_)return k(y),!0;const A=new Set;return e.onTableControlsRequest({id:h,items:H,readonly:e.isReadonly(),anchorRect:f,subscribeDismiss:$=>(A.add($),()=>{A.delete($)}),submit:$=>{var X;if(((X=s.get(y))==null?void 0:X.id)!==h)return;const q=ft(H,$);!q||q.disabled||F(y,q.item.command)},cancel:()=>{var $;(($=s.get(y))==null?void 0:$.id)===h&&P(y)}})===!0?(P(y),s.set(y,{id:h,signature:_,dismissListeners:A}),k(y),!0):(P(y),!1)},C=(y,d)=>{const E=d.dataset.lexicalKey,f=y.dataset.menuItemId,H=f?us.get(f):void 0;!E||!H||F(E,H.command)},R=y=>{if(!y){const f=m;m=null,f!==null&&I(f);return}const d=y.dataset.lexicalKey?y.dataset.lexicalKey:a.get(y)??null;if(!d||m===d)return;const E=m;m=d,E!==null&&I(E),I(d)},x=y=>{const d=y.target;if(!(d instanceof HTMLElement))return;const E=d.closest(`.${_e}`);E&&(y.preventDefault(),c=y.pointerType==="mouse"?null:E)},L=y=>{if(y.pointerType==="mouse"||!c)return;const d=y.target,E=d instanceof HTMLElement?d.closest(".bridgerte__table-controls"):null,f=d instanceof HTMLElement?d.closest(`.${_e}`):null;f===c&&E&&(y.preventDefault(),y.stopPropagation(),C(f,E),b=!0),c=null},B=()=>{c=null},V=y=>{if(b){b=!1,y.preventDefault(),y.stopPropagation();return}const d=y.target;if(!(d instanceof HTMLElement))return;const E=d.closest(`.${_e}`),f=d.closest(".bridgerte__table-controls");!E||!f||(y.preventDefault(),y.stopPropagation(),C(E,f))},G=e.editor.registerMutationListener(U.TableNode,y=>{y.forEach((d,E)=>{if(d==="destroyed"){u(E);return}I(E)})}),O=e.editor.registerUpdateListener(S),D=ht({root:e.root,content:n,getBlockFromTarget:ps,activateBlock:R,clearBlock:()=>R(null)});return t.className="bridgerte__table-controls-layer",e.root.append(t),t.addEventListener("pointerdown",x),t.addEventListener("pointerup",L),t.addEventListener("pointercancel",B),t.addEventListener("click",V),n.addEventListener("scroll",S,{passive:!0}),window.addEventListener("resize",S),{destroy(){G(),O(),i!==null&&(mt(i),i=null),t.removeEventListener("pointerdown",x),t.removeEventListener("pointerup",L),t.removeEventListener("pointercancel",B),t.removeEventListener("click",V),D.destroy(),n.removeEventListener("scroll",S),window.removeEventListener("resize",S),r.forEach(y=>{var d;(d=o.get(y))==null||d(),y.remove()}),r.clear(),o.clear(),Array.from(s.keys()).forEach(P),a.clear(),t.remove()}}},Cs=e=>{const t=ls({editorRoot:e.editorRoot,isReadonly:e.isReadonly,restoreEditorFocus:e.restoreEditorFocus,executeCommand:e.executeCommand,getClearCommand:e.getClearCommand,onRequest:e.onRequest}),n=da({editor:e.lexicalEditor,root:e.editorRoot,isReadonly:e.isReadonly,languagePanel:e.codeBlockLanguagePanel,payloadPanelConfig:e.payloadPanelConfig,onRequest:e.onRequest}),r=vs({editor:e.lexicalEditor,root:e.editorRoot,isReadonly:e.isReadonly,executeCommand:e.executeCommand,onTableControlsRequest:e.onTableControlsRequest}),o=Ra({editor:e.lexicalEditor,root:e.editorRoot,isReadonly:e.isReadonly,defaultWidthPercent:e.defaultMediaWidthPercent,executeCommand:e.executeCommand,mediaControlsConfig:e.mediaControlsConfig,menuLabels:e.menuLabels,onMediaControlsRequest:e.onMediaControlsRequest});return{payloadPanelController:t,codeBlockController:n,tableHeaderController:r,mediaControlsController:o,destroy(){t.destroy(),n.destroy(),r.destroy(),o.destroy()}}},ws=(e,t)=>{const n=document.createElement("div"),r=document.createElement("div"),o=document.createElement("div"),a=document.createElement("div");return e.classList.add("bridgerte"),e.textContent="",n.className="bridgerte__editor",r.className="bridgerte__body",o.className="bridgerte__content",a.className="bridgerte__placeholder",a.textContent=t.placeholder,a.setAttribute("aria-hidden","true"),o.dataset.placeholder=t.placeholder,o.setAttribute("role","textbox"),o.setAttribute("aria-multiline","true"),r.append(o,a),n.append(r),e.append(n),{rootElement:n,bodyElement:r,contentElement:o,placeholderElement:a}},_s=({editor:e})=>{let t=null;return{capture(){e.getEditorState().read(()=>{var n;t=((n=l.$getSelection())==null?void 0:n.clone())??null})},restore(){t&&e.update(()=>{l.$setSelection((t==null?void 0:t.clone())??null)})},clear(){t=null}}},ks=/((https?:\/\/|www\.)[^\s<>()]+[^\s<>().,;:!?])/i,Ms=/([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,})/i,Es={changeHandlers:[],excludeParents:[],matchers:[Y.createLinkMatcherWithRegExp(ks,e=>e.startsWith("http://")||e.startsWith("https://")?e:`https://${e}`),Y.createLinkMatcherWithRegExp(Ms,e=>`mailto:${e}`)]},xs=({editor:e})=>Y.registerAutoLink(e,Es),Ts=[".bridgerte__code-header",".bridgerte__code-block-controls",".bridgerte__code-block-control-button",".bridgerte__code-block-control",".bridgerte__code-block-controls-layer",".bridgerte__code-block-menu",".bridgerte__table-controls-layer",".bridgerte__table-controls",".bridgerte__media-controls-layer",".bridgerte__media-controls",".bridgerte__dialog-backdrop",".bridgerte__dialog",".bridgerte__payload-panel"].join(","),Ns=(e,t)=>{const n=e.anchorNode,r=e.focusNode;return n!==null&&r!==null&&t.contains(n)&&t.contains(r)},Ss=e=>{e.querySelectorAll(Ts).forEach(t=>{t.remove()}),e.querySelectorAll('[contenteditable="false"]').forEach(t=>{t.classList.contains("bridgerte__media")||t.remove()})},Ls=e=>{const t=e.ownerDocument.getSelection();if(!t||t.rangeCount===0||!Ns(t,e))return null;const n=t.getRangeAt(0).cloneContents();Ss(n);const r=e.ownerDocument.createElement("div");return r.append(n),{html:r.innerHTML,text:r.textContent??""}},Rs=({target:e,isReadonly:t})=>{const n=o=>{const a=Ls(e);!a||!o.clipboardData||(o.clipboardData.setData("text/html",a.html),o.clipboardData.setData("text/plain",a.text),o.preventDefault(),o.stopImmediatePropagation())},r=o=>{if(t()){n(o);return}n(o)};return e.addEventListener("copy",n,{capture:!0}),e.addEventListener("cut",r,{capture:!0}),()=>{e.removeEventListener("copy",n,{capture:!0}),e.removeEventListener("cut",r,{capture:!0})}},Ae=e=>e.getChildren().map(t=>l.$isLineBreakNode(t)?`
3
3
  `:t.getTextContent()).join(""),Is=e=>e===""?1:e.split(`
4
4
  `).length,Ps=e=>{const t=[];return e.split(`
5
- `).forEach((n,r)=>{r>0&&t.push(l.$createLineBreakNode()),n.split(" ").forEach((o,a)=>{a>0&&t.push(l.$createTabNode()),o!==""&&t.push(W.$createCodeHighlightNode(o))})}),t},$s=e=>{const t=[];return e.forEach((n,r)=>{r>0&&t.push(l.$createLineBreakNode()),n.forEach(o=>{o.text.split(" ").forEach((a,s)=>{s>0&&t.push(l.$createTabNode()),a!==""&&t.push(W.$createCodeHighlightNode(a,o.highlightType))})})}),t},Gt=(e,t)=>W.$isCodeHighlightNode(e)&&W.$isCodeHighlightNode(t)&&e.getTextContent()===t.getTextContent()&&e.getHighlightType()===t.getHighlightType()&&e.getStyle()===t.getStyle()||l.$isTabNode(e)&&l.$isTabNode(t)||l.$isLineBreakNode(e)&&l.$isLineBreakNode(t),As=(e,t)=>{let n=0;for(;n<e.length;){const i=e[n],g=t[n];if(!i||!g||!Gt(i,g))break;n+=1}const r=e.length,o=t.length,a=Math.min(r,o)-n;let s=0;for(;s<a;){s+=1;const i=e[r-s],g=t[o-s];if(!i||!g||!Gt(i,g)){s-=1;break}}return{from:n,nodesForReplacement:t.slice(n,o-s),to:r-s}},Yt=(e,t)=>{const n=As(e.getChildren(),t),{from:r,nodesForReplacement:o,to:a}=n;return r===a&&o.length===0?!1:(e.splice(r,a-r,o),!0)},Bs=(e,t)=>{const n=l.$getNodeByKey(e);if(!W.$isCodeNode(n)||!n.isAttached())return;const r=l.$getSelection();if(!l.$isRangeSelection(r)){t();return}const o=r.anchor,a=o.offset,s=o.type==="element"&&l.$isLineBreakNode(n.getChildAtIndex(o.offset-1));let i=0;if(!s){const g=o.getNode();i=a+g.getPreviousSiblings().reduce((c,b)=>c+b.getTextContentSize(),0)}if(t()){if(s){o.getNode().select(a,a);return}n.getChildren().some(g=>{const c=l.$isTextNode(g);if(!c&&!l.$isLineBreakNode(g))return!1;const b=g.getTextContentSize();return c&&b>=i?(g.select(i,i),!0):(i-=b,!1)})}},Ds=12e3,Hs="bridgerte:code-highlight";let Xt=null;const Os=()=>{if(typeof Worker!="function"||Fs())return null;try{return new Worker(new URL(""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/assets/shikiTokenizerWorker-BtjW_v9G.js").href:new URL("assets/shikiTokenizerWorker-BtjW_v9G.js",document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),typeof document>"u"?require("url").pathToFileURL(__filename).href:pe&&pe.tagName.toUpperCase()==="SCRIPT"&&pe.src||new URL("index-BNg4kAQx.cjs",document.baseURI).href),{type:"module"})}catch{return null}},Fs=()=>{const e=typeof document>"u"?require("url").pathToFileURL(__filename).href:pe&&pe.tagName.toUpperCase()==="SCRIPT"&&pe.src||new URL("index-BNg4kAQx.cjs",document.baseURI).href;return/\/node_modules\/\.vite\/deps\//.test(e)},zs=()=>{try{return Xt?Xt():Os()}catch{return null}},Ws=()=>Promise.resolve().then(()=>require("./shikiTokenizerRuntime.cjs")),he=(e,t,n,r)=>({codeLength:e.code.length,language:e.language,lineCount:Is(e.code),nodeKey:e.nodeKey,reason:r,status:n,strategy:t}),qs=({code:e,language:t,nodeKey:n,theme:r})=>({codeHash:Be.getCodeHighlightCodeHash(e),codeLength:e.length,language:t,nodeKey:n,theme:r}),Jt=(e,t)=>{const n=Ae(e);return e.getKey()===t.nodeKey&&e.getLanguage()===t.language&&(e.getTheme()||Be.bridgeCodeHighlightTheme)===t.theme&&n.length===t.codeLength&&Be.getCodeHighlightCodeHash(n)===t.codeHash},Us=e=>{const t=new Map,n=new Set,r={didTransform:!1,nodesCurrentlyHighlighting:new Set},o={isUnavailable:!1,worker:null},a={isRunning:!1,queue:[]};let s=!1,i=1,g=0;const c=M=>{const C=e.getRootElement();!C||s||C.dispatchEvent(new CustomEvent(Hs,{bubbles:!0,detail:M}))},b=M=>{M.getIsSyntaxHighlightSupported()&&M.setIsSyntaxHighlightSupported(!1),M.getStyle()&&M.setStyle("")},m=(M,C)=>{b(M),Yt(M,Ps(C))},k=(M,C)=>{p({codeHash:M.codeHash,id:M.id,language:M.language,message:C instanceof Error?C.message:"Unknown code highlight fallback loader error.",nodeKey:M.nodeKey,status:"error",theme:M.theme,version:M.version},"fallback")},P=()=>{a.isRunning||a.queue.length===0||s||(a.isRunning=!0,Ws().then(async({tokenizeCodeHighlightRequest:M})=>{for(;a.queue.length>0&&!s;){const C=a.queue.shift();if(C)try{const L=await M(C);p({codeHash:C.codeHash,id:C.id,language:C.language,lines:L,nodeKey:C.nodeKey,status:"success",theme:C.theme,version:C.version},"fallback")}catch(L){p({codeHash:C.codeHash,id:C.id,language:C.language,message:L instanceof Error?L.message:"Unknown code highlight fallback error.",nodeKey:C.nodeKey,status:"error",theme:C.theme,version:C.version},"fallback")}}}).catch(M=>{a.queue.splice(0).forEach(L=>{k(L,M)})}).finally(()=>{a.isRunning=!1,P()}))},w=(M,C)=>{const L=t.get(M.nodeKey);!L||L.requestId!==M.id||L.version!==M.version||(a.queue.push(M),c(he({code:M.code,language:M.language,nodeKey:M.nodeKey,theme:M.theme},"fallback","scheduled",C)),P())},T=M=>{var L;if(o.isUnavailable)return;o.isUnavailable=!0,(L=o.worker)==null||L.terminate(),o.worker=null,e.getEditorState().read(()=>{const x=[];return t.forEach(R=>{const B=l.$getNodeByKey(R.nodeKey);if(!W.$isCodeNode(B)||!B.isAttached()||!Jt(B,R)){t.delete(R.nodeKey);return}x.push({code:Ae(B),codeHash:R.codeHash,id:R.requestId,language:R.language,nodeKey:R.nodeKey,theme:R.theme,version:R.version})}),x}).forEach(x=>{w(x,M)})},I=()=>o.worker||o.isUnavailable||s?o.worker:(o.worker=zs(),o.worker?(o.worker.addEventListener("message",M=>{s||p(M.data)}),o.worker.addEventListener("error",()=>{T("worker-error-fallback")}),o.worker.addEventListener("messageerror",()=>{T("worker-message-error-fallback")}),o.worker):(o.isUnavailable=!0,null)),u=(M,C)=>{const L=I(),x=qs(C),R=i;i+=1,g+=1,t.set(C.nodeKey,{...x,requestId:R,version:g}),m(M,C.code);const B={code:C.code,codeHash:x.codeHash,id:R,language:C.language,nodeKey:C.nodeKey,theme:C.theme,version:g};if(!L){w(B,"worker-unavailable-fallback");return}L.postMessage(B),c(he(C,"worker","scheduled"))},p=(M,C="worker")=>{const L=t.get(M.nodeKey);!L||L.requestId!==M.id||L.version!==M.version||L.language!==M.language||L.theme!==M.theme||L.codeHash!==M.codeHash||(t.delete(M.nodeKey),e.update(()=>{const x=l.$getNodeByKey(M.nodeKey);if(!W.$isCodeNode(x)||!x.isAttached()||!Jt(x,L))return;const B={code:Ae(x),language:L.language,nodeKey:L.nodeKey,theme:L.theme};if(M.status==="error"){b(x),c(he(B,"degraded","completed",M.message));return}n.add(M.nodeKey),x.setIsSyntaxHighlightSupported(!0),x.getStyle()&&x.setStyle(""),Bs(M.nodeKey,()=>Yt(x,$s(M.lines))),c(he(B,C,"completed")),l.$onUpdate(()=>{n.delete(M.nodeKey)})}))},S=M=>{const C=M.getKey();if(r.nodesCurrentlyHighlighting.has(C)||n.has(C))return;const L=M.getLanguage(),x=M.getTheme()||Be.bridgeCodeHighlightTheme,R=Ae(M),B={code:R,language:L??"",nodeKey:C,theme:x};if(M.getTheme()||M.setTheme(x),!L){t.delete(C),m(M,R),c(he(B,"degraded","completed","plain-language"));return}if(R.length>Ds){t.delete(C),m(M,R),c(he(B,"degraded","completed","large-code"));return}r.nodesCurrentlyHighlighting.add(C),r.didTransform||(r.didTransform=!0,l.$onUpdate(()=>{r.didTransform=!1,r.nodesCurrentlyHighlighting.clear()})),u(M,B)},N=M=>{const C=M.getParent();if(W.$isCodeNode(C)){S(C);return}W.$isCodeHighlightNode(M)&&M.replace(l.$createTextNode(M.getTextContent()))},F=l.mergeRegister(e.registerNodeTransform(W.CodeNode,S),e.registerNodeTransform(l.TextNode,N),e.registerNodeTransform(W.CodeHighlightNode,N),Yn.registerCodeIndentation(e));return{destroy(){var M;s=!0,F(),t.clear(),n.clear(),r.nodesCurrentlyHighlighting.clear(),a.queue=[],a.isRunning=!1,(M=o.worker)==null||M.terminate(),o.worker=null}}},Ie=8,Qt=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n));function yt(e,t,n={}){const r=n.placement??"bottom-start",o=n.offset??8,a=n.shiftPadding??8,s=n.strategy??"absolute";let i=null,g=!1;const c=()=>{t.style.position=s,t.style.left="0px",t.style.top="0px",t.style.opacity="0",t.style.pointerEvents="none"},b=(w,T)=>{const I=gt(),u=t.getBoundingClientRect(),p=I.left+Ie,S=I.top+Ie,N=I.left+I.width-u.width-Ie,F=I.top+I.height-u.height-Ie;t.style.left=`${Qt(w,p,N)}px`,t.style.top=`${Qt(T,S,F)}px`,t.style.opacity="",t.style.pointerEvents=""},m=async()=>{const w=await Z.computePosition(e,t,{placement:r,strategy:s,platform:Z.platform,middleware:[Z.offset(o),Z.flip(),Z.shift({padding:a})]});b(w.x,w.y)},k=()=>{i==null||i(),i=null},P=w=>{if(g!==w){if(g=w,k(),g){c(),t.hidden=!1,i=Z.autoUpdate(e,t,m),m();return}t.hidden=!0,t.style.opacity="",t.style.pointerEvents=""}};return c(),t.hidden=!0,{update:m,setOpen:P,destroy(){k(),t.hidden=!0}}}const vt={"align-center":'<svg aria-hidden="true" class="lucide lucide-align-center" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H3" /> <path d="M17 12H7" /> <path d="M19 19H5" /> </svg>',"align-justify":'<svg aria-hidden="true" class="lucide lucide-align-justify" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 5h18" /> <path d="M3 12h18" /> <path d="M3 19h18" /> </svg>',"align-left":'<svg aria-hidden="true" class="lucide lucide-align-left" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H3" /> <path d="M15 12H3" /> <path d="M17 19H3" /> </svg>',"align-right":'<svg aria-hidden="true" class="lucide lucide-align-right" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H3" /> <path d="M21 12H9" /> <path d="M21 19H7" /> </svg>',"at-sign":'<svg aria-hidden="true" class="lucide lucide-at-sign" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="4" /> <path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8" /> </svg>',bold:'<svg aria-hidden="true" class="lucide lucide-bold" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8" /> </svg>',"case-sensitive":'<svg aria-hidden="true" class="lucide lucide-baseline" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 20h16" /> <path d="m6 16 6-12 6 12" /> <path d="M8 12h8" /> </svg>',code:'<svg aria-hidden="true" class="lucide lucide-code-xml" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m18 16 4-4-4-4" /> <path d="m6 8-4 4 4 4" /> <path d="m14.5 4-5 16" /> </svg>',"columns-minus":'<svg aria-hidden="true" class="lucide lucide-between-vertical-end" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="7" height="13" x="3" y="3" rx="1" /> <path d="m9 22 3-3 3 3" /> <rect width="7" height="13" x="14" y="3" rx="1" /> </svg>',"columns-plus":'<svg aria-hidden="true" class="lucide lucide-between-vertical-start" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="7" height="13" x="3" y="8" rx="1" /> <path d="m15 2-3 3-3-3" /> <rect width="7" height="13" x="14" y="8" rx="1" /> </svg>',"heading-1":'<svg aria-hidden="true" class="lucide lucide-heading-1" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <path d="m17 12 3-2v8" /> </svg>',"heading-2":'<svg aria-hidden="true" class="lucide lucide-heading-2" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <path d="M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1" /> </svg>',"heading-3":'<svg aria-hidden="true" class="lucide lucide-heading-3" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <path d="M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2" /> <path d="M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2" /> </svg>',"heading-4":'<svg aria-hidden="true" class="lucide lucide-heading-4" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 18V6" /> <path d="M17 10v3a1 1 0 0 0 1 1h3" /> <path d="M21 10v8" /> <path d="M4 12h8" /> <path d="M4 18V6" /> </svg>',"heading-5":'<svg aria-hidden="true" class="lucide lucide-heading-5" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <path d="M17 13v-3h4" /> <path d="M17 17.7c.4.2.8.3 1.3.3 1.5 0 2.7-1.1 2.7-2.5S19.8 13 18.3 13H17" /> </svg>',"heading-6":'<svg aria-hidden="true" class="lucide lucide-heading-6" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <circle cx="19" cy="16" r="2" /> <path d="M20 10c-2 2-3 3.5-3 6" /> </svg>',"indent-decrease":'<svg aria-hidden="true" class="lucide lucide-indent-decrease" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H11" /> <path d="M21 12H11" /> <path d="M21 19H11" /> <path d="m7 8-4 4 4 4" /> </svg>',"indent-increase":'<svg aria-hidden="true" class="lucide lucide-indent-increase" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H11" /> <path d="M21 12H11" /> <path d="M21 19H11" /> <path d="m3 8 4 4-4 4" /> </svg>',italic:'<svg aria-hidden="true" class="lucide lucide-italic" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="19" x2="10" y1="4" y2="4" /> <line x1="14" x2="5" y1="20" y2="20" /> <line x1="15" x2="9" y1="4" y2="20" /> </svg>',"list-ordered":'<svg aria-hidden="true" class="lucide lucide-list-ordered" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M11 5h10" /> <path d="M11 12h10" /> <path d="M11 19h10" /> <path d="M4 4h1v5" /> <path d="M4 9h2" /> <path d="M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02" /> </svg>',"list-plus":'<svg aria-hidden="true" class="lucide lucide-list-plus" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 5H3" /> <path d="M11 12H3" /> <path d="M16 19H3" /> <path d="M18 9v6" /> <path d="M21 12h-6" /> </svg>',"list-todo":'<svg aria-hidden="true" class="lucide lucide-list-todo" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M13 5h8" /> <path d="M13 12h8" /> <path d="M13 19h8" /> <path d="m3 17 2 2 4-4" /> <rect x="3" y="4" width="6" height="6" rx="1" /> </svg>',list:'<svg aria-hidden="true" class="lucide lucide-list" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 5h.01" /> <path d="M3 12h.01" /> <path d="M3 19h.01" /> <path d="M8 5h13" /> <path d="M8 12h13" /> <path d="M8 19h13" /> </svg>',maximize:'<svg aria-hidden="true" class="lucide lucide-maximize" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M8 3H5a2 2 0 0 0-2 2v3" /> <path d="M21 8V5a2 2 0 0 0-2-2h-3" /> <path d="M3 16v3a2 2 0 0 0 2 2h3" /> <path d="M16 21h3a2 2 0 0 0 2-2v-3" /> </svg>',minus:'<svg aria-hidden="true" class="lucide lucide-separator-horizontal" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m16 16-4 4-4-4" /> <path d="M3 12h18" /> <path d="m8 8 4-4 4 4" /> </svg>',"paint-bucket":'<svg aria-hidden="true" class="lucide lucide-paint-bucket" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M11 7 6 2" /> <path d="M18.992 12H2.041" /> <path d="M21.145 18.38A3.34 3.34 0 0 1 20 16.5a3.3 3.3 0 0 1-1.145 1.88c-.575.46-.855 1.02-.855 1.595A2 2 0 0 0 20 22a2 2 0 0 0 2-2.025c0-.58-.285-1.13-.855-1.595" /> <path d="m8.5 4.5 2.148-2.148a1.205 1.205 0 0 1 1.704 0l7.296 7.296a1.205 1.205 0 0 1 0 1.704l-7.592 7.592a3.615 3.615 0 0 1-5.112 0l-3.888-3.888a3.615 3.615 0 0 1 0-5.112L5.67 7.33" /> </svg>',palette:'<svg aria-hidden="true" class="lucide lucide-palette" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z" /> <circle cx="13.5" cy="6.5" r=".5" fill="currentColor" /> <circle cx="17.5" cy="10.5" r=".5" fill="currentColor" /> <circle cx="6.5" cy="12.5" r=".5" fill="currentColor" /> <circle cx="8.5" cy="7.5" r=".5" fill="currentColor" /> </svg>',pilcrow:'<svg aria-hidden="true" class="lucide lucide-pilcrow" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M13 4v16" /> <path d="M17 4v16" /> <path d="M19 4H9.5a4.5 4.5 0 0 0 0 9H13" /> </svg>',quote:'<svg aria-hidden="true" class="lucide lucide-quote" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z" /> <path d="M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z" /> </svg>',redo:'<svg aria-hidden="true" class="lucide lucide-redo" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 7v6h-6" /> <path d="M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7" /> </svg>',"remove-formatting":'<svg aria-hidden="true" class="lucide lucide-eraser" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21" /> <path d="m5.082 11.09 8.828 8.828" /> </svg>',"rows-minus":'<svg aria-hidden="true" class="lucide lucide-between-horizontal-end" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="13" height="7" x="3" y="3" rx="1" /> <path d="m22 15-3-3 3-3" /> <rect width="13" height="7" x="3" y="14" rx="1" /> </svg>',"rows-plus":'<svg aria-hidden="true" class="lucide lucide-between-horizontal-start" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="13" height="7" x="8" y="3" rx="1" /> <path d="m2 9 3 3-3 3" /> <rect width="13" height="7" x="8" y="14" rx="1" /> </svg>',"square-code":'<svg aria-hidden="true" class="lucide lucide-square-code" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m10 9-3 3 3 3" /> <path d="m14 15 3-3-3-3" /> <rect x="3" y="3" width="18" height="18" rx="2" /> </svg>',strikethrough:'<svg aria-hidden="true" class="lucide lucide-strikethrough" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 4H9a3 3 0 0 0-2.83 4" /> <path d="M14 12a4 4 0 0 1 0 8H6" /> <line x1="4" x2="20" y1="12" y2="12" /> </svg>',subscript:'<svg aria-hidden="true" class="lucide lucide-subscript" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m4 5 8 8" /> <path d="m12 5-8 8" /> <path d="M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2.11 2.11 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07" /> </svg>',superscript:'<svg aria-hidden="true" class="lucide lucide-superscript" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m4 19 8-8" /> <path d="m12 19-8-8" /> <path d="M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06" /> </svg>',"table-delete":'<svg aria-hidden="true" class="lucide lucide-table" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 3v18" /> <rect width="18" height="18" x="3" y="3" rx="2" /> <path d="M3 9h18" /> <path d="M3 15h18" /> </svg>',table:'<svg aria-hidden="true" class="lucide lucide-table" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 3v18" /> <rect width="18" height="18" x="3" y="3" rx="2" /> <path d="M3 9h18" /> <path d="M3 15h18" /> </svg>',"trash-2":'<svg aria-hidden="true" class="lucide lucide-trash" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" /> <path d="M3 6h18" /> <path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" /> </svg>',type:'<svg aria-hidden="true" class="lucide lucide-type" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 4v16" /> <path d="M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2" /> <path d="M9 20h6" /> </svg>',underline:'<svg aria-hidden="true" class="lucide lucide-underline" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M6 4v6a6 6 0 0 0 12 0V4" /> <line x1="4" x2="20" y1="20" y2="20" /> </svg>',undo:'<svg aria-hidden="true" class="lucide lucide-undo" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 7v6h6" /> <path d="M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13" /> </svg>',"upload-image":'<svg aria-hidden="true" class="lucide lucide-image" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="18" height="18" x="3" y="3" rx="2" ry="2" /> <circle cx="9" cy="9" r="2" /> <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" /> </svg>',"upload-video":'<svg aria-hidden="true" class="lucide lucide-film" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="18" height="18" x="3" y="3" rx="2" /> <path d="M7 3v18" /> <path d="M3 7.5h4" /> <path d="M3 12h18" /> <path d="M3 16.5h4" /> <path d="M17 3v18" /> <path d="M17 7.5h4" /> <path d="M17 16.5h4" /> </svg>',"wrap-text":'<svg aria-hidden="true" class="lucide lucide-wrap-text" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m16 16-3 3 3 3" /> <path d="M3 12h14.5a1 1 0 0 1 0 7H13" /> <path d="M3 19h6" /> <path d="M3 5h18" /> </svg>'},Vs=e=>{const t=document.createElement("span");return t.className="bridgerte__menu-icon-text",t.textContent=e,t},Ct=(e,t,n)=>{if(t){e.innerHTML=t;return}e.append(Vs(n))},at=()=>{const e=window.getSelection(),t=e!=null&&e.rangeCount?e.getRangeAt(0):null,n=t==null?void 0:t.getBoundingClientRect();return!n||n.width===0&&n.height===0?null:n},Ks=160,js={toolbarKeys:["bold","italic","underline","strike","inline-code","clear-style","|","color","background-color","font-size","font-family","line-height"]},Gs=()=>{const e=l.$getSelection();return l.$isRangeSelection(e)&&!e.isCollapsed()},Zt=(e,t)=>e.target instanceof Node&&t.contains(e.target),en=e=>e instanceof Element?e.closest(".bridgerte__hoverbar-button"):null,Ys=e=>e.flatMap(t=>t.type==="button"?[t.item]:t.type==="group"?t.items:[]),Xs=e=>{const t=document.createElement("span");return t.className="bridgerte__hoverbar-separator",t.dataset.separatorId=e.key,t.setAttribute("aria-hidden","true"),t},Js=(e,t,n)=>{const r=pt(e,t),o=document.createElement("button");return o.type="button",o.className="bridgerte__hoverbar-button",o.dataset.hoverbarItemId=e.id,o.dataset.active=String(r.active),o.disabled=r.disabled,o.setAttribute("aria-label",e.label),o.setAttribute("aria-pressed",String(r.active)),Ct(o,n[e.icon]??vt[e.icon],e.label),o},Qs=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,executeCommand:o,requestPayloadPanel:a,getCommandStates:s,menuSchema:i,hoverbarConfig:g,menuLabels:c,payloadPanelConfig:b,icons:m={},onHoverbarMenuRequest:k})=>{const P=We(i??J.defaultMenuSchema,{menuLabels:c,payloadPanelConfig:b}),w=J.resolveToolbarMenu(g??js,P),T=Ys(w),I=document.createElement("span"),u=document.createElement("div");let p=null,S=!1,N=null,F=0,M=null;const C=Q(u,{targetSelector:".bridgerte__hoverbar-button"});I.className="bridgerte__hoverbar-anchor",I.setAttribute("aria-hidden","true"),u.className="bridgerte__floating-menu bridgerte__hoverbar",u.setAttribute("role","toolbar"),u.setAttribute("aria-label","BridgeRTE hoverbar"),e.append(I,u),p=yt(I,u,{placement:"top",offset:8,strategy:"fixed"});const L=()=>{N&&(window.clearTimeout(N),N=null)},x=()=>{const v=M;v&&(M=null,v.dismissListeners.forEach(A=>{A()}),v.dismissListeners.clear())},R=()=>{L(),x(),S=!1,u.replaceChildren(),u.dataset.visible="false",p==null||p.setOpen(!1)},B=()=>{const v=at(),A=t.getBoundingClientRect(),z={x:(v==null?void 0:v.left)??A.left,y:(v==null?void 0:v.top)??A.top,width:(v==null?void 0:v.width)||1,height:(v==null?void 0:v.height)||1};return I.style.left=`${z.x}px`,I.style.top=`${z.y}px`,I.style.width=`${z.width}px`,I.style.height=`${z.height}px`,z},V=()=>{const v=s(),A=Nn(w,K=>pt(K,v)),z=B(),$=`bridgerte-hoverbar-${F+=1}`,q=new Set;if((k==null?void 0:k({id:$,items:A,commandStates:v,readonly:r(),anchorRect:z,subscribeDismiss:K=>(q.add(K),()=>{q.delete(K)}),submit:K=>{if((M==null?void 0:M.id)!==$)return;const ne=ft(A,K);!ne||ne.disabled||D(ne.item,z)},cancel:R}))===!0){x(),M={id:$,dismissListeners:q},u.replaceChildren(),S=!0,u.dataset.visible="false",p==null||p.setOpen(!1);return}u.replaceChildren(...w.flatMap(K=>K.type==="separator"?[Xs(K)]:(K.type==="button"?[K.item]:K.items).map(be=>Js(be,v,m)))),x(),S=!0,u.dataset.visible="true",p==null||p.setOpen(!0),p==null||p.update()},G=()=>r()?!1:n.getEditorState().read(Gs),O=(v=!1)=>{if(L(),!G()){R();return}if(v){V();return}S&&R(),N=window.setTimeout(()=>{N=null,G()&&V()},Ks)},D=(v,A)=>{if(v.payloadPanel){a({menuId:v.id,command:v.command,panel:v.payloadPanel,currentValues:Tn(v,s()),anchorRect:A}),O(!0);return}o(v.command),O(!0)},y=v=>{const A=T.find($=>$.id===v.dataset.hoverbarItemId);if(!A||v.disabled)return;const z=v.getBoundingClientRect();D(A,{x:z.left,y:z.top,width:z.width,height:z.height})},d=v=>{en(v.target)&&v.preventDefault()},E=v=>{const A=en(v.target);A&&(v.preventDefault(),y(A))},f=v=>{!S||Zt(v,u)||Zt(v,t)||R()},H=n.registerCommand(l.SELECTION_CHANGE_COMMAND,()=>(O(),!1),l.COMMAND_PRIORITY_LOW),h=n.registerUpdateListener(()=>{O()}),_=n.registerCommand(l.KEY_ESCAPE_COMMAND,v=>S?(v==null||v.preventDefault(),R(),!0):!1,l.COMMAND_PRIORITY_LOW);return u.addEventListener("pointerdown",d),u.addEventListener("click",E),document.addEventListener("pointerdown",f,!0),()=>{L(),H(),h(),_(),u.removeEventListener("pointerdown",d),u.removeEventListener("click",E),document.removeEventListener("pointerdown",f,!0),C(),p==null||p.destroy(),I.remove(),u.remove()}},Zs=e=>e.metaKey||e.ctrlKey,ei={b:{type:"format.bold"},i:{type:"format.italic"},u:{type:"format.underline"},"\\":{type:"format.clear"}},ti={x:{type:"format.strike"},l:{type:"align",value:"left"},e:{type:"align",value:"center"},r:{type:"align",value:"right"},j:{type:"align",value:"justify"}},ni={0:{type:"block.paragraph"},1:{type:"block.heading",level:1},2:{type:"block.heading",level:2},3:{type:"block.heading",level:3},4:{type:"block.heading",level:4},5:{type:"block.heading",level:5},6:{type:"block.heading",level:6}},ri=e=>{const t=e.key.toLowerCase(),n=e.code;if(!e.metaKey&&!e.ctrlKey&&!e.altKey&&!e.shiftKey||!Zs(e))return null;if(e.altKey){if(e.shiftKey)return null;if(t==="c"||n==="KeyC")return{type:"block.code"};const r=n.startsWith("Digit")?n.slice(5):t;return ni[r]??null}return e.shiftKey?t==="z"?{type:"history.redo"}:t==="."||t===">"||n==="Period"?{type:"block.quote"}:t==="7"||t==="&"||n==="Digit7"?{type:"list.ordered"}:t==="8"||t==="*"||n==="Digit8"?{type:"list.unordered"}:t==="9"||t==="("||n==="Digit9"?{type:"list.todo"}:t==="-"||t==="_"||n==="Minus"?{type:"block.divider"}:ti[t]??null:t==="z"?{type:"history.undo"}:t==="y"&&e.ctrlKey&&!e.metaKey?{type:"history.redo"}:t==="`"||t==="~"||n==="Backquote"?{type:"format.inlineCode"}:ei[t]??null},oi=({target:e,isReadonly:t,executeCommand:n})=>{const r=o=>{if(t())return;const a=ri(o);a&&(o.preventDefault(),n(a))};return e.addEventListener("keydown",r),()=>{e.removeEventListener("keydown",r)}},ai=(e,t)=>{const n=t.offsetTop,r=n+t.offsetHeight,o=e.scrollTop,a=o+e.clientHeight;if(n<o){e.scrollTop=n;return}r>a&&(e.scrollTop=r-e.clientHeight)},wt=(e,t)=>{var n;if(e instanceof Text&&t<=(((n=e.textContent)==null?void 0:n.length)??0))return e;for(const r of Array.from((e==null?void 0:e.childNodes)??[])){const o=wt(r,t);if(o)return o}return null},Hn=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,menu:o,anchor:a,itemSelector:s,getCurrentTrigger:i,getTriggerRect:g,resolveItems:c,renderItem:b,renderStatus:m,onStateChange:k,onSelect:P})=>{let w=null,T=0;const I=Q(o,{targetSelector:s}),u=yt(a,o,{placement:"bottom-start",offset:2,strategy:"fixed"});e.append(a,o);const p=()=>{const f=w?g(w.trigger)??at():at(),H=t.getBoundingClientRect();return f??H},S=()=>{const f=p();a.style.left=`${f.left}px`,a.style.top=`${f.top}px`,a.style.height=`${f.height||1}px`},N=(f=!0)=>{w=null,o.dataset.visible="false",f&&o.replaceChildren(),u.setOpen(!1)},F=()=>{const f=o.querySelector(`${s}[data-active="true"]`);f&&ai(o,f)},M=(f,H)=>{!w||w.requestId!==H.requestId||(N(),P(f,H.trigger))},C=()=>{if(!w){N();return}const f=w,H=p();if((k==null?void 0:k(f,{anchorRect:H,close:N,selectItem:v=>M(v,f)}))===!0){o.replaceChildren(),o.dataset.visible="false",u.setOpen(!1);return}if(f.status==="success")o.replaceChildren(...f.items.map((v,A)=>b(v,A,A===f.activeIndex)));else{const v=m==null?void 0:m(f.status,f.trigger.query,f.error);o.replaceChildren(...v?[v]:[])}const _=o.children.length>0;o.dataset.visible=String(_),S(),u.setOpen(_),F(),u.update()},L=async(f,H)=>{let h;try{h=await Promise.resolve(c(f))}catch(_){(w==null?void 0:w.requestId)===H&&(w={...w,items:[],activeIndex:0,status:"error",error:_},C());return}!w||H!==w.requestId||(w={...w,items:h,activeIndex:Math.min(w.activeIndex,Math.max(h.length-1,0)),status:h.length>0?"success":"empty",error:void 0},C())},x=()=>{if(r()){N();return}const f=n.getEditorState().read(i);if(!f){N(!1);return}T+=1,w={trigger:f,items:[],activeIndex:0,requestId:T,status:"loading",error:void 0},C(),L(f.query,T)},R=()=>{if(!w||w.status!=="success")return!1;const f=w.items[w.activeIndex],H=w.trigger;return f?(N(),P(f,H),!0):!1},B=f=>!w||w.status!=="success"||w.items.length===0?!1:(w={...w,activeIndex:(w.activeIndex+f+w.items.length)%w.items.length},C(),!0),V=f=>{const H=f.target,h=H instanceof HTMLElement?H.closest(s):null,_=h!=null&&h.dataset.index?Number.parseInt(h.dataset.index,10):Number.NaN;!w||w.status!=="success"||Number.isNaN(_)||(w={...w,activeIndex:_},f.preventDefault(),R())},G=f=>{const H=f.target;H instanceof HTMLElement&&H.closest(s)&&f.preventDefault()},O=n.registerUpdateListener(()=>{x()}),D=n.registerCommand(l.KEY_ARROW_DOWN_COMMAND,f=>B(1)?(f==null||f.preventDefault(),!0):!1,l.COMMAND_PRIORITY_LOW),y=n.registerCommand(l.KEY_ARROW_UP_COMMAND,f=>B(-1)?(f==null||f.preventDefault(),!0):!1,l.COMMAND_PRIORITY_LOW),d=n.registerCommand(l.KEY_ENTER_COMMAND,f=>R()?(f==null||f.preventDefault(),!0):!1,l.COMMAND_PRIORITY_LOW),E=n.registerCommand(l.KEY_ESCAPE_COMMAND,f=>w?(f==null||f.preventDefault(),N(),!0):!1,l.COMMAND_PRIORITY_LOW);return o.addEventListener("click",V),o.addEventListener("pointerdown",G),{close:N,destroy(){O(),D(),y(),d(),E(),o.removeEventListener("click",V),o.removeEventListener("pointerdown",G),I(),u.destroy(),a.remove(),o.remove()}}},si={labelField:"label",descriptionField:"description",avatarField:"avatar",iconField:"data.icon",showAvatar:!0,showIcon:!0,showDescription:!0,loadingText:"加载中",emptyText:"没有匹配的提及",errorText:"提及加载失败"},ii=e=>({...si,...e}),li=(e,t)=>{var o;const n=t.slice(5),r=(o=e.data)==null?void 0:o[n];return typeof r=="string"&&r?r:void 0},Pe=(e,t)=>{if(t.startsWith("data."))return li(e,t);const n=t==="id"?e.id:t==="label"?e.label:t==="value"?e.value:t==="avatar"?e.avatar:e.description;return typeof n=="string"&&n?n:void 0},ci=e=>e.startsWith("@")?e:`@${e}`,On=(e,t)=>{const n=Pe(e,t.labelField)??e.label??e.value??e.id,r=t.showDescription?Pe(e,t.descriptionField)??e.description:void 0,o=t.showAvatar?Pe(e,t.avatarField)??e.avatar:void 0,a=t.showIcon&&!o?Pe(e,t.iconField):void 0;return{item:e,label:ci(n),...r?{description:r}:{},...o?{avatar:o}:{},...a?{icon:a}:{}}},di=(e,t)=>e.map(n=>On(n,t)),st=e=>e instanceof l.TextNode&&e.getTextContent().startsWith(" "),ui=e=>{const n=e.getTextContent().slice(1);if(!n){e.remove();return}e.setTextContent(n)},gi=(e,t)=>{const n=e.getPreviousSibling(),r=e.getNextSibling(),o=st(r)?r.getNextSibling():r;if(st(r)&&ui(r),e.remove(),t){n==null||n.selectEnd();return}o==null||o.selectStart()},mi=e=>{const t=l.$getSelection();if(!l.$isRangeSelection(t)||!t.isCollapsed())return null;const n=t.anchor,r=n.getNode();if(Lt(r))return r;if(!(r instanceof l.TextNode))return null;const o=r.getTextContentSize(),a=r.getPreviousSibling(),s=r.getNextSibling(),i=st(r)&&n.offset===1,g=e?n.offset===0||i?a:null:n.offset===o?s:null;return Lt(g)?g:null},hi=(e,t,n)=>{const r=a=>{if(t())return!1;const s=mi(a);return s?(gi(s,a),n(),!0):!1},o=(a,s)=>{const i=r(s);return i&&a.preventDefault(),i};return[e.registerCommand(l.KEY_BACKSPACE_COMMAND,a=>o(a,!0),l.COMMAND_PRIORITY_HIGH),e.registerCommand(l.KEY_DELETE_COMMAND,a=>o(a,!1),l.COMMAND_PRIORITY_HIGH),e.registerCommand(l.DELETE_CHARACTER_COMMAND,a=>r(a),l.COMMAND_PRIORITY_HIGH)]},pi=/(?:^|\s)@([\p{L}\p{N}_-]*)$/u,tn=[{id:"bridgerte-team",label:"BridgeRTE Team",value:"bridgerte-team"},{id:"frontend",label:"Frontend",value:"frontend"},{id:"designer",label:"Designer",value:"designer"}],fi=e=>e.trim().toLowerCase(),bi=e=>[e.label,e.value,e.description].filter(Boolean).join(" ").toLowerCase(),yi=e=>{const t=fi(e);return t?tn.filter(n=>bi(n).includes(t)):tn},vi=()=>{const e=l.$getSelection();if(!l.$isRangeSelection(e)||!e.isCollapsed())return null;const t=e.anchor,n=t.getNode();if(!(n instanceof l.TextNode))return null;const o=n.getTextContent().slice(0,t.offset).match(pi);if(!o)return null;const a=o[1]??"",s=o[0]??"",i=s.startsWith("@")?0:1,g=t.offset-s.length+i;return{query:a,nodeKey:n.getKey(),startOffset:g,endOffset:t.offset}},Ci=()=>{const e=document.createElement("div");return e.className="bridgerte__floating-menu bridgerte__mention-menu",e.dataset.visible="false",e},wi=()=>{const e=document.createElement("span");return e.className="bridgerte__mention-anchor",e.setAttribute("aria-hidden","true"),e},_i=(e,t)=>{var s;const n=e.getElementByKey(t.nodeKey),r=wt(n,t.startOffset+1);if(!(r instanceof Text))return null;const o=document.createRange(),a=Math.min(t.startOffset+1,((s=r.textContent)==null?void 0:s.length)??0);return a<=t.startOffset?null:(o.setStart(r,t.startOffset),o.setEnd(r,a),o.getBoundingClientRect())},ki=(e,t,n)=>{const r=document.createElement("button"),o=document.createElement("span");if(r.type="button",r.className="bridgerte__menu-item bridgerte__mention-item",r.dataset.mentionId=e.item.id,r.dataset.index=String(t),r.dataset.active=String(n),e.avatar){const a=document.createElement("img");a.className="bridgerte__mention-item-avatar",a.src=e.avatar,a.alt="",a.setAttribute("aria-hidden","true"),r.append(a)}else if(e.icon){const a=document.createElement("span");a.className="bridgerte__mention-item-icon",a.setAttribute("aria-hidden","true"),a.textContent=e.icon,r.append(a)}if(o.className="bridgerte__mention-item-title",o.textContent=e.label,r.append(o),e.description){const a=document.createElement("span");a.className="bridgerte__mention-item-description",a.textContent=e.description,r.append(a)}return r},Mi=(e,t)=>{const n=document.createElement("div");return n.className="bridgerte__mention-status",n.dataset.status=e,n.textContent=t,n},Ei=(e,t)=>{switch(e){case"loading":return t.loadingText;case"empty":return t.emptyText;case"error":return t.errorText}},xi=e=>e?{x:e.x,y:e.y,width:e.width,height:e.height}:void 0,Ti=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,executeCommand:o,mentionProvider:a,mentionMenuConfig:s,onMentionMenuRequest:i})=>{const g=Ci(),c=wi(),b=ii(s),m=(w,T)=>{n.update(()=>{const I=l.$getNodeByKey(T.nodeKey);I instanceof l.TextNode&&(I.spliceText(T.startOffset,T.endOffset-T.startOffset,""),I.select(T.startOffset,T.startOffset))}),o({type:"mention.insert",item:w})},k=Hn({editorRoot:e,contentElement:t,editor:n,isReadonly:r,menu:g,anchor:c,itemSelector:".bridgerte__mention-item",getCurrentTrigger:vi,getTriggerRect:w=>_i(n,w),resolveItems:async w=>{const T=await Promise.resolve(a?a(w):yi(w));return di(T,b)},renderItem:ki,renderStatus:w=>Mi(w,Ei(w,b)),onStateChange:i?(w,T)=>i({id:`bridgerte-mention-menu-${w.requestId}`,query:w.trigger.query,status:w.status,items:w.items,config:b,readonly:r(),anchorRect:xi(T.anchorRect),...w.error?{error:w.error}:{},submit:I=>T.selectItem(On(I,b)),cancel:T.close}):void 0,onSelect:(w,T)=>m(w.item,T)}),P=l.mergeRegister(...hi(n,r,()=>k.close(!1)));return()=>{P(),k.destroy()}},Ni=["script","style","iframe","object","embed","meta","link","xml","svg","math","canvas","form","input","button","select","textarea"].join(","),Si=[".bridgerte__code-header",".bridgerte__code-block-controls",".bridgerte__code-block-control-button",".bridgerte__code-block-control",".bridgerte__code-block-controls-layer",".bridgerte__code-block-menu",".bridgerte__table-controls-layer",".bridgerte__table-controls",".bridgerte__media-controls-layer",".bridgerte__media-controls",".bridgerte__dialog-backdrop",".bridgerte__dialog",".bridgerte__payload-panel",'[data-bridgerte-clipboard-ui="true"]'].join(","),Ri=new Set(["A","B","BLOCKQUOTE","BR","CODE","DEL","DIV","EM","H1","H2","H3","H4","H5","H6","FONT","I","LI","OL","P","PRE","S","SPAN","STRIKE","STRONG","SUB","SUP","TABLE","TBODY","TFOOT","TD","TH","THEAD","TR","TT","U","UL"]),Li=new Set(["http:","https:","mailto:"]),Ii="p,div,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table",Pi="p,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table",$i=new Set(["colspan","rowspan"]),Ai=new Set(["TD","TH"]),Bi=new Set(["M","O","V","W"]),Di=new Set(["SPAN"]),Hi=new Set(["color","background-color"]),Oi=/^#([\da-f]{3}|[\da-f]{6}|[\da-f]{8})$/i,nn=new Map([["B","strong"],["DEL","s"],["I","em"],["STRIKE","s"],["TT","code"]]),Fi=e=>{try{const t=new URL(e,window.location.href);return Li.has(t.protocol)}catch{return!1}},_t=e=>{e.replaceWith(...e.childNodes)},kt=(e,t)=>{const n=e.ownerDocument.createElement(t);return n.append(...e.childNodes),e.replaceWith(n),n},zi=e=>{const t=e.tagName.split(":")[0]??"";return e.tagName.includes(":")&&Bi.has(t)},Fn=e=>{[...e.childNodes].forEach(t=>{if(t.nodeType===Node.COMMENT_NODE){t.remove();return}Fn(t)})},zn=e=>{[...e.childNodes].forEach(t=>{if(t.nodeType===Node.TEXT_NODE){const n=t.parentElement,r=!!(n!=null&&n.closest("pre,code,textarea")),o=(t.textContent??"").replace(/[\u200B-\u200D\uFEFF]/g,"").replace(/\u00A0/g,r?" ":" ");if(r){t.textContent=o;return}let a=o.replace(/\s+/g," ");t.previousSibling||(a=a.trimStart()),t.nextSibling||(a=a.trimEnd()),t.textContent=a;return}zn(t)})},Wi=e=>/^[1-9]\d*$/.test(e.trim()),Mt=e=>{const t=e.trim().toLowerCase(),[,n]=t.match(Oi)??[];return n?n.length===8?`#${n.slice(2)}`:t:null},qi=(e,t)=>{if(!Di.has(e))return null;const n=t.split(";").flatMap(r=>{const[o,...a]=r.split(":"),s=o==null?void 0:o.trim().toLowerCase(),i=Mt(a.join(":"));return!s||!i||!Hi.has(s)?[]:[`${s}: ${i}`]});return n.length>0?`${n.join("; ")};`:null},Ui=e=>{if(zi(e)){e.remove();return}if(!Ri.has(e.tagName)){_t(e);return}[...e.attributes].forEach(t=>{const n=t.name.toLowerCase();if(n.startsWith("on")){e.removeAttribute(t.name);return}if(n==="style"){const r=qi(e.tagName,t.value);if(r){e.setAttribute(t.name,r);return}e.removeAttribute(t.name);return}if(e.tagName==="A"&&n==="href"){if(Fi(t.value))return;e.removeAttribute(t.name);return}if(!(e.tagName==="A"&&["target","rel","title"].includes(n))){if(e.tagName==="PRE"&&n===ze){const r=ue(t.value);if(r){e.setAttribute(t.name,r);return}e.removeAttribute(t.name);return}if(e.tagName==="FONT"&&n==="color"){if(Mt(t.value))return;e.removeAttribute(t.name);return}Ai.has(e.tagName)&&$i.has(n)&&Wi(t.value)||e.removeAttribute(t.name)}})},Vi=e=>{[...e.querySelectorAll("font")].forEach(t=>{const n=t.getAttribute("color"),r=n?Mt(n):null,o=kt(t,"span");r&&o.setAttribute("style",`color: ${r};`)})},Ki=e=>{[...e.querySelectorAll([...nn.keys()].join(","))].forEach(t=>{const n=nn.get(t.tagName);n&&kt(t,n)})},ji=e=>{[...e.querySelectorAll("div")].reverse().forEach(t=>{if(t.querySelector(Pi)){_t(t);return}kt(t,"p")})},Gi=e=>{[...e.querySelectorAll("span")].forEach(t=>{t.attributes.length===0&&_t(t)})},Yi=e=>!["P","DIV","SPAN"].includes(e.tagName)||e.querySelector("br,table,ul,ol")?!1:!(e.textContent??"").trim(),rn=e=>{[...e.querySelectorAll("p,div,span")].reverse().forEach(t=>{Yi(t)&&t.remove()})},Xi=e=>{var t;return e.nodeType===Node.TEXT_NODE?!!((t=e.textContent)!=null&&t.trim()):e.nodeType!==Node.ELEMENT_NODE?!1:!e.matches(Ii)},Ji=e=>{let t=[];const n=()=>{if(t.length===0)return;const r=e.ownerDocument.createElement("p"),o=t[0];o&&(e.insertBefore(r,o),t.forEach(a=>{r.append(a)}),t=[])};[...e.childNodes].forEach(r=>{var o;if(r.nodeType===Node.TEXT_NODE&&!((o=r.textContent)!=null&&o.trim())){r.remove();return}if(Xi(r)){t.push(r);return}n()}),n()},Qi=e=>{const t=document.createElement("template");t.innerHTML=e,t.content.querySelectorAll(Ni).forEach(r=>{r.remove()}),t.content.querySelectorAll(Si).forEach(r=>{r.remove()}),Fn(t.content),Xo(t.content),[...t.content.querySelectorAll("*")].forEach(Ui),zn(t.content),Vi(t.content),Ki(t.content),ji(t.content),Gi(t.content),rn(t.content);const n=document.createElement("div");return n.append(t.content.cloneNode(!0)),Ji(n),rn(n),n.innerHTML},Zi=/^https?:\/\/[^\s<>"']+\.[^\s<>"']+$/i,el=/^www\.[^\s<>"']+\.[^\s<>"']+$/i,tl=new RegExp(`^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+(?:/[^\\s<>"']*)?$`,"i"),nl=/^[^\s@]+@[^\s@]+\.[^\s@]+$/i,rl=/^\s*```([a-z0-9_+#.-]+)\s*\n([\s\S]*?)\n?```\s*$/i,ol=e=>e.type.startsWith("image/")?"image":e.type.startsWith("video/")?"video":null,Wn=e=>e?[...e].flatMap(t=>{const n=ol(t);return n?[{type:n,file:t}]:[]}):[],qe=e=>({text:(e==null?void 0:e.getData("text/plain"))??"",html:(e==null?void 0:e.getData("text/html"))??"",files:e!=null&&e.files?[...e.files]:[]}),al=e=>({name:e.name,mimeType:e.type||void 0,size:e.size,data:e}),sl=e=>{const[,t,n]=e.replace(/\r\n/g,`
6
- `).match(rl)??[],r=ue(t);return n!==void 0&&r!==null?{code:n,language:r}:null},il=e=>{const t=e.trim();return!t||/\s/.test(t)||t.includes("<")||t.includes(">")||/^[a-z][a-z0-9+.-]*:/i.test(t)&&!/^https?:\/\//i.test(t)||nl.test(t)?!1:Zi.test(t)||el.test(t)||tl.test(t)},qn=(e,{isReadonly:t,executeCommand:n})=>t()||!il(e.text)?!1:(n({type:"link.set",href:e.text.trim()}),!0),it=(e,{isReadonly:t,canUploadMedia:n,uploadMediaFile:r})=>{if(t()||!n())return!1;const o=Wn(e.files);return o.length===0?!1:(o.forEach(({type:a,file:s})=>{r(a,s)}),!0)},ll=(e,t)=>{const r=new DOMParser().parseFromString(t,"text/html");Jo(r.body);const o=lt.$generateNodesFromDOM(e,r);return Qo(o,r.body),o},cl=(e,t)=>{const n=ll(e,t);if(n.length===0)return!1;if(l.$getSelection()||l.$getRoot().selectEnd(),n.some(W.$isCodeNode)){n.forEach(o=>{Fe.$insertNodeToNearestRoot(o)});const r=n[n.length-1];return r&&W.$isCodeNode(r)&&l.$insertNodes([l.$createParagraphNode()]),!0}return l.$insertNodes(n),!0},dl=(e,{editor:t,isReadonly:n})=>{if(n())return!1;if(!e.html.trim())return gl(e,{editor:t,isReadonly:n});const r=Qi(e.html);return r.trim()?(t.update(()=>{cl(t,r)}),!0):!1},ul=(e,{editor:t,isReadonly:n})=>{if(n()||e.html.trim()||!e.text.trim())return!1;const r=sl(e.text);return r?(t.update(()=>{const o=_n(r.language||void 0),a=l.$createParagraphNode();l.$getSelection()||l.$getRoot().selectEnd(),o.append(l.$createTextNode(r.code)),Fe.$insertNodeToNearestRoot(o),l.$insertNodes([a]),a.selectStart()}),!0):!1},gl=(e,{editor:t,isReadonly:n})=>n()||e.html.trim()||!e.text?!1:(t.update(()=>{l.$getSelection()||l.$getRoot().selectEnd(),l.$insertNodes([l.$createTextNode(e.text)])}),!0),Un=(e,t)=>ul(e,t)||dl(e,t),de=e=>{e.preventDefault(),e.stopImmediatePropagation()},ml=(e,t)=>it(e,t)||qn(e,t)||Un(e,t),hl=e=>{const t=n=>{n.defaultPrevented||qn(qe(n.clipboardData),e)&&de(n)};return e.target.addEventListener("paste",t,{capture:!0}),()=>{e.target.removeEventListener("paste",t,{capture:!0})}},pl=e=>{const t=o=>{o.defaultPrevented||it(qe(o.clipboardData),e)&&de(o)},n=o=>{var s;if(e.isReadonly()||!e.canUploadMedia())return;const a=(s=o.dataTransfer)!=null&&s.files?[...o.dataTransfer.files]:[];Wn(a).length!==0&&(o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect="copy"))},r=o=>{var s;const a={files:(s=o.dataTransfer)!=null&&s.files?[...o.dataTransfer.files]:[]};it(a,e)&&de(o)};return e.target.addEventListener("paste",t,{capture:!0}),e.target.addEventListener("dragover",n),e.target.addEventListener("drop",r),()=>{e.target.removeEventListener("paste",t,{capture:!0}),e.target.removeEventListener("dragover",n),e.target.removeEventListener("drop",r)}},fl=e=>{const t=n=>{n.defaultPrevented||!Un(qe(n.clipboardData),e)||de(n)};return e.target.addEventListener("paste",t,{capture:!0}),()=>{e.target.removeEventListener("paste",t,{capture:!0})}},bl=({target:e,isReadonly:t,onPaste:n,canUploadMedia:r,uploadMediaFile:o,executeCommand:a,editor:s})=>{const i=(c,b)=>ml({text:b.text??c.text,html:b.html??c.html,files:c.files},{isReadonly:t,canUploadMedia:r,uploadMediaFile:o,executeCommand:a,editor:s}),g=c=>{if(t()||!n)return;const b=qe(c.clipboardData),m=n({text:b.text,html:b.html,files:b.files.map(al)});if(m instanceof Promise){de(c),m.then(k=>{k!==!0&&k&&i(b,k)});return}if(m===!0){de(c);return}m&&(de(c),i(b,m))};return e.addEventListener("paste",g,{capture:!0}),()=>{e.removeEventListener("paste",g,{capture:!0})}},yl=e=>e.getKey()==="root"?null:e.getTopLevelElement(),vl=(e,t,n)=>{const r=e.getLastDescendant();return l.$isElementNode(t)?t===e&&n===e.getChildrenSize():r?t===r&&n===t.getTextContentSize():!0},Cl=e=>{const t=e.getLastChild();return l.$isLineBreakNode(t)},wl=e=>{const t=l.$createParagraphNode(),n=e.getLastChild();l.$isLineBreakNode(n)&&n.remove(),e.insertAfter(t),t.selectStart()},_l=(e,t)=>{const n=()=>{if(t())return!1;const r=l.$getSelection();if(!l.$isRangeSelection(r)||!r.isCollapsed())return!1;const o=r.anchor,a=o.getNode(),s=yl(a);return!ie.$isQuoteNode(s)||!vl(s,a,o.offset)?!1:Cl(s)?(wl(s),!0):(r.insertLineBreak(),!0)};return[e.registerCommand(l.INSERT_PARAGRAPH_COMMAND,n,l.COMMAND_PRIORITY_HIGH),e.registerCommand(l.INSERT_LINE_BREAK_COMMAND,r=>r?!1:n(),l.COMMAND_PRIORITY_HIGH)]},kl=["paragraph","heading-1","heading-2","heading-3","quote","code-block","ordered-list","unordered-list","todo-list","divider","upload-image","upload-video","table"],Ml={showIcon:!0,loadingText:"加载中",emptyText:"没有匹配的命令",errorText:"命令加载失败"},El=e=>({...Ml,...e}),xl=e=>e.flatMap(t=>t.type==="button"?[t.item]:t.type==="group"?t.items:[]),Tl=e=>({...e,toolbarKeys:(e==null?void 0:e.toolbarKeys)??kl}),Nl=e=>({id:e.id,label:e.label,command:e.command,icon:e.icon,requiresPayload:e.requiresPayload,payloadPanel:e.payloadPanel,source:"schema"}),Sl=(e,t)=>xl(J.resolveToolbarMenu(Tl(t),e)).map(Nl),Vn=e=>({...e,source:"provider"}),Rl=/(?:^|\s)\/([\p{L}\p{N}_-]*)$/u,Ll=e=>e.trim().toLowerCase(),Il=e=>[e.label,e.id,e.description,...e.keywords??[]].filter(Boolean).join(" ").toLowerCase(),Pl=(e,t)=>{const n=Ll(t);return n?e.filter(r=>Il(r).includes(n)):e},$l=async(e,t)=>(await Promise.resolve((t==null?void 0:t(e))??[])).map(Vn),Al=e=>"source"in e?e:Vn(e),Bl=({menuSchema:e,slashCommandConfig:t})=>e!==void 0||t!==void 0,Dl=()=>{const e=l.$getSelection();if(!l.$isRangeSelection(e)||!e.isCollapsed())return null;const t=e.anchor,n=t.getNode();if(!(n instanceof l.TextNode))return null;const o=n.getTextContent().slice(0,t.offset).match(Rl);if(!o)return null;const a=o[1]??"",s=o[0]??"",i=s.startsWith("/")?0:1,g=t.offset-s.length+i;return{query:a,nodeKey:n.getKey(),startOffset:g,endOffset:t.offset}},Hl=()=>{const e=document.createElement("div");return e.className="bridgerte__floating-menu bridgerte__slash-command-menu",e.dataset.visible="false",e},Ol=()=>{const e=document.createElement("span");return e.className="bridgerte__slash-command-anchor",e.setAttribute("aria-hidden","true"),e},on=(e,t)=>{var s;const n=e.getElementByKey(t.nodeKey),r=wt(n,t.startOffset+1);if(!(r instanceof Text))return null;const o=document.createRange(),a=Math.min(t.startOffset+1,((s=r.textContent)==null?void 0:s.length)??0);return a<=t.startOffset?null:(o.setStart(r,t.startOffset),o.setEnd(r,a),o.getBoundingClientRect())},Fl=(e,t,n,r,o)=>{const a=document.createElement("button"),s=document.createElement("span");if(a.type="button",a.className="bridgerte__menu-item bridgerte__slash-command-item",a.dataset.commandId=e.id,a.dataset.index=String(t),a.dataset.active=String(n),r.showIcon&&e.icon){const i=document.createElement("span");i.className="bridgerte__slash-command-item-icon",i.setAttribute("aria-hidden","true"),Ct(i,o[e.icon]??vt[e.icon],e.label),a.append(i)}if(s.className="bridgerte__slash-command-item-title",s.textContent=e.label,a.append(s),e.description){const i=document.createElement("span");i.className="bridgerte__slash-command-item-description",i.textContent=e.description,a.append(i)}return a},zl=(e,t)=>{const n=document.createElement("div");return n.className="bridgerte__slash-command-status",n.dataset.status=e,n.textContent=t,n},Wl=(e,t)=>{switch(e){case"loading":return t.loadingText;case"empty":return t.emptyText;case"error":return t.errorText}},an=e=>e?{x:e.x,y:e.y,width:e.width,height:e.height}:void 0,ql=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,executeCommand:o,requestPayloadPanel:a,menuSchema:s,slashCommandConfig:i,icons:g={},menuLabels:c,payloadPanelConfig:b,slashCommandMenuConfig:m,onSlashCommandMenuRequest:k,slashCommandProvider:P})=>{const w=Hl(),T=Ol(),I=El(m),u=We(s??J.defaultMenuSchema,{menuLabels:c,payloadPanelConfig:b}),p=Sl(u,i),S=new Map(u.map(x=>[x.id,x])),N=Bl({menuSchema:s,slashCommandConfig:i}),F=x=>{n.update(()=>{const R=l.$getNodeByKey(x.nodeKey);R instanceof l.TextNode&&(R.spliceText(x.startOffset,x.endOffset-x.startOffset,""),R.select(x.startOffset,x.startOffset))})};return Hn({editorRoot:e,contentElement:t,editor:n,isReadonly:r,menu:w,anchor:T,itemSelector:".bridgerte__slash-command-item",getCurrentTrigger:Dl,getTriggerRect:x=>on(n,x),resolveItems:async x=>{const R=N||!P?Pl(p,x):[];try{const B=await $l(x,P);return[...R,...B]}catch(B){if(R.length>0)return R;throw B}},renderItem:(x,R,B)=>Fl(x,R,B,I,g),renderStatus:x=>zl(x,Wl(x,I)),onStateChange:k?(x,R)=>k({id:`bridgerte-slash-command-menu-${x.requestId}`,query:x.trigger.query,status:x.status,items:x.items,config:I,readonly:r(),anchorRect:an(R.anchorRect),...x.error?{error:x.error}:{},submit:B=>R.selectItem(Al(B)),cancel:R.close}):void 0,onSelect:(x,R)=>{F(R);const B=x.source==="schema"?S.get(x.id):void 0;if(B!=null&&B.payloadPanel){const V=on(n,R);a({menuId:B.id,command:B.command,panel:B.payloadPanel,anchorRect:an(V??void 0)});return}o(x.command)}}).destroy},sn=32,Xe=e=>{var t;return e instanceof HTMLElement&&e.getAttribute("role")==="checkbox"&&((t=e.parentElement)==null?void 0:t.classList.contains("bridgerte__list--todo"))===!0},Je=e=>e instanceof HTMLElement?e.closest('[role="checkbox"]'):null,Ul=e=>l.$getNearestNodeFromDOMNode(e),ln=e=>e.button===0,Qe=(e,t)=>{const n=t.getBoundingClientRect();return t.dir==="rtl"?e.clientX>=n.right-sn&&e.clientX<=n.right:e.clientX>=n.left&&e.clientX<=n.left+sn},cn=e=>{e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()},Vl=({contentElement:e,editor:t,isReadonly:n})=>{let r=0;const o=g=>{if(n()||!ln(g))return;const c=Je(g.target);!c||!Xe(c)||Qe(g,c)&&cn(g)},a=(g,c)=>{cn(g),t.update(()=>{const b=Ul(c);te.$isListItemNode(b)&&b.toggleChecked()})},s=g=>{if(n()||!ln(g)||Date.now()-r<700)return;const c=Je(g.target);!c||!Xe(c)||Qe(g,c)&&a(g,c)},i=g=>{if(n()||g.pointerType!=="touch")return;const c=Je(g.target);!c||!Xe(c)||Qe(g,c)&&(r=Date.now(),a(g,c))};return e.addEventListener("pointerdown",o,!0),e.addEventListener("pointerup",i,!0),e.addEventListener("click",s,!0),()=>{e.removeEventListener("pointerdown",o,!0),e.removeEventListener("pointerup",i,!0),e.removeEventListener("click",s,!0)}},Ze=(e,t)=>{var n;return((n=e.floatingMenus)==null?void 0:n[t])!==!1},Kl=({options:e,lexicalEditor:t,editorRoot:n,contentElement:r,historyState:o,isReadonly:a,executeCommand:s,requestPayloadPanel:i,uploadMediaFile:g,canUploadMedia:c,syncAfterEditorUpdate:b,refreshCommandStates:m,getCommandStates:k,setCanUndo:P,setCanRedo:w,enableKeyboardShortcuts:T})=>{const I=Ze(e,"mention"),u=Ze(e,"slash"),p=Ze(e,"hoverbar"),S=Us(t),N=l.mergeRegister(bl({target:r,isReadonly:a,onPaste:e.onPaste,canUploadMedia:c,uploadMediaFile:g,executeCommand:s,editor:t}),pl({target:r,isReadonly:a,canUploadMedia:c,uploadMediaFile:g}),hl({target:r,isReadonly:a,executeCommand:s}),fl({target:r,editor:t,isReadonly:a}),Ls({target:r,isReadonly:a}),ie.registerRichText(t),dn.registerHistory(t,o,Do),te.registerList(t),te.registerCheckList(t),..._l(t,a),...Hr(t,a),...sr(t,a),Vl({contentElement:r,editor:t,isReadonly:a}),I?Ti({editorRoot:n,contentElement:r,editor:t,isReadonly:a,executeCommand:s,mentionProvider:e.mentionProvider,mentionMenuConfig:e.mentionMenuConfig,onMentionMenuRequest:e.onMentionMenuRequest}):()=>{},p?Qs({editorRoot:n,contentElement:r,editor:t,isReadonly:a,executeCommand:s,requestPayloadPanel:i,getCommandStates:k,menuSchema:e.menuSchema,hoverbarConfig:e.hoverbarConfig,icons:e.icons,menuLabels:e.menuLabels,payloadPanelConfig:e.payloadPanelConfig,onHoverbarMenuRequest:e.onHoverbarMenuRequest}):()=>{},U.registerTablePlugin(t),xs({editor:t}),u?ql({editorRoot:n,contentElement:r,editor:t,isReadonly:a,executeCommand:s,requestPayloadPanel:i,menuSchema:e.menuSchema,slashCommandConfig:e.slashCommandConfig,icons:e.icons,menuLabels:e.menuLabels,payloadPanelConfig:e.payloadPanelConfig,slashCommandMenuConfig:e.slashCommandMenuConfig,onSlashCommandMenuRequest:e.onSlashCommandMenuRequest,slashCommandProvider:e.slashCommandProvider}):()=>{},Kr({editor:t,contentElement:r,isReadonly:a}),T?oi({target:r,isReadonly:a,executeCommand:s}):()=>{},t.registerUpdateListener(()=>{b(),m()}),t.registerCommand(l.SELECTION_CHANGE_COMMAND,()=>(m(),!1),l.COMMAND_PRIORITY_LOW),t.registerCommand(l.CAN_UNDO_COMMAND,F=>(P(F),!1),l.COMMAND_PRIORITY_LOW),t.registerCommand(l.CAN_REDO_COMMAND,F=>(w(F),!1),l.COMMAND_PRIORITY_LOW));return{destroy(){N(),S.destroy()}}};function Kn(e,t={}){const n=dn.createEmptyHistoryState(),r=t.mediaDefaultWidthPercent??50,{contentElement:o,placeholderElement:a}=ws(e,{placeholder:t.placeholder??Wr}),s=t.keyboardShortcuts===!0;let i=t.readonly??!1,g=!1,c=nt(t.value);const b=l.createEditor({namespace:Ho,editable:!i,nodes:[ie.HeadingNode,ie.QuoteNode,W.CodeNode,W.CodeHighlightNode,te.ListNode,te.ListItemNode,U.TableNode,U.TableRowNode,U.TableCellNode,Y.LinkNode,Y.AutoLinkNode,Me,fe,xe],theme:ko,onError:R=>{re(t,"lexical.runtime","Lexical runtime error.",R)}});U.setScrollableTablesActive(b,!0);const m=()=>g,k=()=>i,P=()=>{m()||(Ur({editor:b,contentElement:o}),Vr({contentElement:o,placeholderElement:a}))},w=_s({editor:b}),T=Oo({lexicalEditor:b,options:t,isDestroyed:m,setContent:R=>{c=R},syncPlaceholder:P}),I=uo({lexicalEditor:b,options:t,isDestroyed:m,canUploadMedia:()=>t.uploadAdapter!==void 0,isReadonly:k}),u=Bo({container:e,lexicalEditor:b,options:t,isDestroyed:m,isReadonly:k,reportError:re}),p=()=>{o.contentEditable=String(!i),b.setEditable(!i)},N=Cs({editorRoot:e,lexicalEditor:b,isReadonly:k,restoreEditorFocus:R=>{w.restore(),b.focus(R)},executeCommand:u,getClearCommand:R=>{switch(R.command.type){case"format.color":case"format.backgroundColor":case"format.fontSize":case"format.fontFamily":case"format.lineHeight":return{...R.command,value:""};default:return null}},codeBlockLanguagePanel:t.codeBlockLanguagePanel,payloadPanelConfig:t.payloadPanelConfig,mediaControlsConfig:t.mediaControlsConfig,menuLabels:t.menuLabels,onRequest:t.onPayloadPanelRequest,onMediaControlsRequest:t.onMediaControlsRequest,onTableControlsRequest:t.onTableControlsRequest,defaultMediaWidthPercent:r}),F=()=>io(t),M=()=>lo(t),C=R=>{m()||(w.capture(),N.payloadPanelController.open(R))};e.dataset.readonly=String(i),e.addEventListener("focusin",F),e.addEventListener("focusout",M),e.style.setProperty("--bridgerte-media-display-width",`${r}%`);const L=Kl({options:t,lexicalEditor:b,editorRoot:e,contentElement:o,historyState:n,isReadonly:k,executeCommand:u,requestPayloadPanel:C,uploadMediaFile:u.uploadMediaFile,canUploadMedia:()=>t.uploadAdapter!==void 0,syncAfterEditorUpdate:T.syncAfterEditorUpdate,refreshCommandStates:I.refreshCommandStates,getCommandStates:I.getCommandStates,setCanUndo:I.setCanUndo,setCanRedo:I.setCanRedo,enableKeyboardShortcuts:s});b.setRootElement(o),T.suppressNextChange(),c=Ar(b,t.value),p();const x={getContent(){return m()||(T.clearContentChangeTimer(),T.syncContent(!1)),c},setContent(R){m()||(T.clearContentChangeTimer(),c=nt(R),T.suppressNextChange(),vn(b,c),T.enforceCurrentMaxLength(),P(),b.dispatchCommand(l.CLEAR_HISTORY_COMMAND,void 0),I.setHistoryAvailability(!1,!1),T.syncContent(!0))},executeCommand(R){u(R)},requestPayloadPanel:C,getCommandStates:I.getCommandStates,subscribeCommandStateChange:I.subscribeCommandStateChange,setReadonly(R){m()||(i=R,e.dataset.readonly=String(i),p(),I.refreshCommandStates())},focus(){m()||b.focus()},blur(){m()||o.blur()},destroy(){m()||(g=!0,T.clearContentChangeTimer(),N.destroy(),u.destroy(),I.destroy(),w.clear(),L.destroy(),b.setRootElement(null),e.removeEventListener("focusin",F),e.removeEventListener("focusout",M),e.classList.remove("bridgerte"),e.textContent="",delete e.dataset.readonly)}};return T.syncContent(!1),P(),I.refreshCommandStates(),co(t,x),x}const jl=e=>!Oe.isBridgeMessage(e)||!("id"in e)?!1:e.type==="editor.init"||e.type==="editor.executeCommand"||e.type==="editor.setContent"||e.type==="editor.setReadonly"||e.type==="editor.requestContent"||e.type==="editor.payloadPanelResolved"||e.type==="editor.payloadPanelCanceled"||e.type==="editor.menuResolved"||e.type==="editor.menuCanceled"||e.type==="editor.uploadResolved"||e.type==="editor.uploadRejected",Gl=e=>({id:e,type:"editor.ready",payload:{menuSchema:J.defaultMenuSchema,eventTiming:Oe.defaultBridgeEventTiming,version:se.BRIDGERTE_CONTENT_VERSION}}),Yl=e=>`native-upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`,Xl=({container:e,transport:t})=>{var y;let n=null,r=!1,o=null,a=null,s=null,i=0;const g=new Map,c=new Map,b=new Map,m=d=>{r||t.postMessage(d)},k=()=>{s&&(clearTimeout(s),s=null)},P=()=>{k(),s=setTimeout(()=>{if(r)return;const d=Math.ceil(e.getBoundingClientRect().height);d!==i&&(i=d,m({type:"editor.heightChange",payload:{height:d}}))},Oe.BRIDGE_HEIGHT_CHANGE_THROTTLE_MS)},w=d=>{if(!n)return;const E=n.getContent();m({id:d,type:"editor.content",payload:E}),m({id:d,type:"editor.contentChange",payload:E})},T=d=>{const E=d.payload,f=g.get(E.assetId);if(f){if(g.delete(E.assetId),f.source==="uploadAdapter"){f.resolve(E.result);return}n==null||n.executeCommand({type:f.type==="image"?"media.insertImage":"media.insertVideo",url:E.result.url,poster:E.result.poster,width:E.result.width,height:E.result.height,displayWidthPercent:50,assetId:E.assetId})}},I=d=>{const E=d.payload,f=g.get(E.assetId);if(f){if(g.delete(E.assetId),f.source==="uploadAdapter"){f.reject(new Error(E.message));return}m({id:d.id,type:"editor.error",payload:{code:"bridge.uploadRejected",message:E.message}})}},u=(d,E)=>new Promise((f,H)=>{g.set(E,{type:d,assetId:E,source:"uploadAdapter",resolve:f,reject:H}),m({type:"editor.uploadRequest",payload:{assetId:E,type:d,accept:d==="image"?"image/*":"video/*"}})}),p=d=>{const E=Yl(d);g.set(E,{type:d,assetId:E,source:"nativePicker"}),m({type:"editor.uploadRequest",payload:{assetId:E,type:d,accept:d==="image"?"image/*":"video/*"}})},S=d=>{const E=c.get(d.payload.requestId);E&&(c.delete(d.payload.requestId),E.request.submit(d.payload.values))},N=d=>{const E=c.get(d.payload.requestId);E&&(c.delete(d.payload.requestId),E.request.cancel())},F=d=>{const E=b.get(d);return E?(b.delete(d),E.unsubscribeDismiss(),E):null},M=()=>{b.forEach(d=>{d.unsubscribeDismiss()}),b.clear()},C=d=>{F(d.id);const E=d.subscribeDismiss(()=>{F(d.id)&&m({type:"editor.menuCanceled",payload:{requestId:d.id}})});b.set(d.id,{request:d,unsubscribeDismiss:E})},L=d=>{const E=F(d.payload.requestId);E&&E.request.submit(d.payload.menuItemId)},x=d=>{const E=F(d.payload.requestId);E&&E.request.cancel()},R=d=>(C(d),m({type:"editor.menuRequest",payload:{kind:"hoverbar",id:d.id,items:d.items,commandStates:d.commandStates,readonly:d.readonly,anchorRect:d.anchorRect}}),!0),B=d=>(C(d),m({type:"editor.menuRequest",payload:{kind:"mediaControls",id:d.id,assetId:d.assetId,mediaType:d.mediaType,status:d.status,displayWidthPercent:d.displayWidthPercent,align:d.align,items:d.items,readonly:d.readonly,anchorRect:d.anchorRect,url:d.url,title:d.title,alt:d.alt,poster:d.poster,width:d.width,height:d.height,duration:d.duration,mimeType:d.mimeType,size:d.size}}),!0),V=d=>(C(d),m({type:"editor.menuRequest",payload:{kind:"tableControls",id:d.id,items:d.items,readonly:d.readonly,anchorRect:d.anchorRect}}),!0),G=(d,E)=>{o==null||o(),g.clear(),c.clear(),M(),n==null||n.destroy(),n=Kn(e,{...E,uploadAdapter:{uploadImage(f,H){return u("image",H.assetId)},uploadVideo(f,H){return u("video",H.assetId)}},onContentChange:f=>{m({type:"editor.contentChange",payload:f}),P()},onCommandStateChange:f=>{m({type:"editor.commandStateChange",payload:f})},onPayloadPanelRequest:f=>(c.set(f.id,{request:f}),m({type:"editor.payloadPanelRequest",payload:{menuId:f.menuId,command:f.command,panel:f.panel,anchorRect:f.anchorRect,currentValues:f.currentValues,id:f.id,readonly:f.readonly}}),!0),onHoverbarMenuRequest:R,onMediaControlsRequest:B,onTableControlsRequest:V,onError:f=>{m({type:"editor.error",payload:f})}}),o=n.subscribeCommandStateChange(f=>{m({type:"editor.commandStateChange",payload:f})}),m(Gl(d)),P()},O=d=>{if(d.type==="media.pickImage"){p("image");return}if(d.type==="media.pickVideo"){p("video");return}n==null||n.executeCommand(d)},D=d=>{if(!(r||!jl(d)))switch(d.type){case"editor.init":G(d.id,d.payload);return;case"editor.executeCommand":O(d.payload);return;case"editor.setContent":n==null||n.setContent(d.payload);return;case"editor.setReadonly":n==null||n.setReadonly(d.payload.readonly);return;case"editor.requestContent":w(d.id);return;case"editor.payloadPanelResolved":S(d);return;case"editor.payloadPanelCanceled":N(d);return;case"editor.menuResolved":L(d);return;case"editor.menuCanceled":x(d);return;case"editor.uploadResolved":T(d);return;case"editor.uploadRejected":I(d);return}};return a=((y=t.addMessageListener)==null?void 0:y.call(t,D))??null,{receive:D,destroy(){r||(r=!0,k(),a==null||a(),o==null||o(),g.clear(),c.clear(),M(),n==null||n.destroy(),n=null)}}};exports.appendMenuIcon=Ct;exports.bindTouchPressedState=Q;exports.createFloatingLayer=yt;exports.createRichTextEditor=Kn;exports.createWebViewBridgeRuntime=Xl;exports.defaultMenuIcons=vt;exports.getMenuStateForItem=pt;exports.getPayloadPanelCurrentValues=Tn;exports.resolveMenuSchemaForDom=We;
7
- //# sourceMappingURL=index-BNg4kAQx.cjs.map
5
+ `).forEach((n,r)=>{r>0&&t.push(l.$createLineBreakNode()),n.split(" ").forEach((o,a)=>{a>0&&t.push(l.$createTabNode()),o!==""&&t.push(W.$createCodeHighlightNode(o))})}),t},$s=e=>{const t=[];return e.forEach((n,r)=>{r>0&&t.push(l.$createLineBreakNode()),n.forEach(o=>{o.text.split(" ").forEach((a,s)=>{s>0&&t.push(l.$createTabNode()),a!==""&&t.push(W.$createCodeHighlightNode(a,o.highlightType))})})}),t},Gt=(e,t)=>W.$isCodeHighlightNode(e)&&W.$isCodeHighlightNode(t)&&e.getTextContent()===t.getTextContent()&&e.getHighlightType()===t.getHighlightType()&&e.getStyle()===t.getStyle()||l.$isTabNode(e)&&l.$isTabNode(t)||l.$isLineBreakNode(e)&&l.$isLineBreakNode(t),As=(e,t)=>{let n=0;for(;n<e.length;){const i=e[n],g=t[n];if(!i||!g||!Gt(i,g))break;n+=1}const r=e.length,o=t.length,a=Math.min(r,o)-n;let s=0;for(;s<a;){s+=1;const i=e[r-s],g=t[o-s];if(!i||!g||!Gt(i,g)){s-=1;break}}return{from:n,nodesForReplacement:t.slice(n,o-s),to:r-s}},Yt=(e,t)=>{const n=As(e.getChildren(),t),{from:r,nodesForReplacement:o,to:a}=n;return r===a&&o.length===0?!1:(e.splice(r,a-r,o),!0)},Bs=(e,t)=>{const n=l.$getNodeByKey(e);if(!W.$isCodeNode(n)||!n.isAttached())return;const r=l.$getSelection();if(!l.$isRangeSelection(r)){t();return}const o=r.anchor,a=o.offset,s=o.type==="element"&&l.$isLineBreakNode(n.getChildAtIndex(o.offset-1));let i=0;if(!s){const g=o.getNode();i=a+g.getPreviousSiblings().reduce((c,b)=>c+b.getTextContentSize(),0)}if(t()){if(s){o.getNode().select(a,a);return}n.getChildren().some(g=>{const c=l.$isTextNode(g);if(!c&&!l.$isLineBreakNode(g))return!1;const b=g.getTextContentSize();return c&&b>=i?(g.select(i,i),!0):(i-=b,!1)})}},Ds=12e3,Hs="bridgerte:code-highlight";let Xt=null;const Os=()=>{if(typeof Worker!="function"||Fs())return null;try{return new Worker(new URL(""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/assets/shikiTokenizerWorker-BtjW_v9G.js").href:new URL("assets/shikiTokenizerWorker-BtjW_v9G.js",document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),typeof document>"u"?require("url").pathToFileURL(__filename).href:pe&&pe.tagName.toUpperCase()==="SCRIPT"&&pe.src||new URL("index-D13BxvUx.cjs",document.baseURI).href),{type:"module"})}catch{return null}},Fs=()=>{const e=typeof document>"u"?require("url").pathToFileURL(__filename).href:pe&&pe.tagName.toUpperCase()==="SCRIPT"&&pe.src||new URL("index-D13BxvUx.cjs",document.baseURI).href;return/\/node_modules\/\.vite\/deps\//.test(e)},zs=()=>{try{return Xt?Xt():Os()}catch{return null}},Ws=()=>Promise.resolve().then(()=>require("./shikiTokenizerRuntime.cjs")),he=(e,t,n,r)=>({codeLength:e.code.length,language:e.language,lineCount:Is(e.code),nodeKey:e.nodeKey,reason:r,status:n,strategy:t}),qs=({code:e,language:t,nodeKey:n,theme:r})=>({codeHash:Be.getCodeHighlightCodeHash(e),codeLength:e.length,language:t,nodeKey:n,theme:r}),Jt=(e,t)=>{const n=Ae(e);return e.getKey()===t.nodeKey&&e.getLanguage()===t.language&&(e.getTheme()||Be.bridgeCodeHighlightTheme)===t.theme&&n.length===t.codeLength&&Be.getCodeHighlightCodeHash(n)===t.codeHash},Us=e=>{const t=new Map,n=new Set,r={didTransform:!1,nodesCurrentlyHighlighting:new Set},o={isUnavailable:!1,worker:null},a={isRunning:!1,queue:[]};let s=!1,i=1,g=0;const c=M=>{const C=e.getRootElement();!C||s||C.dispatchEvent(new CustomEvent(Hs,{bubbles:!0,detail:M}))},b=M=>{M.getIsSyntaxHighlightSupported()&&M.setIsSyntaxHighlightSupported(!1),M.getStyle()&&M.setStyle("")},m=(M,C)=>{b(M),Yt(M,Ps(C))},k=(M,C)=>{p({codeHash:M.codeHash,id:M.id,language:M.language,message:C instanceof Error?C.message:"Unknown code highlight fallback loader error.",nodeKey:M.nodeKey,status:"error",theme:M.theme,version:M.version},"fallback")},P=()=>{a.isRunning||a.queue.length===0||s||(a.isRunning=!0,Ws().then(async({tokenizeCodeHighlightRequest:M})=>{for(;a.queue.length>0&&!s;){const C=a.queue.shift();if(C)try{const R=await M(C);p({codeHash:C.codeHash,id:C.id,language:C.language,lines:R,nodeKey:C.nodeKey,status:"success",theme:C.theme,version:C.version},"fallback")}catch(R){p({codeHash:C.codeHash,id:C.id,language:C.language,message:R instanceof Error?R.message:"Unknown code highlight fallback error.",nodeKey:C.nodeKey,status:"error",theme:C.theme,version:C.version},"fallback")}}}).catch(M=>{a.queue.splice(0).forEach(R=>{k(R,M)})}).finally(()=>{a.isRunning=!1,P()}))},w=(M,C)=>{const R=t.get(M.nodeKey);!R||R.requestId!==M.id||R.version!==M.version||(a.queue.push(M),c(he({code:M.code,language:M.language,nodeKey:M.nodeKey,theme:M.theme},"fallback","scheduled",C)),P())},T=M=>{var R;if(o.isUnavailable)return;o.isUnavailable=!0,(R=o.worker)==null||R.terminate(),o.worker=null,e.getEditorState().read(()=>{const x=[];return t.forEach(L=>{const B=l.$getNodeByKey(L.nodeKey);if(!W.$isCodeNode(B)||!B.isAttached()||!Jt(B,L)){t.delete(L.nodeKey);return}x.push({code:Ae(B),codeHash:L.codeHash,id:L.requestId,language:L.language,nodeKey:L.nodeKey,theme:L.theme,version:L.version})}),x}).forEach(x=>{w(x,M)})},I=()=>o.worker||o.isUnavailable||s?o.worker:(o.worker=zs(),o.worker?(o.worker.addEventListener("message",M=>{s||p(M.data)}),o.worker.addEventListener("error",()=>{T("worker-error-fallback")}),o.worker.addEventListener("messageerror",()=>{T("worker-message-error-fallback")}),o.worker):(o.isUnavailable=!0,null)),u=(M,C)=>{const R=I(),x=qs(C),L=i;i+=1,g+=1,t.set(C.nodeKey,{...x,requestId:L,version:g}),m(M,C.code);const B={code:C.code,codeHash:x.codeHash,id:L,language:C.language,nodeKey:C.nodeKey,theme:C.theme,version:g};if(!R){w(B,"worker-unavailable-fallback");return}R.postMessage(B),c(he(C,"worker","scheduled"))},p=(M,C="worker")=>{const R=t.get(M.nodeKey);!R||R.requestId!==M.id||R.version!==M.version||R.language!==M.language||R.theme!==M.theme||R.codeHash!==M.codeHash||(t.delete(M.nodeKey),e.update(()=>{const x=l.$getNodeByKey(M.nodeKey);if(!W.$isCodeNode(x)||!x.isAttached()||!Jt(x,R))return;const B={code:Ae(x),language:R.language,nodeKey:R.nodeKey,theme:R.theme};if(M.status==="error"){b(x),c(he(B,"degraded","completed",M.message));return}n.add(M.nodeKey),x.setIsSyntaxHighlightSupported(!0),x.getStyle()&&x.setStyle(""),Bs(M.nodeKey,()=>Yt(x,$s(M.lines))),c(he(B,C,"completed")),l.$onUpdate(()=>{n.delete(M.nodeKey)})}))},S=M=>{const C=M.getKey();if(r.nodesCurrentlyHighlighting.has(C)||n.has(C))return;const R=M.getLanguage(),x=M.getTheme()||Be.bridgeCodeHighlightTheme,L=Ae(M),B={code:L,language:R??"",nodeKey:C,theme:x};if(M.getTheme()||M.setTheme(x),!R){t.delete(C),m(M,L),c(he(B,"degraded","completed","plain-language"));return}if(L.length>Ds){t.delete(C),m(M,L),c(he(B,"degraded","completed","large-code"));return}r.nodesCurrentlyHighlighting.add(C),r.didTransform||(r.didTransform=!0,l.$onUpdate(()=>{r.didTransform=!1,r.nodesCurrentlyHighlighting.clear()})),u(M,B)},N=M=>{const C=M.getParent();if(W.$isCodeNode(C)){S(C);return}W.$isCodeHighlightNode(M)&&M.replace(l.$createTextNode(M.getTextContent()))},F=l.mergeRegister(e.registerNodeTransform(W.CodeNode,S),e.registerNodeTransform(l.TextNode,N),e.registerNodeTransform(W.CodeHighlightNode,N),Yn.registerCodeIndentation(e));return{destroy(){var M;s=!0,F(),t.clear(),n.clear(),r.nodesCurrentlyHighlighting.clear(),a.queue=[],a.isRunning=!1,(M=o.worker)==null||M.terminate(),o.worker=null}}},Ie=8,Qt=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n));function yt(e,t,n={}){const r=n.placement??"bottom-start",o=n.offset??8,a=n.shiftPadding??8,s=n.strategy??"absolute";let i=null,g=!1;const c=()=>{t.style.position=s,t.style.left="0px",t.style.top="0px",t.style.opacity="0",t.style.pointerEvents="none"},b=(w,T)=>{const I=gt(),u=t.getBoundingClientRect(),p=I.left+Ie,S=I.top+Ie,N=I.left+I.width-u.width-Ie,F=I.top+I.height-u.height-Ie;t.style.left=`${Qt(w,p,N)}px`,t.style.top=`${Qt(T,S,F)}px`,t.style.opacity="",t.style.pointerEvents=""},m=async()=>{const w=await Z.computePosition(e,t,{placement:r,strategy:s,platform:Z.platform,middleware:[Z.offset(o),Z.flip(),Z.shift({padding:a})]});b(w.x,w.y)},k=()=>{i==null||i(),i=null},P=w=>{if(g!==w){if(g=w,k(),g){c(),t.hidden=!1,i=Z.autoUpdate(e,t,m),m();return}t.hidden=!0,t.style.opacity="",t.style.pointerEvents=""}};return c(),t.hidden=!0,{update:m,setOpen:P,destroy(){k(),t.hidden=!0}}}const vt={"align-center":'<svg aria-hidden="true" class="lucide lucide-align-center" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H3" /> <path d="M17 12H7" /> <path d="M19 19H5" /> </svg>',"align-justify":'<svg aria-hidden="true" class="lucide lucide-align-justify" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 5h18" /> <path d="M3 12h18" /> <path d="M3 19h18" /> </svg>',"align-left":'<svg aria-hidden="true" class="lucide lucide-align-left" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H3" /> <path d="M15 12H3" /> <path d="M17 19H3" /> </svg>',"align-right":'<svg aria-hidden="true" class="lucide lucide-align-right" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H3" /> <path d="M21 12H9" /> <path d="M21 19H7" /> </svg>',"at-sign":'<svg aria-hidden="true" class="lucide lucide-at-sign" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="4" /> <path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8" /> </svg>',bold:'<svg aria-hidden="true" class="lucide lucide-bold" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8" /> </svg>',"case-sensitive":'<svg aria-hidden="true" class="lucide lucide-baseline" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 20h16" /> <path d="m6 16 6-12 6 12" /> <path d="M8 12h8" /> </svg>',code:'<svg aria-hidden="true" class="lucide lucide-code-xml" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m18 16 4-4-4-4" /> <path d="m6 8-4 4 4 4" /> <path d="m14.5 4-5 16" /> </svg>',"columns-minus":'<svg aria-hidden="true" class="lucide lucide-between-vertical-end" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="7" height="13" x="3" y="3" rx="1" /> <path d="m9 22 3-3 3 3" /> <rect width="7" height="13" x="14" y="3" rx="1" /> </svg>',"columns-plus":'<svg aria-hidden="true" class="lucide lucide-between-vertical-start" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="7" height="13" x="3" y="8" rx="1" /> <path d="m15 2-3 3-3-3" /> <rect width="7" height="13" x="14" y="8" rx="1" /> </svg>',"heading-1":'<svg aria-hidden="true" class="lucide lucide-heading-1" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <path d="m17 12 3-2v8" /> </svg>',"heading-2":'<svg aria-hidden="true" class="lucide lucide-heading-2" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <path d="M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1" /> </svg>',"heading-3":'<svg aria-hidden="true" class="lucide lucide-heading-3" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <path d="M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2" /> <path d="M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2" /> </svg>',"heading-4":'<svg aria-hidden="true" class="lucide lucide-heading-4" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 18V6" /> <path d="M17 10v3a1 1 0 0 0 1 1h3" /> <path d="M21 10v8" /> <path d="M4 12h8" /> <path d="M4 18V6" /> </svg>',"heading-5":'<svg aria-hidden="true" class="lucide lucide-heading-5" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <path d="M17 13v-3h4" /> <path d="M17 17.7c.4.2.8.3 1.3.3 1.5 0 2.7-1.1 2.7-2.5S19.8 13 18.3 13H17" /> </svg>',"heading-6":'<svg aria-hidden="true" class="lucide lucide-heading-6" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 12h8" /> <path d="M4 18V6" /> <path d="M12 18V6" /> <circle cx="19" cy="16" r="2" /> <path d="M20 10c-2 2-3 3.5-3 6" /> </svg>',"indent-decrease":'<svg aria-hidden="true" class="lucide lucide-indent-decrease" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H11" /> <path d="M21 12H11" /> <path d="M21 19H11" /> <path d="m7 8-4 4 4 4" /> </svg>',"indent-increase":'<svg aria-hidden="true" class="lucide lucide-indent-increase" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H11" /> <path d="M21 12H11" /> <path d="M21 19H11" /> <path d="m3 8 4 4-4 4" /> </svg>',italic:'<svg aria-hidden="true" class="lucide lucide-italic" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="19" x2="10" y1="4" y2="4" /> <line x1="14" x2="5" y1="20" y2="20" /> <line x1="15" x2="9" y1="4" y2="20" /> </svg>',"list-ordered":'<svg aria-hidden="true" class="lucide lucide-list-ordered" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M11 5h10" /> <path d="M11 12h10" /> <path d="M11 19h10" /> <path d="M4 4h1v5" /> <path d="M4 9h2" /> <path d="M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02" /> </svg>',"list-plus":'<svg aria-hidden="true" class="lucide lucide-list-plus" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 5H3" /> <path d="M11 12H3" /> <path d="M16 19H3" /> <path d="M18 9v6" /> <path d="M21 12h-6" /> </svg>',"list-todo":'<svg aria-hidden="true" class="lucide lucide-list-todo" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M13 5h8" /> <path d="M13 12h8" /> <path d="M13 19h8" /> <path d="m3 17 2 2 4-4" /> <rect x="3" y="4" width="6" height="6" rx="1" /> </svg>',list:'<svg aria-hidden="true" class="lucide lucide-list" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 5h.01" /> <path d="M3 12h.01" /> <path d="M3 19h.01" /> <path d="M8 5h13" /> <path d="M8 12h13" /> <path d="M8 19h13" /> </svg>',maximize:'<svg aria-hidden="true" class="lucide lucide-maximize" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M8 3H5a2 2 0 0 0-2 2v3" /> <path d="M21 8V5a2 2 0 0 0-2-2h-3" /> <path d="M3 16v3a2 2 0 0 0 2 2h3" /> <path d="M16 21h3a2 2 0 0 0 2-2v-3" /> </svg>',minus:'<svg aria-hidden="true" class="lucide lucide-separator-horizontal" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m16 16-4 4-4-4" /> <path d="M3 12h18" /> <path d="m8 8 4-4 4 4" /> </svg>',"paint-bucket":'<svg aria-hidden="true" class="lucide lucide-paint-bucket" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M11 7 6 2" /> <path d="M18.992 12H2.041" /> <path d="M21.145 18.38A3.34 3.34 0 0 1 20 16.5a3.3 3.3 0 0 1-1.145 1.88c-.575.46-.855 1.02-.855 1.595A2 2 0 0 0 20 22a2 2 0 0 0 2-2.025c0-.58-.285-1.13-.855-1.595" /> <path d="m8.5 4.5 2.148-2.148a1.205 1.205 0 0 1 1.704 0l7.296 7.296a1.205 1.205 0 0 1 0 1.704l-7.592 7.592a3.615 3.615 0 0 1-5.112 0l-3.888-3.888a3.615 3.615 0 0 1 0-5.112L5.67 7.33" /> </svg>',palette:'<svg aria-hidden="true" class="lucide lucide-palette" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z" /> <circle cx="13.5" cy="6.5" r=".5" fill="currentColor" /> <circle cx="17.5" cy="10.5" r=".5" fill="currentColor" /> <circle cx="6.5" cy="12.5" r=".5" fill="currentColor" /> <circle cx="8.5" cy="7.5" r=".5" fill="currentColor" /> </svg>',pilcrow:'<svg aria-hidden="true" class="lucide lucide-pilcrow" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M13 4v16" /> <path d="M17 4v16" /> <path d="M19 4H9.5a4.5 4.5 0 0 0 0 9H13" /> </svg>',quote:'<svg aria-hidden="true" class="lucide lucide-quote" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z" /> <path d="M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z" /> </svg>',redo:'<svg aria-hidden="true" class="lucide lucide-redo" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 7v6h-6" /> <path d="M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7" /> </svg>',"remove-formatting":'<svg aria-hidden="true" class="lucide lucide-eraser" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21" /> <path d="m5.082 11.09 8.828 8.828" /> </svg>',"rows-minus":'<svg aria-hidden="true" class="lucide lucide-between-horizontal-end" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="13" height="7" x="3" y="3" rx="1" /> <path d="m22 15-3-3 3-3" /> <rect width="13" height="7" x="3" y="14" rx="1" /> </svg>',"rows-plus":'<svg aria-hidden="true" class="lucide lucide-between-horizontal-start" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="13" height="7" x="8" y="3" rx="1" /> <path d="m2 9 3 3-3 3" /> <rect width="13" height="7" x="8" y="14" rx="1" /> </svg>',"square-code":'<svg aria-hidden="true" class="lucide lucide-square-code" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m10 9-3 3 3 3" /> <path d="m14 15 3-3-3-3" /> <rect x="3" y="3" width="18" height="18" rx="2" /> </svg>',strikethrough:'<svg aria-hidden="true" class="lucide lucide-strikethrough" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 4H9a3 3 0 0 0-2.83 4" /> <path d="M14 12a4 4 0 0 1 0 8H6" /> <line x1="4" x2="20" y1="12" y2="12" /> </svg>',subscript:'<svg aria-hidden="true" class="lucide lucide-subscript" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m4 5 8 8" /> <path d="m12 5-8 8" /> <path d="M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2.11 2.11 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07" /> </svg>',superscript:'<svg aria-hidden="true" class="lucide lucide-superscript" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m4 19 8-8" /> <path d="m12 19-8-8" /> <path d="M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06" /> </svg>',"table-delete":'<svg aria-hidden="true" class="lucide lucide-table" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 3v18" /> <rect width="18" height="18" x="3" y="3" rx="2" /> <path d="M3 9h18" /> <path d="M3 15h18" /> </svg>',table:'<svg aria-hidden="true" class="lucide lucide-table" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 3v18" /> <rect width="18" height="18" x="3" y="3" rx="2" /> <path d="M3 9h18" /> <path d="M3 15h18" /> </svg>',"trash-2":'<svg aria-hidden="true" class="lucide lucide-trash" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" /> <path d="M3 6h18" /> <path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" /> </svg>',type:'<svg aria-hidden="true" class="lucide lucide-type" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 4v16" /> <path d="M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2" /> <path d="M9 20h6" /> </svg>',underline:'<svg aria-hidden="true" class="lucide lucide-underline" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M6 4v6a6 6 0 0 0 12 0V4" /> <line x1="4" x2="20" y1="20" y2="20" /> </svg>',undo:'<svg aria-hidden="true" class="lucide lucide-undo" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 7v6h6" /> <path d="M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13" /> </svg>',"upload-image":'<svg aria-hidden="true" class="lucide lucide-image" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="18" height="18" x="3" y="3" rx="2" ry="2" /> <circle cx="9" cy="9" r="2" /> <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" /> </svg>',"upload-video":'<svg aria-hidden="true" class="lucide lucide-film" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="18" height="18" x="3" y="3" rx="2" /> <path d="M7 3v18" /> <path d="M3 7.5h4" /> <path d="M3 12h18" /> <path d="M3 16.5h4" /> <path d="M17 3v18" /> <path d="M17 7.5h4" /> <path d="M17 16.5h4" /> </svg>',"wrap-text":'<svg aria-hidden="true" class="lucide lucide-wrap-text" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m16 16-3 3 3 3" /> <path d="M3 12h14.5a1 1 0 0 1 0 7H13" /> <path d="M3 19h6" /> <path d="M3 5h18" /> </svg>'},Vs=e=>{const t=document.createElement("span");return t.className="bridgerte__menu-icon-text",t.textContent=e,t},Ct=(e,t,n)=>{if(t){e.innerHTML=t;return}e.append(Vs(n))},at=()=>{const e=window.getSelection(),t=e!=null&&e.rangeCount?e.getRangeAt(0):null,n=t==null?void 0:t.getBoundingClientRect();return!n||n.width===0&&n.height===0?null:n},Ks=160,js={toolbarKeys:["bold","italic","underline","strike","inline-code","clear-style","|","color","background-color","font-size","font-family","line-height"]},Gs=()=>{const e=l.$getSelection();return l.$isRangeSelection(e)&&!e.isCollapsed()},Zt=(e,t)=>e.target instanceof Node&&t.contains(e.target),en=e=>e instanceof Element?e.closest(".bridgerte__hoverbar-button"):null,Ys=e=>e.flatMap(t=>t.type==="button"?[t.item]:t.type==="group"?t.items:[]),Xs=e=>{const t=document.createElement("span");return t.className="bridgerte__hoverbar-separator",t.dataset.separatorId=e.key,t.setAttribute("aria-hidden","true"),t},Js=(e,t,n)=>{const r=pt(e,t),o=document.createElement("button");return o.type="button",o.className="bridgerte__hoverbar-button",o.dataset.hoverbarItemId=e.id,o.dataset.active=String(r.active),o.disabled=r.disabled,o.setAttribute("aria-label",e.label),o.setAttribute("aria-pressed",String(r.active)),Ct(o,n[e.icon]??vt[e.icon],e.label),o},Qs=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,executeCommand:o,requestPayloadPanel:a,getCommandStates:s,menuSchema:i,hoverbarConfig:g,menuLabels:c,payloadPanelConfig:b,icons:m={},onHoverbarMenuRequest:k})=>{const P=We(i??J.defaultMenuSchema,{menuLabels:c,payloadPanelConfig:b}),w=J.resolveToolbarMenu(g??js,P),T=Ys(w),I=document.createElement("span"),u=document.createElement("div");let p=null,S=!1,N=null,F=0,M=null;const C=Q(u,{targetSelector:".bridgerte__hoverbar-button"});I.className="bridgerte__hoverbar-anchor",I.setAttribute("aria-hidden","true"),u.className="bridgerte__floating-menu bridgerte__hoverbar",u.setAttribute("role","toolbar"),u.setAttribute("aria-label","BridgeRTE hoverbar"),e.append(I,u),p=yt(I,u,{placement:"top",offset:8,strategy:"fixed"});const R=()=>{N&&(window.clearTimeout(N),N=null)},x=()=>{const v=M;v&&(M=null,v.dismissListeners.forEach(A=>{A()}),v.dismissListeners.clear())},L=()=>{R(),x(),S=!1,u.replaceChildren(),u.dataset.visible="false",p==null||p.setOpen(!1)},B=()=>{const v=at(),A=t.getBoundingClientRect(),z={x:(v==null?void 0:v.left)??A.left,y:(v==null?void 0:v.top)??A.top,width:(v==null?void 0:v.width)||1,height:(v==null?void 0:v.height)||1};return I.style.left=`${z.x}px`,I.style.top=`${z.y}px`,I.style.width=`${z.width}px`,I.style.height=`${z.height}px`,z},V=()=>{const v=s(),A=Nn(w,K=>pt(K,v)),z=B(),$=`bridgerte-hoverbar-${F+=1}`,q=new Set;if((k==null?void 0:k({id:$,items:A,commandStates:v,readonly:r(),anchorRect:z,subscribeDismiss:K=>(q.add(K),()=>{q.delete(K)}),submit:K=>{if((M==null?void 0:M.id)!==$)return;const ne=ft(A,K);!ne||ne.disabled||D(ne.item,z)},cancel:L}))===!0){x(),M={id:$,dismissListeners:q},u.replaceChildren(),S=!0,u.dataset.visible="false",p==null||p.setOpen(!1);return}u.replaceChildren(...w.flatMap(K=>K.type==="separator"?[Xs(K)]:(K.type==="button"?[K.item]:K.items).map(be=>Js(be,v,m)))),x(),S=!0,u.dataset.visible="true",p==null||p.setOpen(!0),p==null||p.update()},G=()=>r()?!1:n.getEditorState().read(Gs),O=(v=!1)=>{if(R(),!G()){L();return}if(v){V();return}S&&L(),N=window.setTimeout(()=>{N=null,G()&&V()},Ks)},D=(v,A)=>{if(v.payloadPanel){a({menuId:v.id,command:v.command,panel:v.payloadPanel,currentValues:Tn(v,s()),anchorRect:A}),O(!0);return}o(v.command),O(!0)},y=v=>{const A=T.find($=>$.id===v.dataset.hoverbarItemId);if(!A||v.disabled)return;const z=v.getBoundingClientRect();D(A,{x:z.left,y:z.top,width:z.width,height:z.height})},d=v=>{en(v.target)&&v.preventDefault()},E=v=>{const A=en(v.target);A&&(v.preventDefault(),y(A))},f=v=>{!S||Zt(v,u)||Zt(v,t)||L()},H=n.registerCommand(l.SELECTION_CHANGE_COMMAND,()=>(O(),!1),l.COMMAND_PRIORITY_LOW),h=n.registerUpdateListener(()=>{O()}),_=n.registerCommand(l.KEY_ESCAPE_COMMAND,v=>S?(v==null||v.preventDefault(),L(),!0):!1,l.COMMAND_PRIORITY_LOW);return u.addEventListener("pointerdown",d),u.addEventListener("click",E),document.addEventListener("pointerdown",f,!0),()=>{R(),H(),h(),_(),u.removeEventListener("pointerdown",d),u.removeEventListener("click",E),document.removeEventListener("pointerdown",f,!0),C(),p==null||p.destroy(),I.remove(),u.remove()}},Zs=e=>e.metaKey||e.ctrlKey,ei={b:{type:"format.bold"},i:{type:"format.italic"},u:{type:"format.underline"},"\\":{type:"format.clear"}},ti={x:{type:"format.strike"},l:{type:"align",value:"left"},e:{type:"align",value:"center"},r:{type:"align",value:"right"},j:{type:"align",value:"justify"}},ni={0:{type:"block.paragraph"},1:{type:"block.heading",level:1},2:{type:"block.heading",level:2},3:{type:"block.heading",level:3},4:{type:"block.heading",level:4},5:{type:"block.heading",level:5},6:{type:"block.heading",level:6}},ri=e=>{const t=e.key.toLowerCase(),n=e.code;if(!e.metaKey&&!e.ctrlKey&&!e.altKey&&!e.shiftKey||!Zs(e))return null;if(e.altKey){if(e.shiftKey)return null;if(t==="c"||n==="KeyC")return{type:"block.code"};const r=n.startsWith("Digit")?n.slice(5):t;return ni[r]??null}return e.shiftKey?t==="z"?{type:"history.redo"}:t==="."||t===">"||n==="Period"?{type:"block.quote"}:t==="7"||t==="&"||n==="Digit7"?{type:"list.ordered"}:t==="8"||t==="*"||n==="Digit8"?{type:"list.unordered"}:t==="9"||t==="("||n==="Digit9"?{type:"list.todo"}:t==="-"||t==="_"||n==="Minus"?{type:"block.divider"}:ti[t]??null:t==="z"?{type:"history.undo"}:t==="y"&&e.ctrlKey&&!e.metaKey?{type:"history.redo"}:t==="`"||t==="~"||n==="Backquote"?{type:"format.inlineCode"}:ei[t]??null},oi=({target:e,isReadonly:t,executeCommand:n})=>{const r=o=>{if(t())return;const a=ri(o);a&&(o.preventDefault(),n(a))};return e.addEventListener("keydown",r),()=>{e.removeEventListener("keydown",r)}},ai=(e,t)=>{const n=t.offsetTop,r=n+t.offsetHeight,o=e.scrollTop,a=o+e.clientHeight;if(n<o){e.scrollTop=n;return}r>a&&(e.scrollTop=r-e.clientHeight)},wt=(e,t)=>{var n;if(e instanceof Text&&t<=(((n=e.textContent)==null?void 0:n.length)??0))return e;for(const r of Array.from((e==null?void 0:e.childNodes)??[])){const o=wt(r,t);if(o)return o}return null},Hn=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,menu:o,anchor:a,itemSelector:s,getCurrentTrigger:i,getTriggerRect:g,resolveItems:c,renderItem:b,renderStatus:m,onStateChange:k,onSelect:P})=>{let w=null,T=0;const I=Q(o,{targetSelector:s}),u=yt(a,o,{placement:"bottom-start",offset:2,strategy:"fixed"});e.append(a,o);const p=()=>{const f=w?g(w.trigger)??at():at(),H=t.getBoundingClientRect();return f??H},S=()=>{const f=p();a.style.left=`${f.left}px`,a.style.top=`${f.top}px`,a.style.height=`${f.height||1}px`},N=(f=!0)=>{w=null,o.dataset.visible="false",f&&o.replaceChildren(),u.setOpen(!1)},F=()=>{const f=o.querySelector(`${s}[data-active="true"]`);f&&ai(o,f)},M=(f,H)=>{!w||w.requestId!==H.requestId||(N(),P(f,H.trigger))},C=()=>{if(!w){N();return}const f=w,H=p();if((k==null?void 0:k(f,{anchorRect:H,close:N,selectItem:v=>M(v,f)}))===!0){o.replaceChildren(),o.dataset.visible="false",u.setOpen(!1);return}if(f.status==="success")o.replaceChildren(...f.items.map((v,A)=>b(v,A,A===f.activeIndex)));else{const v=m==null?void 0:m(f.status,f.trigger.query,f.error);o.replaceChildren(...v?[v]:[])}const _=o.children.length>0;o.dataset.visible=String(_),S(),u.setOpen(_),F(),u.update()},R=async(f,H)=>{let h;try{h=await Promise.resolve(c(f))}catch(_){(w==null?void 0:w.requestId)===H&&(w={...w,items:[],activeIndex:0,status:"error",error:_},C());return}!w||H!==w.requestId||(w={...w,items:h,activeIndex:Math.min(w.activeIndex,Math.max(h.length-1,0)),status:h.length>0?"success":"empty",error:void 0},C())},x=()=>{if(r()){N();return}const f=n.getEditorState().read(i);if(!f){N(!1);return}T+=1,w={trigger:f,items:[],activeIndex:0,requestId:T,status:"loading",error:void 0},C(),R(f.query,T)},L=()=>{if(!w||w.status!=="success")return!1;const f=w.items[w.activeIndex],H=w.trigger;return f?(N(),P(f,H),!0):!1},B=f=>!w||w.status!=="success"||w.items.length===0?!1:(w={...w,activeIndex:(w.activeIndex+f+w.items.length)%w.items.length},C(),!0),V=f=>{const H=f.target,h=H instanceof HTMLElement?H.closest(s):null,_=h!=null&&h.dataset.index?Number.parseInt(h.dataset.index,10):Number.NaN;!w||w.status!=="success"||Number.isNaN(_)||(w={...w,activeIndex:_},f.preventDefault(),L())},G=f=>{const H=f.target;H instanceof HTMLElement&&H.closest(s)&&f.preventDefault()},O=n.registerUpdateListener(()=>{x()}),D=n.registerCommand(l.KEY_ARROW_DOWN_COMMAND,f=>B(1)?(f==null||f.preventDefault(),!0):!1,l.COMMAND_PRIORITY_LOW),y=n.registerCommand(l.KEY_ARROW_UP_COMMAND,f=>B(-1)?(f==null||f.preventDefault(),!0):!1,l.COMMAND_PRIORITY_LOW),d=n.registerCommand(l.KEY_ENTER_COMMAND,f=>L()?(f==null||f.preventDefault(),!0):!1,l.COMMAND_PRIORITY_LOW),E=n.registerCommand(l.KEY_ESCAPE_COMMAND,f=>w?(f==null||f.preventDefault(),N(),!0):!1,l.COMMAND_PRIORITY_LOW);return o.addEventListener("click",V),o.addEventListener("pointerdown",G),{close:N,destroy(){O(),D(),y(),d(),E(),o.removeEventListener("click",V),o.removeEventListener("pointerdown",G),I(),u.destroy(),a.remove(),o.remove()}}},si={labelField:"label",descriptionField:"description",avatarField:"avatar",iconField:"data.icon",showAvatar:!0,showIcon:!0,showDescription:!0,loadingText:"加载中",emptyText:"没有匹配的提及",errorText:"提及加载失败"},ii=e=>({...si,...e}),li=(e,t)=>{var o;const n=t.slice(5),r=(o=e.data)==null?void 0:o[n];return typeof r=="string"&&r?r:void 0},Pe=(e,t)=>{if(t.startsWith("data."))return li(e,t);const n=t==="id"?e.id:t==="label"?e.label:t==="value"?e.value:t==="avatar"?e.avatar:e.description;return typeof n=="string"&&n?n:void 0},ci=e=>e.startsWith("@")?e:`@${e}`,On=(e,t)=>{const n=Pe(e,t.labelField)??e.label??e.value??e.id,r=t.showDescription?Pe(e,t.descriptionField)??e.description:void 0,o=t.showAvatar?Pe(e,t.avatarField)??e.avatar:void 0,a=t.showIcon&&!o?Pe(e,t.iconField):void 0;return{item:e,label:ci(n),...r?{description:r}:{},...o?{avatar:o}:{},...a?{icon:a}:{}}},di=(e,t)=>e.map(n=>On(n,t)),st=e=>e instanceof l.TextNode&&e.getTextContent().startsWith(" "),ui=e=>{const n=e.getTextContent().slice(1);if(!n){e.remove();return}e.setTextContent(n)},gi=(e,t)=>{const n=e.getPreviousSibling(),r=e.getNextSibling(),o=st(r)?r.getNextSibling():r;if(st(r)&&ui(r),e.remove(),t){n==null||n.selectEnd();return}o==null||o.selectStart()},mi=e=>{const t=l.$getSelection();if(!l.$isRangeSelection(t)||!t.isCollapsed())return null;const n=t.anchor,r=n.getNode();if(Rt(r))return r;if(!(r instanceof l.TextNode))return null;const o=r.getTextContentSize(),a=r.getPreviousSibling(),s=r.getNextSibling(),i=st(r)&&n.offset===1,g=e?n.offset===0||i?a:null:n.offset===o?s:null;return Rt(g)?g:null},hi=(e,t,n)=>{const r=a=>{if(t())return!1;const s=mi(a);return s?(gi(s,a),n(),!0):!1},o=(a,s)=>{const i=r(s);return i&&a.preventDefault(),i};return[e.registerCommand(l.KEY_BACKSPACE_COMMAND,a=>o(a,!0),l.COMMAND_PRIORITY_HIGH),e.registerCommand(l.KEY_DELETE_COMMAND,a=>o(a,!1),l.COMMAND_PRIORITY_HIGH),e.registerCommand(l.DELETE_CHARACTER_COMMAND,a=>r(a),l.COMMAND_PRIORITY_HIGH)]},pi=/(?:^|\s)@([\p{L}\p{N}_-]*)$/u,tn=[{id:"bridgerte-team",label:"BridgeRTE Team",value:"bridgerte-team"},{id:"frontend",label:"Frontend",value:"frontend"},{id:"designer",label:"Designer",value:"designer"}],fi=e=>e.trim().toLowerCase(),bi=e=>[e.label,e.value,e.description].filter(Boolean).join(" ").toLowerCase(),yi=e=>{const t=fi(e);return t?tn.filter(n=>bi(n).includes(t)):tn},vi=()=>{const e=l.$getSelection();if(!l.$isRangeSelection(e)||!e.isCollapsed())return null;const t=e.anchor,n=t.getNode();if(!(n instanceof l.TextNode))return null;const o=n.getTextContent().slice(0,t.offset).match(pi);if(!o)return null;const a=o[1]??"",s=o[0]??"",i=s.startsWith("@")?0:1,g=t.offset-s.length+i;return{query:a,nodeKey:n.getKey(),startOffset:g,endOffset:t.offset}},Ci=()=>{const e=document.createElement("div");return e.className="bridgerte__floating-menu bridgerte__mention-menu",e.dataset.visible="false",e},wi=()=>{const e=document.createElement("span");return e.className="bridgerte__mention-anchor",e.setAttribute("aria-hidden","true"),e},_i=(e,t)=>{var s;const n=e.getElementByKey(t.nodeKey),r=wt(n,t.startOffset+1);if(!(r instanceof Text))return null;const o=document.createRange(),a=Math.min(t.startOffset+1,((s=r.textContent)==null?void 0:s.length)??0);return a<=t.startOffset?null:(o.setStart(r,t.startOffset),o.setEnd(r,a),o.getBoundingClientRect())},ki=(e,t,n)=>{const r=document.createElement("button"),o=document.createElement("span");if(r.type="button",r.className="bridgerte__menu-item bridgerte__mention-item",r.dataset.mentionId=e.item.id,r.dataset.index=String(t),r.dataset.active=String(n),e.avatar){const a=document.createElement("img");a.className="bridgerte__mention-item-avatar",a.src=e.avatar,a.alt="",a.setAttribute("aria-hidden","true"),r.append(a)}else if(e.icon){const a=document.createElement("span");a.className="bridgerte__mention-item-icon",a.setAttribute("aria-hidden","true"),a.textContent=e.icon,r.append(a)}if(o.className="bridgerte__mention-item-title",o.textContent=e.label,r.append(o),e.description){const a=document.createElement("span");a.className="bridgerte__mention-item-description",a.textContent=e.description,r.append(a)}return r},Mi=(e,t)=>{const n=document.createElement("div");return n.className="bridgerte__mention-status",n.dataset.status=e,n.textContent=t,n},Ei=(e,t)=>{switch(e){case"loading":return t.loadingText;case"empty":return t.emptyText;case"error":return t.errorText}},xi=e=>e?{x:e.x,y:e.y,width:e.width,height:e.height}:void 0,Ti=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,executeCommand:o,mentionProvider:a,mentionMenuConfig:s,onMentionMenuRequest:i})=>{const g=Ci(),c=wi(),b=ii(s),m=(w,T)=>{n.update(()=>{const I=l.$getNodeByKey(T.nodeKey);I instanceof l.TextNode&&(I.spliceText(T.startOffset,T.endOffset-T.startOffset,""),I.select(T.startOffset,T.startOffset))}),o({type:"mention.insert",item:w})},k=Hn({editorRoot:e,contentElement:t,editor:n,isReadonly:r,menu:g,anchor:c,itemSelector:".bridgerte__mention-item",getCurrentTrigger:vi,getTriggerRect:w=>_i(n,w),resolveItems:async w=>{const T=await Promise.resolve(a?a(w):yi(w));return di(T,b)},renderItem:ki,renderStatus:w=>Mi(w,Ei(w,b)),onStateChange:i?(w,T)=>i({id:`bridgerte-mention-menu-${w.requestId}`,query:w.trigger.query,status:w.status,items:w.items,config:b,readonly:r(),anchorRect:xi(T.anchorRect),...w.error?{error:w.error}:{},submit:I=>T.selectItem(On(I,b)),cancel:T.close}):void 0,onSelect:(w,T)=>m(w.item,T)}),P=l.mergeRegister(...hi(n,r,()=>k.close(!1)));return()=>{P(),k.destroy()}},Ni=["script","style","iframe","object","embed","meta","link","xml","svg","math","canvas","form","input","button","select","textarea"].join(","),Si=[".bridgerte__code-header",".bridgerte__code-block-controls",".bridgerte__code-block-control-button",".bridgerte__code-block-control",".bridgerte__code-block-controls-layer",".bridgerte__code-block-menu",".bridgerte__table-controls-layer",".bridgerte__table-controls",".bridgerte__media-controls-layer",".bridgerte__media-controls",".bridgerte__dialog-backdrop",".bridgerte__dialog",".bridgerte__payload-panel",'[data-bridgerte-clipboard-ui="true"]'].join(","),Li=new Set(["A","B","BLOCKQUOTE","BR","CODE","DEL","DIV","EM","H1","H2","H3","H4","H5","H6","FONT","I","LI","OL","P","PRE","S","SPAN","STRIKE","STRONG","SUB","SUP","TABLE","TBODY","TFOOT","TD","TH","THEAD","TR","TT","U","UL"]),Ri=new Set(["http:","https:","mailto:"]),Ii="p,div,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table",Pi="p,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table",$i=new Set(["colspan","rowspan"]),Ai=new Set(["TD","TH"]),Bi=new Set(["M","O","V","W"]),Di=new Set(["SPAN"]),Hi=new Set(["color","background-color"]),Oi=/^#([\da-f]{3}|[\da-f]{6}|[\da-f]{8})$/i,nn=new Map([["B","strong"],["DEL","s"],["I","em"],["STRIKE","s"],["TT","code"]]),Fi=e=>{try{const t=new URL(e,window.location.href);return Ri.has(t.protocol)}catch{return!1}},_t=e=>{e.replaceWith(...e.childNodes)},kt=(e,t)=>{const n=e.ownerDocument.createElement(t);return n.append(...e.childNodes),e.replaceWith(n),n},zi=e=>{const t=e.tagName.split(":")[0]??"";return e.tagName.includes(":")&&Bi.has(t)},Fn=e=>{[...e.childNodes].forEach(t=>{if(t.nodeType===Node.COMMENT_NODE){t.remove();return}Fn(t)})},zn=e=>{[...e.childNodes].forEach(t=>{if(t.nodeType===Node.TEXT_NODE){const n=t.parentElement,r=!!(n!=null&&n.closest("pre,code,textarea")),o=(t.textContent??"").replace(/[\u200B-\u200D\uFEFF]/g,"").replace(/\u00A0/g,r?" ":" ");if(r){t.textContent=o;return}let a=o.replace(/\s+/g," ");t.previousSibling||(a=a.trimStart()),t.nextSibling||(a=a.trimEnd()),t.textContent=a;return}zn(t)})},Wi=e=>/^[1-9]\d*$/.test(e.trim()),Mt=e=>{const t=e.trim().toLowerCase(),[,n]=t.match(Oi)??[];return n?n.length===8?`#${n.slice(2)}`:t:null},qi=(e,t)=>{if(!Di.has(e))return null;const n=t.split(";").flatMap(r=>{const[o,...a]=r.split(":"),s=o==null?void 0:o.trim().toLowerCase(),i=Mt(a.join(":"));return!s||!i||!Hi.has(s)?[]:[`${s}: ${i}`]});return n.length>0?`${n.join("; ")};`:null},Ui=e=>{if(zi(e)){e.remove();return}if(!Li.has(e.tagName)){_t(e);return}[...e.attributes].forEach(t=>{const n=t.name.toLowerCase();if(n.startsWith("on")){e.removeAttribute(t.name);return}if(n==="style"){const r=qi(e.tagName,t.value);if(r){e.setAttribute(t.name,r);return}e.removeAttribute(t.name);return}if(e.tagName==="A"&&n==="href"){if(Fi(t.value))return;e.removeAttribute(t.name);return}if(!(e.tagName==="A"&&["target","rel","title"].includes(n))){if(e.tagName==="PRE"&&n===ze){const r=ue(t.value);if(r){e.setAttribute(t.name,r);return}e.removeAttribute(t.name);return}if(e.tagName==="FONT"&&n==="color"){if(Mt(t.value))return;e.removeAttribute(t.name);return}Ai.has(e.tagName)&&$i.has(n)&&Wi(t.value)||e.removeAttribute(t.name)}})},Vi=e=>{[...e.querySelectorAll("font")].forEach(t=>{const n=t.getAttribute("color"),r=n?Mt(n):null,o=kt(t,"span");r&&o.setAttribute("style",`color: ${r};`)})},Ki=e=>{[...e.querySelectorAll([...nn.keys()].join(","))].forEach(t=>{const n=nn.get(t.tagName);n&&kt(t,n)})},ji=e=>{[...e.querySelectorAll("div")].reverse().forEach(t=>{if(t.querySelector(Pi)){_t(t);return}kt(t,"p")})},Gi=e=>{[...e.querySelectorAll("span")].forEach(t=>{t.attributes.length===0&&_t(t)})},Yi=e=>!["P","DIV","SPAN"].includes(e.tagName)||e.querySelector("br,table,ul,ol")?!1:!(e.textContent??"").trim(),rn=e=>{[...e.querySelectorAll("p,div,span")].reverse().forEach(t=>{Yi(t)&&t.remove()})},Xi=e=>{var t;return e.nodeType===Node.TEXT_NODE?!!((t=e.textContent)!=null&&t.trim()):e.nodeType!==Node.ELEMENT_NODE?!1:!e.matches(Ii)},Ji=e=>{let t=[];const n=()=>{if(t.length===0)return;const r=e.ownerDocument.createElement("p"),o=t[0];o&&(e.insertBefore(r,o),t.forEach(a=>{r.append(a)}),t=[])};[...e.childNodes].forEach(r=>{var o;if(r.nodeType===Node.TEXT_NODE&&!((o=r.textContent)!=null&&o.trim())){r.remove();return}if(Xi(r)){t.push(r);return}n()}),n()},Qi=e=>{const t=document.createElement("template");t.innerHTML=e,t.content.querySelectorAll(Ni).forEach(r=>{r.remove()}),t.content.querySelectorAll(Si).forEach(r=>{r.remove()}),Fn(t.content),Xo(t.content),[...t.content.querySelectorAll("*")].forEach(Ui),zn(t.content),Vi(t.content),Ki(t.content),ji(t.content),Gi(t.content),rn(t.content);const n=document.createElement("div");return n.append(t.content.cloneNode(!0)),Ji(n),rn(n),n.innerHTML},Zi=/^https?:\/\/[^\s<>"']+\.[^\s<>"']+$/i,el=/^www\.[^\s<>"']+\.[^\s<>"']+$/i,tl=new RegExp(`^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+(?:/[^\\s<>"']*)?$`,"i"),nl=/^[^\s@]+@[^\s@]+\.[^\s@]+$/i,rl=/^\s*```([a-z0-9_+#.-]+)\s*\n([\s\S]*?)\n?```\s*$/i,ol=e=>e.type.startsWith("image/")?"image":e.type.startsWith("video/")?"video":null,Wn=e=>e?[...e].flatMap(t=>{const n=ol(t);return n?[{type:n,file:t}]:[]}):[],qe=e=>({text:(e==null?void 0:e.getData("text/plain"))??"",html:(e==null?void 0:e.getData("text/html"))??"",files:e!=null&&e.files?[...e.files]:[]}),al=e=>({name:e.name,mimeType:e.type||void 0,size:e.size,data:e}),sl=e=>{const[,t,n]=e.replace(/\r\n/g,`
6
+ `).match(rl)??[],r=ue(t);return n!==void 0&&r!==null?{code:n,language:r}:null},il=e=>{const t=e.trim();return!t||/\s/.test(t)||t.includes("<")||t.includes(">")||/^[a-z][a-z0-9+.-]*:/i.test(t)&&!/^https?:\/\//i.test(t)||nl.test(t)?!1:Zi.test(t)||el.test(t)||tl.test(t)},qn=(e,{isReadonly:t,executeCommand:n})=>t()||!il(e.text)?!1:(n({type:"link.set",href:e.text.trim()}),!0),it=(e,{isReadonly:t,canUploadMedia:n,uploadMediaFile:r})=>{if(t()||!n())return!1;const o=Wn(e.files);return o.length===0?!1:(o.forEach(({type:a,file:s})=>{r(a,s)}),!0)},ll=(e,t)=>{const r=new DOMParser().parseFromString(t,"text/html");Jo(r.body);const o=lt.$generateNodesFromDOM(e,r);return Qo(o,r.body),o},cl=(e,t)=>{const n=ll(e,t);if(n.length===0)return!1;if(l.$getSelection()||l.$getRoot().selectEnd(),n.some(W.$isCodeNode)){n.forEach(o=>{Fe.$insertNodeToNearestRoot(o)});const r=n[n.length-1];return r&&W.$isCodeNode(r)&&l.$insertNodes([l.$createParagraphNode()]),!0}return l.$insertNodes(n),!0},dl=(e,{editor:t,isReadonly:n})=>{if(n())return!1;if(!e.html.trim())return gl(e,{editor:t,isReadonly:n});const r=Qi(e.html);return r.trim()?(t.update(()=>{cl(t,r)}),!0):!1},ul=(e,{editor:t,isReadonly:n})=>{if(n()||e.html.trim()||!e.text.trim())return!1;const r=sl(e.text);return r?(t.update(()=>{const o=_n(r.language||void 0),a=l.$createParagraphNode();l.$getSelection()||l.$getRoot().selectEnd(),o.append(l.$createTextNode(r.code)),Fe.$insertNodeToNearestRoot(o),l.$insertNodes([a]),a.selectStart()}),!0):!1},gl=(e,{editor:t,isReadonly:n})=>n()||e.html.trim()||!e.text?!1:(t.update(()=>{l.$getSelection()||l.$getRoot().selectEnd(),l.$insertNodes([l.$createTextNode(e.text)])}),!0),Un=(e,t)=>ul(e,t)||dl(e,t),de=e=>{e.preventDefault(),e.stopImmediatePropagation()},ml=(e,t)=>it(e,t)||qn(e,t)||Un(e,t),hl=e=>{const t=n=>{n.defaultPrevented||qn(qe(n.clipboardData),e)&&de(n)};return e.target.addEventListener("paste",t,{capture:!0}),()=>{e.target.removeEventListener("paste",t,{capture:!0})}},pl=e=>{const t=o=>{o.defaultPrevented||it(qe(o.clipboardData),e)&&de(o)},n=o=>{var s;if(e.isReadonly()||!e.canUploadMedia())return;const a=(s=o.dataTransfer)!=null&&s.files?[...o.dataTransfer.files]:[];Wn(a).length!==0&&(o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect="copy"))},r=o=>{var s;const a={files:(s=o.dataTransfer)!=null&&s.files?[...o.dataTransfer.files]:[]};it(a,e)&&de(o)};return e.target.addEventListener("paste",t,{capture:!0}),e.target.addEventListener("dragover",n),e.target.addEventListener("drop",r),()=>{e.target.removeEventListener("paste",t,{capture:!0}),e.target.removeEventListener("dragover",n),e.target.removeEventListener("drop",r)}},fl=e=>{const t=n=>{n.defaultPrevented||!Un(qe(n.clipboardData),e)||de(n)};return e.target.addEventListener("paste",t,{capture:!0}),()=>{e.target.removeEventListener("paste",t,{capture:!0})}},bl=({target:e,isReadonly:t,onPaste:n,canUploadMedia:r,uploadMediaFile:o,executeCommand:a,editor:s})=>{const i=(c,b)=>ml({text:b.text??c.text,html:b.html??c.html,files:c.files},{isReadonly:t,canUploadMedia:r,uploadMediaFile:o,executeCommand:a,editor:s}),g=c=>{if(t()||!n)return;const b=qe(c.clipboardData),m=n({text:b.text,html:b.html,files:b.files.map(al)});if(m instanceof Promise){de(c),m.then(k=>{k!==!0&&k&&i(b,k)});return}if(m===!0){de(c);return}m&&(de(c),i(b,m))};return e.addEventListener("paste",g,{capture:!0}),()=>{e.removeEventListener("paste",g,{capture:!0})}},yl=e=>e.getKey()==="root"?null:e.getTopLevelElement(),vl=(e,t,n)=>{const r=e.getLastDescendant();return l.$isElementNode(t)?t===e&&n===e.getChildrenSize():r?t===r&&n===t.getTextContentSize():!0},Cl=e=>{const t=e.getLastChild();return l.$isLineBreakNode(t)},wl=e=>{const t=l.$createParagraphNode(),n=e.getLastChild();l.$isLineBreakNode(n)&&n.remove(),e.insertAfter(t),t.selectStart()},_l=(e,t)=>{const n=()=>{if(t())return!1;const r=l.$getSelection();if(!l.$isRangeSelection(r)||!r.isCollapsed())return!1;const o=r.anchor,a=o.getNode(),s=yl(a);return!ie.$isQuoteNode(s)||!vl(s,a,o.offset)?!1:Cl(s)?(wl(s),!0):(r.insertLineBreak(),!0)};return[e.registerCommand(l.INSERT_PARAGRAPH_COMMAND,n,l.COMMAND_PRIORITY_HIGH),e.registerCommand(l.INSERT_LINE_BREAK_COMMAND,r=>r?!1:n(),l.COMMAND_PRIORITY_HIGH)]},kl=["paragraph","heading-1","heading-2","heading-3","quote","code-block","ordered-list","unordered-list","todo-list","divider","upload-image","upload-video","table"],Ml={showIcon:!0,loadingText:"加载中",emptyText:"没有匹配的命令",errorText:"命令加载失败"},El=e=>({...Ml,...e}),xl=e=>e.flatMap(t=>t.type==="button"?[t.item]:t.type==="group"?t.items:[]),Tl=e=>({...e,toolbarKeys:(e==null?void 0:e.toolbarKeys)??kl}),Nl=e=>({id:e.id,label:e.label,command:e.command,icon:e.icon,requiresPayload:e.requiresPayload,payloadPanel:e.payloadPanel,source:"schema"}),Sl=(e,t)=>xl(J.resolveToolbarMenu(Tl(t),e)).map(Nl),Vn=e=>({...e,source:"provider"}),Ll=/(?:^|\s)\/([\p{L}\p{N}_-]*)$/u,Rl=e=>e.trim().toLowerCase(),Il=e=>[e.label,e.id,e.description,...e.keywords??[]].filter(Boolean).join(" ").toLowerCase(),Pl=(e,t)=>{const n=Rl(t);return n?e.filter(r=>Il(r).includes(n)):e},$l=async(e,t)=>(await Promise.resolve((t==null?void 0:t(e))??[])).map(Vn),Al=e=>"source"in e?e:Vn(e),Bl=({menuSchema:e,slashCommandConfig:t})=>e!==void 0||t!==void 0,Dl=()=>{const e=l.$getSelection();if(!l.$isRangeSelection(e)||!e.isCollapsed())return null;const t=e.anchor,n=t.getNode();if(!(n instanceof l.TextNode))return null;const o=n.getTextContent().slice(0,t.offset).match(Ll);if(!o)return null;const a=o[1]??"",s=o[0]??"",i=s.startsWith("/")?0:1,g=t.offset-s.length+i;return{query:a,nodeKey:n.getKey(),startOffset:g,endOffset:t.offset}},Hl=()=>{const e=document.createElement("div");return e.className="bridgerte__floating-menu bridgerte__slash-command-menu",e.dataset.visible="false",e},Ol=()=>{const e=document.createElement("span");return e.className="bridgerte__slash-command-anchor",e.setAttribute("aria-hidden","true"),e},on=(e,t)=>{var s;const n=e.getElementByKey(t.nodeKey),r=wt(n,t.startOffset+1);if(!(r instanceof Text))return null;const o=document.createRange(),a=Math.min(t.startOffset+1,((s=r.textContent)==null?void 0:s.length)??0);return a<=t.startOffset?null:(o.setStart(r,t.startOffset),o.setEnd(r,a),o.getBoundingClientRect())},Fl=(e,t,n,r,o)=>{const a=document.createElement("button"),s=document.createElement("span");if(a.type="button",a.className="bridgerte__menu-item bridgerte__slash-command-item",a.dataset.commandId=e.id,a.dataset.index=String(t),a.dataset.active=String(n),r.showIcon&&e.icon){const i=document.createElement("span");i.className="bridgerte__slash-command-item-icon",i.setAttribute("aria-hidden","true"),Ct(i,o[e.icon]??vt[e.icon],e.label),a.append(i)}if(s.className="bridgerte__slash-command-item-title",s.textContent=e.label,a.append(s),e.description){const i=document.createElement("span");i.className="bridgerte__slash-command-item-description",i.textContent=e.description,a.append(i)}return a},zl=(e,t)=>{const n=document.createElement("div");return n.className="bridgerte__slash-command-status",n.dataset.status=e,n.textContent=t,n},Wl=(e,t)=>{switch(e){case"loading":return t.loadingText;case"empty":return t.emptyText;case"error":return t.errorText}},an=e=>e?{x:e.x,y:e.y,width:e.width,height:e.height}:void 0,ql=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,executeCommand:o,requestPayloadPanel:a,menuSchema:s,slashCommandConfig:i,icons:g={},menuLabels:c,payloadPanelConfig:b,slashCommandMenuConfig:m,onSlashCommandMenuRequest:k,slashCommandProvider:P})=>{const w=Hl(),T=Ol(),I=El(m),u=We(s??J.defaultMenuSchema,{menuLabels:c,payloadPanelConfig:b}),p=Sl(u,i),S=new Map(u.map(x=>[x.id,x])),N=Bl({menuSchema:s,slashCommandConfig:i}),F=x=>{n.update(()=>{const L=l.$getNodeByKey(x.nodeKey);L instanceof l.TextNode&&(L.spliceText(x.startOffset,x.endOffset-x.startOffset,""),L.select(x.startOffset,x.startOffset))})};return Hn({editorRoot:e,contentElement:t,editor:n,isReadonly:r,menu:w,anchor:T,itemSelector:".bridgerte__slash-command-item",getCurrentTrigger:Dl,getTriggerRect:x=>on(n,x),resolveItems:async x=>{const L=N||!P?Pl(p,x):[];try{const B=await $l(x,P);return[...L,...B]}catch(B){if(L.length>0)return L;throw B}},renderItem:(x,L,B)=>Fl(x,L,B,I,g),renderStatus:x=>zl(x,Wl(x,I)),onStateChange:k?(x,L)=>k({id:`bridgerte-slash-command-menu-${x.requestId}`,query:x.trigger.query,status:x.status,items:x.items,config:I,readonly:r(),anchorRect:an(L.anchorRect),...x.error?{error:x.error}:{},submit:B=>L.selectItem(Al(B)),cancel:L.close}):void 0,onSelect:(x,L)=>{F(L);const B=x.source==="schema"?S.get(x.id):void 0;if(B!=null&&B.payloadPanel){const V=on(n,L);a({menuId:B.id,command:B.command,panel:B.payloadPanel,anchorRect:an(V??void 0)});return}o(x.command)}}).destroy},sn=32,Xe=e=>{var t;return e instanceof HTMLElement&&e.getAttribute("role")==="checkbox"&&((t=e.parentElement)==null?void 0:t.classList.contains("bridgerte__list--todo"))===!0},Je=e=>e instanceof HTMLElement?e.closest('[role="checkbox"]'):null,Ul=e=>l.$getNearestNodeFromDOMNode(e),ln=e=>e.button===0,Qe=(e,t)=>{const n=t.getBoundingClientRect();return t.dir==="rtl"?e.clientX>=n.right-sn&&e.clientX<=n.right:e.clientX>=n.left&&e.clientX<=n.left+sn},cn=e=>{e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()},Vl=({contentElement:e,editor:t,isReadonly:n})=>{let r=0;const o=g=>{if(n()||!ln(g))return;const c=Je(g.target);!c||!Xe(c)||Qe(g,c)&&cn(g)},a=(g,c)=>{cn(g),t.update(()=>{const b=Ul(c);te.$isListItemNode(b)&&b.toggleChecked()})},s=g=>{if(n()||!ln(g)||Date.now()-r<700)return;const c=Je(g.target);!c||!Xe(c)||Qe(g,c)&&a(g,c)},i=g=>{if(n()||g.pointerType!=="touch")return;const c=Je(g.target);!c||!Xe(c)||Qe(g,c)&&(r=Date.now(),a(g,c))};return e.addEventListener("pointerdown",o,!0),e.addEventListener("pointerup",i,!0),e.addEventListener("click",s,!0),()=>{e.removeEventListener("pointerdown",o,!0),e.removeEventListener("pointerup",i,!0),e.removeEventListener("click",s,!0)}},Ze=(e,t)=>{var n;return((n=e.floatingMenus)==null?void 0:n[t])!==!1},Kl=({options:e,lexicalEditor:t,editorRoot:n,contentElement:r,historyState:o,isReadonly:a,executeCommand:s,requestPayloadPanel:i,uploadMediaFile:g,canUploadMedia:c,syncAfterEditorUpdate:b,refreshCommandStates:m,getCommandStates:k,setCanUndo:P,setCanRedo:w,enableKeyboardShortcuts:T})=>{const I=Ze(e,"mention"),u=Ze(e,"slash"),p=Ze(e,"hoverbar"),S=Us(t),N=l.mergeRegister(bl({target:r,isReadonly:a,onPaste:e.onPaste,canUploadMedia:c,uploadMediaFile:g,executeCommand:s,editor:t}),pl({target:r,isReadonly:a,canUploadMedia:c,uploadMediaFile:g}),hl({target:r,isReadonly:a,executeCommand:s}),fl({target:r,editor:t,isReadonly:a}),Rs({target:r,isReadonly:a}),ie.registerRichText(t),dn.registerHistory(t,o,Do),te.registerList(t),te.registerCheckList(t),..._l(t,a),...Hr(t,a),...sr(t,a),Vl({contentElement:r,editor:t,isReadonly:a}),I?Ti({editorRoot:n,contentElement:r,editor:t,isReadonly:a,executeCommand:s,mentionProvider:e.mentionProvider,mentionMenuConfig:e.mentionMenuConfig,onMentionMenuRequest:e.onMentionMenuRequest}):()=>{},p?Qs({editorRoot:n,contentElement:r,editor:t,isReadonly:a,executeCommand:s,requestPayloadPanel:i,getCommandStates:k,menuSchema:e.menuSchema,hoverbarConfig:e.hoverbarConfig,icons:e.icons,menuLabels:e.menuLabels,payloadPanelConfig:e.payloadPanelConfig,onHoverbarMenuRequest:e.onHoverbarMenuRequest}):()=>{},U.registerTablePlugin(t),xs({editor:t}),u?ql({editorRoot:n,contentElement:r,editor:t,isReadonly:a,executeCommand:s,requestPayloadPanel:i,menuSchema:e.menuSchema,slashCommandConfig:e.slashCommandConfig,icons:e.icons,menuLabels:e.menuLabels,payloadPanelConfig:e.payloadPanelConfig,slashCommandMenuConfig:e.slashCommandMenuConfig,onSlashCommandMenuRequest:e.onSlashCommandMenuRequest,slashCommandProvider:e.slashCommandProvider}):()=>{},Kr({editor:t,contentElement:r,isReadonly:a}),T?oi({target:r,isReadonly:a,executeCommand:s}):()=>{},t.registerUpdateListener(()=>{b(),m()}),t.registerCommand(l.SELECTION_CHANGE_COMMAND,()=>(m(),!1),l.COMMAND_PRIORITY_LOW),t.registerCommand(l.CAN_UNDO_COMMAND,F=>(P(F),!1),l.COMMAND_PRIORITY_LOW),t.registerCommand(l.CAN_REDO_COMMAND,F=>(w(F),!1),l.COMMAND_PRIORITY_LOW));return{destroy(){N(),S.destroy()}}};function Kn(e,t={}){const n=dn.createEmptyHistoryState(),r=t.mediaDefaultWidthPercent??50,{contentElement:o,placeholderElement:a}=ws(e,{placeholder:t.placeholder??Wr}),s=t.keyboardShortcuts===!0;let i=t.readonly??!1,g=!1,c=nt(t.value);const b=l.createEditor({namespace:Ho,editable:!i,nodes:[ie.HeadingNode,ie.QuoteNode,W.CodeNode,W.CodeHighlightNode,te.ListNode,te.ListItemNode,U.TableNode,U.TableRowNode,U.TableCellNode,Y.LinkNode,Y.AutoLinkNode,Me,fe,xe],theme:ko,onError:L=>{re(t,"lexical.runtime","Lexical runtime error.",L)}});U.setScrollableTablesActive(b,!0);const m=()=>g,k=()=>i,P=()=>{m()||(Ur({editor:b,contentElement:o}),Vr({contentElement:o,placeholderElement:a}))},w=_s({editor:b}),T=Oo({lexicalEditor:b,options:t,isDestroyed:m,setContent:L=>{c=L},syncPlaceholder:P}),I=uo({lexicalEditor:b,options:t,isDestroyed:m,canUploadMedia:()=>t.uploadAdapter!==void 0,isReadonly:k}),u=Bo({container:e,lexicalEditor:b,options:t,isDestroyed:m,isReadonly:k,reportError:re}),p=()=>{o.contentEditable=String(!i),b.setEditable(!i)},N=Cs({editorRoot:e,lexicalEditor:b,isReadonly:k,restoreEditorFocus:L=>{w.restore(),b.focus(L)},executeCommand:u,getClearCommand:L=>{switch(L.command.type){case"format.color":case"format.backgroundColor":case"format.fontSize":case"format.fontFamily":case"format.lineHeight":return{...L.command,value:""};default:return null}},codeBlockLanguagePanel:t.codeBlockLanguagePanel,payloadPanelConfig:t.payloadPanelConfig,mediaControlsConfig:t.mediaControlsConfig,menuLabels:t.menuLabels,onRequest:t.onPayloadPanelRequest,onMediaControlsRequest:t.onMediaControlsRequest,onTableControlsRequest:t.onTableControlsRequest,defaultMediaWidthPercent:r}),F=()=>io(t),M=()=>lo(t),C=L=>{m()||(w.capture(),N.payloadPanelController.open(L))};e.dataset.readonly=String(i),e.addEventListener("focusin",F),e.addEventListener("focusout",M),e.style.setProperty("--bridgerte-media-display-width",`${r}%`);const R=Kl({options:t,lexicalEditor:b,editorRoot:e,contentElement:o,historyState:n,isReadonly:k,executeCommand:u,requestPayloadPanel:C,uploadMediaFile:u.uploadMediaFile,canUploadMedia:()=>t.uploadAdapter!==void 0,syncAfterEditorUpdate:T.syncAfterEditorUpdate,refreshCommandStates:I.refreshCommandStates,getCommandStates:I.getCommandStates,setCanUndo:I.setCanUndo,setCanRedo:I.setCanRedo,enableKeyboardShortcuts:s});b.setRootElement(o),T.suppressNextChange(),c=Ar(b,t.value),p();const x={getContent(){return m()||(T.clearContentChangeTimer(),T.syncContent(!1)),c},setContent(L){m()||(T.clearContentChangeTimer(),c=nt(L),T.suppressNextChange(),vn(b,c),T.enforceCurrentMaxLength(),P(),b.dispatchCommand(l.CLEAR_HISTORY_COMMAND,void 0),I.setHistoryAvailability(!1,!1),T.syncContent(!0))},executeCommand(L){u(L)},requestPayloadPanel:C,getCommandStates:I.getCommandStates,subscribeCommandStateChange:I.subscribeCommandStateChange,setReadonly(L){m()||(i=L,e.dataset.readonly=String(i),p(),I.refreshCommandStates())},focus(){m()||b.focus()},blur(){m()||o.blur()},destroy(){m()||(g=!0,T.clearContentChangeTimer(),N.destroy(),u.destroy(),I.destroy(),w.clear(),R.destroy(),b.setRootElement(null),e.removeEventListener("focusin",F),e.removeEventListener("focusout",M),e.classList.remove("bridgerte"),e.textContent="",delete e.dataset.readonly)}};return T.syncContent(!1),P(),I.refreshCommandStates(),co(t,x),x}const jl=e=>!Oe.isBridgeMessage(e)||!("id"in e)?!1:e.type==="editor.init"||e.type==="editor.executeCommand"||e.type==="editor.setContent"||e.type==="editor.setReadonly"||e.type==="editor.requestContent"||e.type==="editor.payloadPanelResolved"||e.type==="editor.payloadPanelCanceled"||e.type==="editor.menuResolved"||e.type==="editor.menuCanceled"||e.type==="editor.uploadResolved"||e.type==="editor.uploadRejected",Gl=e=>({id:e,type:"editor.ready",payload:{menuSchema:J.defaultMenuSchema,eventTiming:Oe.defaultBridgeEventTiming,version:se.BRIDGERTE_CONTENT_VERSION}}),Yl=e=>`native-upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`,Xl=({container:e,transport:t})=>{var y;let n=null,r=!1,o=null,a=null,s=null,i=0;const g=new Map,c=new Map,b=new Map,m=d=>{r||t.postMessage(d)},k=()=>{s&&(clearTimeout(s),s=null)},P=()=>{k(),s=setTimeout(()=>{if(r)return;const d=Math.ceil(e.getBoundingClientRect().height);d!==i&&(i=d,m({type:"editor.heightChange",payload:{height:d}}))},Oe.BRIDGE_HEIGHT_CHANGE_THROTTLE_MS)},w=d=>{if(!n)return;const E=n.getContent();m({id:d,type:"editor.content",payload:E}),m({id:d,type:"editor.contentChange",payload:E})},T=d=>{const E=d.payload,f=g.get(E.assetId);if(f){if(g.delete(E.assetId),f.source==="uploadAdapter"){f.resolve(E.result);return}n==null||n.executeCommand({type:f.type==="image"?"media.insertImage":"media.insertVideo",url:E.result.url,poster:E.result.poster,width:E.result.width,height:E.result.height,displayWidthPercent:50,assetId:E.assetId})}},I=d=>{const E=d.payload,f=g.get(E.assetId);if(f){if(g.delete(E.assetId),f.source==="uploadAdapter"){f.reject(new Error(E.message));return}m({id:d.id,type:"editor.error",payload:{code:"bridge.uploadRejected",message:E.message}})}},u=(d,E)=>new Promise((f,H)=>{g.set(E,{type:d,assetId:E,source:"uploadAdapter",resolve:f,reject:H}),m({type:"editor.uploadRequest",payload:{assetId:E,type:d,accept:d==="image"?"image/*":"video/*"}})}),p=d=>{const E=Yl(d);g.set(E,{type:d,assetId:E,source:"nativePicker"}),m({type:"editor.uploadRequest",payload:{assetId:E,type:d,accept:d==="image"?"image/*":"video/*"}})},S=d=>{const E=c.get(d.payload.requestId);E&&(c.delete(d.payload.requestId),E.request.submit(d.payload.values))},N=d=>{const E=c.get(d.payload.requestId);E&&(c.delete(d.payload.requestId),E.request.cancel())},F=d=>{const E=b.get(d);return E?(b.delete(d),E.unsubscribeDismiss(),E):null},M=()=>{b.forEach(d=>{d.unsubscribeDismiss()}),b.clear()},C=d=>{F(d.id);const E=d.subscribeDismiss(()=>{F(d.id)&&m({type:"editor.menuCanceled",payload:{requestId:d.id}})});b.set(d.id,{request:d,unsubscribeDismiss:E})},R=d=>{const E=F(d.payload.requestId);E&&E.request.submit(d.payload.menuItemId)},x=d=>{const E=F(d.payload.requestId);E&&E.request.cancel()},L=d=>(C(d),m({type:"editor.menuRequest",payload:{kind:"hoverbar",id:d.id,items:d.items,commandStates:d.commandStates,readonly:d.readonly,anchorRect:d.anchorRect}}),!0),B=d=>(C(d),m({type:"editor.menuRequest",payload:{kind:"mediaControls",id:d.id,assetId:d.assetId,mediaType:d.mediaType,status:d.status,displayWidthPercent:d.displayWidthPercent,align:d.align,items:d.items,readonly:d.readonly,anchorRect:d.anchorRect,url:d.url,title:d.title,alt:d.alt,poster:d.poster,width:d.width,height:d.height,duration:d.duration,mimeType:d.mimeType,size:d.size}}),!0),V=d=>(C(d),m({type:"editor.menuRequest",payload:{kind:"tableControls",id:d.id,items:d.items,readonly:d.readonly,anchorRect:d.anchorRect}}),!0),G=(d,E)=>{o==null||o(),g.clear(),c.clear(),M(),n==null||n.destroy(),n=Kn(e,{...E,uploadAdapter:{uploadImage(f,H){return u("image",H.assetId)},uploadVideo(f,H){return u("video",H.assetId)}},onContentChange:f=>{m({type:"editor.contentChange",payload:f}),P()},onCommandStateChange:f=>{m({type:"editor.commandStateChange",payload:f})},onPayloadPanelRequest:f=>(c.set(f.id,{request:f}),m({type:"editor.payloadPanelRequest",payload:{menuId:f.menuId,command:f.command,panel:f.panel,anchorRect:f.anchorRect,currentValues:f.currentValues,id:f.id,readonly:f.readonly}}),!0),onHoverbarMenuRequest:L,onMediaControlsRequest:B,onTableControlsRequest:V,onError:f=>{m({type:"editor.error",payload:f})}}),o=n.subscribeCommandStateChange(f=>{m({type:"editor.commandStateChange",payload:f})}),m(Gl(d)),P()},O=d=>{if(d.type==="media.pickImage"){p("image");return}if(d.type==="media.pickVideo"){p("video");return}n==null||n.executeCommand(d)},D=d=>{if(!(r||!jl(d)))switch(d.type){case"editor.init":G(d.id,d.payload);return;case"editor.executeCommand":O(d.payload);return;case"editor.setContent":n==null||n.setContent(d.payload);return;case"editor.setReadonly":n==null||n.setReadonly(d.payload.readonly);return;case"editor.requestContent":w(d.id);return;case"editor.payloadPanelResolved":S(d);return;case"editor.payloadPanelCanceled":N(d);return;case"editor.menuResolved":R(d);return;case"editor.menuCanceled":x(d);return;case"editor.uploadResolved":T(d);return;case"editor.uploadRejected":I(d);return}};return a=((y=t.addMessageListener)==null?void 0:y.call(t,D))??null,{receive:D,destroy(){r||(r=!0,k(),a==null||a(),o==null||o(),g.clear(),c.clear(),M(),n==null||n.destroy(),n=null)}}};exports.appendMenuIcon=Ct;exports.bindTouchPressedState=Q;exports.createFloatingLayer=yt;exports.createRichTextEditor=Kn;exports.createWebViewBridgeRuntime=Xl;exports.defaultMenuIcons=vt;exports.getMenuStateForItem=pt;exports.getPayloadPanelCurrentValues=Tn;exports.resolveMenuSchemaForDom=We;
7
+ //# sourceMappingURL=index-D13BxvUx.cjs.map