UNPKG

@selenite/graph-editor

Version:

A graph editor for visual programming, based on rete and svelte.

30 lines (29 loc) 1.72 kB
import type { RenderPreset } from '../../setup'; import { ClassicPreset, Scope } from 'rete'; import { type SocketPositionWatcher } from 'rete-render-utils'; import type { SvelteComponent } from 'svelte'; import type { ClassicScheme, ExtractPayload, SvelteArea2D } from './types'; export { default as Connection } from './components/Connection.svelte'; export { default as Control } from './components/Control.svelte'; export { default as Socket } from './components/Socket.svelte'; export { default as Button } from './components/Button.svelte'; export { default as InputControl } from './components/InputControl.svelte'; export { default as ExecSocket } from './components/ExecSocket.svelte'; export { default as AddXmlAttributeControl } from '../../AddXmlAttributeControl.svelte'; type Component<Props extends Record<string, any>> = ComponentType<SvelteComponent<Props>>; type CustomizationProps<Schemes extends ClassicScheme> = { node?: (data: ExtractPayload<Schemes, 'node'>) => Component<any> | null; connection?: (data: ExtractPayload<Schemes, 'connection'>) => Component<any> | null; socket?: (data: ExtractPayload<Schemes, 'socket'>) => Component<any> | null; control?: <N extends ClassicPreset.Control>(data: ExtractPayload<Schemes, 'control'>) => Component<{ data: N; }> | null; }; type ClassicProps<Schemes extends ClassicScheme, K> = { socketPositionWatcher?: SocketPositionWatcher<Scope<never, [K]>>; customize?: CustomizationProps<Schemes>; }; /** * Classic preset for rendering nodes, connections, controls and sockets. */ export declare function setup<Schemes extends ClassicScheme, K extends SvelteArea2D<Schemes>>(props?: ClassicProps<Schemes, K>): RenderPreset;