feat(calendar): add responsible person and attendees to events

- Add ResponsiblePerson interface to shared types
- Create ResponsiblePersonSelector component with contact integration
- Integrate responsible person selector into EventForm
- Add people selectors to QuickEventOverlay with compact layout
- Fix click-outside detection for elements removed from DOM
- Support both contacts app integration and manual email entry

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Till-JS 2025-12-13 14:53:53 +01:00
parent 88c91e22b0
commit 8eb295d491
4 changed files with 576 additions and 5 deletions

View file

@ -18,6 +18,20 @@ export interface EventAttendee {
company?: string;
}
/**
* Responsible person for an event (single person accountable for the event)
*/
export interface ResponsiblePerson {
email: string;
name?: string;
/** Contact reference for linked contacts */
contactId?: string;
/** Cached photo URL from contact */
photoUrl?: string;
/** Cached company from contact */
company?: string;
}
/**
* Event tag with color
*/
@ -57,7 +71,9 @@ export interface EventMetadata {
url?: string;
/** Video conference URL (Zoom, Meet, etc.) */
conferenceUrl?: string;
/** Event attendees */
/** Responsible person for this event */
responsiblePerson?: ResponsiblePerson;
/** Event attendees/participants */
attendees?: EventAttendee[];
/** Event organizer email */
organizer?: string;