DatePicker
Inline date, multiple dates and dates range picker
Source
LLM docs
Docs
PackageIcon
Usage
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Allow deselect
Set allowDeselect to allow users to deselect the currently selected date by clicking on it.
allowDeselect is disregarded when the type prop is range or multiple. When a date is
deselected, onChange is called with null.
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Multiple dates
Set type="multiple" to allow users to pick multiple dates:
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Dates range
Set type="range" to allow users to pick a date range:
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Single date in range
By default, it is not allowed to select a single date as a range – when the user clicks the same date a second time, it is deselected.
To change this behavior, set the allowSingleDateInRange prop. allowSingleDateInRange is ignored when the
type prop is not range.
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Presets
Use the presets prop to add custom date presets. Presets are displayed next to the calendar:
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
To use presets with type="range", define the value as a tuple of two dates:
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Default date
Use the defaultDate prop to set the date value that will be used to determine which year should be displayed initially.
For example, to display the 2015 February month, set defaultDate={new Date(2015, 1)}. If the value is not specified,
then defaultDate will use new Date(). Day, minutes and seconds are ignored in the provided date object, only year and month data is used –
you can specify any date value.
Note that if you set the date prop, then the defaultDate value will be ignored.
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Controlled date
Set the date and onDateChange props to make the currently displayed month, year and decade controlled.
By doing so, you can customize the date picking experience. For example, when the user selects the first date in a range,
you can add one month to the current date value:
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Default level
Set the defaultLevel prop to configure the initial level that will be displayed:
Hide outside dates
Set the hideOutsideDates prop to remove all dates that do not belong to the current month:
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Display week numbers
Set the withWeekNumbers prop to display week numbers:
| # | Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|---|
| 5 | |||||||
| 6 | |||||||
| 7 | |||||||
| 8 | |||||||
| 9 |
First day of week
Set the firstDayOfWeek prop to configure the first day of the week. The prop accepts a number from 0 to 6,
where 0 is Sunday and 6 is Saturday. The default value is 1 – Monday. You can also configure this option
for all components with DatesProvider.
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
| Sa | Su | Mo | Tu | We | Th | Fr |
|---|---|---|---|---|---|---|
Hide weekdays
Set the hideWeekdays prop to hide weekday names:
Weekend days
Use the weekendDays prop to configure weekend days. The prop accepts an array of numbers from 0 to 6,
where 0 is Sunday and 6 is Saturday. The default value is [0, 6] – Saturday and Sunday. You can also configure this option
for all components with DatesProvider.
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Render day function
You can customize day rendering with the renderDay prop. For example, it can be used to add
Indicator to certain days.
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Min and max date
Set the minDate and maxDate props to define minimum and maximum dates. If the previous/next page is not available,
then the corresponding control will be disabled.
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Change header controls order
Use the headerControlsOrder prop to change the order of header controls. The prop accepts an array of
'next' | 'previous' | 'level'. Note that each control can be used only once in the array.
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Add props to day, year and month control
You can add props to year, month and day controls with the getYearControlProps, getMonthControlProps and getDayProps functions. All functions accept a date as a single argument,
and props returned from the function will be added to the year/month/day control. For example, it can be used to disable a specific
control or add styles:
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Exclude dates
To disable specific dates, use the excludeDate prop.
It accepts a function that takes a date as an argument and returns a boolean value – if true is returned, the date will be disabled.
Example of disabling all dates that are not Fridays:
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Number of columns
Set the numberOfColumns prop to define the number of pickers that will be rendered side by side:
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Demo is not available on small screens. Make your screen larger to see the demo.
Max level
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Full width
Set the fullWidth prop to make the date picker stretch to fill 100% of its parent container width:
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Size
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Change year and months controls format
Use the yearsListFormat and monthsListFormat props to change the dayjs format of year/month controls:
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
Change label format
Use the decadeLabelFormat, yearLabelFormat and monthLabelFormat props to change the dayjs format of the decade/year label:
Localization
Usually it is better to specify the @mantine/dates package locale in DatesProvider,
but you can also override the locale per component:
| пн | вт | ср | чт | пт | сб | вс |
|---|---|---|---|---|---|---|
Accessibility
Aria labels
Set the ariaLabels prop to specify aria-label attributes for next/previous controls:
Year/month control aria-label
Use getYearControlProps/getMonthControlProps/getDayProps to customize the aria-label attribute:
Keyboard interactions
Note that the following events will only trigger if focus is on a date control.