Mailspring/plans
Ben Gotow 829c8c37a7
Implement event search for calendar feature (#2533)
* Implement event search functionality in calendar

Add a fully functional event search bar to the calendar sidebar that allows
users to search for events by title, description, location, or participants.

Features:
- Search input with debounced queries (300ms) to avoid excessive database calls
- Dropdown suggestions showing matching events with calendar color indicators
- Keyboard navigation (arrow keys, Enter to select, Escape to clear)
- Event details display including title, date/time, and location
- Results sorted by proximity to current date
- Respects disabled calendars filter
- Loading indicator during search

The implementation follows the same patterns used by the thread/email search
feature, leveraging the existing Event model's FTS5 search capability and
the Menu component for the dropdown UI.

* Move event search bar to toolbar with ThreadSearchBar styling

- Move EventSearchBar from calendar sidebar to toolbar location
- Create focusCalendarEvent action for communication between search
  bar and calendar component
- Update styling to match ThreadSearchBar design:
  - Fixed width toolbar appearance
  - Box-shadow border styling
  - Dropdown suggestions matching thread search style
  - Same clear button (searchclear.png) and search icon
- EventSearchBar now gets disabled calendars from config directly
- Calendar component listens to focusCalendarEvent action

The search bar now appears in the same toolbar area as the email
search bar, providing a consistent UX across the application.

* Fix focus ring to appear on entire search bar container

- Add 'focused' class to search bar container when input is focused
- Style the container with focus ring instead of the input element
- Use accent-primary color for consistent focus ring appearance

* Remove inner input focus styling to prevent double focus ring

* Fix stuck event selection after clicking search results

Clear focusedEvent when clicking on other events in the calendar
to prevent the search result event from remaining in a focused state
and continuously re-opening the popover.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-05 22:46:44 -06:00
..
caldav-provider-quirks Analyze and document provider-specific overrides in Python caldav (#2536) 2026-01-04 15:36:41 -06:00
caldav-04-deleted-calendar-cleanup.md Analyze and document provider-specific overrides in Python caldav (#2536) 2026-01-04 15:36:41 -06:00
caldav-08-recurring-event-exceptions.md Analyze and document provider-specific overrides in Python caldav (#2536) 2026-01-04 15:36:41 -06:00
caldav-09-multiple-vevents.md Analyze and document provider-specific overrides in Python caldav (#2536) 2026-01-04 15:36:41 -06:00
caldav-10-vtodo-support.md Analyze and document provider-specific overrides in Python caldav (#2536) 2026-01-04 15:36:41 -06:00
calendar-feature-assessment.md Audit calendar preview features and gaps (#2532) 2026-01-03 12:53:33 -06:00
carddav-02-multiple-address-books.md Analyze and document provider-specific overrides in Python caldav (#2536) 2026-01-04 15:36:41 -06:00
carddav-05-addressbook-metadata.md Analyze and document provider-specific overrides in Python caldav (#2536) 2026-01-04 15:36:41 -06:00
carddav-07-vcard-error-handling.md Analyze and document provider-specific overrides in Python caldav (#2536) 2026-01-04 15:36:41 -06:00
implement-event-search.md Implement event search for calendar feature (#2533) 2026-01-05 22:46:44 -06:00