value | Date | null | — | Selected date value |
onChange | (date: Date | null) => void | — | Callback when value changes |
minDate | Date | — | Minimum selectable date |
maxDate | Date | — | Maximum selectable date |
locale | Partial<Locale> | — | Custom locale configuration |
initialMonth | Date | — | Initial displayed month |
today | Date | new Date() | Override today’s date for isToday highlighting and disablePast/disableFuture calculations |
onMonthChange | (month: Date) => void | — | Callback fired when the displayed month changes |
size | "small" | "medium" | "large" | "x-large" | "medium" | Component size |
weekStartsOn | WeekDay | "sunday" | First day of the week |
isDateUnavailable | (date: Date) => boolean | — | Mark dates as disabled |
displayFormat | string | — | Custom display format (e.g. "YYYY/MM/DD") |
open | boolean | — | Controlled open state |
initialOpen | boolean | — | Initial open state (uncontrolled) |
onOpenChange | (open: boolean) => void | — | Callback when open state changes |
required | boolean | false | Disable clearing the value |
showOutsideDays | boolean | false | Show days from adjacent months |
highlightDates | Date[] | — | Dates to highlight |
shouldCloseOnSelect | boolean | false | Auto-confirm on date click |
numberOfMonths | number | 1 | Number of months to display |
captionLayout | "buttons" | "dropdown" | "buttons" | Caption navigation style |
fromYear | number | — | Start year for dropdown |
toYear | number | — | End year for dropdown |
disablePast | boolean | false | Disable dates before today |
disableFuture | boolean | false | Disable dates after today |
inline | boolean | false | Show calendar inline (no popup) |
name | string | — | Hidden input name for form submission |
placeholder | string | — | Trigger placeholder text |
hideHeader | boolean | false | Hide the navigation header |
hideFooter | boolean | false | Hide the action footer |