Skip to content

v19.0.0 - Control Schemes, Click-to-Connect, Keyboard Accessibility, and a Unified Connector Model

Latest

Choose a tag to compare

@siarheihuzarevich siarheihuzarevich released this 05 Jul 19:24
3f5fc03

Until v19 there was exactly one way to drive a Foblex Flow editor - one gesture mapping, one way to create connections, one input device. v19 opens that up: the pointer scheme, the connection gesture, the keyboard, and the AI agents writing code against the library are all first-class now.

Highlights

  • Control Schemes - provideFFlow(withControlScheme(...)) maps gestures to actions for the whole editor at once. Miro-like and draw.io-like presets ship out of the box, FControlSchemeController switches them at runtime, and your existing trigger inputs still win. Plain-wheel scroll panning and a separate trackpad pinch step land along the way (#312, #218).
  • Connection Flows - withConnectionFlow('click') adds click-to-connect alongside drag (#264). Both gestures drive the new gesture-independent FCreateConnectionSession — preview line, snapping, validation and the fCreateConnection emission are identical across gestures, and a custom Type<IFConnectionFlow> gets them for free.
  • Accessibility - every flow ships ARIA semantics by default (roles, generated connection names, live-region announcements; your attributes are never overridden). withA11y() enables the keyboard layer: spatial arrow navigation over nodes and connections with selection following directly (aria-activedescendant, no separate focus state), Ctrl+arrow topology walk, hold-or-tap Space movement, keyboard connection creation (C → arrows → Enter), Delete emitting the new fDeleteSelected, remappable keys and a fully localizable message catalog.
  • Unified Connector Model - one [fConnector] directive (source | target | source-target | outlet) replaces the fNodeInput/fNodeOutput/fNodeOutlet trio; connections gain canonical fSourceId/fTargetId. Legacy APIs keep working, deprecated — migrate at your pace.
  • AI-Ready Toolchain - dev-mode diagnostics with stable codes (FF1001FF1009, documented at flow.foblex.com/docs/errors, stripped from production), ng add installs agent rules pointing at the version-matched AI.md bundled in the npm package, and the hosted llms.txt/llms-full.txt are CI-validated against the API.

Fixes

  • Fast drags no longer lag or jump - the drag anchors to the pointer-down position (#309).
  • Safari no longer leaves ghost preview lines after a connection drop (#311).
  • A native <select> inside a node no longer causes a phantom drag after closing.
  • Connection hover no longer flickers while creating/reassigning connections or dragging nodes.

⚠ Breaking changes

  • Flows apply inert ARIA attributes by default; behavior changes only after opting into withA11y(). Attributes you set yourself always win.
  • FDraggableBase gains two abstract members (fDeleteSelected, fCreateConnectionTrigger) - direct subclasses only.
  • Unified connector migration notes: fConnectorMultiple defaults to true (legacy outputs were single-connection); connector ids are unique across all types; fCanBeConnectedInputsfCanBeConnectedTo.

Full details: CHANGELOG · Release post

Live demos