@adonis-agora/durable 1.0.0-rc.18 → 1.0.0-rc.19
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.
- package/CHANGELOG.md +6 -0
- package/dist/assets/spa/assets/index-BgoNV3TR.css +1 -0
- package/dist/assets/spa/assets/{index-BC440VO4.js → index-DzXygyDm.js} +1 -1
- package/dist/assets/spa/assets/{index-BC440VO4.js.map → index-DzXygyDm.js.map} +1 -1
- package/dist/assets/spa/index.html +2 -2
- package/dist/src/dashboard/index.d.ts +1 -1
- package/dist/src/dashboard/index.js +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/package.json +2 -2
- package/dist/assets/spa/assets/index-3nGPrQlr.css +0 -1
|
@@ -54,4 +54,4 @@ Error generating stack: `+e.message+`
|
|
|
54
54
|
`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,p.useEffect)(()=>{let n=t?.target??NI,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)&&dP(e))return!1;let n=II(e.code,s);if(a.current.add(e[n]),FI(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=II(e.code,s);FI(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 FI(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function II(e,t){return t.includes(e)?`code`:`key`}var LI=()=>{let e=oI();return(0,p.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=ZN(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 KN(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=qN(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function RI(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)zI(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 zI(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 BI(e,t){return RI(e,t)}function VI(e,t){return RI(e,t)}function HI(e,t){return{id:e,type:`select`,selected:t}}function UI(e,t=new Set){let n=[];for(let[r,i]of e){let e=t.has(r);(i.selected!==void 0||e)&&i.selected!==e&&n.push(HI(i.id,e))}return n}function WI({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 GI(e){return{id:e.id,type:`remove`}}var KI=WN(`React Flow`,`https://reactflow.dev/`);function qI(e,t,n={}){return wP(e,t,{...n,onError:n.onError??KI})}var JI=e=>vN(e),YI=e=>_N(e);function XI(e){return(0,p.forwardRef)(e)}var ZI=typeof window<`u`?p.useLayoutEffect:p.useEffect;function QI(e){let[t,n]=(0,p.useState)(BigInt(0)),[r]=(0,p.useState)(()=>$I(()=>n(e=>e+BigInt(1))));return ZI(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function $I(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var eL=(0,p.createContext)(null);function tL({children:e}){let t=oI(),n=QI((0,p.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=WI({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=QI((0,p.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(WI({items:s,lookup:o}))},[])),i=(0,p.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,m.jsx)(eL.Provider,{value:i,children:e})}function nL(){let e=(0,p.useContext)(eL);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var rL=e=>!!e.panZoom;function iL(){let e=LI(),t=oI(),n=nL(),r=aI(rL),i=(0,p.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=JI(e)?e:n.get(e.id),a=i.parentId?nP(i.position,i.measured,i.parentId,n,r):i.position;return LN({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height},i.parentId?void 0:r)},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&&JI(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&&YI(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 ON({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(GI);o?.(f),c(e)}if(m){let e=d.map(GI);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=HN(e),o=i?e:a(e),s=r!==void 0;if(!o)return[];let{nodeOrigin:c}=t.getState();return(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 l=LN(s?r:a,c),u=VN(l,o);return n&&u>0||u>=l.width*l.height||u>=o.width*o.height})},isNodeIntersecting:(e,t,n=!0)=>{let r=HN(e)?e:a(e);if(!r)return!1;let i=VN(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 xN(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??iP();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,p.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var aL=e=>e.selected,oL=typeof window<`u`?window:void 0;function sL({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=oI(),{deleteElements:r}=iL(),i=PI(e,{actInsideInputWithModifier:!1}),a=PI(t,{target:oL});(0,p.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(aL),edges:e.filter(aL)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,p.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function cL(e){let t=oI();(0,p.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=cP(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,oN.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.disconnect()}}},[])}var lL={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},uL=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function dL({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:i,panOnScrollSpeed:a=.5,panOnScrollMode:o=dN.Free,zoomOnDoubleClick:s=!0,panOnDrag:c=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:h,preventScrolling:g=!0,children:_,noWheelClassName:v,noPanClassName:y,onViewportChange:b,isControlledViewport:x,paneClickDistance:S,selectionOnDrag:C}){let w=oI(),T=(0,p.useRef)(null),{userSelectionActive:E,lib:D,connectionInProgress:O}=aI(uL,tI),k=PI(h),A=(0,p.useRef)();cL(T);let j=(0,p.useCallback)(e=>{b?.({x:e[0],y:e[1],zoom:e[2]}),x||w.setState({transform:e})},[b,x]);return(0,p.useEffect)(()=>{if(T.current){A.current=PF({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,p.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:g,noPanClassName:y,userSelectionActive:E,noWheelClassName:v,lib:D,onTransformChange:j,connectionInProgress:O,selectionOnDrag:C,paneClickDistance:S})},[e,t,n,r,i,a,o,s,c,k,g,y,E,v,D,j,O,C,S]),(0,m.jsx)(`div`,{className:`react-flow__renderer`,ref:T,style:lL,children:_})}var fL=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function pL(){let{userSelectionActive:e,userSelectionRect:t}=aI(fL,tI);return e&&t?(0,m.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 mL=(e,t)=>n=>{n.target===t.current&&e?.(n)},hL=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function gL({isSelecting:e,selectionKeyPressed:t,selectionMode:n=fN.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:h,onPaneMouseLeave:g,children:_}){let v=(0,p.useRef)(0),y=oI(),{userSelectionActive:b,elementsSelectable:x,dragging:S,panBy:C,autoPanSpeed:w}=aI(hL,tI),T=x&&(e||b),E=(0,p.useRef)(null),D=(0,p.useRef)(),O=(0,p.useRef)(new Set),k=(0,p.useRef)(new Set),A=(0,p.useRef)(!1),j=(0,p.useRef)(!1),M=(0,p.useRef)({x:0,y:0}),N=(0,p.useRef)(!1),P=e=>{if(j.current||A.current||y.getState().connection.inProgress){j.current=!1,A.current=!1;return}let{connectionClickStartHandle:t,connection:n,onClickConnectEnd:r,resetSelectedElements:i}=y.getState();if(t){let t=structuredClone(n);delete t.inProgress,t.toPosition=t.toHandle?t.toHandle.position:null,r?.(e.nativeEvent,t),y.setState({connectionClickStartHandle:null})}l?.(e),i(),y.setState({nodesSelectionActive:!1})},F=e=>{Array.isArray(r)&&r?.includes(2)?e.preventDefault():u?.(e)},I=d?e=>d(e):void 0,L=e=>{j.current&&=(e.stopPropagation(),!1)},R=n=>{if(n.pointerType===`touch`&&r!==!1&&!t)return;let{domNode:i,transform:a}=y.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}=pP(n.nativeEvent,D.current),u=KN({x:c,y:l},a);y.setState({userSelectionRect:{width:0,height:0,startX:u.x,startY:u.y,x:c,y:l}}),s||(n.stopPropagation(),n.preventDefault())};function z(e,t){let{userSelectionRect:r}=y.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=y.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=qN(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(CN(a,m,i,n===fN.Partial,!0).map(e=>e.id)),k.current=new Set;let _=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??_)&&k.current.add(e)}}rP(h,O.current)||c(UI(a,O.current)),rP(g,k.current)||l(UI(o,k.current)),y.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function B(){if(!i||!D.current)return;let[e,t]=NN(M.current,D.current,w);C({x:e,y:t}).then(e=>{if(!j.current||!e){v.current=requestAnimationFrame(B);return}let{x:t,y:n}=M.current;z(t,n),v.current=requestAnimationFrame(B)})}let ee=()=>{cancelAnimationFrame(v.current),v.current=0,N.current=!1};(0,p.useEffect)(()=>()=>ee(),[]);let V=e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=y.getState();if(!D.current||!n)return;let{x:o,y:c}=pP(e.nativeEvent,D.current);M.current={x:o,y:c};let l=qN({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||=(B(),!0),z(o,c)},te=e=>{T?e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!b&&e.target===E.current&&y.getState().userSelectionRect&&P?.(e),y.setState({userSelectionActive:!1,userSelectionRect:null}),j.current&&(c?.(e),y.setState({nodesSelectionActive:O.current.size>0})),ee()):e.target===E.current&&y.getState().connection.inProgress&&(A.current=!0)},ne=e=>{e.target?.releasePointerCapture?.(e.pointerId),ee()},H=r===!0||Array.isArray(r)&&r.includes(0);return(0,m.jsxs)(`div`,{className:TE([`react-flow__pane`,{draggable:H,dragging:S,selection:e}]),onClick:T?void 0:mL(P,E),onContextMenu:mL(F,E),onWheel:mL(I,E),onPointerEnter:T?void 0:f,onPointerMove:T?V:h,onPointerUp:te,onPointerCancel:T?ne:void 0,onPointerDownCapture:T?R:void 0,onClickCapture:T?L:void 0,onPointerLeave:g,ref:E,style:lL,children:[_,(0,m.jsx)(pL,{})]})}function _L({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);l?(t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])):c?.(`012`,oN.error012(e))}function vL({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=oI(),[c,l]=(0,p.useState)(!1),u=(0,p.useRef)();return(0,p.useEffect)(()=>{if(!t)return u.current=lF({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{_L({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,p.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 yL=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function bL(){let e=oI();return(0,p.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=yL(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=GN(t,i));let{position:a,positionAbsolute:s}=DN({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 xL=(0,p.createContext)(null),SL=xL.Provider;xL.Consumer;var CL=()=>(0,p.useContext)(xL),wL=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),TL=(0,p.createContext)(null);function EL({children:e}){let t=aI(wL,tI);return(0,m.jsx)(TL.Provider,{value:t,children:e})}function DL(){let e=(0,p.useContext)(TL);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var OL={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},kL=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return OL;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===uN.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function AL({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 h=o||null,g=e===`target`,_=oI(),v=CL(),{connectOnClick:y,noPanClassName:b,rfId:x}=DL(),{connectingFrom:S,connectingTo:C,clickConnecting:w,isPossibleEndHandle:T,connectionInProcess:E,clickConnectionInProcess:D,valid:O}=aI(kL(v,h,e),tI);v||_.getState().onError?.(`010`,oN.error010());let k=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=_.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=_.getState();t(qI(i,e,{onError:n}))}n?.(i),s?.(i)},A=e=>{if(!v)return;let t=fP(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=_.getState();yF.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:g,handleId:h,nodeId:v,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>_.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:k,isValidConnection:n||((...e)=>_.getState().isValidConnection?.(...e)??!0),getTransform:()=>_.getState().transform,getFromHandle:()=>_.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,m.jsx)(`div`,{"data-handleid":h,"data-nodeid":v,"data-handlepos":t,"data-id":`${x}-${v}-${h}-${e}`,className:TE([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,b,l,{source:!g,target:g,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:y?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=_.getState();if(!v||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:v,handleId:h,handleType:e}),_.setState({connectionClickStartHandle:{nodeId:v,type:e,id:h}});return}let p=lP(t.target),m=n||c,{connection:g,isValid:y}=yF.isValid(t.nativeEvent,{handle:{nodeId:v,id:h,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:m,flowId:u,doc:p,lib:l,nodeLookup:d});y&&g&&k(g);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),_.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var jL=(0,p.memo)(XI(AL));function ML({data:e,isConnectable:t,sourcePosition:n=$.Bottom}){return(0,m.jsxs)(m.Fragment,{children:[e?.label,(0,m.jsx)(jL,{type:`source`,position:n,isConnectable:t})]})}function NL({data:e,isConnectable:t,targetPosition:n=$.Top,sourcePosition:r=$.Bottom}){return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(jL,{type:`target`,position:n,isConnectable:t}),e?.label,(0,m.jsx)(jL,{type:`source`,position:r,isConnectable:t})]})}function PL(){return null}function FL({data:e,isConnectable:t,targetPosition:n=$.Top}){return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(jL,{type:`target`,position:n,isConnectable:t}),e?.label]})}var IL={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},LL={input:ML,default:NL,output:FL,group:PL};function RL(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 zL=e=>{let{width:t,height:n,x:r,y:i}=SN(e.nodeLookup,{filter:e=>!!e.selected});return{width:UN(t)?t:null,height:UN(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 BL({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=oI(),{width:i,height:a,transformString:o,userSelectionActive:s}=aI(zL,tI),c=bL(),l=(0,p.useRef)(null);(0,p.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(vL({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,m.jsx)(`div`,{className:TE([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,m.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(IL,e.key)&&(e.preventDefault(),c({direction:IL[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var VL=typeof window<`u`?window:void 0,HL=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function UL({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:h,panActivationKeyCode:g,zoomActivationKeyCode:_,elementsSelectable:v,zoomOnScroll:y,zoomOnPinch:b,panOnScroll:x,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:I,isControlledViewport:L}){let{nodesSelectionActive:R,userSelectionActive:z}=aI(HL,tI),B=PI(l,{target:VL}),ee=PI(g,{target:VL}),V=ee||T,te=ee||x,ne=u&&V!==!0,H=B||z||ne;return sL({deleteKeyCode:c,multiSelectionKeyCode:h}),(0,m.jsx)(dL,{onPaneContextMenu:a,elementsSelectable:v,zoomOnScroll:y,zoomOnPinch:b,panOnScroll:te,panActivationKeyPressed:ee,panOnScrollSpeed:S,panOnScrollMode:C,zoomOnDoubleClick:w,panOnDrag:!B&&V,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,zoomActivationKeyCode:_,preventScrolling:j,noWheelClassName:N,noPanClassName:P,onViewportChange:I,isControlledViewport:L,paneClickDistance:s,selectionOnDrag:ne,children:(0,m.jsxs)(gL,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:V,autoPanOnSelection:E,isSelecting:!!H,selectionMode:d,selectionKeyPressed:B,paneClickDistance:s,selectionOnDrag:ne,children:[e,R&&(0,m.jsx)(BL,{onSelectionContextMenu:M,noPanClassName:P,disableKeyboardA11y:F})]})})}UL.displayName=`FlowRenderer`;var WL=(0,p.memo)(UL),GL=e=>t=>e?CN(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 KL(e){return aI((0,p.useCallback)(GL(e),[e]),tI)}var qL=e=>e.updateNodeInternals;function JL(){let e=aI(qL),[t]=(0,p.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,p.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function YL({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=oI(),a=(0,p.useRef)(null),o=(0,p.useRef)(null),s=(0,p.useRef)(e.sourcePosition),c=(0,p.useRef)(e.targetPosition),l=(0,p.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,p.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,p.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,p.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 XL({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:h,rfId:g,nodeTypes:_,nodeClickDistance:v,onError:y}){let{node:b,internals:x,isParent:S}=aI(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},tI),C=b.type||`default`,w=_?.[C]||LL[C];w===void 0&&(y?.(`003`,oN.error003(C)),C=`default`,w=_?.default||LL.default);let T=!!(b.draggable||s&&b.draggable===void 0),E=!!(b.selectable||c&&b.selectable===void 0),D=!!(b.connectable||l&&b.connectable===void 0),O=!!(b.focusable||u&&b.focusable===void 0),k=oI(),A=tP(b),j=YL({node:b,nodeType:C,hasDimensions:A,resizeObserver:d}),M=vL({nodeRef:j,disabled:b.hidden||!T,noDragClassName:f,handleSelector:b.dragHandle,nodeId:e,isSelectable:E,nodeClickDistance:v}),N=bL();if(b.hidden)return null;let P=eP(b),F=RL(b),I=E||T||t||n||r||i,L=n?e=>n(e,{...x.userNode}):void 0,R=r?e=>r(e,{...x.userNode}):void 0,z=i?e=>i(e,{...x.userNode}):void 0,B=a?e=>a(e,{...x.userNode}):void 0,ee=o?e=>o(e,{...x.userNode}):void 0,V=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=k.getState();E&&(!r||!T||i>0)&&_L({id:e,store:k,nodeRef:j}),t&&t(n,{...x.userNode})},te=t=>{if(!(dP(t.nativeEvent)||h)){if(cN.includes(t.key)&&E){let n=t.key===`Escape`;_L({id:e,store:k,unselect:n,nodeRef:j})}else if(T&&b.selected&&Object.prototype.hasOwnProperty.call(IL,t.key)){t.preventDefault();let{ariaLabelConfig:e}=k.getState();k.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~x.positionAbsolute.x,y:~~x.positionAbsolute.y})}),N({direction:IL[t.key],factor:t.shiftKey?4:1})}}},ne=()=>{if(h||!j.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=k.getState();i&&(CN(new Map([[e,b]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(b.position.x+P.width/2,b.position.y+P.height/2,{zoom:t[2]}))};return(0,m.jsx)(`div`,{className:TE([`react-flow__node`,`react-flow__node-${C}`,{[p]:T},b.className,{selected:b.selected,selectable:E,parent:S,draggable:T,dragging:M}]),ref:j,style:{zIndex:x.z,transform:`translate(${x.positionAbsolute.x}px,${x.positionAbsolute.y}px)`,pointerEvents:I?`all`:`none`,visibility:A?`visible`:`hidden`,...b.style,...F},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:L,onMouseMove:R,onMouseLeave:z,onContextMenu:B,onClick:V,onDoubleClick:ee,onKeyDown:O?te:void 0,tabIndex:O?0:void 0,onFocus:O?ne:void 0,role:b.ariaRole??(O?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":h?void 0:`${lI}-${g}`,"aria-label":b.ariaLabel,...b.domAttributes,children:(0,m.jsx)(SL,{value:e,children:(0,m.jsx)(w,{id:e,data:b.data,type:C,positionAbsoluteX:x.positionAbsolute.x,positionAbsoluteY:x.positionAbsolute.y,selected:b.selected??!1,selectable:E,draggable:T,deletable:b.deletable??!0,isConnectable:D,sourcePosition:b.sourcePosition,targetPosition:b.targetPosition,dragging:M,dragHandle:b.dragHandle,zIndex:x.z,parentId:b.parentId,...P})})})}var ZL=(0,p.memo)(XL),QL=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function $L(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=aI(QL,tI),a=KL(e.onlyRenderVisibleElements),o=JL();return(0,m.jsx)(`div`,{className:`react-flow__nodes`,style:lL,children:a.map(a=>(0,m.jsx)(ZL,{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))})}$L.displayName=`NodeRenderer`;var eR=(0,p.memo)($L);function tR(e){return aI((0,p.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&&xP({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),tI)}var nR=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,m.jsx)(`polyline`,{className:`arrow`,style:n,strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`})},rR=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,m.jsx)(`polyline`,{className:`arrowclosed`,style:n,strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`})},iR={[hN.Arrow]:nR,[hN.ArrowClosed]:rR};function aR(e){let t=oI();return(0,p.useMemo)(()=>Object.prototype.hasOwnProperty.call(iR,e)?iR[e]:(t.getState().onError?.(`009`,oN.error009(e)),null),[e])}var oR=({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=aR(t);return c?(0,m.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,m.jsx)(c,{color:n,strokeWidth:o})}):null},sR=({defaultColor:e,rfId:t})=>{let n=aI(e=>e.edges),r=aI(e=>e.defaultEdgeOptions),i=(0,p.useMemo)(()=>zP(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,m.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,m.jsx)(`defs`,{children:i.map(e=>(0,m.jsx)(oR,{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};sR.displayName=`MarkerDefinitions`;var cR=(0,p.memo)(sR);function lR({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,p.useState)({x:1,y:0,width:0,height:0}),h=TE([`react-flow__edge-textwrapper`,l]),g=(0,p.useRef)(null);return(0,p.useEffect)(()=>{if(g.current){let e=g.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,m.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:h,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,m.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,m.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:g,style:r,children:n}),c]}):null}lR.displayName=`EdgeText`;var uR=(0,p.memo)(lR);function dR({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`path`,{...u,d:e,fill:`none`,className:TE([`react-flow__edge-path`,u.className])}),l?(0,m.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&UN(t)&&UN(n)?(0,m.jsx)(uR,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function fR({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===$.Left||e===$.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function pR({sourceX:e,sourceY:t,sourcePosition:n=$.Bottom,targetX:r,targetY:i,targetPosition:a=$.Top}){let[o,s]=fR({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=fR({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=hP({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 mR(e){return(0,p.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:h,markerEnd:g,markerStart:_,interactionWidth:v})=>{let[y,b,x]=pR({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s}),S=e.isInternal?void 0:t;return(0,m.jsx)(dR,{id:S,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:h,markerEnd:g,markerStart:_,interactionWidth:v})})}var hR=mR({isInternal:!1}),gR=mR({isInternal:!0});hR.displayName=`SimpleBezierEdge`,gR.displayName=`SimpleBezierEdgeInternal`;function _R(e){return(0,p.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:h=$.Top,markerEnd:g,markerStart:_,pathOptions:v,interactionWidth:y})=>{let[b,x,S]=MP({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:h,borderRadius:v?.borderRadius,offset:v?.offset,stepPosition:v?.stepPosition}),C=e.isInternal?void 0:t;return(0,m.jsx)(dR,{id:C,path:b,labelX:x,labelY:S,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:g,markerStart:_,interactionWidth:y})})}var vR=_R({isInternal:!1}),yR=_R({isInternal:!0});vR.displayName=`SmoothStepEdge`,yR.displayName=`SmoothStepEdgeInternal`;function bR(e){return(0,p.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,m.jsx)(vR,{...n,id:r,pathOptions:(0,p.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var xR=bR({isInternal:!1}),SR=bR({isInternal:!0});xR.displayName=`StepEdge`,SR.displayName=`StepEdgeInternal`;function CR(e){return(0,p.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:h,interactionWidth:g})=>{let[_,v,y]=TP({sourceX:n,sourceY:r,targetX:i,targetY:a}),b=e.isInternal?void 0:t;return(0,m.jsx)(dR,{id:b,path:_,labelX:v,labelY:y,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:h,interactionWidth:g})})}var wR=CR({isInternal:!1}),TR=CR({isInternal:!0});wR.displayName=`StraightEdge`,TR.displayName=`StraightEdgeInternal`;function ER(e){return(0,p.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:h,markerEnd:g,markerStart:_,pathOptions:v,interactionWidth:y})=>{let[b,x,S]=vP({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:v?.curvature}),C=e.isInternal?void 0:t;return(0,m.jsx)(dR,{id:C,path:b,labelX:x,labelY:S,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:h,markerEnd:g,markerStart:_,interactionWidth:y})})}var DR=ER({isInternal:!1}),OR=ER({isInternal:!0});DR.displayName=`BezierEdge`,OR.displayName=`BezierEdgeInternal`;var kR={default:OR,straight:TR,step:SR,smoothstep:yR,simplebezier:gR},AR={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},jR=(e,t,n)=>n===$.Left?e-t:n===$.Right?e+t:e,MR=(e,t,n)=>n===$.Top?e-t:n===$.Bottom?e+t:e,NR=`react-flow__edgeupdater`;function PR({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,m.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:TE([NR,`${NR}-${s}`]),cx:jR(t,r,e),cy:MR(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function FR({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 h=oI(),g=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:m,rfId:g,panBy:_,updateConnection:v}=h.getState(),y=t.type===`target`;yF.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:m,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>h.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>h.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>h.getState().transform,getFromHandle:()=>h.getState().connection.fromHandle,dragThreshold:h.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},_=e=>g(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),v=e=>g(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),y=()=>p(!0),b=()=>p(!1);return(0,m.jsxs)(m.Fragment,{children:[(e===!0||e===`source`)&&(0,m.jsx)(PR,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:_,onMouseEnter:y,onMouseOut:b,type:`source`}),(e===!0||e===`target`)&&(0,m.jsx)(PR,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:v,onMouseEnter:y,onMouseOut:b,type:`target`})]})}function IR({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:h,rfId:g,edgeTypes:_,noPanClassName:v,onError:y,disableKeyboardA11y:b}){let x=aI(t=>t.edgeLookup.get(e)),S=aI(e=>e.defaultEdgeOptions);x=S?{...S,...x}:x;let C=x.type||`default`,w=_?.[C]||kR[C];w===void 0&&(y?.(`011`,oN.error011(C)),C=`default`,w=_?.default||kR.default);let T=!!(x.focusable||t&&x.focusable===void 0),E=d!==void 0&&(x.reconnectable||n&&x.reconnectable===void 0),D=!!(x.selectable||r&&x.selectable===void 0),O=(0,p.useRef)(null),[k,A]=(0,p.useState)(!1),[j,M]=(0,p.useState)(!1),N=oI(),{zIndex:P=x.zIndex,sourceX:F,sourceY:I,targetX:L,targetY:R,sourcePosition:z,targetPosition:B}=aI((0,p.useCallback)(t=>{let n=t.nodeLookup.get(x.source),r=t.nodeLookup.get(x.target);if(!n||!r)return AR;let i=PP({id:e,sourceNode:n,targetNode:r,sourceHandle:x.sourceHandle||null,targetHandle:x.targetHandle||null,connectionMode:t.connectionMode,onError:y}),a=bP({selected:x.selected,zIndex:x.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||AR,zIndex:a}},[x.source,x.target,x.sourceHandle,x.targetHandle,x.selected,x.zIndex,y]),tI),ee=(0,p.useMemo)(()=>x.markerStart?`url('#${RP(x.markerStart,g)}')`:void 0,[x.markerStart,g]),V=(0,p.useMemo)(()=>x.markerEnd?`url('#${RP(x.markerEnd,g)}')`:void 0,[x.markerEnd,g]);if(x.hidden||F===null||I===null||L===null||R===null)return null;let te=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=N.getState();D&&(N.setState({nodesSelectionActive:!1}),x.selected&&a?(r({nodes:[],edges:[x]}),O.current?.blur()):n([e])),i&&i(t,x)},ne=a?e=>{a(e,{...x})}:void 0,H=o?e=>{o(e,{...x})}:void 0,re=s?e=>{s(e,{...x})}:void 0,U=c?e=>{c(e,{...x})}:void 0,W=l?e=>{l(e,{...x})}:void 0;return(0,m.jsx)(`svg`,{style:{zIndex:P},children:(0,m.jsxs)(`g`,{className:TE([`react-flow__edge`,`react-flow__edge-${C}`,x.className,v,{selected:x.selected,animated:x.animated,inactive:!D&&!i,updating:k,selectable:D}]),onClick:te,onDoubleClick:ne,onContextMenu:H,onMouseEnter:re,onMouseMove:U,onMouseLeave:W,onKeyDown:T?t=>{if(!b&&cN.includes(t.key)&&D){let{unselectNodesAndEdges:n,addSelectedEdges:r}=N.getState();t.key===`Escape`?(O.current?.blur(),n({edges:[x]})):r([e])}}:void 0,tabIndex:T?0:void 0,role:x.ariaRole??(T?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":x.ariaLabel===null?void 0:x.ariaLabel||`Edge from ${x.source} to ${x.target}`,"aria-describedby":T?`${uI}-${g}`:void 0,ref:O,...x.domAttributes,children:[!j&&(0,m.jsx)(w,{id:e,source:x.source,target:x.target,type:x.type,selected:x.selected,animated:x.animated,selectable:D,deletable:x.deletable??!0,label:x.label,labelStyle:x.labelStyle,labelShowBg:x.labelShowBg,labelBgStyle:x.labelBgStyle,labelBgPadding:x.labelBgPadding,labelBgBorderRadius:x.labelBgBorderRadius,sourceX:F,sourceY:I,targetX:L,targetY:R,sourcePosition:z,targetPosition:B,data:x.data,style:x.style,sourceHandleId:x.sourceHandle,targetHandleId:x.targetHandle,markerStart:ee,markerEnd:V,pathOptions:`pathOptions`in x?x.pathOptions:void 0,interactionWidth:x.interactionWidth}),E&&(0,m.jsx)(FR,{edge:x,isReconnectable:E,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:h,sourceX:F,sourceY:I,targetX:L,targetY:R,sourcePosition:z,targetPosition:B,setUpdateHover:A,setReconnecting:M})]})})}var LR=(0,p.memo)(IR),RR=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function zR({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:h,disableKeyboardA11y:g}){let{edgesFocusable:_,edgesReconnectable:v,elementsSelectable:y,onError:b}=aI(RR,tI),x=tR(t);return(0,m.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,m.jsx)(cR,{defaultColor:e,rfId:n}),x.map(e=>(0,m.jsx)(LR,{id:e,edgesFocusable:_,edgesReconnectable:v,elementsSelectable:y,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:h,rfId:n,onError:b,edgeTypes:r,disableKeyboardA11y:g},e))]})}zR.displayName=`EdgeRenderer`;var BR=(0,p.memo)(zR),VR=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function HR({children:e}){let t=oI(),n=(0,p.useRef)(null),[r]=(0,p.useState)(()=>t.getState().transform);return ZI(()=>{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=VR(r)))};return r(),t.subscribe(r)},[t]),(0,m.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:VR(r)},children:e})}function UR(e){let t=iL(),n=(0,p.useRef)(!1);(0,p.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var WR=e=>e.panZoom?.syncViewport;function GR(e){let t=aI(WR),n=oI();return(0,p.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function KR(e){return e.connection.inProgress?{...e.connection,to:KN(e.connection.to,e.transform)}:{...e.connection}}function qR(e){return e?t=>e(KR(t)):KR}function JR(e){return aI(qR(e),tI)}var YR=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function XR({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=aI(YR,tI);return a&&i&&c?(0,m.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,m.jsx)(`g`,{className:TE([`react-flow__connection`,oP(s)]),children:(0,m.jsx)(ZR,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var ZR=({style:e,type:t=mN.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}=JR();if(!i)return;if(n)return(0,m.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:oP(r),toNode:u,toHandle:d,pointer:p});let h=``,g={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case mN.Bezier:[h]=vP(g);break;case mN.SimpleBezier:[h]=pR(g);break;case mN.Step:[h]=MP({...g,borderRadius:0});break;case mN.SmoothStep:[h]=MP(g);break;default:[h]=TP(g)}return(0,m.jsx)(`path`,{d:h,fill:`none`,className:`react-flow__connection-path`,style:e})};ZR.displayName=`ConnectionLine`;var QR={};function $R(e=QR){(0,p.useRef)(e),oI(),(0,p.useEffect)(()=>{},[e])}function ez(){oI(),(0,p.useRef)(!1),(0,p.useEffect)(()=>{},[])}function tz({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:h,connectionLineStyle:g,connectionLineComponent:_,connectionLineContainerStyle:v,selectionKeyCode:y,selectionOnDrag:b,selectionMode:x,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:I,panOnScrollSpeed:L,panOnScrollMode:R,zoomOnDoubleClick:z,panOnDrag:B,autoPanOnSelection:ee,onPaneClick:V,onPaneMouseEnter:te,onPaneMouseMove:ne,onPaneMouseLeave:H,onPaneScroll:re,onPaneContextMenu:U,paneClickDistance:W,nodeClickDistance:G,onEdgeContextMenu:K,onEdgeMouseEnter:ie,onEdgeMouseMove:ae,onEdgeMouseLeave:oe,reconnectRadius:se,onReconnect:ce,onReconnectStart:le,onReconnectEnd:ue,noDragClassName:de,noWheelClassName:fe,noPanClassName:pe,disableKeyboardA11y:me,nodeExtent:he,rfId:ge,viewport:_e,onViewportChange:ve,nodesDraggable:ye}){return $R(e),$R(t),ez(),UR(n),GR(_e),(0,m.jsx)(WL,{onPaneClick:V,onPaneMouseEnter:te,onPaneMouseMove:ne,onPaneMouseLeave:H,onPaneContextMenu:U,onPaneScroll:re,paneClickDistance:W,deleteKeyCode:T,selectionKeyCode:y,selectionOnDrag:b,selectionMode:x,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:S,panActivationKeyCode:C,zoomActivationKeyCode:w,elementsSelectable:D,zoomOnScroll:P,zoomOnPinch:F,zoomOnDoubleClick:z,panOnScroll:I,panOnScrollSpeed:L,panOnScrollMode:R,panOnDrag:B,autoPanOnSelection:ee,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,onSelectionContextMenu:d,preventScrolling:M,noDragClassName:de,noWheelClassName:fe,noPanClassName:pe,disableKeyboardA11y:me,onViewportChange:ve,isControlledViewport:!!_e,children:(0,m.jsxs)(HR,{children:[(0,m.jsx)(BR,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:ce,onReconnectStart:le,onReconnectEnd:ue,onlyRenderVisibleElements:E,onEdgeContextMenu:K,onEdgeMouseEnter:ie,onEdgeMouseMove:ae,onEdgeMouseLeave:oe,reconnectRadius:se,defaultMarkerColor:N,noPanClassName:pe,disableKeyboardA11y:me,rfId:ge}),(0,m.jsx)(XR,{style:g,type:h,component:_,containerStyle:v}),(0,m.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,m.jsx)(eR,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:G,onlyRenderVisibleElements:E,noPanClassName:pe,noDragClassName:de,disableKeyboardA11y:me,nodeExtent:he,rfId:ge,nodesDraggable:ye}),(0,m.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}tz.displayName=`GraphView`;var nz=(0,p.memo)(tz),rz=WN(`React Flow`,`https://reactflow.dev/`),iz=({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??sN;rF(h,g,_);let{nodesInitialized:x}=JP(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=ZN(SN(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:sN,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:uN.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:{...pN},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:rz,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:lN,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}},az=({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})=>eI((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 EN({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...iz({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}=JP(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();rF(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}=eF(e,n,r,i,a,o,l);d&&(GP(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=IP(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=$P(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(BI(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(VI(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();t?i(e.map(e=>HI(e,!0))):(i(UI(r,new Set([...e]))),a(UI(n)))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();t?a(e.map(e=>HI(e,!0))):(a(UI(n,new Set([...e]))),i(UI(r,new Set)))},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)e.selected&&l.push(HI(e.id,!1));let u=[];for(let e of c)e.selected&&u.push(HI(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,HI(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,HI(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])&&(JP(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 tF({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:{...pN}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...iz()})}},Object.is);function oz({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:h}){let[g]=(0,p.useState)(()=>az({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,m.jsx)(rI,{value:g,children:(0,m.jsx)(tL,{children:(0,m.jsx)(EL,{children:h})})})}function sz({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:h}){return(0,p.useContext)(nI)?(0,m.jsx)(m.Fragment,{children:e}):(0,m.jsx)(oz,{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:h,children:e})}var cz={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function lz({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:h,onConnectStart:g,onConnectEnd:_,onClickConnectStart:v,onClickConnectEnd:y,onNodeMouseEnter:b,onNodeMouseMove:x,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:I,onSelectionEnd:L,onBeforeDelete:R,connectionMode:z,connectionLineType:B=mN.Bezier,connectionLineStyle:ee,connectionLineComponent:V,connectionLineContainerStyle:te,deleteKeyCode:ne=`Backspace`,selectionKeyCode:H=`Shift`,selectionOnDrag:re=!1,selectionMode:U=fN.Full,panActivationKeyCode:W=`Space`,multiSelectionKeyCode:G=QN()?`Meta`:`Control`,zoomActivationKeyCode:K=QN()?`Meta`:`Control`,snapToGrid:ie,snapGrid:ae,onlyRenderVisibleElements:oe=!1,selectNodesOnDrag:se,nodesDraggable:ce,autoPanOnNodeFocus:le,nodesConnectable:ue,nodesFocusable:de,nodeOrigin:fe=TI,edgesFocusable:pe,edgesReconnectable:me,elementsSelectable:he=!0,defaultViewport:ge=EI,minZoom:_e=.5,maxZoom:ve=2,translateExtent:ye=sN,preventScrolling:be=!0,nodeExtent:xe,defaultMarkerColor:Se=`#b1b1b7`,zoomOnScroll:Ce=!0,zoomOnPinch:we=!0,panOnScroll:Te=!1,panOnScrollSpeed:Ee=.5,panOnScrollMode:De=dN.Free,zoomOnDoubleClick:Oe=!0,panOnDrag:ke=!0,onPaneClick:Ae,onPaneMouseEnter:je,onPaneMouseMove:Me,onPaneMouseLeave:Ne,onPaneScroll:Pe,onPaneContextMenu:Fe,paneClickDistance:Ie=1,nodeClickDistance:Le=0,children:Re,onReconnect:ze,onReconnectStart:Be,onReconnectEnd:Ve,onEdgeContextMenu:He,onEdgeDoubleClick:Ue,onEdgeMouseEnter:We,onEdgeMouseMove:Ge,onEdgeMouseLeave:Ke,reconnectRadius:qe=10,onNodesChange:Je,onEdgesChange:Ye,noDragClassName:Xe=`nodrag`,noWheelClassName:Ze=`nowheel`,noPanClassName:Qe=`nopan`,fitView:$e,fitViewOptions:et,connectOnClick:tt,attributionPosition:nt,proOptions:rt,defaultEdgeOptions:it,elevateNodesOnSelect:at=!0,elevateEdgesOnSelect:ot=!1,disableKeyboardA11y:st=!1,autoPanOnConnect:ct,autoPanOnNodeDrag:lt,autoPanOnSelection:ut=!0,autoPanSpeed:dt,connectionRadius:ft,isValidConnection:pt,onError:mt,style:ht,id:gt,nodeDragThreshold:_t,connectionDragThreshold:vt,viewport:yt,onViewportChange:bt,width:xt,height:St,colorMode:Ct=`light`,debug:wt,onScroll:Tt,ariaLabelConfig:Et,zIndexMode:Dt=`basic`,...Ot},kt){let At=gt||`1`,jt=MI(Ct),Mt=(0,p.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Tt?.(e)},[Tt]);return(0,m.jsx)(`div`,{"data-testid":`rf__wrapper`,...Ot,onScroll:Mt,style:{...ht,...cz},ref:kt,className:TE([`react-flow`,i,jt]),id:gt,role:`application`,children:(0,m.jsxs)(sz,{nodes:e,edges:t,width:xt,height:St,fitView:$e,fitViewOptions:et,minZoom:_e,maxZoom:ve,nodeOrigin:fe,nodeExtent:xe,zIndexMode:Dt,children:[(0,m.jsx)(AI,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:h,onConnectStart:g,onConnectEnd:_,onClickConnectStart:v,onClickConnectEnd:y,nodesDraggable:ce,autoPanOnNodeFocus:le,nodesConnectable:ue,nodesFocusable:de,edgesFocusable:pe,edgesReconnectable:me,elementsSelectable:he,elevateNodesOnSelect:at,elevateEdgesOnSelect:ot,minZoom:_e,maxZoom:ve,nodeExtent:xe,onNodesChange:Je,onEdgesChange:Ye,snapToGrid:ie,snapGrid:ae,connectionMode:z,translateExtent:ye,connectOnClick:tt,defaultEdgeOptions:it,fitView:$e,fitViewOptions:et,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:Qe,nodeOrigin:fe,rfId:At,autoPanOnConnect:ct,autoPanOnNodeDrag:lt,autoPanSpeed:dt,onError:mt,connectionRadius:ft,isValidConnection:pt,selectNodesOnDrag:se,nodeDragThreshold:_t,connectionDragThreshold:vt,onBeforeDelete:R,debug:wt,ariaLabelConfig:Et,zIndexMode:Dt}),(0,m.jsx)(nz,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:b,onNodeMouseMove:x,onNodeMouseLeave:S,onNodeContextMenu:C,onNodeDoubleClick:w,nodeTypes:a,edgeTypes:o,connectionLineType:B,connectionLineStyle:ee,connectionLineComponent:V,connectionLineContainerStyle:te,selectionKeyCode:H,selectionOnDrag:re,selectionMode:U,deleteKeyCode:ne,multiSelectionKeyCode:G,panActivationKeyCode:W,zoomActivationKeyCode:K,onlyRenderVisibleElements:oe,defaultViewport:ge,translateExtent:ye,minZoom:_e,maxZoom:ve,preventScrolling:be,zoomOnScroll:Ce,zoomOnPinch:we,zoomOnDoubleClick:Oe,panOnScroll:Te,panOnScrollSpeed:Ee,panOnScrollMode:De,panOnDrag:ke,autoPanOnSelection:ut,onPaneClick:Ae,onPaneMouseEnter:je,onPaneMouseMove:Me,onPaneMouseLeave:Ne,onPaneScroll:Pe,onPaneContextMenu:Fe,paneClickDistance:Ie,nodeClickDistance:Le,onSelectionContextMenu:F,onSelectionStart:I,onSelectionEnd:L,onReconnect:ze,onReconnectStart:Be,onReconnectEnd:Ve,onEdgeContextMenu:He,onEdgeDoubleClick:Ue,onEdgeMouseEnter:We,onEdgeMouseMove:Ge,onEdgeMouseLeave:Ke,reconnectRadius:qe,defaultMarkerColor:Se,noDragClassName:Xe,noWheelClassName:Ze,noPanClassName:Qe,rfId:At,disableKeyboardA11y:st,nodeExtent:xe,viewport:yt,onViewportChange:bt,nodesDraggable:ce}),(0,m.jsx)(wI,{onSelectionChange:j}),Re,(0,m.jsx)(vI,{proOptions:rt,position:nt}),(0,m.jsx)(hI,{rfId:At,disableKeyboardA11y:st})]})})}var uz=XI(lz);oN.error014();function dz({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,m.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:TE([`react-flow__background-pattern`,n,r])})}function fz({radius:e,className:t}){return(0,m.jsx)(`circle`,{cx:e,cy:e,r:e,className:TE([`react-flow__background-pattern`,`dots`,t])})}var pz;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(pz||={});var mz={[pz.Dots]:1,[pz.Lines]:1,[pz.Cross]:6},hz=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function gz({id:e,variant:t=pz.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,p.useRef)(null),{transform:f,patternId:h}=aI(hz,tI),g=r||mz[t],_=t===pz.Dots,v=t===pz.Cross,y=Array.isArray(n)?n:[n,n],b=[y[0]*f[2]||1,y[1]*f[2]||1],x=g*f[2],S=Array.isArray(a)?a:[a,a],C=v?[x,x]:b,w=[S[0]*f[2]+C[0]/2,S[1]*f[2]+C[1]/2],T=`${h}${e||``}`;return(0,m.jsxs)(`svg`,{className:TE([`react-flow__background`,l]),style:{...c,...lL,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,m.jsx)(`pattern`,{id:T,x:f[0]%b[0],y:f[1]%b[1],width:b[0],height:b[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${w[0]},-${w[1]})`,children:_?(0,m.jsx)(fz,{radius:x/2,className:u}):(0,m.jsx)(dz,{dimensions:C,lineWidth:i,variant:t,className:u})}),(0,m.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${T})`})]})}gz.displayName=`Background`;var _z=(0,p.memo)(gz);function vz(){return(0,m.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,m.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function yz(){return(0,m.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,m.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function bz(){return(0,m.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,m.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 xz(){return(0,m.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,m.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 Sz(){return(0,m.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,m.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 Cz({children:e,className:t,...n}){return(0,m.jsx)(`button`,{type:`button`,className:TE([`react-flow__controls-button`,t]),...n,children:e})}var wz=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Tz({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 h=oI(),{isInteractive:g,minZoomReached:_,maxZoomReached:v,ariaLabelConfig:y}=aI(wz,tI),{zoomIn:b,zoomOut:x,fitView:S}=iL();return(0,m.jsxs)(gI,{className:TE([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??y[`controls.ariaLabel`],children:[t&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(Cz,{onClick:()=>{b(),a?.()},className:`react-flow__controls-zoomin`,title:y[`controls.zoomIn.ariaLabel`],"aria-label":y[`controls.zoomIn.ariaLabel`],disabled:v,children:(0,m.jsx)(vz,{})}),(0,m.jsx)(Cz,{onClick:()=>{x(),o?.()},className:`react-flow__controls-zoomout`,title:y[`controls.zoomOut.ariaLabel`],"aria-label":y[`controls.zoomOut.ariaLabel`],disabled:_,children:(0,m.jsx)(yz,{})})]}),n&&(0,m.jsx)(Cz,{className:`react-flow__controls-fitview`,onClick:()=>{S(i),s?.()},title:y[`controls.fitView.ariaLabel`],"aria-label":y[`controls.fitView.ariaLabel`],children:(0,m.jsx)(bz,{})}),r&&(0,m.jsx)(Cz,{className:`react-flow__controls-interactive`,onClick:()=>{h.setState({nodesDraggable:!g,nodesConnectable:!g,elementsSelectable:!g}),c?.(!g)},title:y[`controls.interactive.ariaLabel`],"aria-label":y[`controls.interactive.ariaLabel`],children:g?(0,m.jsx)(Sz,{}):(0,m.jsx)(xz,{})}),u]})}Tz.displayName=`Controls`;var Ez=(0,p.memo)(Tz);function Dz({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:h,backgroundColor:g}=a||{},_=o||h||g;return(0,m.jsx)(`rect`,{className:TE([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:_,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var Oz=(0,p.memo)(Dz),kz=e=>e.nodes.map(e=>e.id),Az=e=>e instanceof Function?e:()=>e;function jz({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=Oz,onClick:o}){let s=aI(kz,tI),c=Az(t),l=Az(e),u=Az(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,m.jsx)(m.Fragment,{children:s.map(e=>(0,m.jsx)(Nz,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function Mz({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}=aI(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}=eP(r);return{node:r,x:i,y:a,width:o,height:s}},tI);return!l||l.hidden||!tP(l)?null:(0,m.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 Nz=(0,p.memo)(Mz),Pz=(0,p.memo)(jz),Fz=200,Iz=150,Lz=e=>!e.hidden,Rz=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?zN(SN(e.nodeLookup,{filter:Lz}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},zz=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,Bz=(e,t)=>zz(e.viewBB,t.viewBB)&&zz(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,Vz=`react-flow__minimap-desc`;function Hz({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:h,onNodeClick:g,pannable:_=!1,zoomable:v=!1,ariaLabel:y,inversePan:b,zoomStep:x=1,offsetScale:S=5}){let C=oI(),w=(0,p.useRef)(null),{boundingRect:T,panZoom:E,viewBB:D,rfId:O,translateExtent:k,flowWidth:A,flowHeight:j,ariaLabelConfig:M}=aI(Rz,Bz),N=e?.width??Fz,P=e?.height??Iz,F=T.width/N,I=T.height/P,L=Math.max(F,I),R=L*N,z=L*P,B=S*L,ee=T.x-(R-T.width)/2-B,V=T.y-(z-T.height)/2-B,te=R+B*2,ne=z+B*2,H=`${Vz}-${O}`,re=(0,p.useRef)(0),U=(0,p.useRef)();re.current=L,(0,p.useEffect)(()=>{let e=C.getState().panZoom;if(w.current&&e)return U.current=bF({domNode:w.current,panZoom:e,getTransform:()=>C.getState().transform,getViewScale:()=>re.current}),()=>{U.current?.destroy()}},[E]),(0,p.useEffect)(()=>{U.current?.update({translateExtent:k,width:A,height:j,inversePan:b,pannable:_,zoomStep:x,zoomable:v})},[_,v,b,x,k,A,j]);let W=h?e=>{let[t,n]=U.current?.pointer(e)||[0,0];h(e,{x:t,y:n})}:void 0,G=(0,p.useCallback)((e,t)=>{let n=C.getState().nodeLookup.get(t).internals.userNode;g?.(e,n)},[g]),K=g?G:void 0,ie=y??M[`minimap.ariaLabel`];return(0,m.jsx)(gI,{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*L: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:TE([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,m.jsxs)(`svg`,{width:N,height:P,viewBox:`${ee} ${V} ${te} ${ne}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":H,ref:w,onClick:W,children:[ie&&(0,m.jsx)(`title`,{id:H,children:ie}),(0,m.jsx)(Pz,{onClick:K,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,m.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${ee-B},${V-B}h${te+B*2}v${ne+B*2}h${-te-B*2}z
|
|
55
55
|
M${D.x},${D.y}h${D.width}v${D.height}h${-D.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}Hz.displayName=`MiniMap`,(0,p.memo)(Hz);var Uz=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,Wz={[FF.Line]:`right`,[FF.Handle]:`bottom-right`};function Gz({nodeId:e,position:t,variant:n=FF.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:h=!0,shouldResize:g,onResizeStart:_,onResize:v,onResizeEnd:y}){let b=CL(),x=typeof e==`string`?e:b,S=oI(),C=(0,p.useRef)(null),w=n===FF.Handle,T=aI((0,p.useCallback)(Uz(w&&h),[w,h]),tI),E=(0,p.useRef)(null),D=t??Wz[n];(0,p.useEffect)(()=>{if(C.current&&x)return E.current||=KF({domNode:C.current,nodeId:x,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(x);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=$P([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...nP({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:x,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:x,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:x,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:_,onResize:v,onResizeEnd:y,shouldResize:g}),()=>{E.current?.destroy()}},[D,s,c,l,u,d,_,v,y,g]);let O=D.split(`-`);return(0,m.jsx)(`div`,{className:TE([`react-flow__resize-control`,`nodrag`,...O,n,r]),ref:C,style:{...i,scale:T,...o&&{[w?`backgroundColor`:`borderColor`]:o}},children:a})}(0,p.memo)(Gz);var Kz=new Set,qz=[];function Jz(e){return e.startsWith(`signal:child:`)}function Yz(e){let t=g();return Ye({queries:(()=>{let n=new Set(e),r=e.size+50,i=[...e];for(;i.length>0&&n.size<r;){let e=i.shift();if(e===void 0)continue;let a=t.getQueryData([`run`,e]);if(a!==void 0)for(let e of Bw(a.timeline)){if(n.size>=r)break;n.has(e)||(n.add(e),i.push(e))}}return[...n].sort()})().map(e=>({queryKey:[`run`,e],queryFn:()=>vS.run(e),refetchInterval:lT})),combine:qw})}function Xz({data:e}){let t=e.status===`failed`,n=e.status===`pending`||e.status===`running`,r=!!e.childRunId,i=!!e.collapsed,a=r&&!i,o=a?eC:nC(e.kind),s=t?{rail:`bg-bad`,badge:`bg-bad/15 text-bad`,pill:`bg-bad/20 text-bad`}:n?{rail:`bg-live`,badge:`bg-live/15 text-live`,pill:`bg-live/20 text-live`}:{rail:`bg-good`,badge:`bg-good/15 text-good`,pill:`bg-good/20 text-good`};return(0,m.jsxs)(`div`,{title:a?rC.child:rC[e.kind]??e.kind,className:`group relative w-[208px] cursor-pointer overflow-hidden rounded-xl border bg-panel/95 shadow-lg backdrop-blur transition-all duration-150 hover:-translate-y-0.5 ${e.selected?`border-brand/60 ring-2 ring-brand/30`:t?`border-bad/40 hover:border-bad/60`:a?`border-violet/40 hover:border-violet/60`:`border-line hover:border-line-strong`}`,children:[(0,m.jsx)(`span`,{className:`absolute inset-y-0 left-0 w-[3px] ${s.rail} ${n?`animate-pulse`:``}`}),(0,m.jsx)(jL,{type:`target`,position:$.Left,className:`!border-0 !bg-line-strong`}),(0,m.jsxs)(`div`,{className:`py-2.5 pl-3.5 pr-3`,children:[(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsx)(`span`,{className:`grid h-5 w-5 shrink-0 place-items-center rounded ${s.badge}`,children:(0,m.jsx)(o,{width:12,height:12})}),(0,m.jsx)(`span`,{className:`truncate text-[13px] font-medium text-fg`,children:e.name}),(0,m.jsx)(`span`,{className:`ml-auto grid h-4 w-4 shrink-0 place-items-center rounded-full ${s.pill} ${n?`animate-pulse`:``}`,children:t?(0,m.jsx)(JS,{width:9,height:9}):n?(0,m.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-current`}):(0,m.jsx)(qS,{width:9,height:9})})]}),(0,m.jsxs)(`div`,{className:`mono mt-1.5 flex items-center gap-1.5 text-[10px] text-dim`,children:[r?(0,m.jsxs)(`span`,{className:`flex items-center gap-1`,children:[!i&&(0,m.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),e.childRunId&&e.onToggleChild?.(e.childRunId)},title:e.childExpanded?`Collapse child flow`:`Expand child flow inline`,className:`grid h-4 w-4 place-items-center rounded border border-violet/30 bg-violet/10 text-violet transition-colors hover:border-violet/60 hover:bg-violet/20 hover:text-violet`,children:(0,m.jsx)(`span`,{className:`inline-block text-[9px] transition-transform`,style:{transform:e.childExpanded?`rotate(90deg)`:`rotate(0deg)`},children:`▸`})}),(0,m.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),e.childRunId&&e.onOpenRun?.(e.childRunId)},title:`Open the child run`,className:`rounded border border-violet/30 bg-violet/10 px-1 text-violet transition-colors hover:border-violet/60 hover:bg-violet/20 hover:text-violet`,children:`child ↗`})]}):(0,m.jsx)(`span`,{className:`rounded border border-line px-1 text-fg-2`,children:e.kind}),e.attempts>1&&(0,m.jsxs)(`span`,{className:`flex items-center gap-0.5 text-warn`,children:[(0,m.jsx)(ZS,{width:9,height:9}),e.attempts]}),e.workerGroup&&(0,m.jsxs)(`span`,{className:`truncate`,children:[`@`,e.workerGroup]}),(0,m.jsxs)(`span`,{className:`tnum ml-auto text-fg-2`,children:[`#`,e.seq,e.duration&&(0,m.jsxs)(`span`,{className:`text-faint`,children:[` · `,e.duration]})]})]}),e.subs&&(0,m.jsxs)(`div`,{className:`mono mt-1.5 flex items-center gap-2 border-t border-line pt-1.5 text-[10px]`,children:[e.subs.ok>0&&(0,m.jsxs)(`span`,{className:`text-good`,children:[e.subs.ok,` ok`]}),e.subs.failed>0&&(0,m.jsxs)(`span`,{className:`text-bad`,children:[e.subs.failed,` failed`]}),e.subs.skipped>0&&(0,m.jsxs)(`span`,{className:`text-warn`,children:[e.subs.skipped,` skipped`]})]})]}),(0,m.jsx)(jL,{type:`source`,position:$.Right,className:`!border-0 !bg-line-strong`})]})}function Zz({data:e}){let{fan:t}=e,n=nT(t,e.runFinished),r=rT(t,e.runFinished),i=r===`failed`,a=r===`pending`||r===`running`,o=i?`bg-bad`:a?`bg-live`:`bg-good`,s=e=>`${e/Math.max(n.total,1)*100}%`;return(0,m.jsxs)(`div`,{title:`parallel fan ${t.group}`,className:`relative w-[208px] overflow-hidden rounded-xl border bg-panel/95 shadow-lg backdrop-blur ${i?`border-bad/40`:`border-violet/40`}`,children:[(0,m.jsx)(`span`,{className:`absolute inset-y-0 left-0 w-[3px] ${o} ${a?`animate-pulse`:``}`}),(0,m.jsx)(jL,{type:`target`,position:$.Left,className:`!border-0 !bg-line-strong`}),(0,m.jsxs)(`div`,{className:`py-2.5 pl-3.5 pr-3`,children:[(0,m.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,m.jsx)(`span`,{className:`grid h-5 w-5 shrink-0 place-items-center rounded bg-violet/15 text-[11px] text-violet`,children:`⑃`}),(0,m.jsx)(`span`,{className:`truncate text-[13px] font-medium text-fg`,children:t.label}),(0,m.jsx)(`span`,{className:`mono tnum ml-auto shrink-0 text-[11px] text-fg-2`,children:iT(n)})]}),(0,m.jsx)(`div`,{className:`mt-2 flex h-1.5 overflow-hidden rounded-full bg-hover`,children:dT.map(e=>(0,m.jsx)(`span`,{className:e.className,style:{width:s(n[e.key])}},e.key))}),(0,m.jsxs)(`div`,{className:`mono tnum mt-1.5 flex flex-wrap items-center gap-2 text-[10px]`,children:[dT.map(e=>n[e.key]>0?(0,m.jsxs)(`span`,{className:e.text,children:[n[e.key],` `,e.label,e.key===`skipped`&&t.failFast?` (failFast)`:``]},e.key):null),(0,m.jsxs)(`span`,{className:`ml-auto text-dim`,children:[`#`,t.firstSeq,`–`,t.lastSeq]})]})]}),(0,m.jsx)(jL,{type:`source`,position:$.Right,className:`!border-0 !bg-line-strong`})]})}function Qz({data:e}){let t=e.status===`running`||e.status===`awaiting`;return(0,m.jsxs)(`div`,{className:`s-${e.status} flex items-center gap-2 rounded-full border border-current/30 bg-panel px-3.5 py-1.5`,children:[(0,m.jsx)(jL,{type:`target`,position:$.Left,className:`!border-0 !bg-line-strong`}),(0,m.jsx)(`span`,{className:`dot ${t?`pulse`:``}`}),(0,m.jsx)(`span`,{className:`mono text-[11px] uppercase tracking-wider`,children:e.label}),(0,m.jsx)(jL,{type:`source`,position:$.Right,className:`!border-0 !bg-line-strong`})]})}var $z={step:Xz,fan:Zz,terminal:Qz};function eB(e){let t=e.events?.filter(e=>e.status);if(t&&t.length!==0)return{ok:t.filter(e=>e.status===`ok`).length,failed:t.filter(e=>e.status===`failed`).length,skipped:t.filter(e=>e.status===`skipped`).length}}function tB({run:e,timeline:t,fans:n=qz,endStatus:r,selectedKey:i,onSelect:a,onOpenRun:o,fmtDuration:s,expanded:c,onToggleChild:l}){let u=c??Kz,d=Yz((0,p.useMemo)(()=>{let e=new Set(u);for(let n of Bw(t))e.add(n);return e},[u,t])),{nodes:f,edges:h}=(0,p.useMemo)(()=>{let a=[],c=[],f=qx(e.status),p=(e,t,n)=>({id:`${e}->${t}`,source:e,target:t,style:{stroke:n?`var(--agora-bad)`:`var(--agora-line-strong)`,strokeWidth:1.5}}),m=(e,t)=>({id:`${e}=>${t}`,source:e,target:t,style:{stroke:`var(--agora-violet)`,strokeWidth:1.5,strokeDasharray:`4 3`}});function h(e,t,n,r,f,p){let h=`${f}s${e.seq}`,_=zw(e),v=_===void 0?void 0:d[_],y=v!==void 0&&v.timeline.length===1&&v.timeline[0]?{step:v.timeline[0],run:v.run}:void 0,b=y!==void 0,x=!b&&_!==void 0&&u.has(_),S=y?y.step:e,C=y?y.run:p,w=y?y.step.name:_===void 0?Xw(e):v?.run.workflow??Vw(_,p.id),T=S.status===`failed`;a.push({id:h,type:`step`,draggable:!1,position:{x:t,y:n},data:{seq:S.seq,name:w,kind:S.kind,status:S.status,workerGroup:S.workerGroup,attempts:S.attempts,duration:s(S.startedAt,S.finishedAt),subs:eB(S),selected:i===`${S.runId}#${S.seq}`,childRunId:_,onOpenRun:o,childExpanded:x,onToggleChild:l,collapsed:b,depth:r,step:S,laneRun:C}});let E=x?v:void 0;if(E){let i=g(E.timeline,E.fans??qz,r+1,t+248,n+150,`${_}:`,E.run);for(let e of i.firstIds)c.push(m(h,e));return{id:h,exits:Jz(e.name)&&i.connectors.length>0?i.connectors:[{id:h,failed:T}],nextX:Math.max(t+248,i.nextX),bottomY:Math.max(n,i.bottomY)}}return{id:h,exits:[{id:h,failed:T}],nextX:t+248,bottomY:n}}function g(e,t,n,r,i,o,s){let l=r,u=[],d=[],f=i;for(let r of eT(e,t)){if(r.kind===`summary`){let e=`${o}fan:${r.fan.group}`;a.push({id:e,type:`fan`,draggable:!1,position:{x:l,y:i},data:{fan:r.fan,runFinished:oT(s.status),depth:n}}),u.length===0&&u.push(e);for(let t of d)c.push(p(t.id,e,t.failed));d=[{id:e,failed:rT(r.fan,oT(s.status))===`failed`}],l+=248;continue}let e=r.kind===`single`?[r.step]:r.steps,t=u.length===0,m=[],g=i,_=l;for(let r of e){let e=h(r,l,g,n,o,s);t&&u.push(e.id);for(let t of d)c.push(p(t.id,e.id,t.failed));m.push(...e.exits),_=Math.max(_,e.nextX),g=e.bottomY+96}d=m,l=_,f=Math.max(f,g-96)}return{firstIds:u,connectors:d,nextX:l,bottomY:f}}a.push({id:`start`,type:`terminal`,position:{x:0,y:0},draggable:!1,data:{status:`running`,label:e.workflow}});let _=g(t,n,0,248,0,``,e);for(let e of _.firstIds)c.push({id:`start->${e}`,source:`start`,target:e});let v=r??nS(e,t);a.push({id:`end`,type:`terminal`,position:{x:Math.max(_.nextX,248),y:0},draggable:!1,data:{status:v,label:v}});let y=_.connectors.length>0?_.connectors:[{id:`start`,failed:!1}];for(let e of y)c.push({id:`${e.id}->end`,source:e.id,target:`end`,animated:f,style:{stroke:f?`var(--agora-live)`:`var(--agora-line-strong)`,strokeWidth:f?2:1.5}});return{nodes:a,edges:c}},[e,t,n,r,i,o,s,u,l,d]),g=(0,p.useCallback)((e,t)=>{if(t.type!==`step`)return;let n=t.data;n.step&&n.laneRun&&a(n.step,n.laneRun)},[a]);return(0,m.jsxs)(uz,{nodes:f,edges:h,nodeTypes:$z,onNodeClick:g,fitView:!0,fitViewOptions:{padding:.3,maxZoom:1.1},proOptions:{hideAttribution:!0},nodesConnectable:!1,nodesDraggable:!1,panOnScroll:!0,minZoom:.3,children:[(0,m.jsx)(_z,{variant:pz.Dots,gap:22,size:1,color:`var(--agora-line-strong)`}),(0,m.jsx)(Ez,{showInteractive:!1,position:`bottom-right`})]})}function nB(){return(0,m.jsxs)(`div`,{className:`flex h-full flex-col`,"aria-hidden":!0,children:[(0,m.jsxs)(`div`,{className:`flex flex-col gap-2.5 border-b border-line px-5 py-5 md:px-7`,children:[(0,m.jsx)(_f,{className:`h-5 w-56`}),(0,m.jsx)(_f,{className:`h-3 w-72`}),(0,m.jsx)(_f,{className:`h-3 w-40`})]}),(0,m.jsx)(`div`,{className:`flex-1 p-6`,children:(0,m.jsx)(_f,{className:`h-full min-h-40 w-full rounded-xl`})}),(0,m.jsxs)(`div`,{className:`h-48 border-t border-line p-4`,children:[(0,m.jsx)(_f,{className:`h-3 w-full`}),(0,m.jsx)(_f,{className:`mt-3 h-3 w-4/5`}),(0,m.jsx)(_f,{className:`mt-3 h-3 w-3/5`})]})]})}function rB({compensations:e,selKey:t,onSelect:n}){return(0,m.jsxs)(`div`,{className:`shrink-0 border-t border-warn/20 bg-sunken/20 px-7 py-3`,children:[(0,m.jsx)(`div`,{className:`mono mb-2 text-[10px] uppercase tracking-[0.18em] text-warn/80`,children:`compensation · unwind order`}),(0,m.jsx)(`ul`,{className:`flex flex-col gap-1`,children:e.map(e=>{let r=`${e.runId}#${e.seq}`;return(0,m.jsx)(`li`,{children:(0,m.jsxs)(`button`,{type:`button`,onClick:()=>n(e),className:`mono flex w-full items-center gap-2 rounded-md border px-2.5 py-1.5 text-left text-[11.5px] transition-colors ${r===t?`border-warn/50 bg-warn/15`:`border-warn/20 bg-warn/5 hover:border-warn/40`}`,children:[(0,m.jsx)(BS,{status:e.status}),(0,m.jsx)(`span`,{className:`truncate text-warn`,children:Mx(e.name)}),(0,m.jsx)(`span`,{className:`ml-auto shrink-0 text-[10px] uppercase tracking-wider text-warn/70`,children:e.status})]})},r)})})]})}var iB=[];function aB({id:e,onOpenRun:t}){let n=g(),{data:r}=Ze({queryKey:[`run`,e],queryFn:async()=>oE(n.getQueryData([`run`,e]),await vS.run(e)),refetchInterval:e=>{let t=e.state.data?.run.status;return t===`running`||t===`suspended`||t===`cancelling`?1500:!1}}),{data:i=[]}=Ze({queryKey:[`workers`],queryFn:()=>vS.workers(),refetchInterval:5e3}),{data:a=[]}=Ze({queryKey:[`runs`,``,``],queryFn:()=>vS.runs(),refetchInterval:3e3}),{data:o}=Ze({queryKey:[`topology`],queryFn:()=>vS.topology(),staleTime:1/0,refetchInterval:!1}),s=o?.role===`tenant`,c=r?.run.status===`dead`?`dlq:${e}`:void 0,{data:l}=Ze({queryKey:[`run`,c],queryFn:()=>vS.run(c),enabled:!!c,retry:!1,refetchInterval:e=>!e.state.data&&1e4}),u=()=>{n.invalidateQueries({queryKey:[`run`,e]}),n.invalidateQueries({queryKey:[`runs`]})},d=(0,p.useRef)(null);d.current?.runId!==e&&(d.current={runId:e,tail:new aE});let f=d.current.tail;(0,p.useEffect)(()=>{let t=cE(()=>n.invalidateQueries({queryKey:[`run`,e]}),1500),r=vS.streamRun(e,r=>{if(f.push(r),r.type===`step.progress`&&r.event&&r.seq!=null){let t=r.seq,i=r.event;n.setQueryData([`run`,e],e=>sE(e,t,i))}else t.call()});return()=>{t.cancel(),r()}},[e,n,f]);let h=Qe({mutationFn:()=>vS.retry(e),onSuccess:u}),_=Qe({mutationFn:t=>vS.cancel(e,t===void 0?{}:{compensate:t}),onSuccess:u}),v=Qe({mutationFn:()=>vS.continue(e),onSuccess:u}),y=Qe({mutationFn:()=>vS.redispatch(e),onSuccess:u}),[b,x]=(0,p.useState)(!1),S=Qe({mutationFn:()=>vS.republishLifecycle(e),onSuccess:u}),C=Qe({mutationFn:t=>vS.retryWithInput(e,t),onSuccess:e=>{n.invalidateQueries({queryKey:[`runs`]}),t(e.runId)}}),[w,T]=(0,p.useState)(!1),[E,D]=(0,p.useState)(``),[O,k]=(0,p.useState)(),A=()=>{D(JSON.stringify(r?.run.input??{},null,2)),k(void 0),T(!0)},j=()=>{let e;try{e=JSON.parse(E)}catch(e){k(e instanceof Error?e.message:`Invalid JSON`);return}T(!1),C.mutate(e)},[M,N]=(0,p.useState)(),[P,F]=(0,p.useState)(!1),[I,L]=(0,p.useState)(new Set),[R,z]=(0,p.useState)(240);function B(e){e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId);let t=e=>z(t=>Math.max(120,Math.min(720,t-e.movementY))),n=()=>{window.removeEventListener(`pointermove`,t),window.removeEventListener(`pointerup`,n)};window.addEventListener(`pointermove`,t),window.addEventListener(`pointerup`,n)}function ee(e){L(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}if(!r)return(0,m.jsx)(nB,{});let{run:V,timeline:te}=r,{body:ne,compensations:H}=Nx(te),re=r.fans??iB,U=re.reduce((e,t)=>e+t.size,ne.length),W=ne.length>0||re.length>0,G=Hw(r.children??[],r.childCount),K=Uw(r),ie=K.startedBy,ae=Gw(r),oe=Px(H),se=V.id.startsWith(`dlq:`),ce=se?{id:V.id.slice(4),title:`Dead-letter handler`,subtitle:`started because run ${V.id.slice(4)} was dead-lettered`,cta:`open dead run →`}:l?{id:`dlq:${V.id}`,title:`Dead-lettered`,subtitle:`this run exceeded recovery and was routed to a DLQ handler`,cta:`open DLQ handler →`}:void 0,le=H.length>0||V.status===`cancelling`?(()=>{let e=oe.failed>0?` ${oe.failed} undo${oe.failed===1?``:`s`} failed after retries — check ${oe.failed===1?`it`:`them`} below.`:``;return V.status===`cancelling`?{title:`Cancelling`,subtitle:H.length>0?`undoing completed steps in reverse before cancelling (${oe.done} of ${oe.total} done).${e}`:`a compensating cancel is undoing the saga; the run becomes cancelled when it is done.`}:oe.pending>0?{title:`Compensating`,subtitle:`undoing completed steps in reverse (${oe.done} of ${oe.total} done).${e}`}:V.status===`cancelled`?{title:`Cancelled with compensation`,subtitle:`completed steps were undone before cancelling.${e}`}:{title:`Saga compensated`,subtitle:`the run failed and its ${oe.total} completed step${oe.total===1?``:`s`} were undone in reverse.${e}`}})():void 0,ue=V.status===`failed`||V.status===`suspended`,de=V.status===`running`||V.status===`suspended`,fe=V.status===`suspended`||V.status===`running`,pe=ne.some(e=>e.status===`pending`&&e.kind===`signal`&&e.name.startsWith(`breakpoint`)),me=M?`${M.step.runId}#${M.step.seq}`:void 0,he=tS(V,{runs:a,health:i,timeline:ne}),ge=V.namespace&&V.namespace!=="default"?V.namespace:void 0,_e=bx(V.origin),ve=V.waiting??a.find(e=>e.id===V.id)?.waiting,ye=V.status===`suspended`?Hx(ne,ve):[],be=[h,_,v,y,C].find(e=>e.error)?.error;return(0,m.jsxs)(`div`,{className:`flex h-full flex-col overflow-y-auto lg:overflow-hidden`,children:[(0,m.jsxs)(`div`,{className:`flex flex-col gap-4 border-b border-line px-5 py-5 md:px-7 2xl:flex-row 2xl:items-start 2xl:justify-between`,children:[(0,m.jsxs)(`div`,{className:`min-w-0`,children:[(0,m.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1.5`,children:[(0,m.jsx)(`h2`,{className:`text-lg font-semibold tracking-tight text-fg`,children:(0,m.jsx)(`a`,{href:TS(V.workflow),className:`underline-offset-4 hover:underline`,title:`Open this workflow's page: who starts when it settles, and who starts it`,children:V.workflow})}),uE(V.id)!==void 0&&(0,m.jsx)(Ui,{variant:`alt`,size:`micro`,onClick:()=>t(uE(V.id)),className:`mono uppercase tracking-wider`,title:`Open the parent run (${uE(V.id)}) — the macro view this child belongs to`,children:`↑ parent`}),lE(V.id)!==void 0&&(0,m.jsx)(Ui,{variant:`chip`,size:`micro`,onClick:()=>t(lE(V.id)),className:`mono uppercase tracking-wider text-fg-2`,title:`This is a retry-with-input of ${lE(V.id)} — open the original run`,children:`↩ original`}),se&&(0,m.jsx)(wS,{variant:`destructive`,className:`mono py-0.5 uppercase tracking-wider`,children:`dlq`}),(0,m.jsx)(VS,{status:he.status}),he.detail&&(0,m.jsx)(`span`,{className:`mono text-[11px] s-${he.status}`,children:he.detail}),ge&&(0,m.jsx)(wS,{variant:`info`,className:`mono py-0.5`,title:`Namespace (worker pool) this run belongs to`,children:ge}),_e?(0,m.jsx)(wS,{variant:`teal`,className:`mono py-0.5`,title:`Declared by ${_e}`,children:Sx(_e)}):(0,m.jsxs)(wS,{variant:`neutral`,className:`mono py-0.5`,title:Dx,children:[`origin `,`app`]}),H.length>0&&(0,m.jsx)(wS,{variant:`warn`,className:Y(`mono py-0.5 uppercase tracking-wider`,oe.pending>0&&`pulse`),title:oe.pending>0?`compensating: ${oe.done} of ${oe.total} undone`:`${oe.total} step${oe.total===1?``:`s`} compensated`,children:oe.pending>0?`compensating`:`compensated`}),(0,m.jsxs)(wS,{variant:`neutral`,className:`mono bg-transparent py-0.5 text-dim`,children:[`v`,V.workflowVersion]}),(0,m.jsxs)(`span`,{className:`mono tnum text-[11px] text-faint`,children:[U,` `,U===1?`step`:`steps`]})]}),(0,m.jsx)(`div`,{className:`mono mt-1 truncate text-[11px] text-faint`,children:V.id}),V.tags&&V.tags.length>0&&(0,m.jsx)(`div`,{className:`mt-1.5 flex flex-wrap gap-1`,children:V.tags.map(e=>(0,m.jsxs)(wS,{variant:`neutral`,className:`mono`,children:[`#`,e]},e))}),V.searchAttributes&&Object.keys(V.searchAttributes).length>0&&(0,m.jsx)(`div`,{className:`mt-1.5 flex flex-wrap gap-1`,children:Object.entries(V.searchAttributes).map(([e,t])=>(0,m.jsxs)(wS,{variant:`violet`,className:`mono`,title:`search attribute`,children:[e,`=`,String(t)]},e))}),G.shown.length>0?(0,m.jsxs)(`div`,{className:`mt-1.5 flex flex-wrap items-center gap-1`,children:[(0,m.jsx)(`span`,{className:`text-[10px] text-faint`,children:`children:`}),G.shown.map(e=>(0,m.jsx)(Ui,{variant:`chip`,size:`micro`,onClick:()=>t(e),className:`mono px-1.5 py-0`,children:e},e)),G.more>0&&(0,m.jsxs)(`span`,{className:`mono text-[10px] text-dim`,children:[`+`,G.more,` more`]})]}):null,ie?(0,m.jsx)(tE,{source:ie,onOpenRun:t}):null,(0,m.jsx)(nE,{waitsFor:r.waitsFor,awaitedBy:r.awaitedBy,onOpenRun:t}),K.triggered.length>0&&!r.lifecycleDeliveries?(0,m.jsxs)(`div`,{className:`mt-1.5 flex flex-wrap items-center gap-1`,children:[(0,m.jsx)(`span`,{className:`text-[10px] text-faint`,children:`triggered:`}),K.triggered.map(e=>(0,m.jsx)(Ui,{variant:`chip`,size:`micro`,onClick:()=>t(e),className:`mono px-1.5 py-0`,children:e},e))]}):null,r.lifecycleDeliveries?(0,m.jsx)(yE,{deliveries:r.lifecycleDeliveries,tail:f,onOpenRun:t}):null,r.workflowLifecycle?(0,m.jsx)(`div`,{className:`mt-3`,children:(0,m.jsx)(AS,{links:r.workflowLifecycle})}):null,(0,m.jsx)(vE,{tail:f,onOpenRun:t})]}),(0,m.jsxs)(`div`,{className:`flex shrink-0 flex-wrap gap-2`,children:[(0,m.jsx)(Ui,{variant:`outline`,size:`sm`,onClick:()=>F(!0),className:`mono px-2.5 normal-case tracking-normal text-fg-2`,title:`Run input / output`,children:`{ }`}),pe&&(0,m.jsxs)(Ui,{size:`sm`,variant:`warn`,disabled:v.isPending||s,onClick:()=>v.mutate(),title:s?`Not available on a tenant deployment — resuming a breakpoint needs the control plane.`:void 0,children:[(0,m.jsx)(QS,{width:12,height:12}),`Continue`]}),(0,m.jsxs)(Ui,{size:`sm`,variant:`brand`,disabled:!ue||h.isPending,onClick:()=>h.mutate(),children:[(0,m.jsx)(XS,{width:12,height:12}),`Retry`]}),fe&&(0,m.jsxs)(Ui,{size:`sm`,variant:`info`,disabled:y.isPending,onClick:()=>y.mutate(),title:"Re-dispatch stuck `pending` remote steps — recovery for a lost step dispatch (crashed worker or dropped job)",children:[(0,m.jsx)(ZS,{width:12,height:12}),`Re-dispatch`]}),ae.length>0&&(0,m.jsxs)(Ui,{size:`sm`,variant:`info`,disabled:S.isPending,onClick:()=>{S.reset(),x(!0)},title:`Publish this run's lifecycle event again, to the subscribers it has not started yet`,children:[(0,m.jsx)(ZS,{width:12,height:12}),`Republish lifecycle event`]}),(V.status===`dead`||V.status===`failed`)&&(0,m.jsxs)(Ui,{size:`sm`,variant:`alt`,disabled:C.isPending||s,onClick:A,title:s?`Not available on a tenant deployment — fix & replay needs the control plane.`:`Edit the input and re-run as a fresh linked run`,children:[(0,m.jsx)(XS,{width:12,height:12}),`Fix & replay`]}),de&&(0,m.jsxs)(Ui,{size:`sm`,variant:`warn`,disabled:_.isPending,onClick:()=>_.mutate(!0),title:`Cancel and run saga compensations (undo completed steps in reverse)`,className:`bg-transparent`,children:[(0,m.jsx)(XS,{width:12,height:12}),`Cancel + Undo`]}),(0,m.jsxs)(Ui,{variant:`outline`,size:`sm`,className:`border-line-strong`,disabled:!de||_.isPending,onClick:()=>_.mutate(!1),children:[(0,m.jsx)(JS,{width:12,height:12}),`Cancel`]})]})]}),ce&&(0,m.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-bad/30 bg-bad/10 px-7 py-3`,children:[(0,m.jsx)(`span`,{className:`grid h-7 w-7 shrink-0 place-items-center rounded-md border border-bad/40 bg-bad/15 text-sm text-bad`,"aria-hidden":!0,children:`⚠`}),(0,m.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,m.jsx)(`div`,{className:`text-[13px] font-medium text-bad`,children:ce.title}),(0,m.jsx)(`div`,{className:`mono truncate text-[11px] text-bad/70`,children:ce.subtitle})]}),(0,m.jsx)(Ui,{size:`sm`,variant:`destructive`,onClick:()=>t(ce.id),className:`mono shrink-0 border-bad/40 bg-bad/15 px-2.5 text-[11px] normal-case tracking-normal text-bad enabled:hover:bg-bad/25`,children:ce.cta})]}),be&&(0,m.jsxs)(`div`,{role:`alert`,className:`flex items-center gap-3 border-b border-bad/30 bg-bad/10 px-7 py-3 text-[12px] text-bad`,children:[(0,m.jsx)(`span`,{className:`font-medium`,children:`Action failed:`}),(0,m.jsx)(`span`,{className:`mono min-w-0 flex-1 truncate`,children:be instanceof Error?be.message:String(be)})]}),ye.length>0&&(0,m.jsx)(wE,{runId:V.id,targets:ye,tenantPod:s,onDelivered:u}),le&&(0,m.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-warn/30 bg-warn/10 px-7 py-3`,children:[(0,m.jsx)(`span`,{className:`grid h-7 w-7 shrink-0 place-items-center rounded-md border border-warn/40 bg-warn/15 text-sm text-warn`,"aria-hidden":!0,children:`↺`}),(0,m.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,m.jsx)(`div`,{className:`text-[13px] font-medium text-warn`,children:le.title}),(0,m.jsx)(`div`,{className:`mono truncate text-[11px] text-warn/70`,children:le.subtitle})]})]}),(0,m.jsxs)(`div`,{className:`relative grid min-h-[560px] flex-1 lg:min-h-0`,style:{gridTemplateRows:W?`1fr ${R}px`:`1fr`},children:[(0,m.jsxs)(`div`,{className:`relative min-h-0`,children:[W?(0,m.jsx)(tB,{run:V,timeline:ne,fans:re,endStatus:he.status,selectedKey:me,onSelect:(e,t)=>N({step:e,run:t}),onOpenRun:t,fmtDuration:zS,expanded:I,onToggleChild:ee}):(0,m.jsx)(`div`,{className:`grid h-full place-items-center text-sm text-faint`,children:`No steps recorded yet.`}),(V.status===`failed`||V.status===`cancelled`)&&V.error&&(0,m.jsx)(`div`,{className:`mono absolute inset-x-6 bottom-6 rounded-lg border border-bad/20 bg-bad/10 px-3 py-2 text-xs text-bad backdrop-blur`,children:V.error.message})]}),W&&(0,m.jsxs)(`div`,{className:`relative min-h-0 overflow-hidden border-t border-line bg-sunken/20`,children:[(0,m.jsx)(`div`,{onPointerDown:B,className:`absolute inset-x-0 top-0 z-10 h-1.5 -translate-y-1/2 cursor-row-resize hover:bg-brand/40`,title:`Drag to resize`}),(0,m.jsx)(AT,{run:V,timeline:ne,fans:re,selectedKey:me,onSelect:(e,t)=>N({step:e,run:t}),onOpenRun:t,expanded:I,onToggleChild:ee})]}),M&&(0,m.jsx)(KT,{step:M.step,run:M.run,onClose:()=>N(void 0),onOpenRun:t}),P&&(0,m.jsx)(bE,{run:V,onClose:()=>F(!1)})]}),H.length>0&&(0,m.jsx)(rB,{compensations:H,selKey:me,onSelect:e=>N({step:e,run:V})}),(0,m.jsxs)(sC,{open:b,onOpenChange:x,title:`Republish lifecycle event`,description:`publishes ${V.id}'s ${V.status===`completed`?`completed`:`failed`} event again`,footer:S.isSuccess?(0,m.jsx)(Ui,{variant:`outline`,size:`sm`,onClick:()=>x(!1),children:`Close`}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(Ui,{variant:`outline`,size:`sm`,onClick:()=>x(!1),children:`Cancel`}),(0,m.jsx)(Ui,{size:`sm`,variant:`info`,disabled:S.isPending,onClick:()=>S.mutate(),children:`Republish`})]}),children:[S.isSuccess?(0,m.jsx)(`p`,{className:`text-[12.5px] leading-relaxed text-fg-2`,children:Kw(S.data)}):(0,m.jsxs)(`p`,{className:`text-[12.5px] leading-relaxed text-fg-2`,children:[`Starts the subscribers of this run's lifecycle event that it has not started yet:`,` `,(0,m.jsx)(`span`,{className:`mono text-fg-2`,children:ae.join(`, `)}),`. A subscriber run that already exists is not started again.`]}),S.isError&&(0,m.jsx)(`p`,{className:`mono mt-2 rounded border border-bad/25 bg-bad/10 px-2 py-1 text-[11px] text-bad`,children:S.error instanceof Error?S.error.message:`Republish failed`})]}),(0,m.jsxs)(sC,{open:w,onOpenChange:T,title:`Fix & replay`,description:`re-runs ${V.id} as a fresh linked run`,footer:(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(Ui,{variant:`outline`,size:`sm`,onClick:()=>T(!1),children:`Cancel`}),(0,m.jsx)(Ui,{size:`sm`,variant:`alt`,disabled:C.isPending,onClick:j,children:`Replay`})]}),children:[(0,m.jsx)(`label`,{className:`mono mb-1.5 block text-[10px] uppercase tracking-[0.18em] text-dim`,htmlFor:`fix-replay-input`,children:`input`}),(0,m.jsx)(`textarea`,{id:`fix-replay-input`,value:E,spellCheck:!1,onChange:e=>{D(e.target.value),k(void 0)},className:`mono h-64 w-full resize-y rounded-lg border border-line bg-sunken/40 p-3 text-[11.5px] leading-relaxed text-fg-2 focus:border-line-strong focus:outline-none`}),O&&(0,m.jsx)(`p`,{className:`mono mt-2 rounded border border-bad/25 bg-bad/10 px-2 py-1 text-[11px] text-bad`,children:O})]})]})}function oB(e){let t=new URL(window.location.href);e===void 0?t.searchParams.delete(`tenant`):t.searchParams.set(`tenant`,e),window.history.pushState(null,``,t.toString())}function sB(e,t){return t===void 0?`All organizations`:e?.tenants.find(e=>e.id===t)?.label??t}function cB(){let{data:e}=Ze({queryKey:[`tenants`],queryFn:()=>vS.tenants(),staleTime:6e4,refetchInterval:!1});return e}function lB(){let e=cB(),t=g(),[n,r]=(0,p.useState)(!1),[i,a]=(0,p.useState)(``),o=Ux();if(!e||e.mode===`off`)return null;let s=`mono flex items-center gap-1.5 rounded-md border border-line bg-panel px-2 py-1 text-[11px] text-fg-2`;if(e.mode===`none`)return(0,m.jsxs)(`span`,{className:s,title:`Choose an organization in the app to see its runs`,children:[(0,m.jsx)(`span`,{className:`text-dim`,children:`Organization`}),` none`]});if(e.mode===`fixed`)return(0,m.jsxs)(`span`,{className:s,"data-tenant-picker":`fixed`,children:[(0,m.jsx)(`span`,{className:`text-dim`,children:`Organization`}),e.tenants[0]?.label??e.tenants[0]?.id]});let c=async e=>{r(!1),a(``),await vS.selectTenant(e??`*`).catch(()=>void 0),oB(e),await t.invalidateQueries({predicate:e=>e.queryKey[0]!==`tenants`})},l=i.trim().toLowerCase(),u=e.tenants.filter(e=>l===``||e.label.toLowerCase().includes(l)||e.id.toLowerCase().includes(l));return(0,m.jsxs)(IC,{open:n,onOpenChange:r,children:[(0,m.jsxs)(LC,{className:`${s} hover:border-line-strong`,"aria-label":`Organization`,"data-tenant-picker":`pick`,children:[(0,m.jsx)(`span`,{className:`text-dim`,children:`Organization`}),sB(e,o)]}),(0,m.jsxs)(RC,{align:`end`,className:`w-64 gap-1 p-1`,children:[(0,m.jsx)(`input`,{value:i,onChange:e=>a(e.target.value),placeholder:`search organizations…`,"aria-label":`search organizations`,className:`mb-1 w-full rounded border border-line bg-transparent px-2 py-1 text-xs text-fg outline-none`}),(0,m.jsxs)(`div`,{role:`listbox`,"aria-label":`Organizations`,className:`max-h-72 overflow-y-auto`,children:[e.all&&(0,m.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":o===void 0,onClick:()=>void c(void 0),className:`w-full rounded px-2 py-1.5 text-left text-xs text-fg hover:bg-panel`,children:`All organizations`}),u.map(e=>(0,m.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":o===e.id,onClick:()=>void c(e.id),className:`flex w-full flex-col rounded px-2 py-1.5 text-left text-xs text-fg hover:bg-panel`,children:[(0,m.jsx)(`span`,{className:`truncate`,children:e.label}),e.label!==e.id&&(0,m.jsx)(`span`,{className:`mono truncate text-[10px] text-dim`,children:e.id})]},e.id)),u.length===0&&(0,m.jsx)(`p`,{className:`px-2 py-1.5 text-xs text-dim`,children:`No match.`})]})]})]})}function uB(){return(0,m.jsx)(`ul`,{className:`divide-y divide-line-soft`,"aria-hidden":!0,children:[`a`,`b`,`c`,`d`,`e`,`f`].map(e=>(0,m.jsxs)(`li`,{className:`flex flex-col gap-2 px-4 py-3`,children:[(0,m.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,m.jsx)(_f,{className:`h-3.5 w-32`}),(0,m.jsx)(_f,{className:`h-3 w-16`})]}),(0,m.jsx)(_f,{className:`h-2.5 w-48`})]},e))})}function dB({r:e,allRuns:t,health:n,selected:r,onSelect:i,onSelectTag:a,onSelectNamespace:o,onSelectOrigin:s,tenantPicker:c}){let l=tS(e,{runs:t,health:n}),u=e.namespace&&e.namespace!=="default"?e.namespace:void 0,d=bx(e.origin),f=c?.mode===`pick`&&Ux()===void 0;return(0,m.jsxs)(`button`,{type:`button`,onClick:()=>i(e.id),className:`flex w-full flex-col gap-1 px-4 py-3 text-left transition-colors ${r===e.id?`bg-hover`:`hover:bg-hover/50`}`,children:[(0,m.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,m.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,m.jsx)(`span`,{className:`truncate text-sm font-medium text-fg`,children:e.workflow}),u&&(0,m.jsx)(wS,{variant:`info`,className:`mono shrink-0 cursor-pointer px-1 text-[9px] hover:border-info/60 hover:text-info`,title:`Namespace (worker pool) — click to show only ${u}`,onClick:e=>{e.stopPropagation(),o(u)},children:u}),f&&(0,m.jsx)(wS,{variant:`info`,className:`shrink-0 px-1 text-[9px]`,title:`Organization this run belongs to`,"data-run-org":``,children:e.tenantId?sB(c,e.tenantId):`no organization`}),d&&(0,m.jsx)(wS,{variant:`teal`,className:`mono shrink-0 cursor-pointer px-1 text-[9px] hover:border-teal/60 hover:text-teal`,title:`Declared by ${d} — click to show only this library's runs`,onClick:e=>{e.stopPropagation(),s({kind:`origin`,origin:d})},children:Sx(d)}),e.id.startsWith(`dlq:`)&&(0,m.jsx)(wS,{variant:`destructive`,className:`mono shrink-0 px-1 text-[9px] uppercase tracking-wider`,children:`dlq`})]}),(0,m.jsx)(VS,{status:l.status})]}),l.detail&&(0,m.jsx)(`div`,{className:`mono truncate text-[11px] s-${l.status}`,children:l.detail}),(0,m.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,m.jsx)(`span`,{className:`mono truncate text-[11px] text-faint`,children:e.id}),(0,m.jsx)(`span`,{className:`shrink-0 text-[11px] text-faint`,children:RS(e.updatedAt)})]}),e.tags&&e.tags.length>0&&(0,m.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.tags.map(e=>(0,m.jsxs)(`span`,{onClick:t=>{t.stopPropagation(),a(e)},className:Y(CS({variant:`neutral`}),`mono h-auto cursor-pointer py-0 text-[10px] hover:border-line-strong hover:text-fg`),children:[`#`,e]},e))})]})}var fB=88;function pB({runs:e,allRuns:t,health:n,loading:r,selected:i,onSelect:a,onSelectTag:o,onSelectNamespace:s,onSelectOrigin:c,emptyNotice:l,hasMore:u,loadingMore:d,onLoadMore:f,tenantPicker:h}){let g=(0,p.useRef)(null),_=(0,p.useCallback)(t=>e[t]?.id??t,[e]),v=ww({count:e.length,getScrollElement:()=>g.current,estimateSize:()=>fB,getItemKey:_,overscan:10,initialRect:{width:340,height:480}}),y=v.getVirtualItems(),b=y.length>0?y[y.length-1]?.index??-1:-1;return(0,p.useEffect)(()=>{e.length!==0&&(b<e.length-1||u&&!d&&f?.())},[b,e.length,u,d,f]),r&&e.length===0?(0,m.jsx)(uB,{}):e.length===0?(0,m.jsx)(hC,{className:`p-6`,icon:(0,m.jsx)(kt,{}),title:h?.mode===`none`?`No organization picked`:`No runs here`,description:(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`span`,{className:`block`,children:h?.mode===`none`?`Choose an organization to see its data.`:l.message}),l.unclassified!==void 0&&(0,m.jsxs)(`span`,{className:`mt-2 block text-[12px]`,children:[l.unclassified,` run`,l.unclassified===1?``:`s`,` here`,` `,l.unclassified===1?`is`:`are`,` the app's own (no package origin), so no package filter can match `,l.unclassified===1?`it`:`them`,`.`]})]}),action:l.unclassified===void 0?void 0:(0,m.jsx)(Ui,{variant:`chip`,size:`micro`,className:`mono`,title:Dx,onClick:()=>c({kind:`unknown`}),children:`show app runs`})}):(0,m.jsxs)(`div`,{ref:g,className:`h-full overflow-auto`,"data-testid":`runs-list-scroll`,children:[(0,m.jsx)(`ul`,{className:`relative divide-y divide-line-soft`,style:{height:v.getTotalSize()},children:y.map(r=>{let l=e[r.index];return l?(0,m.jsx)(`li`,{ref:v.measureElement,"data-index":r.index,className:`absolute inset-x-0 top-0`,style:{transform:`translateY(${r.start}px)`},children:(0,m.jsx)(dB,{r:l,allRuns:t,health:n,selected:i,onSelect:a,onSelectTag:o,onSelectNamespace:s,onSelectOrigin:c,tenantPicker:h})},l.id):null})}),d&&(0,m.jsx)(`div`,{className:`mono px-4 py-2 text-center text-[11px] text-faint`,children:`loading more…`})]})}function mB(){let[e,t]=(0,p.useState)(`all`),[n,r]=(0,p.useState)([]),[i,a]=(0,p.useState)([]),[o,s]=(0,p.useState)([]),[c,l]=(0,p.useState)([]),[u,d]=(0,p.useState)(yx);return{status:e,setStatus:t,workflow:n,setWorkflow:r,tag:i,setTag:a,attr:o,setAttr:s,namespace:c,setNamespace:l,origin:u,setOrigin:d}}function hB({scope:e,value:t,onChange:n}){let{data:r=[]}=Ze({queryKey:[`run-values`,`status`,e],queryFn:()=>vS.values(`status`,e),refetchInterval:5e3}),i={};for(let e of r)e.value!==null&&(i[e.value]=e.count);let a=Object.values(i).reduce((e,t)=>e+t,0),o=(e,r)=>(0,m.jsxs)(Ui,{variant:`chip`,size:`chip`,"aria-pressed":t===e,onClick:()=>n(e),className:`shrink-0 rounded-md`,children:[e!==`all`&&(0,m.jsx)(BS,{status:e}),(0,m.jsx)(`span`,{className:`uppercase tracking-wide`,children:e}),(0,m.jsx)(`span`,{className:`mono tnum text-faint`,children:r})]},e);return(0,m.jsxs)(bS,{label:`filter runs by status`,className:`-mx-4 flex-nowrap overflow-x-auto px-4 pb-1 sm:mx-0 sm:flex-wrap sm:overflow-visible sm:px-0 sm:pb-0`,children:[o(`all`,a),LS.map(e=>o(e,i[e]??0))]})}function gB({filters:e,selected:t,onSelect:n,onOpenRun:r,tenantPicker:i}){let{status:a,setStatus:o,workflow:s,setWorkflow:c,tag:l,setTag:u,attr:d,setAttr:f,namespace:h,setNamespace:_,origin:v,setOrigin:y}=e,b=g(),x=d,[S,C]=(0,p.useState)(()=>typeof window>`u`||window.innerWidth>=1024),{data:w,dataUpdatedAt:T,isPending:E,fetchNextPage:D,hasNextPage:O,isFetchingNextPage:k}=$e({queryKey:[`runs`,a,s,l,x.join(`|`),h],queryFn:({pageParam:e})=>vS.runsPage(a===`all`?void 0:a,l.length?l:void 0,x.length?x:void 0,{namespace:h.length?h:void 0,workflow:s.length?s:void 0},{page:e,size:100}),initialPageParam:1,getNextPageParam:e=>{let{currentPage:t,lastPage:n}=e.meta;return t<n?t+1:void 0},refetchInterval:3e3}),A=(0,p.useMemo)(()=>w?.pages.flatMap(e=>e.data)??[],[w]),j=w?.pages[0]?.meta.total;(0,p.useEffect)(()=>{T>0&&b.invalidateQueries({queryKey:[`run-values`,`status`]})},[T,b]);let{data:M=[]}=Ze({queryKey:[`workers`],queryFn:()=>vS.workers(),refetchInterval:5e3}),[N,P]=(0,p.useState)(void 0),[F,I]=(0,p.useState)(void 0),L=Qe({mutationFn:e=>vS.bulk(e,{status:a===`all`?void 0:a,workflow:s.length?s:void 0,tag:l.length?l:void 0,attr:x.length?x:void 0,namespace:h.length?h:void 0,origin:v.kind===`origin`?v.origin:void 0}),onSuccess:(e,t)=>{I({action:t,...e}),b.invalidateQueries({queryKey:[`runs`]})}});(0,p.useEffect)(()=>{if(!F||F.matched>=500)return;let e=setTimeout(()=>I(void 0),6e3);return()=>clearTimeout(e)},[F]);let R=Ex(A,v),z=Ax(A),B=a!==`all`||s.length>0||l.length>0||h.length>0||x.length>0||v.kind!==`all`,ee=s.length+l.length+h.length+x.length+(v.kind===`all`?0:1),V=a===`all`?void 0:a,te=(0,p.useMemo)(()=>({status:V,tag:l,namespace:h,attr:d}),[V,l,h,d]),ne=(0,p.useMemo)(()=>({status:V,workflow:s,namespace:h,attr:d}),[V,s,h,d]),H=(0,p.useMemo)(()=>({status:V,workflow:s,tag:l,attr:d}),[V,s,l,d]),re=(0,p.useMemo)(()=>({status:V,workflow:s,tag:l,namespace:h}),[V,s,l,h]),U=(0,p.useMemo)(()=>({workflow:s,tag:l,namespace:h,attr:d}),[s,l,h,d]),W=(0,p.useCallback)(e=>u(t=>t.includes(e)?t:[...t,e]),[u]),G=(0,p.useCallback)(e=>_(t=>t.includes(e)?t:[...t,e]),[_]),K=v.kind===`unknown`?`Bulk actions cannot be scoped to the app's own runs — runs with no package origin have no server-side filter. Retry or cancel them from their own run view.`:void 0,ie=(0,p.useMemo)(()=>[...new Set(A.filter(e=>tS(e,{runs:A,health:M}).status===`no-worker`).map(e=>e.workflow))],[A,M]),ae=`${a}|${s.join(`|`)}|${l.join(`|`)}|${x.join(`,`)}|${h.join(`|`)}|${wx(v)}`,oe=[a===`all`?void 0:`status ${a}`,s.length>0?`workflow ${s.join(`, `)}`:void 0,l.length>0?`tag ${l.join(`, `)}`:void 0,h.length>0?`namespace ${h.join(`, `)}`:void 0,x.length>0?`attr ${x.join(` · `)}`:void 0,v.kind===`origin`?`origin ${Sx(v.origin)}`:void 0].filter(e=>e!==void 0).join(` · `)||`no filter — every run`;return(0,m.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[ie.length>0&&(0,m.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-warn/30 bg-warn/10 px-4 py-2 text-[12px] text-warn md:px-6`,children:[(0,m.jsx)(`span`,{className:`dot s-no-worker shrink-0`,"aria-hidden":!0}),(0,m.jsxs)(`span`,{children:[`Runs waiting on handlers with no live worker:`,` `,(0,m.jsx)(`span`,{className:`mono font-medium`,children:ie.join(`, `)}),`. Start a worker to unblock.`]})]}),(0,m.jsxs)(`div`,{className:`flex flex-col gap-3 px-4 pt-5 pb-3 md:px-6 md:pt-6`,children:[(0,m.jsxs)(`div`,{className:`flex flex-wrap items-end justify-between gap-2`,children:[(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`h1`,{className:`text-lg font-bold tracking-[0.01em] text-fg`,children:`Runs`}),(0,m.jsx)(`p`,{className:`mt-1 text-xs text-faint`,children:j===void 0?`Every workflow run, live.`:`${j} ${B?`matching`:``} run${j===1?``:`s`} · live`})]}),(0,m.jsxs)(Ui,{variant:`outline`,size:`sm`,"aria-expanded":S,"aria-controls":`runs-filters`,onClick:()=>C(e=>!e),children:[(0,m.jsx)(Tt,{}),`Filters`,ee>0&&(0,m.jsx)(`span`,{className:`mono tnum rounded bg-primary/15 px-1 text-[10px] text-brand`,children:ee})]})]}),(0,m.jsx)(hB,{scope:U,value:a,onChange:o})]}),(0,m.jsx)(`div`,{className:`min-h-0 flex-1 px-0 pb-0 md:px-6 md:pb-6`,children:(0,m.jsxs)(`div`,{className:`grid h-full min-h-0 overflow-hidden border-t border-border bg-card agora-surface md:rounded-lg md:border lg:grid-cols-[minmax(300px,380px)_1fr]`,children:[(0,m.jsxs)(`aside`,{"aria-label":`Runs`,className:Y(`flex min-h-0 flex-col border-border lg:border-r`,t!==void 0&&`hidden lg:flex`),children:[(0,m.jsxs)(Wi,{label:`Filters`,children:[S&&(0,m.jsxs)(`div`,{id:`runs-filters`,className:`border-b border-border p-2`,children:[(0,m.jsx)(Nw,{field:`workflow`,scope:te,glyph:`ƒ`,label:`filter by workflow`,placeholder:`filter by workflow…`,value:s,onChange:c,title:`Workflow handler names (WorkflowRun.workflow). Several match ANY of them.`}),(0,m.jsx)(`div`,{className:`mt-1.5`,children:(0,m.jsx)(Nw,{field:`tag`,scope:ne,glyph:`#`,label:`filter by tag`,placeholder:`filter by tag…`,value:l,onChange:u,title:`Tags carried by a run (WorkflowRun.tags). Several match ANY of them.`})}),(0,m.jsx)(`div`,{className:`mt-1.5 flex`,children:(0,m.jsx)(iE,{tags:l,onChange:u})}),(0,m.jsx)(`div`,{className:`mt-1.5`,children:(0,m.jsx)(Nw,{field:`namespace`,scope:H,glyph:`@`,label:`filter by namespace`,placeholder:`filter by namespace…`,value:h,onChange:_,title:`Namespace: the worker pool a run belongs to (WorkflowRun.namespace). None selected shows every namespace.`})}),(0,m.jsx)(Lw,{value:d,onChange:f,scope:re})]}),(0,m.jsx)(Rw,{runs:A,value:v,onChange:y})]}),B&&R.length>0&&(0,m.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-1.5`,children:[(0,m.jsxs)(`span`,{className:`mono min-w-0 truncate text-[10px] text-dim`,children:[R.length,` `,a===`all`?``:a,` `,s.length>0&&`ƒ${s.join(`, `)}`,l.length>0&&` #${l.join(`, `)}`,h.length>0&&` @${h.join(`, `)}`,v.kind===`origin`&&` ⬡${Sx(v.origin)}`,v.kind===`unknown`&&` ⬡app`,x.length>0&&` ⛃${x.length}`]}),(0,m.jsx)(Ui,{variant:`brand`,size:`micro`,disabled:L.isPending||K!==void 0,title:K,onClick:()=>P(`retry`),className:`mono ml-auto`,children:`retry all`}),(0,m.jsx)(Ui,{variant:`destructive`,size:`micro`,disabled:L.isPending||K!==void 0,title:K,onClick:()=>P(`cancel`),className:`mono`,children:`cancel all`})]}),(0,m.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,m.jsx)(Wi,{label:`Run list`,resetKeys:[ae],children:(0,m.jsx)(pB,{tenantPicker:i,runs:R,allRuns:A,health:M,loading:E,selected:t,onSelect:n,onSelectTag:W,onSelectNamespace:G,onSelectOrigin:y,hasMore:O,loadingMore:k,onLoadMore:D,emptyNotice:jx({anyFilter:B,origin:v,unknownCount:z})},ae)})})]}),(0,m.jsx)(`section`,{"aria-label":`Run detail`,className:Y(`min-h-0 min-w-0`,t===void 0&&`hidden lg:block`),children:t?(0,m.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,m.jsx)(`div`,{className:`border-b border-border px-3 py-2 lg:hidden`,children:(0,m.jsxs)(Ui,{variant:`ghost`,size:`sm`,onClick:()=>n(void 0),children:[(0,m.jsx)(_t,{}),`All runs`]})}),(0,m.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,m.jsx)(Wi,{label:`Run detail`,resetKeys:[t],children:(0,m.jsx)(aB,{id:t,onOpenRun:r},t)})})]}):(0,m.jsx)(hC,{className:`h-full`,icon:(0,m.jsx)(IS,{className:`size-6`}),title:`No run selected`,description:`Select a run to see its timeline, steps and spans.`})})]})}),(0,m.jsx)(sC,{open:N!==void 0,onOpenChange:e=>{e||P(void 0)},title:N===`cancel`?`Cancel all matching runs`:`Retry all matching runs`,description:oe,footer:(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(Ui,{size:`sm`,variant:`outline`,onClick:()=>P(void 0),children:`Back`}),(0,m.jsx)(Ui,{size:`sm`,variant:N===`cancel`?`destructive`:`brand`,disabled:L.isPending,onClick:()=>{N&&L.mutate(N),P(void 0)},children:N===`cancel`?`cancel all`:`retry all`})]}),children:(0,m.jsxs)(`p`,{className:`text-[12.5px] leading-relaxed text-fg-2`,children:[`This `,N===`cancel`?`cancels`:`retries`,` `,(0,m.jsx)(`em`,{children:`every`}),` run matching the filter above on the server — including matches beyond the rows loaded on screen. The server acts on at most `,(0,m.jsx)(`span`,{className:`mono tnum text-fg`,children:500}),` matches per call.`]})}),L.error&&(0,m.jsxs)(`div`,{role:`alert`,className:`fixed bottom-4 left-1/2 z-50 -translate-x-1/2 rounded-md border border-bad/40 bg-bad/15 px-4 py-2 text-[12px] text-bad`,children:[`Bulk action failed:`,` `,L.error instanceof Error?L.error.message:String(L.error)]}),F&&(0,m.jsxs)(`output`,{className:`agora-rise fixed right-4 bottom-4 z-50 flex max-w-sm items-start gap-3 rounded-lg border border-border bg-popover px-4 py-3 text-left shadow-2xl`,children:[(0,m.jsxs)(`div`,{className:`min-w-0 flex-1 text-[12px]`,children:[(0,m.jsxs)(`div`,{className:`text-fg`,children:[`Bulk `,F.action,`: `,(0,m.jsx)(`span`,{className:`mono tnum`,children:F.applied}),` of`,` `,(0,m.jsx)(`span`,{className:`mono tnum`,children:F.matched}),` matched`,` `,F.matched===1?`run`:`runs`,` `,F.action===`cancel`?`cancelled`:`retried`,`.`]}),F.matched>=500&&(0,m.jsxs)(`div`,{className:`mt-1 text-[11px] text-warn`,children:[`Matched the `,500,`-run server cap — only the first `,500,` were affected. Run the action again to continue.`]})]}),(0,m.jsx)(Ui,{variant:`ghost`,size:`icon-xs`,"aria-label":`dismiss`,onClick:()=>I(void 0),children:(0,m.jsx)(JS,{width:12,height:12})})]})]})}function _B({label:e,children:t,side:n=`bottom`,align:r=`center`,suppressed:i}){return(0,m.jsxs)(lp,{disabled:i??!1,children:[(0,m.jsx)(up,{render:t}),(0,m.jsx)(dp,{side:n,align:r,className:`max-w-[300px] whitespace-pre-line text-left`,children:e})]})}function vB(e){let t=(e,t)=>`${Number.isInteger(e)?e:e.toFixed(1)}${t}`;if(e<1e3)return`${e}ms`;let n=e/1e3;if(n<60)return t(n,`s`);let r=n/60;if(r<60)return t(r,`m`);let i=r/60;return i<24?t(i,`h`):t(i/24,`d`)}function yB(e){return e.cron?e.cron:e.everyMs==null?`—`:`every ${vB(e.everyMs)}`}function bB(e,t=Date.now()){let n=e-t;if(n<=0)return`due now`;let r=Math.round(n/1e3);if(r<60)return`in ${r}s`;let i=Math.round(r/60);if(i<60)return`in ${i}m`;let a=Math.round(i/60);return a<24?`in ${a}h`:`in ${Math.round(a/24)}d`}var xB=`grid grid-cols-[minmax(0,1.2fr)_minmax(0,1fr)_minmax(0,0.8fr)_minmax(0,0.8fr)_80px_minmax(0,1.3fr)_176px] items-center gap-3 px-4`;function SB({s:e,onOpenRun:t}){let n=g(),r=()=>n.invalidateQueries({queryKey:[`schedules`]}),i=Qe({mutationFn:t=>vS.setSchedulePaused(e.key,t),onSuccess:r}),a=Qe({mutationFn:()=>vS.triggerSchedule(e.key),onSuccess:e=>{r(),n.invalidateQueries({queryKey:[`runs`]}),t(e.runId)}}),o=e.namespace&&e.namespace!=="default"?e.namespace:void 0;return(0,m.jsxs)(`li`,{className:Y(xB,`py-3`),children:[(0,m.jsxs)(`div`,{className:`min-w-0`,children:[(0,m.jsx)(`div`,{className:`mono truncate text-[12px] text-fg`,children:e.key}),e.overlap===`skip`&&(0,m.jsx)(`div`,{className:`mono text-[9px] uppercase tracking-wider text-faint`,children:`no overlap`})]}),(0,m.jsxs)(`div`,{className:`mono flex min-w-0 items-center gap-1.5 text-[11px] text-fg-2`,children:[(0,m.jsx)(`span`,{className:`truncate`,children:e.workflow}),o&&(0,m.jsx)(wS,{variant:`info`,className:`mono shrink-0 px-1 text-[9px]`,children:o})]}),(0,m.jsx)(`span`,{className:`mono truncate text-[11px] text-fg-2`,title:yB(e),children:yB(e)}),(0,m.jsx)(`span`,{className:`mono truncate text-[10px] text-dim`,children:e.timezone??`UTC`}),(0,m.jsx)(`span`,{className:Y(`mono tnum text-[11px]`,e.paused?`text-faint`:`text-fg-2`),title:new Date(e.nextFireAt).toISOString(),children:e.paused?`—`:bB(e.nextFireAt)}),(0,m.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5`,children:[e.lastRunStatus?(0,m.jsx)(`button`,{type:`button`,onClick:()=>t(e.currentWindowRunId),title:`Open the current window's run (${e.currentWindowRunId})`,className:`cursor-pointer`,children:(0,m.jsxs)(wS,{variant:`bare`,className:`s-${e.lastRunStatus} text-[11px] hover:underline`,children:[(0,m.jsx)(`span`,{className:`dot s-${e.lastRunStatus}`,"aria-hidden":!0}),e.lastRunStatus]})}):(0,m.jsx)(`span`,{className:`mono text-[11px] text-faint`,title:`The current window has no run yet`,children:`—`}),e.paused&&(0,m.jsx)(_B,{label:e.pausedAtRuntime?`Paused by a runtime override (from this console) — it survives until resumed, overriding the config.`:`Paused in the schedule config.`,children:(0,m.jsxs)(wS,{variant:`warn`,className:`mono min-w-0 py-0.5 uppercase tracking-wider`,children:[`paused`,e.pausedAtRuntime?` · runtime override`:``]})})]}),(0,m.jsxs)(`span`,{className:`flex shrink-0 items-center justify-end gap-2`,children:[(0,m.jsx)(Ui,{variant:e.paused?`outline`:`warn`,size:`micro`,disabled:i.isPending,onClick:()=>i.mutate(!e.paused),className:`mono uppercase tracking-wider`,title:e.paused?`Resume this schedule fleet-wide (clears the runtime pause)`:`Pause this schedule fleet-wide, at runtime — the config stays untouched`,children:e.paused?`Resume`:`Pause`}),(0,m.jsxs)(Ui,{variant:`brand`,size:`micro`,disabled:a.isPending,onClick:()=>a.mutate(),className:`mono uppercase tracking-wider`,title:`Fire the current window now and open its run`,children:[(0,m.jsx)(QS,{width:10,height:10}),`Run now`]})]}),(i.error||a.error)&&(0,m.jsx)(`div`,{role:`alert`,className:`mono col-span-full text-[11px] text-bad`,children:(()=>{let e=i.error??a.error;return`Action failed: ${e instanceof Error?e.message:String(e)}`})()})]})}function CB({onOpenRun:e}){let{data:t,error:n,isPending:r}=Ze({queryKey:[`schedules`],queryFn:()=>vS.schedules(),refetchInterval:5e3,retry:!1});return(0,m.jsxs)(qb,{children:[(0,m.jsx)(yS,{title:`Schedules`,description:t?`${t.length} ticked schedule${t.length===1?``:`s`} · pause/resume is a fleet-wide runtime override · "Run now" fires the current window`:`Ticked schedules, their cadence and their current window.`}),(0,m.jsx)(Wi,{label:`Schedules`,children:(0,m.jsx)(wB,{schedules:t,error:n,loading:r,onOpenRun:e})})]})}function wB({schedules:e,error:t,loading:n,onOpenRun:r}){return t?(0,m.jsx)(SS,{title:`Ticked schedules`,flush:!0,children:(0,m.jsx)(hC,{icon:(0,m.jsx)(Ot,{}),title:`Schedules are not available here.`,description:(0,m.jsxs)(`span`,{className:`mono text-[11px]`,children:["This deployment's server has no runtime schedule control (a tenant topology, or a server older than the endpoint) — `GET /schedules` answered: ",t.message]})})}):(0,m.jsx)(SS,{title:`Ticked schedules`,description:`key · workflow · cadence · next fire · current window`,flush:!0,children:(0,m.jsx)(`div`,{className:`overflow-x-auto`,children:(0,m.jsxs)(`div`,{className:`min-w-[860px]`,children:[(0,m.jsxs)(`div`,{className:Y(xB,`border-b border-border py-2.5 text-[10.5px] font-medium uppercase tracking-[0.14em] text-dim`),children:[(0,m.jsx)(`span`,{children:`key`}),(0,m.jsx)(`span`,{children:`workflow`}),(0,m.jsx)(`span`,{children:`cadence`}),(0,m.jsx)(`span`,{children:`timezone`}),(0,m.jsx)(`span`,{children:`next fire`}),(0,m.jsx)(`span`,{children:`last run`}),(0,m.jsx)(`span`,{className:`text-right`,children:`actions`})]}),n||!e?(0,m.jsx)(`ul`,{className:`divide-y divide-line-soft`,"aria-hidden":!0,children:[`a`,`b`,`c`,`d`].map(e=>(0,m.jsxs)(`li`,{className:Y(xB,`py-3.5`),children:[(0,m.jsx)(_f,{className:`h-3 w-32`}),(0,m.jsx)(_f,{className:`h-3 w-24`}),(0,m.jsx)(_f,{className:`h-3 w-20`}),(0,m.jsx)(_f,{className:`h-3 w-12`}),(0,m.jsx)(_f,{className:`h-3 w-12`}),(0,m.jsx)(_f,{className:`h-3 w-16`}),(0,m.jsx)(_f,{className:`ml-auto h-6 w-28`})]},e))}):e.length===0?(0,m.jsx)(hC,{icon:(0,m.jsx)(Ot,{}),title:`No schedules registered.`,description:`Declare a schedule on a workflow and it shows up here once the ticker runs.`}):(0,m.jsx)(`ul`,{className:`divide-y divide-line-soft`,children:e.map(e=>(0,m.jsx)(SB,{s:e,onOpenRun:r},e.key))})]})})})}function TB({className:e,...t}){return(0,m.jsx)(`div`,{"data-slot":`table-container`,className:`relative w-full overflow-x-auto`,children:(0,m.jsx)(`table`,{"data-slot":`table`,className:Y(`w-full caption-bottom text-sm`,e),...t})})}function EB({className:e,...t}){return(0,m.jsx)(`thead`,{"data-slot":`table-header`,className:Y(`[&_tr]:border-b`,e),...t})}function DB({className:e,...t}){return(0,m.jsx)(`tbody`,{"data-slot":`table-body`,className:Y(`[&_tr:last-child]:border-0`,e),...t})}function OB({className:e,...t}){return(0,m.jsx)(`tr`,{"data-slot":`table-row`,className:Y(`border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted`,e),...t})}function kB({className:e,...t}){return(0,m.jsx)(`th`,{"data-slot":`table-head`,className:Y(`h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0`,e),...t})}function AB({className:e,...t}){return(0,m.jsx)(`td`,{"data-slot":`table-cell`,className:Y(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0`,e),...t})}var jB={sm:`hidden sm:table-cell`,md:`hidden md:table-cell`,lg:`hidden lg:table-cell`};function MB({columns:e,rows:t,rowKey:n,onRowClick:r,loading:i,skeletonRows:a=5,empty:o,className:s,label:c}){let l=e=>Y(e.hideBelow&&jB[e.hideBelow],e.align===`right`&&`text-right`,e.className);return!i&&t&&t.length===0&&o?(0,m.jsx)(m.Fragment,{children:o}):(0,m.jsxs)(TB,{className:s,"aria-label":c,children:[(0,m.jsx)(EB,{children:(0,m.jsx)(OB,{className:`border-border hover:bg-transparent`,children:e.map(e=>(0,m.jsx)(kB,{className:Y(`h-auto px-3 py-2 text-[10px] font-semibold uppercase tracking-[0.12em] text-faint`,l(e)),children:e.header},e.id))})}),(0,m.jsx)(DB,{children:i||!t?Array.from({length:a},(t,n)=>(0,m.jsx)(OB,{"aria-hidden":!0,className:`hover:bg-transparent`,children:e.map((e,t)=>(0,m.jsx)(AB,{className:Y(`px-3 py-3`,l(e)),children:(0,m.jsx)(_f,{className:Y(`h-3`,t===0?`w-36`:`w-16`)})},e.id))},`s${n}`)):t.map(t=>(0,m.jsx)(OB,{className:Y(`border-border hover:bg-hover`,r&&`cursor-pointer`),...r?{onClick:()=>r(t),onKeyDown:e=>{e.key===`Enter`&&r(t)},tabIndex:0}:{},children:e.map(e=>(0,m.jsx)(AB,{className:Y(`px-3 py-2.5 text-[12.5px] text-dim`,l(e)),children:e.cell(t)},e.id))},n(t)))})]})}var NB={default:`text-fg`,brand:`text-brand`,good:`text-good`,warn:`text-warn`,bad:`text-bad`,info:`text-info`,violet:`text-violet`};function PB({label:e,value:t,caption:n,tone:r=`default`,className:i}){return(0,m.jsxs)(xS,{className:Y(`agora-surface agora-rise rounded-lg border border-border shadow-none ring-0 gap-0 px-[18px] pt-4 pb-3.5`,i),children:[(0,m.jsx)(`div`,{className:`mb-2.5 text-[10px] font-semibold uppercase tracking-[0.12em] text-faint`,children:e}),(0,m.jsx)(`div`,{className:Y(`mono tnum text-[26px] font-semibold leading-none tracking-[-0.02em]`,NB[r]),children:t}),n&&(0,m.jsx)(`div`,{className:`mono mt-2 truncate text-[10.5px] text-faint`,children:n})]})}function FB({children:e,className:t}){return(0,m.jsx)(`div`,{className:Y(`grid grid-cols-2 gap-3 md:grid-cols-[repeat(auto-fit,minmax(160px,1fr))]`,t),children:e})}function IB({count:e=6}){return(0,m.jsx)(FB,{children:Array.from({length:e},(e,t)=>`metric-skeleton-${t}`).map(e=>(0,m.jsxs)(xS,{className:`agora-surface agora-rise rounded-lg border border-border shadow-none ring-0 gap-2.5 px-[18px] pt-4 pb-3.5`,"aria-hidden":!0,children:[(0,m.jsx)(_f,{className:`h-2.5 w-20`}),(0,m.jsx)(_f,{className:`h-7 w-12`}),(0,m.jsx)(_f,{className:`h-2.5 w-28`})]},e))})}function LB(e){let t=e.lastIndexOf(`@`);return t===-1?`default`:e.slice(t+1)}function RB(e){let t=e.lastIndexOf(`@`);return t===-1?e:e.slice(0,t)}function zB(e){let t=new Map;for(let n of e){let e=LB(n.group),r=t.get(e);r?r.push(n):t.set(e,[n])}return[...t.entries()].map(([e,t])=>{let n=new Set,r=0,i=0;for(let e of t){r+=e.depth,e.depth>0&&e.liveWorkers.length===0&&(i+=1);for(let t of e.liveWorkers)n.add(t.instanceId)}return{partition:e,workerCount:n.size,handlerCount:t.length,totalDepth:r,starvedCount:i}}).sort((e,t)=>e.partition==="default"?-1:t.partition==="default"?1:e.partition.localeCompare(t.partition))}function BB(e){let t=new Map;for(let n of e)for(let e of n.liveWorkers){let n=RB(e.group),r=t.get(e.instanceId);r===void 0?t.set(e.instanceId,{instanceId:e.instanceId,partition:LB(e.group),runtime:e.status?.runtime,handlers:new Set([n]),status:e.status,lastBeatAt:e.lastBeatAt}):(r.handlers.add(n),e.lastBeatAt>=r.lastBeatAt&&(r.lastBeatAt=e.lastBeatAt,r.partition=LB(e.group),r.runtime=e.status?.runtime,r.status=e.status))}return[...t.values()].map(e=>({instanceId:e.instanceId,partition:e.partition,runtime:e.runtime,handlers:[...e.handlers].sort((e,t)=>e.localeCompare(t)),status:e.status,lastBeatAt:e.lastBeatAt})).sort((e,t)=>e.partition===t.partition?e.instanceId.localeCompare(t.instanceId):e.partition==="default"?-1:t.partition==="default"?1:e.partition.localeCompare(t.partition))}function VB(e){let t=new Set,n=new Set,r=new Set;for(let i of e){for(let e of i.liveWorkers)t.add(e.instanceId);i.kind===`workflow`?n.add(RB(i.group)):i.kind===`step`&&r.add(RB(i.group))}let i=e.filter(e=>e.depth>0&&e.liveWorkers.length===0).sort((e,t)=>t.depth-e.depth);return{queueCount:e.length,workflowCount:n.size,stepCount:r.size,workerCount:t.size,starved:i,allDraining:i.length===0}}function HB(e){return e[0]===e[1]?`v${e[0]}`:`v${e[0]}–${e[1]}`}function UB(e){return e.groups.some(e=>e.incompatible)?`incompatible`:e.groups.some(e=>e.degraded)?`degraded`:`compatible`}function WB(e){return e===`incompatible`?`s-failed`:e===`degraded`?`s-suspended`:`s-completed`}function GB({compat:e}){if(e.groups.length===0)return(0,m.jsx)(hC,{icon:(0,m.jsx)(vt,{}),title:`no descriptors`,description:`No worker has advertised a handshake descriptor yet — legacy workers are assumed compatible.`});let t=e.groups.flatMap(e=>e.pods.map(t=>({token:e.token,pod:t})));return(0,m.jsx)(MB,{label:`Fleet compatibility`,rows:t,rowKey:e=>`${e.token}/${e.pod.instanceId}`,columns:[{id:`pod`,header:`Pod`,cell:e=>(0,m.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,m.jsxs)(`span`,{className:`mono flex items-center gap-1.5 text-[12px] text-fg`,children:[(0,m.jsx)(`span`,{className:`dot ${WB(e.pod.outcome)}`,"aria-hidden":!0}),(0,m.jsx)(`span`,{className:`truncate`,children:e.pod.instanceId})]}),(0,m.jsx)(`span`,{className:`mono truncate text-[10px] text-dim`,children:e.token})]})},{id:`protocol`,header:`Protocol`,cell:e=>(0,m.jsx)(`span`,{className:`mono tnum text-[12px] text-fg-2`,children:HB(e.pod.protocolRange)})},{id:`outcome`,header:`Outcome`,cell:e=>(0,m.jsx)(wS,{variant:e.pod.outcome===`incompatible`?`destructive`:e.pod.outcome===`degraded`?`warn`:`good`,className:`mono text-[10px] uppercase tracking-wider`,children:e.pod.outcome})},{id:`detail`,header:`Detail`,hideBelow:`md`,className:`whitespace-normal`,cell:e=>(0,m.jsxs)(`div`,{className:`mono flex flex-col gap-0.5 text-[11px]`,children:[e.pod.reason&&(0,m.jsx)(`span`,{className:`text-bad`,children:e.pod.reason}),e.pod.missingOnRemote.length>0&&(0,m.jsxs)(`span`,{className:`text-dim`,children:[`missing on worker: `,e.pod.missingOnRemote.join(`, `)]}),e.pod.missingOnLocal.length>0&&(0,m.jsxs)(`span`,{className:`text-dim`,children:[`missing on control plane: `,e.pod.missingOnLocal.join(`, `)]}),!e.pod.reason&&e.pod.missingOnRemote.length===0&&e.pod.missingOnLocal.length===0&&(0,m.jsx)(`span`,{className:`text-faint`,children:`—`})]})}]})}function KB({blocked:e,onOpenRun:t}){return e.length===0?(0,m.jsx)(hC,{icon:(0,m.jsx)(vt,{}),title:`No blocked runs`,description:`Every parked run has a compatible worker to resume it.`}):(0,m.jsx)(`ul`,{className:`divide-y divide-line-soft`,children:e.map(e=>(0,m.jsx)(`li`,{children:(0,m.jsxs)(`button`,{type:`button`,onClick:()=>t(e.id),className:Y(`mono flex w-full flex-col gap-0.5 px-4 py-3 text-left text-[11px] transition-colors hover:bg-hover`),children:[(0,m.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,m.jsx)(`span`,{className:`dot s-blocked`,"aria-hidden":!0}),(0,m.jsx)(`span`,{className:`truncate text-[12.5px] text-fg`,children:e.workflow}),(0,m.jsx)(`span`,{className:`truncate text-faint`,children:e.id})]}),(0,m.jsx)(`span`,{className:`text-bad`,children:e.reason}),e.missingCapabilities&&e.missingCapabilities.length>0&&(0,m.jsxs)(`span`,{className:`text-dim`,children:[`missing: `,e.missingCapabilities.join(`, `)]})]})},e.id))})}function qB(e){let t=Math.max(0,Math.round((Date.now()-e)/1e3));if(t<60)return`${t}s ago`;let n=Math.round(t/60);if(n<60)return`${n}m ago`;let r=Math.round(n/60);return r<24?`${r}h ago`:`${Math.round(r/24)}d ago`}function JB({status:e}){let t=e?.concurrency;if(!e||!t)return(0,m.jsx)(`span`,{className:`mono text-[9px] text-faint`,children:`no status`});let n=t.limit>0&&e.inFlight>=t.limit*.8;return(0,m.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,m.jsxs)(`div`,{className:`mono flex flex-wrap items-center gap-x-3 gap-y-0.5 text-[10px] text-dim`,children:[(0,m.jsx)(`span`,{className:`shrink-0 rounded border px-1 text-[9px] uppercase tracking-wider ${t.mode===`adaptive`?`border-info/40 bg-info/10 text-info`:`border-line-strong/50 bg-hover/60 text-fg-2`}`,children:t.mode===`adaptive`?`adaptive ${t.min??1}–${t.max??32}`:`fixed`}),(0,m.jsxs)(`span`,{className:n?`text-warn`:`text-fg-2`,children:[`in-flight`,` `,(0,m.jsxs)(`span`,{className:`tnum`,children:[e.inFlight,`/`,t.limit]})]}),typeof e.rssPct==`number`&&(0,m.jsxs)(`span`,{className:e.rssPct>=85?`text-bad`:``,children:[`ram `,(0,m.jsxs)(`span`,{className:`tnum`,children:[Math.round(e.rssPct),`%`]})]}),typeof e.cpuPct==`number`&&(0,m.jsxs)(`span`,{children:[`cpu `,(0,m.jsxs)(`span`,{className:`tnum`,children:[Math.round(e.cpuPct),`%`]})]}),typeof e.throughputPerMin==`number`&&(0,m.jsxs)(`span`,{children:[(0,m.jsx)(`span`,{className:`tnum`,children:Math.round(e.throughputPerMin)}),`/min`]}),typeof e.p95Ms==`number`&&(0,m.jsxs)(`span`,{children:[`p95 `,(0,m.jsxs)(`span`,{className:`tnum`,children:[Math.round(e.p95Ms),`ms`]})]})]}),e.lastAdjust&&(0,m.jsxs)(`div`,{className:`mono text-[10px] text-dim`,children:[e.lastAdjust.reason,` `,(0,m.jsxs)(`span`,{className:`tnum text-fg-2`,children:[e.lastAdjust.from,`→`,e.lastAdjust.to]}),` `,qB(e.lastAdjust.at)]})]})}function YB({onOpenRun:e}){let t=Ze({queryKey:[`workers`],queryFn:()=>vS.workers(),refetchInterval:1e4}),n=Ze({queryKey:[`compat`],queryFn:()=>vS.compat(),refetchInterval:15e3,retry:!1});return(0,m.jsx)(XB,{groups:t.data,groupsError:t.data===void 0?t.error:null,onRetryGroups:()=>void t.refetch(),compat:n.data,compatError:n.data===void 0?n.error:null,onOpenRun:e})}function XB({groups:e,groupsError:t,onRetryGroups:n,compat:r,compatError:i,onOpenRun:a}){let o=e?VB(e):void 0;return(0,m.jsxs)(qb,{children:[(0,m.jsx)(yS,{title:`Workers`,description:`Live heartbeats, partitions, starved queues and protocol compatibility.`}),(0,m.jsx)(Wi,{label:`Fleet summary`,children:t?(0,m.jsx)(Gi,{title:`Workers could not be loaded`,error:t,onRetry:n}):o?(0,m.jsx)(QB,{summary:o,compat:r}):(0,m.jsx)(IB,{})}),(0,m.jsx)(Wi,{label:`Pods`,children:(0,m.jsx)(SS,{title:`Pods`,description:`each live worker, what it serves and its load`,flush:!0,action:e?(0,m.jsxs)(`span`,{className:`mono tnum text-[11px] text-dim`,children:[BB(e).length,` live`]}):void 0,children:(0,m.jsx)(eV,{workers:e?BB(e):void 0})})}),(0,m.jsxs)(`div`,{className:`grid gap-5 lg:grid-cols-2`,children:[(0,m.jsx)(Wi,{label:`Partitions`,children:(0,m.jsx)(SS,{title:`Partitions`,description:`tenant-isolation axis · default = control plane`,flush:!0,children:(0,m.jsx)(tV,{partitions:e?zB(e):void 0})})}),(0,m.jsx)(Wi,{label:`Starved queues`,children:(0,m.jsx)(SS,{title:`Starved queues`,description:`queued work with no worker consuming it`,flush:!0,children:(0,m.jsx)(rV,{summary:o})})})]}),(0,m.jsx)(Wi,{label:`Compatibility`,children:(0,m.jsx)(SS,{title:`Compatibility`,description:r?`control plane ${r.controlPlane.instanceId} · protocol v${r.controlPlane.protocol}`:`protocol and capability negotiation per pod`,flush:!0,children:i?(0,m.jsx)(`div`,{className:`p-4`,children:(0,m.jsx)(Gi,{title:`Compatibility report unavailable`,error:i})}):r?(0,m.jsx)(GB,{compat:r}):(0,m.jsx)($B,{})})}),r&&r.blockedCount>0&&(0,m.jsx)(Wi,{label:`Blocked runs`,children:(0,m.jsx)(SS,{title:`Blocked runs`,description:`parked: no compatible worker can take them`,flush:!0,action:(0,m.jsx)(wS,{variant:`destructive`,className:`mono tnum`,children:r.blockedCount}),children:(0,m.jsx)(KB,{blocked:r.blocked,onOpenRun:a})})})]})}function ZB(e,t){return`${e} ${e===1?t:`${t}s`}`}function QB({summary:e,compat:t}){let n=t?UB(t):void 0,r=n===`incompatible`?`bad`:n===`degraded`?`warn`:`good`;return(0,m.jsxs)(FB,{children:[(0,m.jsx)(PB,{label:`Live workers`,value:e.workerCount,tone:`brand`,caption:`${ZB(e.queueCount,`queue`)} served`}),(0,m.jsx)(PB,{label:`Workflows`,value:e.workflowCount,tone:`info`,caption:`@Workflow handlers`}),(0,m.jsx)(PB,{label:`Steps`,value:e.stepCount,tone:`violet`,caption:`@Step handlers`}),(0,m.jsx)(PB,{label:`Starved`,value:e.starved.length,tone:e.starved.length>0?`bad`:`good`,caption:e.allDraining?`all draining`:`queues with no worker`}),(0,m.jsx)(PB,{label:`Compatibility`,value:t?t.incompatibleCount>0?t.incompatibleCount:`✓`:`—`,tone:t?r:`default`,caption:t?n??``:`no report`}),(0,m.jsx)(PB,{label:`Blocked runs`,value:t?.blockedCount??`—`,tone:(t?.blockedCount??0)>0?`bad`:`default`,caption:`no compatible worker`})]})}function $B(){return(0,m.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,"aria-hidden":!0,children:[(0,m.jsx)(_f,{className:`h-3 w-3/4`}),(0,m.jsx)(_f,{className:`h-3 w-2/3`}),(0,m.jsx)(_f,{className:`h-3 w-1/2`})]})}function eV({workers:e}){return(0,m.jsx)(MB,{label:`Pods`,rows:e,loading:e===void 0,rowKey:e=>e.instanceId,empty:(0,m.jsx)(hC,{icon:(0,m.jsx)(Dt,{}),title:`No live workers`,description:`No worker heartbeat in the last window. Start a worker, or check the transport can report health.`}),columns:[{id:`pod`,header:`Pod`,cell:e=>(0,m.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,m.jsxs)(`span`,{className:`mono flex items-center gap-1.5 text-[12px] text-fg`,children:[(0,m.jsx)(`span`,{className:`dot ${e.status?`s-completed`:``}`,"aria-hidden":!0}),(0,m.jsx)(`span`,{className:`truncate`,children:e.instanceId})]}),(0,m.jsxs)(`span`,{className:`mono text-[10px] text-dim`,children:[e.runtime??`node`,` · beat `,qB(e.lastBeatAt)]})]})},{id:`partition`,header:`Partition`,hideBelow:`sm`,cell:e=>(0,m.jsx)(wS,{variant:e.partition==="default"?`neutral`:`info`,className:`mono text-[10px]`,children:e.partition})},{id:`handlers`,header:`Handlers`,cell:e=>(0,m.jsx)(_B,{label:e.handlers.join(`
|
|
56
56
|
`),align:`start`,children:(0,m.jsx)(`span`,{className:`mono tnum cursor-default text-[12px] text-fg-2 underline decoration-line-strong decoration-dotted underline-offset-4`,children:e.handlers.length})})},{id:`status`,header:`Load`,hideBelow:`md`,className:`whitespace-normal`,cell:e=>(0,m.jsx)(JB,{status:e.status})}]})}function tV({partitions:e}){return(0,m.jsx)(MB,{label:`Partitions`,rows:e,loading:e===void 0,rowKey:e=>e.partition,empty:(0,m.jsx)(hC,{icon:(0,m.jsx)(Dt,{}),title:`No partitions`,description:`Nothing is queued or served yet.`}),columns:[{id:`partition`,header:`Partition`,cell:e=>(0,m.jsxs)(`span`,{className:`mono flex items-center gap-1.5 text-[12px] text-fg`,children:[(0,m.jsx)(`span`,{className:`dot ${e.starvedCount>0?`s-failed`:e.workerCount>0?`s-completed`:``}`,"aria-hidden":!0}),e.partition]})},{id:`workers`,header:`Workers`,align:`right`,cell:e=>(0,m.jsx)(nV,{n:e.workerCount})},{id:`handlers`,header:`Handlers`,align:`right`,cell:e=>(0,m.jsx)(nV,{n:e.handlerCount})},{id:`queued`,header:`Queued`,align:`right`,cell:e=>(0,m.jsx)(nV,{n:e.totalDepth})},{id:`starved`,header:`Starved`,align:`right`,cell:e=>(0,m.jsx)(nV,{n:e.starvedCount,bad:e.starvedCount>0})}]})}function nV({n:e,bad:t}){return(0,m.jsx)(`span`,{className:`mono tnum text-[12px] ${t?`text-bad`:`text-fg-2`}`,children:e})}function rV({summary:e}){return e?e.starved.length===0?(0,m.jsx)(hC,{icon:(0,m.jsx)(vt,{}),title:`All queues draining`,description:`${ZB(e.queueCount,`queue`)} across ${ZB(e.workerCount,`worker`)}, every backlog has a consumer.`}):(0,m.jsx)(`ul`,{className:`divide-y divide-line-soft`,children:e.starved.map(e=>(0,m.jsxs)(`li`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,m.jsx)(`span`,{className:`dot s-failed`,"aria-hidden":!0}),(0,m.jsx)(`span`,{className:`mono min-w-0 flex-1 truncate text-[12px] text-fg`,children:e.group}),(0,m.jsxs)(wS,{variant:`destructive`,className:`mono tnum text-[10px]`,children:[e.depth,` queued · 0 workers`]})]},e.group))}):(0,m.jsx)($B,{})}var iV=`#a3e635`,aV={runs:`Runs`,workers:`Workers`,schedules:`Schedules`,workflow:`Workflow`};function oV(){return(0,m.jsxs)(`span`,{className:`hidden items-center gap-1.5 text-[12px] text-dim sm:flex`,children:[(0,m.jsx)(`span`,{className:`dot s-completed pulse`,"aria-hidden":!0}),`live`]})}function sV(){let e=(0,p.useMemo)(()=>zp(rS),[]),t=cB(),n=mB(),[r,i]=(0,p.useState)(()=>PS()),a=(0,p.useCallback)(e=>{i(e),FS(e)},[]),o=(0,p.useCallback)(e=>a({page:`runs`,runId:e}),[a]),s=(0,p.useCallback)(e=>a(e?{page:`runs`,runId:e}:{page:`runs`}),[a]);(0,p.useEffect)(()=>{let e=()=>i(PS());return window.addEventListener(`hashchange`,e),window.addEventListener(`popstate`,e),()=>{window.removeEventListener(`hashchange`,e),window.removeEventListener(`popstate`,e)}},[]);let{data:c}=Ze({queryKey:[`topology`],queryFn:()=>vS.topology(),staleTime:1/0,refetchInterval:!1}),l=c?.role===`tenant`,u=c?l?c.tenant?`tenant · ${c.tenant}`:`tenant`:`control plane`:` `,d=(0,p.useMemo)(()=>[{section:`Monitor`,items:[{id:`runs`,label:`Runs`,icon:(0,m.jsx)(Et,{}),href:`#/`,onSelect:()=>a({page:`runs`})},{id:`workers`,label:`Workers`,icon:(0,m.jsx)(Dt,{}),href:`#/workers`,onSelect:()=>a({page:`workers`})}]},{section:`Operations`,items:l?[]:[{id:`schedules`,label:`Schedules`,icon:(0,m.jsx)(Ot,{}),href:`#/schedules`,onSelect:()=>a({page:`schedules`})}]}],[l,a]),f=r.page===`workflow`?`runs`:r.page,h=r.page===`workflow`?r.workflow:aV[r.page];return(0,m.jsx)(Kb,{brand:{name:`durable`,subtitle:(0,m.jsx)(`span`,{className:l?`text-warn`:void 0,title:l?`Tenant deployment — partition ${c?.tenant??`(unnamed)`}`:`Control-plane deployment`,children:u}),mark:(0,m.jsx)(IS,{}),current:{title:`Workflows`,package:`@adonis-agora/durable`,icon:`workflow`}},nav:d,activeId:f,shell:e,title:h,searchPlaceholder:`Search runs, workflows, payments, users…`,contentClassName:r.page===`runs`?`overflow-hidden`:void 0,actions:(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(lB,{}),(0,m.jsx)(`div`,{className:`hidden md:block`,children:(0,m.jsx)(oC,{onOpenRun:o})}),(0,m.jsx)(oV,{})]}),children:(0,m.jsx)(Wi,{label:aV[r.page],resetKeys:[r.page],children:r.page===`workflow`?(0,m.jsx)(qb,{children:(0,m.jsx)(jS,{workflow:r.workflow})}):r.page===`schedules`&&!l?(0,m.jsx)(CB,{onOpenRun:o}):r.page===`workers`?(0,m.jsx)(YB,{onOpenRun:o}):(0,m.jsx)(gB,{filters:n,selected:r.page===`runs`?r.runId:void 0,onSelect:s,onOpenRun:o,tenantPicker:t})})})}var cV=new Le({defaultOptions:{queries:{refetchInterval:2e3,refetchOnWindowFocus:!1}}});(0,at.createRoot)(document.getElementById(`root`)).render((0,m.jsx)(p.StrictMode,{children:(0,m.jsx)(ut,{storageKey:`agora-durable-theme`,accent:iV,children:(0,m.jsx)(_,{client:cV,children:(0,m.jsx)(sV,{})})})}));
|
|
57
|
-
//# sourceMappingURL=index-
|
|
57
|
+
//# sourceMappingURL=index-DzXygyDm.js.map
|