7e18ac6c84947306e5155c913ecb9dee02cc3992
- Import CommandHistory and all 4 command classes from new modules - hitTest() with 8px EDGE for resize-left/resize-right/move zones - _hasOverlap() check for time range collision on same track - snapToBeat() with 0.1s threshold and calibrationOffset - _setupInteractions() with mousedown/mousemove/keydown listeners - _startMove(): live drag preview, snap on mouseup, overlap rejection - _startResize(): left/right edge handles, 0.5s min duration, snap - handleDrop(): place block from palette with crypto.randomUUID() - Keyboard: Delete, Ctrl+Z (undo), Ctrl+Shift+Z / Ctrl+Y (redo) - app.js: dragstart on palette, dragover/dragleave/drop on canvas - Ghost block rendered during dragover for visual feedback - Resize handle indicators drawn on selected block
Description
LightSync LED show system
Languages
Python
61.1%
JavaScript
30.5%
CSS
5.5%
HTML
2.8%
Dockerfile
0.1%