--- id: task-8 title: Port shared hooks as FolkJS utilities status: To Do assignee: [] created_date: '2026-01-02 16:10' labels: - foundation - utilities - migration dependencies: [] priority: high --- ## Description Convert canvas-website React hooks to FolkJS-compatible utilities: 1. **useMaximize** → maximizeShape(shape) utility - Store original dimensions - Animate to viewport fill - Restore on toggle 2. **usePinnedToView** → PinnedViewManager class - Keep shape fixed as camera moves - Support multiple pin positions - Zero-lag with requestAnimationFrame 3. **Shape serialization** - toJSON/fromJSON pattern - Already implemented in folk-markdown - Standardize across all shapes These utilities enable the StandardizedToolWrapper features (maximize, pin, close) across all FolkJS shapes. ## Acceptance Criteria - [ ] #1 maximizeShape utility working - [ ] #2 PinnedViewManager class working - [ ] #3 All shapes have consistent toJSON/fromJSON