Click-down → drag → release line tool. The drag binding routes to
insertAction, which owns the live preview and commits through the
insert dep with { kind: 'line', a, b } endpoints (not the AABB
diagonal), so the drag direction is preserved.
Modifiers are applied by insertAction:
shift: constrain to 15° increments
alt: mirror the end around the start (the drag is treated as a
half-line) — the line-specific reading of the action's
corner ⇄ center origin toggle
Click-down → drag → release line tool. The
dragbinding routes toinsertAction, which owns the live preview and commits through theinsertdep with{ kind: 'line', a, b }endpoints (not the AABB diagonal), so the drag direction is preserved.Modifiers are applied by
insertAction: