refactor(slides): decompose main.ts into focused modules
Extract 645-line monolith into 5 focused modules via dependency injection:
- types.ts: shared AppState, DOMRefs, AppActions interfaces
- rendering.ts: thumbnails, canvas, shape SVG, full render
- presenter-ui.ts: enter/exit/render presenter overlay
- event-handlers.ts: toolbar, drag, touch, keyboard, title
- ai-chat-panel.ts: AI chat sidebar setup and messaging
main.ts reduced to 173 lines: state, Yjs sync, init, command palette.
All modules receive state through injected AppActions interface.