import { EventEmitter } from "@angular/core"; import { type DateMonthView, type DateSelection, type SuggestionOption } from "@magicx-eng/ai-autocomplete-vanilla"; import * as i0 from "@angular/core"; /** * The dropdown's calendar body, rendered in place of the options grid when the * active parameter is a date. Angular analogue of vanilla's `renderDateGrid` * and React's ``. * * The cells carry the same `${listboxId}-option-${i}` ids, `role="option"` and * `aria-selected` the options grid emits, and that is load-bearing rather than * cosmetic: the keyboard controller lives in the vanilla core for all three * packages, navigates by index into `filteredOptions`, and commits by clicking * `#${listboxId}-option-${i}`. `getEffectiveColumns` also measures the live * `grid-template-columns` of option-0's parent, which is why the 7 columns sit * on the cell container itself and not on an ancestor. * * @internal */ export declare class DateGridComponent { /** The visible month's cells. These ARE `filteredOptions` — see `buildDateOptions`. */ options: SuggestionOption[]; activeIndex: number; listboxId: string; view: DateMonthView | null; /** What the calendar paints as answered — see the core's `dateSelectionFor`. */ selection: DateSelection; readonly select: EventEmitter; readonly highlight: EventEmitter; /** The pointer left cell `index` — the dropdown clears a highlight still on it. */ readonly unhighlight: EventEmitter; readonly previousMonth: EventEmitter; readonly nextMonth: EventEmitter; readonly weekdays: string[]; /** Index of the cell showing a 170ms press animation, or -1. */ pressedIndex: number; get monthLabel(): string; dayOf(option: SuggestionOption): number | null; isToday(option: SuggestionOption): boolean; /** Before today: rendered dimmed, but every bit as pickable as the rest. */ isPast(option: SuggestionOption): boolean; isSelected(option: SuggestionOption): boolean; /** Between the two ends of the painted span — banded, not filled. */ isInRange(option: SuggestionOption): boolean; /** * While a start is pending, the span runs to whatever cell is highlighted — * the hover/arrow preview that tells the user the first tap registered. * * A getter rather than a cached field: `OnPush` re-runs the template's * bindings whenever `options`, `activeIndex` or `selection` changes, and each * of those changes this answer. */ private get paintedRange(); onSelect(option: SuggestionOption, index: number): void; onKeyDown(event: KeyboardEvent, option: SuggestionOption, index: number): void; /** Keeps the input focused, which the dropdown's visibility gate depends on. */ preventBlur(event: MouseEvent): void; trackByCell: (index: number, option: SuggestionOption) => string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } //# sourceMappingURL=date-grid.component.d.ts.map