bridgerte 0.9.23 → 0.9.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ "use strict";var Gn=Object.defineProperty;var Yn=(e,t,n)=>t in e?Gn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ve=(e,t,n)=>Yn(e,typeof t!="symbol"?t+"":t,n);const De=require("./bridge.cjs"),se=require("./index-GaS65GL0.cjs"),c=require("lexical"),ie=require("@lexical/rich-text"),W=require("@lexical/code"),ee=require("@lexical/list"),V=require("@lexical/table"),G=require("@lexical/link"),gn=require("@lexical/history"),ot=require("@lexical/html"),ae=require("@lexical/selection"),He=require("@lexical/utils"),hn=require("./index-DF8OhKI4.cjs"),Y=require("./native-spec.cjs"),Q=require("@floating-ui/dom"),Xn=require("@lexical/code-core"),$e=require("./shikiHighlightData-DU78Iupf.cjs");var qe=typeof document<"u"?document.currentScript:null;const _t="bridgerte-media",mn="Loading",kt=(e,t)=>`${e}:${t}`,ue=e=>typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):void 0,Mt=e=>typeof e=="number"&&Number.isFinite(e)?Math.min(Math.max(e,0),100):void 0,Jn=e=>e===20||e===50||e===100,Et=e=>Jn(e)?e:void 0,xt=e=>e==="center"||e==="right"?e:void 0,Qn=e=>e.status==="error"?e.errorMessage??"媒体加载失败":mn,Zn=(e,t)=>!t||e.status===void 0||e.status==="success",Ue=(e,t,n)=>{n&&e.setAttribute(t,n)},Tt=(e,t,n)=>{n!==void 0&&e.setAttribute(t,String(n))};class me extends c.DecoratorNode{constructor(n,r){super(r);Ve(this,"__payload");this.__payload={...n,assetId:n.assetId??kt(n.mediaType,n.url),width:ue(n.width),height:ue(n.height),duration:ue(n.duration),progress:Mt(n.progress),displayWidthPercent:Et(n.displayWidthPercent),align:xt(n.align)},this.__payload.displayWidthPercent===void 0&&delete this.__payload.displayWidthPercent,this.__payload.align===void 0&&delete this.__payload.align}static getType(){return _t}static clone(n){return new me(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{img:()=>({conversion:er,priority:1}),video:()=>({conversion:tr,priority:1})}}static importJSON(n){return pe(n).updateFromJSON(n)}exportJSON(){return{...super.exportJSON(),...this.__payload,type:_t}}getTextContent(){return this.__payload.title??this.__payload.alt??this.__payload.url}isInline(){return!1}getAsset(){const n=this.__payload,r={id:n.assetId??kt(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:ue(n.width??r.__payload.width),height:ue(n.height??r.__payload.height),duration:ue(n.duration??r.__payload.duration),progress:Mt(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")?xt(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"),s=()=>{o.dataset.loadState="loaded"};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",s,{once:!0}),a.addEventListener("error",()=>{o.dataset.loadState="error"},{once:!0}));const i=Zn(r,n);if(r.mediaType==="image"?(i&&a.setAttribute("src",r.url),a.setAttribute("loading","lazy"),Ue(a,"alt",r.alt??r.title)):(i&&a.setAttribute("src",r.url),a.setAttribute("controls","true"),a.setAttribute("preload","metadata"),Ue(a,"poster",r.poster)),Ue(a,"title",r.title),Tt(a,"width",r.width),Tt(a,"height",r.height),n){const g=document.createElement("div"),d=document.createElement("span"),p=document.createElement("span");g.className="bridgerte__media-placeholder",g.setAttribute("aria-hidden","true"),d.className="bridgerte__media-placeholder-icon",d.textContent=r.mediaType==="image"?"IMG":"VIDEO",p.className="bridgerte__media-placeholder-text",p.textContent=Qn(r),g.append(d,p),o.append(g)}if(o.append(a),r.status==="uploading"||r.status==="error"){const g=document.createElement("figcaption");g.className="bridgerte__media-status",g.textContent=r.status==="error"?r.errorMessage??"上传失败":mn,o.append(g)}return o}}const er=e=>{const t=e instanceof HTMLImageElement?e:null;return{node:t!=null&&t.src?pe({mediaType:"image",url:t.src,alt:t.alt,title:t.title,width:t.width,height:t.height,status:"success"}):null}},tr=e=>{const t=e instanceof HTMLVideoElement?e:null;return{node:t!=null&&t.src?pe({mediaType:"video",url:t.src,poster:t.poster,title:t.title,width:t.videoWidth||t.width,height:t.videoHeight||t.height,status:"success"}):null}},pe=e=>c.$applyNodeReplacement(new me(e)),nr=e=>pe({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"}),rr=e=>pe({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"}),pn=e=>e instanceof me,Ce=e=>{const t=n=>{if(pn(n)&&n.getAsset().id===e)return n;if(!c.$isElementNode(n))return null;for(const r of n.getChildren()){const o=t(r);if(o)return o}return null};return t(c.$getRoot())},or=".bridgerte__table-cell",ar="75px",sr="1px solid black",ir="top",lr="start",cr=new Set(["#f2f3f5","rgb(242,243,245)"]),fn=e=>e.trim().toLowerCase().replace(/\s+/g," "),dr=e=>fn(e).replace(/\s*,\s*/g,","),Ee=(e,t,n)=>{fn(e.getPropertyValue(t))===n&&e.removeProperty(t)},ur=(e,t)=>{const n=dr(t.getPropertyValue("background-color"));(e.classList.contains("bridgerte__table-cell--header")||e.tagName.toLowerCase()==="th")&&cr.has(n)&&t.removeProperty("background-color")},gr=e=>{var t;((t=e.getAttribute("style"))==null?void 0:t.trim())===""&&e.removeAttribute("style")},bn=e=>{if(!e||!e.includes("bridgerte__table-cell"))return e;const t=document.createElement("template");return t.innerHTML=e,t.content.querySelectorAll(or).forEach(n=>{const{style:r}=n;Ee(r,"border",sr),Ee(r,"vertical-align",ir),Ee(r,"text-align",lr),Ee(r,"width",ar),ur(n,r),gr(n)}),t.innerHTML},yn={root:{type:"root",version:1,children:[]}};function Qe(e={}){return{html:e.html??"",json:e.json??yn,plainText:e.plainText??"",assets:e.assets??[],version:e.version??se.BRIDGERTE_CONTENT_VERSION}}const hr=e=>e.toJSON(),mr=e=>{var t;return((t=e.root.children)==null?void 0:t.length)===0},pr=e=>e.read(()=>{const t=new Map,n=r=>{c.$isElementNode(r)&&r.getChildren().forEach(o=>{if(pn(o)){const a=o.getAsset();t.set(a.id,a);return}c.$isElementNode(o)&&n(o)})};return n(c.$getRoot()),[...t.values()]}),vn=(e,t)=>{const n=bn(t.read(()=>ot.$generateHtmlFromNodes(t))),r=e.read(()=>c.$getRoot().getTextContent()),o=pr(e);return{html:n,json:hr(e),plainText:r,assets:o,version:se.BRIDGERTE_CONTENT_VERSION}},fr=(e,t)=>{const n=Qe(t);return Cn(e,n),vn(e.getEditorState(),e)},Cn=(e,t)=>{if(t.json!==yn&&!mr(t.json)){const o=t.json;e.setEditorState(e.parseEditorState(o));return}if(!t.html){e.update(()=>{const o=c.$getRoot();o.clear(),o.append(c.$createParagraphNode())},{discrete:!0});return}const r=new DOMParser().parseFromString(bn(t.html),"text/html");e.update(()=>{const o=c.$getRoot(),a=ot.$generateNodesFromDOM(e,r);o.clear(),o.append(...a)},{discrete:!0})},br="bridgerte-divider",wn=e=>(e==null?void 0:e.getType())===br,yr=(e,t,n)=>{const r=c.$getRoot();if(r.getChildrenSize()===0){const o=c.$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()},vr=(e,t)=>{const n=e.getPreviousSibling(),r=e.getNextSibling();e.remove(),yr(n,r,t)},Cr=()=>{const e=c.$getSelection();if(!c.$isNodeSelection(e))return null;const t=e.getNodes();return t.length===1&&wn(t[0])?t[0]:null},wr=e=>e.getKey()==="root"?null:e.getTopLevelElement(),_r=e=>{const t=c.$getSelection();if(!c.$isRangeSelection(t)||!t.isCollapsed())return null;const n=t.anchor,r=n.getNode(),o=wr(r);if(!o||!c.$isElementNode(o))return null;if(c.$isElementNode(r)){const i=r.isEmpty()&&n.offset===0,g=r===o&&n.offset===0,d=r===o&&n.offset===o.getChildrenSize();return i||(e?g:d)?o:null}if(!(r instanceof c.TextNode))return null;const a=e?o.getFirstDescendant():o.getLastDescendant(),s=e?0:r.getTextContentSize();return a===r&&n.offset===s?o:null},kr=e=>{const t=_r(e),n=e?t==null?void 0:t.getPreviousSibling():t==null?void 0:t.getNextSibling();return wn(n)?n:null},Mr=(e,t)=>{const n=o=>{if(t())return!1;const a=Cr()??kr(o);return a?(vr(a,o),!0):!1},r=(o,a)=>{const s=n(a);return s&&o.preventDefault(),s};return[e.registerCommand(c.KEY_BACKSPACE_COMMAND,o=>r(o,!0),c.COMMAND_PRIORITY_HIGH),e.registerCommand(c.KEY_DELETE_COMMAND,o=>r(o,!1),c.COMMAND_PRIORITY_HIGH),e.registerCommand(c.DELETE_CHARACTER_COMMAND,o=>n(o),c.COMMAND_PRIORITY_HIGH)]};class we extends c.DecoratorNode{static getType(){return"bridgerte-divider"}static clone(t){return new we(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:Er,priority:0})}}static importJSON(t){return at().updateFromJSON(t)}exportJSON(){return{...super.exportJSON(),type:we.getType()}}getTextContent(){return`
2
+ `}isInline(){return!1}}const Er=e=>({node:at()}),at=()=>c.$applyNodeReplacement(new we),Nt="bridgerte-mention",st="mention",_n=e=>e.label.startsWith("@")?e.label:`@${e.label}`,xr=e=>{const t=document.createElement("span");return t.className="bridgerte__mention",t.dataset.type=st,t.dataset.id=e.id,t.dataset.value=e.value,t.contentEditable="false",t.textContent=_n(e),e.description&&(t.dataset.description=e.description),t};class ke extends c.TextNode{constructor(n,r=_n(n),o){super(r,o);Ve(this,"__item");this.__item=n}static getType(){return Nt}static clone(n){return new ke(n.__item,n.__text,n.__key)}createDOM(n){const r=super.createDOM(n);return r.className="bridgerte__mention",r.dataset.type=st,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:xr(this.__item)}}static importDOM(){return{span:()=>({conversion:Tr,priority:2})}}static importJSON(n){return it(n).updateFromJSON(n)}exportJSON(){return{...super.exportJSON(),...this.__item,type:Nt}}isTextEntity(){return!0}isToken(){return!0}getMentionItem(){return this.__item}}const Tr=e=>{var a;const t=e instanceof HTMLElement?e:null;if(!t||t.dataset.type!==st)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:it({id:r,label:n,value:o,description:t.dataset.description})}},it=e=>c.$applyNodeReplacement(new ke(e).setMode("token")),St=e=>e instanceof ke,Nr="请输入内容",Sr=()=>{const t=c.$getRoot().getChildren();if(t.length===0)return!0;if(t.length>1)return!1;const n=t[0];return c.$isParagraphNode(n)&&n.getChildrenSize()===0},Lr=({editor:e,contentElement:t})=>{const n=e.getEditorState().read(Sr);t.dataset.empty=String(n)},Rr=({contentElement:e,placeholderElement:t})=>{const n=window.getComputedStyle(e).padding,r=e.style.padding,o=n||r;o&&(t.style.padding=o)},Ir=({editor:e,contentElement:t,isReadonly:n})=>{const r=o=>{n()||t.dataset.empty!=="true"||o.button===0&&(o.preventDefault(),e.focus(()=>{e.update(()=>{c.$getRoot().selectStart()})}))};return t.addEventListener("pointerdown",r),()=>{t.removeEventListener("pointerdown",r)}},Pr=[{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"}],$r=[{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"}],Ar=[{command:"list.ordered",listType:"ordered"},{command:"list.unordered",listType:"unordered"},{command:"list.todo",listType:"todo"}],Br=["media.pickImage","media.pickVideo"],kn=()=>{const e=c.$getSelection();if(!c.$isRangeSelection(e))return null;const t=e.anchor.getNode();return t.getKey()==="root"?t:t.getTopLevelElementOrThrow()},Dr=()=>{const e=kn();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"}},Hr=()=>{const e=kn();if(!e||!("getFormatType"in e))return;const t=e.getFormatType();return t===""?void 0:t},Or=()=>{const e=c.$getSelection();if(!c.$isRangeSelection(e))return null;const t=e.anchor.getNode(),n=ee.$isListNode(t)?t:He.$getNearestNodeOfType(t,ee.ListNode);return n?n.getListType()==="check"?"todo":n.getTag()==="ol"?"ordered":"unordered":null},Fr=e=>{const t=c.$getSelection();if(!c.$isRangeSelection(t))return;const n=ae.$getSelectionStyleValueForProperty(t,e);return n===""?void 0:n},zr=()=>{const e=c.$getSelection();if(!c.$isRangeSelection(e))return!1;const t=e.anchor.getNode(),n=t.getParent();return G.$isLinkNode(t)||G.$isLinkNode(n)},Wr=e=>{const t=c.$getSelection(),n=c.$isRangeSelection(t),r=Dr(),o=Or(),a=Hr(),s=zr(),i=e.readonly||!n,g=Pr.map(w=>({command:w.command,active:n&&t.hasFormat(w.format),disabled:i})),d=$r.map(w=>{const $=Fr(w.property);return{command:w.command,active:$!==void 0,disabled:i,value:$}}),p=Ar.map(w=>({command:w.command,active:o===w.listType,disabled:i})),m=Br.map(w=>({command:w,active:!1,disabled:e.readonly||!e.canUploadMedia}));return[...g,{command:"format.clear",active:!1,disabled:i},...d,{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},...p,{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}]},Vr=(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}),te=(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)}},qr=(e,t)=>{var n;try{(n=e.onChange)==null||n.call(e,t)}catch(r){te(e,"callback.onChange","onChange callback failed.",r)}},Ur=(e,t)=>{var n;try{(n=e.onContentChange)==null||n.call(e,t)}catch(r){te(e,"callback.onContentChange","onContentChange callback failed.",r)}},jr=(e,t)=>{var n;try{(n=e.onCommandStateChange)==null||n.call(e,[...t])}catch(r){te(e,"callback.onCommandStateChange","onCommandStateChange callback failed.",r)}},Kr=e=>{var t;try{(t=e.onFocus)==null||t.call(e)}catch(n){te(e,"callback.onFocus","onFocus callback failed.",n)}},Gr=e=>{var t;try{(t=e.onBlur)==null||t.call(e)}catch(n){te(e,"callback.onBlur","onBlur callback failed.",n)}},Yr=(e,t)=>{var n;try{(n=e.onReady)==null||n.call(e,t)}catch(r){te(e,"callback.onReady","onReady callback failed.",r)}},Xr=({lexicalEditor:e,options:t,isDestroyed:n,canUploadMedia:r,isReadonly:o})=>{let a=!1,s=!1,i=[];const g=new Set,d=()=>{const m=[...i];g.forEach(w=>{try{w(m)}catch($){te(t,"callback.commandStateSubscriber","Command state subscriber failed.",$)}})},p=(m=!0)=>{if(n())return;const w=i;e.getEditorState().read(()=>{i=Wr({canUndo:a,canRedo:s,readonly:o(),canUploadMedia:r()})}),m&&!Vr(w,i)&&(jr(t,i),d())};return{refreshCommandStates:p,getCommandStates(){return p(!1),[...i]},subscribeCommandStateChange(m){return n()?()=>{}:(g.add(m),m([...i]),()=>{g.delete(m)})},setCanUndo(m){a=m,p()},setCanRedo(m){s=m,p()},setHistoryAvailability(m,w){a=m,s=w,p()},destroy(){g.clear()}}},Jr=e=>`upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`,Qr=e=>typeof URL.createObjectURL=="function"?URL.createObjectURL(e):e.name,xe=e=>{typeof URL.revokeObjectURL=="function"&&e.startsWith("blob:")&&URL.revokeObjectURL(e)},Lt=e=>({name:e.name,mimeType:e.type||void 0,size:e.size,data:e}),Zr=e=>typeof DOMException<"u"&&e instanceof DOMException&&e.name==="AbortError",eo=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}),to=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()}),no=(e,t)=>t.startsWith("blob:")?e==="image"?eo(t):to(t):Promise.resolve({}),ro=(e,t)=>({...e,width:e.width??t.width,height:e.height??t.height,duration:e.duration??t.duration}),oo=({container:e,lexicalEditor:t,options:n,isDestroyed:r})=>{const o=new Map;let a=0;const s=(h,f)=>{t.update(()=>{var S;(S=Ce(h))==null||S.updatePayload(f)})},i=h=>{let f=null;return t.update(()=>{const S=Ce(h);if(!S)return;const T=S.getAsset();f={mediaType:T.type,url:T.url,assetId:T.id,status:T.status,progress:T.progress,poster:T.poster,width:T.width,height:T.height,duration:T.duration,mimeType:T.mimeType,size:T.size,displayWidthPercent:T.displayWidthPercent,align:T.align,errorMessage:T.errorMessage},S.remove()}),f},g=(h,f)=>{const S=o.get(h);return(S==null?void 0:S.runId)===f},d=h=>{var f;(f=h.abortController)==null||f.abort()},p=(h,f)=>{const S=o.get(h);return S?(d(S),xe(S.previewUrl),o.delete(h),!0):!1},m=(h,f,S,T)=>{t.update(()=>{const O=pe({mediaType:h,url:T,assetId:S,status:"uploading",progress:0,title:f.name,mimeType:f.type||void 0,size:f.size}),E=c.$createParagraphNode();c.$getSelection()||c.$getRoot().selectEnd(),c.$insertNodes([O,E]),E.selectStart()},{discrete:!0})},w=(h,f,S,T)=>{s(f,{mediaType:h,url:T.url,poster:T.poster,width:T.width,height:T.height,duration:T.duration,mimeType:T.mimeType,size:T.size,status:"success",progress:100,errorMessage:void 0}),xe(S)},$=(h,f,S)=>{var T;Zr(S)||(s(f,{mediaType:h,status:"error",errorMessage:"上传失败"}),(T=n.onUploadError)==null||T.call(n,{assetId:f,type:h,cause:S}))},C=h=>{const f=n.uploadAdapter;if(!f)return;const S=typeof AbortController=="function"?new AbortController:null,T=a+1;a=T,h.runId=T,h.abortController=S,o.set(h.assetId,h);const O={assetId:h.assetId,signal:S==null?void 0:S.signal,onProgress:_=>{!g(h.assetId,T)||r()||s(h.assetId,{mediaType:h.type,status:"uploading",progress:_})}};let E={};const M=no(h.type,h.previewUrl);let I;try{I=h.type==="image"?f.uploadImage(Lt(h.file),O):f.uploadVideo(Lt(h.file),O)}catch(_){g(h.assetId,T)&&$(h.type,h.assetId,_);return}M.then(_=>{E=_,!(r()||!g(h.assetId,T))&&(_.width===void 0&&_.height===void 0||s(h.assetId,{mediaType:h.type,width:_.width,height:_.height,duration:_.duration}))}),I.then(_=>{r()||!g(h.assetId,T)||(w(h.type,h.assetId,h.previewUrl,ro(_,E)),o.delete(h.assetId))}).catch(_=>{r()||!g(h.assetId,T)||$(h.type,h.assetId,_)})},y=(h,f)=>{if(!n.uploadAdapter)return;const S=Jr(h),T=Qr(f),O={assetId:S,type:h,file:f,previewUrl:T,runId:0,abortController:null};m(h,f,S,T),C(O)};return{pickMediaFile:h=>{if(!n.uploadAdapter)return;const f=e.ownerDocument.createElement("input");f.type="file",f.accept=h==="image"?"image/*":"video/*",f.style.display="none",f.addEventListener("change",()=>{var T;const S=(T=f.files)==null?void 0:T[0];f.remove(),S&&y(h,S)},{once:!0}),e.append(f),f.click()},uploadMediaFile:y,removeMedia(h){const f=i(h);!p(h)&&(f!=null&&f.url.startsWith("blob:"))&&xe(f.url)},retryMedia(h){const f=o.get(h);!f||!n.uploadAdapter||(d(f),s(h,{mediaType:f.type,url:f.previewUrl,status:"uploading",progress:0,errorMessage:void 0}),C(f))},destroy(){o.forEach(h=>{d(h),xe(h.previewUrl)}),o.clear()}}},Mn=e=>W.$createCodeNode(e),ao={1:"h1",2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},so={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"},io=e=>({setBlockHeading:d=>{e.update(()=>{const p=c.$getSelection();c.$isRangeSelection(p)&&ae.$setBlocksType(p,()=>ie.$createHeadingNode(ao[d]))})},setParagraphBlock:()=>{e.update(()=>{const d=c.$getSelection();c.$isRangeSelection(d)&&ae.$setBlocksType(d,()=>c.$createParagraphNode())})},setQuoteBlock:()=>{e.update(()=>{const d=c.$getSelection();c.$isRangeSelection(d)&&ae.$setBlocksType(d,()=>ie.$createQuoteNode())})},insertDividerBlock:()=>{e.update(()=>{const d=c.$createParagraphNode();c.$insertNodes([at(),d]),d.selectStart()})},insertCodeBlock:d=>{e.update(()=>{const p=Mn(d),m=c.$createParagraphNode();c.$insertNodes([p,m]),p.selectEnd()})},setSelectedCodeBlockLanguage:d=>{e.update(()=>{const p=c.$getSelection();if(!c.$isRangeSelection(p))return;const m=p.anchor.getNode(),w=m.getKey()==="root"?m:m.getTopLevelElementOrThrow();W.$isCodeNode(w)&&w.setLanguage(d)})},clearContent:()=>{e.update(()=>{const d=c.$getRoot();d.clear(),d.append(c.$createParagraphNode())})},formatAlign:d=>{e.dispatchCommand(c.FORMAT_ELEMENT_COMMAND,d)}}),lo=e=>({setLink:(o,a)=>{e.update(()=>{const s=c.$getSelection(),i=G.formatUrl(o),g=(a==null?void 0:a.trim())||o.trim();if(!(!c.$isRangeSelection(s)||!o.trim())){if(s.isCollapsed()){const d=G.$createLinkNode(i,{rel:"noreferrer noopener",target:"_blank"});d.append(c.$createTextNode(g)),c.$insertNodes([d]);return}G.$toggleLink(i,{rel:"noreferrer noopener",target:"_blank"})}})},unsetLink:()=>{e.update(()=>{G.$toggleLink(null)})},openSelectedLink:()=>{if(typeof window>"u")return;const o=e.getEditorState().read(()=>{const a=c.$getSelection();if(!c.$isRangeSelection(a))return null;const s=a.anchor.getNode(),i=G.$isLinkNode(s)?s:He.$findMatchingParent(s,G.$isLinkNode);return i?{target:i.getTarget()??"_blank",url:i.sanitizeUrl(i.getURL())}:null});o&&window.open(o.url,o.target,"noopener,noreferrer")}}),co=e=>({insertImage:s=>{s.url.trim()&&e.update(()=>{const i=c.$createParagraphNode();c.$insertNodes([nr(s),i]),i.selectStart()})},insertVideo:s=>{s.url.trim()&&e.update(()=>{const i=c.$createParagraphNode();c.$insertNodes([rr(s),i]),i.selectStart()})},resizeMedia:s=>{e.update(()=>{var i;(i=Ce(s.assetId))==null||i.updatePayload({displayWidthPercent:s.widthPercent})})},resetMediaSize:s=>{e.update(()=>{var i;(i=Ce(s))==null||i.updatePayload({displayWidthPercent:void 0})})},alignMedia:s=>{e.update(()=>{var i;(i=Ce(s.assetId))==null||i.updatePayload({align:s.value==="left"?void 0:s.value})})}}),uo=e=>({insertMention:n=>{e.update(()=>{const r=c.$getSelection();c.$isRangeSelection(r)&&c.$insertNodes([it(n),c.$createTextNode(" ")])})}}),go=e=>({clearSelectionFormat:()=>{e.update(()=>{const r=c.$getSelection();c.$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=c.$getSelection();c.$isRangeSelection(a)&&ae.$patchStyleText(a,{[r]:o===""?null:o})})}}),ho=20,Rt=(e,t)=>Number.isFinite(e)&&e>0?Math.min(Math.floor(e),t):1,Te=e=>Number.isFinite(e)&&(e??0)>0?Math.min(Math.floor(e??1),ho):1,Ne=()=>{const e=c.$getSelection();return!c.$isRangeSelection(e)&&!V.$isTableSelection(e)?!1:V.$findCellNode(e.anchor.getNode())!==null},mo=e=>({insertTable:(i,g)=>{const d=Rt(i,se.BRIDGERTE_TABLE_INSERT_MAX_ROWS),p=Rt(g,se.BRIDGERTE_TABLE_INSERT_MAX_COLS);e.dispatchCommand(V.INSERT_TABLE_COMMAND,{rows:String(d),columns:String(p),includeHeaders:{rows:!0,columns:!1}})},insertTableRow:i=>{e.update(()=>{if(!Ne())return;const g=Te(i.count);for(let d=0;d<g;d+=1)V.$insertTableRowAtSelection(i.direction!=="before")})},insertTableColumn:i=>{e.update(()=>{if(!Ne())return;const g=Te(i.count);for(let d=0;d<g;d+=1)V.$insertTableColumnAtSelection(i.direction!=="before")})},deleteTableRow:i=>{e.update(()=>{const g=Te(i.count);for(let d=0;d<g;d+=1){if(!Ne())return;V.$deleteTableRowAtSelection()}})},deleteTableColumn:i=>{e.update(()=>{const g=Te(i.count);for(let d=0;d<g;d+=1){if(!Ne())return;V.$deleteTableColumnAtSelection()}})},deleteTable:()=>{e.update(()=>{const i=c.$getSelection();if(!c.$isRangeSelection(i)&&!V.$isTableSelection(i))return;const g=V.$findTableNode(i.anchor.getNode());if(!g)return;const d=c.$createParagraphNode();g.insertAfter(d),g.remove(),d.selectStart()})}}),po=e=>{const t=mo(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()}}},fo={"format.bold":"bold","format.italic":"italic","format.underline":"underline","format.strike":"strikethrough","format.inlineCode":"code","format.superscript":"superscript","format.subscript":"subscript"},bo={"list.ordered":ee.INSERT_ORDERED_LIST_COMMAND,"list.unordered":ee.INSERT_UNORDERED_LIST_COMMAND,"list.todo":ee.INSERT_CHECK_LIST_COMMAND},yo={"indent.increase":c.INDENT_CONTENT_COMMAND,"indent.decrease":c.OUTDENT_CONTENT_COMMAND,"history.undo":c.UNDO_COMMAND,"history.redo":c.REDO_COMMAND},vo={"format.color":"color","format.backgroundColor":"background-color","format.fontSize":"font-size","format.fontFamily":"font-family","format.lineHeight":"line-height"},Co=({container:e,lexicalEditor:t,options:n,isDestroyed:r,isReadonly:o,reportError:a})=>{const s=oo({container:e,lexicalEditor:t,options:n,isDestroyed:r}),i=io(t),g=lo(t),d=co(t),p=uo(t),m=go(t),w=po(t),$=()=>{var x,h;if(document.fullscreenElement){(x=document.exitFullscreen)==null||x.call(document).catch(f=>{a(n,"fullscreen.exit","Exit fullscreen failed.",f)});return}(h=e.requestFullscreen)==null||h.call(e).catch(f=>{a(n,"fullscreen.enter","Enter fullscreen failed.",f)})},C=(y=>{if(r()||o())return;const x=fo[y.type];if(x){t.dispatchCommand(c.FORMAT_TEXT_COMMAND,x);return}const h=bo[y.type];if(h){t.dispatchCommand(h,void 0);return}const f=yo[y.type];if(f){t.dispatchCommand(f,void 0);return}const S=vo[y.type];if(S&&"value"in y){m.setSelectionStyle(S,y.value);return}switch(y.type){case"format.clear":m.clearSelectionFormat();return;case"block.heading":i.setBlockHeading(y.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(y.language);return;case"block.setCodeLanguage":i.setSelectedCodeBlockLanguage(y.language);return;case"align":i.formatAlign(y.value);return;case"link.set":g.setLink(y.href,y.text);return;case"link.unset":g.unsetLink();return;case"link.open":g.openSelectedLink();return;case"mention.insert":p.insertMention(y.item);return;case"content.clear":i.clearContent();return;case"table.insert":w.insertTable(y);return;case"table.insertRow":w.insertTableRow(y);return;case"table.insertColumn":w.insertTableColumn(y);return;case"table.deleteRow":w.deleteTableRow(y);return;case"table.deleteColumn":w.deleteTableColumn(y);return;case"table.delete":w.deleteTable();return;case"media.insertImage":d.insertImage(y);return;case"media.insertVideo":d.insertVideo(y);return;case"media.pickImage":s.pickMediaFile("image");return;case"media.pickVideo":s.pickMediaFile("video");return;case"media.view":return;case"media.retry":s.retryMedia(y.assetId);return;case"media.remove":s.removeMedia(y.assetId);return;case"media.resize":d.resizeMedia(y);return;case"media.align":d.alignMedia(y);return;case"media.resetSize":d.resetMediaSize(y.assetId);return;case"fullscreen.toggle":$();return}});return C.uploadMediaFile=s.uploadMediaFile,C.destroy=()=>{s.destroy()},C},wo=300,_o="BridgeRTE",It=({editor:e,overflowLength:t})=>{if(t<=0)return!1;const n=c.$getSelection();if(c.$isRangeSelection(n))return ae.$trimTextContentFromAnchor(e,n.anchor,t),!0;c.$getRoot().selectEnd();const r=c.$getSelection();return c.$isRangeSelection(r)?(ae.$trimTextContentFromAnchor(e,r.anchor,t),!0):!1},ko=({lexicalEditor:e,options:t,isDestroyed:n,setContent:r,syncPlaceholder:o})=>{let a=0,s=null;const i=()=>{s&&(clearTimeout(s),s=null)},g=h=>{if(n())return;const f=vn(e.getEditorState(),e);r(f),h&&qr(t,f)},d=h=>{const f=t.maxLength!==void 0&&t.maxLength>=0?t.maxLength:void 0;return{dirty:!0,plainTextLength:h,version:se.BRIDGERTE_CONTENT_VERSION,maxLength:f,isOverMaxLength:f===void 0?!1:h>f}},p=h=>{Ur(t,d(h))},m=()=>{t.onChange&&(i(),s=setTimeout(()=>{g(!0)},De.BRIDGE_CONTENT_CHANGE_DEBOUNCE_MS))},w=h=>{if(a>0){a-=1;return}p(h),m()},$=()=>e.getEditorState().read(()=>c.$getRoot().getTextContent().length),C=h=>t.maxLength===void 0||t.maxLength<0?0:h-t.maxLength,y=h=>h<=0?!1:(e.update(()=>{It({editor:e,overflowLength:h})},{discrete:!0}),!0);return{clearContentChangeTimer:i,enforceCurrentMaxLength:()=>{t.maxLength===void 0||t.maxLength<0||e.update(()=>{const h=c.$getRoot().getTextContent().length-(t.maxLength??0);It({editor:e,overflowLength:h})},{discrete:!0})},syncContent:g,suppressNextChange(){a+=1},syncAfterEditorUpdate(){const h=$();if(y(C(h))){o();return}o(),w(h)}}},Oe="data-language",En="纯文本",Mo="language",Eo=new Set(["plain","plaintext","text","txt"]),xo=[Oe,"data-lang","data-code-language","data-highlight-language","lang","language"],To=/^[a-z][a-z0-9_+#.-]{0,31}$/i,No=/^(?:language|lang)-([a-z][a-z0-9_+#.-]{0,31})$/i,So=/^brush:\s*([a-z][a-z0-9_+#.-]{0,31})$/i,Lo=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"]]),Ro=e=>e.type==="select",Pt=e=>e.find(t=>t.name===Mo&&Ro(t)),de=e=>{const t=e==null?void 0:e.trim().toLowerCase();return!t||!To.test(t)?null:Eo.has(t)?"":Lo.get(t)??t},Io=e=>{for(const t of xo){const n=de(e.getAttribute(t));if(n)return n}return null},Po=e=>{const[,t]=e.match(So)??[],n=de(t);if(n)return n;for(const r of e.split(/\s+/)){const[,o]=r.match(No)??[],a=de(o);if(a)return a}return null},xn=(e=Y.codeBlockLanguagePanel)=>{var t,n;return((t=Pt(e.fields))==null?void 0:t.options)??((n=Pt(Y.codeBlockLanguagePanel.fields))==null?void 0:n.options)??[{label:En,value:""}]},Tn=(e,t)=>{var n,r,o;return((n=e.find(a=>a.value===t))==null?void 0:n.label)??((r=e.find(a=>de(a.value)===de(t)))==null?void 0:r.label)??((o=e[0])==null?void 0:o.label)??En};xn();const $o=e=>{[...e.querySelectorAll("pre,code")].forEach(t=>{const n=Io(t)??Po(t.className),r=t.tagName==="PRE"?t:t.closest("pre");r&&n&&r.setAttribute(Oe,n)})},Ao=e=>{e.querySelectorAll("pre").forEach(t=>{[...t.children].forEach(r=>{r.tagName==="CODE"&&r.replaceWith(...r.childNodes)})})},Bo=(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(Oe);s&&!o.getLanguage()&&o.setLanguage(s)})},Do=e=>(()=>{}),Fe=()=>{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}},Z=12,Ho=6,Ae=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n)),Oo=(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})}),Fo=(e,t)=>{const n=e.getBoundingClientRect(),r=Fe(),o=t.getBoundingClientRect(),a=o.left+Z,s=o.top+Z,i=r.left+Z,g=r.top+Z,d=r.left+r.width-n.width-Z,p=r.top+r.height-n.height-Z;return{left:Ae(a,i,d),top:Ae(s,g,p),viewportHeight:r.height}},zo=(e,t,n)=>{const r=e.getBoundingClientRect(),o=Fe(),a=o.left+Z,s=o.top+Z,i=o.left+o.width-r.width-Z,g=o.top+o.height-r.height-Z;return{left:Ae(t,a,i),top:Ae(n,s,g),viewportHeight:o.height}},lt=e=>{var d,p;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,w,$)=>{n.style.left=`${m}px`,n.style.top=`${w}px`,n.style.setProperty("--bridgerte-dialog-visible-height",`${$}px`)},i=async()=>{if(!o){const $=Fo(n,e.root);s($.left,$.top,$.viewportHeight);return}const m=await Q.computePosition(Oo(e.root,o),n,{placement:"bottom-start",strategy:"fixed",platform:Q.platform,middleware:[Q.offset(Ho),Q.flip(),Q.shift({padding:Z})]}),w=zo(n,m.x,m.y);s(w.left,w.top,w.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()}),(d=window.visualViewport)==null||d.addEventListener("resize",i),(p=window.visualViewport)==null||p.addEventListener("scroll",i),window.addEventListener("resize",i),{element:n,content:r,open:g,close:a,destroy(){var m,w;a(),(m=window.visualViewport)==null||m.removeEventListener("resize",i),(w=window.visualViewport)==null||w.removeEventListener("scroll",i),window.removeEventListener("resize",i),t.remove(),n.remove()}}},Be=e=>typeof requestAnimationFrame=="function"?requestAnimationFrame(e):window.setTimeout(e,0),ct=e=>{if(typeof cancelAnimationFrame=="function"){cancelAnimationFrame(e);return}window.clearTimeout(e)},X=(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)}},dt=e=>{const t=o=>{const a=e.getBlockFromTarget(o.target);if(a){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)}}},Wo=(e,t,n)=>{e.update(t,{tag:c.SKIP_SCROLL_INTO_VIEW_TAG,onUpdate:n})},$t="language",Vo="bridgerte-code-block-language",At=8,qo=".bridgerte__code-block-controls",Ie=".bridgerte__code-block-control-button";let Bt=0;const Uo=()=>(Bt+=1,`${Vo}-${Bt}`),jo=(e,t,n)=>{var o;const r=e.querySelector(".bridgerte__code-block-control-label");e.dataset.language=n??"",(o=e.querySelector(Ie))==null||o.setAttribute("data-language",n??""),r&&(r.textContent=Tn(t,n))},Ko=(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=Tn(e,t),a.className="bridgerte__code-block-control-arrow",r.append(o,a),n.append(r),n},Go=e=>{const t=document.createElement("div"),n=e.root.querySelector(".bridgerte__content")??e.root,r=hn.resolvePayloadPanelSchema(e.languagePanel??Y.codeBlockLanguagePanel,e.payloadPanelConfig),o=xn(r);let a=null,s=null,i=null,g=null,d=null,p=null;const m=()=>{i??(i=Do())},w=()=>{a==null||a.close()},$=(D,B)=>{e.isReadonly()||Wo(e.editor,()=>{const v=c.$getNodeByKey(D);W.$isCodeNode(v)&&v.setLanguage(B)})},C=(D,B)=>{Be(()=>{$(D,B)})},y=(D,B,v)=>{var u;return((u=e.onRequest)==null?void 0:u.call(e,{id:Uo(),readonly:e.isReadonly(),menuId:"code-block-language",command:{type:"block.setCodeLanguage",language:v},panel:r,anchorRect:{x:B.left,y:B.top,width:B.width,height:B.height},currentValues:{[$t]:v},submit:k=>{w(),C(D,k[$t]??"")},cancel:w}))===!0},x=(D,B)=>{const v=e.root.getBoundingClientRect(),u=B.getBoundingClientRect(),k=u.bottom<v.top||u.top>v.bottom;D.hidden=k;const l=Math.max(8,v.width-D.offsetWidth-8),b=Math.min(Math.max(u.left-v.left+At,8),l),N=Math.max(8,u.top-v.top-D.offsetHeight-At);D.style.transform=`translate(${b}px, ${N}px)`},h=()=>{d&&(p==null||p(),p=null,d.remove(),d=null)},f=D=>{const B=e.editor.getElementByKey(D);if(!B){g===D&&(g=null,h());return}m(),B.dataset.lexicalKey=D;const v=B.getAttribute("data-language");if(d){jo(d,o,v),x(d,B);return}const u=Ko(o,v);p=X(u,{targetSelector:Ie}),u.dataset.lexicalKey=D,d=u,t.append(u),x(u,B)},S=D=>{const B=D.dataset.lexicalKey;!B||g===B||(g!==null&&(w(),h()),g=B,f(B))},T=()=>{g!==null&&(g=null,w(),h())},O=D=>D instanceof HTMLElement?D.closest(".bridgerte__code-block"):null,E=dt({root:e.root,content:n,getBlockFromTarget:O,activateBlock:S,clearBlock:T}),M=(D,B)=>{const v=D.getBoundingClientRect(),u=D.dataset.language??"";if(y(B,v,u))return;if(e.isReadonly()){w();return}a||(a=lt({root:e.root,className:"bridgerte__code-block-menu",onBackdropClick:w}));const k=document.createElement("div");a.content.replaceChildren(),a.element.style.minWidth="180px",k.className="bridgerte__code-block-menu-list",o.forEach(l=>{const b=document.createElement("button");b.type="button",b.className="bridgerte__menu-item bridgerte__code-block-menu-item",b.textContent=l.label,X(b),b.addEventListener("pointerdown",N=>{N.preventDefault()}),b.addEventListener("click",()=>{w(),C(B,l.value)}),k.append(b)}),a.content.append(k),a.open({x:v.left,y:v.top,width:180,height:v.height})},I=D=>{const B=D.target;if(!(B instanceof HTMLElement))return;const v=B.closest(Ie);if(!v)return;const u=v.closest(qo);if(!u)return;const k=u.dataset.lexicalKey;k&&(D.preventDefault(),D.stopPropagation(),M(u,k))},_=D=>{const B=D.target;B instanceof HTMLElement&&B.closest(Ie)&&D.preventDefault()},L=D=>{const B=D.target;if(!(B instanceof HTMLElement))return;if(!B.closest(".bridgerte__code-block")){w();return}const v=B.closest(".bridgerte__code-block");if(!v||v.textContent)return;const u=v.dataset.lexicalKey;u&&(e.editor.update(()=>{const k=c.$getNodeByKey(u);W.$isCodeNode(k)&&k.selectEnd()}),e.editor.focus())},A=()=>{s===null&&(s=Be(()=>{s=null,g!==null&&f(g)}))};t.className="bridgerte__code-block-controls-layer",e.root.append(t);const q=e.editor.registerMutationListener(W.CodeNode,D=>{D.forEach((B,v)=>{if(B==="destroyed"){g===v&&T();return}const u=e.editor.getElementByKey(v);u&&(u.dataset.lexicalKey=v),g===v&&d&&f(v)})}),K=e.editor.registerUpdateListener(A);return t.addEventListener("pointerdown",_),t.addEventListener("click",I),n.addEventListener("pointerdown",L),n.addEventListener("scroll",A,{passive:!0}),window.addEventListener("resize",A),{destroy(){E.destroy(),q(),K(),i==null||i(),i=null,s!==null&&(ct(s),s=null),t.removeEventListener("pointerdown",_),t.removeEventListener("click",I),n.removeEventListener("pointerdown",L),n.removeEventListener("scroll",A),window.removeEventListener("resize",A),h(),t.remove(),a==null||a.destroy(),a=null}}},ze=(e,t={})=>e.map(n=>{var a;const r=(a=t.menuLabels)==null?void 0:a[n.id],o=n.payloadPanel?hn.resolvePayloadPanelSchema(n.payloadPanel,t.payloadPanelConfig):void 0;return{...n,...r===void 0?{}:{label:r},...o===void 0?{}:{payloadPanel:o}}}),Nn=(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)}},ut=(e,t)=>{const n=t.find(o=>Y.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}},Sn=(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)}),Yo=e=>e.flatMap(t=>t.type==="button"?[t]:t.type==="group"?t.items:[]),gt=(e,t)=>{const n=typeof t=="string"?t:t.id;return Yo(e).find(r=>r.item.id===n)},Xo=()=>{var e;return((e=window.matchMedia)==null?void 0:e.call(window,"(hover: hover) and (pointer: fine)").matches)===!0},Dt=24,Ht=4,Jo=960,Qo=16/9,Zo=e=>{window.open(e,"_blank","noopener,noreferrer")},ea=e=>{if(!(e.width===void 0||e.height===void 0))return e.width>0&&e.height>0?e.width/e.height:void 0},ta=e=>e instanceof HTMLImageElement?{width:e.naturalWidth||void 0,height:e.naturalHeight||void 0}:e instanceof HTMLVideoElement?{width:e.videoWidth||void 0,height:e.videoHeight||void 0}:{},Ot=(e,t)=>{const n=ta(t.mediaElement);return{...e,width:n.width??e.width,height:n.height??e.height}},na=e=>{const t=Fe(),n=Math.max(1,t.width-Dt-Ht*2),r=Math.max(1,t.height-Dt-Ht*2),o=ea(e)??Qo,a=e.width??Jo,s=e.height??a/o,i=Math.min(n/a,r/s,1);return{width:Math.max(1,Math.round(a*i)),height:Math.max(1,Math.round(s*i))}},ra=e=>{const t=e.mediaType==="image"?document.createElement("img"):document.createElement("video");return t.className="bridgerte__media-viewer-element",t.setAttribute("src",e.url),e.title&&t.setAttribute("title",e.title),e.width!==void 0&&t.setAttribute("width",String(e.width)),e.height!==void 0&&t.setAttribute("height",String(e.height)),t instanceof HTMLImageElement?t.setAttribute("alt",e.alt??e.title??""):(t.controls=!0,t.preload="metadata",e.poster&&t.setAttribute("poster",e.poster)),t},oa=e=>{const t=document.createElement("div"),n=ra(e);return t.className="bridgerte__media-viewer",t.append(n),{content:t,previewElement:n}},aa=e=>{let t=null,n=null,r={},o=!1,a=null;const s=e.openUrlFallback??Zo,i=()=>{if(!t||!n)return;const y=Ot(n,r),x=na(y);t.element.style.setProperty("--bridgerte-media-viewer-width",`${x.width}px`),t.element.style.setProperty("--bridgerte-media-viewer-height",`${x.height}px`)},g=()=>{var y;o||(window.addEventListener("resize",i),(y=window.visualViewport)==null||y.addEventListener("resize",i),o=!0)},d=()=>{var y;o&&(window.removeEventListener("resize",i),(y=window.visualViewport)==null||y.removeEventListener("resize",i),o=!1)},p=()=>{a==null||a(),a=null},m=y=>{p();const x=y instanceof HTMLImageElement?"load":"loadedmetadata",h=()=>{r={mediaElement:y},i()};y.addEventListener(x,h,{once:!0}),a=()=>{y.removeEventListener(x,h)},(y instanceof HTMLImageElement&&y.complete||y instanceof HTMLVideoElement&&y.videoWidth>0&&y.videoHeight>0)&&h()},w=()=>{p(),d(),n=null,r={},t==null||t.close(),t==null||t.content.replaceChildren()},$=(y,x)=>{t||(t=lt({root:e.root,className:"bridgerte__media-viewer-dialog",onBackdropClick:w}));const h=Ot(y,x),{content:f,previewElement:S}=oa(h);n=y,r=x,i(),m(S),g(),t.content.replaceChildren(f),t.open()},C=(y,x)=>{if(!(x!=null&&x.requestFullscreen)){s(y.url);return}x.requestFullscreen().catch(()=>{s(y.url)})};return{view(y,x){if(y.url){if(Xo()){$(y,{mediaElement:x});return}C(y,x)}},close:w,destroy(){p(),d(),n=null,r={},t==null||t.destroy(),t=null}}},_e=["media-resize-20","media-resize-50","media-resize-100"],sa=["media-view","|","media-align-left","media-align-center","media-align-right","|",..._e,"|","media-remove"],ia=["media-retry","|","media-remove"],la=[{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"}],Ln=e=>_e.includes(e),ca=e=>typeof e=="object"&&Array.isArray(e.menuKeys),da=e=>new Set(e.flatMap(t=>t==="|"?[]:typeof t=="string"?[t]:ca(t)?[t.key,...t.menuKeys]:[])),je=e=>typeof e=="string"&&Ln(e),ua=e=>{const t=e.findIndex(r=>r==="media-remove"),n=t===-1?e.length:t;return[...e.slice(0,n),"|",..._e,"|",...e.slice(n)]},ga=e=>{const t=da(e);if(_e.filter(o=>!t.has(o)).length===0)return e;const r=e.findIndex(je);return r===-1?ua(e):[...e.slice(0,r).filter(o=>!je(o)),..._e,...e.slice(r+1).filter(o=>!je(o))]},ha=e=>{var r;const t=(e==null?void 0:e.toolbarKeys)??sa;return{...e,toolbarKeys:ga(t),excludeKeys:(r=e==null?void 0:e.excludeKeys)==null?void 0:r.filter(o=>!Ln(o))}},ma=(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,In=(e,t={})=>{const n=ze(la,{menuLabels:t.menuLabels}),r=e==="error"?{toolbarKeys:ia}:ha(t.config);return Y.resolveToolbarMenu(r,n)},be="bridgerte__media-controls-button",pa=(e,t=!1)=>{const n=document.createElement("button");return n.type="button",n.className=be,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},Pn=e=>e.flatMap(t=>t.type==="button"?[t.item]:t.type==="group"?t.items:[]),fa=(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(pa(a,Rn(a,n,r)))})},ba=(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=Pn(t.controlItems).map(r=>r.id).join("|"),t.controlItems.forEach(r=>{fa(n,r,t.activeWidthPercent,t.activeAlign)}),n},ya=(e,t,n)=>{const r=e.dataset.status??"success",o=Number(e.dataset.displayWidthPercent??t),a=e.dataset.align??"left",s=In(r,{config:n.mediaControlsConfig,menuLabels:n.menuLabels});return{status:r,activeWidthPercent:o,activeAlign:a,controlItems:s,displayItems:Sn(s,i=>({active:Rn(i,o,a),disabled:i.id!=="media-view"&&n.isReadonly()}))}},ge=8,va=e=>e.querySelector(".bridgerte__content")??e,Ca=e=>e instanceof Element?e.closest(".bridgerte__media"):null,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},zt=e=>e.querySelector(".bridgerte__media-element"),Wt=(e,t)=>{const n=(t==null?void 0:t.getAttribute("src"))??void 0;if(!n)return null;const r=(t==null?void 0:t.getAttribute("title"))??void 0,o=t instanceof HTMLImageElement&&t.alt||void 0,a=t instanceof HTMLVideoElement?t.getAttribute("poster")??void 0:void 0,s=Ft(t,"width"),i=Ft(t,"height");return{mediaType:e.dataset.mediaType==="video"?"video":"image",url:n,title:r,alt:o,poster:a,width:s,height:i}},wa=e=>{const t=document.createElement("div"),n=va(e.root),r=aa({root:e.root}),o=new Map,a=new Map,s=new Map,i=new Map;let g=null,d=0,p=null,m=!1,w=null;const $=l=>{var N;const b=o.get(l);b&&((N=a.get(b))==null||N(),a.delete(b),b.remove(),o.delete(l))},C=l=>{const b=i.get(l);b&&(i.delete(l),b.dismissListeners.forEach(N=>{N()}),b.dismissListeners.clear())},y=l=>{$(l),C(l),w===l&&(w=null)},x=(l,b)=>b.dataset.status==="error"||w===l,h=(l,b)=>{const N=e.root.getBoundingClientRect(),H=b.getBoundingClientRect(),R=H.bottom<N.top||H.top>N.bottom,P=Math.max(ge,N.width-l.offsetWidth-ge),F=Math.min(Math.max(H.left-N.left+ge,ge),P),z=Math.max(ge,H.top-N.top-l.offsetHeight-ge);l.hidden=R,l.style.transform=`translate(${F}px, ${z}px)`},f=l=>{const b=l.getBoundingClientRect();return{x:b.left,y:b.top,width:b.width,height:b.height}},S=(l,b)=>{const N=ma(l,b);N&&e.executeCommand(N)},T=l=>{const b=zt(l),N=Wt(l,b);N&&r.view(N,b??void 0)},O=(l,b,N)=>{if(l.id==="media-view"||l.command.type==="media.view"){T(N);return}S(l,b)},E=(l,b,N)=>{if(!e.onMediaControlsRequest)return C(l),!1;const H=b.dataset.assetId;if(!H)return C(l),!1;const R=zt(b),P=Wt(b,R),F=f(b),z=`bridgerte-media-controls-${d+=1}`,J=N.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 fe=j.items.map(Me=>Me.item.id).join(",");return`group:${j.key}:${fe}`}).join("|"),ne=[H,b.dataset.mediaType??"image",N.status,N.activeWidthPercent,N.activeAlign,(P==null?void 0:P.url)??"",(P==null?void 0:P.title)??"",(P==null?void 0:P.alt)??"",(P==null?void 0:P.poster)??"",(P==null?void 0:P.width)??"",(P==null?void 0:P.height)??"",J,Math.round(F.x),Math.round(F.y),Math.round(F.width),Math.round(F.height)].join("|"),U=i.get(l);if((U==null?void 0:U.signature)===ne)return $(l),!0;const re=new Set;return e.onMediaControlsRequest({id:z,assetId:H,mediaType:b.dataset.mediaType==="video"?"video":"image",status:N.status,displayWidthPercent:N.activeWidthPercent,align:N.activeAlign,items:N.displayItems,readonly:e.isReadonly(),anchorRect:F,url:P==null?void 0:P.url,title:P==null?void 0:P.title,alt:P==null?void 0:P.alt,poster:P==null?void 0:P.poster,width:P==null?void 0:P.width,height:P==null?void 0:P.height,subscribeDismiss:j=>(re.add(j),()=>{re.delete(j)}),submit:j=>{var Me;if(((Me=i.get(l))==null?void 0:Me.id)!==z)return;const fe=gt(N.displayItems,j);!fe||fe.disabled||O(fe.item,H,b)},cancel:()=>{var j;((j=i.get(l))==null?void 0:j.id)===z&&C(l)}})===!0?(C(l),i.set(l,{id:z,signature:ne,dismissListeners:re}),$(l),!0):(C(l),!1)},M=l=>{const b=e.editor.getElementByKey(l);if(!b){y(l);return}b.dataset.lexicalKey=l,s.set(b,l);const N=o.get(l);if(!x(l,b)){y(l);return}const H=ya(b,e.defaultWidthPercent,e);if(E(l,b,H))return;if(N){const F=b.dataset.status==="error",z=N.querySelector('[data-action="retry"]')!==null,J=b.dataset.displayWidthPercent??"",ne=b.dataset.align??"";if(F===z&&N.dataset.displayWidthPercent===J&&N.dataset.align===ne){h(N,b);return}$(l),C(l)}C(l);const R=ba(b,H),P=X(R,{targetSelector:`.${be}`});R.dataset.lexicalKey=l,R.dataset.assetId=b.dataset.assetId,o.set(l,R),a.set(R,P),t.append(R),h(R,b)},I=()=>{g=null,s.forEach((l,b)=>{e.root.contains(b)||(s.delete(b),y(l))}),e.root.querySelectorAll(".bridgerte__media").forEach(l=>{const b=l.dataset.lexicalKey;b&&(s.set(l,b),M(b))}),o.forEach((l,b)=>{M(b)}),w!==null&&M(w)},_=()=>{g===null&&(g=Be(I))},L=(l,b)=>{const N=b.dataset.assetId,H=b.dataset.lexicalKey,R=H?e.editor.getElementByKey(H):null,P=Pn(In(b.dataset.status,{config:e.mediaControlsConfig,menuLabels:e.menuLabels})).find(F=>F.id===l.dataset.menuItemId);!N||!P||!R||O(P,N,R)},A=l=>{if(!l){const H=w;w=null,H!==null&&M(H);return}const b=l.dataset.lexicalKey?l.dataset.lexicalKey:s.get(l)??null;if(!b||w===b)return;const N=w;w=b,N!==null&&M(N),M(b)},q=l=>{const b=l.target;if(!(b instanceof HTMLElement))return;const N=b.closest(`.${be}`);N&&(l.preventDefault(),p=l.pointerType==="mouse"?null:N)},K=l=>{if(l.pointerType==="mouse"||!p)return;const b=l.target,N=b instanceof HTMLElement?b.closest(".bridgerte__media-controls"):null,H=b instanceof HTMLElement?b.closest(`.${be}`):null;H===p&&N&&(l.preventDefault(),l.stopPropagation(),L(H,N),m=!0),p=null},D=()=>{p=null},B=l=>{if(m){m=!1,l.preventDefault(),l.stopPropagation();return}const b=l.target;if(!(b instanceof HTMLElement))return;const N=b.closest(`.${be}`),H=b.closest(".bridgerte__media-controls");!N||!H||(l.preventDefault(),l.stopPropagation(),L(N,H))},v=e.editor.registerMutationListener(me,l=>{l.forEach((b,N)=>{if(b==="destroyed"){y(N);return}M(N)})}),u=e.editor.registerUpdateListener(_),k=dt({root:e.root,content:n,getBlockFromTarget:Ca,activateBlock:A,clearBlock:()=>A(null)});return t.className="bridgerte__media-controls-layer",e.root.append(t),t.addEventListener("pointerdown",q),t.addEventListener("pointerup",K),t.addEventListener("pointercancel",D),t.addEventListener("click",B),n.addEventListener("scroll",_,{passive:!0}),window.addEventListener("resize",_),{destroy(){v(),u(),g!==null&&(ct(g),g=null),t.removeEventListener("pointerdown",q),t.removeEventListener("pointerup",K),t.removeEventListener("pointercancel",D),t.removeEventListener("click",B),k.destroy(),n.removeEventListener("scroll",_),window.removeEventListener("resize",_),o.forEach(l=>{var b;(b=a.get(l))==null||b(),l.remove()}),o.clear(),a.clear(),Array.from(i.keys()).forEach(C),s.clear(),r.destroy(),t.remove()}}},_a=["width","height"],oe=(e,t)=>{var r;const n=(r=e[t])==null?void 0:r.trim();return n||void 0},Ze=(e,t)=>{const n=Number.parseInt(e[t]??"",10);return Number.isFinite(n)&&n>0?n:void 0},Vt=(e,t)=>_a.reduce((n,r)=>{const o=Ze(t,r);return o===void 0?n:{...n,[r]:o}},e),ka=(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=Ze(t,"rows"),r=Ze(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?Vt({...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?Vt({...e,url:n,poster:oe(t,"poster"),title:oe(t,"title")},t):null}return e},le=e=>Math.min(Math.max(Math.round(e),0),255),et=({r:e,g:t,b:n})=>`#${[e,t,n].map(r=>le(r).toString(16).padStart(2,"0")).join("")}`,$n=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)}},Ma=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:le(Number(t[1])),g:le(Number(t[2])),b:le(Number(t[3]))}:null},Ke=e=>{const t=$n(e)??Ma(e);return t?et(t):null},An=e=>Math.min(Math.max(e,0),1),Ea=({r:e,g:t,b:n})=>{const r=le(e)/255,o=le(t)/255,a=le(n)/255,s=Math.max(r,o,a),i=Math.min(r,o,a),g=s-i;let d=0;return g!==0&&(s===r?d=60*((o-a)/g%6):s===o?d=60*((a-r)/g+2):d=60*((r-o)/g+4)),{h:d<0?d+360:d,s:s===0?0:g/s,v:s}},qt=({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}},xa=({h:e,s:t})=>{const n=e*Math.PI/180,r=An(t)*50;return{x:50+Math.cos(n)*r,y:50+Math.sin(n)*r}},Ut=(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:An(i/(n.width/2)),v:1}},Ta=["#000000","#ffffff"],Na=e=>{var t;return(t=e.options)!=null&&t.length?e.options:Ta.map(n=>({label:n,value:n}))},Bn=()=>{const e=document.createElement("section");return e.className="bridgerte__payload-panel-field",e},Sa=(e,t,n)=>{const r=Bn(),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",X(s),s.addEventListener("pointerdown",i=>{i.preventDefault()}),s.addEventListener("click",()=>{n({...t,[e.name]:a.value})}),o.append(s)}),r.append(o),r},La=(e,t,n)=>{const r=Bn(),o=document.createElement("div"),a=document.createElement("div"),s=document.createElement("span"),i=document.createElement("div"),g=document.createElement("div"),d=Na(e),p=d.length===2;let m={h:0,s:0,v:1},w=null;const $=h=>{const f=Ke(h);return!!(f&&d.some(S=>Ke(S.value)===f))},C=(h,f=!0)=>{const S=Ke(h);if(!S)return;t[e.name]=S,g.style.background=S,m=Ea($n(S)??{r:255,g:255,b:255});const T=xa(m);a.dataset.active=f?"true":"false",g.dataset.empty="false",f&&(s.style.left=`${T.x}%`,s.style.top=`${T.y}%`)},y=()=>{const h=t[e.name];h&&n({...t,[e.name]:h})};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=p?"sides":"grid",g.className="bridgerte__payload-panel-color-preview",g.dataset.empty="true",a.append(s),d.forEach(h=>{const f=document.createElement("button"),S=h.value;f.type="button",f.className="bridgerte__payload-panel-color-swatch",f.dataset.value=S,f.style.background=S,f.setAttribute("aria-label",`选择颜色 ${h.label}`),X(f),f.addEventListener("pointerdown",T=>{T.preventDefault()}),f.addEventListener("click",()=>{C(S,!1),y()}),i.append(f)}),a.addEventListener("pointerdown",h=>{w=h.pointerId,a.setPointerCapture(h.pointerId),m=Ut(h,a),C(et(qt(m))),h.preventDefault()}),a.addEventListener("pointermove",h=>{w===h.pointerId&&(m=Ut(h,a),C(et(qt(m))))}),a.addEventListener("pointerup",h=>{w===h.pointerId&&(w=null,a.releasePointerCapture(h.pointerId),y())}),a.addEventListener("pointercancel",h=>{w===h.pointerId&&(w=null,a.releasePointerCapture(h.pointerId))});const x=t[e.name];return x&&C(x,!(p&&$(x))),o.append(a,i),r.append(o,g),r},Ra=(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},Ia=(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},Pa=({field:e,values:t,onSubmit:n})=>e.type==="color"?La(e,t,n):e.type==="text"?Ra(e,t,n):e.type==="number"?Ia(e,t,n):Sa(e,t,n),$a=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)??""},Aa=(e,t)=>(t==null?void 0:t[e.name])??(e.type==="color"?"":$a(e)),jt=e=>e.some(t=>t.type==="text"||t.type==="number"),Ba=e=>{const t=e.querySelector(".bridgerte__payload-panel-text-input");queueMicrotask(()=>{t==null||t.focus(),t==null||t.select()})},Da=(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}`),X(s),s.addEventListener("pointerdown",i=>{i.preventDefault()}),s.addEventListener("click",()=>{t(a)}),r.append(s)}return r},Ha=e=>e==="font-size"||e==="font-family"||e==="line-height"?"180px":"220px",Oa=3,Fa=3,za=10,Dn=10,Wa=16,Va=2,qa=24,Ua=()=>{var e;return typeof window<"u"&&((e=window.matchMedia)==null?void 0:e.call(window,"(hover: hover) and (pointer: fine)").matches)===!0},ye=(e,t)=>{const n=Number.parseInt(e??"",10);return Number.isFinite(n)?Math.min(Math.max(n,t.min),t.max):t.defaultValue},ja=(e,t)=>e.type==="number"&&e.name===t,Kt=(e,t)=>typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):t,Gt=(e,t,n,r)=>{const o=e.find(p=>ja(p,t)),a=Kt(o==null?void 0:o.min,1),s=Kt(o==null?void 0:o.max,n),i=Math.max(a,s),g=Math.min(Math.max(r,a),i),d=ye(o==null?void 0:o.defaultValue,{min:a,max:i,defaultValue:g});return{min:a,max:i,defaultValue:d}},Hn=e=>({rows:Gt(e,"rows",se.BRIDGERTE_TABLE_INSERT_MAX_ROWS,Oa),cols:Gt(e,"cols",se.BRIDGERTE_TABLE_INSERT_MAX_COLS,Fa)}),Ka=e=>{const t=Math.min(e.cols.max,Dn);return`${t*Wa+Math.max(t-1,0)*Va+qa}px`},Ga=({fields:e,values:t,onSubmit:n})=>{const r=Hn(e),o=document.createElement("section"),a=document.createElement("div"),s=document.createElement("div"),i=[],g=Ua(),d=Math.min(r.rows.max,za),p=Math.min(r.cols.max,Dn),m={...r.rows,max:d,defaultValue:Math.min(r.rows.defaultValue,d)},w={...r.cols,max:p,defaultValue:Math.min(r.cols.defaultValue,p)};let $=ye(t.rows,m),C=ye(t.cols,w),y=null;const x=(M,I)=>{$=M,C=I,t.rows=String(M),t.cols=String(I),s.textContent=`${M} x ${I}`,i.forEach(_=>{const L=Number.parseInt(_.dataset.rows??"0",10),A=Number.parseInt(_.dataset.cols??"0",10);_.dataset.active=String(L<=M&&A<=I)})},h=M=>{var I;return((I=document.elementFromPoint(M.clientX,M.clientY))==null?void 0:I.closest(".bridgerte__payload-panel-table-cell"))??null},f=M=>{if(!M)return;const I=ye(M.dataset.rows,m),_=ye(M.dataset.cols,w);x(I,_)},S=()=>{n({...t,rows:String($),cols:String(C)})},T=()=>{y=null},O=()=>{window.setTimeout(T,0)},E=(M,I)=>{if(M.detail>0&&y!==I){M.preventDefault(),M.stopPropagation();return}T(),f(I),S()};for(let M=1;M<=d;M+=1)for(let I=1;I<=p;I+=1){const _=document.createElement("button");_.type="button",_.className="bridgerte__payload-panel-table-cell",_.dataset.rows=String(M),_.dataset.cols=String(I),_.setAttribute("aria-label",`插入 ${M} 行 ${I} 列表格`),X(_),_.addEventListener("pointerdown",L=>{y=_,f(_),L.preventDefault()}),_.addEventListener("pointerup",O),_.addEventListener("pointercancel",T),_.addEventListener("click",L=>{E(L,_)}),g&&_.addEventListener("pointerenter",()=>{f(_)}),i.push(_),a.append(_)}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(p)),s.className="bridgerte__payload-panel-table-status",s.setAttribute("aria-live","polite"),a.addEventListener("pointermove",M=>{g||f(h(M))}),x($,C),o.append(a,s),o},Ya="bridgerte-payload-panel";let Yt=0;const Xa=()=>(Yt+=1,`${Ya}-${Yt}`),Se=e=>e.panel.id==="table-insert",Ja=(e,t)=>{const n=document.createElement("button");return n.type="button",n.className="bridgerte__payload-panel-submit",n.textContent="应用",X(n),n.addEventListener("pointerdown",r=>{r.preventDefault()}),n.addEventListener("click",()=>{t(e)}),n},Qa=e=>{let t=null,n={};const r=lt({root:e.editorRoot,className:"bridgerte__payload-panel",onBackdropClick:()=>{o()}});function o(){t=null,n={},r.close(),r.content.replaceChildren()}const a=d=>{var m;if(!t||t.readonly||e.isReadonly())return;const p=ka(t.command,d);p&&((m=e.restoreEditorFocus)==null||m.call(e,()=>{o(),e.isReadonly()||e.executeCommand(p)}))},s=d=>{var p;!t||t.readonly||e.isReadonly()||(p=e.restoreEditorFocus)==null||p.call(e,()=>{o(),e.isReadonly()||e.executeCommand(d)})},i=d=>{n=d.panel.fields.reduce((m,w)=>(m[w.name]=Aa(w,d.currentValues),m),{});const p=Se(d)?Ka(Hn(d.panel.fields)):Ha(d.panel.id);r.element.style.width=`min(${p}, calc(100vw - 24px))`,r.content.append(Da(d,s,e.getClearCommand)),Se(d)?r.content.append(Ga({fields:d.panel.fields,values:n,onSubmit:a})):d.panel.fields.forEach(m=>{r.content.append(Pa({field:m,values:n,onSubmit:a}))}),!Se(d)&&jt(d.panel.fields)&&r.content.append(Ja(n,a)),r.open(d.anchorRect),!Se(d)&&jt(d.panel.fields)&&Ba(r.content)};return{open:d=>{var w;o();const p={...d,id:Xa(),readonly:e.isReadonly(),submit:a,cancel:o};if(t=p,((w=e.onRequest)==null?void 0:w.call(e,p))!==!0){if(p.readonly){o();return}i(d)}},close:o,destroy(){o(),r.destroy()}}},ve="bridgerte__table-controls-button",Za=["table-insert-row-after","table-delete-row","table-insert-column-after","table-delete-column","table-delete"],es=()=>{const e=new Map(Y.defaultMenuSchema.map(t=>[t.id,t]));return Za.map(t=>Y.tableHeaderMenuItems.find(n=>n.id===t)??e.get(t)).filter(t=>t!==void 0)},ht=es(),ts=new Map(ht.map(e=>[e.id,e])),ns=e=>e.matches(".bridgerte__table")?e:e.querySelector(".bridgerte__table")??e,rs=(e,t)=>e.classList.contains("bridgerte__table-wrapper")?e:t.parentElement instanceof HTMLElement?t.parentElement:t,os=e=>e.querySelector(".bridgerte__content")??e,as=e=>e instanceof Element?e.closest(".bridgerte__table-wrapper"):null,ss=e=>{const t=e.getFirstChild();if(!V.$isTableRowNode(t))return null;const n=t.getFirstChild();return V.$isTableCellNode(n)?n:null},is=e=>{const t=document.createElement("button");return t.type="button",t.className=ve,t.textContent=e.label,t.dataset.menuItemId=e.id,t.setAttribute("aria-label",e.label),t},ls=()=>{const e=document.createElement("div");return e.className="bridgerte__table-controls",e.contentEditable="false",e.setAttribute("aria-label","表格操作"),ht.forEach(t=>{e.append(is(t))}),e},cs=e=>{const t=document.createElement("div"),n=os(e.root),r=new Map,o=new Map,a=new Map,s=new Map;let i=null,g=0,d=null,p=!1,m=null;const w=v=>{var k;const u=r.get(v);u&&((k=o.get(u))==null||k(),o.delete(u),u.remove(),r.delete(v))},$=v=>{const u=s.get(v);u&&(s.delete(v),u.dismissListeners.forEach(k=>{k()}),u.dismissListeners.clear())},C=(v,u)=>{const k=e.root.getBoundingClientRect(),l=u.getBoundingClientRect(),b=l.bottom<k.top||l.top>k.bottom,N=Math.max(8,k.width-v.offsetWidth-8),H=Math.min(Math.max(l.left-k.left+8,8),N),R=Math.max(8,l.top-k.top-v.offsetHeight-8);v.hidden=b,v.style.transform=`translate(${H}px, ${R}px)`},y=v=>m===v,x=v=>{const u=e.editor.getElementByKey(v);if(!u){h(v);return}u.dataset.lexicalKey=v;const k=ns(u),l=rs(u,k);a.set(l,v);const b=r.get(v);if(!y(v)){h(v);return}if(E(v,l))return;if(b){C(b,l);return}const N=ls(),H=X(N,{targetSelector:`.${ve}`});N.dataset.lexicalKey=v,r.set(v,N),o.set(N,H),t.append(N),C(N,l)},h=v=>{w(v),$(v),m===v&&(m=null)},f=()=>{i=null,a.forEach((v,u)=>{e.root.contains(u)||(a.delete(u),h(v))}),e.root.querySelectorAll(".bridgerte__table-wrapper").forEach(v=>{const u=v.dataset.lexicalKey;u&&(a.set(v,u),x(u))}),r.forEach((v,u)=>{x(u)}),m!==null&&x(m)},S=()=>{i===null&&(i=Be(f))},T=v=>{e.editor.update(()=>{var k;const u=c.$getNodeByKey(v);u instanceof V.TableNode&&((k=ss(u))==null||k.selectStart())}),e.editor.focus()},O=(v,u)=>{T(v),e.executeCommand(u)},E=(v,u)=>{if(!e.onTableControlsRequest)return $(v),!1;const k=u.getBoundingClientRect(),l={x:k.left,y:k.top,width:k.width,height:k.height},b=ht.map(z=>({type:"button",item:z,active:!1,disabled:e.isReadonly()})),N=`bridgerte-table-controls-${g+=1}`,H=[b.map(z=>z.item.id).join("|"),Math.round(l.x),Math.round(l.y),Math.round(l.width),Math.round(l.height)].join("|"),R=s.get(v);if((R==null?void 0:R.signature)===H)return w(v),!0;const P=new Set;return e.onTableControlsRequest({id:N,items:b,readonly:e.isReadonly(),anchorRect:l,subscribeDismiss:z=>(P.add(z),()=>{P.delete(z)}),submit:z=>{var ne;if(((ne=s.get(v))==null?void 0:ne.id)!==N)return;const J=gt(b,z);!J||J.disabled||O(v,J.item.command)},cancel:()=>{var z;((z=s.get(v))==null?void 0:z.id)===N&&$(v)}})===!0?($(v),s.set(v,{id:N,signature:H,dismissListeners:P}),w(v),!0):($(v),!1)},M=(v,u)=>{const k=u.dataset.lexicalKey,l=v.dataset.menuItemId,b=l?ts.get(l):void 0;!k||!b||O(k,b.command)},I=v=>{if(!v){const l=m;m=null,l!==null&&x(l);return}const u=v.dataset.lexicalKey?v.dataset.lexicalKey:a.get(v)??null;if(!u||m===u)return;const k=m;m=u,k!==null&&x(k),x(u)},_=v=>{const u=v.target;if(!(u instanceof HTMLElement))return;const k=u.closest(`.${ve}`);k&&(v.preventDefault(),d=v.pointerType==="mouse"?null:k)},L=v=>{if(v.pointerType==="mouse"||!d)return;const u=v.target,k=u instanceof HTMLElement?u.closest(".bridgerte__table-controls"):null,l=u instanceof HTMLElement?u.closest(`.${ve}`):null;l===d&&k&&(v.preventDefault(),v.stopPropagation(),M(l,k),p=!0),d=null},A=()=>{d=null},q=v=>{if(p){p=!1,v.preventDefault(),v.stopPropagation();return}const u=v.target;if(!(u instanceof HTMLElement))return;const k=u.closest(`.${ve}`),l=u.closest(".bridgerte__table-controls");!k||!l||(v.preventDefault(),v.stopPropagation(),M(k,l))},K=e.editor.registerMutationListener(V.TableNode,v=>{v.forEach((u,k)=>{if(u==="destroyed"){h(k);return}x(k)})}),D=e.editor.registerUpdateListener(S),B=dt({root:e.root,content:n,getBlockFromTarget:as,activateBlock:I,clearBlock:()=>I(null)});return t.className="bridgerte__table-controls-layer",e.root.append(t),t.addEventListener("pointerdown",_),t.addEventListener("pointerup",L),t.addEventListener("pointercancel",A),t.addEventListener("click",q),n.addEventListener("scroll",S,{passive:!0}),window.addEventListener("resize",S),{destroy(){K(),D(),i!==null&&(ct(i),i=null),t.removeEventListener("pointerdown",_),t.removeEventListener("pointerup",L),t.removeEventListener("pointercancel",A),t.removeEventListener("click",q),B.destroy(),n.removeEventListener("scroll",S),window.removeEventListener("resize",S),r.forEach(v=>{var u;(u=o.get(v))==null||u(),v.remove()}),r.clear(),o.clear(),Array.from(s.keys()).forEach($),a.clear(),t.remove()}}},ds=e=>{const t=Qa({editorRoot:e.editorRoot,isReadonly:e.isReadonly,restoreEditorFocus:e.restoreEditorFocus,executeCommand:e.executeCommand,getClearCommand:e.getClearCommand,onRequest:e.onRequest}),n=Go({editor:e.lexicalEditor,root:e.editorRoot,isReadonly:e.isReadonly,languagePanel:e.codeBlockLanguagePanel,payloadPanelConfig:e.payloadPanelConfig,onRequest:e.onRequest}),r=cs({editor:e.lexicalEditor,root:e.editorRoot,isReadonly:e.isReadonly,executeCommand:e.executeCommand,onTableControlsRequest:e.onTableControlsRequest}),o=wa({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()}}},us=(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}},gs=({editor:e})=>{let t=null;return{capture(){e.getEditorState().read(()=>{var n;t=((n=c.$getSelection())==null?void 0:n.clone())??null})},restore(){t&&e.update(()=>{c.$setSelection((t==null?void 0:t.clone())??null)})},clear(){t=null}}},hs=/((https?:\/\/|www\.)[^\s<>()]+[^\s<>().,;:!?])/i,ms=/([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,})/i,ps={changeHandlers:[],excludeParents:[],matchers:[G.createLinkMatcherWithRegExp(hs,e=>e.startsWith("http://")||e.startsWith("https://")?e:`https://${e}`),G.createLinkMatcherWithRegExp(ms,e=>`mailto:${e}`)]},fs=({editor:e})=>G.registerAutoLink(e,ps),bs=[".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(","),ys=(e,t)=>{const n=e.anchorNode,r=e.focusNode;return n!==null&&r!==null&&t.contains(n)&&t.contains(r)},vs=e=>{e.querySelectorAll(bs).forEach(t=>{t.remove()}),e.querySelectorAll('[contenteditable="false"]').forEach(t=>{t.classList.contains("bridgerte__media")||t.remove()})},Cs=e=>{const t=e.ownerDocument.getSelection();if(!t||t.rangeCount===0||!ys(t,e))return null;const n=t.getRangeAt(0).cloneContents();vs(n);const r=e.ownerDocument.createElement("div");return r.append(n),{html:r.innerHTML,text:r.textContent??""}},ws=({target:e,isReadonly:t})=>{const n=o=>{const a=Cs(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})}},Pe=e=>e.getChildren().map(t=>c.$isLineBreakNode(t)?`
3
+ `:t.getTextContent()).join(""),_s=e=>e===""?1:e.split(`
4
+ `).length,ks=e=>{const t=[];return e.split(`
5
+ `).forEach((n,r)=>{r>0&&t.push(c.$createLineBreakNode()),n.split(" ").forEach((o,a)=>{a>0&&t.push(c.$createTabNode()),o!==""&&t.push(W.$createCodeHighlightNode(o))})}),t},Ms=e=>{const t=[];return e.forEach((n,r)=>{r>0&&t.push(c.$createLineBreakNode()),n.forEach(o=>{o.text.split(" ").forEach((a,s)=>{s>0&&t.push(c.$createTabNode()),a!==""&&t.push(W.$createCodeHighlightNode(a,o.highlightType))})})}),t},Xt=(e,t)=>W.$isCodeHighlightNode(e)&&W.$isCodeHighlightNode(t)&&e.getTextContent()===t.getTextContent()&&e.getHighlightType()===t.getHighlightType()&&e.getStyle()===t.getStyle()||c.$isTabNode(e)&&c.$isTabNode(t)||c.$isLineBreakNode(e)&&c.$isLineBreakNode(t),Es=(e,t)=>{let n=0;for(;n<e.length;){const i=e[n],g=t[n];if(!i||!g||!Xt(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||!Xt(i,g)){s-=1;break}}return{from:n,nodesForReplacement:t.slice(n,o-s),to:r-s}},Jt=(e,t)=>{const n=Es(e.getChildren(),t),{from:r,nodesForReplacement:o,to:a}=n;return r===a&&o.length===0?!1:(e.splice(r,a-r,o),!0)},xs=(e,t)=>{const n=c.$getNodeByKey(e);if(!W.$isCodeNode(n)||!n.isAttached())return;const r=c.$getSelection();if(!c.$isRangeSelection(r)){t();return}const o=r.anchor,a=o.offset,s=o.type==="element"&&c.$isLineBreakNode(n.getChildAtIndex(o.offset-1));let i=0;if(!s){const g=o.getNode();i=a+g.getPreviousSiblings().reduce((d,p)=>d+p.getTextContentSize(),0)}if(t()){if(s){o.getNode().select(a,a);return}n.getChildren().some(g=>{const d=c.$isTextNode(g);if(!d&&!c.$isLineBreakNode(g))return!1;const p=g.getTextContentSize();return d&&p>=i?(g.select(i,i),!0):(i-=p,!1)})}},Ts=12e3,Ns="bridgerte:code-highlight";let Qt=null;const Ss=()=>{if(typeof Worker!="function")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:qe&&qe.tagName.toUpperCase()==="SCRIPT"&&qe.src||new URL("index-CQx3NGKY.cjs",document.baseURI).href),{type:"module"})}catch{return null}},Ls=()=>{try{return Qt?Qt():Ss()}catch{return null}},Rs=()=>Promise.resolve().then(()=>require("./shikiTokenizerRuntime.cjs")),he=(e,t,n,r)=>({codeLength:e.code.length,language:e.language,lineCount:_s(e.code),nodeKey:e.nodeKey,reason:r,status:n,strategy:t}),Is=({code:e,language:t,nodeKey:n,theme:r})=>({codeHash:$e.getCodeHighlightCodeHash(e),codeLength:e.length,language:t,nodeKey:n,theme:r}),Zt=(e,t)=>{const n=Pe(e);return e.getKey()===t.nodeKey&&e.getLanguage()===t.language&&(e.getTheme()||$e.bridgeCodeHighlightTheme)===t.theme&&n.length===t.codeLength&&$e.getCodeHighlightCodeHash(n)===t.codeHash},Ps=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 d=E=>{const M=e.getRootElement();!M||s||M.dispatchEvent(new CustomEvent(Ns,{bubbles:!0,detail:E}))},p=E=>{E.getIsSyntaxHighlightSupported()&&E.setIsSyntaxHighlightSupported(!1),E.getStyle()&&E.setStyle("")},m=(E,M)=>{p(E),Jt(E,ks(M))},w=(E,M)=>{f({codeHash:E.codeHash,id:E.id,language:E.language,message:M instanceof Error?M.message:"Unknown code highlight fallback loader error.",nodeKey:E.nodeKey,status:"error",theme:E.theme,version:E.version},"fallback")},$=()=>{a.isRunning||a.queue.length===0||s||(a.isRunning=!0,Rs().then(async({tokenizeCodeHighlightRequest:E})=>{for(;a.queue.length>0&&!s;){const M=a.queue.shift();if(M)try{const I=await E(M);f({codeHash:M.codeHash,id:M.id,language:M.language,lines:I,nodeKey:M.nodeKey,status:"success",theme:M.theme,version:M.version},"fallback")}catch(I){f({codeHash:M.codeHash,id:M.id,language:M.language,message:I instanceof Error?I.message:"Unknown code highlight fallback error.",nodeKey:M.nodeKey,status:"error",theme:M.theme,version:M.version},"fallback")}}}).catch(E=>{a.queue.splice(0).forEach(I=>{w(I,E)})}).finally(()=>{a.isRunning=!1,$()}))},C=(E,M)=>{const I=t.get(E.nodeKey);!I||I.requestId!==E.id||I.version!==E.version||(a.queue.push(E),d(he({code:E.code,language:E.language,nodeKey:E.nodeKey,theme:E.theme},"fallback","scheduled",M)),$())},y=E=>{var I;if(o.isUnavailable)return;o.isUnavailable=!0,(I=o.worker)==null||I.terminate(),o.worker=null,e.getEditorState().read(()=>{const _=[];return t.forEach(L=>{const A=c.$getNodeByKey(L.nodeKey);if(!W.$isCodeNode(A)||!A.isAttached()||!Zt(A,L)){t.delete(L.nodeKey);return}_.push({code:Pe(A),codeHash:L.codeHash,id:L.requestId,language:L.language,nodeKey:L.nodeKey,theme:L.theme,version:L.version})}),_}).forEach(_=>{C(_,E)})},x=()=>o.worker||o.isUnavailable||s?o.worker:(o.worker=Ls(),o.worker?(o.worker.addEventListener("message",E=>{s||f(E.data)}),o.worker.addEventListener("error",()=>{y("worker-error-fallback")}),o.worker.addEventListener("messageerror",()=>{y("worker-message-error-fallback")}),o.worker):(o.isUnavailable=!0,null)),h=(E,M)=>{const I=x(),_=Is(M),L=i;i+=1,g+=1,t.set(M.nodeKey,{..._,requestId:L,version:g}),m(E,M.code);const A={code:M.code,codeHash:_.codeHash,id:L,language:M.language,nodeKey:M.nodeKey,theme:M.theme,version:g};if(!I){C(A,"worker-unavailable-fallback");return}I.postMessage(A),d(he(M,"worker","scheduled"))},f=(E,M="worker")=>{const I=t.get(E.nodeKey);!I||I.requestId!==E.id||I.version!==E.version||I.language!==E.language||I.theme!==E.theme||I.codeHash!==E.codeHash||(t.delete(E.nodeKey),e.update(()=>{const _=c.$getNodeByKey(E.nodeKey);if(!W.$isCodeNode(_)||!_.isAttached()||!Zt(_,I))return;const A={code:Pe(_),language:I.language,nodeKey:I.nodeKey,theme:I.theme};if(E.status==="error"){p(_),d(he(A,"degraded","completed",E.message));return}n.add(E.nodeKey),_.setIsSyntaxHighlightSupported(!0),_.getStyle()&&_.setStyle(""),xs(E.nodeKey,()=>Jt(_,Ms(E.lines))),d(he(A,M,"completed")),c.$onUpdate(()=>{n.delete(E.nodeKey)})}))},S=E=>{const M=E.getKey();if(r.nodesCurrentlyHighlighting.has(M)||n.has(M))return;const I=E.getLanguage(),_=E.getTheme()||$e.bridgeCodeHighlightTheme,L=Pe(E),A={code:L,language:I??"",nodeKey:M,theme:_};if(E.getTheme()||E.setTheme(_),!I){t.delete(M),m(E,L),d(he(A,"degraded","completed","plain-language"));return}if(L.length>Ts){t.delete(M),m(E,L),d(he(A,"degraded","completed","large-code"));return}r.nodesCurrentlyHighlighting.add(M),r.didTransform||(r.didTransform=!0,c.$onUpdate(()=>{r.didTransform=!1,r.nodesCurrentlyHighlighting.clear()})),h(E,A)},T=E=>{const M=E.getParent();if(W.$isCodeNode(M)){S(M);return}W.$isCodeHighlightNode(E)&&E.replace(c.$createTextNode(E.getTextContent()))},O=c.mergeRegister(e.registerNodeTransform(W.CodeNode,S),e.registerNodeTransform(c.TextNode,T),e.registerNodeTransform(W.CodeHighlightNode,T),Xn.registerCodeIndentation(e));return{destroy(){var E;s=!0,O(),t.clear(),n.clear(),r.nodesCurrentlyHighlighting.clear(),a.queue=[],a.isRunning=!1,(E=o.worker)==null||E.terminate(),o.worker=null}}},Le=8,en=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n));function mt(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 d=()=>{t.style.position=s,t.style.left="0px",t.style.top="0px",t.style.opacity="0",t.style.pointerEvents="none"},p=(C,y)=>{const x=Fe(),h=t.getBoundingClientRect(),f=x.left+Le,S=x.top+Le,T=x.left+x.width-h.width-Le,O=x.top+x.height-h.height-Le;t.style.left=`${en(C,f,T)}px`,t.style.top=`${en(y,S,O)}px`,t.style.opacity="",t.style.pointerEvents=""},m=async()=>{const C=await Q.computePosition(e,t,{placement:r,strategy:s,platform:Q.platform,middleware:[Q.offset(o),Q.flip(),Q.shift({padding:a})]});p(C.x,C.y)},w=()=>{i==null||i(),i=null},$=C=>{if(g!==C){if(g=C,w(),g){d(),t.hidden=!1,i=Q.autoUpdate(e,t,m),m();return}t.hidden=!0,t.style.opacity="",t.style.pointerEvents=""}};return d(),t.hidden=!0,{update:m,setOpen:$,destroy(){w(),t.hidden=!0}}}const pt={"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>'},$s=e=>{const t=document.createElement("span");return t.className="bridgerte__menu-icon-text",t.textContent=e,t},ft=(e,t,n)=>{if(t){e.innerHTML=t;return}e.append($s(n))},tt=()=>{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},As=160,Bs={toolbarKeys:["bold","italic","underline","strike","inline-code","clear-style","|","color","background-color","font-size","font-family","line-height"]},Ds=()=>{const e=c.$getSelection();return c.$isRangeSelection(e)&&!e.isCollapsed()},tn=(e,t)=>e.target instanceof Node&&t.contains(e.target),nn=e=>e instanceof Element?e.closest(".bridgerte__hoverbar-button"):null,Hs=e=>e.flatMap(t=>t.type==="button"?[t.item]:t.type==="group"?t.items:[]),Os=e=>{const t=document.createElement("span");return t.className="bridgerte__hoverbar-separator",t.dataset.separatorId=e.key,t.setAttribute("aria-hidden","true"),t},Fs=(e,t,n)=>{const r=ut(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)),ft(o,n[e.icon]??pt[e.icon],e.label),o},zs=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,executeCommand:o,requestPayloadPanel:a,getCommandStates:s,menuSchema:i,hoverbarConfig:g,menuLabels:d,payloadPanelConfig:p,icons:m={},onHoverbarMenuRequest:w})=>{const $=ze(i??Y.defaultMenuSchema,{menuLabels:d,payloadPanelConfig:p}),C=Y.resolveToolbarMenu(g??Bs,$),y=Hs(C),x=document.createElement("span"),h=document.createElement("div");let f=null,S=!1,T=null,O=0,E=null;const M=X(h,{targetSelector:".bridgerte__hoverbar-button"});x.className="bridgerte__hoverbar-anchor",x.setAttribute("aria-hidden","true"),h.className="bridgerte__floating-menu bridgerte__hoverbar",h.setAttribute("role","toolbar"),h.setAttribute("aria-label","BridgeRTE hoverbar"),e.append(x,h),f=mt(x,h,{placement:"top",offset:8,strategy:"fixed"});const I=()=>{T&&(window.clearTimeout(T),T=null)},_=()=>{const R=E;R&&(E=null,R.dismissListeners.forEach(P=>{P()}),R.dismissListeners.clear())},L=()=>{I(),_(),S=!1,h.replaceChildren(),h.dataset.visible="false",f==null||f.setOpen(!1)},A=()=>{const R=tt(),P=t.getBoundingClientRect(),F={x:(R==null?void 0:R.left)??P.left,y:(R==null?void 0:R.top)??P.top,width:(R==null?void 0:R.width)||1,height:(R==null?void 0:R.height)||1};return x.style.left=`${F.x}px`,x.style.top=`${F.y}px`,x.style.width=`${F.width}px`,x.style.height=`${F.height}px`,F},q=()=>{const R=s(),P=Sn(C,U=>ut(U,R)),F=A(),z=`bridgerte-hoverbar-${O+=1}`,J=new Set;if((w==null?void 0:w({id:z,items:P,commandStates:R,readonly:r(),anchorRect:F,subscribeDismiss:U=>(J.add(U),()=>{J.delete(U)}),submit:U=>{if((E==null?void 0:E.id)!==z)return;const re=gt(P,U);!re||re.disabled||B(re.item,F)},cancel:L}))===!0){_(),E={id:z,dismissListeners:J},h.replaceChildren(),S=!0,h.dataset.visible="false",f==null||f.setOpen(!1);return}h.replaceChildren(...C.flatMap(U=>U.type==="separator"?[Os(U)]:(U.type==="button"?[U.item]:U.items).map(wt=>Fs(wt,R,m)))),_(),S=!0,h.dataset.visible="true",f==null||f.setOpen(!0),f==null||f.update()},K=()=>r()?!1:n.getEditorState().read(Ds),D=(R=!1)=>{if(I(),!K()){L();return}if(R){q();return}S&&L(),T=window.setTimeout(()=>{T=null,K()&&q()},As)},B=(R,P)=>{if(R.payloadPanel){a({menuId:R.id,command:R.command,panel:R.payloadPanel,currentValues:Nn(R,s()),anchorRect:P}),D(!0);return}o(R.command),D(!0)},v=R=>{const P=y.find(z=>z.id===R.dataset.hoverbarItemId);if(!P||R.disabled)return;const F=R.getBoundingClientRect();B(P,{x:F.left,y:F.top,width:F.width,height:F.height})},u=R=>{nn(R.target)&&R.preventDefault()},k=R=>{const P=nn(R.target);P&&(R.preventDefault(),v(P))},l=R=>{!S||tn(R,h)||tn(R,t)||L()},b=n.registerCommand(c.SELECTION_CHANGE_COMMAND,()=>(D(),!1),c.COMMAND_PRIORITY_LOW),N=n.registerUpdateListener(()=>{D()}),H=n.registerCommand(c.KEY_ESCAPE_COMMAND,R=>S?(R==null||R.preventDefault(),L(),!0):!1,c.COMMAND_PRIORITY_LOW);return h.addEventListener("pointerdown",u),h.addEventListener("click",k),document.addEventListener("pointerdown",l,!0),()=>{I(),b(),N(),H(),h.removeEventListener("pointerdown",u),h.removeEventListener("click",k),document.removeEventListener("pointerdown",l,!0),M(),f==null||f.destroy(),x.remove(),h.remove()}},Ws=e=>e.metaKey||e.ctrlKey,Vs={b:{type:"format.bold"},i:{type:"format.italic"},u:{type:"format.underline"},"\\":{type:"format.clear"}},qs={x:{type:"format.strike"},l:{type:"align",value:"left"},e:{type:"align",value:"center"},r:{type:"align",value:"right"},j:{type:"align",value:"justify"}},Us={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}},js=e=>{const t=e.key.toLowerCase(),n=e.code;if(!e.metaKey&&!e.ctrlKey&&!e.altKey&&!e.shiftKey||!Ws(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 Us[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"}:qs[t]??null:t==="z"?{type:"history.undo"}:t==="y"&&e.ctrlKey&&!e.metaKey?{type:"history.redo"}:t==="`"||t==="~"||n==="Backquote"?{type:"format.inlineCode"}:Vs[t]??null},Ks=({target:e,isReadonly:t,executeCommand:n})=>{const r=o=>{if(t())return;const a=js(o);a&&(o.preventDefault(),n(a))};return e.addEventListener("keydown",r),()=>{e.removeEventListener("keydown",r)}},Gs=(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)},bt=(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=bt(r,t);if(o)return o}return null},On=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,menu:o,anchor:a,itemSelector:s,getCurrentTrigger:i,getTriggerRect:g,resolveItems:d,renderItem:p,renderStatus:m,onStateChange:w,onSelect:$})=>{let C=null,y=0;const x=X(o,{targetSelector:s}),h=mt(a,o,{placement:"bottom-start",offset:2,strategy:"fixed"});e.append(a,o);const f=()=>{const l=C?g(C.trigger)??tt():tt(),b=t.getBoundingClientRect();return l??b},S=()=>{const l=f();a.style.left=`${l.left}px`,a.style.top=`${l.top}px`,a.style.height=`${l.height||1}px`},T=(l=!0)=>{C=null,o.dataset.visible="false",l&&o.replaceChildren(),h.setOpen(!1)},O=()=>{const l=o.querySelector(`${s}[data-active="true"]`);l&&Gs(o,l)},E=(l,b)=>{!C||C.requestId!==b.requestId||(T(),$(l,b.trigger))},M=()=>{if(!C){T();return}const l=C,b=f();if((w==null?void 0:w(l,{anchorRect:b,close:T,selectItem:R=>E(R,l)}))===!0){o.replaceChildren(),o.dataset.visible="false",h.setOpen(!1);return}if(l.status==="success")o.replaceChildren(...l.items.map((R,P)=>p(R,P,P===l.activeIndex)));else{const R=m==null?void 0:m(l.status,l.trigger.query,l.error);o.replaceChildren(...R?[R]:[])}const H=o.children.length>0;o.dataset.visible=String(H),S(),h.setOpen(H),O(),h.update()},I=async(l,b)=>{let N;try{N=await Promise.resolve(d(l))}catch(H){(C==null?void 0:C.requestId)===b&&(C={...C,items:[],activeIndex:0,status:"error",error:H},M());return}!C||b!==C.requestId||(C={...C,items:N,activeIndex:Math.min(C.activeIndex,Math.max(N.length-1,0)),status:N.length>0?"success":"empty",error:void 0},M())},_=()=>{if(r()){T();return}const l=n.getEditorState().read(i);if(!l){T(!1);return}y+=1,C={trigger:l,items:[],activeIndex:0,requestId:y,status:"loading",error:void 0},M(),I(l.query,y)},L=()=>{if(!C||C.status!=="success")return!1;const l=C.items[C.activeIndex],b=C.trigger;return l?(T(),$(l,b),!0):!1},A=l=>!C||C.status!=="success"||C.items.length===0?!1:(C={...C,activeIndex:(C.activeIndex+l+C.items.length)%C.items.length},M(),!0),q=l=>{const b=l.target,N=b instanceof HTMLElement?b.closest(s):null,H=N!=null&&N.dataset.index?Number.parseInt(N.dataset.index,10):Number.NaN;!C||C.status!=="success"||Number.isNaN(H)||(C={...C,activeIndex:H},l.preventDefault(),L())},K=l=>{const b=l.target;b instanceof HTMLElement&&b.closest(s)&&l.preventDefault()},D=n.registerUpdateListener(()=>{_()}),B=n.registerCommand(c.KEY_ARROW_DOWN_COMMAND,l=>A(1)?(l==null||l.preventDefault(),!0):!1,c.COMMAND_PRIORITY_LOW),v=n.registerCommand(c.KEY_ARROW_UP_COMMAND,l=>A(-1)?(l==null||l.preventDefault(),!0):!1,c.COMMAND_PRIORITY_LOW),u=n.registerCommand(c.KEY_ENTER_COMMAND,l=>L()?(l==null||l.preventDefault(),!0):!1,c.COMMAND_PRIORITY_LOW),k=n.registerCommand(c.KEY_ESCAPE_COMMAND,l=>C?(l==null||l.preventDefault(),T(),!0):!1,c.COMMAND_PRIORITY_LOW);return o.addEventListener("click",q),o.addEventListener("pointerdown",K),{close:T,destroy(){D(),B(),v(),u(),k(),o.removeEventListener("click",q),o.removeEventListener("pointerdown",K),x(),h.destroy(),a.remove(),o.remove()}}},Ys={labelField:"label",descriptionField:"description",avatarField:"avatar",iconField:"data.icon",showAvatar:!0,showIcon:!0,showDescription:!0,loadingText:"加载中",emptyText:"没有匹配的提及",errorText:"提及加载失败"},Xs=e=>({...Ys,...e}),Js=(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},Re=(e,t)=>{if(t.startsWith("data."))return Js(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},Qs=e=>e.startsWith("@")?e:`@${e}`,Fn=(e,t)=>{const n=Re(e,t.labelField)??e.label??e.value??e.id,r=t.showDescription?Re(e,t.descriptionField)??e.description:void 0,o=t.showAvatar?Re(e,t.avatarField)??e.avatar:void 0,a=t.showIcon&&!o?Re(e,t.iconField):void 0;return{item:e,label:Qs(n),...r?{description:r}:{},...o?{avatar:o}:{},...a?{icon:a}:{}}},Zs=(e,t)=>e.map(n=>Fn(n,t)),nt=e=>e instanceof c.TextNode&&e.getTextContent().startsWith(" "),ei=e=>{const n=e.getTextContent().slice(1);if(!n){e.remove();return}e.setTextContent(n)},ti=(e,t)=>{const n=e.getPreviousSibling(),r=e.getNextSibling(),o=nt(r)?r.getNextSibling():r;if(nt(r)&&ei(r),e.remove(),t){n==null||n.selectEnd();return}o==null||o.selectStart()},ni=e=>{const t=c.$getSelection();if(!c.$isRangeSelection(t)||!t.isCollapsed())return null;const n=t.anchor,r=n.getNode();if(St(r))return r;if(!(r instanceof c.TextNode))return null;const o=r.getTextContentSize(),a=r.getPreviousSibling(),s=r.getNextSibling(),i=nt(r)&&n.offset===1,g=e?n.offset===0||i?a:null:n.offset===o?s:null;return St(g)?g:null},ri=(e,t,n)=>{const r=a=>{if(t())return!1;const s=ni(a);return s?(ti(s,a),n(),!0):!1},o=(a,s)=>{const i=r(s);return i&&a.preventDefault(),i};return[e.registerCommand(c.KEY_BACKSPACE_COMMAND,a=>o(a,!0),c.COMMAND_PRIORITY_HIGH),e.registerCommand(c.KEY_DELETE_COMMAND,a=>o(a,!1),c.COMMAND_PRIORITY_HIGH),e.registerCommand(c.DELETE_CHARACTER_COMMAND,a=>r(a),c.COMMAND_PRIORITY_HIGH)]},oi=/(?:^|\s)@([\p{L}\p{N}_-]*)$/u,rn=[{id:"bridgerte-team",label:"BridgeRTE Team",value:"bridgerte-team"},{id:"frontend",label:"Frontend",value:"frontend"},{id:"designer",label:"Designer",value:"designer"}],ai=e=>e.trim().toLowerCase(),si=e=>[e.label,e.value,e.description].filter(Boolean).join(" ").toLowerCase(),ii=e=>{const t=ai(e);return t?rn.filter(n=>si(n).includes(t)):rn},li=()=>{const e=c.$getSelection();if(!c.$isRangeSelection(e)||!e.isCollapsed())return null;const t=e.anchor,n=t.getNode();if(!(n instanceof c.TextNode))return null;const o=n.getTextContent().slice(0,t.offset).match(oi);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},di=()=>{const e=document.createElement("span");return e.className="bridgerte__mention-anchor",e.setAttribute("aria-hidden","true"),e},ui=(e,t)=>{var s;const n=e.getElementByKey(t.nodeKey),r=bt(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())},gi=(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},hi=(e,t)=>{const n=document.createElement("div");return n.className="bridgerte__mention-status",n.dataset.status=e,n.textContent=t,n},mi=(e,t)=>{switch(e){case"loading":return t.loadingText;case"empty":return t.emptyText;case"error":return t.errorText}},pi=e=>e?{x:e.x,y:e.y,width:e.width,height:e.height}:void 0,fi=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,executeCommand:o,mentionProvider:a,mentionMenuConfig:s,onMentionMenuRequest:i})=>{const g=ci(),d=di(),p=Xs(s),m=(C,y)=>{n.update(()=>{const x=c.$getNodeByKey(y.nodeKey);x instanceof c.TextNode&&(x.spliceText(y.startOffset,y.endOffset-y.startOffset,""),x.select(y.startOffset,y.startOffset))}),o({type:"mention.insert",item:C})},w=On({editorRoot:e,contentElement:t,editor:n,isReadonly:r,menu:g,anchor:d,itemSelector:".bridgerte__mention-item",getCurrentTrigger:li,getTriggerRect:C=>ui(n,C),resolveItems:async C=>{const y=await Promise.resolve(a?a(C):ii(C));return Zs(y,p)},renderItem:gi,renderStatus:C=>hi(C,mi(C,p)),onStateChange:i?(C,y)=>i({id:`bridgerte-mention-menu-${C.requestId}`,query:C.trigger.query,status:C.status,items:C.items,config:p,readonly:r(),anchorRect:pi(y.anchorRect),...C.error?{error:C.error}:{},submit:x=>y.selectItem(Fn(x,p)),cancel:y.close}):void 0,onSelect:(C,y)=>m(C.item,y)}),$=c.mergeRegister(...ri(n,r,()=>w.close(!1)));return()=>{$(),w.destroy()}},bi=["script","style","iframe","object","embed","meta","link","xml","svg","math","canvas","form","input","button","select","textarea"].join(","),yi=[".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(","),vi=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"]),Ci=new Set(["http:","https:","mailto:"]),wi="p,div,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table",_i="p,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table",ki=new Set(["colspan","rowspan"]),Mi=new Set(["TD","TH"]),Ei=new Set(["M","O","V","W"]),xi=new Set(["SPAN"]),Ti=new Set(["color","background-color"]),Ni=/^#([\da-f]{3}|[\da-f]{6}|[\da-f]{8})$/i,on=new Map([["B","strong"],["DEL","s"],["I","em"],["STRIKE","s"],["TT","code"]]),Si=e=>{try{const t=new URL(e,window.location.href);return Ci.has(t.protocol)}catch{return!1}},yt=e=>{e.replaceWith(...e.childNodes)},vt=(e,t)=>{const n=e.ownerDocument.createElement(t);return n.append(...e.childNodes),e.replaceWith(n),n},Li=e=>{const t=e.tagName.split(":")[0]??"";return e.tagName.includes(":")&&Ei.has(t)},zn=e=>{[...e.childNodes].forEach(t=>{if(t.nodeType===Node.COMMENT_NODE){t.remove();return}zn(t)})},Wn=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}Wn(t)})},Ri=e=>/^[1-9]\d*$/.test(e.trim()),Ct=e=>{const t=e.trim().toLowerCase(),[,n]=t.match(Ni)??[];return n?n.length===8?`#${n.slice(2)}`:t:null},Ii=(e,t)=>{if(!xi.has(e))return null;const n=t.split(";").flatMap(r=>{const[o,...a]=r.split(":"),s=o==null?void 0:o.trim().toLowerCase(),i=Ct(a.join(":"));return!s||!i||!Ti.has(s)?[]:[`${s}: ${i}`]});return n.length>0?`${n.join("; ")};`:null},Pi=e=>{if(Li(e)){e.remove();return}if(!vi.has(e.tagName)){yt(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=Ii(e.tagName,t.value);if(r){e.setAttribute(t.name,r);return}e.removeAttribute(t.name);return}if(e.tagName==="A"&&n==="href"){if(Si(t.value))return;e.removeAttribute(t.name);return}if(!(e.tagName==="A"&&["target","rel","title"].includes(n))){if(e.tagName==="PRE"&&n===Oe){const r=de(t.value);if(r){e.setAttribute(t.name,r);return}e.removeAttribute(t.name);return}if(e.tagName==="FONT"&&n==="color"){if(Ct(t.value))return;e.removeAttribute(t.name);return}Mi.has(e.tagName)&&ki.has(n)&&Ri(t.value)||e.removeAttribute(t.name)}})},$i=e=>{[...e.querySelectorAll("font")].forEach(t=>{const n=t.getAttribute("color"),r=n?Ct(n):null,o=vt(t,"span");r&&o.setAttribute("style",`color: ${r};`)})},Ai=e=>{[...e.querySelectorAll([...on.keys()].join(","))].forEach(t=>{const n=on.get(t.tagName);n&&vt(t,n)})},Bi=e=>{[...e.querySelectorAll("div")].reverse().forEach(t=>{if(t.querySelector(_i)){yt(t);return}vt(t,"p")})},Di=e=>{[...e.querySelectorAll("span")].forEach(t=>{t.attributes.length===0&&yt(t)})},Hi=e=>!["P","DIV","SPAN"].includes(e.tagName)||e.querySelector("br,table,ul,ol")?!1:!(e.textContent??"").trim(),an=e=>{[...e.querySelectorAll("p,div,span")].reverse().forEach(t=>{Hi(t)&&t.remove()})},Oi=e=>{var t;return e.nodeType===Node.TEXT_NODE?!!((t=e.textContent)!=null&&t.trim()):e.nodeType!==Node.ELEMENT_NODE?!1:!e.matches(wi)},Fi=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(Oi(r)){t.push(r);return}n()}),n()},zi=e=>{const t=document.createElement("template");t.innerHTML=e,t.content.querySelectorAll(bi).forEach(r=>{r.remove()}),t.content.querySelectorAll(yi).forEach(r=>{r.remove()}),zn(t.content),$o(t.content),[...t.content.querySelectorAll("*")].forEach(Pi),Wn(t.content),$i(t.content),Ai(t.content),Bi(t.content),Di(t.content),an(t.content);const n=document.createElement("div");return n.append(t.content.cloneNode(!0)),Fi(n),an(n),n.innerHTML},Wi=/^https?:\/\/[^\s<>"']+\.[^\s<>"']+$/i,Vi=/^www\.[^\s<>"']+\.[^\s<>"']+$/i,qi=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"),Ui=/^[^\s@]+@[^\s@]+\.[^\s@]+$/i,ji=/^\s*```([a-z0-9_+#.-]+)\s*\n([\s\S]*?)\n?```\s*$/i,Ki=e=>e.type.startsWith("image/")?"image":e.type.startsWith("video/")?"video":null,Vn=e=>e?[...e].flatMap(t=>{const n=Ki(t);return n?[{type:n,file:t}]:[]}):[],We=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]:[]}),Gi=e=>({name:e.name,mimeType:e.type||void 0,size:e.size,data:e}),Yi=e=>{const[,t,n]=e.replace(/\r\n/g,`
6
+ `).match(ji)??[],r=de(t);return n!==void 0&&r!==null?{code:n,language:r}:null},Xi=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)||Ui.test(t)?!1:Wi.test(t)||Vi.test(t)||qi.test(t)},qn=(e,{isReadonly:t,executeCommand:n})=>t()||!Xi(e.text)?!1:(n({type:"link.set",href:e.text.trim()}),!0),rt=(e,{isReadonly:t,canUploadMedia:n,uploadMediaFile:r})=>{if(t()||!n())return!1;const o=Vn(e.files);return o.length===0?!1:(o.forEach(({type:a,file:s})=>{r(a,s)}),!0)},Ji=(e,t)=>{const r=new DOMParser().parseFromString(t,"text/html");Ao(r.body);const o=ot.$generateNodesFromDOM(e,r);return Bo(o,r.body),o},Qi=(e,t)=>{const n=Ji(e,t);if(n.length===0)return!1;if(c.$getSelection()||c.$getRoot().selectEnd(),n.some(W.$isCodeNode)){n.forEach(o=>{He.$insertNodeToNearestRoot(o)});const r=n[n.length-1];return r&&W.$isCodeNode(r)&&c.$insertNodes([c.$createParagraphNode()]),!0}return c.$insertNodes(n),!0},Zi=(e,{editor:t,isReadonly:n})=>{if(n())return!1;if(!e.html.trim())return tl(e,{editor:t,isReadonly:n});const r=zi(e.html);return r.trim()?(t.update(()=>{Qi(t,r)}),!0):!1},el=(e,{editor:t,isReadonly:n})=>{if(n()||e.html.trim()||!e.text.trim())return!1;const r=Yi(e.text);return r?(t.update(()=>{const o=Mn(r.language||void 0),a=c.$createParagraphNode();c.$getSelection()||c.$getRoot().selectEnd(),o.append(c.$createTextNode(r.code)),He.$insertNodeToNearestRoot(o),c.$insertNodes([a]),a.selectStart()}),!0):!1},tl=(e,{editor:t,isReadonly:n})=>n()||e.html.trim()||!e.text?!1:(t.update(()=>{c.$getSelection()||c.$getRoot().selectEnd(),c.$insertNodes([c.$createTextNode(e.text)])}),!0),Un=(e,t)=>el(e,t)||Zi(e,t),ce=e=>{e.preventDefault(),e.stopImmediatePropagation()},nl=(e,t)=>rt(e,t)||qn(e,t)||Un(e,t),rl=e=>{const t=n=>{n.defaultPrevented||qn(We(n.clipboardData),e)&&ce(n)};return e.target.addEventListener("paste",t,{capture:!0}),()=>{e.target.removeEventListener("paste",t,{capture:!0})}},ol=e=>{const t=o=>{o.defaultPrevented||rt(We(o.clipboardData),e)&&ce(o)},n=o=>{var s;if(e.isReadonly()||!e.canUploadMedia())return;const a=(s=o.dataTransfer)!=null&&s.files?[...o.dataTransfer.files]:[];Vn(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]:[]};rt(a,e)&&ce(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)}},al=e=>{const t=n=>{n.defaultPrevented||!Un(We(n.clipboardData),e)||ce(n)};return e.target.addEventListener("paste",t,{capture:!0}),()=>{e.target.removeEventListener("paste",t,{capture:!0})}},sl=({target:e,isReadonly:t,onPaste:n,canUploadMedia:r,uploadMediaFile:o,executeCommand:a,editor:s})=>{const i=(d,p)=>nl({text:p.text??d.text,html:p.html??d.html,files:d.files},{isReadonly:t,canUploadMedia:r,uploadMediaFile:o,executeCommand:a,editor:s}),g=d=>{if(t()||!n)return;const p=We(d.clipboardData),m=n({text:p.text,html:p.html,files:p.files.map(Gi)});if(m instanceof Promise){ce(d),m.then(w=>{w!==!0&&w&&i(p,w)});return}if(m===!0){ce(d);return}m&&(ce(d),i(p,m))};return e.addEventListener("paste",g,{capture:!0}),()=>{e.removeEventListener("paste",g,{capture:!0})}},il=e=>e.getKey()==="root"?null:e.getTopLevelElement(),ll=(e,t,n)=>{const r=e.getLastDescendant();return c.$isElementNode(t)?t===e&&n===e.getChildrenSize():r?t===r&&n===t.getTextContentSize():!0},cl=e=>{const t=e.getLastChild();return c.$isLineBreakNode(t)},dl=e=>{const t=c.$createParagraphNode(),n=e.getLastChild();c.$isLineBreakNode(n)&&n.remove(),e.insertAfter(t),t.selectStart()},ul=(e,t)=>{const n=()=>{if(t())return!1;const r=c.$getSelection();if(!c.$isRangeSelection(r)||!r.isCollapsed())return!1;const o=r.anchor,a=o.getNode(),s=il(a);return!ie.$isQuoteNode(s)||!ll(s,a,o.offset)?!1:cl(s)?(dl(s),!0):(r.insertLineBreak(),!0)};return[e.registerCommand(c.INSERT_PARAGRAPH_COMMAND,n,c.COMMAND_PRIORITY_HIGH),e.registerCommand(c.INSERT_LINE_BREAK_COMMAND,r=>r?!1:n(),c.COMMAND_PRIORITY_HIGH)]},gl=["paragraph","heading-1","heading-2","heading-3","quote","code-block","ordered-list","unordered-list","todo-list","divider","upload-image","upload-video","table"],hl={showIcon:!0,loadingText:"加载中",emptyText:"没有匹配的命令",errorText:"命令加载失败"},ml=e=>({...hl,...e}),pl=e=>e.flatMap(t=>t.type==="button"?[t.item]:t.type==="group"?t.items:[]),fl=e=>({...e,toolbarKeys:(e==null?void 0:e.toolbarKeys)??gl}),bl=e=>({id:e.id,label:e.label,command:e.command,icon:e.icon,requiresPayload:e.requiresPayload,payloadPanel:e.payloadPanel,source:"schema"}),yl=(e,t)=>pl(Y.resolveToolbarMenu(fl(t),e)).map(bl),jn=e=>({...e,source:"provider"}),vl=/(?:^|\s)\/([\p{L}\p{N}_-]*)$/u,Cl=e=>e.trim().toLowerCase(),wl=e=>[e.label,e.id,e.description,...e.keywords??[]].filter(Boolean).join(" ").toLowerCase(),_l=(e,t)=>{const n=Cl(t);return n?e.filter(r=>wl(r).includes(n)):e},kl=async(e,t)=>(await Promise.resolve((t==null?void 0:t(e))??[])).map(jn),Ml=e=>"source"in e?e:jn(e),El=({menuSchema:e,slashCommandConfig:t})=>e!==void 0||t!==void 0,xl=()=>{const e=c.$getSelection();if(!c.$isRangeSelection(e)||!e.isCollapsed())return null;const t=e.anchor,n=t.getNode();if(!(n instanceof c.TextNode))return null;const o=n.getTextContent().slice(0,t.offset).match(vl);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}},Tl=()=>{const e=document.createElement("div");return e.className="bridgerte__floating-menu bridgerte__slash-command-menu",e.dataset.visible="false",e},Nl=()=>{const e=document.createElement("span");return e.className="bridgerte__slash-command-anchor",e.setAttribute("aria-hidden","true"),e},sn=(e,t)=>{var s;const n=e.getElementByKey(t.nodeKey),r=bt(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())},Sl=(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"),ft(i,o[e.icon]??pt[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},Ll=(e,t)=>{const n=document.createElement("div");return n.className="bridgerte__slash-command-status",n.dataset.status=e,n.textContent=t,n},Rl=(e,t)=>{switch(e){case"loading":return t.loadingText;case"empty":return t.emptyText;case"error":return t.errorText}},ln=e=>e?{x:e.x,y:e.y,width:e.width,height:e.height}:void 0,Il=({editorRoot:e,contentElement:t,editor:n,isReadonly:r,executeCommand:o,requestPayloadPanel:a,menuSchema:s,slashCommandConfig:i,icons:g={},menuLabels:d,payloadPanelConfig:p,slashCommandMenuConfig:m,onSlashCommandMenuRequest:w,slashCommandProvider:$})=>{const C=Tl(),y=Nl(),x=ml(m),h=ze(s??Y.defaultMenuSchema,{menuLabels:d,payloadPanelConfig:p}),f=yl(h,i),S=new Map(h.map(_=>[_.id,_])),T=El({menuSchema:s,slashCommandConfig:i}),O=_=>{n.update(()=>{const L=c.$getNodeByKey(_.nodeKey);L instanceof c.TextNode&&(L.spliceText(_.startOffset,_.endOffset-_.startOffset,""),L.select(_.startOffset,_.startOffset))})};return On({editorRoot:e,contentElement:t,editor:n,isReadonly:r,menu:C,anchor:y,itemSelector:".bridgerte__slash-command-item",getCurrentTrigger:xl,getTriggerRect:_=>sn(n,_),resolveItems:async _=>{const L=T||!$?_l(f,_):[];try{const A=await kl(_,$);return[...L,...A]}catch(A){if(L.length>0)return L;throw A}},renderItem:(_,L,A)=>Sl(_,L,A,x,g),renderStatus:_=>Ll(_,Rl(_,x)),onStateChange:w?(_,L)=>w({id:`bridgerte-slash-command-menu-${_.requestId}`,query:_.trigger.query,status:_.status,items:_.items,config:x,readonly:r(),anchorRect:ln(L.anchorRect),..._.error?{error:_.error}:{},submit:A=>L.selectItem(Ml(A)),cancel:L.close}):void 0,onSelect:(_,L)=>{O(L);const A=_.source==="schema"?S.get(_.id):void 0;if(A!=null&&A.payloadPanel){const q=sn(n,L);a({menuId:A.id,command:A.command,panel:A.payloadPanel,anchorRect:ln(q??void 0)});return}o(_.command)}}).destroy},cn=32,Ge=e=>{var t;return e instanceof HTMLElement&&e.getAttribute("role")==="checkbox"&&((t=e.parentElement)==null?void 0:t.classList.contains("bridgerte__list--todo"))===!0},Ye=e=>e instanceof HTMLElement?e.closest('[role="checkbox"]'):null,Pl=e=>c.$getNearestNodeFromDOMNode(e),dn=e=>e.button===0,Xe=(e,t)=>{const n=t.getBoundingClientRect();return t.dir==="rtl"?e.clientX>=n.right-cn&&e.clientX<=n.right:e.clientX>=n.left&&e.clientX<=n.left+cn},un=e=>{e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()},$l=({contentElement:e,editor:t,isReadonly:n})=>{let r=0;const o=g=>{if(n()||!dn(g))return;const d=Ye(g.target);!d||!Ge(d)||Xe(g,d)&&un(g)},a=(g,d)=>{un(g),t.update(()=>{const p=Pl(d);ee.$isListItemNode(p)&&p.toggleChecked()})},s=g=>{if(n()||!dn(g)||Date.now()-r<700)return;const d=Ye(g.target);!d||!Ge(d)||Xe(g,d)&&a(g,d)},i=g=>{if(n()||g.pointerType!=="touch")return;const d=Ye(g.target);!d||!Ge(d)||Xe(g,d)&&(r=Date.now(),a(g,d))};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)}},Je=(e,t)=>{var n;return((n=e.floatingMenus)==null?void 0:n[t])!==!1},Al=({options:e,lexicalEditor:t,editorRoot:n,contentElement:r,historyState:o,isReadonly:a,executeCommand:s,requestPayloadPanel:i,uploadMediaFile:g,canUploadMedia:d,syncAfterEditorUpdate:p,refreshCommandStates:m,getCommandStates:w,setCanUndo:$,setCanRedo:C,enableKeyboardShortcuts:y})=>{const x=Je(e,"mention"),h=Je(e,"slash"),f=Je(e,"hoverbar"),S=Ps(t),T=c.mergeRegister(sl({target:r,isReadonly:a,onPaste:e.onPaste,canUploadMedia:d,uploadMediaFile:g,executeCommand:s,editor:t}),ol({target:r,isReadonly:a,canUploadMedia:d,uploadMediaFile:g}),rl({target:r,isReadonly:a,executeCommand:s}),al({target:r,editor:t,isReadonly:a}),ws({target:r,isReadonly:a}),ie.registerRichText(t),gn.registerHistory(t,o,wo),ee.registerList(t),ee.registerCheckList(t),...ul(t,a),...Mr(t,a),$l({contentElement:r,editor:t,isReadonly:a}),x?fi({editorRoot:n,contentElement:r,editor:t,isReadonly:a,executeCommand:s,mentionProvider:e.mentionProvider,mentionMenuConfig:e.mentionMenuConfig,onMentionMenuRequest:e.onMentionMenuRequest}):()=>{},f?zs({editorRoot:n,contentElement:r,editor:t,isReadonly:a,executeCommand:s,requestPayloadPanel:i,getCommandStates:w,menuSchema:e.menuSchema,hoverbarConfig:e.hoverbarConfig,icons:e.icons,menuLabels:e.menuLabels,payloadPanelConfig:e.payloadPanelConfig,onHoverbarMenuRequest:e.onHoverbarMenuRequest}):()=>{},V.registerTablePlugin(t),fs({editor:t}),h?Il({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}):()=>{},Ir({editor:t,contentElement:r,isReadonly:a}),y?Ks({target:r,isReadonly:a,executeCommand:s}):()=>{},t.registerUpdateListener(()=>{p(),m()}),t.registerCommand(c.SELECTION_CHANGE_COMMAND,()=>(m(),!1),c.COMMAND_PRIORITY_LOW),t.registerCommand(c.CAN_UNDO_COMMAND,O=>($(O),!1),c.COMMAND_PRIORITY_LOW),t.registerCommand(c.CAN_REDO_COMMAND,O=>(C(O),!1),c.COMMAND_PRIORITY_LOW));return{destroy(){T(),S.destroy()}}};function Kn(e,t={}){const n=gn.createEmptyHistoryState(),r=t.mediaDefaultWidthPercent??50,{contentElement:o,placeholderElement:a}=us(e,{placeholder:t.placeholder??Nr}),s=t.keyboardShortcuts===!0;let i=t.readonly??!1,g=!1,d=Qe(t.value);const p=c.createEditor({namespace:_o,editable:!i,nodes:[ie.HeadingNode,ie.QuoteNode,W.CodeNode,W.CodeHighlightNode,ee.ListNode,ee.ListItemNode,V.TableNode,V.TableRowNode,V.TableCellNode,G.LinkNode,G.AutoLinkNode,we,me,ke],theme:so,onError:L=>{te(t,"lexical.runtime","Lexical runtime error.",L)}});V.setScrollableTablesActive(p,!0);const m=()=>g,w=()=>i,$=()=>{m()||(Lr({editor:p,contentElement:o}),Rr({contentElement:o,placeholderElement:a}))},C=gs({editor:p}),y=ko({lexicalEditor:p,options:t,isDestroyed:m,setContent:L=>{d=L},syncPlaceholder:$}),x=Xr({lexicalEditor:p,options:t,isDestroyed:m,canUploadMedia:()=>t.uploadAdapter!==void 0,isReadonly:w}),h=Co({container:e,lexicalEditor:p,options:t,isDestroyed:m,isReadonly:w,reportError:te}),f=()=>{o.contentEditable=String(!i),p.setEditable(!i)},T=ds({editorRoot:e,lexicalEditor:p,isReadonly:w,restoreEditorFocus:L=>{C.restore(),p.focus(L)},executeCommand:h,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}),O=()=>Kr(t),E=()=>Gr(t),M=L=>{m()||(C.capture(),T.payloadPanelController.open(L))};e.dataset.readonly=String(i),e.addEventListener("focusin",O),e.addEventListener("focusout",E),e.style.setProperty("--bridgerte-media-display-width",`${r}%`);const I=Al({options:t,lexicalEditor:p,editorRoot:e,contentElement:o,historyState:n,isReadonly:w,executeCommand:h,requestPayloadPanel:M,uploadMediaFile:h.uploadMediaFile,canUploadMedia:()=>t.uploadAdapter!==void 0,syncAfterEditorUpdate:y.syncAfterEditorUpdate,refreshCommandStates:x.refreshCommandStates,getCommandStates:x.getCommandStates,setCanUndo:x.setCanUndo,setCanRedo:x.setCanRedo,enableKeyboardShortcuts:s});p.setRootElement(o),y.suppressNextChange(),d=fr(p,t.value),f();const _={getContent(){return m()||(y.clearContentChangeTimer(),y.syncContent(!1)),d},setContent(L){m()||(y.clearContentChangeTimer(),d=Qe(L),y.suppressNextChange(),Cn(p,d),y.enforceCurrentMaxLength(),$(),p.dispatchCommand(c.CLEAR_HISTORY_COMMAND,void 0),x.setHistoryAvailability(!1,!1),y.syncContent(!0))},executeCommand(L){h(L)},requestPayloadPanel:M,getCommandStates:x.getCommandStates,subscribeCommandStateChange:x.subscribeCommandStateChange,setReadonly(L){m()||(i=L,e.dataset.readonly=String(i),f(),x.refreshCommandStates())},focus(){m()||p.focus()},blur(){m()||o.blur()},destroy(){m()||(g=!0,y.clearContentChangeTimer(),T.destroy(),h.destroy(),x.destroy(),C.clear(),I.destroy(),p.setRootElement(null),e.removeEventListener("focusin",O),e.removeEventListener("focusout",E),e.classList.remove("bridgerte"),e.textContent="",delete e.dataset.readonly)}};return y.syncContent(!1),$(),x.refreshCommandStates(),Yr(t,_),_}const Bl=e=>!De.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",Dl=e=>({id:e,type:"editor.ready",payload:{menuSchema:Y.defaultMenuSchema,eventTiming:De.defaultBridgeEventTiming,version:se.BRIDGERTE_CONTENT_VERSION}}),Hl=e=>`native-upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`,Ol=({container:e,transport:t})=>{var v;let n=null,r=!1,o=null,a=null,s=null,i=0;const g=new Map,d=new Map,p=new Map,m=u=>{r||t.postMessage(u)},w=()=>{s&&(clearTimeout(s),s=null)},$=()=>{w(),s=setTimeout(()=>{if(r)return;const u=Math.ceil(e.getBoundingClientRect().height);u!==i&&(i=u,m({type:"editor.heightChange",payload:{height:u}}))},De.BRIDGE_HEIGHT_CHANGE_THROTTLE_MS)},C=u=>{if(!n)return;const k=n.getContent();m({id:u,type:"editor.content",payload:k}),m({id:u,type:"editor.contentChange",payload:k})},y=u=>{const k=u.payload,l=g.get(k.assetId);if(l){if(g.delete(k.assetId),l.source==="uploadAdapter"){l.resolve(k.result);return}n==null||n.executeCommand({type:l.type==="image"?"media.insertImage":"media.insertVideo",url:k.result.url,poster:k.result.poster,width:k.result.width,height:k.result.height,displayWidthPercent:50,assetId:k.assetId})}},x=u=>{const k=u.payload,l=g.get(k.assetId);if(l){if(g.delete(k.assetId),l.source==="uploadAdapter"){l.reject(new Error(k.message));return}m({id:u.id,type:"editor.error",payload:{code:"bridge.uploadRejected",message:k.message}})}},h=(u,k)=>new Promise((l,b)=>{g.set(k,{type:u,assetId:k,source:"uploadAdapter",resolve:l,reject:b}),m({type:"editor.uploadRequest",payload:{assetId:k,type:u,accept:u==="image"?"image/*":"video/*"}})}),f=u=>{const k=Hl(u);g.set(k,{type:u,assetId:k,source:"nativePicker"}),m({type:"editor.uploadRequest",payload:{assetId:k,type:u,accept:u==="image"?"image/*":"video/*"}})},S=u=>{const k=d.get(u.payload.requestId);k&&(d.delete(u.payload.requestId),k.request.submit(u.payload.values))},T=u=>{const k=d.get(u.payload.requestId);k&&(d.delete(u.payload.requestId),k.request.cancel())},O=u=>{const k=p.get(u);return k?(p.delete(u),k.unsubscribeDismiss(),k):null},E=()=>{p.forEach(u=>{u.unsubscribeDismiss()}),p.clear()},M=u=>{O(u.id);const k=u.subscribeDismiss(()=>{O(u.id)&&m({type:"editor.menuCanceled",payload:{requestId:u.id}})});p.set(u.id,{request:u,unsubscribeDismiss:k})},I=u=>{const k=O(u.payload.requestId);k&&k.request.submit(u.payload.menuItemId)},_=u=>{const k=O(u.payload.requestId);k&&k.request.cancel()},L=u=>(M(u),m({type:"editor.menuRequest",payload:{kind:"hoverbar",id:u.id,items:u.items,commandStates:u.commandStates,readonly:u.readonly,anchorRect:u.anchorRect}}),!0),A=u=>(M(u),m({type:"editor.menuRequest",payload:{kind:"mediaControls",id:u.id,assetId:u.assetId,mediaType:u.mediaType,status:u.status,displayWidthPercent:u.displayWidthPercent,align:u.align,items:u.items,readonly:u.readonly,anchorRect:u.anchorRect,url:u.url,title:u.title,alt:u.alt,poster:u.poster,width:u.width,height:u.height,duration:u.duration,mimeType:u.mimeType,size:u.size}}),!0),q=u=>(M(u),m({type:"editor.menuRequest",payload:{kind:"tableControls",id:u.id,items:u.items,readonly:u.readonly,anchorRect:u.anchorRect}}),!0),K=(u,k)=>{o==null||o(),g.clear(),d.clear(),E(),n==null||n.destroy(),n=Kn(e,{...k,uploadAdapter:{uploadImage(l,b){return h("image",b.assetId)},uploadVideo(l,b){return h("video",b.assetId)}},onContentChange:l=>{m({type:"editor.contentChange",payload:l}),$()},onCommandStateChange:l=>{m({type:"editor.commandStateChange",payload:l})},onPayloadPanelRequest:l=>(d.set(l.id,{request:l}),m({type:"editor.payloadPanelRequest",payload:{menuId:l.menuId,command:l.command,panel:l.panel,anchorRect:l.anchorRect,currentValues:l.currentValues,id:l.id,readonly:l.readonly}}),!0),onHoverbarMenuRequest:L,onMediaControlsRequest:A,onTableControlsRequest:q,onError:l=>{m({type:"editor.error",payload:l})}}),o=n.subscribeCommandStateChange(l=>{m({type:"editor.commandStateChange",payload:l})}),m(Dl(u)),$()},D=u=>{if(u.type==="media.pickImage"){f("image");return}if(u.type==="media.pickVideo"){f("video");return}n==null||n.executeCommand(u)},B=u=>{if(!(r||!Bl(u)))switch(u.type){case"editor.init":K(u.id,u.payload);return;case"editor.executeCommand":D(u.payload);return;case"editor.setContent":n==null||n.setContent(u.payload);return;case"editor.setReadonly":n==null||n.setReadonly(u.payload.readonly);return;case"editor.requestContent":C(u.id);return;case"editor.payloadPanelResolved":S(u);return;case"editor.payloadPanelCanceled":T(u);return;case"editor.menuResolved":I(u);return;case"editor.menuCanceled":_(u);return;case"editor.uploadResolved":y(u);return;case"editor.uploadRejected":x(u);return}};return a=((v=t.addMessageListener)==null?void 0:v.call(t,B))??null,{receive:B,destroy(){r||(r=!0,w(),a==null||a(),o==null||o(),g.clear(),d.clear(),E(),n==null||n.destroy(),n=null)}}};exports.appendMenuIcon=ft;exports.bindTouchPressedState=X;exports.createFloatingLayer=mt;exports.createRichTextEditor=Kn;exports.createWebViewBridgeRuntime=Ol;exports.defaultMenuIcons=pt;exports.getMenuStateForItem=ut;exports.getPayloadPanelCurrentValues=Nn;exports.resolveMenuSchemaForDom=ze;
7
+ //# sourceMappingURL=index-CQx3NGKY.cjs.map