--- id: task-3 title: 'Phase 2: Core Data Shapes - Embed, Markdown, Calendar, Map' status: To Do assignee: [] created_date: '2026-01-02 14:42' labels: - migration - shapes - core dependencies: [] priority: high --- ## Description Port medium-complexity shapes that form the core data visualization layer: 1. **folk-embed** (565 LOC) - URL embeds (YouTube, Maps, Twitter) - URL transformation patterns - Interaction state management 2. **folk-calendar** (644 LOC) - Unified calendar widget - Browser/widget/year views - Event detection from CalendarPanel/YearViewPanel 3. **folk-map** (2,168 LOC - LARGEST) - Collaborative Mapbox/MapLibre - Real-time presence cursors - Drawing annotations (markers, lines, areas) - Search via Nominatim, routing via OSRM - GPS location sharing Simplifications: - Replace React state with reactive properties - Replace context providers with event-based communication - Calendar/Map can be separate packages imported as needed ## Acceptance Criteria - [ ] #1 folk-embed component with URL detection - [ ] #2 folk-calendar with month/year views - [ ] #3 folk-map with MapLibre integration - [ ] #4 Real-time presence on map working