@dschz/solid-flow 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ import {template,delegateEvents,createComponent,Portal,spread,mergeProps as mergeProps$1,insert,effect,setAttribute,className,style,use,Dynamic,memo,addEventListener}from'solid-js/web';import {createContext,Show,mergeProps,splitProps,createSignal,createMemo,For,createEffect,onCleanup,onMount,batch,Index,useContext,createComputed,mapArray,untrack}from'solid-js';import ar,{clsx}from'clsx';import {infiniteExtent,getMarkerId,getSmoothStepPath,getStraightPath,createMarkerIds,nodeHasDimensions,XYPanZoom,getConnectionStatus,XYMinimap,getNodeDimensions,XYResizer,XY_RESIZER_LINE_POSITIONS,XY_RESIZER_HANDLE_POSITIONS,areConnectionMapsEqual,shallowNodeData,getNodesBounds,rendererPointToPoint,pointToRendererPoint,getElementsToRemove,isRectObject,getOverlappingArea,nodeToRect,getViewportForBounds,getInternalNodesBounds,isNumeric,devWarn,isMacOs,isNodeBase,evaluateAbsolutePosition,isEdgeBase,getBezierPath,XYHandle,elementSelectionKeys,getNodesInside,isInputDOMNode,getEventPosition,getHostForElement,getNodeToolbarTransform,getBoundsOfRects,XYDrag,SelectionMode,handleConnectionChange,initialConnection,panBy,fitViewport,clampPosition,getNodePositionWithOrigin,isCoordinateExtent,isEdgeVisible,getEdgePosition,getElevatedEdgeZIndex,mergeAriaLabelConfig,snapPosition,calculateNodePosition,addEdge,updateNodeInternals,updateAbsolutePositions,clampPositionToParent}from'@xyflow/system';export{ConnectionLineType,ConnectionMode,MarkerType,PanOnScrollMode,Position,ResizeControlVariant,SelectionMode,addEdge,getBezierEdgeCenter,getBezierPath,getConnectedEdges,getEdgeCenter,getIncomers,getNodesBounds,getOutgoers,getSmoothStepPath,getStraightPath,getViewportForBounds}from'@xyflow/system';import {produce,unwrap,createStore}from'solid-js/store';import {createResizeObserver}from'@solid-primitives/resize-observer';import {ReactiveMap}from'@solid-primitives/map';import {createMediaQuery}from'@solid-primitives/media';var Qe=createContext();function Ce(){let e=useContext(Qe);if(!e)throw new Error("solid-flow: Your application must be wrapped with <SolidFlow> in order to invoke useEdgeId");return e}var Se=createContext();function x(){let e=useContext(Se);if(!e)throw new Error("solid-flow: Your application must be wrapped with <SolidFlow> in order to invoke useInternalSolidFlow within your components");return e}var ie=createContext();function ve(){let e=useContext(ie);if(!e)throw new Error("solid-flow: Your application must be wrapped with <SolidFlow> in order to invoke useNodeId");return e}var et=e=>isNodeBase(e),uo=e=>isEdgeBase(e),T=e=>e===void 0?void 0:`${e}px`,Oe={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};function Z(e){let t=createMemo(()=>createSignal(e()));return [()=>t()[0](),n=>t()[1](n)]}function ze(e){let t=createMemo(()=>{let[o,r]=createStore(e());return {get:o,set:r}});return {get(){return t().get},get set(){return t().set}}}var tt=e=>{let{store:t}=x(),o=()=>t.domNode?.querySelector(".solid-flow__edge-labels");return createComponent(Show,{get when(){return o()},children:r=>createComponent(Portal,{get mount(){return r()},get children(){return e.children}})})};var sr=template("<div role=button tabindex=-1>"),Pe=e=>{let t=mergeProps({x:0,y:0,selectEdgeOnClick:false,transparent:false,style:{}},e),[o,r]=splitProps(t,["x","y","width","height","selectEdgeOnClick","transparent","children","class","style"]),{actions:n}=x(),i=Ce(),a=()=>n.getEdge(i())?.zIndex;return createComponent(tt,{get children(){var s=sr();return s.$$click=()=>{o.selectEdgeOnClick&&n.handleEdgeSelection(i());},spread(s,mergeProps$1({get class(){return ar("solid-flow__edge-label",{transparent:o.transparent},o.class)},get style(){return {"pointer-events":"all",width:T(o.width),height:T(o.height),transform:`translate(-50%, -50%) translate(${o.x}px,${o.y}px)`,cursor:o.selectEdgeOnClick?"pointer":void 0,"z-index":a(),...o.style}}},r),false,true),insert(s,()=>o.children),s}})};delegateEvents(["click"]);var gr=template("<svg><path fill=none></svg>",false,true,false),pr=template("<svg><path stroke-opacity=0 fill=none class=solid-flow__edge-interaction></svg>",false,true,false),L=e=>{let t=mergeProps({interactionWidth:20},e),[o,r]=splitProps(t,["class","style","path","interactionWidth","label","labelStyle","labelX","labelY","markerStart","markerEnd"]);return [(()=>{var n=gr();return spread(n,mergeProps$1({get d(){return o.path},get class(){return ar(["solid-flow__edge-path",o.class])},get"marker-start"(){return o.markerStart},get"marker-end"(){return o.markerEnd},get style(){return o.style}},r),true,false),n})(),createComponent(Show,{get when(){return o.interactionWidth>0},get children(){var n=pr();return effect(i=>{var a=o.path,s=o.interactionWidth;return a!==i.e&&setAttribute(n,"d",i.e=a),s!==i.t&&setAttribute(n,"stroke-width",i.t=s),i},{e:void 0,t:void 0}),n}}),createComponent(Show,{get when(){return o.label},get children(){return createComponent(Pe,{get x(){return o.labelX},get y(){return o.labelY},get style(){return o.labelStyle},get children(){return o.label}})}})]};var xr=e=>{let t=()=>{let[o,r,n]=getBezierPath({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition,curvature:e.pathOptions?.curvature});return {path:o,labelX:r,labelY:n}};return createComponent(L,{get id(){return e.id},get path(){return t().path},get labelX(){return t().labelX},get labelY(){return t().labelY},get label(){return e.label},get labelStyle(){return e.labelStyle},get markerStart(){return e.markerStart},get markerEnd(){return e.markerEnd},get interactionWidth(){return e.interactionWidth},get style(){return e.style}})};var nt=e=>{let t=()=>{let[o,r,n]=getBezierPath({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition});return {path:o,labelX:r,labelY:n}};return createComponent(L,{get path(){return t().path},get labelX(){return t().labelX},get labelY(){return t().labelY},get label(){return e.label},get labelStyle(){return e.labelStyle},get markerStart(){return e.markerStart},get markerEnd(){return e.markerEnd},get interactionWidth(){return e.interactionWidth},get style(){return e.style}})};var Ir=template("<div>"),Rr=e=>{let t=mergeProps({size:25,reconnecting:false,style:{}},e),[o,r]=splitProps(t,["type","class","style","position","size","reconnecting","children"]),{store:n,nodeLookup:i,edgeLookup:a,actions:s}=x(),m=Ce(),[g,c]=createSignal(false);if(!m())throw new Error("[solid-flow]: EdgeReconnectAnchor must be used within an Edge component");let l=()=>a.get(m()),d=u=>{if(u.button!==0)return;c(true),n.onReconnectStart?.(u,l(),o.type);let p=o.type==="target"?{nodeId:l().source,handleId:l().sourceHandle??null,type:"source"}:{nodeId:l().target,handleId:l().targetHandle??null,type:"target"};XYHandle.onPointerDown(u,{lib:n.lib,flowId:n.id,domNode:n.domNode,nodeId:p.nodeId,handleId:p.handleId,autoPanOnConnect:n.autoPanOnConnect,connectionMode:n.connectionMode,connectionRadius:n.connectionRadius,nodeLookup:i,isTarget:p.type==="target",edgeUpdaterType:p.type,cancelConnection:s.cancelConnection,panBy:s.panBy,updateConnection:s.setConnection,isValidConnection:n.isValidConnection,onConnectStart:n.onConnectStart,onConnectEnd:n.onConnectEnd,onConnect:h=>{let b={...l(),...h};b=n.onBeforeReconnect?.(b,l())??b,b&&s.setEdges(v=>v.map(P=>P.id===l().id?b:P)),n.onReconnect?.(l(),h);},onReconnectEnd:(h,b)=>{c(false),n.onReconnectEnd?.(h,l(),p.type,b);},getTransform:()=>n.transform,getFromHandle:()=>n.connection.fromHandle,autoPanSpeed:n.autoPanSpeed,dragThreshold:n.connectionDragThreshold,handleDomNode:u.currentTarget});};return createComponent(Pe,mergeProps$1({get x(){return o.position?.x},get y(){return o.position?.y},get style(){return o.style}},r,{get children(){var u=Ir();return u.$$pointerdown=d,insert(u,createComponent(Show,{get when(){return !g()},get children(){return o.children}})),effect(p=>{var h=ar("solid-flow__edgeupdater",`solid-flow__edgeupdater-${o.type}`,n.noPanClass,o.class),b={width:T(o.size),height:T(o.size),background:"transparent",border:"none",cursor:"move",...o.style};return h!==p.e&&className(u,p.e=h),p.t=style(u,b,p.t),p},{e:void 0,t:void 0}),u}}))};delegateEvents(["pointerdown"]);var Te="solid-flow__node-desc",Re="solid-flow__edge-desc",bo="solid-flow__aria-live";var wo=template("<div class=a11y-hidden>"),Kr=template("<div aria-live=assertive aria-atomic=true class=a11y-live-msg>"),at=()=>{let{store:e}=x();return [(()=>{var t=wo();return insert(t,()=>e.disableKeyboardA11y?e.ariaLabelConfig["node.a11yDescription.default"]:e.ariaLabelConfig["node.a11yDescription.keyboardDisabled"]),effect(()=>setAttribute(t,"id",`${Te}-${e.id}`)),t})(),(()=>{var t=wo();return insert(t,()=>e.ariaLabelConfig["edge.a11yDescription.default"]),effect(()=>setAttribute(t,"id",`${Re}-${e.id}`)),t})(),createComponent(Show,{get when(){return !e.disableKeyboardA11y},get children(){var t=Kr();return insert(t,()=>e.ariaLiveMessage),effect(()=>setAttribute(t,"id",`${bo}-${e.id}`)),t}})]};var Ur=template("<svg class=solid-flow__edge-wrapper><g aria-roledescription=edge>"),dt=e=>{let t,{store:o,actions:r}=x(),n=()=>e.edgeId,i=()=>r.getEdge(n()),a=()=>i().type??"default",s=()=>i().selectable??o.elementsSelectable,m=()=>i().focusable??o.edgesFocusable,g=()=>o.edgeTypes[a()],c=()=>i().markerStart?`url('#${getMarkerId(i().markerStart,o.id)}')`:void 0,l=()=>i().markerEnd?`url('#${getMarkerId(i().markerEnd,o.id)}')`:void 0,d=b=>{s()&&r.handleEdgeSelection(n()),e.onEdgeClick?.({edge:i(),event:b});},u=(b,v)=>{({contextmenu:e.onEdgeContextMenu,pointerenter:e.onEdgePointerEnter,pointerleave:e.onEdgePointerLeave})[v]?.({edge:i(),event:b});},p=b=>{if(o.disableKeyboardA11y||!elementSelectionKeys.includes(b.key)||!s())return;b.key==="Escape"?(t?.blur(),r.unselectNodesAndEdges({edges:[i()]})):r.addSelectedEdges([i().id]);},h=()=>i().ariaLabel??`Edge from ${i().source} to ${i().target}`;return createComponent(Qe.Provider,{value:n,get children(){return createComponent(Show,{get when(){return !i().hidden},get children(){var b=Ur(),v=b.firstChild;v.addEventListener("pointerleave",w=>u(w,"pointerleave")),v.addEventListener("pointerenter",w=>u(w,"pointerenter")),v.$$contextmenu=w=>u(w,"contextmenu"),v.$$keydown=w=>m()&&p(w),v.$$click=d;var P=t;return typeof P=="function"?use(P,v):t=v,spread(v,mergeProps$1({get"data-id"(){return i().id},get tabIndex(){return m()?0:void 0},get role(){return i().ariaRole??(m()?"group":"img")},get"aria-label"(){return h()},get"aria-describedby"(){return m()?`${Re}-${o.id}`:void 0},get class(){return ar("solid-flow__edge",`solid-flow__edge-${a()}`,{animated:i().animated,selected:i().selected,selectable:s()},i().class)}},()=>i().domAttributes),true,true),insert(v,createComponent(Dynamic,{get component(){return g()},get id(){return i().id},get source(){return i().source},get target(){return i().target},get sourceX(){return i().sourceX},get sourceY(){return i().sourceY},get targetX(){return i().targetX},get targetY(){return i().targetY},get sourcePosition(){return i().sourcePosition},get targetPosition(){return i().targetPosition},get animated(){return i().animated},get selected(){return i().selected},get label(){return i().label},get labelStyle(){return i().labelStyle},get data(){return i().data},get style(){return i().style},get interactionWidth(){return i().interactionWidth},get selectable(){return s()},get deletable(){return i().deletable??true},get type(){return a()},get sourceHandleId(){return i().sourceHandle},get targetHandleId(){return i().targetHandle},get markerStart(){return c()},get markerEnd(){return l()}})),effect(w=>(w=i().zIndex)!=null?b.style.setProperty("z-index",w):b.style.removeProperty("z-index")),b}})}})};delegateEvents(["click","keydown","contextmenu"]);var oi=e=>{let t=createMemo(()=>{let[o,r,n]=getSmoothStepPath({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition,borderRadius:e.pathOptions?.borderRadius,offset:e.pathOptions?.offset});return {path:o,labelX:r,labelY:n}});return createComponent(L,{get id(){return e.id},get path(){return t().path},get labelX(){return t().labelX},get labelY(){return t().labelY},get label(){return e.label},get labelStyle(){return e.labelStyle},get markerStart(){return e.markerStart},get markerEnd(){return e.markerEnd},get interactionWidth(){return e.interactionWidth},get style(){return e.style}})};var ct=e=>{let t=()=>{let[o,r,n]=getSmoothStepPath({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition});return {path:o,labelX:r,labelY:n}};return createComponent(L,{get path(){return t().path},get labelX(){return t().labelX},get labelY(){return t().labelY},get label(){return e.label},get labelStyle(){return e.labelStyle},get markerStart(){return e.markerStart},get markerEnd(){return e.markerEnd},get interactionWidth(){return e.interactionWidth},get style(){return e.style}})};var li=e=>{let t=createMemo(()=>{let[o,r,n]=getSmoothStepPath({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition,borderRadius:0,offset:e.pathOptions?.offset});return {path:o,labelX:r,labelY:n}});return createComponent(L,{get id(){return e.id},get path(){return t().path},get labelX(){return t().labelX},get labelY(){return t().labelY},get label(){return e.label},get labelStyle(){return e.labelStyle},get markerStart(){return e.markerStart},get markerEnd(){return e.markerEnd},get interactionWidth(){return e.interactionWidth},get style(){return e.style}})};var mt=e=>{let t=()=>{let[o,r,n]=getSmoothStepPath({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition,borderRadius:0});return {path:o,labelX:r,labelY:n}};return createComponent(L,{get path(){return t().path},get labelX(){return t().labelX},get labelY(){return t().labelY},get label(){return e.label},get labelStyle(){return e.labelStyle},get markerStart(){return e.markerStart},get markerEnd(){return e.markerEnd},get interactionWidth(){return e.interactionWidth},get style(){return e.style}})};var pi=e=>{let t=createMemo(()=>{let[o,r,n]=getStraightPath({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY});return {path:o,labelX:r,labelY:n}});return createComponent(L,{get id(){return e.id},get path(){return t().path},get labelX(){return t().labelX},get labelY(){return t().labelY},get label(){return e.label},get labelStyle(){return e.labelStyle},get markerStart(){return e.markerStart},get markerEnd(){return e.markerEnd},get interactionWidth(){return e.interactionWidth},get style(){return e.style}})};var ut=e=>{let t=()=>{let[o,r,n]=getStraightPath({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY});return {path:o,labelX:r,labelY:n}};return createComponent(L,{get path(){return t().path},get labelX(){return t().labelX},get labelY(){return t().labelY},get label(){return e.label},get labelStyle(){return e.labelStyle},get markerStart(){return e.markerStart},get markerEnd(){return e.markerEnd},get interactionWidth(){return e.interactionWidth},get style(){return e.style}})};var wi=template('<svg><polyline class=arrow fill=none stroke-linecap=round stroke-linejoin=round points="-5,-4 0,0 -5,4"></svg>',false,true,false),xi=template('<svg><marker class=solid-flow__arrowhead viewBox="-10 -10 20 20"refX=0 refY=0></svg>',false,true,false),Ci=template('<svg><polyline class=arrowclosed stroke-linecap=round stroke-linejoin=round points="-5,-4 0,0 -5,4 -5,-4"></svg>',false,true,false),ft=e=>{let t=mergeProps({markerUnits:"strokeWidth",orient:"auto-start-reverse",width:12.5,height:12.5,color:"none"},e),o=()=>t.color??"var(--xy-edge-stroke)";return (()=>{var r=xi();return insert(r,createComponent(Show,{get when(){return t.type==="arrow"},get fallback(){return (()=>{var n=Ci();return effect(i=>{var a=o(),s=o(),m=t.strokeWidth;return a!==i.e&&setAttribute(n,"stroke",i.e=a),s!==i.t&&setAttribute(n,"fill",i.t=s),m!==i.a&&setAttribute(n,"stroke-width",i.a=m),i},{e:void 0,t:void 0,a:void 0}),n})()},get children(){var n=wi();return effect(i=>{var a=o(),s=t.strokeWidth;return a!==i.e&&setAttribute(n,"stroke",i.e=a),s!==i.t&&setAttribute(n,"stroke-width",i.t=s),i},{e:void 0,t:void 0}),n}})),effect(n=>{var i=t.id,a=t.width,s=t.height,m=t.markerUnits,g=t.orient;return i!==n.e&&setAttribute(r,"id",n.e=i),a!==n.t&&setAttribute(r,"markerWidth",n.t=a),s!==n.a&&setAttribute(r,"markerHeight",n.a=s),m!==n.o&&setAttribute(r,"markerUnits",n.o=m),g!==n.i&&setAttribute(r,"orient",n.i=g),n},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),r})()};var Ei=template("<svg class=solid-flow__marker><defs>"),yt=()=>{let{store:e}=x(),t=createMemo(()=>createMarkerIds(e.edges,{id:e.id,defaultColor:e.defaultMarkerColor,defaultMarkerStart:e.defaultEdgeOptions.markerStart,defaultMarkerEnd:e.defaultEdgeOptions.markerEnd}));return createComponent(Show,{get when(){return t().length>0},get children(){var o=Ei(),r=o.firstChild;return insert(r,createComponent(For,{get each(){return t()},children:n=>createComponent(ft,n)})),o}})};var Di=template("<div class=solid-flow__edges>"),wt=e=>{let{store:t}=x();return (()=>{var o=Di();return insert(o,createComponent(yt,{}),null),insert(o,createComponent(For,{get each(){return t.visibleEdgeIds},children:r=>createComponent(dt,{edgeId:r,get onEdgeClick(){return e.onEdgeClick},get onEdgeContextMenu(){return e.onEdgeContextMenu},get onEdgePointerEnter(){return e.onEdgePointerEnter},get onEdgePointerLeave(){return e.onEdgePointerLeave}})}),null),o})()};var Ki=(e,t)=>{let{store:o,nodeLookup:r,actions:n}=x(),[i,a]=createSignal(false);return onMount(()=>{let{onDrag:s,onDragStart:m,onDragStop:g,onNodeMouseDown:c}=t(),l=XYDrag({onDrag:s,onDragStart:(u,p,h,b)=>{a(true),m?.(u,p,h,b);},onDragStop:(u,p,h,b)=>{a(false),g?.(u,p,h,b);},onNodeMouseDown:c,getStoreItems:()=>({nodes:o.nodes,nodeLookup:r,edges:o.edges,nodeExtent:o.nodeExtent,snapGrid:o.snapGrid??[0,0],snapToGrid:!!o.snapGrid,autoPanSpeed:o.autoPanSpeed,nodeOrigin:o.nodeOrigin,multiSelectionActive:o.multiselectionKeyPressed,domNode:o.domNode,transform:o.transform,autoPanOnNodeDrag:o.autoPanOnNodeDrag,nodesDraggable:o.nodesDraggable,selectNodesOnDrag:o.selectNodesOnDrag,nodeDragThreshold:o.nodeDragThreshold,unselectNodesAndEdges:n.unselectNodesAndEdges,updateNodePositions:n.updateNodePositions,panBy:n.panBy})});function d(u,p){if(p.disabled){l.destroy();return}l.update({domNode:u,nodeId:p.nodeId,noDragClassName:p.noDragClass,handleSelector:p.handleSelector,isSelectable:p.isSelectable,nodeClickDistance:p.nodeClickDistance});}createEffect(()=>{d(e(),t());}),onCleanup(()=>{l.destroy();});}),i},Le=Ki;var xt=createContext();function vo(){let e=useContext(xt);if(!e)throw new Error("solid-flow: Your application must be wrapped with <SolidFlow> in order to invoke useNodeConnectable");return e}var Ui=template("<div aria-roledescription=node>"),St=e=>{let{store:t,nodeLookup:o,parentLookup:r,actions:n}=x(),[i,a]=createSignal(),s=()=>o.get(e.nodeId),m=()=>s().id,g=()=>s().type??"default",c=()=>s().deletable??true,l=()=>s().selectable??t.elementsSelectable,d=()=>s().focusable??t.nodesFocusable,u=()=>s().draggable??t.nodesDraggable,p=()=>s().connectable??t.nodesConnectable,h=()=>s().internals.userNode,b=()=>g()in t.nodeTypes,v=()=>t.nodeTypes[g()],P=()=>r.has(s().id),w=()=>{let{x:y,y:N}=s().internals.positionAbsolute;return `translate(${y}px, ${N}px)`},M=()=>{let y=s().width??s().initialWidth,N=s().height??s().initialHeight;return {...s().style,...y?{width:T(y)}:{},...N?{height:T(N)}:{}}},O=()=>({"z-index":s().internals.z,transform:w(),visibility:nodeHasDimensions(s())?"visible":"hidden",...M(),...s().style??{}});createEffect(()=>{b();}),createEffect(y=>y&&y.sourcePosition===s().sourcePosition&&y.targetPosition===s().targetPosition&&y.nodeType===g()?y:(n.requestUpdateNodeInternals([[s().id,{id:s().id,nodeElement:i(),force:true}]]),{nodeType:g(),sourcePosition:s().sourcePosition,targetPosition:s().targetPosition})),createEffect(y=>{let N=i();return N===y&&nodeHasDimensions(s())?y:(y&&e.resizeObserver.unobserve(y),N&&e.resizeObserver.observe(N),N)});let B=y=>{l()&&(!t.selectNodesOnDrag||!u()||t.nodeDragThreshold>0)&&n.handleNodeSelection(s().id),e.onNodeClick?.({node:h(),event:y});},V=y=>{if(isInputDOMNode(y)||t.disableKeyboardA11y)return;if(elementSelectionKeys.includes(y.key)&&l()){n.handleNodeSelection(s().id,y.key==="Escape",i());return}let N=Oe[y.key];u()&&s().selected&&N&&batch(()=>{y.preventDefault(),n.setAriaLiveMessage(t.ariaLabelConfig["node.a11yDescription.ariaLiveMessage"]({direction:y.key.replace("Arrow","").toLowerCase(),x:~~s().internals.positionAbsolute.x,y:~~s().internals.positionAbsolute.y})),n.moveSelectedNodes(N,y.shiftKey?4:1);});},A=()=>{if(t.disableKeyboardA11y||!t.autoPanOnNodeFocus||!i()?.matches(":focus-visible"))return;let{width:y,height:N,viewport:k}=t;getNodesInside(new Map([[s().id,s()]]),{x:0,y:0,width:y,height:N},[k.x,k.y,k.zoom],true).length>0||n.setCenter(s().position.x+(s().measured.width??0)/2,s().position.y+(s().measured.height??0)/2,{zoom:k.zoom});},R=Le(i,()=>({nodeId:s().id,isSelectable:l(),disabled:!u(),handleSelector:s().dragHandle,noDragClass:t.noDragClass,nodeClickDistance:e.nodeClickDistance,onNodeMouseDown:n.handleNodeSelection,onDrag:(y,N,k,_)=>{e.onNodeDrag?.({event:y,targetNode:k,nodes:_});},onDragStart:(y,N,k,_)=>{e.onNodeDragStart?.({event:y,targetNode:k,nodes:_});},onDragStop:(y,N,k,_)=>{e.onNodeDragStop?.({event:y,targetNode:k,nodes:_});}}));return createComponent(Show,{get when(){return !s().hidden},get children(){var y=Ui();return y.addEventListener("focus",()=>d()&&A()),y.$$keydown=N=>d()&&V(N),y.$$contextmenu=N=>e.onNodeContextMenu?.({node:h(),event:N}),y.$$pointermove=N=>e.onNodePointerMove?.({node:h(),event:N}),y.addEventListener("pointerleave",N=>e.onNodePointerLeave?.({node:h(),event:N})),y.addEventListener("pointerenter",N=>e.onNodePointerEnter?.({node:h(),event:N})),y.$$click=B,use(a,y),spread(y,mergeProps$1({get"data-id"(){return s().id},get class(){return ar("solid-flow__node",`solid-flow__node-${g()}`,{connectable:p(),draggable:u(),dragging:R(),nopan:u(),parent:P(),selectable:l(),selected:s().selected},s().class)},get style(){return O()},get tabIndex(){return d()?0:void 0},get role(){return s().ariaRole??(d()?"group":void 0)},get"aria-describedby"(){return t.disableKeyboardA11y?void 0:`${Te}-${t.id}`}},()=>s().domAttributes),false,true),insert(y,createComponent(ie.Provider,{value:m,get children(){return createComponent(xt.Provider,{value:p,get children(){return createComponent(Dynamic,{get component(){return v()},get data(){return s().data},get id(){return s().id},get selected(){return !!s().selected},get selectable(){return l()},get deletable(){return c()},get sourcePosition(){return s().sourcePosition},get targetPosition(){return s().targetPosition},get zIndex(){return s().internals.z},get dragging(){return R()},get draggable(){return u()},get dragHandle(){return s().dragHandle},get parentId(){return s().parentId},get type(){return g()},get isConnectable(){return p()},get positionAbsoluteX(){return s().internals.positionAbsolute.x},get positionAbsoluteY(){return s().internals.positionAbsolute.y},get width(){return s().width},get height(){return s().height}})}})}})),y}})};delegateEvents(["click","pointermove","contextmenu","keydown"]);var is=template('<div class="solid-flow__container solid-flow__nodes">'),vt=e=>{let{actions:t,store:o}=x(),r=new ResizeObserver(n=>{t.requestUpdateNodeInternals(n.map(i=>{let a=i.target.getAttribute("data-id");return [a,{id:a,nodeElement:i.target,force:true}]}));});return onCleanup(()=>{r.disconnect();}),(()=>{var n=is();return insert(n,createComponent(For,{get each(){return o.visibleNodeIds},children:i=>createComponent(St,{nodeId:i,resizeObserver:r,get nodeClickDistance(){return e.nodeClickDistance},get onNodeClick(){return e.onNodeClick},get onNodePointerEnter(){return e.onNodePointerEnter},get onNodePointerMove(){return e.onNodePointerMove},get onNodePointerLeave(){return e.onNodePointerLeave},get onNodeDrag(){return e.onNodeDrag},get onNodeDragStart(){return e.onNodeDragStart},get onNodeDragStop(){return e.onNodeDragStop},get onNodeContextMenu(){return e.onNodeContextMenu}})})),n})()};var ps=template("<div>"),$o=(e,t)=>{if(e.size!==t.size)return false;for(let o of e)if(!t.has(o))return false;return true},Pt=e=>{let{store:t,nodeLookup:o,edgeLookup:r,connectionLookup:n,actions:i}=x(),a,s=null,m=false,g=new Set,c=new Set,l=()=>t.panActivationKeyPressed||e.panOnDrag,d=()=>t.selectionKeyPressed||t.selectionRect||e.selectionOnDrag&&l()!==true,u=()=>t.elementsSelectable&&(d()||t.selectionRectMode==="user"),p=w=>{if(w.target===a){if(m){m=false;return}e.onPaneClick?.({event:w}),batch(()=>{i.unselectNodesAndEdges(),i.setSelectionRectMode(void 0);});}},h=w=>{if(s=a?.getBoundingClientRect()??null,!t.elementsSelectable||!d()||w.button!==0||w.target!==a||!s)return;w.target?.setPointerCapture?.(w.pointerId);let{x:M,y:O}=getEventPosition(w,s);batch(()=>{i.unselectNodesAndEdges(),i.setSelectionRect({width:0,height:0,startX:M,startY:O,x:M,y:O});});},b=w=>{if(!d()||!s||!t.selectionRect)return;m=true;let M=getEventPosition(w,s),{startX:O=0,startY:B=0}=t.selectionRect,V={...t.selectionRect,x:M.x<O?M.x:O,y:M.y<B?M.y:B,width:Math.abs(M.x-O),height:Math.abs(M.y-B)},A=g,R=c;g=new Set(getNodesInside(o,V,t.transform,t.selectionMode===SelectionMode.Partial,true).map(N=>N.id));let y=t.defaultEdgeOptions.selectable??true;c=new Set;for(let N of g){let k=n.get(N);if(k)for(let{edgeId:_}of k.values()){let j=r.get(_);j&&(j.selectable??y)&&c.add(_);}}batch(()=>{if(!$o(A,g)){let N=new Map;i.setNodes(k=>{let _=g.has(k.id);return N.set(k.id,_),!!k.selected!==_},produce(k=>{k.selected=N.get(k.id);}));}if(!$o(R,c)){let N=new Map;i.setEdges(k=>{let _=c.has(k.id);return N.set(k.id,_),!!k.selected!==_},produce(k=>{k.selected=N.get(k.id);}));}i.setSelectionRectMode("user"),i.setSelectionRect(V);});},v=w=>{w.button===0&&(w.target?.releasePointerCapture?.(w.pointerId),!d()&&t.selectionRectMode==="user"&&w.target===a&&p(w),batch(()=>{i.setSelectionRect(void 0),g.size>0&&i.setSelectionRectMode("nodes");}),t.selectionKeyPressed&&(m=false),e.onSelectionEnd?.(w));},P=w=>{if(w.target!==a)return;let M=l();if(Array.isArray(M)&&M.includes(2)){w.preventDefault();return}e.onPaneContextMenu?.({event:w});};return (()=>{var w=ps();w.$$contextmenu=P,w.$$pointerup=O=>u()?v(O):void 0,w.$$pointermove=O=>u()?b(O):void 0,w.$$pointerdown=O=>u()?h(O):void 0,w.$$click=O=>u()?void 0:p(O);var M=a;return typeof M=="function"?use(M,w):a=w,insert(w,()=>e.children),effect(()=>className(w,ar("solid-flow__container solid-flow__pane",{selection:d(),dragging:t.dragging,draggable:e.panOnDrag===true||Array.isArray(e.panOnDrag)&&e.panOnDrag.includes(0)}))),w})()};delegateEvents(["click","pointerdown","pointermove","pointerup","contextmenu"]);var Ss=template("<div>"),se=e=>{let{store:t}=x(),o=mergeProps({position:"top-right",style:{}},e),[r,n]=splitProps(o,["class","position","style","children"]);return (()=>{var i=Ss();return spread(i,mergeProps$1({get class(){return ar(["solid-flow__panel",...r.position.split("-"),r.class])},get style(){return {"pointer-events":t.selectionRectMode?"none":void 0,...r.style}}},n),false,true),insert(i,()=>r.children),i})()};var ks=template('<div class="solid-flow__container solid-flow__viewport xyflow__viewport">'),Nt=e=>{let{store:t}=x();return (()=>{var o=ks();return insert(o,()=>e.children),effect(r=>(r=`translate(${t.viewport.x}px, ${t.viewport.y}px) scale(${t.viewport.zoom})`)!=null?o.style.setProperty("transform",r):o.style.removeProperty("transform")),o})()};var Ds=e=>{let{store:t}=x();return createComponent(Show,{get when(){return t.domNode},children:o=>createComponent(Portal,{get mount(){return o().querySelector(".solid-flow__viewport-portal")??void 0},get children(){return e.children}})})};var Ts=template('<div class="solid-flow__container solid-flow__zoom">'),Et=e=>{let t,{store:o,actions:r}=x(),n=()=>e.initialViewport||{x:0,y:0,zoom:1},i=()=>o.panActivationKeyPressed||e.panOnDrag,a=()=>o.panActivationKeyPressed||e.panOnScroll,s=m=>{let[g,c,l]=m;r.setViewport({x:g,y:c,zoom:l});};return onMount(()=>{let m=XYPanZoom({domNode:t,minZoom:o.minZoom,maxZoom:o.maxZoom,translateExtent:o.translateExtent,viewport:n(),paneClickDistance:e.paneClickDistance,onDraggingChange:r.setDragging,onPanZoomStart:e.onMoveStart,onPanZoom:e.onMove,onPanZoomEnd:e.onMoveEnd}),g=m.getViewport();(n().x!==g.x||n().y!==g.y||n().zoom!==g.zoom)&&s([g.x,g.y,g.zoom]),batch(()=>{r.setViewport(g),r.setPanZoom(m);}),e.onViewportInitialized?.(),createEffect(()=>{m.update({lib:o.lib,zoomActivationKeyPressed:o.zoomActivationKeyPressed,noPanClassName:o.noPanClass,noWheelClassName:o.noWheelClass,userSelectionActive:!!o.selectionRect,panOnScrollSpeed:.5,panOnDrag:i(),panOnScroll:a(),zoomOnScroll:e.zoomOnScroll,zoomOnDoubleClick:e.zoomOnDoubleClick,zoomOnPinch:e.zoomOnPinch,panOnScrollMode:e.panOnScrollMode,preventScrolling:typeof e.preventScrolling=="boolean"?e.preventScrolling:true,onTransformChange:s});});}),(()=>{var m=Ts(),g=t;return typeof g=="function"?use(g,m):t=m,insert(m,()=>e.children),m})()};var Vs=template('<svg class="solid-flow__container solid-flow__connectionline"><g>'),Fs=template("<svg><path class=solid-flow__connection-path fill=none></svg>",false,true,false),Gs=e=>{let{store:t}=x(),o=()=>getConnectionStatus(t.connection.isValid);return createComponent(Show,{get when(){return t.connection.inProgress},get children(){var r=Vs(),n=r.firstChild;return insert(n,createComponent(Show,{get when(){return e.component},get fallback(){return createComponent(qs,{get style(){return e.style}})},children:i=>{let a=i();return createComponent(a,{get connectionLineType(){return t.connectionLineType},get connectionLineStyle(){return e.style},get fromNode(){return t.connection.fromNode},get fromHandle(){return t.connection.fromHandle},get fromX(){return t.connection.from.x},get fromY(){return t.connection.from.y},get toX(){return t.connection.to.x},get toY(){return t.connection.to.y},get fromPosition(){return t.connection.fromPosition},get toPosition(){return t.connection.toPosition},get connectionStatus(){return o()},get toNode(){return t.connection.toNode},get toHandle(){return t.connection.toHandle}})}})),effect(i=>{var a=t.width,s=t.height,m=e.containerStyle,g=ar(["solid-flow__connection",o()]);return a!==i.e&&setAttribute(r,"width",i.e=a),s!==i.t&&setAttribute(r,"height",i.t=s),i.a=style(r,m,i.a),g!==i.o&&setAttribute(n,"class",i.o=g),i},{e:void 0,t:void 0,a:void 0,o:void 0}),r}})},qs=e=>{let{store:t}=x(),o=()=>{if(!t.connection.inProgress)return;let r={sourceX:t.connection.from.x,sourceY:t.connection.from.y,sourcePosition:t.connection.fromPosition,targetX:t.connection.to.x,targetY:t.connection.to.y,targetPosition:t.connection.toPosition};switch(t.connectionLineType){case "default":{let[n]=getBezierPath(r);return n}case "straight":{let[n]=getStraightPath(r);return n}case "step":case "smoothstep":{let[n]=getSmoothStepPath({...r,borderRadius:t.connectionLineType==="step"?0:void 0});return n}}};return (()=>{var r=Fs();return effect(n=>{var i=e.style,a=o();return n.e=style(r,i,n.e),a!==n.t&&setAttribute(r,"d",n.t=a),n},{e:void 0,t:void 0}),r})()},_t=Gs;var Oo=e=>{let{source:t,sourceHandle:o,target:r,targetHandle:n}=e;return `xy-edge__${t}${o||""}-${r}${n||""}`};var oa=template("<div role=button tabindex=-1>"),ee=e=>{let t=mergeProps({id:null,type:"source",position:"top",isConnectableStart:true,isConnectableEnd:true},e),{store:o,nodeLookup:r,connectionLookup:n,actions:i}=x(),[a,s]=splitProps(t,["id","type","position","isConnectable","isConnectableStart","isConnectableEnd","isValidConnection","onConnect","onDisconnect","children","class","style"]),m=ve(),g=vo(),c=()=>a.isConnectable??g(),l=()=>a.type==="target",d=()=>a.id??null,u=()=>!!o.connection.fromHandle,p=()=>o.connection.fromHandle&&o.connection.fromHandle.nodeId===m()&&o.connection.fromHandle.type===a.type&&o.connection.fromHandle.id===d(),h=()=>o.connection.toHandle&&o.connection.toHandle.nodeId===m()&&o.connection.toHandle.type===a.type&&o.connection.toHandle.id===d(),b=()=>o.connectionMode==="strict"?o.connection.fromHandle?.type!==a.type:m()!==o.connection.fromHandle?.nodeId||d()!==o.connection.fromHandle?.id,v=()=>!!(h()&&o.connection.isValid),P=null,w;createEffect(()=>{if(!a.onConnect&&!a.onDisconnect)return;let A=`${m()}-${a.type}${a.id?`-${a.id}`:""}`;if(w=n.get(A),P&&!areConnectionMapsEqual(w,P)){let R=w??new Map;handleConnectionChange(P,R,e.onDisconnect),handleConnectionChange(R,P,e.onConnect);}P=w??new Map;});let M=A=>{let R={...A,id:Oo(A)},y=o.onBeforeConnect?.(R)??R;i.addEdge(y),o.onConnect?.(R);},O=A=>{XYHandle.onPointerDown(A,{handleId:d(),nodeId:m(),isTarget:l(),connectionRadius:o.connectionRadius,domNode:o.domNode,nodeLookup:r,connectionMode:o.connectionMode,lib:o.lib,autoPanOnConnect:o.autoPanOnConnect,flowId:o.id,isValidConnection:a.isValidConnection??o.isValidConnection,updateConnection:i.setConnection,cancelConnection:i.cancelConnection,panBy:i.panBy,onConnect:M,onConnectStart:(R,y)=>{o.onConnectStart?.(R,{nodeId:y.nodeId,handleId:y.handleId,handleType:y.handleType});},onConnectEnd:o.onConnectEnd,getTransform:()=>o.transform,getFromHandle:()=>o.connection.fromHandle,autoPanSpeed:o.autoPanSpeed,dragThreshold:o.connectionDragThreshold,handleDomNode:A.currentTarget});},B=A=>{if(!m()||!o.clickConnectStartHandle&&!a.isConnectableStart)return;if(!o.clickConnectStartHandle){o.onClickConnectStart?.(A,{nodeId:m(),handleId:d(),handleType:a.type}),i.setClickConnectStartHandle({nodeId:m(),type:a.type,id:d()});return}let R=getHostForElement(A.target),y=a.isValidConnection??o.isValidConnection,{connection:N,isValid:k}=XYHandle.isValid(A,{handle:{nodeId:m(),id:d(),type:a.type},connectionMode:o.connectionMode,fromNodeId:o.clickConnectStartHandle.nodeId,fromHandleId:o.clickConnectStartHandle.id??null,fromType:o.clickConnectStartHandle.type,isValidConnection:y,flowId:o.id,doc:R,lib:o.lib,nodeLookup:r});k&&N&&M(N);let _=structuredClone(unwrap(o.connection));delete _.inProgress,_.toPosition=_.toHandle?_.toHandle.position:null,o.onClickConnectEnd?.(A,_),i.setClickConnectStartHandle(void 0);},V=()=>c()&&(!u()||b())&&(u()||o.clickConnectStartHandle?a.isConnectableEnd:a.isConnectableStart);return (()=>{var A=oa();return A.$$pointerdown=O,spread(A,mergeProps$1({get"aria-label"(){return o.ariaLabelConfig["handle.ariaLabel"]},get"data-handleid"(){return d()},get"data-nodeid"(){return m()},get"data-handlepos"(){return a.position},get"data-id"(){return `${o.id}-${m()}-${a.id||null}-${a.type}`},get onClick(){return o.clickConnect?B:void 0},get style(){return a.style},get class(){return ar("solid-flow__handle",`solid-flow__handle-${a.position}`,o.noDragClass,o.noPanClass,a.class,{valid:v(),connectingto:h(),connectingfrom:p(),source:!l(),target:l(),connectablestart:t.isConnectableStart,connectableend:t.isConnectableEnd,connectable:c(),connectionindicator:V()})}},s),false,true),insert(A,()=>a.children),A})()};delegateEvents(["pointerdown"]);var $t=e=>{let t=mergeProps({targetPosition:"top",sourcePosition:"bottom"},e);return [createComponent(ee,{type:"target",get position(){return t.targetPosition},get isConnectable(){return t.isConnectable}}),memo(()=>e.data.label),createComponent(ee,{type:"source",get position(){return t.sourcePosition},get isConnectable(){return t.isConnectable}})]};var pa=template("<div>"),kt=e=>(()=>{var t=pa();return t.style.setProperty("position","absolute"),t.style.setProperty("left","0"),t.style.setProperty("top","0"),effect(o=>{var r=T(e.width),n=T(e.height);return r!==o.e&&((o.e=r)!=null?t.style.setProperty("width",r):t.style.removeProperty("width")),n!==o.t&&((o.t=n)!=null?t.style.setProperty("height",n):t.style.removeProperty("height")),o},{e:void 0,t:void 0}),t})();var It=e=>{let t=mergeProps({sourcePosition:"bottom"},e);return [memo(()=>e.data?.label),createComponent(ee,{type:"source",get position(){return t.sourcePosition},get isConnectable(){return t.isConnectable}})]};var Mt=e=>{let t=mergeProps({targetPosition:"top"},e);return [createComponent(ee,{type:"target",get position(){return t.targetPosition},get isConnectable(){return t.isConnectable}}),memo(()=>e.data?.label)]};var va=template("<svg><circle></svg>",false,true,false),Lo=e=>{let t=mergeProps({radius:5},e);return (()=>{var o=va();return effect(r=>{var n=ar("solid-flow__background-pattern","dots",t.class),i=t.radius,a=t.radius,s=t.radius;return n!==r.e&&setAttribute(o,"class",r.e=n),i!==r.t&&setAttribute(o,"cx",r.t=i),a!==r.a&&setAttribute(o,"cy",r.a=a),s!==r.o&&setAttribute(o,"r",r.o=s),r},{e:void 0,t:void 0,a:void 0,o:void 0}),o})()};var $a=template("<svg><path></svg>",false,true,false),Ko=e=>{let t=mergeProps({lineWidth:1},e);return (()=>{var o=$a();return effect(r=>{var n=t.lineWidth,i=`M${t.dimensions[0]/2} 0 V${t.dimensions[1]} M0 ${t.dimensions[1]/2} H${t.dimensions[0]}`,a=clsx("solid-flow__background-pattern",t.variant,t.class);return n!==r.e&&setAttribute(o,"stroke-width",r.e=n),i!==r.t&&setAttribute(o,"d",r.t=i),a!==r.a&&setAttribute(o,"class",r.a=a),r},{e:void 0,t:void 0,a:void 0}),o})()};var za=template("<svg data-testid=solid-flow__background><pattern patternUnits=userSpaceOnUse></pattern><rect x=0 y=0 width=100% height=100%>"),Ka={dots:1,lines:1,cross:6},Ba=e=>{let t=mergeProps({variant:"dots",gap:20,size:1,lineWidth:1,style:{}},e),{store:o}=x(),r=()=>t.variant==="dots",n=()=>t.variant==="cross",i=()=>`background-pattern-${o.id}-${t.id??""}`,a=()=>(t.size??Ka[t.variant])*o.viewport.zoom,s=()=>Array.isArray(t.gap)?t.gap:[t.gap,t.gap],m=()=>[s()[0]*o.viewport.zoom||1,s()[1]*o.viewport.zoom||1],g=()=>n()?[a(),a()]:m(),c=()=>r()?[a()/2,a()/2]:[g()[0]/2,g()[1]/2];return (()=>{var l=za(),d=l.firstChild,u=d.nextSibling;return insert(d,createComponent(Show,{get when(){return !r()},get fallback(){return createComponent(Lo,{get radius(){return a()/2},get class(){return t.patternClass}})},get children(){return createComponent(Ko,{get class(){return t.patternClass},get dimensions(){return g()},get variant(){return t.variant},get lineWidth(){return t.lineWidth}})}})),effect(p=>{var h=ar("solid-flow__container solid-flow__background",t.class),b={"--xy-background-color-props":t.bgColor,"--xy-background-pattern-color-props":t.patternColor,...t.style},v=i(),P=o.viewport.x%m()[0],w=o.viewport.y%m()[1],M=m()[0],O=m()[1],B=`translate(-${c()[0]},-${c()[1]})`,V=`url(#${i()})`;return h!==p.e&&setAttribute(l,"class",p.e=h),p.t=style(l,b,p.t),v!==p.a&&setAttribute(d,"id",p.a=v),P!==p.o&&setAttribute(d,"x",p.o=P),w!==p.i&&setAttribute(d,"y",p.i=w),M!==p.n&&setAttribute(d,"width",p.n=M),O!==p.s&&setAttribute(d,"height",p.s=O),B!==p.h&&setAttribute(d,"patternTransform",p.h=B),V!==p.r&&setAttribute(u,"fill",p.r=V),p},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),l})()};var Za=template("<button type=button>"),ue=e=>{let[t,o]=splitProps(e,["class","bgColor","bgColorHover","color","colorHover","borderColor","onClick","children"]),r=()=>Object.entries({"--xy-controls-button-background-color-props":t.bgColor,"--xy-controls-button-background-color-hover-props":t.bgColorHover,"--xy-controls-button-color-props":t.color,"--xy-controls-button-color-hover-props":t.colorHover,"--xy-controls-button-border-color-props":t.borderColor}).filter(([n,i])=>i!==void 0).reduce((n,[i,a])=>(n[i]=a,n),{});return (()=>{var n=Za();return n.$$click=i=>t.onClick?.(i),spread(n,mergeProps$1({get class(){return ar("solid-flow__controls-button",t.class)},get style(){return r()}},o),false,true),insert(n,()=>t.children),n})()};delegateEvents(["click"]);var qa=template('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 32 30"><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">'),Ot=()=>qa();var Ja=template('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 25 32"><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">'),zt=()=>Ja();var el=template('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 32 5"><path d="M0 0h32v4.2H0z">'),Tt=()=>el();var ol=template('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 32 32"><path d="M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z">'),Rt=()=>ol();var rl=template('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 25 32"><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">'),Lt=()=>rl();var dl=e=>{let{store:t,actions:o}=x(),r=mergeProps({position:"bottom-left",showZoom:true,showFitView:true,showLock:true,orientation:"vertical"},e),[n,i]=splitProps(r,["class","position","showZoom","showFitView","showLock","orientation","fitViewOptions","beforeControls","afterControls","buttonBgColor","buttonBgColorHover","buttonColor","buttonColorHover","buttonBorderColor","style","children"]),a=()=>t.viewport.zoom<=t.minZoom,s=()=>t.viewport.zoom>=t.maxZoom,m=()=>t.nodesDraggable||t.nodesConnectable||t.elementsSelectable,g=()=>{o.zoomIn();},c=()=>{o.zoomOut();},l=()=>{o.fitView(n.fitViewOptions);},d=()=>{let p=!m();batch(()=>{o.setNodesDraggable(p),o.setNodesConnectable(p),o.setElementsSelectable(p);});},u=()=>({bgColor:n.buttonBgColor,bgColorHover:n.buttonBgColorHover,color:n.buttonColor,colorHover:n.buttonColorHover,borderColor:n.buttonBorderColor});return createComponent(se,mergeProps$1({get class(){return ar(["solid-flow__controls",n.orientation,n.class])},get position(){return n.position},"data-testid":"solid-flow__controls",get"aria-label"(){return t.ariaLabelConfig["controls.ariaLabel"]},get style(){return n.style}},i,{get children(){return [memo(()=>n.beforeControls),createComponent(Show,{get when(){return n.showZoom},get children(){return [createComponent(ue,mergeProps$1({onClick:g,class:"solid-flow__controls-zoomin",get title(){return t.ariaLabelConfig["controls.zoomIn.ariaLabel"]},get"aria-label"(){return t.ariaLabelConfig["controls.zoomIn.ariaLabel"]},get disabled(){return s()}},u,{get children(){return createComponent(Rt,{})}})),createComponent(ue,mergeProps$1({onClick:c,class:"solid-flow__controls-zoomout",get title(){return t.ariaLabelConfig["controls.zoomOut.ariaLabel"]},get"aria-label"(){return t.ariaLabelConfig["controls.zoomOut.ariaLabel"]},get disabled(){return a()}},u,{get children(){return createComponent(Tt,{})}}))]}}),createComponent(Show,{get when(){return n.showFitView},get children(){return createComponent(ue,mergeProps$1({class:"solid-flow__controls-fitview",onClick:l,get title(){return t.ariaLabelConfig["controls.fitView.ariaLabel"]},get"aria-label"(){return t.ariaLabelConfig["controls.fitView.ariaLabel"]}},u,{get children(){return createComponent(Ot,{})}}))}}),createComponent(Show,{get when(){return n.showLock},get children(){return createComponent(ue,mergeProps$1({class:"solid-flow__controls-interactive",onClick:d,get title(){return t.ariaLabelConfig["controls.interactive.ariaLabel"]},get"aria-label"(){return t.ariaLabelConfig["controls.interactive.ariaLabel"]}},u,{get children(){return createComponent(Show,{get when(){return m()},get fallback(){return createComponent(zt,{})},get children(){return createComponent(Lt,{})}})}}))}}),memo(()=>n.children),memo(()=>n.afterControls)]}}))};var gl=template("<svg><rect></svg>",false,true,false),Bo=e=>{let t=mergeProps({borderRadius:5,width:0,height:0},e),o=()=>Object.entries({fill:t.color,stroke:t.strokeColor,"stroke-width":t.strokeWidth}).filter(([r,n])=>n!==void 0).reduce((r,[n,i])=>(r[n]=i,r),{});return (()=>{var r=gl();return effect(n=>{var i=ar("solid-flow__minimap-node",{selected:t.selected},t.class),a=t.x,s=t.y,m=t.borderRadius,g=t.borderRadius,c=t.width,l=t.height,d=t.shapeRendering,u=o();return i!==n.e&&setAttribute(r,"class",n.e=i),a!==n.t&&setAttribute(r,"x",n.t=a),s!==n.a&&setAttribute(r,"y",n.a=s),m!==n.o&&setAttribute(r,"rx",n.o=m),g!==n.i&&setAttribute(r,"ry",n.i=g),c!==n.n&&setAttribute(r,"width",n.n=c),l!==n.s&&setAttribute(r,"height",n.s=l),d!==n.h&&setAttribute(r,"shape-rendering",n.h=d),n.r=style(r,u,n.r),n},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),r})()};var Cl=template("<svg class=solid-flow__minimap-svg role=img><title></title><path class=solid-flow__minimap-mask fill-rule=evenodd pointer-events=none>"),Bt=e=>e instanceof Function?e:()=>e,zl=e=>{let{store:t,nodeLookup:o}=x(),r=mergeProps({position:"bottom-right",nodeClass:"",nodeStrokeColor:"transparent",pannable:true,zoomable:true,width:200,height:150,nodeBorderRadius:5,nodeStrokeWidth:2,style:{}},e),[n,i]=splitProps(r,["class","style","position","nodeClass","nodeStrokeColor","nodeColor","pannable","zoomable","inversePan","zoomStep","bgColor","width","height","maskColor","maskStrokeColor","maskStrokeWidth","nodeBorderRadius","nodeStrokeWidth"]),a=()=>n.nodeColor===void 0?void 0:Bt(n.nodeColor),s=()=>Bt(n.nodeStrokeColor),m=()=>Bt(n.nodeClass),g=()=>typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision",c=createMemo(()=>`solid-flow__minimap-desc-${t.id}`),l=()=>({x:-t.viewport.x/t.viewport.zoom,y:-t.viewport.y/t.viewport.zoom,width:t.width/t.viewport.zoom,height:t.height/t.viewport.zoom}),d=()=>{let y=l();return o.size>0?getBoundsOfRects(getInternalNodesBounds(o),y):y},u=()=>d().width/n.width,p=()=>d().height/n.height,h=()=>Math.max(u(),p()),b=()=>h()*n.width,v=()=>h()*n.height,P=()=>5*h(),w=()=>{let y=d();return y.x-(b()-y.width)/2-P()},M=()=>{let y=d();return y.y-(v()-y.height)/2-P()},O=()=>b()+P()*2,B=()=>v()+P()*2,V=()=>n.maskStrokeWidth?n.maskStrokeWidth*h():void 0,A=[],R=()=>{let y=t.nodes.map(k=>k.id),N=new Set(y);return (A.length!==y.length||!A.every(k=>N.has(k)))&&(A=y),A};return createComponent(se,mergeProps$1({get position(){return n.position},"data-testid":"solid-flow__minimap",get class(){return ar(["solid-flow__minimap",n.class])},get style(){return {"--xy-minimap-background-color-props":n.bgColor,...n.style}}},i,{get children(){return createComponent(Show,{get when(){return t.panZoom},children:y=>{let[N,k]=createSignal();return onMount(()=>{let _=XYMinimap({domNode:N(),panZoom:y(),getTransform:()=>t.transform,getViewScale:h});createEffect(()=>{_.update({translateExtent:t.translateExtent,width:t.width,height:t.height,inversePan:n.inversePan,zoomStep:n.zoomStep,pannable:n.pannable,zoomable:n.zoomable});}),onCleanup(()=>{_.destroy();});}),(()=>{var _=Cl(),j=_.firstChild,je=j.nextSibling;return use(k,_),insert(j,()=>t.ariaLabelConfig["minimap.ariaLabel"]),insert(_,createComponent(Index,{get each(){return R()},children:z=>{let H=createMemo(()=>o.get(z())),ae=()=>!!(H()&&nodeHasDimensions(H())&&!H().hidden);return createComponent(Show,{get when(){return memo(()=>!!ae())()&&getNodeDimensions(H())},children:ne=>createComponent(Bo,{get x(){return H().internals.positionAbsolute.x},get y(){return H().internals.positionAbsolute.y},get borderRadius(){return n.nodeBorderRadius},get strokeWidth(){return n.nodeStrokeWidth},get shapeRendering(){return g()},get width(){return ne().width},get height(){return ne().height},get selected(){return H().selected},get color(){return a()?.call(null,H())},get strokeColor(){return s().call(null,H())},get class(){return m().call(null,H())}})})}}),je),effect(z=>{var H=n.width,ae=n.height,ne=`${w()} ${M()} ${O()} ${B()}`,le=c(),be=n.maskColor,we=n.maskStrokeColor,J=V(),Me=c(),re=`M${w()-P()},${M()-P()}h${O()+P()*2}v${B()+P()*2}h${-O()-P()*2}z
2
+ M${l().x},${l().y}h${l().width}v${l().height}h${-l().width}z`;return H!==z.e&&setAttribute(_,"width",z.e=H),ae!==z.t&&setAttribute(_,"height",z.t=ae),ne!==z.a&&setAttribute(_,"viewBox",z.a=ne),le!==z.o&&setAttribute(_,"aria-labelledby",z.o=le),be!==z.i&&((z.i=be)!=null?_.style.setProperty("--xy-minimap-mask-background-color-props",be):_.style.removeProperty("--xy-minimap-mask-background-color-props")),we!==z.n&&((z.n=we)!=null?_.style.setProperty("--xy-minimap-mask-stroke-color-props",we):_.style.removeProperty("--xy-minimap-mask-stroke-color-props")),J!==z.s&&((z.s=J)!=null?_.style.setProperty("--xy-minimap-mask-stroke-width-props",J):_.style.removeProperty("--xy-minimap-mask-stroke-width-props")),Me!==z.h&&setAttribute(j,"id",z.h=Me),re!==z.r&&setAttribute(je,"d",z.r=re),z},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),_})()}})}}))};var Hl=template("<div>"),Xe=e=>{let t=mergeProps({variant:"handle",minWidth:10,minHeight:10,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE,keepAspectRatio:false,autoScale:true,style:{}},e),[o,r]=splitProps(t,["nodeId","variant","position","minWidth","minHeight","maxWidth","maxHeight","keepAspectRatio","autoScale","onResizeStart","onResize","onResizeEnd","shouldResize","class","children","color","style"]),n,{store:i,nodeLookup:a,actions:s}=x(),m=ve(),g=()=>o.nodeId??m(),c=()=>o.variant==="line",l=()=>o.position??(c()?"right":"bottom-right"),d=()=>l().split("-");return onMount(()=>{let u=XYResizer({domNode:n,nodeId:g(),getStoreItems:()=>({nodeLookup:a,transform:i.transform,snapGrid:i.snapGrid,snapToGrid:!!i.snapGrid,nodeOrigin:i.nodeOrigin,paneDomNode:i.domNode}),onChange:(p,h)=>{let b=new Map,v=p.x&&p.y?{x:p.x,y:p.y}:void 0;b.set(g(),{...p,position:v});for(let P of h)b.set(P.id,{position:P.position});s.setNodes(P=>b.has(P.id),produce(P=>{let w=b.get(P.id);P.width=w.width,P.height=w.height,P.position={x:w.position?.x??P.position.x,y:w.position?.y??P.position.y};}));}});createEffect(()=>{u.update({controlPosition:l(),boundaries:{minWidth:o.minWidth,minHeight:o.minHeight,maxWidth:o.maxWidth,maxHeight:o.maxHeight},keepAspectRatio:!!o.keepAspectRatio,onResizeStart:o.onResizeStart,onResize:o.onResize,onResizeEnd:o.onResizeEnd,shouldResize:o.shouldResize});}),onCleanup(()=>{u.destroy();});}),(()=>{var u=Hl(),p=n;return typeof p=="function"?use(p,u):n=u,spread(u,mergeProps$1({get class(){return ar(["solid-flow__resize-control",o.variant,i.noDragClass,...d(),o.class])},get style(){return {"border-color":c()?o.color:void 0,"background-color":c()?void 0:o.color,scale:c()||!o.autoScale?void 0:Math.max(1/i.viewport.zoom,1),...o.style}}},r),false,true),insert(u,()=>o.children),u})()};var td=e=>{let t=mergeProps({autoScale:true,visible:true},e),[o,r]=splitProps(e,["handleClass","handleStyle","lineClass","lineStyle"]);return createComponent(Show,{get when(){return t.visible},get children(){return [createComponent(For,{each:XY_RESIZER_LINE_POSITIONS,children:n=>createComponent(Xe,mergeProps$1({variant:"line",position:n,get class(){return o.lineClass},get style(){return o.lineStyle}},r))}),createComponent(For,{each:XY_RESIZER_HANDLE_POSITIONS,children:n=>createComponent(Xe,mergeProps$1({position:n,get class(){return o.handleClass},get style(){return o.handleStyle}},r))})]}})};function Zb(){let{store:e}=x();return ()=>e.connection}function od(){let{store:e}=x();return ()=>e.nodes}function nd(){let{store:e}=x();return ()=>e.edges}function rd(){let{store:e}=x();return ()=>e.viewport}function ew(){let{store:e,edgeLookup:t,actions:o}=x();return r=>{let n=t.get(r);if(!n)return;(n.selectable||e.elementsSelectable&&typeof n.selectable>"u")&&batch(()=>{o.setSelectionRect(void 0),o.setSelectionRectMode(void 0),n.selected?n.selected&&e.multiselectionKeyPressed&&o.unselectNodesAndEdges({nodes:[],edges:[n]}):o.addSelectedEdges([r]);});}}function nw(e){let{nodeLookup:t}=x();return ()=>t.get(e())}var dw=e=>{let{connectionLookup:t}=x(),o=()=>{let g=useContext(ie);return g?g():""},r=()=>e().handleId,n=()=>e().handleType,i=()=>e().id??o(),[a,s]=createSignal([]),m=()=>`${i()}${n()?r()?`-${n()}-${r()}`:`-${n()}`:""}`;return createEffect(g=>{let c=t.get(m());return areConnectionMapsEqual(c,g)||(g=c,s(Array.from(g?.values()??[]))),c}),a};function pw(e){let{nodeLookup:t}=x(),o=[];return createMemo(()=>{let n=[],i=e();if(!i)return;let a=Array.isArray(i)?i:[i];for(let s of a){let m=t.get(s)?.internals.userNode;m&&n.push({id:m.id,type:m.type,data:m.data});}return shallowNodeData(n,o)||(o=n),Array.isArray(i)?n:n[0]})}function We(){let{store:e,actions:t,nodeLookup:o,edgeLookup:r,connectionLookup:n}=x(),i=l=>{let d=et(l)?l:o.get(l.id),u=d.parentId?evaluateAbsolutePosition(d.position,d.measured,d.parentId,o,e.nodeOrigin):d.position,p={...d,position:u,width:d.measured?.width??d.width,height:d.measured?.height??d.height};return nodeToRect(p)},a=(l,d,u={replace:false})=>{t.setNodes(p=>p.id===l,p=>{let h=typeof d=="function"?d(p):d;return u?.replace&&et(h)?h:{...p,...h}});},s=(l,d,u={replace:false})=>{t.setEdges(p=>p.id===l,p=>{let h=typeof d=="function"?d(p):d;return u.replace&&uo(h)?h:{...p,...h}});},m=l=>o.get(l),g=l=>{let d=Array.isArray(l)?l:[l];t.setNodes(u=>[...u,...d]);},c=l=>{let d=Array.isArray(l)?l:[l];t.setEdges(u=>[...u,...d]);};return {zoomIn:t.zoomIn,zoomOut:t.zoomOut,getInternalNode:m,setCenter:t.setCenter,fitView:t.fitView,getNode:l=>m(l)?.internals.userNode,getNodes:l=>l?Go(o,l):e.nodes,getEdge:l=>r.get(l),getEdges:l=>l?Go(r,l):e.edges,addNodes:g,addEdges:c,getViewport:()=>unwrap(e.viewport),setViewport:async(l,d)=>{let u=e.viewport;return e.panZoom?(await e.panZoom.setViewport({x:l.x??u.x,y:l.y??u.y,zoom:l.zoom??u.zoom},d),Promise.resolve(true)):Promise.resolve(false)},getZoom:()=>e.viewport.zoom,setZoom:(l,d)=>{let u=e.panZoom;return u?u.scaleTo(l,{duration:d?.duration}):Promise.resolve(false)},fitBounds:async(l,d)=>{if(!e.panZoom)return Promise.resolve(false);let u=getViewportForBounds(l,e.width,e.height,e.minZoom,e.maxZoom,d?.padding??.1);return await e.panZoom.setViewport(u,{duration:d?.duration,ease:d?.ease,interpolate:d?.interpolate}),Promise.resolve(true)},getIntersectingNodes:(l,d=true,u)=>{let p=isRectObject(l),h=p?l:i(l);return h?(u||e.nodes).filter(b=>{let v=o.get(b.id);if(!v||!p&&b.id===l.id)return false;let P=nodeToRect(v),w=getOverlappingArea(P,h);return d&&w>0||w>=h.width*h.height}):[]},isNodeIntersecting:(l,d,u=true)=>{let h=isRectObject(l)?l:i(l);if(!h)return false;let b=getOverlappingArea(h,d);return u&&b>0||b>=h.width*h.height},deleteElements:async({nodes:l=[],edges:d=[]})=>{let{nodes:u,edges:p}=await getElementsToRemove({nodesToRemove:l,edgesToRemove:d,nodes:e.nodes,edges:e.edges,onBeforeDelete:e.onBeforeDelete});return batch(()=>{if(p){let h=e.edges.filter(b=>!p.some(({id:v})=>v===b.id));e.onEdgesDelete?.(p),t.setEdges(h);}if(u){let h=e.nodes.filter(b=>!u.some(({id:v})=>v===b.id));e.onNodesDelete?.(u),t.setNodes(h);}}),{deletedNodes:u,deletedEdges:p}},screenToFlowPosition:(l,d={snapToGrid:true})=>{if(!e.domNode)return l;let u=d.snapToGrid?e.snapGrid:false,{x:p,y:h,zoom:b}=e.viewport,{x:v,y:P}=e.domNode.getBoundingClientRect(),w={x:l.x-v,y:l.y-P};return pointToRendererPoint(w,[p,h,b],u!==null,u||[1,1])},flowToScreenPosition:l=>{if(!e.domNode)return l;let{x:d,y:u,zoom:p}=e.viewport,{x:h,y:b}=e.domNode.getBoundingClientRect(),v=rendererPointToPoint(l,[d,u,p]);return {x:v.x+h,y:v.y+b}},toObject:()=>structuredClone({nodes:[...unwrap(e.nodes)],edges:[...unwrap(e.edges)],viewport:{...unwrap(e.viewport)}}),updateNode:a,updateNodeData:(l,d,u)=>{let p=o.get(l)?.internals.userNode;if(!p)return;let h=typeof d=="function"?d(p):d;a(l,b=>({...b,data:u?.replace?h:{...b.data,...h}}));},updateEdge:s,getNodesBounds:l=>getNodesBounds(l,{nodeLookup:o,nodeOrigin:e.nodeOrigin}),getHandleConnections:({type:l,id:d,nodeId:u})=>Array.from(n.get(`${u}-${l}-${d??null}`)?.values()??[])}}function Go(e,t){let o=[];for(let r of t){let n=e.get(r);if(n){let i="internals"in n?n.internals?.userNode:n;o.push(i);}}return o}function vw(){let{store:e,actions:t}=x();return r=>{let n=Array.isArray(r)?r:[r],i=[];for(let a of n){let s=e.domNode?.querySelector(`.solid-flow__node[data-id="${a}"]`);s&&i.push([a,{id:a,nodeElement:s,force:true}]);}t.requestUpdateNodeInternals(i);}}var vd=template("<div class=solid-flow__node-toolbar>"),Zw=e=>{let{store:t}=x(),{getNodes:o,getNodesBounds:r,getInternalNode:n}=We(),i=mergeProps({offset:10,position:"top",align:"center",style:{}},e),[a,s]=splitProps(i,["nodeId","position","align","offset","isVisible","style","children"]),m=()=>{let h=useContext(ie);return h?h():""},g=()=>(Array.isArray(a.nodeId)?a.nodeId:[a.nodeId??m()]).reduce((b,v)=>{let P=n(v);return P&&b.push(P),b},[]),c=()=>{let h=r(g());return h?getNodeToolbarTransform(h,t.viewport,a.position,a.offset,a.align):""},l=()=>{let h=g();return h.length===0?1:Math.max(...h.map(b=>(b.internals.z||5)+1))},d=()=>o().filter(h=>h.selected).length,u=()=>{let h=g();return typeof a.isVisible=="boolean"?a.isVisible:h.length===1&&!!h[0].selected&&d()===1},p=()=>!!(t.domNode&&u()&&g().length>0);return createComponent(Show,{get when(){return p()},get children(){return createComponent(Portal,{get mount(){return t.domNode},get children(){var h=vd();return spread(h,mergeProps$1({get"data-id"(){return g().reduce((b,v)=>`${b}${v.id} `,"").trim()},get style(){return {position:"absolute",transform:c(),"z-index":l(),...a.style}}},s),false,true),insert(h,()=>a.children),h}})}})};var Od=template("<div class=solid-flow__selection>"),$e=e=>{let t=mergeProps({isVisible:true},e),o=()=>({...t.width!=null&&{width:typeof t.width=="string"?t.width:T(t.width)},...t.height!=null&&{height:typeof t.height=="string"?t.height:T(t.height)},...t.x!=null&&t.y!=null&&{transform:`translate(${e.x}px, ${e.y}px)`}});return createComponent(Show,{get when(){return t.isVisible},get children(){var r=Od();return effect(n=>style(r,o(),n)),r}})};var Xd=template("<div>"),Ht=e=>{let{store:t,nodeLookup:o,actions:r}=x(),[n,i]=createSignal(),a=()=>t.selectionRectMode==="nodes"?getInternalNodesBounds(o,{filter:c=>!!c.selected}):null;createEffect(()=>{t.disableKeyboardA11y||n()?.focus({preventScroll:true});});let s=c=>{let l=t.nodes.filter(d=>d.selected);e.onSelectionContextMenu?.({nodes:l,event:c});},m=c=>{let l=t.nodes.filter(d=>d.selected);e.onSelectionClick?.({nodes:l,event:c});};Le(n,()=>({disabled:false,onDrag:(c,l,d,u)=>{e.onNodeDrag?.({event:c,targetNode:null,nodes:u});},onDragStart:(c,l,d,u)=>{e.onNodeDragStart?.({event:c,targetNode:null,nodes:u});},onDragStop:(c,l,d,u)=>{e.onNodeDragStop?.({event:c,targetNode:null,nodes:u});}}));let g=c=>{let l=Oe[c.key];l&&(c.preventDefault(),r.moveSelectedNodes(l,c.shiftKey?4:1));};return createComponent(Show,{get when(){return memo(()=>!!(t.selectionRectMode==="nodes"&&a()&&isNumeric(a()?.x)))()&&isNumeric(a()?.y)},get children(){var c=Xd();return addEventListener(c,"keydown",t.disableKeyboardA11y?void 0:g,true),c.$$contextmenu=s,c.$$click=m,use(i,c),insert(c,createComponent($e,{width:"100%",height:"100%",x:0,y:0})),effect(l=>{var d=ar("solid-flow__selection-wrapper",t.noPanClass),u=T(a()?.width),p=T(a()?.height),h=`translate(${a()?.x}px, ${a()?.y}px)`,b=t.disableKeyboardA11y?void 0:"button",v=t.disableKeyboardA11y?void 0:-1;return d!==l.e&&className(c,l.e=d),u!==l.t&&((l.t=u)!=null?c.style.setProperty("width",u):c.style.removeProperty("width")),p!==l.a&&((l.a=p)!=null?c.style.setProperty("height",p):c.style.removeProperty("height")),h!==l.o&&((l.o=h)!=null?c.style.setProperty("transform",h):c.style.removeProperty("transform")),b!==l.i&&setAttribute(c,"role",l.i=b),v!==l.n&&setAttribute(c,"tabindex",l.n=v),l},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),c}})};delegateEvents(["click","contextmenu","keydown"]);var Jd=template('<a href=https://solidflow.dev target=_blank rel="noopener noreferrer"aria-label="Solid Flow attribution">Solid Flow'),Vt=e=>createComponent(Show,{get when(){return !e.proOptions?.hideAttribution},get children(){return createComponent(se,{get position(){return e.position??"bottom-right"},class:"solid-flow__attribution","data-message":"Feel free to remove the attribution or check out how you could support us: https://solidflow.dev/support-us",get children(){return Jd()}})}});function on(e){return e!==null&&typeof e=="object"}function rc(e){return on(e)?e.modifier||[]:[]}function ic(e){return e==null?"":on(e)?e.key:e}function sc(e,t){if(!t)return false;let o=ic(t);if(!o)return false;let r=rc(t);if(Array.isArray(r)){let n=r.flatMap(i=>i).every(i=>{switch(i.toLowerCase()){case "meta":return e.metaKey;case "ctrl":return e.ctrlKey;case "alt":return e.altKey;case "shift":return e.shiftKey;default:return false}});return e.key===o&&n}return e.key===o}function q(e,t){return t?(Array.isArray(t)?t:[t]).some(r=>sc(e,r)):false}var Yt=e=>{let{store:t,actions:o}=x(),{deleteElements:r}=We(),n=mergeProps({selectionKey:"Shift",multiSelectionKey:isMacOs()?"Meta":"Control",deleteKey:"Backspace",panActivationKey:" ",zoomActivationKey:isMacOs()?"Meta":"Control"},e),i=()=>{batch(()=>{o.setSelectionRect(void 0),o.setSelectionKeyPressed(false),o.setMultiselectionKeyPressed(false),o.setDeleteKeyPressed(false),o.setPanActivationKeyPressed(false),o.setZoomActivationKeyPressed(false);});},a=async()=>{let g=t.nodes.filter(u=>u.selected),c=t.edges.filter(u=>u.selected),{deletedNodes:l,deletedEdges:d}=await r({nodes:g,edges:c});(l.length>0||d.length>0)&&t.onDelete?.({nodes:l,edges:d});},s=g=>{batch(()=>{q(g,n.selectionKey)&&o.setSelectionKeyPressed(true),q(g,n.multiSelectionKey)&&o.setMultiselectionKeyPressed(true),q(g,n.deleteKey)&&!isInputDOMNode(g)&&(g.ctrlKey||g.metaKey||g.shiftKey||(o.setDeleteKeyPressed(true),a())),q(g,n.panActivationKey)&&o.setPanActivationKeyPressed(true),q(g,n.zoomActivationKey)&&o.setZoomActivationKeyPressed(true);});},m=g=>{batch(()=>{q(g,n.selectionKey)&&o.setSelectionKeyPressed(false),q(g,n.multiSelectionKey)&&o.setMultiselectionKeyPressed(false),q(g,n.deleteKey)&&o.setDeleteKeyPressed(false),q(g,n.panActivationKey)&&o.setPanActivationKeyPressed(false),q(g,n.zoomActivationKey)&&o.setZoomActivationKeyPressed(false);});};return onMount(()=>{window.addEventListener("keydown",s),window.addEventListener("keyup",m),window.addEventListener("blur",i),window.addEventListener("contextmenu",i),onCleanup(()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",m),window.removeEventListener("blur",i),window.removeEventListener("contextmenu",i);});}),null};var pe=()=>({id:"1",nodes:[],edges:[],nodeOrigin:[0,0],nodeExtent:infiniteExtent,defaultEdgeOptions:{},colorMode:"system",colorModeSSR:"light",connectionMode:"strict",connectionLineType:"default",connectionRadius:20,nodeDragThreshold:1,minZoom:.5,maxZoom:2,selectionMode:"partial",fitView:false,noPanClass:"nopan",noDragClass:"nodrag",noWheelClass:"nowheel",autoPanOnNodeDrag:true,autoPanOnConnect:true,autoPanOnNodeFocus:true,autoPanSpeed:15,elevateEdgesOnSelect:true,nodesDraggable:true,nodesConnectable:true,nodesFocusable:true,edgesFocusable:true,elementsSelectable:true,selectNodesOnDrag:true,elevateNodesOnSelect:true,onlyRenderVisibleElements:false,disableKeyboardA11y:false,defaultMarkerColor:"#b1b1b7",ariaLiveMessage:"",style:{},isValidConnection:()=>true,onFlowError:devWarn});var an={nodeOrigin:[0,0],nodeExtent:infiniteExtent,elevateNodesOnSelect:true,defaults:{}},uc={...an,checkEquality:true};function ln(e,t){let o={...e};for(let r in t)t[r]!==void 0&&(o[r]=t[r]);return o}function dn(e,t,o,r){let n=ln(uc,r),i=e.length>0,a=new Map(t),s=n?.elevateNodesOnSelect?1e3:0;t.clear(),o.clear();for(let m of e){let g=a.get(m.id);if(n.checkEquality&&m===g?.internals.userNode)t.set(m.id,g);else {let c=getNodePositionWithOrigin(m,n.nodeOrigin),l=isCoordinateExtent(m.extent)?m.extent:n.nodeExtent,d=clampPosition(c,l,getNodeDimensions(m));g={...n.defaults,...m,measured:{width:m.measured?.width,height:m.measured?.height},internals:{positionAbsolute:d,handleBounds:m.measured?g?.internals.handleBounds:void 0,z:Ue(m,s),userNode:m}},t.set(m.id,g);}(g.measured===void 0||g.measured.width===void 0||g.measured.height===void 0)&&!g.hidden&&(i=false),m.parentId&&Zt(g,t,o,r);}return i}function gc(e,t){if(!e.parentId)return;let o=t.get(e.parentId);o?o.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]));}function Zt(e,t,o,r){let{elevateNodesOnSelect:n,nodeOrigin:i,nodeExtent:a}=ln(an,r),s=e.parentId,m=t.get(s);if(!m)return;gc(e,o);let g=n?1e3:0,{x:c,y:l,z:d}=pc(e,m,i,a,g),{positionAbsolute:u}=e.internals,p=c!==u.x||l!==u.y;(p||d!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:p?{x:c,y:l}:u,z:d}});}function Ue(e,t){return (isNumeric(e.zIndex)?e.zIndex:0)+(e.selected?t:0)}function pc(e,t,o,r,n){let{x:i,y:a}=t.internals.positionAbsolute,s=getNodeDimensions(e),m=getNodePositionWithOrigin(e,o),g=isCoordinateExtent(e.extent)?clampPosition(m,e.extent,s):m,c=clampPosition({x:i+g.x,y:a+g.y},r,s);e.extent==="parent"&&(c=clampPositionToParent(c,s,t));let l=Ue(e,n),d=t.internals.z??0;return {x:c.x,y:c.y,z:d>=l?d+1:l}}function Wt(e,t,o,r,n,i){let a=n,s=r.get(a)||new Map;r.set(a,s.set(o,t)),a=`${n}-${e}`;let m=r.get(a)||new Map;if(r.set(a,m.set(o,t)),i){a=`${n}-${e}-${i}`;let g=r.get(a)||new Map;r.set(a,g.set(o,t));}}function Ut(e,t,o,r,n){let i=r,a=o.get(i);a&&(a.delete(t),a.size===0&&o.delete(i)),i=`${r}-${e}`;let s=o.get(i);if(s&&(s.delete(t),s.size===0&&o.delete(i)),n){i=`${r}-${e}-${n}`;let m=o.get(i);m&&(m.delete(t),m.size===0&&o.delete(i));}}var zc={input:It,output:Mt,default:$t,group:kt},Tc={straight:ut,smoothstep:ct,default:nt,step:mt},Rc=(e,t,o,r,n,i)=>{if(t&&!o&&r&&n){let a=getInternalNodesBounds(i,{filter:s=>!!((s.width||s.initialWidth)&&(s.height||s.initialHeight))});return getViewportForBounds(a,r,n,.5,2,.1)}else return o??{x:0,y:0,zoom:1}},qe=e=>{let t=mergeProps(pe(),e),o=new ReactiveMap,r=new ReactiveMap,n=new ReactiveMap,i=new ReactiveMap,a=new ReactiveMap,s=batch(()=>dn(t.nodes,o,r,{nodeExtent:t.nodeExtent,nodeOrigin:t.nodeOrigin,elevateNodesOnSelect:t.elevateNodesOnSelect,checkEquality:true})),m=Rc(s,t.fitView,t.initialViewport,t.width??0,t.height??0,o),g=createMediaQuery("(prefers-color-scheme: dark)",t.colorModeSSR==="dark"),[c,l]=createSignal(t),[d,u]=Z(()=>mergeAriaLabelConfig(c().ariaLabelConfig)),[p,h]=Z(()=>c().ariaLiveMessage),[b,v]=createSignal(void 0),[P,w]=createSignal(initialConnection),[M,O]=createSignal(null),[B,V]=createSignal(false),[A,R]=Z(()=>c().elementsSelectable),[y,N]=Z(()=>c().height),[k,_]=Z(()=>c().minZoom),[j,je]=Z(()=>c().maxZoom),[z,H]=Z(()=>c().nodesDraggable),[ae,ne]=Z(()=>c().nodesDraggable),[le,be]=createSignal(null),[we,J]=createSignal(),[Me,re]=createSignal(),[fn,hn]=Z(()=>c().snapGrid),[yn,mm]=Z(()=>c().translateExtent??infiniteExtent),[bn,wn]=Z(()=>c().width),[xn,jt]=createSignal(false),[Cn,Jt]=createSignal(false),[Sn,Qt]=createSignal(false),[vn,eo]=createSignal(false),[Pn,to]=createSignal(false),de=ze(()=>c().nodes),De=ze(()=>c().edges),ce=ze(()=>c().viewport??m),Nn=createMemo(()=>[ce.get().x,ce.get().y,ce.get().zoom]),C=mergeProps({width:0,height:0},c,{get _colorMode(){return c().colorMode},get _colorModeSSR(){return c().colorModeSSR},get _connection(){return P()},get _nodeTypes(){return c().nodeTypes},get _edgeTypes(){return c().edgeTypes},get ariaLabelConfig(){return d()},get ariaLiveMessage(){return p()},get clickConnectStartHandle(){return b()},get colorMode(){return this._colorMode==="system"?g()?"dark":"light":this._colorMode},get connection(){let f=P();return {...f,from:f.inProgress?pointToRendererPoint(f.from,this.transform):f.from,to:f.inProgress?pointToRendererPoint(f.to,this.transform):f.to}},get domNode(){return M()},get dragging(){return B()},get edgeTypes(){return {...Tc,...this._edgeTypes}},get elementsSelectable(){return A()},get height(){return y()},get lib(){return "solid"},get onError(){return c().onFlowError},get maxZoom(){return j()},get minZoom(){return k()},get nodes(){return de.get()},get nodesConnectable(){return z()},get nodesDraggable(){return ae()},get nodeTypes(){return {...zc,...this._nodeTypes}},get panZoom(){return le()},get selectedNodes(){return c().nodes.filter(f=>f.selected)},get selectedEdges(){return c().edges.filter(f=>f.selected)},get selectionRect(){return we()},get selectionRectMode(){return Me()},get snapGrid(){return fn()},get viewport(){return ce.get()},get viewportInitialized(){return le()!==null},get visibleEdgeIds(){return _n()},get visibleNodeIds(){return En()},get visibleNodesMap(){return oo()},get transform(){return Nn()},get translateExtent(){return yn()},get width(){return bn()},get selectionKeyPressed(){return xn()},get multiselectionKeyPressed(){return Cn()},get deleteKeyPressed(){return Sn()},get panActivationKeyPressed(){return vn()},get zoomActivationKeyPressed(){return Pn()}}),oo=createMemo(()=>o),En=createMemo(()=>Array.from(oo().values()).map(f=>f.id)),_n=createMemo(()=>Array.from(a.values()).map(f=>f.id)),$n=f=>a.get(f),no=async f=>C.panZoom?fitViewport({nodes:o,width:C.width,height:C.height,panZoom:C.panZoom,minZoom:C.minZoom,maxZoom:C.maxZoom},f??c().fitViewOptions):false,ro=()=>{V(false),J(void 0),re(void 0),jt(false),Jt(false),Qt(false),eo(false),to(false),w({...initialConnection}),v(void 0),ce.set(c().initialViewport??{x:0,y:0,zoom:1}),h(""),hn(void 0);},kn=f=>{De.set(S=>addEdge(f,S));},Je=false,In=f=>{Je=!f;},io=(f,S=false)=>{de.set(I=>f.has(I.id),produce(I=>{I.dragging=S,I.position=f.get(I.id).position;}));},xe,Mn=f=>{if(xe){xe.push(...f);return}xe=f,requestIdleCallback(()=>{batch(()=>{let S=new Map(xe);xe=void 0;let{changes:I,updatedInternals:E}=updateNodeInternals(S,o,r,C.domNode,C.nodeOrigin);if(!E)return;updateAbsolutePositions(o,r,{nodeOrigin:C.nodeOrigin,nodeExtent:C.nodeExtent});let $=I.reduce((D,F)=>{let K=o.get(F.id)?.internals.userNode;return K&&D.set(K.id,F),D},new Map);de.set(D=>$.has(D.id),produce(D=>{let F=$.get(D.id);switch(F.type){case "dimensions":{F.setAttributes&&(D.width=F.dimensions?.width??D.width,D.height=F.dimensions?.height??D.height),D.measured={...D.measured,...F.dimensions};break}case "position":D.position=F.position??D.position;break}})),Je||(Je=true,no());});});},so=async(f,S)=>C.panZoom?C.panZoom.scaleBy(f,S):false,Dn=f=>so(1.2,f),An=f=>so(1/1.2,f),On=async(f,S,I)=>{let E=typeof I?.zoom<"u"?I.zoom:C.maxZoom,$=C.panZoom;return $?(await $.setViewport({x:C.width/2-f*E,y:C.height/2-S*E,zoom:E},{duration:I?.duration,ease:I?.ease,interpolate:I?.interpolate}),Promise.resolve(true)):Promise.resolve(false)},zn=f=>{C.panZoom?.setClickDistance(f);},me=({nodes:f,edges:S}={})=>{let I=new Set((f||C.nodes).map(({id:$})=>$));I.size&&de.set($=>I.has($.id),produce($=>{$.selected=false;}));let E=new Set((S||C.edges).map(({id:$})=>$));E.size&&De.set($=>E.has($.id),produce($=>{$.selected=false;}));},ao=f=>{let S=C.multiselectionKeyPressed,I=new Map;de.set(E=>{let $=f.includes(E.id),D=S&&E.selected||$;return I.set(E.id,D),E.selected!==D},produce(E=>{let $=o.get(E.id);$&&($.selected=I.get(E.id)),E.selected=I.get(E.id);})),S||me({nodes:[]});},lo=f=>{let S=C.multiselectionKeyPressed,I=new Map;De.set(E=>{let $=f.includes(E.id),D=S&&E.selected||$;return I.set(E.id,D),E.selected!==D},produce(E=>{E.selected=I.get(E.id);})),S||me({edges:[]});},Tn=(f,S,I)=>{let E=C.nodes.find($=>$.id===f);E&&(batch(()=>{J(void 0),re(void 0);}),E.selected?(S||E.selected&&C.multiselectionKeyPressed)&&(me({nodes:[E],edges:[]}),requestAnimationFrame(()=>I?.blur())):ao([f]));},Rn=f=>{let S=n.get(f);!S||!(S.selectable||C.elementsSelectable&&typeof S.selectable>"u")||(batch(()=>{J(void 0),re(void 0);}),S.selected?S.selected&&C.multiselectionKeyPressed&&me({nodes:[],edges:[S]}):lo([f]));},Ln=(f,S)=>{let I=new Map,E=C.snapGrid?.[0]??5,$=C.snapGrid?.[1]??5,D=f.x*E*S,F=f.y*$*S;for(let K of o.values()){if(!(K.selected&&(K.draggable||C.nodesDraggable&&typeof K.draggable>"u")))continue;let U={x:K.internals.positionAbsolute.x+D,y:K.internals.positionAbsolute.y+F};C.snapGrid&&(U=snapPosition(U,C.snapGrid));let{position:Ae,positionAbsolute:co}=calculateNodePosition({nodeId:K.id,nextPosition:U,nodeLookup:o,nodeExtent:C.nodeExtent,nodeOrigin:C.nodeOrigin,onError:C.onError});K.position=Ae,K.internals.positionAbsolute=co,I.set(K.id,K);}io(I);},Kn=f=>panBy({delta:f,panZoom:C.panZoom,transform:C.transform,translateExtent:C.translateExtent,width:C.width,height:C.height}),Bn=()=>{w({...initialConnection});},Hn=()=>{ro(),me();};return createEffect(()=>{C.panZoom?.syncViewport(C.viewport);}),createEffect(()=>{let f=le();f&&(createEffect(()=>{f.setScaleExtent([C.minZoom,C.maxZoom]);}),createEffect(()=>{f.setTranslateExtent(C.translateExtent);}));}),createComputed(mapArray(()=>C.nodes,f=>{createComputed(()=>{let S=untrack(()=>o.get(f.id)),I=C.elevateNodesOnSelect?1e3:0,E=clampPosition(getNodePositionWithOrigin(f,C.nodeOrigin),isCoordinateExtent(f.extent)?f.extent:C.nodeExtent,getNodeDimensions(f)),$={width:f.measured?.width??S?.measured?.width,height:f.measured?.height??S?.measured?.height},D={...f,measured:$,internals:{positionAbsolute:E,handleBounds:!f.measured&&!S?.measured?void 0:S?.internals.handleBounds,z:Ue(f,I),userNode:f}};o.set(f.id,D),f.parentId&&Zt(D,o,r,{nodeOrigin:C.nodeOrigin,nodeExtent:C.nodeExtent,elevateNodesOnSelect:C.elevateNodesOnSelect,checkEquality:true});}),onCleanup(()=>{});})),createEffect(()=>{let f=new Set(C.nodes.map(S=>S.id));for(let S of Array.from(o.keys()))f.has(S)||o.delete(S);}),createComputed(mapArray(()=>C.edges,f=>{let{source:S,target:I,sourceHandle:E=null,targetHandle:$=null}=f,D={edgeId:f.id,source:S,target:I,sourceHandle:E,targetHandle:$},F=`${S}-${E}--${I}-${$}`,K=`${I}-${$}--${S}-${E}`;createComputed(()=>{batch(()=>{Wt("source",D,K,i,S,E),Wt("target",D,F,i,I,$),n.set(f.id,f);});}),createComputed(()=>{let Q=o.get(f.source),U=o.get(f.target);if(!Q||!U)return;if(C.onlyRenderVisibleElements){if(!isEdgeVisible({sourceNode:Q,targetNode:U,width:C.width??0,height:C.height??0,transform:C.transform}))return;C.visibleNodesMap.set(Q.id,Q),C.visibleNodesMap.set(U.id,U);}let Ae=getEdgePosition({id:f.id,sourceNode:Q,targetNode:U,sourceHandle:f.sourceHandle||null,targetHandle:f.targetHandle||null,connectionMode:C.connectionMode,onError:C.onError});Ae&&a.set(f.id,{...C.defaultEdgeOptions,...f,...Ae,zIndex:getElevatedEdgeZIndex({selected:f.selected,zIndex:f.zIndex??C.defaultEdgeOptions.zIndex,sourceNode:Q,targetNode:U,elevateOnSelect:C.elevateEdgesOnSelect}),sourceNode:Q,targetNode:U,edge:f});}),onCleanup(()=>{batch(()=>{n.delete(f.id),a.delete(f.id),Ut("source",K,i,S,E),Ut("target",F,i,I,$);});});})),createEffect(()=>{let f=new Set(C.edges.map(S=>S.id));for(let S of Array.from(n.keys()))f.has(S)||(n.delete(S),i.delete(S),a.delete(S));}),{store:C,nodeLookup:o,edgeLookup:n,parentLookup:r,connectionLookup:i,actions:{getEdge:$n,applyInitialFitView:In,resetStoreValues:ro,requestUpdateNodeInternals:Mn,setAriaLabelConfig:u,setAriaLiveMessage:h,setClickConnectStartHandle:v,setConfig:l,setConnection:w,setDeleteKeyPressed:Qt,setDomNode:O,setDragging:V,get setEdges(){return De.set},setElementsSelectable:R,setHeight:N,setMultiselectionKeyPressed:Jt,get setNodes(){return de.set},setNodesConnectable:H,setNodesDraggable:ne,setPanActivationKeyPressed:eo,setPanZoom:be,setSelectionKeyPressed:jt,setSelectionRect:J,setSelectionRectMode:re,get setViewport(){return ce.set},setWidth:wn,setZoomActivationKeyPressed:to,addEdge:kn,updateNodePositions:io,zoomIn:Dn,zoomOut:An,fitView:no,setCenter:On,setPaneClickDistance:zn,unselectNodesAndEdges:me,addSelectedNodes:ao,addSelectedEdges:lo,handleNodeSelection:Tn,handleEdgeSelection:Rn,moveSelectedNodes:Ln,panBy:Kn,cancelConnection:Bn,reset:Hn}}};var Fc=template('<div class="solid-flow__container solid-flow__viewport-back">'),Yc=template('<div class="solid-flow__container solid-flow__edge-labels">'),Xc=template("<div role=application data-testid=solid-flow__wrapper>"),om=e=>{let t,o=mergeProps({...pe(),colorMode:"light",deleteKeyCode:"Backspace",defaultViewport:{x:0,y:0,zoom:1},multiSelectionKeyCode:isMacOs()?"Meta":"Control",nodeClickDistance:0,panOnScroll:false,panActivationKeyCode:"Space",preventScrolling:true,panOnDrag:true,panOnScrollSpeed:.5,panOnScrollMode:"free",paneClickDistance:0,reconnectRadius:10,selectionKeyCode:"Shift",selectionOnDrag:false,translateExtent:infiniteExtent,zoomActivationKeyCode:isMacOs()?"Meta":"Control",zoomOnPinch:true,zoomOnDoubleClick:true,zoomOnScroll:true},e),[r,n]=splitProps(o,["nodes","edges","nodeTypes","edgeTypes","width","height","fitView","fitViewOptions","nodeOrigin","nodeDragThreshold","paneClickDistance","nodeClickDistance","minZoom","maxZoom","initialViewport","viewport","translateExtent","nodeExtent","selectionKey","panActivationKey","deleteKey","multiSelectionKey","zoomActivationKey","panOnDrag","panOnScroll","panOnScrollMode","panOnScrollSpeed","selectionOnDrag","selectNodesOnDrag","preventScrolling","zoomOnScroll","zoomOnDoubleClick","zoomOnPinch","onlyRenderVisibleElements","autoPanOnConnect","autoPanOnNodeDrag","autoPanOnNodeFocus","autoPanSpeed","connectionRadius","connectionMode","connectionLineType","connectionLineComponent","connectionLineStyle","connectionLineContainerStyle","connectionDragThreshold","isValidConnection","clickConnect","reconnectRadius","selectionMode","elementsSelectable","nodesDraggable","nodesConnectable","nodesFocusable","edgesFocusable","disableKeyboardA11y","ariaLabelConfig","ariaLiveMessage","colorMode","colorModeSSR","class","style","snapGrid","defaultMarkerColor","defaultEdgeOptions","elevateNodesOnSelect","elevateEdgesOnSelect","noDragClass","noPanClass","noWheelClass","attributionPosition","proOptions","onInit","onMoveStart","onMove","onMoveEnd","onFlowError","onNodeClick","onNodeContextMenu","onNodeDrag","onNodeDragStart","onNodeDragStop","onNodePointerEnter","onNodePointerMove","onNodePointerLeave","onEdgeClick","onEdgeContextMenu","onEdgePointerEnter","onEdgePointerLeave","onPaneClick","onPaneContextMenu","onSelectionChange","onSelectionClick","onSelectionContextMenu","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onSelectionStart","onSelectionEnd","onConnect","onConnectStart","onConnectEnd","onReconnect","onReconnectStart","onReconnectEnd","onClickConnectStart","onClickConnectEnd","onBeforeConnect","onBeforeReconnect","onDelete","onBeforeDelete","deleteKeyCode","selectionKeyCode","panActivationKeyCode","multiSelectionKeyCode","zoomActivationKeyCode","children"]),i=Se,a=useContext(i)??qe(o),{store:s,actions:m}=a;onMount(()=>{m.applyInitialFitView(r.fitView),batch(()=>{m.setConfig(o),m.setDomNode(t);}),createResizeObserver(t,()=>{m.setWidth(t.clientWidth),m.setHeight(t.clientHeight);}),createEffect(()=>{m.setPaneClickDistance(r.paneClickDistance);}),onCleanup(()=>{m.reset();});});let g=()=>({width:T(r.width),height:T(r.height),...r.style});return (()=>{var c=Xc();c.addEventListener("scroll",d=>{d.currentTarget.scrollTo({top:0,left:0,behavior:"auto"});});var l=t;return typeof l=="function"?use(l,c):t=c,spread(c,mergeProps$1({get class(){return ar(["solid-flow","solid-flow__container",r.class,s.colorMode])},get style(){return g()}},n),false,true),insert(c,createComponent(i.Provider,{value:a,get children(){return [createComponent(Yt,{get selectionKey(){return r.selectionKey},get deleteKey(){return r.deleteKey},get panActivationKey(){return r.panActivationKey},get multiSelectionKey(){return r.multiSelectionKey},get zoomActivationKey(){return r.zoomActivationKey}}),createComponent(Et,{get panOnScrollMode(){return r.panOnScrollMode},get preventScrolling(){return r.preventScrolling},get zoomOnScroll(){return r.zoomOnScroll},get zoomOnDoubleClick(){return r.zoomOnDoubleClick},get zoomOnPinch(){return r.zoomOnPinch},get panOnScroll(){return r.panOnScroll},get panOnDrag(){return r.panOnDrag},get paneClickDistance(){return r.paneClickDistance},get onMoveStart(){return r.onMoveStart},get onMove(){return r.onMove},get onMoveEnd(){return r.onMoveEnd},get onViewportInitialized(){return r.onInit},get initialViewport(){return r.viewport||r.initialViewport},get children(){return createComponent(Pt,{get onPaneClick(){return r.onPaneClick},get onPaneContextMenu(){return r.onPaneContextMenu},get onSelectionStart(){return r.onSelectionStart},get onSelectionEnd(){return r.onSelectionEnd},get panOnDrag(){return r.panOnDrag},get selectionOnDrag(){return r.selectionOnDrag},get children(){return [createComponent(Nt,{get children(){return [Fc(),createComponent(wt,{get reconnectRadius(){return r.reconnectRadius},get onEdgeClick(){return r.onEdgeClick},get onEdgeContextMenu(){return r.onEdgeContextMenu},get onEdgePointerEnter(){return r.onEdgePointerEnter},get onEdgePointerLeave(){return r.onEdgePointerLeave},get defaultEdgeOptions(){return r.defaultEdgeOptions}}),Yc(),createComponent(_t,{get type(){return r.connectionLineType},get component(){return r.connectionLineComponent},get containerStyle(){return r.connectionLineContainerStyle},get style(){return r.connectionLineStyle}}),createComponent(vt,{get nodeClickDistance(){return r.nodeClickDistance},get onNodeClick(){return r.onNodeClick},get onNodeContextMenu(){return r.onNodeContextMenu},get onNodePointerEnter(){return r.onNodePointerEnter},get onNodePointerMove(){return r.onNodePointerMove},get onNodePointerLeave(){return r.onNodePointerLeave},get onNodeDrag(){return r.onNodeDrag},get onNodeDragStart(){return r.onNodeDragStart},get onNodeDragStop(){return r.onNodeDragStop}}),createComponent(Ht,{get onSelectionClick(){return r.onSelectionClick},get onSelectionContextMenu(){return r.onSelectionContextMenu},get onNodeDrag(){return r.onNodeDrag},get onNodeDragStart(){return r.onNodeDragStart},get onNodeDragStop(){return r.onNodeDragStop}})]}}),createComponent($e,{get isVisible(){return !!s.selectionRect&&s.selectionRectMode==="user"},get width(){return s.selectionRect?.width},get height(){return s.selectionRect?.height},get x(){return s.selectionRect?.x},get y(){return s.selectionRect?.y}})]}})}}),createComponent(Vt,{get proOptions(){return r.proOptions},get position(){return r.attributionPosition}}),createComponent(at,{}),memo(()=>r.children)]}})),c})()};var sm=e=>{let t=mergeProps(pe(),e),o=qe(t);onCleanup(()=>{o.actions.reset();});let r=Se.Provider;return createComponent(r,{value:o,get children(){return e.children}})};var lm=e=>{let[t,o]=createStore(e);return [t,o]};var cm=e=>{let[t,o]=createStore(e);return [t,o]};
3
+ export{Ba as Background,L as BaseEdge,xr as BezierEdge,nt as BezierEdgeInternal,_t as ConnectionLine,ue as ControlButton,dl as Controls,$t as DefaultNode,Pe as EdgeLabel,tt as EdgeLabelRenderer,Rr as EdgeReconnectAnchor,wt as EdgeRenderer,dt as EdgeWrapper,kt as GroupNode,ee as Handle,It as InputNode,ft as Marker,yt as MarkerDefinition,zl as MiniMap,vt as NodeRenderer,td as NodeResizer,Ht as NodeSelection,Zw as NodeToolbar,St as NodeWrapper,Mt as OutputNode,Pt as Pane,se as Panel,Xe as ResizeControl,$e as Selection,oi as SmoothStepEdge,ct as SmoothStepEdgeInternal,om as SolidFlow,sm as SolidFlowProvider,li as StepEdge,mt as StepEdgeInternal,pi as StraightEdge,ut as StraightEdgeInternal,Nt as Viewport,Ds as ViewportPortal,Et as Zoom,lm as createEdgeStore,cm as createNodeStore,Zb as useConnection,nd as useEdges,ew as useHandleEdgeSelect,nw as useInternalNode,dw as useNodeConnections,od as useNodes,pw as useNodesData,We as useSolidFlow,vw as useUpdateNodeInternals,rd as useViewport};
@@ -0,0 +1,207 @@
1
+ import{For as Ts}from"solid-js";import{createContext as ur,useContext as yr}from"solid-js";var xo=ur();function ke(){let e=yr(xo);if(!e)throw new Error("solid-flow: Your application must be wrapped with <SolidFlow> in order to invoke useEdgeId");return e}import{createContext as as,useContext as ls}from"solid-js";import{ReactiveMap as ze}from"@solid-primitives/map";import{createMediaQuery as Bi}from"@solid-primitives/media";import{addEdge as Vi,calculateNodePosition as Ki,clampPosition as Xi,fitViewport as Fi,getEdgePosition as Yi,getElevatedEdgeZIndex as Wi,getInternalNodesBounds as Zi,getNodeDimensions as $i,getNodePositionWithOrigin as Ui,getViewportForBounds as Ji,infiniteExtent as Gi,initialConnection as Yo,isCoordinateExtent as ji,isEdgeVisible as qi,mergeAriaLabelConfig as Qi,panBy as es,pointToRendererPoint as ln,snapPosition as os,updateAbsolutePositions as ts,updateNodeInternals as ns}from"@xyflow/system";import{batch as Ce,createComputed as Re,createEffect as Te,createMemo as Ue,createSignal as re,mapArray as cn,mergeProps as pn,onCleanup as gn,untrack as rs}from"solid-js";import{produce as ve}from"solid-js/store";import Tr from"clsx";import{mergeProps as vr,Show as Ut,splitProps as Mr}from"solid-js";import xr from"clsx";import{mergeProps as wr,splitProps as Cr}from"solid-js";import{isEdgeBase as fr,isNodeBase as hr}from"@xyflow/system";import{createMemo as Zt,createSignal as Sr}from"solid-js";import{createStore as Nr}from"solid-js/store";var wo=e=>hr(e),$t=e=>fr(e),J=e=>e===void 0?void 0:`${e}px`,Xe={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};function se(e){let o=Zt(()=>Sr(e()));return[()=>o()[0](),S=>o()[1](S)]}function Fe(e){let o=Zt(()=>{let[t,N]=Nr(e());return{get:t,set:N}});return{get(){return o().get},get set(){return o().set}}}import{Show as Pr}from"solid-js";import{Portal as Er}from"solid-js/web";var Co=e=>{let{store:o}=z(),t=()=>o.domNode?.querySelector(".solid-flow__edge-labels");return<Pr when={t()}>{N=><Er mount={N()}>{e.children}</Er>}</Pr>};var De=e=>{let o=wr({x:0,y:0,selectEdgeOnClick:!1,transparent:!1,style:{}},e),[t,N]=Cr(o,["x","y","width","height","selectEdgeOnClick","transparent","children","class","style"]),{actions:S}=z(),P=ke(),x=()=>S.getEdge(P())?.zIndex;return<Co>
2
+ <div role="button"tabIndex={-1}class={xr("solid-flow__edge-label",{transparent:t.transparent},t.class)}style={{"pointer-events":"all",width:J(t.width),height:J(t.height),transform:`translate(-50%, -50%) translate(${t.x}px,${t.y}px)`,cursor:t.selectEdgeOnClick?"pointer":void 0,"z-index":x(),...t.style}}onClick={()=>{t.selectEdgeOnClick&&S.handleEdgeSelection(P())}}{...N}>
3
+ {t.children}
4
+ </div>
5
+ </Co>};var Q=e=>{let o=vr({interactionWidth:20},e),[t,N]=Mr(o,["class","style","path","interactionWidth","label","labelStyle","labelX","labelY","markerStart","markerEnd"]);return<>
6
+ <path d={t.path}class={Tr(["solid-flow__edge-path",t.class])}marker-start={t.markerStart}marker-end={t.markerEnd}fill="none"style={t.style}{...N}/>
7
+
8
+ <Ut when={t.interactionWidth>0}>
9
+ <path d={t.path}stroke-opacity={0}stroke-width={t.interactionWidth}fill="none"class="solid-flow__edge-interaction"/>
10
+ </Ut>
11
+
12
+ <Ut when={t.label}>
13
+ <De x={t.labelX}y={t.labelY}style={t.labelStyle}>
14
+ {t.label}
15
+ </De>
16
+ </Ut>
17
+ </>};import{getBezierPath as Ir}from"@xyflow/system";var kr=e=>{let o=()=>{let[t,N,S]=Ir({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition,curvature:e.pathOptions?.curvature});return{path:t,labelX:N,labelY:S}};return<Q id={e.id}path={o().path}labelX={o().labelX}labelY={o().labelY}label={e.label}labelStyle={e.labelStyle}markerStart={e.markerStart}markerEnd={e.markerEnd}interactionWidth={e.interactionWidth}style={e.style}/>};import{getBezierPath as Dr}from"@xyflow/system";var To=e=>{let o=()=>{let[t,N,S]=Dr({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition});return{path:t,labelX:N,labelY:S}};return<Q path={o().path}labelX={o().labelX}labelY={o().labelY}label={e.label}labelStyle={e.labelStyle}markerStart={e.markerStart}markerEnd={e.markerEnd}interactionWidth={e.interactionWidth}style={e.style}/>};import{XYHandle as Or}from"@xyflow/system";import zr from"clsx";import{createSignal as Rr,mergeProps as Ar,Show as _r,splitProps as Lr}from"solid-js";var Hr=e=>{let o=Ar({size:25,reconnecting:!1,style:{}},e),[t,N]=Lr(o,["type","class","style","position","size","reconnecting","children"]),{store:S,nodeLookup:P,edgeLookup:x,actions:b}=z(),C=ke(),[T,v]=Rr(!1);if(!C())throw new Error("[solid-flow]: EdgeReconnectAnchor must be used within an Edge component");let E=()=>x.get(C()),w=I=>{if(I.button!==0)return;v(!0),S.onReconnectStart?.(I,E(),t.type);let D=t.type==="target"?{nodeId:E().source,handleId:E().sourceHandle??null,type:"source"}:{nodeId:E().target,handleId:E().targetHandle??null,type:"target"};Or.onPointerDown(I,{lib:S.lib,flowId:S.id,domNode:S.domNode,nodeId:D.nodeId,handleId:D.handleId,autoPanOnConnect:S.autoPanOnConnect,connectionMode:S.connectionMode,connectionRadius:S.connectionRadius,nodeLookup:P,isTarget:D.type==="target",edgeUpdaterType:D.type,cancelConnection:b.cancelConnection,panBy:b.panBy,updateConnection:b.setConnection,isValidConnection:S.isValidConnection,onConnectStart:S.onConnectStart,onConnectEnd:S.onConnectEnd,onConnect:k=>{let R={...E(),...k};R=S.onBeforeReconnect?.(R,E())??R,R&&b.setEdges(Y=>Y.map(H=>H.id===E().id?R:H)),S.onReconnect?.(E(),k)},onReconnectEnd:(k,R)=>{v(!1),S.onReconnectEnd?.(k,E(),D.type,R)},getTransform:()=>S.transform,getFromHandle:()=>S.connection.fromHandle,autoPanSpeed:S.autoPanSpeed,dragThreshold:S.connectionDragThreshold,handleDomNode:I.currentTarget})};return<De x={t.position?.x}y={t.position?.y}style={t.style}{...N}>
18
+ <div onPointerDown={w}class={zr("solid-flow__edgeupdater",`solid-flow__edgeupdater-${t.type}`,S.noPanClass,t.class)}style={{width:J(t.size),height:J(t.size),background:"transparent",border:"none",cursor:"move",...t.style}}>
19
+ <_r when={!T()}>{t.children}</_r>
20
+ </div>
21
+ </De>};import{elementSelectionKeys as Vr,getMarkerId as Gt}from"@xyflow/system";import Kr from"clsx";import{Show as Xr}from"solid-js";import{Dynamic as Fr}from"solid-js/web";import{Show as Br}from"solid-js";var Ye="solid-flow__node-desc",We="solid-flow__edge-desc",Jt="solid-flow__aria-live";var Mo=()=>{let{store:e}=z();return<>
22
+ <div id={`${Ye}-${e.id}`}class="a11y-hidden">
23
+ {e.disableKeyboardA11y?e.ariaLabelConfig["node.a11yDescription.default"]:e.ariaLabelConfig["node.a11yDescription.keyboardDisabled"]}
24
+ </div>
25
+ <div id={`${We}-${e.id}`}class="a11y-hidden">
26
+ {e.ariaLabelConfig["edge.a11yDescription.default"]}
27
+ </div>
28
+
29
+ <Br when={!e.disableKeyboardA11y}>
30
+ <div id={`${Jt}-${e.id}`}aria-live="assertive"aria-atomic="true"class="a11y-live-msg">
31
+ {e.ariaLiveMessage}
32
+ </div>
33
+ </Br>
34
+ </>};var Io=e=>{let o,{store:t,actions:N}=z(),S=()=>e.edgeId,P=()=>N.getEdge(S()),x=()=>P().type??"default",b=()=>P().selectable??t.elementsSelectable,C=()=>P().focusable??t.edgesFocusable,T=()=>t.edgeTypes[x()],v=()=>P().markerStart?`url('#${Gt(P().markerStart,t.id)}')`:void 0,E=()=>P().markerEnd?`url('#${Gt(P().markerEnd,t.id)}')`:void 0,w=R=>{b()&&N.handleEdgeSelection(S()),e.onEdgeClick?.({edge:P(),event:R})},I=(R,Y)=>{({contextmenu:e.onEdgeContextMenu,pointerenter:e.onEdgePointerEnter,pointerleave:e.onEdgePointerLeave})[Y]?.({edge:P(),event:R})},D=R=>{if(t.disableKeyboardA11y||!Vr.includes(R.key)||!b())return;R.key==="Escape"?(o?.blur(),N.unselectNodesAndEdges({edges:[P()]})):N.addSelectedEdges([P().id])},k=()=>P().ariaLabel??`Edge from ${P().source} to ${P().target}`;return<xo.Provider value={S}>
35
+ <Xr when={!P().hidden}>
36
+ <svg class="solid-flow__edge-wrapper"style={{"z-index":P().zIndex}}>
37
+ <g ref={o}data-id={P().id}tabIndex={C()?0:void 0}role={P().ariaRole??(C()?"group":"img")}aria-label={k()}aria-roledescription="edge"aria-describedby={C()?`${We}-${t.id}`:void 0}class={Kr("solid-flow__edge",`solid-flow__edge-${x()}`,{animated:P().animated,selected:P().selected,selectable:b()},P().class)}onClick={w}onKeyDown={R=>C()&&D(R)}onContextMenu={R=>I(R,"contextmenu")}onPointerEnter={R=>I(R,"pointerenter")}onPointerLeave={R=>I(R,"pointerleave")}{...P().domAttributes}>
38
+ <Fr component={T()}id={P().id}source={P().source}target={P().target}sourceX={P().sourceX}sourceY={P().sourceY}targetX={P().targetX}targetY={P().targetY}sourcePosition={P().sourcePosition}targetPosition={P().targetPosition}animated={P().animated}selected={P().selected}label={P().label}labelStyle={P().labelStyle}data={P().data}style={P().style}interactionWidth={P().interactionWidth}selectable={b()}deletable={P().deletable??!0}type={x()}sourceHandleId={P().sourceHandle}targetHandleId={P().targetHandle}markerStart={v()}markerEnd={E()}/>
39
+ </g>
40
+ </svg>
41
+ </Xr>
42
+ </xo.Provider>};import{getSmoothStepPath as Yr}from"@xyflow/system";import{createMemo as Wr}from"solid-js";var Zr=e=>{let o=Wr(()=>{let[t,N,S]=Yr({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition,borderRadius:e.pathOptions?.borderRadius,offset:e.pathOptions?.offset});return{path:t,labelX:N,labelY:S}});return<Q id={e.id}path={o().path}labelX={o().labelX}labelY={o().labelY}label={e.label}labelStyle={e.labelStyle}markerStart={e.markerStart}markerEnd={e.markerEnd}interactionWidth={e.interactionWidth}style={e.style}/>};import{getSmoothStepPath as $r}from"@xyflow/system";var ko=e=>{let o=()=>{let[t,N,S]=$r({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition});return{path:t,labelX:N,labelY:S}};return<Q path={o().path}labelX={o().labelX}labelY={o().labelY}label={e.label}labelStyle={e.labelStyle}markerStart={e.markerStart}markerEnd={e.markerEnd}interactionWidth={e.interactionWidth}style={e.style}/>};import{getSmoothStepPath as Ur}from"@xyflow/system";import{createMemo as Jr}from"solid-js";var Gr=e=>{let o=Jr(()=>{let[t,N,S]=Ur({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition,borderRadius:0,offset:e.pathOptions?.offset});return{path:t,labelX:N,labelY:S}});return<Q id={e.id}path={o().path}labelX={o().labelX}labelY={o().labelY}label={e.label}labelStyle={e.labelStyle}markerStart={e.markerStart}markerEnd={e.markerEnd}interactionWidth={e.interactionWidth}style={e.style}/>};import{getSmoothStepPath as jr}from"@xyflow/system";var Do=e=>{let o=()=>{let[t,N,S]=jr({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition,borderRadius:0});return{path:t,labelX:N,labelY:S}};return<Q path={o().path}labelX={o().labelX}labelY={o().labelY}label={e.label}labelStyle={e.labelStyle}markerStart={e.markerStart}markerEnd={e.markerEnd}interactionWidth={e.interactionWidth}style={e.style}/>};import{getStraightPath as qr}from"@xyflow/system";import{createMemo as Qr}from"solid-js";var ei=e=>{let o=Qr(()=>{let[t,N,S]=qr({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY});return{path:t,labelX:N,labelY:S}});return<Q id={e.id}path={o().path}labelX={o().labelX}labelY={o().labelY}label={e.label}labelStyle={e.labelStyle}markerStart={e.markerStart}markerEnd={e.markerEnd}interactionWidth={e.interactionWidth}style={e.style}/>};import{getStraightPath as oi}from"@xyflow/system";var Oo=e=>{let o=()=>{let[t,N,S]=oi({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY});return{path:t,labelX:N,labelY:S}};return<Q path={o().path}labelX={o().labelX}labelY={o().labelY}label={e.label}labelStyle={e.labelStyle}markerStart={e.markerStart}markerEnd={e.markerEnd}interactionWidth={e.interactionWidth}style={e.style}/>};import{mergeProps as pi}from"solid-js";import{areConnectionMapsEqual as ri,getHostForElement as ii,handleConnectionChange as Qt,XYHandle as en}from"@xyflow/system";import si from"clsx";import{createEffect as di,mergeProps as ai,splitProps as li}from"solid-js";import{unwrap as ci}from"solid-js/store";import{getNodesInside as rp}from"@xyflow/system";var jt=e=>{let{source:o,sourceHandle:t,target:N,targetHandle:S}=e;return`xy-edge__${o}${t||""}-${N}${S||""}`};import{createContext as ti,useContext as ni}from"solid-js";var zo=ti();function qt(){let e=ni(zo);if(!e)throw new Error("solid-flow: Your application must be wrapped with <SolidFlow> in order to invoke useNodeConnectable");return e}var Se=e=>{let o=ai({id:null,type:"source",position:"top",isConnectableStart:!0,isConnectableEnd:!0},e),{store:t,nodeLookup:N,connectionLookup:S,actions:P}=z(),[x,b]=li(o,["id","type","position","isConnectable","isConnectableStart","isConnectableEnd","isValidConnection","onConnect","onDisconnect","children","class","style"]),C=Oe(),T=qt(),v=()=>x.isConnectable??T(),E=()=>x.type==="target",w=()=>x.id??null,I=()=>!!t.connection.fromHandle,D=()=>t.connection.fromHandle&&t.connection.fromHandle.nodeId===C()&&t.connection.fromHandle.type===x.type&&t.connection.fromHandle.id===w(),k=()=>t.connection.toHandle&&t.connection.toHandle.nodeId===C()&&t.connection.toHandle.type===x.type&&t.connection.toHandle.id===w(),R=()=>t.connectionMode==="strict"?t.connection.fromHandle?.type!==x.type:C()!==t.connection.fromHandle?.nodeId||w()!==t.connection.fromHandle?.id,Y=()=>!!(k()&&t.connection.isValid),H=null,_;di(()=>{if(!x.onConnect&&!x.onDisconnect)return;let U=`${C()}-${x.type}${x.id?`-${x.id}`:""}`;if(_=S.get(U),H&&!ri(_,H)){let G=_??new Map;Qt(H,G,e.onDisconnect),Qt(G,H,e.onConnect)}H=_??new Map});let $=U=>{let G={...U,id:jt(U)},O=t.onBeforeConnect?.(G)??G;P.addEdge(O),t.onConnect?.(G)},ee=U=>{en.onPointerDown(U,{handleId:w(),nodeId:C(),isTarget:E(),connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:N,connectionMode:t.connectionMode,lib:t.lib,autoPanOnConnect:t.autoPanOnConnect,flowId:t.id,isValidConnection:x.isValidConnection??t.isValidConnection,updateConnection:P.setConnection,cancelConnection:P.cancelConnection,panBy:P.panBy,onConnect:$,onConnectStart:(G,O)=>{t.onConnectStart?.(G,{nodeId:O.nodeId,handleId:O.handleId,handleType:O.handleType})},onConnectEnd:t.onConnectEnd,getTransform:()=>t.transform,getFromHandle:()=>t.connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold,handleDomNode:U.currentTarget})},ie=U=>{if(!C()||!t.clickConnectStartHandle&&!x.isConnectableStart)return;if(!t.clickConnectStartHandle){t.onClickConnectStart?.(U,{nodeId:C(),handleId:w(),handleType:x.type}),P.setClickConnectStartHandle({nodeId:C(),type:x.type,id:w()});return}let G=ii(U.target),O=x.isValidConnection??t.isValidConnection,{connection:F,isValid:K}=en.isValid(U,{handle:{nodeId:C(),id:w(),type:x.type},connectionMode:t.connectionMode,fromNodeId:t.clickConnectStartHandle.nodeId,fromHandleId:t.clickConnectStartHandle.id??null,fromType:t.clickConnectStartHandle.type,isValidConnection:O,flowId:t.id,doc:G,lib:t.lib,nodeLookup:N});K&&F&&$(F);let Z=structuredClone(ci(t.connection));delete Z.inProgress,Z.toPosition=Z.toHandle?Z.toHandle.position:null,t.onClickConnectEnd?.(U,Z),P.setClickConnectStartHandle(void 0)},de=()=>v()&&(!I()||R())&&(I()||t.clickConnectStartHandle?x.isConnectableEnd:x.isConnectableStart);return<div role="button"aria-label={t.ariaLabelConfig["handle.ariaLabel"]}tabIndex={-1}data-handleid={w()}data-nodeid={C()}data-handlepos={x.position}data-id={`${t.id}-${C()}-${x.id||null}-${x.type}`}onClick={t.clickConnect?ie:void 0}onPointerDown={ee}style={x.style}class={si("solid-flow__handle",`solid-flow__handle-${x.position}`,t.noDragClass,t.noPanClass,x.class,{valid:Y(),connectingto:k(),connectingfrom:D(),source:!E(),target:E(),connectablestart:o.isConnectableStart,connectableend:o.isConnectableEnd,connectable:v(),connectionindicator:de()})}{...b}>
43
+ {x.children}
44
+ </div>};var Ro=e=>{let o=pi({targetPosition:"top",sourcePosition:"bottom"},e);return<>
45
+ <Se type="target"position={o.targetPosition}isConnectable={o.isConnectable}/>
46
+ {e.data.label}
47
+ <Se type="source"position={o.sourcePosition}isConnectable={o.isConnectable}/>
48
+ </>};var Ao=e=><div style={{position:"absolute",left:0,top:0,width:J(e.width),height:J(e.height)}}/>;import{mergeProps as gi}from"solid-js";var _o=e=>{let o=gi({sourcePosition:"bottom"},e);return<>
49
+ {e.data?.label}
50
+ <Se type="source"position={o.sourcePosition}isConnectable={o.isConnectable}/>
51
+ </>};import{elementSelectionKeys as bi,getNodesInside as Ei,isInputDOMNode as xi,nodeHasDimensions as on}from"@xyflow/system";import wi from"clsx";import{batch as Ci,createEffect as Lo,createSignal as Ti,Show as Mi}from"solid-js";import{Dynamic as Ii}from"solid-js/web";import{XYDrag as mi}from"@xyflow/system";import{createEffect as ui,createSignal as yi,onCleanup as fi,onMount as hi}from"solid-js";var Si=(e,o)=>{let{store:t,nodeLookup:N,actions:S}=z(),[P,x]=yi(!1);return hi(()=>{let{onDrag:b,onDragStart:C,onDragStop:T,onNodeMouseDown:v}=o(),E=mi({onDrag:b,onDragStart:(I,D,k,R)=>{x(!0),C?.(I,D,k,R)},onDragStop:(I,D,k,R)=>{x(!1),T?.(I,D,k,R)},onNodeMouseDown:v,getStoreItems:()=>({nodes:t.nodes,nodeLookup:N,edges:t.edges,nodeExtent:t.nodeExtent,snapGrid:t.snapGrid??[0,0],snapToGrid:!!t.snapGrid,autoPanSpeed:t.autoPanSpeed,nodeOrigin:t.nodeOrigin,multiSelectionActive:t.multiselectionKeyPressed,domNode:t.domNode,transform:t.transform,autoPanOnNodeDrag:t.autoPanOnNodeDrag,nodesDraggable:t.nodesDraggable,selectNodesOnDrag:t.selectNodesOnDrag,nodeDragThreshold:t.nodeDragThreshold,unselectNodesAndEdges:S.unselectNodesAndEdges,updateNodePositions:S.updateNodePositions,panBy:S.panBy})});function w(I,D){if(D.disabled){E.destroy();return}E.update({domNode:I,nodeId:D.nodeId,noDragClassName:D.noDragClass,handleSelector:D.handleSelector,isSelectable:D.isSelectable,nodeClickDistance:D.nodeClickDistance})}ui(()=>{w(e(),o())}),fi(()=>{E.destroy()})}),P},Ze=Si;import{createContext as Ni,useContext as Pi}from"solid-js";var Ne=Ni();function Oe(){let e=Pi(Ne);if(!e)throw new Error("solid-flow: Your application must be wrapped with <SolidFlow> in order to invoke useNodeId");return e}var Ho=e=>{let{store:o,nodeLookup:t,parentLookup:N,actions:S}=z(),[P,x]=Ti(),b=()=>t.get(e.nodeId),C=()=>b().id,T=()=>b().type??"default",v=()=>b().deletable??!0,E=()=>b().selectable??o.elementsSelectable,w=()=>b().focusable??o.nodesFocusable,I=()=>b().draggable??o.nodesDraggable,D=()=>b().connectable??o.nodesConnectable,k=()=>b().internals.userNode,R=()=>T()in o.nodeTypes,Y=()=>o.nodeTypes[T()],H=()=>N.has(b().id),_=()=>{let{x:O,y:F}=b().internals.positionAbsolute;return`translate(${O}px, ${F}px)`},$=()=>{let O=b().width??b().initialWidth,F=b().height??b().initialHeight;return{...b().style,...O?{width:J(O)}:{},...F?{height:J(F)}:{}}},ee=()=>({"z-index":b().internals.z,transform:_(),visibility:on(b())?"visible":"hidden",...$(),...b().style??{}});Lo(()=>{R()}),Lo(O=>O&&O.sourcePosition===b().sourcePosition&&O.targetPosition===b().targetPosition&&O.nodeType===T()?O:(S.requestUpdateNodeInternals([[b().id,{id:b().id,nodeElement:P(),force:!0}]]),{nodeType:T(),sourcePosition:b().sourcePosition,targetPosition:b().targetPosition})),Lo(O=>{let F=P();return F===O&&on(b())?O:(O&&e.resizeObserver.unobserve(O),F&&e.resizeObserver.observe(F),F)});let ie=O=>{E()&&(!o.selectNodesOnDrag||!I()||o.nodeDragThreshold>0)&&S.handleNodeSelection(b().id),e.onNodeClick?.({node:k(),event:O})},de=O=>{if(xi(O)||o.disableKeyboardA11y)return;if(bi.includes(O.key)&&E()){S.handleNodeSelection(b().id,O.key==="Escape",P());return}let F=Xe[O.key];I()&&b().selected&&F&&Ci(()=>{O.preventDefault(),S.setAriaLiveMessage(o.ariaLabelConfig["node.a11yDescription.ariaLiveMessage"]({direction:O.key.replace("Arrow","").toLowerCase(),x:~~b().internals.positionAbsolute.x,y:~~b().internals.positionAbsolute.y})),S.moveSelectedNodes(F,O.shiftKey?4:1)})},U=()=>{if(o.disableKeyboardA11y||!o.autoPanOnNodeFocus||!P()?.matches(":focus-visible"))return;let{width:O,height:F,viewport:K}=o;Ei(new Map([[b().id,b()]]),{x:0,y:0,width:O,height:F},[K.x,K.y,K.zoom],!0).length>0||S.setCenter(b().position.x+(b().measured.width??0)/2,b().position.y+(b().measured.height??0)/2,{zoom:K.zoom})},G=Ze(P,()=>({nodeId:b().id,isSelectable:E(),disabled:!I(),handleSelector:b().dragHandle,noDragClass:o.noDragClass,nodeClickDistance:e.nodeClickDistance,onNodeMouseDown:S.handleNodeSelection,onDrag:(O,F,K,Z)=>{e.onNodeDrag?.({event:O,targetNode:K,nodes:Z})},onDragStart:(O,F,K,Z)=>{e.onNodeDragStart?.({event:O,targetNode:K,nodes:Z})},onDragStop:(O,F,K,Z)=>{e.onNodeDragStop?.({event:O,targetNode:K,nodes:Z})}}));return<Mi when={!b().hidden}>
52
+ <div ref={x}data-id={b().id}class={wi("solid-flow__node",`solid-flow__node-${T()}`,{connectable:D(),draggable:I(),dragging:G(),nopan:I(),parent:H(),selectable:E(),selected:b().selected},b().class)}style={ee()}onClick={ie}onPointerEnter={O=>e.onNodePointerEnter?.({node:k(),event:O})}onPointerLeave={O=>e.onNodePointerLeave?.({node:k(),event:O})}onPointerMove={O=>e.onNodePointerMove?.({node:k(),event:O})}onContextMenu={O=>e.onNodeContextMenu?.({node:k(),event:O})}onKeyDown={O=>w()&&de(O)}onFocus={()=>w()&&U()}tabIndex={w()?0:void 0}role={b().ariaRole??(w()?"group":void 0)}aria-roledescription="node"aria-describedby={o.disableKeyboardA11y?void 0:`${Ye}-${o.id}`}{...b().domAttributes}>
53
+ <Ne.Provider value={C}>
54
+ <zo.Provider value={D}>
55
+ <Ii component={Y()}data={b().data}id={b().id}selected={!!b().selected}selectable={E()}deletable={v()}sourcePosition={b().sourcePosition}targetPosition={b().targetPosition}zIndex={b().internals.z}dragging={G()}draggable={I()}dragHandle={b().dragHandle}parentId={b().parentId}type={T()}isConnectable={D()}positionAbsoluteX={b().internals.positionAbsolute.x}positionAbsoluteY={b().internals.positionAbsolute.y}width={b().width}height={b().height}/>
56
+ </zo.Provider>
57
+ </Ne.Provider>
58
+ </div>
59
+ </Mi>};import{mergeProps as ki}from"solid-js";var Bo=e=>{let o=ki({targetPosition:"top"},e);return<>
60
+ <Se type="target"position={o.targetPosition}isConnectable={o.isConnectable}/>
61
+ {e.data?.label}
62
+ </>};import{devWarn as Di,infiniteExtent as Oi}from"@xyflow/system";var we=()=>({id:"1",nodes:[],edges:[],nodeOrigin:[0,0],nodeExtent:Oi,defaultEdgeOptions:{},colorMode:"system",colorModeSSR:"light",connectionMode:"strict",connectionLineType:"default",connectionRadius:20,nodeDragThreshold:1,minZoom:.5,maxZoom:2,selectionMode:"partial",fitView:!1,noPanClass:"nopan",noDragClass:"nodrag",noWheelClass:"nowheel",autoPanOnNodeDrag:!0,autoPanOnConnect:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,elevateEdgesOnSelect:!0,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,elementsSelectable:!0,selectNodesOnDrag:!0,elevateNodesOnSelect:!0,onlyRenderVisibleElements:!1,disableKeyboardA11y:!1,defaultMarkerColor:"#b1b1b7",ariaLiveMessage:"",style:{},isValidConnection:()=>!0,onFlowError:Di});import{clampPosition as Vo,clampPositionToParent as zi,getBoundsOfRects as rg,getDimensions as ig,getHandleBounds as sg,getNodeDimensions as tn,getNodePositionWithOrigin as nn,infiniteExtent as Ri,isCoordinateExtent as rn,isNumeric as Ai,nodeToRect as dg}from"@xyflow/system";var sn={nodeOrigin:[0,0],nodeExtent:Ri,elevateNodesOnSelect:!0,defaults:{}},_i={...sn,checkEquality:!0};function dn(e,o){let t={...e};for(let N in o)o[N]!==void 0&&(t[N]=o[N]);return t}function an(e,o,t,N){let S=dn(_i,N),P=e.length>0,x=new Map(o),b=S?.elevateNodesOnSelect?1e3:0;o.clear(),t.clear();for(let C of e){let T=x.get(C.id);if(S.checkEquality&&C===T?.internals.userNode)o.set(C.id,T);else{let v=nn(C,S.nodeOrigin),E=rn(C.extent)?C.extent:S.nodeExtent,w=Vo(v,E,tn(C));T={...S.defaults,...C,measured:{width:C.measured?.width,height:C.measured?.height},internals:{positionAbsolute:w,handleBounds:C.measured?T?.internals.handleBounds:void 0,z:$e(C,b),userNode:C}},o.set(C.id,T)}(T.measured===void 0||T.measured.width===void 0||T.measured.height===void 0)&&!T.hidden&&(P=!1),C.parentId&&Ko(T,o,t,N)}return P}function Li(e,o){if(!e.parentId)return;let t=o.get(e.parentId);t?t.set(e.id,e):o.set(e.parentId,new Map([[e.id,e]]))}function Ko(e,o,t,N){let{elevateNodesOnSelect:S,nodeOrigin:P,nodeExtent:x}=dn(sn,N),b=e.parentId,C=o.get(b);if(!C)return;Li(e,t);let T=S?1e3:0,{x:v,y:E,z:w}=Hi(e,C,P,x,T),{positionAbsolute:I}=e.internals,D=v!==I.x||E!==I.y;(D||w!==e.internals.z)&&o.set(e.id,{...e,internals:{...e.internals,positionAbsolute:D?{x:v,y:E}:I,z:w}})}function $e(e,o){return(Ai(e.zIndex)?e.zIndex:0)+(e.selected?o:0)}function Hi(e,o,t,N,S){let{x:P,y:x}=o.internals.positionAbsolute,b=tn(e),C=nn(e,t),T=rn(e.extent)?Vo(C,e.extent,b):C,v=Vo({x:P+T.x,y:x+T.y},N,b);e.extent==="parent"&&(v=zi(v,b,o));let E=$e(e,S),w=o.internals.z??0;return{x:v.x,y:v.y,z:w>=E?w+1:E}}function Xo(e,o,t,N,S,P){let x=S,b=N.get(x)||new Map;N.set(x,b.set(t,o)),x=`${S}-${e}`;let C=N.get(x)||new Map;if(N.set(x,C.set(t,o)),P){x=`${S}-${e}-${P}`;let T=N.get(x)||new Map;N.set(x,T.set(t,o))}}function Fo(e,o,t,N,S){let P=N,x=t.get(P);x&&(x.delete(o),x.size===0&&t.delete(P)),P=`${N}-${e}`;let b=t.get(P);if(b&&(b.delete(o),b.size===0&&t.delete(P)),S){P=`${N}-${e}-${S}`;let C=t.get(P);C&&(C.delete(o),C.size===0&&t.delete(P))}}var is={input:_o,output:Bo,default:Ro,group:Ao},ss={straight:Oo,smoothstep:ko,default:To,step:Do},ds=(e,o,t,N,S,P)=>{if(o&&!t&&N&&S){let x=Zi(P,{filter:b=>!!((b.width||b.initialWidth)&&(b.height||b.initialHeight))});return Ji(x,N,S,.5,2,.1)}else return t??{x:0,y:0,zoom:1}},Je=e=>{let o=pn(we(),e),t=new ze,N=new ze,S=new ze,P=new ze,x=new ze,b=Ce(()=>an(o.nodes,t,N,{nodeExtent:o.nodeExtent,nodeOrigin:o.nodeOrigin,elevateNodesOnSelect:o.elevateNodesOnSelect,checkEquality:!0})),C=ds(b,o.fitView,o.initialViewport,o.width??0,o.height??0,t),T=Bi("(prefers-color-scheme: dark)",o.colorModeSSR==="dark"),[v,E]=re(o),[w,I]=se(()=>Qi(v().ariaLabelConfig)),[D,k]=se(()=>v().ariaLiveMessage),[R,Y]=re(void 0),[H,_]=re(Yo),[$,ee]=re(null),[ie,de]=re(!1),[U,G]=se(()=>v().elementsSelectable),[O,F]=se(()=>v().height),[K,Z]=se(()=>v().minZoom),[te,Ot]=se(()=>v().maxZoom),[Le,An]=se(()=>v().nodesDraggable),[_n,Ln]=se(()=>v().nodesDraggable),[bo,Hn]=re(null),[Bn,He]=re(),[Vn,Be]=re(),[Kn,Xn]=se(()=>v().snapGrid),[Fn,Cl]=se(()=>v().translateExtent??Gi),[Yn,Wn]=se(()=>v().width),[Zn,zt]=re(!1),[$n,Rt]=re(!1),[Un,At]=re(!1),[Jn,_t]=re(!1),[Gn,Lt]=re(!1),be=Fe(()=>v().nodes),Ve=Fe(()=>v().edges),Ee=Fe(()=>v().viewport??C),jn=Ue(()=>[Ee.get().x,Ee.get().y,Ee.get().zoom]),A=pn({width:0,height:0},v,{get _colorMode(){return v().colorMode},get _colorModeSSR(){return v().colorModeSSR},get _connection(){return H()},get _nodeTypes(){return v().nodeTypes},get _edgeTypes(){return v().edgeTypes},get ariaLabelConfig(){return w()},get ariaLiveMessage(){return D()},get clickConnectStartHandle(){return R()},get colorMode(){return this._colorMode==="system"?T()?"dark":"light":this._colorMode},get connection(){let M=H();return{...M,from:M.inProgress?ln(M.from,this.transform):M.from,to:M.inProgress?ln(M.to,this.transform):M.to}},get domNode(){return $()},get dragging(){return ie()},get edgeTypes(){return{...ss,...this._edgeTypes}},get elementsSelectable(){return U()},get height(){return O()},get lib(){return"solid"},get onError(){return v().onFlowError},get maxZoom(){return te()},get minZoom(){return K()},get nodes(){return be.get()},get nodesConnectable(){return Le()},get nodesDraggable(){return _n()},get nodeTypes(){return{...is,...this._nodeTypes}},get panZoom(){return bo()},get selectedNodes(){return v().nodes.filter(M=>M.selected)},get selectedEdges(){return v().edges.filter(M=>M.selected)},get selectionRect(){return Bn()},get selectionRectMode(){return Vn()},get snapGrid(){return Kn()},get viewport(){return Ee.get()},get viewportInitialized(){return bo()!==null},get visibleEdgeIds(){return Qn()},get visibleNodeIds(){return qn()},get visibleNodesMap(){return Ht()},get transform(){return jn()},get translateExtent(){return Fn()},get width(){return Yn()},get selectionKeyPressed(){return Zn()},get multiselectionKeyPressed(){return $n()},get deleteKeyPressed(){return Un()},get panActivationKeyPressed(){return Jn()},get zoomActivationKeyPressed(){return Gn()}}),Ht=Ue(()=>t),qn=Ue(()=>Array.from(Ht().values()).map(M=>M.id)),Qn=Ue(()=>Array.from(x.values()).map(M=>M.id)),er=M=>x.get(M),Bt=async M=>A.panZoom?Fi({nodes:t,width:A.width,height:A.height,panZoom:A.panZoom,minZoom:A.minZoom,maxZoom:A.maxZoom},M??v().fitViewOptions):!1,Vt=()=>{de(!1),He(void 0),Be(void 0),zt(!1),Rt(!1),At(!1),_t(!1),Lt(!1),_({...Yo}),Y(void 0),Ee.set(v().initialViewport??{x:0,y:0,zoom:1}),k(""),Xn(void 0)},or=M=>{Ve.set(L=>Vi(M,L))},Eo=!1,tr=M=>{Eo=!M},Kt=(M,L=!1)=>{be.set(X=>M.has(X.id),ve(X=>{X.dragging=L,X.position=M.get(X.id).position}))},Ie,nr=M=>{if(Ie){Ie.push(...M);return}Ie=M,requestIdleCallback(()=>{Ce(()=>{let L=new Map(Ie);Ie=void 0;let{changes:X,updatedInternals:B}=ns(L,t,N,A.domNode,A.nodeOrigin);if(!B)return;ts(t,N,{nodeOrigin:A.nodeOrigin,nodeExtent:A.nodeExtent});let V=X.reduce((W,ne)=>{let oe=t.get(ne.id)?.internals.userNode;return oe&&W.set(oe.id,ne),W},new Map);be.set(W=>V.has(W.id),ve(W=>{let ne=V.get(W.id);switch(ne.type){case"dimensions":{ne.setAttributes&&(W.width=ne.dimensions?.width??W.width,W.height=ne.dimensions?.height??W.height),W.measured={...W.measured,...ne.dimensions};break}case"position":W.position=ne.position??W.position;break}})),Eo||(Eo=!0,Bt())})})},Xt=async(M,L)=>A.panZoom?A.panZoom.scaleBy(M,L):!1,rr=M=>Xt(1.2,M),ir=M=>Xt(1/1.2,M),sr=async(M,L,X)=>{let B=typeof X?.zoom<"u"?X.zoom:A.maxZoom,V=A.panZoom;return V?(await V.setViewport({x:A.width/2-M*B,y:A.height/2-L*B,zoom:B},{duration:X?.duration,ease:X?.ease,interpolate:X?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},dr=M=>{A.panZoom?.setClickDistance(M)},xe=({nodes:M,edges:L}={})=>{let X=new Set((M||A.nodes).map(({id:V})=>V));X.size&&be.set(V=>X.has(V.id),ve(V=>{V.selected=!1}));let B=new Set((L||A.edges).map(({id:V})=>V));B.size&&Ve.set(V=>B.has(V.id),ve(V=>{V.selected=!1}))},Ft=M=>{let L=A.multiselectionKeyPressed,X=new Map;be.set(B=>{let V=M.includes(B.id),W=L&&B.selected||V;return X.set(B.id,W),B.selected!==W},ve(B=>{let V=t.get(B.id);V&&(V.selected=X.get(B.id)),B.selected=X.get(B.id)})),L||xe({nodes:[]})},Yt=M=>{let L=A.multiselectionKeyPressed,X=new Map;Ve.set(B=>{let V=M.includes(B.id),W=L&&B.selected||V;return X.set(B.id,W),B.selected!==W},ve(B=>{B.selected=X.get(B.id)})),L||xe({edges:[]})},ar=(M,L,X)=>{let B=A.nodes.find(V=>V.id===M);B&&(Ce(()=>{He(void 0),Be(void 0)}),B.selected?(L||B.selected&&A.multiselectionKeyPressed)&&(xe({nodes:[B],edges:[]}),requestAnimationFrame(()=>X?.blur())):Ft([M]))},lr=M=>{let L=S.get(M);!L||!(L.selectable||A.elementsSelectable&&typeof L.selectable>"u")||(Ce(()=>{He(void 0),Be(void 0)}),L.selected?L.selected&&A.multiselectionKeyPressed&&xe({nodes:[],edges:[L]}):Yt([M]))},cr=(M,L)=>{let X=new Map,B=A.snapGrid?.[0]??5,V=A.snapGrid?.[1]??5,W=M.x*B*L,ne=M.y*V*L;for(let oe of t.values()){if(!(oe.selected&&(oe.draggable||A.nodesDraggable&&typeof oe.draggable>"u")))continue;let ae={x:oe.internals.positionAbsolute.x+W,y:oe.internals.positionAbsolute.y+ne};A.snapGrid&&(ae=os(ae,A.snapGrid));let{position:Ke,positionAbsolute:Wt}=Ki({nodeId:oe.id,nextPosition:ae,nodeLookup:t,nodeExtent:A.nodeExtent,nodeOrigin:A.nodeOrigin,onError:A.onError});oe.position=Ke,oe.internals.positionAbsolute=Wt,X.set(oe.id,oe)}Kt(X)},pr=M=>es({delta:M,panZoom:A.panZoom,transform:A.transform,translateExtent:A.translateExtent,width:A.width,height:A.height}),gr=()=>{_({...Yo})},mr=()=>{Vt(),xe()};return Te(()=>{A.panZoom?.syncViewport(A.viewport)}),Te(()=>{let M=bo();M&&(Te(()=>{M.setScaleExtent([A.minZoom,A.maxZoom])}),Te(()=>{M.setTranslateExtent(A.translateExtent)}))}),Re(cn(()=>A.nodes,M=>{Re(()=>{let L=rs(()=>t.get(M.id)),X=A.elevateNodesOnSelect?1e3:0,B=Xi(Ui(M,A.nodeOrigin),ji(M.extent)?M.extent:A.nodeExtent,$i(M)),V={width:M.measured?.width??L?.measured?.width,height:M.measured?.height??L?.measured?.height},W={...M,measured:V,internals:{positionAbsolute:B,handleBounds:!M.measured&&!L?.measured?void 0:L?.internals.handleBounds,z:$e(M,X),userNode:M}};t.set(M.id,W),M.parentId&&Ko(W,t,N,{nodeOrigin:A.nodeOrigin,nodeExtent:A.nodeExtent,elevateNodesOnSelect:A.elevateNodesOnSelect,checkEquality:!0})}),gn(()=>{})})),Te(()=>{let M=new Set(A.nodes.map(L=>L.id));for(let L of Array.from(t.keys()))M.has(L)||t.delete(L)}),Re(cn(()=>A.edges,M=>{let{source:L,target:X,sourceHandle:B=null,targetHandle:V=null}=M,W={edgeId:M.id,source:L,target:X,sourceHandle:B,targetHandle:V},ne=`${L}-${B}--${X}-${V}`,oe=`${X}-${V}--${L}-${B}`;Re(()=>{Ce(()=>{Xo("source",W,oe,P,L,B),Xo("target",W,ne,P,X,V),S.set(M.id,M)})}),Re(()=>{let ce=t.get(M.source),ae=t.get(M.target);if(!ce||!ae)return;if(A.onlyRenderVisibleElements){if(!qi({sourceNode:ce,targetNode:ae,width:A.width??0,height:A.height??0,transform:A.transform}))return;A.visibleNodesMap.set(ce.id,ce),A.visibleNodesMap.set(ae.id,ae)}let Ke=Yi({id:M.id,sourceNode:ce,targetNode:ae,sourceHandle:M.sourceHandle||null,targetHandle:M.targetHandle||null,connectionMode:A.connectionMode,onError:A.onError});Ke&&x.set(M.id,{...A.defaultEdgeOptions,...M,...Ke,zIndex:Wi({selected:M.selected,zIndex:M.zIndex??A.defaultEdgeOptions.zIndex,sourceNode:ce,targetNode:ae,elevateOnSelect:A.elevateEdgesOnSelect}),sourceNode:ce,targetNode:ae,edge:M})}),gn(()=>{Ce(()=>{S.delete(M.id),x.delete(M.id),Fo("source",oe,P,L,B),Fo("target",ne,P,X,V)})})})),Te(()=>{let M=new Set(A.edges.map(L=>L.id));for(let L of Array.from(S.keys()))M.has(L)||(S.delete(L),P.delete(L),x.delete(L))}),{store:A,nodeLookup:t,edgeLookup:S,parentLookup:N,connectionLookup:P,actions:{getEdge:er,applyInitialFitView:tr,resetStoreValues:Vt,requestUpdateNodeInternals:nr,setAriaLabelConfig:I,setAriaLiveMessage:k,setClickConnectStartHandle:Y,setConfig:E,setConnection:_,setDeleteKeyPressed:At,setDomNode:ee,setDragging:de,get setEdges(){return Ve.set},setElementsSelectable:G,setHeight:F,setMultiselectionKeyPressed:Rt,get setNodes(){return be.set},setNodesConnectable:An,setNodesDraggable:Ln,setPanActivationKeyPressed:_t,setPanZoom:Hn,setSelectionKeyPressed:zt,setSelectionRect:He,setSelectionRectMode:Be,get setViewport(){return Ee.set},setWidth:Wn,setZoomActivationKeyPressed:Lt,addEdge:or,updateNodePositions:Kt,zoomIn:rr,zoomOut:ir,fitView:Bt,setCenter:sr,setPaneClickDistance:dr,unselectNodesAndEdges:xe,addSelectedNodes:Ft,addSelectedEdges:Yt,handleNodeSelection:ar,handleEdgeSelection:lr,moveSelectedNodes:cr,panBy:pr,cancelConnection:gr,reset:mr}}};var Ae=as();function z(){let e=ls(Ae);if(!e)throw new Error("solid-flow: Your application must be wrapped with <SolidFlow> in order to invoke useInternalSolidFlow within your components");return e}import{mergeProps as cs,Show as Ss}from"solid-js";var Wo=e=>{let o=cs({markerUnits:"strokeWidth",orient:"auto-start-reverse",width:12.5,height:12.5,color:"none"},e),t=()=>o.color??"var(--xy-edge-stroke)";return<marker class="solid-flow__arrowhead"id={o.id}markerWidth={o.width}markerHeight={o.height}viewBox="-10 -10 20 20"markerUnits={o.markerUnits}orient={o.orient}refX="0"refY="0">
63
+ <Ss when={o.type==="arrow"}fallback={<polyline class="arrowclosed"stroke={t()}fill={t()}stroke-linecap="round"stroke-linejoin="round"stroke-width={o.strokeWidth}points="-5,-4 0,0 -5,4 -5,-4"/>}>
64
+ <polyline class="arrow"stroke={t()}fill="none"stroke-linecap="round"stroke-linejoin="round"stroke-width={o.strokeWidth}points="-5,-4 0,0 -5,4"/>
65
+ </Ss>
66
+ </marker>};import{createMarkerIds as Ns}from"@xyflow/system";import{createMemo as Ps,For as Es,Show as Cs}from"solid-js";var Zo=()=>{let{store:e}=z(),o=Ps(()=>Ns(e.edges,{id:e.id,defaultColor:e.defaultMarkerColor,defaultMarkerStart:e.defaultEdgeOptions.markerStart,defaultMarkerEnd:e.defaultEdgeOptions.markerEnd}));return<Cs when={o().length>0}>
67
+ <svg class="solid-flow__marker">
68
+ <defs>
69
+ <Es each={o()}>{t=><Wo{...t}/>}</Es>
70
+ </defs>
71
+ </svg>
72
+ </Cs>};var $o=e=>{let{store:o}=z();return<div class="solid-flow__edges">
73
+ <Zo/>
74
+
75
+ <Ts each={o.visibleEdgeIds}>
76
+ {t=><Io edgeId={t}onEdgeClick={e.onEdgeClick}onEdgeContextMenu={e.onEdgeContextMenu}onEdgePointerEnter={e.onEdgePointerEnter}onEdgePointerLeave={e.onEdgePointerLeave}/>}
77
+ </Ts>
78
+ </div>};import{For as Ms,onCleanup as Is}from"solid-js";var Uo=e=>{let{actions:o,store:t}=z(),N=new ResizeObserver(S=>{o.requestUpdateNodeInternals(S.map(P=>{let x=P.target.getAttribute("data-id");return[x,{id:x,nodeElement:P.target,force:!0}]}))});return Is(()=>{N.disconnect()}),<div class="solid-flow__container solid-flow__nodes">
79
+ <Ms each={t.visibleNodeIds}>
80
+ {S=><Ho nodeId={S}resizeObserver={N}nodeClickDistance={e.nodeClickDistance}onNodeClick={e.onNodeClick}onNodePointerEnter={e.onNodePointerEnter}onNodePointerMove={e.onNodePointerMove}onNodePointerLeave={e.onNodePointerLeave}onNodeDrag={e.onNodeDrag}onNodeDragStart={e.onNodeDragStart}onNodeDragStop={e.onNodeDragStop}onNodeContextMenu={e.onNodeContextMenu}/>}
81
+ </Ms>
82
+ </div>};import{getEventPosition as mn,getNodesInside as ks,SelectionMode as Ds}from"@xyflow/system";import Os from"clsx";import{batch as Ge}from"solid-js";import{produce as un}from"solid-js/store";var yn=(e,o)=>{if(e.size!==o.size)return!1;for(let t of e)if(!o.has(t))return!1;return!0},Jo=e=>{let{store:o,nodeLookup:t,edgeLookup:N,connectionLookup:S,actions:P}=z(),x,b=null,C=!1,T=new Set,v=new Set,E=()=>o.panActivationKeyPressed||e.panOnDrag,w=()=>o.selectionKeyPressed||o.selectionRect||e.selectionOnDrag&&E()!==!0,I=()=>o.elementsSelectable&&(w()||o.selectionRectMode==="user"),D=_=>{if(_.target===x){if(C){C=!1;return}e.onPaneClick?.({event:_}),Ge(()=>{P.unselectNodesAndEdges(),P.setSelectionRectMode(void 0)})}},k=_=>{if(b=x?.getBoundingClientRect()??null,!o.elementsSelectable||!w()||_.button!==0||_.target!==x||!b)return;_.target?.setPointerCapture?.(_.pointerId);let{x:$,y:ee}=mn(_,b);Ge(()=>{P.unselectNodesAndEdges(),P.setSelectionRect({width:0,height:0,startX:$,startY:ee,x:$,y:ee})})},R=_=>{if(!w()||!b||!o.selectionRect)return;C=!0;let $=mn(_,b),{startX:ee=0,startY:ie=0}=o.selectionRect,de={...o.selectionRect,x:$.x<ee?$.x:ee,y:$.y<ie?$.y:ie,width:Math.abs($.x-ee),height:Math.abs($.y-ie)},U=T,G=v;T=new Set(ks(t,de,o.transform,o.selectionMode===Ds.Partial,!0).map(F=>F.id));let O=o.defaultEdgeOptions.selectable??!0;v=new Set;for(let F of T){let K=S.get(F);if(K)for(let{edgeId:Z}of K.values()){let te=N.get(Z);te&&(te.selectable??O)&&v.add(Z)}}Ge(()=>{if(!yn(U,T)){let F=new Map;P.setNodes(K=>{let Z=T.has(K.id);return F.set(K.id,Z),!!K.selected!==Z},un(K=>{K.selected=F.get(K.id)}))}if(!yn(G,v)){let F=new Map;P.setEdges(K=>{let Z=v.has(K.id);return F.set(K.id,Z),!!K.selected!==Z},un(K=>{K.selected=F.get(K.id)}))}P.setSelectionRectMode("user"),P.setSelectionRect(de)})},Y=_=>{_.button===0&&(_.target?.releasePointerCapture?.(_.pointerId),!w()&&o.selectionRectMode==="user"&&_.target===x&&D(_),Ge(()=>{P.setSelectionRect(void 0),T.size>0&&P.setSelectionRectMode("nodes")}),o.selectionKeyPressed&&(C=!1),e.onSelectionEnd?.(_))},H=_=>{if(_.target!==x)return;let $=E();if(Array.isArray($)&&$.includes(2)){_.preventDefault();return}e.onPaneContextMenu?.({event:_})};return<div ref={x}class={Os("solid-flow__container solid-flow__pane",{selection:w(),dragging:o.dragging,draggable:e.panOnDrag===!0||Array.isArray(e.panOnDrag)&&e.panOnDrag.includes(0)})}onClick={_=>I()?void 0:D(_)}onPointerDown={_=>I()?k(_):void 0}onPointerMove={_=>I()?R(_):void 0}onPointerUp={_=>I()?Y(_):void 0}onContextMenu={H}>
83
+ {e.children}
84
+ </div>};import zs from"clsx";import{mergeProps as Rs,splitProps as As}from"solid-js";var Pe=e=>{let{store:o}=z(),t=Rs({position:"top-right",style:{}},e),[N,S]=As(t,["class","position","style","children"]);return<div class={zs(["solid-flow__panel",...N.position.split("-"),N.class])}style={{"pointer-events":o.selectionRectMode?"none":void 0,...N.style}}{...S}>
85
+ {N.children}
86
+ </div>};var Go=e=>{let{store:o}=z();return<div class="solid-flow__container solid-flow__viewport xyflow__viewport"style={{transform:`translate(${o.viewport.x}px, ${o.viewport.y}px) scale(${o.viewport.zoom})`}}>
87
+ {e.children}
88
+ </div>};import{Show as _s}from"solid-js";import{Portal as Ls}from"solid-js/web";var Hs=e=>{let{store:o}=z();return<_s when={o.domNode}>
89
+ {t=><Ls mount={t().querySelector(".solid-flow__viewport-portal")??void 0}>
90
+ {e.children}
91
+ </Ls>}
92
+ </_s>};import{XYPanZoom as Bs}from"@xyflow/system";import{batch as Vs,createEffect as Ks,onMount as Xs}from"solid-js";var Qo=e=>{let o,{store:t,actions:N}=z(),S=()=>e.initialViewport||{x:0,y:0,zoom:1},P=()=>t.panActivationKeyPressed||e.panOnDrag,x=()=>t.panActivationKeyPressed||e.panOnScroll,b=C=>{let[T,v,E]=C;N.setViewport({x:T,y:v,zoom:E})};return Xs(()=>{let C=Bs({domNode:o,minZoom:t.minZoom,maxZoom:t.maxZoom,translateExtent:t.translateExtent,viewport:S(),paneClickDistance:e.paneClickDistance,onDraggingChange:N.setDragging,onPanZoomStart:e.onMoveStart,onPanZoom:e.onMove,onPanZoomEnd:e.onMoveEnd}),T=C.getViewport();(S().x!==T.x||S().y!==T.y||S().zoom!==T.zoom)&&b([T.x,T.y,T.zoom]),Vs(()=>{N.setViewport(T),N.setPanZoom(C)}),e.onViewportInitialized?.(),Ks(()=>{C.update({lib:t.lib,zoomActivationKeyPressed:t.zoomActivationKeyPressed,noPanClassName:t.noPanClass,noWheelClassName:t.noWheelClass,userSelectionActive:!!t.selectionRect,panOnScrollSpeed:.5,panOnDrag:P(),panOnScroll:x(),zoomOnScroll:e.zoomOnScroll,zoomOnDoubleClick:e.zoomOnDoubleClick,zoomOnPinch:e.zoomOnPinch,panOnScrollMode:e.panOnScrollMode,preventScrolling:typeof e.preventScrolling=="boolean"?e.preventScrolling:!0,onTransformChange:b})})}),<div ref={o}class="solid-flow__container solid-flow__zoom">
93
+ {e.children}
94
+ </div>};import{getBezierPath as Fs,getConnectionStatus as Ys,getSmoothStepPath as Ws,getStraightPath as Zs}from"@xyflow/system";import $s from"clsx";import{Show as Sn}from"solid-js";var Us=e=>{let{store:o}=z(),t=()=>Ys(o.connection.isValid);return<Sn when={o.connection.inProgress}>
95
+ <svg class="solid-flow__container solid-flow__connectionline"width={o.width}height={o.height}style={e.containerStyle}>
96
+ <g class={$s(["solid-flow__connection",t()])}>
97
+ <Sn when={e.component}fallback={<Js style={e.style}/>}>
98
+ {N=>{let S=N();return<S connectionLineType={o.connectionLineType}connectionLineStyle={e.style}fromNode={o.connection.fromNode}fromHandle={o.connection.fromHandle}fromX={o.connection.from.x}fromY={o.connection.from.y}toX={o.connection.to.x}toY={o.connection.to.y}fromPosition={o.connection.fromPosition}toPosition={o.connection.toPosition}connectionStatus={t()}toNode={o.connection.toNode}toHandle={o.connection.toHandle}/>}}
99
+ </Sn>
100
+ </g>
101
+ </svg>
102
+ </Sn>},Js=e=>{let{store:o}=z(),t=()=>{if(!o.connection.inProgress)return;let N={sourceX:o.connection.from.x,sourceY:o.connection.from.y,sourcePosition:o.connection.fromPosition,targetX:o.connection.to.x,targetY:o.connection.to.y,targetPosition:o.connection.toPosition};switch(o.connectionLineType){case"default":{let[S]=Fs(N);return S}case"straight":{let[S]=Zs(N);return S}case"step":case"smoothstep":{let[S]=Ws({...N,borderRadius:o.connectionLineType==="step"?0:void 0});return S}}};return<path class="solid-flow__connection-path"fill="none"style={e.style}d={t()}/>},St=Us;import ed from"clsx";import{mergeProps as od,Show as Sd}from"solid-js";import Gs from"clsx";import{mergeProps as js}from"solid-js";var Nn=e=>{let o=js({radius:5},e);return<circle class={Gs("solid-flow__background-pattern","dots",o.class)}cx={o.radius}cy={o.radius}r={o.radius}/>};import{clsx as qs}from"clsx";import{mergeProps as Qs}from"solid-js";var Pn=e=>{let o=Qs({lineWidth:1},e);return<path stroke-width={o.lineWidth}d={`M${o.dimensions[0]/2} 0 V${o.dimensions[1]} M0 ${o.dimensions[1]/2} H${o.dimensions[0]}`}class={qs("solid-flow__background-pattern",o.variant,o.class)}/>};var Nd={dots:1,lines:1,cross:6},Pd=e=>{let o=od({variant:"dots",gap:20,size:1,lineWidth:1,style:{}},e),{store:t}=z(),N=()=>o.variant==="dots",S=()=>o.variant==="cross",P=()=>`background-pattern-${t.id}-${o.id??""}`,x=()=>(o.size??Nd[o.variant])*t.viewport.zoom,b=()=>Array.isArray(o.gap)?o.gap:[o.gap,o.gap],C=()=>[b()[0]*t.viewport.zoom||1,b()[1]*t.viewport.zoom||1],T=()=>S()?[x(),x()]:C(),v=()=>N()?[x()/2,x()/2]:[T()[0]/2,T()[1]/2];return<svg data-testid="solid-flow__background"class={ed("solid-flow__container solid-flow__background",o.class)}style={{"--xy-background-color-props":o.bgColor,"--xy-background-pattern-color-props":o.patternColor,...o.style}}>
103
+ <pattern id={P()}x={t.viewport.x%C()[0]}y={t.viewport.y%C()[1]}width={C()[0]}height={C()[1]}patternUnits="userSpaceOnUse"patternTransform={`translate(-${v()[0]},-${v()[1]})`}>
104
+ <Sd when={!N()}fallback={<Nn radius={x()/2}class={o.patternClass}/>}>
105
+ <Pn class={o.patternClass}dimensions={T()}variant={o.variant}lineWidth={o.lineWidth}/>
106
+ </Sd>
107
+ </pattern>
108
+ <rect x="0"y="0"width="100%"height="100%"fill={`url(#${P()})`}/>
109
+ </svg>};import bd from"clsx";import{splitProps as Ed}from"solid-js";var Me=e=>{let[o,t]=Ed(e,["class","bgColor","bgColorHover","color","colorHover","borderColor","onClick","children"]),N=()=>Object.entries({"--xy-controls-button-background-color-props":o.bgColor,"--xy-controls-button-background-color-hover-props":o.bgColorHover,"--xy-controls-button-color-props":o.color,"--xy-controls-button-color-hover-props":o.colorHover,"--xy-controls-button-border-color-props":o.borderColor}).filter(([S,P])=>P!==void 0).reduce((S,[P,x])=>(S[P]=x,S),{});return<button type="button"class={bd("solid-flow__controls-button",o.class)}onClick={S=>o.onClick?.(S)}style={N()}{...t}>
110
+ {o.children}
111
+ </button>};import xd from"clsx";import{batch as wd,mergeProps as Cd,Show as Qe,splitProps as Td}from"solid-js";var Nt=()=><svg xmlns="http://www.w3.org/2000/svg"viewBox="0 0 32 30">
112
+ <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"/>
113
+ </svg>;var Pt=()=><svg xmlns="http://www.w3.org/2000/svg"viewBox="0 0 25 32">
114
+ <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"/>
115
+ </svg>;var Et=()=><svg xmlns="http://www.w3.org/2000/svg"viewBox="0 0 32 5">
116
+ <path d="M0 0h32v4.2H0z"/>
117
+ </svg>;var Ct=()=><svg xmlns="http://www.w3.org/2000/svg"viewBox="0 0 32 32">
118
+ <path d="M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"/>
119
+ </svg>;var Tt=()=><svg xmlns="http://www.w3.org/2000/svg"viewBox="0 0 25 32">
120
+ <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"/>
121
+ </svg>;var vd=e=>{let{store:o,actions:t}=z(),N=Cd({position:"bottom-left",showZoom:!0,showFitView:!0,showLock:!0,orientation:"vertical"},e),[S,P]=Td(N,["class","position","showZoom","showFitView","showLock","orientation","fitViewOptions","beforeControls","afterControls","buttonBgColor","buttonBgColorHover","buttonColor","buttonColorHover","buttonBorderColor","style","children"]),x=()=>o.viewport.zoom<=o.minZoom,b=()=>o.viewport.zoom>=o.maxZoom,C=()=>o.nodesDraggable||o.nodesConnectable||o.elementsSelectable,T=()=>{t.zoomIn()},v=()=>{t.zoomOut()},E=()=>{t.fitView(S.fitViewOptions)},w=()=>{let D=!C();wd(()=>{t.setNodesDraggable(D),t.setNodesConnectable(D),t.setElementsSelectable(D)})},I=()=>({bgColor:S.buttonBgColor,bgColorHover:S.buttonBgColorHover,color:S.buttonColor,colorHover:S.buttonColorHover,borderColor:S.buttonBorderColor});return<Pe class={xd(["solid-flow__controls",S.orientation,S.class])}position={S.position}data-testid="solid-flow__controls"aria-label={o.ariaLabelConfig["controls.ariaLabel"]}style={S.style}{...P}>
122
+ {S.beforeControls}
123
+ <Qe when={S.showZoom}>
124
+ <>
125
+ <Me onClick={T}class="solid-flow__controls-zoomin"title={o.ariaLabelConfig["controls.zoomIn.ariaLabel"]}aria-label={o.ariaLabelConfig["controls.zoomIn.ariaLabel"]}disabled={b()}{...I()}>
126
+ <Ct/>
127
+ </Me>
128
+ <Me onClick={v}class="solid-flow__controls-zoomout"title={o.ariaLabelConfig["controls.zoomOut.ariaLabel"]}aria-label={o.ariaLabelConfig["controls.zoomOut.ariaLabel"]}disabled={x()}{...I()}>
129
+ <Et/>
130
+ </Me>
131
+ </>
132
+ </Qe>
133
+ <Qe when={S.showFitView}>
134
+ <Me class="solid-flow__controls-fitview"onClick={E}title={o.ariaLabelConfig["controls.fitView.ariaLabel"]}aria-label={o.ariaLabelConfig["controls.fitView.ariaLabel"]}{...I()}>
135
+ <Nt/>
136
+ </Me>
137
+ </Qe>
138
+ <Qe when={S.showLock}>
139
+ <Me class="solid-flow__controls-interactive"onClick={w}title={o.ariaLabelConfig["controls.interactive.ariaLabel"]}aria-label={o.ariaLabelConfig["controls.interactive.ariaLabel"]}{...I()}>
140
+ <Qe when={C()}fallback={<Pt/>}>
141
+ <Tt/>
142
+ </Qe>
143
+ </Me>
144
+ </Qe>
145
+ {S.children}
146
+ {S.afterControls}
147
+ </Pe>};import{getBoundsOfRects as kd,getInternalNodesBounds as Dd,getNodeDimensions as Od,nodeHasDimensions as zd,XYMinimap as Rd}from"@xyflow/system";import Ad from"clsx";import{createEffect as _d,createMemo as xn,createSignal as Ld,Index as Hd,mergeProps as Bd,onCleanup as Vd,onMount as Kd,Show as Cn,splitProps as Xd}from"solid-js";import Md from"clsx";import{mergeProps as Id}from"solid-js";var En=e=>{let o=Id({borderRadius:5,width:0,height:0},e),t=()=>Object.entries({fill:o.color,stroke:o.strokeColor,"stroke-width":o.strokeWidth}).filter(([N,S])=>S!==void 0).reduce((N,[S,P])=>(N[S]=P,N),{});return<rect class={Md("solid-flow__minimap-node",{selected:o.selected},o.class)}x={o.x}y={o.y}rx={o.borderRadius}ry={o.borderRadius}width={o.width}height={o.height}shape-rendering={o.shapeRendering}style={t()}/>};var vt=e=>e instanceof Function?e:()=>e,Fd=e=>{let{store:o,nodeLookup:t}=z(),N=Bd({position:"bottom-right",nodeClass:"",nodeStrokeColor:"transparent",pannable:!0,zoomable:!0,width:200,height:150,nodeBorderRadius:5,nodeStrokeWidth:2,style:{}},e),[S,P]=Xd(N,["class","style","position","nodeClass","nodeStrokeColor","nodeColor","pannable","zoomable","inversePan","zoomStep","bgColor","width","height","maskColor","maskStrokeColor","maskStrokeWidth","nodeBorderRadius","nodeStrokeWidth"]),x=()=>S.nodeColor===void 0?void 0:vt(S.nodeColor),b=()=>vt(S.nodeStrokeColor),C=()=>vt(S.nodeClass),T=()=>typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision",v=xn(()=>`solid-flow__minimap-desc-${o.id}`),E=()=>({x:-o.viewport.x/o.viewport.zoom,y:-o.viewport.y/o.viewport.zoom,width:o.width/o.viewport.zoom,height:o.height/o.viewport.zoom}),w=()=>{let O=E();return t.size>0?kd(Dd(t),O):O},I=()=>w().width/S.width,D=()=>w().height/S.height,k=()=>Math.max(I(),D()),R=()=>k()*S.width,Y=()=>k()*S.height,H=()=>5*k(),_=()=>{let O=w();return O.x-(R()-O.width)/2-H()},$=()=>{let O=w();return O.y-(Y()-O.height)/2-H()},ee=()=>R()+H()*2,ie=()=>Y()+H()*2,de=()=>S.maskStrokeWidth?S.maskStrokeWidth*k():void 0,U=[],G=()=>{let O=o.nodes.map(K=>K.id),F=new Set(O);return(U.length!==O.length||!U.every(K=>F.has(K)))&&(U=O),U};return<Pe position={S.position}data-testid="solid-flow__minimap"class={Ad(["solid-flow__minimap",S.class])}style={{"--xy-minimap-background-color-props":S.bgColor,...S.style}}{...P}>
148
+ <Cn when={o.panZoom}>
149
+ {O=>{let[F,K]=Ld();return Kd(()=>{let Z=Rd({domNode:F(),panZoom:O(),getTransform:()=>o.transform,getViewScale:k});_d(()=>{Z.update({translateExtent:o.translateExtent,width:o.width,height:o.height,inversePan:S.inversePan,zoomStep:S.zoomStep,pannable:S.pannable,zoomable:S.zoomable})}),Vd(()=>{Z.destroy()})}),<svg ref={K}width={S.width}height={S.height}viewBox={`${_()} ${$()} ${ee()} ${ie()}`}class="solid-flow__minimap-svg"role="img"aria-labelledby={v()}style={{"--xy-minimap-mask-background-color-props":S.maskColor,"--xy-minimap-mask-stroke-color-props":S.maskStrokeColor,"--xy-minimap-mask-stroke-width-props":de()}}>
150
+ <title id={v()}>{o.ariaLabelConfig["minimap.ariaLabel"]}</title>
151
+ <Hd each={G()}>
152
+ {Z=>{let te=xn(()=>t.get(Z())),Ot=()=>!!(te()&&zd(te())&&!te().hidden);return<Cn when={Ot()&&Od(te())}>
153
+ {Le=><En x={te().internals.positionAbsolute.x}y={te().internals.positionAbsolute.y}borderRadius={S.nodeBorderRadius}strokeWidth={S.nodeStrokeWidth}shapeRendering={T()}width={Le().width}height={Le().height}selected={te().selected}color={x()?.call(null,te())}strokeColor={b().call(null,te())}class={C().call(null,te())}/>}
154
+ </Cn>}}
155
+ </Hd>
156
+ <path class="solid-flow__minimap-mask"d={`M${_()-H()},${$()-H()}h${ee()+H()*2}v${ie()+H()*2}h${-ee()-H()*2}z
157
+ M${E().x},${E().y}h${E().width}v${E().height}h${-E().width}z`}fill-rule="evenodd"pointer-events="none"/>
158
+ </svg>}}
159
+ </Cn>
160
+ </Pe>};import{XY_RESIZER_HANDLE_POSITIONS as qd,XY_RESIZER_LINE_POSITIONS as Qd}from"@xyflow/system";import{For as Tn,mergeProps as ea,Show as Sa,splitProps as Na}from"solid-js";import{XYResizer as Yd}from"@xyflow/system";import Wd from"clsx";import{createEffect as Zd,mergeProps as $d,onCleanup as Ud,onMount as Jd,splitProps as Gd}from"solid-js";import{produce as jd}from"solid-js/store";var So=e=>{let o=$d({variant:"handle",minWidth:10,minHeight:10,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE,keepAspectRatio:!1,autoScale:!0,style:{}},e),[t,N]=Gd(o,["nodeId","variant","position","minWidth","minHeight","maxWidth","maxHeight","keepAspectRatio","autoScale","onResizeStart","onResize","onResizeEnd","shouldResize","class","children","color","style"]),S,{store:P,nodeLookup:x,actions:b}=z(),C=Oe(),T=()=>t.nodeId??C(),v=()=>t.variant==="line",E=()=>t.position??(v()?"right":"bottom-right"),w=()=>E().split("-");return Jd(()=>{let I=Yd({domNode:S,nodeId:T(),getStoreItems:()=>({nodeLookup:x,transform:P.transform,snapGrid:P.snapGrid,snapToGrid:!!P.snapGrid,nodeOrigin:P.nodeOrigin,paneDomNode:P.domNode}),onChange:(D,k)=>{let R=new Map,Y=D.x&&D.y?{x:D.x,y:D.y}:void 0;R.set(T(),{...D,position:Y});for(let H of k)R.set(H.id,{position:H.position});b.setNodes(H=>R.has(H.id),jd(H=>{let _=R.get(H.id);H.width=_.width,H.height=_.height,H.position={x:_.position?.x??H.position.x,y:_.position?.y??H.position.y}}))}});Zd(()=>{I.update({controlPosition:E(),boundaries:{minWidth:t.minWidth,minHeight:t.minHeight,maxWidth:t.maxWidth,maxHeight:t.maxHeight},keepAspectRatio:!!t.keepAspectRatio,onResizeStart:t.onResizeStart,onResize:t.onResize,onResizeEnd:t.onResizeEnd,shouldResize:t.shouldResize})}),Ud(()=>{I.destroy()})}),<div ref={S}class={Wd(["solid-flow__resize-control",t.variant,P.noDragClass,...w(),t.class])}style={{"border-color":v()?t.color:void 0,"background-color":v()?void 0:t.color,scale:v()||!t.autoScale?void 0:Math.max(1/P.viewport.zoom,1),...t.style}}{...N}>
161
+ {t.children}
162
+ </div>};var Pa=e=>{let o=ea({autoScale:!0,visible:!0},e),[t,N]=Na(e,["handleClass","handleStyle","lineClass","lineStyle"]);return<Sa when={o.visible}>
163
+ <Tn each={Qd}>
164
+ {S=><So variant="line"position={S}class={t.lineClass}style={t.lineStyle}{...N}/>}
165
+ </Tn>
166
+ <Tn each={qd}>
167
+ {S=><So position={S}class={t.handleClass}style={t.handleStyle}{...N}/>}
168
+ </Tn>
169
+ </Sa>};import{getNodeToolbarTransform as Ha}from"@xyflow/system";import{mergeProps as Ba,Show as Va,splitProps as Ka,useContext as Xa}from"solid-js";import{Portal as Fa}from"solid-js/web";function Vu(){let{store:e}=z();return()=>e.connection}function ba(){let{store:e}=z();return()=>e.nodes}function Ea(){let{store:e}=z();return()=>e.edges}function xa(){let{store:e}=z();return()=>e.viewport}import"@xyflow/system";import{batch as wa}from"solid-js";function Uu(){let{store:e,edgeLookup:o,actions:t}=z();return N=>{let S=o.get(N);if(!S)return;(S.selectable||e.elementsSelectable&&typeof S.selectable>"u")&&wa(()=>{t.setSelectionRect(void 0),t.setSelectionRectMode(void 0),S.selected?S.selected&&e.multiselectionKeyPressed&&t.unselectNodesAndEdges({nodes:[],edges:[S]}):t.addSelectedEdges([N])})}}function ju(e){let{nodeLookup:o}=z();return()=>o.get(e())}import{areConnectionMapsEqual as Ca}from"@xyflow/system";import{createEffect as Ta,createSignal as va,useContext as Ma}from"solid-js";var ny=e=>{let{connectionLookup:o}=z(),t=()=>{let T=Ma(Ne);return T?T():""},N=()=>e().handleId,S=()=>e().handleType,P=()=>e().id??t(),[x,b]=va([]),C=()=>`${P()}${S()?N()?`-${S()}-${N()}`:`-${S()}`:""}`;return Ta(T=>{let v=o.get(C());return Ca(v,T)||(T=v,b(Array.from(T?.values()??[]))),v}),x};import{shallowNodeData as Ia}from"@xyflow/system";import{createMemo as ka}from"solid-js";function ay(e){let{nodeLookup:o}=z(),t=[];return ka(()=>{let S=[],P=e();if(!P)return;let x=Array.isArray(P)?P:[P];for(let b of x){let C=o.get(b)?.internals.userNode;C&&S.push({id:C.id,type:C.type,data:C.data})}return Ia(S,t)||(t=S),Array.isArray(P)?S:S[0]})}import{evaluateAbsolutePosition as Da,getElementsToRemove as Oa,getNodesBounds as za,getOverlappingArea as vn,getViewportForBounds as Ra,isRectObject as Mn,nodeToRect as In,pointToRendererPoint as Aa,rendererPointToPoint as _a}from"@xyflow/system";import{batch as La}from"solid-js";import{unwrap as No}from"solid-js/store";function Po(){let{store:e,actions:o,nodeLookup:t,edgeLookup:N,connectionLookup:S}=z(),P=E=>{let w=wo(E)?E:t.get(E.id),I=w.parentId?Da(w.position,w.measured,w.parentId,t,e.nodeOrigin):w.position,D={...w,position:I,width:w.measured?.width??w.width,height:w.measured?.height??w.height};return In(D)},x=(E,w,I={replace:!1})=>{o.setNodes(D=>D.id===E,D=>{let k=typeof w=="function"?w(D):w;return I?.replace&&wo(k)?k:{...D,...k}})},b=(E,w,I={replace:!1})=>{o.setEdges(D=>D.id===E,D=>{let k=typeof w=="function"?w(D):w;return I.replace&&$t(k)?k:{...D,...k}})},C=E=>t.get(E),T=E=>{let w=Array.isArray(E)?E:[E];o.setNodes(I=>[...I,...w])},v=E=>{let w=Array.isArray(E)?E:[E];o.setEdges(I=>[...I,...w])};return{zoomIn:o.zoomIn,zoomOut:o.zoomOut,getInternalNode:C,setCenter:o.setCenter,fitView:o.fitView,getNode:E=>C(E)?.internals.userNode,getNodes:E=>E?kn(t,E):e.nodes,getEdge:E=>N.get(E),getEdges:E=>E?kn(N,E):e.edges,addNodes:T,addEdges:v,getViewport:()=>No(e.viewport),setViewport:async(E,w)=>{let I=e.viewport;return e.panZoom?(await e.panZoom.setViewport({x:E.x??I.x,y:E.y??I.y,zoom:E.zoom??I.zoom},w),Promise.resolve(!0)):Promise.resolve(!1)},getZoom:()=>e.viewport.zoom,setZoom:(E,w)=>{let I=e.panZoom;return I?I.scaleTo(E,{duration:w?.duration}):Promise.resolve(!1)},fitBounds:async(E,w)=>{if(!e.panZoom)return Promise.resolve(!1);let I=Ra(E,e.width,e.height,e.minZoom,e.maxZoom,w?.padding??.1);return await e.panZoom.setViewport(I,{duration:w?.duration,ease:w?.ease,interpolate:w?.interpolate}),Promise.resolve(!0)},getIntersectingNodes:(E,w=!0,I)=>{let D=Mn(E),k=D?E:P(E);return k?(I||e.nodes).filter(R=>{let Y=t.get(R.id);if(!Y||!D&&R.id===E.id)return!1;let H=In(Y),_=vn(H,k);return w&&_>0||_>=k.width*k.height}):[]},isNodeIntersecting:(E,w,I=!0)=>{let k=Mn(E)?E:P(E);if(!k)return!1;let R=vn(k,w);return I&&R>0||R>=k.width*k.height},deleteElements:async({nodes:E=[],edges:w=[]})=>{let{nodes:I,edges:D}=await Oa({nodesToRemove:E,edgesToRemove:w,nodes:e.nodes,edges:e.edges,onBeforeDelete:e.onBeforeDelete});return La(()=>{if(D){let k=e.edges.filter(R=>!D.some(({id:Y})=>Y===R.id));e.onEdgesDelete?.(D),o.setEdges(k)}if(I){let k=e.nodes.filter(R=>!I.some(({id:Y})=>Y===R.id));e.onNodesDelete?.(I),o.setNodes(k)}}),{deletedNodes:I,deletedEdges:D}},screenToFlowPosition:(E,w={snapToGrid:!0})=>{if(!e.domNode)return E;let I=w.snapToGrid?e.snapGrid:!1,{x:D,y:k,zoom:R}=e.viewport,{x:Y,y:H}=e.domNode.getBoundingClientRect(),_={x:E.x-Y,y:E.y-H};return Aa(_,[D,k,R],I!==null,I||[1,1])},flowToScreenPosition:E=>{if(!e.domNode)return E;let{x:w,y:I,zoom:D}=e.viewport,{x:k,y:R}=e.domNode.getBoundingClientRect(),Y=_a(E,[w,I,D]);return{x:Y.x+k,y:Y.y+R}},toObject:()=>structuredClone({nodes:[...No(e.nodes)],edges:[...No(e.edges)],viewport:{...No(e.viewport)}}),updateNode:x,updateNodeData:(E,w,I)=>{let D=t.get(E)?.internals.userNode;if(!D)return;let k=typeof w=="function"?w(D):w;x(E,R=>({...R,data:I?.replace?k:{...R.data,...k}}))},updateEdge:b,getNodesBounds:E=>za(E,{nodeLookup:t,nodeOrigin:e.nodeOrigin}),getHandleConnections:({type:E,id:w,nodeId:I})=>Array.from(S.get(`${I}-${E}-${w??null}`)?.values()??[])}}function kn(e,o){let t=[];for(let N of o){let S=e.get(N);if(S){let P="internals"in S?S.internals?.userNode:S;t.push(P)}}return t}function hy(){let{store:e,actions:o}=z();return N=>{let S=Array.isArray(N)?N:[N],P=[];for(let x of S){let b=e.domNode?.querySelector(`.solid-flow__node[data-id="${x}"]`);b&&P.push([x,{id:x,nodeElement:b,force:!0}])}o.requestUpdateNodeInternals(P)}}var _y=e=>{let{store:o}=z(),{getNodes:t,getNodesBounds:N,getInternalNode:S}=Po(),P=Ba({offset:10,position:"top",align:"center",style:{}},e),[x,b]=Ka(P,["nodeId","position","align","offset","isVisible","style","children"]),C=()=>{let k=Xa(Ne);return k?k():""},T=()=>(Array.isArray(x.nodeId)?x.nodeId:[x.nodeId??C()]).reduce((R,Y)=>{let H=S(Y);return H&&R.push(H),R},[]),v=()=>{let k=N(T());return k?Ha(k,o.viewport,x.position,x.offset,x.align):""},E=()=>{let k=T();return k.length===0?1:Math.max(...k.map(R=>(R.internals.z||5)+1))},w=()=>t().filter(k=>k.selected).length,I=()=>{let k=T();return typeof x.isVisible=="boolean"?x.isVisible:k.length===1&&!!k[0].selected&&w()===1},D=()=>!!(o.domNode&&I()&&T().length>0);return<Va when={D()}>
170
+ <Fa mount={o.domNode}>
171
+ <div class="solid-flow__node-toolbar"data-id={T().reduce((k,R)=>`${k}${R.id} `,"").trim()}style={{position:"absolute",transform:v(),"z-index":E(),...x.style}}{...b}>
172
+ {x.children}
173
+ </div>
174
+ </Fa>
175
+ </Va>};import{getInternalNodesBounds as Za,isNumeric as Dn}from"@xyflow/system";import $a from"clsx";import{createEffect as Ua,createSignal as Ja,Show as Ga}from"solid-js";import{mergeProps as Ya,Show as Wa}from"solid-js";var _e=e=>{let o=Ya({isVisible:!0},e),t=()=>({...o.width!=null&&{width:typeof o.width=="string"?o.width:J(o.width)},...o.height!=null&&{height:typeof o.height=="string"?o.height:J(o.height)},...o.x!=null&&o.y!=null&&{transform:`translate(${e.x}px, ${e.y}px)`}});return<Wa when={o.isVisible}>
176
+ <div class="solid-flow__selection"style={t()}/>
177
+ </Wa>};var Mt=e=>{let{store:o,nodeLookup:t,actions:N}=z(),[S,P]=Ja(),x=()=>o.selectionRectMode==="nodes"?Za(t,{filter:v=>!!v.selected}):null;Ua(()=>{o.disableKeyboardA11y||S()?.focus({preventScroll:!0})});let b=v=>{let E=o.nodes.filter(w=>w.selected);e.onSelectionContextMenu?.({nodes:E,event:v})},C=v=>{let E=o.nodes.filter(w=>w.selected);e.onSelectionClick?.({nodes:E,event:v})};Ze(S,()=>({disabled:!1,onDrag:(v,E,w,I)=>{e.onNodeDrag?.({event:v,targetNode:null,nodes:I})},onDragStart:(v,E,w,I)=>{e.onNodeDragStart?.({event:v,targetNode:null,nodes:I})},onDragStop:(v,E,w,I)=>{e.onNodeDragStop?.({event:v,targetNode:null,nodes:I})}}));let T=v=>{let E=Xe[v.key];E&&(v.preventDefault(),N.moveSelectedNodes(E,v.shiftKey?4:1))};return<Ga when={o.selectionRectMode==="nodes"&&x()&&Dn(x()?.x)&&Dn(x()?.y)}>
178
+ <div ref={P}class={$a("solid-flow__selection-wrapper",o.noPanClass)}style={{width:J(x()?.width),height:J(x()?.height),transform:`translate(${x()?.x}px, ${x()?.y}px)`}}onClick={C}onContextMenu={b}role={o.disableKeyboardA11y?void 0:"button"}tabIndex={o.disableKeyboardA11y?void 0:-1}onKeyDown={o.disableKeyboardA11y?void 0:T}>
179
+ <_e width="100%"height="100%"x={0}y={0}/>
180
+ </div>
181
+ </Ga>};import{createResizeObserver as dl}from"@solid-primitives/resize-observer";import{infiniteExtent as al,isMacOs as Rn}from"@xyflow/system";import ll from"clsx";import{batch as cl,createEffect as pl,mergeProps as gl,onCleanup as ml,onMount as ul,splitProps as yl,useContext as fl}from"solid-js";import{Show as Qa}from"solid-js";var It=e=><Qa when={!e.proOptions?.hideAttribution}>
182
+ <Pe position={e.position??"bottom-right"}class="solid-flow__attribution"data-message="Feel free to remove the attribution or check out how you could support us: https://solidflow.dev/support-us">
183
+ <a href="https://solidflow.dev"target="_blank"rel="noopener noreferrer"aria-label="Solid Flow attribution">
184
+ Solid Flow
185
+ </a>
186
+ </Pe>
187
+ </Qa>;import{isInputDOMNode as el,isMacOs as On}from"@xyflow/system";import{batch as kt,mergeProps as ol,onCleanup as tl,onMount as nl}from"solid-js";function zn(e){return e!==null&&typeof e=="object"}function rl(e){return zn(e)?e.modifier||[]:[]}function il(e){return e==null?"":zn(e)?e.key:e}function sl(e,o){if(!o)return!1;let t=il(o);if(!t)return!1;let N=rl(o);if(Array.isArray(N)){let S=N.flatMap(P=>P).every(P=>{switch(P.toLowerCase()){case"meta":return e.metaKey;case"ctrl":return e.ctrlKey;case"alt":return e.altKey;case"shift":return e.shiftKey;default:return!1}});return e.key===t&&S}return e.key===t}function le(e,o){return o?(Array.isArray(o)?o:[o]).some(N=>sl(e,N)):!1}var Dt=e=>{let{store:o,actions:t}=z(),{deleteElements:N}=Po(),S=ol({selectionKey:"Shift",multiSelectionKey:On()?"Meta":"Control",deleteKey:"Backspace",panActivationKey:" ",zoomActivationKey:On()?"Meta":"Control"},e),P=()=>{kt(()=>{t.setSelectionRect(void 0),t.setSelectionKeyPressed(!1),t.setMultiselectionKeyPressed(!1),t.setDeleteKeyPressed(!1),t.setPanActivationKeyPressed(!1),t.setZoomActivationKeyPressed(!1)})},x=async()=>{let T=o.nodes.filter(I=>I.selected),v=o.edges.filter(I=>I.selected),{deletedNodes:E,deletedEdges:w}=await N({nodes:T,edges:v});(E.length>0||w.length>0)&&o.onDelete?.({nodes:E,edges:w})},b=T=>{kt(()=>{le(T,S.selectionKey)&&t.setSelectionKeyPressed(!0),le(T,S.multiSelectionKey)&&t.setMultiselectionKeyPressed(!0),le(T,S.deleteKey)&&!el(T)&&(T.ctrlKey||T.metaKey||T.shiftKey||(t.setDeleteKeyPressed(!0),x())),le(T,S.panActivationKey)&&t.setPanActivationKeyPressed(!0),le(T,S.zoomActivationKey)&&t.setZoomActivationKeyPressed(!0)})},C=T=>{kt(()=>{le(T,S.selectionKey)&&t.setSelectionKeyPressed(!1),le(T,S.multiSelectionKey)&&t.setMultiselectionKeyPressed(!1),le(T,S.deleteKey)&&t.setDeleteKeyPressed(!1),le(T,S.panActivationKey)&&t.setPanActivationKeyPressed(!1),le(T,S.zoomActivationKey)&&t.setZoomActivationKeyPressed(!1)})};return nl(()=>{window.addEventListener("keydown",b),window.addEventListener("keyup",C),window.addEventListener("blur",P),window.addEventListener("contextmenu",P),tl(()=>{window.removeEventListener("keydown",b),window.removeEventListener("keyup",C),window.removeEventListener("blur",P),window.removeEventListener("contextmenu",P)})}),null};var hl=e=>{let o,t=gl({...we(),colorMode:"light",deleteKeyCode:"Backspace",defaultViewport:{x:0,y:0,zoom:1},multiSelectionKeyCode:Rn()?"Meta":"Control",nodeClickDistance:0,panOnScroll:!1,panActivationKeyCode:"Space",preventScrolling:!0,panOnDrag:!0,panOnScrollSpeed:.5,panOnScrollMode:"free",paneClickDistance:0,reconnectRadius:10,selectionKeyCode:"Shift",selectionOnDrag:!1,translateExtent:al,zoomActivationKeyCode:Rn()?"Meta":"Control",zoomOnPinch:!0,zoomOnDoubleClick:!0,zoomOnScroll:!0},e),[N,S]=yl(t,["nodes","edges","nodeTypes","edgeTypes","width","height","fitView","fitViewOptions","nodeOrigin","nodeDragThreshold","paneClickDistance","nodeClickDistance","minZoom","maxZoom","initialViewport","viewport","translateExtent","nodeExtent","selectionKey","panActivationKey","deleteKey","multiSelectionKey","zoomActivationKey","panOnDrag","panOnScroll","panOnScrollMode","panOnScrollSpeed","selectionOnDrag","selectNodesOnDrag","preventScrolling","zoomOnScroll","zoomOnDoubleClick","zoomOnPinch","onlyRenderVisibleElements","autoPanOnConnect","autoPanOnNodeDrag","autoPanOnNodeFocus","autoPanSpeed","connectionRadius","connectionMode","connectionLineType","connectionLineComponent","connectionLineStyle","connectionLineContainerStyle","connectionDragThreshold","isValidConnection","clickConnect","reconnectRadius","selectionMode","elementsSelectable","nodesDraggable","nodesConnectable","nodesFocusable","edgesFocusable","disableKeyboardA11y","ariaLabelConfig","ariaLiveMessage","colorMode","colorModeSSR","class","style","snapGrid","defaultMarkerColor","defaultEdgeOptions","elevateNodesOnSelect","elevateEdgesOnSelect","noDragClass","noPanClass","noWheelClass","attributionPosition","proOptions","onInit","onMoveStart","onMove","onMoveEnd","onFlowError","onNodeClick","onNodeContextMenu","onNodeDrag","onNodeDragStart","onNodeDragStop","onNodePointerEnter","onNodePointerMove","onNodePointerLeave","onEdgeClick","onEdgeContextMenu","onEdgePointerEnter","onEdgePointerLeave","onPaneClick","onPaneContextMenu","onSelectionChange","onSelectionClick","onSelectionContextMenu","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onSelectionStart","onSelectionEnd","onConnect","onConnectStart","onConnectEnd","onReconnect","onReconnectStart","onReconnectEnd","onClickConnectStart","onClickConnectEnd","onBeforeConnect","onBeforeReconnect","onDelete","onBeforeDelete","deleteKeyCode","selectionKeyCode","panActivationKeyCode","multiSelectionKeyCode","zoomActivationKeyCode","children"]),P=Ae,x=fl(P)??Je(t),{store:b,actions:C}=x;ul(()=>{C.applyInitialFitView(N.fitView),cl(()=>{C.setConfig(t),C.setDomNode(o)}),dl(o,()=>{C.setWidth(o.clientWidth),C.setHeight(o.clientHeight)}),pl(()=>{C.setPaneClickDistance(N.paneClickDistance)}),ml(()=>{C.reset()})});let T=()=>({width:J(N.width),height:J(N.height),...N.style});return<div role="application"data-testid="solid-flow__wrapper"ref={o}class={ll(["solid-flow","solid-flow__container",N.class,b.colorMode])}style={T()}onScroll={v=>{v.currentTarget.scrollTo({top:0,left:0,behavior:"auto"})}}{...S}>
188
+ <P.Provider value={x}>
189
+ <Dt selectionKey={N.selectionKey}deleteKey={N.deleteKey}panActivationKey={N.panActivationKey}multiSelectionKey={N.multiSelectionKey}zoomActivationKey={N.zoomActivationKey}/>
190
+ <Qo panOnScrollMode={N.panOnScrollMode}preventScrolling={N.preventScrolling}zoomOnScroll={N.zoomOnScroll}zoomOnDoubleClick={N.zoomOnDoubleClick}zoomOnPinch={N.zoomOnPinch}panOnScroll={N.panOnScroll}panOnDrag={N.panOnDrag}paneClickDistance={N.paneClickDistance}onMoveStart={N.onMoveStart}onMove={N.onMove}onMoveEnd={N.onMoveEnd}onViewportInitialized={N.onInit}initialViewport={N.viewport||N.initialViewport}>
191
+ <Jo onPaneClick={N.onPaneClick}onPaneContextMenu={N.onPaneContextMenu}onSelectionStart={N.onSelectionStart}onSelectionEnd={N.onSelectionEnd}panOnDrag={N.panOnDrag}selectionOnDrag={N.selectionOnDrag}>
192
+ <Go>
193
+ <div class="solid-flow__container solid-flow__viewport-back"/>
194
+ <$o reconnectRadius={N.reconnectRadius}onEdgeClick={N.onEdgeClick}onEdgeContextMenu={N.onEdgeContextMenu}onEdgePointerEnter={N.onEdgePointerEnter}onEdgePointerLeave={N.onEdgePointerLeave}defaultEdgeOptions={N.defaultEdgeOptions}/>
195
+ <div class="solid-flow__container solid-flow__edge-labels"/>
196
+ <St type={N.connectionLineType}component={N.connectionLineComponent}containerStyle={N.connectionLineContainerStyle}style={N.connectionLineStyle}/>
197
+ <Uo nodeClickDistance={N.nodeClickDistance}onNodeClick={N.onNodeClick}onNodeContextMenu={N.onNodeContextMenu}onNodePointerEnter={N.onNodePointerEnter}onNodePointerMove={N.onNodePointerMove}onNodePointerLeave={N.onNodePointerLeave}onNodeDrag={N.onNodeDrag}onNodeDragStart={N.onNodeDragStart}onNodeDragStop={N.onNodeDragStop}/>
198
+ <Mt onSelectionClick={N.onSelectionClick}onSelectionContextMenu={N.onSelectionContextMenu}onNodeDrag={N.onNodeDrag}onNodeDragStart={N.onNodeDragStart}onNodeDragStop={N.onNodeDragStop}/>
199
+ </Go>
200
+ <_e isVisible={!!b.selectionRect&&b.selectionRectMode==="user"}width={b.selectionRect?.width}height={b.selectionRect?.height}x={b.selectionRect?.x}y={b.selectionRect?.y}/>
201
+ </Jo>
202
+ </Qo>
203
+ <It proOptions={N.proOptions}position={N.attributionPosition}/>
204
+ <Mo/>
205
+ {N.children}
206
+ </P.Provider>
207
+ </div>};import{mergeProps as Sl,onCleanup as Nl}from"solid-js";var Pl=e=>{let o=Sl(we(),e),t=Je(o);Nl(()=>{t.actions.reset()});let N=Ae.Provider;return<N value={t}>{e.children}</N>};import{createStore as bl}from"solid-js/store";var El=e=>{let[o,t]=bl(e);return[o,t]};import{createStore as xl}from"solid-js/store";var wl=e=>{let[o,t]=xl(e);return[o,t]};import{addEdge as ah,getBezierEdgeCenter as lh,getBezierPath as ch,getConnectedEdges as ph,getEdgeCenter as gh,getIncomers as mh,getNodesBounds as uh,getOutgoers as yh,getSmoothStepPath as fh,getStraightPath as hh,getViewportForBounds as Sh}from"@xyflow/system";import{ConnectionLineType as Ph,ConnectionMode as bh,MarkerType as Eh,PanOnScrollMode as xh,Position as wh,ResizeControlVariant as Ch,SelectionMode as Th}from"@xyflow/system";export{Pd as Background,Q as BaseEdge,kr as BezierEdge,To as BezierEdgeInternal,St as ConnectionLine,Ph as ConnectionLineType,bh as ConnectionMode,Me as ControlButton,vd as Controls,Ro as DefaultNode,De as EdgeLabel,Co as EdgeLabelRenderer,Hr as EdgeReconnectAnchor,$o as EdgeRenderer,Io as EdgeWrapper,Ao as GroupNode,Se as Handle,_o as InputNode,Wo as Marker,Zo as MarkerDefinition,Eh as MarkerType,Fd as MiniMap,Uo as NodeRenderer,Pa as NodeResizer,Mt as NodeSelection,_y as NodeToolbar,Ho as NodeWrapper,Bo as OutputNode,xh as PanOnScrollMode,Jo as Pane,Pe as Panel,wh as Position,So as ResizeControl,Ch as ResizeControlVariant,_e as Selection,Th as SelectionMode,Zr as SmoothStepEdge,ko as SmoothStepEdgeInternal,hl as SolidFlow,Pl as SolidFlowProvider,Gr as StepEdge,Do as StepEdgeInternal,ei as StraightEdge,Oo as StraightEdgeInternal,Go as Viewport,Hs as ViewportPortal,Qo as Zoom,ah as addEdge,El as createEdgeStore,wl as createNodeStore,lh as getBezierEdgeCenter,ch as getBezierPath,ph as getConnectedEdges,gh as getEdgeCenter,mh as getIncomers,uh as getNodesBounds,yh as getOutgoers,fh as getSmoothStepPath,hh as getStraightPath,Sh as getViewportForBounds,Vu as useConnection,Ea as useEdges,Uu as useHandleEdgeSelect,ju as useInternalNode,ny as useNodeConnections,ba as useNodes,ay as useNodesData,Po as useSolidFlow,hy as useUpdateNodeInternals,xa as useViewport};