/** * Available view types for Date Picker components */ export type DatePickerView = 'day' | 'month' | 'year'; export type TimeView = 'hours' | 'minutes' | 'seconds'; export type TimeViewWithMeridiem = TimeView | 'meridiem'; export type DateOrTimeViewWithMeridiem = DatePickerView | TimeViewWithMeridiem; /** * Animation slide direction for date picker transitions */ export type SlideDirection = 'right' | 'left'; /** * Appearance variant for date picker components */ export type DatePickerVariant = 'modal' | 'docked'; /** * View style configuration for date picker components */ export type ViewStyle = 'grid' | 'list'; export interface BasePickerTextProps { /** * Text for clear button. * @default 'Clear' */ clearText?: string; /** * Text for cancel button. * @default 'Cancel' */ cancelText?: string; /** * Text for apply button. * @default 'OK' */ okText?: string; } /** * Base interface for all picker props */ export interface BasePickerProps { /** * Callback when the picker is opened. */ onOpen?: () => void; /** * Callback when the picker is closed. */ onClose?: () => void; /** * If `true`, the picker closes after a date is selected. * @default false */ closeOnSelect?: boolean; /** * The label text displayed in the date field. */ label?: React.ReactNode; /** * If `true`, the input will take up the full width of its container. * @default false */ fullWidth?: boolean; /** * If `true`, the label is displayed as required and the input will be required. * @default false */ required?: boolean; /** * The placeholder text for the inputs. */ placeholder?: string; /** * If `true`, the picker and its field will display an error state. * @default false */ error?: boolean; /** * The helper text content. */ helperText?: React.ReactNode; /** * Callback fired when validation error changes. * @param {string | null} error The validation error message, or null if valid. * @param {any} value The current value being validated. */ onError?: (error: string | null, value: any) => void; } export interface DatePickersLocale { /** * Text for the clear button. * @default 'Clear' */ clearText?: string; /** * Text for the cancel button. * @default 'Cancel' */ cancelText?: string; /** * Text for the OK/apply button. * @default 'OK' */ okText?: string; /** * Label for the date field. * @default 'Date' */ fieldLabel?: string; /** * Start label for the date range field. * @default 'Start' */ rangeFieldLabelStart?: string; /** * End label for the date range field. * @default 'End' */ rangeFieldLabelEnd?: string; /** * Placeholder text when no date is entered. * @default 'Enter date' */ inputTitle?: string; /** * Placeholder text when no dates are entered for range. * @default 'Enter dates' */ rangeInputTitle?: string; /** * Default label for date picker. * @default 'Select date' */ headerLabel?: string; /** * Default label for date range input. * @default 'Select dates' */ rangeHeaderLabel?: string; /** * Default label for date range picker. * @default 'Depart - return dates' */ rangePickerLabel?: string; }