@kaddo/cli 3.78.0 → 3.79.0

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.
@@ -41,4 +41,4 @@ Error generating stack: `+e.message+`
41
41
  `,`
42
42
  +`).split(`
43
43
  `));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,v.useEffect)(()=>{let n=t?.target??$E,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&Mw(e))return!1;let n=nD(e.code,s);if(a.current.add(e[n]),tD(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=nD(e.code,s);tD(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function tD(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function nD(e,t){return t.includes(e)?`code`:`key`}var rD=()=>{let e=EE();return(0,v.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=vw(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return pw(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=mw(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function iD(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)aD(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function aD(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing)}}function oD(e,t){return iD(e,t)}function sD(e,t){return iD(e,t)}function cD(e,t){return{id:e,type:`select`,selected:t}}function lD(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);(a.selected!==void 0||e)&&a.selected!==e&&(n&&(a.selected=e),r.push(cD(a.id,e)))}return r}function uD({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function dD(e){return{id:e.id,type:`remove`}}var fD=dw(`React Flow`,`https://reactflow.dev/`);function pD(e,t,n={}){return Gw(e,t,{...n,onError:n.onError??fD})}var mD=e=>zC(e),hD=e=>RC(e);function gD(e){return(0,v.forwardRef)(e)}var _D=typeof window<`u`?v.useLayoutEffect:v.useEffect;function vD(e){let[t,n]=(0,v.useState)(BigInt(0)),[r]=(0,v.useState)(()=>yD(()=>n(e=>e+BigInt(1))));return _D(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function yD(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var bD=(0,v.createContext)(null);function xD({children:e}){let t=EE(),n=vD((0,v.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=uD({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=vD((0,v.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(uD({items:s,lookup:o}))},[])),i=(0,v.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,x.jsx)(bD.Provider,{value:i,children:e})}function SD(){let e=(0,v.useContext)(bD);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var CD=e=>!!e.panZoom;function wD(){let e=rD(),t=EE(),n=SD(),r=TE(CD),i=(0,v.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=mD(e)?e:n.get(e.id),a=i.parentId?Cw(i.position,i.measured,i.parentId,n,r):i.position;return iw({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&mD(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&hD(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await YC({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(dD);o?.(f),c(e)}if(m){let e=d.map(dD);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=lw(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=iw(s?r:a),l=cw(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=lw(e)?e:a(e);if(!r)return!1;let i=cw(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return HC(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??Tw();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,v.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var TD=e=>e.selected,ED=typeof window<`u`?window:void 0;function DD({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=EE(),{deleteElements:r}=wD(),i=eD(e,{actInsideInputWithModifier:!1}),a=eD(t,{target:ED});(0,v.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(TD),edges:e.filter(TD)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,v.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function OD(e){let t=EE();(0,v.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=kw(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,DC.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var kD={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},AD=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function jD({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:i,panOnScrollSpeed:a=.5,panOnScrollMode:o=MC.Free,zoomOnDoubleClick:s=!0,panOnDrag:c=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:p,preventScrolling:m=!0,children:h,noWheelClassName:g,noPanClassName:_,onViewportChange:y,isControlledViewport:b,paneClickDistance:S,selectionOnDrag:C}){let w=EE(),T=(0,v.useRef)(null),{userSelectionActive:E,lib:D,connectionInProgress:O}=TE(AD,xE),k=eD(p),A=(0,v.useRef)();OD(T);let j=(0,v.useCallback)(e=>{y?.({x:e[0],y:e[1],zoom:e[2]}),b||w.setState({transform:e})},[y,b]);return(0,v.useEffect)(()=>{if(T.current){A.current=eE({domNode:T.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:l,onDraggingChange:e=>w.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=w.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=w.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=w.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=A.current.getViewport();return w.setState({panZoom:A.current,transform:[e,t,n],domNode:T.current.closest(`.react-flow`)}),()=>{A.current?.destroy()}}},[]),(0,v.useEffect)(()=>{A.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panActivationKeyPressed:i,panOnScrollSpeed:a,panOnScrollMode:o,zoomOnDoubleClick:s,panOnDrag:c,zoomActivationKeyPressed:k,preventScrolling:m,noPanClassName:_,userSelectionActive:E,noWheelClassName:g,lib:D,onTransformChange:j,connectionInProgress:O,selectionOnDrag:C,paneClickDistance:S})},[e,t,n,r,i,a,o,s,c,k,m,_,E,g,D,j,O,C,S]),(0,x.jsx)(`div`,{className:`react-flow__renderer`,ref:T,style:kD,children:h})}var MD=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function ND(){let{userSelectionActive:e,userSelectionRect:t}=TE(MD,xE);return e&&t?(0,x.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var PD=(e,t)=>n=>{n.target===t.current&&e?.(n)},FD=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function ID({isSelecting:e,selectionKeyPressed:t,selectionMode:n=NC.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,v.useRef)(0),_=EE(),{userSelectionActive:y,elementsSelectable:b,dragging:S,panBy:C,autoPanSpeed:w}=TE(FD,xE),T=b&&(e||y),E=(0,v.useRef)(null),D=(0,v.useRef)(),O=(0,v.useRef)(new Set),k=(0,v.useRef)(new Set),A=(0,v.useRef)(!1),j=(0,v.useRef)(!1),M=(0,v.useRef)({x:0,y:0}),N=(0,v.useRef)(!1),P=e=>{if(j.current||A.current||_.getState().connection.inProgress){j.current=!1,A.current=!1;return}l?.(e),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},F=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},ee=d?e=>d(e):void 0,I=e=>{j.current&&=(e.stopPropagation(),!1)},te=n=>{if(n.pointerType===`touch`&&r!==!1&&!t)return;let{domNode:i,transform:a}=_.getState();if(D.current=i?.getBoundingClientRect(),!D.current)return;let s=n.target===E.current;if(!s&&n.target.closest(`.nokey`)||!e||!(o&&s||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),j.current=!1;let{x:c,y:l}=Pw(n.nativeEvent,D.current),u=pw({x:c,y:l},a);_.setState({userSelectionRect:{width:0,height:0,startX:u.x,startY:u.y,x:c,y:l}}),s||(n.stopPropagation(),n.preventDefault())};function ne(e,t){let{userSelectionRect:r}=_.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=_.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=mw(d,i),m={startX:d.x,startY:d.y,x:e<f?e:f,y:t<p?t:p,width:Math.abs(e-f),height:Math.abs(t-p)},h=O.current,g=k.current;O.current=new Set(WC(a,m,i,n===NC.Partial,!0).map(e=>e.id)),k.current=new Set;let v=u?.selectable??!0;for(let e of O.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??v)&&k.current.add(e)}}ww(h,O.current)||c(lD(a,O.current,!0)),ww(g,k.current)||l(lD(o,k.current)),_.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function L(){if(!i||!D.current)return;let[e,t]=ew(M.current,D.current,w);C({x:e,y:t}).then(e=>{if(!j.current||!e){g.current=requestAnimationFrame(L);return}let{x:t,y:n}=M.current;ne(t,n),g.current=requestAnimationFrame(L)})}let re=()=>{cancelAnimationFrame(g.current),g.current=0,N.current=!1};(0,v.useEffect)(()=>()=>re(),[]);let ie=e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=_.getState();if(!D.current||!n)return;let{x:o,y:c}=Pw(e.nativeEvent,D.current);M.current={x:o,y:c};let l=mw({x:n.startX,y:n.startY},r);if(!j.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}j.current=!0,N.current||=(L(),!0),ne(o,c)},ae=e=>{if(!T){e.target===E.current&&_.getState().connection.inProgress&&(A.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!y&&e.target===E.current&&_.getState().userSelectionRect&&P?.(e),_.setState({userSelectionActive:!1,userSelectionRect:null}),j.current&&(c?.(e),_.setState({nodesSelectionActive:O.current.size>0})),re())},oe=e=>{e.target?.releasePointerCapture?.(e.pointerId),re()},se=r===!0||Array.isArray(r)&&r.includes(0);return(0,x.jsxs)(`div`,{className:W_([`react-flow__pane`,{draggable:se,dragging:S,selection:e}]),onClick:T?void 0:PD(P,E),onContextMenu:PD(F,E),onWheel:PD(ee,E),onPointerEnter:T?void 0:f,onPointerMove:T?ie:p,onPointerUp:ae,onPointerCancel:T?oe:void 0,onPointerDownCapture:T?te:void 0,onClickCapture:T?I:void 0,onPointerLeave:m,ref:E,style:kD,children:[h,(0,x.jsx)(ND,{})]})}function LD({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,DC.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function RD({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=EE(),[c,l]=(0,v.useState)(!1),u=(0,v.useRef)();return(0,v.useEffect)(()=>{if(!t)return u.current=kT({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{LD({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,v.useEffect)(()=>{!t&&e.current&&u.current&&u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var zD=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function BD(){let e=EE();return(0,v.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=zD(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=fw(t,i));let{position:a,positionAbsolute:s}=JC({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var VD=(0,v.createContext)(null),HD=VD.Provider;VD.Consumer;var UD=()=>(0,v.useContext)(VD),WD=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),GD=(0,v.createContext)(null);function KD({children:e}){let t=TE(WD,xE);return(0,x.jsx)(GD.Provider,{value:t,children:e})}function qD(){let e=(0,v.useContext)(GD);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var JD={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},YD=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return JD;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===jC.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function XD({type:e=`source`,position:t=$.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=EE(),_=UD(),{connectOnClick:v,noPanClassName:y,rfId:b}=qD(),{connectingFrom:S,connectingTo:C,clickConnecting:w,isPossibleEndHandle:T,connectionInProcess:E,clickConnectionInProcess:D,valid:O}=TE(YD(_,m,e),xE);_||g.getState().onError?.(`010`,DC.error010());let k=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(pD(i,e,{onError:n}))}n?.(i),s?.(i)},A=e=>{if(!_)return;let t=Nw(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();zT.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:k,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,x.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:W_([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:w,connectingfrom:S,connectingto:C,valid:O,connectionindicator:r&&(!E||T)&&(E||D?a:i)}]),onMouseDown:A,onTouchStart:A,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=Aw(t.target),h=n||c,{connection:v,isValid:y}=zT.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&k(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var ZD=(0,v.memo)(gD(XD));function QD({data:e,isConnectable:t,sourcePosition:n=$.Bottom}){return(0,x.jsxs)(x.Fragment,{children:[e?.label,(0,x.jsx)(ZD,{type:`source`,position:n,isConnectable:t})]})}function $D({data:e,isConnectable:t,targetPosition:n=$.Top,sourcePosition:r=$.Bottom}){return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(ZD,{type:`target`,position:n,isConnectable:t}),e?.label,(0,x.jsx)(ZD,{type:`source`,position:r,isConnectable:t})]})}function eO(){return null}function tO({data:e,isConnectable:t,targetPosition:n=$.Top}){return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(ZD,{type:`target`,position:n,isConnectable:t}),e?.label]})}var nO={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},rO={input:QD,default:$D,output:tO,group:eO};function iO(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var aO=e=>{let{width:t,height:n,x:r,y:i}=UC(e.nodeLookup,{filter:e=>!!e.selected});return{width:uw(t)?t:null,height:uw(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function oO({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=EE(),{width:i,height:a,transformString:o,userSelectionActive:s}=TE(aO,xE),c=BD(),l=(0,v.useRef)(null);(0,v.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(RD({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,x.jsx)(`div`,{className:W_([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,x.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(nO,e.key)&&(e.preventDefault(),c({direction:nO[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var sO=typeof window<`u`?window:void 0,cO=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function lO({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:S,panOnScrollMode:C,zoomOnDoubleClick:w,panOnDrag:T,autoPanOnSelection:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,onSelectionContextMenu:M,noWheelClassName:N,noPanClassName:P,disableKeyboardA11y:F,onViewportChange:ee,isControlledViewport:I}){let{nodesSelectionActive:te,userSelectionActive:ne}=TE(cO,xE),L=eD(l,{target:sO}),re=eD(h,{target:sO}),ie=re||T,ae=re||b,oe=u&&ie!==!0,se=L||ne||oe;return DD({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,x.jsx)(jD,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:ae,panActivationKeyPressed:re,panOnScrollSpeed:S,panOnScrollMode:C,zoomOnDoubleClick:w,panOnDrag:!L&&ie,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,zoomActivationKeyCode:g,preventScrolling:j,noWheelClassName:N,noPanClassName:P,onViewportChange:ee,isControlledViewport:I,paneClickDistance:s,selectionOnDrag:oe,children:(0,x.jsxs)(ID,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:ie,autoPanOnSelection:E,isSelecting:!!se,selectionMode:d,selectionKeyPressed:L,paneClickDistance:s,selectionOnDrag:oe,children:[e,te&&(0,x.jsx)(oO,{onSelectionContextMenu:M,noPanClassName:P,disableKeyboardA11y:F})]})})}lO.displayName=`FlowRenderer`;var uO=(0,v.memo)(lO),dO=e=>t=>e?WC(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function fO(e){return TE((0,v.useCallback)(dO(e),[e]),xE)}var pO=e=>e.updateNodeInternals;function mO(){let e=TE(pO),[t]=(0,v.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,v.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function hO({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=EE(),a=(0,v.useRef)(null),o=(0,v.useRef)(null),s=(0,v.useRef)(e.sourcePosition),c=(0,v.useRef)(e.targetPosition),l=(0,v.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,v.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,v.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,v.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function gO({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:S}=TE(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},xE),C=y.type||`default`,w=g?.[C]||rO[C];w===void 0&&(v?.(`003`,DC.error003(C)),C=`default`,w=g?.default||rO.default);let T=!!(y.draggable||s&&y.draggable===void 0),E=!!(y.selectable||c&&y.selectable===void 0),D=!!(y.connectable||l&&y.connectable===void 0),O=!!(y.focusable||u&&y.focusable===void 0),k=EE(),A=Sw(y),j=hO({node:y,nodeType:C,hasDimensions:A,resizeObserver:d}),M=RD({nodeRef:j,disabled:y.hidden||!T,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:E,nodeClickDistance:_}),N=BD();if(y.hidden)return null;let P=xw(y),F=iO(y),ee=E||T||t||n||r||i,I=n?e=>n(e,{...b.userNode}):void 0,te=r?e=>r(e,{...b.userNode}):void 0,ne=i?e=>i(e,{...b.userNode}):void 0,L=a?e=>a(e,{...b.userNode}):void 0,re=o?e=>o(e,{...b.userNode}):void 0,ie=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=k.getState();E&&(!r||!T||i>0)&&LD({id:e,store:k,nodeRef:j}),t&&t(n,{...b.userNode})},ae=t=>{if(!(Mw(t.nativeEvent)||m)){if(kC.includes(t.key)&&E){let n=t.key===`Escape`;LD({id:e,store:k,unselect:n,nodeRef:j})}else if(T&&y.selected&&Object.prototype.hasOwnProperty.call(nO,t.key)){t.preventDefault();let{ariaLabelConfig:e}=k.getState();k.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),N({direction:nO[t.key],factor:t.shiftKey?4:1})}}},oe=()=>{if(m||!j.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=k.getState();i&&(WC(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+P.width/2,y.position.y+P.height/2,{zoom:t[2]}))};return(0,x.jsx)(`div`,{className:W_([`react-flow__node`,`react-flow__node-${C}`,{[p]:T},y.className,{selected:y.selected,selectable:E,parent:S,draggable:T,dragging:M}]),ref:j,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:ee?`all`:`none`,visibility:A?`visible`:`hidden`,...y.style,...F},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:I,onMouseMove:te,onMouseLeave:ne,onContextMenu:L,onClick:ie,onDoubleClick:re,onKeyDown:O?ae:void 0,tabIndex:O?0:void 0,onFocus:O?oe:void 0,role:y.ariaRole??(O?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${kE}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,x.jsx)(HD,{value:e,children:(0,x.jsx)(w,{id:e,data:y.data,type:C,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:E,draggable:T,deletable:y.deletable??!0,isConnectable:D,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:M,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...P})})})}var _O=(0,v.memo)(gO),vO=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function yO(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=TE(vO,xE),a=fO(e.onlyRenderVisibleElements),o=mO();return(0,x.jsx)(`div`,{className:`react-flow__nodes`,style:kD,children:a.map(a=>(0,x.jsx)(_O,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}yO.displayName=`NodeRenderer`;var bO=(0,v.memo)(yO);function xO(e){return TE((0,v.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&Hw({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),xE)}var SO=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,x.jsx)(`polyline`,{className:`arrow`,style:n,strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`})},CO=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,x.jsx)(`polyline`,{className:`arrowclosed`,style:n,strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`})},wO={[IC.Arrow]:SO,[IC.ArrowClosed]:CO};function TO(e){let t=EE();return(0,v.useMemo)(()=>Object.prototype.hasOwnProperty.call(wO,e)?wO[e]:(t.getState().onError?.(`009`,DC.error009(e)),null),[e])}var EO=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=TO(t);return c?(0,x.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,x.jsx)(c,{color:n,strokeWidth:o})}):null},DO=({defaultColor:e,rfId:t})=>{let n=TE(e=>e.edges),r=TE(e=>e.defaultEdgeOptions),i=(0,v.useMemo)(()=>aT(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,x.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,x.jsx)(`defs`,{children:i.map(e=>(0,x.jsx)(EO,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};DO.displayName=`MarkerDefinitions`;var OO=(0,v.memo)(DO);function kO({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,v.useState)({x:1,y:0,width:0,height:0}),p=W_([`react-flow__edge-textwrapper`,l]),m=(0,v.useRef)(null);return(0,v.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,x.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,x.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,x.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}kO.displayName=`EdgeText`;var AO=(0,v.memo)(kO);function jO({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{...u,d:e,fill:`none`,className:W_([`react-flow__edge-path`,u.className])}),l?(0,x.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&uw(t)&&uw(n)?(0,x.jsx)(AO,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function MO({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===$.Left||e===$.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function NO({sourceX:e,sourceY:t,sourcePosition:n=$.Bottom,targetX:r,targetY:i,targetPosition:a=$.Top}){let[o,s]=MO({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=MO({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=Iw({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function PO(e){return(0,v.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=NO({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s}),S=e.isInternal?void 0:t;return(0,x.jsx)(jO,{id:S,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var FO=PO({isInternal:!1}),IO=PO({isInternal:!0});FO.displayName=`SimpleBezierEdge`,IO.displayName=`SimpleBezierEdgeInternal`;function LO(e){return(0,v.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=$.Bottom,targetPosition:m=$.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,S]=Qw({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition}),C=e.isInternal?void 0:t;return(0,x.jsx)(jO,{id:C,path:y,labelX:b,labelY:S,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var RO=LO({isInternal:!1}),zO=LO({isInternal:!0});RO.displayName=`SmoothStepEdge`,zO.displayName=`SmoothStepEdgeInternal`;function BO(e){return(0,v.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,x.jsx)(RO,{...n,id:r,pathOptions:(0,v.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var VO=BO({isInternal:!1}),HO=BO({isInternal:!0});VO.displayName=`StepEdge`,HO.displayName=`StepEdgeInternal`;function UO(e){return(0,v.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=Kw({sourceX:n,sourceY:r,targetX:i,targetY:a}),y=e.isInternal?void 0:t;return(0,x.jsx)(jO,{id:y,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var WO=UO({isInternal:!1}),GO=UO({isInternal:!0});WO.displayName=`StraightEdge`,GO.displayName=`StraightEdgeInternal`;function KO(e){return(0,v.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=$.Bottom,targetPosition:s=$.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,S]=zw({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature}),C=e.isInternal?void 0:t;return(0,x.jsx)(jO,{id:C,path:y,labelX:b,labelY:S,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var qO=KO({isInternal:!1}),JO=KO({isInternal:!0});qO.displayName=`BezierEdge`,JO.displayName=`BezierEdgeInternal`;var YO={default:JO,straight:GO,step:HO,smoothstep:zO,simplebezier:IO},XO={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},ZO=(e,t,n)=>n===$.Left?e-t:n===$.Right?e+t:e,QO=(e,t,n)=>n===$.Top?e-t:n===$.Bottom?e+t:e,$O=`react-flow__edgeupdater`;function ek({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,x.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:W_([$O,`${$O}-${s}`]),cx:ZO(t,r,e),cy:QO(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function tk({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=EE(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;zT.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,x.jsxs)(x.Fragment,{children:[(e===!0||e===`source`)&&(0,x.jsx)(ek,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,x.jsx)(ek,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function nk({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:_,disableKeyboardA11y:y}){let b=TE(t=>t.edgeLookup.get(e)),S=TE(e=>e.defaultEdgeOptions);b=S?{...S,...b}:b;let C=b.type||`default`,w=h?.[C]||YO[C];w===void 0&&(_?.(`011`,DC.error011(C)),C=`default`,w=h?.default||YO.default);let T=!!(b.focusable||t&&b.focusable===void 0),E=d!==void 0&&(b.reconnectable||n&&b.reconnectable===void 0),D=!!(b.selectable||r&&b.selectable===void 0),O=(0,v.useRef)(null),[k,A]=(0,v.useState)(!1),[j,M]=(0,v.useState)(!1),N=EE(),{zIndex:P=b.zIndex,sourceX:F,sourceY:ee,targetX:I,targetY:te,sourcePosition:ne,targetPosition:L}=TE((0,v.useCallback)(t=>{let n=t.nodeLookup.get(b.source),r=t.nodeLookup.get(b.target);if(!n||!r)return XO;let i=eT({id:e,sourceNode:n,targetNode:r,sourceHandle:b.sourceHandle||null,targetHandle:b.targetHandle||null,connectionMode:t.connectionMode,onError:_}),a=Vw({selected:b.selected,zIndex:b.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||XO,zIndex:a}},[b.source,b.target,b.sourceHandle,b.targetHandle,b.selected,b.zIndex,_]),xE),re=(0,v.useMemo)(()=>b.markerStart?`url('#${iT(b.markerStart,m)}')`:void 0,[b.markerStart,m]),ie=(0,v.useMemo)(()=>b.markerEnd?`url('#${iT(b.markerEnd,m)}')`:void 0,[b.markerEnd,m]);if(b.hidden||F===null||ee===null||I===null||te===null)return null;let ae=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=N.getState();D&&(N.setState({nodesSelectionActive:!1}),b.selected&&a?(r({nodes:[],edges:[b]}),O.current?.blur()):n([e])),i&&i(t,b)},oe=a?e=>{a(e,{...b})}:void 0,se=o?e=>{o(e,{...b})}:void 0,ce=s?e=>{s(e,{...b})}:void 0,le=c?e=>{c(e,{...b})}:void 0,ue=l?e=>{l(e,{...b})}:void 0;return(0,x.jsx)(`svg`,{style:{zIndex:P},children:(0,x.jsxs)(`g`,{className:W_([`react-flow__edge`,`react-flow__edge-${C}`,b.className,g,{selected:b.selected,animated:b.animated,inactive:!D&&!i,updating:k,selectable:D}]),onClick:ae,onDoubleClick:oe,onContextMenu:se,onMouseEnter:ce,onMouseMove:le,onMouseLeave:ue,onKeyDown:T?t=>{if(!y&&kC.includes(t.key)&&D){let{unselectNodesAndEdges:n,addSelectedEdges:r}=N.getState();t.key===`Escape`?(O.current?.blur(),n({edges:[b]})):r([e])}}:void 0,tabIndex:T?0:void 0,role:b.ariaRole??(T?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":b.ariaLabel===null?void 0:b.ariaLabel||`Edge from ${b.source} to ${b.target}`,"aria-describedby":T?`${AE}-${m}`:void 0,ref:O,...b.domAttributes,children:[!j&&(0,x.jsx)(w,{id:e,source:b.source,target:b.target,type:b.type,selected:b.selected,animated:b.animated,selectable:D,deletable:b.deletable??!0,label:b.label,labelStyle:b.labelStyle,labelShowBg:b.labelShowBg,labelBgStyle:b.labelBgStyle,labelBgPadding:b.labelBgPadding,labelBgBorderRadius:b.labelBgBorderRadius,sourceX:F,sourceY:ee,targetX:I,targetY:te,sourcePosition:ne,targetPosition:L,data:b.data,style:b.style,sourceHandleId:b.sourceHandle,targetHandleId:b.targetHandle,markerStart:re,markerEnd:ie,pathOptions:`pathOptions`in b?b.pathOptions:void 0,interactionWidth:b.interactionWidth}),E&&(0,x.jsx)(tk,{edge:b,isReconnectable:E,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:F,sourceY:ee,targetX:I,targetY:te,sourcePosition:ne,targetPosition:L,setUpdateHover:A,setReconnecting:M})]})})}var rk=(0,v.memo)(nk),ik=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function ak({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=TE(ik,xE),b=xO(t);return(0,x.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,x.jsx)(OO,{defaultColor:e,rfId:n}),b.map(e=>(0,x.jsx)(rk,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}ak.displayName=`EdgeRenderer`;var ok=(0,v.memo)(ak),sk=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function ck({children:e}){let t=EE(),n=(0,v.useRef)(null),[r]=(0,v.useState)(()=>t.getState().transform);return _D(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=sk(r)))};return r(),t.subscribe(r)},[t]),(0,x.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:sk(r)},children:e})}function lk(e){let t=wD(),n=(0,v.useRef)(!1);(0,v.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var uk=e=>e.panZoom?.syncViewport;function dk(e){let t=TE(uk),n=EE();return(0,v.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function fk(e){return e.connection.inProgress?{...e.connection,to:pw(e.connection.to,e.transform)}:{...e.connection}}function pk(e){return e?t=>e(fk(t)):fk}function mk(e){return TE(pk(e),xE)}var hk=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function gk({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=TE(hk,xE);return a&&i&&c?(0,x.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,x.jsx)(`g`,{className:W_([`react-flow__connection`,Dw(s)]),children:(0,x.jsx)(_k,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var _k=({style:e,type:t=FC.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=mk();if(!i)return;if(n)return(0,x.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:Dw(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case FC.Bezier:[m]=zw(h);break;case FC.SimpleBezier:[m]=NO(h);break;case FC.Step:[m]=Qw({...h,borderRadius:0});break;case FC.SmoothStep:[m]=Qw(h);break;default:[m]=Kw(h)}return(0,x.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};_k.displayName=`ConnectionLine`;var vk={};function yk(e=vk){(0,v.useRef)(e),EE(),(0,v.useEffect)(()=>{},[e])}function bk(){EE(),(0,v.useRef)(!1),(0,v.useEffect)(()=>{},[])}function xk({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:S,panActivationKeyCode:C,zoomActivationKeyCode:w,deleteKeyCode:T,onlyRenderVisibleElements:E,elementsSelectable:D,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,preventScrolling:M,defaultMarkerColor:N,zoomOnScroll:P,zoomOnPinch:F,panOnScroll:ee,panOnScrollSpeed:I,panOnScrollMode:te,zoomOnDoubleClick:ne,panOnDrag:L,autoPanOnSelection:re,onPaneClick:ie,onPaneMouseEnter:ae,onPaneMouseMove:oe,onPaneMouseLeave:se,onPaneScroll:ce,onPaneContextMenu:le,paneClickDistance:ue,nodeClickDistance:de,onEdgeContextMenu:fe,onEdgeMouseEnter:R,onEdgeMouseMove:z,onEdgeMouseLeave:pe,reconnectRadius:me,onReconnect:he,onReconnectStart:ge,onReconnectEnd:_e,noDragClassName:ve,noWheelClassName:ye,noPanClassName:be,disableKeyboardA11y:xe,nodeExtent:Se,rfId:Ce,viewport:we,onViewportChange:Te,nodesDraggable:Ee}){return yk(e),yk(t),bk(),lk(n),dk(we),(0,x.jsx)(uO,{onPaneClick:ie,onPaneMouseEnter:ae,onPaneMouseMove:oe,onPaneMouseLeave:se,onPaneContextMenu:le,onPaneScroll:ce,paneClickDistance:ue,deleteKeyCode:T,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:S,panActivationKeyCode:C,zoomActivationKeyCode:w,elementsSelectable:D,zoomOnScroll:P,zoomOnPinch:F,zoomOnDoubleClick:ne,panOnScroll:ee,panOnScrollSpeed:I,panOnScrollMode:te,panOnDrag:L,autoPanOnSelection:re,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,onSelectionContextMenu:d,preventScrolling:M,noDragClassName:ve,noWheelClassName:ye,noPanClassName:be,disableKeyboardA11y:xe,onViewportChange:Te,isControlledViewport:!!we,children:(0,x.jsxs)(ck,{children:[(0,x.jsx)(ok,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:he,onReconnectStart:ge,onReconnectEnd:_e,onlyRenderVisibleElements:E,onEdgeContextMenu:fe,onEdgeMouseEnter:R,onEdgeMouseMove:z,onEdgeMouseLeave:pe,reconnectRadius:me,defaultMarkerColor:N,noPanClassName:be,disableKeyboardA11y:xe,rfId:Ce}),(0,x.jsx)(gk,{style:h,type:m,component:g,containerStyle:_}),(0,x.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,x.jsx)(bO,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:de,onlyRenderVisibleElements:E,noPanClassName:be,noDragClassName:ve,disableKeyboardA11y:xe,nodeExtent:Se,rfId:Ce,nodesDraggable:Ee}),(0,x.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}xk.displayName=`GraphView`;var Sk=(0,v.memo)(xk),Ck=dw(`React Flow`,`https://reactflow.dev/`),wk=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??OC;CT(h,g,_);let{nodesInitialized:x}=mT(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=vw(UC(p,{filter:e=>!(!e.width&&!e.initialWidth||!e.height&&!e.initialHeight)}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:OC,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:jC.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...PC},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:Ck,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:AC,zIndexMode:f,defaultEdgeOptions:void 0,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map,onNodesDelete:void 0,onEdgesDelete:void 0,onDelete:void 0,onBeforeDelete:void 0,onViewportChangeStart:void 0,onViewportChange:void 0,onViewportChangeEnd:void 0,onNodeDragStart:void 0,onNodeDrag:void 0,onNodeDragStop:void 0,onSelectionDragStart:void 0,onSelectionDrag:void 0,onSelectionDragStop:void 0,onMoveStart:void 0,onMove:void 0,onMoveEnd:void 0,onConnect:void 0,onConnectStart:void 0,onConnectEnd:void 0,onClickConnectStart:void 0,onClickConnectEnd:void 0}},Tk=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>bE((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await qC({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...wk({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,fitViewQueued:o,zIndexMode:s,nodesSelectionActive:c}=m(),{nodesInitialized:l,hasSelectedNodes:u}=mT(e,t,n,{nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,checkEquality:!0,zIndexMode:s}),d=c&&u;o&&l?(h(),p({nodes:e,nodesInitialized:l,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:d})):p({nodes:e,nodesInitialized:l,nodesSelectionActive:d})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();CT(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=bT(e,n,r,i,a,o,l);d&&(dT(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=nT(e,o.fromHandle,$.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=yT(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(oD(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(sD(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>cD(e,!0)));return}i(lD(r,new Set([...e]),!0)),a(lD(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>cD(e,!0)));return}a(lD(n,new Set([...e]))),i(lD(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(cD(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(cD(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,cD(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,cD(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();(e[0][0]!==o[0][0]||e[0][1]!==o[0][1]||e[1][0]!==o[1][0]||e[1][1]!==o[1][1])&&(mT(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return xT({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...PC}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...wk()})}},Object.is);function Ek({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,v.useState)(()=>Tk({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,x.jsx)(CE,{value:m,children:(0,x.jsx)(xD,{children:(0,x.jsx)(KD,{children:p})})})}function Dk({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,v.useContext)(SE)?(0,x.jsx)(x.Fragment,{children:e}):(0,x.jsx)(Ek,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var Ok={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function kk({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:S,onNodeContextMenu:C,onNodeDoubleClick:w,onNodeDragStart:T,onNodeDrag:E,onNodeDragStop:D,onNodesDelete:O,onEdgesDelete:k,onDelete:A,onSelectionChange:j,onSelectionDragStart:M,onSelectionDrag:N,onSelectionDragStop:P,onSelectionContextMenu:F,onSelectionStart:ee,onSelectionEnd:I,onBeforeDelete:te,connectionMode:ne,connectionLineType:L=FC.Bezier,connectionLineStyle:re,connectionLineComponent:ie,connectionLineContainerStyle:ae,deleteKeyCode:oe=`Backspace`,selectionKeyCode:se=`Shift`,selectionOnDrag:ce=!1,selectionMode:le=NC.Full,panActivationKeyCode:ue=`Space`,multiSelectionKeyCode:de=yw()?`Meta`:`Control`,zoomActivationKeyCode:fe=yw()?`Meta`:`Control`,snapToGrid:R,snapGrid:z,onlyRenderVisibleElements:pe=!1,selectNodesOnDrag:me,nodesDraggable:he,autoPanOnNodeFocus:ge,nodesConnectable:_e,nodesFocusable:ve,nodeOrigin:ye=GE,edgesFocusable:be,edgesReconnectable:xe,elementsSelectable:Se=!0,defaultViewport:Ce=KE,minZoom:we=.5,maxZoom:Te=2,translateExtent:Ee=OC,preventScrolling:De=!0,nodeExtent:Oe,defaultMarkerColor:ke=`#b1b1b7`,zoomOnScroll:Ae=!0,zoomOnPinch:je=!0,panOnScroll:Me=!1,panOnScrollSpeed:Ne=.5,panOnScrollMode:Pe=MC.Free,zoomOnDoubleClick:Fe=!0,panOnDrag:Ie=!0,onPaneClick:Le,onPaneMouseEnter:Re,onPaneMouseMove:ze,onPaneMouseLeave:Be,onPaneScroll:Ve,onPaneContextMenu:He,paneClickDistance:Ue=1,nodeClickDistance:We=0,children:Ge,onReconnect:Ke,onReconnectStart:qe,onReconnectEnd:Je,onEdgeContextMenu:Ye,onEdgeDoubleClick:Xe,onEdgeMouseEnter:Ze,onEdgeMouseMove:Qe,onEdgeMouseLeave:$e,reconnectRadius:et=10,onNodesChange:tt,onEdgesChange:nt,noDragClassName:rt=`nodrag`,noWheelClassName:it=`nowheel`,noPanClassName:at=`nopan`,fitView:ot,fitViewOptions:st,connectOnClick:ct,attributionPosition:lt,proOptions:ut,defaultEdgeOptions:dt,elevateNodesOnSelect:ft=!0,elevateEdgesOnSelect:pt=!1,disableKeyboardA11y:mt=!1,autoPanOnConnect:ht,autoPanOnNodeDrag:gt,autoPanOnSelection:_t=!0,autoPanSpeed:vt,connectionRadius:yt,isValidConnection:bt,onError:xt,style:St,id:Ct,nodeDragThreshold:wt,connectionDragThreshold:Tt,viewport:Et,onViewportChange:Dt,width:Ot,height:kt,colorMode:At=`light`,debug:jt,onScroll:Mt,ariaLabelConfig:Nt,zIndexMode:Pt=`basic`,...Ft},It){let Lt=Ct||`1`,Rt=QE(At),zt=(0,v.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Mt?.(e)},[Mt]);return(0,x.jsx)(`div`,{"data-testid":`rf__wrapper`,...Ft,onScroll:zt,style:{...St,...Ok},ref:It,className:W_([`react-flow`,i,Rt]),id:Ct,role:`application`,children:(0,x.jsxs)(Dk,{nodes:e,edges:t,width:Ot,height:kt,fitView:ot,fitViewOptions:st,minZoom:we,maxZoom:Te,nodeOrigin:ye,nodeExtent:Oe,zIndexMode:Pt,children:[(0,x.jsx)(XE,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:he,autoPanOnNodeFocus:ge,nodesConnectable:_e,nodesFocusable:ve,edgesFocusable:be,edgesReconnectable:xe,elementsSelectable:Se,elevateNodesOnSelect:ft,elevateEdgesOnSelect:pt,minZoom:we,maxZoom:Te,nodeExtent:Oe,onNodesChange:tt,onEdgesChange:nt,snapToGrid:R,snapGrid:z,connectionMode:ne,translateExtent:Ee,connectOnClick:ct,defaultEdgeOptions:dt,fitView:ot,fitViewOptions:st,onNodesDelete:O,onEdgesDelete:k,onDelete:A,onNodeDragStart:T,onNodeDrag:E,onNodeDragStop:D,onSelectionDrag:N,onSelectionDragStart:M,onSelectionDragStop:P,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:at,nodeOrigin:ye,rfId:Lt,autoPanOnConnect:ht,autoPanOnNodeDrag:gt,autoPanSpeed:vt,onError:xt,connectionRadius:yt,isValidConnection:bt,selectNodesOnDrag:me,nodeDragThreshold:wt,connectionDragThreshold:Tt,onBeforeDelete:te,debug:jt,ariaLabelConfig:Nt,zIndexMode:Pt}),(0,x.jsx)(Sk,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:S,onNodeContextMenu:C,onNodeDoubleClick:w,nodeTypes:a,edgeTypes:o,connectionLineType:L,connectionLineStyle:re,connectionLineComponent:ie,connectionLineContainerStyle:ae,selectionKeyCode:se,selectionOnDrag:ce,selectionMode:le,deleteKeyCode:oe,multiSelectionKeyCode:de,panActivationKeyCode:ue,zoomActivationKeyCode:fe,onlyRenderVisibleElements:pe,defaultViewport:Ce,translateExtent:Ee,minZoom:we,maxZoom:Te,preventScrolling:De,zoomOnScroll:Ae,zoomOnPinch:je,zoomOnDoubleClick:Fe,panOnScroll:Me,panOnScrollSpeed:Ne,panOnScrollMode:Pe,panOnDrag:Ie,autoPanOnSelection:_t,onPaneClick:Le,onPaneMouseEnter:Re,onPaneMouseMove:ze,onPaneMouseLeave:Be,onPaneScroll:Ve,onPaneContextMenu:He,paneClickDistance:Ue,nodeClickDistance:We,onSelectionContextMenu:F,onSelectionStart:ee,onSelectionEnd:I,onReconnect:Ke,onReconnectStart:qe,onReconnectEnd:Je,onEdgeContextMenu:Ye,onEdgeDoubleClick:Xe,onEdgeMouseEnter:Ze,onEdgeMouseMove:Qe,onEdgeMouseLeave:$e,reconnectRadius:et,defaultMarkerColor:ke,noDragClassName:rt,noWheelClassName:it,noPanClassName:at,rfId:Lt,disableKeyboardA11y:mt,nodeExtent:Oe,viewport:Et,onViewportChange:Dt,nodesDraggable:he}),(0,x.jsx)(WE,{onSelectionChange:j}),Ge,(0,x.jsx)(RE,{proOptions:ut,position:lt}),(0,x.jsx)(FE,{rfId:Lt,disableKeyboardA11y:mt})]})})}var Ak=gD(kk);DC.error014();function jk({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,x.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:W_([`react-flow__background-pattern`,n,r])})}function Mk({radius:e,className:t}){return(0,x.jsx)(`circle`,{cx:e,cy:e,r:e,className:W_([`react-flow__background-pattern`,`dots`,t])})}var Nk;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(Nk||={});var Pk={[Nk.Dots]:1,[Nk.Lines]:1,[Nk.Cross]:6},Fk=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Ik({id:e,variant:t=Nk.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,v.useRef)(null),{transform:f,patternId:p}=TE(Fk,xE),m=r||Pk[t],h=t===Nk.Dots,g=t===Nk.Cross,_=Array.isArray(n)?n:[n,n],y=[_[0]*f[2]||1,_[1]*f[2]||1],b=m*f[2],S=Array.isArray(a)?a:[a,a],C=g?[b,b]:y,w=[S[0]*f[2]+C[0]/2,S[1]*f[2]+C[1]/2],T=`${p}${e||``}`;return(0,x.jsxs)(`svg`,{className:W_([`react-flow__background`,l]),style:{...c,...kD,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,x.jsx)(`pattern`,{id:T,x:f[0]%y[0],y:f[1]%y[1],width:y[0],height:y[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${w[0]},-${w[1]})`,children:h?(0,x.jsx)(Mk,{radius:b/2,className:u}):(0,x.jsx)(jk,{dimensions:C,lineWidth:i,variant:t,className:u})}),(0,x.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${T})`})]})}Ik.displayName=`Background`;var Lk=(0,v.memo)(Ik);function Rk(){return(0,x.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,x.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function zk(){return(0,x.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,x.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function Bk(){return(0,x.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,x.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function Vk(){return(0,x.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,x.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function Hk(){return(0,x.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,x.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function Uk({children:e,className:t,...n}){return(0,x.jsx)(`button`,{type:`button`,className:W_([`react-flow__controls-button`,t]),...n,children:e})}var Wk=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Gk({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=EE(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=TE(Wk,xE),{zoomIn:y,zoomOut:b,fitView:S}=wD();return(0,x.jsxs)(IE,{className:W_([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Uk,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,x.jsx)(Rk,{})}),(0,x.jsx)(Uk,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,x.jsx)(zk,{})})]}),n&&(0,x.jsx)(Uk,{className:`react-flow__controls-fitview`,onClick:()=>{S(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,x.jsx)(Bk,{})}),r&&(0,x.jsx)(Uk,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,x.jsx)(Hk,{}):(0,x.jsx)(Vk,{})}),u]})}Gk.displayName=`Controls`;var Kk=(0,v.memo)(Gk);function qk({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,x.jsx)(`rect`,{className:W_([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var Jk=(0,v.memo)(qk),Yk=e=>e.nodes.map(e=>e.id),Xk=e=>e instanceof Function?e:()=>e;function Zk({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=Jk,onClick:o}){let s=TE(Yk,xE),c=Xk(t),l=Xk(e),u=Xk(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,x.jsx)(x.Fragment,{children:s.map(e=>(0,x.jsx)($k,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function Qk({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=TE(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=xw(r);return{node:r,x:i,y:a,width:o,height:s}},xE);return!l||l.hidden||!Sw(l)?null:(0,x.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var $k=(0,v.memo)(Qk),eA=(0,v.memo)(Zk),tA=200,nA=150,rA=e=>!e.hidden,iA=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]},n=!1;for(let t of e.nodeLookup.values())if(!t.hidden){n=!0;break}return{viewBB:t,boundingRect:n?ow(UC(e.nodeLookup,{filter:rA}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},aA=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,oA=(e,t)=>aA(e.viewBB,t.viewBB)&&aA(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,sA=`react-flow__minimap-desc`;function cA({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:_,inversePan:y,zoomStep:b=1,offsetScale:S=5}){let C=EE(),w=(0,v.useRef)(null),{boundingRect:T,panZoom:E,viewBB:D,rfId:O,translateExtent:k,flowWidth:A,flowHeight:j,ariaLabelConfig:M}=TE(iA,oA),N=e?.width??tA,P=e?.height??nA,F=T.width/N,ee=T.height/P,I=Math.max(F,ee),te=I*N,ne=I*P,L=S*I,re=T.x-(te-T.width)/2-L,ie=T.y-(ne-T.height)/2-L,ae=te+L*2,oe=ne+L*2,se=`${sA}-${O}`,ce=(0,v.useRef)(0),le=(0,v.useRef)();ce.current=I,(0,v.useEffect)(()=>{let e=C.getState().panZoom;if(w.current&&e)return le.current=BT({domNode:w.current,panZoom:e,getTransform:()=>C.getState().transform,getViewScale:()=>ce.current}),()=>{le.current?.destroy()}},[E]),(0,v.useEffect)(()=>{le.current?.update({translateExtent:k,width:A,height:j,inversePan:y,pannable:h,zoomStep:b,zoomable:g})},[h,g,y,b,k,A,j]);let ue=p?e=>{let[t,n]=le.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,de=(0,v.useCallback)((e,t)=>{let n=C.getState().nodeLookup.get(t).internals.userNode;m?.(e,n)},[m]),fe=m?de:void 0,R=_??M[`minimap.ariaLabel`];return(0,x.jsx)(IE,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*I:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:W_([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,x.jsxs)(`svg`,{width:N,height:P,viewBox:`${re} ${ie} ${ae} ${oe}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":se,ref:w,onClick:ue,children:[R&&(0,x.jsx)(`title`,{id:se,children:R}),(0,x.jsx)(eA,{onClick:fe,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,x.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${re-L},${ie-L}h${ae+L*2}v${oe+L*2}h${-ae-L*2}z
44
- M${D.x},${D.y}h${D.width}v${D.height}h${-D.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}cA.displayName=`MiniMap`,(0,v.memo)(cA);var lA=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,uA={[tE.Line]:`right`,[tE.Handle]:`bottom-right`};function dA({nodeId:e,position:t,variant:n=tE.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let y=UD(),b=typeof e==`string`?e:y,S=EE(),C=(0,v.useRef)(null),w=n===tE.Handle,T=TE((0,v.useCallback)(lA(w&&p),[w,p]),xE),E=(0,v.useRef)(null),D=t??uA[n];(0,v.useEffect)(()=>{if(C.current&&b)return E.current||=fE({domNode:C.current,nodeId:b,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=S.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=S.getState(),o=[],s={x:e.x,y:e.y},c=r.get(b);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=yT([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...Cw({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:b,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:b,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:b,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};S.getState().triggerNodeChanges([n])}}),E.current.update({controlPosition:D,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{E.current?.destroy()}},[D,s,c,l,u,d,h,g,_,m]);let O=D.split(`-`);return(0,x.jsx)(`div`,{className:W_([`react-flow__resize-control`,`nodrag`,...O,n,r]),ref:C,style:{...i,scale:T,...o&&{[w?`backgroundColor`:`borderColor`]:o}},children:a})}(0,v.memo)(dA);var fA=Object.defineProperty,pA=(e,t,n)=>t in e?fA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,mA=(e,t)=>{for(var n in t)fA(e,n,{get:t[n],enumerable:!0})},hA=(e,t,n)=>pA(e,typeof t==`symbol`?t:t+``,n),gA={};mA(gA,{Graph:()=>tj,alg:()=>kA});var _A=Object.defineProperty,vA=(e,t)=>{for(var n in t)_A(e,n,{get:t[n],enumerable:!0})},yA=class{constructor(e){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},e&&(this._isDirected=`directed`in e?e.directed:!0,this._isMultigraph=`multigraph`in e&&e.multigraph,this._isCompound=`compound`in e&&e.compound),this._isCompound&&(this._parent={},this._children={},this._children[`\0`]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return this._defaultNodeLabelFn=typeof e==`function`?e:()=>e,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(e=>Object.keys(this._in[e]).length===0)}sinks(){return this.nodes().filter(e=>Object.keys(this._out[e]).length===0)}setNodes(e,t){return e.forEach(e=>{t===void 0?this.setNode(e):this.setNode(e,t)}),this}setNode(e,t){return e in this._nodes?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=`\0`,this._children[e]={},this._children[`\0`][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return e in this._nodes}removeNode(e){if(e in this._nodes){let t=e=>this.removeEdge(this._edgeObjs[e]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],this.children(e).forEach(e=>{this.setParent(e)}),delete this._children[e]),Object.keys(this._in[e]).forEach(t),delete this._in[e],delete this._preds[e],Object.keys(this._out[e]).forEach(t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw Error(`Cannot set parent in a non-compound graph`);if(t===void 0)t=`\0`;else{t+=``;for(let n=t;n!==void 0;n=this.parent(n))if(n===e)throw Error(`Setting `+t+` as parent of `+e+` would create a cycle`);this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}parent(e){if(this._isCompound){let t=this._parent[e];if(t!==`\0`)return t}}children(e=`\0`){if(this._isCompound){let t=this._children[e];if(t)return Object.keys(t)}else{if(e===`\0`)return this.nodes();if(this.hasNode(e))return[]}return[]}predecessors(e){let t=this._preds[e];if(t)return Object.keys(t)}successors(e){let t=this._sucs[e];if(t)return Object.keys(t)}neighbors(e){let t=this.predecessors(e);if(t){let n=new Set(t),r=this.successors(e);if(r)for(let e of r)n.add(e);return Array.from(n.values())}}isLeaf(e){let t;return t=this.isDirected()?this.successors(e):this.neighbors(e),(t?.length??0)===0}filterNodes(e){let t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph()),Object.entries(this._nodes).forEach(([n,r])=>{e(n)&&t.setNode(n,r)}),Object.values(this._edgeObjs).forEach(e=>{t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,this.edge(e))});let n={},r=e=>{let i=this.parent(e);return!i||t.hasNode(i)?(n[e]=i,i):i in n?n[i]:r(i)};return this._isCompound&&t.nodes().forEach(e=>t.setParent(e,r(e))),t}setDefaultEdgeLabel(e){return this._defaultEdgeLabelFn=typeof e==`function`?e:()=>e,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(e,t){return e.reduce((e,n)=>(t===void 0?this.setEdge(e,n):this.setEdge(e,n,t),n)),this}setEdge(e,t,n,r){let i,a,o,s,c=!1;typeof e==`object`&&e&&`v`in e?(i=e.v,a=e.w,o=e.name,arguments.length===2&&(s=t,c=!0)):(i=e,a=t,o=r,arguments.length>2&&(s=n,c=!0)),i=``+i,a=``+a,o!==void 0&&(o=``+o);let l=SA(this._isDirected,i,a,o);if(l in this._edgeLabels)return c&&(this._edgeLabels[l]=s),this;if(o!==void 0&&!this._isMultigraph)throw Error(`Cannot set a named edge when isMultigraph = false`);this.setNode(i),this.setNode(a),this._edgeLabels[l]=c?s:this._defaultEdgeLabelFn(i,a,o);let u=CA(this._isDirected,i,a,o);return i=u.v,a=u.w,Object.freeze(u),this._edgeObjs[l]=u,bA(this._preds[a],i),bA(this._sucs[i],a),this._in[a][l]=u,this._out[i][l]=u,this._edgeCount++,this}edge(e,t,n){let r=arguments.length===1?wA(this._isDirected,e):SA(this._isDirected,e,t,n);return this._edgeLabels[r]}edgeAsObj(e,t,n){let r=arguments.length===1?this.edge(e):this.edge(e,t,n);return typeof r!=`object`||!r?{label:r}:r}hasEdge(e,t,n){return(arguments.length===1?wA(this._isDirected,e):SA(this._isDirected,e,t,n))in this._edgeLabels}removeEdge(e,t,n){let r=arguments.length===1?wA(this._isDirected,e):SA(this._isDirected,e,t,n),i=this._edgeObjs[r];if(i){let e=i.v,t=i.w;delete this._edgeLabels[r],delete this._edgeObjs[r],xA(this._preds[t],e),xA(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--}return this}inEdges(e,t){return this.isDirected()?this.filterEdges(this._in[e],e,t):this.nodeEdges(e,t)}outEdges(e,t){return this.isDirected()?this.filterEdges(this._out[e],e,t):this.nodeEdges(e,t)}nodeEdges(e,t){if(e in this._nodes)return this.filterEdges({...this._in[e],...this._out[e]},e,t)}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}filterEdges(e,t,n){if(!e)return;let r=Object.values(e);return n?r.filter(e=>e.v===t&&e.w===n||e.v===n&&e.w===t):r}};function bA(e,t){e[t]?e[t]++:e[t]=1}function xA(e,t){e[t]!==void 0&&!--e[t]&&delete e[t]}function SA(e,t,n,r){let i=``+t,a=``+n;if(!e&&i>a){let e=i;i=a,a=e}return i+``+a+``+(r===void 0?`\0`:r)}function CA(e,t,n,r){let i=``+t,a=``+n;if(!e&&i>a){let e=i;i=a,a=e}let o={v:i,w:a};return r&&(o.name=r),o}function wA(e,t){return SA(e,t.v,t.w,t.name)}vA({},{read:()=>OA,write:()=>TA});function TA(e){let t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:EA(e),edges:DA(e)},n=e.graph();return n!==void 0&&(t.value=structuredClone(n)),t}function EA(e){return e.nodes().map(t=>{let n=e.node(t),r=e.parent(t),i={v:t};return n!==void 0&&(i.value=n),r!==void 0&&(i.parent=r),i})}function DA(e){return e.edges().map(t=>{let n=e.edge(t),r={v:t.v,w:t.w};return t.name!==void 0&&(r.name=t.name),n!==void 0&&(r.value=n),r})}function OA(e){let t=new yA(e.options);return e.value!==void 0&&t.setGraph(e.value),e.nodes.forEach(e=>{t.setNode(e.v,e.value),e.parent&&t.setParent(e.v,e.parent)}),e.edges.forEach(e=>{t.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),t}var kA={};vA(kA,{CycleException:()=>WA,bellmanFord:()=>jA,components:()=>NA,dijkstra:()=>IA,dijkstraAll:()=>RA,findCycles:()=>BA,floydWarshall:()=>HA,isAcyclic:()=>KA,postorder:()=>XA,preorder:()=>ZA,prim:()=>QA,shortestPaths:()=>$A,tarjan:()=>zA,topsort:()=>GA});var AA=()=>1;function jA(e,t,n,r){return MA(e,String(t),n||AA,r||function(t){return e.outEdges(t)??[]})}function MA(e,t,n,r){let i={},a,o=0,s=e.nodes(),c=function(e){let t=i[e.v],r=i[e.w];if(!t||!r)return;let o=n(e);t.distance+o<r.distance&&(i[e.w]={distance:t.distance+o,predecessor:e.v},a=!0)},l=function(){s.forEach(function(e){r(e).forEach(function(t){let n=t.v===e?t.v:t.w,r=n===t.v?t.w:t.v;c({v:n,w:r})})})};s.forEach(function(e){i[e]={distance:e===t?0:1/0,predecessor:``}});let u=s.length;for(let e=1;e<u&&(a=!1,o++,l(),a);e++);if(o===u-1&&(a=!1,l(),a))throw Error(`The graph contains a negative weight cycle`);return i}function NA(e){let t={},n=[],r;function i(n){var a,o;n in t||(t[n]=!0,r.push(n),(a=e.successors(n))==null||a.forEach(i),(o=e.predecessors(n))==null||o.forEach(i))}return e.nodes().forEach(function(e){r=[],i(e),r.length&&n.push(r)}),n}var PA=class{constructor(){this._arr=[],this._keyIndices={}}size(){return this._arr.length}keys(){return this._arr.map(e=>e.key)}has(e){return e in this._keyIndices}priority(e){let t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority}min(){if(this.size()===0)throw Error(`Queue underflow`);return this._arr[0].key}add(e,t){let n=this._keyIndices,r=String(e);if(!(r in n)){let e=this._arr,i=e.length;return n[r]=i,e.push({key:r,priority:t}),this._decrease(i),!0}return!1}removeMin(){if(this.size()===0)throw Error(`Queue underflow`);this._swap(0,this._arr.length-1);let e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key}decrease(e,t){let n=this._keyIndices[e];if(n===void 0)throw Error(`Key not found: ${e}`);let r=this._arr[n].priority;if(t>r)throw Error(`New priority is greater than current priority. Key: ${e} Old: ${r} New: ${t}`);this._arr[n].priority=t,this._decrease(n)}_heapify(e){let t=this._arr,n=2*e,r=n+1,i=e;n<t.length&&(i=t[n].priority<t[i].priority?n:i,r<t.length&&(i=t[r].priority<t[i].priority?r:i),i!==e&&(this._swap(e,i),this._heapify(i)))}_decrease(e){let t=this._arr,n=t[e].priority,r;for(;e!==0&&(r=e>>1,!(t[r].priority<n));)this._swap(e,r),e=r}_swap(e,t){let n=this._arr,r=this._keyIndices,i=n[e],a=n[t];n[e]=a,n[t]=i,r[a.key]=e,r[i.key]=t}},FA=()=>1;function IA(e,t,n,r){return LA(e,String(t),n||FA,r||function(t){return e.outEdges(t)??[]})}function LA(e,t,n,r){let i={},a=new PA,o,s,c=function(e){let t=e.v===o?e.w:e.v,r=i[t];if(!r)return;let c=n(e),l=s.distance+c;if(c<0)throw Error(`dijkstra does not allow negative edge weights. Bad edge: `+e+` Weight: `+c);l<r.distance&&(r.distance=l,r.predecessor=o,a.decrease(t,l))};for(e.nodes().forEach(function(e){let n=e===t?0:1/0;i[e]={distance:n,predecessor:``},a.add(e,n)});a.size()>0;){o=a.removeMin();let e=i[o];if(!e||e.distance===1/0)break;s=e,r(o).forEach(c)}return i}function RA(e,t,n){return e.nodes().reduce(function(r,i){return r[i]=IA(e,i,t,n),r},{})}function zA(e){let t=0,n=[],r={},i=[];function a(o){var s;let c=r[o]={onStack:!0,lowlink:t,index:t++};if(n.push(o),(s=e.successors(o))==null||s.forEach(function(e){if(e in r){let t=r[e];t!=null&&t.onStack&&(c.lowlink=Math.min(c.lowlink,t.index))}else{a(e);let t=r[e];t&&(c.lowlink=Math.min(c.lowlink,t.lowlink))}}),c.lowlink===c.index){let e=[],t;do{t=n.pop();let i=r[t];i&&(i.onStack=!1),e.push(t)}while(o!==t);i.push(e)}}return e.nodes().forEach(function(e){e in r||a(e)}),i}function BA(e){return zA(e).filter(function(t){let n=t[0];return n?t.length>1||t.length===1&&(e.outEdges(n,n)??[]).length>0:!1})}var VA=()=>1;function HA(e,t,n){return UA(e,t||VA,n||function(t){return e.outEdges(t)??[]})}function UA(e,t,n){let r={},i=e.nodes();return i.forEach(function(e){let a={};r[e]=a,a[e]={distance:0,predecessor:``},i.forEach(function(t){e!==t&&(a[t]={distance:1/0,predecessor:``})}),n(e).forEach(function(n){let r=n.v===e?n.w:n.v,i=t(n);a[r]={distance:i,predecessor:e}})}),i.forEach(function(e){let t=r[e];t&&i.forEach(function(n){let a=r[n];a&&i.forEach(function(n){let r=a[e],i=t[n],o=a[n];if(r&&i&&o){let e=r.distance+i.distance;e<o.distance&&(o.distance=e,o.predecessor=i.predecessor)}})})}),r}var WA=class extends Error{constructor(e){super(e),this.name=`CycleException`}};function GA(e){let t={},n={},r=[];function i(a){var o;if(a in n)throw new WA;a in t||(n[a]=!0,t[a]=!0,(o=e.predecessors(a))==null||o.forEach(i),delete n[a],r.push(a))}if(e.sinks().forEach(i),Object.keys(t).length!==e.nodeCount())throw new WA;return r}function KA(e){try{GA(e)}catch(e){if(e instanceof WA)return!1;throw e}return!0}function qA(e,t,n,r,i){Array.isArray(t)||(t=[t]);let a=(t=>(e.isDirected()?e.successors(t):e.neighbors(t))??[]),o={};return t.forEach(function(t){if(!e.hasNode(t))throw Error(`Graph does not have node: `+t);i=JA(e,t,n===`post`,o,a,r,i)}),i}function JA(e,t,n,r,i,a,o){return t in r||(r[t]=!0,n||(o=a(o,t)),i(t).forEach(function(t){o=JA(e,t,n,r,i,a,o)}),n&&(o=a(o,t))),o}function YA(e,t,n){return qA(e,t,n,function(e,t){return e.push(t),e},[])}function XA(e,t){return YA(e,t,`post`)}function ZA(e,t){return YA(e,t,`pre`)}function QA(e,t){var n;let r=new yA,i={},a=new PA,o;function s(e){let n=e.v===o?e.w:e.v,r=a.priority(n);if(r!==void 0){let s=t(e);s<r&&(i[n]=o,a.decrease(n,s))}}if(e.nodeCount()===0)return r;e.nodes().forEach(function(e){a.add(e,1/0),r.setNode(e)});let c=e.nodes()[0];c!==void 0&&a.decrease(c,0);let l=!1;for(;a.size()>0;){if(o=a.removeMin(),o in i)r.setEdge(o,i[o]);else{if(l)throw Error(`Input graph is not connected: `+e);l=!0}(n=e.nodeEdges(o))==null||n.forEach(s)}return r}function $A(e,t,n,r){return ej(e,t,n,r??(t=>e.outEdges(t)??[]))}function ej(e,t,n,r){if(n===void 0)return IA(e,t,n,r);let i=!1,a=e.nodes();for(let o=0;o<a.length;o++){let s=a[o];if(s===void 0)continue;let c=r(s);for(let e=0;e<c.length;e++){let t=c[e];if(!t)continue;let r=t.v===s?t.v:t.w;n({v:r,w:r===t.v?t.w:t.v})<0&&(i=!0)}if(i)return jA(e,t,n,r)}return IA(e,t,n,r)}var tj=yA;function nj(e,t,n,r){let i=r;for(;e.hasNode(i);)i=vj(r);return n.dummy=t,e.setNode(i,n),i}function rj(e){let t=new tj().setGraph(e.graph());return e.nodes().forEach(n=>t.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},i=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),t}function ij(e){let t=new tj({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t}function aj(e,t){let n=e.x,r=e.y,i=t.x-n,a=t.y-r,o=e.width/2,s=e.height/2;if(!i&&!a)throw Error(`Not possible to find intersection inside of the rectangle`);let c,l;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),c=s*i/a,l=s):(i<0&&(o=-o),c=o,l=o*a/i),{x:n+c,y:r+l}}function oj(e){let t=yj(pj(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let r=e.node(n),i=r.rank;i!==void 0&&(t[i]||(t[i]=[]),t[i][r.order]=n)}),t}function sj(e){let t=e.nodes().map(t=>{let n=e.node(t).rank;return n===void 0?Number.MAX_VALUE:n}),n=fj(Math.min,t);e.nodes().forEach(t=>{let r=e.node(t);Object.hasOwn(r,`rank`)&&(r.rank-=n)})}function cj(e){let t=e.nodes().map(t=>e.node(t).rank).filter(e=>e!==void 0),n=fj(Math.min,t),r=[];e.nodes().forEach(t=>{let i=e.node(t).rank-n;r[i]||(r[i]=[]),r[i].push(t)});let i=0,a=e.graph().nodeRankFactor;Array.from(r).forEach((t,n)=>{t===void 0&&n%a!==0?--i:t!==void 0&&i&&t.forEach(t=>e.node(t).rank+=i)})}function lj(e,t,n,r){let i={width:0,height:0};return arguments.length>=4&&(i.rank=n,i.order=r),nj(e,`border`,i,t)}function uj(e,t=dj){let n=[];for(let r=0;r<e.length;r+=t){let i=e.slice(r,r+t);n.push(i)}return n}var dj=65535;function fj(e,t){return t.length>dj?e(...uj(t).map(t=>e(...t))):e(...t)}function pj(e){let t=e.nodes().map(t=>{let n=e.node(t).rank;return n===void 0?Number.MIN_VALUE:n});return fj(Math.max,t)}function mj(e,t){let n={lhs:[],rhs:[]};return e.forEach(e=>{t(e)?n.lhs.push(e):n.rhs.push(e)}),n}function hj(e,t){let n=Date.now();try{return t()}finally{console.log(e+` time: `+(Date.now()-n)+`ms`)}}function gj(e,t){return t()}var _j=0;function vj(e){return e+(``+ ++_j)}function yj(e,t,n=1){t??(t=e,e=0);let r=e=>e<t;n<0&&(r=e=>t<e);let i=[];for(let t=e;r(t);t+=n)i.push(t);return i}function bj(e,t){let n={};for(let r of t)e[r]!==void 0&&(n[r]=e[r]);return n}function xj(e,t){let n;return n=typeof t==`string`?e=>e[t]:t,Object.entries(e).reduce((e,[t,r])=>(e[t]=n(r,t),e),{})}function Sj(e,t){return e.reduce((e,n,r)=>(e[n]=t[r],e),{})}var Cj=`\0`;function wj(e,t,n){if(!(e&&t&&n&&t.dummy===`edge`&&n.dummy===`edge`&&t.edgeObj&&n.edgeObj&&e[t.edgeObj.v]&&e[n.edgeObj.v]&&e[t.edgeObj.w]&&e[n.edgeObj.w]))return 0;let r=!0;t.edgeObj.w===n.edgeObj.w&&(r=!1);let i=r?e[t.edgeObj.v]?.rank??NaN:e[t.edgeObj.w]?.rank??NaN,a=Object.entries(e).find(e=>e[1].edgeObj?.v===t.edgeObj.v&&e[1].edgeObj?.w===t.edgeObj.w&&e[1].rank===i),o=Object.entries(e).find(e=>e[1].edgeObj?.v===n.edgeObj.v&&e[1].edgeObj?.w===n.edgeObj.w&&e[1].rank===i);if(!a||!o)return 0;let s=a[1].order??NaN,c=o[1].order??NaN;return isNaN(s-c)?0:s-c}var Tj=`3.1.1`,Ej=class{constructor(){hA(this,`_sentinel`);let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return Dj(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&Dj(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,n=t._prev;for(;n!==t;)e.push(JSON.stringify(n,Oj)),n=n._prev;return`[`+e.join(`, `)+`]`}};function Dj(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function Oj(e,t){if(e!==`_next`&&e!==`_prev`)return t}var kj=Ej,Aj=()=>1;function jj(e,t){if(e.nodeCount()<=1)return[];let n=Pj(e,t||Aj);return Mj(n.graph,n.buckets,n.zeroIdx).flatMap(t=>e.outEdges(t.v,t.w)||[])}function Mj(e,t,n){let r=[],i=t[t.length-1],a=t[0],o;for(;e.nodeCount();){for(;o=a.dequeue();)Nj(e,t,n,o);for(;o=i.dequeue();)Nj(e,t,n,o);if(e.nodeCount()){for(let i=t.length-2;i>0;--i)if(o=t[i]?.dequeue(),o){r=r.concat(Nj(e,t,n,o,!0)||[]);break}}}return r}function Nj(e,t,n,r,i){let a=[],o=i?a:void 0;return(e.inEdges(r.v)||[]).forEach(r=>{let o=e.edge(r),s=e.node(r.v);i&&a.push({v:r.v,w:r.w}),s.out-=o,Fj(t,n,s)}),(e.outEdges(r.v)||[]).forEach(r=>{let i=e.edge(r),a=r.w,o=e.node(a);o.in-=i,Fj(t,n,o)}),e.removeNode(r.v),o}function Pj(e,t){let n=new tj,r=0,i=0;e.nodes().forEach(e=>{n.setNode(e,{v:e,in:0,out:0})}),e.edges().forEach(e=>{let a=n.edge(e.v,e.w)||0,o=t(e),s=a+o;n.setEdge(e.v,e.w,s);let c=n.node(e.v),l=n.node(e.w);i=Math.max(i,c.out+=o),r=Math.max(r,l.in+=o)});let a=Ij(i+r+3).map(()=>new kj),o=r+1;return n.nodes().forEach(e=>{Fj(a,o,n.node(e))}),{graph:n,buckets:a,zeroIdx:o}}function Fj(e,t,n){var r,i,a;n.out?n.in?(a=e[n.out-n.in+t])==null||a.enqueue(n):(i=e[e.length-1])==null||i.enqueue(n):(r=e[0])==null||r.enqueue(n)}function Ij(e){let t=[];for(let n=0;n<e;n++)t.push(n);return t}function Lj(e,t){(e.graph().acyclicer===`greedy`?jj(e,n(e)):Rj(e,t??null)).forEach(t=>{let n=e.edge(t);e.removeEdge(t),n.forwardName=t.name,n.reversed=!0,e.setEdge(t.w,t.v,n,vj(`rev`))});function n(e){return t=>e.edge(t).weight}}function Rj(e,t){let n=[],r={},i={};function a(t){Object.hasOwn(i,t)||(i[t]=!0,r[t]=!0,e.outEdges(t).forEach(e=>{Object.hasOwn(r,e.w)?n.push(e):a(e.w)}),delete r[t])}function o(a){var s;Object.hasOwn(i,a)||(i[a]=!0,r[a]=!0,(s=e.outEdges(a))==null||s.forEach(i=>{Object.hasOwn(r,i.w)||t.node(a)?.rank>t.node(i.w)?.rank&&Bj(e,i.w,i)?n.push(i):o(i.w)}),delete r[a])}let s=a;return t&&typeof t.node==`function`&&(s=o),e.sources().forEach(s),e.nodes().forEach(s),n}function zj(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}})}function Bj(e,t,n){let r=new Set;function i(t){if(e.sources().includes(t))return!0;r.add(t);for(let a of e.inEdges(t)??[])if((a.v!==n.v||a.w!==n.w)&&!r.has(a.v)&&i(a.v))return!0;return!1}return i(t)}function Vj(e){e.graph().dummyChains=[],e.edges().forEach(t=>Hj(e,t))}function Hj(e,t){let n=t.v,r=e.node(n).rank,i=t.w,a=e.node(i).rank,o=t.name,s=e.edge(t),c=s.labelRank;if(a===r+1)return;e.removeEdge(t);let l,u,d=0;for(++r;r<a;++d,++r)s.points=[],u={width:0,height:0,edgeLabel:s,edgeObj:t,rank:r},l=nj(e,`edge`,u,`_d`),r===c&&(u.width=s.width,u.height=s.height,u.dummy=`edge-label`,u.labelpos=s.labelpos),e.setEdge(n,l,{weight:s.weight},o),d===0&&e.graph().dummyChains.push(l),n=l;e.setEdge(n,i,{weight:s.weight},o)}function Uj(e){e.graph().dummyChains.forEach(t=>{let n=e.node(t),r=n.edgeLabel,i;for(e.setEdge(n.edgeObj,r);n.dummy;)i=e.successors(t)[0],e.removeNode(t),r.points.push({x:n.x,y:n.y}),n.dummy===`edge-label`&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),t=i,n=e.node(t)})}function Wj(e){let t={};function n(r){let i=e.node(r);if(Object.hasOwn(t,r))return i.rank;t[r]=!0;let a=e.outEdges(r),o=a?a.map(t=>t==null?1/0:n(t.w)-e.edge(t).minlen):[],s=fj(Math.min,o);return s===1/0&&(s=0),i.rank=s}e.sources().forEach(n)}function Gj(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var Kj=qj;function qj(e){let t=new tj({directed:!1}),n=e.nodes();if(n.length===0)throw Error(`Graph must have at least one node`);let r=n[0],i=e.nodeCount();t.setNode(r,{});let a,o;for(;Jj(t,e)<i&&(a=Yj(t,e),a);)o=t.hasNode(a.v)?Gj(e,a):-Gj(e,a),Xj(t,e,o);return t}function Jj(e,t){function n(r){let i=t.nodeEdges(r);i&&i.forEach(i=>{let a=i.v,o=r===a?i.w:a;!e.hasNode(o)&&!Gj(t,i)&&(e.setNode(o,{}),e.setEdge(r,o,{}),n(o))})}return e.nodes().forEach(n),e.nodeCount()}function Yj(e,t){return t.edges().reduce((n,r)=>{let i=1/0;return e.hasNode(r.v)!==e.hasNode(r.w)&&(i=Gj(t,r)),i<n[0]?[i,r]:n},[1/0,null])[1]}function Xj(e,t,n){e.nodes().forEach(e=>t.node(e).rank+=n)}var{preorder:Zj,postorder:Qj}=kA,$j=eM;eM.initLowLimValues=iM,eM.initCutValues=tM,eM.calcCutValue=rM,eM.leaveEdge=oM,eM.enterEdge=sM,eM.exchangeEdges=cM;function eM(e){e=rj(e),Wj(e);let t=Kj(e);iM(t),tM(t,e);let n,r;for(;n=oM(t);)r=sM(t,e,n),cM(t,e,n,r)}function tM(e,t){let n=Qj(e,e.nodes());n=n.slice(0,n.length-1),n.forEach(n=>nM(e,t,n))}function nM(e,t,n){let r=e.node(n).parent,i=e.edge(n,r);i.cutvalue=rM(e,t,n)}function rM(e,t,n){let r=e.node(n).parent,i=!0,a=t.edge(n,r),o=0;a||=(i=!1,t.edge(r,n)),o=a.weight;let s=t.nodeEdges(n);return s&&s.forEach(a=>{let s=a.v===n,c=s?a.w:a.v;if(c!==r){let r=s===i,l=t.edge(a).weight;if(o+=r?l:-l,uM(e,n,c)){let t=e.edge(n,c).cutvalue;o+=r?-t:t}}}),o}function iM(e,t){arguments.length<2&&(t=e.nodes()[0]),aM(e,{},1,t)}function aM(e,t,n,r,i){let a=n,o=e.node(r);t[r]=!0;let s=e.neighbors(r);return s&&s.forEach(i=>{Object.hasOwn(t,i)||(n=aM(e,t,n,i,r))}),o.low=a,o.lim=n++,i?o.parent=i:delete o.parent,n}function oM(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function sM(e,t,n){let r=n.v,i=n.w;t.hasEdge(r,i)||(r=n.w,i=n.v);let a=e.node(r),o=e.node(i),s=a,c=!1;return a.lim>o.lim&&(s=o,c=!0),t.edges().filter(t=>c===dM(e,e.node(t.v),s)&&c!==dM(e,e.node(t.w),s)).reduce((e,n)=>Gj(t,n)<Gj(t,e)?n:e)}function cM(e,t,n,r){let i=n.v,a=n.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),iM(e),tM(e,t),lM(e,t)}function lM(e,t){let n=e.nodes().find(t=>!e.node(t).parent);if(!n)return;let r=Zj(e,[n]);r=r.slice(1),r.forEach(n=>{let r=e.node(n).parent,i=t.edge(n,r),a=!1;i||(i=t.edge(r,n),a=!0),t.node(n).rank=t.node(r).rank+(a?i.minlen:-i.minlen)})}function uM(e,t,n){return e.hasEdge(t,n)}function dM(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}var fM=pM;function pM(e){let t=e.graph().ranker;if(typeof t==`function`)return t(e);switch(t){case`network-simplex`:gM(e);break;case`tight-tree`:hM(e);break;case`longest-path`:mM(e);break;case`none`:break;default:gM(e)}}var mM=Wj;function hM(e){Wj(e),Kj(e)}function gM(e){$j(e)}var _M=vM;function vM(e){let t=bM(e),n=e.graph();Array.isArray(n.dummyChains)&&n.dummyChains.forEach(n=>{let r=e.node(n),i=r.edgeObj,a=yM(e,t,i.v,i.w),o=a.path,s=a.lca,c=0,l=o[c],u=!0;for(;n!==i.w;){if(r=e.node(n),u){for(;(l=o[c])!==s&&e.node(l).maxRank<r.rank;)c++;l===s&&(u=!1)}if(!u){for(;c<o.length-1&&e.node(o[c+1]).minRank<=r.rank;)c++;l=o[c]}l!==void 0&&e.setParent(n,l),n=e.successors(n)[0]}})}function yM(e,t,n,r){let i=[],a=[],o=Math.min(t[n].low,t[r].low),s=Math.max(t[n].lim,t[r].lim),c;c=n;do c=e.parent(c),i.push(c);while(c&&(t[c].low>o||s>t[c].lim));let l=c,u=r;for(;(u=e.parent(u))!==l;)a.push(u);return{path:i.concat(a.reverse()),lca:l}}function bM(e){let t={},n=0;function r(i){let a=n;e.children(i).forEach(r),t[i]={low:a,lim:n++}}return e.children(Cj).forEach(r),t}function xM(e){let t=nj(e,`root`,{},`_root`),n=CM(e),r=Object.values(n),i=fj(Math.max,r)-1,a=2*i+1;e.graph().nestingRoot=t,e.edges().forEach(t=>e.edge(t).minlen*=a);let o=wM(e)+1;e.children(Cj).forEach(r=>{SM(e,t,a,o,i,n,r)}),e.graph().nodeRankFactor=a}function SM(e,t,n,r,i,a,o){let s=e.children(o);if(!s.length){o!==t&&e.setEdge(t,o,{weight:0,minlen:n});return}let c=lj(e,`_bt`),l=lj(e,`_bb`),u=e.node(o);e.setParent(c,o),u.borderTop=c,e.setParent(l,o),u.borderBottom=l,s.forEach(s=>{SM(e,t,n,r,i,a,s);let u=e.node(s),d=u.borderTop?u.borderTop:s,f=u.borderBottom?u.borderBottom:s,p=u.borderTop?r:2*r,m=d===f?i-(a[o]??0)+1:1;e.setEdge(c,d,{weight:p,minlen:m,nestingEdge:!0}),e.setEdge(f,l,{weight:p,minlen:m,nestingEdge:!0})}),e.parent(o)||e.setEdge(t,c,{weight:0,minlen:i+(a[o]??0)})}function CM(e){let t={};function n(r,i){let a=e.children(r);a&&a.length&&a.forEach(e=>n(e,i+1)),t[r]=i}return e.children(Cj).forEach(e=>n(e,1)),t}function wM(e){return e.edges().reduce((t,n)=>t+e.edge(n).weight,0)}function TM(e){let t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(t=>{e.edge(t).nestingEdge&&e.removeEdge(t)})}var EM=DM;function DM(e){function t(n){let r=e.children(n),i=e.node(n);if(r.length&&r.forEach(t),i&&Object.hasOwn(i,`minRank`)){i.borderLeft=[],i.borderRight=[];for(let t=i.minRank,r=i.maxRank+1;t<r;++t)OM(e,`borderLeft`,`_bl`,n,i,t),OM(e,`borderRight`,`_br`,n,i,t)}}e.children(Cj).forEach(t)}function OM(e,t,n,r,i,a){let o={width:0,height:0,rank:a,borderType:t},s=i[t][a-1],c=nj(e,`border`,o,n);i[t][a]=c,e.setParent(c,r),s&&e.setEdge(s,c,{weight:1})}function kM(e){let t=e.graph().rankdir?.toLowerCase();(t===`lr`||t===`rl`)&&jM(e)}function AM(e){let t=e.graph().rankdir?.toLowerCase();(t===`bt`||t===`rl`)&&NM(e),(t===`lr`||t===`rl`)&&(FM(e),jM(e))}function jM(e){e.nodes().forEach(t=>MM(e.node(t))),e.edges().forEach(t=>MM(e.edge(t)))}function MM(e){let t=e.width;e.width=e.height,e.height=t}function NM(e){e.nodes().forEach(t=>PM(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(PM),Object.hasOwn(r,`y`)&&PM(r)})}function PM(e){e.y=-e.y}function FM(e){e.nodes().forEach(t=>IM(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(IM),Object.hasOwn(r,`x`)&&IM(r)})}function IM(e){let t=e.x;e.x=e.y,e.y=t}function LM(e,t=null){let n={},r=e.nodes().filter(t=>!e.children(t).length),i=r.map(t=>e.node(t).rank),a=yj(fj(Math.max,i)+1).map(()=>[]);function o(t){if(n[t])return;n[t]=!0;let r=e.node(t);a[r.rank].push(t);let i=e.successors(t);i&&[...i].sort((e,t)=>s(e,t)).forEach(o)}r.sort((t,n)=>e.node(t).rank-e.node(n).rank).forEach(o);function s(n,r){return wj(t,e.node(n),e.node(r))}return a}function RM(e,t){let n=0;for(let r=1;r<t.length;++r)n+=zM(e,t[r-1],t[r]);return n}function zM(e,t,n){let r=Sj(n,n.map((e,t)=>t)),i=t.flatMap(t=>{let n=e.outEdges(t);return n?n.map(t=>({pos:r[t.w],weight:e.edge(t).weight})).sort((e,t)=>e.pos-t.pos):[]}),a=1;for(;a<n.length;)a<<=1;let o=2*a-1;--a;let s=Array(o).fill(0),c=0;return i.forEach(e=>{let t=e.pos+a;s[t]+=e.weight;let n=0;for(;t>0;)t%2&&(n+=s[t+1]),t=t-1>>1,s[t]+=e.weight;c+=e.weight*n}),c}function BM(e,t=[]){return t.map(t=>{let n=e.inEdges(t);if(!n||!n.length)return{v:t};{let r=n.reduce((t,n)=>{let r=e.edge(n),i=e.node(n.v);return{sum:t.sum+r.weight*i.order,weight:t.weight+r.weight}},{sum:0,weight:0});return{v:t,barycenter:r.sum/r.weight,weight:r.weight}}})}function VM(e,t){let n={};return e.forEach((e,t)=>{let r={indegree:0,in:[],out:[],vs:[e.v],i:t};e.barycenter!==void 0&&(r.barycenter=e.barycenter,r.weight=e.weight),n[e.v]=r}),t.edges().forEach(e=>{let t=n[e.v],r=n[e.w];t!==void 0&&r!==void 0&&(r.indegree++,t.out.push(r))}),HM(Object.values(n).filter(e=>!e.indegree))}function HM(e){let t=[];function n(e){return t=>{t.merged||(t.barycenter===void 0||e.barycenter===void 0||t.barycenter>=e.barycenter)&&UM(e,t)}}function r(t){return n=>{n.in.push(t),--n.indegree===0&&e.push(n)}}for(;e.length;){let i=e.pop();t.push(i),i.in.reverse().forEach(n(i)),i.out.forEach(r(i))}return t.filter(e=>!e.merged).map(e=>bj(e,[`vs`,`i`,`barycenter`,`weight`]))}function UM(e,t){let n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}function WM(e,t,n,r,i){let a={},o=null,s=null,c=i;typeof t==`boolean`?(c=t,a={}):t&&(a=t,o=n??null,s=r??null);let l=mj(e,e=>Object.hasOwn(e,`barycenter`)),u=l.lhs,d=l.rhs.sort((e,t)=>t.i-e.i),f=[],p=0,m=0,h=0;u.sort(KM(s,o,!!c));for(let[e,t]of Object.entries(a)){let n=u.findIndex(t=>t.vs[0]===e);u.splice(n+1,0,t)}h=GM(f,d,h),u.forEach(e=>{h+=e.vs.length,f.push(e.vs),p+=e.barycenter*e.weight,m+=e.weight,h=GM(f,d,h)});let g={vs:f.flat(1)};return m&&(g.barycenter=p/m,g.weight=m),g}function GM(e,t,n){let r;for(;t.length&&(r=t[t.length-1]).i<=n;)t.pop(),e.push(r.vs),n++;return n}function KM(e,t,n){return(r,i)=>{if(r.barycenter<i.barycenter)return-1;if(r.barycenter>i.barycenter)return 1;if(e&&(typeof r.vs[0]==`string`||typeof i.vs[0]==`string`)){let n=wj(t,e.node(r.vs[0]),e.node(i.vs[0]));if(n!==0)return n}return n?i.i-r.i:r.i-i.i}}function qM(e,t,n,r,i){var a,o;let s=null,c=i;typeof r==`boolean`?(c=r,s=null):r!==void 0&&(s=r);let l=e.children(t),u=e.node(t),d=u?u.borderLeft:void 0,f=u?u.borderRight:void 0,p={};d&&(l=l.filter(e=>e!==d&&e!==f));let m=BM(e,l);m.forEach(t=>{if(e.children(t.v).length){let{result:r}=qM(e,t.v,n,s,c);p[t.v]=r,Object.hasOwn(r,`barycenter`)&&YM(t,r)}});let h=VM(m,n);JM(h,p);let g={},_=!1;for(let t=0;t<h.length;t++)for(let n=t+1;n<h.length;n++)if(h[t]&&h[n]&&(a=h[t])!=null&&a.barycenter&&(o=h[n])!=null&&o.barycenter&&h[t]?.barycenter===h[n].barycenter){let r=h[t]?.vs[0]??``,i=h[n]?.vs[0]??``,a=e.node(r),o=e.node(i);if(a.dummy===`edge`&&o.dummy===`edge`&&a.edgeObj?.v===o.edgeObj?.v&&a.edgeObj?.w===o.edgeObj?.w){if(a.edgeLabel.reversed){g[i]=h[t],h.splice(t,1),t--;break}g[r]=h[n],h.splice(n,1),n--}else _=!0}let v=WM(h,g,s,e,c);if(d&&f){v.vs=[d,v.vs,f].flat(1);let t=e.predecessors(d);if(t&&t.length){let n=e.node(t[0]),r=e.predecessors(f),i=e.node(r[0]);Object.hasOwn(v,`barycenter`)||(v.barycenter=0,v.weight=0),v.barycenter=(v.barycenter*v.weight+n.order+i.order)/(v.weight+2),v.weight+=2}}return Object.defineProperty(v,"result",{value:v,enumerable:!1,configurable:!0,writable:!0}),Object.defineProperty(v,"usedBias",{value:_,enumerable:!1,configurable:!0,writable:!0}),v}function JM(e,t){e.forEach(e=>{e.vs=e.vs.flatMap(e=>t[e]?t[e].vs:e)})}function YM(e,t){e.barycenter===void 0?(e.barycenter=t.barycenter,e.weight=t.weight):(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight)}function XM(e,t,n,r){r||=e.nodes();let i=ZM(e),a=new tj({compound:!0}).setGraph({root:i}).setDefaultNodeLabel(t=>e.node(t));return r.forEach(r=>{let o=e.node(r),s=e.parent(r);if(o.rank===t||o.minRank<=t&&t<=o.maxRank){a.setNode(r),a.setParent(r,s||i);let c=e[n](r);c&&c.forEach(t=>{let n=t.v===r?t.w:t.v,i=a.edge(n,r),o=i===void 0?0:i.weight;a.setEdge(n,r,{weight:e.edge(t).weight+o})}),Object.hasOwn(o,`minRank`)&&a.setNode(r,{borderLeft:o.borderLeft[t],borderRight:o.borderRight[t]})}}),a}function ZM(e){let t;for(;e.hasNode(t=vj(`_root`)););return t}function QM(e,t,n){let r={},i;n.forEach(n=>{let a=e.parent(n),o,s;for(;a;){if(o=e.parent(a),o?(s=r[o],r[o]=a):(s=i,i=a),s&&s!==a){t.setEdge(s,a);return}a=o}})}function $M(e,t={},n=null){if(typeof t.customOrder==`function`){t.customOrder(e,$M);return}let r=pj(e),i=eN(e,yj(1,r+1),`inEdges`),a=eN(e,yj(r-1,-1,-1),`outEdges`),o=LM(e,n);if(nN(e,o),t.disableOptimalOrderHeuristic)return;let s=1/0,c,l=t.constraints||[];for(let t=0,r=0;r<4;++t,++r){tN(t%2?i:a,t%4>=2,l,n),o=oj(e);let u=RM(e,o);u<s?(r=0,c=Object.assign({},o),s=u):u===s&&(c=structuredClone(o))}nN(e,c)}function eN(e,t,n){let r=new Map,i=(e,t)=>{r.has(e)||r.set(e,[]),r.get(e).push(t)};for(let t of e.nodes()){let n=e.node(t);if(typeof n.rank==`number`&&i(n.rank,t),typeof n.minRank==`number`&&typeof n.maxRank==`number`)for(let e=n.minRank;e<=n.maxRank;e++)e!==n.rank&&i(e,t)}return t.map(function(t){return XM(e,t,n,r.get(t)||[])})}function tN(e,t,n,r){let i=!0,a=new tj;e.forEach(function(e){n.forEach(e=>a.setEdge(e.left,e.right));let o=e.graph().root,{result:s,usedBias:c}=qM(e,o,a,r,i);t&&c&&(i=!i),s.vs.forEach((t,n)=>e.node(t).order=n),QM(e,a,s.vs)})}function nN(e,t){Object.values(t).forEach(t=>t.forEach((t,n)=>e.node(t).order=n))}function rN(e,t){let n={};function r(t,r){let i=0,a=0,o=t.length,s=r[r.length-1];return r.forEach((t,c)=>{let l=aN(e,t),u=l?e.node(l).order:o;(l||t===s)&&(r.slice(a,c+1).forEach(t=>{let r=e.predecessors(t);r&&r.forEach(r=>{let a=e.node(r),o=a.order;(o<i||u<o)&&!(a.dummy&&e.node(t).dummy)&&oN(n,r,t)})}),a=c+1,i=u)}),r}return t.length&&t.reduce(r),n}function iN(e,t){let n={};function r(t,r,i,a,o){yj(r,i).forEach(r=>{let i=t[r];if(i!==void 0&&e.node(i).dummy){let t=e.predecessors(i);t&&t.forEach(t=>{if(t===void 0)return;let r=e.node(t);r.dummy&&(r.order<a||r.order>o)&&oN(n,t,i)})}})}function i(t,n){let i=-1,a=-1,o=0;return n.forEach((s,c)=>{if(e.node(s).dummy===`border`){let t=e.predecessors(s);if(t&&t.length){let s=t[0];if(s===void 0)return;a=e.node(s).order,r(n,o,c,i,a),o=c,i=a}}r(n,o,n.length,a,t.length)}),n}return t.length&&t.reduce(i),n}function aN(e,t){if(e.node(t).dummy){let n=e.predecessors(t);if(n)return n.find(t=>e.node(t).dummy)}}function oN(e,t,n){if(t>n){let e=t;t=n,n=e}let r=e[t];r||(e[t]=r={}),r[n]=!0}function sN(e,t,n){if(t>n){let e=t;t=n,n=e}let r=e[t];return r!==void 0&&Object.hasOwn(r,n)}function cN(e,t,n,r,i){let a={},o={},s={};return t.forEach(e=>{e.forEach((e,t)=>{a[e]=e,o[e]=e,s[e]=t})}),t.forEach(t=>{let c=-1,l=-1,u=!1,d=t,f=t.findIndex(t=>i?.includes(t)||_N(t,e,i));f>0&&(d=[t[f],...t.slice(0,f),...t.slice(f+1)],u=!0),d.forEach(t=>{let d=r(t);if(d&&d.length){i!=null&&i.includes(t)&&(d=d.filter(t=>_N(t,e,i)));let r=d.sort((e,t)=>{let n=s[e],r=s[t];return(n===void 0?0:n)-(r===void 0?0:r)}),f=(r.length-1)/2;for(let e=Math.floor(f),i=Math.ceil(f);e<=i;++e){let i=r[e];if(i===void 0)continue;let d=s[i];if(d!==void 0&&o[t]===t&&c<d&&s[i]!==l&&!sN(n,t,i)){let e=a[i];e!==void 0&&(o[i]=t,o[t]=a[t]=e,c=d,u&&=(c=-1,l=s[i]??-1,!1))}}}})}),{root:a,align:o}}function lN(e,t,n,r,i=!1){let a={},o=uN(e,t,n,i),s=i?`borderLeft`:`borderRight`;function c(e,t){let n=o.nodes().slice(),r={},i=n.pop();for(;i;){if(r[i])e(i);else{r[i]=!0,n.push(i);for(let e of t(i))n.push(e)}i=n.pop()}}function l(e){let t=o.inEdges(e);t?a[e]=t.reduce((e,t)=>{let n=a[t.v]??0,r=o.edge(t);return Math.max(e,n+(r===void 0?0:r))},0):a[e]=0}function u(t){let n=o.outEdges(t),r=1/0;n&&(r=n.reduce((e,t)=>{let n=a[t.w],r=o.edge(t);return Math.min(e,(n===void 0?0:n)-(r===void 0?0:r))},1/0));let i=e.node(t);r!==1/0&&i.borderType!==s&&(a[t]=Math.max(a[t]===void 0?0:a[t],r))}function d(e){return o.predecessors(e)||[]}function f(e){return o.successors(e)||[]}return c(l,d),c(u,f),Object.keys(r).forEach(e=>{let t=n[e];t!==void 0&&(a[e]=a[t]??0)}),a}function uN(e,t,n,r){let i=new tj,a=e.graph(),o=hN(a.nodesep,a.edgesep,r);return t.forEach(t=>{let r;t.forEach(t=>{let a=n[t];if(a!==void 0){if(i.setNode(a),r!==void 0){let s=n[r];if(s!==void 0){let n=i.edge(s,a);i.setEdge(s,a,Math.max(o(e,t,r),n||0))}}r=t}})}),i}function dN(e,t){return Object.values(t).reduce((t,n)=>{let r=-1/0,i=1/0;Object.entries(n).forEach(([t,n])=>{let a=gN(e,t)/2;r=Math.max(n+a,r),i=Math.min(n-a,i)});let a=r-i;return a<t[0]&&(t=[a,n]),t},[1/0,null])[1]}function fN(e,t){let n=Object.values(t),r=fj(Math.min,n),i=fj(Math.max,n);[`u`,`d`].forEach(n=>{[`l`,`r`].forEach(a=>{let o=n+a,s=e[o];if(!s||s===t)return;let c=Object.values(s),l=r-fj(Math.min,c);a!==`l`&&(l=i-fj(Math.max,c)),l&&(e[o]=xj(s,e=>e+l))})})}function pN(e,t=void 0){let n=e.ul;return n?xj(n,(n,r)=>{if(t){let n=e[t.toLowerCase()];if(n&&n[r]!==void 0)return n[r]}let i=Object.values(e).map(e=>{let t=e[r];return t===void 0?0:t}).sort((e,t)=>e-t);return((i[1]??0)+(i[2]??0))/2}):{}}function mN(e,t){let n=oj(e),r=Object.assign(rN(e,n),iN(e,n)),i={},a;return[`u`,`d`].forEach(o=>{a=o===`u`?n:Object.values(n).reverse(),[`l`,`r`].forEach(n=>{n===`r`&&(a=a.map(e=>Object.values(e).reverse()));let s=cN(e,a,r,t=>(o===`u`?e.predecessors(t):e.successors(t))||[],t),c=lN(e,a,s.root,s.align,n===`r`);n===`r`&&(c=xj(c,e=>-e)),i[o+n]=c})}),fN(i,dN(e,i)),pN(i,e.graph().align)}function hN(e,t,n){return(r,i,a)=>{let o=r.node(i),s=r.node(a),c=0,l;if(c+=o.width/2,Object.hasOwn(o,`labelpos`))switch(o.labelpos.toLowerCase()){case`l`:l=-o.width/2;break;case`r`:l=o.width/2}if(l&&(c+=n?l:-l),l=void 0,c+=(o.dummy?t:e)/2,c+=(s.dummy?t:e)/2,c+=s.width/2,Object.hasOwn(s,`labelpos`))switch(s.labelpos.toLowerCase()){case`l`:l=s.width/2;break;case`r`:l=-s.width/2}return l&&(c+=n?l:-l),c}}function gN(e,t){return e.node(t).width}function _N(e,t,n){if(!n)return!1;let r=t.node(e)?.edgeObj;if(!r||t.node(e).edgeLabel.reversed)return!1;let i=n.indexOf(r?.v),a=n.indexOf(r?.w);return i!==-1&&a!==-1&&i===(a+1)%n.length||i===(a-1)%n.length}function vN(e,t){e=ij(e),yN(e),Object.entries(mN(e,t)).forEach(([t,n])=>e.node(t).x=n)}function yN(e){let t=oj(e),n=e.graph(),r=n.ranksep,i=n.rankalign,a=0;t.forEach(t=>{let n=t.reduce((t,n)=>{let r=e.node(n).height??0;return t>r?t:r},0);t.forEach(t=>{let r=e.node(t);r.y=i===`top`?a+r.height/2:i===`bottom`?a+n-r.height/2:a+n/2}),a+=n+r})}var bN=new WeakMap;function xN(e,t={}){return CN(e,gj,t),e}function SN(e,t,n){let r=t;for(;r!==void 0;){let t=e.parent(r);if(t===n)return r;r=t}}function CN(e,t,n){let r=e.nodes().filter(t=>e.children(t).length),i={};r.forEach(r=>{let a=e.node(r);if(a&&a.rankdir){let o=new tj({multigraph:!0,compound:!0});o.setGraph({rankdir:a.rankdir});let s=e.children(r);s.forEach(t=>{let n={...e.node(t)};o.setNode(t,n);let i=e.parent(t);i&&i!==r&&s.includes(i)&&o.setParent(t,i)});let c=new Set;e.edges().forEach(t=>{let n=SN(e,t.v,r),i=SN(e,t.w,r);if(n&&i&&n!==i){let r=`${n}\0${i}`;c.has(r)||(c.add(r),o.setEdge(n,i,{...e.edge(t)}))}}),CN(o,t,n);let l=PN(o);wN(l,t,n,null),TN(o,l);let u=1/0,d=1/0,f=-1/0,p=-1/0;o.nodes().forEach(e=>{if(e===r)return;let t=o.node(e);t&&typeof t.x==`number`&&typeof t.y==`number`&&typeof t.width==`number`&&typeof t.height==`number`&&(u=Math.min(u,t.x-t.width/2),f=Math.max(f,t.x+t.width/2),d=Math.min(d,t.y-t.height/2),p=Math.max(p,t.y+t.height/2))}),(!isFinite(u)||!isFinite(d)||!isFinite(f)||!isFinite(p))&&(u=d=0,f=p=0);let m=f-u,h=p-d;i[r]={minX:u,minY:d,maxX:f,maxY:p,width:m,height:h,offsetX:u,offsetY:d},a._dagreClusterSubgraph=o}});let a=[],o=t=>{let n=[],r=(e.children(t)||[]).filter(e=>e!==t);for(;r.length>0;){let t=r.shift();n.push(t),(e.children(t)||[]).filter(e=>e!==t).forEach(e=>r.push(e))}return n},s=new Map;r.forEach(t=>{let n=e.node(t);n&&n.rankdir&&i[t]&&s.set(t,(e.children(t)||[]).filter(e=>e!==t))});let c=new Set([...s.values()].flat()),l=new Map;s.forEach((e,t)=>{c.has(t)||l.set(t,o(t))});let u=new Set([...l.values()].flat()),d=e=>{for(let[t,n]of l)if(n.includes(e))return t;return e},f=[];e.edges().forEach(t=>{(u.has(t.v)||u.has(t.w))&&f.push({edge:t,label:e.edge(t)})});let p=new Map;u.forEach(t=>{let n=e.parent(t);p.set(t,typeof n==`string`?n:void 0)}),l.forEach((t,n)=>{let r=e.node(n),o=[];t.forEach(t=>{let n=e.node(t);n&&(o.push({id:t,node:n,parent:p.get(t)}),e.removeNode(t))});let s=f.filter(({edge:e})=>t.includes(e.v)||t.includes(e.w)),c=i[n];r&&(a.push({clusterId:n,subgraph:r._dagreClusterSubgraph,bounds:c,children:t,removedNodes:o,removedEdges:s}),r.width=c.width,r.height=c.height)});let m=new Set;f.forEach(({edge:t,label:n})=>{let r=d(t.v),i=d(t.w);if(r!==i&&e.hasNode(r)&&e.hasNode(i)){let t=`${r}\0${i}`;m.has(t)||(m.add(t),e.setEdge(r,i,{...n,width:0,height:0}))}});let h=PN(e),g=wN(h,t,n,bN.get(e)??null);bN.set(e,g),TN(e,h),m.forEach(t=>{let n=t.indexOf(`\0`),r=t.slice(0,n),i=t.slice(n+1);e.hasEdge(r,i)&&e.removeEdge(r,i)}),a.forEach(({clusterId:t,subgraph:n,bounds:r,removedNodes:i,removedEdges:a})=>{let o=e.node(t),s=o?.x??0,c=o?.y??0,l=(r.minX+r.maxX)/2,u=(r.minY+r.maxY)/2;i.forEach(({id:t,node:n,parent:r})=>{e.setNode(t,n),r!==void 0&&e.setParent(t,r)}),a.forEach(({edge:t,label:n})=>{e.setEdge(t,n)}),n.nodes().forEach(r=>{if(r===t)return;let i=n.node(r),a=e.node(r);a&&i&&typeof i.x==`number`&&typeof i.y==`number`&&(a.x=s+(i.x-l),a.y=c+(i.y-u))}),delete o._dagreClusterSubgraph}),r.forEach(t=>{let n=e.node(t),r=i[t];if(n&&n.rankdir&&n._dagreClusterSubgraph&&r){let i=n._dagreClusterSubgraph,a=n.x??0,o=n.y??0,s=(r.minX+r.maxX)/2,c=(r.minY+r.maxY)/2;i.nodes().forEach(n=>{if(n===t)return;let r=i.node(n),l=e.node(n);if(l&&r&&typeof r.x==`number`&&typeof r.y==`number`){let e=r.x-s,t=r.y-c;l.x=a+e,l.y=o+t}}),delete n._dagreClusterSubgraph}})}function wN(e,t,n,r=null){var i,a;let o=n?.useDynamic!==!1,s=o&&(i=r?.graph)!=null?i:null,c=o&&(a=r?.rawNodes)!=null?a:null;t(` makeSpaceForEdgeLabels`,()=>FN(e)),t(` removeSelfEdges`,()=>WN(e)),t(` acyclic`,()=>Lj(e,s)),t(` nestingGraph.run`,()=>xM(e)),t(` rank`,()=>fM(ij(e))),t(` injectEdgeLabelProxies`,()=>IN(e)),t(` removeEmptyRanks`,()=>cj(e)),t(` nestingGraph.cleanup`,()=>TM(e)),t(` normalizeRanks`,()=>sj(e)),t(` assignRankMinMax`,()=>LN(e)),t(` removeEdgeLabelProxies`,()=>RN(e)),t(` normalize.run`,()=>Vj(e)),t(` parentDummyChains`,()=>_M(e)),t(` addBorderSegments`,()=>EM(e)),t(` order`,()=>$M(e,n,c)),t(` insertSelfEdges`,()=>GN(e)),t(` adjustCoordinateSystem`,()=>kM(e)),t(` position`,()=>vN(e,n.corePath)),t(` positionSelfEdges`,()=>KN(e));let l=JSON.parse(JSON.stringify(e._nodes));return t(` removeBorderNodes`,()=>UN(e)),t(` normalize.undo`,()=>Uj(e)),t(` fixupEdgeLabelCoords`,()=>VN(e)),t(` undoCoordinateSystem`,()=>AM(e)),t(` translateGraph`,()=>zN(e)),t(` assignNodeIntersects`,()=>BN(e)),t(` reversePoints`,()=>HN(e)),t(` acyclic.undo`,()=>zj(e)),{graph:e,rawNodes:l}}function TN(e,t){e.nodes().forEach(n=>{let r=e.node(n),i=t.node(n);r&&(r.x=i.x,r.y=i.y,r.order=i.order,r.rank=i.rank,t.children(n).length&&(r.width=i.width,r.height=i.height))}),e.edges().forEach(n=>{let r=e.edge(n),i=t.edge(n);r.points=i.points,Object.hasOwn(i,`x`)&&(r.x=i.x,r.y=i.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}var EN=[`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`],DN={ranksep:50,edgesep:20,nodesep:50,rankdir:`TB`,rankalign:`center`},ON=[`acyclicer`,`ranker`,`rankdir`,`align`,`rankalign`],kN=[`width`,`height`,`rank`],AN={width:0,height:0},jN=[`minlen`,`weight`,`width`,`height`,`labeloffset`],MN={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:`r`},NN=[`labelpos`];function PN(e){let t=new tj({multigraph:!0,compound:!0}),n=JN(e.graph());return t.setGraph(Object.assign({},DN,qN(n,EN),bj(n,ON))),e.nodes().forEach(n=>{let r=qN(JN(e.node(n)),kN);Object.keys(AN).forEach(e=>{r[e]===void 0&&(r[e]=AN[e])}),t.setNode(n,r);let i=e.parent(n);i!==void 0&&t.setParent(n,i)}),e.edges().forEach(n=>{let r=JN(e.edge(n));t.setEdge(n,Object.assign({},MN,qN(r,jN),bj(r,NN)))}),t}function FN(e){let t=e.graph();t.ranksep/=2,e.edges().forEach(n=>{let r=e.edge(n);r.minlen*=2,(r.labelpos??`r`).toLowerCase()!==`c`&&(t.rankdir===`TB`||t.rankdir===`BT`?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function IN(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.width&&n.height){let n=e.node(t.v);nj(e,`edge-proxy`,{rank:(e.node(t.w).rank-n.rank)/2+n.rank,e:t},`_ep`)}})}function LN(e){let t=0;e.nodes().forEach(n=>{let r=e.node(n);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}function RN(e){e.nodes().forEach(t=>{let n=e.node(t);if(n.dummy===`edge-proxy`){let r=n;e.edge(r.e).labelRank=n.rank,e.removeNode(t)}})}function zN(e){let t=1/0,n=0,r=1/0,i=0,a=e.graph(),o=a.marginx||0,s=a.marginy||0;function c(e){let a=e.x,o=e.y,s=e.width,c=e.height;t=Math.min(t,a-s/2),n=Math.max(n,a+s/2),r=Math.min(r,o-c/2),i=Math.max(i,o+c/2)}e.nodes().forEach(t=>c(e.node(t))),e.edges().forEach(t=>{let n=e.edge(t);Object.hasOwn(n,`x`)&&c(n)}),t-=o,r-=s,e.nodes().forEach(n=>{let i=e.node(n);i.x-=t,i.y-=r}),e.edges().forEach(n=>{let i=e.edge(n);i.points.forEach(e=>{e.x-=t,e.y-=r}),Object.hasOwn(i,`x`)&&(i.x-=t),Object.hasOwn(i,`y`)&&(i.y-=r)}),a.width=n-t+o,a.height=i-r+s}function BN(e){e.edges().forEach(t=>{if(t.v===t.w)return;let n=e.edge(t),r=e.node(t.v),i=e.node(t.w),a,o;n.points?(a=n.points[0],o=n.points[n.points.length-1]):(n.points=[],a=i,o=r),n.points.unshift(aj(r,a)),n.points.push(aj(i,o))})}function VN(e){e.edges().forEach(t=>{let n=e.edge(t);if(Object.hasOwn(n,`x`))switch((n.labelpos===`l`||n.labelpos===`r`)&&(n.width-=n.labeloffset),n.labelpos){case`l`:n.x-=n.width/2+n.labeloffset;break;case`r`:n.x+=n.width/2+n.labeloffset}})}function HN(e){e.edges().forEach(t=>{let n=e.edge(t);n.reversed&&n.points.reverse()})}function UN(e){e.nodes().forEach(t=>{if(e.children(t).length){let n=e.node(t),r=e.node(n.borderTop),i=e.node(n.borderBottom),a=e.node(n.borderLeft[n.borderLeft.length-1]),o=e.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(o.x-a.x),n.height=Math.abs(i.y-r.y),n.x=a.x+n.width/2,n.y=r.y+n.height/2}}),e.nodes().forEach(t=>{e.node(t).dummy===`border`&&e.removeNode(t)})}function WN(e){e.edges().forEach(t=>{if(t.v===t.w){let n=e.node(t.v);n.selfEdges||=[],n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function GN(e){oj(e).forEach(t=>{let n=0;t.forEach((t,r)=>{let i=e.node(t);typeof i.rank!=`number`&&(i.rank=0),i.order=r+n,(i.selfEdges||[]).forEach(t=>{nj(e,`selfedge`,{width:t.label.width,height:t.label.height,rank:i.rank,order:r+ ++n,e:t.e,edgeLabel:t.label},`_se`),(!Array.isArray(t.label.points)||t.label.points.length!==7)&&(t.label.points=[{x:0,y:-10},{x:0,y:-10},{x:0,y:0},{x:0,y:10},{x:0,y:10},{x:0,y:0},{x:0,y:0}])}),delete i.selfEdges})})}function KN(e){e.nodes().forEach(t=>{let n=e.node(t),r=e=>typeof e==`number`&&isFinite(e);if(n.dummy===`selfedge`){let i=n,a=e.node(i.e.v),o=r(a?.x)?a.x:0,s=r(a?.y)?a.y:0,c=r(a?.width)?a.width:0,l=r(a?.height)?a.height:0,u=r(n.x)?n.x:o,d=r(n.y)?n.y:s,f=c/2,p=l/2;i.edgeLabel.points=[{x:u+f,y:d-p},{x:u+f,y:d-p},{x:u,y:d},{x:u-f,y:d+p},{x:u-f,y:d+p},{x:u,y:d},{x:u,y:d}],i.edgeLabel.x=u,i.edgeLabel.y=d,e.setEdge(i.e,i.edgeLabel),e.removeNode(t)}else n&&Array.isArray(n.selfEdges)&&n.selfEdges.forEach(e=>{if(!Array.isArray(e.label.points)||e.label.points.length!==7){let t=r(n.x)?n.x:0,i=r(n.y)?n.y:0,a=r(n.width)?n.width:0,o=r(n.height)?n.height:0,s=a/2,c=o/2;e.label.points=[{x:t+s,y:i-c},{x:t+s,y:i-c},{x:t,y:i},{x:t-s,y:i+c},{x:t-s,y:i+c},{x:t,y:i},{x:t,y:i}]}})})}function qN(e,t){return xj(bj(e,t),Number)}function JN(e){let t={};return e&&Object.entries(e).forEach(([e,n])=>{typeof e==`string`&&(e=e.toLowerCase()),t[e]=n}),t}function YN(e){let t=oj(e),n=new tj({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(t=>{n.setNode(t,{label:t}),n.setParent(t,`layer`+e.node(t).rank)}),e.edges().forEach(e=>n.setEdge(e.v,e.w,{},e.name)),t.forEach((e,t)=>{let r=`layer`+t;n.setNode(r,{rank:`same`}),e.reduce((e,t)=>(n.setEdge(e,t,{style:`invis`}),t))}),n}var XN={graphlib:gA,version:Tj,layout:xN,debug:YN,util:{time:hj,notime:gj}},ZN={system:{label:`System`,border:`solid`},knowledge:{label:`Knowledge`,border:`solid`},delivery:{label:`Delivery`,border:`dashed`},implementation:{label:`Implementation`,border:`dotted`},unknown:{label:`Unknown`,border:`solid`}},QN={system:0,knowledge:1,delivery:2,unknown:3,implementation:4},$N=28,eP=22;function tP(e){switch(e){case`business`:case`product`:case`tech`:case`delivery`:return{label:nP(e),tone:`var(--info)`};case`project`:return{label:`Project`,tone:`var(--primary)`};case`work-item`:return{label:`Work Item`,tone:`var(--work-item-ready)`};case`decision`:return{label:`Decision`,tone:`var(--warning)`};case`capability`:return{label:`Capability`,tone:`var(--success)`};case`code-glob`:return{label:`Code`,tone:`var(--foreground-muted)`};case`initiative`:return{label:`Initiative`,tone:`var(--primary)`};case`roadmap-candidate`:return{label:`Candidate`,tone:`var(--foreground-muted)`};case`knowledge-capsule`:return{label:`External knowledge`,tone:`var(--info)`};default:return{label:nP(e),tone:`var(--foreground-muted)`}}}function nP(e){return e.replace(/[-_]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function rP(e){let t=new XN.graphlib.Graph;t.setGraph({rankdir:`TB`,nodesep:40,ranksep:70,marginx:20,marginy:20}),t.setDefaultEdgeLabel(()=>({}));for(let n of e.nodes)t.setNode(n.id,{width:190,height:58});let n=new Set(e.nodes.map(e=>e.id));for(let r of e.relationships)n.has(r.source)&&n.has(r.target)&&t.setEdge(r.source,r.target);XN.layout(t);let r=new Map;for(let n of e.nodes){let e=t.node(n.id);r.set(n.id,{x:(e?.x??0)-95,y:(e?.y??0)-29})}let i=new Map;for(let t of e.groups){let n=e.nodes.filter(e=>e.moduleId===t.id);if(n.length===0)continue;let a=1/0,o=1/0,s=-1/0,c=-1/0;for(let e of n){let t=r.get(e.id);a=Math.min(a,t.x),o=Math.min(o,t.y),s=Math.max(s,t.x+190),c=Math.max(c,t.y+58)}i.set(t.id,{x:a-$N,y:o-$N-eP,w:s-a+56,h:c-o+56+eP})}return{positions:r,groupBoxes:i}}function iP(e,t,n){let r=e.groups.filter(e=>t.groupBoxes.has(e.id)).map(e=>{let n=t.groupBoxes.get(e.id);return{id:`group:${e.id}`,type:`systemGroup`,position:{x:n.x,y:n.y},data:{label:e.label,available:e.available},style:{width:n.w,height:n.h},selectable:!1,draggable:!1,zIndex:-1}}),i=e.nodes.map(e=>({id:e.id,type:`system`,position:t.positions.get(e.id)??{x:0,y:0},data:{node:e,selected:e.id===n},zIndex:1}));return[...r,...i]}function aP(e,t){return e.relationships.map(e=>{let n=t!=null&&(e.source===t||e.target===t);return{id:e.id,source:e.source,target:e.target,label:e.label,selectable:!0,animated:n,data:{relationship:e},style:{stroke:n?`var(--primary)`:`var(--border-strong)`,strokeWidth:n?2:1},labelStyle:{fill:`var(--foreground-muted)`,fontSize:10},labelBgStyle:{fill:`var(--surface)`}}})}function oP(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.label.toLowerCase().includes(n)||e.type.toLowerCase().includes(n)||(e.moduleId??``).toLowerCase().includes(n)).sort((e,t)=>QN[e.dimension]-QN[t.dimension]):[]}function sP({data:e}){let{node:t,selected:n}=e,r=tP(t.type),i=ZN[t.dimension];return(0,x.jsxs)(`div`,{style:{width:190,minHeight:58,boxSizing:`border-box`,background:`var(--surface)`,border:`1px ${i.border} ${n?`var(--primary)`:`var(--border)`}`,borderLeft:`4px solid ${r.tone}`,borderRadius:`var(--radius)`,boxShadow:n?`0 0 0 2px color-mix(in srgb, var(--primary) 40%, transparent)`:`none`,padding:`8px 10px`,overflow:`hidden`},children:[(0,x.jsx)(ZD,{type:`target`,position:$.Top,style:{background:`var(--border-strong)`,width:6,height:6}}),(0,x.jsx)(`div`,{style:{fontSize:10,fontWeight:600,textTransform:`uppercase`,letterSpacing:.3,color:`var(--foreground-muted)`},children:r.label}),(0,x.jsx)(`div`,{style:{fontSize:13,fontWeight:600,color:`var(--foreground)`,lineHeight:1.25,wordBreak:`break-word`},children:t.label}),(0,x.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`,marginTop:3,flexWrap:`wrap`},children:[t.moduleId&&(0,x.jsx)(`span`,{className:`font-mono`,style:{fontSize:10,color:`var(--foreground-muted)`},children:t.moduleId}),t.status&&(0,x.jsxs)(`span`,{style:{fontSize:10,color:`var(--foreground-muted)`},children:[`· `,t.status]})]}),(0,x.jsx)(ZD,{type:`source`,position:$.Bottom,style:{background:`var(--border-strong)`,width:6,height:6}})]})}function cP({data:e}){return(0,x.jsx)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,border:`1px dashed ${e.available?`var(--border-strong)`:`var(--danger)`}`,borderRadius:`var(--radius)`,background:`color-mix(in srgb, var(--surface-muted) 50%, transparent)`},children:(0,x.jsxs)(`div`,{style:{position:`absolute`,top:4,left:8,display:`flex`,gap:8,alignItems:`center`},children:[(0,x.jsx)(`span`,{className:`font-mono`,style:{fontSize:11,fontWeight:700,color:`var(--foreground-muted)`},children:e.label}),!e.available&&(0,x.jsx)(`span`,{style:{fontSize:10,color:`var(--danger)`},children:`Unavailable`})]})})}function lP({label:e,children:t}){return(0,x.jsxs)(`div`,{style:{marginBottom:12},children:[(0,x.jsx)(`div`,{style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:.3,color:`var(--foreground-muted)`,marginBottom:3},children:e}),(0,x.jsx)(`div`,{style:{fontSize:14,color:`var(--foreground)`},children:t})]})}function uP({children:e,onClick:t}){return(0,x.jsx)(`button`,{onClick:t,style:{display:`block`,background:`none`,border:`none`,padding:`2px 0`,cursor:`pointer`,color:`var(--primary)`,fontFamily:`inherit`,fontSize:14,textAlign:`left`},children:e})}function dP({projection:e,selectedNodeId:t,selectedEdgeId:n,onClose:r,onSelectNode:i}){let a=di(),o=new Map(e.nodes.map(e=>[e.id,e])),s=t?o.get(t)??null:null,c=n?e.relationships.find(e=>e.id===n)??null:null;return(0,x.jsxs)(`aside`,{style:{width:320,flexShrink:0,borderLeft:`1px solid var(--border)`,background:`var(--surface)`,padding:20,overflowY:`auto`},children:[(0,x.jsx)(`div`,{style:{display:`flex`,justifyContent:`flex-end`},children:(0,x.jsx)(`button`,{onClick:r,"aria-label":`Close details`,style:{background:`none`,border:`none`,cursor:`pointer`,color:`var(--foreground-muted)`,fontSize:18,lineHeight:1},children:`×`})}),s&&(0,x.jsx)(fP,{node:s,projection:e,nodeById:o,onSelectNode:i,router:a}),!s&&c&&(0,x.jsx)(pP,{edge:c,nodeById:o}),!s&&!c&&(0,x.jsx)(`p`,{style:{fontSize:14,color:`var(--foreground-muted)`},children:`Select a node or relationship to see details.`})]})}function fP({node:e,projection:t,nodeById:n,onSelectNode:r,router:i}){let a=tP(e.type),o=[];for(let r of t.relationships)if(r.source===e.id){let e=n.get(r.target);e&&o.push({id:e.id,label:e.label,rel:`${r.label} →`,dimension:e.dimension})}else if(r.target===e.id){let e=n.get(r.source);e&&o.push({id:e.id,label:e.label,rel:`${r.label} from`,dimension:e.dimension})}let s=e=>o.filter(t=>t.dimension===e),c=s(`system`),l=s(`knowledge`),u=s(`delivery`),d=s(`implementation`);return(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`h2`,{style:{fontSize:17,fontWeight:700,margin:`0 0 12px`,wordBreak:`break-word`},children:e.label}),(0,x.jsx)(lP,{label:`Type`,children:a.label}),e.moduleId&&(0,x.jsx)(lP,{label:`Module / repository`,children:(0,x.jsx)(`span`,{className:`font-mono`,children:e.moduleId})}),e.status&&(0,x.jsx)(lP,{label:`Status`,children:Ba(e.status)}),e.purpose&&(0,x.jsx)(lP,{label:`Purpose`,children:e.purpose}),c.length>0&&(0,x.jsx)(lP,{label:`Relationships`,children:(0,x.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:c.map((e,t)=>(0,x.jsxs)(uP,{onClick:()=>r(e.id),children:[e.rel,` `,e.label]},t))})}),l.length>0&&(0,x.jsx)(lP,{label:`Knowledge context`,children:(0,x.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:l.map((e,t)=>(0,x.jsxs)(uP,{onClick:()=>r(e.id),children:[e.rel,` `,e.label]},t))})}),u.length>0&&(0,x.jsx)(lP,{label:`Delivery history`,children:(0,x.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:u.map((e,t)=>(0,x.jsxs)(uP,{onClick:()=>r(e.id),children:[e.rel,` `,e.label]},t))})}),d.length>0&&(0,x.jsx)(lP,{label:`Implementation`,children:(0,x.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:d.map((e,t)=>(0,x.jsx)(`span`,{className:`font-mono`,style:{fontSize:12,color:`var(--foreground-muted)`},children:e.label},t))})}),(e.knowledgeRef||e.knowledgeRefs&&e.knowledgeRefs.length>0)&&(0,x.jsx)(lP,{label:`Knowledge`,children:(0,x.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:2},children:[e.knowledgeRef&&(0,x.jsxs)(uP,{onClick:()=>i.navigate({to:`/knowledge/$layer/$artifactId`,params:{layer:e.knowledgeRef.layer,artifactId:e.knowledgeRef.id}}),children:[Ba(e.knowledgeRef.layer),` / `,e.knowledgeRef.id,` →`]}),(e.knowledgeRefs??[]).map(e=>(0,x.jsxs)(uP,{onClick:()=>i.navigate({to:`/knowledge/$layer/$artifactId`,params:{layer:e.layer,artifactId:e.id}}),children:[Ba(e.layer),` / `,e.id,` →`]},e.id))]})}),e.provenance&&(0,x.jsxs)(lP,{label:`Provenance`,children:[Ba(e.provenance),e.evidence&&e.evidence.length>0&&(0,x.jsx)(`div`,{className:`font-mono`,style:{fontSize:11,color:`var(--foreground-muted)`,marginTop:4},children:e.evidence.map((e,t)=>(0,x.jsx)(`div`,{children:e},t))})]}),e.workItemRef&&(0,x.jsx)(lP,{label:`Related Work Item`,children:(0,x.jsxs)(uP,{onClick:()=>i.navigate({to:`/work-items/$workItemId`,params:{workItemId:e.workItemRef}}),children:[e.workItemRef,` →`]})}),e.path&&(0,x.jsx)(lP,{label:`Path`,children:(0,x.jsx)(Vg,{path:e.path})})]})}function pP({edge:e,nodeById:t}){let n=t.get(e.source),r=t.get(e.target);return(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`h2`,{style:{fontSize:15,fontWeight:700,margin:`0 0 12px`},children:`Relationship`}),(0,x.jsx)(lP,{label:`From`,children:n?.label??e.source}),(0,x.jsx)(lP,{label:`To`,children:r?.label??e.target}),(0,x.jsx)(lP,{label:`Type`,children:e.label}),n?.moduleId&&(0,x.jsx)(lP,{label:`Source module`,children:(0,x.jsx)(`span`,{className:`font-mono`,children:n.moduleId})}),r?.moduleId&&(0,x.jsx)(lP,{label:`Target module`,children:(0,x.jsx)(`span`,{className:`font-mono`,children:r.moduleId})})]})}function mP({metadata:e}){let[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(!1),l=e.topologyStatus,u=l===`available`?(0,x.jsx)(go,{variant:`success`,children:`Available`}):l===`partial`?(0,x.jsx)(go,{variant:`warning`,children:`Partial`}):(0,x.jsx)(go,{variant:`muted`,children:`Unavailable`}),d=async()=>{c(!0),o(null);try{let e=await po.getTopologyHandoff();n(e.text);try{await navigator.clipboard?.writeText(e.text),i(!0),setTimeout(()=>i(!1),2e3)}catch{}}catch(e){o(e instanceof co?e.message:`The handoff could not be generated.`)}finally{c(!1)}},f=l===`available`?`${e.semanticEntityCount} semantic components · ${e.technicalRelationshipCount} technical relationships.`:l===`partial`?`${e.semanticEntityCount} semantic components known, but coverage is incomplete.`:`Kaddo currently knows Knowledge and Delivery relationships, but does not yet have enough semantic system metadata to describe how the software is structured.`;return(0,x.jsxs)(`div`,{style:{padding:`10px 16px`,borderBottom:`1px solid var(--border)`,background:l===`available`?`transparent`:`color-mix(in srgb, var(--warning) 8%, transparent)`},children:[(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,flexWrap:`wrap`},children:[(0,x.jsx)(`span`,{style:{fontSize:11,fontWeight:700,textTransform:`uppercase`,letterSpacing:.3,color:`var(--foreground-muted)`},children:`System topology`}),u,(0,x.jsx)(`span`,{style:{fontSize:12,color:`var(--foreground-muted)`},children:f}),l!==`available`&&(0,x.jsx)(`button`,{onClick:d,disabled:s,style:{marginLeft:`auto`,padding:`5px 12px`,border:`1px solid var(--primary)`,borderRadius:`var(--radius)`,background:`var(--primary)`,color:`var(--primary-foreground)`,cursor:s?`default`:`pointer`,fontSize:12,fontWeight:600,fontFamily:`inherit`,opacity:s?.6:1},children:s?`Preparing…`:r?`✓ Copied`:`Copy topology enrichment handoff`})]}),a&&(0,x.jsx)(`p`,{style:{fontSize:12,color:`var(--danger)`,margin:`8px 0 0`},children:a}),t&&(0,x.jsx)(`pre`,{style:{marginTop:10,background:`var(--surface-muted)`,border:`1px solid var(--border)`,borderRadius:`var(--radius)`,padding:12,fontSize:11,lineHeight:1.5,whiteSpace:`pre-wrap`,wordBreak:`break-word`,fontFamily:`var(--font-mono)`,color:`var(--foreground)`,maxHeight:220,overflowY:`auto`},children:t})]})}var hP={system:sP,systemGroup:cP};function gP(){return(0,x.jsxs)(`div`,{style:{padding:24},children:[(0,x.jsx)(`div`,{style:{height:`calc(100vh - 120px)`,background:`var(--surface-muted)`,borderRadius:`var(--radius)`,animation:`pulse 1.5s ease-in-out infinite`}}),(0,x.jsx)(`style`,{children:`@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}`})]})}var _P={padding:`8px 12px`,border:`1px solid var(--border)`,borderRadius:`var(--radius)`,background:`var(--surface)`,color:`var(--foreground)`,fontSize:13,fontFamily:`inherit`};function vP({projection:e}){let t=di(),n=C(),r=Wi({from:`/system`}),i=wD(),[a,o]=(0,v.useState)(r.node??null),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(`all`),[p,m]=(0,v.useState)(`all`),[h,g]=(0,v.useState)({system:!0,knowledge:!0,delivery:!0,implementation:!1,unknown:!0}),_=(0,v.useMemo)(()=>[...new Set(e.nodes.map(e=>e.type))].sort(),[e]),y=(0,v.useMemo)(()=>{let t=e.nodes.filter(e=>h[e.dimension]&&(d===`all`||e.moduleId===d)&&(p===`all`||e.type===p)),n=new Set(t.map(e=>e.id));return{...e,nodes:t,relationships:e.relationships.filter(e=>n.has(e.source)&&n.has(e.target))}},[e,d,p,h]),b=e=>g(t=>({...t,[e]:!t[e]})),S=(e,t)=>(0,x.jsxs)(`label`,{style:{display:`inline-flex`,gap:5,alignItems:`center`,fontSize:12,cursor:`pointer`,color:`var(--foreground-muted)`},children:[(0,x.jsx)(`input`,{type:`checkbox`,checked:h[e],onChange:()=>b(e),"aria-label":`Toggle ${t}`}),t]}),w=(0,v.useMemo)(()=>rP(y),[y]),T=(0,v.useMemo)(()=>iP(y,w,a),[y,w,a]),E=(0,v.useMemo)(()=>aP(y,a),[y,a]),D=e=>{let t=w.positions.get(e);t&&i.setCenter(t.x+95,t.y+29,{zoom:1.2,duration:400})};(0,v.useEffect)(()=>{if(r.node&&w.positions.has(r.node)){o(r.node);let e=setTimeout(()=>D(r.node),100);return()=>clearTimeout(e)}},[]);let O=e=>{o(e),c(null),t.navigate({to:`/system`,search:{node:e},replace:!0}),D(e)},k=l.trim()?oP(y.nodes,l).slice(0,8):[];return(0,x.jsxs)(`div`,{style:{display:`flex`,height:`calc(100vh - 56px)`},children:[(0,x.jsxs)(`div`,{style:{flex:1,minWidth:0,position:`relative`,display:`flex`,flexDirection:`column`},children:[(0,x.jsxs)(`div`,{style:{display:`flex`,gap:10,padding:`12px 16px`,borderBottom:`1px solid var(--border)`,alignItems:`center`,flexWrap:`wrap`,position:`relative`,zIndex:5,background:`var(--background)`},children:[(0,x.jsxs)(`div`,{style:{position:`relative`,flex:`1 1 220px`,minWidth:180},children:[(0,x.jsx)(`input`,{type:`search`,placeholder:`Search system…`,value:l,onChange:e=>u(e.target.value),"aria-label":`Search system`,style:{..._P,width:`100%`,boxSizing:`border-box`}}),k.length>0&&(0,x.jsx)(`ul`,{style:{position:`absolute`,top:`100%`,left:0,right:0,marginTop:4,listStyle:`none`,padding:4,background:`var(--surface)`,border:`1px solid var(--border)`,borderRadius:`var(--radius)`,zIndex:10,maxHeight:260,overflowY:`auto`},children:k.map(e=>(0,x.jsx)(`li`,{children:(0,x.jsxs)(`button`,{onClick:()=>{O(e.id),u(``)},style:{display:`block`,width:`100%`,textAlign:`left`,padding:`6px 8px`,background:`none`,border:`none`,cursor:`pointer`,color:`var(--foreground)`,fontFamily:`inherit`,fontSize:13},children:[e.label,` `,(0,x.jsxs)(`span`,{style:{color:`var(--foreground-muted)`,fontSize:11},children:[`· `,tP(e.type).label,e.moduleId?` · ${e.moduleId}`:``]})]})},e.id))})]}),e.groups.length>0&&(0,x.jsxs)(`select`,{value:d,onChange:e=>f(e.target.value),"aria-label":`Filter by module`,style:_P,children:[(0,x.jsx)(`option`,{value:`all`,children:`All modules`}),e.groups.map(e=>(0,x.jsx)(`option`,{value:e.id,children:e.label},e.id))]}),(0,x.jsxs)(`select`,{value:p,onChange:e=>m(e.target.value),"aria-label":`Filter by type`,style:_P,children:[(0,x.jsx)(`option`,{value:`all`,children:`All types`}),_.map(e=>(0,x.jsx)(`option`,{value:e,children:tP(e).label},e))]}),(0,x.jsxs)(`div`,{style:{display:`inline-flex`,gap:12,alignItems:`center`,paddingLeft:4},children:[(0,x.jsx)(`span`,{style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:.3,color:`var(--foreground-muted)`},children:`Show`}),S(`knowledge`,`Knowledge`),S(`delivery`,`Delivery`),S(`implementation`,`Implementation`)]}),(0,x.jsxs)(`span`,{style:{fontSize:12,color:`var(--foreground-muted)`},children:[y.nodes.length,` nodes · `,y.relationships.length,` relationships · coverage `,e.metadata.coverage]}),(0,x.jsx)(`button`,{onClick:()=>n.invalidateQueries({queryKey:[`system-map`]}),style:{..._P,cursor:`pointer`,color:`var(--foreground-muted)`},children:`↻ Refresh`})]}),(0,x.jsx)(mP,{metadata:e.metadata}),y.nodes.length===0?(0,x.jsx)(`div`,{style:{flex:1,display:`flex`,alignItems:`center`,justifyContent:`center`,color:`var(--foreground-muted)`,fontSize:14},children:`No nodes match these filters.`}):(0,x.jsx)(`div`,{style:{flex:1},children:(0,x.jsxs)(Ak,{nodes:T,edges:E,nodeTypes:hP,onNodeClick:(e,t)=>{t.type===`system`&&O(t.id)},onEdgeClick:(e,t)=>{c(t.id),o(null)},onPaneClick:()=>{o(null),c(null)},fitView:!0,minZoom:.2,proOptions:{hideAttribution:!0},children:[(0,x.jsx)(Lk,{color:`var(--border)`,gap:20}),(0,x.jsx)(Kk,{showInteractive:!1})]})})]}),(a||s)&&(0,x.jsx)(dP,{projection:e,selectedNodeId:a,selectedEdgeId:s,onClose:()=>{o(null),c(null)},onSelectNode:O})]})}function yP(){let e=C(),{data:t,isLoading:n,error:r}=rt({queryKey:[`system-map`],queryFn:po.getSystemMap,refetchOnWindowFocus:!1});return n?(0,x.jsx)(gP,{}):r?(0,x.jsx)(`div`,{style:{padding:24},children:(0,x.jsxs)(`div`,{style:{background:`color-mix(in srgb, var(--danger) 10%, transparent)`,border:`1px solid var(--danger)`,borderRadius:`var(--radius)`,padding:16},children:[(0,x.jsx)(`strong`,{children:`System map could not be loaded`}),(0,x.jsx)(`p`,{style:{margin:`4px 0 8px`,fontSize:14,color:`var(--foreground-muted)`},children:`The project remains available, but Kaddo could not build the current System Map.`}),(0,x.jsx)(`button`,{onClick:()=>e.invalidateQueries({queryKey:[`system-map`]}),style:{..._P,cursor:`pointer`},children:`Retry`})]})}):!t||!t.metadata.available?(0,x.jsxs)(`div`,{style:{padding:`48px 32px`,textAlign:`center`,color:`var(--foreground-muted)`,maxWidth:640,margin:`0 auto`},children:[(0,x.jsx)(`div`,{style:{fontSize:32,marginBottom:12},children:`🗺️`}),(0,x.jsx)(`h2`,{style:{fontSize:18,fontWeight:600,color:`var(--foreground)`,margin:`0 0 8px`},children:`System map not available yet`}),(0,x.jsx)(`p`,{style:{fontSize:14},children:`Kaddo does not have enough system metadata to build a System Map for this project yet.`}),(0,x.jsx)(`p`,{style:{fontSize:13,marginTop:8},children:`Review the project Knowledge and graph metadata to enrich the map.`})]}):(0,x.jsx)(Ek,{children:(0,x.jsx)(vP,{projection:t})})}var bP=new We({defaultOptions:{queries:{staleTime:3e4,retry:1}}}),xP=pa({component:mo}),SP=da({getParentRoute:()=>xP,path:`/`,component:()=>(0,x.jsx)(Ki,{to:`/overview`})}),CP=da({getParentRoute:()=>xP,path:`/overview`,component:Po}),wP=da({getParentRoute:()=>xP,path:`/knowledge`,component:Io}),TP=da({getParentRoute:()=>xP,path:`/knowledge/$layer`,component:Vo}),EP=da({getParentRoute:()=>xP,path:`/knowledge/$layer/$artifactId`,component:Ug}),DP=da({getParentRoute:()=>xP,path:`/work-items`,component:e_}),OP=da({getParentRoute:()=>xP,path:`/work-items/new`,component:C_}),kP=da({getParentRoute:()=>xP,path:`/work-items/$workItemId`,component:h_}),AP=da({getParentRoute:()=>xP,path:`/work-items/$workItemId/edit`,component:U_}),jP=da({getParentRoute:()=>xP,path:`/system`,component:yP,validateSearch:e=>({node:typeof e.node==`string`?e.node:void 0})}),MP=Aa({routeTree:xP.addChildren([SP,CP,wP,TP,EP,DP,OP,kP,AP,jP])});function NP(){return(0,x.jsx)(w,{client:bP,children:(0,x.jsx)(Na,{router:MP})})}po.initSession().catch(()=>{}),(0,y.createRoot)(document.getElementById(`root`)).render((0,x.jsx)(v.StrictMode,{children:(0,x.jsx)(NP,{})}));
44
+ M${D.x},${D.y}h${D.width}v${D.height}h${-D.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}cA.displayName=`MiniMap`,(0,v.memo)(cA);var lA=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,uA={[tE.Line]:`right`,[tE.Handle]:`bottom-right`};function dA({nodeId:e,position:t,variant:n=tE.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let y=UD(),b=typeof e==`string`?e:y,S=EE(),C=(0,v.useRef)(null),w=n===tE.Handle,T=TE((0,v.useCallback)(lA(w&&p),[w,p]),xE),E=(0,v.useRef)(null),D=t??uA[n];(0,v.useEffect)(()=>{if(C.current&&b)return E.current||=fE({domNode:C.current,nodeId:b,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=S.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=S.getState(),o=[],s={x:e.x,y:e.y},c=r.get(b);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=yT([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...Cw({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:b,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:b,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:b,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};S.getState().triggerNodeChanges([n])}}),E.current.update({controlPosition:D,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{E.current?.destroy()}},[D,s,c,l,u,d,h,g,_,m]);let O=D.split(`-`);return(0,x.jsx)(`div`,{className:W_([`react-flow__resize-control`,`nodrag`,...O,n,r]),ref:C,style:{...i,scale:T,...o&&{[w?`backgroundColor`:`borderColor`]:o}},children:a})}(0,v.memo)(dA);var fA=Object.defineProperty,pA=(e,t,n)=>t in e?fA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,mA=(e,t)=>{for(var n in t)fA(e,n,{get:t[n],enumerable:!0})},hA=(e,t,n)=>pA(e,typeof t==`symbol`?t:t+``,n),gA={};mA(gA,{Graph:()=>tj,alg:()=>kA});var _A=Object.defineProperty,vA=(e,t)=>{for(var n in t)_A(e,n,{get:t[n],enumerable:!0})},yA=class{constructor(e){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},e&&(this._isDirected=`directed`in e?e.directed:!0,this._isMultigraph=`multigraph`in e&&e.multigraph,this._isCompound=`compound`in e&&e.compound),this._isCompound&&(this._parent={},this._children={},this._children[`\0`]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return this._defaultNodeLabelFn=typeof e==`function`?e:()=>e,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(e=>Object.keys(this._in[e]).length===0)}sinks(){return this.nodes().filter(e=>Object.keys(this._out[e]).length===0)}setNodes(e,t){return e.forEach(e=>{t===void 0?this.setNode(e):this.setNode(e,t)}),this}setNode(e,t){return e in this._nodes?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=`\0`,this._children[e]={},this._children[`\0`][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return e in this._nodes}removeNode(e){if(e in this._nodes){let t=e=>this.removeEdge(this._edgeObjs[e]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],this.children(e).forEach(e=>{this.setParent(e)}),delete this._children[e]),Object.keys(this._in[e]).forEach(t),delete this._in[e],delete this._preds[e],Object.keys(this._out[e]).forEach(t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw Error(`Cannot set parent in a non-compound graph`);if(t===void 0)t=`\0`;else{t+=``;for(let n=t;n!==void 0;n=this.parent(n))if(n===e)throw Error(`Setting `+t+` as parent of `+e+` would create a cycle`);this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}parent(e){if(this._isCompound){let t=this._parent[e];if(t!==`\0`)return t}}children(e=`\0`){if(this._isCompound){let t=this._children[e];if(t)return Object.keys(t)}else{if(e===`\0`)return this.nodes();if(this.hasNode(e))return[]}return[]}predecessors(e){let t=this._preds[e];if(t)return Object.keys(t)}successors(e){let t=this._sucs[e];if(t)return Object.keys(t)}neighbors(e){let t=this.predecessors(e);if(t){let n=new Set(t),r=this.successors(e);if(r)for(let e of r)n.add(e);return Array.from(n.values())}}isLeaf(e){let t;return t=this.isDirected()?this.successors(e):this.neighbors(e),(t?.length??0)===0}filterNodes(e){let t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph()),Object.entries(this._nodes).forEach(([n,r])=>{e(n)&&t.setNode(n,r)}),Object.values(this._edgeObjs).forEach(e=>{t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,this.edge(e))});let n={},r=e=>{let i=this.parent(e);return!i||t.hasNode(i)?(n[e]=i,i):i in n?n[i]:r(i)};return this._isCompound&&t.nodes().forEach(e=>t.setParent(e,r(e))),t}setDefaultEdgeLabel(e){return this._defaultEdgeLabelFn=typeof e==`function`?e:()=>e,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(e,t){return e.reduce((e,n)=>(t===void 0?this.setEdge(e,n):this.setEdge(e,n,t),n)),this}setEdge(e,t,n,r){let i,a,o,s,c=!1;typeof e==`object`&&e&&`v`in e?(i=e.v,a=e.w,o=e.name,arguments.length===2&&(s=t,c=!0)):(i=e,a=t,o=r,arguments.length>2&&(s=n,c=!0)),i=``+i,a=``+a,o!==void 0&&(o=``+o);let l=SA(this._isDirected,i,a,o);if(l in this._edgeLabels)return c&&(this._edgeLabels[l]=s),this;if(o!==void 0&&!this._isMultigraph)throw Error(`Cannot set a named edge when isMultigraph = false`);this.setNode(i),this.setNode(a),this._edgeLabels[l]=c?s:this._defaultEdgeLabelFn(i,a,o);let u=CA(this._isDirected,i,a,o);return i=u.v,a=u.w,Object.freeze(u),this._edgeObjs[l]=u,bA(this._preds[a],i),bA(this._sucs[i],a),this._in[a][l]=u,this._out[i][l]=u,this._edgeCount++,this}edge(e,t,n){let r=arguments.length===1?wA(this._isDirected,e):SA(this._isDirected,e,t,n);return this._edgeLabels[r]}edgeAsObj(e,t,n){let r=arguments.length===1?this.edge(e):this.edge(e,t,n);return typeof r!=`object`||!r?{label:r}:r}hasEdge(e,t,n){return(arguments.length===1?wA(this._isDirected,e):SA(this._isDirected,e,t,n))in this._edgeLabels}removeEdge(e,t,n){let r=arguments.length===1?wA(this._isDirected,e):SA(this._isDirected,e,t,n),i=this._edgeObjs[r];if(i){let e=i.v,t=i.w;delete this._edgeLabels[r],delete this._edgeObjs[r],xA(this._preds[t],e),xA(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--}return this}inEdges(e,t){return this.isDirected()?this.filterEdges(this._in[e],e,t):this.nodeEdges(e,t)}outEdges(e,t){return this.isDirected()?this.filterEdges(this._out[e],e,t):this.nodeEdges(e,t)}nodeEdges(e,t){if(e in this._nodes)return this.filterEdges({...this._in[e],...this._out[e]},e,t)}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}filterEdges(e,t,n){if(!e)return;let r=Object.values(e);return n?r.filter(e=>e.v===t&&e.w===n||e.v===n&&e.w===t):r}};function bA(e,t){e[t]?e[t]++:e[t]=1}function xA(e,t){e[t]!==void 0&&!--e[t]&&delete e[t]}function SA(e,t,n,r){let i=``+t,a=``+n;if(!e&&i>a){let e=i;i=a,a=e}return i+``+a+``+(r===void 0?`\0`:r)}function CA(e,t,n,r){let i=``+t,a=``+n;if(!e&&i>a){let e=i;i=a,a=e}let o={v:i,w:a};return r&&(o.name=r),o}function wA(e,t){return SA(e,t.v,t.w,t.name)}vA({},{read:()=>OA,write:()=>TA});function TA(e){let t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:EA(e),edges:DA(e)},n=e.graph();return n!==void 0&&(t.value=structuredClone(n)),t}function EA(e){return e.nodes().map(t=>{let n=e.node(t),r=e.parent(t),i={v:t};return n!==void 0&&(i.value=n),r!==void 0&&(i.parent=r),i})}function DA(e){return e.edges().map(t=>{let n=e.edge(t),r={v:t.v,w:t.w};return t.name!==void 0&&(r.name=t.name),n!==void 0&&(r.value=n),r})}function OA(e){let t=new yA(e.options);return e.value!==void 0&&t.setGraph(e.value),e.nodes.forEach(e=>{t.setNode(e.v,e.value),e.parent&&t.setParent(e.v,e.parent)}),e.edges.forEach(e=>{t.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),t}var kA={};vA(kA,{CycleException:()=>WA,bellmanFord:()=>jA,components:()=>NA,dijkstra:()=>IA,dijkstraAll:()=>RA,findCycles:()=>BA,floydWarshall:()=>HA,isAcyclic:()=>KA,postorder:()=>XA,preorder:()=>ZA,prim:()=>QA,shortestPaths:()=>$A,tarjan:()=>zA,topsort:()=>GA});var AA=()=>1;function jA(e,t,n,r){return MA(e,String(t),n||AA,r||function(t){return e.outEdges(t)??[]})}function MA(e,t,n,r){let i={},a,o=0,s=e.nodes(),c=function(e){let t=i[e.v],r=i[e.w];if(!t||!r)return;let o=n(e);t.distance+o<r.distance&&(i[e.w]={distance:t.distance+o,predecessor:e.v},a=!0)},l=function(){s.forEach(function(e){r(e).forEach(function(t){let n=t.v===e?t.v:t.w,r=n===t.v?t.w:t.v;c({v:n,w:r})})})};s.forEach(function(e){i[e]={distance:e===t?0:1/0,predecessor:``}});let u=s.length;for(let e=1;e<u&&(a=!1,o++,l(),a);e++);if(o===u-1&&(a=!1,l(),a))throw Error(`The graph contains a negative weight cycle`);return i}function NA(e){let t={},n=[],r;function i(n){var a,o;n in t||(t[n]=!0,r.push(n),(a=e.successors(n))==null||a.forEach(i),(o=e.predecessors(n))==null||o.forEach(i))}return e.nodes().forEach(function(e){r=[],i(e),r.length&&n.push(r)}),n}var PA=class{constructor(){this._arr=[],this._keyIndices={}}size(){return this._arr.length}keys(){return this._arr.map(e=>e.key)}has(e){return e in this._keyIndices}priority(e){let t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority}min(){if(this.size()===0)throw Error(`Queue underflow`);return this._arr[0].key}add(e,t){let n=this._keyIndices,r=String(e);if(!(r in n)){let e=this._arr,i=e.length;return n[r]=i,e.push({key:r,priority:t}),this._decrease(i),!0}return!1}removeMin(){if(this.size()===0)throw Error(`Queue underflow`);this._swap(0,this._arr.length-1);let e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key}decrease(e,t){let n=this._keyIndices[e];if(n===void 0)throw Error(`Key not found: ${e}`);let r=this._arr[n].priority;if(t>r)throw Error(`New priority is greater than current priority. Key: ${e} Old: ${r} New: ${t}`);this._arr[n].priority=t,this._decrease(n)}_heapify(e){let t=this._arr,n=2*e,r=n+1,i=e;n<t.length&&(i=t[n].priority<t[i].priority?n:i,r<t.length&&(i=t[r].priority<t[i].priority?r:i),i!==e&&(this._swap(e,i),this._heapify(i)))}_decrease(e){let t=this._arr,n=t[e].priority,r;for(;e!==0&&(r=e>>1,!(t[r].priority<n));)this._swap(e,r),e=r}_swap(e,t){let n=this._arr,r=this._keyIndices,i=n[e],a=n[t];n[e]=a,n[t]=i,r[a.key]=e,r[i.key]=t}},FA=()=>1;function IA(e,t,n,r){return LA(e,String(t),n||FA,r||function(t){return e.outEdges(t)??[]})}function LA(e,t,n,r){let i={},a=new PA,o,s,c=function(e){let t=e.v===o?e.w:e.v,r=i[t];if(!r)return;let c=n(e),l=s.distance+c;if(c<0)throw Error(`dijkstra does not allow negative edge weights. Bad edge: `+e+` Weight: `+c);l<r.distance&&(r.distance=l,r.predecessor=o,a.decrease(t,l))};for(e.nodes().forEach(function(e){let n=e===t?0:1/0;i[e]={distance:n,predecessor:``},a.add(e,n)});a.size()>0;){o=a.removeMin();let e=i[o];if(!e||e.distance===1/0)break;s=e,r(o).forEach(c)}return i}function RA(e,t,n){return e.nodes().reduce(function(r,i){return r[i]=IA(e,i,t,n),r},{})}function zA(e){let t=0,n=[],r={},i=[];function a(o){var s;let c=r[o]={onStack:!0,lowlink:t,index:t++};if(n.push(o),(s=e.successors(o))==null||s.forEach(function(e){if(e in r){let t=r[e];t!=null&&t.onStack&&(c.lowlink=Math.min(c.lowlink,t.index))}else{a(e);let t=r[e];t&&(c.lowlink=Math.min(c.lowlink,t.lowlink))}}),c.lowlink===c.index){let e=[],t;do{t=n.pop();let i=r[t];i&&(i.onStack=!1),e.push(t)}while(o!==t);i.push(e)}}return e.nodes().forEach(function(e){e in r||a(e)}),i}function BA(e){return zA(e).filter(function(t){let n=t[0];return n?t.length>1||t.length===1&&(e.outEdges(n,n)??[]).length>0:!1})}var VA=()=>1;function HA(e,t,n){return UA(e,t||VA,n||function(t){return e.outEdges(t)??[]})}function UA(e,t,n){let r={},i=e.nodes();return i.forEach(function(e){let a={};r[e]=a,a[e]={distance:0,predecessor:``},i.forEach(function(t){e!==t&&(a[t]={distance:1/0,predecessor:``})}),n(e).forEach(function(n){let r=n.v===e?n.w:n.v,i=t(n);a[r]={distance:i,predecessor:e}})}),i.forEach(function(e){let t=r[e];t&&i.forEach(function(n){let a=r[n];a&&i.forEach(function(n){let r=a[e],i=t[n],o=a[n];if(r&&i&&o){let e=r.distance+i.distance;e<o.distance&&(o.distance=e,o.predecessor=i.predecessor)}})})}),r}var WA=class extends Error{constructor(e){super(e),this.name=`CycleException`}};function GA(e){let t={},n={},r=[];function i(a){var o;if(a in n)throw new WA;a in t||(n[a]=!0,t[a]=!0,(o=e.predecessors(a))==null||o.forEach(i),delete n[a],r.push(a))}if(e.sinks().forEach(i),Object.keys(t).length!==e.nodeCount())throw new WA;return r}function KA(e){try{GA(e)}catch(e){if(e instanceof WA)return!1;throw e}return!0}function qA(e,t,n,r,i){Array.isArray(t)||(t=[t]);let a=(t=>(e.isDirected()?e.successors(t):e.neighbors(t))??[]),o={};return t.forEach(function(t){if(!e.hasNode(t))throw Error(`Graph does not have node: `+t);i=JA(e,t,n===`post`,o,a,r,i)}),i}function JA(e,t,n,r,i,a,o){return t in r||(r[t]=!0,n||(o=a(o,t)),i(t).forEach(function(t){o=JA(e,t,n,r,i,a,o)}),n&&(o=a(o,t))),o}function YA(e,t,n){return qA(e,t,n,function(e,t){return e.push(t),e},[])}function XA(e,t){return YA(e,t,`post`)}function ZA(e,t){return YA(e,t,`pre`)}function QA(e,t){var n;let r=new yA,i={},a=new PA,o;function s(e){let n=e.v===o?e.w:e.v,r=a.priority(n);if(r!==void 0){let s=t(e);s<r&&(i[n]=o,a.decrease(n,s))}}if(e.nodeCount()===0)return r;e.nodes().forEach(function(e){a.add(e,1/0),r.setNode(e)});let c=e.nodes()[0];c!==void 0&&a.decrease(c,0);let l=!1;for(;a.size()>0;){if(o=a.removeMin(),o in i)r.setEdge(o,i[o]);else{if(l)throw Error(`Input graph is not connected: `+e);l=!0}(n=e.nodeEdges(o))==null||n.forEach(s)}return r}function $A(e,t,n,r){return ej(e,t,n,r??(t=>e.outEdges(t)??[]))}function ej(e,t,n,r){if(n===void 0)return IA(e,t,n,r);let i=!1,a=e.nodes();for(let o=0;o<a.length;o++){let s=a[o];if(s===void 0)continue;let c=r(s);for(let e=0;e<c.length;e++){let t=c[e];if(!t)continue;let r=t.v===s?t.v:t.w;n({v:r,w:r===t.v?t.w:t.v})<0&&(i=!0)}if(i)return jA(e,t,n,r)}return IA(e,t,n,r)}var tj=yA;function nj(e,t,n,r){let i=r;for(;e.hasNode(i);)i=vj(r);return n.dummy=t,e.setNode(i,n),i}function rj(e){let t=new tj().setGraph(e.graph());return e.nodes().forEach(n=>t.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},i=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),t}function ij(e){let t=new tj({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t}function aj(e,t){let n=e.x,r=e.y,i=t.x-n,a=t.y-r,o=e.width/2,s=e.height/2;if(!i&&!a)throw Error(`Not possible to find intersection inside of the rectangle`);let c,l;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),c=s*i/a,l=s):(i<0&&(o=-o),c=o,l=o*a/i),{x:n+c,y:r+l}}function oj(e){let t=yj(pj(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let r=e.node(n),i=r.rank;i!==void 0&&(t[i]||(t[i]=[]),t[i][r.order]=n)}),t}function sj(e){let t=e.nodes().map(t=>{let n=e.node(t).rank;return n===void 0?Number.MAX_VALUE:n}),n=fj(Math.min,t);e.nodes().forEach(t=>{let r=e.node(t);Object.hasOwn(r,`rank`)&&(r.rank-=n)})}function cj(e){let t=e.nodes().map(t=>e.node(t).rank).filter(e=>e!==void 0),n=fj(Math.min,t),r=[];e.nodes().forEach(t=>{let i=e.node(t).rank-n;r[i]||(r[i]=[]),r[i].push(t)});let i=0,a=e.graph().nodeRankFactor;Array.from(r).forEach((t,n)=>{t===void 0&&n%a!==0?--i:t!==void 0&&i&&t.forEach(t=>e.node(t).rank+=i)})}function lj(e,t,n,r){let i={width:0,height:0};return arguments.length>=4&&(i.rank=n,i.order=r),nj(e,`border`,i,t)}function uj(e,t=dj){let n=[];for(let r=0;r<e.length;r+=t){let i=e.slice(r,r+t);n.push(i)}return n}var dj=65535;function fj(e,t){return t.length>dj?e(...uj(t).map(t=>e(...t))):e(...t)}function pj(e){let t=e.nodes().map(t=>{let n=e.node(t).rank;return n===void 0?Number.MIN_VALUE:n});return fj(Math.max,t)}function mj(e,t){let n={lhs:[],rhs:[]};return e.forEach(e=>{t(e)?n.lhs.push(e):n.rhs.push(e)}),n}function hj(e,t){let n=Date.now();try{return t()}finally{console.log(e+` time: `+(Date.now()-n)+`ms`)}}function gj(e,t){return t()}var _j=0;function vj(e){return e+(``+ ++_j)}function yj(e,t,n=1){t??(t=e,e=0);let r=e=>e<t;n<0&&(r=e=>t<e);let i=[];for(let t=e;r(t);t+=n)i.push(t);return i}function bj(e,t){let n={};for(let r of t)e[r]!==void 0&&(n[r]=e[r]);return n}function xj(e,t){let n;return n=typeof t==`string`?e=>e[t]:t,Object.entries(e).reduce((e,[t,r])=>(e[t]=n(r,t),e),{})}function Sj(e,t){return e.reduce((e,n,r)=>(e[n]=t[r],e),{})}var Cj=`\0`;function wj(e,t,n){if(!(e&&t&&n&&t.dummy===`edge`&&n.dummy===`edge`&&t.edgeObj&&n.edgeObj&&e[t.edgeObj.v]&&e[n.edgeObj.v]&&e[t.edgeObj.w]&&e[n.edgeObj.w]))return 0;let r=!0;t.edgeObj.w===n.edgeObj.w&&(r=!1);let i=r?e[t.edgeObj.v]?.rank??NaN:e[t.edgeObj.w]?.rank??NaN,a=Object.entries(e).find(e=>e[1].edgeObj?.v===t.edgeObj.v&&e[1].edgeObj?.w===t.edgeObj.w&&e[1].rank===i),o=Object.entries(e).find(e=>e[1].edgeObj?.v===n.edgeObj.v&&e[1].edgeObj?.w===n.edgeObj.w&&e[1].rank===i);if(!a||!o)return 0;let s=a[1].order??NaN,c=o[1].order??NaN;return isNaN(s-c)?0:s-c}var Tj=`3.1.1`,Ej=class{constructor(){hA(this,`_sentinel`);let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return Dj(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&Dj(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,n=t._prev;for(;n!==t;)e.push(JSON.stringify(n,Oj)),n=n._prev;return`[`+e.join(`, `)+`]`}};function Dj(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function Oj(e,t){if(e!==`_next`&&e!==`_prev`)return t}var kj=Ej,Aj=()=>1;function jj(e,t){if(e.nodeCount()<=1)return[];let n=Pj(e,t||Aj);return Mj(n.graph,n.buckets,n.zeroIdx).flatMap(t=>e.outEdges(t.v,t.w)||[])}function Mj(e,t,n){let r=[],i=t[t.length-1],a=t[0],o;for(;e.nodeCount();){for(;o=a.dequeue();)Nj(e,t,n,o);for(;o=i.dequeue();)Nj(e,t,n,o);if(e.nodeCount()){for(let i=t.length-2;i>0;--i)if(o=t[i]?.dequeue(),o){r=r.concat(Nj(e,t,n,o,!0)||[]);break}}}return r}function Nj(e,t,n,r,i){let a=[],o=i?a:void 0;return(e.inEdges(r.v)||[]).forEach(r=>{let o=e.edge(r),s=e.node(r.v);i&&a.push({v:r.v,w:r.w}),s.out-=o,Fj(t,n,s)}),(e.outEdges(r.v)||[]).forEach(r=>{let i=e.edge(r),a=r.w,o=e.node(a);o.in-=i,Fj(t,n,o)}),e.removeNode(r.v),o}function Pj(e,t){let n=new tj,r=0,i=0;e.nodes().forEach(e=>{n.setNode(e,{v:e,in:0,out:0})}),e.edges().forEach(e=>{let a=n.edge(e.v,e.w)||0,o=t(e),s=a+o;n.setEdge(e.v,e.w,s);let c=n.node(e.v),l=n.node(e.w);i=Math.max(i,c.out+=o),r=Math.max(r,l.in+=o)});let a=Ij(i+r+3).map(()=>new kj),o=r+1;return n.nodes().forEach(e=>{Fj(a,o,n.node(e))}),{graph:n,buckets:a,zeroIdx:o}}function Fj(e,t,n){var r,i,a;n.out?n.in?(a=e[n.out-n.in+t])==null||a.enqueue(n):(i=e[e.length-1])==null||i.enqueue(n):(r=e[0])==null||r.enqueue(n)}function Ij(e){let t=[];for(let n=0;n<e;n++)t.push(n);return t}function Lj(e,t){(e.graph().acyclicer===`greedy`?jj(e,n(e)):Rj(e,t??null)).forEach(t=>{let n=e.edge(t);e.removeEdge(t),n.forwardName=t.name,n.reversed=!0,e.setEdge(t.w,t.v,n,vj(`rev`))});function n(e){return t=>e.edge(t).weight}}function Rj(e,t){let n=[],r={},i={};function a(t){Object.hasOwn(i,t)||(i[t]=!0,r[t]=!0,e.outEdges(t).forEach(e=>{Object.hasOwn(r,e.w)?n.push(e):a(e.w)}),delete r[t])}function o(a){var s;Object.hasOwn(i,a)||(i[a]=!0,r[a]=!0,(s=e.outEdges(a))==null||s.forEach(i=>{Object.hasOwn(r,i.w)||t.node(a)?.rank>t.node(i.w)?.rank&&Bj(e,i.w,i)?n.push(i):o(i.w)}),delete r[a])}let s=a;return t&&typeof t.node==`function`&&(s=o),e.sources().forEach(s),e.nodes().forEach(s),n}function zj(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}})}function Bj(e,t,n){let r=new Set;function i(t){if(e.sources().includes(t))return!0;r.add(t);for(let a of e.inEdges(t)??[])if((a.v!==n.v||a.w!==n.w)&&!r.has(a.v)&&i(a.v))return!0;return!1}return i(t)}function Vj(e){e.graph().dummyChains=[],e.edges().forEach(t=>Hj(e,t))}function Hj(e,t){let n=t.v,r=e.node(n).rank,i=t.w,a=e.node(i).rank,o=t.name,s=e.edge(t),c=s.labelRank;if(a===r+1)return;e.removeEdge(t);let l,u,d=0;for(++r;r<a;++d,++r)s.points=[],u={width:0,height:0,edgeLabel:s,edgeObj:t,rank:r},l=nj(e,`edge`,u,`_d`),r===c&&(u.width=s.width,u.height=s.height,u.dummy=`edge-label`,u.labelpos=s.labelpos),e.setEdge(n,l,{weight:s.weight},o),d===0&&e.graph().dummyChains.push(l),n=l;e.setEdge(n,i,{weight:s.weight},o)}function Uj(e){e.graph().dummyChains.forEach(t=>{let n=e.node(t),r=n.edgeLabel,i;for(e.setEdge(n.edgeObj,r);n.dummy;)i=e.successors(t)[0],e.removeNode(t),r.points.push({x:n.x,y:n.y}),n.dummy===`edge-label`&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),t=i,n=e.node(t)})}function Wj(e){let t={};function n(r){let i=e.node(r);if(Object.hasOwn(t,r))return i.rank;t[r]=!0;let a=e.outEdges(r),o=a?a.map(t=>t==null?1/0:n(t.w)-e.edge(t).minlen):[],s=fj(Math.min,o);return s===1/0&&(s=0),i.rank=s}e.sources().forEach(n)}function Gj(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var Kj=qj;function qj(e){let t=new tj({directed:!1}),n=e.nodes();if(n.length===0)throw Error(`Graph must have at least one node`);let r=n[0],i=e.nodeCount();t.setNode(r,{});let a,o;for(;Jj(t,e)<i&&(a=Yj(t,e),a);)o=t.hasNode(a.v)?Gj(e,a):-Gj(e,a),Xj(t,e,o);return t}function Jj(e,t){function n(r){let i=t.nodeEdges(r);i&&i.forEach(i=>{let a=i.v,o=r===a?i.w:a;!e.hasNode(o)&&!Gj(t,i)&&(e.setNode(o,{}),e.setEdge(r,o,{}),n(o))})}return e.nodes().forEach(n),e.nodeCount()}function Yj(e,t){return t.edges().reduce((n,r)=>{let i=1/0;return e.hasNode(r.v)!==e.hasNode(r.w)&&(i=Gj(t,r)),i<n[0]?[i,r]:n},[1/0,null])[1]}function Xj(e,t,n){e.nodes().forEach(e=>t.node(e).rank+=n)}var{preorder:Zj,postorder:Qj}=kA,$j=eM;eM.initLowLimValues=iM,eM.initCutValues=tM,eM.calcCutValue=rM,eM.leaveEdge=oM,eM.enterEdge=sM,eM.exchangeEdges=cM;function eM(e){e=rj(e),Wj(e);let t=Kj(e);iM(t),tM(t,e);let n,r;for(;n=oM(t);)r=sM(t,e,n),cM(t,e,n,r)}function tM(e,t){let n=Qj(e,e.nodes());n=n.slice(0,n.length-1),n.forEach(n=>nM(e,t,n))}function nM(e,t,n){let r=e.node(n).parent,i=e.edge(n,r);i.cutvalue=rM(e,t,n)}function rM(e,t,n){let r=e.node(n).parent,i=!0,a=t.edge(n,r),o=0;a||=(i=!1,t.edge(r,n)),o=a.weight;let s=t.nodeEdges(n);return s&&s.forEach(a=>{let s=a.v===n,c=s?a.w:a.v;if(c!==r){let r=s===i,l=t.edge(a).weight;if(o+=r?l:-l,uM(e,n,c)){let t=e.edge(n,c).cutvalue;o+=r?-t:t}}}),o}function iM(e,t){arguments.length<2&&(t=e.nodes()[0]),aM(e,{},1,t)}function aM(e,t,n,r,i){let a=n,o=e.node(r);t[r]=!0;let s=e.neighbors(r);return s&&s.forEach(i=>{Object.hasOwn(t,i)||(n=aM(e,t,n,i,r))}),o.low=a,o.lim=n++,i?o.parent=i:delete o.parent,n}function oM(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function sM(e,t,n){let r=n.v,i=n.w;t.hasEdge(r,i)||(r=n.w,i=n.v);let a=e.node(r),o=e.node(i),s=a,c=!1;return a.lim>o.lim&&(s=o,c=!0),t.edges().filter(t=>c===dM(e,e.node(t.v),s)&&c!==dM(e,e.node(t.w),s)).reduce((e,n)=>Gj(t,n)<Gj(t,e)?n:e)}function cM(e,t,n,r){let i=n.v,a=n.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),iM(e),tM(e,t),lM(e,t)}function lM(e,t){let n=e.nodes().find(t=>!e.node(t).parent);if(!n)return;let r=Zj(e,[n]);r=r.slice(1),r.forEach(n=>{let r=e.node(n).parent,i=t.edge(n,r),a=!1;i||(i=t.edge(r,n),a=!0),t.node(n).rank=t.node(r).rank+(a?i.minlen:-i.minlen)})}function uM(e,t,n){return e.hasEdge(t,n)}function dM(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}var fM=pM;function pM(e){let t=e.graph().ranker;if(typeof t==`function`)return t(e);switch(t){case`network-simplex`:gM(e);break;case`tight-tree`:hM(e);break;case`longest-path`:mM(e);break;case`none`:break;default:gM(e)}}var mM=Wj;function hM(e){Wj(e),Kj(e)}function gM(e){$j(e)}var _M=vM;function vM(e){let t=bM(e),n=e.graph();Array.isArray(n.dummyChains)&&n.dummyChains.forEach(n=>{let r=e.node(n),i=r.edgeObj,a=yM(e,t,i.v,i.w),o=a.path,s=a.lca,c=0,l=o[c],u=!0;for(;n!==i.w;){if(r=e.node(n),u){for(;(l=o[c])!==s&&e.node(l).maxRank<r.rank;)c++;l===s&&(u=!1)}if(!u){for(;c<o.length-1&&e.node(o[c+1]).minRank<=r.rank;)c++;l=o[c]}l!==void 0&&e.setParent(n,l),n=e.successors(n)[0]}})}function yM(e,t,n,r){let i=[],a=[],o=Math.min(t[n].low,t[r].low),s=Math.max(t[n].lim,t[r].lim),c;c=n;do c=e.parent(c),i.push(c);while(c&&(t[c].low>o||s>t[c].lim));let l=c,u=r;for(;(u=e.parent(u))!==l;)a.push(u);return{path:i.concat(a.reverse()),lca:l}}function bM(e){let t={},n=0;function r(i){let a=n;e.children(i).forEach(r),t[i]={low:a,lim:n++}}return e.children(Cj).forEach(r),t}function xM(e){let t=nj(e,`root`,{},`_root`),n=CM(e),r=Object.values(n),i=fj(Math.max,r)-1,a=2*i+1;e.graph().nestingRoot=t,e.edges().forEach(t=>e.edge(t).minlen*=a);let o=wM(e)+1;e.children(Cj).forEach(r=>{SM(e,t,a,o,i,n,r)}),e.graph().nodeRankFactor=a}function SM(e,t,n,r,i,a,o){let s=e.children(o);if(!s.length){o!==t&&e.setEdge(t,o,{weight:0,minlen:n});return}let c=lj(e,`_bt`),l=lj(e,`_bb`),u=e.node(o);e.setParent(c,o),u.borderTop=c,e.setParent(l,o),u.borderBottom=l,s.forEach(s=>{SM(e,t,n,r,i,a,s);let u=e.node(s),d=u.borderTop?u.borderTop:s,f=u.borderBottom?u.borderBottom:s,p=u.borderTop?r:2*r,m=d===f?i-(a[o]??0)+1:1;e.setEdge(c,d,{weight:p,minlen:m,nestingEdge:!0}),e.setEdge(f,l,{weight:p,minlen:m,nestingEdge:!0})}),e.parent(o)||e.setEdge(t,c,{weight:0,minlen:i+(a[o]??0)})}function CM(e){let t={};function n(r,i){let a=e.children(r);a&&a.length&&a.forEach(e=>n(e,i+1)),t[r]=i}return e.children(Cj).forEach(e=>n(e,1)),t}function wM(e){return e.edges().reduce((t,n)=>t+e.edge(n).weight,0)}function TM(e){let t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(t=>{e.edge(t).nestingEdge&&e.removeEdge(t)})}var EM=DM;function DM(e){function t(n){let r=e.children(n),i=e.node(n);if(r.length&&r.forEach(t),i&&Object.hasOwn(i,`minRank`)){i.borderLeft=[],i.borderRight=[];for(let t=i.minRank,r=i.maxRank+1;t<r;++t)OM(e,`borderLeft`,`_bl`,n,i,t),OM(e,`borderRight`,`_br`,n,i,t)}}e.children(Cj).forEach(t)}function OM(e,t,n,r,i,a){let o={width:0,height:0,rank:a,borderType:t},s=i[t][a-1],c=nj(e,`border`,o,n);i[t][a]=c,e.setParent(c,r),s&&e.setEdge(s,c,{weight:1})}function kM(e){let t=e.graph().rankdir?.toLowerCase();(t===`lr`||t===`rl`)&&jM(e)}function AM(e){let t=e.graph().rankdir?.toLowerCase();(t===`bt`||t===`rl`)&&NM(e),(t===`lr`||t===`rl`)&&(FM(e),jM(e))}function jM(e){e.nodes().forEach(t=>MM(e.node(t))),e.edges().forEach(t=>MM(e.edge(t)))}function MM(e){let t=e.width;e.width=e.height,e.height=t}function NM(e){e.nodes().forEach(t=>PM(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(PM),Object.hasOwn(r,`y`)&&PM(r)})}function PM(e){e.y=-e.y}function FM(e){e.nodes().forEach(t=>IM(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(IM),Object.hasOwn(r,`x`)&&IM(r)})}function IM(e){let t=e.x;e.x=e.y,e.y=t}function LM(e,t=null){let n={},r=e.nodes().filter(t=>!e.children(t).length),i=r.map(t=>e.node(t).rank),a=yj(fj(Math.max,i)+1).map(()=>[]);function o(t){if(n[t])return;n[t]=!0;let r=e.node(t);a[r.rank].push(t);let i=e.successors(t);i&&[...i].sort((e,t)=>s(e,t)).forEach(o)}r.sort((t,n)=>e.node(t).rank-e.node(n).rank).forEach(o);function s(n,r){return wj(t,e.node(n),e.node(r))}return a}function RM(e,t){let n=0;for(let r=1;r<t.length;++r)n+=zM(e,t[r-1],t[r]);return n}function zM(e,t,n){let r=Sj(n,n.map((e,t)=>t)),i=t.flatMap(t=>{let n=e.outEdges(t);return n?n.map(t=>({pos:r[t.w],weight:e.edge(t).weight})).sort((e,t)=>e.pos-t.pos):[]}),a=1;for(;a<n.length;)a<<=1;let o=2*a-1;--a;let s=Array(o).fill(0),c=0;return i.forEach(e=>{let t=e.pos+a;s[t]+=e.weight;let n=0;for(;t>0;)t%2&&(n+=s[t+1]),t=t-1>>1,s[t]+=e.weight;c+=e.weight*n}),c}function BM(e,t=[]){return t.map(t=>{let n=e.inEdges(t);if(!n||!n.length)return{v:t};{let r=n.reduce((t,n)=>{let r=e.edge(n),i=e.node(n.v);return{sum:t.sum+r.weight*i.order,weight:t.weight+r.weight}},{sum:0,weight:0});return{v:t,barycenter:r.sum/r.weight,weight:r.weight}}})}function VM(e,t){let n={};return e.forEach((e,t)=>{let r={indegree:0,in:[],out:[],vs:[e.v],i:t};e.barycenter!==void 0&&(r.barycenter=e.barycenter,r.weight=e.weight),n[e.v]=r}),t.edges().forEach(e=>{let t=n[e.v],r=n[e.w];t!==void 0&&r!==void 0&&(r.indegree++,t.out.push(r))}),HM(Object.values(n).filter(e=>!e.indegree))}function HM(e){let t=[];function n(e){return t=>{t.merged||(t.barycenter===void 0||e.barycenter===void 0||t.barycenter>=e.barycenter)&&UM(e,t)}}function r(t){return n=>{n.in.push(t),--n.indegree===0&&e.push(n)}}for(;e.length;){let i=e.pop();t.push(i),i.in.reverse().forEach(n(i)),i.out.forEach(r(i))}return t.filter(e=>!e.merged).map(e=>bj(e,[`vs`,`i`,`barycenter`,`weight`]))}function UM(e,t){let n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}function WM(e,t,n,r,i){let a={},o=null,s=null,c=i;typeof t==`boolean`?(c=t,a={}):t&&(a=t,o=n??null,s=r??null);let l=mj(e,e=>Object.hasOwn(e,`barycenter`)),u=l.lhs,d=l.rhs.sort((e,t)=>t.i-e.i),f=[],p=0,m=0,h=0;u.sort(KM(s,o,!!c));for(let[e,t]of Object.entries(a)){let n=u.findIndex(t=>t.vs[0]===e);u.splice(n+1,0,t)}h=GM(f,d,h),u.forEach(e=>{h+=e.vs.length,f.push(e.vs),p+=e.barycenter*e.weight,m+=e.weight,h=GM(f,d,h)});let g={vs:f.flat(1)};return m&&(g.barycenter=p/m,g.weight=m),g}function GM(e,t,n){let r;for(;t.length&&(r=t[t.length-1]).i<=n;)t.pop(),e.push(r.vs),n++;return n}function KM(e,t,n){return(r,i)=>{if(r.barycenter<i.barycenter)return-1;if(r.barycenter>i.barycenter)return 1;if(e&&(typeof r.vs[0]==`string`||typeof i.vs[0]==`string`)){let n=wj(t,e.node(r.vs[0]),e.node(i.vs[0]));if(n!==0)return n}return n?i.i-r.i:r.i-i.i}}function qM(e,t,n,r,i){var a,o;let s=null,c=i;typeof r==`boolean`?(c=r,s=null):r!==void 0&&(s=r);let l=e.children(t),u=e.node(t),d=u?u.borderLeft:void 0,f=u?u.borderRight:void 0,p={};d&&(l=l.filter(e=>e!==d&&e!==f));let m=BM(e,l);m.forEach(t=>{if(e.children(t.v).length){let{result:r}=qM(e,t.v,n,s,c);p[t.v]=r,Object.hasOwn(r,`barycenter`)&&YM(t,r)}});let h=VM(m,n);JM(h,p);let g={},_=!1;for(let t=0;t<h.length;t++)for(let n=t+1;n<h.length;n++)if(h[t]&&h[n]&&(a=h[t])!=null&&a.barycenter&&(o=h[n])!=null&&o.barycenter&&h[t]?.barycenter===h[n].barycenter){let r=h[t]?.vs[0]??``,i=h[n]?.vs[0]??``,a=e.node(r),o=e.node(i);if(a.dummy===`edge`&&o.dummy===`edge`&&a.edgeObj?.v===o.edgeObj?.v&&a.edgeObj?.w===o.edgeObj?.w){if(a.edgeLabel.reversed){g[i]=h[t],h.splice(t,1),t--;break}g[r]=h[n],h.splice(n,1),n--}else _=!0}let v=WM(h,g,s,e,c);if(d&&f){v.vs=[d,v.vs,f].flat(1);let t=e.predecessors(d);if(t&&t.length){let n=e.node(t[0]),r=e.predecessors(f),i=e.node(r[0]);Object.hasOwn(v,`barycenter`)||(v.barycenter=0,v.weight=0),v.barycenter=(v.barycenter*v.weight+n.order+i.order)/(v.weight+2),v.weight+=2}}return Object.defineProperty(v,"result",{value:v,enumerable:!1,configurable:!0,writable:!0}),Object.defineProperty(v,"usedBias",{value:_,enumerable:!1,configurable:!0,writable:!0}),v}function JM(e,t){e.forEach(e=>{e.vs=e.vs.flatMap(e=>t[e]?t[e].vs:e)})}function YM(e,t){e.barycenter===void 0?(e.barycenter=t.barycenter,e.weight=t.weight):(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight)}function XM(e,t,n,r){r||=e.nodes();let i=ZM(e),a=new tj({compound:!0}).setGraph({root:i}).setDefaultNodeLabel(t=>e.node(t));return r.forEach(r=>{let o=e.node(r),s=e.parent(r);if(o.rank===t||o.minRank<=t&&t<=o.maxRank){a.setNode(r),a.setParent(r,s||i);let c=e[n](r);c&&c.forEach(t=>{let n=t.v===r?t.w:t.v,i=a.edge(n,r),o=i===void 0?0:i.weight;a.setEdge(n,r,{weight:e.edge(t).weight+o})}),Object.hasOwn(o,`minRank`)&&a.setNode(r,{borderLeft:o.borderLeft[t],borderRight:o.borderRight[t]})}}),a}function ZM(e){let t;for(;e.hasNode(t=vj(`_root`)););return t}function QM(e,t,n){let r={},i;n.forEach(n=>{let a=e.parent(n),o,s;for(;a;){if(o=e.parent(a),o?(s=r[o],r[o]=a):(s=i,i=a),s&&s!==a){t.setEdge(s,a);return}a=o}})}function $M(e,t={},n=null){if(typeof t.customOrder==`function`){t.customOrder(e,$M);return}let r=pj(e),i=eN(e,yj(1,r+1),`inEdges`),a=eN(e,yj(r-1,-1,-1),`outEdges`),o=LM(e,n);if(nN(e,o),t.disableOptimalOrderHeuristic)return;let s=1/0,c,l=t.constraints||[];for(let t=0,r=0;r<4;++t,++r){tN(t%2?i:a,t%4>=2,l,n),o=oj(e);let u=RM(e,o);u<s?(r=0,c=Object.assign({},o),s=u):u===s&&(c=structuredClone(o))}nN(e,c)}function eN(e,t,n){let r=new Map,i=(e,t)=>{r.has(e)||r.set(e,[]),r.get(e).push(t)};for(let t of e.nodes()){let n=e.node(t);if(typeof n.rank==`number`&&i(n.rank,t),typeof n.minRank==`number`&&typeof n.maxRank==`number`)for(let e=n.minRank;e<=n.maxRank;e++)e!==n.rank&&i(e,t)}return t.map(function(t){return XM(e,t,n,r.get(t)||[])})}function tN(e,t,n,r){let i=!0,a=new tj;e.forEach(function(e){n.forEach(e=>a.setEdge(e.left,e.right));let o=e.graph().root,{result:s,usedBias:c}=qM(e,o,a,r,i);t&&c&&(i=!i),s.vs.forEach((t,n)=>e.node(t).order=n),QM(e,a,s.vs)})}function nN(e,t){Object.values(t).forEach(t=>t.forEach((t,n)=>e.node(t).order=n))}function rN(e,t){let n={};function r(t,r){let i=0,a=0,o=t.length,s=r[r.length-1];return r.forEach((t,c)=>{let l=aN(e,t),u=l?e.node(l).order:o;(l||t===s)&&(r.slice(a,c+1).forEach(t=>{let r=e.predecessors(t);r&&r.forEach(r=>{let a=e.node(r),o=a.order;(o<i||u<o)&&!(a.dummy&&e.node(t).dummy)&&oN(n,r,t)})}),a=c+1,i=u)}),r}return t.length&&t.reduce(r),n}function iN(e,t){let n={};function r(t,r,i,a,o){yj(r,i).forEach(r=>{let i=t[r];if(i!==void 0&&e.node(i).dummy){let t=e.predecessors(i);t&&t.forEach(t=>{if(t===void 0)return;let r=e.node(t);r.dummy&&(r.order<a||r.order>o)&&oN(n,t,i)})}})}function i(t,n){let i=-1,a=-1,o=0;return n.forEach((s,c)=>{if(e.node(s).dummy===`border`){let t=e.predecessors(s);if(t&&t.length){let s=t[0];if(s===void 0)return;a=e.node(s).order,r(n,o,c,i,a),o=c,i=a}}r(n,o,n.length,a,t.length)}),n}return t.length&&t.reduce(i),n}function aN(e,t){if(e.node(t).dummy){let n=e.predecessors(t);if(n)return n.find(t=>e.node(t).dummy)}}function oN(e,t,n){if(t>n){let e=t;t=n,n=e}let r=e[t];r||(e[t]=r={}),r[n]=!0}function sN(e,t,n){if(t>n){let e=t;t=n,n=e}let r=e[t];return r!==void 0&&Object.hasOwn(r,n)}function cN(e,t,n,r,i){let a={},o={},s={};return t.forEach(e=>{e.forEach((e,t)=>{a[e]=e,o[e]=e,s[e]=t})}),t.forEach(t=>{let c=-1,l=-1,u=!1,d=t,f=t.findIndex(t=>i?.includes(t)||_N(t,e,i));f>0&&(d=[t[f],...t.slice(0,f),...t.slice(f+1)],u=!0),d.forEach(t=>{let d=r(t);if(d&&d.length){i!=null&&i.includes(t)&&(d=d.filter(t=>_N(t,e,i)));let r=d.sort((e,t)=>{let n=s[e],r=s[t];return(n===void 0?0:n)-(r===void 0?0:r)}),f=(r.length-1)/2;for(let e=Math.floor(f),i=Math.ceil(f);e<=i;++e){let i=r[e];if(i===void 0)continue;let d=s[i];if(d!==void 0&&o[t]===t&&c<d&&s[i]!==l&&!sN(n,t,i)){let e=a[i];e!==void 0&&(o[i]=t,o[t]=a[t]=e,c=d,u&&=(c=-1,l=s[i]??-1,!1))}}}})}),{root:a,align:o}}function lN(e,t,n,r,i=!1){let a={},o=uN(e,t,n,i),s=i?`borderLeft`:`borderRight`;function c(e,t){let n=o.nodes().slice(),r={},i=n.pop();for(;i;){if(r[i])e(i);else{r[i]=!0,n.push(i);for(let e of t(i))n.push(e)}i=n.pop()}}function l(e){let t=o.inEdges(e);t?a[e]=t.reduce((e,t)=>{let n=a[t.v]??0,r=o.edge(t);return Math.max(e,n+(r===void 0?0:r))},0):a[e]=0}function u(t){let n=o.outEdges(t),r=1/0;n&&(r=n.reduce((e,t)=>{let n=a[t.w],r=o.edge(t);return Math.min(e,(n===void 0?0:n)-(r===void 0?0:r))},1/0));let i=e.node(t);r!==1/0&&i.borderType!==s&&(a[t]=Math.max(a[t]===void 0?0:a[t],r))}function d(e){return o.predecessors(e)||[]}function f(e){return o.successors(e)||[]}return c(l,d),c(u,f),Object.keys(r).forEach(e=>{let t=n[e];t!==void 0&&(a[e]=a[t]??0)}),a}function uN(e,t,n,r){let i=new tj,a=e.graph(),o=hN(a.nodesep,a.edgesep,r);return t.forEach(t=>{let r;t.forEach(t=>{let a=n[t];if(a!==void 0){if(i.setNode(a),r!==void 0){let s=n[r];if(s!==void 0){let n=i.edge(s,a);i.setEdge(s,a,Math.max(o(e,t,r),n||0))}}r=t}})}),i}function dN(e,t){return Object.values(t).reduce((t,n)=>{let r=-1/0,i=1/0;Object.entries(n).forEach(([t,n])=>{let a=gN(e,t)/2;r=Math.max(n+a,r),i=Math.min(n-a,i)});let a=r-i;return a<t[0]&&(t=[a,n]),t},[1/0,null])[1]}function fN(e,t){let n=Object.values(t),r=fj(Math.min,n),i=fj(Math.max,n);[`u`,`d`].forEach(n=>{[`l`,`r`].forEach(a=>{let o=n+a,s=e[o];if(!s||s===t)return;let c=Object.values(s),l=r-fj(Math.min,c);a!==`l`&&(l=i-fj(Math.max,c)),l&&(e[o]=xj(s,e=>e+l))})})}function pN(e,t=void 0){let n=e.ul;return n?xj(n,(n,r)=>{if(t){let n=e[t.toLowerCase()];if(n&&n[r]!==void 0)return n[r]}let i=Object.values(e).map(e=>{let t=e[r];return t===void 0?0:t}).sort((e,t)=>e-t);return((i[1]??0)+(i[2]??0))/2}):{}}function mN(e,t){let n=oj(e),r=Object.assign(rN(e,n),iN(e,n)),i={},a;return[`u`,`d`].forEach(o=>{a=o===`u`?n:Object.values(n).reverse(),[`l`,`r`].forEach(n=>{n===`r`&&(a=a.map(e=>Object.values(e).reverse()));let s=cN(e,a,r,t=>(o===`u`?e.predecessors(t):e.successors(t))||[],t),c=lN(e,a,s.root,s.align,n===`r`);n===`r`&&(c=xj(c,e=>-e)),i[o+n]=c})}),fN(i,dN(e,i)),pN(i,e.graph().align)}function hN(e,t,n){return(r,i,a)=>{let o=r.node(i),s=r.node(a),c=0,l;if(c+=o.width/2,Object.hasOwn(o,`labelpos`))switch(o.labelpos.toLowerCase()){case`l`:l=-o.width/2;break;case`r`:l=o.width/2}if(l&&(c+=n?l:-l),l=void 0,c+=(o.dummy?t:e)/2,c+=(s.dummy?t:e)/2,c+=s.width/2,Object.hasOwn(s,`labelpos`))switch(s.labelpos.toLowerCase()){case`l`:l=s.width/2;break;case`r`:l=-s.width/2}return l&&(c+=n?l:-l),c}}function gN(e,t){return e.node(t).width}function _N(e,t,n){if(!n)return!1;let r=t.node(e)?.edgeObj;if(!r||t.node(e).edgeLabel.reversed)return!1;let i=n.indexOf(r?.v),a=n.indexOf(r?.w);return i!==-1&&a!==-1&&i===(a+1)%n.length||i===(a-1)%n.length}function vN(e,t){e=ij(e),yN(e),Object.entries(mN(e,t)).forEach(([t,n])=>e.node(t).x=n)}function yN(e){let t=oj(e),n=e.graph(),r=n.ranksep,i=n.rankalign,a=0;t.forEach(t=>{let n=t.reduce((t,n)=>{let r=e.node(n).height??0;return t>r?t:r},0);t.forEach(t=>{let r=e.node(t);r.y=i===`top`?a+r.height/2:i===`bottom`?a+n-r.height/2:a+n/2}),a+=n+r})}var bN=new WeakMap;function xN(e,t={}){return CN(e,gj,t),e}function SN(e,t,n){let r=t;for(;r!==void 0;){let t=e.parent(r);if(t===n)return r;r=t}}function CN(e,t,n){let r=e.nodes().filter(t=>e.children(t).length),i={};r.forEach(r=>{let a=e.node(r);if(a&&a.rankdir){let o=new tj({multigraph:!0,compound:!0});o.setGraph({rankdir:a.rankdir});let s=e.children(r);s.forEach(t=>{let n={...e.node(t)};o.setNode(t,n);let i=e.parent(t);i&&i!==r&&s.includes(i)&&o.setParent(t,i)});let c=new Set;e.edges().forEach(t=>{let n=SN(e,t.v,r),i=SN(e,t.w,r);if(n&&i&&n!==i){let r=`${n}\0${i}`;c.has(r)||(c.add(r),o.setEdge(n,i,{...e.edge(t)}))}}),CN(o,t,n);let l=PN(o);wN(l,t,n,null),TN(o,l);let u=1/0,d=1/0,f=-1/0,p=-1/0;o.nodes().forEach(e=>{if(e===r)return;let t=o.node(e);t&&typeof t.x==`number`&&typeof t.y==`number`&&typeof t.width==`number`&&typeof t.height==`number`&&(u=Math.min(u,t.x-t.width/2),f=Math.max(f,t.x+t.width/2),d=Math.min(d,t.y-t.height/2),p=Math.max(p,t.y+t.height/2))}),(!isFinite(u)||!isFinite(d)||!isFinite(f)||!isFinite(p))&&(u=d=0,f=p=0);let m=f-u,h=p-d;i[r]={minX:u,minY:d,maxX:f,maxY:p,width:m,height:h,offsetX:u,offsetY:d},a._dagreClusterSubgraph=o}});let a=[],o=t=>{let n=[],r=(e.children(t)||[]).filter(e=>e!==t);for(;r.length>0;){let t=r.shift();n.push(t),(e.children(t)||[]).filter(e=>e!==t).forEach(e=>r.push(e))}return n},s=new Map;r.forEach(t=>{let n=e.node(t);n&&n.rankdir&&i[t]&&s.set(t,(e.children(t)||[]).filter(e=>e!==t))});let c=new Set([...s.values()].flat()),l=new Map;s.forEach((e,t)=>{c.has(t)||l.set(t,o(t))});let u=new Set([...l.values()].flat()),d=e=>{for(let[t,n]of l)if(n.includes(e))return t;return e},f=[];e.edges().forEach(t=>{(u.has(t.v)||u.has(t.w))&&f.push({edge:t,label:e.edge(t)})});let p=new Map;u.forEach(t=>{let n=e.parent(t);p.set(t,typeof n==`string`?n:void 0)}),l.forEach((t,n)=>{let r=e.node(n),o=[];t.forEach(t=>{let n=e.node(t);n&&(o.push({id:t,node:n,parent:p.get(t)}),e.removeNode(t))});let s=f.filter(({edge:e})=>t.includes(e.v)||t.includes(e.w)),c=i[n];r&&(a.push({clusterId:n,subgraph:r._dagreClusterSubgraph,bounds:c,children:t,removedNodes:o,removedEdges:s}),r.width=c.width,r.height=c.height)});let m=new Set;f.forEach(({edge:t,label:n})=>{let r=d(t.v),i=d(t.w);if(r!==i&&e.hasNode(r)&&e.hasNode(i)){let t=`${r}\0${i}`;m.has(t)||(m.add(t),e.setEdge(r,i,{...n,width:0,height:0}))}});let h=PN(e),g=wN(h,t,n,bN.get(e)??null);bN.set(e,g),TN(e,h),m.forEach(t=>{let n=t.indexOf(`\0`),r=t.slice(0,n),i=t.slice(n+1);e.hasEdge(r,i)&&e.removeEdge(r,i)}),a.forEach(({clusterId:t,subgraph:n,bounds:r,removedNodes:i,removedEdges:a})=>{let o=e.node(t),s=o?.x??0,c=o?.y??0,l=(r.minX+r.maxX)/2,u=(r.minY+r.maxY)/2;i.forEach(({id:t,node:n,parent:r})=>{e.setNode(t,n),r!==void 0&&e.setParent(t,r)}),a.forEach(({edge:t,label:n})=>{e.setEdge(t,n)}),n.nodes().forEach(r=>{if(r===t)return;let i=n.node(r),a=e.node(r);a&&i&&typeof i.x==`number`&&typeof i.y==`number`&&(a.x=s+(i.x-l),a.y=c+(i.y-u))}),delete o._dagreClusterSubgraph}),r.forEach(t=>{let n=e.node(t),r=i[t];if(n&&n.rankdir&&n._dagreClusterSubgraph&&r){let i=n._dagreClusterSubgraph,a=n.x??0,o=n.y??0,s=(r.minX+r.maxX)/2,c=(r.minY+r.maxY)/2;i.nodes().forEach(n=>{if(n===t)return;let r=i.node(n),l=e.node(n);if(l&&r&&typeof r.x==`number`&&typeof r.y==`number`){let e=r.x-s,t=r.y-c;l.x=a+e,l.y=o+t}}),delete n._dagreClusterSubgraph}})}function wN(e,t,n,r=null){var i,a;let o=n?.useDynamic!==!1,s=o&&(i=r?.graph)!=null?i:null,c=o&&(a=r?.rawNodes)!=null?a:null;t(` makeSpaceForEdgeLabels`,()=>FN(e)),t(` removeSelfEdges`,()=>WN(e)),t(` acyclic`,()=>Lj(e,s)),t(` nestingGraph.run`,()=>xM(e)),t(` rank`,()=>fM(ij(e))),t(` injectEdgeLabelProxies`,()=>IN(e)),t(` removeEmptyRanks`,()=>cj(e)),t(` nestingGraph.cleanup`,()=>TM(e)),t(` normalizeRanks`,()=>sj(e)),t(` assignRankMinMax`,()=>LN(e)),t(` removeEdgeLabelProxies`,()=>RN(e)),t(` normalize.run`,()=>Vj(e)),t(` parentDummyChains`,()=>_M(e)),t(` addBorderSegments`,()=>EM(e)),t(` order`,()=>$M(e,n,c)),t(` insertSelfEdges`,()=>GN(e)),t(` adjustCoordinateSystem`,()=>kM(e)),t(` position`,()=>vN(e,n.corePath)),t(` positionSelfEdges`,()=>KN(e));let l=JSON.parse(JSON.stringify(e._nodes));return t(` removeBorderNodes`,()=>UN(e)),t(` normalize.undo`,()=>Uj(e)),t(` fixupEdgeLabelCoords`,()=>VN(e)),t(` undoCoordinateSystem`,()=>AM(e)),t(` translateGraph`,()=>zN(e)),t(` assignNodeIntersects`,()=>BN(e)),t(` reversePoints`,()=>HN(e)),t(` acyclic.undo`,()=>zj(e)),{graph:e,rawNodes:l}}function TN(e,t){e.nodes().forEach(n=>{let r=e.node(n),i=t.node(n);r&&(r.x=i.x,r.y=i.y,r.order=i.order,r.rank=i.rank,t.children(n).length&&(r.width=i.width,r.height=i.height))}),e.edges().forEach(n=>{let r=e.edge(n),i=t.edge(n);r.points=i.points,Object.hasOwn(i,`x`)&&(r.x=i.x,r.y=i.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}var EN=[`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`],DN={ranksep:50,edgesep:20,nodesep:50,rankdir:`TB`,rankalign:`center`},ON=[`acyclicer`,`ranker`,`rankdir`,`align`,`rankalign`],kN=[`width`,`height`,`rank`],AN={width:0,height:0},jN=[`minlen`,`weight`,`width`,`height`,`labeloffset`],MN={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:`r`},NN=[`labelpos`];function PN(e){let t=new tj({multigraph:!0,compound:!0}),n=JN(e.graph());return t.setGraph(Object.assign({},DN,qN(n,EN),bj(n,ON))),e.nodes().forEach(n=>{let r=qN(JN(e.node(n)),kN);Object.keys(AN).forEach(e=>{r[e]===void 0&&(r[e]=AN[e])}),t.setNode(n,r);let i=e.parent(n);i!==void 0&&t.setParent(n,i)}),e.edges().forEach(n=>{let r=JN(e.edge(n));t.setEdge(n,Object.assign({},MN,qN(r,jN),bj(r,NN)))}),t}function FN(e){let t=e.graph();t.ranksep/=2,e.edges().forEach(n=>{let r=e.edge(n);r.minlen*=2,(r.labelpos??`r`).toLowerCase()!==`c`&&(t.rankdir===`TB`||t.rankdir===`BT`?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function IN(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.width&&n.height){let n=e.node(t.v);nj(e,`edge-proxy`,{rank:(e.node(t.w).rank-n.rank)/2+n.rank,e:t},`_ep`)}})}function LN(e){let t=0;e.nodes().forEach(n=>{let r=e.node(n);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}function RN(e){e.nodes().forEach(t=>{let n=e.node(t);if(n.dummy===`edge-proxy`){let r=n;e.edge(r.e).labelRank=n.rank,e.removeNode(t)}})}function zN(e){let t=1/0,n=0,r=1/0,i=0,a=e.graph(),o=a.marginx||0,s=a.marginy||0;function c(e){let a=e.x,o=e.y,s=e.width,c=e.height;t=Math.min(t,a-s/2),n=Math.max(n,a+s/2),r=Math.min(r,o-c/2),i=Math.max(i,o+c/2)}e.nodes().forEach(t=>c(e.node(t))),e.edges().forEach(t=>{let n=e.edge(t);Object.hasOwn(n,`x`)&&c(n)}),t-=o,r-=s,e.nodes().forEach(n=>{let i=e.node(n);i.x-=t,i.y-=r}),e.edges().forEach(n=>{let i=e.edge(n);i.points.forEach(e=>{e.x-=t,e.y-=r}),Object.hasOwn(i,`x`)&&(i.x-=t),Object.hasOwn(i,`y`)&&(i.y-=r)}),a.width=n-t+o,a.height=i-r+s}function BN(e){e.edges().forEach(t=>{if(t.v===t.w)return;let n=e.edge(t),r=e.node(t.v),i=e.node(t.w),a,o;n.points?(a=n.points[0],o=n.points[n.points.length-1]):(n.points=[],a=i,o=r),n.points.unshift(aj(r,a)),n.points.push(aj(i,o))})}function VN(e){e.edges().forEach(t=>{let n=e.edge(t);if(Object.hasOwn(n,`x`))switch((n.labelpos===`l`||n.labelpos===`r`)&&(n.width-=n.labeloffset),n.labelpos){case`l`:n.x-=n.width/2+n.labeloffset;break;case`r`:n.x+=n.width/2+n.labeloffset}})}function HN(e){e.edges().forEach(t=>{let n=e.edge(t);n.reversed&&n.points.reverse()})}function UN(e){e.nodes().forEach(t=>{if(e.children(t).length){let n=e.node(t),r=e.node(n.borderTop),i=e.node(n.borderBottom),a=e.node(n.borderLeft[n.borderLeft.length-1]),o=e.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(o.x-a.x),n.height=Math.abs(i.y-r.y),n.x=a.x+n.width/2,n.y=r.y+n.height/2}}),e.nodes().forEach(t=>{e.node(t).dummy===`border`&&e.removeNode(t)})}function WN(e){e.edges().forEach(t=>{if(t.v===t.w){let n=e.node(t.v);n.selfEdges||=[],n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function GN(e){oj(e).forEach(t=>{let n=0;t.forEach((t,r)=>{let i=e.node(t);typeof i.rank!=`number`&&(i.rank=0),i.order=r+n,(i.selfEdges||[]).forEach(t=>{nj(e,`selfedge`,{width:t.label.width,height:t.label.height,rank:i.rank,order:r+ ++n,e:t.e,edgeLabel:t.label},`_se`),(!Array.isArray(t.label.points)||t.label.points.length!==7)&&(t.label.points=[{x:0,y:-10},{x:0,y:-10},{x:0,y:0},{x:0,y:10},{x:0,y:10},{x:0,y:0},{x:0,y:0}])}),delete i.selfEdges})})}function KN(e){e.nodes().forEach(t=>{let n=e.node(t),r=e=>typeof e==`number`&&isFinite(e);if(n.dummy===`selfedge`){let i=n,a=e.node(i.e.v),o=r(a?.x)?a.x:0,s=r(a?.y)?a.y:0,c=r(a?.width)?a.width:0,l=r(a?.height)?a.height:0,u=r(n.x)?n.x:o,d=r(n.y)?n.y:s,f=c/2,p=l/2;i.edgeLabel.points=[{x:u+f,y:d-p},{x:u+f,y:d-p},{x:u,y:d},{x:u-f,y:d+p},{x:u-f,y:d+p},{x:u,y:d},{x:u,y:d}],i.edgeLabel.x=u,i.edgeLabel.y=d,e.setEdge(i.e,i.edgeLabel),e.removeNode(t)}else n&&Array.isArray(n.selfEdges)&&n.selfEdges.forEach(e=>{if(!Array.isArray(e.label.points)||e.label.points.length!==7){let t=r(n.x)?n.x:0,i=r(n.y)?n.y:0,a=r(n.width)?n.width:0,o=r(n.height)?n.height:0,s=a/2,c=o/2;e.label.points=[{x:t+s,y:i-c},{x:t+s,y:i-c},{x:t,y:i},{x:t-s,y:i+c},{x:t-s,y:i+c},{x:t,y:i},{x:t,y:i}]}})})}function qN(e,t){return xj(bj(e,t),Number)}function JN(e){let t={};return e&&Object.entries(e).forEach(([e,n])=>{typeof e==`string`&&(e=e.toLowerCase()),t[e]=n}),t}function YN(e){let t=oj(e),n=new tj({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(t=>{n.setNode(t,{label:t}),n.setParent(t,`layer`+e.node(t).rank)}),e.edges().forEach(e=>n.setEdge(e.v,e.w,{},e.name)),t.forEach((e,t)=>{let r=`layer`+t;n.setNode(r,{rank:`same`}),e.reduce((e,t)=>(n.setEdge(e,t,{style:`invis`}),t))}),n}var XN={graphlib:gA,version:Tj,layout:xN,debug:YN,util:{time:hj,notime:gj}},ZN={system:{label:`System`,border:`solid`},knowledge:{label:`Knowledge`,border:`solid`},delivery:{label:`Delivery`,border:`dashed`},implementation:{label:`Implementation`,border:`dotted`},unknown:{label:`Unknown`,border:`solid`}},QN={system:0,knowledge:1,delivery:2,unknown:3,implementation:4},$N=28,eP=22;function tP(e){switch(e){case`business`:case`product`:case`tech`:case`delivery`:return{label:nP(e),tone:`var(--info)`};case`project`:return{label:`Project`,tone:`var(--primary)`};case`work-item`:return{label:`Work Item`,tone:`var(--work-item-ready)`};case`decision`:return{label:`Decision`,tone:`var(--warning)`};case`capability`:return{label:`Capability`,tone:`var(--success)`};case`code-glob`:return{label:`Code`,tone:`var(--foreground-muted)`};case`initiative`:return{label:`Initiative`,tone:`var(--primary)`};case`roadmap-candidate`:return{label:`Candidate`,tone:`var(--foreground-muted)`};case`knowledge-capsule`:return{label:`External knowledge`,tone:`var(--info)`};default:return{label:nP(e),tone:`var(--foreground-muted)`}}}function nP(e){return e.replace(/[-_]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function rP(e){let t=new XN.graphlib.Graph;t.setGraph({rankdir:`TB`,nodesep:40,ranksep:70,marginx:20,marginy:20}),t.setDefaultEdgeLabel(()=>({}));for(let n of e.nodes)t.setNode(n.id,{width:190,height:58});let n=new Set(e.nodes.map(e=>e.id));for(let r of e.relationships)n.has(r.source)&&n.has(r.target)&&t.setEdge(r.source,r.target);XN.layout(t);let r=new Map;for(let n of e.nodes){let e=t.node(n.id);r.set(n.id,{x:(e?.x??0)-95,y:(e?.y??0)-29})}let i=new Map;for(let t of e.groups){let n=e.nodes.filter(e=>e.moduleId===t.id);if(n.length===0)continue;let a=1/0,o=1/0,s=-1/0,c=-1/0;for(let e of n){let t=r.get(e.id);a=Math.min(a,t.x),o=Math.min(o,t.y),s=Math.max(s,t.x+190),c=Math.max(c,t.y+58)}i.set(t.id,{x:a-$N,y:o-$N-eP,w:s-a+56,h:c-o+56+eP})}return{positions:r,groupBoxes:i}}function iP(e,t,n){let r=e.groups.filter(e=>t.groupBoxes.has(e.id)).map(e=>{let n=t.groupBoxes.get(e.id);return{id:`group:${e.id}`,type:`systemGroup`,position:{x:n.x,y:n.y},data:{label:e.label,available:e.available},style:{width:n.w,height:n.h},selectable:!1,draggable:!1,zIndex:-1}}),i=e.nodes.map(e=>({id:e.id,type:`system`,position:t.positions.get(e.id)??{x:0,y:0},data:{node:e,selected:e.id===n},zIndex:1}));return[...r,...i]}function aP(e,t){return e.relationships.map(e=>{let n=t!=null&&(e.source===t||e.target===t);return{id:e.id,source:e.source,target:e.target,label:e.label,selectable:!0,animated:n,data:{relationship:e},style:{stroke:n?`var(--primary)`:`var(--border-strong)`,strokeWidth:n?2:1},labelStyle:{fill:`var(--foreground-muted)`,fontSize:10},labelBgStyle:{fill:`var(--surface)`}}})}function oP(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.label.toLowerCase().includes(n)||e.type.toLowerCase().includes(n)||(e.moduleId??``).toLowerCase().includes(n)).sort((e,t)=>QN[e.dimension]-QN[t.dimension]):[]}function sP({data:e}){let{node:t,selected:n}=e,r=tP(t.type),i=ZN[t.dimension];return(0,x.jsxs)(`div`,{style:{width:190,minHeight:58,boxSizing:`border-box`,background:`var(--surface)`,border:`1px ${i.border} ${n?`var(--primary)`:`var(--border)`}`,borderLeft:`4px solid ${r.tone}`,borderRadius:`var(--radius)`,boxShadow:n?`0 0 0 2px color-mix(in srgb, var(--primary) 40%, transparent)`:`none`,padding:`8px 10px`,overflow:`hidden`},children:[(0,x.jsx)(ZD,{type:`target`,position:$.Top,style:{background:`var(--border-strong)`,width:6,height:6}}),(0,x.jsx)(`div`,{style:{fontSize:10,fontWeight:600,textTransform:`uppercase`,letterSpacing:.3,color:`var(--foreground-muted)`},children:r.label}),(0,x.jsx)(`div`,{style:{fontSize:13,fontWeight:600,color:`var(--foreground)`,lineHeight:1.25,wordBreak:`break-word`},children:t.label}),(0,x.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`,marginTop:3,flexWrap:`wrap`},children:[t.moduleId&&(0,x.jsx)(`span`,{className:`font-mono`,style:{fontSize:10,color:`var(--foreground-muted)`},children:t.moduleId}),t.status&&(0,x.jsxs)(`span`,{style:{fontSize:10,color:`var(--foreground-muted)`},children:[`· `,t.status]})]}),(0,x.jsx)(ZD,{type:`source`,position:$.Bottom,style:{background:`var(--border-strong)`,width:6,height:6}})]})}function cP({data:e}){return(0,x.jsx)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,border:`1px dashed ${e.available?`var(--border-strong)`:`var(--danger)`}`,borderRadius:`var(--radius)`,background:`color-mix(in srgb, var(--surface-muted) 50%, transparent)`},children:(0,x.jsxs)(`div`,{style:{position:`absolute`,top:4,left:8,display:`flex`,gap:8,alignItems:`center`},children:[(0,x.jsx)(`span`,{className:`font-mono`,style:{fontSize:11,fontWeight:700,color:`var(--foreground-muted)`},children:e.label}),!e.available&&(0,x.jsx)(`span`,{style:{fontSize:10,color:`var(--danger)`},children:`Unavailable`})]})})}function lP({label:e,children:t}){return(0,x.jsxs)(`div`,{style:{marginBottom:12},children:[(0,x.jsx)(`div`,{style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:.3,color:`var(--foreground-muted)`,marginBottom:3},children:e}),(0,x.jsx)(`div`,{style:{fontSize:14,color:`var(--foreground)`},children:t})]})}function uP({children:e,onClick:t}){return(0,x.jsx)(`button`,{onClick:t,style:{display:`block`,background:`none`,border:`none`,padding:`2px 0`,cursor:`pointer`,color:`var(--primary)`,fontFamily:`inherit`,fontSize:14,textAlign:`left`},children:e})}function dP({projection:e,selectedNodeId:t,selectedEdgeId:n,onClose:r,onSelectNode:i}){let a=di(),o=new Map(e.nodes.map(e=>[e.id,e])),s=t?o.get(t)??null:null,c=n?e.relationships.find(e=>e.id===n)??null:null;return(0,x.jsxs)(`aside`,{style:{width:320,flexShrink:0,borderLeft:`1px solid var(--border)`,background:`var(--surface)`,padding:20,overflowY:`auto`},children:[(0,x.jsx)(`div`,{style:{display:`flex`,justifyContent:`flex-end`},children:(0,x.jsx)(`button`,{onClick:r,"aria-label":`Close details`,style:{background:`none`,border:`none`,cursor:`pointer`,color:`var(--foreground-muted)`,fontSize:18,lineHeight:1},children:`×`})}),s&&(0,x.jsx)(fP,{node:s,projection:e,nodeById:o,onSelectNode:i,router:a}),!s&&c&&(0,x.jsx)(pP,{edge:c,nodeById:o}),!s&&!c&&(0,x.jsx)(`p`,{style:{fontSize:14,color:`var(--foreground-muted)`},children:`Select a node or relationship to see details.`})]})}function fP({node:e,projection:t,nodeById:n,onSelectNode:r,router:i}){let a=tP(e.type),o=[];for(let r of t.relationships)if(r.source===e.id){let e=n.get(r.target);e&&o.push({id:e.id,label:e.label,rel:`${r.label} →`,dimension:e.dimension})}else if(r.target===e.id){let e=n.get(r.source);e&&o.push({id:e.id,label:e.label,rel:`${r.label} from`,dimension:e.dimension})}let s=e=>o.filter(t=>t.dimension===e),c=s(`system`),l=s(`knowledge`),u=s(`delivery`),d=s(`implementation`);return(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`h2`,{style:{fontSize:17,fontWeight:700,margin:`0 0 12px`,wordBreak:`break-word`},children:e.label}),(0,x.jsx)(lP,{label:`Type`,children:a.label}),e.moduleId&&(0,x.jsx)(lP,{label:`Module / repository`,children:(0,x.jsx)(`span`,{className:`font-mono`,children:e.moduleId})}),e.status&&(0,x.jsx)(lP,{label:`Status`,children:Ba(e.status)}),e.purpose&&(0,x.jsx)(lP,{label:`Purpose`,children:e.purpose}),c.length>0&&(0,x.jsx)(lP,{label:`Relationships`,children:(0,x.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:c.map((e,t)=>(0,x.jsxs)(uP,{onClick:()=>r(e.id),children:[e.rel,` `,e.label]},t))})}),l.length>0&&(0,x.jsx)(lP,{label:`Knowledge context`,children:(0,x.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:l.map((e,t)=>(0,x.jsxs)(uP,{onClick:()=>r(e.id),children:[e.rel,` `,e.label]},t))})}),u.length>0&&(0,x.jsx)(lP,{label:`Delivery history`,children:(0,x.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:u.map((e,t)=>(0,x.jsxs)(uP,{onClick:()=>r(e.id),children:[e.rel,` `,e.label]},t))})}),d.length>0&&(0,x.jsx)(lP,{label:`Implementation`,children:(0,x.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:d.map((e,t)=>(0,x.jsx)(`span`,{className:`font-mono`,style:{fontSize:12,color:`var(--foreground-muted)`},children:e.label},t))})}),(e.knowledgeRef||e.knowledgeRefs&&e.knowledgeRefs.length>0)&&(0,x.jsx)(lP,{label:`Knowledge`,children:(0,x.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:2},children:[e.knowledgeRef&&(0,x.jsxs)(uP,{onClick:()=>i.navigate({to:`/knowledge/$layer/$artifactId`,params:{layer:e.knowledgeRef.layer,artifactId:e.knowledgeRef.id}}),children:[Ba(e.knowledgeRef.layer),` / `,e.knowledgeRef.id,` →`]}),(e.knowledgeRefs??[]).map(e=>(0,x.jsxs)(uP,{onClick:()=>i.navigate({to:`/knowledge/$layer/$artifactId`,params:{layer:e.layer,artifactId:e.id}}),children:[Ba(e.layer),` / `,e.id,` →`]},e.id))]})}),e.provenance&&(0,x.jsxs)(lP,{label:`Provenance`,children:[Ba(e.provenance),e.evidence&&e.evidence.length>0&&(0,x.jsx)(`div`,{className:`font-mono`,style:{fontSize:11,color:`var(--foreground-muted)`,marginTop:4},children:e.evidence.map((e,t)=>(0,x.jsx)(`div`,{children:e},t))})]}),e.workItemRef&&(0,x.jsx)(lP,{label:`Related Work Item`,children:(0,x.jsxs)(uP,{onClick:()=>i.navigate({to:`/work-items/$workItemId`,params:{workItemId:e.workItemRef}}),children:[e.workItemRef,` →`]})}),e.path&&(0,x.jsx)(lP,{label:`Path`,children:(0,x.jsx)(Vg,{path:e.path})})]})}function pP({edge:e,nodeById:t}){let n=t.get(e.source),r=t.get(e.target);return(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`h2`,{style:{fontSize:15,fontWeight:700,margin:`0 0 12px`},children:`Relationship`}),(0,x.jsx)(lP,{label:`From`,children:n?.label??e.source}),(0,x.jsx)(lP,{label:`To`,children:r?.label??e.target}),(0,x.jsx)(lP,{label:`Type`,children:e.label}),n?.moduleId&&(0,x.jsx)(lP,{label:`Source module`,children:(0,x.jsx)(`span`,{className:`font-mono`,children:n.moduleId})}),r?.moduleId&&(0,x.jsx)(lP,{label:`Target module`,children:(0,x.jsx)(`span`,{className:`font-mono`,children:r.moduleId})})]})}function mP({metadata:e}){let[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(!1),d=e.topologyStatus,f=d===`available`?(0,x.jsx)(go,{variant:`success`,children:`Available`}):d===`partial`?(0,x.jsx)(go,{variant:`warning`,children:`Partial`}):(0,x.jsx)(go,{variant:`muted`,children:`Unavailable`}),p=async()=>{if(t)return t;u(!0),c(null);try{let e=await po.getTopologyHandoff();return n(e),e}catch(e){return c(e instanceof co?e.message:`The handoff could not be generated.`),null}finally{u(!1)}},m=async()=>{let e=await p();if(e)try{await navigator.clipboard?.writeText(e.text),o(!0),setTimeout(()=>o(!1),2e3)}catch{i(!0)}},h=async()=>{r?i(!1):await p()&&i(!0)},g=d===`available`?`${e.semanticEntityCount} semantic components · ${e.technicalRelationshipCount} technical relationships.`:d===`partial`?`${e.semanticEntityCount} semantic components known — Kaddo knows useful topology, but the map is not assumed to be exhaustive.`:`Kaddo currently knows Knowledge and Delivery relationships, but does not yet have enough semantic system metadata to describe how the software is structured.`,_={padding:`5px 12px`,borderRadius:`var(--radius)`,fontSize:12,fontWeight:600,fontFamily:`inherit`,cursor:`pointer`};return(0,x.jsxs)(`div`,{style:{padding:`10px 16px`,borderBottom:`1px solid var(--border)`,background:d===`available`?`transparent`:`color-mix(in srgb, var(--warning) 8%, transparent)`},children:[(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,flexWrap:`wrap`},children:[(0,x.jsx)(`span`,{style:{fontSize:11,fontWeight:700,textTransform:`uppercase`,letterSpacing:.3,color:`var(--foreground-muted)`},children:`System topology`}),f,(0,x.jsx)(`span`,{style:{fontSize:12,color:`var(--foreground-muted)`},children:g}),d!==`available`&&(0,x.jsxs)(`div`,{style:{marginLeft:`auto`,display:`flex`,gap:8,alignItems:`center`},children:[(0,x.jsxs)(`span`,{style:{fontSize:11,color:`var(--foreground-muted)`},children:[`Recommended: `,(0,x.jsx)(`span`,{className:`font-mono`,children:`architecture-agent`}),` · `,(0,x.jsx)(`span`,{className:`font-mono`,children:`graph-metadata-review`})]}),(0,x.jsx)(`button`,{onClick:m,disabled:l,style:{..._,border:`1px solid var(--primary)`,background:`var(--primary)`,color:`var(--primary-foreground)`,opacity:l?.6:1},children:l&&!t?`Preparing…`:a?`✓ Copied`:`Copy topology enrichment handoff`}),(0,x.jsx)(`button`,{onClick:h,disabled:l,style:{..._,border:`1px solid var(--border)`,background:`var(--surface)`,color:`var(--foreground)`},children:r?`Hide handoff`:`View handoff`})]})]}),s&&(0,x.jsx)(`p`,{style:{fontSize:12,color:`var(--danger)`,margin:`8px 0 0`},children:s}),r&&t&&(0,x.jsx)(`pre`,{style:{marginTop:10,background:`var(--surface-muted)`,border:`1px solid var(--border)`,borderRadius:`var(--radius)`,padding:12,fontSize:11,lineHeight:1.5,whiteSpace:`pre-wrap`,wordBreak:`break-word`,fontFamily:`var(--font-mono)`,color:`var(--foreground)`,maxHeight:240,overflowY:`auto`},children:t.text})]})}var hP={system:sP,systemGroup:cP};function gP(){return(0,x.jsxs)(`div`,{style:{padding:24},children:[(0,x.jsx)(`div`,{style:{height:`calc(100vh - 120px)`,background:`var(--surface-muted)`,borderRadius:`var(--radius)`,animation:`pulse 1.5s ease-in-out infinite`}}),(0,x.jsx)(`style`,{children:`@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}`})]})}var _P={padding:`8px 12px`,border:`1px solid var(--border)`,borderRadius:`var(--radius)`,background:`var(--surface)`,color:`var(--foreground)`,fontSize:13,fontFamily:`inherit`};function vP({projection:e}){let t=di(),n=C(),r=Wi({from:`/system`}),i=wD(),[a,o]=(0,v.useState)(r.node??null),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(`all`),[p,m]=(0,v.useState)(`all`),[h,g]=(0,v.useState)({system:!0,knowledge:!0,delivery:!0,implementation:!1,unknown:!0}),_=(0,v.useMemo)(()=>[...new Set(e.nodes.map(e=>e.type))].sort(),[e]),y=(0,v.useMemo)(()=>{let t=e.nodes.filter(e=>h[e.dimension]&&(d===`all`||e.moduleId===d)&&(p===`all`||e.type===p)),n=new Set(t.map(e=>e.id));return{...e,nodes:t,relationships:e.relationships.filter(e=>n.has(e.source)&&n.has(e.target))}},[e,d,p,h]),b=e=>g(t=>({...t,[e]:!t[e]})),S=(e,t)=>(0,x.jsxs)(`label`,{style:{display:`inline-flex`,gap:5,alignItems:`center`,fontSize:12,cursor:`pointer`,color:`var(--foreground-muted)`},children:[(0,x.jsx)(`input`,{type:`checkbox`,checked:h[e],onChange:()=>b(e),"aria-label":`Toggle ${t}`}),t]}),w=(0,v.useMemo)(()=>rP(y),[y]),T=(0,v.useMemo)(()=>iP(y,w,a),[y,w,a]),E=(0,v.useMemo)(()=>aP(y,a),[y,a]),D=e=>{let t=w.positions.get(e);t&&i.setCenter(t.x+95,t.y+29,{zoom:1.2,duration:400})};(0,v.useEffect)(()=>{if(r.node&&w.positions.has(r.node)){o(r.node);let e=setTimeout(()=>D(r.node),100);return()=>clearTimeout(e)}},[]);let O=e=>{o(e),c(null),t.navigate({to:`/system`,search:{node:e},replace:!0}),D(e)},k=l.trim()?oP(y.nodes,l).slice(0,8):[];return(0,x.jsxs)(`div`,{style:{display:`flex`,height:`calc(100vh - 56px)`},children:[(0,x.jsxs)(`div`,{style:{flex:1,minWidth:0,position:`relative`,display:`flex`,flexDirection:`column`},children:[(0,x.jsxs)(`div`,{style:{display:`flex`,gap:10,padding:`12px 16px`,borderBottom:`1px solid var(--border)`,alignItems:`center`,flexWrap:`wrap`,position:`relative`,zIndex:5,background:`var(--background)`},children:[(0,x.jsxs)(`div`,{style:{position:`relative`,flex:`1 1 220px`,minWidth:180},children:[(0,x.jsx)(`input`,{type:`search`,placeholder:`Search system…`,value:l,onChange:e=>u(e.target.value),"aria-label":`Search system`,style:{..._P,width:`100%`,boxSizing:`border-box`}}),k.length>0&&(0,x.jsx)(`ul`,{style:{position:`absolute`,top:`100%`,left:0,right:0,marginTop:4,listStyle:`none`,padding:4,background:`var(--surface)`,border:`1px solid var(--border)`,borderRadius:`var(--radius)`,zIndex:10,maxHeight:260,overflowY:`auto`},children:k.map(e=>(0,x.jsx)(`li`,{children:(0,x.jsxs)(`button`,{onClick:()=>{O(e.id),u(``)},style:{display:`block`,width:`100%`,textAlign:`left`,padding:`6px 8px`,background:`none`,border:`none`,cursor:`pointer`,color:`var(--foreground)`,fontFamily:`inherit`,fontSize:13},children:[e.label,` `,(0,x.jsxs)(`span`,{style:{color:`var(--foreground-muted)`,fontSize:11},children:[`· `,tP(e.type).label,e.moduleId?` · ${e.moduleId}`:``]})]})},e.id))})]}),e.groups.length>0&&(0,x.jsxs)(`select`,{value:d,onChange:e=>f(e.target.value),"aria-label":`Filter by module`,style:_P,children:[(0,x.jsx)(`option`,{value:`all`,children:`All modules`}),e.groups.map(e=>(0,x.jsx)(`option`,{value:e.id,children:e.label},e.id))]}),(0,x.jsxs)(`select`,{value:p,onChange:e=>m(e.target.value),"aria-label":`Filter by type`,style:_P,children:[(0,x.jsx)(`option`,{value:`all`,children:`All types`}),_.map(e=>(0,x.jsx)(`option`,{value:e,children:tP(e).label},e))]}),(0,x.jsxs)(`div`,{style:{display:`inline-flex`,gap:12,alignItems:`center`,paddingLeft:4},children:[(0,x.jsx)(`span`,{style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:.3,color:`var(--foreground-muted)`},children:`Show`}),S(`knowledge`,`Knowledge`),S(`delivery`,`Delivery`),S(`implementation`,`Implementation`)]}),(0,x.jsxs)(`span`,{style:{fontSize:12,color:`var(--foreground-muted)`},children:[y.nodes.length,` nodes · `,y.relationships.length,` relationships · coverage `,e.metadata.coverage]}),(0,x.jsx)(`button`,{onClick:()=>n.invalidateQueries({queryKey:[`system-map`]}),style:{..._P,cursor:`pointer`,color:`var(--foreground-muted)`},children:`↻ Refresh`})]}),(0,x.jsx)(mP,{metadata:e.metadata}),y.nodes.length===0?(0,x.jsx)(`div`,{style:{flex:1,display:`flex`,alignItems:`center`,justifyContent:`center`,color:`var(--foreground-muted)`,fontSize:14},children:`No nodes match these filters.`}):(0,x.jsx)(`div`,{style:{flex:1},children:(0,x.jsxs)(Ak,{nodes:T,edges:E,nodeTypes:hP,onNodeClick:(e,t)=>{t.type===`system`&&O(t.id)},onEdgeClick:(e,t)=>{c(t.id),o(null)},onPaneClick:()=>{o(null),c(null)},fitView:!0,minZoom:.2,proOptions:{hideAttribution:!0},children:[(0,x.jsx)(Lk,{color:`var(--border)`,gap:20}),(0,x.jsx)(Kk,{showInteractive:!1})]})})]}),(a||s)&&(0,x.jsx)(dP,{projection:e,selectedNodeId:a,selectedEdgeId:s,onClose:()=>{o(null),c(null)},onSelectNode:O})]})}function yP(){let e=C(),{data:t,isLoading:n,error:r}=rt({queryKey:[`system-map`],queryFn:po.getSystemMap,refetchOnWindowFocus:!1});return n?(0,x.jsx)(gP,{}):r?(0,x.jsx)(`div`,{style:{padding:24},children:(0,x.jsxs)(`div`,{style:{background:`color-mix(in srgb, var(--danger) 10%, transparent)`,border:`1px solid var(--danger)`,borderRadius:`var(--radius)`,padding:16},children:[(0,x.jsx)(`strong`,{children:`System map could not be loaded`}),(0,x.jsx)(`p`,{style:{margin:`4px 0 8px`,fontSize:14,color:`var(--foreground-muted)`},children:`The project remains available, but Kaddo could not build the current System Map.`}),(0,x.jsx)(`button`,{onClick:()=>e.invalidateQueries({queryKey:[`system-map`]}),style:{..._P,cursor:`pointer`},children:`Retry`})]})}):!t||!t.metadata.available?(0,x.jsxs)(`div`,{style:{padding:`48px 32px`,textAlign:`center`,color:`var(--foreground-muted)`,maxWidth:640,margin:`0 auto`},children:[(0,x.jsx)(`div`,{style:{fontSize:32,marginBottom:12},children:`🗺️`}),(0,x.jsx)(`h2`,{style:{fontSize:18,fontWeight:600,color:`var(--foreground)`,margin:`0 0 8px`},children:`System map not available yet`}),(0,x.jsx)(`p`,{style:{fontSize:14},children:`Kaddo does not have enough system metadata to build a System Map for this project yet.`}),(0,x.jsx)(`p`,{style:{fontSize:13,marginTop:8},children:`Review the project Knowledge and graph metadata to enrich the map.`})]}):(0,x.jsx)(Ek,{children:(0,x.jsx)(vP,{projection:t})})}var bP=new We({defaultOptions:{queries:{staleTime:3e4,retry:1}}}),xP=pa({component:mo}),SP=da({getParentRoute:()=>xP,path:`/`,component:()=>(0,x.jsx)(Ki,{to:`/overview`})}),CP=da({getParentRoute:()=>xP,path:`/overview`,component:Po}),wP=da({getParentRoute:()=>xP,path:`/knowledge`,component:Io}),TP=da({getParentRoute:()=>xP,path:`/knowledge/$layer`,component:Vo}),EP=da({getParentRoute:()=>xP,path:`/knowledge/$layer/$artifactId`,component:Ug}),DP=da({getParentRoute:()=>xP,path:`/work-items`,component:e_}),OP=da({getParentRoute:()=>xP,path:`/work-items/new`,component:C_}),kP=da({getParentRoute:()=>xP,path:`/work-items/$workItemId`,component:h_}),AP=da({getParentRoute:()=>xP,path:`/work-items/$workItemId/edit`,component:U_}),jP=da({getParentRoute:()=>xP,path:`/system`,component:yP,validateSearch:e=>({node:typeof e.node==`string`?e.node:void 0})}),MP=Aa({routeTree:xP.addChildren([SP,CP,wP,TP,EP,DP,OP,kP,AP,jP])});function NP(){return(0,x.jsx)(w,{client:bP,children:(0,x.jsx)(Na,{router:MP})})}po.initSession().catch(()=>{}),(0,y.createRoot)(document.getElementById(`root`)).render((0,x.jsx)(v.StrictMode,{children:(0,x.jsx)(NP,{})}));
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>admin</title>
8
- <script type="module" crossorigin src="/assets/index-Y7S2WW1U.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-sZtkPyjd.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-BPQdYfAp.css">
10
10
  </head>
11
11
  <body>