import { Binding } from "@uplink-protocol/core"; import { CalendarDate, CalendarMonth, CalendarYear, DateRange, YearRange } from "../interfaces"; /** * Calendar Controller Bindings - Reactive state properties * These bindings automatically update the UI when calendar state changes */ export interface CalendarControllerBindings { /** Currently selected date (null if no date selected) */ selectedDate: Binding; /** Selected date range (for range selection mode) */ selectedDateRange: Binding; /** Currently focused date (for accessibility) */ focusedDate: Binding; /** Current date being displayed (navigation state) */ currentDate: Binding; /** Current month number (0-based) */ currentMonth: Binding; /** Current year number */ currentYear: Binding; /** Current month name in the selected locale */ monthName: Binding; /** Array of calendar days for the current month view */ calendarDays: Binding; /** Array of calendar months for the year view */ calendarMonths: Binding; /** Array of calendar years for the decade view */ calendarYears: Binding; /** Array of weekday names in the selected locale */ weekdays: Binding; /** Whether range selection mode is enabled */ isRangeSelection: Binding; /** Current year range base for decade view */ currentYearRangeBase: Binding; }