Release v2.15.0
feat(cloud): drag layout cells onto empty grid slots
Summary
- Cloud event Layouts grid: drag a filled cell onto an empty slot to move it (row/col only); content preserved
- Drops onto occupied cells are rejected (no swap/overwrite); empty cells are not drag sources
- Short press still opens the cell edit dialog; Pointer Events with movement threshold separate click vs drag
- OpenSpec change archived; living spec added under
openspec/specs/cloud-layout-cell-drag-move/
Test plan
- Open event config → Layouts; drag a filled button onto an empty slot and confirm it moves
- Try dropping onto an occupied cell — source stays put, target unchanged
- Click a cell (no drag) — edit dialog still opens
- Confirm autosave picks up the move (dirty → saved)
-
cd cloud/frontend && npm test -- --run src/utils/layoutCellMove.spec.ts src/components/EventConfigLayoutsSection.spec.ts