@thebase/ui
Version:
CDN-installable Owl and Bootstrap 5 UI component library.
2 lines (1 loc) • 2.8 kB
JavaScript
import"./chunk-23NN352E.js";async function lt({root:t,value:o="",onChange:e,collaborative:r=!1,room:s="bu-markdown",password:i,signaling:m,user:w}={}){if(!t)throw new Error("BaseUI markdown editor: missing root element.");let[C,M,T,U,D,F,I,N,W,x,K,O,R,_]=await Promise.all([import("./core-T2SC7EXQ.js"),import("./commonmark-263P63KC.js"),import("./gfm-IHXC5DQO.js"),import("./history-VOPZ3HXQ.js"),import("./clipboard-5NOA4E34.js"),import("./cursor-Z4UWEH5V.js"),import("./indent-WYLZY3CZ.js"),import("./upload-DA4OHNVQ.js"),import("./block-G2R773CV.js"),import("./tooltip-5CTXOYIA.js"),import("./slash-3TY5YM2E.js"),import("./streaming-S7JA52O3.js"),import("./diff-K3BORLOX.js"),import("./listener-GNT2L5RH.js")]),{Editor:j,defaultValueCtx:L,rootCtx:V}=C,{commonmark:q}=M,{gfm:z}=T,{history:G}=U,{clipboard:H}=D,{cursor:J}=F,{indent:Q}=I,{upload:X}=N,{block:Y,BlockProvider:h}=W,{tooltipFactory:Z,TooltipProvider:$}=x,{slashFactory:tt,SlashProvider:et}=K,{streaming:ot}=O,{diff:rt}=R,{listener:nt,listenerCtx:st}=_,v=Z("BASEUI_MARKDOWN"),S=tt("BASEUI_MARKDOWN"),c=[],a=j.make().config(n=>{n.set(V,t),n.set(L,String(o??"")),n.set(v.key,ct(t,$)),n.set(S.key,at(t,et)),n.get(st).markdownUpdated((f,l,d)=>{l!==d&&e?.(l,d,f)})}).use(q).use(z).use(H).use(J).use(Q).use(X).use(Y).use(v).use(S).use(ot).use(rt).use(nt);if(r){let[{Doc:n},{WebrtcProvider:f},l]=await Promise.all([import("./yjs-H3MVN7TP.js"),import("./y-webrtc-VQGJXSXG.js"),import("./lib-QZEOHNSS.js")]),{collab:d,collabServiceCtx:it}=l,u=new n,g={};i&&(g.password=i),Array.isArray(m)&&m.length&&(g.signaling=m);let p=new f(s,u,g),P=w&&typeof w=="object"?w:{};p.awareness?.setLocalStateField("user",{name:P.name||"Anonymous",color:P.color||"#2563eb",...P}),a.use(d),c.push(()=>p.destroy?.(),()=>u.destroy());let b=await a.create();return b.action(A=>{E(A,t,h,c),A.get(it).bindDoc(u).setAwareness(p.awareness).applyTemplate(String(o??"")).connect()}),{editor:b,provider:p,doc:u,destroy:()=>B(b,c)}}a.use(G);let y=await a.create();return y.action(n=>E(n,t,h,c)),{editor:y,provider:null,doc:null,destroy:()=>B(y,c)}}function k(t,o=""){let e=document.createElement("div");return e.className=t,e.textContent=o,e.setAttribute("aria-hidden","true"),e}function ct(t,o){return{view:e=>{let r=new o({root:t,content:k("bu-markdown-editor-tooltip","Markdown tools")});return r.update(e),{update:(s,i)=>r.update(s,i),destroy:()=>r.destroy()}}}}function at(t,o){return{view:e=>{let r=new o({root:t,content:k("bu-markdown-editor-slash","Type Markdown syntax")});return r.update(e),{update:(s,i)=>r.update(s,i),destroy:()=>r.destroy()}}}}function E(t,o,e,r){let s=new e({ctx:t,root:o,content:k("bu-markdown-editor-block-handle","::")});s.update(),r.push(()=>s.destroy())}function B(t,o){for(let e of o)e();t.destroy()}export{lt as createMilkdownMarkdownEditor};