(function(){var f=Object.defineProperty,E=(e,t,r)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,a=(e,t,r)=>E(e,typeof t!="symbol"?t+"":t,r);function L(e,t){if(!e)return;function r(n){n.target===this&&(n.preventDefault(),n.stopPropagation(),t())}function s(n){n.key.startsWith("Esc")&&(n.preventDefault(),t())}e?.addEventListener("click",r),window.addCleanup(()=>e?.removeEventListener("click",r)),document.addEventListener("keydown",s),window.addCleanup(()=>document.removeEventListener("keydown",s))}function w(e){for(;e.firstChild;)e.removeChild(e.firstChild)}var C=class{constructor(e,t){a(this,"container",e),a(this,"content",t),a(this,"isDragging",!1),a(this,"startPan",{x:0,y:0}),a(this,"currentPan",{x:0,y:0}),a(this,"scale",1),a(this,"MIN_SCALE",.5),a(this,"MAX_SCALE",3),a(this,"cleanups",[]),this.setupEventListeners(),this.setupNavigationControls(),this.resetTransform()}setupEventListeners(){let e=this.onMouseDown.bind(this),t=this.onMouseMove.bind(this),r=this.onMouseUp.bind(this),s=this.onTouchStart.bind(this),n=this.onTouchMove.bind(this),o=this.onTouchEnd.bind(this),i=this.resetTransform.bind(this);this.container.addEventListener("mousedown",e),document.addEventListener("mousemove",t),document.addEventListener("mouseup",r),this.container.addEventListener("touchstart",s,{passive:!1}),document.addEventListener("touchmove",n,{passive:!1}),document.addEventListener("touchend",o),window.addEventListener("resize",i),this.cleanups.push(()=>this.container.removeEventListener("mousedown",e),()=>document.removeEventListener("mousemove",t),()=>document.removeEventListener("mouseup",r),()=>this.container.removeEventListener("touchstart",s),()=>document.removeEventListener("touchmove",n),()=>document.removeEventListener("touchend",o),()=>window.removeEventListener("resize",i))}cleanup(){for(let e of this.cleanups)e()}setupNavigationControls(){let e=document.createElement("div");e.className="mermaid-controls";let t=this.createButton("+",()=>this.zoom(.1)),r=this.createButton("-",()=>this.zoom(-.1)),s=this.createButton("Reset",()=>this.resetTransform());e.appendChild(r),e.appendChild(s),e.appendChild(t),this.container.appendChild(e)}createButton(e,t){let r=document.createElement("button");return r.textContent=e,r.className="mermaid-control-button",r.addEventListener("click",t),window.addCleanup(()=>r.removeEventListener("click",t)),r}onMouseDown(e){e.button===0&&(this.isDragging=!0,this.startPan={x:e.clientX-this.currentPan.x,y:e.clientY-this.currentPan.y},this.container.style.cursor="grabbing")}onMouseMove(e){this.isDragging&&(e.preventDefault(),this.currentPan={x:e.clientX-this.startPan.x,y:e.clientY-this.startPan.y},this.updateTransform())}onMouseUp(){this.isDragging=!1,this.container.style.cursor="grab"}onTouchStart(e){if(e.touches.length!==1)return;this.isDragging=!0;let t=e.touches[0];this.startPan={x:t.clientX-this.currentPan.x,y:t.clientY-this.currentPan.y}}onTouchMove(e){if(!this.isDragging||e.touches.length!==1)return;e.preventDefault();let t=e.touches[0];this.currentPan={x:t.clientX-this.startPan.x,y:t.clientY-this.startPan.y},this.updateTransform()}onTouchEnd(){this.isDragging=!1}zoom(e){let t=Math.min(Math.max(this.scale+e,this.MIN_SCALE),this.MAX_SCALE),r=this.content.getBoundingClientRect(),s=r.width/2,n=r.height/2,o=t-this.scale;this.currentPan.x-=s*o,this.currentPan.y-=n*o,this.scale=t,this.updateTransform()}updateTransform(){this.content.style.transform=`translate(${this.currentPan.x}px, ${this.currentPan.y}px) scale(${this.scale})`}resetTransform(){let e=this.content.querySelector("svg").getBoundingClientRect(),t=e.width/this.scale,r=e.height/this.scale;this.scale=1,this.currentPan={x:(this.container.clientWidth-t)/2,y:(this.container.clientHeight-r)/2},this.updateTransform()}},b=["--secondary","--tertiary","--gray","--light","--lightgray","--highlight","--dark","--darkgray","--codeFont"],m;async function v(){let e=document.querySelector(".center").querySelectorAll("code.mermaid");if(e.length===0)return;m||(m=await import("https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.4.0/mermaid.esm.min.mjs"));let t=m.default,r=new WeakMap;for(let n of e)r.set(n,n.innerText);async function s(){for(let i of e){i.removeAttribute("data-processed");let c=r.get(i);c&&(i.innerHTML=c)}let n=b.reduce((i,c)=>(i[c]=window.getComputedStyle(document.documentElement).getPropertyValue(c),i),{}),o=document.documentElement.getAttribute("saved-theme")==="dark";t.initialize({startOnLoad:!1,securityLevel:"loose",theme:o?"dark":"base",themeVariables:{fontFamily:n["--codeFont"],primaryColor:n["--light"],primaryTextColor:n["--darkgray"],primaryBorderColor:n["--tertiary"],lineColor:n["--darkgray"],secondaryColor:n["--secondary"],tertiaryColor:n["--tertiary"],clusterBkg:n["--light"],edgeLabelBackground:n["--highlight"]}}),await t.run({nodes:e})}await s(),document.addEventListener("themechange",s),window.addCleanup(()=>document.removeEventListener("themechange",s));for(let n=0;n{let y=d.querySelector("#mermaid-space"),u=d.querySelector(".mermaid-content");if(!u)return;w(u);let M=o.querySelector("svg").cloneNode(!0);u.appendChild(M),d.classList.add("active"),y.style.cursor="grab",h=new C(y,u)},P=()=>{d.classList.remove("active"),h?.cleanup(),h=null};l.addEventListener("click",p),L(d,P),window.addCleanup(()=>{h?.cleanup(),l.removeEventListener("click",p)})}}document.addEventListener("nav",v),document.addEventListener("render",v)})();