import type { Socket } from "@nodes/types"; import { getContext } from "svelte"; import { SvelteSet } from 'svelte/reactivity'; export function getGraphState() { return getContext("graphState"); } export class GraphState { activeNodeId = $state(-1); selectedNodes = new SvelteSet(); activeSocket = $state(null); hoveredSocket = $state(null); possibleSockets = $state([]); possibleSocketIds = $derived(new Set( this.possibleSockets.map((s) => `${s.node.id}-${s.index}`), )); clearSelection() { this.selectedNodes.clear(); } }