ControlledGraph API
Svelte controlled-graph bridge — canonical line records, change requests, diagnostics.
ControlledGraph declares your application the canonical owner of line
topology. It renders nothing.
| Prop | Meaning |
|---|---|
lines | Your canonical LineRecord[] — { id, fromConnectorId, toConnectorId, payload? } with stable ids |
onLineChangeRequest | Receives one atomic LineChangeRequest per gesture |
onDiagnosticsChanged | Receives the current ReconciliationError[] when it changes |
A LineChangeRequest carries an intent ("connect" | "disconnect" | "replace" | "reconnect") plus add (ProposedLine[] with SnapLine-minted ids), remove (LineId[]), update (endpoint retargets), and the originalEvent. Accept a proposal by applying
it to your records — adopting a proposed id settles the staged line in place.
Reject it by leaving your records unchanged; the staged line is then removed.
The component pushes your updated lines prop back to the reconciler
automatically after each request.
ReconciliationError.code is one of "duplicate-id" (a record id appears
twice in the snapshot), "capacity-exceeded" (a record violates a
connector’s maxIncoming), or "connection-rejected" (an endpoint’s isValidConnection vetoed the record). Errored records stay in your document
and are retried when relevant state changes; records whose endpoints are not
mounted stay silently latent.