Id of the node currently being edited. Empty string means no node is currently in edit mode — the chrome and gesture both opt out.
In-flight anchor-marquee rect in world coords, or null when no
marquee drag is active. Written by marqueeAnchorsAction and read by
the path-editing overlay — the same "ongoing action owns the preview,
chrome just draws it" split the move/resize ghosts use.
Anchors currently selected within the edited path, as flat anchor
indices — the same numbering enumerateAnchors produces and the
anchor:N affordance kinds carry.
Selection is transient UI state, deliberately not part of the scene:
it is cleared whenever editingId changes, and any edit that
renumbers anchors (insert, delete) is responsible for leaving it
coherent. Empty means "no anchor selected" — the keyboard actions
(nudge, delete) no-op rather than acting on all anchors, matching
Illustrator.
Commit worldPath as the new value for id. Implementation routes
to setPose (when pose IS the polygon) or batched setPose+update
(when the polygon lives on data.path). Records one history entry
labelled label.
Returns the COMMITTED editable polygon in world coordinates, or null if this node has no editable polygon. Does NOT consult in- flight previews — callers that need live state read the dispatcher's in-flight handles.
Returns the node's raw pose and data so storage-aware actions
can capture origin state at gesture-start and synthesize a matching
previewPose / previewData during onMove. Used by
editAnchorsAction for the data.path branch (rect pose + data
carrying extra fields like fill / stroke that must be preserved
through the preview). Returns null when the node is gone.
Returns where the polygon is stored — 'pose' when node.pose
IS the polygon, 'data' when it lives on node.data.path with a
rect pose, or null when the node has no editable polygon. The
action uses this to know which preview-ghost axis to populate
(previewPose only / previewData + previewPose for data.path).
Enter/exit edit mode for a specific node. Pass null (or an empty
string) to exit. enterPathEditAction and exitPathEditAction call
this; consumers can call it directly to drive edit mode programmatically.
Set or clear the in-flight marquee rect.
Replace the anchor selection. Pass an empty iterable to clear.
Adapter dep for
editAnchorsAction.Provides narrow read/write access to the editable polygon for a single node. Consumers register this dep so anchor-edit actions can read/write the polygon WITHOUT knowing whether it lives directly on the node's pose (
pose.kind === 'polygon') or onnode.data.path(the kit's built-in pen-tool default, also WeaselDraw's shape).Note on live previews: in-flight edit state is surfaced through the dispatcher's standard
OngoingHandle.previewIds/previewPose/previewDatatriple (not this dep), so chrome and preview-ghost stay in lock-step via one source of truth.