Props

PropTypeDefaultDescription
value{ start: Date | null; end: Date | null }Selected date range value
onChange(value: { start: Date | null; end: Date | null }) => voidCallback when value changes
presetsDateRangePreset[]Predefined date range presets
maxDaysnumberMaximum days allowed in range (inclusive)
minDaysnumberMinimum days required in range (inclusive)
allowSingleDateInRangebooleantrueAllow range where start equals end
minDateDateMinimum selectable date
maxDateDateMaximum selectable date
localePartial<Locale>Custom locale configuration
initialMonthDateInitial displayed month
todayDatenew Date()Override today’s date for isToday highlighting and disablePast/disableFuture calculations
onMonthChange(month: Date) => voidCallback fired when the displayed month changes
size"small" | "medium" | "large" | "x-large""medium"Component size
weekStartsOnWeekDay"sunday"First day of the week
isDateUnavailable(date: Date) => booleanMark dates as disabled
displayFormatstringCustom display format (e.g. "YYYY/MM/DD")
openbooleanControlled open state
initialOpenbooleanInitial open state (uncontrolled)
onOpenChange(open: boolean) => voidCallback when open state changes
requiredbooleanfalseDisable clearing the value
showOutsideDaysbooleanfalseShow days from adjacent months
highlightDatesDate[]Dates to highlight
shouldCloseOnSelectbooleanfalseAuto-confirm when end date is selected
numberOfMonthsnumber2Number of months to display
captionLayout"buttons" | "dropdown""buttons"Caption navigation style
fromYearnumberStart year for dropdown
toYearnumberEnd year for dropdown
disablePastbooleanfalseDisable dates before today
disableFuturebooleanfalseDisable dates after today
inlinebooleanfalseShow calendar inline (no popup)
namestringHidden input name for form submission (start date)
endNamestringHidden input name for end date (defaults to name-end)
placeholderstringTrigger placeholder text
hideHeaderbooleanfalseHide the navigation header
hideFooterbooleanfalseHide the action footer

DateRangePreset

interface DateRangePreset {
label: string;
value: { start: Date; end: Date } | (() => { start: Date; end: Date });
}