feat(editor): unified port model — one dot per port, sided + typed + state-aware
Rewrites the port-rendering model around the operator's expectation that each port is a single visible dot with clear state. Closes four concrete complaints from the 0.4.0 review. Removes the redundant inline dot: - FlowNode._body no longer paints any inline 8-px dot. The canvas-side dot is the SINGLE visible port. Size matches the label row (12-px diameter, NodeGeometry. portDotSize). No more "two dots per port" doubling. Sides + alignment: - New NodePortSide enum on FlowNode. `left` for step inputs + outputs endpoint inputs; `right` for the inputs endpoint (its body labels represent OUTPUTS of the node — data flows OUT to downstream steps, so the port dots belong on the right edge). - Body labels right-align on right-side nodes, left-align elsewhere. The 18-px port-gutter inside the body keeps the dot from overlapping label text on the port-bearing edge. - Inputs endpoint dots now hang off the RIGHT edge of the node, matching where the visible label gravitates. Previously the dot was on the right but the labels crowded the left — visually disconnected. State-aware rendering: - Port dots render FILLED when participating in an edge, OUTLINED when dangling. `_connectedPorts` walks graph.edges once per build and marks every endpoint. Operator sees at a glance which inputs are wired vs which need attention. - Type-coloured: inputs endpoint dots take the type accent (text → primary, bytes/file → tertiary, json → secondary, number → amber, unknown → muted). Edge deletion via port context menu: - Right-click on a wired input port (step or outputs endpoint) opens a Disconnect popup. Confirming clears the with-field / output expression to empty, edge disappears, port flips outlined. No need to chase the YAML buffer manually. - Unwired ports get no context menu (nothing to disconnect) — keeps the menu honest. The drop-target halo on drag stays — closest input port within snap distance still inflates to 18 px and gets a brighter halo, so the connection-drawing UX is unchanged. Version 0.4.0 -> 0.5.0 — refactored API + visible port model change warrants the minor bump. Signed-off-by: flemming-it <sf@flemming.it>
This commit is contained in:
parent
fb8892687d
commit
099cd182b9
3 changed files with 261 additions and 117 deletions
|
|
@ -1,6 +1,6 @@
|
|||
name: fai_studio_flow_editor
|
||||
description: Swappable inline YAML editor for F∆I Studio flows.
|
||||
version: 0.4.0
|
||||
version: 0.5.0
|
||||
publish_to: 'none'
|
||||
repository: https://git.flemming.ai/fai/studio-flow-editor
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue