1fc9eb72be85db4c007c0421ce6fe12652a4f68f
Headline features across 11 slices (see individual commits for details): - Markers on the scrub ruler (name, color, drag, m shortcut, used as jump targets in scripts/actions) - Script tracks with action frames, full action authoring dialog with a reusable ActionEditor component - Button clips (definitions + placed instances), 4-cell timeline rendering, sidebar authoring, drag-to-track, per-instance label and onClick editing - Button canvas runtime: hover/pressed/disabled state machine, onClick execution via evalAction, visual state changes and state-to-state transitions with per-transition duration + easing - Action union: play/pause/rewindToLoop/jumpTo/jumpToFrame/ jumpToMarker/setButtonState/setButtonDisabled/script - Script DSL parser for the `script` action: play/pause/rewind, jump to seconds/#frame/@marker, state btn:label <state>, enable/disable btn:label, // comments - Forward-only script frame firing tied to natural playback tick (no firing on scrub or loop wrap) - Export runtime (exportPlayer.ts + server renderer) mirrors the editor: evalAction, button rendering with canvas-space hit testing, transitions, DSL parsing. RUNTIME_VERSION bumped from 1 → 6. Known gap: buttons can be created and dragged onto tracks but their per-state visuals can't be customized in-app yet (the seed gives a four-colour rect per state). State-authoring mode is a follow-up. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Languages
TypeScript
60%
Vue
35.4%
JavaScript
3.4%
HTML
0.9%
CSS
0.2%
Other
0.1%