/** * @license * Copyright 2023 Google Laabidi Aymen * SPDX-License-Identifier: MIT */ import { LitElement, type PropertyValues, type TemplateResult } from 'lit'; import { DatePickerMode, DatePickerType, DatePickerSize, DatePickerVariant, DatePickerPlacement, INavigationDate, IDayPresentation, DatePickerState } from './datepicker.types.js'; import { DatePickerHost } from './interfaces/base-controller.interface.js'; import './utils/locale.helper.js'; import { INPUT_STATE } from '../input/input.types.js'; declare const HyDatePickerElement_base: (new (...args: any[]) => import("@nuralyui/common/mixins").DependencyAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").ThemeAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").EventHandlerCapable) & (new (...args: any[]) => import("packages/common/src/shared/base-mixin.js").LightDomContent) & typeof LitElement; /** * HyDatePicker - A comprehensive date picker component * * @element nr-datepicker * * @fires nr-date-change - Fired when a date is selected * @fires nr-range-change - Fired when a date range is selected * @fires nr-calendar-open - Fired when calendar is opened * @fires nr-calendar-close - Fired when calendar is closed * @fires nr-focus - Fired when component receives focus * @fires nr-blur - Fired when component loses focus * @fires nr-validation - Fired when validation state changes * * @slot label - Label content for the input field * @slot helper-text - Helper text content below the input field * @slot icon - Icon content for the input field * * @csspart input - The input field part * @csspart calendar - The calendar container part * @csspart header - The calendar header part * @csspart days - The days grid part * @csspart day - Individual day cell part * @csspart months - The months grid part * @csspart years - The years grid part * * @example * ```html * * * ``` * * @example Range picker * ```html * * * ``` */ export declare class HyDatePickerElement extends HyDatePickerElement_base implements DatePickerHost { static useShadowDom: boolean; static styles: import("lit").CSSResult; requiredComponents: string[]; private calendarController; private selectionController; private keyboardController; private positioningController; private dropdownController; name: string; value: string; dateValue: string; defaultValue: string; disabled: boolean; required: boolean; locale: string; fieldFormat: string; range: boolean; minDate?: string; maxDate?: string; disabledDates?: string[]; type: DatePickerType; size: DatePickerSize; variant: DatePickerVariant; placement: DatePickerPlacement; label: string; helper: string; placeholder: string; state: DatePickerState | INPUT_STATE; useSelectDropdowns: boolean; openedCalendar: boolean; mode: DatePickerMode; private currentMode; private monthsShort; private months; private days; private weekdaysShort; private inputFieldValue; private currentYear; private currentMonth; private currentDay; private endYear?; private endMonth?; private endDay?; navigationDates: INavigationDate; dateInput: HTMLElement; calendarContainer: HTMLElement; private readonly INPUT_TYPE; connectedCallback(): void; disconnectedCallback(): void; firstUpdated(_changedProperties: PropertyValues): void; private setupDropdownController; willUpdate(changedProperties: PropertyValues): void; /** * Initialize component state */ private initializeComponent; /** * Initialize range properties if range mode is enabled */ private initializeRangeIfNeeded; /** * Handle property changes with proper delegation */ private handlePropertyChanges; /** * Check if date-related properties have changed */ private hasDatePropertiesChanged; /** * Handle date value change */ private handleDateValueChange; getCurrentDate(): Date; formatDate(date: Date): string; parseDate(dateString: string): Date | null; /** * Get currently selected date - DELEGATES to selection controller */ getSelectedDate(): Date | null; /** * Select a date - DELEGATES to selection controller */ selectDate(date: Date): void; /** * Clear selection - DELEGATES to selection controller */ clearSelection(): void; /** * Open calendar - DELEGATES to dropdown controller for better positioning */ openCalendar(): void; /** * Close calendar - DELEGATES to dropdown controller */ closeCalendar(): void; /** * Toggle calendar - DELEGATES to dropdown controller */ toggleCalendar(): void; /** * Handle keyboard events - DELEGATES to keyboard controller */ handleKeyDown(event: KeyboardEvent): void; private updateInputField; private dispatchDateChange; private updateLocale; inputChanged(event: CustomEvent): void; onFocus(): void; handleMonthChange: (event: CustomEvent) => void; handleYearChange: (event: CustomEvent) => void; prevMonth: () => void; nextMonth: () => void; prevYear: () => void; nextYear: () => void; selectMonth: (month: number) => void; selectYear: (year: number) => void; selectDay: (dayPresentation: IDayPresentation) => void; private handleMonthSelected; private handleYearSelected; private handleMonthSelection; private handleYearSelection; protected render(): TemplateResult; private renderSingle; private renderRange; private renderMultiple; private renderCalendar; private get monthOptions(); private get yearOptions(); private renderCalendarHeader; private renderCalendarBody; private renderDays; private renderMonths; private renderYears; } export {}; //# sourceMappingURL=datepicker.component.d.ts.map