7ef0509f2b
- Drag handle at bottom edge of each module (GripHorizontal icon) - Pointer capture tracks vertical drag delta → U-size delta - Clamped to: minimum 1U, rack bounds, first module below - Shows current U-size label during active resize - On release: PUT /modules/:id with new uSize (server validates collision) - Optimistic store update via updateModuleLocal on success Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>