--- id: task-5 title: Implement source visibility filtering status: Done assignee: [] created_date: '2026-01-02 14:28' updated_date: '2026-01-02 16:45' labels: [] dependencies: [] priority: medium --- ## Description Wire up the source checkboxes in the sidebar to actually filter displayed events by calendar source ## Implementation Notes Refactored source visibility to use "hidden sources" approach: - Changed `visibleSources` to `hiddenSources` in store (cleaner logic: empty = show all) - Updated CalendarSidebar to check `!hiddenSources.includes(source.id)` - Updated MonthView to filter events by hidden sources before display - Event count header shows "X of Y events" when filtering is active - State persisted via Zustand persist middleware