Cell UI editor foundations
Generic interaction contracts consumed by editors such as CharCut.
HEAD a63778e| Read this page when | You build an editor on top of Cell UI preview, commit, or cancel behavior. |
|---|---|
| First answer | Cell UI owns reusable geometry and interaction state; the consuming editor owns its domain model and commands. |
| Boundary | This page does not define CharCut domain semantics or commit policy. |
| Follow-up | Open the public contracts and the nearest component tests. |
Cell UI owns reusable geometry and interaction state. A consuming editor owns its domain model and commits domain commands after a preview.
Cell UI: source → preview → commit/cancel
CharCut: clip/track/snap/ripple/playbackPublic contracts
DragSourceandDropTargetcarry opaque payloads and acceptance rules.CellDragEventreportsstart,preview,commit, andcancelthroughCellSurface.onDragStateChange.SelectionStatestores IDs and focus; range ordering stays with the host.createCellViewportState,cellPointToViewport, andcellVisibleRangecover zoom, scrolling, and virtualization boundaries without knowing time units.ResizeHandleremains the shared separator and trim interaction primitive.
The browser adapter owns pointer capture, thresholding, keyboard Escape, and drop-target hit testing. The headless runtime receives explicit geometry and can be tested without a DOM.
Ownership boundary
Cell UI does not define Clip, Track, Composition, Keyframe, snapping,
ripple editing, playback resolution, or export. CharCut maps those objects to
generic source, target, range, lane, and viewport geometry and commits its own
commands when a transaction ends.
See the Cell UI primitives contract for the shared rendering and input ownership rules.