Improves label editing in the inspector and on nodes, renders line breaks on the diagram, and lets users pan by dragging from nodes while tap/click still selects.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Inline edit: add one-shot guard so Enter commits once (no duplicate
undo/render) and Escape reliably cancels instead of saving via blur.
- validateBowtie: normalize threats/consequences missing barrier arrays or
labels instead of throwing and flagging recoverable files as malformed.
- deserializeBowtie: sanitize and clamp view zoom/pan to avoid an invisible
canvas and Infinity divide during export.
- Add shared sanitizeBaseName: strip control/leading/trailing dot chars,
reject bare dot names, and escape Windows reserved names; reuse for new
file and PNG export names.
- Add model tests for the above.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Single-finger touch panning now works even when starting on a node; a tap still selects.
- Add keyboard node selection (Tab/Enter/Space/Escape) and validated settings input.
- Guard against overwriting malformed .bowtie files; show a notice and keep original data.
- Add Vitest tests (model/layout/panZoom) and a GitHub Actions CI workflow.
- Split bowtieView into history/panZoom/stackRows/externalSync modules; refresh README, examples, and contributor docs.
Co-authored-by: Cursor <cursoragent@cursor.com>