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>
27 lines
738 B
YAML
27 lines
738 B
YAML
name: fai_studio_flow_editor
|
|
description: Swappable inline YAML editor for F∆I Studio flows.
|
|
version: 0.5.0
|
|
publish_to: 'none'
|
|
repository: https://git.flemming.ai/fai/studio-flow-editor
|
|
|
|
environment:
|
|
sdk: ^3.11.0-200.1.beta
|
|
flutter: '>=3.30.0'
|
|
|
|
dependencies:
|
|
flutter:
|
|
sdk: flutter
|
|
# CodeMirror-style code editor + the highlight package's
|
|
# YAML grammar. Both are pure Dart so the editor stays
|
|
# WebView-free and ships in the same binary.
|
|
flutter_code_editor: ^0.3.5
|
|
highlight: ^0.7.0
|
|
# YAML parsing for the graph view's model layer. We
|
|
# round-trip text <-> graph via this; the graph never
|
|
# mutates the YAML directly.
|
|
yaml: ^3.1.2
|
|
|
|
dev_dependencies:
|
|
flutter_test:
|
|
sdk: flutter
|
|
flutter_lints: ^6.0.0
|