Files
Ular Kimsanov 108142f2a2 feat(studio): asset click policy and canvas nudge gate (#2200)
* feat(studio): timeline lane-zone model

What: new pure module timelineZones — visual/audio track-zone
classification (classifyZone) and normalizeToZones, which re-packs lanes
into zone-consistent rows; tests cover the stacking/zones interaction.

Why: completes the z-model started in the stacking-sync PR.

How: new files; consumes isAudioTimelineElement (leaf-helpers PR) and
computeStackingPatches (stacking-sync PR); type-only playerStore imports.

Test plan: bunx vitest run timelineZones.test.ts; tsc --noEmit; fallow
audit clean.

* feat(studio): asset click policy and canvas nudge gate

What: two small pure modules with tests — assetClickBehavior (click vs
double-click policy for sidebar assets) and canvasNudgeGate (debounce gate
for arrow-key canvas nudges).

Why: policy dependencies of the upcoming asset card and nudge hook,
reviewable as plain decision tables.

How: new files only.

Test plan: bunx vitest run on both test files; tsc --noEmit; fallow audit
clean.
2026-07-11 22:56:48 -04:00
..
2026-07-11 17:15:24 -07:00
2026-07-11 17:15:24 -07:00
2026-07-11 17:15:24 -07:00
2026-07-11 17:15:24 -07:00
2026-07-11 17:15:24 -07:00
2026-07-11 17:15:24 -07:00
2026-07-11 17:15:24 -07:00
2026-07-11 17:15:24 -07:00
2026-07-11 17:15:24 -07:00
2026-07-11 17:15:24 -07:00
2026-07-11 17:15:24 -07:00