Files
ukimsanov f11cf23112 feat(studio): pure timeline drag math — collision, snapping, multi-drag preview
What: three new pure modules with their test suites: timelineCollision
(zone-aware placement — clampTrackToZone, resolveInsertRow, resolvePlacement,
lane/overlap predicates), timelineSnapping (snap-target collection and
pixel-threshold time snapping), and timelineMultiDragPreview (group-drag
passenger offsets and clamped group deltas).

Why: this is the math core of the NLE clip-drag engine. It has no DOM, no
React, and no store writes, so it is reviewable as plain functions before
the integration PR wires it into the drag gesture.

How: new files only; imports are limited to types from the existing
playerStore. Nothing on main imports these yet — the integration PR
(studio-dnd/pr05) becomes the first runtime consumer.

Test plan: bunx vitest run on the three test files; tsc --noEmit in
packages/studio; fallow audit --base origin/main clean (every export is
consumed by the same-PR tests).
2026-07-10 15:16:07 -07:00
..
…
…
…
…